summaryrefslogtreecommitdiff
path: root/dev-scheme/guile/guile-3.0.10-r103.ebuild
diff options
context:
space:
mode:
authorArsen Arsenović <arsen@gentoo.org>2025-02-24 01:24:32 +0100
committerArsen Arsenović <arsen@gentoo.org>2025-02-28 00:13:51 +0100
commit015ae883003b7f54e93c04e3d5e6c9f311a3df66 (patch)
tree356bae2df3725bc4a354b82c18fb840823e9efb5 /dev-scheme/guile/guile-3.0.10-r103.ebuild
parent0d26e1d8474a62c06db64392d4c2fbf7176df034 (diff)
downloadgentoo-015ae883003b7f54e93c04e3d5e6c9f311a3df66.tar.gz
gentoo-015ae883003b7f54e93c04e3d5e6c9f311a3df66.tar.bz2
gentoo-015ae883003b7f54e93c04e3d5e6c9f311a3df66.zip
dev-scheme/guile: call eselect-guile for updates
Signed-off-by: Arsen Arsenović <arsen@gentoo.org>
Diffstat (limited to 'dev-scheme/guile/guile-3.0.10-r103.ebuild')
-rw-r--r--dev-scheme/guile/guile-3.0.10-r103.ebuild149
1 files changed, 149 insertions, 0 deletions
diff --git a/dev-scheme/guile/guile-3.0.10-r103.ebuild b/dev-scheme/guile/guile-3.0.10-r103.ebuild
new file mode 100644
index 000000000000..7ba9f8e94f3b
--- /dev/null
+++ b/dev-scheme/guile/guile-3.0.10-r103.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions"
+HOMEPAGE="https://www.gnu.org/software/guile/"
+SRC_URI="mirror://gnu/guile/${P}.tar.xz"
+
+LICENSE="LGPL-3+"
+SLOT="$(ver_cut 1-2)" # See (guile)Parallel Installations.
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos"
+
+IUSE="debug debug-malloc +deprecated +jit +networking +nls +regex +threads" # upstream recommended +networking +nls
+REQUIRED_USE="regex" # workaround for bug #596322
+RESTRICT="strip"
+
+RDEPEND="
+ >=dev-libs/boehm-gc-7.0[threads?]
+ dev-libs/gmp:=
+ dev-libs/libffi:=
+ dev-libs/libatomic_ops
+ dev-libs/libunistring:=
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ virtual/libcrypt:=
+ !dev-scheme/guile:12
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ dev-build/libtool
+ sys-devel/gettext
+"
+IDEPEND="
+ app-eselect/eselect-guile
+"
+
+# guile generates ELF files without use of C or machine code
+# It's false positive. bug #677600
+QA_PREBUILT='*[.]go'
+
+DOCS=( ABOUT-NLS AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.3-gentoo-sandbox.patch
+ "${FILESDIR}/${PN}-3.0-fix-32bit-BE.patch"
+ "${FILESDIR}/${PN}-3.0.10-backport-issue72913.patch"
+ "${FILESDIR}/${PN}-3.0.10-c23.patch"
+)
+
+# Where to install data files.
+GUILE_DATA="${EPREFIX}/usr/share/guile-data/${SLOT}"
+GUILE_PCDIR="${EPREFIX}/usr/share/guile-data/${SLOT}/pkgconfig"
+GUILE_INFODIR="${GUILE_DATA}"/info
+
+src_prepare() {
+ default
+
+ # Needed for fix-32bit-BE.patch
+ eautoreconf
+}
+
+src_configure() {
+ # See bug #676468 (may be able to drop this if we adapt fix-32bit-BE.patch)?
+ mv prebuilt/32-bit-big-endian{,.broken} || die
+
+ # bug #944029
+ append-cflags -std=gnu17
+
+ local -a myconf=(
+ --program-suffix="-${SLOT}"
+ --infodir="${GUILE_INFODIR}"
+ --with-pkgconfigdir="${GUILE_PCDIR}"
+
+ --disable-error-on-warning
+ --disable-rpath
+ --disable-lto
+ --enable-posix
+ --without-libgmp-prefix
+ --without-libiconv-prefix
+ --without-libintl-prefix
+ --without-libreadline-prefix
+ --without-libunistring-prefix
+ $(use_enable debug guile-debug)
+ $(use_enable debug-malloc)
+ $(use_enable deprecated)
+ $(use_enable jit)
+ $(use_enable networking)
+ $(use_enable nls)
+ $(use_enable regex)
+ $(use_with threads)
+ )
+
+ econf "${myconf[@]}"
+}
+
+# Akin to (and taken from) toolchain-autoconfs eclass
+guile_slot_info() {
+ rm -f dir || die
+
+ pushd "${D}/${GUILE_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Guile pages.
+ ln -s "$f" "${f/./-${SLOT}.}" || die
+ done
+ popd >/dev/null || die
+
+ docompress "${GUILE_INFODIR}"
+}
+
+src_install() {
+ default
+
+ # From Novell https://bugzilla.novell.com/show_bug.cgi?id=874028#c0
+ dodir /usr/share/gdb/auto-load/$(get_libdir)
+ mv "${ED}"/usr/$(get_libdir)/libguile-*-gdb.scm "${ED}"/usr/share/gdb/auto-load/$(get_libdir) || die
+
+ mv "${ED}"/usr/share/aclocal/guile{,-"${SLOT}"}.m4 || die
+ find "${ED}" -name '*.la' -delete || die
+
+ guile_slot_info
+
+ local major="$(ver_cut 1 "${SLOT}")"
+ local minor="$(ver_cut 2 "${SLOT}")"
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "50guile${idx}" <<-EOF
+ PKG_CONFIG_PATH="${GUILE_PCDIR}"
+ INFOPATH="${GUILE_INFODIR}"
+ EOF
+}
+
+pkg_postinst() {
+ if has_version app-eselect/eselect-guile; then
+ eselect guile update # Nonfatal
+ fi
+ return 0
+}
+
+pkg_postrm() {
+ # A pkg_postinst for the replacing package will be called after.
+ if has_version app-eselect/eselect-guile \
+ && ! [[ "${REPLACED_BY_VERSION}" ]]; then
+ eselect guile update # Nonfatal
+ fi
+ return 0
+}