diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index a4a90fa..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-cppad-20090303.0.gpl.tgz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6dd6f65
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,20 @@
+# ignore swap files created by vim editor
+/*.swp
+# ignore rpm files created by fedpkg srpm
+/*.rpm
+# ignore log files created by fedpkg local
+/*.log
+# temporary files
+/temp
+/temp.*
+# ignore result drectory created by fedpkg mockbuild
+/results_cppad/
+# directories used like git cache
+/new/
+/new.*/
+# ---------------------------------------------------------------------------
+#
+# Most recent upstrem source
+/CppAD-20240000.3.tar.gz
+/CppAD-20250000.0.tar.gz
+/CppAD-20260000.0.tar.gz
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 0b7a4f3..0000000
--- a/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for source rpm: cppad
-# $Id$
-NAME := cppad
-SPECFILE = $(firstword $(wildcard *.spec))
-
-define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
-endef
-
-MAKEFILE_COMMON := $(shell $(find-makefile-common))
-
-ifeq ($(MAKEFILE_COMMON),)
-# attept a checkout
-define checkout-makefile-common
-test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
-endef
-
-MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
-endif
-
-include $(MAKEFILE_COMMON)
diff --git a/cppad.spec b/cppad.spec
index b8c8682..b3b1612 100644
--- a/cppad.spec
+++ b/cppad.spec
@@ -1,39 +1,64 @@
+# vim: set expandtab:
# ----------------------------------------------------------------------------
-# RPM source for this version of cppad.spec:
-# http://www.seanet.com/~bradbell/cppad/cppad-%{version}-%{release}.fc7.src.rpm
+# Preamble
# ----------------------------------------------------------------------------
-# Known Problems:
+# fedpkg lint: W: no-documentation
+# The %%doc directive below installs COPYING and uw_copy_040507.html
+# as part of the main package, so this warning should not be generated; see
+# https://fedoraproject.org/wiki/Common_Rpmlint_issues#no-documentation
+# 'This would be rare as most packages should have some license text,
+# a changelog or other information that is better placed in the main package
+# instead of a -doc subpackage.'
#
-# After installation of cppad-doc-%{version} the command
-# rpmlint cppad-doc
-# results in the following error message
-# W: file-not-utf8 /usr/share/doc/cppad-%{version}/pmathmlcss.xsl
-# The file pmathmlcss.xsl is the standard presentation MathML style sheet.
-# Except for white space and a comment at the top, it is identical to
-# http://www.w3.org/Math/XSL/pmathmlcss.xsl
-# (use wget and diff -b to see that this is true).
-# ----------------------------------------------------------------------------
+# year
+# The year corresponding to this version
+%define year 2026
+#
+# soversion
+# fedora uses its own soversion number for cppad_lib where
+# 1.0 corresponds to year 2020
+%define soversion %[ %year - 2019 ]
+#
+# This is really an out of soruce build because the source is in the
+# CppAD-%%{version} sub-directory of the source. The fedora macros are
+# confused and need this defined true.
+%define __cmake_in_source_build 1
+# ----------------------------------------------------------------------------
-Name: cppad
-Version: 20090303.0
-Release: 5%{?dist}
-Summary: No base package is installed, see %{name}-devel
+# Fedora Release starts with 1; see
+# https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
+Name: cppad
+Version: %{year}0000.0
+Release: 1%{?dist}
+Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc
+#
+License: EPL-2.0 OR GPL-2.0-or-later
+URL: https://github.com/coin-or/CppAD
+Source: %{url}/archive/%{version}/CppAD-%{version}.tar.gz
+#
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: cmake >= 3.10
+BuildRequires: make
+BuildRequires: python-xrst >= 2025.0
+BuildRequires: python-sphinx_rtd_theme
+BuildRequires: python-tomli
+BuildRequires: python-sphinx-copybutton
+BuildRequires: python-pyspellchecker
+BuildRequires: python-furo
-Group: Development/Libraries
-License: GPLv2
-URL: http://www.coin-or.org/CppAD/
-Source: http://www.coin-or.org/download/source/CppAD/%{name}-%{version}.gpl.tgz
-BuildArch: noarch
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
-There is no base %{name} package installation, only %{name}-devel is installed.
+C++ Algorithmic Differentiation (AD) include and library files.
# ---------------------------------------------------------------------------
%package devel
-Summary: Development libraries for %{name}
-Group: Development/Libraries
+Summary: The %{name} C++ include files for Algorithmic Differentiation (AD)
Provides: %{name} = %{version}-%{release}
+# Requested by bug report
+# https://bugzilla.redhat.com/show_bug.cgi?id=1197488
+Provides: coin-or-cppad = %{version}-%{release}
+Provides: coin-or-cppad-devel = %{version}-%{release}
%description devel
We refer to the step by step conversion from an algorithm that computes
@@ -42,125 +67,619 @@ Algorithmic Differentiation (often referred to as Automatic Differentiation.)
Given a C++ algorithm that computes function values, %{name} generates an
algorithm that computes its derivative values. A brief introduction to
Algorithmic Differentiation (AD) can be found at
-http://en.wikipedia.org/wiki/Automatic_differentiation
-
-# ----------------------------------------------------------------------------
-%package doc
-Summary: Documentation for %{name}
-Group: Development/Libraries
-
-%description doc
-The %{name}-doc package contains the xml documentation for
-the %{name}-devel package.
-Links to an html version of the %{name} documentaiton,
-for the most recent version of %{name}, can be found at web site
-http://www.coin-or.org/CppAD/.
-In addition, printable versions of the documentation
-as a single web page, in both html and xml, can be found at that web site.
-
-# ----------------------------------------------------------------------------
+ http://en.wikipedia.org/wiki/Automatic_differentiation
+The documentation for the %{year} version
+ https://cppad.readthedocs.io/stable-%{year}
+The documentation for the most recent version of %{name} can be found at
+ https://cppad.readthedocs.io/latest
+# -----------------------------------------------------------------------------
+# prep
+# -----------------------------------------------------------------------------
%prep
-%setup -q
-
-# Patch problems fix in trunk on 20090606, but not yet in any release
-# This grep should fail once the version passes 20090606
-grep 'x\[2\] = 5.0; x\[2\] = 5.0;' test_more/jacobian.cpp
-# This patch will no longer be needed once the version passes 20090606
-sed -i.stamp test_more/jacobian.cpp \
- -e 's/x\[2\] = 5.0; x\[2\] = 5.0;/x[1] = 5.0; x[2] = 5.0;/'
-# This patch will no longer be needed once the version passes 20090606
-sed -i.stamp cppad/local/default.hpp \
- -e 's/AD::AD(void) :/& value_(Base(0)), /'
-
-# This patch will no longer be needed once branches/sweep is merged into
-# the CppAD trunk (date is as yet unknown).
-sed -i.stamp cppad/local/fun_construct.hpp \
- -e '/for(i = 0; i < m; i++)/,$d'
-cat << EOF >> cppad/local/fun_construct.hpp
-# ifndef NDEBUG
- for(i = 0; i < m; i++) if( taylor_[dep_taddr_[i]] != y[i].value_ )
- { using std::endl;
- std::ostringstream buf;
- buf << "A dependent variable value is not equal to "
- << "its tape evaluation value (perhaps it is nan)" << endl
- << "Dependent variable value = "
- << y[i].value_ << endl
- << "Tape evaluation value = "
- << taylor_[dep_taddr_[i]] << endl
- << "Difference = "
- << y[i].value_ - taylor_[dep_taddr_[i]] << endl
- ;
- CPPAD_ASSERT_KNOWN(
- 0,
- buf.str().c_str()
- );
- }
-# endif
+#
+# Create an empty directory named cppad-%%{version},
+# changed into that directory and unpack Source.
+%setup -q -c
+#
+# xrst.toml
+# This is not a git repository so suppress the warning that could not double
+# check that all the files with xrst commands were included.
+echo '' >> CppAD-%{version}/xrst.toml
+echo '[input_files]' >> CppAD-%{version}/xrst.toml
+echo 'data = [ ]' >> CppAD-%{version}/xrst.toml
+#
+# COPYING, uw_copy_040507.html
+cp CppAD-%{version}/COPYING COPYING
+cp CppAD-%{version}/uw_copy_040507.html uw_copy_040507.html
+#
+# cppad_lib/CMakeLists.txt
+# cppad_lib: replace soversion number and ensure build type is release
+sed -i.bak CppAD-%{version}/cppad_lib/CMakeLists.txt \
+ -e "s|print_variable(soversion)|SET(soversion %{soversion} )\n&|" \
+ -e "s|\${cppad_debug_which}|debug_none|"
+#
+# Print machine epsilon before any other testing
+cat << EOF > temp.cpp
+# include
+# include
+template void print_epsilon(const char* type_name)
+{ Float epsilon = std::numeric_limits::epsilon();
+ std::cout << type_name << " epsilon = " << epsilon << "\n";
+}
+int main(void)
+{ print_epsilon("float");
+ print_epsilon("double");
+ print_epsilon("long double");
+ return 0;
}
-
-} // END CppAD namespace
-
-# endif
EOF
-
-# change example/example.cpp to print out machine epsilon
-cat << EOF > example.sed
-/^int main(void)/N
-s|^int main(void)\n{|# include \\
-int main(void)\\
-{ // print machine epsilon\\
- std::cout << "DBL_EPSILON =" << DBL_EPSILON << std::endl;\\
-\\
-|
-EOF
-sed -i.stamp example/example.cpp -f example.sed
-
-# See Sat Jan 12 2008 log entry
-sed -i.stamp speed/example/example.cpp -e '/Run(speed_test,/d'
-
-# Remove setting of permissions in documentation destination directory.
-# Create the doc_prefix directory (if it does not already exist).
-# (Note we are not using a postfix directory, so can overwrite its case.)
-sed -i.stamp makefile.am \
- -e '/chmod -R .* $(doc_package)/d'
-sed -i.stamp makefile.in \
- -e '/chmod -R .* $(doc_package)/d'
-
+g++ -std=c++11 temp.cpp -o temp
+./temp > temp.out
+cat temp.out
+# ----------------------------------------------------------------------------
+# build
+# -----------------------------------------------------------------------------
%build
-%configure --with-Documentation \
- --with-Example \
- --with-TestMore \
- --with-Speed
-make %{?_smp_mflags}
+#
+# 1. The debug_all is overridden for cppad_lib by the edit of
+# cppad_lib/CMakeLists.txt above
+#
+# 2. The gnu c++ compiler seems to be generating an incorrect warning about
+# array bounds in thread_alloc.hpp. Use -Wno-array-bounds to suppress it.
+#
+# cppad_cxx_flags
+# extra C++ compiler flags
+cppad_cxx_flags=\
+'-Wall -pedantic-errors -std=c++11 -Wshadow -Wconversion -Wno-array-bounds'
+#
+# CMake Warning:
+# Manually-specified variables were not used by the project:
+# CMAKE_C_FLAGS_RELEASE
+# CMAKE_Fortran_FLAGS_RELEASE
+# CMAKE_INSTALL_DO_STRIP
+# INCLUDE_INSTALL_DIR
+# LIB_INSTALL_DIR
+# LIB_SUFFIX
+# SHARE_INSTALL_PREFIX
+# SYSCONF_INSTALL_DIR
+#
+%cmake --version
+%cmake \
+ -S CppAD-%{version} \
+ -B . \
+ \
+ -D CMAKE_VERBOSE_MAKEFILE=0 \
+ -G 'Unix Makefiles' \
+ \
+ -D cppad_prefix=%{_prefix} \
+ -D cppad_postfix='' \
+ \
+ -D cmake_install_includedirs=include \
+ -D cmake_install_libdirs=%{_lib} \
+ \
+ -D cmake_install_datadir=share \
+ -D cmake_install_docdir='NOTFOUND' \
+ \
+ -D include_doc=true \
+ -D cmake_defined_ok=false \
+ -D cppad_static_lib=false \
+ -D cppad_debug_and_release=true \
+ \
+ -D include_adolc=false \
+ -D include_ipopt=false \
+ -D include_cppadcg=false \
+ \
+ -D colpack_prefix='NOTFOUND' \
+ -D fadbad_prefix='NOTFOUND' \
+ -D sacado_prefix='NOTFOUND' \
+ \
+ -D cppad_cxx_flags="$cppad_cxx_flags" \
+ -D cppad_profile_flag='' \
+ -D cppad_testvector=cppad \
+ -D cppad_max_num_threads=64 \
+ -D cppad_tape_id_type=size_t \
+ -D cppad_tape_addr_type='unsigned int' \
+ -D cppad_debug_which='debug_all'
+#
+# see https://docs.fedoraproject.org/en-US/packaging-guidelines/
+# parallel_make
+%make_build
+# -----------------------------------------------------------------------------
+# Install
+# -----------------------------------------------------------------------------
%install
-rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=$RPM_BUILD_ROOT
+# https://docs.fedoraproject.org/en-US/packaging-guidelines/
+# why_the_makeinstall_macro_should_not_be_used
+%make_install
-%check
-example/example
-test_more/test_more
-speed/cppad/cppad correct 123 true
-speed/cppad/cppad correct 123 false
-speed/double/double correct 123 true
-speed/example/example
-speed/profile/profile correct 123 true
+%files
+%{_libdir}/libcppad_lib.so.%{soversion}
+
+# These documentation files come from the source code tarball
+%doc COPYING uw_copy_040507.html
-%clean
-# cleanup
-rm -rf $RPM_BUILD_ROOT
%files devel
-%defattr(-,root,root,-)
-%doc COPYING ChangeLog AUTHORS uw_copy_040507.html
%{_includedir}/%{name}
+%{_datadir}/pkgconfig/%{name}.pc
+%{_libdir}/pkgconfig/%{name}.pc
+%{_libdir}/libcppad_lib.so
-%files doc
-%defattr(-,root,root,-)
-%{_docdir}/%{name}-%{version}
-
+# -----------------------------------------------------------------------------
+# Check
+# -----------------------------------------------------------------------------
+#
+%check
+#
+# Test installed version of CppAD
+g++ CppAD-%{version}/example/get_started/get_started.cpp \
+ -I %{buildroot}/%{_includedir} \
+ -Wl,-rpath,%{buildroot}/%{_libdir} \
+ %{buildroot}/%{_libdir}/libcppad_lib.so \
+ -o get_started
+./get_started
+#
+# Test building documentation
+make %{?_smp_mflags} doc_user
+#
+# Run the all the standard CppAD tests.
+make %{?_smp_mflags} check
+# ----------------------------------------------------------------------------
+#
+# Use %%clean with no arguments to surpress the cleanup of BUILDROOT
+# This enables one to check that the necessary files are installed.
+%%clean
# ----------------------------------------------------------------------------
%changelog
+* Mon Jan 05 2026 Brad Bell - 20260000.0-1
+- New upstream source cppad-20260000.0.
+
+* Wed Jul 23 2025 Fedora Release Engineering - 20250000.0-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
+
+* Wed Feb 05 2025 - 20250000.0-4
+- python-toml is deprecated, so current xrst-python uses python-tomli instead
+
+* Sun Jan 19 2025 Brad Bell - 20250000.0-3
+- 1. Add the year macro and use it to define soversion and Version.
+- 2. Remove the cppad-doc subpackage because documantion for this stable
+ version is not available at https://cppad.readthedocs.io/stable-2025/ .
+- 3. Change include_doc=true, cmake_install_docdir=NOTFOUND, and add
+ make doc_user to test building, but not installing, user documentation.
+- 4. The ppc64le arch has been fixed and now the CppAD to_string test pass
+ for long double (so we do not need to skip that test).
+- 5. Use get_started.cpp to test the installed version of CppAD.
+
+* Sat Jan 18 2025 Brad Bell - 20250000.0-2
+- This fixes two bugs and will not be necessary
+- once the upstream source advances to 20250000.1.
+
+* Thu Jan 16 2025 Fedora Release Engineering - 20250000.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
+* Tue Jan 14 2025 Brad Bell - 20250000.0-1
+- New upstream source cppad-20250000.0.
+
+* Wed Jul 17 2024 Fedora Release Engineering - 20240000.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Fri Mar 01 2024 Brad Bell - 20240000.3-2
+- This fixes a bug in fun2val.hpp. This change will not be necessary
+- once the upstream source advances to 20240000.4.
+
+* Sat Feb 17 2024 Brad Bell - 20240000.3-1
+- This fixes a long standing bug; see the heading 02-14 on
+- https://cppad.readthedocs.io/latest/whats_new_24.html
+
+* Wed Jan 24 2024 Fedora Release Engineering - 20240000.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Fri Jan 19 2024 Fedora Release Engineering - 20240000.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Wed Jan 17 2024 Brad Bell - 20240000.2-1
+- Upstream moved i386 special cases into cmake script.
+- Checking that other upstream changes do not affect Fedora install.
+
+* Tue Jan 09 2024 Brad Bell - 20240000.1-1
+- thread_alloc.hpp: i386 i686: fix allignment for doubles
+- op_hash_table: i386 i686: avoid second specialization of is_pod for same type.
+- xrst.toml: add comment about why we are adding to this file.
+- xrst command: speed up parallel build by settting number_jobs.
+
+
+* Mon Jan 08 2024 Brad Bell - 20240000.1-1
+- Upstream fix of bug found by build on buildvm-x86-16.iad2.fedoraproject.org
+
+* Sat Jan 06 2024 Brad Bell - 20240000.0-1
+- New upstream source cppad-20240000.0.
+- require python-xrst >= 2024.0
+- xrst.toml: no need to change to pyenchant because pyspellchecker avaialble
+- upstream source changed CPPAD_DEBUG_AND_RELEASE to a cmake argument
+
+* Mon Dec 25 2023 Brad Bell - 20230000.0-3
+- migrated to SPDX license
+- move %%doc directive before subpackages (becasue it is in main package)
+
+* Wed Jul 19 2023 Fedora Release Engineering - 20230000.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Sun Jan 29 2023 Brad Bell - 20230000.0-1
+- Move libcppad_lib.so to main package (fixes a fedpkg lint error).
+- Fix comment about where doc files come from.
+- Move %%define __cmake_in_source_build to top of spec file.
+- Add discussion of fedpkg lint files-duplicate warning.
+
+* Sat Jan 28 2023 Brad Bell - 20230000.0-1
+- Advance upstream source to 2023.
+- Add python-xrst to BuildRequires so can buile documentation.
+- Remove Source1, change Source0 -> Source, and make definition so tarball
+ has the same name as the directory it creates.
+- Change URL from documentation to git repo so can use in Source definition.
+- Change some cmake definitions from empty string to NOTFOUND.
+- Explicity specify the source directory (-S) and binary (-B) in camke comamnd.
+- Add comments about __cmake_in_source_build confusion
+- Update comments about cmake settings and warnings
+
+* Thu Jan 19 2023 Fedora Release Engineering - 20220000.4-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Wed Jul 20 2022 Fedora Release Engineering - 20220000.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Sat May 21 2022 Brad Bell - 20220000.4-1
+- Advance to upstream 20220000.4. Main motivation for this is to make
+ cppad_eigen.hpp work with Eigen 3.4.0.
+
+* Mon Feb 14 2022 Brad Bell - 20220000.1-1
+- Not necessary to advance to 20220000.2 because Fedora build is getting
+ correct result for cppad.pc.
+
+* Wed Feb 02 2022 Brad Bell - 20220000.1-1
+- Try commenting out to_string test of long double on ppc56le arch.
+ This problem does not reproduce on ppc64le-test.fedorainfracloud.org.
+
+* Tue Feb 01 2022 Brad Bell - 20220000.1-1
+- Modify to_string.cpp patch to print out more information on failure.
+- Add simple program to print machine epsilon before any other testing.
+
+* Mon Jan 31 2022 Brad Bell - 20220000.1-1
+- Fix following long standing typos in cmake command:
+- 1. cppad_test_vector -> cppad_testvector
+- 2. cppad_max_num_theads -> cppad_max_num_threads
+- Temporary change to debug ppc64le build failure: replace to_string.cpp
+- Replace temporary change by a patch to example/utility/to_string.cpp
+
+* Mon Jan 24 2022 Brad Bell - 20220000.1-1
+- Advance to upstream source 20220000.1
+- Add -Wno-array-bounds to compiler flags (see remarks about this flag)
+
+* Wed Jan 19 2022 Fedora Release Engineering - 20210000.7-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Mon Aug 02 2021 Brad Bell - 20210000.7-1
+- Advance to upstream source 20210000.7
+
+* Wed Jul 21 2021 Fedora Release Engineering - 20210000.5-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Sun Mar 07 2021 Brad Bell - 20210000.5-2
+- Remove %%debug_package (not necessary to create debug info).
+- Use %%setup to unpack tarballs (sets premissions properly).
+- Add comments about using %%clean to check BUILDROOT.
+
+* Sun Feb 28 2021 Brad Bell - 20210000.5-1
+- Advance to upstream source 20210000.5
+- Remove patches that are no longer necessary.
+- Change: Source1, Source2 -> Source0, Source1.
+- Change: make %%{?_smp_mflags} -> %%make_build
+- Change: make install DESTDIR=%%{buildroot} -> %%make_install.
+
+* Thu Feb 18 2021 Brad Bell - 20210000.3-3
+- Patch corresponding to bug fix in upstream source 20210000.5
+
+* Tue Feb 02 2021 Brad Bell - 20210000.3-2
+- Patch corresponding to bug fix in upstream source 20210000.4
+
+* Tue Jan 26 2021 Brad Bell - 20210000.3-1
+- Advance to upstream source 20210000.3
+- Remove patches that are no longer necessary.
+- Update cmake command line to new version of upstream source.
+
+* Tue Jan 26 2021 Fedora Release Engineering - 20200000.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Sun Dec 27 2020 Brad Bell - 20200000.0-7
+- Add _smp_mflags to the make check command (parallel make)
+- Build Debuginfo version of the cppad_lib library.
+
+* Sat Aug 01 2020 Brad Bell - 20200000.0-6
+- define __cmake_in_source_build see:
+ https://docs.fedoraproject.org/en-US/packaging-guidelines/CMake/
+- Change soversion edit so modified soversion displayed during cmake command
+
+* Sat Aug 01 2020 Fedora Release Engineering - 20200000.0-5
+- Second attempt - Rebuilt for
+ https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Mon Jul 27 2020 Fedora Release Engineering - 20200000.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Tue Jan 28 2020 Fedora Release Engineering - 20200000.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Thu Jan 23 2020 Brad Bell - 20200000.0-2
+- Remove comment about object library becasue install libcppadlib.so
+- Patch to not install empty include (in 20200000.1 upstream)
+- Patch to not use GreaterThanZero during reverse mode (in 2020000.2)
+- Remove PowTestSeven which tested the GreaterThanZeor in reverse mode
+
+* Thu Jan 02 2020 Brad Bell - 20200000.0-1
+- Advance to version 2020 of cppad
+- This is a major change because it we need to install the binary cppad_lib.
+- No longer have lint error because must build library before installing.
+- Remove patch for upstream source < 20190200.5.
+- No debug_package, so need to ensure CPPAD_DEBUG_AND_RELEASE always defined.
+- cppad_deprecatred is no longer in cmake command line.
+- cppad_debug_which is set to debug_all and overridden for cppad_lib directory.
+
+* Wed Sep 18 2019 Brad Bell - 20190200.4-2
+- fedpkg lint now reconizes EPL-2.0 license so remove comment about its error
+- Use sed edit of 20190200.4 to obtain bug fix that is in 20190200.5
+
+* Tue Aug 06 2019 Brad Bell - 20190200.4-1
+- Bug fix by advancing to upstream source 20190200.4
+
+* Wed Jul 24 2019 Fedora Release Engineering - 20190200.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Wed May 29 2019 Brad Bell - 20190200.0-3
+- Bug fix corresponding to upstream source 20190200.3.
+- Fix license field and add comment at top about fedpkg lint license mistake.
+
+* Fri Feb 01 2019 Brad Bell - 20190200.0-2
+- Test with corrected version of source2; i.e., 20190200.doc.tar.gz
+
+* Fri Feb 01 2019 Brad Bell - 20190200.0-1
+- Advance to version 2019 of cppad (actually 2019-02).
+- Home page and sources have moved to github.
+- Documentation is now a separate source tarball.
+- Copyright changed from GPL3 -> EPL2 with GPL2 or later option.
+- Change tabs to spaces and add 'vim: setexpandtab' command at top.
+- Install pkgconfig files in both data and lib directories.
+
+* Thu Jan 31 2019 Fedora Release Engineering - 20180000.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Thu Jul 12 2018 Fedora Release Engineering - 20180000.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Wed Feb 07 2018 Fedora Release Engineering - 20180000.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Tue Jan 02 2018 Brad Bell - 20180000.0-1
+- fedpkg lint no longer generates spelling error for use of 'devel'.
+- Comment out %%clean because only the normal build area is used.
+- Change minumum cmake version to 2.8 (needed for epel7 branch).
+- Use comments to better group to sections of the spec file.
+
+* Mon Jan 01 2018 Brad Bell - 20180000.0-1
+- Advance to version 2018 of cppad.
+
+* Fri Nov 24 2017 Brad Bell - 20170000.4-3
+- Use sed to add bug fix corresponding to cppad-20170000.8.
+
+* Wed Aug 02 2017 Fedora Release Engineering - 20170000.4-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering - 20170000.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Mon Apr 03 2017 Brad Bell - 20170000.4-1
+- Advance to 20170000.4 to take advantage of some upstrean bug fixes.
+
+* Tue Mar 07 2017 Brad Bell - 20170000.3-1
+- Advance to 20170000.3 to take advantage of some upstrean bug fixes.
+- The results of cmake comman depend on the architecture, so remove 'noarch'
+- see https://bugzilla.redhat.com/show_bug.cgi?id=1427391
+
+* Thu Feb 16 2017 Brad Bell - 20170000.1-3
+- patch source to fix bug in ForSparseHes.
+
+* Fri Feb 10 2017 Fedora Release Engineering - 20170000.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Fri Jan 20 2017 Brad Bell - 20170000.1-1
+- Advance to version 2017 of cppad.
+- New link for discussion of fedpkg lint warning rpm-builroot-usage
+- (old link seems to have disappeared).
+- Change CMakeLists.txtbak -> CMakeLists.txt.bak.
+- Use find to create list of CMakeLists.txt files and check that edit
+- of these files goes as expected.
+- Include explicit setting of all possible cmake command options
+- (empty prefix setting correspond to packages not included).
+- cppad_sparse_list=YES removed (YES is now always chosen by upstream source)
+- Change some comparisons to properly scale to machine epsilon.
+
+* Wed Feb 03 2016 Fedora Release Engineering - 20160000.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Fri Jan 1 2016 Brad Bell - 20160000.0-1
+- Advance to version 2016 of cppad.
+- Remove patch for static testing library (fixed upstream).
+- Remove patch to avoid install of cppad_colpack.cpp (fixed upstream).
+- Change cmake_install_prefix -> cppad_prefix (changed upstream).
+- Change c++98 to c++11 so installed version can support both (new capability).
+- Remove setting cppad_implicit_ctor_from_any type (no longer in upstream).
+- Add setting cppad_deprecated (new upstream flag).
+- Change original copy of files from *.stamp to *.bak
+- Patch CMakeLists.txt files to remove building and use of cppad_lib object.
+
+* Wed Jun 17 2015 Fedora Release Engineering - 20150000.9-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sat Apr 11 2015 Brad Bell - 20150000.9-2
+- Move Provides coin-or-cppad below %%package-devel;
+- see https://bugzilla.redhat.com/show_bug.cgi?id=1197488
+
+* Mon Mar 02 2015 Brad Bell - 20150000.9-1
+- 1: Advance to newer version of upstream source to fix some bugs.
+- 2: Remove patch of test_more/optimize.cpp which is no longer necessary.
+- 3: Add Provides coin-or-cppad.
+
+* Mon Feb 09 2015 Brad Bell - 20150000.4-3
+- 1: Change std=c++11 to std=c++98 so works with rel6 (also so works
+- in f20 and f21 when std=c++11 is not specified).
+- 2: Change speed/src/libspeed_src to be a static library because it is only
+- used for testing (shared library was not being found on epl6).
+- 3: Cleanup %%{buildroot} at start so it can be used for debugging on failure.
+- 4: Fix an exact equal check that should have been a near equal check.
+
+* Sun Feb 01 2015 Brad Bell - 20150000.4-2
+- Fix rmplint warning about macro-in-comment.
+- Edit comments at top of about warnings that won't be fixed.
+
+* Sat Jan 31 2015 Brad Bell - 20150000.4-1
+- Advance to version 2015 of cppad.
+- Ensure cmake >= 2.8; see https://bugzilla.redhat.com/show_bug.cgi?id=896116
+- Remove patch for location of docdir (fixed upstream).
+- Patch CMakeLists.txt to remove install of cppad_colpack.cpp (it is not used).
+- List all cmake options (including defaults) that are used by this install.
+
+* Sat Aug 16 2014 Fedora Release Engineering - 20140000.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering - 20140000.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+
+* Tue Jan 21 2014 Brad Bell - 20140000.2-1
+- Advance to version 2014 of cppad.
+- Add link to web discussion about rpm-buildroot-usage warning.
+- Fix rpmlint warning about mixing tabs and spaces in spec file.
+
+* Mon Oct 07 2013 Brad Bell - 20130000.3-1
+- 1. Use new upstream source to fix warnings generated by g++ 4.8.1.
+- 2. As per https://fedoraproject.org/wiki/Changes/UnversionedDocdirs
+- move xml documentation from /usr/share/doc/%%{name}-%%{version} to
+- /usr/share/doc/%%{name}
+
+* Sat Aug 03 2013 Fedora Release Engineering - 20130000.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Thu Feb 28 2013 Brad Bell - 20130000.2-1
+- Fix bug https://bugzilla.redhat.com/show_bug.cgi?id=913929
+- in the upstream soruce and use the corresponding upstream release.
+- Note, the previous commit, 20130000.1-3, could have been avoided using
+- https://fedoraproject.org/wiki/Using_the_Koji_build_system#Scratch_Builds
+
+* Wed Feb 13 2013 Brad Bell - 20130000.1-3
+- Attempt to reproduce failure reported in bug id=913929
+- (The build logs were deleted because I did not get to this soon enough)
+
+* Wed Feb 13 2013 Fedora Release Engineering - 20130000.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Tue Jan 08 2013 Brad Bell - 20130000.1-1
+- Use a new upstream source.
+- Remove the patches that were fixed in the upstream source.
+- Convert tabs to spaces (avoid rpmlint warning).
+- Fix rpmlint warning for cppad-doc group warning.
+- Add comment for rpmlint warning about using buildroot.
+
+* Sat Jan 05 2013 Brad Bell - 20130000.0-3
+- The patch.sed script in this file is for a final test of a solution on the
+- remote machine. Expect to modify upstream source so it is not necessary.
+
+* Fri Jan 04 2013 Brad Bell - 20130000.0-2
+- Debugging build to try to understand failure of test_more/epsilon.cpp
+- on a remote machine that I do not have access to.
+
+* Fri Jan 04 2013 Brad Bell - 20130000.0-1
+- Advance to version 2013 of cppad.
+- Remove old patches that are no longer necessary.
+- Convert from auto-tools to cmake build system.
+- Add new patches (using sed in setup section) that are now necessary.
+- Fix some bogus dates in change log by changing day of the week.
+- Getting folloing incorrect warning from g++ during rpmbuild:
+- .../cppad/thread_alloc.hpp:203:44: ... subsrcipt is above array bounds ...
+
+* Sun Oct 21 2012 Ralf Corsépius - 20120101.1-3
+- Switch to arch'ed BuildArch.
+
+* Wed Jul 18 2012 Fedora Release Engineering - 20120101.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Wed Jan 18 2012 Brad Bell - 20120101.1-1
+- Advance to version 2012 of cppad.
+- Remove old patches that are no longer necessary.
+- Add new patches (using sed in setup section) that are now necessary.
+- Change comments about rpmlint output (using more recent version).
+
+* Mon Oct 17 2011 Brad Bell - 20110101.5-1
+- Advance to next 2011 release to fix warnings generated by g++ 4.6.1.
+- Fix comment as to when certain sed patching will no longer be necessary.
+- Make sed patching of permissions in doc destination directory more specific.
+
+* Tue Feb 08 2011 Fedora Release Engineering - 20110101.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Wed Jan 19 2011 Brad Bell - 20110101.2-3
+- Remove duplicate test results from build.log
+- Improve comments before patching top level makefile.in.
+- Fix rpmlint warnings about %%{_docdir}, %%{name}, and %%{version} in comments.
+- Fix rpmlint warning by changing tabs to spaces.
+- Fix rpmlint wrning by removing dot at end of Summary.
+- Change RPM_BUILD_ROOT to _builddir.
+- Improve comments (at top) about know rpmlint warnings.
+
+* Tue Jan 18 2011 Brad Bell - 20110101.2-2
+- Fix rpmlint error, libdir-macro-in-noarch-package by moving the pkg-config
+- file cppad.pc from %%_libdir to %%_datadir.
+- Improve the %%Summary and %%description entries.
+- Fix some rpmlint spelling warnings including xml -> XML, html -> HTML.
+- Document (at top of spec file) reason for other warnings that are not fixed.
+
+* Mon Jan 17 2011 Brad Bell - 20110101.2-1
+- The fedora source 20110101.0 has the worng check sum, get new upstream source.
+- Remove sed patches for problems that were fixed in upstream source.
+- Change makefile.in so tests include from install (not distribute) directory
+- (see comments above `find . -name 'makefile.in` above).
+
+* Sun Jan 09 2011 Brad Bell - 20110101.0-2
+- Remove include/cppad_ipopt_nlp.hpp from distribution.
+- Remove lib/libspeed.a from distribution.
+- Add lib/pkgconfig/cppad.pc to files section (because it is installed).
+- Use a single sed script file with comments to do all the makefile.in edits.
+- Remove edits of makefile.am (not used so not reason to patch it).
+
+* Sat Jan 08 2011 Brad Bell - 20110101.0-1
+- Use new major version for 2011.
+- abs_top_builddir is missing from definitions in makefile.in
+- (should be fixed in future versions of cppad).
+- The single command "make test" now builds and runs all the tests.
+
+* Thu Jul 08 2010 Brad Bell - 20100101.4-1
+- Use new upstream source which has bug fix at revision
+- https://projects.coin-or.org/CppAD/changeset/1698
+
+* Wed Mar 31 2010 Brad Bell - 20100101.2-1
+- Use new upstream source with bug fixes at revision
+- https://projects.coin-or.org/CppAD/changeset/1664
+- and remove patch from Wed Feb 10 2010.
+
+* Wed Feb 10 2010 Brad Bell - 20100101.0-2
+- Patch sources for bug fix between 20100101.0 and 20100101.1.
+- This should no longer be necessary once a new upstream source is loaded.
+
+* Fri Jan 01 2010 Brad Bell - 20100101.0-1
+- Use new upstream source.
+- Remove out of date comment about where this spec file is maintained.
+- Remove patches that are no longer necessary in prep section.
+- Change calling sequence for correctness of speed tests (we do not run speed
+- tests, that requires a computer with no other processes running).
+
* Fri Jul 24 2009 Fedora Release Engineering - 20090303.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
@@ -168,7 +687,7 @@ rm -rf $RPM_BUILD_ROOT
- Patch cppad/local/fun_construct.hpp to give a more useful error message
- (so we can figure out why the Fedora 11 build is failing).
-* Mon Jun 06 2009 Brad Bell 20090303-3
+* Sat Jun 06 2009 Brad Bell 20090303-3
- Patch file test_more/jacobian.cpp (required for versions below 20090606).
- Patch file cppad/local/default.hpp (required for versions below 20090606).
- Fix version (change 20080303 to 20090303) in previous two log entries.
@@ -185,7 +704,7 @@ rm -rf $RPM_BUILD_ROOT
* Tue Feb 24 2009 Fedora Release Engineering - 20080826.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
-* Tue Oct 08 2008 Brad Bell 20080826-1
+* Wed Oct 08 2008 Brad Bell 20080826-1
- Change to newer version of cppad.
- Change download directory to standard coin-or location.
- Remove editing of speed/main.cpp (no longer necessary).
@@ -257,7 +776,7 @@ rm -rf $RPM_BUILD_ROOT
- Use %%{?dist} in Release entry.
- Use %%(%%{__id_u} -n) in BuildRoot entry.
- Use noarch in BuildArch entry.
-- Move -rf $RPM_BUILD_ROOT from prep entry to install entry.
+- Move -rf RPM_BUILD_ROOT from prep entry to install entry.
- Use macros where possible.
* Sat Dec 08 2007 Brad Bell 20071208-1
diff --git a/get_tarball.sh b/get_tarball.sh
new file mode 100755
index 0000000..daf2942
--- /dev/null
+++ b/get_tarball.sh
@@ -0,0 +1,16 @@
+# /usr/bin/env bash
+set -e -u
+#
+version=$(sed -n cppad.spec -e '/^Version:/p' | sed -e 's|^Version: *||')
+url=$(sed -n cppad.spec -e '/^URL:/p' | sed -e 's|^URL: *||')
+local_tarball="CppAD-${version}.tar.gz"
+remote_tarball="$url/archive/$version/$local_tarball"
+if [ -e "$local_tarball" ]
+then
+ echo "get_tarball.sh: $local_tarball already exists"
+ exit 1
+fi
+wget $tarball
+#
+echo 'get_tarball.sh: OK'
+exit 0
diff --git a/sources b/sources
index d89508f..8f40433 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-d34e093cb4b59b87b73a1b38597e45ac cppad-20090303.0.gpl.tgz
+SHA512 (CppAD-20260000.0.tar.gz) = abe9dd9a971f8d154990d54c1f798c8cab6bf90d016bb288efbcb23a14331897762610295658eec04fb50e5c13b05f4bb6b50a4647d6f0468eb94833dc3400d2