Compare commits

...
Sign in to create a new pull request.

5 commits

Author SHA1 Message Date
Brad Bell
76a21c9cc4 forgot to advance release in previous commit. 2024-03-02 05:57:09 -07:00
Brad Bell
93e9430181 copy (from rawhide) using sed to patch fun2val.hpp 2024-03-02 05:53:31 -07:00
Brad Bell
abc482e50f Changes to rawhide cppad.spec necessary for epel9 2024-02-20 07:39:57 -07:00
Brad Bell
7a98173782 Copy files from rawhide (not yet working) 2024-02-20 06:54:21 -07:00
Brad Bell
9cf575df34 epel-9 currently uses Sphinx-3.4.3 which does not support root_doc
option in the conf.py file. These changes get around this problem.
2023-06-05 06:04:33 -07:00
3 changed files with 104 additions and 33 deletions

4
.gitignore vendored
View file

@ -9,10 +9,10 @@
/temp.* /temp.*
# ignore result drectory created by fedpkg mockbuild # ignore result drectory created by fedpkg mockbuild
/results_cppad/ /results_cppad/
# directory used like git cache # directories used like git cache
/new/ /new/
/new.*/ /new.*/
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# #
# Most recent upstrem source # Most recent upstrem source
/CppAD-20230000.0.tar.gz /CppAD-20240000.3.tar.gz

View file

