commit:     177ed9f2185d6f1f7b64a475169a9ed0b18989b8
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 12 01:56:27 2024 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Tue Mar 12 01:59:17 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=177ed9f2

sci-mathematics/nauty: fix build with autoconf-2.72

New patch fixes AC_SYS_LARGEFILE issues. Thanks to Dima Pasechnik for
doing the legwork.

Closes: https://bugs.gentoo.org/921138
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 .../nauty/files/nauty-2.8.8-autoconf-2.72.patch    | 53 ++++++++++++++
 sci-mathematics/nauty/nauty-2.8.8-r1.ebuild        | 80 ++++++++++++++++++++++
 2 files changed, 133 insertions(+)

diff --git a/sci-mathematics/nauty/files/nauty-2.8.8-autoconf-2.72.patch 
b/sci-mathematics/nauty/files/nauty-2.8.8-autoconf-2.72.patch
new file mode 100644
index 000000000000..db8fa5e699c0
--- /dev/null
+++ b/sci-mathematics/nauty/files/nauty-2.8.8-autoconf-2.72.patch
@@ -0,0 +1,53 @@
+diff --git a/configure.ac b/configure.ac
+index 5f28e30..69d42ff 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -186,9 +186,18 @@ dnl AC_PROG_CC
+ dnl CFLAGS=$user_cflags
+ MORECFLAGS=""
+ dnl  we need  AC_SYS_LARGEFILE and AC_FUNC_FSEEKO
++LARGEFILECFLAGS=""
+ AC_SYS_LARGEFILE
+-AS_IF([test "x$ac_cv_sys_file_offset_bits" = 
xno],[ac_cv_sys_file_offset_bits=0])
+-AC_SUBST(ac_cv_sys_file_offset_bits)
++dnl AS_IF([test "x$ac_cv_sys_file_offset_bits" = 
xno],[ac_cv_sys_file_offset_bits=0])
++dnl AC_SUBST(ac_cv_sys_file_offset_bits
++AS_CASE([$ac_cv_sys_largefile_opts],
++  ["none needed"], [],
++  ["support not detected"], [],
++  dnl otherwise it is a compiler flag
++  [LARGEFILECFLAGS="$ac_cv_sys_largefile_opts"]
++  )
++MORECFLAGS="$LARGEFILECFLAGS"
++AC_SUBST(LARGEFILECFLAGS)
+ 
+ dnl AS_IF([test "x$user_cflags" = x || test "x$user_cflags" = x-m32],
+ dnl [
+diff --git a/nauty-h.in b/nauty-h.in
+index ae65bc9..51508d9 100644
+--- a/nauty-h.in
++++ b/nauty-h.in
+@@ -60,13 +60,6 @@ it is necessary to check they are correct.
+ #define FLEX_ARRAY_OK @flex_array_ok@
+  /* whether the compiler supports flexible array members in structures */
+ 
+-#define _FILE_OFFSET_BITS @ac_cv_sys_file_offset_bits@
+-#if _FILE_OFFSET_BITS == 64
+-#define _LARGEFILE_SOURCE
+-#else
+-#undef _FILE_OFFSET_BITS
+-#endif
+-
+ /* Support of gcc extensions __builtin_clz, __builtin_clzl, __builtin_clzll */
+ #ifndef HAVE_HWLZCNT
+ #define HAVE_HWLZCNT @have_hwlzcnt@
+diff --git a/nauty-pc.in b/nauty-pc.in
+index cde86b3..c0bcef8 100644
+--- a/nauty-pc.in
++++ b/nauty-pc.in
+@@ -9,4 +9,4 @@ Version: @PACKAGE_VERSION@
+ URL: @PACKAGE_URL@
+ Libs: -L${libdir} -l@PACKAGE@
+ Libs.private: -lpthread
+-Cflags: -I${includedir}
++Cflags: -I${includedir} @LARGEFILECFLAGS@

diff --git a/sci-mathematics/nauty/nauty-2.8.8-r1.ebuild 
b/sci-mathematics/nauty/nauty-2.8.8-r1.ebuild
new file mode 100644
index 000000000000..af2ba2a10de8
--- /dev/null
+++ b/sci-mathematics/nauty/nauty-2.8.8-r1.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+MY_PV=${PV//./_}
+DEBIAN_PATCH_VERSION=1
+
+DESCRIPTION="Computing automorphism groups of graphs and digraphs"
+HOMEPAGE="https://pallini.di.uniroma1.it/";
+
+SRC_URI="https://pallini.di.uniroma1.it/${PN}${MY_PV}.tar.gz
+       
mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${PV}+ds-${DEBIAN_PATCH_VERSION}.debian.tar.xz
+       
https://src.fedoraproject.org/rpms/nauty/raw/rawhide/f/nauty-includes.patch";
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~riscv ~x86"
+IUSE="cpu_flags_x86_popcnt examples"
+
+BDEPEND="sys-apps/help2man"
+DEPEND="dev-libs/gmp:0
+       sys-libs/zlib
+       sci-mathematics/cliquer"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}${MY_PV}"
+
+DOCS=( schreier.txt formats.txt changes24-28.txt )
+
+PATCHES=(
+       "${WORKDIR}/debian/patches/upstream-fix-gt_numorbits.patch"
+       "${WORKDIR}/debian/patches/upstream-zlib-dimacs2g.patch"
+       "${WORKDIR}/debian/patches/upstream-C2help2man.patch"
+       "${WORKDIR}/debian/patches/upstream-autotoolization.patch"
+       "${DISTDIR}/nauty-includes.patch"
+       "${WORKDIR}/debian/patches/unbundle-cliquer.patch"
+       "${WORKDIR}/debian/patches/format.patch"
+       "${WORKDIR}/debian/patches/uninitialized.patch"
+       "${WORKDIR}/debian/patches/fall-off.patch"
+       "${WORKDIR}/debian/patches/noreturn.patch"
+       "${FILESDIR}/${P}-autoconf-2.72.patch"
+)
+
+src_prepare() {
+       default
+       rm makefile || die
+
+       # The debian patch looks for <cliquer.h>, but the autotools-form of
+       # cliquer installs that header as <cliquer/cliquer.h>.
+       sed -e 's~<cliquer\.h>~<cliquer/cliquer\.h>~' -i nautycliquer.h || die
+
+       eautoreconf
+}
+
+src_configure() {
+       econf --disable-static \
+                 --enable-tls \
+                 --enable-generic \
+                 $(use_enable cpu_flags_x86_popcnt popcnt)
+}
+
+src_test() {
+       # It arrives non-executable in v2.8.8.
+       chmod +x runalltests || die
+       default
+}
+
+src_install() {
+       default
+
+       if use examples; then
+               docinto examples
+               dodoc nautyex*.c
+       fi
+
+       find "${ED}" -name '*.la' -delete || die
+}

Reply via email to