Page MenuHomeFreeBSD

*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
AbandonedPublic

Authored by bofh on Oct 4 2023, 8:07 AM.
Referenced Files
F77551630: D42068.id128204.diff
Tue, Feb 20, 7:42 AM
Unknown Object (File)
Mon, Feb 19, 12:49 PM
Unknown Object (File)
Fri, Feb 9, 11:39 PM
Unknown Object (File)
Fri, Feb 9, 12:21 PM
Unknown Object (File)
Thu, Feb 8, 9:28 PM
Unknown Object (File)
Wed, Feb 7, 6:33 AM
Unknown Object (File)
Fri, Feb 2, 5:56 PM
Unknown Object (File)
Fri, Feb 2, 8:57 AM

Details

Summary
  • Remove all references to defunct ARCH arm
  • Remove all references to defunct ARCH sparc64
  • Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64 ARCH
  • Remove sysutils/afbinit requires defunct sparc64 ARCH
  • Remove all references to bktr driver
  • Remove all references to defunct FreeBSD_12
  • Remove all references to OSVERSION/OSREL corresponding to 12

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
www/nginx/Makefile
90

Can you ellaborate please?

x11-toolkits/vte3/Makefile
24

Hmm .. Let me run the logic again.

Update some of the files based on the review from @rene

This revision now requires review to proceed.Oct 15 2023, 2:40 PM
bofh marked 4 inline comments as done.Oct 15 2023, 2:42 PM
devel/mongo-c-driver/Makefile
89

Ah yes, but then the patch file should loose the "extra-" prefix?

devel/root/Makefile
107

Ah you' re right :)

www/nginx/Makefile
90

The current Makefile would suggest that the CFLAGS addition is only needed in case HTTP_PERL is selected.

bofh marked 2 inline comments as done.Oct 19 2023, 5:20 PM
bofh added inline comments.
devel/mongo-c-driver/Makefile
89

Interestingly this file is no more in the tree.

bofh marked 2 inline comments as done.Oct 19 2023, 5:23 PM
bofh added a subscriber: danfe.
bofh added inline comments.
cad/libredwg/Makefile
46

I had a mail communication with @danfe and this patch is still required.

This revision is now accepted and ready to land.Oct 29 2023, 6:38 PM

BROKEN_FreeBSD12 in www/ladybird can be removed too