@ -2,14 +2,22 @@
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# Preamble # 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: # fedpkg lint: W: files-duplicate:
# the files user_guide.html index.html in directory /usr/share/doc/cppad # 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 # are the same. This is because a redirect from index.hml to user_guide.html
# will not reload when user_guide.html changes. # will not reload when user_guide.html changes.
# #
# fedora uses its own soversion number for cppad_lib # fedora uses its own soversion number for cppad_lib
# 4.0 corresponds to version 20230000 # 5.0 corresponds to version 20240000
%define soversion 4.0 %define soversion 5.0
# This is really an out of soruce build because the source is in the # 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 # CppAD-%%{version} sub-directory. The fedora macros are confused and need
@ -20,11 +28,11 @@
# Fedora Release starts with 1; see # Fedora Release starts with 1; see
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
Name: cppad Name: cppad
Version: 20230000.0 Version: 20240000.3
Release: 1%{?dist} Release: 2%{?dist}
Summary: C++ Algorithmic Differentiation (AD), %{name}-devel and %{name}-doc 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 URL: https://github.com/coin-or/CppAD
Source: %{url}/archive/%{version}/CppAD-%{version}.tar.gz Source: %{url}/archive/%{version}/CppAD-%{version}.tar.gz
# #
@ -32,7 +40,7 @@ BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: cmake >= 3.0 BuildRequires: cmake >= 3.0
BuildRequires: make BuildRequires: make
BuildRequires: python-xrst BuildRequires: python-xrst >= 2024.0
# python-xrst should auotmatically require python-toml # python-xrst should auotmatically require python-toml
BuildRequires: 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 Algorithmic Differentiation (AD) can be found at
http://en.wikipedia.org/wiki/Automatic_differentiation http://en.wikipedia.org/wiki/Automatic_differentiation
See the package %{name}-doc for documentation of this version of %{name}. 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 %package doc
@ -81,25 +91,50 @@ The documentation, for the most recent version of %{name}, can be found at
%setup -q -c %setup -q -c
# #
# xrst.toml # xrst.toml
echo '' >> CppAD-%{version}/xrst.toml # This is not a git repository so suppress the warning that could not double
echo '[spell_package]' >> CppAD-%{version}/xrst.toml # check that all the files with xrst commands were included.
echo 'data = "pyenchant"' >> CppAD-%{version}/xrst.toml
echo '' >> CppAD-%{version}/xrst.toml echo '' >> CppAD-%{version}/xrst.toml
echo '[input_files]' >> CppAD-%{version}/xrst.toml echo '[input_files]' >> CppAD-%{version}/xrst.toml
echo 'data = [ ]' >> CppAD-%{version}/xrst.toml echo 'data = [ ]' >> CppAD-%{version}/xrst.toml
# #
# Epel9: does not yet have spellchecker so use pyenchant
echo '[spell_package]' >> CppAD-%{version}/xrst.toml
echo "data = 'pyenchant'" >> CppAD-%{version}/xrst.toml
#
#
# CppAD-%%{version}/build/html # CppAD-%%{version}/build/html
# run xrst to create the documentation files in the directory above.
#
# Epel9: 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.
#
mkdir CppAD-%{version}/build mkdir CppAD-%{version}/build
xrst --version 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 \ xrst \
--rst_only \
--config_file CppAD-%{version}/xrst.toml \ --config_file CppAD-%{version}/xrst.toml \
--local_toc \ --local_toc \
--target html \ --target html \
--html_theme sphinx_rtd_theme \ --html_theme sphinx_rtd_theme \
--index_page_name user_guide \ --index_page_name user_guide \
--group_list default app \ --group_list default app \
--number_jobs $number_jobs \
--suppress_spell_warnings --suppress_spell_warnings
# #
# Epel9:
cd CppAD-%{version}/build
mv rst/xrst_root_doc.rst rst/index.rst
sphinx-build -b html rst html -j $number_jobs
rm -r html/_sources
mv rst/_sources html/_sources
cd ../..
#
# CppAD-%%{version}/build/html
# remove hidden files not needed for viewing documentation # remove hidden files not needed for viewing documentation
rm CppAD-%{version}/build/html/.buildinfo rm CppAD-%{version}/build/html/.buildinfo
rm -r CppAD-%{version}/build/html/.doctrees rm -r CppAD-%{version}/build/html/.doctrees
@ -108,24 +143,17 @@ rm -r CppAD-%{version}/build/html/.doctrees
# COPYING, uw_copy_040507.html # COPYING, uw_copy_040507.html
mv CppAD-%{version}/COPYING COPYING mv CppAD-%{version}/COPYING COPYING
mv CppAD-%{version}/uw_copy_040507.html uw_copy_040507.html mv CppAD-%{version}/uw_copy_040507.html uw_copy_040507.html
#
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# cppad_lib: replace soversion number and ensure build type is release # cppad_lib: replace soversion number and ensure build type is release
sed -i.bak CppAD-%{version}/cppad_lib/CMakeLists.txt \ sed -i.bak CppAD-%{version}/cppad_lib/CMakeLists.txt \
-e "s|print_variable(soversion)|SET(soversion %{soversion} )\n&|" \ -e "s|print_variable(soversion)|SET(soversion %{soversion} )\n&|" \
-e "s|\${cppad_debug_which}|debug_none|" -e "s|\${cppad_debug_which}|debug_none|"
# #
# configure.hpp.in: Make sure CPPAD_DEBUG_AND_RELEASE is defined # Bug fix to version 20240000.3 (not necessary in version 20240000.4 or higher)
# so we can use cppad_lib with both debug and release builds. sed -z -i.bak CppAD-%{version}/include/cppad/local/val_graph/fun2val.hpp \
sed -i.bak CppAD-%{version}/include/cppad/configure.hpp.in \ -e 's|\n *break;\(\n[^\n]*}\n[^\n]*-\n[^\n]*else switch(var_op)\n\)|\1|'
-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 # Print machine epsilon before any other testing
cat << EOF > temp.cpp cat << EOF > temp.cpp
@ -162,13 +190,10 @@ fi
# because they are absolute paths. Relative values would be more flexible # because they are absolute paths. Relative values would be more flexible
# because they can be combined with %%{_prefix} to get absolute values. # because they can be combined with %%{_prefix} to get absolute values.
# #
# 2. The last argument to the cmake command is the directory created using # 2. The debug_all is overridden for cppad_lib by the edit of
# the souce code tarball.
#
# 3. The debug_all is overridden for cppad_lib by the edit of
# cppad_lib/CMakeLists.txt above # 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. # array bounds in thread_alloc.hpp. Use -Wno-array-bounds to suppress it.
# #
# cppad_cxx_flags # cppad_cxx_flags
@ -191,7 +216,7 @@ cppad_cxx_flags=\
%cmake \ %cmake \
-S CppAD-%{version} \ -S CppAD-%{version} \
-B . \ -B . \
\ \
-D CMAKE_VERBOSE_MAKEFILE=0 \ -D CMAKE_VERBOSE_MAKEFILE=0 \
-G 'Unix Makefiles' \ -G 'Unix Makefiles' \
\ \
@ -219,7 +244,8 @@ cppad_cxx_flags=\
-D cppad_max_num_threads=64 \ -D cppad_max_num_threads=64 \
-D cppad_tape_id_type=size_t \ -D cppad_tape_id_type=size_t \
-D cppad_tape_addr_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/ # see https://docs.fedoraproject.org/en-US/packaging-guidelines/
# parallel_make # parallel_make
@ -236,15 +262,15 @@ cppad_cxx_flags=\
%files %files
%{_libdir}/libcppad_lib.so.%{soversion} %{_libdir}/libcppad_lib.so.%{soversion}
# These documentation files come from the source code tarball
%doc COPYING uw_copy_040507.html
%files devel %files devel
%{_includedir}/%{name} %{_includedir}/%{name}
%{_datadir}/pkgconfig/%{name}.pc %{_datadir}/pkgconfig/%{name}.pc
%{_libdir}/pkgconfig/%{name}.pc %{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/libcppad_lib.so %{_libdir}/libcppad_lib.so
# These documentation files come from the source code tarball
%doc COPYING uw_copy_040507.html
%files doc %files doc
# These documentation files are build by the xrst command above # These documentation files are build by the xrst command above
%{_docdir}/%{name} %{_docdir}/%{name}
@ -261,6 +287,51 @@ make %{?_smp_mflags} check
# This enables one to check that the necessary files are installed. # This enables one to check that the necessary files are installed.
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
%changelog %changelog
* Sat Mar 01 2024 Brad Bell <bradbell at seanet dot com> - 20240000.3-2
- This fixes a bug in fun2val.hpp. This change will not be necessary
- once the upstream source advances to 20240000.4.
* Tue Feb 20 2024 Brad Bell <bradbell at seanet dot com> - 20240000.3-1
- Use in current rawhide to replace cppad.spec as first commit.
- Make changes needed for epel9 as second commit; See Epel9 in comments above.
* Sat Feb 17 2024 Brad Bell <bradbell at seanet dot com> - 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 <releng@fedoraproject.org> - 20240000.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20240000.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 17 2024 Brad Bell <bradbell at seanet dot com> - 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 <bradbell at seanet dot com> - 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 <bradbell at seanet dot com> - 20240000.1-1
- Upstream fix of bug found by build on buildvm-x86-16.iad2.fedoraproject.org
* Sat Jan 06 2024 Brad Bell <bradbell at seanet dot com> - 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 <bradbell at seanet dot com> - 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 <releng@fedoraproject.org> - 20230000.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Jan 29 2023 Brad Bell <bradbell at seanet dot com> - 20230000.0-1 * Sun Jan 29 2023 Brad Bell <bradbell at seanet dot com> - 20230000.0-1
- Move libcppad_lib.so to main package (fixes a fedpkg lint error). - Move libcppad_lib.so to main package (fixes a fedpkg lint error).
- Fix comment about where doc files come from. - Fix comment about where doc files come from.

View file

@ -1 +1 @@
SHA512 (CppAD-20230000.0.tar.gz) = 9ed852894ab8eb1ca16a4599144293b08ca4cd9ca00e4a0585c8fea387c4a02143e065bc2c5d91dbe33ce5773aefb5ba74a6211b18827d22af70cb553d1051de SHA512 (CppAD-20240000.3.tar.gz) = 8a542df030a885a2a801634414e309aae1f546395a2e41e40bae2b553de00569ce17b2761eceea962d242382abe5ce6bf561bf9a6b476594ab802b9aa6f66000