From 9b4d5b31abcda2a46774fe9729682ac57dfb1e82 Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Fri, 21 Feb 2025 06:29:52 +0000 Subject: [PATCH 1/7] copied from https://salsa.debian.org/science-team/euslisp/-/tree/master/debian/patches?ref_type=heads: remove link to libeus from executables, this also remove EUSLIB, which provides RPATH settings that Debian dislike. --- lisp/Makefile.Linux | 2 +- lisp/Makefile.Linux.thread | 2 +- lisp/Makefile.Linux64 | 2 +- lisp/Makefile.LinuxARM | 2 +- lisp/Makefile.generic2 | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lisp/Makefile.Linux b/lisp/Makefile.Linux index e54a713e6..6201e56ee 100644 --- a/lisp/Makefile.Linux +++ b/lisp/Makefile.Linux @@ -128,7 +128,7 @@ XLIB= -L/usr/X11R6/lib -lX11 # specify directories where euslisp's libraries are located. EUSRPATH=-R$(ADLIBDIR):$(EUSDIR)/lib/Linux EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR) -GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl +GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext # POSIX Thread THREADDEP=mthread_posix.c diff --git a/lisp/Makefile.Linux.thread b/lisp/Makefile.Linux.thread index 2e0fd806e..c6dc04fdd 100644 --- a/lisp/Makefile.Linux.thread +++ b/lisp/Makefile.Linux.thread @@ -85,7 +85,7 @@ XLIB= -L/usr/X11R6/lib -lX11 # specify directories where euslisp's libraries are located. EUSRPATH=-R$(ADLIBDIR):$(EUSDIR)/lib/Linux EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR) -GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl +GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext # POSIX Thread THREADDEP=mthread_posix.c diff --git a/lisp/Makefile.Linux64 b/lisp/Makefile.Linux64 index cf1f198e1..0f59324f7 100644 --- a/lisp/Makefile.Linux64 +++ b/lisp/Makefile.Linux64 @@ -73,7 +73,7 @@ XLIB= -L/usr/X11R6/lib -lX11 # specify directories where euslisp's libraries are located. EUSRPATH=-R$(ADLIBDIR) EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR) -GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl +GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext # POSIX Thread THREADDEP=mthread_posix.c diff --git a/lisp/Makefile.LinuxARM b/lisp/Makefile.LinuxARM index e49262b35..7a9cd04ea 100644 --- a/lisp/Makefile.LinuxARM +++ b/lisp/Makefile.LinuxARM @@ -98,7 +98,7 @@ XLIB= -L/usr/X11R6/lib -lX11 # specify directories where euslisp's libraries are located. EUSLIB= -Xlinker -R$(ADLIBDIR):$(EUSDIR)/lib/LinuxARM -L$(ADLIBDIR) -GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl +GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext # POSIX Thread THREADDEP=mthread_posix.c diff --git a/lisp/Makefile.generic2 b/lisp/Makefile.generic2 index 992f0f296..214716d48 100644 --- a/lisp/Makefile.generic2 +++ b/lisp/Makefile.generic2 @@ -234,7 +234,7 @@ $(BINDIR)/eusg: $(BINDIR)/eus2 $(MTOBJECTS) $(ADLIBDIR)/$(LIBEUSGEO) ($(CC) -o $(BINDIR)/eusg $(LDFLAGS) \ $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \ $(LCOBJECTS) $(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \ - $(COMPOBJECTS) $(EUSLIB) $(GEOLIB) $(RAWLIB) ; \ + $(COMPOBJECTS) $(RAWLIB) ; \ cd $(BINDIR); rm -f euscomp; ln -sf eusg euscomp) $(BINDIR)/eusx: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \ @@ -246,7 +246,7 @@ $(BINDIR)/eusx: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \ $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) \ $(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \ $(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \ - $(EUSLIB) $(EUSXLIB) $(GEOLIB) $(XLIB) $(RAWLIB);) + $(RAWLIB);) $(BINDIR)/eus: $(BINDIR)/eusx $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \ $(LCOBJECTS) $(COMPOBJECTS) \ @@ -257,7 +257,7 @@ $(BINDIR)/eus: $(BINDIR)/eusx $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS $(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \ $(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \ $(MAPOPTION) \ - $(EUSLIB) $(EUSXLIB) $(GEOLIB) $(XLIB) $(RAWLIB) \ + $(XLIB) $(RAWLIB) \ >$(ADLIBDIR)/eusmap ; \ cd $(BINDIR); rm -f euscomp eusx; \ ln -sf eus euscomp; ln -sf eus eusx; ) @@ -278,7 +278,7 @@ $(BINDIR)/eusgl: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \ $(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \ $(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \ $(MAPOPTION) \ - $(EUSLIB) $(EUSXLIB) $(GEOLIB) $(GLLIB) $(XLIB) $(RAWLIB)\ + $(GLLIB) $(XLIB) $(RAWLIB) \ >$(ADLIBDIR)/eusmap ;) $(BINDIR)/raweus.so: $(NOKOBJECTS) $(KOBJECTS) $(LOBJECTS) \ From 1a4a05d18d092b3da15628ecc226a0d8775c805f Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Wed, 26 Feb 2025 06:13:06 +0000 Subject: [PATCH 2/7] Enable to load libeusgeo from EUSDIR/ARCHDIR/lib and /usr/lib/@@DEB_HOST_MULTIARCH@@ Copied from https://salsa.debian.org/science-team/euslisp/-/blob/master/debian/patches/load-lib-from-eusdir-arch-lib.patch Debian installs plugin libraries to /usr/lib/@@DEB_HOST_MULTIARCH@@, so enable to load libesugeo/libeusx/libeusgl from either EUSDIR/ARCHDIR/lib or /usr/lib/@@DEB_HOST_MULTIARCH@@ we introduced lisp::*deb-host-multiarch* to set DEB_HOST_MULTIARCH based on archtecture. --- lib/eusglrt.l | 32 +++++++++++++++++++++++++++++++- lib/eusrt.l | 36 +++++++++++++++++++++++++++++++++++- lib/llib/pgsql.l | 1 + lisp/Makefile.generic2 | 6 +++--- lisp/c/eus.c | 1 + lisp/image/jpeg/eusjpeg.l | 23 ++++++++++++++++++++++- lisp/l/eusstart.l | 33 ++++++++++++++++++++++++++++++++- test/loader.l | 5 +++-- 8 files changed, 128 insertions(+), 9 deletions(-) diff --git a/lib/eusglrt.l b/lib/eusglrt.l index ac6a3b522..090b04500 100644 --- a/lib/eusglrt.l +++ b/lib/eusglrt.l @@ -22,7 +22,37 @@ ;; ) ;; irix (push :GL *features*) - (sys::exec-module-init "oglforeign" "opengl/src/loadgl.l") + (let ((libeusgl (find-if #'(lambda (f) (probe-file f)) + (list (concatenate string *eusdir* + (format nil "~A/lib/libeusgl.so" + (cond ((member :solaris2 *features*) "SunOS5") + ((member :irix *features*) "IRIX") + ((member :irix6 *features*) "IRIX6") + ((member :darwin *features*) "Darwin") + ((member :sh4 *features*) "LinuxSH4") + ((member :linux *features*) + (cond + ((member :x86_64 *features*) + "Linux64") + ((member :arm *features*) + "LinuxARM") + (t "Linux"))) + ((member :SunOS4.1 *features*) "SunOS4") + ((member :Windows *features*) "Windows") + ((member :Windows95 *features*) "Win95") + ((member :WindowsNT *features*) "WinNT") + ((member :alpha *features*) "Alpha") + ((member :cygwin *features*) "Cygwin")))) + (format nil "/usr/lib/~A/euslisp/libeusgl.so" lisp::*deb-host-multiarch*))))) + (if (eq (unix::access libeusgl) t) + (let ((libmod (load libeusgl :entry nil)) + (modules `("oglforeign" "gldecl" "glconst" "glforeign" "gluconst" "gluforeign" "glxconst" + "glxforeign" "eglforeign" "eglfunc" "glutil" "gltexture" "glprim" + "gleus" "glview" "toiv"))) + (nconc sys::*load-entries* + (sys::list-module-initializers libmod modules)) + (sys::exec-module-init "oglforeign")) + (sys::exec-module-init "oglforeign" "opengl/src/loadgl.l"))) (in-package "GL") (use-package "GEOMETRY") (unless (find-symbol "*LIBGL*") ; for SunOS4 with .so bug diff --git a/lib/eusrt.l b/lib/eusrt.l index 841557508..663f35a22 100644 --- a/lib/eusrt.l +++ b/lib/eusrt.l @@ -46,7 +46,36 @@ ;; initilize Xlib interface (when (and (or (substringp "sx" (pathname-name *program-name*)) (substringp "gl" (pathname-name *program-name*))) - (sys::exec-module-init "xforeign" "xwindow/loadx.l") + (let ((libeusx (find-if #'(lambda (f) (probe-file f)) + (list (concatenate string *eusdir* + (format nil "~A/lib/libeusx.so" + (cond ((member :solaris2 *features*) "SunOS5") + ((member :irix *features*) "IRIX") + ((member :irix6 *features*) "IRIX6") + ((member :darwin *features*) "Darwin") + ((member :sh4 *features*) "LinuxSH4") + ((member :linux *features*) + (cond + ((member :x86_64 *features*) + "Linux64") + ((member :arm *features*) + "LinuxARM") + (t "Linux"))) + ((member :SunOS4.1 *features*) "SunOS4") + ((member :Windows *features*) "Windows") + ((member :Windows95 *features*) "Win95") + ((member :WindowsNT *features*) "WinNT") + ((member :alpha *features*) "Alpha") + ((member :cygwin *features*) "Cygwin")))) + (format nil "/usr/lib/~A/euslisp/libeusx.so" lisp::*deb-host-multiarch*))))) + (if (eq (unix::access libeusx) t) + (let ((libmod (load libeusx :entry nil)) + (modules `("xforeign" "Xdecl" "Xeus" "Xevent" "Xgraphics" "Xcolor" "Xpanel" + "Xitem" "Xtext" "Xmenu" "Xscroll" "Xcanvas" "Xtop" "Xapplwin"))) + (nconc sys::*load-entries* + (sys::list-module-initializers libmod modules)) + (sys::exec-module-init "xforeign")) + (sys::exec-module-init "xforeign" "xwindow/loadx.l"))) #+(and :thread :x11r6.1) (InitThreads) ) @@ -86,6 +115,11 @@ ;; (unless (find-symbol "*XLIB*") ; for SunOS4 with .so bug (in-package "IMAGE") + (let ((libmod (find "libeusgeo" lisp::*loaded-modules* + :key #'lisp::load-module-file-name :test #'equal)) + (modules `("pixword" "RGBHLS" "convolve" "piximage" "pbmfile" "image_correlation"))) + (nconc sys::*load-entries* + (sys::list-module-initializers libmod modules))) (sys::exec-module-init "pixword") (sys::exec-module-init "RGBHLS") (sys::exec-module-init "convolve") diff --git a/lib/llib/pgsql.l b/lib/llib/pgsql.l index 2cf36e081..55d2db3be 100644 --- a/lib/llib/pgsql.l +++ b/lib/llib/pgsql.l @@ -97,6 +97,7 @@ ((probe-file "/usr/lib/libpq.so") (load "/usr/lib/libpq.so")) ((probe-file "/usr/lib/x86_64-linux-gnu/libpq.so") (load "/usr/lib/x86_64-linux-gnu/libpq.so")) ((probe-file "/usr/lib/i386-linux-gnu/libpq.so") (load "/usr/lib/i386-linux-gnu/libpq.so")) + ((probe-file (format nil "/usr/lib/~A/libpq.so" lisp::*deb-host-multiarch*)) (load (format nil "/usr/lib/~A/libpq.so" lisp::*deb-host-multiarch*))) (t nil))) #+:cygwin (setq *libpq* (cond diff --git a/lisp/Makefile.generic2 b/lisp/Makefile.generic2 index 214716d48..298bc08e8 100644 --- a/lisp/Makefile.generic2 +++ b/lisp/Makefile.generic2 @@ -199,7 +199,7 @@ $(ADLIBDIR)/$(LIBEUSGEO): $(GEOOBJECTS) $(GEOCOBJECTS) \ $(IMGCOBJECTS) $(IMGOBJECTS)) $(ADLIBDIR)/$(LIBEUSGL): $(GLCOBJECTS) $(GLOBJECTS) ( $(LD) $(SOFLAGS) -o $(ADLIBDIR)/$(LIBEUSGL) \ - $(GLCOBJECTS) $(GLOBJECTS)) + $(OBJDIR)/oglforeign.c.o $(OBJDIR)/eglfunc.o $(GLOBJECTS)) $(CDIR)/makedate.c: $(filter-out $(CDIR)/makedate.c, $(shell echo $(CDIR)/*.c)) \ $(LDIR)/*.l $(GEODIR)/*.l $(COMPDIR)/*.l \ @@ -278,7 +278,7 @@ $(BINDIR)/eusgl: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \ $(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \ $(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \ $(MAPOPTION) \ - $(GLLIB) $(XLIB) $(RAWLIB) \ + $(OBJDIR)/util.o $(GLLIB) $(XLIB) $(RAWLIB) \ >$(ADLIBDIR)/eusmap ;) $(BINDIR)/raweus.so: $(NOKOBJECTS) $(KOBJECTS) $(LOBJECTS) \ @@ -336,7 +336,7 @@ $(XOBJECTS) $(XTKOBJECTS): $(OBJDIR)/compile_xwindow.log $(OBJDIR)/compile_xwindow.log: $(BINDIR)/eusg $(patsubst $(OBJDIR)/%.o,$(XWINDOWDIR)/%.l,$(XOBJECTS)) $(patsubst $(OBJDIR)/%.o,$(XWINDOWDIR)/%.l,$(XTKOBJECTS)) (cd $(XWINDOWDIR); $(BINDIR)/euscomp <../$(TOOLDIR)/compile_xwindow.l > $(OBJDIR)/compile_xwindow.log) $(GLOBJECTS): $(OBJDIR)/compile_gl.log -$(OBJDIR)/compile_gl.log: $(BINDIR)/eusx $(patsubst $(OBJDIR)/%.o,$(GLDIR)/%.l,$(GLOBJECTS)) +$(OBJDIR)/compile_gl.log: $(BINDIR)/eus $(patsubst $(OBJDIR)/%.o,$(GLDIR)/%.l,$(GLOBJECTS)) ($(BINDIR)/eusx <$(TOOLDIR)/compile_gl.l > $(OBJDIR)/compile_gl.log) $(XWINDOWDIR)/Xlibfuncs.o: $(XWINDOWDIR)/Xlibfuncs.c (cd $(XWINDOWDIR) ; \ diff --git a/lisp/c/eus.c b/lisp/c/eus.c index 1390dca7e..06f40da2b 100644 --- a/lisp/c/eus.c +++ b/lisp/c/eus.c @@ -1264,6 +1264,7 @@ register context *ctx; Spevalof(PACKAGE)=userpkg; defvar(ctx,"*PROGRAM-NAME*",makestring(progname,strlen(progname)),lisppkg); + defvar(ctx,"*DEB-HOST-MULTIARCH*",makestring("@@DEB_HOST_MULTIARCH@@",strlen("@@DEB_HOST_MULTIARCH@@")),lisppkg); /* exec_module_initializers(); */ ctx->vsp=ctx->stack; diff --git a/lisp/image/jpeg/eusjpeg.l b/lisp/image/jpeg/eusjpeg.l index 5c3b2fe08..50242dea1 100644 --- a/lisp/image/jpeg/eusjpeg.l +++ b/lisp/image/jpeg/eusjpeg.l @@ -17,7 +17,28 @@ (eval-when (load eval) (let ((m - (load-foreign (format nil "~A/~A/lib/jpegmemcd" *eusdir* (unix:getenv "ARCHDIR"))))) + (load-foreign + (find-if #'probe-file + (list (format nil "~A/~A/lib/jpegmemcd.so" *eusdir* + (cond ((member :solaris2 *features*) "SunOS5") + ((member :irix *features*) "IRIX") + ((member :irix6 *features*) "IRIX6") + ((member :darwin *features*) "Darwin") + ((member :sh4 *features*) "LinuxSH4") + ((member :linux *features*) + (cond + ((member :x86_64 *features*) + "Linux64") + ((member :arm *features*) + "LinuxARM") + (t "Linux"))) + ((member :SunOS4.1 *features*) "SunOS4") + ((member :Windows *features*) "Windows") + ((member :Windows95 *features*) "Win95") + ((member :WindowsNT *features*) "WinNT") + ((member :alpha *features*) "Alpha") + ((member :cygwin *features*) "Cygwin"))) + (format nil "/usr/lib/~A/euslisp/jpegmemcd.so" lisp::*deb-host-multiarch*)))))) (defforeign jpeg_header m "JPEG_header" () :integer) (defforeign jpeg_decompress m "JPEG_decompress" () :integer) (defforeign jpeg_compress m "JPEG_compress" () :integer))) diff --git a/lisp/l/eusstart.l b/lisp/l/eusstart.l index e69909e04..d8b311620 100644 --- a/lisp/l/eusstart.l +++ b/lisp/l/eusstart.l @@ -377,7 +377,38 @@ (sys:alloc 50000) (in-package "GEOMETRY") #-:SunOS4.1 - (sys::exec-module-init "intersection" nil) + (unless (sys::exec-module-init "intersection" nil) + (let ((libeusgeo (find-if #'(lambda (f) (probe-file f)) + (list (concatenate string *eusdir* + (format nil "~A/lib/libeusgeo.so" + (cond ((member :solaris2 *features*) "SunOS5") + ((member :irix *features*) "IRIX") + ((member :irix6 *features*) "IRIX6") + ((member :darwin *features*) "Darwin") + ((member :sh4 *features*) "LinuxSH4") + ((member :linux *features*) + (cond + ((member :x86_64 *features*) + "Linux64") + ((member :arm *features*) + "LinuxARM") + (t "Linux"))) + ((member :SunOS4.1 *features*) "SunOS4") + ((member :Windows *features*) "Windows") + ((member :Windows95 *features*) "Win95") + ((member :WindowsNT *features*) "WinNT") + ((member :alpha *features*) "Alpha") + ((member :cygwin *features*) "Cygwin")))) + (format nil "/usr/lib/~A/euslisp/libeusgeo.so" lisp::*deb-host-multiarch*))))) + (when (eq (unix::access libeusgeo) t) + (let ((libmod (load libeusgeo :entry nil)) + (modules `("intersection" "geoclasses" "geopack" "geobody" + "primt" "compose" "polygon" "viewing" "viewport" + "viewsurface" "hid" "shadow" "bodyrel" + "dda"))) + (nconc sys::*load-entries* + (sys::list-module-initializers libmod modules)) + (sys::exec-module-init "intersection" nil))))) #+:SunOS4.1 (unless (sys::exec-module-init "intersection" nil) (let ((libeusgeo (concatenate string *eusdir* diff --git a/test/loader.l b/test/loader.l index b67148025..f9639db2c 100644 --- a/test/loader.l +++ b/test/loader.l @@ -4,7 +4,7 @@ ;; check because ldmodule have #if ARM for objname, handle (deftest test-load - (let ((libpath (format nil "~A/~A/lib/libeusgeo.so" *eusdir* + (let ((libpath (find-if #'probe-file (list (format nil "~A/~A/lib/libeusgeo.so" *eusdir* (cond ((member :solaris2 *features*) "SunOS5") ((member :irix *features*) "IRIX") ((member :irix6 *features*) "IRIX6") @@ -22,7 +22,8 @@ ((member :Windows95 *features*) "Win95") ((member :WindowsNT *features*) "WinNT") ((member :alpha *features*) "Alpha") - ((member :cygwin *features*) "Cygwin")))) + ((member :cygwin *features*) "Cygwin"))) + (format nil "/usr/lib/~A/euslisp/libeusgeo.so" lisp::*deb-host-multiarch*)))) libmod) (format *error-output* "loading ~A~%" libpath) (setq libmod (load libpath :entry nil)) From caf57242a6141d276e5aaffcd974feceb5c0eb79 Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Fri, 21 Feb 2025 06:31:02 +0000 Subject: [PATCH 3/7] .travis.sh: skip patches already applied --- .travis.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.sh b/.travis.sh index ad91074f9..1ca59d9cc 100755 --- a/.travis.sh +++ b/.travis.sh @@ -93,8 +93,8 @@ if [[ "$QEMU" != "" ]]; then export GIT_SSL_NO_VERIFY=1 git clone http://salsa.debian.org/science-team/euslisp /tmp/euslisp-dfsg for file in $(cat /tmp/euslisp-dfsg/debian/patches/series); do - # skip patches already applied by https://github.com/euslisp/EusLisp/pull/482, https://github.com/euslisp/EusLisp/pull/511, https://github.com/euslisp/EusLisp/pull/523, https://github.com/euslisp/EusLisp/pull/524, https://github.com/euslisp/EusLisp/pull/525 - [[ $file =~ use-rtld-global-loadelf.patch|fix-arm-ldflags.patch|fix-library-not-linked-against-libc.patch|fix-manpage-has-bad-whatis-entry-on-man-pages.patch|fix-jpegmemcd-compile-error.patch|install-bin-lib-man-to-destdir.patch|install-eusjpeg-lib.patch|fix-lintian-typo.patch|fix-makefile-linux-MACHINE.patch|fix-makefile-generic1-version.patch|fix-localtime-arm32.patch|fix-ppc64el-test.patch|fix-for-blhc.patch ]] && continue; + # skip patches already applied by https://github.com/euslisp/EusLisp/pull/482, https://github.com/euslisp/EusLisp/pull/511, https://github.com/euslisp/EusLisp/pull/522, https://github.com/euslisp/EusLisp/pull/523, https://github.com/euslisp/EusLisp/pull/524, https://github.com/euslisp/EusLisp/pull/525 + [[ $file =~ use-rtld-global-loadelf.patch|fix-arm-ldflags.patch|fix-library-not-linked-against-libc.patch|fix-manpage-has-bad-whatis-entry-on-man-pages.patch|fix-jpegmemcd-compile-error.patch|install-bin-lib-man-to-destdir.patch|install-eusjpeg-lib.patch|fix-lintian-typo.patch|fix-makefile-linux-MACHINE.patch|fix-makefile-generic1-version.patch|fix-localtime-arm32.patch|fix-ppc64el-test.patch|fix-for-blhc.patch|remove-libeus-link-from-exe.patch|load-lib-from-eusdir-arch-lib.patch ]] && continue; # skip patch already applied by https://github.com/euslisp/EusLisp/pull/441, https://github.com/euslisp/EusLisp/pull/509, https://github.com/euslisp/EusLisp/pull/512, https://github.com/euslisp/EusLisp/pull/514, https://github.com/euslisp/EusLisp/pull/517 if [[ $file =~ fix-for-reprotest.patch ]]; then filterdiff -p1 -x 'lisp/image/jpeg/makefile' -x 'lisp/comp/comp.l' < /tmp/euslisp-dfsg/debian/patches/$file > /tmp/euslisp-dfsg/debian/patches/$file-fix From 65d472cb2652d4267128cd0c8d4cad22ec6b0eee Mon Sep 17 00:00:00 2001 From: Kei Okada Date: Thu, 27 Feb 2025 07:25:11 +0000 Subject: [PATCH 4/7] Makefile.Darwin: remove link to libeus from executables, that Debian dislike --- lisp/Makefile.Darwin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/Makefile.Darwin b/lisp/Makefile.Darwin index 841a9e20e..c95061768 100644 --- a/lisp/Makefile.Darwin +++ b/lisp/Makefile.Darwin @@ -88,7 +88,7 @@ XLIB= -L/opt/local/lib -L/opt/X11/lib -lX11 # specify directories where euslisp's libraries are located. EUSLIB= -L$(ADLIBDIR) -GLLIB= -L$/opt/X11/lib -lGLU -lGL -lXext -leusgl +GLLIB= -L$/opt/X11/lib -lGLU -lGL -lXext # POSIX Thread THREADDEP=mthread_posix.c From a5ad5c2893399ed995ab3eacf00f9faa20a917ae Mon Sep 17 00:00:00 2001 From: Kei Date: Thu, 25 Sep 2025 14:35:32 +0900 Subject: [PATCH 5/7] Fix for reprotest, make share to generate same code for every compile --- lisp/l/common.l | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lisp/l/common.l b/lisp/l/common.l index 4c2c22520..fcbae19f1 100644 --- a/lisp/l/common.l +++ b/lisp/l/common.l @@ -62,11 +62,9 @@ (defun lisp-implementation-type () "EusLisp") (defun lisp-implementation-version () (format nil - "EusLisp ~A~A for ~A created on ~A(~A)" + "EusLisp ~A for ~A created on ~A" (car lisp-implementation-version) - (cdddr lisp-implementation-version) *OS-VERSION* - (cadr lisp-implementation-version) (caddr lisp-implementation-version) )) (setq euserror nil) From e0eb3c42ad089fed576408b830e6ba13f4b8aa1d Mon Sep 17 00:00:00 2001 From: Kei Date: Thu, 25 Sep 2025 14:05:12 +0900 Subject: [PATCH 6/7] Fix hardening-no-bindnow by adding DEB_BUILD_MAINT_OPTIONS = hardening=+all to rule and pass that variable to CFLAGS/SOFLAGS/LDFLAGS, use gcc for LD. --- lisp/Makefile.Linux64 | 7 ++++--- lisp/Makefile.LinuxARM | 12 +++++++----- lisp/Makefile.generic2 | 2 +- lisp/image/jpeg/makefile | 6 +++--- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/lisp/Makefile.Linux64 b/lisp/Makefile.Linux64 index 0f59324f7..841659216 100644 --- a/lisp/Makefile.Linux64 +++ b/lisp/Makefile.Linux64 @@ -46,7 +46,7 @@ MACHINE=x86_64 DEBUG= -g WFLAGS= -Wno-old-style-definition #-Wall -Wno-unused -Wno-switch -Wno-return-type -CFLAGS= $(WFLAGS) -fPIC -D$(MACHINE) -DLinux -D_REENTRANT -DVERSION=\"$(VERSION)\" \ +CFLAGS:= $(CFLAGS) $(CPPFLAGS) $(WFLAGS) -fPIC -D$(MACHINE) -DLinux -D_REENTRANT -DVERSION=\"$(VERSION)\" \ -DLIB6 $(ALIGN_FUNCTIONS) \ $(DEBUG) $(CPU_OPTIMIZE) $(THREAD) -D$(XVERSION) \ -DGCC $(GCC3) \ @@ -83,8 +83,9 @@ THREADDEP=mthread_posix.c OFLAGS= -O2 # link-editor's default flags ?-rdynamic -SOFLAGS= -shared -build-id -LDFLAGS= -rdynamic -fno-stack-protector -z execstack $(ADD_LDFLAGS) +SOFLAGS:= $(LDFLAGS) -shared +LD=gcc +LDFLAGS:= $(LDFLAGS) -rdynamic -fno-stack-protector -z execstack $(ADD_LDFLAGS) MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/mthread_posix.o #MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/pthreads.o MAPOPTION= $(OBJDIR)/par.o diff --git a/lisp/Makefile.LinuxARM b/lisp/Makefile.LinuxARM index 7a9cd04ea..780754d32 100644 --- a/lisp/Makefile.LinuxARM +++ b/lisp/Makefile.LinuxARM @@ -68,7 +68,7 @@ DEBUG= -g # If you use libc.so.5, remove -DLIB6 option. # In order to include thread library, libc.so.6 is preferrable. -CFLAGS=$(WFLAGS) -D$(MACHINE) -DLinux -DARM -D_REENTRANT -DVERSION=\"$(VERSION)\" \ +CFLAGS:= $(CFLAGS) $(CPPFLAGS) $(WFLAGS) -D$(MACHINE) -DLinux -DARM -D_REENTRANT -DVERSION=\"$(VERSION)\" \ -DLIB6 $(ALIGN_FUNCTIONS) $(ADD_CFLAGS) \ $(DEBUG) $(CPU_OPTIMIZE) $(THREAD) -D$(XVERSION) \ -DGCC $(GCC3) \ @@ -97,7 +97,8 @@ RAWLIB=-ldl -lm -lpthread -lc XLIB= -L/usr/X11R6/lib -lX11 # specify directories where euslisp's libraries are located. -EUSLIB= -Xlinker -R$(ADLIBDIR):$(EUSDIR)/lib/LinuxARM -L$(ADLIBDIR) +EUSRPATH=-R$(ADLIBDIR):$(EUSDIR)/lib/LinuxARM +EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR) GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext # POSIX Thread @@ -107,9 +108,10 @@ THREADDEP=mthread_posix.c # If you don't like optimization, comment out the next line. OFLAGS=-O2 -# link-editor's default flags ?-rdynamic -SOFLAGS= -shared -Xlinker -build-id -LDFLAGS= -rdynamic -fno-stack-protector -Wl,-z,execstack $(ADD_LDFLAGS) +# link-editor's default flags ?-rdynamic +SOFLAGS:= $(LDFLAGS) -shared -Xlinker -build-id +LD=gcc +LDFLAGS:= $(LDFLAGS) -rdynamic -fno-stack-protector -Wl,-z,execstack $(ADD_LDFLAGS) MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/mthread_posix.o #MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/pthreads.o MAPOPTION=$(OBJDIR)/par.o diff --git a/lisp/Makefile.generic2 b/lisp/Makefile.generic2 index 298bc08e8..8f0a53a48 100644 --- a/lisp/Makefile.generic2 +++ b/lisp/Makefile.generic2 @@ -313,7 +313,7 @@ $(GLCOBJECTS): $(CC) -c -o $@ $(CFLAGS) $(OFLAGS) $(GLINCLUDE) $(@F:.o=.c)) $(GCCLS): MKDIR (cd $(TOOLDIR); \ - $(CC) -o $(BINDIR)/gccls gccls.c ;\ + $(CC) $(LDFLAGS) -o $(BINDIR)/gccls $(CFLAGS) gccls.c ;\ cd $(EUSDIR) ) $(LCOBJECTS): $(GCCLS) (cd $(LDIR); $(BINDIR)/gccls constants.l; \ diff --git a/lisp/image/jpeg/makefile b/lisp/image/jpeg/makefile index 0f353667b..7b7982b40 100644 --- a/lisp/image/jpeg/makefile +++ b/lisp/image/jpeg/makefile @@ -53,11 +53,11 @@ $(LIBDIR)/jpegmemcd.$(LSFX): $(OBJFILES) $(LD) -fPIC $(LDFLAGS) -o $(LIBDIR)/jpegmemcd.$(LSFX) $(OBJDIR)/jpegmemcd.o $(OBJDIR)/jmemsrc.o $(OBJDIR)/jmemdst.o -ljpeg $(OBJDIR)/jpegmemcd.o: jpegmemcd.c - $(CC) $(CFLAGS) -c -o $@ $^ + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $^ $(OBJDIR)/jmemsrc.o: jmemsrc.c - $(CC) $(CFLAGS) -c -o $@ $^ + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $^ $(OBJDIR)/jmemdst.o: jmemdst.c - $(CC) $(CFLAGS) -c -o $@ $^ + $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $^ clean: rm -f $(OBJFILES) $(LIBDIR)/jpegmemcd.$(LSFX) eusjpeg.c eusjpeg.h From d9471e57da74041a6f40b4aa6102d8bb88062e49 Mon Sep 17 00:00:00 2001 From: Kei Date: Thu, 25 Sep 2025 14:48:19 +0900 Subject: [PATCH 7/7] .travis.sh: add more patches to skip --- .travis.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.sh b/.travis.sh index 1ca59d9cc..74b11e0d8 100755 --- a/.travis.sh +++ b/.travis.sh @@ -94,10 +94,10 @@ if [[ "$QEMU" != "" ]]; then git clone http://salsa.debian.org/science-team/euslisp /tmp/euslisp-dfsg for file in $(cat /tmp/euslisp-dfsg/debian/patches/series); do # skip patches already applied by https://github.com/euslisp/EusLisp/pull/482, https://github.com/euslisp/EusLisp/pull/511, https://github.com/euslisp/EusLisp/pull/522, https://github.com/euslisp/EusLisp/pull/523, https://github.com/euslisp/EusLisp/pull/524, https://github.com/euslisp/EusLisp/pull/525 - [[ $file =~ use-rtld-global-loadelf.patch|fix-arm-ldflags.patch|fix-library-not-linked-against-libc.patch|fix-manpage-has-bad-whatis-entry-on-man-pages.patch|fix-jpegmemcd-compile-error.patch|install-bin-lib-man-to-destdir.patch|install-eusjpeg-lib.patch|fix-lintian-typo.patch|fix-makefile-linux-MACHINE.patch|fix-makefile-generic1-version.patch|fix-localtime-arm32.patch|fix-ppc64el-test.patch|fix-for-blhc.patch|remove-libeus-link-from-exe.patch|load-lib-from-eusdir-arch-lib.patch ]] && continue; + [[ $file =~ use-rtld-global-loadelf.patch|fix-arm-ldflags.patch|fix-library-not-linked-against-libc.patch|fix-manpage-has-bad-whatis-entry-on-man-pages.patch|fix-jpegmemcd-compile-error.patch|install-bin-lib-man-to-destdir.patch|install-eusjpeg-lib.patch|fix-lintian-typo.patch|fix-makefile-linux-MACHINE.patch|fix-makefile-generic1-version.patch|fix-localtime-arm32.patch|fix-ppc64el-test.patch|fix-for-blhc.patch|remove-libeus-link-from-exe.patch|load-lib-from-eusdir-arch-lib.patch|fix-for-hardening.patch ]] && continue; # skip patch already applied by https://github.com/euslisp/EusLisp/pull/441, https://github.com/euslisp/EusLisp/pull/509, https://github.com/euslisp/EusLisp/pull/512, https://github.com/euslisp/EusLisp/pull/514, https://github.com/euslisp/EusLisp/pull/517 if [[ $file =~ fix-for-reprotest.patch ]]; then - filterdiff -p1 -x 'lisp/image/jpeg/makefile' -x 'lisp/comp/comp.l' < /tmp/euslisp-dfsg/debian/patches/$file > /tmp/euslisp-dfsg/debian/patches/$file-fix + filterdiff -p1 -x 'lisp/image/jpeg/makefile' -x 'lisp/l/common.l' -x 'lisp/comp/comp.l' < /tmp/euslisp-dfsg/debian/patches/$file > /tmp/euslisp-dfsg/debian/patches/$file-fix file=$file-fix fi echo $file