aboutsummaryrefslogtreecommitdiffhomepage
path: root/freebsd
diff options
context:
space:
mode:
authorRobin Haberkorn <rhaberkorn@fmsbw.de>2026-05-20 00:52:25 +0400
committerRobin Haberkorn <rhaberkorn@fmsbw.de>2026-05-20 00:52:25 +0400
commit957f24cf63261424288a8794f61cfdf5e5606fad (patch)
tree4665f845c8cf8303bbf37fa743d7ffd82a1a6205 /freebsd
parent62177d06bd9d31242e67995d4e33a755a3447ca2 (diff)
FreeBSD port: added patches for a v2.5.2_1 release that should fix building on arm64 and riscvHEADmaster-fmsbw-cimaster
* I don't want to release a new upstream version since master isn't stable, yet. I also don't want to branch out a stable v2.5 branch. So we just add the necessary patch files. * Also fixes the `_` register pollution when opening new files. * Should fix Poudriere arm64 builds that are currently causing fallout.
Diffstat (limited to 'freebsd')
-rw-r--r--freebsd/Makefile6
-rw-r--r--freebsd/files/opener.check-recovery.patch30
-rw-r--r--freebsd/files/sbrk.patch76
3 files changed, 112 insertions, 0 deletions
diff --git a/freebsd/Makefile b/freebsd/Makefile
index 8550f5a..fd8e284 100644
--- a/freebsd/Makefile
+++ b/freebsd/Makefile
@@ -1,5 +1,6 @@
PORTNAME= sciteco
DISTVERSION= 2.5.2
+PORTREVISION= 1
CATEGORIES= editors textproc devel
MASTER_SITES= https://sciteco.fmsbw.de/downloads/v${DISTVERSION}/ \
SOURCEFORGE/${PORTNAME}/v${DISTVERSION}/
@@ -24,12 +25,17 @@ gtk_BUILD_DEPENDS= mcookie:devel/util-linux \
Xvfb:x11-servers/xorg-server@xvfb
USES= compiler:c11 gmake gnome groff pkgconfig
+# Only required because we patch configure.ac:
+USES+= autoreconf
USE_GNOME= glib20
GNU_CONFIGURE= yes
CONFIGURE_ARGS=
CONFIGURE_OUTSOURCE= yes
+EXTRA_PATCHES= ${FILESDIR}/opener.check-recovery.patch:-p1 \
+ ${FILESDIR}/sbrk.patch:-p1
+
MAKEFILE= GNUmakefile
TEST_TARGET= check
diff --git a/freebsd/files/opener.check-recovery.patch b/freebsd/files/opener.check-recovery.patch
new file mode 100644
index 0000000..aef3c19
--- /dev/null
+++ b/freebsd/files/opener.check-recovery.patch
@@ -0,0 +1,30 @@
+From 14b7d1fc5621c3251115ccf577beaabf8ab0eccc Mon Sep 17 00:00:00 2001
+From: Robin Haberkorn <rhaberkorn@fmsbw.de>
+Date: Mon, 27 Apr 2026 18:48:54 +0200
+Subject: [PATCH] opener.check-recovery: don't pollute Q-register `_`
+
+This has been broken since v2.5.2.
+---
+ lib/opener.tes | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/opener.tes b/lib/opener.tes
+index 8bcd896..66a97e7 100644
+--- a/lib/opener.tes
++++ b/lib/opener.tes
+@@ -44,10 +44,10 @@
+ *!
+ @[opener.check-recovery]{
+ :Q*"=  '
+- [*
++ [*[_
+ EQ.f G* I# R
+ <-A"I 1; ' :R;>
+ I#
+ 1:EN*Q.f"S 2Detected recovery file "Q.f" '
+- ]*
++ ]_]*
+ }
+--
+2.53.0
+
diff --git a/freebsd/files/sbrk.patch b/freebsd/files/sbrk.patch
new file mode 100644
index 0000000..66b94aa
--- /dev/null
+++ b/freebsd/files/sbrk.patch
@@ -0,0 +1,76 @@
+From 62177d06bd9d31242e67995d4e33a755a3447ca2 Mon Sep 17 00:00:00 2001
+From: Robin Haberkorn <rhaberkorn@fmsbw.de>
+Date: Tue, 19 May 2026 21:21:52 +0400
+Subject: [PATCH] check for sbrk() even on UNIX
+
+* Turns out that not all UNIXes support sbrk().
+ FreeBSD arm64 and riscv ports don't implement sbrk().
+ It's also apparently not in POSIX - so other systems might also
+ be affected.
+ This needs to be passed on to dlmalloc.
+* We now use DLMALLOC_CPPFLAGS instead of conditionals to pass
+ on flags to dlmalloc.
+* Should be backported to the FreeBSD v2.5.2 package
+ to fix Poudriere fallout.
+---
+ configure.ac | 9 ++++++++-
+ contrib/dlmalloc/Makefile.am | 7 ++-----
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b5cac0b..43b4d1b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -18,10 +18,10 @@ AC_CANONICAL_BUILD
+ AC_CANONICAL_HOST
+
+ AX_CHECK_ENABLE_DEBUG
+-AM_CONDITIONAL(DEBUG, [test x$ax_enable_debug != xno])
+ if [[ x$ax_enable_debug = xno ]]; then
+ # glib does not look at NDEBUG
+ AC_DEFINE(G_DISABLE_ASSERT, 1, [Disable g_assert()])
++ DLMALLOC_CPPFLAGS="$DLMALLOC_CPPFLAGS -DINSECURE=1"
+ fi
+
+ # Use the user provided CXXFLAGS for Scintilla as well.
+@@ -224,6 +224,13 @@ case $host in
+ ;;
+ esac
+
++# Optional UNIX libc functions.
++# FreeBSD arm64 and riscv are missing sbrk(), which can be used by dlmalloc.
++AC_CHECK_FUNCS([sbrk], , [
++ DLMALLOC_CPPFLAGS="$DLMALLOC_CPPFLAGS -DHAVE_MORECORE=0"
++])
++AC_SUBST(DLMALLOC_CPPFLAGS)
++
+ #
+ # Config options
+ #
+diff --git a/contrib/dlmalloc/Makefile.am b/contrib/dlmalloc/Makefile.am
+index 223ed13..73232d7 100644
+--- a/contrib/dlmalloc/Makefile.am
++++ b/contrib/dlmalloc/Makefile.am
+@@ -1,6 +1,6 @@
+ # Source: http://gee.cs.oswego.edu/dl/html/malloc.html
+ #
+-# FIXME: On FreeBSD, we might implement a compatible mremap() based on the BSD mremap() and pass
++# FIXME: On NetBSD, we might implement a compatible mremap() based on the NetBSD mremap() and pass
+ # in -DHAVE_MREMAP=1 -DMREMAP=mremap_bsd. We'll have to add a declaration to malloc.c or
+ # use -include mremap_bsd.h in CPPFLAGS.
+ #
+@@ -8,10 +8,7 @@
+ # for increased portability. There is also AC_LIBOBJ, but it's usually for defining sources of
+ # replacement libraries.
+
+-AM_CPPFLAGS = -DNO_MALLINFO=1 -DNO_MALLOC_STATS=1 -DUSE_LOCKS=1 -DUSE_DL_PREFIX
+-if !DEBUG
+-AM_CPPFLAGS += -DINSECURE=1
+-endif
++AM_CPPFLAGS = @DLMALLOC_CPPFLAGS@ -DNO_MALLINFO=1 -DNO_MALLOC_STATS=1 -DUSE_LOCKS=1 -DUSE_DL_PREFIX
+
+ # FIXME: This optimization is still broken as of GCC v9.3.0.
+ # This is a known GCC bug, triggered by memset() in calloc().
+--
+2.53.0
+