diff --git a/README.md b/README.md new file mode 100644 index 0000000..671fed1 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# bliss + +Bliss is an open source tool for computing automorphism groups and +canonical forms of graphs. It has both a command line user interface as +well as C++ and C programming language APIs. diff --git a/bliss-rehn.patch b/bliss-rehn.patch index 324cff7..8879561 100644 --- a/bliss-rehn.patch +++ b/bliss-rehn.patch @@ -1,23 +1,25 @@ ---- graph.cc.orig 2016-08-02 23:48:05.000000000 -0600 -+++ graph.cc 2020-11-18 10:23:58.791980824 -0700 -@@ -608,16 +608,6 @@ public: +--- include/bliss/abstractgraph.hh.orig 2022-06-17 07:24:11.000000000 -0600 ++++ include/bliss/abstractgraph.hh 2023-02-01 09:32:06.289384074 -0700 +@@ -493,10 +493,14 @@ protected: + */ + unsigned int cr_component_elements; + ++ std::vector first_path_info; + ++public: + +- +- ++ /** ++ * Get an information vector about the first path. ++ */ ++ std::vector get_first_path_info() { return first_path_info; } + }; - -- -- --typedef struct { -- unsigned int splitting_element; -- unsigned int certificate_index; -- unsigned int subcertificate_length; -- UintSeqHash eqref_hash; --} PathInfo; -- -- - void - AbstractGraph::search(const bool canonical, Stats& stats) - { -@@ -745,7 +735,6 @@ AbstractGraph::search(const bool canonic +--- src/abstractgraph.cc.orig 2022-06-17 07:24:11.000000000 -0600 ++++ src/abstractgraph.cc 2023-02-01 09:31:50.377694086 -0700 +@@ -745,7 +745,6 @@ AbstractGraph::search(const bool canonic initialize_certificate(); std::vector search_stack; @@ -25,7 +27,9 @@ std::vector best_path_info; search_stack.clear(); -@@ -3711,7 +3700,7 @@ Digraph::nucr_find_first_component(const +--- src/graph.cc.orig 2022-06-17 07:24:11.000000000 -0600 ++++ src/graph.cc 2023-02-01 09:32:06.290384054 -0700 +@@ -1551,7 +1551,7 @@ Graph::nucr_find_first_component(const u component.clear(); component_elements = 0; sh_return = 0; @@ -34,41 +38,3 @@ unsigned int sh_size = 0; unsigned int sh_nuconn = 0; ---- graph.hh.orig 2016-08-02 23:48:05.000000000 -0600 -+++ graph.hh 2020-11-18 10:22:45.358042181 -0700 -@@ -109,9 +109,12 @@ public: - unsigned long int get_max_level() const {return max_level;} - }; - -- -- -- -+typedef struct { -+ unsigned int splitting_element; -+ unsigned int certificate_index; -+ unsigned int subcertificate_length; -+ UintSeqHash eqref_hash; -+} PathInfo; - - - /** -@@ -516,7 +519,7 @@ protected: - */ - unsigned int cr_component_elements; - -- -+ std::vector first_path_info; - - - }; -@@ -748,6 +751,10 @@ public: - void set_splitting_heuristic(const SplittingHeuristic shs) {sh = shs; } - - -+ /** -+ * Get an information vector about the first path. -+ */ -+ std::vector get_first_path_info() { return first_path_info; } - }; - - diff --git a/bliss.spec b/bliss.spec index f42f68f..9b1aacd 100644 --- a/bliss.spec +++ b/bliss.spec @@ -1,73 +1,106 @@ -%global pkgdate 2016-08-02 -%global debrel 1 +%global giturl https://github.com/scipopt/Bliss Name: bliss -Version: 0.73 -Release: 13%{?dist} +Version: 0.77 +Release: 11%{?dist} Summary: Compute automorphism groups and canonical labelings of graphs -License: LGPLv3 -URL: http://www.tcs.hut.fi/Software/bliss/ -Source0: https://github.com/mkoeppe/bliss/archive/sage_package/%{version}+debian-%{debrel}+sage-%{pkgdate}.tar.gz +License: LGPL-3.0-only +URL: https://users.aalto.fi/~tjunttil/bliss/ +VCS: git:%{giturl}.git +Source0: %{giturl}/archive/v%{version}/Bliss-%{version}.tar.gz # Man page written by Jerry James using text borrowed from the sources. # The man page therefore has the same copyright and license as the sources. Source1: bliss.1 # Patch from Thomas Rehn, sent upstream 28 Oct 2011. Fix one bug and add one # performance enhancement. -Patch0: bliss-rehn.patch +Patch: bliss-rehn.patch +# See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: %{ix86} + +BuildRequires: cmake BuildRequires: doxygen BuildRequires: gcc-c++ BuildRequires: gmp-devel -BuildRequires: libtool BuildRequires: make Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description -Bliss is an open source tool for computing automorphism groups and -canonical forms of graphs. It has both a command line user interface as -well as C++ and C programming language APIs. +Bliss is an open source tool for computing automorphism groups and canonical +forms of graphs. It has both a command line user interface as well as C++ and +C programming language APIs. %package devel +# The content is LGPL-3.0-only. Other licenses are due to files installed by +# doxygen. +# html/bc_s.png: GPL-1.0-or-later +# html/bdwn.png: GPL-1.0-or-later +# html/closed.png: GPL-1.0-or-later +# html/doc.png: GPL-1.0-or-later +# html/doxygen.css: GPL-1.0-or-later +# html/doxygen.svg: GPL-1.0-or-later +# html/dynsections.js: MIT +# html/folderclosed.png: GPL-1.0-or-later +# html/folderopen.png: GPL-1.0-or-later +# html/jquery.js: MIT +# html/menu.js: MIT +# html/menudata.js: MIT +# html/nav_f.png: GPL-1.0-or-later +# html/nav_g.png: GPL-1.0-or-later +# html/nav_h.png: GPL-1.0-or-later +# html/open.png: GPL-1.0-or-later +# html/splitbar.png: GPL-1.0-or-later +# html/sync_off.png: GPL-1.0-or-later +# html/sync_on.png: GPL-1.0-or-later +# html/tab_a.png: GPL-1.0-or-later +# html/tab_b.png: GPL-1.0-or-later +# html/tab_h.png: GPL-1.0-or-later +# html/tab_s.png: GPL-1.0-or-later +# html/tabs.css: GPL-1.0-or-later +License: LGPL-3.0-only AND MIT AND GPL-1.0-or-later Summary: Headers and library files for developing with bliss Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: gmp-devel%{?_isa} -Provides: bundled(jquery) %description devel -Headers and library files needed to develop applications that use the -bliss library. +Headers and library files needed to develop applications that use the bliss +library. %package libs Summary: Compute automorphism groups and canonical labelings of graphs %description libs -A command-line bliss tool to access the functionality of the bliss -library. +A command-line bliss tool to access the functionality of the bliss library. %prep -%autosetup -p0 -n bliss-sage_package-%{version}-debian-%{debrel}-sage-%{pkgdate} -autoreconf -fi . +%autosetup -n Bliss-%{version} -p0 + +%conf +# Do not override Fedora build flags. The last sagemath version added an +# soname. Duplicate it for compatibility. Link the library with libgmp. +# Hidden symbols hide ALL symbols, meaning we can't use the library. +sed -e 's/ -O3//' \ + -e '/POSITION_INDEPENDENT/a\ \ VERSION 2.0.0 SOVERSION 2' \ + -e '/^install($/itarget_link_libraries(libbliss ${GMP_LIBRARIES})' \ + -e '/VISIBILITY/d' \ + -i CMakeLists.txt + +# Fix installation directories +if [ "%{_lib}" != "lib" ]; then + sed -i 's,\(DESTINATION \)lib,\1%{_lib},' CMakeLists.txt +fi %build -%configure --disable-static - -# Get rid of undesirable hardcoded rpaths; workaround libtool reordering -# -Wl,--as-needed after all the libraries. -sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ - -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \ - -e 's|CC="\(.*g..\)"|CC="\1 -Wl,--as-needed"|' \ - -i libtool - -%make_build +%cmake -DUSE_GMP:BOOL=ON +%cmake_build # Build the documentation doxygen %install -%make_install -rm %{buildroot}%{_libdir}/*.la +%cmake_install # Install the man page mkdir -p %{buildroot}%{_mandir}/man1 @@ -82,12 +115,61 @@ touch -r %{SOURCE1} %{buildroot}%{_mandir}/man1/bliss.1 %doc html %{_includedir}/bliss %{_libdir}/libbliss.so +%{_libdir}/cmake/Bliss/ %files libs +%doc CHANGES.txt %license COPYING COPYING.LESSER -%{_libdir}/libbliss.so.2* +%{_libdir}/libbliss.so.2{,.*} %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 0.77-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jan 16 2025 Fedora Release Engineering - 0.77-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 17 2024 Fedora Release Engineering - 0.77-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Feb 22 2024 Jerry James - 0.77-8 +- Build the SCIP fork +- Do not build for 32-bit x86 + +* Tue Jan 23 2024 Fedora Release Engineering - 0.77-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 0.77-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 0.77-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jan 18 2023 Fedora Release Engineering - 0.77-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Aug 15 2022 Jerry James - 0.77-3 +- Convert License tag to SPDX + +* Wed Jul 20 2022 Fedora Release Engineering - 0.77-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 0.77-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Oct 7 2021 Jerry James - 0.77-1 +- Version 0.77 +- Switch to new upstream URLs + +* Wed Jul 21 2021 Fedora Release Engineering - 0.73-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jul 19 2021 Jerry James - 0.73-15 +- Switch to github URLs + +* Tue Jan 26 2021 Fedora Release Engineering - 0.73-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Dec 7 2020 Jerry James - 0.73-13 - Switch to using the sagemath sources - Drop -error patch; nobody else uses it and it changes the contract diff --git a/sources b/sources index f84e737..c2c1d11 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (0.73+debian-1+sage-2016-08-02.tar.gz) = 6bebd421e2bade97bb98bc3baa7556f3f0ef357dd98a20096a90118e4eed919cb4ca9d4cb59b353f9b4cace215f699599f8b1c4e95843488bdc4019b670a185b +SHA512 (Bliss-0.77.tar.gz) = 27bd44695f2c1f3dfcb2f39f75fea3f61db29dfde4bef545bd14017830cd3d399b2e448ae7a703a5886bd433b22f6eddfaa99618c8714340d366d8e387ae6583