Bug 416761 - Review Request cppad - A Package for Differentiation of C++ Algorithms
Review Request cppad - A Package for Differentiation of C++ Algorithms
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
low Severity medium
: ---
: ---
Assigned To: Mamoru TASAKA
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-12-08 14:42 EST by Brad Bell
Modified: 2008-04-06 23:47 EDT (History)
3 users (show)

See Also:
Fixed In Version: 20071229-6.fc8
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-01-15 18:04:26 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
mtasaka: fedora‑review+
kevin: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Brad Bell 2007-12-08 14:42:50 EST
Spec URL: http://www.seanet.com/~bradbell/cppad/cppad.spec
SRPM URL: http://www.seanet.com/~bradbell/cppad/cppad-20071208-1.src.rpm

Description:
We refer to the step by step conversion from an algorithm that computes 
function values to an algorithm that computes derivative values as 
Algorithmic Differentiation (often referred to as Automatic Differentiation.) 
Given a C++ algorithm that computes function values, CppAD generates an 
algorithm that computes its derivative values. A brief introduction to 
Algorithmic Differentiation can be found at
Wiki: http://en.wikipedia.org/wiki/Automatic_differentiation

Documentation:
HTML     http://www.coin-or.org/CppAD/Doc/cppad.htm
MathML   http://www.coin-or.org/CppAD/Doc/cppad.xml
Comment 1 Brad Bell 2007-12-11 09:12:40 EST
Seeking A Sponsor:
I failed to mention in the description above that this is my first package, and
I are seeking a sponsor. You can find out more about me at
http://www.seanet.com/~bradbell/.
Comment 2 Mamoru TASAKA 2007-12-19 10:54:58 EST
Well,
* First of all, would you remove all seemingly-unneeded comments?
  They make your spec file less easy to read.

* Please consider to use %?_dist tag.
  http://fedoraproject.org/wiki/Packaging/DistTag

* For SourceURL, I recommend to %{version} (also %{name}) tag
  so that you won't have to modify the SourceURL when version is
  upgraded.

* Why are the Summaries of (fake) main, -devel, -doc are all same?

* rm -rf $RPM_BUILD_ROOT is not needed for %prep

* If some tests are executable, the move them to %check section
  and remove %{_validation_testing_during_rpmbuild} related description.

* support parallel make if possible.

* Please use macros. 
  http://fedoraproject.org/wiki/Packaging/RPMMacros
  - For example, /usr must be %_prefix.
  - And please use %configure if possible (please check what
    %configure actually does by
    $ rpm --eval %configure )

* On %install
if ! make install DESTDIR=$RPM_BUILD_ROOT
then
	echo "Error during make install DESTDIR=$RPM_BUILD_ROOT"
	exit 1
fi

  "exit 1" is not neede as rpmbuild executes shell script with
  "set -e" (i.e. if error occurs, the execution of shell script
   fails)

* If this package does not create any debuginfo information, please
  refer to the section "Useless or incomplete debuginfo packages 
  due to packaging issues" of
  http://fedoraproject.org/wiki/Packaging/Debuginfo
Comment 3 Brad Bell 2007-12-20 08:57:43 EST
A new version of 
    http://www.seanet.com/~bradbell/cppad/cppad.spec
has been uploaded.