Missed cruft (based on 2023-10-14 checkout):

  • audio/opus/Makefile (only arm conditional)
  • cad/nvc/Makefile (only !exists(/usr/include/unwind.h) conditional)
  • comms/ebusd/files/patch-src_lib_ebus_datatype.cpp
  • devel/android-tools/files/patch-vendor_adb_compression_\_utils.h
  • devel/llvm1[2-3]/Makefile (only unwind.h-related _BUILD_DEPENDS, _USES, inline comments)
  • emulators/rpcs3/files/patch-libc++13
  • graphics/darktable/Makefile (only ${OPSYS}_${OSREL:R} == FreeBSD_12 conditional)
  • graphics/krita/files/patch-cmake_modules_xsimd_xsimdMacros.cmake
  • graphics/qt5-wayland/files/patch-src_client_qwaylandshmbackingstore.cpp (only && __FreeBSD_version >= 1300048 part)
  • java/openjdk*/Makefile (only ${OSREL:C/\.[0-9]//} == 12 conditional and the related patch)
  • mail/thunderbird/files/patch-third_\_party_libwebrtc_rtc_\_base_ip_\_address.cc
  • multimedia/dav1d/files/patch-freebsd12
  • multimedia/pipewire/files/patch-src_modules_module-netjack2_peer.c
  • net-im/libquotient/files/patch-Quotient_qt_\_connection_\_util.h
  • net/samba413/Makefile (only ${OSVERSION} < 1300000 conditional)
  • sysutils/arcconf/Makefile (only ${OSREL:R} == 12 part)
  • www/chromium/files/patch-third_\_party_wayland_include_config.h (only memfd part)
  • www/chromium/files/patch-ui_ozone_platform_wayland_host_zwp_\_text_\_input_\_wrapper_\_v1.cc
  • Ditto (as www/chromium) in devel/electron*, www/iridium, www/ungoogled-chromium
  • www/librewolf/files/patch-third_\_party_libwebrtc_rtc_\_base_ip_\_address.cc
  • x11/xdg-desktop-portal-luminous/Makefile (only BROKEN_FreeBSD_12)
deskutils/xdg-desktop-portal/Makefile
29

The whole conditional can be dropped. OSVERSION on 14.0-RELEASE is 1400097. In general, old -CURRENT/-STABLE snapshots are not supported

emulators/virtualbox-ose/Makefile
195

The whole conditional (and the related patch) can be dropped. OSVERSION on 14.0-RELEASE is 1400097. In general, old -CURRENT/-STABLE snapshots are not supported

x11-drivers/xf86-input-synaptics/Makefile
19 ↗(On Diff #128794)

Looks gratuitous. Avoid mixing style changes with anything functional.

Thanks @jbeich . I will look into it and refresh the patch.

bofh marked 2 inline comments as done.

Rebase and add some changes as per @jbeich

This revision now requires review to proceed.Dec 11 2023, 10:47 PM

Missed cruft (based on 2023-12-11 checkout):

  • lang/emilua/Makefile (only IGNORE_FreeBSD_12)
  • lang/go-devel/Makefile (only ${OSREL:R} < 13)
  • lang/mlton/Makefile (keep ${OSREL:R} >= 13 but make unconditional)
  • mail/fetchmail/Makefile (only ${OSREL:R} < 13)
  • net/widentd/Makefile (only ${OSREL:R} < 13)
  • shells/v7sh/files/Makefile (only ${OSREL:R} < 13)
  • sysutils/plasma5-powerdevil/files/patch-daemon_backends_upower_freebsdbacklighthelper.cpp
  • www/tor-browser/files/patch-third_\_party_libwebrtc_rtc_\_base_ip_\_address.cc
graphics/qt5-wayland/files/patch-src_client_qwaylandshmbackingstore.cpp
7

Restore the file but remove && __FreeBSD_version >= 1300048. After 12.4 EOL memfd_create is available on all supported FreeBSD versions. However, on FreeBSD memfd_create is a library function (based on undocumented shm_open2 syscall) rather than a syscall, so SYS_memfd_create is not defined thus requires this patch.

www/chromium/files/patch-third__party_wayland_include_config.h
2–3

Drop this include. Nothing else seems to use __FreeBSD_version.

Ditto for devel/electron*, www/iridium, www/ungoogled-chromium

science/cantera/Makefile
29

Drop this line as well i.e., revert the whole a4c89641bb05.

lang/lfortran/Makefile
34

Drop this line as well i.e., revert the whole 6ce0588e3a08 (but don't restore BROKEN_FreeBSD_12).

lang/php80/Makefile
57

Drop both these lines i.e., revert the whole 4a22a7a104df.

Ditto in other lang/php*

lang/php80/Makefile
57

Ditto databases/postgresql16-server, databases/memcached, lang/tcl87. Found via rg powerpc64_12.

bofh marked an inline comment as done.Dec 12 2023, 1:04 PM
bofh added inline comments.
lang/php80/Makefile
57

I think I will skip this one in php80 as I will be actually removing php80 before sunsetting 12. But will take care on other php8*.

bofh marked 5 inline comments as done.Dec 12 2023, 1:10 PM
bofh added a subscriber: jhale.

Update as per @jhale

  • shells/v7sh/files/Makefile (only ${OSREL:R} < 13)
  • www/tor-browser/files/patch-third_\_party_libwebrtc_rtc_\_base_ip_\_address.cc

These are still not fixed. I've also noticed more cruft:

  • converters/wkhtmltopdf/files/patch-src_\_3rdparty_\_webkit_\_Source_\_JavaScriptCore_\_runtime_\_JSValueInlineMethods.h
  • databases/libmemcached/Makefile (only libcrypto.pc and the related patch)
  • devel/grpc/Makefile (only openssl.pc and the related patch)
  • devel/libffcall/files/patch-ffcall-abi.h
  • devel/qt5-script/files/patch-src_\_3rdparty_\_javascriptcore_\_JavaScriptCore_\_runtime_\_JSValue.h
  • ftp/axel/Makefile (keep --with-ssl=openssl but make unconditional)
  • security/libfido2/Makefile (only libcrypto.pc and the related patch)
  • security/pam_u2f/Makefile (only libcrypto.pc)
  • www/edbrowse/Makefile (only openssl.pc and the related patch)
  • www/webkit2-gtk4/files/patch-Source_WTF_wtf_PlatformCPU.h
  • www/webkit2-gtk4/files/patch-Source_WTF_wtf_dtoa_utils.h
  • x11-servers/xorg-server/files/patch-hw_xfree86_os-support_bsd_bsd_\_init.c (only __sparc64__)
databases/postgresql16-server/Makefile
111

Not used anymore. Originally added by 6200fdde5c50.

$ rg OPTIONS_EXCLUDE_ databases/postgresql*
databases/postgresql16-server/Makefile
111:OPTIONS_EXCLUDE+=   ${OPTIONS_EXCLUDE_${ARCH}_${OSREL:R}}
devel/root/pkg-plist
3559

Looks incorrect i.e., previously expanded to @comment .

$ make -V PLIST_SUB:M\*CLANG\* OSREL=12.4 OSVERSION=1204000
ONLY_INSTALLED_WITH_LLVM_CLANG_13=""

$ make -V PLIST_SUB:M\*CLANG\* OSREL=13.2 OSVERSION=1302001
ONLY_INSTALLED_WITH_LLVM_CLANG_13="@comment "

$ make -V PLIST_SUB:M\*CLANG\* OSREL=14.0 OSVERSION=1400097
ONLY_INSTALLED_WITH_LLVM_CLANG_13="@comment "
lang/mlton/Makefile
82

_VARS option helper is space-separated, so BOOTOSMAJ here ends up with empty value. However, it doesn't work either way:

$ make -V BOOTOSMAJ
Variable BOOTOSMAJ is recursive.
$ make -V NATIVE_VARS
Variable NATIVE_VARS is recursive.
$ make clean patch BATCH=
[...]
In a command near "/usr/ports/lang/mlton/Makefile" line 162: Variable NATIVE_VARS is recursive.

make[1]: stopped in /usr/ports/lang/mlton
*** Error code 2

Note, DISTFILES still has bootstrap for FreeBSD 11 and 12.

lang/php80/Makefile
57

Why remove sparc64 in lang/php80 then?

lang/php80/Makefile
57

Did it long ago previous to marking php80 DEPRECATED maybe. However as I will rebase after deleting the expired ports these will be gone.

These are still not fixed. I've also noticed more cruft:

  • devel/libffcall/files/patch-ffcall-abi.h

I think this patch is not related to sparc but aarch64.

lang/mlton/Makefile
82

I will fix this later. I am testing a build without the freebsd-11 DISTS to check how it goes.

devel/root/pkg-plist
3559

Noops. These are correct. I think you are mixing up clang 13 with FreeBSD 13. In previous that is for 12 these files were installed hence it was uncommented and from 13.2-RELEASE these files were not installed hence these are supposed to be @comment. Check the above Makefile for the logic that was used.

devel/root/pkg-plist
3559

Noops. Looks like you are correct this should go.

In D42068#980602, @bofh wrote:

These are still not fixed. I've also noticed more cruft:

  • devel/libffcall/files/patch-ffcall-abi.h

I think this patch is not related to sparc but aarch64.

aarch64 (arm64) has 2 "a" in the architecture name. sparc64 (64-bit sparc, or sparc V9) may not define __sparc64__ on non-BSDs thus required checking both __sparc__ and __arch64__.

$ cd /usr/src
$ rg \"__arch64__\"
contrib/llvm-project/clang/lib/Basic/Targets/Sparc.cpp
241:  Builder.defineMacro("__arch64__");
$ rg \"__aarch64__\"
contrib/llvm-project/clang/lib/Basic/Targets/AArch64.cpp
339:  Builder.defineMacro("__aarch64__");

$ cd /usr/ports/lang/gcc12
$ make clean patch BATCH=
$ cd `make -V WRKSRC`
$ rg \"__arch64__\"
gcc/config/rs6000/freebsd64.h
194:      builtin_define ("__arch64__");                \

gcc/config/sparc/openbsd64.h
40:     builtin_define ("__arch64__");          \
$ rg \"__aarch64__\"
gcc/config/aarch64/aarch64-c.cc
55:  builtin_define ("__aarch64__");
In D42068#980602, @bofh wrote:

These are still not fixed. I've also noticed more cruft:

  • devel/libffcall/files/patch-ffcall-abi.h

I think this patch is not related to sparc but aarch64.

aarch64 (arm64) has 2 "a" in the architecture name. sparc64 (64-bit sparc, or sparc V9) may not define __sparc64__ on non-BSDs thus required checking both __sparc__ and __arch64__.

:/ Fixed.

bofh marked an inline comment as done.Dec 12 2023, 4:55 PM
bofh added inline comments.
lang/mlton/Makefile
82

This has been fixed. On another commit I have refactored the port.

devel/grpc/Makefile
52

Also remove the patch.

net-mgmt/nagios-plugins/Makefile
132

-t variant should be unconditional:

$ make -V _PING6_CMD OSREL=12.4 OSVERSION=1204000
/sbin/ping6 -n -X %d -c %d %s
$ make -V _PING6_CMD OSREL=13.2 OSVERSION=1302001
/sbin/ping6 -n -t %d -c %d %s
$ make -V _PING6_CMD OSREL=14.0 OSVERSION=1400097
/sbin/ping6 -n -t %d -c %d %s
net-p2p/qbittorrent/Makefile
13

Why? Rebase mistake after 0cb657a809e9? QAT log doesn't warn about such untracked dependency.

sysutils/zidrav/Makefile
31

powerpc* matches powerpc64le which is not big-endian, so probably shouldn't pass -DCPU_BIGENDIAN.

Note, mips* also matches mipsel, mips64el, mipselhf, mips64elhf but hidden since FreeBSD 13.0 (ff4c0e6f83e6) and removed since FreeBSD 14.0 (b8cacb38989a).

bofh marked 3 inline comments as done.Dec 12 2023, 5:54 PM
bofh added inline comments.
net-p2p/qbittorrent/Makefile
13

:/

bofh marked an inline comment as done.

More changes by @jbeich

This revision is now accepted and ready to land.Dec 12 2023, 6:19 PM
lang/mlton/Makefile
70

Maybe set toplevel BOOTOSMAJ instead as RAM_SLOP_32 expects BOOTOSMAJ to match OS version of the bootstrap. Any discrepancy between BOOTOSMAJ and NATIVE=off can be fixed by removing FreeBSD < 13 cruft in RAM_SLOP_32.

diff --git a/lang/mlton/Makefile b/lang/mlton/Makefile
index 25430490debd..b7fda2682d78 100644
--- a/lang/mlton/Makefile
+++ b/lang/mlton/Makefile
@@ -31,7 +31,7 @@ USES=		compiler:c11 gmake
 BOOTNAME=	${BOOTNAMEPREFIX}${PORTNAME}${BOOTNAMESUFFIX}-${BOOTVERSIONPREFIX}${BOOTVERSION}${BOOTVERSIONSUFFIX}
 BOOTVERSIONSUFFIX=
 BOOTVERSION=	${PORTVERSION}
-BOOTOSMAJ=	${OSREL:R}
+BOOTOSMAJ=	13
 
 OPTIONS_DEFINE=			DOCS EXAMPLES
 OPTIONS_DEFAULT=		MLTON NATIVE
@@ -67,7 +67,7 @@ MLTON_MAKE_ARGS_OFF=		DESTDIR='' \
 				PATH=${WRKSRC}/build/bin:${WRKDIR}/bin:${PATH} \
 				PREFIX=${PREFIX} \
 				WITH_GMP_DIR=${PREFIX}
-NATIVE_VARS=			BOOT_DIST=${BOOTNAME}.${ARCH}-${OPSYS:tl}-13.txz
+NATIVE_VARS=			BOOT_DIST=${BOOTNAME}.${ARCH}-${OPSYS:tl}-${BOOTOSMAJ}.txz
 NATIVE_VARS_OFF=		BOOT_DIST=
 POLYML_BUILD_DEPENDS=		polyc:lang/polyml
 #POLYML_CPPFLAGS=	-L/usr/local/lib -lpolyml -lpolymain
@@ -97,7 +97,7 @@ GH_TAGNAME=	b2fca3d
 BOOT_CMD=	--xz
 BOOT_SUFX=	.txz
 
-RAM_SLOP_32=	$$(${SYSCTL} "hw.physmem" | ${AWK} '{ values = values" "$$2 } END { print values; }' | ${AWK} '{ "freebsd-version -r" | getline ver; split(ver, xs, "\."); kernelOSMAJ = xs[1]; osj = ${BOOTOSMAJ}; physmem = $$1 / 1024 / 1024 / 1024; os = kernelOSMAJ; maxphysmem = physmem; if (physmem > 3.2) { maxphysmem = 3.2; }; ospcent = 0.70; if (osj < 13 && os != osj) { ospcent = 0.65; } else if (os >= 13) { if (physmem < 3.1) { ospcent = 0.83; } else { ospcent = 0.80; } }; targetmem = maxphysmem * ospcent; targetpcent = targetmem / physmem; print int((targetpcent + 0.005) * 100) / 100; }')
+RAM_SLOP_32=	$$(${SYSCTL} "hw.physmem" | ${AWK} '{ values = values" "$$2 } END { print values; }' | ${AWK} '{ physmem = $$1 / 1024 / 1024 / 1024; maxphysmem = physmem; if (physmem > 3.2) { maxphysmem = 3.2; }; ospcent = 0.70; if (physmem < 3.1) { ospcent = 0.83; } else { ospcent = 0.80; }; targetmem = maxphysmem * ospcent; targetpcent = targetmem / physmem; print int((targetpcent + 0.005) * 100) / 100; }')
 
 post-extract:
 	@${MKDIR} ${BOOT_WRKSRC}
lang/mlton/Makefile
70

Yeah looks like there is a osj conditional for checking FreeBSD version less than 13. I will fix this up on next rebase.

Latest rebase and most probably the last one before the sunset.

This revision now requires review to proceed.Dec 23 2023, 9:02 PM

Many patches for missing <byteswap.h> and <endian.h> on FreeBSD < 13 can probably be dropped e.g.,

  • audio/bespokesynth/files/patch-libs_link_include_ableton_platforms_linux_Linux.hpp
  • audio/mixxx/files/patch-lib_kaitai_kaitaistream.cpp
  • audio/umurmur/Makefile (BROKEN_*)
  • audio/umurmur/files/patch-src_byteorder.h
  • audio/webrtc-audio-processing/files/patch-powerpc64 (keep <altivec.h> part)
  • audio/zita-alsa-pcmi/files/patch-source_zita-alsa-pcmi.cc
  • biology/abyss/files/patch-Common_city.cc
  • databases/redisdesktopmanager/files/patch-3rdparty_simdjson_singleheader_simdjson.h
  • devel/chrpath/files/patch-protos.h (keep Elf_Ehdr part)
  • devel/cityhash/files/patch-src_city.cc
  • devel/dwarves/files/patch-lib_bpf_src_btf.c (the first 3 hunks, keep from compare_vsi_off onwards)
  • devel/efivar/files/patch-src-efivar.h (keep __builtin_* part)
  • devel/elfutils/files/patch-lib_byteswap.h
  • devel/firmware-utils/files/patch-* (<endian.h> part, keep `"freebsd.h")
  • devel/py-pysimdjson/files/patch-simdjson_simdjson.h
  • graphics/igt-gpu-tools/files/patch-lib_igt_\_core.h (keep <signal.h> part)
  • graphics/libemf/files/patch-libemf_libemf.cpp
  • multimedia/dvb-apps/files/patch-lib_libucsi_endianops.h
  • multimedia/ringrtc/files/patch-src_webrtc_src_rtc_\_base_byte_\_order.h
  • multimedia/smpeg/files/patch-video_\_video.h
  • net/mercury/Makefile (BROKEN)
  • net/yate/files/patch-libs_yradio_radio.cpp
  • security/pam_pwdfile/files/patch-md5.c
  • sysutils/afflib/files/patch-lib_qemu_bswap.h
  • sysutils/dd_rescue/files/patch-aes_\_c.c
  • sysutils/lttng-tools/files/patch-src_bin_lttng-crash_lttng-crash.c
  • sysutils/lttng-tools/files/patch-src_common_compat_endian.h
  • sysutils/zbackup/files/patch-compression.cc
  • sysutils/zbackup/files/patch-endian.hh
  • www/envoy/files/patch-envoy_common_platform.h (keep ENVOY_MMSG_MORE part)
  • www/mod_gnutls/files/patch-src_gnutls_\_sni.c
  • www/qt5-webengine/files/patch-src_3rdparty_chromium_third_\_party_smhasher_src_City.cpp

(the above list is incomplete: only covers <byteswap.h> due to lack of time)

databases/mysqlwsrep57-server/Makefile
184

Looks backwards: excludes -fcommon on modern FreeBSD rather than make it unconditional.

Many patches for missing <byteswap.h> and <endian.h> on FreeBSD < 13 can probably be dropped e.g.,

I think I will tackle this later. In a dilemma with gcc8.

databases/mysqlwsrep57-server/Makefile
184

Actually I have to delete this port as it depends on mysql57-client. So this will be NOOP when I rebase after the deletion.

Before landing it'd be nice to turn off 12.4 package builders. Otherwise, /latest and /quarterly will become empty while /release_* still work. The space can be later reclaimed by consistently removing all sets and removing FreeBSD:12:* references on https://pkg.freebsd.org/

Before landing it'd be nice to turn off 12.4 package builders. Otherwise, /latest and /quarterly will become empty while /release_* still work. The space can be later reclaimed by consistently removing all sets and removing FreeBSD:12:* references on https://pkg.freebsd.org/

This cleanup only affects main, not quarterly/2023Q4. There is a 12-eol tag on main so the pkg builders could stick to that?

In D42068#985819, @rene wrote:

Before landing it'd be nice to turn off 12.4 package builders. Otherwise, /latest and /quarterly will become empty while /release_* still work. The space can be later reclaimed by consistently removing all sets and removing FreeBSD:12:* references on https://pkg.freebsd.org/

This cleanup only affects main, not quarterly/2023Q4. There is a 12-eol tag on main so the pkg builders could stick to that?

On a different note jbeich is somewhat correct. If the builders were still started it would end up with an empty pkgset and the cluster pkgset would overwrite the pkg repos with an empty set being served. Although not exactly sure on how the builders are run so we disabled the pkgsync script and backed it up and have removed the pkgsets.