From 4beb0ab48ef1e71751cc3b6e3a61667767509aa9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 16:28:52 +0000 Subject: [PATCH 01/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cppad.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cppad.spec b/cppad.spec index 941ff36..9a95c21 100644 --- a/cppad.spec +++ b/cppad.spec @@ -21,7 +21,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: 20230000.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 or GPLv2+ @@ -261,6 +261,9 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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. From d346fa2aa75fcdb9bfa3ae7e8cd891e9fa2d0347 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Mon, 25 Dec 2023 05:53:09 -0700 Subject: [PATCH 02/22] migrate to SPDX license, discuss fedpkg lint W: no-documentation. --- cppad.spec | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/cppad.spec b/cppad.spec index 9a95c21..94b6f17 100644 --- a/cppad.spec +++ b/cppad.spec @@ -2,6 +2,14 @@ # ---------------------------------------------------------------------------- # Preamble # ---------------------------------------------------------------------------- +# 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.' +# # fedpkg lint: W: files-duplicate: # the files user_guide.html index.html in directory /usr/share/doc/cppad # are the same. This is because a redirect from index.hml to user_guide.html @@ -24,7 +32,7 @@ Version: 20230000.0 Release: 2%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # -License: EPL-2.0 or GPLv2+ +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 # @@ -58,6 +66,8 @@ algorithm that computes its derivative values. A brief introduction to Algorithmic Differentiation (AD) can be found at http://en.wikipedia.org/wiki/Automatic_differentiation See the package %{name}-doc for documentation of this version of %{name}. +The documentation, for the most recent version of %{name}, can be found at + https://cppad.readthedocs.io # ---------------------------------------------------------------------------- %package doc @@ -89,6 +99,7 @@ echo '[input_files]' >> CppAD-%{version}/xrst.toml echo 'data = [ ]' >> CppAD-%{version}/xrst.toml # # CppAD-%%{version}/build/html +# run xrst to create the documentation files in the directory above mkdir CppAD-%{version}/build xrst --version xrst \ @@ -100,6 +111,7 @@ xrst \ --group_list default app \ --suppress_spell_warnings # +# CppAD-%%{version}/build/html # remove hidden files not needed for viewing documentation rm CppAD-%{version}/build/html/.buildinfo rm -r CppAD-%{version}/build/html/.doctrees @@ -108,6 +120,7 @@ rm -r CppAD-%{version}/build/html/.doctrees # COPYING, uw_copy_040507.html mv CppAD-%{version}/COPYING COPYING mv CppAD-%{version}/uw_copy_040507.html uw_copy_040507.html +# # ---------------------------------------------------------------------------- # cppad_lib: replace soversion number and ensure build type is release sed -i.bak CppAD-%{version}/cppad_lib/CMakeLists.txt \ @@ -236,15 +249,15 @@ cppad_cxx_flags=\ %files %{_libdir}/libcppad_lib.so.%{soversion} +# These documentation files come from the source code tarball +%doc COPYING uw_copy_040507.html + %files devel %{_includedir}/%{name} %{_datadir}/pkgconfig/%{name}.pc %{_libdir}/pkgconfig/%{name}.pc %{_libdir}/libcppad_lib.so -# These documentation files come from the source code tarball -%doc COPYING uw_copy_040507.html - %files doc # These documentation files are build by the xrst command above %{_docdir}/%{name} @@ -261,6 +274,10 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* Mon Dec 25 2023 Brad Bell - 20230000.0-2 +- 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 From 70636f182adf200328ea8a9aa7846d868e7ca09f Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Mon, 25 Dec 2023 05:57:52 -0700 Subject: [PATCH 03/22] Advance to cppad-20230000.3 --- cppad.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cppad.spec b/cppad.spec index 94b6f17..817500d 100644 --- a/cppad.spec +++ b/cppad.spec @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: 20230000.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -274,7 +274,7 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog -* Mon Dec 25 2023 Brad Bell - 20230000.0-2 +* Mon Dec 25 2023 Brad Bell - 20230000.0-3 - migrated to SPDX license - move %%doc directive before subpackages (becasue it is in main package) From a430fe77114681152c69fae4347218eef9c39ff3 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Sat, 6 Jan 2024 06:40:19 -0700 Subject: [PATCH 04/22] Advance upstream source to cppad-20240000.0 --- .gitignore | 2 +- cppad.spec | 34 +++++++++++++--------------------- sources | 2 +- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/.gitignore b/.gitignore index c6389ad..95e194c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,4 @@ # --------------------------------------------------------------------------- # # Most recent upstrem source -/CppAD-20230000.0.tar.gz +/CppAD-20240000.0.tar.gz diff --git a/cppad.spec b/cppad.spec index 817500d..2a013c0 100644 --- a/cppad.spec +++ b/cppad.spec @@ -16,8 +16,8 @@ # will not reload when user_guide.html changes. # # fedora uses its own soversion number for cppad_lib -# 4.0 corresponds to version 20230000 -%define soversion 4.0 +# 5.0 corresponds to version 20240000 +%define soversion 5.0 # This is really an out of soruce build because the source is in the # CppAD-%%{version} sub-directory. The fedora macros are confused and need @@ -28,8 +28,8 @@ # Fedora Release starts with 1; see # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad -Version: 20230000.0 -Release: 3%{?dist} +Version: 20240000.0 +Release: 1%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -40,7 +40,7 @@ BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake >= 3.0 BuildRequires: make -BuildRequires: python-xrst +BuildRequires: python-xrst >= 2024.0 # python-xrst should auotmatically require python-toml BuildRequires: python-toml @@ -92,9 +92,6 @@ The documentation, for the most recent version of %{name}, can be found at # # xrst.toml echo '' >> CppAD-%{version}/xrst.toml -echo '[spell_package]' >> CppAD-%{version}/xrst.toml -echo 'data = "pyenchant"' >> CppAD-%{version}/xrst.toml -echo '' >> CppAD-%{version}/xrst.toml echo '[input_files]' >> CppAD-%{version}/xrst.toml echo 'data = [ ]' >> CppAD-%{version}/xrst.toml # @@ -127,18 +124,6 @@ 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|" # -# configure.hpp.in: Make sure CPPAD_DEBUG_AND_RELEASE is defined -# so we can use cppad_lib with both debug and release builds. -sed -i.bak CppAD-%{version}/include/cppad/configure.hpp.in \ - -e 's|# define CPPAD_CONFIGURE_HPP|&\n# define CPPAD_DEBUG_AND_RELEASE|' -# -# set_compile_flags.cmake: remove conditional def of CPPAD_DEBUG_AND_RELEASE -sed -i.bak CppAD-%{version}/cmake/set_compile_flags.cmake \ - -e 's|-DCPPAD_DEBUG_AND_RELEASE||' -# -# test_more/debug_rel/CMakeLists.txt: remove def of CPPAD_DEBUG_AND_RELEASE -sed -i.bak CppAD-%{version}/test_more/debug_rel/CMakeLists.txt \ - -e 's|-DCPPAD_DEBUG_AND_RELEASE||' # ---------------------------------------------------------------------------- # Print machine epsilon before any other testing cat << EOF > temp.cpp @@ -232,7 +217,8 @@ cppad_cxx_flags=\ -D cppad_max_num_threads=64 \ -D cppad_tape_id_type=size_t \ -D cppad_tape_addr_type=size_t \ - -D cppad_debug_which='debug_all' + -D cppad_debug_which='debug_all' \ + -D cppad_debug_and_release=true # # see https://docs.fedoraproject.org/en-US/packaging-guidelines/ # parallel_make @@ -274,6 +260,12 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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) diff --git a/sources b/sources index d6257f0..f7996a5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (CppAD-20230000.0.tar.gz) = 9ed852894ab8eb1ca16a4599144293b08ca4cd9ca00e4a0585c8fea387c4a02143e065bc2c5d91dbe33ce5773aefb5ba74a6211b18827d22af70cb553d1051de +SHA512 (CppAD-20240000.0.tar.gz) = d437d8cae591da3e3b2b29d078a90e91aa005b93db8cd8794702c3cbb972bcd572160220b4793b8eada62665beac7a2cfdc32a2def40a1b9822144a7dde293ab From b32c596bc6cd516fa9f597346bd7fbeac929914c Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Mon, 8 Jan 2024 06:24:50 -0700 Subject: [PATCH 05/22] fix build on Host: buildvm-x86-16.iad2.fedoraproject.org --- .gitignore | 2 +- cppad.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 95e194c..fa6017e 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,4 @@ # --------------------------------------------------------------------------- # # Most recent upstrem source -/CppAD-20240000.0.tar.gz +/CppAD-20240000.1.tar.gz diff --git a/cppad.spec b/cppad.spec index 2a013c0..c36ec93 100644 --- a/cppad.spec +++ b/cppad.spec @@ -28,7 +28,7 @@ # Fedora Release starts with 1; see # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad -Version: 20240000.0 +Version: 20240000.1 Release: 1%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # @@ -260,6 +260,9 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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 diff --git a/sources b/sources index f7996a5..fe882af 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (CppAD-20240000.0.tar.gz) = d437d8cae591da3e3b2b29d078a90e91aa005b93db8cd8794702c3cbb972bcd572160220b4793b8eada62665beac7a2cfdc32a2def40a1b9822144a7dde293ab +SHA512 (CppAD-20240000.1.tar.gz) = 453f1975dc8cb65df9838e8fb1fa3c2ae302c52a2628e58112ca5aa272ea02b6597988f8f6424e505ed18a29656a38fa943ea2a1d0f3e3f2509ebdc2fe9d84d4 From 592496bf4b1cc26796dd02bf37524f3be8a83b34 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Tue, 9 Jan 2024 19:00:38 -0700 Subject: [PATCH 06/22] Fix some errors on 32 bit systems. Improve parallel build. --- cppad.spec | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/cppad.spec b/cppad.spec index c36ec93..6d34667 100644 --- a/cppad.spec +++ b/cppad.spec @@ -91,6 +91,8 @@ The documentation, for the most recent version of %{name}, can be found at %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 @@ -99,6 +101,11 @@ echo 'data = [ ]' >> CppAD-%{version}/xrst.toml # run xrst to create the documentation files in the directory above mkdir CppAD-%{version}/build xrst --version +number_jobs=$(echo %{?_smp_mflags} | sed -e 's|[^0-9]*\([0-9]*\)[^0-9]*|\1|') +if [ "$number_jobs" == '' ] +then + number_jobs='1' +fi xrst \ --config_file CppAD-%{version}/xrst.toml \ --local_toc \ @@ -106,6 +113,7 @@ xrst \ --html_theme sphinx_rtd_theme \ --index_page_name user_guide \ --group_list default app \ + --number_jobs $number_jobs \ --suppress_spell_warnings # # CppAD-%%{version}/build/html @@ -152,6 +160,22 @@ then -e 's|ok *&= *floating();|// &|' fi # ----------------------------------------------------------------------------- +# Some patches for 32 bit systems that should not be necessary once +# cppad-20240000.2 is available. +echo "_arch = %{_arch}" +if [ "%{_arch}" == 'i386' ] || [ "%{_arch}" == 'i686' ] +then + # Add padding to block_t structure when compiling for these arch values + sed -i.bak \ + CppAD-%{version}/include/cppad/utility/thread_alloc.hpp \ + -e 's|^\( *\)void[*]\( *\)next_;|&\n\1void*\2not_used_;|' + # + # avoid redefinition of a template specialization + sed -i.bak \ + CppAD-%{version}/include/cppad/local/val_graph/op_hash_table.hpp \ + -e 's|# if ! CPPAD_TAPE_ADDR_TYPE_IS_SIZE_T|# if 0|' +fi +# ----------------------------------------------------------------------------- # build # ----------------------------------------------------------------------------- %build @@ -260,6 +284,13 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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 From a90ee42b56896f559088da9d14b82ca52c1ed423 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Wed, 17 Jan 2024 12:12:35 -0700 Subject: [PATCH 07/22] Advance to CppAD-20240000.2 --- .gitignore | 2 +- cppad.spec | 24 ++++++------------------ sources | 2 +- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index fa6017e..a54129c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,4 @@ # --------------------------------------------------------------------------- # # Most recent upstrem source -/CppAD-20240000.1.tar.gz +/CppAD-20240000.2.tar.gz diff --git a/cppad.spec b/cppad.spec index 6d34667..1e6179e 100644 --- a/cppad.spec +++ b/cppad.spec @@ -28,7 +28,7 @@ # Fedora Release starts with 1; see # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad -Version: 20240000.1 +Version: 20240000.2 Release: 1%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # @@ -160,22 +160,6 @@ then -e 's|ok *&= *floating();|// &|' fi # ----------------------------------------------------------------------------- -# Some patches for 32 bit systems that should not be necessary once -# cppad-20240000.2 is available. -echo "_arch = %{_arch}" -if [ "%{_arch}" == 'i386' ] || [ "%{_arch}" == 'i686' ] -then - # Add padding to block_t structure when compiling for these arch values - sed -i.bak \ - CppAD-%{version}/include/cppad/utility/thread_alloc.hpp \ - -e 's|^\( *\)void[*]\( *\)next_;|&\n\1void*\2not_used_;|' - # - # avoid redefinition of a template specialization - sed -i.bak \ - CppAD-%{version}/include/cppad/local/val_graph/op_hash_table.hpp \ - -e 's|# if ! CPPAD_TAPE_ADDR_TYPE_IS_SIZE_T|# if 0|' -fi -# ----------------------------------------------------------------------------- # build # ----------------------------------------------------------------------------- %build @@ -213,7 +197,7 @@ cppad_cxx_flags=\ %cmake \ -S CppAD-%{version} \ -B . \ - \ + \ -D CMAKE_VERBOSE_MAKEFILE=0 \ -G 'Unix Makefiles' \ \ @@ -284,6 +268,10 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* Wed Jan 17 2024 Brad Bell - 20240000.2-1 +- Upstream moved i386 special cases into cmake script. +- Checking that othr 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. diff --git a/sources b/sources index fe882af..122d577 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (CppAD-20240000.1.tar.gz) = 453f1975dc8cb65df9838e8fb1fa3c2ae302c52a2628e58112ca5aa272ea02b6597988f8f6424e505ed18a29656a38fa943ea2a1d0f3e3f2509ebdc2fe9d84d4 +SHA512 (CppAD-20240000.2.tar.gz) = 0c4f57582347f1c11fabda56ef9324b5399194d13c2bcd98038f64dde1c820326cd278a94b1b97cb7aa90760bafe0c3d13c1fddf989841313ae1d4db122789c2 From 349a37079013b48fdd9e3ac5e18dc2229703adbf Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 16:16:10 +0000 Subject: [PATCH 08/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- cppad.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cppad.spec b/cppad.spec index 1e6179e..061ec35 100644 --- a/cppad.spec +++ b/cppad.spec @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: 20240000.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -268,6 +268,9 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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 othr upstream changes do not affect Fedora install. From 704b9e316676d07e923b4a37a3fc5017525d3227 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 08:15:09 +0000 Subject: [PATCH 09/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- cppad.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cppad.spec b/cppad.spec index 061ec35..6315a76 100644 --- a/cppad.spec +++ b/cppad.spec @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: 20240000.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -268,6 +268,9 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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 From 7ca8fb4ebe5989956425954450b51259d78c0fe7 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Sat, 17 Feb 2024 04:51:11 -0700 Subject: [PATCH 10/22] Advance upstream source 20240000.3 (fixes bug). --- cppad.spec | 17 +++++++++-------- get_tarball.sh | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 8 deletions(-) create mode 100755 get_tarball.sh diff --git a/cppad.spec b/cppad.spec index 6315a76..793bd7e 100644 --- a/cppad.spec +++ b/cppad.spec @@ -28,8 +28,8 @@ # Fedora Release starts with 1; see # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad -Version: 20240000.2 -Release: 3%{?dist} +Version: 20240000.3 +Release: 1%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -168,13 +168,10 @@ fi # because they are absolute paths. Relative values would be more flexible # because they can be combined with %%{_prefix} to get absolute values. # -# 2. The last argument to the cmake command is the directory created using -# the souce code tarball. -# -# 3. The debug_all is overridden for cppad_lib by the edit of +# 2. The debug_all is overridden for cppad_lib by the edit of # cppad_lib/CMakeLists.txt above # -# 4. The gnu c++ compiler seems to be generating an incorrect warning about +# 3. 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 @@ -268,6 +265,10 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* Sat Feb 17 2024 Brad Bell - 20240000.3-1 +- This fixes a long standing bug; see the heading 02-04 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 @@ -276,7 +277,7 @@ make %{?_smp_mflags} check * Wed Jan 17 2024 Brad Bell - 20240000.2-1 - Upstream moved i386 special cases into cmake script. -- Checking that othr upstream changes do not affect Fedora install. +- 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 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 From 1c080e45318514f1642092710bf619647fd1b5ad Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Sat, 17 Feb 2024 05:04:50 -0700 Subject: [PATCH 11/22] fedpkg new-sources for cppad-20240000.3. --- .gitignore | 4 ++-- sources | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a54129c..d716090 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,10 @@ /temp.* # ignore result drectory created by fedpkg mockbuild /results_cppad/ -# directory used like git cache +# directories used like git cache /new/ /new.*/ # --------------------------------------------------------------------------- # # Most recent upstrem source -/CppAD-20240000.2.tar.gz +/CppAD-20240000.3.tar.gz diff --git a/sources b/sources index 122d577..1ed1dbc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (CppAD-20240000.2.tar.gz) = 0c4f57582347f1c11fabda56ef9324b5399194d13c2bcd98038f64dde1c820326cd278a94b1b97cb7aa90760bafe0c3d13c1fddf989841313ae1d4db122789c2 +SHA512 (CppAD-20240000.3.tar.gz) = 8a542df030a885a2a801634414e309aae1f546395a2e41e40bae2b553de00569ce17b2761eceea962d242382abe5ce6bf561bf9a6b476594ab802b9aa6f66000 From 67c31e81d8235f55be85467aeffcf6ba2be4d056 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Tue, 20 Feb 2024 04:52:08 -0700 Subject: [PATCH 12/22] fix changelog comment: 02-04 -> 02-14. --- cppad.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cppad.spec b/cppad.spec index 793bd7e..f539e2d 100644 --- a/cppad.spec +++ b/cppad.spec @@ -266,7 +266,7 @@ make %{?_smp_mflags} check # ---------------------------------------------------------------------------- %changelog * Sat Feb 17 2024 Brad Bell - 20240000.3-1 -- This fixes a long standing bug; see the heading 02-04 on +- 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 From b320dde8bb98a24a512c0b043646bf4ca36af612 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Fri, 1 Mar 2024 09:10:08 -0700 Subject: [PATCH 13/22] Use prep to make patch for 20240000.3 -> 20240000.4 bug fix. --- cppad.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cppad.spec b/cppad.spec index f539e2d..5e57be9 100644 --- a/cppad.spec +++ b/cppad.spec @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: 20240000.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -132,6 +132,10 @@ 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|" # +# Bug fix to version 20240000.3 (not necessary in version 20240000.4 or higher) +sed -z -i.bak CppAD-%{version}/include/cppad/local/val_graph/fun2val.hpp \ + -e 's|\n *break;\(\n[^\n]*}\n[^\n]*-\n[^\n]*else switch(var_op)\n\)|\1|' +# # ---------------------------------------------------------------------------- # Print machine epsilon before any other testing cat << EOF > temp.cpp @@ -265,6 +269,10 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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 From 177515840f49a50fcef1314825c7f07140595a77 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 20:05:43 +0000 Subject: [PATCH 14/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- cppad.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cppad.spec b/cppad.spec index 5e57be9..d542922 100644 --- a/cppad.spec +++ b/cppad.spec @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: 20240000.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -269,6 +269,9 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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. From 7f98c63ceb3001fc8047cb76b4eac27f6084dff1 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Tue, 14 Jan 2025 19:11:25 -0700 Subject: [PATCH 15/22] advance to cppad-20250000.0 --- .gitignore | 1 + cppad.spec | 60 +++++++++++++++++++++++++++++++++--------------------- sources | 2 +- 3 files changed, 39 insertions(+), 24 deletions(-) diff --git a/.gitignore b/.gitignore index d716090..db91bc0 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ # # Most recent upstrem source /CppAD-20240000.3.tar.gz +/CppAD-20250000.0.tar.gz diff --git a/cppad.spec b/cppad.spec index d542922..428c89c 100644 --- a/cppad.spec +++ b/cppad.spec @@ -28,8 +28,8 @@ # Fedora Release starts with 1; see # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad -Version: 20240000.3 -Release: 3%{?dist} +Version: 20250000.0 +Release: 1%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -40,9 +40,13 @@ BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake >= 3.0 BuildRequires: make -BuildRequires: python-xrst >= 2024.0 -# python-xrst should auotmatically require python-toml -BuildRequires: python-toml +BuildRequires: python-xrst >= 2025.0 +BuildRequires: python-sphinx_rtd_theme +BuildRequires: python-toml +BuildRequires: python-sphinx-copybutton +BuildRequires: python-pyspellchecker +BuildRequires: python-furo + %description C++ Algorithmic Differentiation (AD) library file libcppad_lib.so; @@ -61,7 +65,7 @@ Provides: coin-or-cppad-devel = %{version}-%{release} 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, %{name} generates an +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 @@ -79,7 +83,7 @@ The %{name}-doc package installs the HTML documentation for this version of %{name}-devel in %{_docdir}/%{name} The documentation, for the most recent version of %{name}, can be found at - https://cppad.readthedocs.io + https://cppad.readthedocs.io/latest # ----------------------------------------------------------------------------- # prep @@ -87,9 +91,14 @@ The documentation, for the most recent version of %{name}, can be found at %prep # # Create an empty directory named cppad-%%{version}, -# changed into that directory and unpack Source0 and Source1. +# changed into that directory and unpack Source. %setup -q -c # +# atomic_op.hpp +# Fix warning. This should not be necessary when version > 20250000.0 +sed -i CppAD-%{version}/include/cppad/local/var_op/atomic_op.hpp \ + -e 's|arg_tmp\[1\];|*arg_tmp = { 0 };|' +# # 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. @@ -120,6 +129,7 @@ xrst \ # remove hidden files not needed for viewing documentation rm CppAD-%{version}/build/html/.buildinfo rm -r CppAD-%{version}/build/html/.doctrees +mv CppAD-%{version}/build/html html # # COPYING, uw_copy_040507.html @@ -132,10 +142,6 @@ 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|" # -# Bug fix to version 20240000.3 (not necessary in version 20240000.4 or higher) -sed -z -i.bak CppAD-%{version}/include/cppad/local/val_graph/fun2val.hpp \ - -e 's|\n *break;\(\n[^\n]*}\n[^\n]*-\n[^\n]*else switch(var_op)\n\)|\1|' -# # ---------------------------------------------------------------------------- # Print machine epsilon before any other testing cat << EOF > temp.cpp @@ -158,12 +164,12 @@ cat temp.out # ---------------------------------------------------------------------------- # Comment out test of to_string long double on ppc64le arch. Understanding why # it is failing will have to wait until there is a fedora 36 ppc64le test machine. -if [ "%{_arch}" == 'ppc64le' ] -then - sed -i.bak CppAD-%{version}/example/utility/to_string.cpp \ - -e 's|ok *&= *floating();|// &|' -fi -# ----------------------------------------------------------------------------- +### if [ "%{_arch}" == 'ppc64le' ] +### then +### sed -i.bak CppAD-%{version}/example/utility/to_string.cpp \ +### -e 's|ok *&= *floating();|// &|' +### fi +# ---------------------------------------------------------------------------- # build # ----------------------------------------------------------------------------- %build @@ -211,8 +217,12 @@ cppad_cxx_flags=\ -D cmake_install_datadir=share \ -D cmake_install_docdir=share/doc \ \ + -D cmake_defined_ok=false \ + -D include_doc=false \ + -D cppad_static_lib=false \ + -D cppad_debug_and_release=true \ + \ -D include_adolc=false \ - -D include_eigen=false \ -D include_ipopt=false \ -D include_cppadcg=false \ \ @@ -225,9 +235,8 @@ cppad_cxx_flags=\ -D cppad_testvector=cppad \ -D cppad_max_num_threads=64 \ -D cppad_tape_id_type=size_t \ - -D cppad_tape_addr_type=size_t \ - -D cppad_debug_which='debug_all' \ - -D cppad_debug_and_release=true + -D cppad_tape_addr_type='unsigned int' \ + -D cppad_debug_which='debug_all' # # see https://docs.fedoraproject.org/en-US/packaging-guidelines/ # parallel_make @@ -247,6 +256,7 @@ cppad_cxx_flags=\ # These documentation files come from the source code tarball %doc COPYING uw_copy_040507.html + %files devel %{_includedir}/%{name} %{_datadir}/pkgconfig/%{name}.pc @@ -254,8 +264,9 @@ cppad_cxx_flags=\ %{_libdir}/libcppad_lib.so %files doc + # These documentation files are build by the xrst command above -%{_docdir}/%{name} +%doc html # ----------------------------------------------------------------------------- # Check @@ -269,6 +280,9 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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 diff --git a/sources b/sources index 1ed1dbc..1f290de 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (CppAD-20240000.3.tar.gz) = 8a542df030a885a2a801634414e309aae1f546395a2e41e40bae2b553de00569ce17b2761eceea962d242382abe5ce6bf561bf9a6b476594ab802b9aa6f66000 +SHA512 (CppAD-20250000.0.tar.gz) = 05bb5a77e56f53f89f3e403943e64521bfd8e148ed142d9ce3ee695e10574567befce76cf31819fe1f580e45e9d11db0477388e18b78e410ca7ea528b04ec282 From 6b512b129139bc69f443b5d1d633bf7497f6aa23 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 14:42:43 +0000 Subject: [PATCH 16/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- cppad.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cppad.spec b/cppad.spec index 428c89c..b33f4aa 100644 --- a/cppad.spec +++ b/cppad.spec @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: 20250000.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -280,6 +280,9 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* 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. From d104a975a749d3ac822ca1cc277c5a903047fdae Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Sat, 18 Jan 2025 04:15:34 -0700 Subject: [PATCH 17/22] Fix two bugs (should not be necessary one version > 20250000.0). --- cppad.spec | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/cppad.spec b/cppad.spec index b33f4aa..be19055 100644 --- a/cppad.spec +++ b/cppad.spec @@ -136,6 +136,38 @@ mv CppAD-%{version}/build/html html mv CppAD-%{version}/COPYING COPYING mv CppAD-%{version}/uw_copy_040507.html uw_copy_040507.html # +# fix bug +# should not be needed once version > 20250000.0 +cat << EOF > temp.sed +/setup_random(size_t& not_used)/! b end +: loop +N +/\\n *}/! b loop +s|^|# if ! CPPAD_IS_SAME_UNSIGNED_INT_SIZE_T\\n| +s|$|\\n# endif| +# +: end +EOF +sed -i.bak CppAD-%{version}/include/cppad/local/play/player.hpp -f temp.sed +# +# fix bug +# should not be needed once version > 20250000.0 +cat << EOF > temp.sed +/CHECK_CXX_SOURCE_COMPILES/! b end +s|^| SET(CMAKE_REQUIRED_DEFINITIONS "" )\\ + SET(CMAKE_REQUIRED_INCLUDES "" )\\ + SET(CMAKE_REQUIRED_LIBRARIES "" )\\ + IF( cppad_cxx_flags )\\ + SET(CMAKE_REQUIRED_FLAGS "\${cppad_cxx_flags} \${CMAKE_CXX_FLAGS}" )\\ + ELSE( cppad_cxx_flags )\\ + SET(CMAKE_REQUIRED_FLAGS "" )\\ + ENDIF( cppad_cxx_flags )\\ +| +# +: end +EOF +sed -i.bak CppAD-%{version}/cmake/compile_source_test.cmake -f temp.sed +# # ---------------------------------------------------------------------------- # cppad_lib: replace soversion number and ensure build type is release sed -i.bak CppAD-%{version}/cppad_lib/CMakeLists.txt \ @@ -280,6 +312,10 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog +* Sat Jan 18 2025 Brad Bell - 20250000.0-1 +- 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 From 504ed13acbea32f60ff480cad6c32c5aff7c7607 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Sun, 19 Jan 2025 04:52:58 -0700 Subject: [PATCH 18/22] Remove doc subpackage and fix soversion number. --- cppad.spec | 83 ++++++++++++++++-------------------------------------- 1 file changed, 25 insertions(+), 58 deletions(-) diff --git a/cppad.spec b/cppad.spec index be19055..eaae564 100644 --- a/cppad.spec +++ b/cppad.spec @@ -15,21 +15,26 @@ # are the same. This is because a redirect from index.hml to user_guide.html # will not reload when user_guide.html changes. # -# fedora uses its own soversion number for cppad_lib -# 5.0 corresponds to version 20240000 -%define soversion 5.0 - +# year +# The year corresponding to this version +%define year 2025 +# +# 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. The fedora macros are confused and need -# this defined true. +# CppAD-%%{version} sub-directory of the source. The fedora macros are +# confused and need this defined true. %define __cmake_in_source_build 1 # ---------------------------------------------------------------------------- # Fedora Release starts with 1; see # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad -Version: 20250000.0 -Release: 2%{?dist} +Version: %{year}0000.0 +Release: 3%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -65,26 +70,14 @@ Provides: coin-or-cppad-devel = %{version}-%{release} 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, {name} generates an +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 -See the package %{name}-doc for documentation of this version of %{name}. -The documentation, for the most recent version of %{name}, can be found at - https://cppad.readthedocs.io - -# ---------------------------------------------------------------------------- -%package doc -Summary: Documentation for %{name}-devel -BuildArch: noarch - -%description doc -The %{name}-doc package installs the HTML documentation for this version -of %{name}-devel in - %{_docdir}/%{name} -The documentation, for the most recent version of %{name}, can be found at +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 # ----------------------------------------------------------------------------- @@ -105,36 +98,10 @@ sed -i CppAD-%{version}/include/cppad/local/var_op/atomic_op.hpp \ echo '' >> CppAD-%{version}/xrst.toml echo '[input_files]' >> CppAD-%{version}/xrst.toml echo 'data = [ ]' >> CppAD-%{version}/xrst.toml -# -# CppAD-%%{version}/build/html -# run xrst to create the documentation files in the directory above -mkdir CppAD-%{version}/build -xrst --version -number_jobs=$(echo %{?_smp_mflags} | sed -e 's|[^0-9]*\([0-9]*\)[^0-9]*|\1|') -if [ "$number_jobs" == '' ] -then - number_jobs='1' -fi -xrst \ - --config_file CppAD-%{version}/xrst.toml \ - --local_toc \ - --target html \ - --html_theme sphinx_rtd_theme \ - --index_page_name user_guide \ - --group_list default app \ - --number_jobs $number_jobs \ - --suppress_spell_warnings -# -# CppAD-%%{version}/build/html -# remove hidden files not needed for viewing documentation -rm CppAD-%{version}/build/html/.buildinfo -rm -r CppAD-%{version}/build/html/.doctrees -mv CppAD-%{version}/build/html html - # # COPYING, uw_copy_040507.html -mv CppAD-%{version}/COPYING COPYING -mv CppAD-%{version}/uw_copy_040507.html uw_copy_040507.html +cp CppAD-%{version}/COPYING COPYING +cp CppAD-%{version}/uw_copy_040507.html uw_copy_040507.html # # fix bug # should not be needed once version > 20250000.0 @@ -295,11 +262,6 @@ cppad_cxx_flags=\ %{_libdir}/pkgconfig/%{name}.pc %{_libdir}/libcppad_lib.so -%files doc - -# These documentation files are build by the xrst command above -%doc html - # ----------------------------------------------------------------------------- # Check # ----------------------------------------------------------------------------- @@ -312,7 +274,12 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog -* Sat Jan 18 2025 Brad Bell - 20250000.0-1 +* Sat 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/ . + +* 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. From 21f1afc53f745dff7f4c3bb869d8cd36b436f728 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Sun, 19 Jan 2025 08:41:01 -0700 Subject: [PATCH 19/22] Use g++ get_started.cpp to test the installed version of CppAD. --- cppad.spec | 56 +++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/cppad.spec b/cppad.spec index eaae564..d100622 100644 --- a/cppad.spec +++ b/cppad.spec @@ -10,11 +10,6 @@ # a changelog or other information that is better placed in the main package # instead of a -doc subpackage.' # -# fedpkg lint: W: files-duplicate: -# the files user_guide.html index.html in directory /usr/share/doc/cppad -# are the same. This is because a redirect from index.hml to user_guide.html -# will not reload when user_guide.html changes. -# # year # The year corresponding to this version %define year 2025 @@ -54,8 +49,7 @@ BuildRequires: python-furo %description -C++ Algorithmic Differentiation (AD) library file libcppad_lib.so; -see %{name}-devel and %{name}-doc. +C++ Algorithmic Differentiation (AD) include and library files. # --------------------------------------------------------------------------- %package devel @@ -135,13 +129,12 @@ s|^| SET(CMAKE_REQUIRED_DEFINITIONS "" )\\ EOF sed -i.bak CppAD-%{version}/cmake/compile_source_test.cmake -f temp.sed # -# ---------------------------------------------------------------------------- +# 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 @@ -161,26 +154,14 @@ g++ -std=c++11 temp.cpp -o temp ./temp > temp.out cat temp.out # ---------------------------------------------------------------------------- -# Comment out test of to_string long double on ppc64le arch. Understanding why -# it is failing will have to wait until there is a fedora 36 ppc64le test machine. -### if [ "%{_arch}" == 'ppc64le' ] -### then -### sed -i.bak CppAD-%{version}/example/utility/to_string.cpp \ -### -e 's|ok *&= *floating();|// &|' -### fi -# ---------------------------------------------------------------------------- # build # ----------------------------------------------------------------------------- %build # -# 1. Cannot use %%{_includedir}, %%{_libdir}, %%{_datadir}, %%{_docdir} -# because they are absolute paths. Relative values would be more flexible -# because they can be combined with %%{_prefix} to get absolute values. -# -# 2. The debug_all is overridden for cppad_lib by the edit of +# 1. The debug_all is overridden for cppad_lib by the edit of # cppad_lib/CMakeLists.txt above # -# 3. The gnu c++ compiler seems to be generating an incorrect warning about +# 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 @@ -214,10 +195,10 @@ cppad_cxx_flags=\ -D cmake_install_libdirs=%{_lib} \ \ -D cmake_install_datadir=share \ - -D cmake_install_docdir=share/doc \ + -D cmake_install_docdir='NOTFOUND' \ \ + -D include_doc=true \ -D cmake_defined_ok=false \ - -D include_doc=false \ -D cppad_static_lib=false \ -D cppad_debug_and_release=true \ \ @@ -265,19 +246,38 @@ cppad_cxx_flags=\ # ----------------------------------------------------------------------------- # Check # ----------------------------------------------------------------------------- -# use the installed include files to compile and run the tests +# %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 # ---------------------------------------------------------------------------- -# %%clean +# # Use %%clean with no arguments to surpress the cleanup of BUILDROOT # This enables one to check that the necessary files are installed. +%%clean # ---------------------------------------------------------------------------- %changelog -* Sat Jan 19 2025 Brad Bell - 20250000.0-3 +* 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 From 9da37763cc611c072068a423e6dfc61cbcd3f6b9 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Wed, 5 Feb 2025 03:02:10 -0700 Subject: [PATCH 20/22] python-toml not avaialble in epel10: xrst-python changed to python-tomli --- cppad.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cppad.spec b/cppad.spec index d100622..5fa54b6 100644 --- a/cppad.spec +++ b/cppad.spec @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: %{year}0000.0 -Release: 3%{?dist} +Release: 4%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -42,7 +42,7 @@ BuildRequires: cmake >= 3.0 BuildRequires: make BuildRequires: python-xrst >= 2025.0 BuildRequires: python-sphinx_rtd_theme -BuildRequires: python-toml +BuildRequires: python-tomli BuildRequires: python-sphinx-copybutton BuildRequires: python-pyspellchecker BuildRequires: python-furo @@ -269,6 +269,9 @@ make %{?_smp_mflags} check %%clean # ---------------------------------------------------------------------------- %changelog +* 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 From 4cf6d76975f516cc017096dd6088ef012ad84ce6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 18:45:15 +0000 Subject: [PATCH 21/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- cppad.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cppad.spec b/cppad.spec index 5fa54b6..4d8d868 100644 --- a/cppad.spec +++ b/cppad.spec @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: %{year}0000.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -269,6 +269,9 @@ make %{?_smp_mflags} check %%clean # ---------------------------------------------------------------------------- %changelog +* 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 From 99bb8e0a8903d449c444f5fbb5810542d144aa9b Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Mon, 5 Jan 2026 06:17:01 -0700 Subject: [PATCH 22/22] Advance upstream source to cppad-20260000.0 --- .gitignore | 1 + cppad.spec | 46 ++++++---------------------------------------- sources | 2 +- 3 files changed, 8 insertions(+), 41 deletions(-) diff --git a/.gitignore b/.gitignore index db91bc0..6dd6f65 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ # Most recent upstrem source /CppAD-20240000.3.tar.gz /CppAD-20250000.0.tar.gz +/CppAD-20260000.0.tar.gz diff --git a/cppad.spec b/cppad.spec index 4d8d868..b3b1612 100644 --- a/cppad.spec +++ b/cppad.spec @@ -12,7 +12,7 @@ # # year # The year corresponding to this version -%define year 2025 +%define year 2026 # # soversion # fedora uses its own soversion number for cppad_lib where @@ -29,7 +29,7 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad Version: %{year}0000.0 -Release: 5%{?dist} +Release: 1%{?dist} Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc # License: EPL-2.0 OR GPL-2.0-or-later @@ -38,7 +38,7 @@ Source: %{url}/archive/%{version}/CppAD-%{version}.tar.gz # BuildRequires: gcc BuildRequires: gcc-c++ -BuildRequires: cmake >= 3.0 +BuildRequires: cmake >= 3.10 BuildRequires: make BuildRequires: python-xrst >= 2025.0 BuildRequires: python-sphinx_rtd_theme @@ -81,11 +81,6 @@ The documentation for the most recent version of %{name} can be found at # changed into that directory and unpack Source. %setup -q -c # -# atomic_op.hpp -# Fix warning. This should not be necessary when version > 20250000.0 -sed -i CppAD-%{version}/include/cppad/local/var_op/atomic_op.hpp \ - -e 's|arg_tmp\[1\];|*arg_tmp = { 0 };|' -# # 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. @@ -97,38 +92,6 @@ echo 'data = [ ]' >> CppAD-%{version}/xrst.toml cp CppAD-%{version}/COPYING COPYING cp CppAD-%{version}/uw_copy_040507.html uw_copy_040507.html # -# fix bug -# should not be needed once version > 20250000.0 -cat << EOF > temp.sed -/setup_random(size_t& not_used)/! b end -: loop -N -/\\n *}/! b loop -s|^|# if ! CPPAD_IS_SAME_UNSIGNED_INT_SIZE_T\\n| -s|$|\\n# endif| -# -: end -EOF -sed -i.bak CppAD-%{version}/include/cppad/local/play/player.hpp -f temp.sed -# -# fix bug -# should not be needed once version > 20250000.0 -cat << EOF > temp.sed -/CHECK_CXX_SOURCE_COMPILES/! b end -s|^| SET(CMAKE_REQUIRED_DEFINITIONS "" )\\ - SET(CMAKE_REQUIRED_INCLUDES "" )\\ - SET(CMAKE_REQUIRED_LIBRARIES "" )\\ - IF( cppad_cxx_flags )\\ - SET(CMAKE_REQUIRED_FLAGS "\${cppad_cxx_flags} \${CMAKE_CXX_FLAGS}" )\\ - ELSE( cppad_cxx_flags )\\ - SET(CMAKE_REQUIRED_FLAGS "" )\\ - ENDIF( cppad_cxx_flags )\\ -| -# -: end -EOF -sed -i.bak CppAD-%{version}/cmake/compile_source_test.cmake -f temp.sed -# # cppad_lib/CMakeLists.txt # cppad_lib: replace soversion number and ensure build type is release sed -i.bak CppAD-%{version}/cppad_lib/CMakeLists.txt \ @@ -269,6 +232,9 @@ make %{?_smp_mflags} check %%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 diff --git a/sources b/sources index 1f290de..8f40433 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (CppAD-20250000.0.tar.gz) = 05bb5a77e56f53f89f3e403943e64521bfd8e148ed142d9ce3ee695e10574567befce76cf31819fe1f580e45e9d11db0477388e18b78e410ca7ea528b04ec282 +SHA512 (CppAD-20260000.0.tar.gz) = abe9dd9a971f8d154990d54c1f798c8cab6bf90d016bb288efbcb23a14331897762610295658eec04fb50e5c13b05f4bb6b50a4647d6f0468eb94833dc3400d2