Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F163981910
D40194.id122274.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
86 KB
Referenced Files
None
Subscribers
None
D40194.id122274.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
@@ -10,10 +10,6 @@
LICENSE= GPLv3+
-BROKEN_armv6= fails to package: tar: Pathname cannot be converted from UTF-8 to current locale
-BROKEN_armv7= fails to package: tar: Pathname cannot be converted from UTF-8 to current locale
-BROKEN_mips= fails to package: tar: Pathname cannot be converted from UTF-8 to current locale
-
LIB_DEPENDS= libaubio.so:audio/aubio \
libfluidsynth.so:audio/fluidsynth \
libjack.so:audio/jack \
@@ -21,7 +17,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
@@ -29,8 +28,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
@@ -13,13 +14,26 @@
BROKEN_armv7= fails to compile: stack overflow
-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/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,89 @@
+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=${WITHOUT_LTO:Dno:U${WITH_LTO:Dyes:Uno}}
+
+# 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
+
+# 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/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/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/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/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/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
Tue, Jul 28, 3:47 PM (13 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35604196
Default Alt Text
D40194.id122274.diff (86 KB)
Attached To
Mode
D40194: Guile ports: remove conflicts and add flavors
Attached
Detach File
Event Timeline
Log In to Comment