Index | Thread | Search

From:
Omar Polo <op@omarpolo.com>
Subject:
Re: [update] Brandy 1.20.1 -> 1.23.2
To:
Jag Talon <jag@aangat.lahat.computer>
Cc:
ports@openbsd.org, Stuart Henderson <stu@spacehopper.org>
Date:
Sun, 04 Aug 2024 20:54:35 +0200

Download raw body.

Thread
On 2024/08/03 08:43:32 -0400, Jag Talon <jag@aangat.lahat.computer> wrote:
> Ah makes sense! Ok here's the patch without the conversions.

upon a brief look the other patches seemed fine to me, please consider
sending them upstream.  Just a tip however, you can use sizeof(var) in
some situation to avoid having to repeat the constant or literal size
(that both could go out of sync accidentally.)

I agree with sthen however that for these non-portability things it's
better to hear from upstream.  Then, we can even backport them while
they're doing a release eventually.

> OK?

(btw, <https://marc.info/?l=openbsd-ports&m=164273956406777&w=2>)

It looks fine to me.  However I find strange when ports don't output the
commands they're running (it makes reading the failures in bulk builds
harder), so remove the '@' from their makefile.

With that I noticed that the port was built with -O3 which is not OK:
the port should respect the cflags from the port infrastructure (default
to '-O2 -pipe', so it's easy to spot).

Then, I realize that with a bit of effort we could avoid patching the
makefile to adjust the cflags and ldflags.  It means that we have to
switch from the post-build to a do-build, but meh.  It's subjective, but
I slightly prefer it like this.

(while here i've also change the makefile to use -C instead of cd.)


Index: Makefile
===================================================================
RCS file: /home/cvs/ports/lang/brandy/Makefile,v
diff -u -p -r1.6 Makefile
--- Makefile	26 Sep 2023 12:02:00 -0000	1.6
+++ Makefile	4 Aug 2024 18:40:30 -0000
@@ -1,42 +1,56 @@
-COMMENT =	interpreter for BBC Basic (Basic V)
+COMMENT =	interpreter for BBC Basic (Basic VI)
 
-DISTNAME =	brandy-1.20.1
-REVISION =	1
+V =		1.23.2
+DISTNAME =	MatrixBrandy-${V}
+PKGNAME =	brandy-${V}
+EXTRACT_SUFX =	.tar.xz
 
 CATEGORIES =	lang
 
-HOMEPAGE =	http://jaguar.orpheusweb.co.uk/branpage.html
+HOMEPAGE =	http://brandy.matrixnetwork.co.uk/
+MAINTAINER =	Jag Talon <jag@aangat.lahat.computer>
 
 # GPLv2+
 PERMIT_PACKAGE =	Yes
 
-WANTLIB +=	SDL c m
+WANTLIB += SDL X11 c m pthread
 
-SITES =		${SITE_SOURCEFORGE:=brandy/}
+SITES =		http://brandy.matrixnetwork.co.uk/releases/
 
 LIB_DEPENDS +=	devel/sdl
+USE_GMAKE =	Yes
 
-CFLAGS +=	-I${LOCALBASE}/include/SDL
-LDFLAGS +=	-L${LOCALBASE}/lib
+SDL_CFLAGS !!=	sdl-config --cflags
+SDL_LDFLAGS !!=	sdl-config --libs
 
-MAKE_FLAGS =	CC="${CC}" CFLAGS="${CFLAGS}" LD="${CC}" LDFLAGS="${LDFLAGS}"
+# since we disable git
+CFLAGS +=	-DBRANDY_RELEASE
 
+CFLAGS +=	${SDL_CFLAGS} -DDEFAULT_IGNORE -Wall
+LDFLAGS +=	${SDL_LDFLAGS} -lm -pthread -L${X11BASE}/lib/ -lX11
+
+MAKE_FLAGS =	CC="${CC}" LD="${CC}" LIBS="${LDFLAGS}" CFLAGS="${CFLAGS}"
 MAKE_FILE =	makefile
 
 NO_TEST =	Yes
 
-post-build:
-	cd ${WRKSRC}; \
-	${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} -f makefile.text
+do-build:
+	${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} -f makefile -C "${WRKSRC}" \
+		${MAKE_FLAGS} CFLAGS="${CFLAGS} -DUSE_SDL" all
+	${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} -f makefile.text -C "${WRKSRC}" \
+		${MAKE_FLAGS} CFLAGS="${CFLAGS} -DNO_SDL" clean all
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/tbrandy ${PREFIX}/bin/brandy
 	${INSTALL_PROGRAM} ${WRKSRC}/brandy ${PREFIX}/bin/brandy-sdl
+
 	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/brandy
-	${INSTALL_DATA} ${WRKSRC}/docs/basic ${PREFIX}/share/doc/brandy
-	${INSTALL_DATA} ${WRKSRC}/docs/messages ${PREFIX}/share/doc/brandy
-	${INSTALL_DATA} ${WRKSRC}/docs/use ${PREFIX}/share/doc/brandy
+	${INSTALL_DATA} ${WRKSRC}/docs/* ${PREFIX}/share/doc/brandy
+
 	${INSTALL_DATA_DIR} ${PREFIX}/share/examples/brandy
-	${INSTALL_DATA} ${WRKSRC}/examples/* ${PREFIX}/share/examples/brandy
+	${INSTALL_DATA} ${WRKSRC}/examples/[!Mode7]* ${PREFIX}/share/examples/brandy
+
+	${INSTALL_DATA_DIR} ${PREFIX}/share/examples/brandy/Mode7
+	${INSTALL_DATA} ${WRKSRC}/examples/Mode7/* ${PREFIX}/share/examples/brandy/Mode7
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/lang/brandy/distinfo,v
diff -u -p -r1.1.1.1 distinfo
--- distinfo	19 Mar 2017 21:49:31 -0000	1.1.1.1
+++ distinfo	4 Aug 2024 18:16:30 -0000
@@ -1,2 +1,2 @@
-SHA256 (brandy-1.20.1.tar.gz) = YiPgbFQf7qxKWrrXM/3g0Uxuveta0DbAPQ+r5C/vA+w=
-SIZE (brandy-1.20.1.tar.gz) = 422587
+SHA256 (MatrixBrandy-1.23.2.tar.xz) = CI8WhMIBtzn6MObxvjlDNGNitQjbMpUWoZWN9tAXyQA=
+SIZE (MatrixBrandy-1.23.2.tar.xz) = 461888
Index: patches/patch-makefile
===================================================================
RCS file: /home/cvs/ports/lang/brandy/patches/patch-makefile,v
diff -u -p -r1.2 patch-makefile
--- patches/patch-makefile	11 Mar 2022 19:28:51 -0000	1.2
+++ patches/patch-makefile	4 Aug 2024 18:29:59 -0000
@@ -1,11 +1,25 @@
---- makefile.orig	Sat Mar 18 21:34:08 2017
-+++ makefile	Sat Mar 18 21:35:05 2017
-@@ -3,7 +3,7 @@
- CC = gcc
- LD = gcc
+- remove git.mk since we're not in a git repo
+- show commands ran by make
+
+Index: makefile
+--- makefile.orig
++++ makefile
+@@ -5,8 +5,6 @@ LD = gcc
+ STRIP = strip
+ ADDFLAGS = ${BRANDY_BUILD_FLAGS}
  
--CFLAGS += -g -DDEBUG -I/usr/include/SDL -DUSE_SDL
-+CFLAGS += -DUSE_SDL
- CFLAGS2 = -O2 -I/usr/include/SDL -DUSE_SDL
+-include build/git.mk
+-
+ #CFLAGS = -g -DDEBUG $(shell sdl-config --cflags)  -I/usr/local/include/SDL -DUSE_SDL -DDEFAULT_IGNORE -Wall $(GITFLAGS) $(ADDFLAGS)
+ #CFLAGS = -g $(shell sdl-config --cflags)  -I/usr/local/include/SDL -DUSE_SDL -DDEFAULT_IGNORE -Wall $(GITFLAGS) $(ADDFLAGS)
+ CFLAGS = -O3 -fPIE $(shell sdl-config --cflags) -DUSE_SDL -DDEFAULT_IGNORE -Wall $(GITFLAGS) $(ADDFLAGS)
+@@ -78,8 +76,7 @@ brandy:	$(OBJ)
  
- LDFLAGS +=
+ include build/depends.mk
+ 
+-.c.o:; 	@echo -n "$@ "
+-	@$(CC) $(CFLAGS) $< -c -o $@ >/dev/null
++.c.o:; 	$(CC) $(CFLAGS) $< -c -o $@
+ 
+ recompile:
+ 	$(CC) $(CFLAGS) $(SRC) $(LIBS) -o brandy
Index: patches/patch-makefile_text
===================================================================
RCS file: /home/cvs/ports/lang/brandy/patches/patch-makefile_text,v
diff -u -p -r1.2 patch-makefile_text
--- patches/patch-makefile_text	11 Mar 2022 19:28:51 -0000	1.2
+++ patches/patch-makefile_text	4 Aug 2024 18:30:52 -0000
@@ -1,11 +1,25 @@
---- makefile.text.orig	Thu Jun 27 14:56:55 2013
-+++ makefile.text	Tue Mar 14 22:53:59 2017
-@@ -3,7 +3,7 @@
- CC = gcc
- LD = gcc
+- remove git.mk since we're not in a git repo
+- show commands ran by make
+
+Index: makefile.text
+--- makefile.text.orig
++++ makefile.text
+@@ -5,8 +5,6 @@ LD = gcc
+ STRIP = strip
+ ADDFLAGS = ${BRANDY_BUILD_FLAGS}
  
--CFLAGS += -g -DDEBUG -DNO_SDL
-+CFLAGS += -DNO_SDL
- CFLAGS2 = -O2 -DNO_SDL
+-include build/git.mk
+-
+ #CFLAGS = -g -DDEBUG -I/usr/include/SDL -DNO_SDL -DDEFAULT_IGNORE -Wall $(GITFLAGS) $(ADDFLAGS)
+ #CFLAGS = -g -I/usr/include/SDL -DNO_SDL -DDEFAULT_IGNORE -Wall $(GITFLAGS) $(ADDFLAGS)
+ CFLAGS = -O3 -fPIE -I/usr/include/SDL -DNO_SDL -DDEFAULT_IGNORE -Wall $(GITFLAGS) $(ADDFLAGS)
+@@ -57,8 +55,7 @@ sbrandy:	$(OBJ) $(SIMPLETEXTOBJ)
+ include build/depends.mk
  
- LDFLAGS =
+ .c.o:
+-	@echo -n "$@ "
+-	@$(CC) $(CFLAGS) $< -c -o $@
++	$(CC) $(CFLAGS) $< -c -o $@
+ 
+ trecompile:
+ 	$(CC) $(CFLAGS) $(SRC) $(TEXTONLYSRC) $(LIBS) -o tbrandy
Index: patches/patch-src_keyboard_c
===================================================================
RCS file: patches/patch-src_keyboard_c
diff -N patches/patch-src_keyboard_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_keyboard_c	4 Aug 2024 18:24:28 -0000
@@ -0,0 +1,11 @@
+Index: src/keyboard.c
+--- src/keyboard.c.orig
++++ src/keyboard.c
+@@ -108,6 +108,7 @@
+ **
+ */
+ 
++#include <sys/select.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
Index: pkg/DESCR
===================================================================
RCS file: /home/cvs/ports/lang/brandy/pkg/DESCR,v
diff -u -p -r1.1.1.1 DESCR
--- pkg/DESCR	19 Mar 2017 21:49:31 -0000	1.1.1.1
+++ pkg/DESCR	4 Aug 2024 18:15:40 -0000
@@ -1,5 +1,5 @@
-Brandy implements Basic V, the dialect of Basic that Acorn Computers
+Brandy implements Basic VI, the dialect of Basic that Acorn Computers
 supplied with their ranges of desktop computers that use the ARM
-processor such as the Archimedes and RiscPC. Basic V is an extended
+processor such as the Archimedes and RiscPC. Basic VI is an extended
 version of BBC Basic. This was the Basic used on the BBC Micro that
 Acorn made during the early 1980s.
Index: pkg/PLIST
===================================================================
RCS file: /home/cvs/ports/lang/brandy/pkg/PLIST,v
diff -u -p -r1.3 PLIST
--- pkg/PLIST	11 Mar 2022 19:28:52 -0000	1.3
+++ pkg/PLIST	4 Aug 2024 18:15:40 -0000
@@ -1,24 +1,67 @@
 @bin bin/brandy
 @bin bin/brandy-sdl
 share/doc/brandy/
-share/doc/brandy/basic
-share/doc/brandy/messages
-share/doc/brandy/use
+share/doc/brandy/COPYING
+share/doc/brandy/ChangeLog
+share/doc/brandy/Config.txt
+share/doc/brandy/Mode7.txt
+share/doc/brandy/README
+share/doc/brandy/ScreenModes.txt
+share/doc/brandy/banana-bugs.txt
+share/doc/brandy/basic.txt
+share/doc/brandy/compiling.txt
+share/doc/brandy/extensions.txt
+share/doc/brandy/graphics.txt
+share/doc/brandy/history.txt
+share/doc/brandy/identification.txt
+share/doc/brandy/internals.txt
+share/doc/brandy/jgh-notes.txt
+share/doc/brandy/keyboard-codes
+share/doc/brandy/keymap.txt
+share/doc/brandy/messages.txt
+share/doc/brandy/networking.txt
+share/doc/brandy/osbyte.txt
+share/doc/brandy/raspi-gpio.txt
+share/doc/brandy/standalone-app.txt
+share/doc/brandy/sys-calls.txt
+share/doc/brandy/use.txt
 share/examples/brandy/
+share/examples/brandy/BubbleUniverse
+share/examples/brandy/Mode7/
+share/examples/brandy/Mode7/M7terminal
+share/examples/brandy/Mode7/README
+share/examples/brandy/Mode7/SAA505xDemo
+share/examples/brandy/Mode7/m7point
+share/examples/brandy/Mode7/mode7demo
+share/examples/brandy/Mode7/telstar
+share/examples/brandy/Mode7/ttxtedit
 share/examples/brandy/README
+share/examples/brandy/SAA505Xlib
+share/examples/brandy/Snow
+share/examples/brandy/bin2c
 share/examples/brandy/cmdline
 share/examples/brandy/combsort
 share/examples/brandy/cricket
-share/examples/brandy/dow
+share/examples/brandy/gpiolib
 share/examples/brandy/graphdemo
 share/examples/brandy/hanoi
 share/examples/brandy/hex
 share/examples/brandy/lands
+share/examples/brandy/mouse-doodle
 share/examples/brandy/pastriang
+share/examples/brandy/platformcheck
+share/examples/brandy/shroud
+share/examples/brandy/sierpinski
 share/examples/brandy/sieve
+share/examples/brandy/sine
+share/examples/brandy/sphere
+share/examples/brandy/spiral
+share/examples/brandy/spiral-pattern
+share/examples/brandy/splash
 share/examples/brandy/tekdemo1
 share/examples/brandy/tekdemo2
 share/examples/brandy/teklib
+share/examples/brandy/tekspiral
 share/examples/brandy/trees1
 share/examples/brandy/trees2
 share/examples/brandy/tvtime