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 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 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 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 + # . + +-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 +- * ++ * Copyright (C) 2023 Daniel Llorens ++ * Copyright (C) 2023 Dale Smith ++ * Copyright (C) 2023 David Pirotte ++ + * 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 ++# Copyright (C) 2023 David Pirotte + # + # 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 @@ + # . + + 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 ++ ++;; 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 . ++ ++(use-modules (unit-test) ++ (oop goops) ++ (cairo)) ++ ++(define-class ()) ++ ++(define-method (test-context-pointer (self )) ++ (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 - -.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 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|||g' ${REINPLACE_FILES} + ${REINPLACE_CMD} -e 's|||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 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|||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 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 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 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 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 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