Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F132972834
D40194.id122471.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
125 KB
Referenced Files
None
Subscribers
None
D40194.id122471.diff
View Options
diff --git a/Mk/Uses/guile.mk b/Mk/Uses/guile.mk
new file mode 100644
--- /dev/null
+++ b/Mk/Uses/guile.mk
@@ -0,0 +1,192 @@
+# Provide support for guile
+#
+# MAINTAINER: ports@FreeBSD.org
+# Usage:
+#
+# USES+= guile[:options,...]
+#
+# Options:
+#
+# X.Y specify a Guile version, e.g. 2.2 or 3.0
+#
+# flavors define FLAVOR / FLAVORS as guileX from the allowed versions
+#
+# build add dependency to BUILD_DEPENDS instead of LIB_DEPENDS
+# run add dependency to RUN_DEPENDS instead of LIB_DEPENDS
+#
+# env define only the GUIL[DE]_* vars and add them to PLIST_SUB,
+# do not add dependencies or other global state
+#
+# alias add BINARY_ALIAS for guile tools
+#
+# noextra don't add _GUILE_EXTRA_LIB_DEPENDS
+#
+# nopkgconf don't add to PKGCONFIG_PATHS
+#
+# Variables defined for use by the port:
+#
+# GUILE_VER e.g. 2.2
+# GUILE_SFX e.g. 2 (be careful, consider the possibility of 3.1)
+# GUILE_FLAVOR e.g. guile22
+# GUILE_PORT e.g. lang/guile2
+# GUILE_CMD name of guile binary, e.g. guile-2.2
+# GUILE_*_CMD name of guile-* binary (legacy)
+# GUILD_CMD name of guild binary, e.g. guild-2.2
+# GUIL*_CMDPATH full paths of commands
+# GUILE_PKGCONFIG_DIR directory for version-specific .pc files
+# (relative to PREFIX or LOCALBASE)
+#
+.if !defined(_INCLUDE_USES_GUILE_MK)
+_INCLUDE_USES_GUILE_MK= yes
+
+# When adding a version, please keep the comment in
+# Mk/bsd.default-versions.mk in sync.
+_GUILE_VALID_VERSIONS:= 1.8 2.2 3.0
+. if defined(_GUILE_EXTRA_VER)
+_GUILE_VALID_VERSIONS+= ${_GUILE_EXTRA_VER}
+. endif
+
+_GUILE_DEFAULT_VERSION:= ${GUILE_DEFAULT}
+
+. if ! ${_GUILE_VALID_VERSIONS:M${_GUILE_DEFAULT_VERSION}}
+IGNORE= Invalid default Guile version ${GUILE_DEFAULT}
+. endif
+
+# args
+_GUILE_ARG_VERSIONS:= ${guile_ARGS:M[1-9].[0-9]}
+_GUILE_ARG_FLAVORS:=
+. if ${guile_ARGS:Mflavors}
+_GUILE_ARG_FLAVORS:=yes
+. endif
+
+#
+# Parse ver arguments
+#
+# If multiple versions are specified, we are either doing flavors (in
+# which case we build them all) or we are supposed to pick one, in
+# which case we pick the default version if it was specified, otherwise
+# the highest.
+#
+_GUILE_CHOSEN_VER:=
+_GUILE_REQUESTED_VERS:=
+
+# check args for validity first
+. for _v in ${_GUILE_ARG_VERSIONS}
+. if ! ${_GUILE_VALID_VERSIONS:M${_v}}
+IGNORE= Invalid Guile version ${_v}
+. else
+_GUILE_REQUESTED_VERS+= ${_v}
+. endif
+. endfor
+
+. if ${_GUILE_ARG_FLAVORS}
+
+# default to all versions (unlikely in practice)
+. if empty(_GUILE_REQUESTED_VERS)
+_GUILE_REQUESTED_VERS:= ${_GUILE_VALID_VERSIONS}
+. endif
+
+# Note that we organize the FLAVORS list so that the
+# first one corresponds to the default version.
+. if empty(FLAVORS)
+FLAVORS=${_GUILE_DEFAULT_VERSION:S/.//:S/^/guile/} \
+ ${_GUILE_REQUESTED_VERS:N${_GUILE_DEFAULT_VERSION}:S/.//:S/^/guile/}
+. endif
+. if empty(FLAVOR)
+FLAVOR= ${FLAVORS:[1]}
+. endif
+_GUILE_CHOSEN_VER:= ${FLAVOR:S/^guile//:C/./&./}
+
+. else # !${_GUILE_ARG_FLAVORS}
+
+# default to default version
+. if empty(_GUILE_REQUESTED_VERS)
+_GUILE_REQUESTED_VERS:= ${_GUILE_DEFAULT_VERSION}
+. endif
+
+_GUILE_CHOSEN_VER:= ${_GUILE_REQUESTED_VERS:M${_GUILE_DEFAULT_VERSION}}
+. if empty(_GUILE_CHOSEN_VER)
+_GUILE_CHOSEN_VER:= ${_GUILE_REQUESTED_VERS:O:[-1]}
+. endif
+
+. endif # ${_GUILE_ARG_FLAVORS}
+
+# _GUILE_CHOSEN_VER is now the desired version in all cases.
+#
+# The GUILE_VER / GUILE_SFX here is the existing usage, but if a
+# version 3.1 comes along, that'll all need to be revisited.
+#
+# GUILE_VER= 3.0 (for example)
+# GUILE_SFX= 3
+# GUILE_FLAVOR= guile30
+
+GUILE_VER= ${_GUILE_CHOSEN_VER}
+GUILE_SFX= ${_GUILE_CHOSEN_VER:R}
+
+GUILE_PORT= lang/guile${GUILE_SFX}
+GUILE_FLAVOR= guile${GUILE_VER:S/.//}
+
+_GUILE_CMDNAMES:= guile guile-snarf guile-config guile-tools
+. if ${GUILE_SFX} > 1
+_GUILE_CMDNAMES+= guild
+. endif
+
+. for _c in ${_GUILE_CMDNAMES}
+${_c:S/-/_/:tu}_CMD:= ${_c}-${GUILE_VER}
+${_c:S/-/_/:tu}_CMDPATH:= ${LOCALBASE}/bin/${_c}-${GUILE_VER}
+. endfor
+
+PLIST_SUB+= GUILE_VER=${GUILE_VER} GUILE_SFX=${GUILE_SFX}
+
+# This may reduce the need for BINARY_ALIAS
+GUILE_ENV= ${_GUILE_CMDNAMES:tu:S/-/_/:@t@${t}=${${t}_CMDPATH}@}
+
+# XXX XXX XXX
+#
+# This all assumes that the underlying Guile >= 2 is built with the
+# threading option, which is on by default.
+
+_GUILE_1.8_EXTRA_LIB_DEPENDS= \
+ libgmp.so:math/gmp \
+ libltdl.so:devel/libltdl
+_GUILE_2.2_EXTRA_LIB_DEPENDS= \
+ libgc-threaded.so:devel/boehm-gc-threaded
+_GUILE_3.0_EXTRA_LIB_DEPENDS= \
+ libgc-threaded.so:devel/boehm-gc-threaded
+
+. if ${guile_ARGS:Mnoextra}
+_GUILE_EXTRA_LIB_DEPENDS?=
+. else
+_GUILE_EXTRA_LIB_DEPENDS= ${_GUILE_${GUILE_VER}_EXTRA_LIB_DEPENDS}
+. endif
+
+. if !${guile_ARGS:Menv}
+. if ${guile_ARGS:Mbuild}
+BUILD_DEPENDS+= ${GUILE_CMD}:${GUILE_PORT}
+. endif
+. if ${guile_ARGS:Mrun}
+RUN_DEPENDS+= ${GUILE_CMD}:${GUILE_PORT}
+. endif
+. if !${guile_ARGS:Mbuild} && !${guile_ARGS:Mrun}
+. if ${GUILE_SFX} > 1
+LIB_DEPENDS+= libguile-${GUILE_VER}.so:${GUILE_PORT} ${_GUILE_EXTRA_LIB_DEPENDS}
+. else
+LIB_DEPENDS+= libguile.so:${GUILE_PORT} ${_GUILE_EXTRA_LIB_DEPENDS}
+. endif
+. endif
+. endif
+
+. if ${guile_ARGS:Malias}
+BINARY_ALIAS+= ${_GUILE_CMDNAMES:@t@${t}=${${t:tu:S/-/_/}_CMD}@}
+. else
+CONFIGURE_ENV+= ${GUILE_ENV}
+MAKE_ENV+= ${GUILE_ENV}
+. endif
+
+. if !${guile_ARGS:Mnopkgconf}
+GUILE_PKGCONFIG_DIR:= libdata/pkgconfig/guile/${GUILE_VER}
+PKGCONFIG_PATHS+= ${LOCALBASE}/${GUILE_PKGCONFIG_DIR}
+PLIST_SUB+= GUILE_PKGCONFIG_DIR=${GUILE_PKGCONFIG_DIR}
+. endif
+
+.endif
diff --git a/Mk/Uses/pkgconfig.mk b/Mk/Uses/pkgconfig.mk
--- a/Mk/Uses/pkgconfig.mk
+++ b/Mk/Uses/pkgconfig.mk
@@ -28,4 +28,20 @@
IGNORE= USES=pkgconfig - invalid args: [${pkgconfig_ARGS}] specified
. endif
+_USES_POST+= pkgconfig
+.endif
+
+.if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_PKGCONFIG_POST_MK)
+_INCLUDE_USES_PKGCONFIG_POST_MK=yes
+
+# Provide a cooperative mechanism for managing PKG_CONFIG_PATH.
+. if defined(PKGCONFIG_PATHS)
+. if !${CONFIGURE_ENV:MPKG_CONFIG_PATH=*} && !${MAKE_ENV:MPKG_CONFIG_PATH=*}
+CONFIGURE_ENV+= PKG_CONFIG_PATH=${PKGCONFIG_PATHS:ts:}
+MAKE_ENV+= PKG_CONFIG_PATH=${PKGCONFIG_PATHS:ts:}
+. else
+DEV_WARNING+= "PKGCONFIG_PATHS was ignored due to conflict with CONFIGURE_ENV or MAKE_ENV"
+. endif
+. endif
+
.endif
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -18,7 +18,7 @@
LOCALBASE?= /usr/local
. for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC \
- GHOSTSCRIPT GL GO IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM \
+ GHOSTSCRIPT GL GO GUILE IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM \
LUA LUAJIT MONO MYSQL NINJA NODEJS OPENLDAP PERL5 PGSQL PHP PYTHON \
PYTHON2 PYTHON3 RUBY RUST SAMBA SSL TCLTK VARNISH
. if defined(${lang}_DEFAULT)
@@ -59,6 +59,8 @@
GL_DEFAULT?= mesa-libs
# Possible values: 1.18, 1.19, 1.20, 1.21-devel
GO_DEFAULT?= 1.20
+# Possible values: 1.8, 2.2, 3.0
+GUILE_DEFAULT?= 2.2
# Possible versions: 6, 7
# Possible flavors: x11, nox11
# (defaults to x11 when not specified)
diff --git a/audio/denemo/Makefile b/audio/denemo/Makefile
--- a/audio/denemo/Makefile
+++ b/audio/denemo/Makefile
@@ -1,6 +1,6 @@
PORTNAME= denemo
PORTVERSION= 2.0.6
-PORTREVISION= 17
+PORTREVISION= 18
CATEGORIES= audio
MASTER_SITES= GNU
@@ -19,7 +19,10 @@
libsndfile.so:audio/libsndfile \
libportaudio.so:audio/portaudio \
librubberband.so:audio/rubberband \
- libguile.so:lang/guile1 \
+ libharfbuzz.so:print/harfbuzz \
+ libfontconfig.so:x11-fonts/fontconfig \
+ libfreetype.so:print/freetype2 \
+ libsamplerate.so:audio/libsamplerate \
libfftw3.so:math/fftw3
RUN_DEPENDS= xdg-open:devel/xdg-utils
@@ -27,8 +30,8 @@
-s '!\(/Clarinet in B\).*\(\.denemo\)$$!\1b\2!p' -xf
USES= bison:alias compiler:c++11-lang desktop-file-utils gettext gmake \
- gnome pkgconfig
-USE_GNOME= intltool librsvg2 libxml2
+ gnome guile:1.8 pkgconfig
+USE_GNOME= cairo intltool librsvg2 libxml2
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-jack \
--disable-alsa \
diff --git a/audio/zplugins-lv2/Makefile b/audio/zplugins-lv2/Makefile
--- a/audio/zplugins-lv2/Makefile
+++ b/audio/zplugins-lv2/Makefile
@@ -15,12 +15,11 @@
BUILD_DEPENDS= lv2>0:audio/lv2 \
bash:shells/bash \
gmake:devel/gmake \
- guile2>0:lang/guile2 \
${LOCALBASE}/lib/libztoolkit.a:x11-toolkits/ztoolkit
LIB_DEPENDS= liblo.so:audio/liblo \
libsndfile.so:audio/libsndfile
-USES= gnome meson pkgconfig xorg
+USES= gnome guile:2.2,build,alias meson pkgconfig xorg
USE_GNOME= cairo glib20 librsvg2
USE_XORG= x11
diff --git a/audio/zrythm/Makefile b/audio/zrythm/Makefile
--- a/audio/zrythm/Makefile
+++ b/audio/zrythm/Makefile
@@ -23,7 +23,6 @@
libcurl.so:ftp/curl \
libfftw3_threads.so:math/fftw3 \
libfftw3f_threads.so:math/fftw3-float \
- libguile-2.2.so:lang/guile2 \
libjack.so:audio/jack \
libjson-glib-1.0.so:devel/json-glib \
liblilv-0.so:audio/lilv \
@@ -48,7 +47,8 @@
RUN_DEPENDS= gsettings-desktop-schemas>=0:devel/gsettings-desktop-schemas \
kf5-breeze-icons>0:x11-themes/kf5-breeze-icons
-USES= compiler:c11 desktop-file-utils gettext-tools gettext-runtime gnome libtool localbase:ldflags \
+USES= compiler:c11 desktop-file-utils gettext-tools gettext-runtime \
+ guile:2.2,alias gnome libtool localbase:ldflags \
meson pkgconfig python:3.5+,build shared-mime-info shebangfix xorg
USE_GITHUB= yes
USE_GNOME= atk cairo gdkpixbuf2 glib20 gtk30 gtksourceview3 libxml2 pango
diff --git a/cad/geda/Makefile b/cad/geda/Makefile
--- a/cad/geda/Makefile
+++ b/cad/geda/Makefile
@@ -12,12 +12,12 @@
LICENSE= GPLv2+
-LIB_DEPENDS= libstroke.so:devel/libstroke \
- libguile.so:lang/guile1
-RUN_DEPENDS= gawk:lang/gawk\
+LIB_DEPENDS= libstroke.so:devel/libstroke
+RUN_DEPENDS= gawk:lang/gawk
-USES= desktop-file-utils gettext gmake gnome libtool pathfix perl5 \
- pkgconfig python:run shared-mime-info shebangfix
+USES= desktop-file-utils gettext gmake gnome guile:1.8 libtool \
+ pathfix perl5 pkgconfig python:run shared-mime-info \
+ shebangfix
SHEBANG_FILES= examples/lightning_detector/bom libgeda/docs/*.dox \
utils/gxyrs/*.pl utils/scripts/* \
utils/docs/*.dox gattrib/docs/*.dox \
diff --git a/cad/lepton-eda/Makefile b/cad/lepton-eda/Makefile
--- a/cad/lepton-eda/Makefile
+++ b/cad/lepton-eda/Makefile
@@ -15,12 +15,10 @@
libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
libfribidi.so:converters/fribidi \
- libgc-threaded.so:devel/boehm-gc-threaded \
libGLdispatch.so:graphics/libglvnd \
libgmp.so:math/gmp \
libgraphite2.so:graphics/graphite2 \
libgtkextra-x11-3.0.so:x11-toolkits/gtkextra \
- libguile-2.2.so:lang/guile2 \
libharfbuzz.so:print/harfbuzz \
libltdl.so:devel/libltdl \
libpcre.so:devel/pcre \
@@ -29,8 +27,8 @@
libunistring.so:devel/libunistring
USES= desktop-file-utils gettext-tools gnome groff:build \
- iconv:wchar_t libtool localbase makeinfo pathfix perl5 \
- pkgconfig shared-mime-info shebangfix xorg
+ guile:2.2 iconv:wchar_t libtool localbase makeinfo pathfix \
+ perl5 pkgconfig shared-mime-info shebangfix xorg
USE_XORG= pixman x11 xau xcb xcomposite xcursor xdamage xdmcp xext xfixes \
xi xinerama xrandr xrender
USE_GNOME= cairo gdkpixbuf2 gtk20
diff --git a/devel/autogen/Makefile b/devel/autogen/Makefile
--- a/devel/autogen/Makefile
+++ b/devel/autogen/Makefile
@@ -13,10 +13,10 @@
BUILD_DEPENDS= ${RUN_DEPENDS} \
gmktemp:sysutils/coreutils
-LIB_DEPENDS= libguile-2.2.so:lang/guile2
RUN_DEPENDS= bash:shells/bash
-USES= gmake gnome libtool pathfix perl5 pkgconfig shebangfix tar:xz
+USES= gmake gnome guile:2.2 libtool pathfix perl5 pkgconfig \
+ shebangfix tar:xz
USE_GNOME= libxml2
USE_PERL5= build
diff --git a/devel/g-wrap/Makefile b/devel/g-wrap/Makefile
--- a/devel/g-wrap/Makefile
+++ b/devel/g-wrap/Makefile
@@ -1,6 +1,6 @@
PORTNAME= g-wrap
DISTVERSION= 1.9.15
-PORTREVISION= 2
+PORTREVISION= 5
CATEGORIES= devel
MASTER_SITES= SAVANNAH
@@ -10,22 +10,24 @@
LICENSE= LGPL21+
-LIB_DEPENDS= libffi.so:devel/libffi \
- libguile-2.2.so:lang/guile2 \
- libgc-threaded.so:devel/boehm-gc-threaded
-BUILD_DEPENDS= guile2>=2.2:lang/guile2
+LIB_DEPENDS+= libffi.so:devel/libffi
-USES= gmake gnome libtool pkgconfig
+USES= gmake gnome guile:2.2 libtool pkgconfig
USE_GNOME= glib20
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS+=--disable-Werror
+CONFIGURE_ENV+= GUILE_EFFECTIVE_VERSION=${GUILE_VER}
-INFO= g-wrap
-
+MAKE_JOBS_UNSAFE=yes
INSTALL_TARGET= install-strip
-MAKE_JOBS_UNSAFE=yes
+INFO= g-wrap
+
+# DO NOT try and add rules here to strip .go files, no matter how loudly
+# testport / stage-qa shouts at you about it, because .go files (which are
+# compiled bytecode) are not intended to be stripped and doing so causes
+# breakage at run time.
.include <bsd.port.mk>
diff --git a/devel/gdb/Makefile b/devel/gdb/Makefile
--- a/devel/gdb/Makefile
+++ b/devel/gdb/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gdb
DISTVERSION= 13.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= devel
MASTER_SITES= GNU
@@ -68,7 +68,7 @@
BUNDLED_READLINE_CONFIGURE_OFF= --with-system-readline
GUILE_CONFIGURE_WITH= guile
-GUILE_LIB_DEPENDS= libguile-2.2.so:lang/guile2
+GUILE_USES= guile:2.2
NLS_USES= gettext-runtime
PORT_READLINE_USES= readline
PORT_ICONV_USES= iconv:wchar_t
@@ -176,6 +176,11 @@
${PYTHON_CMD} -m compileall .)
.endif
+# DO NOT try and add rules here to strip .go files, no matter how loudly
+# testport / stage-qa shouts at you about it, because .go files (which are
+# compiled bytecode) are not intended to be stripped and doing so causes
+# breakage at run time.
+
do-install-GUILE-on:
(cd ${INSTALL_WRKSRC}/gdb ; \
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-guile )
diff --git a/devel/guile-lib/Makefile b/devel/guile-lib/Makefile
--- a/devel/guile-lib/Makefile
+++ b/devel/guile-lib/Makefile
@@ -1,8 +1,9 @@
PORTNAME= guile-lib
PORTVERSION= 0.2.6.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= devel scheme
MASTER_SITES= SAVANNAH
+PKGNAMESUFFIX= -${FLAVOR}
MAINTAINER= ports@FreeBSD.org
COMMENT= Repository of useful code written in Guile Scheme
@@ -11,13 +12,26 @@
LICENSE= LGPL3 GPLv3
LICENSE_COMB= multi
-BUILD_DEPENDS= guile2>0:lang/guile2
-RUN_DEPENDS= guile2>0:lang/guile2
+USES= gmake guile:2.2,3.0,flavors,alias pkgconfig
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+=--with-guile-site
+CONFIGURE_ENV+= GUILE_EFFECTIVE_VERSION=${GUILE_VER}
TEST_TARGET= check
-USES= gmake pkgconfig
-GNU_CONFIGURE= yes
-INFO= guile-library
+INFO= guile-library
+INFO_PATH= share/info/guile${GUILE_SFX}
+
+PLIST_SUB+= SCMDIR=share/guile/site/${GUILE_VER}
+
+# DO NOT try and add rules here to strip .go files, no matter how loudly
+# testport / stage-qa shouts at you about it, because .go files (which are
+# compiled bytecode) are not intended to be stripped and doing so causes
+# breakage at run time.
+
+post-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/${GUILE_PKGCONFIG_DIR}
+ ${MV} ${STAGEDIR}${PREFIX}/libdata/pkgconfig/*.pc \
+ ${STAGEDIR}${PREFIX}/${GUILE_PKGCONFIG_DIR}/
.include <bsd.port.mk>
diff --git a/devel/guile-lib/files/patch-configure b/devel/guile-lib/files/patch-configure
new file mode 100644
--- /dev/null
+++ b/devel/guile-lib/files/patch-configure
@@ -0,0 +1,11 @@
+--- configure.orig 2023-05-20 13:27:01 UTC
++++ configure
+@@ -4950,7 +4950,7 @@ fi
+
+
+ if test "x$guile_site" = "xyes"; then
+- SITEDIR="$GUILE_GLOBAL_SITE";
++ SITEDIR="$GUILE_SITE";
+ SITECCACHEDIR="$GUILE_SITE_CCACHE";
+ else
+ SITEDIR="$datadir/guile-lib";
diff --git a/devel/guile-lib/pkg-plist b/devel/guile-lib/pkg-plist
--- a/devel/guile-lib/pkg-plist
+++ b/devel/guile-lib/pkg-plist
@@ -1,61 +1,61 @@
-lib/guile-lib/guile/2.2/site-ccache/apicheck.go
-lib/guile-lib/guile/2.2/site-ccache/compat/guile-2.go
-lib/guile-lib/guile/2.2/site-ccache/config/load.go
-lib/guile-lib/guile/2.2/site-ccache/container/async-queue.go
-lib/guile-lib/guile/2.2/site-ccache/container/delay-tree.go
-lib/guile-lib/guile/2.2/site-ccache/container/nodal-tree.go
-lib/guile-lib/guile/2.2/site-ccache/debugging/assert.go
-lib/guile-lib/guile/2.2/site-ccache/debugging/time.go
-lib/guile-lib/guile/2.2/site-ccache/graph/topological-sort.go
-lib/guile-lib/guile/2.2/site-ccache/htmlprag.go
-lib/guile-lib/guile/2.2/site-ccache/io/string.go
-lib/guile-lib/guile/2.2/site-ccache/logging/logger.go
-lib/guile-lib/guile/2.2/site-ccache/logging/port-log.go
-lib/guile-lib/guile/2.2/site-ccache/logging/rotating-log.go
-lib/guile-lib/guile/2.2/site-ccache/match-bind.go
-lib/guile-lib/guile/2.2/site-ccache/math/minima.go
-lib/guile-lib/guile/2.2/site-ccache/math/primes.go
-lib/guile-lib/guile/2.2/site-ccache/md5.go
-lib/guile-lib/guile/2.2/site-ccache/os/process.go
-lib/guile-lib/guile/2.2/site-ccache/scheme/documentation.go
-lib/guile-lib/guile/2.2/site-ccache/scheme/kwargs.go
-lib/guile-lib/guile/2.2/site-ccache/search/basic.go
-lib/guile-lib/guile/2.2/site-ccache/string/completion.go
-lib/guile-lib/guile/2.2/site-ccache/string/soundex.go
-lib/guile-lib/guile/2.2/site-ccache/string/transform.go
-lib/guile-lib/guile/2.2/site-ccache/string/wrap.go
-lib/guile-lib/guile/2.2/site-ccache/term/ansi-color.go
-lib/guile-lib/guile/2.2/site-ccache/texinfo/nodal-tree.go
-lib/guile-lib/guile/2.2/site-ccache/text/parse-lalr.go
-lib/guile-lib/guile/2.2/site-ccache/unit-test.go
-libdata/pkgconfig/guile-lib-1.0.pc
-%%DATADIR%%/apicheck.scm
-%%DATADIR%%/compat/guile-2.scm
-%%DATADIR%%/config/load.scm
-%%DATADIR%%/container/async-queue.scm
-%%DATADIR%%/container/delay-tree.scm
-%%DATADIR%%/container/nodal-tree.scm
-%%DATADIR%%/debugging/assert.scm
-%%DATADIR%%/debugging/time.scm
-%%DATADIR%%/graph/topological-sort.scm
-%%DATADIR%%/htmlprag.scm
-%%DATADIR%%/io/string.scm
-%%DATADIR%%/logging/logger.scm
-%%DATADIR%%/logging/port-log.scm
-%%DATADIR%%/logging/rotating-log.scm
-%%DATADIR%%/match-bind.scm
-%%DATADIR%%/math/minima.scm
-%%DATADIR%%/math/primes.scm
-%%DATADIR%%/md5.scm
-%%DATADIR%%/os/process.scm
-%%DATADIR%%/scheme/documentation.scm
-%%DATADIR%%/scheme/kwargs.scm
-%%DATADIR%%/search/basic.scm
-%%DATADIR%%/string/completion.scm
-%%DATADIR%%/string/soundex.scm
-%%DATADIR%%/string/transform.scm
-%%DATADIR%%/string/wrap.scm
-%%DATADIR%%/term/ansi-color.scm
-%%DATADIR%%/texinfo/nodal-tree.scm
-%%DATADIR%%/text/parse-lalr.scm
-%%DATADIR%%/unit-test.scm
+lib/guile/%%GUILE_VER%%/site-ccache/apicheck.go
+lib/guile/%%GUILE_VER%%/site-ccache/compat/guile-2.go
+lib/guile/%%GUILE_VER%%/site-ccache/config/load.go
+lib/guile/%%GUILE_VER%%/site-ccache/container/async-queue.go
+lib/guile/%%GUILE_VER%%/site-ccache/container/delay-tree.go
+lib/guile/%%GUILE_VER%%/site-ccache/container/nodal-tree.go
+lib/guile/%%GUILE_VER%%/site-ccache/debugging/assert.go
+lib/guile/%%GUILE_VER%%/site-ccache/debugging/time.go
+lib/guile/%%GUILE_VER%%/site-ccache/graph/topological-sort.go
+lib/guile/%%GUILE_VER%%/site-ccache/htmlprag.go
+lib/guile/%%GUILE_VER%%/site-ccache/io/string.go
+lib/guile/%%GUILE_VER%%/site-ccache/logging/logger.go
+lib/guile/%%GUILE_VER%%/site-ccache/logging/port-log.go
+lib/guile/%%GUILE_VER%%/site-ccache/logging/rotating-log.go
+lib/guile/%%GUILE_VER%%/site-ccache/match-bind.go
+lib/guile/%%GUILE_VER%%/site-ccache/math/minima.go
+lib/guile/%%GUILE_VER%%/site-ccache/math/primes.go
+lib/guile/%%GUILE_VER%%/site-ccache/md5.go
+lib/guile/%%GUILE_VER%%/site-ccache/os/process.go
+lib/guile/%%GUILE_VER%%/site-ccache/scheme/documentation.go
+lib/guile/%%GUILE_VER%%/site-ccache/scheme/kwargs.go
+lib/guile/%%GUILE_VER%%/site-ccache/search/basic.go
+lib/guile/%%GUILE_VER%%/site-ccache/string/completion.go
+lib/guile/%%GUILE_VER%%/site-ccache/string/soundex.go
+lib/guile/%%GUILE_VER%%/site-ccache/string/transform.go
+lib/guile/%%GUILE_VER%%/site-ccache/string/wrap.go
+lib/guile/%%GUILE_VER%%/site-ccache/term/ansi-color.go
+lib/guile/%%GUILE_VER%%/site-ccache/texinfo/nodal-tree.go
+lib/guile/%%GUILE_VER%%/site-ccache/text/parse-lalr.go
+lib/guile/%%GUILE_VER%%/site-ccache/unit-test.go
+%%GUILE_PKGCONFIG_DIR%%/guile-lib-1.0.pc
+%%SCMDIR%%/apicheck.scm
+%%SCMDIR%%/compat/guile-2.scm
+%%SCMDIR%%/config/load.scm
+%%SCMDIR%%/container/async-queue.scm
+%%SCMDIR%%/container/delay-tree.scm
+%%SCMDIR%%/container/nodal-tree.scm
+%%SCMDIR%%/debugging/assert.scm
+%%SCMDIR%%/debugging/time.scm
+%%SCMDIR%%/graph/topological-sort.scm
+%%SCMDIR%%/htmlprag.scm
+%%SCMDIR%%/io/string.scm
+%%SCMDIR%%/logging/logger.scm
+%%SCMDIR%%/logging/port-log.scm
+%%SCMDIR%%/logging/rotating-log.scm
+%%SCMDIR%%/match-bind.scm
+%%SCMDIR%%/math/minima.scm
+%%SCMDIR%%/math/primes.scm
+%%SCMDIR%%/md5.scm
+%%SCMDIR%%/os/process.scm
+%%SCMDIR%%/scheme/documentation.scm
+%%SCMDIR%%/scheme/kwargs.scm
+%%SCMDIR%%/search/basic.scm
+%%SCMDIR%%/string/completion.scm
+%%SCMDIR%%/string/soundex.scm
+%%SCMDIR%%/string/transform.scm
+%%SCMDIR%%/string/wrap.scm
+%%SCMDIR%%/term/ansi-color.scm
+%%SCMDIR%%/texinfo/nodal-tree.scm
+%%SCMDIR%%/text/parse-lalr.scm
+%%SCMDIR%%/unit-test.scm
diff --git a/devel/libmatheval/Makefile b/devel/libmatheval/Makefile
--- a/devel/libmatheval/Makefile
+++ b/devel/libmatheval/Makefile
@@ -12,11 +12,12 @@
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= flex>=2.5.39_1:textproc/flex
-LIB_DEPENDS= libguile.so:lang/guile1
-USES= libtool localbase makeinfo pathfix
+USES= guile:1.8 libtool localbase makeinfo \
+ pathfix
GNU_CONFIGURE= yes
-CONFIGURE_ENV= LEXLIB=-lfl MAKEINFO="${MAKEINFO} --no-split"
+CONFIGURE_ENV= LEXLIB=-lfl MAKEINFO="${MAKEINFO} --no-split" \
+ ac_cv_type_scm_t_bits=yes
USE_LDCONFIG= yes
INSTALL_TARGET= install-strip
diff --git a/devel/libruin/Makefile b/devel/libruin/Makefile
--- a/devel/libruin/Makefile
+++ b/devel/libruin/Makefile
@@ -14,14 +14,12 @@
NOT_FOR_ARCHS= mips
NOT_FOR_ARCHS_REASON= glib needs GCC (not available for mips)
-BUILD_DEPENDS= guile-lib>0:devel/guile-lib
-LIB_DEPENDS= libguile-2.2.so:lang/guile2 \
- libgc-threaded.so:devel/boehm-gc-threaded
-RUN_DEPENDS= guile-lib>0:devel/guile-lib
+BUILD_DEPENDS= guile-lib-${GUILE_FLAVOR}>0:devel/guile-lib@${GUILE_FLAVOR}
+RUN_DEPENDS= guile-lib-${GUILE_FLAVOR}>0:devel/guile-lib@${GUILE_FLAVOR}
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
-USES= gnome libtool ncurses pkgconfig
+USES= gnome guile:2.2,alias libtool ncurses pkgconfig
USE_GNOME= glib20
USE_LDCONFIG= yes
diff --git a/editors/texmacs/Makefile b/editors/texmacs/Makefile
--- a/editors/texmacs/Makefile
+++ b/editors/texmacs/Makefile
@@ -15,16 +15,14 @@
BROKEN_FreeBSD_13= assigning to 'bool' from incompatible type 'nullptr_t'
BROKEN_FreeBSD_14= assigning to 'bool' from incompatible type 'nullptr_t'
-LIB_DEPENDS= libltdl.so:devel/libltdl \
- libguile.so:lang/guile1 \
- libgmp.so:math/gmp
RUN_DEPENDS= fig2dev:print/transfig
BROKEN_armv6= fails to compile: call to min is ambiguous
BROKEN_armv7= fails to compile: call to min is ambiguous
-USES= cpe desktop-file-utils gmake iconv localbase pkgconfig python \
- shared-mime-info shebangfix tex xorg
+USES= cpe desktop-file-utils gmake guile:1.8,alias iconv \
+ localbase pkgconfig python shared-mime-info shebangfix \
+ tex xorg
USE_TEX= tex:run dvipsk:run
USE_XORG= xext
GNU_CONFIGURE= yes
diff --git a/finance/gnucash/Makefile b/finance/gnucash/Makefile
--- a/finance/gnucash/Makefile
+++ b/finance/gnucash/Makefile
@@ -18,8 +18,6 @@
libfreetype.so:print/freetype2 \
libsecret-1.so:security/libsecret \
libsoup-2.4.so:devel/libsoup \
- libguile-2.2.so:lang/guile2 \
- libgc-threaded.so:devel/boehm-gc-threaded \
libboost_date_time.so:devel/boost-libs \
libicudata.so:devel/icu\
libharfbuzz.so:print/harfbuzz
@@ -29,8 +27,8 @@
p5-LWP-Protocol-https>=0:www/p5-LWP-Protocol-https
USES= cmake:insource compiler:c++11-lib cpe desktop-file-utils \
- gettext-tools gnome libtool localbase perl5 pkgconfig \
- shebangfix tar:bzip2 xorg
+ gettext-tools gnome guile:2.2 libtool localbase perl5 \
+ pkgconfig shebangfix tar:bzip2 xorg
USE_XORG= x11
USE_CXXSTD= c++11
USE_GNOME= cairo gdkpixbuf2 gtk30 intltool libxml2 libxslt
diff --git a/games/aisleriot/Makefile b/games/aisleriot/Makefile
--- a/games/aisleriot/Makefile
+++ b/games/aisleriot/Makefile
@@ -1,6 +1,6 @@
PORTNAME= aisleriot
DISTVERSION= 3.22.25
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= games gnome
DIST_SUBDIR= gnome
@@ -12,16 +12,14 @@
BUILD_DEPENDS= itstool:textproc/itstool \
bash:shells/bash
-LIB_DEPENDS= libguile-2.2.so:lang/guile2 \
- libcanberra.so:audio/libcanberra \
- libcanberra-gtk3.so:audio/libcanberra-gtk3 \
- libgc-threaded.so:devel/boehm-gc-threaded
+LIB_DEPENDS= libcanberra.so:audio/libcanberra \
+ libcanberra-gtk3.so:audio/libcanberra-gtk3
CONFLICTS_INSTALL= sol
PORTSCOUT= limitw:1,even
-USES= desktop-file-utils gettext meson gnome pkgconfig \
- python:build,3.6+ shebangfix xorg
+USES= desktop-file-utils gettext meson gnome guile:2.2 \
+ pkgconfig python:build,3.6+ shebangfix xorg
USE_GITLAB= yes
USE_GNOME= cairo gtk30 intlhack librsvg2 libxml2:build
USE_XORG= x11
diff --git a/games/fmars/Makefile b/games/fmars/Makefile
--- a/games/fmars/Makefile
+++ b/games/fmars/Makefile
@@ -10,9 +10,7 @@
LICENSE= GPLv2
-BUILD_DEPENDS= guile:lang/guile1
-
-USES= gmake tar:bzip2
+USES= gmake guile:1.8,build,alias tar:bzip2
ALL_TARGET= x${PORTNAME}
OPTIONS_DEFINE= DOCS OPTIMIZED_CFLAGS
diff --git a/games/gnubik/Makefile b/games/gnubik/Makefile
--- a/games/gnubik/Makefile
+++ b/games/gnubik/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gnubik
PORTVERSION= 2.4.3
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= games
MASTER_SITES= GNU
@@ -11,11 +11,11 @@
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
-LIB_DEPENDS= libguile-2.2.so:lang/guile2 \
- libgtkglext-x11-1.0.so:x11-toolkits/gtkglext
+LIB_DEPENDS= libgtkglext-x11-1.0.so:x11-toolkits/gtkglext
GNU_CONFIGURE= yes
-USES= compiler:c++11-lang gettext gl gmake gnome localbase pkgconfig
+USES= compiler:c++11-lang gettext gl gmake gnome guile:2.2 \
+ localbase pkgconfig
USE_GNOME= gtk20
USE_GL= gl glu
diff --git a/games/gnurobots/Makefile b/games/gnurobots/Makefile
--- a/games/gnurobots/Makefile
+++ b/games/gnurobots/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gnurobots
PORTVERSION= 1.2.0
-PORTREVISION= 16
+PORTREVISION= 17
CATEGORIES= games
MASTER_SITES= GNU
@@ -11,9 +11,7 @@
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
-LIB_DEPENDS= libguile.so:lang/guile1
-
-USES= autoreconf gnome localbase:ldflags pkgconfig readline
+USES= gnome guile:1.8 localbase:ldflags pkgconfig readline
USE_GNOME= vte
GNU_CONFIGURE= yes
diff --git a/games/gnurobots/files/patch-configure b/games/gnurobots/files/patch-configure
new file mode 100644
--- /dev/null
+++ b/games/gnurobots/files/patch-configure
@@ -0,0 +1,11 @@
+--- configure.orig 2023-05-25 19:00:18 UTC
++++ configure
+@@ -5773,7 +5773,7 @@ _ACEOF
+ fi
+
+
+-CFLAGS="-pedantic-errors -Werror -Wall -g"
++
+
+ ac_config_files="$ac_config_files Makefile contrib/Makefile doc/Makefile include/Makefile xpm/Makefile maps/Makefile scheme/Makefile src/Makefile"
+
diff --git a/games/gnurobots/files/patch-configure.ac b/games/gnurobots/files/patch-configure.ac
deleted file mode 100644
--- a/games/gnurobots/files/patch-configure.ac
+++ /dev/null
@@ -1,11 +0,0 @@
---- configure.ac.orig 2008-08-03 19:48:45 UTC
-+++ configure.ac
-@@ -91,8 +91,6 @@ You need guile 1.8 to build this program.
- dnl Checks for typedefs, structures, and compiler characteristics.
- AC_C_CONST
-
--CFLAGS="-pedantic-errors -Werror -Wall -g"
--
- dnl Done.
- AC_CONFIG_FILES([Makefile
- contrib/Makefile
diff --git a/games/trackballs/Makefile b/games/trackballs/Makefile
--- a/games/trackballs/Makefile
+++ b/games/trackballs/Makefile
@@ -1,5 +1,6 @@
PORTNAME= trackballs
PORTVERSION= 1.3.4
+PORTREVISION= 1
DISTVERSIONPREFIX= v
PORTREVISION= 1
CATEGORIES= games
@@ -11,10 +12,8 @@
LICENSE= GPLv2+ ETHYMONICS
LICENSE_COMB= multi
-LIB_DEPENDS= libguile-2.2.so:lang/guile2 \
- libgc.so:devel/boehm-gc
-
-USES= cmake desktop-file-utils gettext-runtime gl gnome pkgconfig sdl
+USES= cmake desktop-file-utils gettext-runtime gl gnome guile:2.2 \
+ pkgconfig sdl
USE_GL= gl
USE_SDL= image2 mixer2 sdl2 ttf2
diff --git a/graphics/graphviz/Makefile b/graphics/graphviz/Makefile
--- a/graphics/graphviz/Makefile
+++ b/graphics/graphviz/Makefile
@@ -108,8 +108,7 @@
SMYRNA_LIB_DEPENDS= libgtkgl-2.0.so:x11-toolkits/gtkglarea2 \
libgtkglext-x11-1.0.so:x11-toolkits/gtkglext
DEVIL_LIB_DEPENDS= libIL.so:graphics/devil
-GUILE_LIB_DEPENDS= libguile-2.2.so:lang/guile2 \
- libgc-threaded.so:devel/boehm-gc-threaded
+GUILE_USES= guile:2.2
PHP_LIB_DEPENDS= libpcre.so:devel/pcre \
libargon2.so:security/libargon2
GHOSTSCRIPT_LIB_DEPENDS= libgs.so:print/${_GS_PORT}
diff --git a/graphics/guile-cairo/Makefile b/graphics/guile-cairo/Makefile
--- a/graphics/guile-cairo/Makefile
+++ b/graphics/guile-cairo/Makefile
@@ -1,7 +1,9 @@
PORTNAME= guile-cairo
-DISTVERSION= 1.11.1
+DISTVERSION= 1.11.2
+PORTREVISION= 2
CATEGORIES= graphics
MASTER_SITES= SAVANNAH
+PKGNAMESUFFIX= -${FLAVOR}
MAINTAINER= andrew@tao11.riddles.org.uk
COMMENT= Wrapper for using the Cairo graphics library from Guile
@@ -9,21 +11,46 @@
LICENSE= LGPL3+
-LIB_DEPENDS= libguile-2.2.so:lang/guile2 \
- libgc-threaded.so:devel/boehm-gc-threaded
-BUILD_DEPENDS= guile2>=2.2:lang/guile2
-
-USES= gmake gnome libtool pkgconfig
-USE_CSTD= c99
+USES= guile:2.2,3.0,flavors,alias \
+ autoreconf gettext-tools gmake gnome libtool pkgconfig
+guile30_CSTD= c11
+guile22_CSTD= c99
+USE_CSTD= ${${FLAVOR}_CSTD}
USE_GNOME= cairo
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
+CONFIGURE_ARGS+=--includedir='$${prefix}/include/guile/${GUILE_VER}' \
+ --libdir='$${prefix}/lib/guile/${GUILE_VER}/extensions'
+CONFIGURE_ENV+= GUILE_EFFECTIVE_VERSION=${GUILE_VER}
INFO= guile-cairo
INSTALL_TARGET= install-strip
-MAKE_JOBS_UNSAFE=yes
+# Upstream has done almost all of the de-conflicting work, but there is
+# no release at this time. Include their work as a patch, which also
+# covers the code needed by g-golf.
+
+EXTRA_PATCHES= ${PATCHDIR}/extra-patch-upstream-fixes.patch
+
+INFO= guile-cairo
+INFO_PATH= share/info/guile${GUILE_SFX}
+
+post-patch:
+ ${REINPLACE_CMD} \
+ -e '/^objdir=/s:$$(libdir)/:$$(exec_prefix)/lib/:' \
+ ${WRKSRC}/Makefile.am ${WRKSRC}/cairo/Makefile.am
+
+# DO NOT try and add rules here to strip .go files, no matter how loudly
+# testport / stage-qa shouts at you about it, because .go files (which are
+# compiled bytecode) are not intended to be stripped and doing so causes
+# breakage at run time.
+
+post-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/${GUILE_PKGCONFIG_DIR}
+ ${MV} ${STAGEDIR}${PREFIX}/lib/guile/${GUILE_VER}/extensions/pkgconfig/*.pc \
+ ${STAGEDIR}${PREFIX}/${GUILE_PKGCONFIG_DIR}/
+ ${RMDIR} ${STAGEDIR}${PREFIX}/lib/guile/${GUILE_VER}/extensions/pkgconfig
.include <bsd.port.mk>
diff --git a/graphics/guile-cairo/files/extra-patch-upstream-fixes.patch b/graphics/guile-cairo/files/extra-patch-upstream-fixes.patch
new file mode 100644
--- /dev/null
+++ b/graphics/guile-cairo/files/extra-patch-upstream-fixes.patch
@@ -0,0 +1,439 @@
+--- Makefile.am
++++ Makefile.am
+@@ -28,9 +28,20 @@ ACLOCAL_AMFLAGS = -I m4
+
+ CLEANFILES = env
+
+-scmdir=$(prefix)/share/guile/site
++GOBJECTS = $(SOURCES:%.scm=%.go)
+
+-scm_DATA = cairo.scm
++moddir=$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)
++objdir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
++
++nobase_mod_DATA = $(SOURCES) $(NOCOMP_SOURCES)
++nobase_nodist_obj_DATA = $(GOBJECTS)
++
++GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
++SUFFIXES = .scm .go
++.scm.go:
++ $(top_builddir)/env $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
++
++SOURCES = cairo.scm
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = guile-cairo.pc
+--- README
++++ README
+@@ -111,20 +111,7 @@ objects like cairo_font_options_t.
+ Known bugs
+ ==================
+
+-[https://bugs.freedesktop.org/show_bug.cgi?id=30510] Reported by CK Jester-Young
+-
+-The documentation for cairo-pdf-surface-create specifies the arguments as
+-(filename width-in-points height-in-points). In actuality, it's (sx sy
+-[filename]), where an unspecified filename means the output is sent to the
+-current output port.
+-
+-This bug hasn't been fixed because of inability to regenerate the
+-documentation. Any help in this sense is appreciated. Please have a look at
+-
+-- doc/README
+-- commit 8e73e952f8797159719b770fafecbdcb6f87152c
+-- https://lists.gnu.org/archive/html/guile-user/2018-08/msg00117.html
+-
++(Yay?!)
+
+ Copying Guile-Cairo
+ ===================
+--- cairo/Makefile.am
++++ cairo/Makefile.am
+@@ -15,29 +15,26 @@
+ # License along with this program. If not, see
+ # <http://www.gnu.org/licenses/>.
+
+-all-local: config.scm
++moddir=$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)/cairo
++objdir=$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache/cairo
+
+-lib_builddir = $(shell cd $(top_builddir)/guile-cairo && pwd)
+-docs_builddir = $(shell cd $(top_builddir)/doc && pwd)
++SOURCES = config.scm vector-types.scm
++NOCOMP_SOURCES = cairo-procedures.txt
+
+-moduledir=$(prefix)/share/guile/site/cairo
++GOBJECTS = $(SOURCES:%.scm=%.go)
+
+-module_DATA = vector-types.scm cairo-procedures.txt
++nobase_mod_DATA = $(SOURCES) $(NOCOMP_SOURCES)
++nobase_nodist_obj_DATA = $(GOBJECTS)
+
+-config.scm: Makefile config.scm.in
+- sed -e "s|@cairolibpath\@|$(lib_builddir)/libguile-cairo|" \
+- -e "s|@cairodocumentationpath\@|$(docs_builddir)/cairo-procedures.txt|" \
+- $(srcdir)/config.scm.in > config.scm
++GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
++SUFFIXES = .scm .go
++.scm.go:
++ $(top_builddir)/env $(GUILD) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<"
+
+-install-data-local: Makefile config.scm.in
+- $(mkinstalldirs) $(DESTDIR)$(moduledir)
++config.scm: Makefile config.scm.in
+ sed -e "s|@cairolibpath\@|$(libdir)/libguile-cairo|" \
+- -e "s|@cairodocumentationpath\@|$(moduledir)/cairo-procedures.txt|" \
+- $(srcdir)/config.scm.in > $(DESTDIR)$(moduledir)/config.scm
+- chmod 644 $(DESTDIR)$(moduledir)/config.scm
+-
+-uninstall-local:
+- rm -f $(DESTDIR)$(moduledir)/config.scm
++ -e "s|@cairodocumentationpath\@|$(moddir)/cairo-procedures.txt|" \
++ $(srcdir)/config.scm.in > config.scm
+
+ cairo-procedures.txt.update:
+ echo "Generated from upstream documentation; see COPYING.docs for info." \
+@@ -45,6 +42,6 @@ cairo-procedures.txt.update:
+ $(top_srcdir)/doc/docbook-to-guile-doc $(CAIRO_XML_DIR)/*.xml \
+ >> $(srcdir)/cairo-procedures.txt
+
+-CLEANFILES = config.scm
++CLEANFILES = config.scm $(GOBJECTS)
+
+-EXTRA_DIST = config.scm.in $(module_DATA)
++EXTRA_DIST = config.scm.in
+--- configure.ac
++++ configure.ac
+@@ -37,7 +37,7 @@ AM_INIT_AUTOMAKE([1.14 gnu -Wno-portability -Wno-syntax \
+ AM_MAINTAINER_MODE([enable])
+ AM_SILENT_RULES([yes])
+
+-AC_SUBST(VERSION, 1.11.2)
++AC_SUBST(VERSION, 1.12.0)
+
+ AC_ISC_POSIX
+ AC_PROG_CC
+@@ -77,9 +77,15 @@ AC_SUBST(AM_LDFLAGS)
+ # Check for Guile
+ #
+ GUILE_PKG
++GUILE_PROGS
+ GUILE_FLAGS
+ AC_SUBST(GUILE_EFFECTIVE_VERSION)
+
++if test "$cross_compiling" != no; then
++ GUILE_TARGET="--target=$host_alias"
++ AC_SUBST([GUILE_TARGET])
++fi
++
+ PKG_CHECK_MODULES(CAIRO, cairo >= 1.10.0)
+ AC_SUBST(CAIRO_LIBS)
+ AC_SUBST(CAIRO_CFLAGS)
+--- guile-cairo/guile-cairo.c
++++ guile-cairo/guile-cairo.c
+@@ -1,6 +1,9 @@
+ /* guile-cairo
+ * Copyright (C) 2007, 2011, 2012, 2014, 2018, 2020 Andy Wingo <wingo at pobox dot com>
+- *
++ * Copyright (C) 2023 Daniel Llorens <lloda at sarc dot name>
++ * Copyright (C) 2023 Dale Smith <dalepsmith at gmail dot com>
++ * Copyright (C) 2023 David Pirotte <david at altosw dot be>
++
+ * guile-cairo.c: Cairo for Guile
+ *
+ * This library is free software; you can redistribute it and/or modify
+@@ -3523,6 +3526,19 @@ cairo_svg_version_to_string (cairo_svg_version_t version);
+ #endif /* CAIRO_HAS_SVG_SURFACE */
+
+
++SCM_DEFINE_PUBLIC (scm_cairo_context2pointer, "cairo-context->pointer", 1, 0, 0,
++ (SCM scr),
++ "")
++{
++ return scm_from_pointer (scm_to_cairo (scr), NULL);
++}
++
++SCM_DEFINE_PUBLIC (scm_cairo_pointer2context, "cairo-pointer->context", 1, 0, 0,
++ (SCM scr),
++ "")
++{
++ return scm_from_cairo ((cairo_t *) scm_to_pointer (scr));
++}
+
+ void
+ scm_init_cairo (void)
+diff --git m4/guile.m4 m4/guile.m4
+index 57a0868..48642f0 100644
+--- m4/guile.m4
++++ m4/guile.m4
+@@ -17,7 +17,7 @@
+ ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ ## 02110-1301 USA
+
+-# serial 10
++# serial 11
+
+ ## Index
+ ## -----
+@@ -60,7 +60,10 @@
+ # @code{AC_SUBST}.
+ #
+ AC_DEFUN([GUILE_PKG],
+- [PKG_PROG_PKG_CONFIG
++ [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
++ if test "x$PKG_CONFIG" = x; then
++ AC_MSG_ERROR([pkg-config is missing, please install it])
++ fi
+ _guile_versions_to_search="m4_default([$1], [3.0 2.2 2.0])"
+ if test -n "$GUILE_EFFECTIVE_VERSION"; then
+ _guile_tmp=""
+--- tests/unit-tests/Makefile.am
++++ tests/unit-tests/Makefile.am
+@@ -1,5 +1,6 @@
+ # guile-cairo
+ # Copyright (C) 2007,2011 Andy Wingo <wingo@pobox.com>
++# Copyright (C) 2023 David Pirotte <david@altosw.be>
+ #
+ # This program is free software: you can redistribute it and/or modify
+ # it under the terms of the GNU Lesser General Public License as
+@@ -16,7 +17,8 @@
+ # <http://www.gnu.org/licenses/>.
+
+ TESTS= \
+- api-stability.scm \
++ context-pointer.scm \
++ api-stability.scm \
+ version.scm
+
+ TESTS_ENVIRONMENT=\
+--- tests/unit-tests/cairo.api
++++ tests/unit-tests/cairo.api
+@@ -7,14 +7,22 @@
+ cairo-clip-preserve
+ cairo-close-path
+ cairo-content-get-values
++ cairo-context->pointer
+ cairo-copy-clip-rectangle-list
+ cairo-copy-page
+ cairo-copy-path
+ cairo-copy-path-flat
+ cairo-create
+ cairo-curve-to
++ cairo-destroy
++ cairo-device-acquire
++ cairo-device-finish
++ cairo-device-flush
++ cairo-device-get-type
++ cairo-device-release
+ cairo-device-to-user
+ cairo-device-to-user-distance
++ cairo-device-type-get-values
+ cairo-extend-get-values
+ cairo-fill
+ cairo-fill-extents
+@@ -44,6 +52,7 @@
+ cairo-font-type-get-values
+ cairo-font-weight-get-values
+ cairo-format-get-values
++ cairo-format-stride-for-width
+ cairo-get-antialias
+ cairo-get-current-point
+ cairo-get-dash-count
+@@ -67,15 +76,20 @@
+ cairo-glyph:index
+ cairo-glyph:x
+ cairo-glyph:y
++ cairo-has-current-point
+ cairo-hint-metrics-get-values
+ cairo-hint-style-get-values
+ cairo-identity-matrix
+ cairo-image-surface-create
++ cairo-image-surface-create-for-data
+ cairo-image-surface-create-from-png
++ cairo-image-surface-get-data
+ cairo-image-surface-get-format
+ cairo-image-surface-get-height
+ cairo-image-surface-get-stride
+ cairo-image-surface-get-width
++ cairo-image-surface-set-data
++ cairo-in-clip
+ cairo-in-fill
+ cairo-in-stroke
+ cairo-line-cap-get-values
+@@ -86,6 +100,7 @@
+ cairo-make-identity-matrix
+ cairo-make-matrix
+ cairo-make-rectangle
++ cairo-make-rectangle-int
+ cairo-make-rotate-matrix
+ cairo-make-scale-matrix
+ cairo-make-text-extents
+@@ -94,6 +109,8 @@
+ cairo-mask-surface
+ cairo-matrix-invert
+ cairo-matrix-multiply
++ cairo-matrix-rotate
++ cairo-matrix-scale
+ cairo-matrix-transform-distance
+ cairo-matrix-transform-point
+ cairo-matrix-translate
+@@ -104,6 +121,7 @@
+ cairo-paint
+ cairo-paint-with-alpha
+ cairo-path-data-type-get-values
++ cairo-path-extents
+ cairo-path-fold
+ cairo-pattern-add-color-stop-rgb
+ cairo-pattern-add-color-stop-rgba
+@@ -126,22 +144,50 @@
+ cairo-pattern-set-filter
+ cairo-pattern-set-matrix
+ cairo-pattern-type-get-values
++ cairo-pdf-get-versions
++ cairo-pdf-level-get-values
+ cairo-pdf-surface-create
++ cairo-pdf-surface-restrict-to-version
+ cairo-pdf-surface-set-size
++ cairo-pointer->context
+ cairo-pop-group
+ cairo-pop-group-to-source
++ cairo-ps-get-levels
++ cairo-ps-level-get-values
+ cairo-ps-surface-begin-page-setup
+ cairo-ps-surface-begin-setup
+ cairo-ps-surface-create
+ cairo-ps-surface-dsc-comment
++ cairo-ps-surface-get-eps
++ cairo-ps-surface-restrict-to-level
++ cairo-ps-surface-set-eps
+ cairo-ps-surface-set-size
+ cairo-push-group
+ cairo-push-group-with-context
++ cairo-recording-surface-create
++ cairo-recording-surface-ink-extents
+ cairo-rectangle
++ cairo-rectangle-int:height
++ cairo-rectangle-int:width
++ cairo-rectangle-int:x
++ cairo-rectangle-int:y
+ cairo-rectangle:height
+ cairo-rectangle:width
+ cairo-rectangle:x
+ cairo-rectangle:y
++ cairo-region-contains-point
++ cairo-region-contains-rectangle
++ cairo-region-copy
++ cairo-region-create
++ cairo-region-get-extents
++ cairo-region-get-rectangles
++ cairo-region-intersect
++ cairo-region-is-empty
++ cairo-region-overlap-get-values
++ cairo-region-subtract
++ cairo-region-translate
++ cairo-region-union
++ cairo-region-xor
+ cairo-rel-curve-to
+ cairo-rel-line-to
+ cairo-rel-move-to
+@@ -156,9 +202,11 @@
+ cairo-scaled-font-get-font-face
+ cairo-scaled-font-get-font-matrix
+ cairo-scaled-font-get-font-options
++ cairo-scaled-font-get-scale_matrix
+ cairo-scaled-font-get-type
+ cairo-scaled-font-glyph-extents
+ cairo-scaled-font-text-extents
++ cairo-scaled-font-text-to-glyphs
+ cairo-select-font-face
+ cairo-set-antialias
+ cairo-set-dash
+@@ -182,26 +230,38 @@
+ cairo-show-glyphs
+ cairo-show-page
+ cairo-show-text
++ cairo-show-text-glyphs
++ cairo-status-get-values
+ cairo-stroke
+ cairo-stroke-extents
+ cairo-stroke-preserve
+ cairo-subpixel-order-get-values
++ cairo-surface-copy-page
++ cairo-surface-create-for-rectangle
+ cairo-surface-create-similar
++ cairo-surface-destroy
+ cairo-surface-finish
+ cairo-surface-flush
+ cairo-surface-get-content
++ cairo-surface-get-device
+ cairo-surface-get-device-offset
++ cairo-surface-get-fallback-resolution
+ cairo-surface-get-font-options
++ cairo-surface-get-mime-data
+ cairo-surface-get-type
++ cairo-surface-has-show-text-glyphs
+ cairo-surface-mark-dirty
+ cairo-surface-mark-dirty-rectangle
+ cairo-surface-set-device-offset
+ cairo-surface-set-fallback-resolution
++ cairo-surface-set-mime-data
++ cairo-surface-show-page
+ cairo-surface-type-get-values
+ cairo-surface-write-to-png
+ cairo-svg-surface-create
+ cairo-svg-surface-restrict-to-version
+ cairo-svg-version-get-values
++ cairo-text-cluster-flags-get-values
+ cairo-text-extents
+ cairo-text-extents:height
+ cairo-text-extents:width
+@@ -210,8 +270,17 @@
+ cairo-text-extents:y-advance
+ cairo-text-extents:y-bearing
+ cairo-text-path
++ cairo-toy-font-face-create
++ cairo-toy-font-face-get-family
++ cairo-toy-font-face-get-slant
++ cairo-toy-font-face-get-weight
+ cairo-transform
+ cairo-translate
++ cairo-user-font-face-create
++ cairo-user-font-face-set-init-func
++ cairo-user-font-face-set-render-glyph-func
++ cairo-user-font-face-set-text-to-glyphs-func
++ cairo-user-font-face-set-unicode-to-glyph-func
+ cairo-user-to-device
+ cairo-user-to-device-distance
+ cairo-version
+--- /dev/null
++++ tests/unit-tests/context-pointer.scm
+@@ -0,0 +1,29 @@
++;; guile-cairo unit test
++;; Copyright (C) 2023 David Pirotte <david@altosw.be>
++
++;; This program is free software; you can redistribute it and/or modify
++;; it under the terms of the GNU General Public License as published by
++;; the Free Software Foundation; either version 3 of the License, or (at
++;; your option) any later version.
++;;
++;; This program is distributed in the hope that it will be useful, but
++;; WITHOUT ANY WARRANTY; without even the implied warranty of
++;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++;; General Public License for more details.
++;;
++;; You should have received a copy of the GNU General Public License
++;; along with this program; if not, see <http://www.gnu.org/licenses/>.
++
++(use-modules (unit-test)
++ (oop goops)
++ (cairo))
++
++(define-class <test-context-pointer> (<test-case>))
++
++(define-method (test-context-pointer (self <test-context-pointer>))
++ (let* ((cs (cairo-image-surface-create 'argb32 140 100))
++ (cr (cairo-create cs)))
++ (assert (cairo-context->pointer cr))
++ (assert (cairo-pointer->context (cairo-context->pointer cr)))))
++
++(exit-with-summary (run-all-defined-test-cases))
diff --git a/graphics/guile-cairo/files/patch-guile-cairo.pc.in b/graphics/guile-cairo/files/patch-guile-cairo.pc.in
new file mode 100644
--- /dev/null
+++ b/graphics/guile-cairo/files/patch-guile-cairo.pc.in
@@ -0,0 +1,9 @@
+--- guile-cairo.pc.in.orig 2023-05-21 10:31:12 UTC
++++ guile-cairo.pc.in
+@@ -7,5 +7,5 @@ Name: guile-cairo
+ Description: Cairo binding for Guile Scheme
+ Version: @VERSION@
+ Requires: cairo guile-@GUILE_EFFECTIVE_VERSION@
+-Libs: -L${libdir} -lguile-cairo
++Libs: -L${libdir} -Wl,-rpath=${libdir} -lguile-cairo
+ Cflags: -I${includedir}
diff --git a/graphics/guile-cairo/pkg-plist b/graphics/guile-cairo/pkg-plist
--- a/graphics/guile-cairo/pkg-plist
+++ b/graphics/guile-cairo/pkg-plist
@@ -1,12 +1,15 @@
-include/guile-cairo/guile-cairo-enum-types.h
-include/guile-cairo/guile-cairo-smob-types.h
-include/guile-cairo/guile-cairo-vector-types.h
-include/guile-cairo/guile-cairo.h
-lib/libguile-cairo.so
-lib/libguile-cairo.so.0
-lib/libguile-cairo.so.0.0.0
-libdata/pkgconfig/guile-cairo.pc
-share/guile/site/cairo.scm
-share/guile/site/cairo/cairo-procedures.txt
-share/guile/site/cairo/config.scm
-share/guile/site/cairo/vector-types.scm
+include/guile/%%GUILE_VER%%/guile-cairo/guile-cairo-enum-types.h
+include/guile/%%GUILE_VER%%/guile-cairo/guile-cairo-smob-types.h
+include/guile/%%GUILE_VER%%/guile-cairo/guile-cairo-vector-types.h
+include/guile/%%GUILE_VER%%/guile-cairo/guile-cairo.h
+lib/guile/%%GUILE_VER%%/extensions/libguile-cairo.so
+lib/guile/%%GUILE_VER%%/extensions/libguile-cairo.so.0
+lib/guile/%%GUILE_VER%%/extensions/libguile-cairo.so.0.0.0
+lib/guile/%%GUILE_VER%%/site-ccache/cairo/config.go
+lib/guile/%%GUILE_VER%%/site-ccache/cairo/vector-types.go
+lib/guile/%%GUILE_VER%%/site-ccache/cairo.go
+%%GUILE_PKGCONFIG_DIR%%/guile-cairo.pc
+share/guile/site/%%GUILE_VER%%/cairo.scm
+share/guile/site/%%GUILE_VER%%/cairo/cairo-procedures.txt
+share/guile/site/%%GUILE_VER%%/cairo/config.scm
+share/guile/site/%%GUILE_VER%%/cairo/vector-types.scm
diff --git a/irc/weechat/Makefile b/irc/weechat/Makefile
--- a/irc/weechat/Makefile
+++ b/irc/weechat/Makefile
@@ -53,7 +53,7 @@
CHARSET_IMPLIES= ICONV
DOCS_CMAKE_BOOL= ENABLE_DOC
DOCS_BUILD_DEPENDS= ${LOCALBASE}/bin/asciidoctor:textproc/rubygem-asciidoctor
-GUILE_LIB_DEPENDS= libguile-2.2.so:lang/guile2
+GUILE_USES= guile:2.2
ICONV_USES= iconv
JAVASCRIPT_LIB_DEPENDS= libv8.so:lang/v8
LUA_USES= lua pkgconfig
diff --git a/irc/weechat/pkg-plist b/irc/weechat/pkg-plist
--- a/irc/weechat/pkg-plist
+++ b/irc/weechat/pkg-plist
@@ -35,6 +35,7 @@
%%HEADLESS%%%%MANPAGES%%man/sr/man1/weechat-headless.1.gz
%%ASPELL%%lib/weechat/plugins/spell.so
%%CHARSET%%lib/weechat/plugins/charset.so
+%%GUILE%%lib/weechat/plugins/guile.so
%%JAVASCRIPT%%lib/weechat/plugins/javascript.so
%%LUA%%lib/weechat/plugins/lua.so
%%PERL%%lib/weechat/plugins/perl.so
diff --git a/lang/Makefile b/lang/Makefile
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -127,9 +127,10 @@
SUBDIR += gravity
SUBDIR += groovy
SUBDIR += gscheme
- SUBDIR += guile
+ SUBDIR += guile-aclocal
SUBDIR += guile1
SUBDIR += guile2
+ SUBDIR += guile3
SUBDIR += halide
SUBDIR += harec
SUBDIR += haskell-mode.el
@@ -337,8 +338,6 @@
SUBDIR += sketchy
SUBDIR += slib
SUBDIR += slib-guile
- SUBDIR += slib-guile1
- SUBDIR += slib-guile2
SUBDIR += slisp
SUBDIR += smalltalk
SUBDIR += smlnj
diff --git a/lang/guile-aclocal/Makefile b/lang/guile-aclocal/Makefile
new file mode 100644
--- /dev/null
+++ b/lang/guile-aclocal/Makefile
@@ -0,0 +1,18 @@
+PORTNAME= guile-aclocal
+CATEGORIES= lang scheme
+PKGNAMESUFFIX=
+DISTNAME= guile-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
+
+MASTERDIR= ${.CURDIR}/../guile3
+
+NO_ARCH= yes
+NO_BUILD= yes
+
+PLIST= # disable MASTERDIR's plist
+PLIST_FILES= ${PREFIX}/share/aclocal/guile.m4
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/aclocal/
+ ${INSTALL_DATA} ${WRKSRC}/meta/guile.m4 ${STAGEDIR}${PREFIX}/share/aclocal/
+
+.include "${MASTERDIR}/Makefile"
diff --git a/lang/guile/Makefile b/lang/guile/Makefile
deleted file mode 100644
--- a/lang/guile/Makefile
+++ /dev/null
@@ -1,69 +0,0 @@
-PORTNAME= guile
-PORTVERSION= 3.0.9
-PORTREVISION= 1
-CATEGORIES= lang scheme
-MASTER_SITES= GNU
-
-MAINTAINER= bofh@FreeBSD.org
-COMMENT= GNU Ubiquitous Intelligent Language for Extension
-WWW= https://www.gnu.org/software/guile/
-
-LICENSE= GPLv3 LGPL3
-LICENSE_COMB= multi
-
-# Currently has linker error in i386. Feel free to add other ARCHS in
-# case of failure
-NOT_FOR_ARCHS= i386
-
-LIB_DEPENDS= libffi.so:devel/libffi \
- libgmp.so:math/gmp \
- libltdl.so:devel/libltdl \
- libunistring.so:devel/libunistring
-
-USES= charsetfix compiler:gcc-c++11-lib cpe gmake iconv libtool \
- makeinfo pathfix pkgconfig readline tar:lz
-CPE_VENDOR= gnu
-USE_LDCONFIG= yes
-
-GNU_CONFIGURE= yes
-
-#MAKE_JOBS_UNSAFE= yes
-INSTALL_TARGET= install-strip
-
-CONFLICTS_INSTALL= guile1 guile2
-
-INFO= guile r5rs
-
-PLIST_SUB= GUILE_VER=${PORTVERSION:R}
-
-OPTIONS_DEFINE= NLS THREADS
-OPTIONS_DEFAULT= NLS THREADS
-OPTIONS_SUB= yes
-
-NLS_USES= gettext
-NLS_CONFIGURE_ENABLE= nls
-
-THREADS_LIB_DEPENDS= libgc-threaded.so:devel/boehm-gc-threaded
-THREADS_LIB_DEPENDS_OFF= libgc.so:devel/boehm-gc
-THREADS_CONFIGURE_WITH= threads
-
-.include <bsd.port.options.mk>
-
-.if ${ARCH} == powerpc
-EXTRA_PATCHES= ${FILESDIR}/extra-patch-bootstrap_Makefile.in
-.endif
-
-post-patch:
- @${REINPLACE_CMD} -e 's|-i -e|-i.bak -e|' \
- ${WRKSRC}/libguile/Makefile.in
- @${RM} -r ${WRKSRC}/prebuilt/32-bit-big-endian
-
-post-patch-THREADS-on:
- @${REINPLACE_CMD} -e 's|bdw-gc|bdw-gc-threaded|g' ${WRKSRC}/configure
-
-# Currently guile fails to run if libs are stripped. Will need to debug
-# the case.
-#post-install:
-# @${FIND} ${STAGEDIR}${PREFIX}/lib -name "*.go" | ${XARGS} ${STRIP_CMD}
-
-.include <bsd.port.mk>
diff --git a/lang/guile/files/extra-patch-bootstrap_Makefile.in b/lang/guile/files/extra-patch-bootstrap_Makefile.in
deleted file mode 100644
--- a/lang/guile/files/extra-patch-bootstrap_Makefile.in
+++ /dev/null
@@ -1,11 +0,0 @@
---- bootstrap/Makefile.in.orig 2022-02-02 15:41:58 UTC
-+++ bootstrap/Makefile.in
-@@ -1751,7 +1751,7 @@ top_builddir_absolute = @top_builddir_absolute@
- top_srcdir = @top_srcdir@
- top_srcdir_absolute = @top_srcdir_absolute@
- GUILE_WARNINGS = -W0
--GUILE_OPTIMIZATIONS = -O1
-+GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps
- GOBJECTS = $(SOURCES:%.scm=%.go)
- nobase_noinst_DATA = $(GOBJECTS)
- CLEANFILES = $(GOBJECTS)
diff --git a/lang/guile/files/patch-doc-ref-guile.texi b/lang/guile/files/patch-doc-ref-guile.texi
deleted file mode 100644
--- a/lang/guile/files/patch-doc-ref-guile.texi
+++ /dev/null
@@ -1,10 +0,0 @@
---- doc/ref/guile.texi.orig 2020-05-30 20:06:44 UTC
-+++ doc/ref/guile.texi
-@@ -1,6 +1,7 @@
- \input texinfo
- @c -*-texinfo-*-
- @c %**start of header
-+@documentencoding ISO-8859-1
- @setfilename guile.info
- @documentencoding UTF-8
- @settitle Guile Reference Manual
diff --git a/lang/guile1/Makefile b/lang/guile1/Makefile
--- a/lang/guile1/Makefile
+++ b/lang/guile1/Makefile
@@ -1,5 +1,6 @@
PORTNAME= guile
PORTVERSION= 1.8.8
+PORTREVISION= 1
CATEGORIES= lang scheme
MASTER_SITES= GNU
PKGNAMESUFFIX= 1
@@ -14,41 +15,69 @@
LIB_DEPENDS= libltdl.so:devel/libltdl \
libgmp.so:math/gmp
-USES= autoreconf cpe gmake libtool makeinfo ncurses pathfix
+# We need to pull the aclocal/guile.m4 from guile3 rather than using
+# our own version, in order to avoid conflicts.
+RUN_DEPENDS= guile-aclocal>=3:lang/guile-aclocal
+
+USES= guile:${PORTVERSION:R},env \
+ autoreconf cpe gmake libtool makeinfo ncurses pathfix \
+ readline
CPE_VENDOR= gnu
USE_LDCONFIG= yes
-CONFLICTS_INSTALL= guile2 guile
-
GNU_CONFIGURE= yes
+CONFIGURE_ARGS+=--program-suffix=-${GUILE_VER} \
+ --includedir='$${prefix}/include/guile/${GUILE_VER}/'
+
+INSTALL_TARGET= install-strip
+
CFLAGS+= -fwrapv
CPPFLAGS+= -I${LOCALBASE}/include
LIBS+= -L${LOCALBASE}/lib
-INSTALL_TARGET= install-strip
PORTSCOUT= limit:^1\.
-PLIST_SUB= GUILE_VER=${PORTVERSION:R}
-
-REINPLACE_FILES= libguile/smob.c libguile/filesys.c libguile/gc.c \
- libguile/mallocs.c libguile/eval.c libguile/gc-malloc.c \
- libguile/ports.c libguile/gc-mark.c libguile/gc_os_dep.c
-
INFO= goops guile-tut guile r5rs
+INFO_PATH= share/info/guile${GUILE_SFX}
OPTIONS_DEFINE= NLS
OPTIONS_SUB= yes
-NLS_CONFIGURE_ENABLE= nls
NLS_USES= gettext
NLS_USES_OFF= gettext-tools
+NLS_CONFIGURE_ENABLE= nls
post-extract:
@${FIND} ${WRKSRC}/doc -name "*.info*" -delete
+REINPLACE_FILES_1= libguile/smob.c libguile/filesys.c libguile/gc.c \
+ libguile/mallocs.c libguile/eval.c libguile/gc-malloc.c \
+ libguile/ports.c libguile/gc-mark.c libguile/gc_os_dep.c
+
+REINPLACE_FILES_2= guile-config/guile-config.in
+
+REINPLACE_FILES_3= PROGRAM frisk read-text-outline generate-autoload \
+ scan-api api-diff lint snarf-check-and-output-texi \
+ autofrisk punify snarf-guile-m4-docs display-commentary \
+ read-rfc822 summarize-guile-TODO doc-snarf \
+ read-scheme-source use2dot
+
post-patch:
@cd ${WRKSRC} ; \
- ${REINPLACE_CMD} -e 's|<malloc\.h>|<stdlib.h>|g' ${REINPLACE_FILES}
+ ${REINPLACE_CMD} -e 's|<malloc\.h>|<stdlib.h>|g' ${REINPLACE_FILES_1}
@${REINPLACE_CMD} -e 's|$$(libdir)|$$(libdir)data|g' ${WRKSRC}/Makefile.am
@${TOUCH} ${WRKSRC}/Makefile.in
+ @cd ${WRKSRC} ; \
+ ${REINPLACE_CMD} -e '1s/guile/guile-${GUILE_VER}/' ${REINPLACE_FILES_2}
+ @cd ${WRKSRC}/scripts ; \
+ ${REINPLACE_CMD} -e '1,/!#/s/GUILE-guile/GUILE-guile-${GUILE_VER}/' \
+ ${REINPLACE_FILES_3}
+
+post-install:
+ ${RM} ${STAGEDIR}${PREFIX}/share/aclocal/guile.m4
+ for p in guile guile-tools guile-config guile-snarf; do \
+ ${LN} -s $${p}-${GUILE_VER} ${STAGEDIR}${PREFIX}/bin/$${p}${GUILE_SFX}; \
+ done
+ ${MV} ${STAGEDIR}${PREFIX}/man/man1/guile-${GUILE_VER}.1 \
+ ${STAGEDIR}${PREFIX}/man/man1/guile${GUILE_SFX}.1
.include <bsd.port.mk>
diff --git a/lang/guile1/files/patch-scripts_Makefile.am b/lang/guile1/files/patch-scripts_Makefile.am
new file mode 100644
--- /dev/null
+++ b/lang/guile1/files/patch-scripts_Makefile.am
@@ -0,0 +1,12 @@
+--- scripts/Makefile.am.orig 2023-05-22 16:38:21 UTC
++++ scripts/Makefile.am
+@@ -21,6 +21,9 @@
+
+ AUTOMAKE_OPTIONS = gnu
+
++# prevent program-suffix being used in this dir
++transform=
++
+ # These should be installed and distributed.
+ scripts_sources = \
+ PROGRAM \
diff --git a/lang/guile1/pkg-plist b/lang/guile1/pkg-plist
--- a/lang/guile1/pkg-plist
+++ b/lang/guile1/pkg-plist
@@ -1,115 +1,119 @@
-bin/guile
-bin/guile-config
-bin/guile-snarf
-bin/guile-tools
-include/guile/gh.h
-include/guile/readline.h
-include/guile/srfi/srfi-1.h
-include/guile/srfi/srfi-13.h
-include/guile/srfi/srfi-14.h
-include/guile/srfi/srfi-4.h
-include/guile/srfi/srfi-60.h
-include/libguile.h
-include/libguile/__scm.h
-include/libguile/alist.h
-include/libguile/arbiters.h
-include/libguile/async.h
-include/libguile/backtrace.h
-include/libguile/boolean.h
-include/libguile/chars.h
-include/libguile/continuations.h
-include/libguile/convert.h
-include/libguile/debug-malloc.h
-include/libguile/debug.h
-include/libguile/deprecated.h
-include/libguile/deprecation.h
-include/libguile/discouraged.h
-include/libguile/dynl.h
-include/libguile/dynwind.h
-include/libguile/environments.h
-include/libguile/eq.h
-include/libguile/error.h
-include/libguile/eval.h
-include/libguile/evalext.h
-include/libguile/extensions.h
-include/libguile/feature.h
-include/libguile/filesys.h
-include/libguile/fluids.h
-include/libguile/fports.h
-include/libguile/futures.h
-include/libguile/gc.h
-include/libguile/gdb_interface.h
-include/libguile/gdbint.h
-include/libguile/goops.h
-include/libguile/gsubr.h
-include/libguile/guardians.h
-include/libguile/hash.h
-include/libguile/hashtab.h
-include/libguile/hooks.h
-include/libguile/i18n.h
-include/libguile/init.h
-include/libguile/inline.h
-include/libguile/ioext.h
-include/libguile/iselect.h
-include/libguile/keywords.h
-include/libguile/lang.h
-include/libguile/list.h
-include/libguile/load.h
-include/libguile/macros.h
-include/libguile/mallocs.h
-include/libguile/modules.h
-include/libguile/net_db.h
-include/libguile/null-threads.h
-include/libguile/numbers.h
-include/libguile/objects.h
-include/libguile/objprop.h
-include/libguile/options.h
-include/libguile/pairs.h
-include/libguile/ports.h
-include/libguile/posix.h
-include/libguile/print.h
-include/libguile/procprop.h
-include/libguile/procs.h
-include/libguile/properties.h
-include/libguile/pthread-threads.h
-include/libguile/ramap.h
-include/libguile/random.h
-include/libguile/rdelim.h
-include/libguile/read.h
-include/libguile/regex-posix.h
-include/libguile/root.h
-include/libguile/rw.h
-include/libguile/scmconfig.h
-include/libguile/scmsigs.h
-include/libguile/script.h
-include/libguile/simpos.h
-include/libguile/smob.h
-include/libguile/snarf.h
-include/libguile/socket.h
-include/libguile/sort.h
-include/libguile/srcprop.h
-include/libguile/srfi-13.h
-include/libguile/srfi-14.h
-include/libguile/srfi-4.h
-include/libguile/stackchk.h
-include/libguile/stacks.h
-include/libguile/stime.h
-include/libguile/strings.h
-include/libguile/strorder.h
-include/libguile/strports.h
-include/libguile/struct.h
-include/libguile/symbols.h
-include/libguile/tags.h
-include/libguile/threads.h
-include/libguile/throw.h
-include/libguile/unif.h
-include/libguile/validate.h
-include/libguile/values.h
-include/libguile/variable.h
-include/libguile/vectors.h
-include/libguile/version.h
-include/libguile/vports.h
-include/libguile/weaks.h
+bin/guile-%%GUILE_VER%%
+bin/guile-config-%%GUILE_VER%%
+bin/guile-snarf-%%GUILE_VER%%
+bin/guile-tools-%%GUILE_VER%%
+bin/guile%%GUILE_SFX%%
+bin/guile-config%%GUILE_SFX%%
+bin/guile-snarf%%GUILE_SFX%%
+bin/guile-tools%%GUILE_SFX%%
+include/guile/%%GUILE_VER%%/guile/gh.h
+include/guile/%%GUILE_VER%%/guile/readline.h
+include/guile/%%GUILE_VER%%/guile/srfi/srfi-1.h
+include/guile/%%GUILE_VER%%/guile/srfi/srfi-13.h
+include/guile/%%GUILE_VER%%/guile/srfi/srfi-14.h
+include/guile/%%GUILE_VER%%/guile/srfi/srfi-4.h
+include/guile/%%GUILE_VER%%/guile/srfi/srfi-60.h
+include/guile/%%GUILE_VER%%/libguile.h
+include/guile/%%GUILE_VER%%/libguile/__scm.h
+include/guile/%%GUILE_VER%%/libguile/alist.h
+include/guile/%%GUILE_VER%%/libguile/arbiters.h
+include/guile/%%GUILE_VER%%/libguile/async.h
+include/guile/%%GUILE_VER%%/libguile/backtrace.h
+include/guile/%%GUILE_VER%%/libguile/boolean.h
+include/guile/%%GUILE_VER%%/libguile/chars.h
+include/guile/%%GUILE_VER%%/libguile/continuations.h
+include/guile/%%GUILE_VER%%/libguile/convert.h
+include/guile/%%GUILE_VER%%/libguile/debug-malloc.h
+include/guile/%%GUILE_VER%%/libguile/debug.h
+include/guile/%%GUILE_VER%%/libguile/deprecated.h
+include/guile/%%GUILE_VER%%/libguile/deprecation.h
+include/guile/%%GUILE_VER%%/libguile/discouraged.h
+include/guile/%%GUILE_VER%%/libguile/dynl.h
+include/guile/%%GUILE_VER%%/libguile/dynwind.h
+include/guile/%%GUILE_VER%%/libguile/environments.h
+include/guile/%%GUILE_VER%%/libguile/eq.h
+include/guile/%%GUILE_VER%%/libguile/error.h
+include/guile/%%GUILE_VER%%/libguile/eval.h
+include/guile/%%GUILE_VER%%/libguile/evalext.h
+include/guile/%%GUILE_VER%%/libguile/extensions.h
+include/guile/%%GUILE_VER%%/libguile/feature.h
+include/guile/%%GUILE_VER%%/libguile/filesys.h
+include/guile/%%GUILE_VER%%/libguile/fluids.h
+include/guile/%%GUILE_VER%%/libguile/fports.h
+include/guile/%%GUILE_VER%%/libguile/futures.h
+include/guile/%%GUILE_VER%%/libguile/gc.h
+include/guile/%%GUILE_VER%%/libguile/gdb_interface.h
+include/guile/%%GUILE_VER%%/libguile/gdbint.h
+include/guile/%%GUILE_VER%%/libguile/goops.h
+include/guile/%%GUILE_VER%%/libguile/gsubr.h
+include/guile/%%GUILE_VER%%/libguile/guardians.h
+include/guile/%%GUILE_VER%%/libguile/hash.h
+include/guile/%%GUILE_VER%%/libguile/hashtab.h
+include/guile/%%GUILE_VER%%/libguile/hooks.h
+include/guile/%%GUILE_VER%%/libguile/i18n.h
+include/guile/%%GUILE_VER%%/libguile/init.h
+include/guile/%%GUILE_VER%%/libguile/inline.h
+include/guile/%%GUILE_VER%%/libguile/ioext.h
+include/guile/%%GUILE_VER%%/libguile/iselect.h
+include/guile/%%GUILE_VER%%/libguile/keywords.h
+include/guile/%%GUILE_VER%%/libguile/lang.h
+include/guile/%%GUILE_VER%%/libguile/list.h
+include/guile/%%GUILE_VER%%/libguile/load.h
+include/guile/%%GUILE_VER%%/libguile/macros.h
+include/guile/%%GUILE_VER%%/libguile/mallocs.h
+include/guile/%%GUILE_VER%%/libguile/modules.h
+include/guile/%%GUILE_VER%%/libguile/net_db.h
+include/guile/%%GUILE_VER%%/libguile/null-threads.h
+include/guile/%%GUILE_VER%%/libguile/numbers.h
+include/guile/%%GUILE_VER%%/libguile/objects.h
+include/guile/%%GUILE_VER%%/libguile/objprop.h
+include/guile/%%GUILE_VER%%/libguile/options.h
+include/guile/%%GUILE_VER%%/libguile/pairs.h
+include/guile/%%GUILE_VER%%/libguile/ports.h
+include/guile/%%GUILE_VER%%/libguile/posix.h
+include/guile/%%GUILE_VER%%/libguile/print.h
+include/guile/%%GUILE_VER%%/libguile/procprop.h
+include/guile/%%GUILE_VER%%/libguile/procs.h
+include/guile/%%GUILE_VER%%/libguile/properties.h
+include/guile/%%GUILE_VER%%/libguile/pthread-threads.h
+include/guile/%%GUILE_VER%%/libguile/ramap.h
+include/guile/%%GUILE_VER%%/libguile/random.h
+include/guile/%%GUILE_VER%%/libguile/rdelim.h
+include/guile/%%GUILE_VER%%/libguile/read.h
+include/guile/%%GUILE_VER%%/libguile/regex-posix.h
+include/guile/%%GUILE_VER%%/libguile/root.h
+include/guile/%%GUILE_VER%%/libguile/rw.h
+include/guile/%%GUILE_VER%%/libguile/scmconfig.h
+include/guile/%%GUILE_VER%%/libguile/scmsigs.h
+include/guile/%%GUILE_VER%%/libguile/script.h
+include/guile/%%GUILE_VER%%/libguile/simpos.h
+include/guile/%%GUILE_VER%%/libguile/smob.h
+include/guile/%%GUILE_VER%%/libguile/snarf.h
+include/guile/%%GUILE_VER%%/libguile/socket.h
+include/guile/%%GUILE_VER%%/libguile/sort.h
+include/guile/%%GUILE_VER%%/libguile/srcprop.h
+include/guile/%%GUILE_VER%%/libguile/srfi-13.h
+include/guile/%%GUILE_VER%%/libguile/srfi-14.h
+include/guile/%%GUILE_VER%%/libguile/srfi-4.h
+include/guile/%%GUILE_VER%%/libguile/stackchk.h
+include/guile/%%GUILE_VER%%/libguile/stacks.h
+include/guile/%%GUILE_VER%%/libguile/stime.h
+include/guile/%%GUILE_VER%%/libguile/strings.h
+include/guile/%%GUILE_VER%%/libguile/strorder.h
+include/guile/%%GUILE_VER%%/libguile/strports.h
+include/guile/%%GUILE_VER%%/libguile/struct.h
+include/guile/%%GUILE_VER%%/libguile/symbols.h
+include/guile/%%GUILE_VER%%/libguile/tags.h
+include/guile/%%GUILE_VER%%/libguile/threads.h
+include/guile/%%GUILE_VER%%/libguile/throw.h
+include/guile/%%GUILE_VER%%/libguile/unif.h
+include/guile/%%GUILE_VER%%/libguile/validate.h
+include/guile/%%GUILE_VER%%/libguile/values.h
+include/guile/%%GUILE_VER%%/libguile/variable.h
+include/guile/%%GUILE_VER%%/libguile/vectors.h
+include/guile/%%GUILE_VER%%/libguile/version.h
+include/guile/%%GUILE_VER%%/libguile/vports.h
+include/guile/%%GUILE_VER%%/libguile/weaks.h
lib/libguile-srfi-srfi-1-v-3.a
lib/libguile-srfi-srfi-1-v-3.so
lib/libguile-srfi-srfi-1-v-3.so.3
@@ -135,8 +139,7 @@
lib/libguilereadline-v-17.so.17
lib/libguilereadline-v-17.so.17.0.3
libdata/pkgconfig/guile-1.8.pc
-man/man1/guile.1.gz
-share/aclocal/guile.m4
+man/man1/guile%%GUILE_SFX%%.1.gz
%%DATADIR%%/%%GUILE_VER%%/guile-procedures.txt
%%DATADIR%%/%%GUILE_VER%%/ice-9/and-let-star.scm
%%DATADIR%%/%%GUILE_VER%%/ice-9/boot-9.scm
diff --git a/lang/guile2/Makefile b/lang/guile2/Makefile
--- a/lang/guile2/Makefile
+++ b/lang/guile2/Makefile
@@ -1,6 +1,6 @@
PORTNAME= guile
PORTVERSION= 2.2.7
-PORTREVISION= 3
+PORTREVISION= 5
CATEGORIES= lang scheme
MASTER_SITES= GNU
PKGNAMESUFFIX= 2
@@ -16,51 +16,52 @@
libltdl.so:devel/libltdl \
libunistring.so:devel/libunistring \
libffi.so:devel/libffi
+RUN_DEPENDS= guile-aclocal>=3:lang/guile-aclocal
-USES= charsetfix compiler:c11 cpe gmake iconv libtool makeinfo ncurses pathfix \
- pkgconfig readline tar:lz
-USE_LDCONFIG= yes
-
+USES= guile:${PORTVERSION:R},env \
+ charsetfix compiler:c11 cpe gmake iconv libtool localbase \
+ makeinfo ncurses pathfix pkgconfig readline tar:lz
CPE_VENDOR= gnu
+USE_LDCONFIG= yes
-CONFLICTS_INSTALL= guile guile1 # bin/guild bin/guile bin/guile-config bin/guile-snarf bin/guile-tools
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --program-suffix=-${GUILE_VER}
+# eliminate some pointless configure warnings/errors
+CONFIGURE_ENV+= gl_cv_func_working_mktime=yes \
+ ac_cv_header_sys_timeb_h=0
MAKE_JOBS_UNSAFE= yes
-
-GNU_CONFIGURE= yes
-CPPFLAGS+= -I${LOCALBASE}/include
-LIBS+= -L${LOCALBASE}/lib
INSTALL_TARGET= install-strip
INFO= guile r5rs
-
-PLIST_SUB= GUILE_VER=${PORTVERSION:R}
+INFO_PATH= share/info/guile${GUILE_SFX}
OPTIONS_DEFINE= NLS THREADS
OPTIONS_DEFAULT=THREADS
OPTIONS_SUB= yes
-NLS_CONFIGURE_ENABLE= nls
NLS_USES= gettext
+NLS_CONFIGURE_ENABLE= nls
-THREADS_CONFIGURE_WITH= threads
THREADS_LIB_DEPENDS= libgc-threaded.so:devel/boehm-gc-threaded
-THREADS_LIB_DEPENDS_OFF= libgc.so:devel/boehm-gc
-
-REINPLACE_FILES= libguile/smob.c libguile/filesys.c libguile/gc.c \
- libguile/mallocs.c libguile/eval.c \
- libguile/gc-malloc.c libguile/ports.c
+THREADS_LIB_DEPENDS_OFF=libgc.so:devel/boehm-gc
+THREADS_CONFIGURE_ON= --with-bdw-gc=bdw-gc-threaded
+THREADS_CONFIGURE_OFF= --with-bdw-gc=bdw-gc
+THREADS_CONFIGURE_WITH= threads
post-patch:
- @cd ${WRKSRC} ; \
- ${REINPLACE_CMD} -e 's|<malloc\.h>|<stdlib.h>|g' ${REINPLACE_FILES}
- @${REINPLACE_CMD} -e 's|sys/time.h sys/timeb.h|sys/time.h |g' \
- ${WRKSRC}/configure
- @${REINPLACE_CMD} -e 's|-i -e|-i.bak -e|' \
- ${WRKSRC}/libguile/Makefile.in
@${RM} -r ${WRKSRC}/prebuilt/32-bit-big-endian
-post-patch-THREADS-on:
- @${REINPLACE_CMD} -e 's|bdw-gc|bdw-gc-threaded|g' ${WRKSRC}/configure
+# DO NOT try and add rules here to strip .go files, no matter how loudly
+# testport / stage-qa shouts at you about it, because .go files (which are
+# compiled bytecode) are not intended to be stripped and doing so causes
+# breakage at run time.
+
+post-install:
+ for p in guile guild guile-tools guile-config guile-snarf; do \
+ ${LN} -s $${p}-${GUILE_VER} ${STAGEDIR}${PREFIX}/bin/$${p}${GUILE_SFX}; \
+ done
+ ${MV} ${STAGEDIR}${PREFIX}/man/man1/guile-${GUILE_VER}.1 \
+ ${STAGEDIR}${PREFIX}/man/man1/guile${GUILE_SFX}.1
.include <bsd.port.mk>
diff --git a/lang/guile2/files/patch-libguile_Makefile.in b/lang/guile2/files/patch-libguile_Makefile.in
new file mode 100644
--- /dev/null
+++ b/lang/guile2/files/patch-libguile_Makefile.in
@@ -0,0 +1,11 @@
+--- libguile/Makefile.in.orig 2023-05-19 23:42:28 UTC
++++ libguile/Makefile.in
+@@ -2239,7 +2239,7 @@ EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES =
+ locale-categories.h
+
+ INSTANTIATE = \
+- $(SED) -i -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
++ $(SED) -i.bak -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
+ -e 's,[@]pkglibdir[@],$(pkglibdir),g' \
+ -e 's,[@]GUILE_EFFECTIVE_VERSION[@],$(GUILE_EFFECTIVE_VERSION),g'
+
diff --git a/lang/guile2/pkg-plist b/lang/guile2/pkg-plist
--- a/lang/guile2/pkg-plist
+++ b/lang/guile2/pkg-plist
@@ -1,8 +1,13 @@
-bin/guild
-bin/guile
-bin/guile-config
-bin/guile-snarf
-bin/guile-tools
+bin/guild%%GUILE_SFX%%
+bin/guile%%GUILE_SFX%%
+bin/guile-config%%GUILE_SFX%%
+bin/guile-snarf%%GUILE_SFX%%
+bin/guile-tools%%GUILE_SFX%%
+bin/guild-%%GUILE_VER%%
+bin/guile-%%GUILE_VER%%
+bin/guile-config-%%GUILE_VER%%
+bin/guile-snarf-%%GUILE_VER%%
+bin/guile-tools-%%GUILE_VER%%
include/guile/%%GUILE_VER%%/libguile.h
include/guile/%%GUILE_VER%%/libguile/__scm.h
include/guile/%%GUILE_VER%%/libguile/alist.h
@@ -442,8 +447,8 @@
lib/libguile-%%GUILE_VER%%.so.1.4.2
lib/libguile-%%GUILE_VER%%.so.1.4.2-gdb.scm
libdata/pkgconfig/guile-%%GUILE_VER%%.pc
-man/man1/guile.1.gz
-share/aclocal/guile.m4
+man/man1/guile%%GUILE_SFX%%.1.gz
+@comment share/aclocal/guile.m4
%%DATADIR%%/%%GUILE_VER%%/guile-procedures.txt
%%DATADIR%%/%%GUILE_VER%%/ice-9/and-let-star.scm
%%DATADIR%%/%%GUILE_VER%%/ice-9/arrays.scm
diff --git a/lang/guile3/Makefile b/lang/guile3/Makefile
new file mode 100644
--- /dev/null
+++ b/lang/guile3/Makefile
@@ -0,0 +1,101 @@
+PORTNAME?= guile
+PORTVERSION= 3.0.9
+PORTREVISION= 1
+CATEGORIES= lang scheme
+MASTER_SITES= GNU
+PKGNAMESUFFIX?= 3
+
+MAINTAINER= bofh@FreeBSD.org
+COMMENT= GNU Ubiquitous Intelligent Language for Extension
+WWW= https://www.gnu.org/software/guile/
+
+LICENSE= GPLv3 LGPL3
+LICENSE_COMB= multi
+
+USES= tar:lz
+
+# The -aclocal slave port includes this file to get the version,
+# distinfo, etc., but needs none of the definitions. So almost all
+# of the file is inside this .if
+
+.if empty(NO_BUILD)
+
+LIB_DEPENDS= libunistring.so:devel/libunistring \
+ libffi.so:devel/libffi
+
+# the aclocal/guile.m4 from this version is shared with guile2,
+# so it's hived off into a separate port to avoid a conflict.
+RUN_DEPENDS= guile-aclocal>=3:lang/guile-aclocal
+
+USES+= guile:${PORTVERSION:R},env \
+ charsetfix compiler:c11 cpe gmake iconv libtool \
+ makeinfo pathfix pkgconfig readline localbase
+CPE_VENDOR= gnu
+USE_LDCONFIG= yes
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --program-suffix=-${GUILE_VER} \
+ --enable-lto=no
+# LTO is unconditionally off here because it fails to build with llvm,
+# fails to build even with gcc on some arches (reported for armv7 in
+# particular), and making it conditional on gcc/arch is trickier than
+# is strictly necessary. LTO_UNSAFE stops the framework from trying to
+# enable it for us if the user asks. Don't re-enable it unless you
+# tested build+run on more than just amd64/arm46.
+LTO_UNSAFE= yes
+
+# eliminate some pointless configure warnings/errors
+CONFIGURE_ENV+= gl_cv_func_working_mktime=yes \
+ ac_cv_header_sys_timeb_h=0
+
+MAKE_JOBS_UNSAFE= yes
+
+INSTALL_TARGET= install-strip
+
+INFO= guile r5rs
+
+INFO_PATH= share/info/guile${GUILE_SFX}
+
+OPTIONS_DEFINE= NLS THREADS MINIGMP
+OPTIONS_DEFAULT=THREADS
+OPTIONS_SUB= yes
+
+MINIGMP_DESC= Use embedded mini-gmp rather than external libgmp
+
+MINIGMP_LIB_DEPENDS_OFF= libgmp.so:math/gmp
+MINIGMP_CONFIGURE_ENABLE= mini-gmp
+
+NLS_USES= gettext
+NLS_CONFIGURE_ENABLE= nls
+
+THREADS_LIB_DEPENDS= libgc-threaded.so:devel/boehm-gc-threaded
+THREADS_LIB_DEPENDS_OFF=libgc.so:devel/boehm-gc
+THREADS_CONFIGURE_ON= --with-bdw-gc=bdw-gc-threaded
+THREADS_CONFIGURE_OFF= --with-bdw-gc=bdw-gc
+THREADS_CONFIGURE_WITH= threads
+
+# Upstream bugfixes: these aren't optional because the release version
+# has a broken (spawn*) function, which breaks guile-config, which
+# breaks builds of some dependent ports.
+
+EXTRA_PATCHES= ${PATCHDIR}/extra-patch-upstream-fixes.patch
+
+# The prebuilt bytecode files are reported not to work on powerpc.
+
+post-patch:
+ @${RM} -r ${WRKSRC}/prebuilt/32-bit-big-endian
+
+# DO NOT try and add rules here to strip .go files, no matter how loudly
+# testport / stage-qa shouts at you about it, because .go files (which are
+# compiled bytecode) are not intended to be stripped and doing so causes
+# breakage at run time.
+
+post-install:
+ for p in guile guild guile-tools guile-config guile-snarf; do \
+ ${LN} -s $${p}-${GUILE_VER} ${STAGEDIR}${PREFIX}/bin/$${p}${GUILE_SFX}; \
+ done
+ ${MV} ${STAGEDIR}${PREFIX}/man/man1/guile-${GUILE_VER}.1 \
+ ${STAGEDIR}${PREFIX}/man/man1/guile${GUILE_SFX}.1
+
+.endif # empty(NO_BUILD)
+
+.include <bsd.port.mk>
diff --git a/lang/guile/distinfo b/lang/guile3/distinfo
rename from lang/guile/distinfo
rename to lang/guile3/distinfo
--- a/lang/guile/distinfo
+++ b/lang/guile3/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1675263283
+TIMESTAMP = 1684250510
SHA256 (guile-3.0.9.tar.lz) = bc0ee0a360fb13919c14eb6e2453319adf1ec998288c993829bcf178fb48cc9a
SIZE (guile-3.0.9.tar.lz) = 5435196
diff --git a/lang/guile3/files/extra-patch-upstream-fixes.patch b/lang/guile3/files/extra-patch-upstream-fixes.patch
new file mode 100644
--- /dev/null
+++ b/lang/guile3/files/extra-patch-upstream-fixes.patch
@@ -0,0 +1,789 @@
+diff --git libguile/hash.c libguile/hash.c
+index c192ac2e5..5abdfe397 100644
+--- libguile/hash.c
++++ libguile/hash.c
+@@ -185,7 +185,7 @@ scm_i_utf8_string_hash (const char *str, size_t len)
+ /* Invalid UTF-8; punt. */
+ return scm_i_string_hash (scm_from_utf8_stringn (str, len));
+
+- length = u8_strnlen (ustr, len);
++ length = u8_mbsnlen (ustr, len);
+
+ /* Set up the internal state. */
+ a = b = c = 0xdeadbeef + ((uint32_t)(length<<2)) + 47;
+diff --git libguile/posix.c libguile/posix.c
+index 0b1fe2637..4cf4ef383 100644
+--- libguile/posix.c
++++ libguile/posix.c
+@@ -1322,41 +1322,38 @@ SCM_DEFINE (scm_fork, "primitive-fork", 0, 0, 0,
+ #undef FUNC_NAME
+ #endif /* HAVE_FORK */
+
+-static void
+-close_inherited_fds_slow (posix_spawn_file_actions_t *actions, int max_fd)
+-{
+- while (--max_fd > 2)
+- posix_spawn_file_actions_addclose (actions, max_fd);
+-}
++#ifdef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP
++# define HAVE_ADDCLOSEFROM 1
++#endif
++
++#ifndef HAVE_ADDCLOSEFROM
+
+ static void
+ close_inherited_fds (posix_spawn_file_actions_t *actions, int max_fd)
+ {
+- DIR *dirp;
+- struct dirent *d;
+- int fd;
+-
+- /* Try to use the platform-specific list of open file descriptors, so
+- we don't need to use the brute force approach. */
+- dirp = opendir ("/proc/self/fd");
+-
+- if (dirp == NULL)
+- return close_inherited_fds_slow (actions, max_fd);
+-
+- while ((d = readdir (dirp)) != NULL)
++ while (--max_fd > 2)
+ {
+- fd = atoi (d->d_name);
+-
+- /* Skip "." and "..", garbage entries, stdin/stdout/stderr. */
+- if (fd <= 2)
+- continue;
+-
+- posix_spawn_file_actions_addclose (actions, fd);
++ /* Adding a 'close' action for a file descriptor that is not open
++ causes 'posix_spawn' to fail on GNU/Hurd and on OpenBSD, but
++ not on GNU/Linux: <https://bugs.gnu.org/61095>. Hence this
++ strategy:
++
++ - On GNU/Linux, close every FD, since that's the only
++ race-free way to make sure the child doesn't inherit one.
++ - On other systems, only close FDs currently open in the
++ parent; it works, but it's racy (XXX).
++
++ The only reliable option is 'addclosefrom'. */
++#if ! (defined __GLIBC__ && defined __linux__)
++ int flags = fcntl (max_fd, F_GETFD, NULL);
++ if (flags >= 0)
++#endif
++ posix_spawn_file_actions_addclose (actions, max_fd);
+ }
+-
+- closedir (dirp);
+ }
+
++#endif
++
+ static pid_t
+ do_spawn (char *exec_file, char **exec_argv, char **exec_env,
+ int in, int out, int err, int spawnp)
+@@ -1393,14 +1390,27 @@ do_spawn (char *exec_file, char **exec_argv, char **exec_env,
+ /* Move the fds out of the way, so that duplicate fds or fds equal
+ to 0, 1, 2 don't trample each other */
+
+- posix_spawn_file_actions_adddup2 (&actions, in, fd_slot[0]);
+- posix_spawn_file_actions_adddup2 (&actions, out, fd_slot[1]);
+- posix_spawn_file_actions_adddup2 (&actions, err, fd_slot[2]);
+- posix_spawn_file_actions_adddup2 (&actions, fd_slot[0], 0);
+- posix_spawn_file_actions_adddup2 (&actions, fd_slot[1], 1);
+- posix_spawn_file_actions_adddup2 (&actions, fd_slot[2], 2);
++ int dup2_action_from[] = {in, out, err,
++ fd_slot[0], fd_slot[1], fd_slot[2]};
++ int dup2_action_to [] = {fd_slot[0], fd_slot[1], fd_slot[2],
++ 0, 1, 2};
+
++ errno = 0;
++ for (int i = 0; i < sizeof (dup2_action_from) / sizeof (int); i++)
++ {
++ errno = posix_spawn_file_actions_adddup2 (&actions, dup2_action_from[i],
++ dup2_action_to[i]);
++ if (errno != 0)
++ return -1;
++ }
++
++#ifdef HAVE_ADDCLOSEFROM
++ /* This function appears in glibc 2.34. It's both free from race
++ conditions and more efficient than the alternative. */
++ posix_spawn_file_actions_addclosefrom_np (&actions, 3);
++#else
+ close_inherited_fds (&actions, max_fd);
++#endif
+
+ int res = -1;
+ if (spawnp)
+@@ -1486,12 +1496,20 @@ SCM_DEFINE (scm_spawn_process, "spawn", 2, 0, 1,
+ if (SCM_UNBNDP (err_scm))
+ err_scm = scm_current_error_port ();
+
+-#define FDES_FROM_PORT_OR_INTEGER(obj) \
+- (scm_is_integer (obj) ? scm_to_int (obj) : SCM_FPORT_FDES (obj))
++#define FDES_FROM_PORT_OR_INTEGER(fd, obj, pos) \
++ { \
++ if (scm_is_integer (obj)) \
++ fd = scm_to_int (obj); \
++ else \
++ { \
++ SCM_VALIDATE_OPFPORT (pos, obj); \
++ fd = SCM_FPORT_FDES (obj); \
++ } \
++ }
+
+- in = FDES_FROM_PORT_OR_INTEGER (in_scm);
+- out = FDES_FROM_PORT_OR_INTEGER (out_scm);
+- err = FDES_FROM_PORT_OR_INTEGER (err_scm);
++ FDES_FROM_PORT_OR_INTEGER (in, in_scm, 3);
++ FDES_FROM_PORT_OR_INTEGER (out, out_scm, 4);
++ FDES_FROM_PORT_OR_INTEGER (err, err_scm, 5);
+
+ #undef FDES_FROM_PORT_OR_INTEGER
+
+@@ -1544,10 +1562,22 @@ piped_process (pid_t *pid, SCM prog, SCM args, SCM from, SCM to)
+
+ if (SCM_OPOUTFPORTP ((port = scm_current_error_port ())))
+ err = SCM_FPORT_FDES (port);
+- if (out == -1 && SCM_OPOUTFPORTP ((port = scm_current_output_port ())))
+- out = SCM_FPORT_FDES (port);
+- if (in == -1 && SCM_OPINFPORTP ((port = scm_current_input_port ())))
+- in = SCM_FPORT_FDES (port);
++ else
++ err = open ("/dev/null", O_WRONLY | O_CLOEXEC);
++ if (out == -1)
++ {
++ if (SCM_OPOUTFPORTP ((port = scm_current_output_port ())))
++ out = SCM_FPORT_FDES (port);
++ else
++ out = open ("/dev/null", O_WRONLY | O_CLOEXEC);
++ }
++ if (in == -1)
++ {
++ if (SCM_OPINFPORTP ((port = scm_current_input_port ())))
++ in = SCM_FPORT_FDES (port);
++ else
++ in = open ("/dev/null", O_RDONLY | O_CLOEXEC);
++ }
+ }
+
+ *pid = do_spawn (exec_file, exec_argv, exec_env, in, out, err, 1);
+diff --git libguile/symbols.c libguile/symbols.c
+index 02be7c1c4..086abf585 100644
+--- libguile/symbols.c
++++ libguile/symbols.c
+@@ -239,7 +239,7 @@ static SCM
+ scm_i_str2symbol (SCM str)
+ {
+ SCM symbol;
+- size_t raw_hash = scm_i_string_hash (str);
++ unsigned long raw_hash = scm_i_string_hash (str);
+
+ symbol = lookup_interned_symbol (str, raw_hash);
+ if (scm_is_true (symbol))
+@@ -261,7 +261,7 @@ scm_i_str2symbol (SCM str)
+ static SCM
+ scm_i_str2uninterned_symbol (SCM str)
+ {
+- size_t raw_hash = scm_i_string_hash (str);
++ unsigned long raw_hash = scm_i_string_hash (str);
+
+ return scm_i_make_symbol (str, SCM_I_F_SYMBOL_UNINTERNED, raw_hash);
+ }
+diff --git libguile/vm.c libguile/vm.c
+index b565db970..36138f0d5 100644
+--- libguile/vm.c
++++ libguile/vm.c
+@@ -1,4 +1,4 @@
+-/* Copyright 2001,2009-2015,2017-2020,2022
++/* Copyright 2001,2009-2015,2017-2020,2022-2023
+ Free Software Foundation, Inc.
+
+ This file is part of Guile.
+@@ -451,11 +451,12 @@ define_vm_builtins (void)
+
+ const uint32_t call_with_values_code[] = {
+ SCM_PACK_OP_24 (assert_nargs_ee, 3),
+- SCM_PACK_OP_24 (alloc_frame, 8),
+- SCM_PACK_OP_12_12 (mov, 0, 6),
+- SCM_PACK_OP_24 (call, 7), SCM_PACK_OP_ARG_8_24 (0, 1),
+- SCM_PACK_OP_24 (long_fmov, 0), SCM_PACK_OP_ARG_8_24 (0, 2),
+- SCM_PACK_OP_12_12 (shuffle_down, 7, 1),
++ SCM_PACK_OP_24 (alloc_frame, 6),
++ SCM_PACK_OP_12_12 (mov, 0, 4),
++ SCM_PACK_OP_12_12 (mov, 4, 3),
++ SCM_PACK_OP_24 (call, 5), SCM_PACK_OP_ARG_8_24 (0, 1),
++ SCM_PACK_OP_24 (long_fmov, 0), SCM_PACK_OP_ARG_8_24 (0, 1),
++ SCM_PACK_OP_12_12 (shuffle_down, 5, 1),
+ SCM_PACK_OP_24 (tail_call, 0)
+ };
+
+diff --git module/ice-9/copy-tree.scm module/ice-9/copy-tree.scm
+index e1d91ad9e..004167821 100644
+--- module/ice-9/copy-tree.scm
++++ module/ice-9/copy-tree.scm
+@@ -23,7 +23,6 @@
+
+
+ (define-module (ice-9 copy-tree)
+- #:use-module (ice-9 match)
+ #:use-module (srfi srfi-11)
+ #:replace (copy-tree))
+
+diff --git module/ice-9/eval-string.scm module/ice-9/eval-string.scm
+index 789980938..ea0f17777 100644
+--- module/ice-9/eval-string.scm
++++ module/ice-9/eval-string.scm
+@@ -21,7 +21,6 @@
+ (define-module (ice-9 eval-string)
+ #:use-module (system base compile)
+ #:use-module (system base language)
+- #:use-module (system vm program)
+ #:use-module (system vm loader)
+ #:replace (eval-string))
+
+diff --git module/ice-9/getopt-long.scm module/ice-9/getopt-long.scm
+index 14eaf8e23..18b235390 100644
+--- module/ice-9/getopt-long.scm
++++ module/ice-9/getopt-long.scm
+@@ -161,7 +161,6 @@
+ #:use-module (srfi srfi-9)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 regex)
+- #:use-module (ice-9 optargs)
+ #:export (getopt-long option-ref))
+
+ (define %program-name (make-fluid "guile"))
+diff --git module/ice-9/poll.scm module/ice-9/poll.scm
+index 57b5047ab..2688270ac 100644
+--- module/ice-9/poll.scm
++++ module/ice-9/poll.scm
+@@ -19,7 +19,6 @@
+
+ (define-module (ice-9 poll)
+ #:use-module (srfi srfi-9)
+- #:use-module (srfi srfi-9 gnu)
+ #:use-module (rnrs bytevectors)
+ #:export (make-empty-poll-set
+ poll-set?
+diff --git module/ice-9/popen.scm module/ice-9/popen.scm
+index e638726a4..957cde0aa 100644
+--- module/ice-9/popen.scm
++++ module/ice-9/popen.scm
+@@ -19,7 +19,6 @@
+ ;;;;
+
+ (define-module (ice-9 popen)
+- #:use-module (rnrs bytevectors)
+ #:use-module (ice-9 binary-ports)
+ #:use-module (ice-9 threads)
+ #:use-module (srfi srfi-1)
+diff --git module/ice-9/sandbox.scm module/ice-9/sandbox.scm
+index fcfc57365..601485cce 100644
+--- module/ice-9/sandbox.scm
++++ module/ice-9/sandbox.scm
+@@ -21,7 +21,6 @@
+ ;;; Code:
+
+ (define-module (ice-9 sandbox)
+- #:use-module (ice-9 control)
+ #:use-module (ice-9 match)
+ #:use-module ((ice-9 threads) #:select (current-thread))
+ #:use-module (system vm vm)
+diff --git module/ice-9/suspendable-ports.scm module/ice-9/suspendable-ports.scm
+index a823f1d37..9fac1df62 100644
+--- module/ice-9/suspendable-ports.scm
++++ module/ice-9/suspendable-ports.scm
+@@ -419,7 +419,7 @@
+ (= (logand u8_2 #xc0) #x80)
+ (case u8_0
+ ((#xe0) (>= u8_1 #xa0))
+- ((#xed) (>= u8_1 #x9f))
++ ((#xed) (<= u8_1 #x9f))
+ (else #t)))
+ (kt (integer->char
+ (logior (ash (logand u8_0 #x0f) 12)
+@@ -436,7 +436,7 @@
+ (= (logand u8_3 #xc0) #x80)
+ (case u8_0
+ ((#xf0) (>= u8_1 #x90))
+- ((#xf4) (>= u8_1 #x8f))
++ ((#xf4) (<= u8_1 #x8f))
+ (else #t)))
+ (kt (integer->char
+ (logior (ash (logand u8_0 #x07) 18)
+@@ -462,7 +462,7 @@
+ ((< buffering 2) 1)
+ ((not (= (logand (ref 1) #xc0) #x80)) 1)
+ ((and (eq? first-byte #xe0) (< (ref 1) #xa0)) 1)
+- ((and (eq? first-byte #xed) (< (ref 1) #x9f)) 1)
++ ((and (eq? first-byte #xed) (> (ref 1) #x9f)) 1)
+ ((< buffering 3) 2)
+ ((not (= (logand (ref 2) #xc0) #x80)) 2)
+ (else 0)))
+@@ -471,7 +471,7 @@
+ ((< buffering 2) 1)
+ ((not (= (logand (ref 1) #xc0) #x80)) 1)
+ ((and (eq? first-byte #xf0) (< (ref 1) #x90)) 1)
+- ((and (eq? first-byte #xf4) (< (ref 1) #x8f)) 1)
++ ((and (eq? first-byte #xf4) (> (ref 1) #x8f)) 1)
+ ((< buffering 3) 2)
+ ((not (= (logand (ref 2) #xc0) #x80)) 2)
+ ((< buffering 4) 3)
+diff --git module/ice-9/threads.scm module/ice-9/threads.scm
+index c42bd266f..5a13cec1d 100644
+--- module/ice-9/threads.scm
++++ module/ice-9/threads.scm
+@@ -31,7 +31,6 @@
+
+ (define-module (ice-9 threads)
+ #:use-module (ice-9 match)
+- #:use-module (ice-9 control)
+ ;; These bindings are marked as #:replace because when deprecated code
+ ;; is enabled, (ice-9 deprecated) also exports these names.
+ ;; (Referencing one of the deprecated names prints a warning directing
+diff --git module/sxml/apply-templates.scm module/sxml/apply-templates.scm
+index 0ee27477c..dd2742397 100644
+--- module/sxml/apply-templates.scm
++++ module/sxml/apply-templates.scm
+@@ -49,9 +49,7 @@
+ ;;; Code:
+
+ (define-module (sxml apply-templates)
+- #:use-module (sxml ssax)
+ #:use-module ((sxml xpath) :hide (filter))
+-
+ #:export (apply-templates))
+
+ (define (apply-templates tree templates)
+diff --git module/sxml/simple.scm module/sxml/simple.scm
+index 703ad9137..57fccbc9c 100644
+--- module/sxml/simple.scm
++++ module/sxml/simple.scm
+@@ -30,7 +30,6 @@
+ #:use-module (sxml ssax)
+ #:use-module (sxml transform)
+ #:use-module (ice-9 match)
+- #:use-module (srfi srfi-13)
+ #:export (xml->sxml sxml->xml sxml->string))
+
+ ;; Helpers from upstream/SSAX.scm.
+diff --git module/system/base/types.scm module/system/base/types.scm
+index b63febff8..7ed038d3a 100644
+--- module/system/base/types.scm
++++ module/system/base/types.scm
+@@ -20,7 +20,6 @@
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-9 gnu)
+- #:use-module (srfi srfi-11)
+ #:use-module (srfi srfi-26)
+ #:use-module (srfi srfi-60)
+ #:use-module (ice-9 match)
+diff --git module/system/repl/command.scm module/system/repl/command.scm
+index 0024fd165..74187270a 100644
+--- module/system/repl/command.scm
++++ module/system/repl/command.scm
+@@ -20,7 +20,6 @@
+ ;;; Code:
+
+ (define-module (system repl command)
+- #:use-module (system base syntax)
+ #:use-module (system base pmatch)
+ #:autoload (system base compile) (compile-file)
+ #:use-module (system repl common)
+@@ -31,14 +30,12 @@
+ #:use-module (system vm loader)
+ #:use-module (system vm program)
+ #:use-module (system vm trap-state)
+- #:use-module (system vm vm)
+ #:autoload (system base language) (lookup-language language-reader
+ language-title language-name)
+ #:autoload (system vm trace) (call-with-trace)
+ #:use-module (ice-9 format)
+ #:use-module (ice-9 session)
+ #:use-module (ice-9 documentation)
+- #:use-module (ice-9 and-let-star)
+ #:use-module (ice-9 rdelim)
+ #:use-module (ice-9 control)
+ #:use-module ((ice-9 pretty-print) #:select ((pretty-print . pp)))
+diff --git module/system/repl/common.scm module/system/repl/common.scm
+index 8c5426d37..59b5c494a 100644
+--- module/system/repl/common.scm
++++ module/system/repl/common.scm
+@@ -22,8 +22,6 @@
+ #:use-module (system base syntax)
+ #:use-module (system base compile)
+ #:use-module (system base language)
+- #:use-module (system base message)
+- #:use-module (system vm program)
+ #:use-module (system vm loader)
+ #:use-module (ice-9 control)
+ #:use-module (ice-9 copy-tree)
+diff --git module/system/repl/coop-server.scm module/system/repl/coop-server.scm
+index c29bbd645..aaab44f6e 100644
+--- module/system/repl/coop-server.scm
++++ module/system/repl/coop-server.scm
+@@ -21,7 +21,6 @@
+
+ (define-module (system repl coop-server)
+ #:use-module (ice-9 match)
+- #:use-module (ice-9 receive)
+ #:use-module (ice-9 threads)
+ #:use-module (ice-9 q)
+ #:use-module (srfi srfi-9)
+diff --git module/system/repl/debug.scm module/system/repl/debug.scm
+index 383d37921..c83241340 100644
+--- module/system/repl/debug.scm
++++ module/system/repl/debug.scm
+@@ -19,17 +19,11 @@
+ ;;; Code:
+
+ (define-module (system repl debug)
+- #:use-module (system base pmatch)
+ #:use-module (system base syntax)
+- #:use-module (system base language)
+- #:use-module (system vm vm)
+ #:use-module (system vm frame)
+ #:use-module (system vm debug)
+ #:use-module (ice-9 format)
+ #:use-module (ice-9 match)
+- #:use-module (ice-9 rdelim)
+- #:use-module (ice-9 pretty-print)
+- #:use-module ((system vm inspect) #:select ((inspect . %inspect)))
+ #:use-module (system vm program)
+ #:export (<debug>
+ make-debug debug?
+diff --git module/system/repl/error-handling.scm module/system/repl/error-handling.scm
+index 8d5a8a5f0..c12ca6f4a 100644
+--- module/system/repl/error-handling.scm
++++ module/system/repl/error-handling.scm
+@@ -20,7 +20,6 @@
+ ;;; Code:
+
+ (define-module (system repl error-handling)
+- #:use-module (system base pmatch)
+ #:use-module (system vm trap-state)
+ #:use-module (system repl debug)
+ #:use-module (ice-9 format)
+diff --git module/system/repl/repl.scm module/system/repl/repl.scm
+index 5b27125f1..d83d28759 100644
+--- module/system/repl/repl.scm
++++ module/system/repl/repl.scm
+@@ -21,11 +21,7 @@
+ ;;; Code:
+
+ (define-module (system repl repl)
+- #:use-module (system base syntax)
+- #:use-module (system base pmatch)
+- #:use-module (system base compile)
+ #:use-module (system base language)
+- #:use-module (system vm vm)
+ #:use-module (system repl error-handling)
+ #:use-module (system repl common)
+ #:use-module (system repl command)
+diff --git module/system/repl/server.scm module/system/repl/server.scm
+index 7a04affe9..9a8f51c5b 100644
+--- module/system/repl/server.scm
++++ module/system/repl/server.scm
+@@ -27,7 +27,6 @@
+ #:use-module (ice-9 iconv)
+ #:use-module (rnrs bytevectors)
+ #:use-module (ice-9 binary-ports)
+- #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26) ; cut
+ #:export (make-tcp-server-socket
+ make-unix-domain-server-socket
+diff --git module/system/vm/assembler.scm module/system/vm/assembler.scm
+index 165976363..33f3018f6 100644
+--- module/system/vm/assembler.scm
++++ module/system/vm/assembler.scm
+@@ -51,12 +51,10 @@
+ #:use-module (system syntax internal)
+ #:use-module (language bytecode)
+ #:use-module (rnrs bytevectors)
+- #:use-module (rnrs bytevectors gnu)
+ #:use-module (ice-9 binary-ports)
+ #:use-module (ice-9 vlist)
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-1)
+- #:use-module (srfi srfi-4)
+ #:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-11)
+ #:export (make-assembler
+diff --git module/system/vm/disassembler.scm module/system/vm/disassembler.scm
+index 2c9755ab9..ac1d21639 100644
+--- module/system/vm/disassembler.scm
++++ module/system/vm/disassembler.scm
+@@ -29,9 +29,7 @@
+ #:use-module (rnrs bytevectors)
+ #:use-module (ice-9 format)
+ #:use-module (ice-9 match)
+- #:use-module (ice-9 vlist)
+ #:use-module (srfi srfi-1)
+- #:use-module (srfi srfi-4)
+ #:export (disassemble-program
+ fold-program-code
+ disassemble-image
+diff --git module/system/vm/dwarf.scm module/system/vm/dwarf.scm
+index f3e45c758..587906c9e 100644
+--- module/system/vm/dwarf.scm
++++ module/system/vm/dwarf.scm
+@@ -71,8 +71,6 @@
+
+ (define-module (system vm dwarf)
+ #:use-module (rnrs bytevectors)
+- #:use-module (system foreign)
+- #:use-module (system base target)
+ #:use-module (system vm elf)
+ #:use-module ((srfi srfi-1) #:select (fold))
+ #:use-module (srfi srfi-9)
+diff --git module/system/vm/elf.scm module/system/vm/elf.scm
+index 6ee62f129..8cd142bbe 100644
+--- module/system/vm/elf.scm
++++ module/system/vm/elf.scm
+@@ -36,8 +36,6 @@
+ #:use-module (system foreign)
+ #:use-module (system base target)
+ #:use-module (srfi srfi-9)
+- #:use-module (ice-9 receive)
+- #:use-module (ice-9 vlist)
+ #:export (has-elf-header?
+
+ (make-elf* . make-elf)
+diff --git module/system/vm/frame.scm module/system/vm/frame.scm
+index 6b14fc62a..9218bf3b2 100644
+--- module/system/vm/frame.scm
++++ module/system/vm/frame.scm
+@@ -19,8 +19,6 @@
+ ;;; Code:
+
+ (define-module (system vm frame)
+- #:use-module (system base pmatch)
+- #:use-module (system foreign)
+ #:use-module (system vm program)
+ #:use-module (system vm debug)
+ #:use-module (system vm disassembler)
+diff --git module/system/vm/inspect.scm module/system/vm/inspect.scm
+index 1f6d99d19..4825fa234 100644
+--- module/system/vm/inspect.scm
++++ module/system/vm/inspect.scm
+@@ -19,12 +19,7 @@
+ ;;; Code:
+
+ (define-module (system vm inspect)
+- #:use-module (system base pmatch)
+- #:use-module (system base syntax)
+- #:use-module (system vm vm)
+- #:use-module (system vm frame)
+ #:use-module (system vm disassembler)
+- #:use-module (ice-9 rdelim)
+ #:use-module (ice-9 pretty-print)
+ #:use-module (ice-9 format)
+ #:use-module (system vm program)
+diff --git module/system/vm/linker.scm module/system/vm/linker.scm
+index e126cfb0d..cf213323e 100644
+--- module/system/vm/linker.scm
++++ module/system/vm/linker.scm
+@@ -67,9 +67,7 @@
+ (define-module (system vm linker)
+ #:use-module (rnrs bytevectors)
+ #:use-module (rnrs bytevectors gnu)
+- #:use-module (system foreign)
+ #:use-module (system base target)
+- #:use-module ((srfi srfi-1) #:select (append-map))
+ #:use-module (srfi srfi-9)
+ #:use-module (ice-9 binary-ports)
+ #:use-module (ice-9 receive)
+diff --git module/system/vm/program.scm module/system/vm/program.scm
+index e5dbcc089..4858d5158 100644
+--- module/system/vm/program.scm
++++ module/system/vm/program.scm
+@@ -21,7 +21,6 @@
+ (define-module (system vm program)
+ #:use-module (ice-9 match)
+ #:use-module (system vm debug)
+- #:use-module (rnrs bytevectors)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:export (source:addr source:line source:column source:file
+diff --git module/system/vm/trace.scm module/system/vm/trace.scm
+index 54840d8fd..c1eaffa9c 100644
+--- module/system/vm/trace.scm
++++ module/system/vm/trace.scm
+@@ -19,12 +19,9 @@
+ ;;; Code:
+
+ (define-module (system vm trace)
+- #:use-module (system base syntax)
+ #:use-module (system vm vm)
+ #:use-module (system vm frame)
+- #:use-module (system vm program)
+ #:use-module (system vm traps)
+- #:use-module (rnrs bytevectors)
+ #:use-module (ice-9 format)
+ #:export (trace-calls-in-procedure
+ trace-calls-to-procedure
+diff --git module/system/vm/trap-state.scm module/system/vm/trap-state.scm
+index 464740bcd..ba4cc6b31 100644
+--- module/system/vm/trap-state.scm
++++ module/system/vm/trap-state.scm
+@@ -26,7 +26,6 @@
+ #:use-module (system vm vm)
+ #:use-module (system vm traps)
+ #:use-module (system vm trace)
+- #:use-module (system vm frame)
+ #:use-module (system vm program)
+ #:export (add-trap!
+ list-traps
+diff --git module/system/vm/traps.scm module/system/vm/traps.scm
+index 76be8d7d3..cd0e13cc9 100644
+--- module/system/vm/traps.scm
++++ module/system/vm/traps.scm
+@@ -58,10 +58,8 @@
+ #:use-module (ice-9 match)
+ #:use-module (system vm vm)
+ #:use-module (system vm debug)
+- #:use-module (system vm frame)
+ #:use-module (system vm program)
+ #:use-module (system xref)
+- #:use-module (rnrs bytevectors)
+ #:export (trap-at-procedure-call
+ trap-in-procedure
+ trap-instructions-in-procedure
+diff --git module/system/xref.scm module/system/xref.scm
+index e335f9481..104bf3edf 100644
+--- module/system/xref.scm
++++ module/system/xref.scm
+@@ -17,7 +17,6 @@
+
+
+ (define-module (system xref)
+- #:use-module (system base compile)
+ #:use-module (system vm program)
+ #:use-module (system vm disassembler)
+ #:use-module (ice-9 match)
+diff --git module/texinfo/indexing.scm module/texinfo/indexing.scm
+index d7d10cd69..c77013d7d 100644
+--- module/texinfo/indexing.scm
++++ module/texinfo/indexing.scm
+@@ -29,7 +29,6 @@
+
+ (define-module (texinfo indexing)
+ #:use-module (sxml simple)
+- #:use-module (srfi srfi-13)
+ #:export (stexi-extract-index))
+
+ (define defines
+diff --git module/texinfo/plain-text.scm module/texinfo/plain-text.scm
+index 5ea99c86b..666df74f5 100644
+--- module/texinfo/plain-text.scm
++++ module/texinfo/plain-text.scm
+@@ -26,11 +26,8 @@
+ ;;; Code:
+
+ (define-module (texinfo plain-text)
+- #:use-module (texinfo)
+ #:use-module (texinfo string-utils)
+- #:use-module (sxml transform)
+ #:use-module (srfi srfi-1)
+- #:use-module (srfi srfi-13)
+ #:use-module (ice-9 match)
+ #:export (stexi->plain-text
+ *line-width*))
+diff --git module/texinfo/reflection.scm module/texinfo/reflection.scm
+index 50cb2ab05..4ff11995c 100644
+--- module/texinfo/reflection.scm
++++ module/texinfo/reflection.scm
+@@ -33,10 +33,8 @@
+ #:use-module (oop goops)
+ #:use-module (texinfo)
+ #:use-module (texinfo plain-text)
+- #:use-module (srfi srfi-13)
+ #:use-module (ice-9 session)
+ #:use-module (ice-9 documentation)
+- #:use-module (ice-9 optargs)
+ #:use-module ((sxml transform) #:select (pre-post-order))
+ #:export (module-stexi-documentation
+ script-stexi-documentation
+diff --git module/texinfo/string-utils.scm module/texinfo/string-utils.scm
+index 42074d334..0d2c994d7 100644
+--- module/texinfo/string-utils.scm
++++ module/texinfo/string-utils.scm
+@@ -24,8 +24,6 @@
+ ;;; Code:
+
+ (define-module (texinfo string-utils)
+- #:use-module (srfi srfi-13)
+- #:use-module (srfi srfi-14)
+ #:export (escape-special-chars
+ transform-string
+ expand-tabs
+diff --git module/web/client.scm module/web/client.scm
+index a08c4203c..6c54c5021 100644
+--- module/web/client.scm
++++ module/web/client.scm
+@@ -36,7 +36,6 @@
+ #:use-module (ice-9 binary-ports)
+ #:use-module (ice-9 copy-tree)
+ #:use-module (ice-9 iconv)
+- #:use-module (ice-9 rdelim)
+ #:use-module (web request)
+ #:use-module (web response)
+ #:use-module (web uri)
+@@ -45,8 +44,6 @@
+ #:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-9 gnu)
+ #:use-module (srfi srfi-26)
+- #:use-module ((rnrs io ports)
+- #:prefix rnrs-ports:)
+ #:use-module (ice-9 match)
+ #:autoload (ice-9 ftw) (scandir)
+ #:export (current-http-proxy
+diff --git module/web/http.scm module/web/http.scm
+index 29736f2eb..94f9c7ea8 100644
+--- module/web/http.scm
++++ module/web/http.scm
+@@ -30,7 +30,6 @@
+ ;;; Code:
+
+ (define-module (web http)
+- #:use-module ((srfi srfi-1) #:select (append-map! map!))
+ #:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-19)
+ #:use-module (ice-9 rdelim)
+@@ -39,7 +38,6 @@
+ #:use-module (ice-9 binary-ports)
+ #:use-module (ice-9 textual-ports)
+ #:use-module (ice-9 exceptions)
+- #:use-module (rnrs bytevectors)
+ #:use-module (web uri)
+ #:export (string->header
+ header->string
+diff --git module/web/request.scm module/web/request.scm
+index eea32e9ce..ff4b94485 100644
+--- module/web/request.scm
++++ module/web/request.scm
+@@ -23,7 +23,6 @@
+ #:use-module (rnrs bytevectors)
+ #:use-module (ice-9 binary-ports)
+ #:use-module (ice-9 textual-ports)
+- #:use-module (ice-9 rdelim)
+ #:use-module (srfi srfi-9)
+ #:use-module (web uri)
+ #:use-module (web http)
+diff --git module/web/response.scm module/web/response.scm
+index 06e1c6dc1..4ac4d74ca 100644
+--- module/web/response.scm
++++ module/web/response.scm
+@@ -20,10 +20,8 @@
+ ;;; Code:
+
+ (define-module (web response)
+- #:use-module (rnrs bytevectors)
+ #:use-module (ice-9 binary-ports)
+ #:use-module (ice-9 textual-ports)
+- #:use-module (ice-9 rdelim)
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-9)
+ #:use-module (web http)
diff --git a/lang/guile3/files/patch-configure b/lang/guile3/files/patch-configure
new file mode 100644
--- /dev/null
+++ b/lang/guile3/files/patch-configure
@@ -0,0 +1,18 @@
+--- configure.orig 2023-05-25 12:23:46 UTC
++++ configure
+@@ -60073,6 +60073,15 @@ then :
+
+ fi
+
++ac_fn_c_check_func "$LINENO" "posix_spawn_file_actions_addclosefrom_np" "ac_cv_func_posix_spawn_file_actions_addclosefrom_np"
++if test "x$ac_cv_func_posix_spawn_file_actions_addclosefrom_np" = xyes
++then :
++ printf "%s\n" "#define HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSEFROM_NP 1" >>confdefs.h
++
++fi
++
++
++
+
+ # The newlib C library uses _NL_ prefixed locale langinfo constants.
+ ac_fn_check_decl "$LINENO" "_NL_NUMERIC_GROUPING" "ac_cv_have_decl__NL_NUMERIC_GROUPING" "#include <langinfo.h>
diff --git a/lang/guile3/files/patch-libguile_Makefile.in b/lang/guile3/files/patch-libguile_Makefile.in
new file mode 100644
--- /dev/null
+++ b/lang/guile3/files/patch-libguile_Makefile.in
@@ -0,0 +1,20 @@
+--- libguile/Makefile.in.orig 2023-05-16 18:13:33 UTC
++++ libguile/Makefile.in
+@@ -2535,7 +2535,7 @@ EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES =
+ mini-gmp.h
+
+ INSTANTIATE = \
+- $(SED) -i -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
++ $(SED) -i '' -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
+ -e 's,[@]pkglibdir[@],$(pkglibdir),g' \
+ -e 's,[@]GUILE_EFFECTIVE_VERSION[@],$(GUILE_EFFECTIVE_VERSION),g'
+
+@@ -4633,7 +4633,7 @@ uninstall-hook:
+ @MINGW_LIBPATH_FALSE@ @echo ' { "LIBS", "@GUILE_LIBS@" }, \' >> libpath.tmp
+ @MINGW_LIBPATH_FALSE@ @echo ' { "CFLAGS", "@GUILE_CFLAGS@" }, \' >> libpath.tmp
+ @MINGW_LIBPATH_FALSE@ @BUILD_DATE="$${SOURCE_DATE_EPOCH:-`date '+%s'`}" ; \
+-@MINGW_LIBPATH_FALSE@ echo ' { "buildstamp", "'`date -u +'%Y-%m-%d %T' -d @$$BUILD_DATE`'" }, \' >> libpath.tmp
++@MINGW_LIBPATH_FALSE@ echo ' { "buildstamp", "'`date -j -u -f %s $$BUILD_DATE +'%Y-%m-%d %T'`'" }, \' >> libpath.tmp
+ @MINGW_LIBPATH_FALSE@ @echo '}' >> libpath.tmp
+ @MINGW_LIBPATH_FALSE@ $(AM_V_GEN)mv libpath.tmp libpath.h
+
diff --git a/lang/guile3/files/patch-libguile_gen-scmconfig.c b/lang/guile3/files/patch-libguile_gen-scmconfig.c
new file mode 100644
--- /dev/null
+++ b/lang/guile3/files/patch-libguile_gen-scmconfig.c
@@ -0,0 +1,13 @@
+--- libguile/gen-scmconfig.c.orig 2021-03-09 19:24:59 UTC
++++ libguile/gen-scmconfig.c
+@@ -343,6 +343,10 @@ main (int argc, char *argv[])
+ pf ("typedef int scm_t_off;\n");
+ pf ("#define SCM_T_OFF_MAX INT_MAX\n");
+ pf ("#define SCM_T_OFF_MIN INT_MIN\n");
++#elif SIZEOF_OFF_T == SIZEOF_LONG_LONG
++ pf ("typedef long long int scm_t_off;\n");
++ pf ("#define SCM_T_OFF_MAX LLONG_MAX\n");
++ pf ("#define SCM_T_OFF_MIN LLONG_MIN\n");
+ #else
+ pf ("typedef long int scm_t_off;\n");
+ pf ("#define SCM_T_OFF_MAX LONG_MAX\n");
diff --git a/lang/guile/pkg-descr b/lang/guile3/pkg-descr
rename from lang/guile/pkg-descr
rename to lang/guile3/pkg-descr
diff --git a/lang/guile/pkg-plist b/lang/guile3/pkg-plist
rename from lang/guile/pkg-plist
rename to lang/guile3/pkg-plist
--- a/lang/guile/pkg-plist
+++ b/lang/guile3/pkg-plist
@@ -1,8 +1,13 @@
-bin/guild
-bin/guile
-bin/guile-config
-bin/guile-snarf
-bin/guile-tools
+bin/guild%%GUILE_SFX%%
+bin/guile-config%%GUILE_SFX%%
+bin/guile-snarf%%GUILE_SFX%%
+bin/guile-tools%%GUILE_SFX%%
+bin/guile%%GUILE_SFX%%
+bin/guild-%%GUILE_VER%%
+bin/guile-config-%%GUILE_VER%%
+bin/guile-snarf-%%GUILE_VER%%
+bin/guile-tools-%%GUILE_VER%%
+bin/guile-%%GUILE_VER%%
include/guile/%%GUILE_VER%%/libguile.h
include/guile/%%GUILE_VER%%/libguile/__scm.h
include/guile/%%GUILE_VER%%/libguile/alist.h
@@ -130,7 +135,6 @@
include/guile/%%GUILE_VER%%/libguile/weak-table.h
include/guile/%%GUILE_VER%%/libguile/weak-vector.h
include/guile/%%GUILE_VER%%/readline.h
-@comment lib/charset.alias
lib/guile/%%GUILE_VER%%/ccache/ice-9/and-let-star.go
lib/guile/%%GUILE_VER%%/ccache/ice-9/arrays.go
lib/guile/%%GUILE_VER%%/ccache/ice-9/atomic.go
@@ -341,15 +345,12 @@
lib/guile/%%GUILE_VER%%/ccache/scheme/repl.go
lib/guile/%%GUILE_VER%%/ccache/scheme/time.go
lib/guile/%%GUILE_VER%%/ccache/scheme/write.go
-lib/guile/%%GUILE_VER%%/ccache/system/base/optimize.go
-lib/guile/%%GUILE_VER%%/ccache/system/base/types/internal.go
lib/guile/%%GUILE_VER%%/ccache/scripts/api-diff.go
lib/guile/%%GUILE_VER%%/ccache/scripts/autofrisk.go
lib/guile/%%GUILE_VER%%/ccache/scripts/compile.go
lib/guile/%%GUILE_VER%%/ccache/scripts/disassemble.go
lib/guile/%%GUILE_VER%%/ccache/scripts/display-commentary.go
lib/guile/%%GUILE_VER%%/ccache/scripts/doc-snarf.go
-lib/guile/%%GUILE_VER%%/ccache/system/foreign-library.go
lib/guile/%%GUILE_VER%%/ccache/scripts/frisk.go
lib/guile/%%GUILE_VER%%/ccache/scripts/generate-autoload.go
lib/guile/%%GUILE_VER%%/ccache/scripts/help.go
@@ -418,10 +419,13 @@
lib/guile/%%GUILE_VER%%/ccache/system/base/lalr.go
lib/guile/%%GUILE_VER%%/ccache/system/base/language.go
lib/guile/%%GUILE_VER%%/ccache/system/base/message.go
+lib/guile/%%GUILE_VER%%/ccache/system/base/optimize.go
lib/guile/%%GUILE_VER%%/ccache/system/base/pmatch.go
lib/guile/%%GUILE_VER%%/ccache/system/base/syntax.go
lib/guile/%%GUILE_VER%%/ccache/system/base/target.go
lib/guile/%%GUILE_VER%%/ccache/system/base/types.go
+lib/guile/%%GUILE_VER%%/ccache/system/base/types/internal.go
+lib/guile/%%GUILE_VER%%/ccache/system/foreign-library.go
lib/guile/%%GUILE_VER%%/ccache/system/foreign-object.go
lib/guile/%%GUILE_VER%%/ccache/system/foreign.go
lib/guile/%%GUILE_VER%%/ccache/system/repl/command.go
@@ -473,8 +477,8 @@
lib/libguile-%%GUILE_VER%%.so.1.6.0
lib/libguile-%%GUILE_VER%%.so.1.6.0-gdb.scm
libdata/pkgconfig/guile-%%GUILE_VER%%.pc
-man/man1/guile.1.gz
-share/aclocal/guile.m4
+man/man1/guile%%GUILE_SFX%%.1.gz
+@comment share/aclocal/guile.m4
%%DATADIR%%/%%GUILE_VER%%/guile-procedures.txt
%%DATADIR%%/%%GUILE_VER%%/ice-9/and-let-star.scm
%%DATADIR%%/%%GUILE_VER%%/ice-9/arrays.scm
@@ -692,8 +696,6 @@
%%DATADIR%%/%%GUILE_VER%%/scheme/repl.scm
%%DATADIR%%/%%GUILE_VER%%/scheme/time.scm
%%DATADIR%%/%%GUILE_VER%%/scheme/write.scm
-%%DATADIR%%/%%GUILE_VER%%/system/base/optimize.scm
-%%DATADIR%%/%%GUILE_VER%%/system/base/types/internal.scm
%%DATADIR%%/%%GUILE_VER%%/scripts/api-diff.scm
%%DATADIR%%/%%GUILE_VER%%/scripts/autofrisk.scm
%%DATADIR%%/%%GUILE_VER%%/scripts/compile.scm
@@ -778,10 +780,12 @@
%%DATADIR%%/%%GUILE_VER%%/system/base/lalr.upstream.scm
%%DATADIR%%/%%GUILE_VER%%/system/base/language.scm
%%DATADIR%%/%%GUILE_VER%%/system/base/message.scm
+%%DATADIR%%/%%GUILE_VER%%/system/base/optimize.scm
%%DATADIR%%/%%GUILE_VER%%/system/base/pmatch.scm
%%DATADIR%%/%%GUILE_VER%%/system/base/syntax.scm
%%DATADIR%%/%%GUILE_VER%%/system/base/target.scm
%%DATADIR%%/%%GUILE_VER%%/system/base/types.scm
+%%DATADIR%%/%%GUILE_VER%%/system/base/types/internal.scm
%%DATADIR%%/%%GUILE_VER%%/system/foreign-library.scm
%%DATADIR%%/%%GUILE_VER%%/system/foreign-object.scm
%%DATADIR%%/%%GUILE_VER%%/system/foreign.scm
diff --git a/lang/mdk/Makefile b/lang/mdk/Makefile
--- a/lang/mdk/Makefile
+++ b/lang/mdk/Makefile
@@ -22,8 +22,7 @@
OPTIONS_SUB= yes
GUILE_CONFIGURE_WITH= guile
-GUILE_LIB_DEPENDS= libguile-2.2.so:lang/guile2 \
- libgc-threaded.so:devel/boehm-gc-threaded
+GUILE_USES= guile:2.2
NLS_CONFIGURE_ENABLE= nls
diff --git a/lang/slib-guile/Makefile b/lang/slib-guile/Makefile
--- a/lang/slib-guile/Makefile
+++ b/lang/slib-guile/Makefile
@@ -1,21 +1,26 @@
PORTNAME= slib
PORTVERSION= 3b6 # Keep this in sync with lang/slib
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= lang scheme
MASTER_SITES= # empty
-PKGNAMESUFFIX= -guile
+PKGNAMESUFFIX= -${FLAVOR}
DISTFILES= # empty
MAINTAINER= bofh@FreeBSD.org
COMMENT= SLIB installation for Guile
+WWW= https://people.csail.mit.edu/jaffer/SLIB.html
-BUILD_DEPENDS= ${LOCALBASE}/share/slib/require.scm:lang/slib \
- guile:lang/guile
-RUN_DEPENDS:= ${BUILD_DEPENDS}
+BUILD_DEPENDS= ${LOCALBASE}/share/slib/require.scm:lang/slib
+RUN_DEPENDS= ${LOCALBASE}/share/slib/require.scm:lang/slib
+
+USES= guile:1.8,2.2,3.0,flavors,build,run
-SUB_FILES+= pkg-install pkg-deinstall
NO_ARCH= yes
NO_BUILD= yes
NO_INSTALL= yes
+SUB_FILES+= pkg-install pkg-deinstall
+SUB_LIST+= GUILE_VER=${GUILE_VER} \
+ SLIB_INIT=${${GUILE_SFX} >= 2:?guile-2.init:guile.init}
+
.include <bsd.port.mk>
diff --git a/lang/slib-guile/files/pkg-deinstall.in b/lang/slib-guile/files/pkg-deinstall.in
--- a/lang/slib-guile/files/pkg-deinstall.in
+++ b/lang/slib-guile/files/pkg-deinstall.in
@@ -2,7 +2,7 @@
case "$2" in
"POST-DEINSTALL")
- rm -f %%LOCALBASE%%/share/guile/3.0/slib
- rm -f %%LOCALBASE%%/share/guile/3.0/slibcat
+ rm -f %%LOCALBASE%%/share/guile/%%GUILE_VER%%/slib
+ rm -f %%LOCALBASE%%/share/guile/%%GUILE_VER%%/slibcat
;;
esac
diff --git a/lang/slib-guile/files/pkg-install.in b/lang/slib-guile/files/pkg-install.in
--- a/lang/slib-guile/files/pkg-install.in
+++ b/lang/slib-guile/files/pkg-install.in
@@ -2,7 +2,7 @@
case "$2" in
"POST-INSTALL")
- ln -shf %%LOCALBASE%%/share/slib %%LOCALBASE%%/share/guile/3.0/slib
- env GUILE_IMPLEMENTATION_PATH=%%LOCALBASE%%/share/guile/3.0 %%LOCALBASE%%/bin/guile -q --no-auto-compile -l %%LOCALBASE%%/share/slib/guile.init -c "(use-modules (ice-9 slib))(require 'new-catalog)"
+ ln -shf %%LOCALBASE%%/share/slib %%LOCALBASE%%/share/guile/%%GUILE_VER%%/slib
+ env GUILE_IMPLEMENTATION_PATH=%%LOCALBASE%%/share/guile/%%GUILE_VER%% GUILE_AUTO_COMPILE=0 %%LOCALBASE%%/bin/guile-%%GUILE_VER%% -q -l %%LOCALBASE%%/share/slib/%%SLIB_INIT%% -c "(use-modules (ice-9 slib))(require 'new-catalog)"
;;
esac
diff --git a/lang/slib-guile1/Makefile b/lang/slib-guile1/Makefile
deleted file mode 100644
--- a/lang/slib-guile1/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-PORTNAME= slib
-PORTVERSION= 3b6 # Keep this in sync with lang/slib
-CATEGORIES= lang scheme
-MASTER_SITES= # empty
-PKGNAMESUFFIX= -guile1
-DISTFILES= # empty
-
-MAINTAINER= bofh@FreeBSD.org
-COMMENT= SLIB installation for Guile1
-
-BUILD_DEPENDS= ${LOCALBASE}/share/slib/require.scm:lang/slib \
- guile:lang/guile1
-RUN_DEPENDS:= ${BUILD_DEPENDS}
-
-SUB_FILES+= pkg-install pkg-deinstall
-NO_ARCH= yes
-NO_BUILD= yes
-NO_INSTALL= yes
-
-.include <bsd.port.mk>
diff --git a/lang/slib-guile1/files/pkg-deinstall.in b/lang/slib-guile1/files/pkg-deinstall.in
deleted file mode 100644
--- a/lang/slib-guile1/files/pkg-deinstall.in
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-case "$2" in
-"POST-DEINSTALL")
- rm -f %%LOCALBASE%%/share/guile/1.8/slib
- rm -f %%LOCALBASE%%/share/guile/1.8/slibcat
- ;;
-esac
diff --git a/lang/slib-guile1/files/pkg-install.in b/lang/slib-guile1/files/pkg-install.in
deleted file mode 100644
--- a/lang/slib-guile1/files/pkg-install.in
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-case "$2" in
-"POST-INSTALL")
- ln -shf %%LOCALBASE%%/share/slib %%LOCALBASE%%/share/guile/1.8/slib
- env GUILE_IMPLEMENTATION_PATH=%%LOCALBASE%%/share/guile/1.8 %%LOCALBASE%%/bin/guile -q -l %%LOCALBASE%%/share/slib/guile.init -c "(use-modules (ice-9 slib))(require 'new-catalog)"
- ;;
-esac
diff --git a/lang/slib-guile1/pkg-descr b/lang/slib-guile1/pkg-descr
deleted file mode 100644
--- a/lang/slib-guile1/pkg-descr
+++ /dev/null
@@ -1,4 +0,0 @@
-To use the features offered by the SLIB library, add the following
-construct to your programs:
-
- (use-modules (ice-9 slib))
diff --git a/lang/slib-guile2/Makefile b/lang/slib-guile2/Makefile
deleted file mode 100644
--- a/lang/slib-guile2/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-PORTNAME= slib
-PORTVERSION= 3b6 # Keep this in sync with lang/slib
-CATEGORIES= lang scheme
-MASTER_SITES= # empty
-PKGNAMESUFFIX= -guile2
-DISTFILES= # empty
-
-MAINTAINER= bofh@FreeBSD.org
-COMMENT= SLIB installation for Guile
-
-BUILD_DEPENDS= ${LOCALBASE}/share/slib/require.scm:lang/slib \
- guile:lang/guile2
-RUN_DEPENDS:= ${BUILD_DEPENDS}
-
-SUB_FILES+= pkg-install pkg-deinstall
-NO_ARCH= yes
-NO_BUILD= yes
-NO_INSTALL= yes
-
-.include <bsd.port.mk>
diff --git a/lang/slib-guile2/files/pkg-deinstall.in b/lang/slib-guile2/files/pkg-deinstall.in
deleted file mode 100644
--- a/lang/slib-guile2/files/pkg-deinstall.in
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-case "$2" in
-"POST-DEINSTALL")
- rm -f %%LOCALBASE%%/share/guile/2.2/slib
- rm -f %%LOCALBASE%%/share/guile/2.2/slibcat
- ;;
-esac
diff --git a/lang/slib-guile2/files/pkg-install.in b/lang/slib-guile2/files/pkg-install.in
deleted file mode 100644
--- a/lang/slib-guile2/files/pkg-install.in
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-case "$2" in
-"POST-INSTALL")
- ln -shf %%LOCALBASE%%/share/slib %%LOCALBASE%%/share/guile/2.2/slib
- env GUILE_IMPLEMENTATION_PATH=%%LOCALBASE%%/share/guile/2.2 GUILE_AUTO_COMPILE=0 %%LOCALBASE%%/bin/guile -q -l %%LOCALBASE%%/share/slib/guile-2.init -c "(use-modules (ice-9 slib))(require 'new-catalog)"
- ;;
-esac
diff --git a/lang/slib-guile2/pkg-descr b/lang/slib-guile2/pkg-descr
deleted file mode 100644
--- a/lang/slib-guile2/pkg-descr
+++ /dev/null
@@ -1,4 +0,0 @@
-To use the features offered by the SLIB library, add the following
-construct to your programs:
-
- (use-modules (ice-9 slib))
diff --git a/mail/anubis/Makefile b/mail/anubis/Makefile
--- a/mail/anubis/Makefile
+++ b/mail/anubis/Makefile
@@ -1,6 +1,6 @@
PORTNAME= anubis
PORTVERSION= 4.2
-PORTREVISION= 16
+PORTREVISION= 17
CATEGORIES= mail
MASTER_SITES= GNU
@@ -60,9 +60,7 @@
GSASL_LIB_DEPENDS= libgsasl.so:security/libgsasl
GSASL_CONFIGURE_WITH= gsasl
-GUILE_LIB_DEPENDS= libltdl.so:devel/libltdl \
- libguile.so:lang/guile1 \
- libgmp.so:math/gmp
+GUILE_USES= guile:1.8
GUILE_CONFIGURE_WITH= guile
GUILE_PORTEXAMPLES= anubis.scm anubisrc.guile
diff --git a/mail/anubis/files/patch-src_Makefile.am b/mail/anubis/files/patch-src_Makefile.am
--- a/mail/anubis/files/patch-src_Makefile.am
+++ b/mail/anubis/files/patch-src_Makefile.am
@@ -21,3 +21,12 @@
if TLS_COND
TLS_C=tls.c
+@@ -99,7 +99,7 @@ BUILT_SOURCES = env.c
+
+ localedir = $(datadir)/locale
+ DEFS = @DEFS@ -DLOCALEDIR=\"$(localedir)\"
+-AM_CPPFLAGS = @ADD_INCLUDES@ @LIBGNUTLS_INCLUDES@ -I$(top_srcdir)/lib
++AM_CPPFLAGS = @ADD_INCLUDES@ @LIBGNUTLS_INCLUDES@ @GUILE_INCLUDES@ -I$(top_srcdir)/lib
+ SUFFIXES=.opt .c
+
+ .opt.c:
diff --git a/mail/mailutils/Makefile b/mail/mailutils/Makefile
--- a/mail/mailutils/Makefile
+++ b/mail/mailutils/Makefile
@@ -51,8 +51,7 @@
GSSAPI_USES= ssl
GSSAPI_CONFIGURE_WITH= gssapi
-GUILE_LIB_DEPENDS= libguile-2.2.so:lang/guile2 libgmp.so:math/gmp
-GUILE_USES= makeinfo pkgconfig
+GUILE_USES= guile:2.2,alias makeinfo pkgconfig
GUILE_CONFIGURE_WITH= guile
MH_CONFIGURE_ENV= ac_cv_prog_EMACS=no
diff --git a/mail/mu/Makefile b/mail/mu/Makefile
--- a/mail/mu/Makefile
+++ b/mail/mu/Makefile
@@ -1,6 +1,6 @@
PORTNAME= mu
PORTVERSION= 1.8.13
-PORTREVISION= 1
+PORTREVISION= 2
DISTVERSIONPREFIX= v
CATEGORIES= mail
@@ -30,7 +30,7 @@
OPTIONS_DEFAULT= DOCS GUILE
OPTIONS_SUB= yes
-GUILE_LIB_DEPENDS= libguile-3.0.so:lang/guile
+GUILE_USES= guile:3.0
GUILE_USE= ldconfig=yes
GUILE_CONFIGURE_ENABLE= guile
GUILE_INFO= mu-guile
diff --git a/math/drgeo/Makefile b/math/drgeo/Makefile
--- a/math/drgeo/Makefile
+++ b/math/drgeo/Makefile
@@ -1,6 +1,6 @@
PORTNAME= drgeo
PORTVERSION= 1.1.0
-PORTREVISION= 25
+PORTREVISION= 26
CATEGORIES= math
MASTER_SITES= SF/ofset/${PORTNAME}/${PORTVERSION}
@@ -11,10 +11,8 @@
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
-LIB_DEPENDS= libguile.so:lang/guile1
-
-USES= compiler:c++11-lang gettext gmake gnome localbase:ldflags \
- pathfix pkgconfig
+USES= compiler:c++11-lang gettext gmake gnome guile:1.8 \
+ localbase:ldflags pathfix pkgconfig
GNU_CONFIGURE= yes
USE_GNOME= gnomeprefix intlhack libglade2
diff --git a/math/drgeo/files/patch-geo_Makefile.in b/math/drgeo/files/patch-geo_Makefile.in
new file mode 100644
--- /dev/null
+++ b/math/drgeo/files/patch-geo_Makefile.in
@@ -0,0 +1,12 @@
+--- geo/Makefile.in.orig 2023-05-25 10:21:18 UTC
++++ geo/Makefile.in
+@@ -192,7 +192,8 @@ INCLUDES = \
+ -DDRGEO_GLADEDIR=\""$(gladedir)"\" \
+ -DDRGEO_ENCODEDIR=\""$(encodedir)"\" \
+ -I$(includedir) \
+- $(DRGEO_CFLAGS)
++ $(DRGEO_CFLAGS) \
++ $(GUILE_CFLAGS)
+
+
+ noinst_LIBRARIES = libgeo.a
diff --git a/math/nlopt/Makefile b/math/nlopt/Makefile
--- a/math/nlopt/Makefile
+++ b/math/nlopt/Makefile
@@ -1,7 +1,7 @@
PORTNAME= nlopt
DISTVERSIONPREFIX= v
DISTVERSION= 2.7.1
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= math
MAINTAINER= rhurlin@FreeBSD.org
@@ -17,11 +17,10 @@
BUILD_DEPENDS= swig:devel/swig \
${PYNUMPY}
-LIB_DEPENDS= libgmp.so:math/gmp \
- libguile-2.2.so:lang/guile2
RUN_DEPENDS= ${PYNUMPY}
-USES= cmake:testing compiler:features localbase pathfix pkgconfig python
+USES= cmake:testing compiler:features guile:2.2,alias localbase \
+ pathfix pkgconfig python
USE_GITHUB= yes
GH_ACCOUNT= stevengj
diff --git a/net-im/freetalk/Makefile b/net-im/freetalk/Makefile
--- a/net-im/freetalk/Makefile
+++ b/net-im/freetalk/Makefile
@@ -13,12 +13,10 @@
LICENSE_FILE_GFDL= ${WRKSRC}/doc/fdl-1.3.texi
LIB_DEPENDS= libargp.so:devel/argp-standalone \
- libloudmouth-1.so:net-im/loudmouth \
- libguile-2.2.so:lang/guile2 \
- libgc-threaded.so:devel/boehm-gc-threaded
+ libloudmouth-1.so:net-im/loudmouth
-USES= autoreconf gettext-runtime gnome localbase makeinfo \
- ncurses pkgconfig readline
+USES= autoreconf gettext-runtime gnome guile:2.2 localbase \
+ makeinfo ncurses pkgconfig readline
USE_GNOME= glib20
GNU_CONFIGURE= yes
diff --git a/net/gnu-dico/Makefile b/net/gnu-dico/Makefile
--- a/net/gnu-dico/Makefile
+++ b/net/gnu-dico/Makefile
@@ -1,6 +1,6 @@
PORTNAME= dico
PORTVERSION= 2.10
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net textproc
MASTER_SITES= GNU
PKGNAMEPREFIX= gnu-
@@ -35,8 +35,8 @@
GSASL_LIB_DEPENDS= libgsasl.so:security/libgsasl
GSASL_CONFIGURE_WITH= gsasl
-GUILE_LIB_DEPENDS= libguile-2.2.so:lang/guile2
-GUILE_CONFIGURE_OFF= --without-guile
+GUILE_USES= guile:2.2,alias
+GUILE_CONFIGURE_WITH= guile
LDAP_USES= ldap
LDAP_CONFIGURE_OFF= --without-ldap
diff --git a/net/gnu-radius/Makefile b/net/gnu-radius/Makefile
--- a/net/gnu-radius/Makefile
+++ b/net/gnu-radius/Makefile
@@ -1,6 +1,6 @@
PORTNAME= gnu-radius
PORTVERSION= 1.6.1
-PORTREVISION= 15
+PORTREVISION= 16
CATEGORIES= net
MASTER_SITES= GNU/radius
DISTNAME= radius-${PORTVERSION}
@@ -44,7 +44,7 @@
SNMP_CONFIGURE_ENABLE= snmp
CLIENT_CONFIGURE_ENABLE= client
-CLIENT_LIB_DEPENDS= libguile.so:lang/guile1
+CLIENT_USES= guile:1.8,alias
CLIENT_CONFIGURE_OFF= --without-guile
MYSQL_USES= mysql
MYSQL_CONFIGURE_WITH= mysql
diff --git a/net/serveez/Makefile b/net/serveez/Makefile
--- a/net/serveez/Makefile
+++ b/net/serveez/Makefile
@@ -1,6 +1,6 @@
PORTNAME= serveez
PORTVERSION= 0.2.2
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= net devel
MASTER_SITES= GNU
@@ -14,9 +14,7 @@
BROKEN_FreeBSD_13= ld: error: duplicate symbol: guile_global_error
BROKEN_FreeBSD_14= ld: error: duplicate symbol: guile_global_error
-LIB_DEPENDS= libguile.so:lang/guile1
-
-USES= cpe tar:xz libtool
+USES= cpe guile:1.8 tar:xz libtool
CPE_VENDOR= gnu
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-libserveez-install
diff --git a/print/lilypond-devel/Makefile b/print/lilypond-devel/Makefile
--- a/print/lilypond-devel/Makefile
+++ b/print/lilypond-devel/Makefile
@@ -23,16 +23,13 @@
zip:archivers/zip
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
- libgc-threaded.so:devel/boehm-gc-threaded \
- libgmp.so:math/gmp \
- libguile-2.2.so:lang/guile2 \
libharfbuzz.so:print/harfbuzz \
libltdl.so:devel/libltdl
RUN_DEPENDS= ${LOCALBASE}/share/fonts/dejavu/DejaVuSans-Bold.ttf:x11-fonts/dejavu \
mftrace:print/mftrace
USES= bison:build compiler:c++11-lib cpe ghostscript gmake gnome \
- magick:7,build perl5 pkgconfig python:3.5+
+ guile:2.2 magick:7,build perl5 pkgconfig python:3.5+
USE_CXXSTD= c++14
USE_GNOME= pango
USE_PERL5= build
diff --git a/print/lilypond/Makefile b/print/lilypond/Makefile
--- a/print/lilypond/Makefile
+++ b/print/lilypond/Makefile
@@ -22,9 +22,7 @@
zip:archivers/zip
LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
- libgmp.so:math/gmp \
- libharfbuzz.so:print/harfbuzz \
- libltdl.so:devel/libltdl
+ libharfbuzz.so:print/harfbuzz
RUN_DEPENDS= ${LOCALBASE}/share/fonts/dejavu/DejaVuSans-Bold.ttf:x11-fonts/dejavu \
mftrace:print/mftrace
@@ -40,7 +38,8 @@
CONFIGURE_ENV+= ac_cv_prog_MAKEINFO="${LOCALBASE}/bin/makeinfo" \
FLEX=${FLEX} \
HOME=${WRKDIR} \
- YACC=${YACC}
+ YACC=${YACC} \
+ GUILE_FLAVOR=guile-${GUILE_VER}
MAKEFILE= GNUmakefile
ALL_TARGET= all
@@ -61,10 +60,8 @@
GUILE2_DESC= guile2 instead guile (incurs performance penalty)
URW_DESC= Use bundled URW fonts
-GUILE2_LIB_DEPENDS= libgc-threaded.so:devel/boehm-gc-threaded \
- libguile-2.2.so:lang/guile2
-GUILE2_LIB_DEPENDS_OFF= libguile.so:lang/guile1
-GUILE2_CONFIGURE_ENV= GUILE_FLAVOR=guile-2.2
+GUILE2_USES= guile:2.2
+GUILE2_USES_OFF=guile:1.8
NLS_USES= gettext
NLS_USES_OFF= gettext-tools
diff --git a/science/harminv/Makefile b/science/harminv/Makefile
--- a/science/harminv/Makefile
+++ b/science/harminv/Makefile
@@ -1,6 +1,6 @@
PORTNAME= harminv
PORTVERSION= 1.3.1
-PORTREVISION= 20
+PORTREVISION= 21
CATEGORIES= science
MASTER_SITES= http://ab-initio.mit.edu/harminv/
@@ -8,8 +8,6 @@
COMMENT= Solver of harmonic inversion
WWW= http://ab-initio.mit.edu/wiki/index.php/Harminv
-LIB_DEPENDS= libguile-2.2.so:lang/guile2
-
USES= blaslapack fortran gmake libtool pathfix
GNU_CONFIGURE= yes
USE_GCC= yes
diff --git a/science/libctl/Makefile b/science/libctl/Makefile
--- a/science/libctl/Makefile
+++ b/science/libctl/Makefile
@@ -1,6 +1,6 @@
PORTNAME= libctl
DISTVERSION= 4.5.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= science math
MASTER_SITES= https://github.com/NanoComp/libctl/releases/download/v${DISTVERSION}/
@@ -12,10 +12,7 @@
BROKEN_sparc64= does not build
-LIB_DEPENDS= libgc-threaded.so:devel/boehm-gc-threaded \
- libguile-2.2.so:lang/guile2
-
-USES= fortran libtool pkgconfig
+USES= fortran guile:2.2 libtool pkgconfig
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-shared
USE_LDCONFIG= yes
diff --git a/science/mpb/Makefile b/science/mpb/Makefile
--- a/science/mpb/Makefile
+++ b/science/mpb/Makefile
@@ -1,6 +1,6 @@
PORTNAME= mpb
DISTVERSION= 1.11.1
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= science
MASTER_SITES= https://github.com/NanoComp/mpb/releases/download/v${DISTVERSION}/
@@ -14,12 +14,10 @@
# NLOPT should be enabled in science/libctl
LIB_DEPENDS= libctl.so:science/libctl \
libfftw3.so:math/fftw3 \
- libgc-threaded.so:devel/boehm-gc-threaded \
- libguile-2.2.so:lang/guile2 \
libhdf5.so:science/hdf5 \
libnlopt.so:math/nlopt
-USES= fortran libtool pkgconfig readline
+USES= fortran guile:2.2,alias libtool pkgconfig readline
USE_GCC= yes
USE_LDCONFIG= yes
# Do not use --with-mpi, because it is not guaranted
diff --git a/textproc/scss/Makefile b/textproc/scss/Makefile
--- a/textproc/scss/Makefile
+++ b/textproc/scss/Makefile
@@ -12,7 +12,7 @@
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
-RUN_DEPENDS= guile:lang/guile
+USES= guile:run
NO_BUILD= yes
NO_ARCH= yes
diff --git a/textproc/sdom/Makefile b/textproc/sdom/Makefile
--- a/textproc/sdom/Makefile
+++ b/textproc/sdom/Makefile
@@ -11,9 +11,12 @@
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
-RUN_DEPENDS= guile-lib>=0:devel/guile-lib
+RUN_DEPENDS= guile-lib-${GUILE_FLAVOR}>=0:devel/guile-lib@${GUILE_FLAVOR}
+
+USES= guile:env
NO_BUILD= yes
+NO_ARCH= yes
INFO= sdom
PLIST_FILES= share/guile/sdom/common.scm \
diff --git a/www/elinks/Makefile b/www/elinks/Makefile
--- a/www/elinks/Makefile
+++ b/www/elinks/Makefile
@@ -46,7 +46,7 @@
NLS_USES= gettext
NLS_MESON_TRUE= nls
-GUILE_LIB_DEPENDS= libguile-3.0.so:lang/guile
+GUILE_USES= guile:3.0
GUILE_MESON_TRUE= guile
LUA_USES= lua:52-53
diff --git a/www/guile-www/Makefile b/www/guile-www/Makefile
--- a/www/guile-www/Makefile
+++ b/www/guile-www/Makefile
@@ -11,7 +11,7 @@
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
-RUN_DEPENDS= guile:lang/guile1
+USES= guile:1.8
GNU_CONFIGURE= yes
INFO= guile-www
diff --git a/x11-toolkits/guile-gnome-platform/Makefile b/x11-toolkits/guile-gnome-platform/Makefile
--- a/x11-toolkits/guile-gnome-platform/Makefile
+++ b/x11-toolkits/guile-gnome-platform/Makefile
@@ -10,10 +10,7 @@
LICENSE= GPLv2+
-BUILD_DEPENDS= guile2>=2.2:lang/guile2
-LIB_DEPENDS= libguile-2.2.so:lang/guile2 \
- libgc-threaded.so:devel/boehm-gc-threaded \
- libgwrap-guile-runtime.so:devel/g-wrap \
+LIB_DEPENDS= libgwrap-guile-runtime.so:devel/g-wrap \
libffi.so:devel/libffi
FLAVORS= lite full
@@ -25,11 +22,13 @@
# We don't actually need gettext, but for some incomprehensible reason it
# is the package that installs some basic gnulib autoconf functionality.
-USES= autoreconf gettext-tools gmake gnome libtool pkgconfig
+USES= autoreconf gettext-tools gmake gnome guile:2.2,alias \
+ libtool pkgconfig
USE_GNOME= glib20
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
+CONFIGURE_ENV+= GUILE_EFFECTIVE_VERSION=${GUILE_VER}
MAKE_JOBS_UNSAFE=yes
@@ -58,7 +57,8 @@
ATK_INFO= guile-gnome-atk
# Cairo support depends on a separate module.
-CAIRO_LIB_DEPENDS= libguile-cairo.so:graphics/guile-cairo
+CAIRO_BUILD_DEPENDS= ${LOCALBASE}/lib/guile/${GUILE_VER}/extensions/libguile-cairo.so:graphics/guile-cairo@${GUILE_FLAVOR}
+CAIRO_RUN_DEPENDS= ${LOCALBASE}/lib/guile/${GUILE_VER}/extensions/libguile-cairo.so:graphics/guile-cairo@${GUILE_FLAVOR}
CAIRO_USE= gnome=cairo
CAIRO_CONFIGURE_WITH= cairo
@@ -76,11 +76,13 @@
# These dependencies are brought in from gtk2's pkgconf, but
# not accounted for by Uses/gnome
GTK2_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
- libfreetype.so:print/freetype2
+ libfreetype.so:print/freetype2 \
+ libharfbuzz.so:print/harfbuzz
GTK2_USE= gnome=gtk20,gdkpixbuf2
GTK2_CONFIGURE_WITH= gtk pixbuf
GTK2_INFO= guile-gnome-gtk guile-gnome-gdk
+PANGO_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz
PANGO_USE= gnome=pango
PANGO_CONFIGURE_WITH= pango
PANGO_INFO= guile-gnome-pango
@@ -145,6 +147,11 @@
# components. This doesn't affect the packaging but makes QA testing
# of the options much easier.
+# DO NOT try and add rules here to strip .go files, no matter how loudly
+# testport / stage-qa shouts at you about it, because .go files (which are
+# compiled bytecode) are not intended to be stripped and doing so causes
+# breakage at run time.
+
post-install:
for f in ${INFO_UNUSED}; do \
${RM} ${STAGEDIR}${PREFIX}/${INFO_PATH}/$${f}.info*; \
diff --git a/x11/xbindkeys/Makefile b/x11/xbindkeys/Makefile
--- a/x11/xbindkeys/Makefile
+++ b/x11/xbindkeys/Makefile
@@ -1,6 +1,5 @@
PORTNAME= xbindkeys
-PORTVERSION= 1.8.6
-PORTREVISION= 2
+PORTVERSION= 1.8.7
CATEGORIES= x11
MASTER_SITES= http://www.nongnu.org/xbindkeys/
@@ -22,8 +21,8 @@
TCL_USES= tk
TCL_CONFIGURE_OFF= --disable-tk
TCL_PLIST_FILES= bin/xbindkeys_show man/man1/xbindkeys_show.1.gz
-GUILE_LIB_DEPENDS= libguile.so:lang/guile
-GUILE_CONFIGURE_OFF= --disable-guile
+GUILE_USES= guile:1.8,2.2,3.0 autoreconf gettext-tools pkgconfig
+GUILE_CONFIGURE_ENABLE= guile
post-patch-TCL-on:
@${REINPLACE_CMD} -e 's| wish | ${WISH} |g' ${WRKSRC}/xbindkeys_show
diff --git a/x11/xbindkeys/distinfo b/x11/xbindkeys/distinfo
--- a/x11/xbindkeys/distinfo
+++ b/x11/xbindkeys/distinfo
@@ -1,2 +1,3 @@
-SHA256 (xbindkeys-1.8.6.tar.gz) = 6c0d18be19fc19ab9b4595edf3a23c0a6946c8a5eb5c1bc395471c8f9a710d18
-SIZE (xbindkeys-1.8.6.tar.gz) = 151941
+TIMESTAMP = 1684687370
+SHA256 (xbindkeys-1.8.7.tar.gz) = a29b86a8ec91d4abc83b420e547da27470847d0efe808aa6e75147aa0adb82f2
+SIZE (xbindkeys-1.8.7.tar.gz) = 177532
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Oct 22, 5:17 PM (5 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24061317
Default Alt Text
D40194.id122471.diff (125 KB)
Attached To
Mode
D40194: Guile ports: remove conflicts and add flavors
Attached
Detach File
Event Timeline
Log In to Comment