diff --git a/.gitignore b/.gitignore index c6389ad..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-20230000.0.tar.gz +/CppAD-20240000.3.tar.gz diff --git a/cppad.spec b/cppad.spec index 658e75d..f539e2d 100644 --- a/cppad.spec +++ b/cppad.spec @@ -2,14 +2,22 @@ # ---------------------------------------------------------------------------- # 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 # 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 @@ -20,11 +28,11 @@ # Fedora Release starts with 1; see # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ Name: cppad -Version: 20230000.0 +Version: 20240000.3 Release: 1%{?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 # @@ -32,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 @@ -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 @@ -81,18 +91,21 @@ The documentation, for the most recent version of %{name}, can be found at %setup -q -c # # xrst.toml -echo '' >> CppAD-%{version}/xrst.toml -echo '[spell_package]' >> CppAD-%{version}/xrst.toml -echo 'data = "pyenchant"' >> CppAD-%{version}/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 # # CppAD-%%{version}/build/html -# Sphinx before 4.0 does not support root_doc file specification so use -# rst-only and then move xrst_root_doc.rst -> index.rst before runing sphinx. +# 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 \ @@ -100,15 +113,10 @@ xrst \ --html_theme sphinx_rtd_theme \ --index_page_name user_guide \ --group_list default app \ - --suppress_spell_warnings \ - --rst_only -cd CppAD-%{version}/build -mv rst/xrst_root_doc.rst rst/index.rst -sphinx-build -b html rst html -rm -r html/_sources -mv rst/_sources html/_sources -cd ../.. + --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 @@ -117,24 +125,13 @@ 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 \ -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 @@ -171,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 @@ -200,7 +194,7 @@ cppad_cxx_flags=\ %cmake \ -S CppAD-%{version} \ -B . \ - \ + \ -D CMAKE_VERBOSE_MAKEFILE=0 \ -G 'Unix Makefiles' \ \ @@ -228,7 +222,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 @@ -245,15 +240,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} @@ -270,9 +265,42 @@ make %{?_smp_mflags} check # This enables one to check that the necessary files are installed. # ---------------------------------------------------------------------------- %changelog -* Sun Jan 29 2023 Brad Bell - 20230000.0-1 -- epel-9 uses Sphinx-3.4.3 whick does not support root_doc in conf.py -- So only use xrst to generate rst file and run sphinx separately. +* 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). diff --git a/sources b/sources index d6257f0..1ed1dbc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (CppAD-20230000.0.tar.gz) = 9ed852894ab8eb1ca16a4599144293b08ca4cd9ca00e4a0585c8fea387c4a02143e065bc2c5d91dbe33ce5773aefb5ba74a6211b18827d22af70cb553d1051de +SHA512 (CppAD-20240000.3.tar.gz) = 8a542df030a885a2a801634414e309aae1f546395a2e41e40bae2b553de00569ce17b2761eceea962d242382abe5ce6bf561bf9a6b476594ab802b9aa6f66000