(In reply to comment #2)

> * First of all, would you remove all seemingly-unneeded comments?
>   They make your spec file less easy to read.

Comments have been removed (except for those that are useful to a reviewer).


> * Please consider to use %?_dist tag.
>   http://fedoraproject.org/wiki/Packaging/DistTag

Done.

> 
> * For SourceURL, I recommend to %{version} (also %{name}) tag
>   so that you won't have to modify the SourceURL when version is
>   upgraded.

Done.

> 
> * Why are the Summaries of (fake) main, -devel, -doc are all same?

The summaries and descriptions have been changed to be different for each of the
sub-packages.

> 
> * rm -rf $RPM_BUILD_ROOT is not needed for %prep

As per the instructions on
    http://fedoraproject.org/wiki/Packaging/Guidelines
the rm -rf $RPM_BUILD_ROOT has been moved to the %install section.

> 
> * If some tests are executable, the move them to %check section
>   and remove %{_validation_testing_during_rpmbuild} related description.

I cannot find any documentation or examples for using %check in a spec file.

> 
> * support parallel make if possible.

I think that the new BuildRoot command does this (but I cannot find
documentation for %(%{__id_u} -n)).

> 
> * Please use macros. 
>   http://fedoraproject.org/wiki/Packaging/RPMMacros
>   - For example, /usr must be %_prefix.

Done.

>   - And please use %configure if possible (please check what
>     %configure actually does by
>     $ rpm --eval %configure )

Currently, --with-Documentation is needed on the cppad configure line to get the
documentation. By default, no documentation is installed and people use the web
version (which changes as the trunk of cppad changes). If it is important, this
could be changed.

> 
> * On %install
> if ! make install DESTDIR=$RPM_BUILD_ROOT
> then
> 	echo "Error during make install DESTDIR=$RPM_BUILD_ROOT"
> 	exit 1
> fi
> 
>   "exit 1" is not neede as rpmbuild executes shell script with
>   "set -e" (i.e. if error occurs, the execution of shell script
>    fails)
> 

Checking for program failures has been removed.

> * If this package does not create any debuginfo information, please
>   refer to the section "Useless or incomplete debuginfo packages 
>   due to packaging issues" of
>   http://fedoraproject.org/wiki/Packaging/Debuginfo

A BuildArch: noarch command has been added.

Comment 4 Mamoru TASAKA 2007-12-20 09:30:52 EST
Please provide a new srpm also (which release number changed every
time you modify your spec/srpm) so that we can try to rebuild your
srpm easily.

(In reply to comment #3)
> (In reply to comment #2)

> > * If some tests are executable, the move them to %check section
> >   and remove %{_validation_testing_during_rpmbuild} related description.
> 
> I cannot find any documentation or examples for using %check in a spec file.

For example:
http://cvs.fedoraproject.org/viewcvs/*checkout*/devel/ruby-romkan/ruby-romkan.spec
http://cvs.fedoraproject.org/viewcvs/*checkout*/devel/tokyocabinet/tokyocabinet.spec

> > * support parallel make if possible.
> 
> I think that the new BuildRoot command does this (but I cannot find
> documentation for %(%{__id_u} -n)).

Well, please refer to the section "Parallel make" of
http://fedoraproject.org/wiki/Packaging/Guidelines
(paralle make I say here has no relation with %_id_u)

> >   - And please use %configure if possible (please check what
> >     %configure actually does by
> >     $ rpm --eval %configure )
> 
> Currently, --with-Documentation is needed on the cppad configure line to get the
> documentation. 
Doesn't "%configure --with-Documentation" work?

> > * Please use macros. 
> >   http://fedoraproject.org/wiki/Packaging/RPMMacros
> >   - For example, /usr must be %_prefix.
> 
> Done.

Please use more (please check "RPMMacros" page again).
/usr/include, /usr/share/doc must be changed.

BTW files under %_docdir are automatically marked as %doc.

!!
# 2. What does the '?' mean in the Release command below ?
As written in http://fedoraproject.org/wiki/Packaging/DistTag,
---------------------------------------------------------
If %{dist} is defined, insert its value here. If not, do nothing. 
---------------------------------------------------------

# 3. What does the __id_u and -n mean in the BuildRoot command below ?
You can check this by 
$ rpm --eval %__id_u
$ rpm --eval '%(%__id_u -n)'
to see what actually happens.
Comment 5 Brad Bell 2007-12-20 12:34:53 EST
A new version of 
    http://www.seanet.com/~bradbell/cppad/cppad.spec
has been uploaded.

(In reply to comment #4)
> Please provide a new srpm also (which release number changed every
> time you modify your spec/srpm) so that we can try to rebuild your
> srpm easily.

Done.
The old rpm has been deleted and the new rpm is
http://www.seanet.com/~bradbell/cppad/cppad-20071208-2.fc7.src.rpm

> 
> (In reply to comment #3)
> > (In reply to comment #2)
> 
> > > * If some tests are executable, the move them to %check section
> > >   and remove %{_validation_testing_during_rpmbuild} related description.
>
The %check command is used for the validation tests and 
%{_validation_testing_during_rpmbuild} has been removed.

As currently implemented, the tests are compiled and run each time an rpmbuild
command is executed. I am not sure if this is the best solution. Perhaps there
is a standard way to skip this using the rpmbuild command line.


> > > * support parallel make if possible.

The %{?_smp_mflags} argument has been added to the make command

> Doesn't "%configure --with-Documentation" work?

Yes it does and the spec file has been changed to use %configure.

> 
> Please use more (please check "RPMMacros" page again).
> /usr/include, /usr/share/doc must be changed.

Done.

> 
> BTW files under %_docdir are automatically marked as %doc.
> 

The %doc command has been removed from infont of 
%{_docdir}/%{name}-%{version}.


Comment 6 Mamoru TASAKA 2007-12-21 08:50:43 EST
* Source tarball
  - Well, I tried to download the source from the written SourceURL,
    however only I could find CppAD-2.0.1.tgz?
    (source tarball check is needed for license check)

* Build option
  - build.log says:
---------------------------------------------------------
    52  checking --with-Documentation... yes
    53  checking --with-Introduction... no
    54  checking --with-Example... yes
    55  checking --with-TestMore... yes
    56  checking --with-Speed... no
    57  checking --with-PrintFor... no
    58  checking --with-stdvector... no
---------------------------------------------------------
    You don't set some conditional configure option. Would you
    please explain why?

* Timestamps
  - As this is noarch and the installed files are only texts,
    keeping timestamps on installed files is highly preferable.

    For this package, the following keeps timestamps.
----------------------------------------------------------
%prep
%setup -q

sed -i.stamp -e 's|cp -r|cp -a|' makefile

%build
.....
%install
rm -rf $RPM_BUILD_ROOT
export CPPROG="cp -p"
make install DESTDIR=$RPM_BUILD_ROOT
.......
----------------------------------------------------------

* macros in %changelog
  - When you try "$ rpm -q --changelog cppad", you will see
----------------------------------------------------------
* Thu Dec 20 2007 Brad Bell ( bradell at seanet dot com ) 20071203-2
- Use the commands 
  CFLAGS="${CFLAGS:--O2}" ; export CFLAGS ; 
  CXXFLAGS="${CXXFLAGS:--O2}" ; export CXXFLAGS ; 
  FFLAGS="${FFLAGS:--O2}" ; export FFLAGS ; 
  for i in $(find . -name config.guess -o -name config.sub) ; do 
           [ -f /usr/lib/rpm/redhat/$(basename $i) ] && /bin/rm -f $i && /bin/cp
-fv /usr/lib/rpm/redhat/$(basename $i) $i ; 
  done ; 
.........
----------------------------------------------------------
     i.e. macros in %changelog are expanded (you can gain the warning
          about these by rpmlint).
     To avoid this, use %% in %changelog to stop macros expanding.
----------------------------------------------------------
* Wed Dec 20 2007 Brad Bell < bradell at seanet dot com > 20071203-2
- Use the commands %%configure, %%check
-----------------------------------------------------------
     BTW I recommend to use <>, not () for mail address.

* Argument list too long
  - By the way, when I try normal rpmbuild:
------------------------------------------------------------
[tasaka1@localhost SPECS]$ LANG=C rpmbuild -bi --short-circuit cppad.spec 
Executing(%install): /bin/sh -e /home/tasaka1/rpmbuild/INSTROOT/rpm-tmp.58659
+ umask 022
+ cd /home/tasaka1/rpmbuild/BUILD
+ cd cppad-20071208
.......
cp -r ./doc/*
/home/tasaka1/rpmbuild/INSTROOT/cppad-20071208-2.fc8_p-root-tasaka1/usr/share/doc/cppad-20071208
chmod 644
/home/tasaka1/rpmbuild/INSTROOT/cppad-20071208-2.fc8_p-root-tasaka1/usr/share/doc/cppad-20071208/*

/bin/sh: /bin/chmod: Argument list too long
make[3]: *** [install-data-hook] Error 126
make[3]: Leaving directory `/home/tasaka1/rpmbuild/BUILD/cppad-20071208'
make[2]: *** [install-data-am] Error 2
make[2]: Leaving directory `/home/tasaka1/rpmbuild/BUILD/cppad-20071208'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/tasaka1/rpmbuild/BUILD/cppad-20071208'
make: *** [install-recursive] Error 1
error: Bad exit status from /home/tasaka1/rpmbuild/INSTROOT/rpm-tmp.58659 (%install)
----------------------------------------------------------

* Some rpmlint
  $ rpmlint <your srpm> shows:
------------------------------------------------------------
cppad.src: W: mixed-use-of-spaces-and-tabs (spaces: line 8, tab: line 5)
cppad.src: W: summary-ended-with-dot cppad base package (not installed).
------------------------------------------------------------
    Please fix these (you can check what these mean by
    $ rpmlint -I mixed-use-of-spaces-and-tabs , for example)
Comment 7 Brad Bell 2007-12-21 09:58:11 EST
(In reply to comment #6)
> * Source tarball
>   - Well, I tried to download the source from the written SourceURL,
>     however only I could find CppAD-2.0.1.tgz?
>     (source tarball check is needed for license check)

The cppad package is maintained using COIN-OR which prefers the CPL license
      http://www.opensource.org/licenses/cpl1.0.php

Because some of CppAD users prefer GPL, both available for download from
      http://www.coin-or.org/CppAD/Doc/download.htm

The distribution files on this web page correspond to the trunk of the svn
repository and the version number changes each day; i.e., the corresponding
files are today called
      http://www.coin-or.org/CppAD/Doc/cppad-20071221.cpl.tgz
      http://www.coin-or.org/CppAD/Doc/cppad-20071221.gpl.tgz

The tarball CppAD-2.0.1.tgz is different in that is a direct copy of the
subversion repository corresponding to version 20071016 of CppAD. If one
executes the following commands
      tar -xzf CppAD-2.0.1
      cd CppAD-2.0.1
      ./build all
It will create the file
      cppad-20071016.gpl.tgz (GPL license, Unix file format)
and also create
      cppad-20071016.cpl.tgz (CPL license, Unix file format)
      cppad-20071016.cpl.zip (CPL license, Dos file format)
      cppad-20071016.gpl.zip (GPL license, Dos file format)
This process builds the documentation and hence one needs a copy of OMhelp to do
this. OMhelp is distributed with the GPL license at
      http://www.seanet.com/~bradbell/omhelp/installunix.htm
All of the *.tgz and *.zip files contain the necessary OMhelp source to rebuild
the documentation.

1. Which license would Fedora prefer to use ?

2. Does this make CppAD depend on the OMhelp package because it is used to build
the documentation from the source code files ?
Comment 8 Mamoru TASAKA 2007-12-21 10:41:28 EST
Using daily snapshot tarball is not preferable. We must
make it sure that how we can gain the source tarballs which are
actually used in your srpm.

Ref:
http://fedoraproject.org/wiki/Packaging/SourceURL

If you want to use svn tarball, you must follow the section
"Using Revision Control" of the wiki page. Also you have to
follow "Snapshot packages" section of
http://fedoraproject.org/wiki/Packaging/NamingGuidelines

For me it seems that you can just use CppAD-2.0.1.tgz
(and do configure and make as normal)
The license tag can be "CPL or GPLv2+" (i.e. dual of
CPL and GPLv2+).
Comment 9 Mamoru TASAKA 2007-12-21 10:43:20 EST
For license tag, for example:
http://cvs.fedoraproject.org/viewcvs/*checkout*/devel/mecab/mecab.spec
Comment 10 Mamoru TASAKA 2007-12-21 10:44:46 EST
Oops, I have not checked the version of GPL in detail. I will check later
(but please update your srpm first)
Comment 11 Brad Bell 2007-12-21 13:24:30 EST
(In reply to comment #6)

A new version of 
    http://www.seanet.com/~bradbell/cppad/cppad.spec
has been uploaded. The corresponding rpm source file is
http://www.seanet.com/~bradbell/cppad/cppad-20071221-1.fc7.src.rpm

> * Source tarball
>   - Well, I tried to download the source from the written SourceURL,
>     however only I could find CppAD-2.0.1.tgz?>     (source tarball check is
needed for license check)

I am working on how to best solve this problem (see comment number 7 for more
details).
> 
> * Build option
>   - build.log says:
> ---------------------------------------------------------
>     52  checking --with-Documentation... yes
>     53  checking --with-Introduction... no
>     54  checking --with-Example... yes
>     55  checking --with-TestMore... yes
>     56  checking --with-Speed... no
>     57  checking --with-PrintFor... no
>     58  checking --with-stdvector... no
> ---------------------------------------------------------
>     You don't set some conditional configure option. Would you
>     please explain why?

The Introduction and Speed options have been added to the %configure and %check
sections of cppad.spec.

The PrintFor option builds a test that is not automated (the users actually
looks at the output).

The stdvector option replaces the template vector class that has the most
extensive testing. The standard vector template class is just one of three
choices (and the default is being used by the current spec file).

> 
> * Timestamps
>   - As this is noarch and the installed files are only texts,
>     keeping timestamps on installed files is highly preferable.
> 
>     For this package, the following keeps timestamps.
> ----------------------------------------------------------
> %prep
> %setup -q
> 
> sed -i.stamp -e 's|cp -r|cp -a|' makefile
> 
> %build
> .....
> %install
> rm -rf $RPM_BUILD_ROOT
> export CPPROG="cp -p"
> make install DESTDIR=$RPM_BUILD_ROOT
> .......

This has been fixed in the corresponding upstream makefile.am by using the cp -a
command (this made it necessary to increase the version number of cppad). 

> 
> ----------------------------------------------------------
>      i.e. macros in %changelog are expanded (you can gain the warning
>           about these by rpmlint).
>      To avoid this, use %% in %changelog to stop macros expanding.
> ----------------------------------------------------------
> * Wed Dec 20 2007 Brad Bell < bradell at seanet dot com > 20071203-2
> - Use the commands %%configure, %%check
> -----------------------------------------------------------
Done.

>      BTW I recommend to use <>, not () for mail address.
Done.

> 
> * Argument list too long
>   - By the way, when I try normal rpmbuild:
> ------------------------------------------------------------
> [tasaka1@localhost SPECS]$ LANG=C rpmbuild -bi --short-circuit cppad.spec 
> Executing(%install): /bin/sh -e /home/tasaka1/rpmbuild/INSTROOT/rpm-tmp.58659
> + umask 022
> + cd /home/tasaka1/rpmbuild/BUILD
> + cd cppad-20071208
> .......
> cp -r ./doc/*
> 

This has also been fixed in the upstream makefile.am file by copying the
directory instead of files; i.e.
   cp -r ./doc/* 
should now be
   cp -a ./doc
This error did not occur on my test system, so please see if the fix works for you.

> ----------------------------------------------------------
> 
> * Some rpmlint
>   $ rpmlint <your srpm> shows:
> ------------------------------------------------------------
> cppad.src: W: mixed-use-of-spaces-and-tabs (spaces: line 8, tab: line 5)
> cppad.src: W: summary-ended-with-dot cppad base package (not installed).
> ------------------------------------------------------------
>     Please fix these (you can check what these mean by
>     $ rpmlint -I mixed-use-of-spaces-and-tabs , for example)
Fixed.
Comment 12 Mamoru TASAKA 2007-12-22 08:26:55 EST
I will wait for source tarball solution.
Comment 13 Brad Bell 2007-12-25 12:54:07 EST
(In reply to comment #12)
A new version of 
    http://www.seanet.com/~bradbell/cppad/cppad.spec
has been uploaded. The corresponding rpm source file is
http://www.seanet.com/~bradbell/cppad/cppad-20071225-1.fc7.src.rpm

> I will wait for source tarball solution.

The directory
    http://www.coin-or.org/CppAD/download/
has been created for storing archived versions of the CppAD source code. The
source code corresponding to the source rpm above is
    http://www.coin-or.org/CppAD/download/cppad-20071225.gpl.tgz
The cppad.spec files %Source command points to this file.
Comment 14 Mamoru TASAKA 2007-12-25 13:23:00 EST
Well, I will check it later. BTW this is a NEEDSPONSOR ticket, so:

-------------------------------------------------------------
NOTE: Before being sponsored:

This package will be accepted with another few work. 
But before I accept this package, someone (I am a candidate) 
must sponsor you.

Once you are sponsored, you have the right to review other 
submitters' review requests and approve the packages formally. 
For this reason, the person who want to be sponsored (like you) 
are required to "show that you have an understanding 
of the process and of the packaging guidelines" as is described
on :
http://fedoraproject.org/wiki/PackageMaintainers/HowToGetSponsored

Usually there are two ways to show this.
A. submit other review requests with enough quality.
B. Do a "pre-review" of other person's review request
   (at the time you are not sponsored, you cannot do
   a formal review)

When you have submitted a new review request or have pre-reviewed other 
person's review request, please write the bug number on this bug report 
so that I can check your comments or review request.

Fedora package collection review requests which are waiting for someone to
review can be checked on:
http://fedoraproject.org/PackageReviewStatus/NEW.html
(NOTE: please don't choose "Merge Review")


Review guidelines are described mainly on:
http://fedoraproject.org/wiki/Packaging/ReviewGuidelines
http://fedoraproject.org/wiki/Packaging/Guidelines
http://fedoraproject.org/wiki/Packaging/ScriptletSnippets
------------------------------------------------------------
Comment 15 Mamoru TASAKA 2007-12-26 13:24:02 EST
For 20071225-1:

* Requires:
  - %_includedir/%name/local/test_vector.hpp contains
---------------------------------------------------------------
   101  # if CPPAD_BOOSTVECTOR
   102  # include <boost/numeric/ublas/vector.hpp>
   103  # define CPPAD_TEST_VECTOR boost::numeric::ublas::vector
   104  # endif
---------------------------------------------------------------
    Does this mean that cppad-devel should have
    "Requires: boost-devel"?

  - IMO it is bettar that this package has "Requires:
    libstdc++-devel".

* Timestamps
  - As this package installs text files only, keeping timestamps
    on installed files is highly preferred.
    As "make install" uses install-sh, perhaps the following method
    works for keeping timestamps.
---------------------------------------------------------------
%install
rm -rf $RPM_BUILD_ROOT

export CPPROG="cp -p"
make install DESTDIR=$RPM_BUILD_ROOT
---------------------------------------------------------------

* Documents
  - Please add the following document(s) to %doc in -devel.
---------------------------------------------------------------
AUTHORS
ChangeLog
---------------------------------------------------------------
Comment 16 Brad Bell 2007-12-27 09:46:20 EST
(In reply to comment #15)
A new version of 
    http://www.seanet.com/~bradbell/cppad/cppad.spec
has been uploaded. The corresponding rpm source file is
http://www.seanet.com/~bradbell/cppad/cppad-20071225-2.fc7.src.rpm

> For 20071225-1:
> 
> * Requires:
>   - %_includedir/%name/local/test_vector.hpp contains
> ---------------------------------------------------------------
>    101  # if CPPAD_BOOSTVECTOR
>    102  # include <boost/numeric/ublas/vector.hpp>
>    103  # define CPPAD_TEST_VECTOR boost::numeric::ublas::vector
>    104  # endif
> ---------------------------------------------------------------
>     Does this mean that cppad-devel should have
>     "Requires: boost-devel"?

The preprocessor symbol CPPAD_TEST_VECTOR is used to change which template
vector class is used for a large number of the CppAD tests. 

If the option
     --with-stdvector
is included on the CppAD configure command line, the standard vector template
class is used for these tests.

If the option
     BOOST_DIR=BoostDir
is included on the CppAD configure command line, the boost vector class will be
used for these tests (and in this case, boost will need to be installed on the
system to run the tests).


The possible CppAD configure options are documented under the heading Configure
on the web page
     http://www.coin-or.org/CppAD/Doc/installunix.htm
Currently, all of the options, except for the --prefix and --with-Documentation
options, only determine what is tested and in no way change how the final CppAD
installation works. Some of the options require other packages to be installed
because they either test CppAD working with the other packages or compare CppAD
with other packages.

> 
>   - IMO it is bettar that this package has "Requires:
>     libstdc++-devel".

All CppAD requires is a version of C++ that conforms to the language standard;
see ISO/IEC 14882. Does the library mentioned above somehow make up for a
deficiency (lack of support for standard library functions) in some C++ compilers ?

> 
> * Timestamps
>   - As this package installs text files only, keeping timestamps
>     on installed files is highly preferred.
>     As "make install" uses install-sh, perhaps the following method
>     works for keeping timestamps.
> ---------------------------------------------------------------
> %install
> rm -rf $RPM_BUILD_ROOT
> 
> export CPPROG="cp -p"
> make install DESTDIR=$RPM_BUILD_ROOT
> ---------------------------------------------------------------

I am not sure what the timestamps should correspond to. For example, the file
    /usr/include/cppad/cppad.hpp
is over a month old; see
   https://projects.coin-or.org/CppAD/browser/trunk/cppad/cppad.hpp
but its time stamp is December 25 (when the tarball was created).

In addition, there is an extra difficulty for the timestamps of the GPL license
version. The corresponding files are created from the CPL license version by
having sed change the copyright message in each of the source code files
(COIN-OR has been given permission to make this change).


> 
> * Documents
>   - Please add the following document(s) to %doc in -devel.
> ---------------------------------------------------------------
> AUTHORS
> ChangeLog
> ---------------------------------------------------------------
> 
Done. 
In addition, the file uw_copy_040507.html is included because it is referenced
by AUTHORS.
Comment 17 Mamoru TASAKA 2007-12-27 10:26:16 EST
(In reply to comment #16)
> (In reply to comment #15)
> > For 20071225-1:
> > 
> > * Requires:
> >   - %_includedir/%name/local/test_vector.hpp contains
> > ---------------------------------------------------------------
> >    101  # if CPPAD_BOOSTVECTOR
> >    102  # include <boost/numeric/ublas/vector.hpp>
> >    103  # define CPPAD_TEST_VECTOR boost::numeric::ublas::vector
> >    104  # endif
> > ---------------------------------------------------------------
> >     Does this mean that cppad-devel should have
> >     "Requires: boost-devel"?
> 
> The preprocessor symbol CPPAD_TEST_VECTOR is used to change which template
> vector class is used for a large number of the CppAD tests. 
 Okay.

> >   - IMO it is bettar that this package has "Requires:
> >     libstdc++-devel".
> 
> All CppAD requires is a version of C++ that conforms to the language standard;
> see ISO/IEC 14882. 
  Okay.

> > * Timestamps
> >   - As this package installs text files only, keeping timestamps
> >     on installed files is highly preferred.
> >     As "make install" uses install-sh, perhaps the following method
> >     works for keeping timestamps.
> > ---------------------------------------------------------------
> > %install
> > rm -rf $RPM_BUILD_ROOT
> > 
> > export CPPROG="cp -p"
> > make install DESTDIR=$RPM_BUILD_ROOT
> > ---------------------------------------------------------------
> 
> I am not sure what the timestamps should correspond to. 
  Timestamps of the codes in tarball if possible.
Comment 18 Mamoru TASAKA 2007-12-27 10:31:07 EST
BTW I am waiting for your pre-review or another review request
as in comment 14.
Comment 19 Brad Bell 2007-12-27 12:05:54 EST
(In reply to comment #18)
> BTW I am waiting for your pre-review or another review request
> as in comment 14.

As I understand your comment above, and item B in comment #14, I should review
one of the packages listed at.
       http://fedoraproject.org/PackageReviewStatus/NEW.html
My work involves software implementation of numerical methods for scientific
data analysis. The packages listed below seem appropriate for me to review.
Would you like to suggest one, or should I just pick one myself ?

R-packages: (statistical analysis of data)
https://bugzilla.redhat.com/show_bug.cgi?id=240497
https://bugzilla.redhat.com/show_bug.cgi?id=244237
https://bugzilla.redhat.com/show_bug.cgi?id=244234

xdms: (numerical methods and C++)
https://bugzilla.redhat.com/show_bug.cgi?id=326421

python numeric (numerical methods)
https://bugzilla.redhat.com/show_bug.cgi?id=226345

bison (a tool I use)
https://bugzilla.redhat.com/show_bug.cgi?id=225616

valgrind (a tool I use)
https://bugzilla.redhat.com/show_bug.cgi?id=226522

doxygen (a tool I use I should learn more about)
https://bugzilla.redhat.com/show_bug.cgi?id=225709

electric fense (I have written similar tools)
https://bugzilla.redhat.com/show_bug.cgi?id=225722

P.S.
I have looked at the package corresponding to
    https://bugzilla.redhat.com/show_bug.cgi?id=244234
and added comment #7 to that report.
Comment 20 Mamoru TASAKA 2007-12-27 12:49:59 EST
Well, 
- I am not familiar with R.. and R has special packaging guidelines.
- And please don't choose "Merge Review"

Perhaps it is better that you choose more recent review requests 
for pre-review.
Comment 21 Brad Bell 2007-12-27 14:07:44 EST
OK and glad I asked. 

I am not familiar with perl, but I think I can quickly learn enough to do a
review. The following package has not had any response yet
   https://bugzilla.redhat.com/show_bug.cgi?id=426561
Would it be appropriate ?
Comment 22 Mamoru TASAKA 2007-12-27 17:10:22 EST
Okay you can try.
Comment 23 Brad Bell 2007-12-29 09:14:08 EST
(In reply to comment #22)
> Okay you can try.

I was going though the review check list gathering all the information I could.
By the time I got back to the bug, two of the four issues I had noticed had
already been pointed out. 

I therefore decided to download the new spec file and souce and check the
remaining to issues. When they were still outstanding, I decided to post my them
immediately. See comment #6 in
     https://bugzilla.redhat.com/show_bug.cgi?id=426561
I was hasty in doing so, and had not read the entire page 
     http://fedoraproject.org/wiki/Packaging/Perl
carefully. Sorry about that.

Comment 24 Mamoru TASAKA 2007-12-29 20:48:21 EST
Well, okay.

----------------------------------------------------------------
   This package (cppad) is APPROVED by me
----------------------------------------------------------------

Please follow the procedure according to:
http://fedoraproject.org/wiki/PackageMaintainers/Join
from "Get a Fedora Account".
At a point a mail should be sent to sponsor members which notifies
that you need a sponsor (at the stage, please also write on
this bug for confirmation that you requested for sponsorship)
Then I will sponsor you.

If you want to import this package into Fedora 7/8, you also have
to look at
http://fedoraproject.org/wiki/Infrastructure/UpdatesSystem/Bodhi-info-DRAFT
(after once you rebuilt this package on Fedora rebuilding system).

If you have questions, please ask me.
Comment 25 Brad Bell 2007-12-30 08:40:21 EST
I have gone back over the cppad rpm with the review check list, just to be as
careful as possible before starting the process above. 

Using the techniques I used to check geoqo.spec, I and found a problem.
There are three (special case) files in
    http://www.coin-or.org/CppAD/download/cppad-20071225.gpl.tgz
that had the wrong copyright message (CPL instead of GPL); namely
    makefile.am
    mainfile.in
    omh/license.omh
This problem was only in the short copyright message at the top and does not
affect the output of the license in the documentation.

I can patch the source, but this does not seem like proper procedure to me. I
think it is better to fixed this in the upstream version. Would fixing this in
the upstream source be OK with you ?

Comment 26 Mamoru TASAKA 2007-12-30 09:23:29 EST
(In reply to comment #25)

> I can patch the source, but this does not seem like proper procedure to me. 
Actually.
> I
> think it is better to fixed this in the upstream version. Would fixing this in
> the upstream source be OK with you ?

Okay for this package.

Comment 27 Brad Bell 2007-12-30 11:45:55 EST
I have uploaded a new spec file
    http://www.seanet.com/~bradbell/cppad/cppad.spec
and a new source rpm
    http://www.seanet.com/~bradbell/cppad/cppad-20071229-1.fc7.src.rpm
that fix the problem mentioned in comment #25. I do not know of any problems
with these and plan to use them for the submission.

Next I will follow your suggestions in comment #24
Comment 28 Brad Bell 2007-12-30 20:30:47 EST
Back on 12/14 I signed up for a Fedora account and received a copy of the CLA.
During this process I set up a pgp key and password. I am new to pgp I was very
protective of the password. So much so, that my hand written note about it is
not explicit enough for me to recreate it. Thus, I have lost my password (sorry
about that).

How should I proceed ?
Comment 29 Mamoru TASAKA 2007-12-30 21:15:11 EST
It may be better that you ask it on fedora-devel-list (perhaps there
will be some people who are much more familiar with FAS than me)
Comment 30 Brad Bell 2008-01-01 02:39:50 EST
I received help from accounts@fedoraproject.org, solved the gpg problem, have
signed the CLA, and received a successful confirmation.
Comment 31 Brad Bell 2008-01-01 08:40:31 EST
(In reply to comment #24)
> Well, okay.
> 
> ----------------------------------------------------------------
>    This package (cppad) is APPROVED by me
> ----------------------------------------------------------------
> 
> Please follow the procedure according to:
> http://fedoraproject.org/wiki/PackageMaintainers/Join
> from "Get a Fedora Account".
> At a point a mail should be sent to sponsor members which notifies
> that you need a sponsor (at the stage, please also write on
> this bug for confirmation that you requested for sponsorship)

I am uncertain if the text in parenthesis means that I should write up a new bug
report for this project; i.e., restart a project review request ?

> Then I will sponsor you.
> 
> 
...
Comment 32 Mamoru TASAKA 2008-01-01 08:54:02 EST
(In reply to comment #31)
> > (at the stage, please also write on
> > this bug for confirmation that you requested for sponsorship)
> 
> I am uncertain if the text in parenthesis means that I should write up a new bug
> report for this project; i.e., restart a project review request ?
> 

Please read the section "Get a Fedora Account" of
http://fedoraproject.org/wiki/PackageMaintainers/Join 
-------------------------------------------------------------
            At the bottom, where it says "Add new membership", put cvsextras in
Groupname. Leave Role Type as user, and Role Domain empty.
          * Once this is submitted, your account will show up as "pending" to
all of the Fedora Package Collection sponsors (who will receive an email).
-------------------------------------------------------------
At this stage sponsor member should receive a mail that you have
requested sponsorship. But I want to make sure with what account name
you requested.
So when you have done this stage, please also write in this stage
that you actually requested sponsorship with your Fedora account name.
Comment 33 Brad Bell 2008-01-01 09:40:40 EST
I think that I know what happened. On the web page
    http://fedoraproject.org/wiki/PackageMaintainers/Join
under 
    Get a Fedora Account
the following text appears 
     Once this is submitted, your account will show up as 
     "pending" to all of the Fedora Package Collection 
     sponsors (who will receive an email).
Because the word "submitted" was used, I chose the "Submit" button in stead of
the "Add" button in the Fedora Account Login window. I will try selecting the
"Add" button and see if this works. 
Comment 34 Mamoru TASAKA 2008-01-01 10:26:57 EST
Now I should be sponsoring you. Please proceed.
Comment 35 Brad Bell 2008-01-01 11:28:19 EST
I am working through some of the steps in
  http://fedoraproject.org/wiki/PackageMaintainers/Join
and am currently at Add Package to CVS and Set Owner which directs me to
  http://fedoraproject.org/wiki/PackageMaintainers/CVSAdminProcedure
In these procedures it states:

"After your package is approved by the Package Review Process, you may request
for a CVS module to be created. Please copy this template into your Bugzilla
comment, and set fedora-cvs flag to ?"

The problem is that when I select "Requests" near the top of 
  https://bugzilla.redhat.com/request.cgi
there is no field labeled "comment" (to be filled in with the appropriate text).
 Perhaps one is not supposed to create a new item using the "Requests" tab for
this step of the procedures ?
Comment 36 Mamoru TASAKA 2008-01-01 11:39:55 EST
The CVSAdminProcedure wiki page says that you have to
- copy the template into _this_ bug ticket
- fill in the blank as Example
- and set fedora-cvs flag seen below in _this_ bug to ? .
Comment 37 Brad Bell 2008-01-01 12:32:41 EST
I want to be certain before submitting the a fedora-cvs request with the
following field values
    Package Name: cppad
    Short Description: A Package for Differentiation of C++ Algorithms
    Owners: bradbell
    Cvsextras Commits: yes
Perhaps your fedora account name (mtasaka) should be added to the or Owners or
InitialCC fields. Perhaps a Branches entry should be added, but the following
text from
    http://fedoraproject.org/wiki/PackageMaintainers/CVSAdminProcedure
seems to indicate that is not necessary: "The devel branch is implicit and
always created, so you need not list it."
Comment 38 Mamoru TASAKA 2008-01-01 12:39:14 EST
You don't have to add my FAS name to CC or owners. If you want to do,
you can.

As written the current valid branches are F-7 F-8 EL-4 EL-5 OLPC-2.
For example, if you want to maintain this package on Fedora 8, you have
to add "Branches: F-8". Only "devel" branch is automatically created.
Comment 39 Brad Bell 2008-01-01 13:10:14 EST
New Package CVS Request
=======================
Package Name: cppad
Short Description: A Package for Differentiation of C++ Algorithms
Owners: bradbell
Branches: F-7 F-8
Cvsextras Commits: yes
Comment 40 Kevin Fenzi 2008-01-01 18:16:01 EST
cvs done.
Comment 41 Brad Bell 2008-01-05 23:25:06 EST
With the help of Kevin, I have completed the cvs-import.sh for F-7, F-8, and
devel as per the instructions on page
    http://fedoraproject.org/wiki/PackageMaintainers/Join
under the heading Import Your Package.

It appears from the next two headings on the web page mentioned above, Checkout
the module and Tag Your Branches, that the next step is to check out a fresh
copy of cppad and then execute the command
    make tag
in each of the branch directoies; i.e., F-7, F-8, and devel. But it appears that
the branches have already been tagged. To be specific, in response to
    make tag
in the devel branch, I get the message:
       ERROR: Tag cppad-20071229-1_fc9 has been already created.
       The following tags have been created so far
       cppad-20071229-1_fc9:devel:bradbell:1199571942
       cppad-20071229-1_fc7:F-7:bradbell:1199572233
       cppad-20071229-1_fc8:F-8:bradbell:1199572567
       cvs tag: Pre-tag check failed

P.S.
As I understand it, I will need 'koji' install to properly execute the 
       make build 
command. I am currently using Cygwin and there does not seem to be a version of
koji for that system. I am trying to get a version of Fedora up in a virtual
environment on my home machine, but I am having some problems doing so. Sorry
for the delay.

Comment 42 Mamoru TASAKA 2008-01-09 10:20:07 EST
Would you try to rebuild cppad on koji? If some troubles
still exist, please tell me.
Comment 43 Brad Bell 2008-01-09 10:52:03 EST
My trouble is related to my DSL modem at home. It seems to connect fine through
Windows, but I am having trouble connecting through Fedora. I think I have found
someone I know who may be capable of solving the problem. In the meantime, I am
using cygwin to access Fedora's cvs repository and  Kevin has been helping me by
submitting my builds and reporting back the results; see the changelog in
http://cvs.fedoraproject.org/viewcvs/rpms/cppad/devel/cppad.spec?rev=1.3&view=auto
Comment 44 Brad Bell 2008-01-10 10:30:01 EST
In the buildlog
   http://koji.fedoraproject.org/koji/getfile?taskID=337551&name=build.log
the following line appears:
   + ./configure --build=ppc-redhat-linux-gnu --host=ppc-redhat-linux-gnu ...
Does this mean that the tests are being run on a Power PC.

The cppad test suite assume that DPL_EPSILON is about 1e-14 or smaller, but
perhaps this is not the case. I am considering writing a spec files change with
the purpose of printing out the value of DBL_EPSILON on the target machine.

Is this how people normally proceed in a case like this (because one cannot
expect to log into the machine and run the code in the debugger) ?

P.S.
I think that I have to access koji from one of my personal machines; I plan to
try it with this change.
Comment 45 Kevin Fenzi 2008-01-10 11:06:42 EST
Yes, that means a ppc machine was picked out of the build pool to build this
(since it's noarch). 

Is it really noarch though? I see it calling g++? 

I have a ppc32 machine here running rawhide you are welcome to use to test... 
just drop me a ssh key in an email and I will add you an account. 
Comment 46 Brad Bell 2008-01-10 12:32:51 EST
cppad is a library of C++ include files. The rpmbuild command is set to run a
set of the tests. These tests are intended to make sure that cppad is
functioning properly on the target machine. While the rpm and distributed files
do not depend on the architecture, the test results do.

I thought that, in the noarch case, koji ran the rpmbuild on multiple machines
to see that all the tests passed. Perhaps I was mistaken in this.

I plan to add printing of DBL_EPSILON during the first test, just to make sure
of its value. If the test fails, and the value of DBL_EPSILON does not explain
it, I will try Kevin's offer in comment #45.
Comment 47 Brad Bell 2008-01-11 17:20:14 EST
The following build
http://koji.fedoraproject.org/koji/getfile?taskID=340117&name=build.log
contains the text:
+ speed/example/example correct 123
Ok:    det_of_minor
Ok:    det_by_minor
Ok:    det_by_lu
Error: speed_test
1 tests failed.
error: Bad exit status from /var/tmp/rpm-tmp.40577 (%check)

These are correctness tests (not speed tests), but speed_test checks that speed
tests results will be correct (hence in a way it is a speed test). It probably
failed because the build system is busy doing lots of things. I am going to
change the cppad.spec file so that it execludes speed_test.

I have a question of a general nature about version numbers: I am currently
debugging the build on one branch, F-8. When I get done, I expect to copy the
changes over to the other branches and run them there. Should I use the same
version number for all the branches, or should each branch use the lowest
possible version number for that branch ?
Comment 48 Mamoru TASAKA 2008-01-12 00:33:36 EST
(In reply to comment #47)
> I have a question of a general nature about version numbers: I am currently
> debugging the build on one branch, F-8. When I get done, I expect to copy the
> changes over to the other branches and run them there. Should I use the same
> version number for all the branches, or should each branch use the lowest
> possible version number for that branch ?
> 

Well, the EVR (Epoch:Version:Release) must be kept in order that
devel > F-8 > F-7. If current F-8 EVR is 20071229-5.fc8, then
F-7 EVR must be smaller than 20071229-5.fc8 (20071229-5.fc7 is okay),
and devel EVR must be larger than 20071229-5.fc8 (20071229-5.fc9
is okay).
Comment 49 Brad Bell 2008-01-12 10:25:19 EST
The builds of cppad-20071229-6 appears to have been successful on all the
branches; i.e., F-7, F-8, and devel; see
  http://koji.fedoraproject.org/koji/taskinfo?taskID=344386
  http://koji.fedoraproject.org/koji/taskinfo?taskID=344323
  http://koji.fedoraproject.org/koji/taskinfo?taskID=344366

Comment 50 Mamoru TASAKA 2008-01-12 12:28:50 EST
Okay. Then for F-7 and F-8 please request to push cppad to
stable or testing repository using bodhi system and close this
bug as NEXTRELEASE.
Comment 51 Brad Bell 2008-01-12 22:01:38 EST
I have created an update for F-7 using the bodhi web interface; see
https://admin.fedoraproject.org/updates/F7/pending/cppad-20071229-6.fc7

I think that the next step is to push to stable, but I do not see how that is
done using the web interface.
Comment 52 Mamoru TASAKA 2008-01-12 22:22:16 EST
You can "edit" the bodhi request to make cppad pushed to stable.

Also, please request also for F-8 bodhi on bodhi.
Comment 53 Brad Bell 2008-01-13 08:56:12 EST
When I select Edit from the web page
https://admin.fedoraproject.org/updates/F7/pending/cppad-20071229-6.fc7
I do not see a way to select "push", the fields I see are listed below. In
addition, I am uncertain as to the meaning of the "Close Bugs when update is
stable" check box, does this mean it will close the cppad review request bug ?

Package: a one line text entry field.
Add another build: a button type field.
Release: a select from a list field.
Type: a select from a list field.
Request: a select from a list field.
Bugs: a one line text entry field.
Close Bugs when update is stable: a check box.
Notes: a multiple line text entry field.
Suggest Reboot: a check box.
Save Update: a push button.
Comment 54 Mamoru TASAKA 2008-01-13 09:39:59 EST
"Close bugs when update is stable" is used when the requested rpms
resolves the issues reported on the corresponding bugs.
For example, see
https://admin.fedoraproject.org/updates/F7/FEDORA-2008-0517

As far as I see your cppad F-7 request it is correct. So please request
for F-8 cppad also and close this bug as NEXTRELEASE.
Comment 55 Brad Bell 2008-01-13 10:08:12 EST
The web page for the F-8 update is
https://admin.fedoraproject.org/updates/F8/pending/cppad-20071229-6.fc8

I am closing this bug as NEXTRELEASE.

Thanks !
Comment 56 Fedora Update System 2008-01-15 18:04:25 EST
cppad-20071229-6.fc8 has been pushed to the Fedora 8 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 57 Fedora Update System 2008-01-15 18:12:56 EST
cppad-20071229-6.fc7 has been pushed to the Fedora 7 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 58 Brad Bell 2008-04-06 20:14:19 EDT
Package Change Request
======================
Package Name: cppad
New Branches: EL-5
Comment 59 Kevin Fenzi 2008-04-06 23:47:04 EDT
cvs done.

Note You need to log in before you can comment on or make changes to this bug.