commit:     015ae883003b7f54e93c04e3d5e6c9f311a3df66
Author:     Arsen Arsenović <arsen <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 24 00:24:32 2025 +0000
Commit:     Arsen Arsenović <arsen <AT> gentoo <DOT> org>
CommitDate: Thu Feb 27 23:13:51 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=015ae883

dev-scheme/guile: call eselect-guile for updates

Signed-off-by: Arsen Arsenović <arsen <AT> gentoo.org>

 dev-scheme/guile/guile-1.8.8-r103.ebuild  | 186 ++++++++++++++++++++++++++++++
 dev-scheme/guile/guile-2.2.7-r103.ebuild  | 136 ++++++++++++++++++++++
 dev-scheme/guile/guile-3.0.10-r103.ebuild | 149 ++++++++++++++++++++++++
 3 files changed, 471 insertions(+)

diff --git a/dev-scheme/guile/guile-1.8.8-r103.ebuild 
b/dev-scheme/guile/guile-1.8.8-r103.ebuild
new file mode 100644
index 000000000000..3b17e3397a10
--- /dev/null
+++ b/dev-scheme/guile/guile-1.8.8-r103.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic elisp-common
+
+DESCRIPTION="GNU Ubiquitous Intelligent Language for Extensions"
+HOMEPAGE="https://www.gnu.org/software/guile/";
+SRC_URI="mirror://gnu/guile/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="$(ver_cut 1-2)"
+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-freelist debug-malloc +deprecated discouraged emacs 
networking nls readline +regex +threads"
+RESTRICT="!regex? ( test )"
+
+RDEPEND="
+       >=dev-libs/gmp-4.1:0=
+       dev-libs/libltdl:0=
+       sys-devel/gettext
+       sys-libs/ncurses:0=
+       virtual/libcrypt:=
+       readline? ( sys-libs/readline:0= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       sys-apps/texinfo
+       dev-build/libtool
+       emacs? ( >=app-editors/emacs-23.1:* )
+"
+IDEPEND="
+       app-eselect/eselect-guile
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-fix_guile-config.patch
+       "${FILESDIR}"/${P}-gcc46.patch
+       "${FILESDIR}"/${P}-gcc5.patch
+       "${FILESDIR}"/${P}-makeinfo-5.patch
+       "${FILESDIR}"/${P}-gtexinfo-5.patch
+       "${FILESDIR}"/${P}-readline.patch
+       "${FILESDIR}"/${P}-tinfo.patch
+       "${FILESDIR}"/${P}-sandbox.patch
+       "${FILESDIR}"/${P}-mkdir-mask.patch
+       "${FILESDIR}"/${PN}-1.8.8-texinfo-6.7.patch
+)
+
+DOCS=( AUTHORS ChangeLog GUILE-VERSION HACKING NEWS README THANKS )
+
+# Where to install data files.
+GUILE_DATA="${EPREFIX}/usr/share/guile-data/${SLOT}"
+GUILE_PCDIR="${EPREFIX}/usr/share/guile-data/${SLOT}/pkgconfig"
+GUILE_INFODIR="${EPREFIX}"/usr/share/guile-data/"${SLOT}"/info
+
+src_prepare() {
+       default
+
+       sed \
+               -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g" \
+               -e "/AM_PROG_CC_STDC/d" \
+               -i guile-readline/configure.in || die
+
+       mv "${S}"/configure.{in,ac} || die
+       mv "${S}"/guile-readline/configure.{in,ac} || die
+
+       eautoreconf
+}
+
+src_configure() {
+       # See bug #178499.  filter-flags no longer works since the compiler
+       # will vectorize by default when optimizing.
+       append-flags -fno-tree-vectorize -fno-strict-aliasing
+
+       #will fail for me if posix is disabled or without modules -- hkBst
+       myconf=(
+               --program-suffix="-${SLOT}"
+               --infodir="${GUILE_INFODIR}"
+               --includedir="${EPREFIX}/usr/include/guile/${SLOT}"
+
+               --disable-error-on-warning
+               --disable-static
+               --enable-posix
+               $(use_enable networking)
+               $(use_enable readline)
+               $(use_enable regex)
+               $(use deprecated || use_enable discouraged)
+               $(use_enable deprecated)
+               $(use_enable emacs elisp)
+               $(use_enable nls)
+               --disable-rpath
+               $(use_enable debug-freelist)
+               $(use_enable debug-malloc)
+               $(use_enable debug guile-debug)
+               $(use_with threads)
+               --with-modules
+       )
+       econf "${myconf[@]}" EMACS=no
+}
+
+src_compile() {
+       emake
+
+       # Above we have disabled the build system's Emacs support;
+       # for USE=emacs we compile (and install) the files manually
+       if use emacs; then
+               cd emacs || die
+               elisp-compile *.el || die
+       fi
+}
+
+# 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
+
+       dodir "${GUILE_PCDIR}"
+       sed -e "/libdir/i bindir=${ESYSROOT}/usr/bin" \
+               -e "/libguileinterface/a guile=\${bindir}/guile-${SLOT}" \
+               -i "${ED}"/usr/$(get_libdir)/pkgconfig/guile-1.8.pc || die
+       mv "${ED}"/usr/$(get_libdir)/pkgconfig/guile-1.8.pc 
"${D}/${GUILE_PCDIR}"/guile-1.8.pc || die
+
+       sed -i "1s/guile/guile-1.8/" "${ED}"/usr/bin/guile-config-1.8 || die
+
+       for script in PROGRAM autofrisk doc-snarf generate-autoload punify \
+                                 read-scheme-source scan-api 
snarf-guile-m4-docs use2dot \
+                                 api-diff  display-commentary frisk lint 
read-rfc822 \
+                                 read-text-outline snarf-check-and-output-texi 
summarize-guile-TODO; do
+               sed "s/GUILE-guile/GUILE-guile-1.8/" \
+                       -i "${ED}"/usr/share/guile/1.8/scripts/${script}-1.8 || 
die
+               mv "${ED}"/usr/share/guile/1.8/scripts/${script}{-1.8,} || die
+       done
+
+       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
+
+       # necessary for registering slib, see bug 206896
+       keepdir /usr/share/guile/site
+
+       if use emacs; then
+               elisp-install ${PN}-${SLOT} emacs/*.{el,elc}
+               elisp-make-site-file "50${PN}-${SLOT}-gentoo.el"
+       fi
+}
+
+pkg_postinst() {
+       use emacs && elisp-site-regen
+
+       if has_version app-eselect/eselect-guile; then
+               eselect guile update # Nonfatal
+       fi
+       return 0
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+
+       # 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
+}

diff --git a/dev-scheme/guile/guile-2.2.7-r103.ebuild 
b/dev-scheme/guile/guile-2.2.7-r103.ebuild
new file mode 100644
index 000000000000..66c5dffe8ada
--- /dev/null
+++ b/dev-scheme/guile/guile-2.2.7-r103.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2025 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 ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~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
+"
+IDEPEND="
+       app-eselect/eselect-guile
+"
+
+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'
+
+GUILE_INFODIR="${EPREFIX}"/usr/share/guile-data/"${SLOT}"/info
+
+DOCS=( GUILE-VERSION HACKING README )
+
+src_configure() {
+       # see bug #676468
+       mv prebuilt/32-bit-big-endian{,.broken} || die
+
+       econf \
+               --infodir="${GUILE_INFODIR}" \
+               --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)
+}
+
+# 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
+
+       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 datadir=/usr/share/guile-data/"${SLOT}"
+       local pcdir="${datadir}"/pkgconfig
+       mkdir -p "${ED}${datadir}" || die
+       mv "${ED}"/usr/share/aclocal/guile{,-"${SLOT}"}.m4 || die
+       mv "${ED}"/usr/$(get_libdir)/pkgconfig/ \
+          "${ED}/${pcdir}" || 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="${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
+}

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
+}

Reply via email to