commit: 9a8e4918d692387e41f5e322448aecf09920b0ec Author: Arsen Arsenović <arsen <AT> gentoo <DOT> org> AuthorDate: Sun Mar 26 20:56:58 2023 +0000 Commit: Arsen Arsenović <arsen <AT> gentoo <DOT> org> CommitDate: Sun Aug 18 17:43:14 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a8e4918
dev-scheme/guile: add properly slotted revisions Bug: https://bugs.gentoo.org/689408 Bug: https://bugs.gentoo.org/640116 Bug: https://bugs.gentoo.org/746914 Bug: https://bugs.gentoo.org/705554 Signed-off-by: Arsen Arsenović <arsen <AT> gentoo.org> dev-scheme/guile/guile-2.2.7-r100.ebuild | 93 ++++++++++++++++++++++ ...uile-3.0.10.ebuild => guile-3.0.10-r100.ebuild} | 22 +++-- dev-scheme/guile/guile-3.0.10.ebuild | 2 +- dev-scheme/guile/metadata.xml | 9 +++ profiles/package.mask | 7 ++ 5 files changed, 126 insertions(+), 7 deletions(-) diff --git a/dev-scheme/guile/guile-2.2.7-r100.ebuild b/dev-scheme/guile/guile-2.2.7-r100.ebuild new file mode 100644 index 000000000000..ad6818be8c55 --- /dev/null +++ b/dev-scheme/guile/guile-2.2.7-r100.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +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 ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="debug debug-malloc +deprecated +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/libltdl:= + dev-libs/libunistring:0= + sys-libs/ncurses:0= + sys-libs/readline:0= + virtual/libcrypt:= + !dev-scheme/guile:12 +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + dev-build/libtool + sys-devel/gettext +" + +PATCHES=( + "${FILESDIR}/${PN}-2.2.3-gentoo-sandbox.patch" + "${FILESDIR}/${PN}-2.2.7-stack-up.patch" +) + +# guile generates ELF files without use of C or machine code +# It's a portage's false positive. bug #677600 +QA_PREBUILT='*[.]go' + +DOCS=( GUILE-VERSION HACKING README ) + +src_configure() { + # see bug #676468 + mv prebuilt/32-bit-big-endian{,.broken} || die + + econf \ + --program-suffix="-${SLOT}" \ + --disable-error-on-warning \ + --disable-rpath \ + --disable-static \ + --enable-posix \ + --without-libgmp-prefix \ + --without-libiconv-prefix \ + --without-libintl-prefix \ + --without-libltdl-prefix \ + --without-libreadline-prefix \ + --without-libunistring-prefix \ + $(use_enable debug guile-debug) \ + $(use_enable debug-malloc) \ + $(use_enable deprecated) \ + $(use_enable networking) \ + $(use_enable nls) \ + $(use_enable regex) \ + $(use_with threads) +} + +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 + + find "${D}" -name '*.la' -delete || die + + # Move the pkg-config files to guile-data. In future versions, this + # should be handled by --with-pkgconfigdir (patch waiting on + # upstream). + local pcdir=/usr/share/guile-data/"${SLOT}" + mkdir -p "${ED}${pcdir}" || die + mv "${ED}"/usr/share/aclocal/guile{,-"${SLOT}"}.m4 || die + mv "${ED}"/usr/$(get_libdir)/pkgconfig/ \ + "${ED}/${pcdir}" || die + + newenvd - "50guile${SLOT}" <<-EOF + PKG_CONFIG_PATH="${pcdir}/pkgconfig" + EOF +} diff --git a/dev-scheme/guile/guile-3.0.10.ebuild b/dev-scheme/guile/guile-3.0.10-r100.ebuild similarity index 80% copy from dev-scheme/guile/guile-3.0.10.ebuild copy to dev-scheme/guile/guile-3.0.10-r100.ebuild index 5d10f39559f3..027d50d2cadf 100644 --- a/dev-scheme/guile/guile-3.0.10.ebuild +++ b/dev-scheme/guile/guile-3.0.10-r100.ebuild @@ -3,13 +3,12 @@ EAPI=8 -MAJOR="3.0" 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="12/3.0-1" # libguile-2.2.so.1 => 2.2-1 +SLOT="$(ver_cut 1-2)" # See (guile)Parallel Installations. KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 @@ -25,6 +24,7 @@ RDEPEND=" sys-libs/ncurses:= sys-libs/readline:= virtual/libcrypt:= + !dev-scheme/guile:12 " DEPEND="${RDEPEND}" BDEPEND=" @@ -41,11 +41,19 @@ DOCS=( ABOUT-NLS AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS ) PATCHES=( "${FILESDIR}"/${PN}-2.2.3-gentoo-sandbox.patch ) +# Where to install data files. +GUILE_DATA="${PREFIX}/usr/share/guile-data/${SLOT}" +GUILE_PCDIR="/usr/share/guile-data/${SLOT}/pkgconfig" + src_configure() { # see bug #676468 mv prebuilt/32-bit-big-endian{,.broken} || die local -a myconf=( + --program-suffix="-${SLOT}" + --infodir="${GUILE_DATA}/info" + --with-pkgconfigdir="${GUILE_PCDIR}" + --disable-error-on-warning --disable-rpath --disable-lto @@ -64,7 +72,7 @@ src_configure() { $(use_enable regex) $(use_with threads) ) - econf ${myconf[@]} + econf "${myconf[@]}" } src_install() { @@ -74,8 +82,10 @@ src_install() { 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 - # necessary for registering slib, see bug #206896 - keepdir /usr/share/guile/site - + mv "${ED}"/usr/share/aclocal/guile{,-"${SLOT}"}.m4 || die find "${ED}" -name '*.la' -delete || die + + newenvd - "50guile${SLOT}" <<-EOF + PKG_CONFIG_PATH="${GUILE_PCDIR}" + EOF } diff --git a/dev-scheme/guile/guile-3.0.10.ebuild b/dev-scheme/guile/guile-3.0.10.ebuild index 5d10f39559f3..25b528640471 100644 --- a/dev-scheme/guile/guile-3.0.10.ebuild +++ b/dev-scheme/guile/guile-3.0.10.ebuild @@ -64,7 +64,7 @@ src_configure() { $(use_enable regex) $(use_with threads) ) - econf ${myconf[@]} + econf "${myconf[@]}" } src_install() { diff --git a/dev-scheme/guile/metadata.xml b/dev-scheme/guile/metadata.xml index 0ec99201052d..fc7f82d4b3b9 100644 --- a/dev-scheme/guile/metadata.xml +++ b/dev-scheme/guile/metadata.xml @@ -20,4 +20,13 @@ Guile is a library designed to help programmers create flexible applications. Us <doc>https://www.gnu.org/software/guile/manual/html_node/index.html</doc> <remote-id type="savannah">guile</remote-id> </upstream> + <slots> + <!-- See (guile)Parallel Installations. --> + <slot name="3.0"> + Guile effective version 3.0. + </slot> + <slot name="2.2"> + Guile effective version 2.2. + </slot> + </slots> </pkgmetadata> diff --git a/profiles/package.mask b/profiles/package.mask index 3232315d3ede..3af559d8e0d7 100644 --- a/profiles/package.mask +++ b/profiles/package.mask @@ -33,6 +33,13 @@ #--- END OF EXAMPLES --- +# Arsen Arsenović <[email protected]> (2024-08-02) +# Guile rework masks. Mask all packages or package versions that are +# being bumped as part of the Guile reslotting process. +# Masked until the whole Guile ecosystem is updated. +dev-scheme/guile:2.2 +dev-scheme/guile:3.0 + # Eli Schwartz <[email protected]> (2024-08-15) # Abandoned upstream since 2011, unmaintained in gentoo since 2017. Tons of # patches, breaks again with GCC 14. Severe QA issues, automagic dependencies,
