diff options
Diffstat (limited to 'Mk')
90 files changed, 2321 insertions, 1457 deletions
diff --git a/Mk/Features/bind_now.mk b/Mk/Features/bind_now.mk index 99361c487265..5f4b6abf3718 100644 --- a/Mk/Features/bind_now.mk +++ b/Mk/Features/bind_now.mk @@ -1,4 +1,9 @@ # BIND_NOW Support +# +# When generating an executable or shared library, mark it to tell the dynamic +# linker to resolve all symbols when the program is started, or when the shared +# library is loaded by dlopen, instead of deferring function call resolution to +# the point when the function is first called. .if !defined(_BIND_NOW_MK_INCLUDED) _BIND_NOW_MK_INCLUDED= yes diff --git a/Mk/Features/fortify.mk b/Mk/Features/fortify.mk new file mode 100644 index 000000000000..2e43ca98242f --- /dev/null +++ b/Mk/Features/fortify.mk @@ -0,0 +1,18 @@ +# This enables mitigations of common memory safety issues, such as buffer +# overflows, by adding checks to functions like memcpy, strcpy, sprintf, +# and others when the compiler can determine the size of the destination +# buffer at compile time. +# +# Depends opon the FORTIFY_SOURCE implementation in the basesystem. + +.if !defined(_FORTIFY_MK_INCLUDED) +_FORTIFY_MK_INCLUDED= yes +FORTIFY_Include_MAINTAINER= netchild@FreeBSD.org + +. if !defined(FORTIFY_UNSAFE) +FORTIFY_SOURCE?=2 +FORTIFY_CFLAGS?= -D_FORTIFY_SOURCE=${FORTIFY_SOURCE} +CFLAGS+= ${FORTIFY_CFLAGS} +CXXFLAGS+= ${FORTIFY_CFLAGS} +. endif +.endif diff --git a/Mk/Features/lto.mk b/Mk/Features/lto.mk index 3fef5a223e9c..2d0e3657b53b 100644 --- a/Mk/Features/lto.mk +++ b/Mk/Features/lto.mk @@ -14,6 +14,8 @@ LTO_Include_MAINTAINER= pkubaj@FreeBSD.org CARGO_ENV+= CARGO_PROFILE_RELEASE_LTO="true" \ CARGO_PROFILE_RELEASE_PANIC="abort" \ CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1 +. elif defined(_INCLUDE_USES_CMAKE_MK) + CMAKE_ON+= CMAKE_INTERPROCEDURAL_OPTIMIZATION . elif defined(_INCLUDE_USES_MESON_MK) MESON_ARGS+= -Db_lto=true . elif defined(_INCLUDE_USES_CABAL_MK) diff --git a/Mk/Features/pie.mk b/Mk/Features/pie.mk index 2f7b902f2660..3a8a95b93aea 100644 --- a/Mk/Features/pie.mk +++ b/Mk/Features/pie.mk @@ -1,15 +1,28 @@ # PIE Support +# +# Produce a Position-Independent Executable (PIE) instead of a "normal" +# fixed-address ELF. +# A PIE is an executable whose code sections are compiled and linked so that, +# at runtime, they can be loaded at any base address in memory. +# +# Because it can be loaded at unpredictable addresses, PIE enables full Address +# Space Layout Randomization (ASLR) for your main executable-making certain +# classes of memory-corruption exploits much harder. .if !defined(_PIE_MK_INCLUDED) _PIE_MK_INCLUDED= yes PIE_Include_MAINTAINER= portmgr@FreeBSD.org . if !defined(PIE_UNSAFE) +. if defined(_INCLUDE_USES_CMAKE_MK) +CMAKE_ARGS+= -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true +. else PIE_CFLAGS?= -fPIE -fPIC CFLAGS+= ${PIE_CFLAGS} CXXFLAGS+= ${PIE_CFLAGS} LDFLAGS+= -pie STATIC_PIE_ARGS+= -static-pie +. endif . endif .endif diff --git a/Mk/Features/relro.mk b/Mk/Features/relro.mk index 6ceb68d5d668..8074ce09edd7 100644 --- a/Mk/Features/relro.mk +++ b/Mk/Features/relro.mk @@ -1,4 +1,9 @@ # RELRO Support +# +# Tells the linker to emit RELocation Read-Only (RELRO) protection for certain +# sections of your ELF file. In short, it makes parts of the binary read-only +# after relocations have been applied at program startup, helping to prevent +# GOT- and PLT-based overwrite attacks. .if !defined(_RELRO_MK_INCLUDED) _RELRO_MK_INCLUDED= yes diff --git a/Mk/Features/sanitize.mk b/Mk/Features/sanitize.mk index 6d2e3019705e..02dbdad94c8b 100644 --- a/Mk/Features/sanitize.mk +++ b/Mk/Features/sanitize.mk @@ -18,6 +18,12 @@ SANITIZE_Include_MAINTAINER= portmgr@FreeBSD.org SANITIZE_FLAGS?= address . if defined(_INCLUDE_USES_MESON_MK) MESON_ARGS+= -Db_sanitize=${SANITIZE_FLAGS} +. elif defined(_INCLUDE_USES_QMAKE_MK) || defined(_QT_DIST_MK_INCLUDED) + QMAKE_ARGS+= QMAKE_LFLAGS_NOUNDEF= + QMAKE_ARGS+= CONFIG+=sanitize +. for f in ${SANITIZE_FLAGS} + QMAKE_ARGS+= CONFIG+=sanitize_${f} +. endfor . else CFLAGS+= -fsanitize=${SANITIZE_FLAGS} CXXFLAGS+= -fsanitize=${SANITIZE_FLAGS} diff --git a/Mk/Features/ssp.mk b/Mk/Features/ssp.mk index 4213e6d668a6..b6be18ce35e8 100644 --- a/Mk/Features/ssp.mk +++ b/Mk/Features/ssp.mk @@ -1,4 +1,12 @@ # SSP Support +# +# The -fstack-protector-strong flag enables "stack smashing" protection on a +# wider set of functions than the default -fstack-protector, but without the +# full performance cost of -fstack-protector-all. Under the hood it inserts a +# small "canary" value on the stack just before the saved return address; at +# function exit it checks that the canary hasn't been overwritten by a buffer +# overflow. If it has been clobbered, the runtime aborts the program rather +# than returning into corrupted code. .if !defined(_SSP_MK_INCLUDED) _SSP_MK_INCLUDED= yes @@ -9,6 +17,5 @@ SSP_Include_MAINTAINER= portmgr@FreeBSD.org # Overridable as a user may want to use -fstack-protector-all SSP_CFLAGS?= -fstack-protector-strong CFLAGS+= ${SSP_CFLAGS} -LDFLAGS+= ${SSP_CFLAGS} . endif .endif diff --git a/Mk/Features/stack_autoinit.mk b/Mk/Features/stack_autoinit.mk new file mode 100644 index 000000000000..627b785b6ee0 --- /dev/null +++ b/Mk/Features/stack_autoinit.mk @@ -0,0 +1,23 @@ +# The STACK_AUTOINIT feature mimics the corresponding FreeBSD basesystem feature. +# +# This enables a compiler specific option to automatically initialize +# local (automatic) variables to prevent the use of uninitialized memory. +# +# Variables that can be used: +# +# WITH_STACK_AUTOINIT Enable for all ports. +# WITH_STACK_AUTOINIT_PORTS Enable for specified category/port-name +# STACK_AUTOINIT_TYPE Valid options: zero (default), pattern, uninitialized +# + +.if !defined(_STACK_AUTOINIT_MK_INCLUDED) +_STACK_AUTOINIT_MK_INCLUDED= yes +STACK_AUTOINIT_Include_MAINTAINER= netchild@FreeBSD.org + +STACK_AUTOINIT_TYPE?= zero + +. if !defined(STATIC_AUTOINIT_UNSAFE) +CFLAGS+= -ftrivial-auto-var-init=${STACK_AUTOINIT_TYPE} +CXXFLAGS+= -ftrivial-auto-var-init=${STACK_AUTOINIT_TYPE} +. endif +.endif diff --git a/Mk/Features/zeroregs.mk b/Mk/Features/zeroregs.mk new file mode 100644 index 000000000000..2e21b16c5c66 --- /dev/null +++ b/Mk/Features/zeroregs.mk @@ -0,0 +1,28 @@ +# Zero call-used registers at function return to increase program +# security by either mitigating Return-Oriented Programming (ROP) +# attacks or preventing information leakage through registers. +# This depends upon support from the compiler for a given architecture. +# +# Variables that can be used: +# +# WITH_ZEROREGS Enable for all ports. +# WITH_ZEROREGS_PORTS Enable for specified category/port-name +# ZEROREGS_TYPE See +# https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-zero_005fcall_005fused_005fregs-function-attribute +# for options +# Default: used +# + +.if !defined(_ZEROREGS_MK_INCLUDED) +_ZEROREGS_MK_INCLUDED= yes +ZEROREGS_Include_MAINTAINER= netchild@FreeBSD.org + +ZEROREGS_TYPE?= used + +#. if !defined(ZEROREGS_UNSAFE) && !empty(${ARCH:Mriscv*}) && \ +# !empty(${ARCH:Mpower*}) && !empty(${ARCH:Marmv7*}) +CFLAGS+= -fzero-call-used-regs=${ZEROREGS_TYPE} +CXXFLAGS+= -fzero-call-used-regs=${ZEROREGS_TYPE} +#. endif +.endif + diff --git a/Mk/Scripts/actual-package-depends.sh b/Mk/Scripts/actual-package-depends.sh index 604931446787..bf649cb42907 100644 --- a/Mk/Scripts/actual-package-depends.sh +++ b/Mk/Scripts/actual-package-depends.sh @@ -1,5 +1,5 @@ #!/bin/sh -# MAINTAINER: portmgr@FeeeBSD.org +# MAINTAINER: portmgr@FreeBSD.org [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_ACTUAL_PACKAGE_DEPENDS}" ] && set -x diff --git a/Mk/Scripts/cargo-crates-git-common.awk b/Mk/Scripts/cargo-crates-git-common.awk index 36eb0027d3d7..e2263f94678a 100644 --- a/Mk/Scripts/cargo-crates-git-common.awk +++ b/Mk/Scripts/cargo-crates-git-common.awk @@ -73,6 +73,26 @@ function split_git_url(info, git_url, url, path, account, project, commit, i, d info["dir"] = sprintf("%s-%s", project, dir_ver) return 1 + } else if (url["host"] == "codeberg.org") { + split(url["path"], path, "/") + account = path[2] + project = path[3] + sub(/\.[gG][iI][tT]$/, "", project) + commit = commit_from_git_url(url) + + delete url + url["scheme"] = "https" + url["host"] = "codeberg.org" + url["path"] = sprintf("/%s/%s/archive/%s.tar.gz", account, project, commit) + url["query"] = "dummy" + url["query", "dummy"] = "/" + info["site"] = join_url(url) + + info["filename"] = sprintf("%s-%s-%s_CB0.tar.gz", account, project, commit) + + info["dir"] = sprintf("%s", project) + + return 1 } else if (gitlab_hosts[url["host"]]) { split(url["path"], path, "/") account = path[2] diff --git a/Mk/Scripts/check_have_symbols.sh b/Mk/Scripts/check_have_symbols.sh new file mode 100644 index 000000000000..652c975109dd --- /dev/null +++ b/Mk/Scripts/check_have_symbols.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +set -eu + +# the 3 implementations of readelf we can use have different output, but they all have a similarity +# for the .gnu.version_d section they all have the symbol version in last element of their output +# and have "Name:" or "vda_name": in the 10th position, no other section displayed have this +# it means that if there are no symbols exported then nothing matches this search pattern. + +STAGEDIR=$1 +shift +ret=0 +failed="" +for lib; do + if ! /usr/bin/readelf -V ${STAGEDIR}$lib | awk 'BEGIN { ret=1 } $10 == "Name:" || $10 == "vda_name:" { ret=0; exit 0 } END { exit ret }'; then + ret=1 + failed="${failed} ${lib}" + fi +done +if [ "$failed" != "" ]; then + echo "the following libraries are supposed to have symbols versioning but they don't" >&2 + for l in ${failed}; do + echo "- $l" >&2 + done +fi +exit $ret diff --git a/Mk/Scripts/check_leftovers.sh b/Mk/Scripts/check_leftovers.sh index 00e8ad4a45dc..8bd3143e4307 100644 --- a/Mk/Scripts/check_leftovers.sh +++ b/Mk/Scripts/check_leftovers.sh @@ -154,10 +154,6 @@ while read -r modtype path extra; do # xmlcatmgr is constantly updating catalog.ports ignore # modification to that file share/xml/catalog.ports) ;; - # Ignore ghc's doc index - share/doc/ghc-%%GHC_VERSION%%/*) ;; - # Ignore ghc's package conf - lib/ghc-%%GHC_VERSION%%/package.conf.d/*) ;; # Ignore common system config files /etc/group|\ /etc/make.conf|\ diff --git a/Mk/Scripts/create-manifest.sh b/Mk/Scripts/create-manifest.sh index 1a198ed8aef0..ce632bb4da7d 100644 --- a/Mk/Scripts/create-manifest.sh +++ b/Mk/Scripts/create-manifest.sh @@ -13,7 +13,7 @@ validate_env dp_ACTUAL_PACKAGE_DEPENDS dp_CATEGORIES dp_COMMENT \ dp_NO_ARCH dp_PKGBASE dp_PKGDEINSTALL dp_PKGINSTALL dp_PKGMESSAGES \ dp_PKGORIGIN dp_PKGPOSTDEINSTALL dp_PKGPOSTINSTALL dp_PKGPREDEINSTALL \ dp_PKGPREINSTALL dp_PKGVERSION dp_PKG_BIN dp_PKG_IGNORE_DEPENDS \ - dp_PKG_NOTES dp_PORT_OPTIONS dp_PREFIX dp_USERS dp_WWW + dp_PKG_NOTES dp_PORT_OPTIONS dp_PREFIX dp_USERS dp_WWW dp_VITAL [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_CREATE_MANIFEST}" ] && set -x @@ -58,6 +58,7 @@ EOT [ -z "${dp_GROUPS}" ] || echo "groups: [ ${dp_GROUPS} ]" [ -n "${dp_NO_ARCH}" ] && echo "arch : $(${dp_PKG_BIN} config abi | tr '[:upper:]' '[:lower:]' | cut -d: -f1,2):*" [ -n "${dp_NO_ARCH}" ] && echo "abi : $(${dp_PKG_BIN} config abi | cut -d: -f1,2):*" +[ -n "${dp_VITAL}" ] && echo "vital : true" # Then the key/values sections echo "deps: { " diff --git a/Mk/Scripts/desktop-categories.sh b/Mk/Scripts/desktop-categories.sh index 8daaf2a6d2d7..8f7bfed8bede 100644 --- a/Mk/Scripts/desktop-categories.sh +++ b/Mk/Scripts/desktop-categories.sh @@ -31,10 +31,11 @@ for native_category in ${dp_CATEGORIES}; do deskutils) c="Utility" ;; devel) c="Development" ;; dns) c="Network" ;; - elisp) c="Development" ;; editors) c="Utility" ;; education) c="Education" ;; + elisp) c="Development" ;; emulators) c="System Emulator" ;; + filesystems) c="System Filesystem" ;; finance) c="Office Finance" ;; ftp) c="Network FileTransfer" ;; games) c="Game" ;; diff --git a/Mk/Scripts/do-users-groups.sh b/Mk/Scripts/do-users-groups.sh index b4ddf5a8a5d3..fdaad401de72 100644 --- a/Mk/Scripts/do-users-groups.sh +++ b/Mk/Scripts/do-users-groups.sh @@ -76,7 +76,7 @@ if [ -n "${GROUPS}" ]; then cat >> "${dp_UG_INSTALL}" <<-eot2 if ! \${PW} groupshow $group >/dev/null 2>&1; then echo "Creating group '$group' with gid '$gid'" - \${PW} groupadd $group -g $gid + \${PW} groupadd $group -g $gid || exit \$? else echo "Using existing group '$group'" fi @@ -129,7 +129,7 @@ if [ -n "${USERS}" ]; then cat >> "${dp_UG_INSTALL}" <<-eot2 if ! \${PW} usershow $login >/dev/null 2>&1; then echo "Creating user '$login' with uid '$uid'" - \${PW} useradd $login -u $uid -g $gid $class -c "$gecos" -d $homedir -s $shell + \${PW} useradd $login -u $uid -g $gid $class -c "$gecos" -d $homedir -s $shell || exit \$? else echo "Using existing user '$login'" fi @@ -185,7 +185,7 @@ if [ -n "${GROUPS}" ]; then cat >> "${dp_UG_INSTALL}" <<-eot2 if ! \${PW} groupshow ${group} | grep -qw ${login}; then echo "Adding user '${login}' to group '${group}'" - \${PW} groupmod ${group} -m ${login} + \${PW} groupmod ${group} -m ${login} || exit \$? fi eot2 fi diff --git a/Mk/Scripts/qa.sh b/Mk/Scripts/qa.sh index 935edf72065e..9c351420f607 100644 --- a/Mk/Scripts/qa.sh +++ b/Mk/Scripts/qa.sh @@ -371,7 +371,6 @@ proxydeps_suggest_uses() { ${pkg} = "graphics/cairomm" -o \ ${pkg} = "devel/dconf" -o \ ${pkg} = "devel/gconf2" -o \ - ${pkg} = "devel/gconfmm26" -o \ ${pkg} = "devel/glib20" -o \ ${pkg} = "devel/glibmm" -o \ ${pkg} = "audio/gsound" -o \ @@ -386,7 +385,6 @@ proxydeps_suggest_uses() { ${pkg} = "x11-toolkits/gtksourceviewmm3" -o \ ${pkg} = "databases/libgda5" -o \ ${pkg} = "databases/libgda5-ui" -o \ - ${pkg} = "databases/libgdamm5" -o \ ${pkg} = "devel/libglade2" -o \ ${pkg} = "graphics/libgnomecanvas" -o \ ${pkg} = "x11/libgnomekbd" -o \ @@ -399,7 +397,6 @@ proxydeps_suggest_uses() { ${pkg} = "textproc/libxml++26" -o \ ${pkg} = "textproc/libxml2" -o \ ${pkg} = "textproc/libxslt" -o \ - ${pkg} = "x11-wm/metacity" -o \ ${pkg} = "x11-toolkits/pango" -o \ ${pkg} = "x11-toolkits/pangomm" -o \ ${pkg} = "x11-toolkits/pangox-compat" -o \ @@ -410,12 +407,12 @@ proxydeps_suggest_uses() { # grep LIB_DEPENDS= Mk/Uses/gnome.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\(.*\)|[ "\1" = "\3" ] \|\| echo "elif [ \\${pkg} = \\\"\2/\3\\\" ]; then; warn \\\"you need USE_GNOME+=\1\\\""|'|sort|sh elif [ ${pkg} = "databases/evolution-data-server" ]; then warn "you need USE_GNOME+=evolutiondataserver3" elif [ ${pkg} = "graphics/gdk-pixbuf" ]; then warn "you need USE_GNOME+=gdkpixbuf" - elif [ ${pkg} = "graphics/gdk-pixbuf2" ]; then warn "you need USE_GNOME+=gdkpixbuf2" + elif [ ${pkg} = "graphics/gdk-pixbuf2" ]; then warn "you need USE_GNOME+=gdkpixbuf" elif [ ${pkg} = "x11/gnome-desktop" ]; then warn "you need USE_GNOME+=gnomedesktop3" elif [ ${pkg} = "devel/gobject-introspection" ]; then warn "you need USE_GNOME+=introspection" elif [ ${pkg} = "graphics/libart_lgpl" ]; then warn "you need USE_GNOME+=libartlgpl2" elif [ ${pkg} = "devel/libIDL" ]; then warn "you need USE_GNOME+=libidl" - elif [ ${pkg} = "x11-fm/nautilus" ]; then warn "you need USE_GNOME+=nautilus3" + elif [ ${pkg} = "x11-fm/nautilus" ]; then warn "you need USE_GNOME+=nautilus4" elif [ ${pkg} = "graphics/librsvg2-rust" ]; then warn "you need USE_GNOME+=librsvg2" # mate # grep LIB_DEPENDS= Mk/Uses/mate.mk |sed -e 's|\(.*\)_LIB_DEPENDS.*:\(.*\)\/\(.*\)|elif [ ${pkg} = "\2/\3" ]; then warn "you need USE_MATE+=\1"|' @@ -475,7 +472,6 @@ proxydeps_suggest_uses() { elif [ ${pkg} = "games/libkdegames" ]; then warn "you need to use USE_KDE+=libkdegames" elif [ ${pkg} = "misc/libkeduvocdocument" ]; then warn "you need to use USE_KDE+=libkeduvocdocument" elif [ ${pkg} = "graphics/libkexiv2" ]; then warn "you need to use USE_KDE+=libkexiv2" - elif [ ${pkg} = "graphics/libkipi" ]; then warn "you need to use USE_KDE+=libkipi" elif [ ${pkg} = "graphics/libksane" ]; then warn "you need to use USE_KDE+=libksane" elif [ ${pkg} = "astro/marble" ]; then warn "you need to use USE_KDE+=marble" elif [ ${pkg} = "graphics/okular" ]; then warn "you need to use USE_KDE+=okular" @@ -561,6 +557,9 @@ proxydeps_suggest_uses() { # Qt5 elif expr ${pkg} : '.*/qt5-.*' > /dev/null; then warn "you need USES=qt:5 and USE_QT+=$(echo ${pkg} | sed -E 's|.*/qt5-||')" + # Qt6 + elif expr ${pkg} : '.*/qt6-.*' > /dev/null; then + warn "you need USES=qt:6 and USE_QT+=$(echo ${pkg} | sed -E 's|.*/qt6-||')" # MySQL elif expr ${lib_file} : "${LOCALBASE}/lib/mysql/[^/]*$" > /dev/null; then warn "you need USES+=mysql" @@ -577,7 +576,7 @@ proxydeps_suggest_uses() { elif [ ${pkg} = "databases/firebird25-client" ]; then warn "you need USES+=firebird" # fuse - elif [ ${pkg} = "sysutils/fusefs-libs" ]; then + elif [ ${pkg} = "filesystems/fusefs-libs" ]; then warn "you need USES+=fuse" # gnustep elif [ ${pkg} = "lang/gnustep-base" ]; then @@ -623,7 +622,11 @@ proxydeps_suggest_uses() { elif [ ${pkg} = "devel/readline" ]; then warn "you need USES+=readline" # ssl + # When updating this, please also update the versions list in + # bsd.default-versions.mk and ssl.mk! elif [ ${pkg} = "security/openssl" -o ${pkg} = "security/openssl111" \ + -o ${pkg} = "security/openssl31" -o ${pkg} = "security/openssl32" \ + -o ${pkg} = "security/openssl33" \ -o ${pkg} = "security/libressl" -o ${pkg} = "security/libressl-devel" \ ]; then warn "you need USES=ssl" @@ -717,9 +720,9 @@ proxydeps() { sed -e 's/^\.//') EOT - # Check whether all files in LIB_DPEENDS are actually linked against + # Check whether all files in LIB_DEPENDS are actually linked against for _library in ${WANTED_LIBRARIES} ; do - if ! listcontains ${_library} "${dep_lib_files}" ; then + if ! listcontains ${_library%%.so*}.so "${dep_lib_files}" ; then warn "you might not need LIB_DEPENDS on ${_library}" fi done diff --git a/Mk/Uses/ada.mk b/Mk/Uses/ada.mk index 98badb9f81f7..25f0b6a8d8c8 100644 --- a/Mk/Uses/ada.mk +++ b/Mk/Uses/ada.mk @@ -1,11 +1,10 @@ # Establish Ada-capable compiler as a build dependency -# To change default compiler, define ADA_DEFAULT in make.conf # # Feature: ada # Usage: USES=ada:ARGS # Valid ARGS: [<version>],[run] # -# version The chooseable versions are 6 (default), 12 or 13 +# version The chooseable versions are 6 , 12 (default) or 13 # # run Add run depends # diff --git a/Mk/Uses/autoreconf.mk b/Mk/Uses/autoreconf.mk index 67ee8c824455..781f58dc20b5 100644 --- a/Mk/Uses/autoreconf.mk +++ b/Mk/Uses/autoreconf.mk @@ -92,7 +92,7 @@ _AUTORECONF= 2.72 BUILD_DEPENDS+= autoconf>=${_AUTORECONF}:devel/autoconf . endif -BUILD_DEPENDS+= automake>=1.16.5:devel/automake +BUILD_DEPENDS+= automake>=1.17:devel/automake . if defined(libtool_ARGS) && empty(libtool_ARGS:Mbuild) BUILD_DEPENDS+= libtoolize:devel/libtool diff --git a/Mk/Uses/blaslapack.mk b/Mk/Uses/blaslapack.mk index ff14194e50b5..1e602695b0a0 100644 --- a/Mk/Uses/blaslapack.mk +++ b/Mk/Uses/blaslapack.mk @@ -2,7 +2,7 @@ # # Feature: blaslapack # Usage: USES=blaslapack or USES=blaslapack:ARGS -# Valid ARGS: atlas blis flexiblas netlib (default) openblas +# Valid ARGS: atlas blis flexiblas netlib (default) openblas openblas64 # # Provides: BLASLIB and LAPACKLIB # @@ -13,12 +13,10 @@ .if !defined(_INCLUDE_USES_BLASLAPACK_MK) _INCLUDE_USES_BLASLAPACK_MK= yes -_valid_ARGS= atlas blis flexiblas netlib openblas - -_DEFAULT_BLASLAPACK= netlib +_valid_ARGS= atlas blis flexiblas netlib openblas openblas64 . if empty(blaslapack_ARGS) -blaslapack_ARGS= ${_DEFAULT_BLASLAPACK} +blaslapack_ARGS= ${BLASLAPACK_DEFAULT} . endif LDFLAGS+= -L${LOCALBASE}/lib @@ -40,7 +38,7 @@ BLA_VENDOR= FLAME LIB_DEPENDS+= libflexiblas.so:math/flexiblas _BLASLIB= flexiblas BLA_VENDOR= FlexiBLAS -. elif ${blaslapack_ARGS} == netlib +. elif ${blaslapack_ARGS} == netlib || empty(blaslapack_ARGS) LIB_DEPENDS+= libblas.so:math/blas LIB_DEPENDS+= liblapack.so:math/lapack _BLASLIB= blas @@ -51,6 +49,12 @@ LIB_DEPENDS+= libopenblas.so:math/openblas _BLASLIB= openblas LAPACKLIB= -lopenblas BLA_VENDOR= OpenBLAS +. elif ${blaslapack_ARGS} == openblas64 +LIB_DEPENDS+= libopenblas_64.so:math/openblas64 +_BLASLIB= openblas_64 +LAPACKLIB= -lopenblas_64 +BLA_VENDOR= OpenBLAS +CFLAGS+= -I${LOCALBASE}/include/openblas64 . else IGNORE= USES=blaslapack: invalid arguments: ${blaslapack_ARGS} . endif diff --git a/Mk/Uses/cabal.mk b/Mk/Uses/cabal.mk index 2ee0596e0a6e..cf1ffe9874f9 100644 --- a/Mk/Uses/cabal.mk +++ b/Mk/Uses/cabal.mk @@ -76,11 +76,6 @@ IGNORE= USES=cabal: invalid arguments: ${arg} IGNORE= CABAL_PROJECT: invalid value: ${CABAL_PROJECT} . endif -. if ${ARCH} == i386 && defined(USE_CABAL) && ${USE_CABAL:Mbasement-0.0.1[4-5]} -# Upstream issue: https://github.com/haskell-foundation/foundation/issues/565 -BROKEN= ${USE_CABAL:Mbasement-0.0.1[4-5]} package doesn't compile on i386 -. endif - PKGNAMEPREFIX?= hs- CABAL_EXECUTABLES?= ${PORTNAME} @@ -318,7 +313,7 @@ cabal-pre-configure: . if !target(do-build) do-build: cd ${WRKSRC} && \ - ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${CABAL_HOME_ENV} ${CABAL_CMD} build --offline --disable-benchmarks --disable-tests ${CABAL_WITH_ARGS} ${CABAL_LTO_ARGS} --flags "${CABAL_FLAGS}" ${BUILD_ARGS} ${BUILD_TARGET} + ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${CABAL_HOME_ENV} ${CABAL_CMD} build --no-semaphore --disable-benchmarks --disable-tests ${CABAL_WITH_ARGS} ${CABAL_LTO_ARGS} --flags "${CABAL_FLAGS}" ${BUILD_ARGS} ${BUILD_TARGET} . endif . if !target(do-install) diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk index 8710374e3584..f5325f39afdb 100644 --- a/Mk/Uses/cargo.mk +++ b/Mk/Uses/cargo.mk @@ -97,7 +97,7 @@ WRKSRC_crate_${_crate}= ${WRKDIR}/${_wrksrc} CARGO_BUILDDEP?= yes . if ${CARGO_BUILDDEP:tl} == "yes" -BUILD_DEPENDS+= ${RUST_DEFAULT}>=1.77.0:lang/${RUST_DEFAULT} +BUILD_DEPENDS+= ${RUST_DEFAULT}>=1.88.0:lang/${RUST_DEFAULT} . elif ${CARGO_BUILDDEP:tl} == "any-version" BUILD_DEPENDS+= ${RUST_DEFAULT}>=0:lang/${RUST_DEFAULT} . endif @@ -110,9 +110,6 @@ RUSTDOC?= ${LOCALBASE}/bin/rustdoc # Location of the cargo output directory. CARGO_TARGET_DIR?= ${WRKDIR}/target -# Default target platform (affects some RUSTFLAGS if passed) -CARGO_BUILD_TARGET?= ${_CARGO_RUST_ARCH_${ARCH}:U${ARCH}}-unknown-${OPSYS:tl} - _CARGO_RUST_ARCH_amd64= x86_64 _CARGO_RUST_ARCH_i386= i686 _CARGO_RUST_ARCH_riscv64= riscv64gc @@ -128,19 +125,18 @@ _CARGO_RUST_ARCH_riscv64= riscv64gc CARGO_ENV+= \ CARGO_HOME=${WRKDIR}/cargo-home \ CARGO_BUILD_JOBS=${MAKE_JOBS_NUMBER} \ - CARGO_BUILD_TARGET=${CARGO_BUILD_TARGET} \ CARGO_TARGET_DIR=${CARGO_TARGET_DIR} \ - CARGO_TARGET_${CARGO_BUILD_TARGET:S/-/_/g:tu}_LINKER="${CC}" \ RUSTC=${RUSTC} \ RUSTDOC=${RUSTDOC} \ RUSTFLAGS="${RUSTFLAGS} ${LDFLAGS:C/.+/-C link-arg=&/}" -. if ${ARCH} != powerpc +. if ${ARCH} != powerpc64le CARGO_ENV+= RUST_BACKTRACE=1 . endif -. if defined(WITH_LTO) +. if !defined(WITHOUT_LTO) _CARGO_MSG= "===> Additional optimization to port applied" +WITH_LTO= yes . endif # Adjust -C target-cpu if -march/-mcpu is set by bsd.cpu.mk @@ -322,6 +318,7 @@ cargo-configure: ${ECHO_CMD} "[profile.release]" >> ${CARGO_CARGOTOML}; \ ${ECHO_CMD} "opt-level = 2" >> ${CARGO_CARGOTOML}; \ ${ECHO_CMD} "debug = false" >> ${CARGO_CARGOTOML}; \ + ${ECHO_CMD} 'strip = "symbols"' >> ${CARGO_CARGOTOML}; \ fi @${ECHO_MSG} "===> Updating Cargo.lock" @${CARGO_CARGO_RUN} update \ @@ -385,7 +382,7 @@ cargo-crates: cargo-crates-generate-lockfile cargo-crates-generate-lockfile: extract @if [ ! -r "${CARGO_CARGOLOCK}" ]; then \ ${ECHO_MSG} "===> ${CARGO_CARGOLOCK} not found. Trying to generate it..."; \ - cd ${WRKSRC}; ${_CARGO_RUN} generate-lockfile \ + cd ${CARGO_CARGOLOCK:H}; ${_CARGO_RUN} generate-lockfile \ --manifest-path ${CARGO_CARGOTOML} \ --verbose; \ fi diff --git a/Mk/Uses/cl.mk b/Mk/Uses/cl.mk new file mode 100644 index 000000000000..6144c08386b7 --- /dev/null +++ b/Mk/Uses/cl.mk @@ -0,0 +1,142 @@ +# Provide support for Common Lisp ports. +# +# Feature: cl +# Usage: USES=cl +# Valid ARGS: none +# +# Variables, which may be set by ports: +# ASDF_MODULES - List of ASDF modules to build when FASL_TARGET is set (defaults to PORTNAME) +# FASL_TARGET - Build fasl variant of port (one of ccl, clisp, or sbcl) +# USE_ASDF - Depend on devel/cl-asdf +# USE_ASDF_FASL - Depend on devel/cl-asdf-<FASL_TARGET> +# USE_CCL - Depend on lang/ccl; implied when FASL_TARGET=ccl +# USE_CLISP - Depend on lang/clisp; implied when FASL_TARGET=clisp +# USE_SBCL - Depend on lang/sbcl; implied when FASL_TARGET=SBCL +# +# Variables to be read by ports: +# ASDF_PATHNAME - Path to CL source +# ASDF_REGISTRY - Path to CL registry containing asd files +# CCL - Path to the Clozure Common Lisp compiler +# CLISP - Path to the GNU Common Lisp compiler +# CL_LIBDIR_REL - CL library directory relative to LOCALBASE or PREFIX +# DOCSDIR - DOCSDIR accounting for cl- PKGNAMEPREFIX +# EXAMPLESDIR - EXAMPLESDIR accounting for cl- PKGNAMEPREFIX +# FASL_DIR_REL - Relative path to compiled fasl files; depends on FASL_TARGET +# FASL_PATHNAME - Path to CL fasl +# LISP_EXTRA_ARG - Extra arguments used when building fasl +# SBCL - Path to the Steel Bank Common Lisp compiler + +.if !defined(_INCLUDE_USES_CL_MK) +_INCLUDE_USES_CL_MK= yes + +CL_ASDF_Include_MAINTAINER= olgeni@FreeBSD.org + +CCL?= ${LOCALBASE}/bin/ccl +CLISP?= ${LOCALBASE}/bin/clisp +SBCL?= ${LOCALBASE}/bin/sbcl + +CL_LIBDIR_REL= lib/common-lisp + +ASDF_PATHNAME= ${PREFIX}/${CL_LIBDIR_REL}/${PORTNAME} +ASDF_REGISTRY= ${PREFIX}/${CL_LIBDIR_REL}/system-registry + +# Include PKGNAMEPREFIX in DOCSDIR and EXAMPLESDIR +DOCSDIR= ${PREFIX}/share/doc/${PKGBASE} +EXAMPLESDIR= ${PREFIX}/share/examples/${PKGBASE} + +. if ${PORTNAME} != "ccl" +NO_ARCH= yes +. endif + +. if defined(FASL_TARGET) +FASL_DIR_REL= ${FASL_TARGET}fasl +FASL_PATHNAME= ${PREFIX}/${CL_LIBDIR_REL}/${PORTNAME}/${FASL_DIR_REL} +PKGNAMESUFFIX= -${FASL_TARGET} +. if ${FASL_TARGET} == "ccl" +USE_CCL= yes +. elif ${FASL_TARGET} == "clisp" +USE_CLISP= yes +. elif ${FASL_TARGET} == "sbcl" +USE_SBCL= yes +. endif +. endif # defined(FASL_TARGET) + +. if defined(USE_CCL) +BUILD_DEPENDS+= ccl:lang/ccl +RUN_DEPENDS+= ccl:lang/ccl +. elif defined(USE_CLISP) +BUILD_DEPENDS+= clisp:lang/clisp +RUN_DEPENDS+= clisp:lang/clisp +. elif defined(USE_SBCL) +BUILD_DEPENDS+= sbcl:lang/sbcl +RUN_DEPENDS+= sbcl:lang/sbcl +. endif + +. if defined(USE_ASDF) +# Depend on the ASDF port, even if the Common Lisp compiler already has a bundled +# ASDF framework. +BUILD_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/asdf.asd:devel/cl-asdf +RUN_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/asdf.asd:devel/cl-asdf +. endif # defined(USE_ASDF) + +. if defined(USE_ASDF_FASL) +. if defined(USE_CCL) +BUILD_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/${FASL_DIR_REL}/build/asdf.fx64fsl:devel/cl-asdf-ccl +RUN_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/${FASL_DIR_REL}/build/asdf.fx64fsl:devel/cl-asdf-ccl +. elif defined(USE_CLISP) +BUILD_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/${FASL_DIR_REL}/build/asdf.fas:devel/cl-asdf-clisp +RUN_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/${FASL_DIR_REL}/build/asdf.fas:devel/cl-asdf-clisp +. elif defined(USE_SBCL) +BUILD_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/${FASL_DIR_REL}/build/asdf.fasl:devel/cl-asdf-sbcl +RUN_DEPENDS+= ${LOCALBASE}/${CL_LIBDIR_REL}/asdf/${FASL_DIR_REL}/build/asdf.fasl:devel/cl-asdf-sbcl +. endif +. endif # defined(USE_ASDF_FASL) + +. if defined(FASL_TARGET) + +ASDF_MODULES?= ${PORTNAME} + +. if !target(do-build) +# See devel/cl-freebsd-asdf-init/files/cl-freebsd-asdf-init.lisp for the meaning +# of FBSD_ASDF_COMPILE_PORT. +do-build: +. for MODULE in ${ASDF_MODULES} +. if defined(USE_CCL) + @FBSD_ASDF_COMPILE_PORT=t PORTNAME=${PORTNAME} WRKSRC=${WRKSRC}/ \ + ${CCL} ${LISP_EXTRA_ARG} -b -n \ + -l ${LOCALBASE}/etc/cl-freebsd-asdf-init \ + -e "(asdf:oos 'asdf:compile-op :${MODULE})" +. endif # USE_CCL + +. if defined(USE_CLISP) + @FBSD_ASDF_COMPILE_PORT=t PORTNAME=${PORTNAME} WRKSRC=${WRKSRC}/ \ + ${CLISP} ${LISP_EXTRA_ARG} -ansi -norc \ + -i ${LOCALBASE}/etc/cl-freebsd-asdf-init \ + -x "(asdf:oos 'asdf:compile-op :${MODULE})" +. endif # USE_CLISP + +. if defined(USE_SBCL) + @FBSD_ASDF_COMPILE_PORT=t PORTNAME=${PORTNAME} WRKSRC=${WRKSRC}/ \ + ${SBCL} ${LISP_EXTRA_ARG} --noinform --userinit /dev/null --disable-debugger \ + --eval '#.(load "${LOCALBASE}/etc/cl-freebsd-asdf-init")' \ + --eval "(asdf:oos 'asdf:compile-op :${MODULE})" \ + --eval "(quit)" +. endif # USE_SBCL +. endfor +. endif # !target(do-build) + +. if !target(do-install) +do-install: + @${MKDIR} ${STAGEDIR}${FASL_PATHNAME} + @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${FASL_PATHNAME} + +. endif # !target(do-install) +post-install: + @cd ${WRKSRC} && ${FIND} * -type f \ + | ${SORT} \ + | ${AWK} '{ print "${CL_LIBDIR_REL}/${PORTNAME}/${FASL_DIR_REL}/" $$1 }' \ + >> ${TMPPLIST} + +. endif # FASL_TARGET + +.endif # _INCLUDE_USES_ASDF_MK diff --git a/Mk/Uses/cmake.mk b/Mk/Uses/cmake.mk index 4129f0f341fc..6d8978c49672 100644 --- a/Mk/Uses/cmake.mk +++ b/Mk/Uses/cmake.mk @@ -53,6 +53,10 @@ # Default: BUILD_TESTING # CMAKE_TESTING_OFF Appends -D<var>:bool=OFF to the CMAKE_TESTING_ARGS. # Default: empty +# CMAKE_TESTING_SETENV - Use SETENV instead of SETENVI to run the tests. +# Useful for tests that require a running X or Wayland +# session to keep enviroment variables like DISPLAY. +# Default: undefined, set to any value to enable. # CMAKE_TESTING_TARGET - Name of the test target. Default: test # # MAINTAINER: kde@FreeBSD.org @@ -62,7 +66,9 @@ _INCLUDE_USES_CMAKE_MK= yes _valid_ARGS= indirect insource noninja run testing _internal -_CMAKE_VERSION= 3.28.3 +# Reminder: devel/cmake-core, devel/cmake-doc, devel/cmake-gui, and devel/cmake-man +# are all affected by changing _CMAKE_VERSION. Please check each of these ports. +_CMAKE_VERSION= 3.31.7 CMAKE_BIN= ${LOCALBASE}/bin/cmake # Sanity check @@ -103,6 +109,7 @@ CMAKE_ARGS+= -DCMAKE_C_COMPILER:STRING="${CC}" \ -DCMAKE_MODULE_LINKER_FLAGS:STRING="${LDFLAGS}" \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="${LDFLAGS}" \ -DCMAKE_INSTALL_PREFIX:PATH="${CMAKE_INSTALL_PREFIX}" \ + -DCMAKE_AUTOGEN_PARALLEL:STRING="${MAKE_JOBS_NUMBER}" \ -DCMAKE_BUILD_TYPE:STRING="${CMAKE_BUILD_TYPE}" \ -DTHREADS_HAVE_PTHREAD_ARG:BOOL=YES \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=YES \ @@ -179,8 +186,16 @@ do-configure: . if !target(do-test) && ${cmake_ARGS:Mtesting} CMAKE_TESTING_ON?= BUILD_TESTING +CMAKE_TESTING_PARALLEL_LEVEL?= ${MAKE_JOBS_NUMBER} CMAKE_TESTING_TARGET?= test +# Use SETENV instead of SETENVI if CMAKE_TESTING_SETENV is defined +. if defined(CMAKE_TESTING_SETENV) +_CMAKE_TESTING_SETENV= ${SETENV} +. else +_CMAKE_TESTING_SETENV= ${SETENVI} +. endif + # Handle the option-like CMAKE_TESTING_ON and CMAKE_TESTING_OFF lists. . for _bool_kind in ON OFF . if defined(CMAKE_TESTING_${_bool_kind}) @@ -192,7 +207,7 @@ do-test: @cd ${BUILD_WRKSRC} && \ ${SETENVI} ${WRK_ENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} ${CMAKE_TESTING_ARGS} ${CMAKE_SOURCE_PATH} && \ ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET} && \ - ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${CMAKE_TESTING_TARGET} + ${_CMAKE_TESTING_SETENV} ${WRK_ENV} ${TEST_ENV} CTEST_PARALLEL_LEVEL=${CMAKE_TESTING_PARALLEL_LEVEL} ${MAKE_CMD} ${MAKE_ARGS} ${CMAKE_TESTING_TARGET} . endif . endif diff --git a/Mk/Uses/compiler.mk b/Mk/Uses/compiler.mk index d668873e1f2a..28103bcf1c83 100644 --- a/Mk/Uses/compiler.mk +++ b/Mk/Uses/compiler.mk @@ -2,17 +2,19 @@ # # Feature: compiler # Usage: USES=compiler or USES=compiler:ARGS -# Valid ARGS: env (default, implicit) c++0x c++11-lib c++11-lang c11 nestedfct features +# Valid ARGS: env (default, implicit) c++0x c++11-lib c++11-lang c11 c17 nestedfct features # # c++0x: The port needs a compiler understanding C++0X # c++11-lang: The port needs a compiler understanding C++11 # c++14-lang: The port needs a compiler understanding C++14 # c++17-lang: The port needs a compiler understanding C++17 # c++20-lang: The port needs a compiler understanding C++20 +# c++23-lang: The port needs a compiler understanding C++23 # c++2b-lang: The port needs a compiler understanding C++2b # gcc-c++11-lib:The port needs g++ compiler with a C++11 library # c++11-lib: The port needs a compiler understanding C++11 and with a C++11 ready standard library # c11: The port needs a compiler understanding C11 +# c17: The port needs a compiler understanding C17 # nestedfct: The port needs a compiler understanding nested functions # features: The port will determine the features supported by the default compiler # @@ -35,8 +37,8 @@ _INCLUDE_USES_COMPILER_MK= yes compiler_ARGS= env . endif -VALID_ARGS= c++11-lib c++11-lang c++14-lang c++17-lang c++20-lang \ - c++2b-lang c11 features env nestedfct c++0x gcc-c++11-lib +VALID_ARGS= c++11-lib c++11-lang c++14-lang c++17-lang c++20-lang c++23-lang \ + c++2b-lang c11 c17 features env nestedfct c++0x gcc-c++11-lib _CC_hash:= ${CC:hash} _CXX_hash:= ${CXX:hash} @@ -55,10 +57,14 @@ _COMPILER_ARGS+= features c++14-lang _COMPILER_ARGS+= features c++17-lang . elif ${compiler_ARGS} == c++20-lang _COMPILER_ARGS+= features c++20-lang +. elif ${compiler_ARGS} == c++23-lang +_COMPILER_ARGS+= features c++23-lang . elif ${compiler_ARGS} == c++2b-lang _COMPILER_ARGS+= features c++2b-lang . elif ${compiler_ARGS} == c11 _COMPILER_ARGS+= features c11 +. elif ${compiler_ARGS} == c17 +_COMPILER_ARGS+= features c17 . elif ${compiler_ARGS} == features _COMPILER_ARGS+= features . elif ${compiler_ARGS} == env @@ -70,7 +76,7 @@ IGNORE= Invalid argument "${compiler_ARGS}", valid arguments are: ${VALID_ARGS} _COMPILER_ARGS= # . endif -. if ${_COMPILER_ARGS:Mc++*} || ${_COMPILER_ARGS:Mc11} +. if ${_COMPILER_ARGS:Mc++*} || ${_COMPILER_ARGS:Mc11} || ${_COMPILER_ARGS:Mc17} _COMPILER_ARGS+= features . endif @@ -135,8 +141,8 @@ COMPILER_FEATURES= libc++ COMPILER_FEATURES= libstdc++ . endif -CSTD= c89 c99 c11 gnu89 gnu99 gnu11 -CXXSTD= c++98 c++0x c++11 c++14 c++17 c++20 c++2b \ +CSTD= c89 c99 c11 c17 gnu89 gnu99 gnu11 +CXXSTD= c++98 c++0x c++11 c++14 c++17 c++20 c++23 c++2b \ gnu++98 gnu++11 gnu++14 gnu++17 gnu++20 gnu++2b . for std in ${CSTD} ${CXXSTD} @@ -168,12 +174,13 @@ CHOSEN_COMPILER_TYPE= gcc . endif . if (${_COMPILER_ARGS:Mc++2b-lang} && !${COMPILER_FEATURES:Mc++2b}) || \ +(${_COMPILER_ARGS:Mc++23-lang} && !${COMPILER_FEATURES:Mc++23}) || \ (${_COMPILER_ARGS:Mc++20-lang} && !${COMPILER_FEATURES:Mc++20}) || \ (${_COMPILER_ARGS:Mc++17-lang} && !${COMPILER_FEATURES:Mc++17}) || \ (${_COMPILER_ARGS:Mc++14-lang} && !${COMPILER_FEATURES:Mc++14}) || \ (${_COMPILER_ARGS:Mc++11-lang} && !${COMPILER_FEATURES:Mc++11}) || \ (${_COMPILER_ARGS:Mc++0x} && !${COMPILER_FEATURES:Mc++0x}) || \ -(${_COMPILER_ARGS:Mc11} && !${COMPILER_FEATURES:Mc11}) +(${_COMPILER_ARGS:Mc11} && !${COMPILER_FEATURES:Mc11} && !${COMPILER_FEATURES:Mc17}) . if ${_COMPILER_ARGS:Mc++2b-lang} _LLVM_MINVER= 14 . elif ${_COMPILER_ARGS:Mc++20-lang} diff --git a/Mk/Uses/cpe.mk b/Mk/Uses/cpe.mk index 92d27e5aa12b..23f4a73dc266 100644 --- a/Mk/Uses/cpe.mk +++ b/Mk/Uses/cpe.mk @@ -1,7 +1,5 @@ # Include CPE information in package manifest as a CPE 2.3 formatted -# string. -# See https://csrc.nist.gov/projects/security-content-automation-protocol/specifications/cpe -# for details. +# string. See https://scap.nist.gov/specifications/cpe/ for details. # # CPE_PART Defaults to "a" for "application". # CPE_VENDOR Defaults to same as ${CPE_PRODUCT} (below). diff --git a/Mk/Uses/cran.mk b/Mk/Uses/cran.mk index e357f296ad8e..722f55d7e916 100644 --- a/Mk/Uses/cran.mk +++ b/Mk/Uses/cran.mk @@ -36,7 +36,7 @@ R_POSTCMD_CHECK_OPTIONS+= --no-manual --no-build-vignettes do-test: @${FIND} ${WRKSRC} \( -name '*.o' -o -name '*.so' \) -delete - @cd ${WRKDIR} ; ${SETENV} ${MAKE_ENV} _R_CHECK_FORCE_SUGGESTS_=FALSE \ + @cd ${WRKDIR} ; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} _R_CHECK_FORCE_SUGGESTS_=FALSE \ ${R_COMMAND} ${R_PRECMD_CHECK_OPTIONS} CMD check \ ${R_POSTCMD_CHECK_OPTIONS} ${PORTNAME} . endif @@ -51,7 +51,7 @@ R_POSTCMD_INSTALL_OPTIONS+= --no-docs --no-html do-install: @${MKDIR} ${STAGEDIR}${PREFIX}/${R_LIB_DIR} - @cd ${WRKDIR} ; ${SETENV} ${MAKE_ENV} ${R_COMMAND} \ + @cd ${WRKDIR} ; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${R_COMMAND} \ ${R_PRECMD_INSTALL_OPTIONS} CMD INSTALL \ ${R_POSTCMD_INSTALL_OPTIONS} ${PORTNAME} . endif diff --git a/Mk/Uses/electronfix.mk b/Mk/Uses/electronfix.mk index 001bd64a81ad..3b5a7c92d9b4 100644 --- a/Mk/Uses/electronfix.mk +++ b/Mk/Uses/electronfix.mk @@ -17,24 +17,18 @@ .if !defined(_INCLUDE_USES_ELECTRONFIX_MK) _INCLUDE_USES_ELECTRONFIX_MK= yes -_ELECTRONFIX_MK_VALID_VERSIONS= 22 23 24 25 27 28 +. if empty(electronfix_ARGS) +. error USES=electronfix requires a version argument +. endif -# === parse version arguments === -_ELECTRONFIX_MK_VERSION= # empty -. for _ver in ${_ELECTRONFIX_MK_VALID_VERSIONS} -. if ${electronfix_ARGS:M${_ver}} -. if !empty(_ELECTRONFIX_MK_VERSION) -BROKEN= USES=electronfix:${electronfix_ARGS} contains multiple version definitions -. else -_ELECTRONFIX_MK_VERSION= ${_ver} -. endif -. endif -. endfor +_ELECTRON_MAKEFILE_VERSION= ${PORTSDIR}/devel/electron${electronfix_ARGS}/Makefile.version -. include "${.CURDIR}/../../devel/electron${_ELECTRONFIX_MK_VERSION}/Makefile.version" +. if !exists(${_ELECTRON_MAKEFILE_VERSION}) +. error Unknown Electron version in USES=electronfix:${electronfix_ARGS} +. endif -BUILD_DEPENDS+= electron${_ELECTRONFIX_MK_VERSION}:devel/electron${_ELECTRONFIX_MK_VERSION} -RUN_DEPENDS+= electron${_ELECTRONFIX_MK_VERSION}:devel/electron${_ELECTRONFIX_MK_VERSION} +BUILD_DEPENDS+= electron${electronfix_ARGS}:devel/electron${electronfix_ARGS} +RUN_DEPENDS+= electron${electronfix_ARGS}:devel/electron${electronfix_ARGS} ELECTRONFIX_SYMLINK_FILES?= \ chromedriver \ @@ -58,11 +52,11 @@ electronfix-post-install: ${RM} ${STAGEDIR}${DATADIR}/libvulkan.so.1 . for f in ${ELECTRONFIX_SYMLINK_FILES} ${RM} ${STAGEDIR}${DATADIR}/${f} - ${LN} -s ${LOCALBASE}/share/electron${_ELECTRONFIX_MK_VERSION}/${f} ${STAGEDIR}${DATADIR}/${f} + ${LN} -s ${LOCALBASE}/share/electron${electronfix_ARGS}/${f} ${STAGEDIR}${DATADIR}/${f} . endfor . ifdef ELECTRONFIX_MAIN_EXECUTABLE # We have to copy the electron binary instead of symlinking - ${CP} ${LOCALBASE}/share/electron${_ELECTRONFIX_MK_VERSION}/electron ${STAGEDIR}${DATADIR}/${ELECTRONFIX_MAIN_EXECUTABLE} + ${CP} ${LOCALBASE}/share/electron${electronfix_ARGS}/electron ${STAGEDIR}${DATADIR}/${ELECTRONFIX_MAIN_EXECUTABLE} . endif electronfix-stage-qa: diff --git a/Mk/Uses/elfctl.mk b/Mk/Uses/elfctl.mk index 442f13db596f..446a57c43425 100644 --- a/Mk/Uses/elfctl.mk +++ b/Mk/Uses/elfctl.mk @@ -1,26 +1,39 @@ -# Change an ELF binary's feature control note +# Set ELF binary feature control notes # # Feature: elfctl -# Usage: USES=elfctl -# Valid ARGS: none +# Usage: USES=elfctl or USES=elfctl:ARGS +# Valid ARGS: build (default, implicit), stage # -# Variables +# Files listed in ELF_FEATURES are relative to: +# - ${BUILD_WRKSRC} when the `build` argument is supplied +# - ${STAGEDIR} when the `stage` argument is supplied. # -# ELF_FEATURES= featurelist:path/to/file1 \ -# featurelist:path/to/file1 \ - featurelist:path/to/file2 +# Variables: # -# The file paths listed in ELF_FEATURES are relative to ${BUILD_WRKSRC}. +# ELF_FEATURES= featurelist:path/to/file1 \ +# featurelist:path/to/file2 # .if !defined(_INCLUDE_USES_ELFCTL_MK) _INCLUDE_USES_ELFCTL_MK= yes -. if ! empty(ELF_FEATURES) -_USES_build+= 720:elfctl-post-build -elfctl-post-build: +. if empty(elfctl_ARGS) +elfctl_ARGS= build +. endif + +. if ${elfctl_ARGS} == "build" +_ELFCTL_TOPDIR= ${BUILD_WRKSRC} +. elif ${elfctl_ARGS} == "stage" +_ELFCTL_TOPDIR= ${STAGEDIR} +. else +IGNORE= USES=elfctl - invalid args: [${elfctl_ARGS}] specified +. endif + +. if !empty(ELF_FEATURES) +_USES_${elfctl_ARGS}+= 720:elfctl-post-${elfctl_ARGS} +elfctl-post-${elfctl_ARGS}: . for feat in ${ELF_FEATURES} - ${ELFCTL} -i -e ${feat:C/:.*//} ${BUILD_WRKSRC}/${feat:C/.*://} + ${ELFCTL} -i -e ${feat:C/:.*//} ${_ELFCTL_TOPDIR}/${feat:C/.*://} . endfor . endif diff --git a/Mk/Uses/emacs.mk b/Mk/Uses/emacs.mk index d601390f0569..c278e3447935 100644 --- a/Mk/Uses/emacs.mk +++ b/Mk/Uses/emacs.mk @@ -15,11 +15,11 @@ # dependencies. # # Variables, which can be set in make.conf: -# DEFAULT_VERSIONS+= The default flavor for Emacs ports (ports with -# USES=emacs, but not the Emacs ports themselves) -# can be added to DEFAULT_VERSIONS. For example, -# DEFAULT_VERSIONS+= emacs=nox -# Valid flavors: full canna nox devel_full devel_nox +# DEFAULT_VERSIONS+= The default flavor for ports with +# USES=emacs can be added to DEFAULT_VERSIONS. +# For example: DEFAULT_VERSIONS+= emacs=nox +# Valid flavors: full canna nox wayland +# devel_full devel_nox # Flavors specified on the command line take # precedence. # @@ -31,18 +31,19 @@ # then all valid Emacs flavors are assumed. # # EMACS_NO_DEPENDS: Do NOT add build or run dependencies on Emacs. -# This will prevent flavors. +# This will prevent flavors, and no byte code files +# will be generated as part of the package. # # Variables, which can be read by ports: -# EMACS_CMD: Emacs command with full path (e.g. /usr/local/bin/emacs-28.2) +# EMACS_CMD: Emacs command with full path (e.g. /usr/local/bin/emacs-30.1) # EMACS_FLAVOR: Used for dependencies (e.g. BUILD_DEPENDS= dash.el${EMACS_PKGNAMESUFFIX}>0:devel/dash@${EMACS_FLAVOR}) # EMACS_LIBDIR: Emacs Library directory without ${PREFIX} (e.g. share/emacs) -# EMACS_LIBDIR_WITH_VER: Library directory without ${PREFIX} including version (e.g. share/emacs/28.2) -# EMACS_MAJOR_VER: Emacs major version (e.g. 28) +# EMACS_LIBDIR_WITH_VER: Library directory without ${PREFIX} including version (e.g. share/emacs/30.1) +# EMACS_MAJOR_VER: Emacs major version (e.g. 30) # EMACS_PKGNAMESUFFIX: PKGNAMESUFFIX to distinguish Emacs flavors # EMACS_SITE_LISPDIR: Emacs site-lisp directory without ${PREFIX} (e.g. share/emacs/site-lisp) -# EMACS_VER: Emacs version (e.g. 28.2) -# EMACS_VERSION_SITE_LISPDIR: Include version (e.g. share/emacs/28.2/site-lisp) +# EMACS_VER: Emacs version (e.g. 30.1) +# EMACS_VERSION_SITE_LISPDIR: Include version (e.g. share/emacs/30.1/site-lisp) #------------------------------------------------------------------------------- # # MAINTAINER: emacs@FreeBSD.org @@ -79,7 +80,7 @@ _EMACS_RUN_DEP= yes # Only set FLAVORS when... . if defined(_EMACS_RUN_DEP) && !defined(_EMACS_NOFLAVORS) -FLAVORS= full canna nox devel_full devel_nox +FLAVORS= full canna nox wayland devel_full devel_nox # Sort the default to be first . if defined(EMACS_DEFAULT) FLAVORS:= ${EMACS_DEFAULT} ${FLAVORS:N${EMACS_DEFAULT}} @@ -105,10 +106,10 @@ EMACS_FLAVOR= full . endif . if ${FLAVOR:Mdevel*} -EMACS_VER= 30.0.50 +EMACS_VER= 31.0.50 EMACS_PORTDIR= editors/emacs-devel . else -EMACS_VER= 29.3 +EMACS_VER= 30.1 EMACS_PORTDIR= editors/emacs . endif diff --git a/Mk/Uses/fortran.mk b/Mk/Uses/fortran.mk index a7dc6717dce8..207bb869c8d8 100644 --- a/Mk/Uses/fortran.mk +++ b/Mk/Uses/fortran.mk @@ -30,6 +30,10 @@ FCFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} LDFLAGS+= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} \ -L${LOCALBASE}/lib/gcc${_GCC_VER} CFLAGS_F2018= -I${LOCALBASE}/include/gcc${_GCC_VER} +# Only needed on riscv64? See PR 287211 +. if ${ARCH} == "riscv64" +FCFLAGS+= -B${LOCALBASE}/lib/gcc${_GCC_VER} +. endif . else IGNORE= USES=fortran: invalid arguments: ${fortran_ARGS} . endif diff --git a/Mk/Uses/fpc.mk b/Mk/Uses/fpc.mk index dd9a3137e3f9..7538914c2d48 100644 --- a/Mk/Uses/fpc.mk +++ b/Mk/Uses/fpc.mk @@ -44,16 +44,16 @@ IGNORE= incompatible fpc ${FPC_CURRENT_VER} compiler, please install ${FPC_VER} PPNAME= ppc386 . elif ${ARCH} == "amd64" PPNAME= ppcx64 +. elif ${ARCH} == "aarch64" +PPNAME= ppca64 . else PPNAME= ppc_not_yet_ported -ONLY_FOR_ARCHS= i386 amd64 -ONLY_FOR_ARCHS_REASON= not yet ported to anything other than i386 and amd64 . endif -. if !defined(WANT_FPC_DEVEL) -FPC_DEVELSUFFIX= # -. else +. if (defined(WANT_FPC_DEVEL) && !empty(WANT_FPC_DEVEL)) || ${ARCH:Maarch64} FPC_DEVELSUFFIX= -devel +. else +FPC_DEVELSUFFIX= # . endif BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils \ diff --git a/Mk/Uses/fuse.mk b/Mk/Uses/fuse.mk index 9250a86e2429..db4e6562f739 100644 --- a/Mk/Uses/fuse.mk +++ b/Mk/Uses/fuse.mk @@ -14,9 +14,9 @@ LIBFUSE_VER= ${fuse_ARGS} LIBFUSE_VER?= 2 . if ${LIBFUSE_VER} == 2 -LIB_DEPENDS+= libfuse.so:sysutils/fusefs-libs +LIB_DEPENDS+= libfuse.so:filesystems/fusefs-libs . elif ${LIBFUSE_VER} == 3 -LIB_DEPENDS+= libfuse3.so:sysutils/fusefs-libs3 +LIB_DEPENDS+= libfuse3.so:filesystems/fusefs-libs3 . else IGNORE= cannot install: unknown FUSE library version: ${LIBFUSE_VERSION} . endif diff --git a/Mk/Uses/gmake.mk b/Mk/Uses/gmake.mk index 3aa9bae0efac..776591c11643 100644 --- a/Mk/Uses/gmake.mk +++ b/Mk/Uses/gmake.mk @@ -13,7 +13,7 @@ IGNORE= Incorrect 'USES+= gmake:${gmake_ARGS}' gmake takes no arguments . endif BUILD_DEPENDS+= gmake>=4.4.1:devel/gmake -CONFIGURE_ENV+= MAKE=gmake -MAKE_CMD= gmake +CONFIGURE_ENV+= MAKE=${GMAKE} +MAKE_CMD= ${GMAKE} .endif diff --git a/Mk/Uses/gnome.mk b/Mk/Uses/gnome.mk index 1628f3b8fb09..59d070c747f8 100644 --- a/Mk/Uses/gnome.mk +++ b/Mk/Uses/gnome.mk @@ -63,29 +63,29 @@ _USE_GNOME_ALL= intlhack intltool introspection \ # GNOME 2 components _USE_GNOME_ALL+= atk cairo \ - gdkpixbuf2 gdkpixbuf2xlib gconf2 glib20 \ + gdkpixbuf gdkpixbuf2xlib gdkpixbufextra gconf2 glib20 \ gtk-update-icon-cache gtk20 \ gtksharp20 gtksourceview2 gvfs libartlgpl2 \ libglade2 libgnomecanvas \ libgsf libidl librsvg2 \ libxml2 libxslt \ - pango pangox-compat \ + pango pangoft2 pangox-compat \ vte # GNOME 3 components _USE_GNOME_ALL+=dconf evolutiondataserver3 gnomecontrolcenter3 gnomedesktop3 \ gnomemenus3 gsound gtk30 gtkhtml4 gtksourceview3 \ gtksourceview4 libgda5 \ - libgda5-ui libgnomekbd libwnck3 metacity nautilus3 \ + libgda5-ui libgda6 libgnomekbd libwnck3 \ pygobject3 vte3 # GNOME 40 components -_USE_GNOME_ALL+=gtk40 libadwaita gtksourceview5 +_USE_GNOME_ALL+=gtk40 libadwaita gtksourceview5 gnomedesktop4 nautilus4 # C++ bindings -_USE_GNOME_ALL+=atkmm cairomm gconfmm26 glibmm glibmm26 gtkmm24 \ - gtkmm30 gtksourceviewmm3 libgdamm5 libxml++26 libsigc++20 \ - libsigc++30 pangomm +_USE_GNOME_ALL+=atkmm cairomm cairomm11 glibmm glibmm26 gtkmm24 \ + gtkmm30 gtkmm40 gtksourceviewmm3 libxml++26 libsigc++20 \ + libsigc++30 pangomm pangomm24 # glib-mkenums often fails with C locale # https://gitlab.gnome.org/GNOME/glib/issues/1430 @@ -111,10 +111,10 @@ libxml++26_USE_GNOME_IMPL= glibmm libxml2 cairo_LIB_DEPENDS= libcairo.so:graphics/cairo cairomm_LIB_DEPENDS= libcairomm-1.0.so:graphics/cairomm -cairomm_USE_GNOME_IMPL= cairo libxml++26 +cairomm_USE_GNOME_IMPL= cairo libsigc++20 -gconfmm26_LIB_DEPENDS= libgconfmm-2.6.so:devel/gconfmm26 -gconfmm26_USE_GNOME_IMPL= glibmm gconf2 +cairomm11_LIB_DEPENDS= libcairomm-1.16.so:graphics/cairomm11 +cairomm11_USE_GNOME_IMPL= cairo libsigc++30 glibmm_LIB_DEPENDS= libglibmm-2.4.so:devel/glibmm glibmm_USE_GNOME_IMPL= libsigc++20 glib20 @@ -131,14 +131,14 @@ gtkmm24_LIB_DEPENDS= libgtkmm-2.4.so:x11-toolkits/gtkmm24 gtkmm24_USE_GNOME_IMPL= glibmm cairomm atkmm pangomm gtk20 gtkmm30_LIB_DEPENDS= libgtkmm-3.0.so:x11-toolkits/gtkmm30 -gtkmm30_USE_GNOME_IMPL= glibmm cairomm atkmm pangomm gtk30 +gtkmm30_USE_GNOME_IMPL= atkmm cairomm gdkpixbuf glibmm gtk30 pangomm + +gtkmm40_LIB_DEPENDS= libgtkmm-4.0.so:x11-toolkits/gtkmm40 +gtkmm40_USE_GNOME_IMPL= cairomm11 gdkpixbuf glibmm26 gtk40 pangomm24 gtksourceviewmm3_LIB_DEPENDS= libgtksourceviewmm-3.0.so:x11-toolkits/gtksourceviewmm3 gtksourceviewmm3_USE_GNOME_IMPL= gtkmm30 gtksourceview3 -libgdamm5_LIB_DEPENDS= libgdamm-5.0.so:databases/libgdamm5 -libgdamm5_USE_GNOME_IMPL= libgda5 glibmm - libsigc++20_LIB_DEPENDS= libsigc-2.0.so:devel/libsigc++20 libsigc++30_LIB_DEPENDS= libsigc-3.0.so:devel/libsigc++30 @@ -146,6 +146,9 @@ libsigc++30_LIB_DEPENDS= libsigc-3.0.so:devel/libsigc++30 pangomm_LIB_DEPENDS= libpangomm-1.4.so:x11-toolkits/pangomm pangomm_USE_GNOME_IMPL= pango glibmm cairomm +pangomm24_LIB_DEPENDS= libpangomm-2.48.so:x11-toolkits/pangomm24 +pangomm24_USE_GNOME_IMPL= pango glibmm26 cairomm11 + gnomemimedata_BUILD_DEPENDS=${LOCALBASE}/libdata/pkgconfig/gnome-mime-data-2.0.pc:misc/gnome-mime-data gnomemimedata_RUN_DEPENDS=${LOCALBASE}/libdata/pkgconfig/gnome-mime-data-2.0.pc:misc/gnome-mime-data @@ -160,27 +163,35 @@ dconf_LIB_DEPENDS= libdconf.so:devel/dconf dconf_RUN_DEPENDS= dconf:devel/dconf dconf_USE_GNOME_IMPL= glib20 -pango_LIB_DEPENDS= libpango-1.0.so:x11-toolkits/pango +pango_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz \ + libpango-1.0.so:x11-toolkits/pango pango_USE_GNOME_IMPL= glib20 +pangoft2_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ + libfreetype.so:print/freetype2 +pangoft2_USE_GNOME_IMPL=pango + pangox-compat_LIB_DEPENDS= libpangox-1.0.so:x11-toolkits/pangox-compat pangox-compat_USE_GNOME_IMPL= glib20 pango -gdkpixbuf2_LIB_DEPENDS= libgdk_pixbuf-2.0.so:graphics/gdk-pixbuf2 -gdkpixbuf2_USE_GNOME_IMPL=glib20 +gdkpixbuf_LIB_DEPENDS= libgdk_pixbuf-2.0.so:graphics/gdk-pixbuf2 +gdkpixbuf_USE_GNOME_IMPL=glib20 gdkpixbuf2xlib_LIB_DEPENDS= libgdk_pixbuf_xlib-2.0.so:graphics/gdk-pixbuf2-xlib -gdkpixbuf2xlib_USE_GNOME_IMPL= glib20 gdkpixbuf2 +gdkpixbuf2xlib_USE_GNOME_IMPL= glib20 gdkpixbuf + +gdkpixbufextra_BUILD_DEPENDS= gdk-pixbuf-extra>=0.1.0:graphics/gdk-pixbuf-extra +gdkpixbufextra_RUN_DEPENDS= gdk-pixbuf-extra>=0.1.0:graphics/gdk-pixbuf-extra +gdkpixbufextra_USE_GNOME_IMPL= glib20 gdkpixbuf gtk-update-icon-cache_RUN_DEPENDS= gtk-update-icon-cache:graphics/gtk-update-icon-cache -gtk-update-icon-cache_USE_GNOME_IMPL= atk pango gdkpixbuf2 gtk20_LIB_DEPENDS= libgtk-x11-2.0.so:x11-toolkits/gtk20 -gtk20_USE_GNOME_IMPL= atk pango +gtk20_USE_GNOME_IMPL= atk cairo gdkpixbuf pangoft2 GTK2_VERSION= 2.10.0 gtk30_LIB_DEPENDS= libgtk-3.so:x11-toolkits/gtk30 -gtk30_USE_GNOME_IMPL= atk pango +gtk30_USE_GNOME_IMPL= atk cairo gdkpixbuf pango GTK3_VERSION= 3.0.0 gtk40_LIB_DEPENDS= libgtk-4.so:x11-toolkits/gtk40 @@ -219,6 +230,9 @@ libartlgpl2_LIB_DEPENDS= libart_lgpl_2.so:graphics/libart_lgpl gnomedesktop3_LIB_DEPENDS= libgnome-desktop-3.so:x11/gnome-desktop gnomedesktop3_USE_GNOME_IMPL= gtk30 +gnomedesktop4_LIB_DEPENDS= libgnome-desktop-4.so:x11/gnome-desktop +gnomedesktop4_USE_GNOME_IMPL= gtk40 + libwnck3_LIB_DEPENDS= libwnck-3.so:x11-toolkits/libwnck3 libwnck3_USE_GNOME_IMPL=gtk30 @@ -241,16 +255,14 @@ librsvg2_BUILD_DEPENDS= librsvg2>=0:graphics/librsvg2 librsvg2_LIB_DEPENDS= librsvg-2.so:graphics/librsvg2 librsvg2_RUN_DEPENDS= librsvg2>=0:graphics/librsvg2 . endif -librsvg2_USE_GNOME_IMPL=gdkpixbuf2 pango +librsvg2_USE_GNOME_IMPL=cairo gdkpixbuf -nautilus3_LIB_DEPENDS= libnautilus-extension.so:x11-fm/nautilus -nautilus3_USE_GNOME_IMPL=gnomedesktop3 libxml2 - -metacity_LIB_DEPENDS= libmetacity.so:x11-wm/metacity +nautilus4_LIB_DEPENDS= libnautilus-extension.so:x11-fm/nautilus +nautilus4_USE_GNOME_IMPL=glib20 gnomecontrolcenter3_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/gnome-keybindings.pc:sysutils/gnome-control-center gnomecontrolcenter3_RUN_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/gnome-keybindings.pc:sysutils/gnome-control-center -gnomecontrolcenter3_USE_GNOME_IMPL= gnomedesktop3 +gnomecontrolcenter3_USE_GNOME_IMPL= gnomedesktop4 libgda5_LIB_DEPENDS= libgda-5.0.so:databases/libgda5 libgda5_USE_GNOME_IMPL= glib20 libxslt @@ -258,6 +270,9 @@ libgda5_USE_GNOME_IMPL= glib20 libxslt libgda5-ui_LIB_DEPENDS= libgda-ui-5.0.so:databases/libgda5-ui libgda5-ui_USE_GNOME_IMPL=glib20 libxslt libgda5 +libgda6_LIB_DEPENDS= libgda-6.0.so:databases/libgda6 +libgda6_USE_GNOME_IMPL= glib20 libxml2 + gtksourceview2_LIB_DEPENDS= libgtksourceview-2.0.so:x11-toolkits/gtksourceview2 gtksourceview2_USE_GNOME_IMPL=gtk20 libxml2 @@ -273,8 +288,8 @@ gtksourceview5_USE_GNOME_IMPL=gtk40 libxml2 libgsf_LIB_DEPENDS= libgsf-1.so:devel/libgsf libgsf_USE_GNOME_IMPL= glib20 libxml2 -pygobject3_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gobject3>=0:devel/py-gobject3@${PY_FLAVOR} -pygobject3_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gobject3>=0:devel/py-gobject3@${PY_FLAVOR} +pygobject3_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pygobject>=0:devel/py-pygobject@${PY_FLAVOR} +pygobject3_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pygobject>=0:devel/py-pygobject@${PY_FLAVOR} pygobject3_USE_GNOME_IMPL= glib20 intltool_BUILD_DEPENDS= ${LOCALBASE}/bin/intltool-extract:textproc/intltool @@ -305,9 +320,8 @@ gtksharp20_USE_GNOME_IMPL= gtk20 libgnomekbd_LIB_DEPENDS= libgnomekbd.so:x11/libgnomekbd libgnomekbd_USE_GNOME_IMPL= gtk30 libxml2 -gvfs_BUILD_DEPENDS= gvfs>=0:devel/gvfs -gvfs_RUN_DEPENDS= gvfs>=0:devel/gvfs -gvfs_USE_GNOME_IMPL= glib20 +gvfs_BUILD_DEPENDS= gvfs>=0:filesystems/gvfs +gvfs_RUN_DEPENDS= gvfs>=0:filesystems/gvfs # End component definition section diff --git a/Mk/Uses/go.mk b/Mk/Uses/go.mk index e78dbe33b7a5..f56114da9973 100644 --- a/Mk/Uses/go.mk +++ b/Mk/Uses/go.mk @@ -23,6 +23,16 @@ # In most cases, this is the only required variable for ports that # use Go modules. # +# GO_MOD_DIST +# The location to download the go.mod file if GO_MODULE is used. +# The default is empty, so it is loaded from GO_PROXY. +# Set it to "gitlab" and make sure GL_PROJECT is defined to download +# the "go.mod" from gitlab. +# Set it to "github" and make sure GH_PROJECT is defined to download +# the "go.mod" from github. +# You can also set it completely manually a URI without go.mod in it, +# is attached automatically to the URI. +# # GO_PKGNAME # The name of the package when building in GOPATH mode. This # is the directory that will be created in ${GOPATH}/src. If not set @@ -60,7 +70,7 @@ _INCLUDE_USES_GO_MK= yes # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -GO_VALID_VERSIONS= 1.20 1.21 1.22 1.23-devel +GO_VALID_VERSIONS= 1.20 1.21 1.22 1.23 1.24 1.25-devel # Check arguments sanity . if !empty(go_ARGS:N[1-9].[0-9][0-9]:N*-devel:Nmodules:Nno_targets:Nrun) @@ -143,14 +153,40 @@ GO_MODNAME= ${GO_MODULE:C/^([^@]*)(@([^@]*)?)/\1/} GO_MODVERSION= ${GO_MODULE:C/^([^@]*)(@([^@]*)?)/\2/:M@*:S/^@//:S/^$/${DISTVERSIONFULL}/} GO_MODFILE= ${GO_MODVERSION}.mod GO_DISTFILE= ${GO_MODVERSION}.zip +# If GO_MOD_DIST is gitlab, download the go.mod from gitlab by the defined GL_ACCOUNT and GL_PROJECT/PORTNAME +. if defined(GO_MOD_DIST) && "${GO_MOD_DIST}" == "gitlab" +MASTER_SITES+= https://gitlab.com/${GL_ACCOUNT}/${GL_PROJECT}/-/raw/${GO_MODVERSION}/${WRKSRC_SUBDIR:?${WRKSRC_SUBDIR}/:} +DISTFILES+= go.mod +# If GO_MOD_DIST is github, download the go.mod from github by the defined GH_ACCOUNT and GH_PROJECT/PORTNAME +. elif defined(GO_MOD_DIST) && "${GO_MOD_DIST}" == "github" +MASTER_SITES+= https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${GO_MODVERSION}/${WRKSRC_SUBDIR:?${WRKSRC_SUBDIR}/:} +DISTFILES+= go.mod +# Manually defined GO_MOD_DIST +. elifdef(GO_MOD_DIST) +MASTER_SITES+= ${GO_MOD_DIST} +DISTFILES+= go.mod +# Fallback to default GO_PROXY +. else + +# `GOPROXY` presents sources via the proxy service and in the downloaded +# `WRKSRC` differently as of v2.x versions of projects. Support this different +# directory/REST API scheme: https://go.dev/ref/mod#major-version-suffixes . +# GO_MODVERSION_MAJOR= ${GO_MODVERSION:C/^v//g:C/\..+//g} +# .if ${GO_MODVERSION_MAJOR} > 1 +# WRKSRC= ${WRKDIR}/${GO_MODNAME}/v${GO_MODVERSION_MAJOR}@${GO_MODVERSION} +# MASTER_SITES+= ${GO_GOPROXY}/${GO_MODNAME:C/([A-Z])/!\1/g:tl}/v${GO_MODVERSION_MAJOR}/@v/ +# .else +# WRKSRC= ${WRKDIR}/${GO_MODNAME}@${GO_MODVERSION} MASTER_SITES+= ${GO_GOPROXY}/${GO_MODNAME:C/([A-Z])/!\1/g:tl}/@v/ +# .endif DISTFILES+= ${GO_MODFILE} ${GO_DISTFILE} WRKSRC= ${WRKDIR}/${GO_MODNAME}@${GO_MODVERSION} +. endif + . endif EXTRACT_ONLY?= ${DISTFILES:N*.mod\:*:N*.mod:C/:.*//} DIST_SUBDIR= go/${PKGORIGIN:S,/,_,g}/${DISTNAME} -FETCH_DEPENDS+= ${GO_CMD}:${GO_PORT} \ - ca_root_nss>0:security/ca_root_nss +FETCH_DEPENDS+= ${GO_CMD}:${GO_PORT} USES+= zip . else GO_ENV+= GO_NO_VENDOR_CHECKS=1 diff --git a/Mk/Uses/gssapi.mk b/Mk/Uses/gssapi.mk index c1b3d5954c3b..fecf29895a5a 100644 --- a/Mk/Uses/gssapi.mk +++ b/Mk/Uses/gssapi.mk @@ -8,7 +8,7 @@ # flags is a special suffix to define CFLAGS, LDFLAGS, and LDADD. # ("base,flags") # -# MAINTAINER: hrs@FreeBSD.org +# MAINTAINER: hrs@FreeBSD.org, cy@FreeBSD.org # # User defined variables: # HEIMDAL_HOME (default: ${LOCALBASE}) @@ -86,6 +86,18 @@ _local:= ${_A} . if ${SSL_DEFAULT} != base IGNORE= You are using OpenSSL from ports and have selected GSSAPI from base, please select another GSSAPI value . endif +. if exists(/usr/libexec/krb5kdc) + # Base has MIT KRB5 installed +KRB5_HOME?= /usr +GSSAPIBASEDIR= ${KRB5_HOME} +GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib +GSSAPIINCDIR= ${GSSAPIBASEDIR}/include +_HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5/krb5.h +GSSAPICPPFLAGS= -I"${GSSAPIINCDIR}" +GSSAPILIBS= -lkrb5 -lgssapi -lgssapi_krb5 +GSSAPILDFLAGS= +. else + # Base has Heimdal KRB5 installed HEIMDAL_HOME= /usr GSSAPIBASEDIR= ${HEIMDAL_HOME} GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib @@ -94,7 +106,9 @@ _HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h GSSAPICPPFLAGS= -I"${GSSAPIINCDIR}" GSSAPILIBS= -lkrb5 -lgssapi -lgssapi_krb5 GSSAPILDFLAGS= +. endif . elif ${_local} == "heimdal" + # Heimdal port selected HEIMDAL_HOME?= ${LOCALBASE} GSSAPIBASEDIR= ${HEIMDAL_HOME} GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib/heimdal @@ -111,11 +125,12 @@ GSSAPILIBS= -lkrb5 -lgssapi GSSAPILDFLAGS= -L"${GSSAPILIBDIR}" _RPATH= ${GSSAPILIBDIR} . elif ${_local} == "mit" + # MIT KRB5 port selected KRB5_HOME?= ${LOCALBASE} GSSAPIBASEDIR= ${KRB5_HOME} GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib GSSAPIINCDIR= ${GSSAPIBASEDIR}/include -_HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h +_HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5/krb5.h . if !defined(_KRB_BOOTSTRAP) BUILD_DEPENDS+= ${_MITKRB5_DEPENDS} RUN_DEPENDS+= ${_MITKRB5_DEPENDS} diff --git a/Mk/Uses/gstreamer.mk b/Mk/Uses/gstreamer.mk index 8317a320f275..221b146a2128 100644 --- a/Mk/Uses/gstreamer.mk +++ b/Mk/Uses/gstreamer.mk @@ -1,12 +1,18 @@ +# Support for GStreamer-related libraries and plugins # -# gstreamer.mk - Support for gstreamer-plugins-based ports. -# +# Feature: gstreamer # Usage: -# USES= gstreamer[:version] -# USE_GSTREAMER= [list of components] +# USES= gstreamer[:version][,arg,...] +# USE_GSTREAMER= [list of components] +# +# Valid ARGS: <version>, _internal +# +# version: 1 -- default (this may be omitted since there is +# currently only one supported version) +# _internal: Only intended for use by multimedia/gstreamer1 to +# define specific variables so as not depend on itself # -# Supported versions: 1 -- default -# # +# MAINTAINER: multimedia@FreeBSD.org .if ! defined(_INCLUDE_USES_GSTREAMER_MK) _INCLUDE_USES_GSTREAMER_MK= YES @@ -22,7 +28,7 @@ _GST_VER= # . if empty(_GST_VER) _GST_VER= ${ver} . else -INGORE= Incorrect USES=gstreamer:${gstramer_ARGS} - multiple versions defined +IGNORE= Incorrect USES=gstreamer:${gstreamer_ARGS} - multiple versions defined . endif . endif . endfor @@ -33,32 +39,43 @@ _GST_VER= ${_GST_VER_DEFAULT} #== Component setup -_GST1_VERSION= 1.22.10 +# When modifying _GST1_VERSION, be sure to also update distinfo for the +# following ports: +# - multimedia/gstreamer1 +# - multimedia/gstreamer1-editing-services +# - multimedia/gstreamer1-libav +# - multimedia/gstreamer1-plugins (via `make makesum-gst1`) +# - multimedia/gstreamer1-rtsp-server +# - multimedia/gstreamer1-vaapi +# - multimedia/py-gstreamer1 +_GST1_VERSION= 1.26.3 _GST1_LIB_VER= 1.0 +_GST1_SOVERSION= 0.${_GST1_VERSION:R:E}${${_GST1_VERSION:E} > 9:?:0}${_GST1_VERSION:E}.0 _GST1_CATEGORIES= audio comms devel ftp graphics multimedia net security \ - sysutils www x11 x11-toolkits -_GST1_PLUGINS_audio= a52dec amrnb amrwbdec bs2b cdparanoia chromaprint faac \ - faad flac flite gme gsm jack ladspa lame lv2 modplug \ - mpg123 musepack ogg openmpt opus pulse shout2 sidplay \ + sysutils textproc www x11 x11-toolkits +_GST1_PLUGINS_audio= a52dec alsa amrnb amrwbdec bs2b cdparanoia chromaprint faac \ + faad fdkaac flac flite gme gsm jack ladspa lame lv2 modplug \ + mpg123 ogg openmpt opus pulse shout2 sidplay \ sndfile sndio soundtouch speex taglib twolame vorbis \ wavpack webrtcdsp _GST1_PLUGINS_comms= spandsp _GST1_PLUGINS_devel= soup _GST1_PLUGINS_ftp= curl -_GST1_PLUGINS_graphics= aalib cairo gdkpixbuf gl jpeg kms libcaca libvisual \ - opencv openexr openjpeg png qt rsvg vulkan webp zbar +_GST1_PLUGINS_graphics= aalib cairo gdkpixbuf gl jpeg kms libcaca libvisual \ + opencv openexr openjpeg png rsvg vulkan webp zbar _GST1_PLUGINS_multimedia= aom assrender bad dash dts dv dvdread \ - editing-services gnonlin good hls libav libde265 \ - mpeg2dec mpeg2enc mplex mm openh264 resindvd \ - smoothstreaming theora ttml ugly v4l2 vpx x264 x265 \ - zxing -_GST1_PLUGINS_net= srtp + editing-services good hls libav libde265 \ + mpeg2dec mpeg2enc mplex mm msdk openh264 resindvd \ + rtsp-server rust smoothstreaming theora ttml ugly \ + v4l2 vaapi vpx webrtc x264 x265 +_GST1_PLUGINS_net= sctp srtp _GST1_PLUGINS_security= dtls _GST1_PLUGINS_sysutils= cdio -_GST1_PLUGINS_www= neon +_GST1_PLUGINS_textproc= zxing +_GST1_PLUGINS_www= neon srt _GST1_PLUGINS_x11= x ximagesrc -_GST1_PLUGINS_x11-toolkits= gtk pango +_GST1_PLUGINS_x11-toolkits= gtk pango qt5 qt6 # == Unversioned information @@ -67,6 +84,8 @@ _GST_PLUGINS_BASE= bad core good ugly libgstreamer plugins _GST_PLUGINS_VER:= ${_GST${_GST_VER}_CATEGORIES:S/^/\${_GST${_GST_VER}_PLUGINS_/:S/$/}/} _GST_VERSION= ${_GST${_GST_VER}_VERSION} +_GST_LIB_VER= ${_GST${_GST_VER}_LIB_VER} +_GST_SOVERSION= ${_GST${_GST_VER}_SOVERSION} # List of all available components _USE_GSTREAMER_ALL= ${_GST_PLUGINS_BASE} \ @@ -85,7 +104,7 @@ gst-bad_IMPL= # gst-core_PORT= multimedia/gstreamer${_GST_VER}-plugins-core gst-core_IMPL= # -gst-core_GST1_VERSION= 1.16 +gst-core_GST1_VERSION= ${_GST1_VERSION:R} gst-core_VERSION= ${gst-core_GST${_GST_VER}_VERSION} gst-good_PORT= multimedia/gstreamer${_GST_VER}-plugins-good @@ -97,11 +116,14 @@ gst-ugly_IMPL= # gst-libgstreamer_LIB= libgstreamer${_GST${_GST_VER}_LIB_VER:D-${_GST${_GST_VER}_LIB_VER}}.so gst-libgstreamer_PORT= multimedia/gstreamer${_GST_VER} -#==== Audio Plugins Section +#==== audio plugins section gst-a52dec_PORT= audio/gstreamer${_GST_VER}-plugins-a52dec gst-a52dec_IMPL= ugly +gst-alsa_PORT= audio/gstreamer${_GST_VER}-plugins-alsa +gst-alsa_IMPL= # + gst-amrnb_PORT= audio/gstreamer${_GST_VER}-plugins-amrnb gst-amrnb_IMPL= ugly @@ -123,6 +145,9 @@ gst-faac_IMPL= bad gst-faad_PORT= audio/gstreamer${_GST_VER}-plugins-faad gst-faad_IMPL= bad +gst-fdkaac_PORT= audio/gstreamer${_GST_VER}-plugins-fdkaac +gst-fdkaac_IMPL= bad + gst-flac_PORT= audio/gstreamer${_GST_VER}-plugins-flac gst-flac_IMPL= good @@ -153,15 +178,12 @@ gst-modplug_IMPL= bad gst-mpg123_PORT= audio/gstreamer${_GST_VER}-plugins-mpg123 gst-mpg123_IMPL= ugly -gst-musepack_PORT= audio/gstreamer${_GST_VER}-plugins-musepack -gst-musepack_IMPL= bad - -gst-neon_PORT= www/gstreamer${_GST_VER}-plugins-neon -gst-neon_IMPL= bad - gst-ogg_PORT= audio/gstreamer${_GST_VER}-plugins-ogg gst-ogg_IMPL= # +gst-openmpt_PORT= audio/gstreamer${_GST_VER}-plugins-openmpt +gst-openmpt_IMPL= bad + gst-opus_PORT= audio/gstreamer${_GST_VER}-plugins-opus gst-opus_IMPL= # @@ -174,13 +196,14 @@ gst-shout2_IMPL= good gst-sidplay_PORT= audio/gstreamer${_GST_VER}-plugins-sidplay gst-sidplay_IMPL= ugly -gst-sndio_PORT= audio/gstreamer${_GST_VER}-plugins-sndio -gst-sndio_IMPL= # -gst-sndio_VERSION= 1.8.0 - gst-sndfile_PORT= audio/gstreamer${_GST_VER}-plugins-sndfile gst-sndfile_IMPL= bad +gst-sndio_PORT= audio/gstreamer${_GST_VER}-plugins-sndio +gst-sndio_IMPL= # +gst-sndio_GST1_VERSION= 1.24.0 +gst-sndio_VERSION= ${gst-sndio_GST${_GST_VER}_VERSION} + gst-soundtouch_PORT= audio/gstreamer${_GST_VER}-plugins-soundtouch gst-soundtouch_IMPL= bad @@ -222,12 +245,6 @@ gst-curl_IMPL= bad gst-aalib_PORT= graphics/gstreamer${_GST_VER}-plugins-aalib gst-aalib_IMPL= good -gst-aom_PORT= multimedia/gstreamer${_GST_VER}-plugins-aom -gst-aom_IMPL= bad - -gst-assrender_PORT= multimedia/gstreamer${_GST_VER}-plugins-assrender -gst-assrender_IMPL= bad - gst-cairo_PORT= graphics/gstreamer${_GST_VER}-plugins-cairo gst-cairo_IMPL= good @@ -258,18 +275,15 @@ gst-openexr_IMPL= bad gst-openjpeg_PORT= graphics/gstreamer${_GST_VER}-plugins-openjpeg gst-openjpeg_IMPL= bad -gst-openmpt_PORT= audio/gstreamer${_GST_VER}-plugins-openmpt -gst-openmpt_IMPL= bad - gst-png_PORT= graphics/gstreamer${_GST_VER}-plugins-png gst-png_IMPL= good -gst-qt_PORT= graphics/gstreamer${_GST_VER}-plugins-qt -gst-qt_IMPL= good - gst-rsvg_PORT= graphics/gstreamer${_GST_VER}-plugins-rsvg gst-rsvg_IMPL= bad +gst-vulkan_PORT= graphics/gstreamer${_GST_VER}-plugins-vulkan +gst-vulkan_IMPL= bad + gst-webp_PORT= graphics/gstreamer${_GST_VER}-plugins-webp gst-webp_IMPL= bad @@ -278,25 +292,27 @@ gst-zbar_IMPL= bad #==== multimedia plugins section +gst-aom_PORT= multimedia/gstreamer${_GST_VER}-plugins-aom +gst-aom_IMPL= bad + +gst-assrender_PORT= multimedia/gstreamer${_GST_VER}-plugins-assrender +gst-assrender_IMPL= bad + gst-dash_PORT= multimedia/gstreamer${_GST_VER}-plugins-dash gst-dash_IMPL= bad gst-dvdread_PORT= multimedia/gstreamer${_GST_VER}-plugins-dvdread gst-dvdread_IMPL= ugly -gst-editing-services_PORT= multimedia/gstreamer${_GST_VER}-editing-services -gst-editing-services_SUFFIX= # -gst-editing-services_IMPL= # - gst-dts_PORT= multimedia/gstreamer${_GST_VER}-plugins-dts gst-dts_IMPL= bad gst-dv_PORT= multimedia/gstreamer${_GST_VER}-plugins-dv gst-dv_IMPL= good -gst-gnonlin_PORT= multimedia/gstreamer${_GST_VER}-plugins-gnonlin -gst-gnonlin_IMPL= good -gst-gnonlin_VERSION= 1.4.0 +gst-editing-services_PORT= multimedia/gstreamer${_GST_VER}-editing-services +gst-editing-services_SUFFIX= # +gst-editing-services_IMPL= # gst-hls_PORT= multimedia/gstreamer${_GST_VER}-plugins-hls gst-hls_IMPL= bad @@ -324,33 +340,45 @@ gst-mpeg2enc_IMPL= bad gst-mplex_PORT= multimedia/gstreamer${_GST_VER}-plugins-mplex gst-mplex_IMPL= bad +gst-msdk_PORT= multimedia/gstreamer${_GST_VER}-plugins-msdk +gst-msdk_IMPL= bad + gst-openh264_PORT= multimedia/gstreamer${_GST_VER}-plugins-openh264 gst-openh264_IMPL= bad +gst-resindvd_PORT= multimedia/gstreamer${_GST_VER}-plugins-resindvd +gst-resindvd_IMPL= bad + +gst-rtsp-server_PORT= multimedia/gstreamer${_GST_VER}-rtsp-server +gst-rtsp-server_SUFFIX= # +gst-rtsp-server_IMPL= # + +gst-rust_PORT= multimedia/gstreamer${_GST_VER}-plugins-rust +gst-rust_IMPL= # +gst-rust_GST1_VERSION= 0.13.6 +gst-rust_VERSION= ${gst-rust_GST${_GST_VER}_VERSION} + gst-smoothstreaming_PORT= multimedia/gstreamer${_GST_VER}-plugins-smoothstreaming gst-smoothstreaming_IMPL= bad +gst-theora_PORT= multimedia/gstreamer${_GST_VER}-plugins-theora +gst-theora_IMPL= # + gst-ttml_PORT= multimedia/gstreamer${_GST_VER}-plugins-ttml gst-ttml_IMPL= bad gst-v4l2_PORT= multimedia/gstreamer${_GST_VER}-plugins-v4l2 gst-v4l2_IMPL= good -# hmmm -gst-vaapi_PORT= multimedia/gstreamer-vaapi -gst-vaapi_IMPL= bad +gst-vaapi_PORT= multimedia/gstreamer${_GST_VER}-vaapi +gst-vaapi_SUFFIX= # +gst-vaapi_IMPL= # gst-vpx_PORT= multimedia/gstreamer${_GST_VER}-plugins-vpx gst-vpx_IMPL= good -gst-vulkan_PORT= graphics/gstreamer${_GST_VER}-plugins-vulkan -gst-vulkan_IMPL= bad - -gst-resindvd_PORT= multimedia/gstreamer${_GST_VER}-plugins-resindvd -gst-resindvd_IMPL= bad - -gst-theora_PORT= multimedia/gstreamer${_GST_VER}-plugins-theora -gst-theora_IMPL= # +gst-webrtc_PORT= multimedia/gstreamer${_GST_VER}-plugins-webrtc +gst-webrtc_IMPL= bad gst-x264_PORT= multimedia/gstreamer${_GST_VER}-plugins-x264 gst-x264_IMPL= ugly @@ -358,10 +386,10 @@ gst-x264_IMPL= ugly gst-x265_PORT= multimedia/gstreamer${_GST_VER}-plugins-x265 gst-x265_IMPL= bad -gst-zxing_PORT= textproc/gstreamer${_GST_VER}-plugins-zxing -gst-zxing_IMPL= bad +#==== net plugins section -#==== Net Plugins Section +gst-sctp_PORT= net/gstreamer${_GST_VER}-plugins-sctp +gst-sctp_IMPL= bad gst-srtp_PORT= net/gstreamer${_GST_VER}-plugins-srtp gst-srtp_IMPL= bad @@ -376,6 +404,19 @@ gst-dtls_IMPL= bad gst-cdio_PORT= sysutils/gstreamer${_GST_VER}-plugins-cdio gst-cdio_IMPL= ugly +#==== textproc plugins section + +gst-zxing_PORT= textproc/gstreamer${_GST_VER}-plugins-zxing +gst-zxing_IMPL= bad + +#==== www plugins section + +gst-neon_PORT= www/gstreamer${_GST_VER}-plugins-neon +gst-neon_IMPL= bad + +gst-srt_PORT= www/gstreamer${_GST_VER}-plugins-srt +gst-srt_IMPL= bad + #==== x11 plugins section gst-x_PORT= x11/gstreamer${_GST_VER}-plugins-x @@ -392,26 +433,33 @@ gst-gtk_IMPL= bad gst-pango_PORT= x11-toolkits/gstreamer${_GST_VER}-plugins-pango gst-pango_IMPL= # +gst-qt5_PORT= x11-toolkits/gstreamer${_GST_VER}-plugins-qt5 +gst-qt5_IMPL= good + +gst-qt6_PORT= x11-toolkits/gstreamer${_GST_VER}-plugins-qt6 +gst-qt6_IMPL= good + #== Dependency creation +. if empty(gstreamer_ARGS:M_internal) _GST_BR_DEPENDS= # _GST_LIB_DEPENDS= # USE_GSTREAMER?= # # everything wants this USE_GSTREAMER+= libgstreamer -. if ${PORTDIRNAME} != gstreamer${_GST_VER}-plugins +. if ${PORTDIRNAME} != gstreamer${_GST_VER}-plugins USE_GSTREAMER+= plugins -. endif +. endif # Gather all Impl values -_GST_IMPL_LIST:= ${USE_GSTREAMER:S/^/\${gst-/:S/$/_IMPL}/} +_GST_IMPL_LIST:= ${USE_GSTREAMER:S/^/\${gst-/:S/$/_IMPL}/} # Combine the wanted copmonents and the required implementations _USE_GSTREAMER= ${USE_GSTREAMER} \ ${_GST_IMPL_LIST} -. for component in ${_USE_GSTREAMER:O:u} +. for component in ${_USE_GSTREAMER:O:u} # Fill in the common default component values gst-${component}_VERSION?= ${_GST_VERSION} gst-${component}_NAME?= ${component} @@ -419,18 +467,19 @@ gst-${component}_PREFIX?= gstreamer${_GST_VER}- gst-${component}_SUFFIX?= plugins- gst-${component}_PKG?= ${gst-${component}_PREFIX}${gst-${component}_SUFFIX}${gst-${component}_NAME} -. if empty(_USE_GSTREAMER_ALL:M${component}) +. if empty(_USE_GSTREAMER_ALL:M${component}) IGNORE= unknown gstreamer component '${component}' for gstreamer:${_GST_VER} -. endif -. if !empty(gst-${component}_LIB) +. endif +. if !empty(gst-${component}_LIB) _GST_LIB_DEPENDS+= ${gst-${component}_LIB}:${gst-${component}_PORT} -. else +. else _GST_BR_DEPENDS+= ${gst-${component}_PKG}>=${gst-${component}_VERSION}:${gst-${component}_PORT} -. endif -. endfor +. endif +. endfor -LIB_DEPENDS+= ${_GST_LIB_DEPENDS:O:u} -BUILD_DEPENDS+= ${_GST_BR_DEPENDS:O:u} -RUN_DEPENDS+= ${_GST_BR_DEPENDS:O:u} +LIB_DEPENDS+= ${_GST_LIB_DEPENDS:O:u} +BUILD_DEPENDS+= ${_GST_BR_DEPENDS:O:u} +RUN_DEPENDS+= ${_GST_BR_DEPENDS:O:u} +. endif .endif diff --git a/Mk/Uses/horde.mk b/Mk/Uses/horde.mk index 39f554a72c42..1704530861cb 100644 --- a/Mk/Uses/horde.mk +++ b/Mk/Uses/horde.mk @@ -113,7 +113,7 @@ horde-Horde_Timezone-DEPEND= ${PEARDIR}/Horde/Timezone.php:devel/pear-Horde_Time horde-Horde_Token-DEPEND= ${PEARDIR}/Horde/Token.php:devel/pear-Horde_Token horde-Horde_Translation-DEPEND= ${PEARDIR}/Horde/Translation.php:devel/pear-Horde_Translation horde-Horde_Tree-DEPEND= ${PEARDIR}/Horde/Tree.php:devel/pear-Horde_Tree -horde-Horde_Vfs-DEPEND= ${PEARDIR}/Horde/Vfs.php:sysutils/pear-Horde_Vfs +horde-Horde_Vfs-DEPEND= ${PEARDIR}/Horde/Vfs.php:filesystems/pear-Horde_Vfs horde-Horde_View-DEPEND= ${PEARDIR}/Horde/View.php:devel/pear-Horde_View horde-Horde_Xml_Element-DEPEND= ${PEARDIR}/Horde/Xml/Element.php:textproc/pear-Horde_Xml_Element horde-Horde_Xml_Wbxml-DEPEND= ${PEARDIR}/Horde/Xml/Wbxml.php:textproc/pear-Horde_Xml_Wbxml diff --git a/Mk/bsd.java.mk b/Mk/Uses/java.mk index 91ea9516c846..8588884e51c5 100644 --- a/Mk/bsd.java.mk +++ b/Mk/Uses/java.mk @@ -1,51 +1,42 @@ -#-*- tab-width: 4; -*- -# ex:ts=4 +# Provide support for Java (java) +# Feature: java +# Usage: USES=java or USES=java:args # -# bsd.java.mk - Support for Java-based ports. +# Defaults to USES=java:build,run if no arguments are provided and NO_BUILD is +# undefined. If NO_BUILD is defined, USES=java:run is used. # +# Valid ARGS: ant build extract +# +# ant - Should be defined when the port uses Apache Ant. Ant is thus +# considered to be the sub-make command. When no 'do-build' +# target is defined by the port, a default one will be set +# that simply runs Ant according to MAKE_ENV, MAKE_ARGS and +# ALL_TARGET. Read the documentation in bsd.port.mk for more +# information. +# +# build - Add the JDK port to the build dependencies +# +# extract - Add the JDK port to the extract dependencies +# +# run - Add the JDK port to the run dependencies # # For FreeBSD committers: # Please send all suggested changes to the maintainer instead of committing # them yourself. # - -.if !defined(Java_Include) - -Java_Include= bsd.java.mk -Java_Include_MAINTAINER= java@FreeBSD.org - #------------------------------------------------------------------------------- # Variables that each port can define: # -# USE_JAVA Should be defined to the remaining variables to have any -# effect -# # JAVA_VERSION List of space-separated suitable java versions for the -# port. An optional "+" allows you to specify a range of -# versions. (allowed values: 8[+] 11[+] 17[+] 18[+] 19[+] -# 20[+] 21[+]) +# port. An optional "+" allows you to specify a range of +# versions. (allowed values: 8[+] 11[+] 17[+] 18[+] 19[+] +# 20[+] 21[+] 22[+] 23[+] 24[+]) # -# JAVA_OS List of space-separated suitable JDK port operating systems -# for the port. (allowed values: native linux) +# JAVA_OS List of space-separated suitable JDK port operating systems +# for the port. (allowed values: native linux) # # JAVA_VENDOR List of space-separated suitable JDK port vendors for the -# port. (allowed values: openjdk oracle) -# -# JAVA_BUILD When set, it means that the selected JDK port should be -# added to build dependencies for the port. -# -# JAVA_EXTRACT This variable works exactly the same as JAVA_BUILD but -# regarding extract dependencies. -# -# JAVA_RUN This variable works exactly the same as JAVA_BUILD but -# regarding run dependencies. -# -# USE_ANT Should be defined when the port uses Apache Ant. Ant is thus -# considered to be the sub-make command. When no 'do-build' -# target is defined by the port, a default one will be set -# that simply runs Ant according to MAKE_ENV, MAKE_ARGS and -# ALL_TARGET. Read the documentation in bsd.port.mk for more -# information. +# port. (allowed values: openjdk oracle) # #------------------------------------------------------------------------------- # Variables defined for the port: @@ -125,12 +116,62 @@ Java_Include_MAINTAINER= java@FreeBSD.org # Stage 4: Add any dependencies if necessary # Stage 5: Define all settings for the port to use # +# MAINTAINER: java@FreeBSD.org -. if defined(USE_JAVA) +.if !defined(_INCLUDE_USES_JAVA_MK) -. if !defined(JAVA_VERSION) && empty(USE_JAVA:C/[0-9]*[\.]*[0-9]*[+]*//) -JAVA_VERSION=${USE_JAVA} +_INCLUDE_USES_JAVA_MK= yes + +_JAVA_VALID_ARGS= ant build extract run +_JAVA_UNKNOWN_ARGS= +. for arg in ${java_ARGS} +. if empty(_JAVA_VALID_ARGS:M${arg}) +_JAVA_UNKNOWN_ARGS+= ${arg} +. endif +. endfor +. if !empty(_JAVA_UNKNOWN_ARGS) +IGNORE= has unknown USES=java arguments: ${_JAVA_UNKNOWN_ARGS} +. endif +. if empty(java_ARGS) +. if defined(NO_BUILD) +java_ARGS= run +. else +java_ARGS= build,run . endif +. endif + +. if !empty(java_ARGS) +.undef _USE_JAVA_ANT +.undef _USE_JAVA_BUILD +.undef _USE_JAVA_EXTRACT +.undef _USE_JAVA_RUN +_JAVA_ARGS= ${java_ARGS:S/,/ /g} +. if ${_JAVA_ARGS:Mextract} +_USE_JAVA_EXTRACT= yes +_JAVA_ARGS:= ${_JAVA_ARGS:Nextract} +. endif +. if ${_JAVA_ARGS:Mant} +. if defined(NO_BUILD) +IGNORE= Makefile error: NO_BUILD and USES=java:ant cannot be set at the same time +. else +_USE_JAVA_ANT= yes +_USE_JAVA_BUILD= yes +_JAVA_ARGS:= ${_JAVA_ARGS:Nant} +. endif +. endif +. if ${_JAVA_ARGS:Mbuild} +. if defined(NO_BUILD) +IGNORE= Makefile error: NO_BUILD and USES=java:build cannot be set at the same time +. else +_USE_JAVA_BUILD= yes +_JAVA_ARGS:= ${_JAVA_ARGS:Nbuild} +. endif +. endif +. if ${_JAVA_ARGS:Mrun} +_USE_JAVA_RUN= yes +_JAVA_ARGS:= ${_JAVA_ARGS:Nrun} +. endif +. endif # !empty(java_ARGS) #------------------------------------------------------------------------------- # Stage 1: Define constants @@ -149,18 +190,18 @@ PLIST_SUB+= JAVASHAREDIR="${JAVASHAREDIR:S,^${PREFIX}/,,}" \ SUB_LIST+= JAVASHAREDIR="${JAVASHAREDIR}" \ JAVAJARDIR="${JAVAJARDIR}" \ JAVALIBDIR="${JAVALIBDIR}" -. if defined(JAVA_VERSION) +. if defined(JAVA_VERSION) SUB_LIST+= JAVA_VERSION="${JAVA_VERSION}" -. endif -. if defined(JAVA_VENDOR) +. endif +. if defined(JAVA_VENDOR) SUB_LIST+= JAVA_VENDOR="${JAVA_VENDOR}" -. endif -. if defined(JAVA_OS) +. endif +. if defined(JAVA_OS) SUB_LIST+= JAVA_OS="${JAVA_OS}" -. endif +. endif # The complete list of Java versions, os and vendors supported. -__JAVA_VERSION_LIST= 8 11 17 18 19 20 21 +__JAVA_VERSION_LIST= 8 11 17 18 19 20 21 22 23 24 _JAVA_VERSION_LIST= ${__JAVA_VERSION_LIST} ${__JAVA_VERSION_LIST:S/$/+/} _JAVA_OS_LIST= native linux _JAVA_VENDOR_LIST= openjdk oracle @@ -181,6 +222,12 @@ _JAVA_PORT_NATIVE_OPENJDK_JDK_20_INFO= PORT=java/openjdk20 HOME=${LOCALBASE}/ VERSION=20 OS=native VENDOR=openjdk _JAVA_PORT_NATIVE_OPENJDK_JDK_21_INFO= PORT=java/openjdk21 HOME=${LOCALBASE}/openjdk21 \ VERSION=21 OS=native VENDOR=openjdk +_JAVA_PORT_NATIVE_OPENJDK_JDK_22_INFO= PORT=java/openjdk22 HOME=${LOCALBASE}/openjdk22 \ + VERSION=22 OS=native VENDOR=openjdk +_JAVA_PORT_NATIVE_OPENJDK_JDK_23_INFO= PORT=java/openjdk23 HOME=${LOCALBASE}/openjdk23 \ + VERSION=23 OS=native VENDOR=openjdk +_JAVA_PORT_NATIVE_OPENJDK_JDK_24_INFO= PORT=java/openjdk24 HOME=${LOCALBASE}/openjdk24 \ + VERSION=24 OS=native VENDOR=openjdk _JAVA_PORT_LINUX_ORACLE_JDK_8_INFO= PORT=java/linux-oracle-jdk18 HOME=${LOCALBASE}/linux-oracle-jdk1.8.0 \ VERSION=8 OS=linux VENDOR=oracle @@ -201,6 +248,9 @@ __JAVA_PORTS_ALL= \ JAVA_PORT_NATIVE_OPENJDK_JDK_19 \ JAVA_PORT_NATIVE_OPENJDK_JDK_20 \ JAVA_PORT_NATIVE_OPENJDK_JDK_21 \ + JAVA_PORT_NATIVE_OPENJDK_JDK_22 \ + JAVA_PORT_NATIVE_OPENJDK_JDK_23 \ + JAVA_PORT_NATIVE_OPENJDK_JDK_24 \ JAVA_PORT_LINUX_ORACLE_JDK_8 _JAVA_PORTS_ALL= ${JAVA_PREFERRED_PORTS} \ JAVA_PORT_NATIVE_OPENJDK_JDK_${JAVA_DEFAULT} \ @@ -215,109 +265,98 @@ _JDK_FILE=bin/javac # suitable # -# From here, the port is using bsd.java.mk v2.0 # Error checking: defined JAVA_{HOME,PORT,PORT_VERSION,PORT_VENDOR,PORT_OS} -. for variable in JAVA_HOME JAVA_PORT JAVA_PORT_VERSION JAVA_PORT_VENDOR JAVA_PORT_OS -. if defined(${variable}) +. for variable in JAVA_HOME JAVA_PORT JAVA_PORT_VERSION JAVA_PORT_VENDOR JAVA_PORT_OS +. if defined(${variable}) check-makevars:: @${ECHO_CMD} "${PKGNAME}: Environment error: \"${variable}\" should not be defined -- clearing." .undef ${variable} -. endif -. endfor +. endif +. endfor # Error checking: JAVA_VERSION -. if defined(JAVA_VERSION) -. if !defined(_JAVA_VERSION_LIST_REGEXP) +. if defined(JAVA_VERSION) +. if !defined(_JAVA_VERSION_LIST_REGEXP) _JAVA_VERSION_LIST_REGEXP= ${_JAVA_VERSION_LIST:C/\+/\\+/:ts|} -. endif +. endif check-makevars:: @( test ! -z "${JAVA_VERSION}" && ( ${ECHO_CMD} "${JAVA_VERSION}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_VERSION_LIST_REGEXP}")) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_VERSION}\" is not a valid value for JAVA_VERSION. It should be one or more of: ${__JAVA_VERSION_LIST} (with an optional \"+\" suffix.)"; ${FALSE}) -. endif +. endif # Error checking: JAVA_VENDOR -. if defined(JAVA_VENDOR) -. if !defined(_JAVA_VENDOR_LIST_REGEXP) +. if defined(JAVA_VENDOR) +. if !defined(_JAVA_VENDOR_LIST_REGEXP) _JAVA_VENDOR_LIST_REGEXP= ${_JAVA_VENDOR_LIST:ts|} -. endif +. endif check-makevars:: @( test ! -z "${JAVA_VENDOR}" && ( ${ECHO_CMD} "${JAVA_VENDOR}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_VENDOR_LIST_REGEXP}" )) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_VENDOR}\" is not a valid value for JAVA_VENDOR. It should be one or more of: ${_JAVA_VENDOR_LIST}"; \ ${FALSE}) -. endif +. endif # Error checking: JAVA_OS -. if defined(JAVA_OS) -. if !defined(_JAVA_OS_LIST_REGEXP) +. if defined(JAVA_OS) +. if !defined(_JAVA_OS_LIST_REGEXP) _JAVA_OS_LIST_REGEXP= ${_JAVA_OS_LIST:ts|} -. endif +. endif check-makevars:: @( test ! -z "${JAVA_OS}" && ( ${ECHO_CMD} "${JAVA_OS}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_OS_LIST_REGEXP}")) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_OS}\" is not a valid value for JAVA_OS. It should be one or more of: ${_JAVA_OS_LIST}"; \ ${FALSE}) -. endif - -# Set default values for JAVA_BUILD and JAVA_RUN -# When nothing is set, assume JAVA_BUILD=jdk and JAVA_RUN=jre -# (unless NO_BUILD is set) -. if !defined(JAVA_EXTRACT) && !defined(JAVA_BUILD) && !defined(JAVA_RUN) -. if !defined(NO_BUILD) -JAVA_BUILD= jdk -. endif -JAVA_RUN= jre -. endif +. endif # JDK dependency setting . undef _JAVA_PORTS_INSTALLED . undef _JAVA_PORTS_POSSIBLE -. if defined(JAVA_VERSION) -_JAVA_VERSION= ${JAVA_VERSION:S/^8+/8 11+/:S/^11+/11 17+/:S/^17+/17 18+/:S/^18+/18 19+/:S/^19+/19 20+/:S/^20+/20 21+/:S/^21+/21/} -. else +. if defined(JAVA_VERSION) +_JAVA_VERSION= ${JAVA_VERSION:S/^8+/8 11+/:S/^11+/11 17+/:S/^17+/17 18+/:S/^18+/18 19+/:S/^19+/19 20+/:S/^20+/20 21+/:S/^21+/21 22+/:S/^22+/22 23+/:S/^23+/23 24+/:S/^24+/24/} +. else _JAVA_VERSION= ${__JAVA_VERSION_LIST} -. endif -. if defined(JAVA_OS) +. endif +. if defined(JAVA_OS) _JAVA_OS= ${JAVA_OS} -. else +. else _JAVA_OS= ${_JAVA_OS_LIST} -. endif -. if defined(JAVA_VENDOR) +. endif +. if defined(JAVA_VENDOR) _JAVA_VENDOR= ${JAVA_VENDOR} -. else +. else _JAVA_VENDOR= ${_JAVA_VENDOR_LIST} -. endif +. endif -. for A_JAVA_PORT in ${_JAVA_PORTS_ALL} +. for A_JAVA_PORT in ${_JAVA_PORTS_ALL} A_JAVA_PORT_INFO:= ${A_JAVA_PORT:S/^/\${_/:S/$/_INFO}/} A_JAVA_PORT_HOME= ${A_JAVA_PORT_INFO:MHOME=*:S,HOME=,,} A_JAVA_PORT_VERSION= ${A_JAVA_PORT_INFO:MVERSION=*:S,VERSION=,,} A_JAVA_PORT_OS= ${A_JAVA_PORT_INFO:MOS=*:S,OS=,,} A_JAVA_PORT_VENDOR= ${A_JAVA_PORT_INFO:MVENDOR=*:S,VENDOR=,,} -. if !defined(_JAVA_PORTS_INSTALLED) && exists(${A_JAVA_PORT_HOME}/${_JDK_FILE}) +. if !defined(_JAVA_PORTS_INSTALLED) && exists(${A_JAVA_PORT_HOME}/${_JDK_FILE}) __JAVA_PORTS_INSTALLED+= ${A_JAVA_PORT} -. endif +. endif # Because variables inside for loops are special (directly replaced as strings), # we are allowed to use them inside modifiers, where normally ${FOO:M${BAR}} is # not allowed. # -. for ver in ${A_JAVA_PORT_VERSION} -. for os in ${A_JAVA_PORT_OS} -. for vendor in ${A_JAVA_PORT_VENDOR} -. if ${_JAVA_VERSION:M${ver}} && ${_JAVA_OS:M${os}} && ${_JAVA_VENDOR:M${vendor}} +. for ver in ${A_JAVA_PORT_VERSION} +. for os in ${A_JAVA_PORT_OS} +. for vendor in ${A_JAVA_PORT_VENDOR} +. if ${_JAVA_VERSION:M${ver}} && ${_JAVA_OS:M${os}} && ${_JAVA_VENDOR:M${vendor}} __JAVA_PORTS_POSSIBLE+= ${A_JAVA_PORT} -. endif -. endfor +. endif . endfor . endfor - . endfor -. if !defined(_JAVA_PORTS_INSTALLED) + +. endfor +. if !defined(_JAVA_PORTS_INSTALLED) _JAVA_PORTS_INSTALLED= ${__JAVA_PORTS_INSTALLED:C/ [ ]+/ /g} -. endif +. endif _JAVA_PORTS_POSSIBLE= ${__JAVA_PORTS_POSSIBLE:C/ [ ]+/ /g} @@ -329,27 +368,27 @@ _JAVA_PORTS_POSSIBLE= ${__JAVA_PORTS_POSSIBLE:C/ [ ]+/ /g} . undef _JAVA_PORTS_INSTALLED_POSSIBLE -. for A_JAVA_PORT in ${_JAVA_PORTS_POSSIBLE} +. for A_JAVA_PORT in ${_JAVA_PORTS_POSSIBLE} __JAVA_PORTS_INSTALLED_POSSIBLE+= ${_JAVA_PORTS_INSTALLED:M${A_JAVA_PORT}} -. endfor +. endfor _JAVA_PORTS_INSTALLED_POSSIBLE= ${__JAVA_PORTS_INSTALLED_POSSIBLE:C/[ ]+//g} -. if ${_JAVA_PORTS_INSTALLED_POSSIBLE} != "" -. for i in ${_JAVA_PORTS_INSTALLED_POSSIBLE} -. if !defined(_JAVA_PORTS_INSTALLED_POSSIBLE_shortcircuit) +. if ${_JAVA_PORTS_INSTALLED_POSSIBLE} != "" +. for i in ${_JAVA_PORTS_INSTALLED_POSSIBLE} +. if !defined(_JAVA_PORTS_INSTALLED_POSSIBLE_shortcircuit) _JAVA_PORT= $i _JAVA_PORTS_INSTALLED_POSSIBLE_shortcircuit= 1 -. endif -. endfor +. endif +. endfor # If no installed JDK port fits, then pick one from the list of possible ones -. else -. for i in ${_JAVA_PORTS_POSSIBLE} -. if !defined(_JAVA_PORTS_POSSIBLE_shortcircuit) +. else +. for i in ${_JAVA_PORTS_POSSIBLE} +. if !defined(_JAVA_PORTS_POSSIBLE_shortcircuit) _JAVA_PORT= $i _JAVA_PORTS_POSSIBLE_shortcircuit= 1 -. endif -. endfor -. endif +. endif +. endfor +. endif _JAVA_PORT_INFO:= ${_JAVA_PORT:S/^/\${_/:S/$/_INFO}/} JAVA_PORT= ${_JAVA_PORT_INFO:MPORT=*:S,PORT=,,} @@ -365,48 +404,38 @@ JAVA_PORT_OS_DESCRIPTION:= ${JAVA_PORT_OS:S/^/\${_JAVA_OS_/:S/$/}/} # Stage 4: Add any dependencies if necessary # -# Ant Support: USE_ANT --> JAVA_BUILD=jdk -. if defined(USE_ANT) -JAVA_BUILD= jdk -. endif - # Add the JDK port to the dependencies DEPEND_JAVA= ${JAVA}:${JAVA_PORT} -. if defined(JAVA_EXTRACT) +. if defined(_USE_JAVA_EXTRACT) EXTRACT_DEPENDS+= ${DEPEND_JAVA} -. endif -. if defined(JAVA_BUILD) -. if defined(NO_BUILD) -check-makevars:: - @${ECHO_CMD} "${PKGNAME}: Makefile error: JAVA_BUILD and NO_BUILD cannot be set at the same time."; - @${FALSE} -. endif +. endif +. if defined(_USE_JAVA_BUILD) BUILD_DEPENDS+= ${DEPEND_JAVA} -. endif -. if defined(JAVA_RUN) +. endif +. if defined(_USE_JAVA_RUN) RUN_DEPENDS+= ${DEPEND_JAVA} -. endif +. endif # Ant support: default do-build target -. if defined(USE_ANT) -DESTDIRNAME?= -Dfreebsd.ports.destdir +. if defined(_USE_JAVA_ANT) +DESTDIRNAME= -Dfreebsd.ports.destdir ANT?= ${LOCALBASE}/bin/ant MAKE_ENV+= JAVA_HOME=${JAVA_HOME} BUILD_DEPENDS+= ${ANT}:devel/apache-ant ALL_TARGET?= -. if !target(do-build) +. if !target(do-build) do-build: - @(cd ${BUILD_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} \ - ${ANT} ${MAKE_ARGS} ${ALL_TARGET}) -. endif -. if !target(do-test) && defined(TEST_TARGET) + @(cd ${BUILD_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} \ + ${ANT} ${MAKE_ARGS} ${ALL_TARGET}) +. endif +. if !target(do-test) && defined(TEST_TARGET) TEST_DEPENDS+= ${DEPEND_JAVA} TEST_DEPENDS+= ${ANT}:devel/apache-ant do-test: - @(cd ${TEST_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} \ - ${ANT} ${MAKE_ARGS} ${TEST_TARGET}) -. endif + @(cd ${TEST_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} \ + ${ANT} ${MAKE_ARGS} ${TEST_TARGET}) . endif +. endif #----------------------------------------------------------------------------- # Stage 5: Define all settings for the port to use @@ -416,14 +445,12 @@ do-test: # Define the location of the Java compiler. # Only define JAVAC if a JDK is needed -. undef JAVAC +#. undef JAVAC # Then test if a JAVAC has to be set (JAVA_BUILD==jdk) -. if defined(JAVA_BUILD) -. if (${JAVA_BUILD:tu} == "JDK") && !defined(JAVAC) +. if defined(_USE_JAVA_BUILD) && !defined(JAVAC) JAVAC?= ${JAVA_HOME}/bin/javac -. endif -. endif +. endif # Define the location of some more executables. APPLETVIEWER?= ${JAVA_HOME}/bin/appletviewer @@ -454,9 +481,9 @@ java-debug: @${ECHO_CMD} "JAVA_VERSION= ${JAVA_VERSION} (${_JAVA_VERSION})" @${ECHO_CMD} "JAVA_OS= ${JAVA_OS} (${_JAVA_OS})" @${ECHO_CMD} "JAVA_VENDOR= ${JAVA_VENDOR} (${_JAVA_VENDOR})" - @${ECHO_CMD} "JAVA_BUILD= ${JAVA_BUILD}" - @${ECHO_CMD} "JAVA_RUN= ${JAVA_RUN}" - @${ECHO_CMD} "JAVA_EXTRACT= ${JAVA_EXTRACT}" + @${ECHO_CMD} "JAVA_BUILD= ${_USE_JAVA_BUILD}" + @${ECHO_CMD} "JAVA_RUN= ${_USE_JAVA_RUN}" + @${ECHO_CMD} "JAVA_EXTRACT= ${_USE_JAVA_EXTRACT}" @${ECHO_CMD} "JAVA_DEFAULT= ${JAVA_DEFAULT}" @${ECHO_CMD} @${ECHO_CMD} "# JDK port dependency selection process:" @@ -477,5 +504,4 @@ java-debug: @${ECHO_CMD} "JAVAC= ${JAVAC}" @${ECHO_CMD} "JAVA_CLASSES= ${JAVA_CLASSES}" -. endif .endif diff --git a/Mk/Uses/kde.mk b/Mk/Uses/kde.mk index 089a4fa9f9a4..812619911717 100644 --- a/Mk/Uses/kde.mk +++ b/Mk/Uses/kde.mk @@ -81,53 +81,47 @@ KDE_PLASMA_BRANCH?= ${KDE_PLASMA${_KDE_VERSION}_BRANCH} KDE_FRAMEWORKS_VERSION?= ${KDE_FRAMEWORKS${_KDE_VERSION}_VERSION} KDE_FRAMEWORKS_BRANCH?= ${KDE_FRAMEWORKS${_KDE_VERSION}_BRANCH} -. if ${CATEGORIES:Mkde-devel} KDE_APPLICATIONS_BRANCH?= ${KDE_APPLICATIONS6_BRANCH} KDE_APPLICATIONS_VERSION?= ${KDE_APPLICATIONS6_VERSION} KDE_APPLICATIONS_SHLIB_VER?= ${KDE_APPLICATIONS6_SHLIB_VER} KDE_APPLICATIONS_SHLIB_G_VER?= ${KDE_APPLICATIONS6_SHLIB_G_VER} -PKGNAMESUFFIX?= -devel -. else -KDE_APPLICATIONS_BRANCH?= ${KDE_APPLICATIONS5_BRANCH} -KDE_APPLICATIONS_VERSION?= ${KDE_APPLICATIONS5_VERSION} -KDE_APPLICATIONS_SHLIB_VER?= ${KDE_APPLICATIONS5_SHLIB_VER} -KDE_APPLICATIONS_SHLIB_G_VER?= ${KDE_APPLICATIONS5_SHLIB_G_VER} -. endif - -# Current KDE desktop. -KDE_PLASMA5_VERSION?= 5.27.11 +# Legacy KDE Plasma. +KDE_PLASMA5_VERSION?= 5.27.12 KDE_PLASMA5_BRANCH?= stable -# Next KDE Plasma desktop -KDE_PLASMA6_VERSION?= 6.0.4 +# Current KDE Plasma desktop. +KDE_PLASMA6_VERSION?= 6.4.3 KDE_PLASMA6_BRANCH?= stable -# Current KDE frameworks. -KDE_FRAMEWORKS5_VERSION?= 5.115.0 +# Legacy KDE frameworks (Qt5 based). +KDE_FRAMEWORKS5_VERSION?= 5.116.0 KDE_FRAMEWORKS5_BRANCH?= stable -# Next KDE Frameworks (Qt6 based) -KDE_FRAMEWORKS6_VERSION?= 6.1.0 +# Current KDE Frameworks (Qt6 based). +KDE_FRAMEWORKS6_VERSION?= 6.16.0 KDE_FRAMEWORKS6_BRANCH?= stable -# Current KDE applications. -KDE_APPLICATIONS5_VERSION?= 23.08.5 -KDE_APPLICATIONS5_SHLIB_VER?= 5.24.5 -# G as in KDE Gear, and as in "don't make the variable name longer than required" -KDE_APPLICATIONS5_SHLIB_G_VER?= 23.8.5 -KDE_APPLICATIONS5_BRANCH?= stable - -# Next KDE applications. -KDE_APPLICATIONS6_VERSION?= 24.01.90 -KDE_APPLICATIONS6_SHLIB_VER?= 5.24.3 -# G as in KDE Gear, and as in "don't make the variable name longer than required" -KDE_APPLICATIONS6_SHLIB_G_VER?= 24.01.90 -KDE_APPLICATIONS6_BRANCH?= unstable - -# Extended KDE universe applications. -CALLIGRA_VERSION?= 2.9.11 -CALLIGRA_BRANCH?= stable +# Current KDE applications. Update _${PORTNAME}_PROJECT_VERSION for the following ports: +# devel/kdevelop, games/libkdegames, games/libkmahjongg, graphics/kgraphviewer +KDE_APPLICATIONS6_VERSION?= 25.04.3 +KDE_APPLICATIONS6_SHLIB_VER?= 6.4.3 +# G as in KDE Gear, and as in "don't make the variable name longer than required". +KDE_APPLICATIONS6_SHLIB_G_VER?= ${KDE_APPLICATIONS6_VERSION} +KDE_APPLICATIONS6_BRANCH?= stable + +# Some projects despite being a part of Gear distribution continue to use +# their own versioning with mangled KDE_APPLICATIONS_VERSION as a patchlevel. +# Provide more variables to ease their maintenance. +KDE_APPS_MAJOR= ${KDE_APPLICATIONS_VERSION:R:R} +KDE_APPS_MINOR= ${KDE_APPLICATIONS_VERSION:R:E} +. if ${KDE_APPLICATIONS_BRANCH:Mstable} +KDE_APPS_MICRO= 0${KDE_APPLICATIONS_VERSION:E} +. else +KDE_APPS_MICRO= ${KDE_APPLICATIONS_VERSION:E} +. endif +KDE_APPS_BASED_PATCHLEVEL?= ${KDE_APPS_MAJOR}${KDE_APPS_MINOR}${KDE_APPS_MICRO} + # ============================================================================== # === INSTALLATION PREFIXES AND HEADER LOCATION ================================ @@ -200,12 +194,16 @@ USE_KDE+= doctools:build # Further pass along a SHLIB_VER PLIST_SUB PLIST_SUB+= KDE_APPLICATIONS_SHLIB_VER=${KDE_APPLICATIONS_SHLIB_VER} \ KDE_APPLICATIONS_VERSION_SHORT="${KDE_APPLICATIONS_VERSION:R:R}" +. if defined(_${PORTNAME}_PROJECT_VERSION) +PLIST_SUB+= SHLIB_VER_LONG=${_${PORTNAME}_PROJECT_VERSION}.${KDE_APPS_BASED_PATCHLEVEL} +. endif DIST_SUBDIR?= KDE/release-service/${KDE_APPLICATIONS_VERSION} . elif ${_KDE_CATEGORY:Mkde-plasma} PORTVERSION?= ${KDE_PLASMA_VERSION} PKGNAMEPREFIX?= plasma${_KDE_VERSION}- MASTER_SITES?= KDE/${KDE_PLASMA_BRANCH}/plasma/${KDE_PLASMA_VERSION} DIST_SUBDIR?= KDE/plasma/${KDE_PLASMA_VERSION} +WWW?= https://kde.org/plasma-desktop/ . if ${_KDE_VERSION:M6} DESCR= ${.CURDIR:H:H}/x11/plasma6-plasma/pkg-descr . endif @@ -213,8 +211,7 @@ DESCR= ${.CURDIR:H:H}/x11/plasma6-plasma/pkg-descr PORTVERSION?= ${KDE_FRAMEWORKS_VERSION} PKGNAMEPREFIX?= kf${_KDE_VERSION}- WWW?= https://api.kde.org/frameworks/${PORTNAME}/html/index.html -# This is a slight duplication of _USE_FRAMEWORKS_PORTING -- it maybe would be -# better to rely on ${_USE_FRAMEWORKS_PORTING:S/^/k/g} +# This is a slight duplication of _USE_PORTINGAIDS_ALL _PORTINGAIDS= kjs kjsembed kdelibs4support kdesignerplugin khtml kmediaplayer kross kxmlrpcclient . if ${_KDE_VERSION:M5} . if ${_PORTINGAIDS:M*${PORTNAME}*} @@ -227,6 +224,7 @@ MASTER_SITES?= KDE/${KDE_FRAMEWORKS_BRANCH}/frameworks/${KDE_FRAMEWORKS_VERSION . endif DIST_SUBDIR?= KDE/frameworks/${KDE_FRAMEWORKS_VERSION} . if ${_KDE_VERSION:M6} +DIST_SUBDIR= KDE/frameworks/${KDE_FRAMEWORKS_VERSION:R} DESCR= ${.CURDIR:H:H}/x11/kf6-frameworks/pkg-descr . endif . else @@ -250,6 +248,9 @@ CMAKE_ARGS+= -DCMAKE_MODULE_PATH="${LOCALBASE};${KDE_PREFIX}" \ KDE_MAN_PREFIX?= ${KDE_PREFIX}/share/man +# Enforce the chosen Qt Version +CMAKE_ARGS+= -DQT_MAJOR_VERSION=${_QT_VER} + # Disable autotests unless TEST_TARGET is defined. . if !defined(TEST_TARGET) CMAKE_ARGS+= -DBUILD_TESTING:BOOL=false @@ -265,107 +266,109 @@ PLIST_SUB+= KDE_APPLICATIONS_VERSION="${KDE_APPLICATIONS_VERSION}" \ KDE_PLASMA_VERSION="${KDE_PLASMA_VERSION}" # ============================================================================== -_USE_KDE_BOTH= akonadi libkcddb libkcompactdisc libkdcraw libkdegames \ - libkeduvocdocument libkipi libksane okular \ - baloo-widgets kate marble - -# List of components of the KDE Frameworks distribution. -# The *_TIER<n> variables are internal, primarily for checking -# that our list of frameworks matches the structure offered upstream. -_USE_FRAMEWORKS_TIER1= apidox archive attica breeze-icons codecs config \ - coreaddons dbusaddons dnssd holidays i18n idletime itemmodels \ - itemviews kirigami2 kquickcharts oxygen-icons5 plotting prison \ - qqc2-desktop-style solid sonnet syntaxhighlighting \ - threadweaver wayland widgetsaddons windowsystem -# NOT LISTED TIER1: modemmanagerqt networkmanagerqt (not applicable) - -_USE_FRAMEWORKS_TIER2= auth completion crash doctools \ - filemetadata kimageformats jobwidgets notifications \ - package pty syndication unitconversion - -_USE_FRAMEWORKS_TIER3= activities activities-stats baloo bookmarks configwidgets \ - designerplugin emoticons globalaccel guiaddons \ - iconthemes init kcmutils kdav kdeclarative \ - kded kdesu kio kpipewire newstuff notifyconfig parts \ - people plasma-framework purpose runner service texteditor \ - textwidgets wallet xmlgui xmlrpcclient - -_USE_FRAMEWORKS_TIER4= frameworkintegration calendarcore contacts +# List of all USE_KDE components. +# TODO for KDE 7: do not mangle upstream naming: use the same name +# for port directory, PORTNAME, and USE_KDE component. # Porting Aids frameworks provide code and utilities to ease the transition from -# kdelibs 4 to KDE Frameworks 5. Code should aim to port away from this framework, -# new projects should avoid using these libraries. -_USE_FRAMEWORKS_PORTING=js jsembed kdelibs4support khtml mediaplayer kross - -_USE_FRAMEWORKS5_ALL= ecm \ - ${_USE_FRAMEWORKS_TIER1} \ - ${_USE_FRAMEWORKS_TIER2} \ - ${_USE_FRAMEWORKS_TIER3} \ - ${_USE_FRAMEWORKS_TIER4} \ - ${_USE_FRAMEWORKS_PORTING} \ - ${_USE_FRAMEWORKS_EXTRA} \ - kpublictransport kosm \ - plasma-wayland-protocols -# TODO: fix -_USE_FRAMEWORKS6_ALL= ecm colorscheme \ - svg \ - statusnotifieritem \ - plasma-wayland-protocols \ - userfeedback \ - ${_USE_FRAMEWORKS_TIER1:Noxygen-icons5:Nwayland} \ - ${_USE_FRAMEWORKS_TIER2} \ - ${_USE_FRAMEWORKS_TIER3:Nemoticons:Ndesignerplugin:Nactivities:Nactivities-stats:Ninit:Nplasma-framework:Nxmlrpcclient:Nkpipewire} \ - ${_USE_FRAMEWORKS_TIER4} \ - ${_USE_FRAMEWORKS_EXTRA} +# kdelibs 4 to KDE Frameworks 5. +_USE_PORTINGAIDS_ALL= js jsembed kdelibs4support khtml mediaplayer kross + +# List of components of the KDE Frameworks distribution. +# Not ported to FreeBSD: bluez-qt modemmanagerqt +_USE_FRAMEWORKS5_ALL= activities activities-stats apidox archive attica \ + auth baloo bookmarks breeze-icons calendarcore \ + codecs completion config configwidgets contacts \ + coreaddons crash dbusaddons designerplugin dnssd \ + doctools ecm emoticons filemetadata frameworkintegration \ + globalaccel guiaddons holidays i18n iconthemes \ + idletime init itemmodels itemviews jobwidgets \ + kcmutils kdav kdeclarative kded kdesu kimageformats \ + kio kirigami2 kquickcharts newstuff notifications \ + notifyconfig package parts people plasma-framework \ + plotting prison pty purpose qqc2-desktop-style \ + runner service solid sonnet syndication \ + syntaxhighlighting texteditor textwidgets \ + threadweaver unitconversion wallet wayland \ + widgetsaddons windowsystem xmlgui xmlrpcclient \ + ${_USE_PORTINGAIDS_ALL} + +_USE_FRAMEWORKS6_ALL= apidox archive attica auth baloo bookmarks \ + breeze-icons calendarcore codecs colorscheme \ + completion config configwidgets contacts coreaddons \ + crash dbusaddons dnssd doctools ecm filemetadata \ + frameworkintegration globalaccel guiaddons holidays \ + i18n iconthemes idletime itemmodels itemviews \ + jobwidgets kcmutils kdav kdeclarative kded kdesu \ + kimageformats kio kirigami2 kquickcharts newstuff \ + networkmanagerqt notifications notifyconfig package parts \ + people plasma-wayland-protocols plotting prison pty purpose \ + qqc2-desktop-style runner service solid sonnet \ + statusnotifieritem svg syndication \ + syntaxhighlighting texteditor texttemplate \ + textwidgets threadweaver unitconversion userfeedback \ + wallet widgetsaddons windowsystem xmlgui _USE_FRAMEWORKS_ALL= ${_USE_FRAMEWORKS${_KDE_VERSION}_ALL} # List of components of the KDE Plasma distribution. -_USE_PLASMA_ALL= activitymanagerd breeze breeze-gtk \ - decoration discover drkonqi hotkeys \ - infocenter kde-cli-tools kde-gtk-config \ - kdeplasma-addons kgamma5 kmenuedit kscreen \ - kscreenlocker ksshaskpass ksysguard ksystemstats kwallet-pam \ - kwayland-integration kwin kwrited layer-shell-qt libkscreen \ - libksysguard milou oxygen oxygen-sounds plasma-browser-integration \ - plasma-desktop plasma-disks plasma-integration plasma-pa \ - plasma-sdk plasma-workspace plasma-workspace-wallpapers \ - polkit-kde-agent-1 powerdevil systemsettings xdg-desktop-portal-kde \ - kirigami-addons - -# List of components of the KDE PIM distribution (part of applications). -_USE_KDEPIM5_ALL= akonadicontacts akonadiimportwizard akonadimime akonadinotes \ - akonadicalendar akonadisearch \ - calendarcore calendarsupport calendarutils \ - contacts eventviews gapi grantleetheme \ - gravatar identitymanagement imap \ - incidenceeditor kdepim-addons \ - kdepim-runtime5 kitinerary kontactinterface kpkpass \ - ksmtp ldap libkdepim libkleo libksieve mailcommon \ - mailimporter mailtransport mbox messagelib \ - mime pimcommon pimtextedit tnef \ - kalarm kontact kmail mbox-importer \ - akonadiconsole akregator grantlee-editor kaddressbook \ - kalarm kmail-account-wizard kmail knotes kontact \ - korganizer pim-data-exporter ktextaddons - -_USE_PHONON_ALL= phonon phonon-backend +_USE_PLASMA5_ALL= libksysguard oxygen-sounds + +_USE_PLASMA6_ALL= activities activities-stats activitymanagerd \ + aurorae breeze breeze-gtk decoration discover \ + globalacceld infocenter kde-cli-tools \ + kde-gtk-config kdeplasma-addons kgamma kmenuedit \ + kpipewire kscreen kscreenlocker ksshaskpass \ + ksystemstats kwallet-pam kwin kwin-x11 kwrited \ + layer-shell-qt libkscreen libksysguard libplasma \ + milou ocean-sound-theme oxygen oxygen-sounds \ + plasma-browser-integration plasma-desktop \ + plasma-disks plasma-integration plasma-pa \ + plasma-sdk plasma-workspace \ + plasma-workspace-wallpapers plasma5support \ + polkit-kde-agent-1 powerdevil print-manager \ + qqc2-breeze-style sddm-kcm spectacle systemmonitor \ + systemsettings wayland xdg-desktop-portal-kde +_USE_PLASMA_ALL= ${_USE_PLASMA${_KDE_VERSION}_ALL} + +# List of frequently used components of the KDE Gears distribution. +_USE_GEAR5_ALL= libkdcraw libkexiv2 +_USE_GEAR6_ALL= baloo-widgets kate kosm kpublictransport \ + libkcddb libkcompactdisc libkdcraw \ + libkdegames libkeduvocdocument libkexiv2 \ + libksane marble okular +_USE_GEAR_ALL= ${_USE_GEAR${_KDE_VERSION}_ALL} + +# List of components of the KDE PIM distribution (part of KDE Gears). +_USE_KDEPIM_ALL= akonadi akonadicalendar akonadiconsole \ + akonadicontacts akonadiimportwizard akonadimime \ + akonadisearch akregator calendarsupport \ + calendarutils eventviews gapi grantlee-editor \ + grantleetheme gravatar identitymanagement imap \ + incidenceeditor kaddressbook kalarm kdepim-addons \ + kdepim-runtime kitinerary kmail kmail-account-wizard \ + kontact kontactinterface korganizer kpkpass ksmtp \ + ldap libkdepim libkleo libksieve mailcommon \ + mailimporter mailtransport mbox mbox-importer \ + messagelib mime mimetreeparser pim-data-exporter \ + pimcommon pimtextedit tnef + +# List of frequently used KDE releated software for any KDE/Qt version. +_USE_KDE_EXTRA5_ALL= kirigami-addons phonon phonon-vlc \ + plasma-wayland-protocols +_USE_KDE_EXTRA6_ALL= kirigami-addons phonon phonon-mpv phonon-vlc \ + plasma-wayland-protocols ktextaddons +_USE_KDE_EXTRA_ALL= ${_USE_KDE_EXTRA${_KDE_VERSION}_ALL} _USE_KDE5_ALL= ${_USE_FRAMEWORKS_ALL} \ ${_USE_PLASMA_ALL} \ - ${_USE_KDEPIM5_ALL} \ - ${_USE_KDE_BOTH} \ - ${_USE_PHONON_ALL} \ - libkexiv2 -# TODO: fix -_USE_KDE6_ALL= ecm colorscheme \ - svg \ - plasma-wayland-protocols \ - mediaplayer \ - ${_USE_FRAMEWORKS_ALL} \ + ${_USE_GEAR_ALL} \ + ${_USE_KDE_EXTRA_ALL} + +_USE_KDE6_ALL= ${_USE_FRAMEWORKS_ALL} \ ${_USE_PLASMA_ALL} \ - plasma5support activities activities-stats kpipewire wayland globalacceld libplasma \ - ${_USE_PHONON_ALL} \ - libkexiv2 + ${_USE_KDEPIM_ALL} \ + ${_USE_GEAR_ALL} \ + ${_USE_KDE_EXTRA_ALL} # ====================== frameworks components ================================= kde-activities_PORT5= x11/kf${_KDE_VERSION}-kactivities @@ -382,7 +385,8 @@ kde-activities-stats_LIB5= libKF${_KDE_VERSION}ActivitiesStats.so kde-activities-stats_LIB6= libPlasmaActivitiesStats.so kde-activities-stats_LIB= ${kde-activities-stats_LIB${_KDE_VERSION}} -kde-apidox_PORT= devel/kf${_KDE_VERSION}-kapidox +# Use KApiDox tools from KDE Frameworks 6 +kde-apidox_PORT= devel/kf6-kapidox kde-apidox_PATH= ${KDE_PREFIX}/bin/kapidox-generate kde-apidox_TYPE= run @@ -401,9 +405,9 @@ kde-baloo_LIB= libKF${_KDE_VERSION}Baloo.so kde-bookmarks_PORT= devel/kf${_KDE_VERSION}-kbookmarks kde-bookmarks_LIB= libKF${_KDE_VERSION}Bookmarks.so -kde-breeze-icons_PORT= x11-themes/kf${_KDE_VERSION}-breeze-icons +# Use the latest icons from KDE Frameworks 6 +kde-breeze-icons_PORT= x11-themes/kf6-breeze-icons kde-breeze-icons_PATH= ${KDE_PREFIX}/share/icons/breeze/index.theme -kde-breeze-icons_TYPE= run kde-codecs_PORT= textproc/kf${_KDE_VERSION}-kcodecs kde-codecs_LIB= libKF${_KDE_VERSION}Codecs.so @@ -436,7 +440,8 @@ kde-dnssd_LIB= libKF${_KDE_VERSION}DNSSD.so kde-doctools_PORT= devel/kf${_KDE_VERSION}-kdoctools kde-doctools_PATH= ${KDE_PREFIX}/bin/meinproc${_KDE_VERSION} -kde-ecm_PORT= devel/kf${_KDE_VERSION}-extra-cmake-modules +# Use ECM from KDE Frameworks 6 for everything +kde-ecm_PORT= devel/kf6-extra-cmake-modules kde-ecm_PATH= ${LOCALBASE}/share/ECM/cmake/ECMConfig.cmake kde-emoticons_PORT= x11-themes/kf${_KDE_VERSION}-kemoticons @@ -532,6 +537,9 @@ kde-layer-shell-qt_LIB= libLayerShellQtInterface.so kde-mediaplayer_PORT= multimedia/kf${_KDE_VERSION}-kmediaplayer kde-mediaplayer_LIB= libKF${_KDE_VERSION}MediaPlayer.so.5 +kde-networkmanagerqt_PORT= net-mgmt/kf${_KDE_VERSION}-networkmanager-qt +kde-networkmanagerqt_LIB= libKF${_KDE_VERSION}NetworkManagerQt.so + kde-newstuff_PORT= devel/kf${_KDE_VERSION}-knewstuff kde-newstuff_LIB= libKF${_KDE_VERSION}NewStuffCore.so @@ -541,11 +549,8 @@ kde-notifications_LIB= libKF${_KDE_VERSION}Notifications.so kde-notifyconfig_PORT= devel/kf${_KDE_VERSION}-knotifyconfig kde-notifyconfig_LIB= libKF${_KDE_VERSION}NotifyConfig.so -kde-oxygen-icons5_PORT= x11-themes/kf${_KDE_VERSION}-oxygen-icons5 -kde-oxygen-icons5_PATH= ${KDE_PREFIX}/share/icons/oxygen/index.theme -kde-oxygen-icons5_TYPE= run - -kde-oxygen-sounds_PORT= audio/plasma${_KDE_VERSION}-oxygen-sounds +# Use the latest sounds from Plasma 6 +kde-oxygen-sounds_PORT= audio/plasma6-oxygen-sounds kde-oxygen-sounds_PATH= ${KDE_PREFIX}/share/sounds/Oxygen-Sys-Log-In.ogg kde-oxygen-sounds_TYPE= run @@ -602,6 +607,9 @@ kde-syntaxhighlighting_LIB= libKF${_KDE_VERSION}SyntaxHighlighting.so kde-texteditor_PORT= devel/kf${_KDE_VERSION}-ktexteditor kde-texteditor_LIB= libKF${_KDE_VERSION}TextEditor.so +kde-texttemplate_PORT= devel/kf${_KDE_VERSION}-ktexttemplate +kde-texttemplate_LIB= libKF${_KDE_VERSION}TextTemplate.so + kde-textwidgets_PORT= x11-toolkits/kf${_KDE_VERSION}-ktextwidgets kde-textwidgets_LIB= libKF${_KDE_VERSION}TextWidgets.so @@ -663,6 +671,9 @@ kde-kpipewire_LIB= libKPipeWire.so kde-activitymanagerd_PORT= x11/plasma${_KDE_VERSION}-kactivitymanagerd kde-activitymanagerd_LIB= libkactivitymanagerd_plugin.so +kde-aurorae_PORT= x11-themes/plasma${_KDE_VERSION}-aurorae +kde-aurorae_PATH= ${KDE_PREFIX}/lib/libexec/plasma-apply-aurorae + kde-breeze_PORT= x11-themes/plasma${_KDE_VERSION}-breeze kde-breeze_PATH= ${KDE_PREFIX}/share/QtCurve/Breeze.qtcurve @@ -670,17 +681,11 @@ kde-breeze-gtk_PORT= x11-themes/plasma${_KDE_VERSION}-breeze-gtk kde-breeze-gtk_PATH= ${KDE_PREFIX}/share/themes/Breeze/gtk-2.0/gtkrc kde-decoration_PORT= x11-wm/plasma${_KDE_VERSION}-kdecoration -kde-decoration_LIB= libkdecorations2.so +kde-decoration_LIB= libkdecorations3.so kde-discover_PORT= sysutils/plasma${_KDE_VERSION}-discover kde-discover_PATH= ${KDE_PREFIX}/bin/plasma-discover -kde-drkonqi_PORT= sysutils/plasma${_KDE_VERSION}-drkonqi -kde-drkonqi_PATH= ${KDE_PREFIX}/lib/libexec/drkonqi - -kde-hotkeys_PORT= devel/plasma${_KDE_VERSION}-khotkeys -kde-hotkeys_LIB= libkhotkeysprivate.so.5 - kde-infocenter_PORT= sysutils/plasma${_KDE_VERSION}-kinfocenter kde-infocenter_PATH= ${KDE_PREFIX}/bin/kinfocenter @@ -693,12 +698,8 @@ kde-kde-gtk-config_PATH= ${KDE_PREFIX}/lib/kconf_update_bin/gtk_theme kde-kdeplasma-addons_PORT= x11-toolkits/plasma${_KDE_VERSION}-kdeplasma-addons kde-kdeplasma-addons_LIB= libplasmapotdprovidercore.so -kde-kgamma5_PORT5= x11/plasma${_KDE_VERSION}-kgamma5 -kde-kgamma5_PORT6= x11/plasma${_KDE_VERSION}-kgamma -kde-kgamma5_PORT= ${kde-kgamma5_PORT${_KDE_VERSION}} -kde-kgamma5_PATH5= ${QT_PLUGINDIR}/plasma/kcms/systemsettings/kcm_kgamma.so -kde-kgamma5_PATH6= ${QT_PLUGINDIR}/plasma/kcms/systemsettings_qwidgets/kcm_kgamma.so -kde-kgamma5_PATH= ${kde-kgamma5_PATH${_KDE_VERSION}} +kde-kgamma_PORT= x11/plasma${_KDE_VERSION}-kgamma +kde-kgamma_PATH= ${QT_PLUGINDIR}/plasma/kcms/systemsettings_qwidgets/kcm_kgamma.so kde-kmenuedit_PORT= sysutils/plasma${_KDE_VERSION}-kmenuedit kde-kmenuedit_PATH= ${KDE_PREFIX}/bin/kmenuedit @@ -712,22 +713,17 @@ kde-kscreenlocker_LIB= libKScreenLocker.so kde-ksshaskpass_PORT= security/plasma${_KDE_VERSION}-ksshaskpass kde-ksshaskpass_PATH= ${KDE_PREFIX}/bin/ksshaskpass -kde-ksysguard_PORT= sysutils/plasma${_KDE_VERSION}-ksysguard -kde-ksysguard_PATH= ${KDE_PREFIX}/bin/ksysguard - kde-ksystemstats_PORT= sysutils/plasma${_KDE_VERSION}-ksystemstats kde-ksystemstats_PATH= ${KDE_PREFIX}/bin/ksystemstats kde-kwallet-pam_PORT= security/plasma${_KDE_VERSION}-kwallet-pam -kde-kwallet-pam_PATH5= ${KDE_PREFIX}/lib/pam_kwallet5.so -kde-kwallet-pam_PATH6= ${KDE_PREFIX}/lib/security/pam_kwallet5.so -kde-kwallet-pam_PATH= ${kde-kwallet-pam_PATH${_KDE_VERSION}} - -kde-kwayland-integration_PORT= x11/plasma${_KDE_VERSION}-kwayland-integration -kde-kwayland-integration_PATH= ${QT_PLUGINDIR}/kf${_KDE_VERSION}/kwindowsystem/KF5WindowSystemKWaylandPlugin.so +kde-kwallet-pam_PATH= ${KDE_PREFIX}/lib/pam_kwallet5.so kde-kwin_PORT= x11-wm/plasma${_KDE_VERSION}-kwin -kde-kwin_PATH= ${KDE_PREFIX}/bin/kwin_x11 +kde-kwin_PATH= ${KDE_PREFIX}/bin/kwin_wayland + +kde-kwin-x11_PORT= x11-wm/plasma${_KDE_VERSION}-kwin-x11 +kde-kwin-x11_PATH= ${KDE_PREFIX}/bin/kwin_x11 kde-kwrited_PORT= devel/plasma${_KDE_VERSION}-kwrited kde-kwrited_PATH= ${QT_PLUGINDIR}/kf${_KDE_VERSION}/kded/kwrited.so @@ -741,14 +737,14 @@ kde-libksysguard_LIB6= libKSysGuardSystemStats.so kde-libksysguard_LIB= ${kde-libksysguard_LIB${_KDE_VERSION}} kde-milou_PORT= deskutils/plasma${_KDE_VERSION}-milou -kde-milou_PATH5= ${KDE_PREFIX}/lib/libmilou.so.5 -kde-milou_PATH6= ${QT_QMLDIR}/org/kde/milou/libmilouqmlplugin.so -kde-milou_PATH= ${kde-milou_PATH${_KDE_VERSION}} +kde-milou_PATH= ${QT_QMLDIR}/org/kde/milou/libmilouqmlplugin.so + +kde-ocean-sound-theme_PORT= audio/plasma${_KDE_VERSION}-ocean-sound-theme +kde-ocean-sound-theme_PATH= ${KDE_PREFIX}/share/sounds/ocean/index.theme +kde-ocean-sound-theme_TYPE= run kde-oxygen_PORT= x11-themes/plasma${_KDE_VERSION}-oxygen -kde-oxygen_PATH5= ${QT_PLUGINDIR}/styles/oxygen.so -kde-oxygen_PATH6= ${QT_PLUGINDIR}/kstyle_config/kstyle_oxygen_config.so -kde-oxygen_PATH= ${kde-oxygen_PATH${_KDE_VERSION}} +kde-oxygen_PATH= ${QT_PLUGINDIR}/kstyle_config/kstyle_oxygen_config.so kde-plasma-browser-integration_PORT= www/plasma${_KDE_VERSION}-plasma-browser-integration kde-plasma-browser-integration_PATH= ${KDE_PREFIX}/bin/plasma-browser-integration-host @@ -757,14 +753,10 @@ kde-plasma-desktop_PORT= x11/plasma${_KDE_VERSION}-plasma-desktop kde-plasma-desktop_PATH= ${KDE_PREFIX}/bin/kaccess kde-plasma-disks_PORT= sysutils/plasma${_KDE_VERSION}-plasma-disks -kde-plasma-disks_PATH5= ${KDE_PREFIX}/lib/libexec/kauth/kded-smart-helper -kde-plasma-disks_PATH6= ${KDE_PREFIX}/lib/libexec/kf6/kauth/kded-smart-helper -kde-plasma-disks_PATH= ${kde-plasma-disks_PATH${_KDE_VERSION}} +kde-plasma-disks_PATH= ${KDE_PREFIX}/lib/libexec/kf6/kauth/kded-smart-helper kde-plasma-integration_PORT= x11/plasma${_KDE_VERSION}-plasma-integration -kde-plasma-integration_PATH5= ${QT_PLUGINDIR}/platformthemes/KDEPlasmaPlatformTheme.so -kde-plasma-integration_PATH6= ${QT_PLUGINDIR}/platformthemes/KDEPlasmaPlatformTheme6.so -kde-plasma-integration_PATH= ${kde-plasma-integration_PATH${_KDE_VERSION}} +kde-plasma-integration_PATH= ${QT_PLUGINDIR}/platformthemes/KDEPlasmaPlatformTheme6.so kde-plasma-pa_PORT= audio/plasma${_KDE_VERSION}-plasma-pa kde-plasma-pa_PATH= ${QT_PLUGINDIR}/plasma/kcms/systemsettings/kcm_pulseaudio.so @@ -784,12 +776,20 @@ kde-polkit-kde-agent-1_PATH= ${KDE_PREFIX}/lib/libexec/polkit-kde-authentication kde-powerdevil_PORT= sysutils/plasma${_KDE_VERSION}-powerdevil kde-powerdevil_LIB= libpowerdevilcore.so -kde-systemsettings_PORT= sysutils/plasma${_KDE_VERSION}-systemsettings -kde-systemsettings_PATH5= ${KDE_PREFIX}/bin/systemsettings5 -kde-systemsettings_PATH6= ${KDE_PREFIX}/bin/systemsettings -kde-systemsettings_PATH= ${kde-systemsettings_PATH${_KDE_VERSION}} +kde-print-manager_PORT= print/plasma${_KDE_VERSION}-print-manager +kde-print-manager_PATH= ${KDE_PREFIX}/bin/kde-print-queue +kde-print-manager_TYPE= run +kde-spectacle_PORT= graphics/plasma${_KDE_VERSION}-spectacle +kde-spectacle_PATH= ${KDE_PREFIX}/bin/spectacle +kde-spectacle_TYPE= run +kde-systemmonitor_PORT= sysutils/plasma${_KDE_VERSION}-plasma-systemmonitor +kde-systemmonitor_PATH= ${KDE_PREFIX}/bin/plasma-systemmonitor +kde-systemmonitor_TYPE= run + +kde-systemsettings_PORT= sysutils/plasma${_KDE_VERSION}-systemsettings +kde-systemsettings_PATH= ${KDE_PREFIX}/bin/systemsettings kde-xdg-desktop-portal-kde_PORT= deskutils/plasma${_KDE_VERSION}-xdg-desktop-portal-kde kde-xdg-desktop-portal-kde_PATH= ${KDE_PREFIX}/lib/libexec/xdg-desktop-portal-kde @@ -797,9 +797,14 @@ kde-xdg-desktop-portal-kde_PATH= ${KDE_PREFIX}/lib/libexec/xdg-desktop-portal-kd kde-plasma5support_PORT= devel/plasma${_KDE_VERSION}-plasma5support kde-plasma5support_LIB= libPlasma5Support.so -kde-kirigami-addons_PORT5= x11-toolkits/kirigami-addons -kde-kirigami-addons_PORT6= x11-toolkits/kirigami-addons-devel -kde-kirigami-addons_PORT= ${kde-kirigami-addons_PORT${_KDE_VERSION}} +kde-qqc2-breeze-style_PORT= x11-themes/plasma${_KDE_VERSION}-qqc2-breeze-style +kde-qqc2-breeze-style_PATH= ${QT_PLUGINDIR}/kf${_KDE_VERSION}/kirigami/platform/org.kde.breeze.so + +kde-sddm-kcm_PORT= deskutils/plasma${_KDE_VERSION}-sddm-kcm +kde-sddm-kcm_PATH= ${QT_PLUGINDIR}/plasma/kcms/systemsettings/kcm_sddm.so +kde-sddm-kcm_TYPE= run + +kde-kirigami-addons_PORT= x11-toolkits/kirigami-addons-qt${_KDE_VERSION} kde-kirigami-addons_PATH= ${QT_QMLDIR}/org/kde/kirigamiaddons/components/libcomponentsplugin.so kde-globalacceld_PORT= x11/plasma${_KDE_VERSION}-kglobalacceld @@ -811,106 +816,103 @@ kde-libplasma_LIB= libPlasma.so # ====================== pim5 components ======================================= kde-akonadicontacts_PORT= net/akonadi-contacts -kde-akonadicontacts_LIB= libKPim5AkonadiContact.so +kde-akonadicontacts_LIB= libKPim${_KDE_VERSION}AkonadiContactCore.so kde-akonadiimportwizard_PORT= deskutils/akonadi-import-wizard -kde-akonadiimportwizard_LIB= libKPim5ImportWizard.so +kde-akonadiimportwizard_LIB= libKPim${_KDE_VERSION}ImportWizard.so kde-akonadimime_PORT= net/akonadi-mime -kde-akonadimime_LIB= libKPim5AkonadiMime.so - -kde-akonadinotes_PORT= net/akonadi-notes -kde-akonadinotes_LIB= libKPim5AkonadiNotes.so +kde-akonadimime_LIB= libKPim${_KDE_VERSION}AkonadiMime.so kde-akonadicalendar_PORT= net/akonadi-calendar -kde-akonadicalendar_LIB= libKPim5AkonadiCalendar.so +kde-akonadicalendar_LIB= libKPim${_KDE_VERSION}AkonadiCalendar.so kde-akonadisearch_PORT= net/akonadi-search -kde-akonadisearch_LIB= libKPim5AkonadiSearchCore.so +kde-akonadisearch_LIB= libKPim${_KDE_VERSION}AkonadiSearchCore.so kde-calendarsupport_PORT= net/calendarsupport -kde-calendarsupport_LIB= libKPim5CalendarSupport.so +kde-calendarsupport_LIB= libKPim${_KDE_VERSION}CalendarSupport.so kde-calendarutils_PORT= net/kcalutils -kde-calendarutils_LIB= libKPim5CalendarUtils.so +kde-calendarutils_LIB= libKPim${_KDE_VERSION}CalendarUtils.so kde-eventviews_PORT= net/eventviews -kde-eventviews_LIB= libKPim5EventViews.so +kde-eventviews_LIB= libKPim${_KDE_VERSION}EventViews.so kde-gapi_PORT= net/libkgapi -kde-gapi_LIB= libKPim5GAPIBlogger.so +kde-gapi_LIB= libKPim${_KDE_VERSION}GAPIBlogger.so kde-grantleetheme_PORT= deskutils/grantleetheme -kde-grantleetheme_LIB= libKPim5GrantleeTheme.so +kde-grantleetheme_LIB= libKPim${_KDE_VERSION}GrantleeTheme.so kde-gravatar_PORT= net/libgravatar -kde-gravatar_LIB= libKPim5Gravatar.so +kde-gravatar_LIB= libKPim${_KDE_VERSION}Gravatar.so kde-identitymanagement_PORT= net/kidentitymanagement -kde-identitymanagement_LIB= libKPim5IdentityManagement.so +kde-identitymanagement_LIB= libKPim${_KDE_VERSION}IdentityManagementCore.so kde-imap_PORT= net/kimap -kde-imap_LIB= libKPim5IMAP.so +kde-imap_LIB= libKPim${_KDE_VERSION}IMAP.so kde-incidenceeditor_PORT= net/incidenceeditor -kde-incidenceeditor_LIB= libKPim5IncidenceEditor.so +kde-incidenceeditor_LIB= libKPim${_KDE_VERSION}IncidenceEditor.so kde-kdepim-addons_PORT= deskutils/kdepim-addons -kde-kdepim-addons_PATH= ${QT_PLUGINDIR}/pim5/contacteditor/editorpageplugins/cryptopageplugin.so +kde-kdepim-addons_PATH= ${QT_PLUGINDIR}/pim${_KDE_VERSION}/contacteditor/editorpageplugins/cryptopageplugin.so -kde-kdepim-runtime5_PORT= deskutils/kdepim-runtime -kde-kdepim-runtime5_PATH= ${KDE_PREFIX}/bin/gidmigrator +kde-kdepim-runtime_PORT= deskutils/kdepim-runtime +kde-kdepim-runtime_PATH= ${KDE_PREFIX}/bin/gidmigrator kde-kitinerary_PORT= net/kitinerary -kde-kitinerary_LIB= libKPim5Itinerary.so +kde-kitinerary_LIB= libKPim${_KDE_VERSION}Itinerary.so kde-kontactinterface_PORT= net/kontactinterface -kde-kontactinterface_LIB= libKPim5KontactInterface.so +kde-kontactinterface_LIB= libKPim${_KDE_VERSION}KontactInterface.so kde-kpkpass_PORT= security/kpkpass -kde-kpkpass_LIB= libKPim5PkPass.so +kde-kpkpass_LIB= libKPim${_KDE_VERSION}PkPass.so kde-ksmtp_PORT= net/ksmtp -kde-ksmtp_LIB= libKPim5SMTP.so +kde-ksmtp_LIB= libKPim${_KDE_VERSION}SMTP.so kde-ldap_PORT= net/kldap -kde-ldap_LIB= libKPim5Ldap.so +kde-ldap_LIB= libKPim${_KDE_VERSION}LdapCore.so kde-libkdepim_PORT= deskutils/libkdepim -kde-libkdepim_LIB= libKPim5Libkdepim.so +kde-libkdepim_LIB= libKPim${_KDE_VERSION}Libkdepim.so kde-libkleo_PORT= security/libkleo -kde-libkleo_LIB= libKPim5Libkleo.so +kde-libkleo_LIB= libKPim${_KDE_VERSION}Libkleo.so kde-libksieve_PORT= net/libksieve -kde-libksieve_LIB= libKPim5KSieve.so +kde-libksieve_LIB= libKPim${_KDE_VERSION}KSieve.so kde-mailcommon_PORT= net/mailcommon -kde-mailcommon_LIB= libKPim5MailCommon.so +kde-mailcommon_LIB= libKPim${_KDE_VERSION}MailCommon.so kde-mailimporter_PORT= net/mailimporter -kde-mailimporter_LIB= libKPim5MailImporter.so +kde-mailimporter_LIB= libKPim${_KDE_VERSION}MailImporter.so kde-mailtransport_PORT= net/kmailtransport -kde-mailtransport_LIB= libKPim5MailTransport.so +kde-mailtransport_LIB= libKPim${_KDE_VERSION}MailTransport.so kde-mbox_PORT= net/kmbox -kde-mbox_LIB= libKPim5Mbox.so +kde-mbox_LIB= libKPim${_KDE_VERSION}Mbox.so kde-messagelib_PORT= net/messagelib -kde-messagelib_LIB= libKPim5MessageList.so +kde-messagelib_LIB= libKPim${_KDE_VERSION}MessageList.so kde-mime_PORT= net/kmime -kde-mime_LIB= libKPim5Mime.so +kde-mime_LIB= libKPim${_KDE_VERSION}Mime.so kde-pimcommon_PORT= net/pimcommon -kde-pimcommon_LIB= libKPim5PimCommon.so +kde-pimcommon_LIB= libKPim${_KDE_VERSION}PimCommon.so kde-pimtextedit_PORT= net/kpimtextedit -kde-pimtextedit_LIB= libKPim5TextEdit.so +kde-pimtextedit_LIB= libKPim${_KDE_VERSION}TextEdit.so kde-tnef_PORT= net/ktnef -kde-tnef_LIB= libKPim5Tnef.so +kde-tnef_LIB= libKPim${_KDE_VERSION}Tnef.so kde-ktextaddons_PORT= devel/ktextaddons kde-ktextaddons_LIB= libKF${_KDE_VERSION}TextAutoCorrectionCore.so @@ -937,9 +939,6 @@ kde-kmail_PATH= ${KDE_PREFIX}/bin/kmail kde-kmail-account-wizard_PORT= deskutils/kmail-account-wizard kde-kmail-account-wizard_PATH= ${KDE_PREFIX}/bin/accountwizard -kde-knotes_PORT= deskutils/knotes -kde-knotex_PATH= ${KDE_PREFIX}/bin/knotes - kde-kontact_PORT= deskutils/kontact kde-kontact_PATH= ${KDE_PREFIX}/bin/kontact @@ -949,50 +948,50 @@ kde-korganizer_PATH= ${KDE_PREFIX}/bin/korganizer kde-mbox-importer_PORT= deskutils/mbox-importer kde-mbox-importer_PATH= ${KDE_PREFIX}/bin/mboximporter +kde-mimetreeparser_PORT= net/mimetreeparser +kde-mimetreeparser_LIB= libKPim${_KDE_VERSION}MimeTreeParserCore.so + kde-pim-data-exporter_PORT= deskutils/pim-data-exporter kde-pim-data-exporter_PATH= ${KDE_PREFIX}/bin/pimdataexporter # ====================== end of pim5 components ================================ # ====================== multiversion component ================================ -kde-akonadi5_PORT= databases/akonadi -kde-akonadi5_LIB= libKPim5AkonadiPrivate.so +kde-akonadi_PORT= databases/akonadi +kde-akonadi_LIB= libKPim${_KDE_VERSION}AkonadiPrivate.so -kde-baloo-widgets5_PORT= sysutils/baloo-widgets -kde-baloo-widgets5_LIB= libKF${_KDE_VERSION}BalooWidgets.so +kde-baloo-widgets_PORT= sysutils/baloo-widgets +kde-baloo-widgets_LIB= libKF${_KDE_VERSION}BalooWidgets.so -kde-kate5_PORT= editors/kate -kde-kate5_PATH= ${QT_PLUGINDIR}/ktexteditor/katebacktracebrowserplugin.so +kde-kate_PORT= editors/kate +kde-kate_PATH= ${QT_PLUGINDIR}/ktexteditor/katebacktracebrowserplugin.so -kde-libkcddb5_PORT= audio/libkcddb -kde-libkcddb5_LIB= libKF${_KDE_VERSION}Cddb.so +kde-libkcddb_PORT= audio/libkcddb +kde-libkcddb_LIB= libKCddb${_KDE_VERSION}.so -kde-libkcompactdisc5_PORT= audio/libkcompactdisc -kde-libkcompactdisc5_LIB= libKF${_KDE_VERSION}CompactDisc.so +kde-libkcompactdisc_PORT= audio/libkcompactdisc +kde-libkcompactdisc_LIB= libKF${_KDE_VERSION}CompactDisc.so -kde-libkdcraw5_PORT= graphics/libkdcraw@qt${_KDE_VERSION} -kde-libkdcraw5_LIB= libKF${_KDE_VERSION}KDcraw.so +kde-libkdcraw_PORT= graphics/libkdcraw@qt${_KDE_VERSION} +kde-libkdcraw_LIB5= libKF${_KDE_VERSION}KDcraw.so +kde-libkdcraw_LIB6= libKDcrawQt${_KDE_VERSION}.so +kde-libkdcraw_LIB= ${kde-libkdcraw_LIB${_KDE_VERSION}} -kde-libkdegames5_PORT= games/libkdegames -kde-libkdegames5_LIB= libKF${_KDE_VERSION}KDEGames.so +kde-libkdegames_PORT= games/libkdegames +kde-libkdegames_LIB= libKDEGames${_KDE_VERSION}.so -kde-libkeduvocdocument5_PORT= misc/libkeduvocdocument -kde-libkeduvocdocument5_LIB= libKEduVocDocument.so +kde-libkeduvocdocument_PORT= misc/libkeduvocdocument +kde-libkeduvocdocument_LIB= libKEduVocDocument.so -kde-libkexiv2_PORT5= graphics/libkexiv2 -kde-libkexiv2_PORT6= graphics/libkexiv2-devel -kde-libkexiv2_PORT= ${kde-libkexiv2_PORT${_KDE_VERSION}} +kde-libkexiv2_PORT= graphics/libkexiv2@qt${_KDE_VERSION} kde-libkexiv2_LIB5= libKF${_KDE_VERSION}KExiv2.so kde-libkexiv2_LIB6= libKExiv2Qt${_KDE_VERSION}.so kde-libkexiv2_LIB= ${kde-libkexiv2_LIB${_KDE_VERSION}} -kde-libkipi5_PORT= graphics/libkipi -kde-libkipi5_LIB= libKF${_KDE_VERSION}Kipi.so - -kde-libksane5_PORT= graphics/libksane -kde-libksane5_LIB= libKF${_KDE_VERSION}Sane.so +kde-libksane_PORT= graphics/libksane +kde-libksane_LIB= libKSaneWidgets${_KDE_VERSION}.so -kde-marble5_PORT= astro/marble -kde-marble5_LIB= libmarblewidget-qt5.so +kde-marble_PORT= astro/marble +kde-marble_LIB= libmarblewidget-qt6.so kde-kpublictransport_PORT= devel/kpublictransport kde-kpublictransport_LIB= libKPublicTransport.so @@ -1000,29 +999,21 @@ kde-kpublictransport_LIB= libKPublicTransport.so kde-kosm_PORT= astro/kosmindoormap kde-kosm_LIB= libKOSM.so -kde-okular5_PORT= graphics/okular -kde-okular5_LIB= libOkular5Core.so +kde-okular_PORT= graphics/okular +kde-okular_LIB= libOkular${_KDE_VERSION}Core.so kde-phonon_PORT= multimedia/phonon@${_QT_RELNAME} kde-phonon_LIB= libphonon4${_QT_RELNAME}.so -kde-phonon-backend_PORT= multimedia/phonon-vlc@${_QT_RELNAME} -kde-phonon-backend_PATH= ${QT_PLUGINDIR}/phonon4${_QT_RELNAME}_backend/phonon_vlc_${_QT_RELNAME}.so -# ====================== end of multiversion components ======================== +kde-phonon-mpv_PORT= multimedia/phonon-mpv +kde-phonon-mpv_PATH= ${QT_PLUGINDIR}/phonon4${_QT_RELNAME}_backend/phonon_mpv_${_QT_RELNAME}.so +kde-phonon-mpv_TYPE= run -# ====================== select the proper multiversion component ============== -. for comp in ${_USE_KDE_BOTH} -kde-${comp}_PORT= ${kde-${comp}${_KDE_VERSION}_PORT} -. if defined(kde-${comp}${_KDE_VERSION}_LIB) -kde-${comp}_LIB= ${kde-${comp}${_KDE_VERSION}_LIB} -. else -. if defined(kde-${comp}${_KDE_VERSION}_PATH}) -kde-${comp}_PATH= ${kde-${comp}${_KDE_VERSION}_LIB} -. endif -# If neither is defined, this gets caught below when checking components -. endif -. endfor -#=============================================================================== +kde-phonon-vlc_PORT= multimedia/phonon-vlc@${_QT_RELNAME} +kde-phonon-vlc_PATH= ${QT_PLUGINDIR}/phonon4${_QT_RELNAME}_backend/phonon_vlc_${_QT_RELNAME}.so +kde-phonon-vlc_TYPE= run + +# ====================== end of multiversion components ======================== # end of component list ######################################################## diff --git a/Mk/Uses/kmod.mk b/Mk/Uses/kmod.mk index a28077e67697..36bc49462fdf 100644 --- a/Mk/Uses/kmod.mk +++ b/Mk/Uses/kmod.mk @@ -25,6 +25,8 @@ IGNORE= requires kernel source files in SRC_BASE=${SRC_BASE} CATEGORIES+= kld +_OS_SUFX?= .${OSVERSION} + PIE_UNSAFE= kernel modules are not executable SSP_UNSAFE= kernel module supports SSP natively diff --git a/Mk/Uses/lazarus.mk b/Mk/Uses/lazarus.mk index ef5569ab8eb9..945fb32e55a5 100644 --- a/Mk/Uses/lazarus.mk +++ b/Mk/Uses/lazarus.mk @@ -2,11 +2,14 @@ # # Feature: lazarus # Usage: USES=lazarus -# Valid ARGS: (none), gtk2, qt5, qt6, flavors +# Valid ARGS: (none), gtk2, gtk3, qt5, qt6, flavors # # (none) - This automatically build lazarus-app with gtk2 interface # # gtk2 - This automatically build lazarus-app with gtk2 interface +# +# gtk3 - This automatically build lazarus-app with gtk3 interface (only +# devel version) # # qt5 - This automatically build lazarus-app with qt5 interface # @@ -18,6 +21,11 @@ # defined the following: # # NO_LAZBUILD= yes +# +# If the port needs lazarus devel version instead of release version as build +# dependency, you can defined the following: +# +# WANT_LAZARUS_DEVEL= yes # # Variables for ports: # @@ -44,20 +52,28 @@ LAZARUS_Include_MAINTAINER= acm@FreeBSD.org _INCLUDE_USES_LAZARUS_MK= yes +. if empty(lazarus_ARGS) +lazarus_ARGS= gtk2 +. endif + . if defined(DEFAULT_LAZARUS_VER) WARNING+= "DEFAULT_LAZARUS_VER is defined, consider using DEFAULT_VERSIONS=lazarus=${DEFAULT_LAZARUS_VER} instead" . endif -. if ${lazarus_ARGS:Ngtk2:Nqt5:Nqt6:Nflavors} -IGNORE= Unknown argument for USES=lazarus: ${lazarus_ARGS:Ngtk2:Nqt5:Nqt6:Nflavors} +. if ${lazarus_ARGS:Ngtk2:Ngtk3:Nqt5:Nqt6:Nflavors} +IGNORE= Unknown argument for USES=lazarus: ${lazarus_ARGS:Ngtk2:Ngtk3:Nqt5:Nqt6:Nflavors} . endif . if !empty(LAZARUS_NO_FLAVORS) -. if ${LAZARUS_NO_FLAVORS:Ngtk2:Nqt5:Nqt6} -IGNORE= Unknown argument for LAZARUS_NO_FLAVORS: ${LAZARUS_NO_FLAVORS:Ngtk2:Nqt5:Nqt6} +. if ${LAZARUS_NO_FLAVORS:Ngtk2:Ngtk3:Nqt5:Nqt6} +IGNORE= Unknown argument for LAZARUS_NO_FLAVORS: ${LAZARUS_NO_FLAVORS:Ngtk2:Ngtk3:Nqt5:Nqt6} . endif . endif +. if (empty(WANT_LAZARUS_DEVEL) && ${lazarus_ARGS:Mgtk3}) +IGNORE= No valid argument for USES=lazarus: gtk3. Consider using gtk2, qt5, qt6 or flavors instead +. endif + DEFAULT_LAZARUS_VER= ${LAZARUS_DEFAULT} DEFAULT_FPC_VER= ${FPC_DEFAULT} # When adding a version, please keep the comment in @@ -68,13 +84,10 @@ LAZARUS_ARCH= ${ARCH:S/amd64/x86_64/} LAZARUS_PROJECT_FILES?= # empty LAZARUS_DIR?= ${LOCALBASE}/share/lazarus-${LAZARUS_VER} -ONLY_FOR_ARCHS= i386 amd64 -ONLY_FOR_ARCHS_REASON= not yet ported to anything other than i386 and amd64 - -. if !defined(WANT_FPC_DEVEL) -FPC_DEVELSUFFIX= # -. else +. if (defined(WANT_FPC_DEVEL) && !empty(WANT_FPC_DEVEL)) || ${ARCH:Maarch64} FPC_DEVELSUFFIX= -devel +. else +FPC_DEVELSUFFIX= # . endif BUILDNAME= ${LAZARUS_ARCH}-${OPSYS:tl} @@ -84,7 +97,13 @@ MKINSTDIR= ${LOCALBASE}/lib/fpc/${FPC_VER}/fpmkinst/${BUILDNAME} BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils \ ${MKINSTDIR}/utils-lexyacc.fpm:lang/fpc${FPC_DEVELSUFFIX} +. if (defined(WANT_LAZARUS_DEVEL) && !empty(WANT_LAZARUS_DEVEL)) || ${ARCH:Maarch64} +LAZARUS_DEVELSUFFIX= -devel +LAZARUS_FLAVORS= gtk2 gtk3 qt5 qt6 +. else +LAZARUS_DEVELSUFFIX= # LAZARUS_FLAVORS= gtk2 qt5 qt6 +. endif . if ${lazarus_ARGS:Mflavors} . if defined(LAZARUS_NO_FLAVORS) @@ -96,18 +115,12 @@ FLAVORS:= ${LAZARUS_FLAVORS} . endif . if empty(FLAVOR) -FLAVOR= ${FLAVORS:[1]} +FLAVOR= ${FLAVORS:[1]} . endif . endif LAZARUS_PKGNAMESUFFIX= -${FLAVOR} -. if !defined(WANT_LAZARUS_DEVEL) -LAZARUS_DEVELSUFFIX= # -. else -LAZARUS_DEVELSUFFIX= -devel -. endif - . if ${lazarus_ARGS:Mgtk2} || ${FLAVOR} == gtk2 LIB_DEPENDS+= libglib-2.0.so:devel/glib20 \ libgtk-x11-2.0.so:x11-toolkits/gtk20 \ @@ -118,6 +131,15 @@ LCL_PLATFORM= gtk2 BUILD_DEPENDS+= ${LCL_UNITS_DIR}/${LCL_PLATFORM}/interfaces.ppu:editors/lazarus${LAZARUS_DEVELSUFFIX} . endif +. if ${lazarus_ARGS:Mgtk3} || ${FLAVOR} == gtk3 +LIB_DEPENDS+= libglib-2.0.so:devel/glib20 \ + libgtk-3.so:x11-toolkits/gtk30 \ + libcairo.so:graphics/cairo \ + libpango-1.0.so:x11-toolkits/pango +LCL_PLATFORM= gtk3 +BUILD_DEPENDS+= ${LCL_UNITS_DIR}/${LCL_PLATFORM}/interfaces.ppu:editors/lazarus-gtk3${LAZARUS_DEVELSUFFIX} +. endif + . if ${lazarus_ARGS:Mqt5} || ${FLAVOR} == qt5 LIB_DEPENDS+= libQt5Pas.so:x11-toolkits/qt5pas LCL_PLATFORM= qt5 diff --git a/Mk/Uses/linux.mk b/Mk/Uses/linux.mk index e098234fcbc5..99aa62704195 100644 --- a/Mk/Uses/linux.mk +++ b/Mk/Uses/linux.mk @@ -3,6 +3,7 @@ # Feature: linux:args # Usage: USES=linux or USES=linux:args # Valid args: c7 Depend on CentOS 7 packages (default) +# rl9 Depend on Rocky Linux 9 packages # Additional variables: # USE_LINUX List of Linux packages to depend on. # USE_LINUX_RPM When defined, additional variables and targets useful to Linux @@ -26,6 +27,8 @@ _USES_POST+= linux . if empty(linux_ARGS) . if exists(${LINUXBASE}/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7) linux_ARGS= c7 +. elif exists(${LINUXBASE}/etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9) +linux_ARGS= rl9 . else linux_ARGS= ${LINUX_DEFAULT} . endif @@ -33,112 +36,176 @@ linux_ARGS= ${LINUX_DEFAULT} . if ${linux_ARGS} == c7 LINUX_DIST_VER?= 7.9.2009 +. elif ${linux_ARGS} == rl9 +LINUX_DIST_VER?= 9.6 . else ERROR+= "Invalid Linux distribution: ${linux_ARGS}" . endif . ifndef ONLY_FOR_ARCHS +. if ${linux_ARGS} == rl9 +ONLY_FOR_ARCHS= aarch64 amd64 +ONLY_FOR_ARCHS_REASON= Rocky Linux compatibility is only available on aarch64 and amd64 +. else ONLY_FOR_ARCHS= aarch64 amd64 i386 -ONLY_FOR_ARCHS_REASON= Linux compatibility is only available on aarch64, amd64 and i386 +ONLY_FOR_ARCHS_REASON= CentOS Linux compatibility is only available on aarch64, amd64 and i386 +. endif . endif -_linux_c7_alsa-lib-devel= linux-c7-alsa-lib-devel>0:audio/linux-c7-alsa-lib-devel +_linux_${linux_ARGS}_alsa-lib-devel= linux-${linux_ARGS}-alsa-lib-devel>0:audio/linux-${linux_ARGS}-alsa-lib-devel _linux_${linux_ARGS}_alsa-plugins-oss= linux-${linux_ARGS}-alsa-plugins-oss>0:audio/linux-${linux_ARGS}-alsa-plugins-oss _linux_${linux_ARGS}_alsa-plugins-pulseaudio=linux-${linux_ARGS}-alsa-plugins-pulseaudio>0:audio/linux-${linux_ARGS}-alsa-plugins-pulseaudio _linux_${linux_ARGS}_alsalib= linux-${linux_ARGS}-alsa-lib>0:audio/linux-${linux_ARGS}-alsa-lib -_linux_c7_at-spi2-atk= linux-c7-at-spi2-atk>0:accessibility/linux-c7-at-spi2-atk -_linux_c7_at-spi2-core= linux-c7-at-spi2-core>0:accessibility/linux-c7-at-spi2-core +_linux_rl9_aom= linux-rl9-aom-libs>0:multimedia/linux-rl9-aom +_linux_${linux_ARGS}_at-spi2-atk= linux-${linux_ARGS}-at-spi2-atk>0:accessibility/linux-${linux_ARGS}-at-spi2-atk +_linux_${linux_ARGS}_at-spi2-core= linux-${linux_ARGS}-at-spi2-core>0:accessibility/linux-${linux_ARGS}-at-spi2-core _linux_${linux_ARGS}_atk= linux-${linux_ARGS}-atk>0:accessibility/linux-${linux_ARGS}-atk _linux_${linux_ARGS}_avahi-libs= linux-${linux_ARGS}-avahi-libs>0:net/linux-${linux_ARGS}-avahi-libs _linux_c7_base= linux_base-c7>=7.6.1810_7:emulators/linux_base-c7 -_linux_c7_ca-certificates= linux-c7-ca-certificates>0:security/linux-c7-ca-certificates +_linux_rl9_base= linux_base-rl9>=9.2:emulators/linux_base-rl9 +_linux_${linux_ARGS}_ca-certificates= linux-${linux_ARGS}-ca-certificates>0:security/linux-${linux_ARGS}-ca-certificates _linux_${linux_ARGS}_cairo= linux-${linux_ARGS}-cairo>0:graphics/linux-${linux_ARGS}-cairo -_linux_c7_cairo-gobject= linux-c7-cairo-gobject>0:graphics/linux-c7-cairo-gobject +_linux_${linux_ARGS}_cairo-gobject= linux-${linux_ARGS}-cairo-gobject>0:graphics/linux-${linux_ARGS}-cairo-gobject _linux_${linux_ARGS}_cups-libs= linux-${linux_ARGS}-cups-libs>0:print/linux-${linux_ARGS}-cups-libs _linux_${linux_ARGS}_curl= linux-${linux_ARGS}-curl>0:ftp/linux-${linux_ARGS}-curl _linux_${linux_ARGS}_cyrus-sasl2= linux-${linux_ARGS}-cyrus-sasl-lib>0:security/linux-${linux_ARGS}-cyrus-sasl2 _linux_${linux_ARGS}_dbuslibs= linux-${linux_ARGS}-dbus-libs>0:devel/linux-${linux_ARGS}-dbus-libs _linux_${linux_ARGS}_devtools= linux-${linux_ARGS}-devtools>0:devel/linux-${linux_ARGS}-devtools -_linux_c7_dosfstools= linux-c7-dosfstools>0:sysutils/linux-c7-dosfstools +_linux_c7_dosfstools= linux-c7-dosfstools>0:filesystems/linux-c7-dosfstools _linux_${linux_ARGS}_dri= linux-${linux_ARGS}-dri>0:graphics/linux-${linux_ARGS}-dri _linux_${linux_ARGS}_elfutils-libelf= linux-${linux_ARGS}-elfutils-libelf>0:devel/linux-${linux_ARGS}-elfutils-libelf -_linux_c7_elfutils-libs= linux-c7-elfutils-libs>0:devel/linux-c7-elfutils-libs +_linux_${linux_ARGS}_elfutils-libs= linux-${linux_ARGS}-elfutils-libs>0:devel/linux-${linux_ARGS}-elfutils-libs _linux_c7_expat-devel= linux-c7-expat-devel>0:textproc/linux-c7-expat-devel _linux_${linux_ARGS}_expat= linux-${linux_ARGS}-expat>0:textproc/linux-${linux_ARGS}-expat -_linux_c7_flac= linux-c7-flac-libs>0:audio/linux-c7-flac +_linux_rl9_ffmpeg-libs= linux-rl9-ffmpeg-libs>0:multimedia/linux-rl9-ffmpeg +_linux_${linux_ARGS}_flac= linux-${linux_ARGS}-flac-libs>0:audio/linux-${linux_ARGS}-flac _linux_${linux_ARGS}_fontconfig= linux-${linux_ARGS}-fontconfig>0:x11-fonts/linux-${linux_ARGS}-fontconfig -_linux_c7_freetype= linux-c7-freetype>0:print/linux-c7-freetype -_linux_c7_fribidi= linux-c7-fribidi>0:converters/linux-c7-fribidi +_linux_${linux_ARGS}_freetype= linux-${linux_ARGS}-freetype>0:print/linux-${linux_ARGS}-freetype +_linux_${linux_ARGS}_fribidi= linux-${linux_ARGS}-fribidi>0:converters/linux-${linux_ARGS}-fribidi _linux_${linux_ARGS}_gdkpixbuf2= linux-${linux_ARGS}-gdk-pixbuf2>0:graphics/linux-${linux_ARGS}-gdk-pixbuf2 +_linux_rl9_gnupg= linux-rl9-gnupg2>0:security/linux-rl9-gnupg _linux_${linux_ARGS}_gnutls= linux-${linux_ARGS}-gnutls>0:security/linux-${linux_ARGS}-gnutls -_linux_c7_graphite2= linux-c7-graphite2>0:graphics/linux-c7-graphite2 -_linux_c7_gsm= linux-c7-gsm>0:audio/linux-c7-gsm +_linux_rl9_graphene= linux-rl9-graphene>0:graphics/linux-rl9-graphene +_linux_${linux_ARGS}_graphite2= linux-${linux_ARGS}-graphite2>0:graphics/linux-${linux_ARGS}-graphite2 +_linux_${linux_ARGS}_gsm= linux-${linux_ARGS}-gsm>0:audio/linux-${linux_ARGS}-gsm +_linux_rl9_gstreamer1= linux-rl9-gstreamer1>0:multimedia/linux-rl9-gstreamer1 +_linux_rl9_gstreamer1-libav= linux-rl9-gstreamer1-plugin-libav>0:multimedia/linux-rl9-gstreamer1-libav _linux_${linux_ARGS}_gtk2= linux-${linux_ARGS}-gtk2>0:x11-toolkits/linux-${linux_ARGS}-gtk2 -_linux_c7_gtk3= linux-c7-gtk3>0:x11-toolkits/linux-c7-gtk3 -_linux_c7_harfbuzz= linux-c7-harfbuzz>0:print/linux-c7-harfbuzz +_linux_${linux_ARGS}_gtk3= linux-${linux_ARGS}-gtk3>0:x11-toolkits/linux-${linux_ARGS}-gtk3 +_linux_${linux_ARGS}_harfbuzz= linux-${linux_ARGS}-harfbuzz>0:print/linux-${linux_ARGS}-harfbuzz +_linux_rl9_highway= linux-rl9-highway>0:devel/linux-rl9-highway _linux_${linux_ARGS}_icu= linux-${linux_ARGS}-icu>0:devel/linux-${linux_ARGS}-icu -_linux_${linux_ARGS}_jasper= linux-${linux_ARGS}-jasper-libs>0:graphics/linux-${linux_ARGS}-jasper -_linux_c7_jbigkit= linux-c7-jbigkit-libs>0:graphics/linux-c7-jbigkit -_linux_${linux_ARGS}_jpeg= linux-${linux_ARGS}-jpeg>0:graphics/linux-${linux_ARGS}-jpeg +_linux_${linux_ARGS}_imageformats-libs= linux-${linux_ARGS}-imageformats-libs>0:graphics/linux-${linux_ARGS}-imageformats-libs _linux_c7_libaio= linux-c7-libaio>0:devel/linux-c7-libaio +_linux_rl9_libassuan= linux-rl9-libassuan>0:security/linux-rl9-libassuan _linux_${linux_ARGS}_libasyncns= linux-${linux_ARGS}-libasyncns>0:dns/linux-${linux_ARGS}-libasyncns _linux_c7_libaudiofile= linux-c7-audiofile>0:audio/linux-c7-audiofile _linux_c7_libcroco= linux-c7-libcroco>0:textproc/linux-c7-libcroco -_linux_c7_libdrm= linux-c7-libdrm>0:graphics/linux-c7-libdrm -_linux_c7_libepoxy= linux-c7-libepoxy>0:graphics/linux-c7-libepoxy +_linux_${linux_ARGS}_libdrm= linux-${linux_ARGS}-libdrm>0:graphics/linux-${linux_ARGS}-libdrm +_linux_${linux_ARGS}_libepoxy= linux-${linux_ARGS}-libepoxy>0:graphics/linux-${linux_ARGS}-libepoxy +_linux_rl9_libevent= linux-rl9-libevent>0:devel/linux-rl9-libevent _linux_${linux_ARGS}_libgcrypt= linux-${linux_ARGS}-libgcrypt>0:security/linux-${linux_ARGS}-libgcrypt -_linux_${linux_ARGS}_libgfortran= linux-${linux_ARGS}-libgfortran>0:devel/linux-${linux_ARGS}-libgfortran -_linux_c7_libglvnd= linux-c7-libglvnd>0:graphics/linux-c7-libglvnd +_linux_${linux_ARGS}_libglvnd= linux-${linux_ARGS}-libglvnd>0:graphics/linux-${linux_ARGS}-libglvnd _linux_${linux_ARGS}_libgpg-error= linux-${linux_ARGS}-libgpg-error>0:security/linux-${linux_ARGS}-libgpg-error +_linux_rl9_libjxl= linux-rl9-libjxl>0:graphics/linux-rl9-libjxl +_linux_rl9_libksba= linux-rl9-libksba>0:security/linux-rl9-libksba +_linux_rl9_libnghttp2= linux-rl9-libnghttp2>0:www/linux-rl9-libnghttp2 _linux_${linux_ARGS}_libogg= linux-${linux_ARGS}-libogg>0:audio/linux-${linux_ARGS}-libogg _linux_${linux_ARGS}_libpciaccess= linux-${linux_ARGS}-libpciaccess>0:devel/linux-${linux_ARGS}-libpciaccess -_linux_c7_librsvg2= linux-c7-librsvg2>0:graphics/linux-c7-librsvg2 +_linux_${linux_ARGS}_librsvg2= linux-${linux_ARGS}-librsvg2>0:graphics/linux-${linux_ARGS}-librsvg2 +_linux_rl9_libsecret= linux-rl9-libsecret>0:security/linux-rl9-libsecret +_linux_${linux_ARGS}_libsigc++20= linux-${linux_ARGS}-libsigc++20>0:devel/linux-${linux_ARGS}-libsigc++20 _linux_${linux_ARGS}_libsndfile= linux-${linux_ARGS}-libsndfile>0:audio/linux-${linux_ARGS}-libsndfile -_linux_${linux_ARGS}_libssh2= linux-${linux_ARGS}-libssh2>0:security/linux-${linux_ARGS}-libssh2 +_linux_rl9_libssh= linux-rl9-libssh>0:security/linux-rl9-libssh +_linux_c7_libssh2= linux-c7-libssh2>0:security/linux-c7-libssh2 +_linux_rl9_libstemmer= linux-rl9-libstemmer>=0:textproc/linux-rl9-libstemmer _linux_${linux_ARGS}_libtasn1= linux-${linux_ARGS}-libtasn1>0:security/linux-${linux_ARGS}-libtasn1 _linux_${linux_ARGS}_libthai= linux-${linux_ARGS}-libthai>0:devel/linux-${linux_ARGS}-libthai _linux_${linux_ARGS}_libtheora= linux-${linux_ARGS}-libtheora>0:multimedia/linux-${linux_ARGS}-libtheora +_linux_${linux_ARGS}_libtool-ltdl= linux-${linux_ARGS}-libtool-ltdl>0:devel/linux-${linux_ARGS}-libtool-ltdl +_linux_rl9_libtracker-sparql= linux-rl9-libtracker-sparql>0:databases/linux-rl9-libtracker-sparql _linux_${linux_ARGS}_libunwind= linux-${linux_ARGS}-libunwind>0:devel/linux-${linux_ARGS}-libunwind _linux_${linux_ARGS}_libv4l= linux-${linux_ARGS}-libv4l>0:multimedia/linux-${linux_ARGS}-libv4l +_linux_rl9_libva= linux-rl9-libva>0:multimedia/linux-rl9-libva +_linux_rl9_libvdpau= linux-rl9-libvdpau>0:multimedia/linux-rl9-libvdpau _linux_${linux_ARGS}_libvorbis= linux-${linux_ARGS}-libvorbis>0:audio/linux-${linux_ARGS}-libvorbis -_linux_c7_libxkbcommon= linux-c7-libxkbcommon>0:x11/linux-c7-libxkbcommon +_linux_rl9_libvpx= linux-rl9-libvpx>0:multimedia/linux-rl9-libvpx +_linux_${linux_ARGS}_libxkbcommon= linux-${linux_ARGS}-libxkbcommon>0:x11/linux-${linux_ARGS}-libxkbcommon _linux_${linux_ARGS}_libxml2= linux-${linux_ARGS}-libxml2>0:textproc/linux-${linux_ARGS}-libxml2 -_linux_${linux_ARGS}_lttng-ust= linux-${linux_ARGS}-lttng-ust>0:sysutils/linux-${linux_ARGS}-lttng-ust -_linux_c7_lz4= linux-c7-lz4>0:archivers/linux-c7-lz4 +_linux_${linux_ARGS}_libxslt= linux-${linux_ARGS}-libxslt>0:textproc/linux-${linux_ARGS}-libxslt +_linux_rl9_lld= linux-rl9-llvm>0:devel/linux-rl9-lld +_linux_rl9_lldb= linux-rl9-llvm>0:devel/linux-rl9-lldb +_linux_rl9_llvm= linux-rl9-llvm>0:devel/linux-rl9-llvm +_linux_c7_lttng-ust= linux-c7-lttng-ust>0:sysutils/linux-c7-lttng-ust +_linux_${linux_ARGS}_lz4= linux-${linux_ARGS}-lz4>0:archivers/linux-${linux_ARGS}-lz4 _linux_c7_make= linux-c7-make>0:devel/linux-c7-make -_linux_c7_nettle= linux-c7-nettle>0:security/linux-c7-nettle +_linux_${linux_ARGS}_nettle= linux-${linux_ARGS}-nettle>0:security/linux-${linux_ARGS}-nettle _linux_${linux_ARGS}_nspr= linux-${linux_ARGS}-nspr>0:devel/linux-${linux_ARGS}-nspr _linux_${linux_ARGS}_nss= linux-${linux_ARGS}-nss>0:security/linux-${linux_ARGS}-nss +_linux_rl9_npth= linux-rl9-npth>0:devel/linux-rl9-npth _linux_c7_numactl-libs= linux-c7-numactl-libs>0:sysutils/linux-c7-numactl-libs +_linux_rl9_ocl-icd= linux-rl9-ocl-icd>0:devel/linux-rl9-ocl-icd _linux_${linux_ARGS}_openal-soft= linux-${linux_ARGS}-openal-soft>0:audio/linux-${linux_ARGS}-openal-soft _linux_${linux_ARGS}_openldap= linux-${linux_ARGS}-openldap>0:net/linux-${linux_ARGS}-openldap _linux_c7_openmotif= linux-c7-motif>0:x11-toolkits/linux-c7-openmotif _linux_c7_openssl-devel= linux-c7-openssl-devel>0:security/linux-c7-openssl-devel _linux_c7_openssl= ${_linux_c7_base} -_linux_c7_p11-kit= linux-c7-p11-kit>0:security/linux-c7-p11-kit +_linux_rl9_opus= linux-rl9-opus>0:audio/linux-rl9-opus +_linux_rl9_orc= linux-rl9-orc>0:devel/linux-rl9-orc +_linux_${linux_ARGS}_p11-kit= linux-${linux_ARGS}-p11-kit>0:security/linux-${linux_ARGS}-p11-kit _linux_${linux_ARGS}_pango= linux-${linux_ARGS}-pango>0:x11-toolkits/linux-${linux_ARGS}-pango _linux_${linux_ARGS}_pixman= linux-${linux_ARGS}-pixman>0:x11/linux-${linux_ARGS}-pixman -_linux_${linux_ARGS}_png= linux-${linux_ARGS}-libpng>0:graphics/linux-${linux_ARGS}-png _linux_${linux_ARGS}_pulseaudio-libs= linux-${linux_ARGS}-pulseaudio-libs>0:audio/linux-${linux_ARGS}-pulseaudio-libs +_linux_rl9_pulseaudio-utils= linux-rl9-pulseaudio-utils>0:audio/linux-rl9-pulseaudio-utils +_linux_rl9_python3= linux-rl9-python39>0:lang/linux-rl9-python3 _linux_c7_qt= linux-c7-qt>0:devel/linux-c7-qt _linux_c7_qt-x11= linux-c7-qt-x11>0:x11-toolkits/linux-c7-qt-x11 _linux_c7_qtwebkit= linux-c7-qtwebkit>0:www/linux-c7-qtwebkit +_linux_rl9_qt3d= linux-rl9-qt5-qt3d>0:graphics/linux-rl9-qt5-qt3d +_linux_rl9_qtbase= linux-rl9-qt5-qtbase>0:devel/linux-rl9-qt5-qtbase +_linux_rl9_qtconnectivity= linux-rl9-qt5-qtconnectivity>0:comms/linux-rl9-qt5-qtconnectivity +_linux_rl9_qtdeclarative= linux-rl9-qt5-qtdeclarative>0:x11-toolkits/linux-rl9-qt5-qtdeclarative +_linux_rl9_qtgraphicaleffects= linux-rl9-qt5-qtgraphicaleffects>0:graphics/linux-rl9-qt5-qtgraphicaleffects +_linux_rl9_qtimageformats= linux-rl9-qt5-qtimageformats>0:graphics/linux-rl9-qt5-qtimageformats +_linux_rl9_qtmultimedia= linux-rl9-qt5-qtmultimedia>0:multimedia/linux-rl9-qt5-qtmultimedia +_linux_rl9_qtquickcontrols= linux-rl9-qt5-qtquickcontrols>0:x11-toolkits/linux-rl9-qt5-qtquickcontrols +_linux_rl9_qtscript= linux-rl9-qt5-qtscript>0:devel/linux-rl9-qt5-qtscript +_linux_rl9_qtsensors= linux-rl9-qt5-qtsensors>0:comms/linux-rl9-qt5-qtsensors +_linux_rl9_qtserialbus= linux-rl9-qt5-qtserialbus>0:comms/linux-rl9-qt5-qtserialbus +_linux_rl9_qtserialport= linux-rl9-qt5-qtserialport>0:comms/linux-rl9-qt5-qtserialport +_linux_rl9_qtsvg= linux-rl9-qt5-qtsvg>0:graphics/linux-rl9-qt5-qtsvg +_linux_rl9_qttools= linux-rl9-qt5-qttools>0:devel/linux-rl9-qt5-qttools +_linux_rl9_qtwayland= linux-rl9-qt5-qtwayland>0:graphics/linux-rl9-qt5-qtwayland +_linux_rl9_qtwebchannel= linux-rl9-qt5-qtwebchannel>0:www/linux-rl9-qt5-qtwebchannel +_linux_rl9_qtwebsockets= linux-rl9-qt5-qtwebsockets>0:www/linux-rl9-qt5-qtwebsockets +_linux_rl9_qtx11extras= linux-rl9-qt5-qtx11extras>0:x11/linux-rl9-qt5-qtx11extras +_linux_rl9_qtxmlpatterns= linux-rl9-qt5-qtxmlpatterns>0:textproc/linux-rl9-qt5-qtxmlpatterns _linux_${linux_ARGS}_sdl12= linux-${linux_ARGS}-sdl>0:devel/linux-${linux_ARGS}-sdl12 -_linux_${linux_ARGS}_sdlimage= linux-${linux_ARGS}-sdl_image>0:graphics/linux-${linux_ARGS}-sdl_image -_linux_${linux_ARGS}_sdlmixer= linux-${linux_ARGS}-sdl_mixer>0:audio/linux-${linux_ARGS}-sdl_mixer -_linux_${linux_ARGS}_sdlttf= linux-${linux_ARGS}-sdl_ttf>0:graphics/linux-${linux_ARGS}-sdl_ttf -_linux_${linux_ARGS}_sqlite3= linux-${linux_ARGS}-sqlite>0:databases/linux-${linux_ARGS}-sqlite3 -_linux_c7_systemd-libs= linux-c7-systemd-libs>0:devel/linux-c7-systemd-libs -_linux_${linux_ARGS}_tcl85= linux-${linux_ARGS}-tcl85>0:lang/linux-${linux_ARGS}-tcl85 +_linux_${linux_ARGS}_sdl12-extralibs= linux-${linux_ARGS}-sdl12-extralibs>0:misc/linux-${linux_ARGS}-sdl12-extralibs +_linux_${linux_ARGS}_sdl20= linux-${linux_ARGS}-sdl20>0:devel/linux-${linux_ARGS}-sdl20 +_linux_${linux_ARGS}_sdl20-extralibs= linux-${linux_ARGS}-sdl20-extralibs>0:misc/linux-${linux_ARGS}-sdl20-extralibs +_linux_rl9_shaderc= linux-rl9-shaderc>0:graphics/linux-rl9-shaderc +_linux_rl9_spirv-tools= linux-rl9-spirv-tools>0:graphics/linux-rl9-spirv-tools +_linux_c7_sqlite3= linux-c7-sqlite>0:databases/linux-c7-sqlite3 +_linux_rl9_sqlite3= ${_linux_rl9_base} +_linux_${linux_ARGS}_strace= linux-${linux_ARGS}-strace>0:devel/linux-${linux_ARGS}-strace +_linux_${linux_ARGS}_systemd-libs= linux-${linux_ARGS}-systemd-libs>0:devel/linux-${linux_ARGS}-systemd-libs +_linux_c7_tcl85= linux-c7-tcl85>0:lang/linux-c7-tcl85 +_linux_rl9_tcl86= linux-rl9-tcl86>0:lang/linux-rl9-tcl86 _linux_${linux_ARGS}_tcp_wrappers-libs= linux-${linux_ARGS}-tcp_wrappers-libs>0:net/linux-${linux_ARGS}-tcp_wrappers-libs -_linux_${linux_ARGS}_tiff= linux-${linux_ARGS}-libtiff>0:graphics/linux-${linux_ARGS}-tiff -_linux_${linux_ARGS}_tk85= linux-${linux_ARGS}-tk85>0:x11-toolkits/linux-${linux_ARGS}-tk85 -_linux_c7_trousers= linux-c7-trousers>0:security/linux-c7-trousers -_linux_${linux_ARGS}_userspace-rcu= linux-${linux_ARGS}-userspace-rcu>0:sysutils/linux-${linux_ARGS}-userspace-rcu -_linux_c7_wayland= linux-c7-wayland>0:graphics/linux-c7-wayland -_linux_c7_xcb-util= linux-c7-xcb-util>0:x11/linux-c7-xcb-util -_linux_c7_xorglibs= linux-c7-xorg-libs>=7.7_7:x11/linux-c7-xorg-libs +_linux_c7_tk85= linux-c7-tk85>0:x11-toolkits/linux-c7-tk85 +_linux_rl9_tk86= linux-rl9-tk86>0:x11-toolkits/linux-rl9-tk86 +_linux_${linux_ARGS}_trousers= linux-${linux_ARGS}-trousers>0:security/linux-${linux_ARGS}-trousers +_linux_c7_userspace-rcu= linux-c7-userspace-rcu>0:sysutils/linux-c7-userspace-rcu +_linux_rl9_vmaf= linux-rl9-vmaf>0:multimedia/linux-rl9-vmaf +_linux_rl9_vulkan= linux-rl9-vulkan-loader>0:graphics/linux-rl9-vulkan +_linux_${linux_ARGS}_wayland= linux-${linux_ARGS}-wayland>0:graphics/linux-${linux_ARGS}-wayland +_linux_rl9_wget= linux-rl9-wget>0:ftp/linux-rl9-wget +_linux_${linux_ARGS}_xcb-util= linux-${linux_ARGS}-xcb-util>0:x11/linux-${linux_ARGS}-xcb-util +_linux_${linux_ARGS}_xorglibs= linux-${linux_ARGS}-xorg-libs>=7.7:x11/linux-${linux_ARGS}-xorg-libs _linux_c7_zlib-devel= linux-c7-zlib-devel>0:devel/linux-c7-zlib-devel +# special node for linux_libusb +_linux_${linux_ARGS}_libusb= linux_libusb-${linux_ARGS}>0:devel/linux_libusb@${linux_ARGS} USE_LINUX?= base . for i in ${USE_LINUX} @@ -172,6 +239,18 @@ MASTER_SITE_SUBDIR= altarch/${LINUX_DIST_VER}/os/aarch64/Packages/:DEFAULT,aarch centos/${LINUX_DIST_VER}/updates/Source/SPackages/:SOURCE . endif DIST_SUBDIR?= centos +DEPRECATED= CentOS Linux 7 reached end of life (EOL) on June 30, 2024 +. elif ${linux_ARGS} == rl9 +. ifndef MASTER_SITES +MASTER_SITES= ${MASTER_SITE_ROCKY_LINUX} +MASTER_SITE_SUBDIR= ${LINUX_DIST_VER}/BaseOS/aarch64/os/Packages/:DEFAULT,aarch64 \ + ${LINUX_DIST_VER}/AppStream/aarch64/os/Packages/:DEFAULT,aarch64 \ + ${LINUX_DIST_VER}/BaseOS/x86_64/os/Packages/:DEFAULT,amd64 \ + ${LINUX_DIST_VER}/AppStream/x86_64/os/Packages/:DEFAULT,amd64 \ + ${LINUX_DIST_VER}/BaseOS/source/tree/Packages/:SOURCE \ + ${LINUX_DIST_VER}/AppStream/source/tree/Packages/:SOURCE +. endif +DIST_SUBDIR?= rocky . endif # ${linux_ARGS} == * PKGNAMEPREFIX?= linux-${linux_ARGS}- @@ -203,6 +282,17 @@ BIN_DISTNAMES?= ${DISTNAME} . else LIB_DISTNAMES?= ${DISTNAME} . endif +. if ${linux_ARGS} == rl9 +. if !empty(SHARE_DISTNAMES) +SHARE_DISTNAMES:= ${SHARE_DISTNAMES:@i@${i:C/^([A-Za-z0-9]).*/\1/:tl}/${i}@} +. endif +. if !empty(BIN_DISTNAMES) +BIN_DISTNAMES:= ${BIN_DISTNAMES:@i@${i:C/^([A-Za-z0-9]).*/\1/:tl}/${i}@} +. endif +. if !empty(LIB_DISTNAMES) +LIB_DISTNAMES:= ${LIB_DISTNAMES:@i@${i:C/^([A-Za-z0-9]).*/\1/:tl}/${i}@} +. endif +. endif . if !(defined(ONLY_FOR_ARCHS) && empty(ONLY_FOR_ARCHS:Maarch64)) \ && empty(NOT_FOR_ARCHS:Maarch64) DISTFILES_aarch64?= ${LIB_DISTNAMES:S/$/${EXTRACT_SUFX_aarch64}:aarch64/} \ @@ -212,12 +302,19 @@ DISTFILES_aarch64?= ${LIB_DISTNAMES:S/$/${EXTRACT_SUFX_aarch64}:aarch64/} \ . endif . if !(defined(ONLY_FOR_ARCHS) && empty(ONLY_FOR_ARCHS:Mamd64)) \ && empty(NOT_FOR_ARCHS:Mamd64) -DISTFILES_amd64?= ${LIB_DISTNAMES:S/$/${EXTRACT_SUFX_i386}:amd64,i386/} \ - ${LIB_DISTNAMES_i386:S/$/${EXTRACT_SUFX_i386}:amd64,i386/} \ - ${LIB_DISTNAMES:S/$/${EXTRACT_SUFX_amd64}:amd64/} \ +. ifndef DISTFILES_amd64 +. if ${linux_ARGS} == c7 +DISTFILES_amd64= ${LIB_DISTNAMES:S/$/${EXTRACT_SUFX_i386}:amd64,i386/} \ + ${LIB_DISTNAMES_i386:S/$/${EXTRACT_SUFX_i386}:amd64,i386/} +. endif +. if !empty(WANT_LINUX32) +DISTFILES_amd64+= ${LIB_DISTNAMES:S/$/${EXTRACT_SUFX_i386}:amd64/} +. endif +DISTFILES_amd64+= ${LIB_DISTNAMES:S/$/${EXTRACT_SUFX_amd64}:amd64/} \ ${LIB_DISTNAMES_amd64:S/$/${EXTRACT_SUFX_amd64}:amd64/} \ ${BIN_DISTNAMES:S/$/${EXTRACT_SUFX_amd64}:amd64/} \ ${SHARE_DISTNAMES:S/$/${EXTRACT_SUFX_noarch}/} +. endif . endif . if !(defined(ONLY_FOR_ARCHS) && empty(ONLY_FOR_ARCHS:Mi386)) \ && empty(NOT_FOR_ARCHS:Mi386) @@ -227,6 +324,9 @@ DISTFILES_i386?= ${LIB_DISTNAMES:S/$/${EXTRACT_SUFX_i386}:amd64,i386/} \ ${SHARE_DISTNAMES:S/$/${EXTRACT_SUFX_noarch}/} . endif SRC_DISTFILES?= ${DISTNAME}${SRC_SUFX}:SOURCE +. if ${linux_ARGS} == rl9 +SRC_DISTFILES:= ${SRC_DISTFILES:@i@${i:C/^([A-Za-z0-9]).*/\1/:tl}/${i}@} +. endif . ifdef USE_LINUX_RPM_BAD_PERMS EXTRACT_DEPENDS+= rpm2archive:archivers/rpm4 @@ -242,7 +342,7 @@ PLIST?= ${PKGDIR}/pkg-plist.${ARCH} . if !target(do-install) do-install: (cd ${WRKSRC} && \ - ${FIND} * | ${CPIO} -dumpl --quiet ${STAGEDIR}${PREFIX}) + ${FIND} * -not -path 'usr/lib/.build-id*' | ${CPIO} -dumpl --quiet ${STAGEDIR}${PREFIX}) . for d in bin lib lib64 sbin [ ! -e ${STAGEDIR}${PREFIX}/${d} -o -L ${STAGEDIR}${PREFIX}/${d} ] || \ (cd ${STAGEDIR}${PREFIX} && \ @@ -253,6 +353,7 @@ do-install: (cd ${STAGEDIR}${PREFIX}/usr/share && ${FIND} icons | \ ${CPIO} -dumpl --quiet ${STAGEDIR}${LOCALBASE}/share && \ ${RM} -r icons) + ${RMDIR} ${STAGEDIR}${PREFIX}/usr/lib ${STAGEDIR}${PREFIX}/usr/lib64 || ${TRUE} . endif . endif # USE_LINUX_RPM diff --git a/Mk/Uses/llvm.mk b/Mk/Uses/llvm.mk index cc6e7f464fcc..d6108a998882 100644 --- a/Mk/Uses/llvm.mk +++ b/Mk/Uses/llvm.mk @@ -32,15 +32,26 @@ # * LLVM_LIBLLVM libLLVM.so of the chosen port # * LLVM_PREFIX installation prefix of the chosen port # +# MAINTAINER: ports@FreeBSD.org .if !defined(_INCLUDE_USES_LLVM_MK) _INCLUDE_USES_LLVM_MK= YES -_LLVM_MK_VALID_VERSIONS= 11 12 13 14 15 16 17 18 +_LLVM_MK_VALID_VERSIONS= 11 12 13 14 15 16 17 18 19 20 _LLVM_MK_VALID_CONSTRAINTS= min max _LLVM_MK_VALID_MODES= build run lib _LLVM_MK_VALID_EXPORTS= export noexport +# === verify that there are no invalid arguments === +. for _arg in ${llvm_ARGS} +. if !${_LLVM_MK_VALID_VERSIONS:M${_arg}} && \ + !${_LLVM_MK_VALID_MODES:M${_arg}} && \ + ${_arg:C/^(${_LLVM_MK_VALID_CONSTRAINTS:tW:S/ /|/g})=(${_LLVM_MK_VALID_VERSIONS:tW:S/ /|/g})$//} != "" && \ + !${_LLVM_MK_VALID_EXPORTS:M${_arg}} +BROKEN= USES=llvm:${llvm_ARGS:tW:S/ /,/g} contains an invalid argument: "${_arg}" +. endif +. endfor + # === parse mode arguments === _LLVM_MK_MODES= # empty . for _mode in ${_LLVM_MK_VALID_MODES} @@ -57,18 +68,14 @@ _LLVM_MK_VERSION= # empty . for _ver in ${_LLVM_MK_VALID_VERSIONS} . if ${llvm_ARGS:M${_ver}} . if !empty(_LLVM_MK_VERSION) -BROKEN= USES=llvm:${llvm_ARGS} contains multiple version definitions +BROKEN= USES=llvm:${llvm_ARGS:tW:S/ /,/g} contains multiple version definitions . else _LLVM_MK_VERSION= ${_ver} . endif . endif . endfor . if empty(_LLVM_MK_VERSION) -. if ${LLVM_DEFAULT:N1[0-9]*} -_LLVM_MK_VERSION= ${LLVM_DEFAULT:S/0$//} -. else _LLVM_MK_VERSION= ${LLVM_DEFAULT} -. endif . endif # === parse environment arguments === @@ -76,7 +83,7 @@ _LLVM_MK_EXPORT= # empty . for _export in ${_LLVM_MK_VALID_EXPORTS} . if ${llvm_ARGS:M${_export}} . if !empty(_LLVM_MK_EXPORT) -BROKEN= USES=llvm:${llvm_ARGS} contains multiple export definitions +BROKEN= USES=llvm:${llvm_ARGS:tW:S/ /,/g} contains multiple export definitions . else _LLVM_MK_EXPORT= ${_export} . endif @@ -107,10 +114,6 @@ _LLVM_MK_VERSION= ${_LLVM_MK_CONSTRAINT_max} . endif # === define helpers for the dependencies === -. for _ver in ${_LLVM_MK_VALID_VERSIONS:N1[0-9]} -_LLVM_MK_SUFFIX_${_ver}= ${_ver}0 -. endfor - . for _ver in ${_LLVM_MK_VALID_VERSIONS} _LLVM_MK_SUFFIX_${_ver}?= ${_ver} . endfor diff --git a/Mk/Uses/luajit.mk b/Mk/Uses/luajit.mk index c7a15b191209..7e62c192fd77 100644 --- a/Mk/Uses/luajit.mk +++ b/Mk/Uses/luajit.mk @@ -7,7 +7,7 @@ # LUAJIT_VER: The selected luajit version # LUAJIT_INCDIR: The path to luajit's header files # LUAJIT_LUAVER: Which luajit spec version is selected -# (2.0 for luajit, else 2.1) +# (always 2.1) .if !defined(_INCLUDE_USES_LUAJIT_MK) _INCLUDE_USES_LUAJIT_MK=yes @@ -28,11 +28,7 @@ IGNORE= Invalid luajit default version ${LUAJIT_DEFAULT}: valid versions are ${V IGNORE= Invalid luajit version ${LUAJIT_VER}: valid versions are ${VALID_LUAJIT_VER} .endif -.if ${LUAJIT_VER} == luajit -LUAJIT_LUAVER= 2.0 -.else LUAJIT_LUAVER= 2.1 -.endif LIB_DEPENDS+= libluajit-5.1.so:lang/${LUAJIT_VER} LUAJIT_INCDIR= ${LOCALBASE}/include/luajit-${LUAJIT_LUAVER} diff --git a/Mk/Uses/lxqt.mk b/Mk/Uses/lxqt.mk index 035c2d5e0174..135472777a7a 100644 --- a/Mk/Uses/lxqt.mk +++ b/Mk/Uses/lxqt.mk @@ -2,26 +2,32 @@ # life easier, when dealing with ports related to the LXQt Desktop Environment. # # Feature: lxqt -# Usage: USES=lxqt -# Valid ARGS: does not require args +# Usage: USES=lxqt:<version> +# Valid ARGS: 1, 2 # # Available LXQt components are: # -# buildtools - Helpers CMake modules -# globalkeys - Keyboard shortcuts daemon -# libfmqt - Libfm Qt bindings -# lxqt - LXQt core library -# qtxdg - Qt implementation of freedesktop.org xdg specs +# buildtools / buildtools2 - Helpers CMake modules +# globalkeys - Keyboard shortcuts daemon +# libfmqt / libfmqt6 - Libfm Qt5/Qt6 bindings +# lxqt - LXQt core library +# qtxdg / qt6xdg - Qt5/Qt6 implementation of freedesktop.org xdg specs +# sysstat / sysstat-qt6 - Qt5/Qt6 library to query system information # # MAINTAINER: ports@FreeBSD.org .if !defined(_INCLUDE_USES_LXQT_MK) _INCLUDE_USES_LXQT_MK= yes -. if !empty(lxqt_ARGS) -IGNORE= Incorrect 'USES+=lxqt:${lxqt_ARGS} takes no arguments +. if empty(lxqt_ARGS) +IGNORE= Incorrect 'USES+=lxqt:${lxqt_ARGS} takes arguments 1 or 2 . endif +. if ${lxqt_ARGS:N1:N2} +IGNORE= Unknown argument for USES=lxqt: ${lxqt_ARGS:N1:N2} +. endif + +_LXQT_VER= ${lxqt_ARGS} _LXQT_PROJECT= ${DISTNAME:S/-${DISTVERSION}//:tl} MASTER_SITE_LXQT+= \ @@ -32,6 +38,7 @@ MASTER_SITE_LXQT_SUBDIR= ${_LXQT_PROJECT} MASTER_SITES?= ${MASTER_SITE_LXQT} MASTER_SITE_SUBDIR?= ${MASTER_SITE_LXQT_SUBDIR} +DISTNAME= ${PORTNAME:S/2//:S/6//}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} DIST_SUBDIR= lxqt PLIST_SUB+= LXQT_INCLUDEDIR="include/lxqt" \ @@ -42,22 +49,31 @@ PLIST_SUB+= LXQT_INCLUDEDIR="include/lxqt" \ CMAKE_ARGS+= -DCMAKE_INSTALL_MANDIR=${PREFIX}/share/man # Available LXQt components are: -_USE_LXQT_ALL= buildtools globalkeys libfmqt lxqt qtxdg +_USE_LXQT1_ONLY=buildtools libfmqt qtxdg sysstat + +_USE_LXQT2_ONLY=buildtools2 globalkeys libfmqt6 lxqt qt6xdg sysstat-qt6 + +_USE_LXQT_ALL= ${_USE_LXQT${_LXQT_VER}_ONLY} _DATAROOTDIR= ${LOCALBASE}/share buildtools_BUILD_DEPENDS= ${_DATAROOTDIR}/cmake/lxqt-build-tools/lxqt-build-tools-config.cmake:devel/lxqt-build-tools +buildtools2_BUILD_DEPENDS= ${_DATAROOTDIR}/cmake/lxqt2-build-tools/lxqt2-build-tools-config.cmake:devel/lxqt2-build-tools globalkeys_LIB_DEPENDS= liblxqt-globalkeys.so:x11/lxqt-globalkeys - globalkeys_USE_LXQT_REQ= lxqt libfmqt_LIB_DEPENDS= libfm-qt.so:x11/libfm-qt +libfmqt6_LIB_DEPENDS= libfm-qt6.so:x11/libfm-qt6 lxqt_LIB_DEPENDS= liblxqt.so:devel/liblxqt -lxqt_USE_LXQT_REQ= qtxdg +lxqt_USE_LXQT_REQ= qt6xdg qtxdg_LIB_DEPENDS= libQt5Xdg.so:devel/libqtxdg +qt6xdg_LIB_DEPENDS= libQt6Xdg.so:devel/libqt6xdg + +sysstat_LIB_DEPENDS= libsysstat-qt5:devel/libsysstat +sysstat-qt6_LIB_DEPENDS=libsysstat-qt6.so:devel/libsysstat-qt6 . if defined(USE_LXQT) diff --git a/Mk/Uses/mate.mk b/Mk/Uses/mate.mk index dc4272bb90a0..6d6800eb078f 100644 --- a/Mk/Uses/mate.mk +++ b/Mk/Uses/mate.mk @@ -58,7 +58,7 @@ common_DETECT= ${LOCALBASE}/bin/mate-autogen common_BUILD_DEPENDS= ${common_DETECT}:devel/mate-common common_RUN_DEPENDS= ${common_DETECT}:devel/mate-common -controlcenter_DETECT= ${LOCALBASE}/libdata/pkgconfig/mate-window-settings-2.0.pc +controlcenter_DETECT= ${LOCALBASE}/libdata/pkgconfig/mate-default-applications.pc controlcenter_BUILD_DEPENDS= ${controlcenter_DETECT}:sysutils/mate-control-center controlcenter_LIB_DEPENDS= libmate-window-settings.so:sysutils/mate-control-center controlcenter_RUN_DEPENDS= ${controlcenter_DETECT}:sysutils/mate-control-center diff --git a/Mk/Uses/meson.mk b/Mk/Uses/meson.mk index 571e8a990be0..ed09a9cee806 100644 --- a/Mk/Uses/meson.mk +++ b/Mk/Uses/meson.mk @@ -33,6 +33,7 @@ BUILD_DEPENDS+= meson:devel/meson USE_LOCALE?= en_US.UTF-8 CONFIGURE_ARGS+= --prefix ${PREFIX} \ + --localstatedir /var \ --infodir ${INFO_PATH} # Enable all optional features to make builds deterministic. Consumers can @@ -70,6 +71,7 @@ BUILD_WRKSRC= ${WRKSRC}/${MESON_BUILD_DIR} INSTALL_WRKSRC= ${WRKSRC}/${MESON_BUILD_DIR} +TEST_ENV+= MESON_TESTTHREADS=${MAKE_JOBS_NUMBER} TEST_WRKSRC= ${WRKSRC}/${MESON_BUILD_DIR} TEST_TARGET= test diff --git a/Mk/Uses/mlt.mk b/Mk/Uses/mlt.mk index d81f848e37b9..2cf044dcad0a 100644 --- a/Mk/Uses/mlt.mk +++ b/Mk/Uses/mlt.mk @@ -37,7 +37,7 @@ _MLT_NODEPEND= yes . endif # Library dependencies -_MLT7_VERSION= 7.22.0 +_MLT7_VERSION= 7.32.0 _MLT7_PORTNAME= mlt7 _MLT7_LIB= libmlt-7.so _MLT7_MELT= ${LOCALBASE}/bin/melt-7 diff --git a/Mk/Uses/mpi.mk b/Mk/Uses/mpi.mk index cf14ec675118..b947aad625a2 100644 --- a/Mk/Uses/mpi.mk +++ b/Mk/Uses/mpi.mk @@ -3,7 +3,6 @@ # Feature: mpi # Usage: USES=mpi or USES=mpi:ARGS # Valid ARGS: mpich (default) openmpi -# Note: mpich2 and openmpi3 are not handled # # Provides: MPI_LIBS MPI_CFLAGS MPICC MPICXX MPIF90 MPIFC MPI_HOME \ # MPIEXEC MPIRUN diff --git a/Mk/Uses/mysql.mk b/Mk/Uses/mysql.mk index cf5840131744..fa63b6cf465c 100644 --- a/Mk/Uses/mysql.mk +++ b/Mk/Uses/mysql.mk @@ -60,13 +60,17 @@ DEFAULT_MYSQL_VER?= ${MYSQL_DEFAULT:S/.//} # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. MYSQL80_LIBVER= 21 -MYSQL81_LIBVER= 22 -. for v in 5 6 11 -MYSQL10${v}m_LIBVER= 3 +MYSQL84_LIBVER= 24 +MYSQL91_LIBVER= 24 + +. for v in 105 106 1011 114 118 +MYSQL${v}m_LIBVER= 3 . endfor # Setting/finding MySQL version we want. -. if exists(${LOCALBASE}/bin/mysql) +. if exists(${LOCALBASE}/bin/mariadb) +_MARIADB!= ${LOCALBASE}/bin/mariadb --version | ${GREP} MariaDB | wc -l +. elif exists(${LOCALBASE}/bin/mysql) _MYSQL!= ${LOCALBASE}/bin/mysql_config --version | ${SED} -e 's/\([0-9]\{1,2\}\)\.\([0-9]*\).*/\1\2/' _MARIADB!= ${LOCALBASE}/bin/mysql --version | ${GREP} MariaDB | wc -l diff --git a/Mk/Uses/ninja.mk b/Mk/Uses/ninja.mk index 5c78cf152d07..e9581903b172 100644 --- a/Mk/Uses/ninja.mk +++ b/Mk/Uses/ninja.mk @@ -1,19 +1,20 @@ -# Provide support to use Ninja +# Support for the Ninja and Samurai build systems # -# Feature: ninja -# Usage: USES=ninja -# Valid ARGS: build, make (default), run +# Feature: ninja +# Usage: USES=ninja[:arg] +# Valid ARGS: build, make, run, samurai # -# build add a build dependency on ninja -# make use ninja for the build instead of make, implies "build" -# run add a run dependency on ninja +# build add a build dependency on ninja +# make use ninja for the build instead of make; implies "build" (default) +# run add a run dependency on ninja +# samurai use samurai regardless of NINJA_DEFAULT; implies "make" # # MAINTAINER: ports@FreeBSD.org .if !defined(_INCLUDE_USES_NINJA_MK) _INCLUDE_USES_NINJA_MK= yes -_valid_ARGS= build make run +_valid_ARGS= build make run samurai . for _arg in ${ninja_ARGS} . if empty(_valid_ARGS:M${_arg}) @@ -23,25 +24,27 @@ IGNORE= 'USES+= ninja:${ninja_ARGS}' usage: argument [${_arg}] is not recognized . if empty(ninja_ARGS) ninja_ARGS+= make +. elif !empty(ninja_ARGS:Msamurai) +_SAMURAI_FROM_ARGS= yes +ninja_ARGS+= make . endif . if ${ninja_ARGS:Mmake} ninja_ARGS+= build . endif -. if ${NINJA_DEFAULT} == ninja +. if ${NINJA_DEFAULT} == ninja && !defined(_SAMURAI_FROM_ARGS) NINJA_CMD= ninja _NINJA_PORT= devel/ninja -. elif ${NINJA_DEFAULT} == samurai +. elif ${NINJA_DEFAULT} == samurai || defined(_SAMURAI_FROM_ARGS) NINJA_CMD= samu _NINJA_PORT= devel/samurai MAKE_ENV+= SAMUFLAGS="-v -j${MAKE_JOBS_NUMBER}" . if ${ninja_ARGS:Mbuild} && !${BINARY_ALIAS:U:Mninja=*} -# Cmake and Meson have native support for Samurai and detect and -# use it when Ninja is not available in the build environment. The -# alias is needed for other ports which call Ninja directly and do -# not fall back to Samurai. There should be no harm in providing it -# generally. +# CMake and Meson have native support for Samurai and use it in lieu of +# Ninja if not found in the build environment. BINARY_ALIAS is needed +# for other ports that call the ninja binary directly with no fallback +# consideration for samu. BINARY_ALIAS+= ninja=samu . endif . else @@ -56,10 +59,10 @@ MAKE_ENV+= NINJA_STATUS="[%p %s/%t] " . endif . if ${ninja_ARGS:Mmake} -. if ${NINJA_DEFAULT} == ninja -# samu does not support GNU-style args, so we cannot just append -# -v last. samu gets this via SAMUFLAGS above but ninja does not -# support an equivalent environment variable. +. if ${NINJA_DEFAULT} == ninja && !defined(_SAMURAI_FROM_ARGS) +# samu does not support GNU-style args, so we cannot simply append `-v` +# to MAKE_ARGS to enable verbosity. This is instead accomplished via +# the SAMUFLAGS environment variable defined above in MAKE_ENV. MAKE_ARGS+= -v . endif CMAKE_ARGS+= -GNinja diff --git a/Mk/Uses/nodejs.mk b/Mk/Uses/nodejs.mk index e92b2f34f2a3..e8987827fe2e 100644 --- a/Mk/Uses/nodejs.mk +++ b/Mk/Uses/nodejs.mk @@ -7,13 +7,13 @@ # - build use node as build-time dependency # - run use node as runtime dependency # - env set the environment (NODEJS_VERSION and NODEJS_SUFFIX) -# - version available version: lts, current, 18, 20, 21 +# - version available version: lts, current, 18, 20, 22, 24 # # Note: # - The supported versions follow upstream release schedule # https://github.com/nodejs/Release/blob/main/README.md#release-schedule -# - lts is 20 now -# - current is 21 now +# - lts is 22 now +# - current is 24 now # - USES=nodejs means USES=nodejs:build,run # - If you define a version, you must provide run and/or build # @@ -22,13 +22,13 @@ .if !defined(_INCLUDE_USES_NODEJS_MK) _INCLUDE_USES_NODEJS_MK= yes -_VALID_NODEJS_VERSIONS= 18 20 21 current lts +_VALID_NODEJS_VERSIONS= 18 20 22 24 current lts . if ! ${_VALID_NODEJS_VERSIONS:M${NODEJS_DEFAULT}} IGNORE= Invalid default nodejs version ${NODEJS_DEFAULT}; valid versions are ${_VALID_NODEJS_VERSIONS} . endif -. if !empty(nodejs_ARGS:Nbuild:Nenv:Nrun:Nlts:Ncurrent:N18:N20:N21) +. if !empty(nodejs_ARGS:Nbuild:Nenv:Nrun:Nlts:Ncurrent:N18:N20:N22:N24) IGNORE= USES=nodejs has invalid arguments ${nodejs_ARGS} . endif @@ -47,7 +47,7 @@ _NODEJS_VER= ${version} _NODEJS_VER= ${NODEJS_DEFAULT} . endif -NODEJS_VERSION= ${_NODEJS_VER:S|current|21|:S|lts|20|} +NODEJS_VERSION= ${_NODEJS_VER:S|current|24|:S|lts|22|} NODEJS_SUFFIX= -node${NODEJS_VERSION} . if ${nodejs_ARGS:M*build*} diff --git a/Mk/Uses/ocaml.mk b/Mk/Uses/ocaml.mk index 666c29078c19..fed0026ff72d 100644 --- a/Mk/Uses/ocaml.mk +++ b/Mk/Uses/ocaml.mk @@ -1,38 +1,186 @@ -# Provide support to use the Dune package builder for OCaml +# Provide support for OCaml +# Feature: ocaml +# Usage: USES=ocaml or USES=ocaml:args # -# Feature: ocaml -# Usage: USES=ocaml:dune -# USE_OCAML=yes +# Valid ARGS: build, camlp4, dune, findlib, findplist, ldconfig, tk, tkbuild, tkrun, wash +# If empty, defaults to build and run +# +# build - Add ocamlc to BUILD|EXTRACT|PATCH_DEPENDS +# +# camlp4 - Use camlp4 to build +# +# dune - Use dune as a build system +# +# findlib - Set if port uses ocamlfind to install packages. +# Package direcories will be automatically deleted +# +# findplist - Add contents of findlib target directories automatically +# +# ldconfig - Set if your port installs shared libraries into ocaml +# site-lib dir. OCaml ld.conf file will be automatically +# processed. When dune is used Dune may install stublibs in +# site-lib package directory(ies) or in a single directory +# below DUNE_LIBDIR. +# +# run - Add ocamlc to RUN_DEPENDS +# +# tk - Set if port needs ocaml-labltk which implies tkbuild and +# tkrun +# +# tkbuild - Add labltk to BUILD|EXTRACT|PATCH_DEPENDS +# +# tkrun - Add labltk to RUN_DEPENDS +# +# wash - Set if your port wants to automatically +# purge shared Ocaml dirs on uninstall. It's +# useful when installing to non-standard PREFIX # # Variables that may be set by the port: # -# OCAML_PACKAGES List of packages to build and install, defaults to PORTNAME +# OCAML_PKGDIRS - Directories under site-lib to be processed +# if USES=ocaml:findlib specified. +# Default: ${PORTNAME} # -# USE_OCAML_LDCONFIG Dune may install stublibs in site-lib package directory(ies) -# OCAML_LDLIBS or in a single directory below DUNE_LIBDIR. +# OCAML_LDLIBS - Directories under PREFIX to be automatically +# added/removed from ld.conf +# Default: ${OCAML_SITELIBDIR}/${PORTNAME} # -# Appends to: BUILD_DEPENDS, MAKE_ENV +# OCAML_PACKAGES - List of packages to build and install, defaults to ${PORTNAME} # # MAINTAINER: freebsd@dev.thsi.be .if !defined(_INCLUDE_USES_OCAML_MK) _INCLUDE_USES_OCAML_MK= yes -. if empty(ocaml_ARGS:Mdune) -IGNORE= Incorrect 'USES+= ocaml:${ocaml_ARGS}' ocaml requires a single 'dune' argument (for now) +_OCAML_VALID_ARGS= build camlp4 dune findlib findplist ldconfig tk tkbuild tkrun wash +_OCAML_UNKNOWN_ARGS= +. for arg in ${ocaml_ARGS} +. if empty(_OCAML_VALID_ARGS:M${arg}) +_OCAML_UNKNOWN_ARGS+= ${arg} +. endif +. endfor +. if !empty(_OCAML_UNKNOWN_ARGS) +IGNORE= has unknown USES=ocaml arguments: ${_OCAML_UNKNOWN_ARGS} . endif - -. if !defined(OCAML_include) -.error USES=dune only works with USE_OCAML=yes +. if ${ocaml_ARGS:Mfindplist} && ${ocaml_ARGS:Mfindlib} +DEV_WARNING+= "USES=ocaml:findlib is included in USES=ocaml:findplist, so it is not needed" +. endif +. if empty(ocaml_ARGS) +ocaml_ARGS= build,run . endif +. if !empty(ocaml_ARGS) +.undef _USE_OCAML_BUILD +.undef _USE_OCAML_CAMLP4 +.undef _USE_OCAML_DUNE +.undef _USE_OCAML_FINDLIB +.undef _USE_OCAML_FINDPLIST +.undef _USE_OCAML_LDCONFIG +.undef _USE_OCAML_RUN +.undef _USE_OCAML_TKBUILD +.undef _USE_OCAML_TKRUN +.undef _USE_OCAML_WASH +_OCAML_ARGS= ${ocaml_ARGS:S/,/ /g} +. if ${_OCAML_ARGS:Mcamlp4} +_USE_OCAML_CAMLP4= yes +_OCAML_ARGS:= ${_OCAML_ARGS:Ncamlp4} +. endif +. if ${_OCAML_ARGS:Mdune} +_USE_OCAML_DUNE= yes +_OCAML_ARGS:= ${_OCAML_ARGS:Ndune} +. endif +. if ${_OCAML_ARGS:Mfindplist} +_USE_OCAML_FINDPLIST= yes +_OCAML_ARGS:= ${_OCAML_ARGS:Nfindplist} +_OCAML_ARGS+= findlib +. endif +. if ${_OCAML_ARGS:Mfindlib} +_USE_OCAML_FINDLIB= yes +_OCAML_ARGS:= ${_OCAML_ARGS:Nfindlib} +. endif +. if ${_OCAML_ARGS:Mldconfig} +_USE_OCAML_LDCONFIG= yes +_OCAML_ARGS:= ${_OCAML_ARGS:Nldconfig} +. endif +. if ${_OCAML_ARGS:Mtk} +_OCAML_ARGS+= tkbuild +_OCAML_ARGS+= tkrun +. endif +. if ${_OCAML_ARGS:Mtkbuild} +. if defined(NO_BUILD) +IGNORE= Makefile error: NO_BUILD and USES=ocaml:tkbuild cannot be set at the same time +. else +_USE_OCAML_TKBUILD= yes +_OCAML_ARGS:= ${_OCAML_ARGS:Ntkbuild} +. endif +. endif +. if ${_OCAML_ARGS:Mtkrun} +_USE_OCAML_TKRUN= yes +_OCAML_ARGS:= ${_OCAML_ARGS:Ntkrun} +. endif +. if ${_OCAML_ARGS:Mwash} +_USE_OCAML_WASH= yes +_OCAML_ARGS:= ${_OCAML_ARGS:Nwash} +. endif +. if empty(_OCAML_ARGS) +_OCAML_ARGS+= build +_OCAML_ARGS+= run +. endif +. if ${_OCAML_ARGS:Mbuild} +. if defined(NO_BUILD) +IGNORE= Makefile error: NO_BUILD and USES=ocaml:build cannot be set at the same time +. else +_USE_OCAML_BUILD= yes +. endif +. endif +. if ${_OCAML_ARGS:Mrun} +_USE_OCAML_RUN= yes +. endif +. endif # !empty(ocaml_ARGS) + # -# Dune builder port +# OCaml programs location +# +OCAMLC?= ${LOCALBASE}/bin/ocamlc +OCAMLC_OPT?= ${LOCALBASE}/bin/ocamlc.opt +OCAMLCP?= ${LOCALBASE}/bin/ocamlcp +OCAMLFIND?= ${LOCALBASE}/bin/ocamlfind +CAMLP4?= ${LOCALBASE}/bin/camlp4 +OCAMLTK?= ${LOCALBASE}/bin/labltk + # -DUNE_PORT?= devel/ocaml-dune -DUNE_DEPEND?= ocaml-dune>=3.7.1_2:devel/ocaml-dune +# OCaml library directory +# +OCAML_LIBDIR?= lib/ocaml + +# +# Where to install site libraries +# +OCAML_SITELIBDIR?= ${OCAML_LIBDIR}/site-lib -BUILD_DEPENDS+= ${DUNE_DEPEND} +# +# OCaml compiler port dependency +# +OCAMLC_PORT?= lang/ocaml +OCAMLC_DEPEND?= ${OCAMLC}:${OCAMLC_PORT} + +# +# OCaml package manager port dependency +# +OCAMLFIND_PORT?= devel/ocaml-findlib +OCAMLFIND_DEPEND?= ${OCAMLFIND}:${OCAMLFIND_PORT} + +# +# OCaml camlp4 port dependency +# +CAMLP4_PORT?= devel/ocaml-camlp4 +CAMLP4_DEPEND?= ${CAMLP4}:${CAMLP4_PORT} + +# +# Dune builder port +# +. if defined(_USE_OCAML_DUNE) +BUILD_DEPENDS+= ocaml-dune>=3.7.1_2:devel/ocaml-dune DUNE_ARGS= --display=short --always-show-command-line \ --no-config -j ${MAKE_JOBS_NUMBER} --profile release \ @@ -50,8 +198,116 @@ DUNE_INSTALL_TARGETS?= DUNE_LIBDIR?= ${OCAML_SITELIBDIR} OCAML_PACKAGES?= ${PORTNAME} DUNE_ROOT?= . +# Left empty for default @install target +ALL_TARGET?= +. endif + +# +# OCaml TK bindings dependency +# +OCAMLTK_PORT?= x11-toolkits/ocaml-labltk +OCAMLTK_DEPENDS?= ${OCAMLTK}:${OCAMLTK_PORT} + +# +# Common OCaml examples and documents location +# +OCAML_DOCSDIR= ${PREFIX}/share/doc/ocaml +OCAML_EXAMPLESDIR= ${PREFIX}/share/examples/ocaml + +# +# Location of OCaml ld.conf file +# +OCAML_LDCONF?= ${OCAML_LIBDIR}/ld.conf + +# ocaml-findlib-1.4.1_1 wants to edit our ld.conf file, which does not +# work well with staging. +. if defined(_USE_OCAML_LDCONFIG) +. if !target(ocaml-ldconfig) +OCAMLFIND_LDCONF?= /dev/null +. endif +. endif + +OCAMLFIND_DESTDIR?= ${PREFIX}/${OCAML_SITELIBDIR} +OCAMLFIND_LDCONF?= ${PREFIX}/${OCAML_LDCONF} + +. if defined(_USE_OCAML_BUILD) +EXTRACT_DEPENDS+= ${OCAMLC_DEPEND} +PATCH_DEPENDS+= ${OCAMLC_DEPEND} +BUILD_DEPENDS+= ${OCAMLC_DEPEND} +. endif +. if defined(_USE_OCAML_RUN) +RUN_DEPENDS+= ${OCAMLC_DEPEND} +. endif +PLIST_SUB+= OCAML_SITELIBDIR="${OCAML_SITELIBDIR}" -. if USE_OCAML_LDCONFIG +. if defined(_USE_OCAML_FINDLIB) +# +# We'll additionally add ocamlfind to RUN_DEPENDS, since +# if the port requires ocamlfind to install - it requires +# some ocaml libraries and these libraries RUN_DEPENDS on +# ocamlfind +# +BUILD_DEPENDS+= ${OCAMLFIND_DEPEND} +RUN_DEPENDS+= ${OCAMLFIND_DEPEND} +MAKE_ENV+= OCAMLFIND_DESTDIR="${STAGEDIR}${OCAMLFIND_DESTDIR}" \ + OCAMLFIND_LDCONF="${OCAMLFIND_LDCONF}" + +# +# Directories under site-lib to process automatically +# +OCAML_PKGDIRS?= ${PORTNAME} +_USES_install+= 250:ocaml-pre-install 735:ocaml-findlib +. if !target(ocaml-pre-install) +ocaml-pre-install: + ${MKDIR} ${STAGEDIR}${OCAMLFIND_DESTDIR} +. endif +. if !target(ocaml-findlib) +ocaml-findlib: +. for DIR in ${OCAML_PKGDIRS} +. if defined(_USE_OCAML_FINDPLIST) + @${FIND} ${STAGEDIR}${PREFIX}/${OCAML_SITELIBDIR}/${DIR}/ -type f -print | ${SED} -e \ + 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} +. endif + @${ECHO_CMD} "@postunexec ${OCAMLFIND} remove ${DIR} 2>/dev/null" \ + >> ${TMPPLIST} +. endfor +. endif +. endif + +. if defined(_USE_OCAML_CAMLP4) +BUILD_DEPENDS+= ${CAMLP4_DEPEND} +. endif + +. if defined(_USE_OCAML_TKBUILD) +EXTRACT_DEPENDS+= ${OCAMLTK_DEPENDS} +PATCH_DEPENDS+= ${OCAMLTK_DEPENDS} +BUILD_DEPENDS+= ${OCAMLTK_DEPENDS} +. endif +. if defined(_USE_OCAML_TKRUN) +RUN_DEPENDS+= ${OCAMLTK_DEPENDS} +. endif + +. if defined(_USE_OCAML_LDCONFIG) +# +# Directories under PREFIX for appending to ld.conf +# +OCAML_LDLIBS?= ${OCAML_SITELIBDIR}/${PORTNAME} +_USES_install+= 740:ocaml-ldconfig +. if !target(ocaml-ldconfig) +ocaml-ldconfig: +. for LIB in ${OCAML_LDLIBS} + @${ECHO_CMD} "@postexec ${ECHO_CMD} "%D/${LIB}" >> %D/${OCAML_LDCONF}" \ + >> ${TMPPLIST} + @${ECHO_CMD} "@postunexec ${SED} -i \"\" -e '/${LIB:S#/#\/#g}/d' %D/${OCAML_LDCONF}" >> ${TMPPLIST} +. endfor +. endif +. endif + +. if defined(_USE_OCAML_WASH) +PLIST_FILES+= "@rmempty ${OCAML_LDCONF}" +. endif + +. if defined(_USE_OCAML_LDCONFIG) && defined(_USE_OCAML_DUNE) . if !empty(OCAML_LDLIBS) . if ${OCAML_LDLIBS:[#]} > 1 . for _l in ${OCAML_LDLIBS} @@ -68,13 +324,13 @@ DUNE_ENV+= DUNE_FREEBSD_STUBLIBS_RELATIVE_TO_LIBDIR=${OCAML_PACKAGES:[1]} . endif . endif -# left empty for default @install target -ALL_TARGET?= +. if defined(_USE_OCAML_DUNE) MAKE_ENV+= ${DUNE_ENV} DO_MAKE_BUILD?= ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${DUNE_CMD} build ${DUNE_ARGS} ${DUNE_BUILD_ARGS} +. endif -. if !target(do-install) && !defined(NO_INSTALL) +. if !target(do-install) && !defined(NO_INSTALL) && defined(_USE_OCAML_DUNE) do-install: @(cd ${INSTALL_WRKSRC} && ${SETENV} ${WRK_ENV} ${MAKE_ENV} ${FAKEROOT} ${DUNE_CMD} install ${DUNE_ARGS} ${DUNE_INSTALL_ARGS} ${DUNE_INSTALL_TARGETS}) . endif diff --git a/Mk/Uses/octave.mk b/Mk/Uses/octave.mk index 31c98e616fe1..8aca21d0a789 100644 --- a/Mk/Uses/octave.mk +++ b/Mk/Uses/octave.mk @@ -22,7 +22,7 @@ IGNORE= Incorrect 'USES+= octave:${octave_ARGS}' usage: argument [${arg}] is not . endif . endfor -OCTAVE_VERSION= 9.1.0 +OCTAVE_VERSION= 10.2.0 . if empty(octave_ARGS:Menv) BUILD_DEPENDS+= octave:math/octave diff --git a/Mk/Uses/pathfix.mk b/Mk/Uses/pathfix.mk index 049224a15621..57c734f93cb3 100644 --- a/Mk/Uses/pathfix.mk +++ b/Mk/Uses/pathfix.mk @@ -54,8 +54,7 @@ pathfix: s|[{]datadir[}]/pkgconfig|(prefix)/libdata/pkgconfig|g ; \ s|[(]prefix[)]/lib/pkgconfig|(prefix)/libdata/pkgconfig|g ; \ s|[(]prefix[)]/share/pkgconfig|(prefix)/libdata/pkgconfig|g ; \ - s|[[:<:]]lib/pkgconfig|libdata/pkgconfig|g; \ - s|[(]libdir[)]/bonobo/servers|(prefix)/libdata/bonobo/servers|g' + s|[[:<:]]lib/pkgconfig|libdata/pkgconfig|g' . endfor . endif diff --git a/Mk/Uses/perl5.mk b/Mk/Uses/perl5.mk index e7c5fd5b5068..4e5883bb59d0 100644 --- a/Mk/Uses/perl5.mk +++ b/Mk/Uses/perl5.mk @@ -42,12 +42,12 @@ USE_PERL5?= run build # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -. if ${PERL5_DEFAULT} == 5.34 -.include "${PORTSDIR}/lang/perl5.34/version.mk" -. elif ${PERL5_DEFAULT} == 5.36 -.include "${PORTSDIR}/lang/perl5.36/version.mk" -. elif ${PERL5_DEFAULT} == 5.38 +. if ${PERL5_DEFAULT} == 5.38 .include "${PORTSDIR}/lang/perl5.38/version.mk" +. elif ${PERL5_DEFAULT} == 5.40 +.include "${PORTSDIR}/lang/perl5.40/version.mk" +. elif ${PERL5_DEFAULT} == 5.42 +.include "${PORTSDIR}/lang/perl5.42/version.mk" . elif ${PERL5_DEFAULT} == devel .include "${PORTSDIR}/lang/perl5-devel/version.mk" # Force PERL_PORT here in case two identical PERL_VERSION. @@ -81,12 +81,12 @@ PERL_ARCH?= mach # perl5_default file, or up there in the default versions selection. # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -. if ${PERL_LEVEL} >= 503800 +. if ${PERL_LEVEL} >= 504200 +PERL_PORT?= perl5.42 +. elif ${PERL_LEVEL} >= 504000 +PERL_PORT?= perl5.40 +. else # ${PERL_LEVEL} < 504000 PERL_PORT?= perl5.38 -. elif ${PERL_LEVEL} >= 503600 -PERL_PORT?= perl5.36 -. else # ${PERL_LEVEL} < 503600 -PERL_PORT?= perl5.34 . endif SITE_PERL_REL?= lib/perl5/site_perl @@ -202,7 +202,7 @@ DESTDIRNAME= --destdir . if ${_USE_PERL5:Mmodbuild} CONFIGURE_ARGS+=--perl="${PERL}" . if ${PORTNAME} != Module-Build -BUILD_DEPENDS+= p5-Module-Build>=0.4206:devel/p5-Module-Build +BUILD_DEPENDS+= p5-Module-Build>=0.4234:devel/p5-Module-Build . endif CONFIGURE_ARGS+=--create_packlist 1 . endif diff --git a/Mk/Uses/pgsql.mk b/Mk/Uses/pgsql.mk index e82d1ee5c58f..0ce84d448e2c 100644 --- a/Mk/Uses/pgsql.mk +++ b/Mk/Uses/pgsql.mk @@ -5,13 +5,13 @@ # # version Maintainer can set versions required. You can set this to # [min]-[max] or min+ or -max or as an explicit version -# (eg. 12-14 for [min]-[max], 12+ or 12- +# (eg. 14-16 for [min]-[max], 14+ or 16- # for min+ and max-, 13 for an explicit version). Example: # # USES=pgsql:13 # Only use PostgreSQL 13 -# USES=pgsql:12+ # Use PostgreSQL 12 or newer -# USES=pgsql:12-14 # Use PostgreSQL between 12 & 14 inclusive -# USES=pgsql:12- # Use any PostgreSQL up to 12 +# USES=pgsql:13+ # Use PostgreSQL 13 or newer +# USES=pgsql:14-16 # Use PostgreSQL between 14 & 16 inclusive +# USES=pgsql:14- # Use any PostgreSQL up to 14 # USES=pgsql # Use the default PostgreSQL # # WANT_PGSQL= server[:fetch] plperl plpython pltcl @@ -39,7 +39,7 @@ _INCLUDE_USES_PGSQL_MK= yes # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -VALID_PGSQL_VER= 12 13 14 15 16 +VALID_PGSQL_VER= 13 14 15 16 17 18 # Override non-default LIBVERS like this: #PGSQL99_LIBVER=6 diff --git a/Mk/Uses/php.mk b/Mk/Uses/php.mk index 6195ad71a71e..d6b59898cb5b 100644 --- a/Mk/Uses/php.mk +++ b/Mk/Uses/php.mk @@ -110,7 +110,7 @@ DIST_SUBDIR= PECL PHPBASE?= ${LOCALBASE} -_ALL_PHP_VERSIONS= 81 82 83 +_ALL_PHP_VERSIONS= 81 82 83 84 85 # Make the already installed PHP the default one. . if exists(${PHPBASE}/etc/php.conf) @@ -179,7 +179,13 @@ PHP_VER= ${FLAVOR:S/^php//} (${FLAVOR:Mphp[0-9][0-9]} && ${FLAVOR} != ${FLAVORS:[1]}) # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -. if ${PHP_VER} == 83 +. if ${PHP_VER} == 85 +PHP_EXT_DIR= 20240925 +PHP_EXT_INC= hash json openssl pcre random spl +. elif ${PHP_VER} == 84 +PHP_EXT_DIR= 20240924 +PHP_EXT_INC= hash json openssl pcre random spl +. elif ${PHP_VER} == 83 PHP_EXT_DIR= 20230831 PHP_EXT_INC= hash json openssl pcre random spl . elif ${PHP_VER} == 82 @@ -190,7 +196,7 @@ PHP_EXT_DIR= 20210902 PHP_EXT_INC= hash json openssl pcre spl . else # (rene) default to DEFAULT_VERSIONS -PHP_EXT_DIR= 20220829 +PHP_EXT_DIR= 20230831 PHP_EXT_INC= hash json openssl pcre random spl . endif @@ -383,6 +389,8 @@ _USE_PHP_ALL= bcmath bitset bz2 calendar ctype curl dba dom \ _USE_PHP_VER81= ${_USE_PHP_ALL} _USE_PHP_VER82= ${_USE_PHP_ALL} _USE_PHP_VER83= ${_USE_PHP_ALL} +_USE_PHP_VER84= ${_USE_PHP_ALL} +_USE_PHP_VER85= ${_USE_PHP_ALL} bcmath_DEPENDS= math/php${PHP_VER}-bcmath bitset_DEPENDS= math/pecl-bitset@${PHP_FLAVOR} @@ -403,7 +411,11 @@ gettext_DEPENDS=devel/php${PHP_VER}-gettext gmp_DEPENDS= math/php${PHP_VER}-gmp iconv_DEPENDS= converters/php${PHP_VER}-iconv igbinary_DEPENDS= converters/pecl-igbinary@${PHP_FLAVOR} +. if ${PHP_VER} <= 83 imap_DEPENDS= mail/php${PHP_VER}-imap +. else +imap_DEPENDS= mail/pecl-imap@${PHP_FLAVOR} +. endif intl_DEPENDS= devel/php${PHP_VER}-intl ldap_DEPENDS= net/php${PHP_VER}-ldap mbstring_DEPENDS= converters/php${PHP_VER}-mbstring @@ -424,7 +436,11 @@ pdo_sqlite_DEPENDS= databases/php${PHP_VER}-pdo_sqlite pgsql_DEPENDS= databases/php${PHP_VER}-pgsql phar_DEPENDS= archivers/php${PHP_VER}-phar posix_DEPENDS= sysutils/php${PHP_VER}-posix +. if ${PHP_VER} <= 83 pspell_DEPENDS= textproc/php${PHP_VER}-pspell +. else +pspell_DEPENDS= textproc/pecl-pspell@${PHP_FLAVOR} +. endif radius_DEPENDS= net/pecl-radius@${PHP_FLAVOR} readline_DEPENDS= devel/php${PHP_VER}-readline redis_DEPENDS= databases/pecl-redis@${PHP_FLAVOR} diff --git a/Mk/Uses/pyqt.mk b/Mk/Uses/pyqt.mk index b197f1ffcfb5..af659b76d8cc 100644 --- a/Mk/Uses/pyqt.mk +++ b/Mk/Uses/pyqt.mk @@ -1,15 +1,16 @@ # Handle PyQt related ports # # Feature: pyqt -# Usage: USES=pyqt:ARGS -# Valid ARGS: 5, 6 +# Usage: USES=pyqt:<version>[,dist] +# Versions: 5, 6 +# Internal use ARGS: dist +# This port is part of PyQt5/6 itself. Variables and +# targets are then set assuming a certain tarball and +# port layout. # # MAINTAINER: kde@FreeBSD.org # -# Internal Port variables for PyQt ports: -# PYQT_DIST - This port is part of PyQt5/6 itself. Variables and -# targets are then set assuming a certain tarball and -# port layout. +# Port variables for PyQt ports: # USE_PYQT - List of PyQt components to depend on # * foo:build only build depend # * foo:run only run depend @@ -23,59 +24,79 @@ .if !defined(_INCLUDE_USES_PYQT_MK) _INCLUDE_USES_PYQT_MK= yes -# At the moment we support PyQt bindings versions 5 and 6 -# option is for internal use by the py-sip ports. -_PYQT_SUPPORTED= 5 6 sip +# At the moment we support PyQt bindings versions 5 and 6. +# The sip argument is for internal use by devel/py-sip. +_PYQT_SUPPORTED= 5 6 sip . if empty(pyqt_ARGS) -IGNORE= pyqt needs a qt-version (${_PYQT_SUPPORTED}) +IGNORE= pyqt needs a qt-version (${_PYQT_SUPPORTED}) . endif -# At the moment we support PyQt bindings versions 5 and 6 . for ver in ${_PYQT_SUPPORTED:O:u} . if ${pyqt_ARGS:M${ver}} . if empty(_PYQT_VERSION) -_PYQT_VERSION= ${ver} +_PYQT_VERSION= ${ver} . else -IGNORE?= cannot be installed: different PYQT versions specified via pyqt:[${_PYQT_SUPPORTED:S/ //g}] +IGNORE?= cannot be installed: different PYQT versions specified via pyqt:[${_PYQT_SUPPORTED:S/ //g}] . endif . endif . endfor . if empty(_PYQT_VERSION) -IGNORE?= USES=pyqt needs a version number (valid values: ${_PYQT_SUPPORTED}) +IGNORE?= USES=pyqt needs a version number (valid values: ${_PYQT_SUPPORTED}) _PYQT_VERSION= 0 . endif +. if ${pyqt_ARGS:Mdist} +_PYQT_DIST= yes +. endif + PYQT_MAINTAINER= kde@FreeBSD.org MASTER_SITE_RIVERBANK= https://www.riverbankcomputing.com/static/Downloads/%SUBDIR%/ +MASTER_SITE_RBDEV= https://www.riverbankcomputing.com/pypi/packages/%SUBDIR%/ + +# Qt version-agnostic components +MASTER_SITES_PYQTBUILDER= PYPI/source/P/PyQt-builder +MASTER_SITES_QSCI2= RIVERBANK/QScintilla/${PORTVERSION} \ + SF/pyqt/QScintilla2/QScintilla-${PORTVERSION} +MASTER_SITES_SIP= PYPI/source/s/sip + +# Qt 5 components +MASTER_SITES_PYQT5SIP= PYPI/source/P/PyQt5-sip +MASTER_SITES_PYQT5= PYPI/source/P/PyQt5 +MASTER_SITES_PYQT53D= PYPI/source/P/PyQt3D +MASTER_SITES_PYQT5CHARTS= PYPI/source/P/PyQtChart +MASTER_SITES_PYQT5DATAVIS3D= PYPI/source/P/PyQtDataVisualization +MASTER_SITES_PYQT5NETWORKAUTH= PYPI/source/P/PyQtNetworkAuth +MASTER_SITES_PYQT5WEBENGINE= PYPI/source/P/PyQtWebEngine + +# Qt 6 components +MASTER_SITES_PYQT6SIP= PYPI/source/P/PyQt6-sip +MASTER_SITES_PYQT6= PYPI/source/P/PyQt6 \ + RBDEV/PyQt6 +MASTER_SITES_PYQT63D= PYPI/source/P/PyQt6-3D \ + RBDEV/PyQt6-3D +MASTER_SITES_PYQT6CHARTS= PYPI/source/P/PyQt6-Charts \ + RBDEV/PyQt6-Charts +MASTER_SITES_PYQT6DATAVIS3D= PYPI/source/P/PyQt6-DataVisualization \ + RBDEV/PyQt6-DataVisualization +MASTER_SITES_PYQT6GRAPHS= PYPI/source/P/PyQt6-Graphs \ + RBDEV/PyQt6-Graphs +MASTER_SITES_PYQT6NETWORKAUTH= PYPI/source/P/PyQt6-NetworkAuth \ + RBDEV/PyQt6-NetworkAuth +MASTER_SITES_PYQT6WEBENGINE= PYPI/source/P/PyQt6-WebEngine \ + RBDEV/PyQt6-WebEngine -MASTER_SITES_SIP= https://pypi.python.org/packages/source/s/sip/ -MASTER_SITES_PYQT5= https://pypi.python.org/packages/source/P/PyQt5/ -MASTER_SITES_PYQT6= https://pypi.python.org/packages/source/P/PyQt6/ -MASTER_SITES_PYQT= ${MASTER_SITES_PYQT${_PYQT_VERSION}} -MASTER_SITES_PYQT5SIP= https://pypi.python.org/packages/source/P/PyQt5-sip/ -MASTER_SITES_PYQT6SIP= https://pypi.python.org/packages/source/P/PyQt6-sip/ -MASTER_SITES_PYQTSIP= ${MASTER_SITES_PYQT${_PYQT_VERSION}SIP} -MASTER_SITES_PYQT63D= https://pypi.python.org/packages/source/P/PyQt6-3D/ -MASTER_SITES_PYQT3D= ${MASTER_SITES_PYQT${_PYQT_VERSION}3D} -MASTER_SITES_PYQT5CHART= https://pypi.python.org/packages/source/P/PyQtChart/ -MASTER_SITES_PYQT6CHART= https://pypi.python.org/packages/source/P/PyQt6-Charts/ -MASTER_SITES_PYQTCHART= ${MASTER_SITES_PYQT${_PYQT_VERSION}CHART} -MASTER_SITES_PYQT6DATAVIS3D= https://pypi.python.org/packages/source/P/PyQt6-DataVisualization/ +# Unversioned MASTER_SITES +MASTER_SITES_PYQT= ${MASTER_SITES_PYQT${_PYQT_VERSION}} +MASTER_SITES_PYQTSIP= ${MASTER_SITES_PYQT${_PYQT_VERSION}SIP} +MASTER_SITES_PYQT3D= ${MASTER_SITES_PYQT${_PYQT_VERSION}3D} +MASTER_SITES_PYQTCHARTS= ${MASTER_SITES_PYQT${_PYQT_VERSION}CHARTS} MASTER_SITES_PYQTDATAVIS3D= ${MASTER_SITES_PYQT${_PYQT_VERSION}DATAVIS3D} -MASTER_SITES_PYQT5NETWORKAUTH= https://pypi.python.org/packages/source/P/PyQtNetworkAuth/ -MASTER_SITES_PYQT6NETWORKAUTH= https://pypi.python.org/packages/source/P/PyQt6-NetworkAuth/ -MASTER_SITES_PYQTNETWORKAUTH= ${MASTER_SITES_PYQT${_PYQT_VERSION}NETWORKAUTH} -MASTER_SITES_PYQTBUILDER= https://pypi.io/packages/source/P/PyQt-builder/ -MASTER_SITES_PYQT5WEBENGINE= https://pypi.python.org/packages/source/P/PyQtWebEngine/ -MASTER_SITES_PYQT6WEBENGINE= https://pypi.python.org/packages/source/P/PyQt6-WebEngine/ -MASTER_SITES_PYQTWEBENGINE= ${MASTER_SITES_PYQT${_PYQT_VERSION}WEBENGINE} -#https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.12.0/QScintilla_src-2.12.0.tar.gz -MASTER_SITES_QSCI2= RIVERBANK/QScintilla/${PORTVERSION} \ - SF/pyqt/QScintilla2/QScintilla-${PORTVERSION} \ - GENTOO +MASTER_SITES_PYQTGRAPHS= ${MASTER_SITES_PYQT${_PYQT_VERSION}GRAPHS} +MASTER_SITES_PYQTNETWORKAUTH= ${MASTER_SITES_PYQT${_PYQT_VERSION}NETWORKAUTH} +MASTER_SITES_PYQTWEBENGINE= ${MASTER_SITES_PYQT${_PYQT_VERSION}WEBENGINE} # PORTEPOCH is important here, because version-comparisons in *_DEPENDS # take it into account (visually, 6.5.1 >= 5.5.3,1, but it isn't). @@ -85,100 +106,125 @@ MASTER_SITES_QSCI2= RIVERBANK/QScintilla/${PORTVERSION} \ # # Where noted, the ports are epoched and the py-${comp}-PATH variables, # below, should have a suitable epoch appended to the version. -SIP_VERSION= 6.8.3 # ,1 -SIP4_VERSION= 4.19.25 -QSCI2_VERSION= 2.14.1 -PYQT5_VERSION= 5.15.10 -PYQT6_VERSION= 6.6.1 -PYQT63D_VERSION= 6.6.0 -PYQT5CHART_VERSION= 5.15.6 -PYQT6CHART_VERSION= 6.6.0 -PYQT6DATAVIS3D_VERSION= 6.6.0 -PYQT5NETWORKAUTH_VERSION=5.15.5 -PYQT6NETWORKAUTH_VERSION=6.6.0 -PYQT5WEBENGINE_VERSION= 5.15.6 -PYQT6WEBENGINE_VERSION= 6.6.0 -PYQT5SIP_VERSION= 12.13.0 -PYQT6SIP_VERSION= 13.6.0 -PYQTBUILDER_VERSION= 1.15.4 - -SIP4_DISTNAME= sip-${SIP4_VERSION} -PYQT5_DISTNAME= PyQt5-${PYQT5_VERSION} -PYQT6_DISTNAME= PyQt6-${PYQT6_VERSION} -PYQT5SIP_DISTNAME= PyQt5_sip-${PYQT5SIP_VERSION} -PYQT6SIP_DISTNAME= PyQt6_sip-${PYQT6SIP_VERSION} -PYQT63D_DISTNAME= PyQt6_3D-${PYQT63D_VERSION} -PYQT5CHART_DISTNAME= PyQtChart-${PYQT5CHART_VERSION} -PYQT6CHART_DISTNAME= PyQt6_Charts-${PYQT6CHART_VERSION} -PYQT6DATAVIS3D_DISTNAME= PyQt6_DataVisualization-${PYQT6DATAVIS3D_VERSION} + +# Qt version-agnostic components +PYQTBUILDER_VERSION= 1.18.2 +QSCI2_VERSION= 2.14.1 +SIP_VERSION= 6.12.0 # ,1 + +# Qt 5 components +PYQT5SIP_VERSION= 12.17.0 +PYQT5_VERSION= 5.15.11 +PYQT53D_VERSION= 5.15.7 +PYQT5CHARTS_VERSION= 5.15.7 +PYQT5DATAVIS3D_VERSION= 5.15.6 +PYQT5NETWORKAUTH_VERSION= 5.15.6 +PYQT5WEBENGINE_VERSION= 5.15.7 + +# Qt 6 components +PYQT6SIP_VERSION= 13.10.2 +PYQT6_VERSION= 6.9.1 +PYQT63D_VERSION= 6.9.0 +PYQT6CHARTS_VERSION= 6.9.0 +PYQT6DATAVIS3D_VERSION= 6.9.0 +PYQT6GRAPHS_VERSION= 6.9.0 +PYQT6NETWORKAUTH_VERSION= 6.9.0 +PYQT6WEBENGINE_VERSION= 6.9.0 + +# Qt version-agnostic components +PYQTBUILDER_DISTNAME= pyqt_builder-${PYQTBUILDER_VERSION} +QSCI2_DISTNAME= QScintilla_src-${QSCI2_VERSION} + +# Qt 5 components +PYQT5SIP_DISTNAME= pyqt5_sip-${PYQT5SIP_VERSION} +PYQT5_DISTNAME= PyQt5-${PYQT5_VERSION} +PYQT53D_DISTNAME= PyQt3D-${PYQT53D_VERSION} +PYQT5CHARTS_DISTNAME= PyQtChart-${PYQT5CHARTS_VERSION} +PYQT5DATAVIS3D_DISTNAME= PyQtDataVisualization-${PYQT5DATAVIS3D_VERSION} PYQT5NETWORKAUTH_DISTNAME= PyQtNetworkAuth-${PYQT5NETWORKAUTH_VERSION} -PYQT6NETWORKAUTH_DISTNAME= PyQt6_NetworkAuth-${PYQT6NETWORKAUTH_VERSION} PYQT5WEBENGINE_DISTNAME= PyQtWebEngine-${PYQT5WEBENGINE_VERSION} -PYQT6WEBENGINE_DISTNAME= PyQt6_WebEngine-${PYQT6WEBENGINE_VERSION} + +# Qt 6 components +PYQT6SIP_DISTNAME= pyqt6_sip-${PYQT6SIP_VERSION} +PYQT6_DISTNAME= pyqt6-${PYQT6_VERSION} +PYQT63D_DISTNAME= pyqt6_3d-${PYQT63D_VERSION} +PYQT6CHARTS_DISTNAME= pyqt6_charts-${PYQT6CHARTS_VERSION} +PYQT6DATAVIS3D_DISTNAME= pyqt6_datavisualization-${PYQT6DATAVIS3D_VERSION} +PYQT6GRAPHS_DISTNAME= pyqt6_graphs-${PYQT6GRAPHS_VERSION} +PYQT6NETWORKAUTH_DISTNAME= pyqt6_networkauth-${PYQT6NETWORKAUTH_VERSION} +PYQT6WEBENGINE_DISTNAME= pyqt6_webengine-${PYQT6WEBENGINE_VERSION} + PYQT5_DISTINFO_FILE= ${.CURDIR:H:H}/devel/${PYQT_RELNAME}/distinfo PYQT6_DISTINFO_FILE= ${.CURDIR:H:H}/devel/${PYQT_RELNAME}/distinfo -QSCI2_DISTNAME= QScintilla_src-${QSCI2_VERSION} + PYQT5_LICENSE= GPLv3 PYQT6_LICENSE= GPLv3 -_USE_PYQT_ALL= pyqt5 pyqt6 3d chart datavis3d networkauth webengine -_USE_SIP_ALL= sip pysip +_USE_PYQT_ALL= pyqt5 pyqt6 3d charts graphs datavis3d networkauth webengine +_USE_SIP_ALL= pysip sip _USE_QSCINTILLA= qscintilla2 _USE_PYQTBUILDER= qtbuilder # Unversioned variables for the rest of the file -PYQT_VERSION= ${PYQT${_PYQT_VERSION}_VERSION} -PYQT3D_VERSION= ${PYQT${_PYQT_VERSION}3D_VERSION} -PYQTCHART_VERSION= ${PYQT${_PYQT_VERSION}CHART_VERSION} -PYQTDATAVIS3D_VERSION= ${PYQT${_PYQT_VERSION}DATAVIS3D_VERSION} -PYQTNETWORKAUTH_VERSION=${PYQT${_PYQT_VERSION}NETWORKAUTH_VERSION} -PYQTWEBENGINE_VERSION=${PYQT${_PYQT_VERSION}WEBENGINE_VERSION} -PYQT_RELNAME= py-qt${_PYQT_VERSION} -PYQT_PY_RELNAME= ${PYTHON_PKGNAMEPREFIX}qt${_PYQT_VERSION} -PYQT_MASTERSITES= ${MASTER_SITES_PYQT${_PYQT_VERSION}} -PYQT_DISTNAME= ${PYQT${_PYQT_VERSION}_DISTNAME} -PYQT3D_DISTNAME= ${PYQT${_PYQT_VERSION}3D_DISTNAME} -PYQTCHART_DISTNAME= ${PYQT${_PYQT_VERSION}CHART_DISTNAME} -PYQTDATAVIS3D_DISTNAME= ${PYQT${_PYQT_VERSION}DATAVIS3D_DISTNAME} -PYQTNETWORKAUTH_DISTNAME=${PYQT${_PYQT_VERSION}NETWORKAUTH_DISTNAME} -PYQTWEBENGINE_DISTNAME=${PYQT${_PYQT_VERSION}WEBENGINE_DISTNAME} -PYQT_DISTINFO_FILE= ${PYQT${_PYQT_VERSION}_DISTINFO_FILE} -PYQT_LICENSE= ${PYQT${_PYQT_VERSION}_LICENSE} +PYQTSIP_VERSION= ${PYQT${_PYQT_VERSION}SIP_VERSION} +PYQT_VERSION= ${PYQT${_PYQT_VERSION}_VERSION} +PYQT3D_VERSION= ${PYQT${_PYQT_VERSION}3D_VERSION} +PYQTCHARTS_VERSION= ${PYQT${_PYQT_VERSION}CHARTS_VERSION} +PYQTDATAVIS3D_VERSION= ${PYQT${_PYQT_VERSION}DATAVIS3D_VERSION} +PYQTGRAPHS_VERSION= ${PYQT${_PYQT_VERSION}GRAPHS_VERSION} +PYQTNETWORKAUTH_VERSION= ${PYQT${_PYQT_VERSION}NETWORKAUTH_VERSION} +PYQTWEBENGINE_VERSION= ${PYQT${_PYQT_VERSION}WEBENGINE_VERSION} + +PYQTSIP_DISTNAME= ${PYQT${_PYQT_VERSION}SIP_DISTNAME} +PYQT_DISTNAME= ${PYQT${_PYQT_VERSION}_DISTNAME} +PYQT3D_DISTNAME= ${PYQT${_PYQT_VERSION}3D_DISTNAME} +PYQTCHARTS_DISTNAME= ${PYQT${_PYQT_VERSION}CHARTS_DISTNAME} +PYQTDATAVIS3D_DISTNAME= ${PYQT${_PYQT_VERSION}DATAVIS3D_DISTNAME} +PYQTGRAPHS_DISTNAME= ${PYQT${_PYQT_VERSION}GRAPHS_DISTNAME} +PYQTNETWORKAUTH_DISTNAME= ${PYQT${_PYQT_VERSION}NETWORKAUTH_DISTNAME} +PYQTWEBENGINE_DISTNAME= ${PYQT${_PYQT_VERSION}WEBENGINE_DISTNAME} + +PYQT_DISTINFO_FILE= ${PYQT${_PYQT_VERSION}_DISTINFO_FILE} +PYQT_LICENSE= ${PYQT${_PYQT_VERSION}_LICENSE} + +PYQT_RELNAME= py-qt${_PYQT_VERSION} +PYQT_PY_RELNAME= ${PYTHON_PKGNAMEPREFIX}qt${_PYQT_VERSION} # PATH (see note about epochs, above) py-sip_PATH= ${PYTHON_PKGNAMEPREFIX}sip>=${SIP_VERSION},1 -py-pysip_PATH= ${PYQT_PY_RELNAME}-sip>=${PYQTSIP_VERSION} +py-pysip_PATH= ${PYTHON_PKGNAMEPREFIX}PyQt${_PYQT_VERSION}-sip>=${PYQTSIP_VERSION} py-qscintilla2_PATH= ${PYQT_PY_RELNAME}-qscintilla2>=${QSCI2_VERSION} py-qtbuilder_PATH= ${PYTHON_PKGNAMEPREFIX}PyQt-builder>=${PYQTBUILDER_VERSION} py-pyqt5_PATH= ${PYQT_PY_RELNAME}-pyqt>=${PYQT_VERSION} py-pyqt6_PATH= ${PYQT_PY_RELNAME}-pyqt>=${PYQT_VERSION} py-3d_PATH= ${PYQT_PY_RELNAME}-3d>=${PYQT3D_VERSION} -py-chart_PATH= ${PYQT_PY_RELNAME}-chart>=${PYQTCHART_VERSION} +py-charts_PATH= ${PYQT_PY_RELNAME}-charts>=${PYQTCHARTS_VERSION} py-datavis3d_PATH= ${PYQT_PY_RELNAME}-datavis3d>=${PYQTDATAVIS3D_VERSION} +py-graphs_PATH= ${PYQT_PY_RELNAME}-graphs>=${PYQTCHART_VERSION} py-networkauth_PATH= ${PYQT_PY_RELNAME}-networkauth>=${PYQTNETWORKAUTH_VERSION} py-webengine_PATH= ${PYQT_PY_RELNAME}-webengine>=${PYQTWEBENGINE_VERSION} # PORT py-sip_PORT= devel/py-sip -py-qtbuilder_PORT= devel/py-qtbuilder py-pysip_PORT= devel/${PYQT_RELNAME}-sip py-qscintilla2_PORT= devel/${PYQT_RELNAME}-qscintilla2 -py-positioning_PORT= devel/${PYQT_RELNAME}-positioning +py-qtbuilder_PORT= devel/py-qtbuilder py-pyqt5_PORT= devel/${PYQT_RELNAME}-pyqt py-pyqt6_PORT= devel/${PYQT_RELNAME}-pyqt py-3d_PORT= graphics/${PYQT_RELNAME}-3d -py-chart_PORT= x11-toolkits/${PYQT_RELNAME}-chart +py-charts_PORT= x11-toolkits/${PYQT_RELNAME}-charts py-datavis3d_PORT= x11-toolkits/${PYQT_RELNAME}-datavis3d +py-graphs_PORT= x11-toolkits/${PYQT_RELNAME}-graphs py-networkauth_PORT= net/${PYQT_RELNAME}-networkauth py-webengine_PORT= www/${PYQT_RELNAME}-webengine -# The versionned executable of sip +# The versioned executable of sip SIP= ${LOCALBASE}/bin/sip-build-${PYTHON_VER} # Relative directories _VERSION_SUBDIR_REL= PyQt${_PYQT_VERSION}/${PYTHON_VER} -_APIDIR_REL= share/${_VERSION_SUBDIR_REL}/qsci -_DOCDIR_REL= share/doc/${_VERSION_SUBDIR_REL} +_APIDIR_REL= share/${_VERSION_SUBDIR_REL}/qsci +_DOCDIR_REL= share/doc/${_VERSION_SUBDIR_REL} _EXAMPLEDIR_REL= share/examples/${_VERSION_SUBDIR_REL} _SIPDIR_REL= PyQt${_PYQT_VERSION}/bindings _DESIGNERDIR_REL= ${QT_PLUGINDIR_REL}/designer/${_VERSION_SUBDIR_REL} @@ -202,7 +248,7 @@ PLIST_SUB+= PYQT_APIDIR=${_APIDIR_REL} \ PYQT_QSCIVERSION=${QSCI2_VERSION} \ PYQT_PYQTVERSION=${PYQT_VERSION} -. if defined(PYQT_DIST) +. if defined(_PYQT_DIST) LICENSE?= ${PYQT_LICENSE} @@ -237,7 +283,7 @@ do-install: (cd ${WRKSRC} ; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE} -C ./build install INSTALL_ROOT=${STAGEDIR} ) . endif # !target(do-install) -. endif # defined(PYQT_DIST) +. endif # defined(_PYQT_DIST) # Set build, run and test depends -- we need to prefix them internally with "py-" # else we conflict with the ones defined in bsd.qt.mk with the same name @@ -245,7 +291,7 @@ _USE_PYQT_ALL+= ${_USE_SIP_ALL} \ ${_USE_QSCINTILLA} \ ${_USE_PYQTBUILDER} . for comp in ${_USE_PYQT_ALL:O:u} -_USE_PYQT_ALL_SUFFIXED+= py-${comp} py-${comp}:build py-${comp}:run py-${comp}:test +_USE_PYQT_ALL_PREFIXED+= py-${comp} py-${comp}:build py-${comp}:run py-${comp}:test py-${comp}_BUILD_DEPENDS?= ${py-${comp}_PATH}:${py-${comp}_PORT}@${PY_FLAVOR} py-${comp}_RUN_DEPENDS?= ${py-${comp}_PATH}:${py-${comp}_PORT}@${PY_FLAVOR} py-${comp}_TEST_DEPENDS?= ${py-${comp}_PATH}:${py-${comp}_PORT}@${PY_FLAVOR} @@ -254,9 +300,9 @@ py-${comp}_run_RUN_DEPENDS?= ${py-${comp}_RUN_DEPENDS} py-${comp}_test_TEST_DEPENDS?= ${py-${comp}_TEST_DEPENDS} . endfor -_USE_PYQT= ${USE_PYQT:O:u} +_USE_PYQT= ${USE_PYQT:O:u} . for comp in ${_USE_PYQT} -. if ${_USE_PYQT_ALL_SUFFIXED:Mpy-${comp}} +. if ${_USE_PYQT_ALL_PREFIXED:Mpy-${comp}} BUILD_DEPENDS+= ${py-${comp:S/:/_/}_BUILD_DEPENDS} RUN_DEPENDS+= ${py-${comp:S/:/_/}_RUN_DEPENDS} TEST_DEPENDS+= ${py-${comp:S/:/_/}_TEST_DEPENDS} diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk index feb46eb9b70b..79047db2fff1 100644 --- a/Mk/Uses/python.mk +++ b/Mk/Uses/python.mk @@ -17,19 +17,19 @@ # Examples: # # USES=python:2.7 # Supports Python 2.7 Only -# USES=python:3.8+ # Supports Python 3.8 or later -# USES=python:3.8-3.10 # Supports Python 3.8 to 3.10 -# USES=python:-3.8 # Supports Python up to 3.8 -# USES=python # Supports 3.8+ +# USES=python:3.9+ # Supports Python 3.9 or later +# USES=python:3.9-3.10 # Supports Python 3.9 to 3.10 +# USES=python:-3.9 # Supports Python up to 3.9 +# USES=python # Supports 3.9+ # # NOTE: <version-spec> should be as specific as possible, matching the versions # upstream declares support for, without being incorrect. In particular, -# USES=python *without* a <version-spec> means 3.8+, +# USES=python *without* a <version-spec> means 3.9+, # including unreleased versions, which is probably incorrect. # # Not specifying a <version-spec> should only be used when a more specific # <version-spec> cannot be specified due to syntax limitations, for -# example: 2.7,3.8-3.9, but even in this case, X.Y+ (2.7+), or -X.Y (-3.8) +# example: 2.7,3.9-3.10, but even in this case, X.Y+ (2.7+), or -X.Y (-3.9) # is preferred and likely more correct. # # patch Python is needed at patch time. Adds dependency to PATCH_DEPENDS. @@ -50,7 +50,7 @@ # Exported variables: # # PYTHON_VERSION - The chosen Python interpreter including the version, -# e.g. python2.7, python3.8, etc. +# e.g. python2.7, python3.9, etc. # # Variables, which can be set by the port: # @@ -96,6 +96,12 @@ # # cython_test - Depend on lang/cython for tests. # +# cython3 - Depend on lang/cython3 at build-time. +# +# cython3_run - Depend on lang/cython3 at run-time. +# +# cython3_test - Depend on lang/cython3 for tests. +# # flavors - Force creation of flavors for Python 2 and 3 default # versions, where applicable. # @@ -223,17 +229,34 @@ # PYTHON_PORTSDIR - The port directory of the chosen Python interpreter # # PYTHON_REL - The release number of the chosen Python interpreter -# without dots, e.g. 20706, 30801, ... +# without dots, e.g. 20706, 30901, ... # # PYTHON_SUFFIX - The major-minor release number of the chosen Python # interpreter without dots, e.g. 27, 38, ... # Used for prefixes and suffixes. # +# PYTHON_BASESUFFIX - PYTHON_SUFFIX without the threaded ABI flag. +# +# PYTHON_TAG - Defined by PEP 3147, magic tag containing +# implementation name and shorthand version, +# primarily for bytecode files. Includes +# preceding dot, e.g. .cpython-312, +# .cpython-313, ... +# +# PYTHON_SOABI - Defined by PEP 3149, tag containing +# implementation name, shorthand version +# and ABI tags, primarily for compiled +# extension modules. Includes preceding +# dot, e.g. .cpython-313, .cpython-313t, +# .cpython-313td, ... +# # PYTHON_MAJOR_VER - The major release version of the chosen Python # interpreter, e.g. 2, 3, ... # # PYTHON_VER - The major-minor release version of the chosen Python -# interpreter, e.g. 2.7, 3.8, ... +# interpreter, e.g. 2.7, 3.9, ... +# +# PYTHON_BASEVER - PYTHON_VER without the threaded ABI flag. # # PYTHON_ABIVER - Additional ABI flags set by the chosen Python # interpreter, e.g. md @@ -278,7 +301,9 @@ # PYTHON_PLATFORM=${PYTHON_PLATFORM} # PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} # PYTHON_SUFFIX=${PYTHON_SUFFIX} +# PYTHON_BASESUFFIX=${PYTHON_BASESUFFIX} # PYTHON_VER=${PYTHON_VER} +# PYTHON_BASEVER=${PYTHON_BASEVER} # PYTHON_VERSION=${PYTHON_VERSION} # # where PYTHON_INCLUDEDIR, PYTHON_LIBDIR and PYTHON_SITELIBDIR have their PREFIX @@ -313,11 +338,13 @@ .if !defined(_INCLUDE_USES_PYTHON_MK) _INCLUDE_USES_PYTHON_MK= yes +ZEROREGS_UNSAFE= yes + # What Python version and what Python interpreters are currently supported? # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -_PYTHON_VERSIONS= 3.9 3.8 3.10 3.11 2.7 # preferred first -_PYTHON_PORTBRANCH= 3.9 # ${_PYTHON_VERSIONS:[1]} +_PYTHON_VERSIONS= 3.11 3.12 3.10 3.9 2.7 # preferred first +_PYTHON_PORTBRANCH= 3.11 # ${_PYTHON_VERSIONS:[1]} _PYTHON_BASECMD= ${LOCALBASE}/bin/python _PYTHON_RELPORTDIR= lang/python @@ -331,6 +358,9 @@ _VALID_PYTHON_FEATURES= allflavors \ cython \ cython_run \ cython_test \ + cython3 \ + cython3_run \ + cython3_test \ distutils \ flavors \ noegginfo \ @@ -420,13 +450,13 @@ DEV_WARNING+= "lang/python27 reached End of Life and will be removed somewhere . elif ${_PYTHON_ARGS} == 2 DEV_ERROR+= "USES=python:2 is no longer supported, use USES=python:2.7" . elif ${_PYTHON_ARGS} == 3 -DEV_ERROR+= "USES=python:3 is no longer supported, use USES=python:3.8+ or an appropriate version range" +DEV_ERROR+= "USES=python:3 is no longer supported, use USES=python:3.9+ or an appropriate version range" . endif # ${_PYTHON_ARGS} == 2.7 _PYTHON_VERSION:= ${PYTHON_DEFAULT} . if empty(_PYTHON_ARGS) -_PYTHON_ARGS= 3.8+ +_PYTHON_ARGS= 3.9+ . endif # Validate Python version whether it meets the version restriction. @@ -449,9 +479,9 @@ IGNORE= uses unknown USES=python arguments: ${_PYTHON_ARGS} _VC= C/^([1-9]\.)([0-9])$$/\10\2/ .undef _PYTHON_VERSION_NONSUPPORTED -. if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}}) +. if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION:${_VC}:S/t$//} < ${_PYTHON_VERSION_MINIMUM:${_VC}:S/t$//}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MINIMUM} at least -. elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}}) +. elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION:${_VC}:S/t$//} > ${_PYTHON_VERSION_MAXIMUM:${_VC}:S/t$//}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most . endif @@ -462,9 +492,9 @@ _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most __VER= ${ver} . if !defined(_PYTHON_VERSION) && \ !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ - ${__VER:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}})) && \ + ${__VER:${_VC}:S/t$//} < ${_PYTHON_VERSION_MINIMUM:${_VC}:S/t$//})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ - ${__VER:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}})) + ${__VER:${_VC}:S/t$//} > ${_PYTHON_VERSION_MAXIMUM:${_VC}:S/t$//})) _PYTHON_VERSION= ${ver} . endif . endfor @@ -479,9 +509,9 @@ IGNORE= needs an unsupported version of Python . for ver in ${PYTHON_DEFAULT} ${PYTHON2_DEFAULT} ${_PYTHON_VERSIONS} __VER= ${ver} . if !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ - ${__VER:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}})) && \ + ${__VER:${_VC}:S/t$//} < ${_PYTHON_VERSION_MINIMUM:${_VC}:S/t$//})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ - ${__VER:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}})) + ${__VER:${_VC}:S/t$//} > ${_PYTHON_VERSION_MAXIMUM:${_VC}:S/t$//})) . if empty(_VALID_PYTHON_VERSIONS:M${ver}) _VALID_PYTHON_VERSIONS+= ${ver} . endif @@ -514,7 +544,7 @@ FLAVOR= ${FLAVORS:[1]} . endif . endif -. if ${FLAVOR:Mpy[23][0-9]}${FLAVOR:Mpy[23][1-9][0-9]} +. if ${FLAVOR:Mpy[23][0-9]}${FLAVOR:Mpy[23][1-9][0-9]}${FLAVOR:Mpy31[3-9]t} _PYTHON_VERSION= ${FLAVOR:S/py//:C/(.)/\1./} . endif @@ -528,7 +558,7 @@ PKGNAMESUFFIX= ${PYTHON_PKGNAMESUFFIX} # To avoid having dependencies with @ and empty flavor: # _PYTHON_VERSION is either set by (first that matches): # - If using Python flavors, from the current Python flavor -# - If using a version restriction (USES=python:3.8+), from the first +# - If using a version restriction (USES=python:3.9+), from the first # acceptable default Python version. # - From PYTHON_DEFAULT PY_FLAVOR= py${_PYTHON_VERSION:S/.//} @@ -537,7 +567,9 @@ PYTHON_VERSION= python${_PYTHON_VERSION} # Got the correct python version, set some publicly accessible variables PYTHON_VER= ${_PYTHON_VERSION} +PYTHON_BASEVER= ${PYTHON_VER:S/t$//} PYTHON_SUFFIX= ${_PYTHON_VERSION:S/.//g} +PYTHON_BASESUFFIX= ${PYTHON_SUFFIX:S/t$//} PYTHON_MAJOR_VER= ${PYTHON_VER:R} PYTHON_REL= # empty PYTHON_ABIVER= # empty @@ -545,12 +577,11 @@ PYTHON_PORTSDIR= ${_PYTHON_RELPORTDIR}${PYTHON_SUFFIX} # Protect partial checkouts from Mk/Scripts/functions.sh:export_ports_env(). . if !defined(_PORTS_ENV_CHECK) || exists(${PORTSDIR}/${PYTHON_PORTSDIR}) -.include "${PORTSDIR}/${PYTHON_PORTSDIR}/Makefile.version" +.include "${PORTSDIR}/${PYTHON_PORTSDIR:S/t$//}/Makefile.version" . endif # Create a 5 integer version string, prefixing 0 to the minor and patch # tokens if it's a single character. Only use the first 3 tokens of -# PORTVERSION to support pre-release versions (rc3, alpha4, etc) of -# any Python port (lang/pythonXY) +# DISTVERSION to stay consistent regardless of pre-release or ABI flags PYTHON_REL= ${PYTHON_DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/:C/\.([0-9])$/.0\1/:C/\.([0-9]\.[0-9]+)/.0\1/:S/.//g} # Might be overridden by calling ports @@ -562,9 +593,11 @@ PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags . endif . if ${PYTHON_REL} >= 30807 -PYTHON_EXT_SUFFIX= .cpython-${PYTHON_SUFFIX} +PYTHON_TAG= .cpython-${PYTHON_BASESUFFIX} +PYTHON_SOABI= .cpython-${PYTHON_SUFFIX} . else -PYTHON_EXT_SUFFIX= # empty +PYTHON_TAG= # empty +PYTHON_SOABI= # empty . endif . if ${PYTHON_MAJOR_VER} < 3 @@ -606,9 +639,9 @@ _PYTHONPKGLIST= ${WRKDIR}/.PLIST.pymodtmp # cryptography* support . if ${PYCRYPTOGRAPHY_DEFAULT} == rust -CRYPTOGRAPHY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography>=42.0.5,1:security/py-cryptography@${PY_FLAVOR} +CRYPTOGRAPHY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography>=44.0.3,1:security/py-cryptography@${PY_FLAVOR} . else -CRYPTOGRAPHY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography-legacy>=3.4.8_1,1:security/py-cryptography-legacy@${PY_FLAVOR} +CRYPTOGRAPHY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography-legacy>=3.4.8_3,1:security/py-cryptography-legacy@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_CRYPTOGRAPHY_BUILD) @@ -624,16 +657,29 @@ TEST_DEPENDS+= ${CRYPTOGRAPHY_DEPENDS} . endif # cython* support + . if defined(_PYTHON_FEATURE_CYTHON) -BUILD_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_CYTHON_RUN) -RUN_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_CYTHON_TEST) -TEST_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} +TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython>=0.29.37<3:lang/cython@${PY_FLAVOR} +. endif + +. if defined(_PYTHON_FEATURE_CYTHON3) +BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR} +. endif + +. if defined(_PYTHON_FEATURE_CYTHON3_RUN) +RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR} +. endif + +. if defined(_PYTHON_FEATURE_CYTHON3_TEST) +TEST_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}cython3>=3.1.2:lang/cython3@${PY_FLAVOR} . endif . if defined(_PYTHON_FEATURE_CONCURRENT) @@ -675,7 +721,6 @@ BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools44>0:devel/py-setuptools44@${P RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools44>0:devel/py-setuptools44@${PY_FLAVOR} . else BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools>=63.1.0:devel/py-setuptools@${PY_FLAVOR} -RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}setuptools>=63.1.0:devel/py-setuptools@${PY_FLAVOR} . endif . endif @@ -793,7 +838,7 @@ add-plist-pymod: # When Python version is 3.2+ we rewrite all the filenames # of TMPPLIST that end with .py[co], so that they conform # to PEP 3147 (see https://www.python.org/dev/peps/pep-3147/) -PYMAGICTAG= ${PYTHON_CMD} -c 'import sys; print(sys.implementation.cache_tag)' +_PYMAGICTAG= ${PYTHON_CMD} -c 'import sys; print(sys.implementation.cache_tag)' _USES_stage+= 935:add-plist-python add-plist-python: @${AWK} '\ @@ -802,7 +847,7 @@ add-plist-python: /^@dirrmtry / {d = substr($$0, 11); if (d in dirs) {print $$0 "/" pc}; print $$0; next} \ {print} \ ' \ - pc="__pycache__" mt="$$(${PYMAGICTAG})" pyo="opt-1.pyc" \ + pc="__pycache__" mt="$$(${_PYMAGICTAG})" pyo="opt-1.pyc" \ ${TMPPLIST} > ${TMPPLIST}.pyc_tmp @${MV} ${TMPPLIST}.pyc_tmp ${TMPPLIST} . endif # ${PYTHON_REL} >= 30200 && defined(_PYTHON_FEATURE_PY3KPLIST) @@ -819,7 +864,7 @@ CMAKE_ARGS+= -DPython${PYTHON_MAJOR_VER}_EXECUTABLE:FILEPATH="${PYTHON_CMD}" # Python 3rd-party modules PYGAME= ${PYTHON_PKGNAMEPREFIX}game>0:devel/py-game@${PY_FLAVOR} -PYNUMPY= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16,1<1.26,1:math/py-numpy@${PY_FLAVOR} +PYNUMPY= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16,1<1.27,1:math/py-numpy@${PY_FLAVOR} . if defined(_PYTHON_FEATURE_DISTUTILS) . if ${PYTHON_MAJOR_VER} < 3 @@ -835,6 +880,8 @@ PY_SETUPTOOLS= ${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAV # Common Python modules that can be needed but only for some versions of Python. . if ${PYTHON_REL} < 31100 PY_EXCEPTIONGROUP= ${PYTHON_PKGNAMEPREFIX}exceptiongroup>=1.1.1:devel/py-exceptiongroup@${PY_FLAVOR} +PY_TOMLI= ${PYTHON_PKGNAMEPREFIX}tomli>=2.2.1<3:textproc/py-tomli@${PY_FLAVOR} +PY_TYPING_EXTENSIONS= ${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR} . endif . if ${PYTHON_REL} >= 30000 @@ -869,8 +916,11 @@ SUB_LIST+= PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR} \ PYTHON_PLATFORM=${PYTHON_PLATFORM} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} \ PYTHON_SUFFIX=${PYTHON_SUFFIX} \ - PYTHON_EXT_SUFFIX=${PYTHON_EXT_SUFFIX} \ + PYTHON_BASESUFFIX=${PYTHON_BASESUFFIX} \ + PYTHON_TAG=${PYTHON_TAG} \ + PYTHON_SOABI=${PYTHON_SOABI} \ PYTHON_VER=${PYTHON_VER} \ + PYTHON_BASEVER=${PYTHON_BASEVER} \ PYTHON_VERSION=${PYTHON_VERSION} # Substitutions for pkg-plist @@ -881,8 +931,11 @@ PLIST_SUB+= PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;} \ PYTHON_PLATFORM=${PYTHON_PLATFORM} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} \ PYTHON_SUFFIX=${PYTHON_SUFFIX} \ - PYTHON_EXT_SUFFIX=${PYTHON_EXT_SUFFIX} \ + PYTHON_BASESUFFIX=${PYTHON_BASESUFFIX} \ + PYTHON_TAG=${PYTHON_TAG} \ + PYTHON_SOABI=${PYTHON_SOABI} \ PYTHON_VER=${PYTHON_VER} \ + PYTHON_BASEVER=${PYTHON_BASEVER} \ PYTHON_VERSION=${PYTHON_VERSION} . if ${PYTHON_MAJOR_VER} < 3 SUB_LIST+= PYTHON2="" PYTHON3="@comment " @@ -931,7 +984,7 @@ BUILD_DEPENDS+= ${PEP517_BUILD_DEPEND} BUILD_DEPENDS+= ${PEP517_INSTALL_DEPEND} . endif -. if !target(do-configure) +. if !target(do-configure) && !defined(HAS_CONFIGURE) && !defined(GNU_CONFIGURE) do-configure: @${DO_NADA} . endif diff --git a/Mk/Uses/qca.mk b/Mk/Uses/qca.mk deleted file mode 100644 index 29ef2215f72f..000000000000 --- a/Mk/Uses/qca.mk +++ /dev/null @@ -1,28 +0,0 @@ -# Handle dependency on qca -# -# Feature: qca -# Usage: USES=qca -# Valid ARGS none -# -# MAINTAINER: kde@FreeBSD.org - -.if ! defined(_INCLUDE_QCA_MK) -_INCLUDE_QCA_MK= yes - -. if !empty(qca_ARGS) -IGNORE+= USES=qca takes no arguments -. endif - -. if empty(USES:Mqt*) -IGNORE+= Qt version not specified -. endif - -_QCA_LIB= libqca-qt${_QT_VER}.so - -_QCA_DEFAULT_PORT= devel/qca -_QCA_CHOSEN_PORT= DEFAULT -_QCA_FLAVOR= qt${_QT_VER} - -LIB_DEPENDS+= ${_QCA_LIB}:${_QCA_${_QCA_CHOSEN_PORT}_PORT}@${_QCA_FLAVOR} - -.endif diff --git a/Mk/Uses/qt-dist.mk b/Mk/Uses/qt-dist.mk index 9b0b4d5ee08e..f863d0454dc9 100644 --- a/Mk/Uses/qt-dist.mk +++ b/Mk/Uses/qt-dist.mk @@ -21,16 +21,16 @@ qmake_ARGS?= # empty .include "${USESDIR}/qmake.mk" # Supported distribution arguments -_COMMON_DISTS= 3d base charts connectivity datavis3d declarative imageformats location multimedia \ - networkauth quick3d quicktimeline remoteobjects scxml sensors \ - serialbus serialport speech svg tools translations virtualkeyboard \ +_COMMON_DISTS= 3d base charts connectivity datavis3d declarative \ + imageformats location multimedia networkauth quick3d \ + quicktimeline remoteobjects scxml sensors serialbus \ + serialport speech svg tools translations virtualkeyboard \ wayland webchannel webengine websockets webview -_QT5_DISTS= gamepad graphicaleffects quickcontrols \ - quickcontrols2 script webglplugin \ - x11extras xmlpatterns -_QT6_DISTS= 5compat coap doc graphs httpserver languageserver lottie positioning \ - quick3dphysics quickeffectmaker shadertools - +_QT5_DISTS= gamepad graphicaleffects quickcontrols quickcontrols2 \ + script webglplugin x11extras xmlpatterns +_QT6_DISTS= 5compat coap doc graphs grpc httpserver languageserver \ + lottie mqtt positioning quick3dphysics quickeffectmaker \ + shadertools _QT_DISTS= ${_COMMON_DISTS} \ ${_QT${_QT_VER}_DISTS} @@ -83,8 +83,8 @@ _QT5_MASTER_SITES= ${MASTER_SITE_QT} _QT5_MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules/ # Qt6 specific master sites _QT6_MASTER_SITES= ${MASTER_SITE_QT} -_QT6_MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules \ - official_releases/additional_libraries/${_QT_VERSION:R}/${_QT_VERSION}/ +_QT6_MASTER_SITE_SUBDIR= ${_QT6_RELEASE_TYPE}_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules + # Qt5 specific distnames . if ${_QT_DIST} == webengine _QT5_DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-opensource-src-${DISTVERSION},} @@ -96,8 +96,8 @@ _QT5_DISTNAME_kde= ${_QT_DIST:S,^,kde-qt,:S,$,-${DISTVERSION},} _QT6_DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-src-${DISTVERSION},} # Effective master sites and distfile values -# net/qt6-coap has no submodule distfile and uses USE_GITHUB -. if ${_QT_DIST} != coap +# net/qt6-coap and net/qt6-mqtt have no submodule distfiles and use USE_GITHUB +. if ${_QT_DIST} != coap && ${_QT_DIST} != mqtt MASTER_SITES= ${_QT${_QT_VER}_MASTER_SITES${_KDE_${_QT_DIST}:D_kde}} MASTER_SITE_SUBDIR= ${_QT${_QT_VER}_MASTER_SITE_SUBDIR${_KDE_${_QT_DIST}:D_kde}} DISTNAME= ${_QT${_QT_VER}_DISTNAME${_KDE_${_QT_DIST}:D_kde}} @@ -108,15 +108,15 @@ DIST_SUBDIR= KDE/Qt/${_QT_VERSION} . if ${_QT_VER:M5} # KDE maintains a repository with a patched Qt5 distribution. _KDE_3d= 0 -_KDE_base= 142 +_KDE_base= 123 _KDE_charts= 0 -_KDE_connectivity= 4 +_KDE_connectivity= 2 _KDE_datavis3d= 0 -_KDE_declarative= 30 +_KDE_declarative= 21 _KDE_gamepad= 0 _KDE_graphicaleffects= 0 -_KDE_imageformats= 7 -_KDE_location= 6 +_KDE_imageformats= 2 +_KDE_location= 7 _KDE_multimedia= 2 _KDE_networkauth= 0 _KDE_quick3d= 1 @@ -125,23 +125,25 @@ _KDE_quickcontrols2= 5 _KDE_quicktimeline= 0 _KDE_remoteobjects= 0 _KDE_script= 0 -_KDE_script_ORIGIN_TAG= v5.15.16-lts -_KDE_script_VERSION= 5.15.16 +_KDE_script_ORIGIN_TAG= v5.15.19-lts +_KDE_script_VERSION= 5.15.19 _KDE_scxml= 0 _KDE_sensors= 0 _KDE_serialbus= 0 _KDE_serialport= 0 _KDE_speech= 1 -_KDE_svg= 6 -_KDE_tools= 4 +_KDE_svg= 5 +_KDE_tools= 3 _KDE_translations= 0 _KDE_virtualkeyboard= 0 -_KDE_wayland= 60 +_KDE_wayland= 57 _KDE_webchannel= 3 -_KDE_webengine= 9 +# We track the 5.15 branch for www/qt5-webengine to make it easier to +# stay on top of Chromium security patches. +_KDE_webengine= 0 _KDE_webengine_BRANCH= 5.15 -_KDE_webengine_ORIGIN_TAG= v5.15.16-lts -_KDE_webengine_VERSION= 5.15.16 +_KDE_webengine_ORIGIN_TAG= v5.15.19-lts +_KDE_webengine_VERSION= 5.15.19 _KDE_webglplugin= 0 _KDE_websockets= 2 _KDE_webview= 0 @@ -200,6 +202,8 @@ CMAKE_ARGS+= -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DINSTALL_EXAMPLESDIR=${PREFIX}/${QT_EXAMPLEDIR_REL} \ -DINSTALL_DESCRIPTIONSDIR=${PREFIX}/${QT_DESCRIPTIONSDIR_REL} \ -DQT_QMAKE_TARGET_MKSPEC:String=freebsd-clang \ + -DQT_SBOM_GENERATE_JSON:BOOL=OFF \ + -DQT_SBOM_VERIFY:BOOL=OFF \ --log-level=TRACE . endif @@ -478,10 +482,10 @@ _sub_need_clean= _sub_need_clean= \#\# . endif # The Qt modules have an install- and deinstall-step for wrangling -# the qconfig-modules.h header, but qmake does not. -. if ${PORTNAME} != "qmake" +# the qconfig-modules.h header, but buildtools and qmake do not. +. if ${PORTNAME} != "buildtools" && ${PORTNAME} != "qmake" post-install: qt-post-install -. endif # PORTNAME != qmake +. endif # PORTNAME != buildtools && PORTNAME != qmake qt-post-install: # We can't use SUB_FILES with the shared pkg-change.in. # We need it to be a script instead of a group of @unexecs. diff --git a/Mk/Uses/qt.mk b/Mk/Uses/qt.mk index 1a6178b62d1b..905e7793a780 100644 --- a/Mk/Uses/qt.mk +++ b/Mk/Uses/qt.mk @@ -11,9 +11,9 @@ # Versions: 5, 6 # # Port variables: -# USE_QT - List of Qt modules to depend on, with optional ':build' -# and ':run' suffixes. Define it empty to include this file -# without depending on Qt ports. +# USE_QT - List of Qt modules to depend on, with optional ':build', +# ':run', and ':test' suffixes. Define it empty to include +# this file without depending on Qt ports. # # MAINTAINER: kde@FreeBSD.org @@ -22,9 +22,18 @@ _QT_MK_INCLUDED= qt.mk # Qt versions currently supported by the framework. _QT_SUPPORTED?= 5 6 -QT5_VERSION?= 5.15.13 -QT6_VERSION?= 6.6.3 -PYSIDE6_VERSION?= 6.6.2 +QT5_VERSION?= 5.15.17 +QT6_VERSION?= 6.9.1 +PYSIDE6_VERSION?= 6.9.1 + +# Support for intermediate Qt6 releases. This partially defines +# _QT6_MASTER_SITE_SUBDIR and would probably be better in qt-dist.mk, +# but misc/qt6-examples needs this too. +. if ${QT6_VERSION:M*beta*} || ${QT6_VERSION:M*rc*} +_QT6_RELEASE_TYPE= development +. else +_QT6_RELEASE_TYPE= official +. endif # We accept the Qt version to be passed by either or all of the three mk files. . if empty(qt_ARGS) && empty(qmake_ARGS) && empty(qt-dist_ARGS) @@ -65,6 +74,7 @@ QT_DESCRIPTIONSDIR_REL?=${QT_DATADIR_REL}/modules QT_LIBEXECDIR_REL?= libexec/${_QT_RELNAME} QT_IMPORTDIR_REL?= ${QT_ARCHDIR_REL}/imports QT_QMLDIR_REL?= ${QT_ARCHDIR_REL}/qml +QT_SBOMDIR_REL?= ${QT_ARCHDIR_REL}/sbom QT_DATADIR_REL?= share/${_QT_RELNAME} QT_DOCDIR_REL?= share/doc/${_QT_RELNAME} QT_L10NDIR_REL?= ${QT_DATADIR_REL}/translations @@ -102,7 +112,7 @@ QMAKESPEC?= ${QT_MKSPECDIR}/${QMAKESPECNAME} QMAKE_COMPILER= $$(ccver="$$(${CXX} --version)"; case "$$ccver" in *clang*) echo clang ;; *) echo g++ ;; esac) . for dir in BIN INC LIB ARCH PLUGIN LIBEXEC IMPORT \ - QML DATA DOC L10N ETC EXAMPLE TEST MKSPEC \ + QML SBOM DATA DOC L10N ETC EXAMPLE TEST MKSPEC \ CMAKE TOOL QT_${dir}DIR= ${PREFIX}/${QT_${dir}DIR_REL} # Export all directories to the plist substituion for QT_DIST ports. @@ -142,9 +152,10 @@ _USES_POST+= qt _QT_MK_POST_INCLUDED= qt.mk # The Qt components supported by qt.mk: list of shared, and version specific ones -_USE_QT_COMMON= 3d charts connectivity datavis3d declarative doc examples imageformats location \ - multimedia networkauth quick3d quicktimeline remoteobjects scxml \ - sensors serialbus serialport speech svg virtualkeyboard wayland \ +_USE_QT_COMMON= 3d charts connectivity datavis3d declarative doc \ + examples imageformats location multimedia networkauth \ + quick3d quicktimeline remoteobjects scxml sensors \ + serialbus serialport speech svg virtualkeyboard wayland \ webchannel webengine websockets webview _USE_QT5_ONLY= assistant buildtools concurrent core dbus \ @@ -157,9 +168,10 @@ _USE_QT5_ONLY= assistant buildtools concurrent core dbus \ uitools webglplugin websockets-qml \ widgets x11extras xml xmlpatterns -_USE_QT6_ONLY= 5compat base coap graphs httpserver languageserver lottie pdf positioning \ - quick3dphysics quickeffectmaker shadertools tools translations \ - sqldriver-sqlite sqldriver-mysql sqldriver-psql sqldriver-odbc +_USE_QT6_ONLY= 5compat base coap graphs grpc httpserver languageserver \ + lottie mqtt pdf positioning quick3dphysics quickeffectmaker \ + shadertools tools translations sqldriver-sqlite \ + sqldriver-mysql sqldriver-psql sqldriver-odbc # Dependency tuples: _LIB should be preferred if possible. qt-3d_PORT= graphics/${_QT_RELNAME}-3d @@ -226,6 +238,9 @@ qt-graphicaleffects_PATH= ${LOCALBASE}/${QT_QMLDIR_REL}/QtGraphicalEffects/qmldi qt-graphs_PORT= x11-toolkits/${_QT_RELNAME}-graphs qt-graphs_LIB= libQt${_QT_LIBVER}Graphs.so +qt-grpc_PORT= devel/${_QT_RELNAME}-grpc +qt-grpc_LIB= libQt${_QT_LIBVER}Grpc.so + qt-gui_PORT= x11-toolkits/${_QT_RELNAME}-gui qt-gui_LIB= libQt${_QT_LIBVER}Gui.so @@ -239,7 +254,7 @@ qt-imageformats_PORT= graphics/${_QT_RELNAME}-imageformats qt-imageformats_PATH= ${LOCALBASE}/${QT_PLUGINDIR_REL}/imageformats/libqtiff.so qt-languageserver_PORT= devel/${_QT_RELNAME}-languageserver -qt-languageserver_LIB= libQt${_QT_LIBVER}LanguageServer.so +qt-languageserver_PATH= ${LOCALBASE}/${QT_LIBDIR_REL}/libQt6LanguageServer.a qt-lottie_PORT= graphics/${_QT_RELNAME}-lottie qt-lottie_LIB= libQt${_QT_LIBVER}Bodymovin.so @@ -256,6 +271,9 @@ qt-location_LIB= libQt${_QT_LIBVER}Location.so qt-l10n_PORT= misc/${_QT_RELNAME}-l10n qt-l10n_PATH= ${_QT_RELNAME}-l10n>=${_QT_VERSION:R:R} +qt-mqtt_PORT= net/${_QT_RELNAME}-mqtt +qt-mqtt_LIB= libQt${_QT_LIBVER}Mqtt.so + qt-multimedia_PORT= multimedia/${_QT_RELNAME}-multimedia qt-multimedia_LIB= libQt${_QT_LIBVER}Multimedia.so @@ -309,7 +327,7 @@ qt-quick3d_PORT= x11-toolkits/${_QT_RELNAME}-quick3d qt-quick3d_LIB= libQt${_QT_LIBVER}Quick3D.so qt-quick3dphysics_PORT= science/${_QT_RELNAME}-quick3dphysics -qt_quick3dphysics_LIB= libQt${_QT_LIBVER}Quick3DPhysics.so +qt-quick3dphysics_LIB= libQt${_QT_LIBVER}Quick3DPhysics.so qt-quickcontrols_PORT= x11-toolkits/${_QT_RELNAME}-quickcontrols qt-quickcontrols_PATH= ${LOCALBASE}/${QT_QMLDIR_REL}/QtQuick/Controls/qmldir @@ -426,7 +444,7 @@ _USE_QT_ALL= ${_USE_QT_COMMON} \ ${_USE_QT${_QT_VER}_ONLY} _USE_QT= ${USE_QT} # Iterate through components deprived of suffix. -. for component in ${_USE_QT:O:u:C/:(build|run)$//} +. for component in ${_USE_QT:O:u:C/:(build|run|test)$//} # Check that the component is valid. . if ${_USE_QT_ALL:M${component}} != "" # Skip meta-components (currently none). @@ -440,6 +458,9 @@ qt-${component}_TYPE+= build . if ${_USE_QT:M${component}\:run} != "" qt-${component}_TYPE+= run . endif +. if ${_USE_QT:M${component}\:test} != "" +qt-${component}_TYPE+= test +. endif . endif # ${_USE_QT:M${component}_*} != "" && ${_USE_QT:M${component}} == "" # If no dependency type is set, default to full dependency. . if !defined(qt-${component}_TYPE) @@ -457,6 +478,9 @@ BUILD_DEPENDS+= ${qt-${component}_DEPENDS} . if ${qt-${component}_TYPE:Mrun} != "" RUN_DEPENDS+= ${qt-${component}_DEPENDS} . endif +. if ${qt-${component}_TYPE:Mtest} != "" +TEST_DEPENDS+= ${qt-${component}_DEPENDS} +. endif . endif # ${qt-${component}_LIB} && ${qt-${component}_TYPE:Mbuild} && ${qt-${component}_TYPE:Mrun} . endif # defined(qt-${component}_PORT) && defined(qt-${component}_PATH) . else # ! ${_USE_QT_ALL:M${component}} != "" diff --git a/Mk/Uses/ruby.mk b/Mk/Uses/ruby.mk index c062bcf02f45..55bb74a50fd7 100644 --- a/Mk/Uses/ruby.mk +++ b/Mk/Uses/ruby.mk @@ -15,7 +15,7 @@ # [variables that a user may define] # # RUBY_VER - (See below) -# RUBY_DEFAULT_VER - Set to (e.g.) "3.1" if you want to refer to "ruby31" +# RUBY_DEFAULT_VER - Set to (e.g.) "3.2" if you want to refer to "ruby32" # just as "ruby". # RUBY_ARCH - (See below) # @@ -53,7 +53,6 @@ # basename of the ruby distribution tarball. # RUBY_PATCHFILES - PATCHFILES for the standard ruby ports, i.e. the # basename of the ruby distribution tarball. -# RUBY_WRKSRC - WRKSRC for the ruby port. # MASTER_SITE_SUBDIR_RUBY - MASTER_SITE_SUBDIR for the ruby distfiles. # # RUBY_SHLIBVER - Major version of libruby (see below for current @@ -144,26 +143,35 @@ RUBY?= ${LOCALBASE}/bin/ruby${RUBY_SUFFIX} . if defined(RUBY_VER) # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -. if ${RUBY_VER} == 3.1 +. if ${RUBY_VER} == 3.2 # -# Ruby 3.1 +# Ruby 3.2 # -RUBY_DISTVERSION= 3.1.5 +RUBY_DISTVERSION= 3.2.9 RUBY_PORTREVISION= 0 -. elif ${RUBY_VER} == 3.2 +. elif ${RUBY_VER} == 3.3 # -# Ruby 3.2 +# Ruby 3.3 # -RUBY_DISTVERSION= 3.2.4 +RUBY_DISTVERSION= 3.3.9 RUBY_PORTREVISION= 0 -. elif ${RUBY_VER} == 3.3 + +. elif ${RUBY_VER} == 3.4 # -# Ruby 3.3 +# Ruby 3.4 # -RUBY_DISTVERSION= 3.3.1 -RUBY_PORTREVISION= 1 +RUBY_DISTVERSION= 3.4.5 +RUBY_PORTREVISION= 0 + + +. elif ${RUBY_VER} == 3.5 +# +# Ruby 3.5 +# +RUBY_DISTVERSION= 3.5.0-preview1 +RUBY_PORTREVISION= 0 # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. @@ -171,7 +179,7 @@ RUBY_PORTREVISION= 1 # # Other versions # -IGNORE= Only ruby 3.1, 3,2 and 3.3 are supported +IGNORE= Only ruby 3,2, 3.3, 3.4 and 3.5 are supported _INVALID_RUBY_VER= 1 . endif RUBY_PORTEPOCH= 1 @@ -180,9 +188,10 @@ RUBY_VERSION= ${RUBY_DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/} . if !defined(_INVALID_RUBY_VER) -RUBY31?= "@comment " RUBY32?= "@comment " RUBY33?= "@comment " +RUBY34?= "@comment " +RUBY35?= "@comment " . if defined(BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}) . if ${BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}} == "yes" @@ -192,8 +201,6 @@ BROKEN= ${BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}} . endif . endif -RUBY_WRKSRC= ${WRKDIR}/ruby-${RUBY_DISTVERSION} - RUBY_CONFIGURE_ARGS+= --with-rubyhdrdir="${PREFIX}/include/ruby-${RUBY_VER}/" \ --with-rubylibprefix="${PREFIX}/lib/ruby" \ --docdir="${RUBY_DOCDIR}" \ @@ -218,8 +225,6 @@ RUBY_PORTVERSION?= ${RUBY_DISTVERSION:tl:C/([a-z])[a-z]+/\1/g:C/([0-9])([a-z])/\ MASTER_SITE_SUBDIR_RUBY?= ${RUBY_VER} RUBY_DISTNAME?= ruby-${RUBY_DISTVERSION} -RUBY_WRKSRC?= ${WRKDIR}/${RUBY_DISTNAME} - RUBY_RELVERSION_CODE?= ${RUBY_RELVERSION:S/.//g} RUBY_VERSION_CODE?= ${RUBY_VERSION:S/.//g} RUBY_VER= ${RUBY_VERSION:C/([[:digit:]]+\.[[:digit:]]+).*/\1/} diff --git a/Mk/Uses/samba.mk b/Mk/Uses/samba.mk index 4631a0dfeb95..fb949887c604 100644 --- a/Mk/Uses/samba.mk +++ b/Mk/Uses/samba.mk @@ -5,8 +5,7 @@ # Valid ARGS: build, env, lib, run # default is build,run (implicit) # -# When subpackages are available this can be more granular -# +# MAINTAINER: samba@FreeBSD.org .if !defined(_INCLUDE_USES_SAMBA_MK) _INCLUDE_USES_SAMBA_MK= yes @@ -19,22 +18,43 @@ samba_ARGS= build run IGNORE= USES=samba has invalid arguments: ${samba_ARGS:Nbuild:Nenv:Nlib:Nrun} . endif -SAMBAPORT= net/samba${SAMBA_DEFAULT:S/.//} -SAMBAINCLUDES= ${LOCALBASE}/include/samba4 -. if ${SAMBA_DEFAULT} == 4.16 || ${SAMBA_DEFAULT} == 4.19 -SAMBALIBS= ${LOCALBASE}/lib/samba4 -. else +. if ${SAMBA_DEFAULT} != 4.16 && ${SAMBA_DEFAULT} != 4.19 && ${SAMBA_DEFAULT} != 4.20 IGNORE= Invalid version of samba: ${SAMBA_DEFAULT} . endif +SAMBA_SUFFIX= ${SAMBA_DEFAULT:S/.//} + +SAMBA_PORT_416= net/samba416 +SAMBA_LDB_PORT_416= databases/ldb25 +SAMBA_TALLOC_PORT_416= devel/talloc +SAMBA_TDB_PORT_416= databases/tdb +SAMBA_TEVENT_PORT_416= devel/tevent +SAMBA_PORT_419= net/samba419 +SAMBA_LDB_PORT_419= databases/ldb28 +SAMBA_TALLOC_PORT_419= devel/talloc +SAMBA_TDB_PORT_419= databases/tdb +SAMBA_TEVENT_PORT_419= devel/tevent +SAMBA_PORT_420= net/samba420 +SAMBA_LDB_PORT_420= databases/ldb29 +SAMBA_TALLOC_PORT_420= devel/talloc242 +SAMBA_TDB_PORT_420= databases/tdb1410 +SAMBA_TEVENT_PORT_420= devel/tevent016 + +SAMBA_PORT= ${SAMBA_PORT_${SAMBA_SUFFIX}} +SAMBA_INCLUDEDIR= ${LOCALBASE}/include/samba4 +SAMBA_LIBDIR= ${LOCALBASE}/lib/samba4 +SAMBA_LDB_PORT= ${SAMBA_LDB_PORT_${SAMBA_SUFFIX}} +SAMBA_TALLOC_PORT= ${SAMBA_TALLOC_PORT_${SAMBA_SUFFIX}} +SAMBA_TDB_PORT= ${SAMBA_TDB_PORT_${SAMBA_SUFFIX}} +SAMBA_TEVENT_PORT= ${SAMBA_TEVENT_PORT_${SAMBA_SUFFIX}} + . if ${samba_ARGS:Mbuild} -BUILD_DEPENDS+= smbd:${SAMBAPORT} +BUILD_DEPENDS+= smbd:${SAMBA_PORT} . endif . if ${samba_ARGS:Mlib} -LIB_DEPENDS+= libsmbclient.so:${SAMBAPORT} +LIB_DEPENDS+= libsmbclient.so:${SAMBA_PORT} . endif . if ${samba_ARGS:Mrun} -RUN_DEPENDS+= smbd:${SAMBAPORT} +RUN_DEPENDS+= smbd:${SAMBA_PORT} . endif - .endif diff --git a/Mk/Uses/sbrk.mk b/Mk/Uses/sbrk.mk new file mode 100644 index 000000000000..8f74e7a0e34c --- /dev/null +++ b/Mk/Uses/sbrk.mk @@ -0,0 +1,21 @@ +# handle ports requring sbrk +# +# Feature: sbrk +# Usage: USES=sbrk +# Valid ARGS: <none> +# +# Software requiring the sbrk pseudo-syscall is broken on aarch64 and +# riscv64. Mark it as such. +# +# MAINTAINER: brooks@FreeBSD.org + +.if !defined(_INCLUDE_USES_SBRK_MK) +_INCLUDE_USES_SBRK_MK= yes + +. if empty(sbrk_ARGS) +BROKEN_aarch64= requires sbrk +BROKEN_riscv64= requires sbrk +. else +IGNORE= Incorrect 'USES+=sbrk:${sbrk_ARGS}'. No arguments permitted +. endif +.endif diff --git a/Mk/Uses/sdl.mk b/Mk/Uses/sdl.mk index 5289c3c02f25..4c29f13f0e64 100644 --- a/Mk/Uses/sdl.mk +++ b/Mk/Uses/sdl.mk @@ -69,6 +69,17 @@ _SDL_sound2_REQUIRES= sdl2 _SDL_ttf2_LIB_DEPENDS= libSDL2_ttf.so:graphics/sdl2_ttf _SDL_ttf2_REQUIRES= sdl2 +# These are the current supported SDL3 modules +_SDL_USE_ALL+= sdl3 image3 ttf3 + +_SDL_sdl3_LIB_DEPENDS= libSDL3.so:devel/sdl3 + +_SDL_image3_LIB_DEPENDS= libSDL3_image.so:graphics/sdl3_image +_SDL_image3_REQUIRES= sdl3 + +_SDL_ttf3_LIB_DEPENDS= libSDL3_ttf.so:graphics/sdl3_ttf +_SDL_ttf3_REQUIRES= sdl3 + # Basic checks . if !empty(sdl_ARGS) IGNORE= USES=sdl takes no arguments diff --git a/Mk/Uses/shebangfix.mk b/Mk/Uses/shebangfix.mk index 20dba5279964..337cc5bf2343 100644 --- a/Mk/Uses/shebangfix.mk +++ b/Mk/Uses/shebangfix.mk @@ -57,6 +57,7 @@ python_CMD?= ${PYTHON_CMD} # been set already above with ?=. . for lang in ${SHEBANG_LANG} ${lang}_CMD?= ${LOCALBASE}/bin/${lang} +${lang}_OLD_CMD+= "/bin/env ${lang}" ${lang}_OLD_CMD+= "/usr/bin/env ${lang}" ${lang}_OLD_CMD+= /bin/${lang} ${lang}_OLD_CMD+= /usr/bin/${lang} @@ -64,6 +65,7 @@ ${lang}_OLD_CMD+= /usr/local/bin/${lang} . endfor . for pyver in 2 3 +python_OLD_CMD+= "/bin/env python${pyver}" python_OLD_CMD+= "/usr/bin/env python${pyver}" python_OLD_CMD+= /bin/python${pyver} python_OLD_CMD+= /usr/bin/python${pyver} diff --git a/Mk/Uses/ssl.mk b/Mk/Uses/ssl.mk index a8c95e4d9a4d..f8a459eb87e7 100644 --- a/Mk/Uses/ssl.mk +++ b/Mk/Uses/ssl.mk @@ -8,8 +8,10 @@ # # DEFAULT_VERSIONS+= ssl=<openssl variant> # -# Variants being base, openssl, openssl30, openssl31, openssl32, -# openssl-quictls, libressl, and libressl-devel. +# When updating this, please also update the same list in bsd.default-versions.mk +# and the checks for USES=ssl in qa.sh! +# Variants being base, openssl, openssl111, openssl31, openssl32, +# openssl33, libressl, and libressl-devel. # # The Makefile sets these variables: # OPENSSLBASE - "/usr" or ${LOCALBASE} diff --git a/Mk/Uses/tcl.mk b/Mk/Uses/tcl.mk index eb47dfea7bbf..616bf7153ba5 100644 --- a/Mk/Uses/tcl.mk +++ b/Mk/Uses/tcl.mk @@ -12,6 +12,13 @@ # # TCL_INCLUDEDIR - Path where the Tcl C headers can be found # +# TCL_PKG_LIB_PREFIX - Library prefix, as per TIP595. This is tcl9 when +# when building against Tcl 9.0, and empty otherwise +# +# TCL_PKG_STUB_POSTFIX - Stub library postfix. This is empty when building +# against Tcl 9.0, and DISTVERSION otherwise. +# See https://core.tcl-lang.org/tclconfig/info/381985d331b96ba9 +# # # TK_VER - Major.Minor version of Tk # @@ -38,11 +45,11 @@ # is installed, bring in the default version. See # ${_TCLTK_DEFAULT_VERSION} below. # -# - 86, 87 - Depend on a specific version series of PORT. Multiple +# - 86, 90 - Depend on a specific version series of PORT. Multiple # values are OK. The highest version available is # picked. # -# - 86+, 87+ - Depend on any installed version greater or equal to +# - 86+ - Depend on any installed version greater or equal to # the specified version. # # If wrapper is specified, an additional dependency on tcl-wrapper or @@ -71,7 +78,7 @@ _INCLUDE_USES_TCL_MK= yes # # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -_TCLTK_VALID_VERSIONS= 86 87 +_TCLTK_VALID_VERSIONS= 86 90 # # Bring in the default and check that the specified version is in the list of @@ -99,8 +106,11 @@ _TCLTK_WANTED_VERSIONS:=${_TCLTK_DEFAULT_VERSION} # # Parse one or more ver arguments. # -. if ${tcl_ARGS:M8[6-7]} -_TCLTK_WANTED_VERSIONS:=${tcl_ARGS:M8[6-7]} +. if ${tcl_ARGS:M86} +_TCLTK_WANTED_VERSIONS:=${tcl_ARGS:M86} +. endif +. if ${tcl_ARGS:M90} +_TCLTK_WANTED_VERSIONS:=${tcl_ARGS:M90} . endif # @@ -155,14 +165,14 @@ _TCLTK_WANTED_VERSION:= ${_TCLTK_HIGHEST_VERSION} # # Exported variables # -TCL_VER:= ${_TCLTK_WANTED_VERSION:S/8/8./} +TCL_VER:= ${_TCLTK_WANTED_VERSION:S/8/8./:S/9/9./} TCL_SHLIB_VER:= ${_TCLTK_WANTED_VERSION} TCLSH:= ${LOCALBASE}/bin/tclsh${TCL_VER} TCL_LIBDIR:= ${LOCALBASE}/lib/tcl${TCL_VER} TCL_INCLUDEDIR:=${LOCALBASE}/include/tcl${TCL_VER} . if ${_TCLTK_PORT} == "tk" -TK_VER:= ${_TCLTK_WANTED_VERSION:S/8/8./} +TK_VER:= ${_TCLTK_WANTED_VERSION:S/8/8./:S/9/9./} TK_SHLIB_VER:= ${_TCLTK_WANTED_VERSION} WISH:= ${LOCALBASE}/bin/wish${TCL_VER} TK_LIBDIR:= ${LOCALBASE}/lib/tk${TK_VER} @@ -213,7 +223,15 @@ LIB_DEPENDS+= ${_TCLTK_LIB_LINE} . if ${tcl_ARGS:Mtea} GNU_CONFIGURE= yes TCL_PKG?= ${PORTNAME:C/^tcl(-?)//:C/(-?)tcl\$//}${PORTVERSION} -PLIST_SUB+= TCL_PKG=${TCL_PKG} +. if ${TCL_VER} == "9.0" +TCL_PKG_LIB_PREFIX= tcl9 +TCL_PKG_STUB_POSTFIX= +. else +TCL_PKG_LIB_PREFIX= +TCL_PKG_STUB_POSTFIX= ${DISTVERSION} +. endif +PLIST_SUB+= TCL_PKG=${TCL_PKG} TCL_PKG_LIB_PREFIX=${TCL_PKG_LIB_PREFIX} \ + TCL_PKG_STUB_POSTFIX=${TCL_PKG_STUB_POSTFIX} CONFIGURE_ARGS+=--exec-prefix=${PREFIX} \ --with-tcl=${TCL_LIBDIR} \ --with-tclinclude=${TCL_INCLUDEDIR} diff --git a/Mk/Uses/tex.mk b/Mk/Uses/tex.mk index c62df38e53ec..ce9213f80f5b 100644 --- a/Mk/Uses/tex.mk +++ b/Mk/Uses/tex.mk @@ -91,8 +91,8 @@ TEXMFVARDIR?= share/texmf-var TEXMFCONFIGDIR?=share/texmf-config FMTUTIL_CNF?= ${TEXMFCONFIGDIR}/web2c/fmtutil.cnf TEXHASHDIRS?= ${TEXMFDIR} ${TEXMFDISTDIR} ${TEXMFLOCALDIR} ${TEXMFVARDIR} ${TEXMFCONFIGDIR} -TEXLIVE_YEAR?= 2023 -TEXLIVE_VERSION?= ${TEXLIVE_YEAR}0313 +TEXLIVE_YEAR?= 2025 +TEXLIVE_VERSION?= ${TEXLIVE_YEAR}0308 DISTNAME_TEXMF= texlive-${TEXLIVE_VERSION}-texmf .for V in TEXMFDIR TEXMFDISTDIR TEXMFLOCALDIR TEXMFVARDIR TEXMFCONFIGDIR FMTUTIL_CNF diff --git a/Mk/Uses/vala.mk b/Mk/Uses/vala.mk index aec0e7a3a968..a12834d81fb7 100644 --- a/Mk/Uses/vala.mk +++ b/Mk/Uses/vala.mk @@ -8,7 +8,7 @@ .if ! defined(_INCLUDE_USES_VALA_MK) _INCLUDE_USES_VALA_MK= yes -_VALA_VERSION= 0.56.16 +_VALA_VERSION= 0.56.18 _VALA_LIB_VERSION= ${_VALA_VERSION:R} _VALA_LIBRARY= libvala-${_VALA_LIB_VERSION}.so _VALA_BINARY= valac diff --git a/Mk/Uses/xfce.mk b/Mk/Uses/xfce.mk index 506c7b1bf753..2cb800698405 100644 --- a/Mk/Uses/xfce.mk +++ b/Mk/Uses/xfce.mk @@ -13,7 +13,7 @@ _INCLUDE_USES_XFCE_Mk= yes _USES_POST+= xfce -_USE_XFCE_ALL= garcon libexo libmenu libutil panel thunar xfconf +_USE_XFCE_ALL= garcon libexo libmenu libutil panel thunar xdt xfconf windowing xfce_ARGS?= # empty @@ -37,8 +37,12 @@ libutil_LIB_DEPENDS= libxfce4util.so:x11/libxfce4util thunar_LIB_DEPENDS= libthunarx-3.so:x11-fm/thunar thunar_RUN_DEPENDS= Thunar:x11-fm/thunar +xdt_BUILD_DEPENDS= xfce4-dev-tools>=4.19.4:devel/xfce4-dev-tools + xfconf_LIB_DEPENDS= libxfconf-0.so:x11/xfce4-conf +windowing_LIB_DEPENDS= libxfce4windowing-0.so:x11/libxfce4windowing + . if defined(USE_XFCE) # First, expand all USE_XFCE_REQ recursively. . for comp in ${_USE_XFCE_ALL} diff --git a/Mk/Uses/xorg-cat.mk b/Mk/Uses/xorg-cat.mk index 0853fd6b3e3c..b81972b4ae5f 100644 --- a/Mk/Uses/xorg-cat.mk +++ b/Mk/Uses/xorg-cat.mk @@ -14,8 +14,6 @@ # * font don't install .pc file # * lib various dependencies, install .pc file, needs # pathfix -# * proto install .pc file, needs pathfix, most only needed at -# build time. # * util no particular notes # # These categories has to match upstream categories. Don't invent @@ -34,7 +32,7 @@ .if !defined(_INCLUDE_USES_XORG_CAT_MK) _INCLUDE_USES_XORG_CAT_MK=yes -_XORG_CATEGORIES= app data doc driver font lib proto util +_XORG_CATEGORIES= app data doc driver font lib util _XORG_BUILDSYSTEMS= autotools meson _XORG_CAT= # empty @@ -158,9 +156,6 @@ USE_LDCONFIG= yes CONFIGURE_ARGS+=--enable-malloc0returnsnull . endif -. elif ${_XORG_CAT} == proto -.include "${USESDIR}/pathfix.mk" - . endif # ${_XORG_CAT} == <category> # We only need to include xorg.mk if we want USE_XORG modules diff --git a/Mk/Wrappers/gm4 b/Mk/Wrappers/gm4 index ecc0796c729a..8b1e7a64f700 100644 --- a/Mk/Wrappers/gm4 +++ b/Mk/Wrappers/gm4 @@ -2,5 +2,5 @@ case " $@ " in *" --version "*) echo "m4 (GNU M4) 1.4.18" ;; -*) exec m4 -g $@ ;; +*) exec m4 -g "$@" ;; esac diff --git a/Mk/bsd.ccache.mk b/Mk/bsd.ccache.mk index 83f225748420..bf8900430238 100644 --- a/Mk/bsd.ccache.mk +++ b/Mk/bsd.ccache.mk @@ -105,4 +105,12 @@ ccache-wrkdir-link: ${WRKDIR}/.ccache .PHONY post-extract: ccache-wrkdir-link . endif +# enable ccache in case of USES=llvm and cmake +. if ${CCACHE_ENABLED} == yes && \ + defined(_INCLUDE_USES_LLVM_MK) && \ + defined(_INCLUDE_USES_CMAKE_MK) +CMAKE_ARGS+= -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache +. endif + .endif diff --git a/Mk/bsd.commands.mk b/Mk/bsd.commands.mk index 8ab99a18e22b..4f0381d7bdd3 100644 --- a/Mk/bsd.commands.mk +++ b/Mk/bsd.commands.mk @@ -45,7 +45,7 @@ FIND?= /usr/bin/find FLEX?= /usr/bin/flex FMT?= /usr/bin/fmt FMT_80?= ${FMT} 75 79 -GMAKE?= gmake +GMAKE?= ${LOCALBASE}/bin/gmake GREP?= /usr/bin/grep GUNZIP_CMD?= /usr/bin/gunzip -f GZCAT?= /usr/bin/gzcat diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk index a319b8dd12de..3192f9cf5ce5 100644 --- a/Mk/bsd.default-versions.mk +++ b/Mk/bsd.default-versions.mk @@ -50,21 +50,21 @@ EBUR128_DEFAULT?= legacy FIREBIRD_DEFAULT?= 3.0 # Possible values: gfortran FORTRAN_DEFAULT?= gfortran -# Possible values: 3.2.2, 3.3.1 -. if !defined(WANT_FPC_DEVEL) -FPC_DEFAULT?= 3.2.2 -. else +# Possible values: 3.2.3, 3.3.1 +. if (defined(WANT_FPC_DEVEL) && !empty(WANT_FPC_DEVEL)) || ${ARCH:Maarch64} FPC_DEFAULT?= 3.3.1 +. else +FPC_DEFAULT?= 3.2.3 . endif -# Possible values: 9, 10, 11, 12, 13, 14 +# Possible values: 11, 12, 13, 14, 15, 16 # (Any other version is completely unsupported and not meant for general use.) GCC_DEFAULT?= 13 # Possible values: 10 GHOSTSCRIPT_DEFAULT?= 10 # Possible values: mesa-libs, mesa-devel GL_DEFAULT?= mesa-libs -# Possible values: 1.20, 1.21, 1.22, 1.23-devel -GO_DEFAULT?= 1.21 +# Possible values: 1.20, 1.21, 1.22, 1.23, 1.24, 1.25-devel +GO_DEFAULT?= 1.24 # Possible values: 1.8, 2.2, 3.0 GUILE_DEFAULT?= 2.2 # Possible versions: 6, 7 @@ -73,13 +73,13 @@ GUILE_DEFAULT?= 2.2 # Format: version[-flavor] # Examples: 6-nox11, 7 IMAGEMAGICK_DEFAULT?= 7 -# Possible values: 8, 11, 17, 18, 19, 20, 21 +# Possible values: 8, 11, 17, 18, 19, 20, 21, 22, 23, 24 JAVA_DEFAULT?= 8 -# Possible values: 3.2.0, 3.1.0 -. if !defined(WANT_LAZARUS_DEVEL) -LAZARUS_DEFAULT?= 3.2.0 +# Possible values: 4.0, 4.99 +. if (defined(WANT_LAZARUS_DEVEL) && !empty(WANT_LAZARUS_DEVEL)) || ${ARCH:Maarch64} +LAZARUS_DEFAULT?= 4.99 . else -LAZARUS_DEFAULT?= 3.3.1 +LAZARUS_DEFAULT?= 4.2 . endif # Possible values: rust, legacy . if empty(ARCH:Naarch64:Namd64:Narmv7:Ni386:Npowerpc64:Npowerpc64le:Npowerpc:Nriscv64) @@ -87,32 +87,34 @@ LIBRSVG2_DEFAULT?= rust . else LIBRSVG2_DEFAULT?= legacy . endif -# Possible values: c7 +# Possible values: c7 rl9 +. if ${ARCH:Mi386} LINUX_DEFAULT?= c7 -# Possible values: 11, 12, 13, 14, 15, 16, 17, -devel (to be used when non-base compiler is required) -LLVM_DEFAULT?= 15 +. else +LINUX_DEFAULT?= rl9 +. endif +# Possible values: 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -devel (to be used when non-base compiler is required) +LLVM_DEFAULT?= 19 # Possible values: 5.1, 5.2, 5.3, 5.4 LUA_DEFAULT?= 5.4 # Possible values: luajit, luajit-devel, luajit-openresty -. if ${ARCH:Mpowerpc64*} -LUAJIT_DEFAULT?= luajit-openresty -. else -LUAJIT_DEFAULT?= luajit-devel -. endif +LUAJIT_DEFAULT?= luajit # Possible values: 5.10, 5.20, 6.8 MONO_DEFAULT?= 5.20 -# Possible values: 8.0, 8.1, 10.5m, 10.6m, 10.11m +# Possible values: 8.0, 8.4, 9.1, 10.5m, 10.6m, 10.11m, 11.4m MYSQL_DEFAULT?= 8.0 # Possible values: ninja, samurai NINJA_DEFAULT?= ninja -# Possible value: 18, 20, 21, current, lts (Note: current = 21 and lts = 20) +# Possible value: 18, 20, 22, 24, current, lts (Note: current = 24 and lts = 22) NODEJS_DEFAULT?= lts # Possible value: 25, 26 OPENLDAP_DEFAULT?= 26 -# Possible values: 5.34, 5.36, 5.38, devel +# Possible values: 5.38, 5.40, 5.42, devel . if !exists(${LOCALBASE}/bin/perl) || (!defined(_PORTS_ENV_CHECK) && \ defined(PACKAGE_BUILDING)) -PERL5_DEFAULT?= 5.36 +# When changing the default here, make sure the DEPRECATED/EXPIRATION lines in +# the older Perl 5 ports are uncommented at the same time. +PERL5_DEFAULT?= 5.40 . elif !defined(PERL5_DEFAULT) # There's no need to replace development versions, like "5.23" with "devel" # because 1) nobody is supposed to use it outside of poudriere, and 2) it must @@ -124,27 +126,29 @@ _PERL5_FROM_BIN!= ${LOCALBASE}/bin/perl -e 'printf "%vd\n", $$^V;' _EXPORTED_VARS+= _PERL5_FROM_BIN PERL5_DEFAULT:= ${_PERL5_FROM_BIN:R} . endif -# Possible values: 12, 13, 14, 15, 16 -PGSQL_DEFAULT?= 15 -# Possible values: 8.1, 8.2, 8.3 -PHP_DEFAULT?= 8.2 +# Possible values: 13, 14, 15, 16, 17 +PGSQL_DEFAULT?= 17 +# Possible values: 8.1, 8.2, 8.3, 8.4, 8.5 +PHP_DEFAULT?= 8.3 # Possible values: rust, legacy . if empty(ARCH:Naarch64:Namd64:Narmv7:Ni386:Npowerpc64:Npowerpc64le:Npowerpc:Nriscv64) PYCRYPTOGRAPHY_DEFAULT?= rust . else PYCRYPTOGRAPHY_DEFAULT?= legacy . endif -# Possible values: 3.8, 3.9, 3.10, 3.11 -PYTHON_DEFAULT?= 3.9 +# Possible values: 3.9, 3.10, 3.11, 3.12 +PYTHON_DEFAULT?= 3.11 # Possible values: 2.7 PYTHON2_DEFAULT?= 2.7 -# Possible values: 3.1, 3.2, 3.3 -RUBY_DEFAULT?= 3.2 +# Possible values: 3.2, 3.3, 3.4, 3.5 +RUBY_DEFAULT?= 3.3 # Possible values: rust, rust-nightly RUST_DEFAULT?= rust -# Possible values: 4.16, 4.19 +# Possible values: 4.16, 4.19, 4.20 SAMBA_DEFAULT?= 4.16 -# Possible values: base, openssl, openssl111, openssl31, openssl32, libressl, libressl-devel +# When updating this, please also update the same list in ssl.mk and the checks +# for USES=ssl in qa.sh! +# Possible values: base, openssl, openssl111, openssl31, openssl32, openssl33, libressl, libressl-devel . if !defined(SSL_DEFAULT) # If no preference was set, check for an installed base version # but give an installed port preference over it. @@ -180,7 +184,7 @@ check-makevars:: # Make sure we have a default in the end SSL_DEFAULT?= base . endif -# Possible values: 8.5, 8.6, 8.7 +# Possible values: 8.6, 9.0 TCLTK_DEFAULT?= 8.6 # Possible values: 6, 7 VARNISH_DEFAULT?= 6 diff --git a/Mk/bsd.gcc.mk b/Mk/bsd.gcc.mk index aeac8ac04dc6..6a40b0d7bfa5 100644 --- a/Mk/bsd.gcc.mk +++ b/Mk/bsd.gcc.mk @@ -35,7 +35,7 @@ GCC_Include_MAINTAINER= gerald@FreeBSD.org # All GCC versions supported by this framework. # # When updating this, keep Mk/bsd.default-versions.mk in sync. -GCCVERSIONS= 4.8 9 10 11 12 13 14 +GCCVERSIONS= 11 12 13 14 15 16 # No configurable parts below this. #################################### # @@ -85,7 +85,7 @@ IGNORE= Unknown version of GCC specified (USE_GCC=${USE_GCC}) # A concrete version has been selected. Set proper ports dependencies, # CC, CXX, CPP, and flags. V:= ${_USE_GCC:S/.//} -. if ${V} == 14 +. if ${V} == 16 _GCC_PORT:= gcc${V}-devel . else _GCC_PORT:= gcc${V} @@ -95,10 +95,8 @@ CXX:= g++${V} CPP:= cpp${V} _GCC_RUNTIME:= ${LOCALBASE}/lib/gcc${V} . if ${PORTNAME} == gcc -# We don't want the rpath stuff while building GCC itself -# so we do not set the FLAGS as done in the else part. -# When building a GCC, we want the target libraries to be used and not the -# host GCC libraries. +# When building GCC itself, we want the target libraries to be used +# and not the host GCC libraries. . else CFLAGS+= -Wl,-rpath=${_GCC_RUNTIME} CXXFLAGS+= -Wl,-rpath=${_GCC_RUNTIME} diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk index 9e83aab4aec0..3e47b64ad63a 100644 --- a/Mk/bsd.gecko.mk +++ b/Mk/bsd.gecko.mk @@ -60,22 +60,24 @@ MOZILLA?= ${PORTNAME} MOZILLA_VER?= ${PORTVERSION} MOZILLA_BIN?= ${PORTNAME}-bin MOZILLA_EXEC_NAME?=${MOZILLA} -USES+= compiler:c++17-lang cpe gl gmake gnome iconv llvm:17,noexport localbase \ +USES+= compiler:c++17-lang cpe elfctl gl gmake gnome iconv \ + llvm:min=17,noexport localbase nodejs:24,build,env \ pkgconfig python:build desktop-file-utils CPE_VENDOR?=mozilla USE_GL= gl -USE_GNOME= cairo gdkpixbuf2 gtk30 +USE_GNOME= cairo gdkpixbuf gtk30 USE_XORG= x11 xcb xcomposite xdamage xext xfixes xrandr xrender xt xtst HAS_CONFIGURE= yes CONFIGURE_OUTSOURCE= yes LDFLAGS+= -Wl,--as-needed -Wl,--undefined-version BINARY_ALIAS+= python3=${PYTHON_CMD} +ELF_FEATURES+= +wxneeded:dist/bin/${MOZILLA} +wxneeded:dist/bin/${MOZILLA}-bin + BUNDLE_LIBS= yes -BUILD_DEPENDS+= rust-cbindgen>=0.26.0:devel/rust-cbindgen \ - ${RUST_DEFAULT}>=1.77.0:lang/${RUST_DEFAULT} \ - node:www/node +BUILD_DEPENDS+= rust-cbindgen>=0.28.0:devel/rust-cbindgen \ + ${RUST_DEFAULT}>=1.88.0:lang/${RUST_DEFAULT} LIB_DEPENDS+= libdrm.so:graphics/libdrm RUN_DEPENDS+= ${LOCALBASE}/lib/libpci.so:devel/libpci LIB_DEPENDS+= libepoll-shim.so:devel/libepoll-shim diff --git a/Mk/bsd.licenses.db.mk b/Mk/bsd.licenses.db.mk index 674c72d7eabc..e1cd8e8ccdc2 100644 --- a/Mk/bsd.licenses.db.mk +++ b/Mk/bsd.licenses.db.mk @@ -38,10 +38,13 @@ Licenses_db_Include_MAINTAINER= portmgr@FreeBSD.org # _LICENSE_LIST_GROUPS - List of defined license groups # -_LICENSE_LIST= BSL CDDL CPAL-1.0 ClArtistic EPL GFDL GMGPL \ +_LICENSE_LIST= BSL CDDL CPAL-1.0 ClArtistic EPL EU GFDL GMGPL \ ISCL MIT NCSA ODbL OFL10 OFL11 OWL OpenSSL PD PSFL PostgreSQL \ RUBY UNLICENSE WTFPL1 WTFPL ZLIB ZPL21 +# EU family +_LICENSE_LIST+= EUPL11 EUPL12 + # GNU family _LICENSE_LIST+= AGPLv3 GPLv1 GPLv2 GPLv3 GPLv3RLE LGPL20 LGPL21 LGPL3 _LICENSE_LIST+= AGPLv3+ GPLv1+ GPLv2+ GPLv3+ GPLv3RLE+ LGPL20+ LGPL21+ \ @@ -79,6 +82,8 @@ _LICENSE_LIST+= NONE # List of groups (only names must be present) +_LICENSE_NAME_EU= European Union Public Licence + _LICENSE_NAME_FSF= Free Software Foundation Approved _LICENSE_NAME_GPL= GPL Compatible @@ -269,6 +274,12 @@ _LICENSE_GROUPS_CPAL-1.0= FSF OSI _LICENSE_NAME_EPL= Eclipse Public License _LICENSE_GROUPS_EPL= FSF OSI +_LICENSE_NAME_EUPL11= European Union Public Licence version 1.1 +_LICENSE_GROUPS_EUPL11= EU OSI + +_LICENSE_NAME_EUPL12= European Union Public Licence version 1.2 +_LICENSE_GROUPS_EUPL12= EU OSI + _LICENSE_NAME_GFDL= GNU Free Documentation License _LICENSE_GROUPS_GFDL= FSF diff --git a/Mk/bsd.ocaml.mk b/Mk/bsd.ocaml.mk deleted file mode 100644 index 1dc29209e785..000000000000 --- a/Mk/bsd.ocaml.mk +++ /dev/null @@ -1,198 +0,0 @@ -# ex:ts=4 -# -# $MBSDlabs: portmk/bsd.ocaml.mk,v 1.18 2006/08/06 18:47:23 stas Exp $ -# -# bsd.ocaml.mk - Support for the Objective Caml language packages -# -# Author: Stanislav Sedov <ssedov@mbsd.msk.ru> -# -# Feel free to send any comments and suggestions to maintainer. -# -# Currently recognised variables are: -# -# USE_OCAML - Set if your port uses OCaml to build/install. -# NO_OCAML_BUILDDEPENDS - Don't add ocamlc to BUILD|EXTRACT|PATCH_DEPENDS. -# NO_OCAML_RUNDEPENDS - Don't add ocamlc to RUN_DEPENDS. -# USE_OCAML_FINDLIB - Set if your port uses ocamlfind to install -# packages. Package direcories will be -# automatically deleted. -# USE_OCAML_CAMLP4 - Set if your port uses camlp4 to build. -# USE_OCAML_TK - Set if you port needs ocaml-labltk. -# NO_OCAMLTK_BUILDDEPENDS - Don't add labltk to BUILD|EXTRACT|PATCH_DEPENDS. -# NO_OCAMLTK_RUNDEPENDS - Don't add labltk to RUN_DEPENDS. -# USE_OCAML_LDCONFIG - Set if your port installs shared libraries -# into ocaml site-lib dir. OCaml ld.conf file -# will be automatically processed. -# USE_OCAMLFIND_PLIST - Add contents of findlib target directories -# automatically. -# USE_OCAML_WASH - Set if your port wants to automatically -# purge shared Ocaml dirs on uninstall. It's -# useful when installing to non-standard PREFIX -# OCAML_PKGDIRS - Directories under site-lib to be processed -# if USE_OCAML_FINDLIB specified. -# Default: ${PORTNAME} -# OCAML_LDLIBS - Directories under PREFIX to be automatically -# added/removed from ld.conf -# Default: ${OCAML_SITELIBDIR}/${PORTNAME} - -.if !defined(OCAML_include) - -OCAML_MAINTAINER= ports@FreeBSD.org -OCAML_include= bsd.ocaml.mk - -# -# OCaml programs location -# -OCAMLC?= ${LOCALBASE}/bin/ocamlc -OCAMLC_OPT?= ${LOCALBASE}/bin/ocamlc.opt -OCAMLCP?= ${LOCALBASE}/bin/ocamlcp -OCAMLFIND?= ${LOCALBASE}/bin/ocamlfind -CAMLP4?= ${LOCALBASE}/bin/camlp4 -OCAMLTK?= ${LOCALBASE}/bin/labltk - -# -# OCaml library directory -# -OCAML_LIBDIR?= lib/ocaml - -# -# Where to install site libraries -# -OCAML_SITELIBDIR?= ${OCAML_LIBDIR}/site-lib - -# -# OCaml compiler port dependency -# -OCAMLC_PORT?= lang/ocaml -OCAMLC_DEPEND?= ${OCAMLC}:${OCAMLC_PORT} - -# -# OCaml package manager port dependency -# -OCAMLFIND_PORT?= devel/ocaml-findlib -OCAMLFIND_DEPEND?= ${OCAMLFIND}:${OCAMLFIND_PORT} - -# -# OCaml camlp4 port dependency -# -CAMLP4_PORT?= devel/ocaml-camlp4 -CAMLP4_DEPEND?= ${CAMLP4}:${CAMLP4_PORT} - -# -# OCaml TK bindings dependency -# -OCAMLTK_PORT?= x11-toolkits/ocaml-labltk -OCAMLTK_DEPENDS?= ${OCAMLTK}:${OCAMLTK_PORT} - -# -# Common OCaml examples and documents location -# -OCAML_DOCSDIR= ${PREFIX}/share/doc/ocaml -OCAML_EXAMPLESDIR= ${PREFIX}/share/examples/ocaml - -# -# Location of OCaml ld.conf file -# -OCAML_LDCONF?= ${OCAML_LIBDIR}/ld.conf - -# ocaml-findlib-1.4.1_1 wants to edit our ld.conf file, which does not -# work well with staging. -. if defined(USE_OCAML_LDCONFIG) -. if !target(ocaml-ldconfig) -OCAMLFIND_LDCONF?= /dev/null -. endif -. endif - -OCAMLFIND_DESTDIR?= ${PREFIX}/${OCAML_SITELIBDIR} -OCAMLFIND_LDCONF?= ${PREFIX}/${OCAML_LDCONF} - -. if defined(USE_OCAML) -. if !defined(NO_OCAML_BUILDDEPENDS) -EXTRACT_DEPENDS+= ${OCAMLC_DEPEND} -PATCH_DEPENDS+= ${OCAMLC_DEPEND} -BUILD_DEPENDS+= ${OCAMLC_DEPEND} -. endif -. if !defined(NO_OCAML_RUNDEPENDS) -RUN_DEPENDS+= ${OCAMLC_DEPEND} -. endif -PLIST_SUB+= OCAML_SITELIBDIR="${OCAML_SITELIBDIR}" -. endif - -. if defined(USE_OCAML_FINDLIB) -# -# We'll additionally add ocamlfind to RUN_DEPENDS, since -# if the port requires ocamlfind to install - it requires -# some ocaml libraries and these libraries RUN_DEPENDS on -# ocamlfind -# -BUILD_DEPENDS+= ${OCAMLFIND_DEPEND} -RUN_DEPENDS+= ${OCAMLFIND_DEPEND} -MAKE_ENV+= OCAMLFIND_DESTDIR="${STAGEDIR}${OCAMLFIND_DESTDIR}" \ - OCAMLFIND_LDCONF="${OCAMLFIND_LDCONF}" - -# -# Directories under site-lib to process automatically -# -OCAML_PKGDIRS?= ${PORTNAME} -_USES_install+= 735:ocaml-findlib -. if !target(ocaml-findlib) -ocaml-findlib: -. for DIR in ${OCAML_PKGDIRS} -. if defined(USE_OCAMLFIND_PLIST) - @${FIND} ${STAGEDIR}${PREFIX}/${OCAML_SITELIBDIR}/${DIR}/ -type f -print | ${SED} -e \ - 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST} -. endif - @${ECHO_CMD} "@postunexec ${OCAMLFIND} remove ${DIR} 2>/dev/null" \ - >> ${TMPPLIST} -. endfor -. endif -. endif - -. if defined(USE_OCAML_CAMLP4) -BUILD_DEPENDS+= ${CAMLP4_DEPEND} -. endif - -. if defined(USE_OCAML_TK) -. if !defined(NO_OCAMLTK_BUILDDEPENDS) -EXTRACT_DEPENDS+= ${OCAMLTK_DEPENDS} -PATCH_DEPENDS+= ${OCAMLTK_DEPENDS} -BUILD_DEPENDS+= ${OCAMLTK_DEPENDS} -. endif -. if !defined(NO_OCAMLTK_RUNDEPENDS) -RUN_DEPENDS+= ${OCAMLTK_DEPENDS} -. endif -. endif - -. if defined(USE_OCAML_LDCONFIG) -# -# Directories under PREFIX for appending to ld.conf -# -OCAML_LDLIBS?= ${OCAML_SITELIBDIR}/${PORTNAME} -_USES_install+= 740:ocaml-ldconfig -. if !target(ocaml-ldconfig) -ocaml-ldconfig: -. for LIB in ${OCAML_LDLIBS} - @${ECHO_CMD} "@postexec ${ECHO_CMD} "%D/${LIB}" >> %D/${OCAML_LDCONF}" \ - >> ${TMPPLIST} - @${ECHO_CMD} "@postunexec ${SED} -i \"\" -e '/${LIB:S#/#\/#g}/d' %D/${OCAML_LDCONF}" >> ${TMPPLIST} -. endfor -. endif -. endif - -. if defined(USE_OCAML_WASH) -PLIST_FILES+= "@rmempty ${OCAML_LDCONF}" -. endif - -.endif #!defined(OCAML_include) - -.if defined(_POSTMKINCLUDED) - -. if defined(USE_OCAML_FINDLIB) - -pre-install: ${STAGEDIR}${OCAMLFIND_DESTDIR} -${STAGEDIR}${OCAMLFIND_DESTDIR}: - @${MKDIR} ${.TARGET} - -. endif - -.endif # _POSTMKINCLUDED diff --git a/Mk/bsd.options.desc.mk b/Mk/bsd.options.desc.mk index f3bbd90e49d7..0460f2782076 100644 --- a/Mk/bsd.options.desc.mk +++ b/Mk/bsd.options.desc.mk @@ -82,6 +82,7 @@ DTRACE_DESC?= Build with DTrace probes DV_DESC?= Quasar DV video codec support (libdv) DVDCSS_DESC?= Encrypted DVD support via libdvdcss ECW_DESC?= ECW image format support +ENCHANT_DESC?= Spell checking support via Enchant ESPEAK_DESC?= eSpeak speech synthesizer support EXAMPLES_DESC?= Build and/or install examples EXIV2_DESC?= EXIF and IPTC metadata support via exiv2 @@ -161,8 +162,8 @@ H323_DESC?= H.323 codec support HAL_DESC?= HAL (Hardware Abstraction Layer) support HDF5_DESC?= HDF-5 data format support HEIF_DESC?= ISO/IEC 23008-12:2017 HEIF file format support -HPACK_DESC?= Header Compression for HTTP/2.0 support -HTTP2_DESC?= HTTP protocol version 2.0 support +HPACK_DESC?= Header Compression for HTTP/2 support +HTTP2_DESC?= HTTP/2 protocol support HTTPD_DESC?= httpd output streaming support HTTPS_DESC?= HTTPS protocol support HUNSPELL_DESC?= Spell checking support via Hunspell @@ -192,7 +193,7 @@ JPEG2000_DESC?= JPEG 2000 support JSON_C_DESC?= JSON file/format parser support via json-c JSON_DESC?= JSON file/format/parser support JXL_DESC?= JPEG XL image format via libjxl -KDE4_DESC?= KDE 4 desktop environment support +KDE_DESC?= KDE desktop environment support KERBEROS_DESC?= Kerberos support KERBEROS4_DESC?= Kerberos 4 support KERBEROS5_DESC?= Kerberos 5 support @@ -350,8 +351,7 @@ MP4_DESC?= MP4 media format support MPEG2_DESC?= MPEG-2 video support via libmpeg2 MPG123_DESC?= MP3 decoding support via mpg123 MPI_DESC?= MPI (Message Passing Interface) support -MPICH_DESC?= Parallel processing support via MPICH 3 -MPICH2_DESC?= Parallel processing support via MPICH 2 +MPICH_DESC?= Parallel processing support via MPICH MPLAYER_DESC?= MPlayer media player support MPLS_DESC?= MPLS support MPP_DESC?= Musepack audio format support @@ -389,7 +389,7 @@ OPENCL_DESC?= Heterogeneous computing via OpenCL OPENCV_DESC?= Computer Vision support via OpenCV OPENEXR_DESC?= HDR image format support via OpenEXR OPENGL_DESC?= 2D/3D rendering support via OpenGL -OPENJPEG_DESC?= Enhanced JPEG graphics support +OPENJPEG_DESC?= JPEG 2000 support via OpenJPEG OPENMP_DESC?= Parallel processing support via OpenMP OPENMPI_DESC?= Parallel processing support via Open MPI OPENRAW_DESC?= RAW camera format support @@ -442,8 +442,6 @@ READLINE_DESC?= Command line editing via libreadline REDIS_DESC?= Redis key-value store database support REGEX_DESC?= Regular expression support RESIN3_DESC?= Resin 3.x support -RTMP_DESC?= RTMP protocol support via librtmp -RTMPDUMP_DESC?= RTMP protocol support via rtmpdump RTSP_DESC?= Real Time Streaming Protocol (RTSP) support RUBY_DESC?= Ruby bindings or support SAMPLERATE_DESC?= Sample rate conversion support @@ -501,7 +499,6 @@ TIFF_DESC?= TIFF image format support TINYXML_DESC?= XML parser support via TinyXML TK_DESC?= Tk GUI toolkit support TLS_DESC?= Secure network connection support via TLS -TOMCAT85_DESC?= Use Tomcat 8.5.x TOMCAT9_DESC?= Use Tomcat 9.0.x TOMCAT101_DESC?= Use Tomcat 10.1.x TOML_DESC?= TOML format or parser support @@ -533,10 +530,12 @@ VST3_DESC?= VST3 audio plugins support WAV_DESC?= WAV audio format support WAVPACK_DESC?= WavPack lossless audio format support WAYLAND_DESC?= Wayland (graphics) support +WEBENGINE_DESC?= Webpage renderer support via WebEngine WEBGL_DESC?= WebGL 2D/3D graphics rendering support WEBKIT_DESC?= WebKit webpage renderer support WEBP_DESC?= WebP image format support WEBSERVER_DESC?= Build and/or install internal web server +WEBSOCKET_DESC?= WebSocket protocol support WEBUI_DESC?= Build and/or install web user interface WMA_DESC?= Windows Media Audio audio format support WMF_DESC?= Windows Metafile image format support diff --git a/Mk/bsd.options.mk b/Mk/bsd.options.mk index 964b817ff706..3b4b2dd4d300 100644 --- a/Mk/bsd.options.mk +++ b/Mk/bsd.options.mk @@ -472,6 +472,7 @@ SUBPACKAGES+= ${${opt}_SUBPACKAGES_OFF} . endif . endif . endfor + . for opt in ${_REALLY_ALL_POSSIBLE_OPTIONS} # PLIST_SUB PLIST_SUB?= diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index 8e13aa4f9b24..0aa79aed7ed0 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -42,7 +42,7 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org # OSREL - The release version of the operating system as a text # string (e.g., "12.4"). # OSVERSION - The operating system version as a comparable integer; -# the value of __FreeBSD_version (e.g., 1302000). +# the value of __FreeBSD_version (e.g., 1501000). # # This is the beginning of the list of all variables that need to be # defined in a port, listed in order that they should be included @@ -357,18 +357,6 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org ## # LDFLAGS_${ARCH} Append the ldflags to LDFLAGS only on the specified architecture ## -# USE_OPENLDAP - If set, this port uses the OpenLDAP libraries. -# Implies: WANT_OPENLDAP_VER?=24 -# WANT_OPENLDAP_VER -# - Legal values are: 24 -# If set to an unknown value, the port is marked BROKEN. -## -# USE_JAVA - If set, this port relies on the Java language. -# Implies inclusion of bsd.java.mk. (Also see -# that file for more information on USE_JAVA_*). -# USE_OCAML - If set, this port relies on the OCaml language. -# Implies inclusion of bsd.ocaml.mk. (Also see -# that file for more information on USE_OCAML*). ## # USE_GECKO - If set, this port uses the Gecko/Mozilla product. # See bsd.gecko.mk for more details. @@ -385,9 +373,6 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org # Implies NO_LICENSES_INSTALL=yes, NO_MTREE=yes, and causes # Linux ldconfig to be used when USE_LDCONFIG is defined. ## -# USE_TEX - A list of the TeX dependencies the port has. -# -## # USE_RC_SUBR - If set, the ports startup/shutdown script uses the common # routines found in /etc/rc.subr. # If this is set to a list of files, these files will be @@ -1015,13 +1000,14 @@ LC_ALL= C # These need to be absolute since we don't know how deep in the ports # tree we are and thus can't go relative. They can, of course, be overridden # by individual Makefiles or local system make configuration. -_LIST_OF_WITH_FEATURES= bind_now debug debuginfo lto pie relro sanitize ssp testing +_LIST_OF_WITH_FEATURES= bind_now debug debuginfo fortify lto pie relro \ + sanitize ssp stack_autoinit testing zeroregs _DEFAULT_WITH_FEATURES= ssp PORTSDIR?= /usr/ports LOCALBASE?= /usr/local LINUXBASE?= /compat/linux DISTDIR?= ${PORTSDIR}/distfiles -_DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} +_DISTDIR?= ${DISTDIR}${DIST_SUBDIR:D/${DIST_SUBDIR}} INDEXDIR?= ${PORTSDIR} SRC_BASE?= /usr/src USESDIR?= ${PORTSDIR}/Mk/Uses @@ -1179,7 +1165,7 @@ OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < ${SRC . endif _EXPORTED_VARS+= OSVERSION -. if ${OPSYS} == FreeBSD && (${OSVERSION} < 1302000 ) +. if ${OPSYS} == FreeBSD && (${OSVERSION} < 1305000 || (${OSVERSION} >= 1400000 && ${OSVERSION} < 1402000)) _UNSUPPORTED_SYSTEM_MESSAGE= Ports Collection support for your ${OPSYS} version has ended, and no ports\ are guaranteed to build on this system. Please upgrade to a supported release. . if defined(ALLOW_UNSUPPORTED_SYSTEM) @@ -1217,15 +1203,7 @@ _OSVERSION_MAJOR= ${OSVERSION:C/([0-9]?[0-9])([0-9][0-9])[0-9]{3}/\1/} . if !defined(_PKG_VERSION) _PKG_VERSION!= ${PKG_BIN} -v . endif -# XXX hack for smooth transition towards pkg 1.17 -_PKG_BEFORE_PKGEXT!= ${PKG_BIN} version -t ${_PKG_VERSION:C/-.*//g} 1.17.0 -. if ${_PKG_BEFORE_PKGEXT} == "<" -_PKG_TRANSITIONING_TO_NEW_EXT= yes -_EXPORTED_VARS+= _PKG_TRANSITIONING_TO_NEW_EXT -WARNING+= "It is strongly recommended to upgrade to a newer version of pkg first" -. endif -# XXX End of hack -_PKG_STATUS!= ${PKG_BIN} version -t ${_PKG_VERSION:C/-.*//g} ${MINIMAL_PKG_VERSION} +_PKG_STATUS!= ${PKG_VERSION} -t ${_PKG_VERSION:C/-.*//g} ${MINIMAL_PKG_VERSION} . if ${_PKG_STATUS} == "<" IGNORE= pkg(8) must be version ${MINIMAL_PKG_VERSION} or greater, but you have ${_PKG_VERSION}. You must upgrade the ${PKG_ORIGIN} port first . endif @@ -1386,7 +1364,7 @@ PORTEPOCH?= 0 _SUF2= ,${PORTEPOCH} . endif -PKGVERSION= ${PORTVERSION:C/[-_,]/./g}${_SUF1}${_SUF2} +PKGVERSION= ${PORTVERSION:C/[-_,]/./g}${_OS_SUFX}${_SUF1}${_SUF2} PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PKGVERSION} DISTVERSIONFULL= ${DISTVERSIONPREFIX}${DISTVERSION:C/:(.)/\1/g}${DISTVERSIONSUFFIX} DISTNAME?= ${PORTNAME}-${DISTVERSIONFULL} @@ -1414,14 +1392,6 @@ PKGCOMPATDIR?= ${LOCALBASE}/lib/compat/pkg .sinclude "${odir}/Mk/bsd.overlay.mk" . endfor -. if defined(USE_JAVA) -.include "${PORTSDIR}/Mk/bsd.java.mk" -. endif - -. if defined(USE_OCAML) -.include "${PORTSDIR}/Mk/bsd.ocaml.mk" -. endif - . if defined(USE_APACHE_BUILD) USES+= apache:build,${USE_APACHE_BUILD:C/2([0-9])/2.\1/g} . elif defined(USE_APACHE_RUN) @@ -1615,8 +1585,12 @@ PKG_NOTES+= flavor PKG_NOTE_flavor= ${FLAVOR} . endif +# GIT_CEILING_DIRECTORIES prevents ports that try to find their version +# using git from finding the ports tree's git repository. WRK_ENV+= HOME=${WRKDIR} \ + MACHINE_ARCH=${MACHINE_ARCH} \ PWD="$${PWD}" \ + GIT_CEILING_DIRECTORIES=${WRKDIR} \ __MAKE_CONF=${NONEXISTENT} . for e in OSVERSION PATH TERM TMPDIR \ UNAME_b UNAME_i UNAME_K UNAME_m UNAME_n \ @@ -1871,15 +1845,7 @@ PKG_DEPENDS+= ${LOCALBASE}/sbin/pkg:${PKG_ORIGIN} . if defined(LLD_UNSAFE) && ${/usr/bin/ld:L:tA} == /usr/bin/ld.lld LDFLAGS+= -fuse-ld=bfd BINARY_ALIAS+= ld=${LD} -. if !defined(USE_BINUTILS) -. if exists(/usr/bin/ld.bfd) -LD= /usr/bin/ld.bfd -CONFIGURE_ENV+= LD=${LD} -MAKE_ENV+= LD=${LD} -. else USE_BINUTILS= yes -. endif -. endif . endif . if defined(USE_BINUTILS) && !defined(DISABLE_BINUTILS) @@ -1909,6 +1875,23 @@ USE_LDCONFIG= ${PREFIX}/lib IGNORE= has USE_LDCONFIG32 set to yes, which is not correct . endif +_ALL_LIB_DIRS= ${LIB_DIRS} ${USE_LDCONFIG} +PKG_ENV+= SHLIB_PROVIDE_PATHS_NATIVE="${_ALL_LIB_DIRS:O:u:ts,}" +. if defined(HAVE_COMPAT_IA32_KERN) +_ALL_LIB_DIRS_32= /usr/lib32 ${LOCALBASE}/lib32 ${USE_LDCONFIG32} +PKG_ENV+= SHLIB_PROVIDE_PATHS_COMPAT_32="${_ALL_LIB_DIRS_32:O:u:ts,}" +. endif +. if ${LINUX_DEFAULT} == c7 || ${LINUX_DEFAULT} == rl9 +. if ${ARCH} == i386 +PKG_ENV+= SHLIB_PROVIDE_PATHS_COMPAT_LINUX="${LINUXBASE}/usr/lib" +. else +PKG_ENV+= SHLIB_PROVIDE_PATHS_COMPAT_LINUX="${LINUXBASE}/usr/lib64" +PKG_ENV+= SHLIB_PROVIDE_PATHS_COMPAT_LINUX_32="${LINUXBASE}/usr/lib" +. endif +. else +. warning "Unknown Linux distribution ${LINUX_DEFAULT}, SHLIB_PROVIDE_PATHS_COMPAT_LINUX will not be set!" +. endif + . if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) . if defined(USE_LINUX_PREFIX) PLIST_FILES+= "@ldconfig-linux ${LINUXBASE}" @@ -1917,6 +1900,19 @@ PLIST_FILES+= "@ldconfig" . endif . endif +. if defined(NO_SHLIB_REQUIRES_GLOB) +PKG_ENV+= SHLIB_REQUIRE_IGNORE_GLOB="${NO_SHLIB_REQUIRES_GLOB:ts,}" +. endif +. if defined(NO_SHLIB_REQUIRES_REGEX) +PKG_ENV+= SHLIB_REQUIRE_IGNORE_REGEX="${NO_SHLIB_REQUIRES_REGEX:ts,}" +. endif +. if defined(NO_SHLIB_PROVIDES_GLOB) +PKG_ENV+= SHLIB_PROVIDE_IGNORE_GLOB="${NO_SHLIB_PROVIDES_GLOB:ts,}" +. endif +. if defined(NO_SHLIB_PROVIDES_REGEX) +PKG_ENV+= SHLIB_PROVIDE_IGNORE_REGEX="${NO_SHLIB_PROVIDES_REGEX:ts,}" +. endif + PKG_IGNORE_DEPENDS?= 'this_port_does_not_exist' . if defined(_DESTDIR_VIA_ENV) @@ -1945,14 +1941,6 @@ PKGPOSTDEINSTALL?= ${PKGDIR}/pkg-post-deinstall .sinclude "${odir}/Mk/bsd.overlay.mk" . endfor -. if defined(USE_JAVA) -.include "${PORTSDIR}/Mk/bsd.java.mk" -. endif - -. if defined(USE_OCAML) -.include "${PORTSDIR}/Mk/bsd.ocaml.mk" -. endif - . if defined(USE_WX) || defined(USE_WX_NOT) .include "${PORTSDIR}/Mk/bsd.wx.mk" . endif @@ -2057,6 +2045,7 @@ CFLAGS+= -fno-strict-aliasing . for lang in C CXX . if defined(USE_${lang}STD) ${lang}FLAGS:= ${${lang}FLAGS:N-std=*} -std=${USE_${lang}STD} +MAKE_ENV+= ${lang}STD=${USE_${lang}STD} . endif ${lang}FLAGS+= ${${lang}FLAGS_${ARCH}} @@ -2211,20 +2200,11 @@ TMPPLIST?= ${WRKDIR}/.PLIST.mktmp _PLIST?= ${WRKDIR}/.PLIST # backward compatibility for users -. if defined(_PKG_TRANSITIONING_TO_NEW_EXT) -. if defined(PKG_NOCOMPRESS) -PKG_SUFX?= .tar -. else -PKG_SUFX?= .txz -. endif -PKG_COMPRESSION_FORMAT?= ${PKG_SUFX:S/.//} -. else -. if defined(PKG_SUFX) +. if defined(PKG_SUFX) PKG_COMPRESSION_FORMAT?= ${PKG_SUFX:S/.//} WARNING+= "PKG_SUFX is defined, it should be replaced with PKG_COMPRESSION_FORMAT" -. endif -PKG_SUFX= .pkg . endif +PKG_SUFX= .pkg . if defined(PKG_NOCOMPRESS) PKG_COMPRESSION_FORMAT?= tar . else @@ -2589,7 +2569,8 @@ check-categories: VALID_CATEGORIES+= accessibility afterstep arabic archivers astro audio \ benchmarks biology budgie cad chinese comms converters \ databases deskutils devel dns docs \ - editors education elisp emulators enlightenment finance french ftp \ + editors education elisp emulators enlightenment \ + filesystems finance french ftp \ games geography german gnome gnustep graphics \ hamradio haskell hebrew hungarian irc japanese java \ kde ${_KDE_CATEGORIES_SUPPORTED} kld korean \ @@ -3104,9 +3085,8 @@ check-vulnerable: ${SH} ${SCRIPTSDIR}/check-vulnerable.sh . endif -# Quote simply quote all variables, except FETCH_ENV, some ports are creative -# with it, and it needs to be quoted twice to pass through the echo/eval in -# do-fetch. +# Quote all variables except FETCH_ENV. Because some ports are creative, +# quoting twice is necessary to pass through the echo/eval in do-fetch. _DO_FETCH_ENV= \ dp_DISABLE_SIZE='${DISABLE_SIZE}' \ dp_DISTDIR='${_DISTDIR}' \ @@ -3459,18 +3439,6 @@ _EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTFILE} ${PKGLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY} ${INSTALL} -l rs ${PKGFILE} ${PKGLATESTFILE} -. if !defined(_PKG_TRANSITIONING_TO_NEW_EXT) && ${PKG_COMPRESSION_FORMAT} == txz -_EXTRA_PACKAGE_TARGET_DEP+= ${PKGOLDLATESTFILE} ${PKGOLDSIGFILE} - -${PKGOLDLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY} - ${INSTALL} -l rs ${PKGFILE} ${PKGOLDLATESTFILE} - -# Temporary workaround to be deleted once every supported version of FreeBSD -# have a bootstrap which handles the pkg extension. - -${PKGOLDSIGFILE}: ${PKGLATESTREPOSITORY} - ${INSTALL} -l rs pkg.pkg.sig ${PKGOLDSIGFILE} -. endif . endif . endif @@ -3632,10 +3600,6 @@ install-ldconfig-file: fixup-lib-pkgconfig: @if [ -d ${STAGEDIR}${PREFIX}/lib/pkgconfig ]; then \ if [ -z "$$(${FIND} ${STAGEDIR}${PREFIX}/lib/pkgconfig -maxdepth 0 -empty)" ]; then \ - if [ -n "${DEVELOPER:Dyes}" ]; then \ - ${ECHO_MSG} "===> File(s) found in lib/pkgconfig while correct path is libdata/pkgconfig"; \ - ${ECHO_MSG} " Applying fix but consider using USES= pathfix or adjust install path"; \ - fi; \ ${MKDIR} ${STAGEDIR}${PREFIX}/libdata/pkgconfig; \ ${MV} ${STAGEDIR}${PREFIX}/lib/pkgconfig/* ${STAGEDIR}${PREFIX}/libdata/pkgconfig; \ fi; \ @@ -4412,6 +4376,7 @@ create-manifest.${sp}: dp_PREFIX='${PREFIX}' \ dp_USERS='${USERS:u:S/$/,/}' \ dp_WWW='${WWW}' \ + dp_VITAL='${VITAL${_SP.${sp}}}' \ ${PKG_NOTES_ENV.${sp}} \ ${SH} ${SCRIPTSDIR}/create-manifest.sh . endfor @@ -5408,6 +5373,12 @@ show-dev-errors: . endif . endif #DEVELOPER +. if defined(HAS_SYMBOL_VERSION) +stage-sanity: check_has_symbol_version +check_has_symbol_version: + ${SH} ${SCRIPTSDIR}/check_have_symbols.sh ${STAGEDIR} ${HAS_SYMBOL_VERSION} +. endif # HAS_SYMBOL_VERSION + ${_PORTS_DIRECTORIES}: @${MKDIR} ${.TARGET} @@ -5477,8 +5448,8 @@ _STAGE_SEQ= 050:stage-message 100:stage-dir 150:run-depends \ 860:install-rc-script 870:install-ldconfig-file \ 880:install-license 890:install-desktop-entries \ 900:add-plist-info 910:add-plist-docs 920:add-plist-examples \ - 930:add-plist-data 940:add-plist-post ${POST_PLIST:C/^/990:/} \ - ${_OPTIONS_install} ${_USES_install} \ + 930:add-plist-data 940:add-plist-post 994:stage-sanity \ + ${_OPTIONS_install} ${_USES_install} ${POST_PLIST:C/^/990:/} \ ${_OPTIONS_stage} ${_USES_stage} ${_FEATURES_stage} . if defined(DEVELOPER) _STAGE_SEQ+= 995:stage-qa diff --git a/Mk/bsd.sanity.mk b/Mk/bsd.sanity.mk index 557b72a30509..18c49a2ea5aa 100644 --- a/Mk/bsd.sanity.mk +++ b/Mk/bsd.sanity.mk @@ -210,7 +210,11 @@ SANITY_UNSUPPORTED= USE_OPENAL USE_FAM USE_MAKESELF USE_ZIP USE_LHA USE_CMAKE \ XORG_CAT CARGO_USE_GITHUB CARGO_USE_GITLAB CARGO_GIT_SUBDIR \ USE_RUBY USE_RUBY_EXTCONF USE_RUBY_SETUP RUBY_NO_BUILD_DEPENDS \ RUBY_NO_RUN_DEPENDS USE_APACHE USE_APACHE_BUILD USE_APACHE_RUN \ - USE_OPENLDAP WANT_OPENLDAP_VER + USE_OPENLDAP WANT_OPENLDAP_VER USE_OCAML USE_OCAML_CAMLP4 USE_OCAML_WASH \ + USE_OCAML_TK NO_OCAMLTK_BUILDDEPENDS NO_OCAMLTK_RUNDEPENDS \ + USE_OCAMLFIND_PLIST USE_OCAML_FINDLIB USE_OCAML_LDCONFIG \ + NO_OCAML_BUILDDEPENDS NO_OCAML_RUNDEPENDS USE_JAVA JAVA_BUILD \ + JAVA_EXTRACT USE_ANT JAVA_RUN SANITY_DEPRECATED= MLINKS \ USE_MYSQL WANT_MYSQL_VER \ PYDISTUTILS_INSTALLNOSINGLE @@ -307,6 +311,22 @@ USE_RUBY_EXTCONF_ALT= USES=ruby:extconf USE_RUBY_SETUP_ALT= USES=ruby:setup RUBY_NO_BUILD_DEPENDS_ALT= USES=ruby:run RUBY_NO_RUN_DEPENDS_ALT= USES=ruby:build +USE_OCAMLFIND_PLIST_ALT= USES=ocaml:findplist +USE_OCAML_ALT= USES=ocaml +USE_OCAML_CAMLP4_ALT= USES=ocaml:camlp4 +USE_OCAML_FINDLIB_ALT= USES=ocaml:findlib +USE_OCAML_LDCONFIG_ALT= USES=ocaml:ldconfig +USE_OCAML_TK_ALT= USES=ocaml:tk +USE_OCAML_WASH_ALT= USES=ocaml:wash +NO_OCAMLTK_BUILDDEPENDS_ALT= USES=ocaml:tkrun +NO_OCAMLTK_RUNDEPENDS_ALT= USES=ocaml:tkbuild +NO_OCAML_BUILDDEPENDS_ALT= USES=ocaml:run +NO_OCAML_RUNDEPENDS_ALT= USES=ocaml:build +USE_ANT_ALT= USES=java:ant +USE_JAVA_ALT= USES=java +JAVA_EXTRACT_ALT= USES=java:extract +JAVA_BUILD_ALT= USES=java:build +JAVA_RUN_ALT= USES=java:run .for a in ${SANITY_DEPRECATED} . if defined(${a}) diff --git a/Mk/bsd.sites.mk b/Mk/bsd.sites.mk index 25019117c79a..0adc034f5ef8 100644 --- a/Mk/bsd.sites.mk +++ b/Mk/bsd.sites.mk @@ -40,8 +40,7 @@ MASTER_SITE_PORTS_JP+= \ .if !defined(IGNORE_MASTER_SITE_AFTERSTEP) MASTER_SITE_AFTERSTEP+= \ - ftp://ftp.afterstep.org/%SUBDIR%/ \ - ftp://ftp.kddlabs.co.jp/X11/AfterStep/%SUBDIR%/ + ftp://ftp.afterstep.org/%SUBDIR%/ .endif .if !defined(IGNORE_MASTER_SITE_APACHE) @@ -51,7 +50,6 @@ MASTER_SITE_APACHE+= \ https://mirror.its.dal.ca/apache/%SUBDIR%/ \ http://mirror.cogentco.com/pub/apache/%SUBDIR%/ \ http://mirror.navercorp.com/apache/%SUBDIR%/ \ - http://ftp.kddi-research.jp/infosystems/apache/%SUBDIR%/ \ http://miroir.univ-lorraine.fr/apache/%SUBDIR%/ .endif @@ -105,8 +103,7 @@ MASTER_SITE_CRAN+= \ https://cran.csiro.au/%SUBDIR%/ \ https://mirrors.tuna.tsinghua.edu.cn/CRAN/%SUBDIR%/ \ https://mirror.las.iastate.edu/CRAN/%SUBDIR%/ \ - https://cran.ma.imperial.ac.uk/%SUBDIR%/ \ - https://cran.ism.ac.jp/%SUBDIR%/ + https://cran.ma.imperial.ac.uk/%SUBDIR%/ .endif .if !defined(IGNORE_MASTER_SITE_CRAN_ARCHIVE) @@ -151,18 +148,37 @@ MASTER_SITE_EXIM+= \ .if !defined(IGNORE_MASTER_SITE_CENTOS_LINUX) MASTER_SITE_CENTOS_LINUX+= \ - http://mirror.centos.org/%SUBDIR%/:DEFAULT,aarch64,amd64,i386 \ http://vault.centos.org/%SUBDIR%/:DEFAULT,aarch64,amd64,i386,SOURCE .endif +.if !defined(IGNORE_MASTER_SITE_ROCKY_LINUX) +MASTER_SITE_ROCKY_LINUX+= \ + https://dl.rockylinux.org/pub/rocky/%SUBDIR%/:DEFAULT,aarch64,amd64,SOURCE \ + https://dl.rockylinux.org/vault/rocky/%SUBDIR%/:DEFAULT,aarch64,amd64,SOURCE +.endif + .if !defined(IGNORE_MASTER_SITE_EPEL7) MASTER_SITE_EPEL7+= \ - https://dl.fedoraproject.org/pub/epel/7/aarch64/Packages/%SUBDIR%/:DEFAULT,aarch64 \ - https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/%SUBDIR%/:DEFAULT,amd64 \ - https://dl.fedoraproject.org/pub/epel/7/SRPMS/Packages/%SUBDIR%/:SOURCE \ - http://dl.fedoraproject.org/pub/epel/7/aarch64/Packages/%SUBDIR%/:DEFAULT,aarch64 \ - http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/%SUBDIR%/:DEFAULT,amd64 \ - http://dl.fedoraproject.org/pub/epel/7/SRPMS/Packages/%SUBDIR%/:SOURCE + https://archives.fedoraproject.org/pub/archive/epel/7/aarch64/Packages/%SUBDIR%/:DEFAULT,aarch64 \ + https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/%SUBDIR%/:DEFAULT,amd64 \ + https://archives.fedoraproject.org/pub/archive/epel/7/SRPMS/Packages/%SUBDIR%/:SOURCE \ + http://archives.fedoraproject.org/pub/archive/epel/7/aarch64/Packages/%SUBDIR%/:DEFAULT,aarch64 \ + http://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/%SUBDIR%/:DEFAULT,amd64 \ + http://archives.fedoraproject.org/pub/archive/epel/7/SRPMS/Packages/%SUBDIR%/:SOURCE +.endif + +.if !defined(IGNORE_MASTER_SITE_EPEL9) +MASTER_SITE_EPEL9+= \ + https://dl.fedoraproject.org/pub/epel/9/Everything/aarch64/Packages/%SUBDIR%/:DEFAULT,aarch64 \ + https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/%SUBDIR%/:DEFAULT,amd64 \ + https://dl.fedoraproject.org/pub/epel/9/Everything/source/tree/Packages/%SUBDIR%/:SOURCE +.endif + +.if !defined(IGNORE_MASTER_SITE_RPMFUSION9) +MASTER_SITE_RPMFUSION9+= \ + https://ftp.icm.edu.pl/pub/Linux/dist/rpmfusion/free/el/updates/9/aarch64/%SUBDIR%/:DEFAULT,aarch64 \ + https://ftp.icm.edu.pl/pub/Linux/dist/rpmfusion/free/el/updates/9/x86_64/%SUBDIR%/:DEFAULT,amd64 \ + https://ftp.icm.edu.pl/pub/Linux/dist/rpmfusion/free/el/updates/9/SRPMS/%SUBDIR%/:DEFAULT,SOURCE .endif .if !defined(IGNORE_MASTER_SITE_FARSIGHT) @@ -281,7 +297,7 @@ GH_SUBDIR+= ${GH_TUPLE:C@^([^:]*):([^:]*):([^:]*)((:[^:/]*)?)((/.*)?)@\6\4@:M/*: MASTER_SITE_GITHUB+= https://codeload.github.com/%SUBDIR% MASTER_SITE_GITHUB_CLOUD+= https://cloud.github.com/downloads/%SUBDIR% -. if !defined(MASTER_SITES) || !${MASTER_SITES:MGH} && !${MASTER_SITES:MGHC} && !${USE_GITHUB:Mnodefault} +. if ( !defined(MASTER_SITES) || !${MASTER_SITES:MGH} && !${MASTER_SITES:MGHC} ) && !${USE_GITHUB:Mnodefault} MASTER_SITES+= GH . endif GH_ACCOUNT_DEFAULT= ${PORTNAME} @@ -562,23 +578,27 @@ WWW?= https://gitlab.com/${GL_ACCOUNT}/${GL_PROJECT}/ .endif # !defined(IGNORE_MASTER_SITE_GITLAB) .if !defined(IGNORE_MASTER_SITE_GNOME) +. if defined(DISTVERSION) && ${DISTVERSION:M[0-9]*} +_version_major= ${DISTVERSION:C|^([0-9]+).*|\1|} +_version_minor= ${DISTVERSION:C|^([0-9]+)\.([0-9]+).*|\2|} + +. if ${_version_major} >= 10 +_gnome_ver= ${_version_major} +. else +_gnome_ver= ${_version_major}.${_version_minor} +. endif +. endif + +_GNOME_PATH= %SUBDIR%/${_gnome_ver} + MASTER_SITE_GNOME+= \ - https://download.gnome.org/%SUBDIR%/ \ - https://gitlab.gnome.org/GNOME/${PORTNAME}/-/archive/${PORTVERSION}/ \ - http://ftp.belnet.be/mirror/ftp.gnome.org/gnomeftp/%SUBDIR%/ \ - ftp://ftp.belnet.be/mirror/ftp.gnome.org/gnomeftp/%SUBDIR%/ \ - https://ftp.acc.umu.se/pub/GNOME/%SUBDIR%/ \ - ftp://ftp.cse.buffalo.edu/pub/Gnome/%SUBDIR%/ \ - https://fr2.rpmfind.net/linux/gnome.org/%SUBDIR%/ \ - ftp://ftp.kddlabs.co.jp/pub/GNOME/%SUBDIR%/ \ - ftp://ftp.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/%SUBDIR%/ \ - ftp://ftp.nara.wide.ad.jp/pub/X11/GNOME/%SUBDIR%/ + https://download.gnome.org/${_GNOME_PATH}/ .endif .if !defined(IGNORE_MASTER_SITE_GIMP) MASTER_SITE_GIMP+= \ - http://gimp.mirrors.hoobly.com/pub/%SUBDIR%/ \ - http://gimp.afri.cc/pub/%SUBDIR%/ \ + https://ftp.gwdg.de/pub/misc/grafik/%SUBDIR%/ \ + https://www.mirrorservice.org/sites/ftp.gimp.org/pub/%SUBDIR%/ \ https://download.gimp.org/pub/%SUBDIR%/ .endif @@ -590,7 +610,6 @@ MASTER_SITE_GNU+= \ https://www.nic.funet.fi/pub/gnu/gnu/%SUBDIR%/ \ http://mirror.navercorp.com/gnu/%SUBDIR%/ \ http://ftp.halifax.rwth-aachen.de/gnu/%SUBDIR%/ \ - http://ftp.kddilabs.jp/GNU/gnu/%SUBDIR%/ \ ftp://mirrors.rit.edu/gnu/%SUBDIR%/ \ ftp://ftp.fu-berlin.de/unix/gnu/%SUBDIR%/ \ ftp://ftp.mirrorservice.org/sites/ftp.gnu.org/gnu/%SUBDIR%/ \ @@ -601,7 +620,6 @@ MASTER_SITE_GNU+= \ .if !defined(IGNORE_MASTER_SITE_GNUPG) MASTER_SITE_GNUPG+= \ https://mirrors.dotsrc.org/gcrypt/%SUBDIR%/ \ - https://ftp.heanet.ie/mirrors/ftp.gnupg.org/gcrypt/%SUBDIR%/ \ https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/%SUBDIR%/ \ http://www.ring.gr.jp/pub/net/gnupg/%SUBDIR%/ \ https://gnupg.org/ftp/gcrypt/%SUBDIR%/ @@ -637,16 +655,10 @@ MASTER_SITE_HACKAGE+= \ .if !defined(IGNORE_MASTER_SITE_IDSOFTWARE) MASTER_SITE_IDSOFTWARE+= \ - ftp://ftp.gwdg.de/pub/misc2/ftp.idsoftware.com/idstuff/%SUBDIR%/ \ - http://ftp4.de.freesbie.org/pub/misc/ftp.idsoftware.com/idstuff/%SUBDIR%/ \ - ftp://ftp.fu-berlin.de/pc/games/idgames/idstuff/%SUBDIR%/ \ - ftp://ftp.gamers.org/pub/idgames/idstuff/%SUBDIR%/ \ - http://ftp.iinet.net.au/games/idstuff/%SUBDIR%/ \ - ftp://ftp.mirror.nl/disk2/idsoftware/idstuff/%SUBDIR%/ \ - ftp://freebsd.nsu.ru/mirrors/ftp.idsoftware.com/idstuff/%SUBDIR%/ \ - ftp://ftp.ntua.gr/pub/vendors/idgames/idstuff/%SUBDIR%/ \ - ftp://ftp.omen.net.au/games/idstuff/%SUBDIR%/ \ - ftp://ftp.idsoftware.com/idstuff/%SUBDIR%/ + https://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/%SUBDIR%/ \ + https://ftp.fu-berlin.de/pc/games/idgames/idstuff/%SUBDIR%/ \ + https://ftp.gamers.org/pub/idgames/idstuff/%SUBDIR%/ \ + ftp://ftp.omen.net.au/games/idstuff/%SUBDIR%/ .endif .if !defined(IGNORE_MASTER_SITE_ISC) @@ -698,8 +710,6 @@ MASTER_SITE_MOZILLA_ADDONS+= \ .if !defined(IGNORE_MASTER_SITE_MYSQL) MASTER_SITE_MYSQL+= \ - ftp://ftp.fi.muni.cz/pub/mysql/Downloads/%SUBDIR%/ \ - ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/%SUBDIR%/ \ https://dev.mysql.com/get/Downloads/%SUBDIR%/ .endif @@ -788,7 +798,6 @@ MASTER_SITE_PERL_CPAN_BY+= \ https://cpan.metacpan.org/modules/by-module/%SUBDIRPLUS%/ \ https://www.cpan.org/%CPANSORT%/%SUBDIR%/ \ ftp://ftp.cpan.org/pub/CPAN/%CPANSORT%/%SUBDIR%/ \ - ftp://ftp.kddlabs.co.jp/lang/perl/CPAN/%CPANSORT%/%SUBDIR%/ \ http://ftp.jaist.ac.jp/pub/CPAN/%CPANSORT%/%SUBDIR%/ \ ftp://ftp.mirrorservice.org/sites/cpan.perl.org/CPAN/%CPANSORT%/%SUBDIR%/ \ ftp://ftp.auckland.ac.nz/pub/perl/CPAN/%CPANSORT%/%SUBDIR%/ \ @@ -894,8 +903,8 @@ MASTER_SITE_SAVANNAH+= \ MASTER_SITE_SOURCEFORGE+= ${p}://downloads.sourceforge.net/project/%SUBDIR%/ . for m in cfhcable cytranet deac-ams deac-fra deac-riga excellmedia \ freefr gigenet ixpeering jaist kumisystems liquidtelecom \ - nchc netactuate netcologne netix onboardcloud phoenixnap \ - razaoinfo sinalbr sitsa tenet udomain ufpr versaweb + nchc netactuate netcologne onboardcloud phoenixnap \ + razaoinfo sinalbr sitsa tenet ufpr versaweb MASTER_SITE_SOURCEFORGE+= ${p}://${m}.dl.sourceforge.net/project/%SUBDIR%/ . endfor . endfor @@ -916,8 +925,6 @@ MASTER_SITE_SUDO+= \ http://sudo.p8ra.de/sudo/dist/ \ http://sudo.cybermirror.org/ \ http://sudo-ftp.basemirror.de/ \ - http://core.ring.gr.jp/archives/misc/sudo/ \ - http://www.ring.gr.jp/archives/misc/sudo/ \ http://ftp.twaren.net/Unix/Security/Sudo/ \ ftp://ftp.sudo.ws/pub/sudo/ \ ftp://plier.ucar.edu/pub/sudo/ \ @@ -933,8 +940,6 @@ MASTER_SITE_SUDO+= \ ftp://ftp.informatik.uni-hamburg.de/pub/os/unix/utils/sudo/ \ ftp://ftp.st.ryukoku.ac.jp/pub/security/tool/sudo/ \ ftp://ftp.cin.nihon-u.ac.jp/pub/misc/sudo/ \ - ftp://core.ring.gr.jp/pub/misc/sudo/ \ - ftp://ftp.ring.gr.jp/pub/misc/sudo/ \ ftp://sunsite.icm.edu.pl/packages/sudo/ \ ftp://mirror.cdmon.com/pub/sudo/ \ ftp://ftp.twaren.net/Unix/Security/Sudo/ @@ -951,7 +956,6 @@ MASTER_SITE_SUNSITE+= \ .if !defined(IGNORE_MASTER_SITE_TCLTK) MASTER_SITE_TCLTK+= \ ftp://ftp.tcl.tk/pub/tcl/%SUBDIR%/ \ - ftp://ftp.kddlabs.co.jp/lang/tcl/ftp.scriptics.com/%SUBDIR%/ \ ftp://ftp.mirrorservice.org/sites/ftp.tcl.tk/pub/tcl/%SUBDIR%/ \ ftp://ftp.funet.fi/pub/languages/tcl/tcl/%SUBDIR%/ .endif @@ -1046,7 +1050,6 @@ MASTER_SITE_KERNEL_ORG+= \ https://mirrors.mit.edu/kernel/%SUBDIR%/ \ http://ftp.nara.wide.ad.jp/pub/kernel.org/%SUBDIR%/ \ http://ftp.yandex.ru/pub/%SUBDIR%/ \ - http://ftp.heanet.ie/pub/kernel.org/pub/%SUBDIR%/ \ ftp://ftp.ntu.edu.tw/%SUBDIR%/ \ ftp://ftp.riken.jp/Linux/kernel.org/%SUBDIR%/ .endif @@ -1081,7 +1084,7 @@ MASTER_SITES_SUBDIRS= APACHE_COMMONS_BINARIES:${PORTNAME:S,commons-,,} \ GIMP:${PORTNAME}/${PORTVERSION:R}/ \ GITHUB:${GH_ACCOUNT}/${GH_PROJECT}/tar.gz/${GH_TAGNAME}?dummy=/ \ GITHUB_CLOUD:${GH_ACCOUNT}/${GH_PROJECT}/ \ - GNOME:sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} \ + GNOME:sources/${DISTNAME:S/-${DISTVERSIONFULL}$//} \ GNU:${PORTNAME} \ GNUPG:${PORTNAME} \ GNU_ALPHA:${PORTNAME} \ diff --git a/Mk/bsd.wx.mk b/Mk/bsd.wx.mk index a036ce1284c0..bbf84d1b1283 100644 --- a/Mk/bsd.wx.mk +++ b/Mk/bsd.wx.mk @@ -1,6 +1,5 @@ # bsd.wx.mk - Support for wxWidgets based ports. # -# # The following variables can be defined in a port that uses the wxWidgets # library, contributed libraries, WxPython and/or more wxWidgets related # components (with run and/or build dependencies). It can be used after and/or @@ -56,7 +55,7 @@ # contain multiple versions in order of preference (last ones # are tried first). # WANT_WXGTK_VER - Set to the preferred GTK version, "2" or "3", "3" being -# the default (only applicable to wxWidgets 3.0 for now). +# the default. # # The following variables are intended for the user and can be defined in # make.conf. @@ -132,7 +131,7 @@ _WX_PORT_python_3.2= x11-toolkits/py-wxPython4@${PY_FLAVOR} _WX_FILE_python_3.2= ${PYTHON_SITELIBDIR}/wx/__init__.py # wxgtk 3.2 -_WX_PORT_wx_3.2= x11-toolkits/wxgtk32 +_WX_PORT_wx_3.2= x11-toolkits/wxgtk32@${_GTKFLAVOR} _WX_LIB_wx_3.2= wx_baseu-3.2 # Set _WX_SHVER_comp_ver to 0 and _WX_FILE_comp_ver for libs appropriately. @@ -398,12 +397,8 @@ _WX_VER= ${ver} # Set variables. # -. if ${_WX_VER} == 3.2 -_GTKVER= 3 -. elif ${_WX_VER} == 3.0 _GTKVER= ${WANT_WXGTK_VER:U3} _GTKFLAVOR= gtk${_GTKVER} -. endif WX_CONFIG?= ${LOCALBASE}/bin/wxgtk${_GTKVER}${_WX_UC}-${_WX_VER}-config WXRC_CMD?= ${LOCALBASE}/bin/wxrc-gtk${_GTKVER}${_WX_UC}-${_WX_VER} |