From 05ff3c227ebc32df8164521b0fdafbf4ac723aa9 Mon Sep 17 00:00:00 2001 From: Mohamed Akram Date: Tue, 7 Apr 2026 20:55:56 +0400 Subject: [PATCH] libgsm: fix dylib and links --- audio/libgsm/Portfile | 30 ++--- audio/libgsm/files/patch-makefile.diff | 180 ++++++++++++++++--------- 2 files changed, 123 insertions(+), 87 deletions(-) diff --git a/audio/libgsm/Portfile b/audio/libgsm/Portfile index 243da270e79..83307dcb3f3 100644 --- a/audio/libgsm/Portfile +++ b/audio/libgsm/Portfile @@ -5,7 +5,7 @@ PortGroup makefile 1.0 name libgsm version 1.0.24 -revision 0 +revision 1 license public-domain categories audio @@ -25,29 +25,19 @@ worksrcdir gsm-1.0-pl24 patchfiles-append patch-makefile.diff -post-patch { - reinplace "s|@@VERSION@@|${version}|g" ${worksrcpath}/Makefile -} - variant universal {} -use_parallel_build no -destroot.env INSTALL_ROOT=${destroot}${prefix} +makefile.prefix_name INSTALL_ROOT +makefile.override-append PREFIX + +build.args VERSION=${version} \ + GSM_INSTALL_INC=${prefix}/include \ + GSM_INSTALL_MAN=${prefix}/share/man/man3 \ + TOAST_INSTALL_MAN=${prefix}/share/man/man1 + +destroot.args {*}${build.args} post-destroot { - move ${worksrcpath}/lib/libgsm.${version}.dylib ${destroot}${prefix}/lib - move ${worksrcpath}/lib/libgsm.1.dylib ${destroot}${prefix}/lib - move ${worksrcpath}/lib/libgsm.dylib ${destroot}${prefix}/lib - - system -W ${destroot}${prefix} \ - "install_name_tool -id ${prefix}/lib/libgsm.${version}.dylib ./lib/libgsm.${version}.dylib" - system -W ${destroot}${prefix} \ - "install_name_tool -change ./lib/libgsm.${version}.dylib ${prefix}/lib/libgsm.${version}.dylib ./bin/tcat" - system -W ${destroot}${prefix} \ - "install_name_tool -change ./lib/libgsm.${version}.dylib ${prefix}/lib/libgsm.${version}.dylib ./bin/toast" - system -W ${destroot}${prefix} \ - "install_name_tool -change ./lib/libgsm.${version}.dylib ${prefix}/lib/libgsm.${version}.dylib ./bin/untoast" - # Rename tcat to gsm-tcat # https://trac.macports.org/ticket/67865 move ${destroot}${prefix}/bin/tcat ${destroot}${prefix}/bin/gsm-tcat diff --git a/audio/libgsm/files/patch-makefile.diff b/audio/libgsm/files/patch-makefile.diff index b338008f6eb..92e8465829a 100644 --- a/audio/libgsm/files/patch-makefile.diff +++ b/audio/libgsm/files/patch-makefile.diff @@ -1,49 +1,45 @@ ---- ./Makefile 2023-11-11 06:19:26 -+++ ./Makefile 2023-11-11 06:24:44 -@@ -71,7 +71,7 @@ - # Leave INSTALL_ROOT empty (or just don't execute "make install") to - # not install gsm and toast outside of this directory. - --INSTALL_ROOT = -+INSTALL_ROOT ?= - - # Where do you want to install the gsm library, header file, and manpages? - # -@@ -80,8 +80,8 @@ - - GSM_INSTALL_ROOT = $(INSTALL_ROOT) - GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/lib --GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/inc --GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3 -+GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/include -+GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/share/man/man3 - - - # Where do you want to install the toast binaries and their manpage? -@@ -91,12 +91,12 @@ - - TOAST_INSTALL_ROOT = $(INSTALL_ROOT) - TOAST_INSTALL_BIN = $(TOAST_INSTALL_ROOT)/bin --TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/man/man1 -+TOAST_INSTALL_MAN = $(TOAST_INSTALL_ROOT)/share/man/man1 - - # Other tools - - SHELL = /bin/sh --LN = ln -+LN = ln -s - BASENAME = basename - AR = ar - ARFLAGS = cr +--- Makefile.orig 2026-03-06 19:16:07 ++++ Makefile 2026-04-07 20:55:17 @@ -140,6 +140,7 @@ # Targets LIBGSM = $(LIB)/libgsm.a -+LIBGSMSO= $(LIB)/libgsm.@@VERSION@@.dylib ++LIBGSMSO= $(LIB)/libgsm.1.dylib TOAST = $(BIN)/toast UNTOAST = $(BIN)/untoast -@@ -279,7 +280,7 @@ +@@ -257,18 +258,20 @@ + # Install targets + + GSM_INSTALL_TARGETS = \ +- $(GSM_INSTALL_LIB)/libgsm.a \ +- $(GSM_INSTALL_INC)/gsm.h \ +- $(GSM_INSTALL_MAN)/gsm.3 \ +- $(GSM_INSTALL_MAN)/gsm_explode.3 \ +- $(GSM_INSTALL_MAN)/gsm_option.3 \ +- $(GSM_INSTALL_MAN)/gsm_print.3 ++ $(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.a \ ++ $(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.1.dylib \ ++ $(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.dylib \ ++ $(DESTDIR)$(GSM_INSTALL_INC)/gsm.h \ ++ $(DESTDIR)$(GSM_INSTALL_MAN)/gsm.3 \ ++ $(DESTDIR)$(GSM_INSTALL_MAN)/gsm_explode.3 \ ++ $(DESTDIR)$(GSM_INSTALL_MAN)/gsm_option.3 \ ++ $(DESTDIR)$(GSM_INSTALL_MAN)/gsm_print.3 + + TOAST_INSTALL_TARGETS = \ +- $(TOAST_INSTALL_BIN)/toast \ +- $(TOAST_INSTALL_BIN)/tcat \ +- $(TOAST_INSTALL_BIN)/untoast \ +- $(TOAST_INSTALL_MAN)/toast.1 ++ $(DESTDIR)$(TOAST_INSTALL_BIN)/toast \ ++ $(DESTDIR)$(TOAST_INSTALL_BIN)/tcat \ ++ $(DESTDIR)$(TOAST_INSTALL_BIN)/untoast \ ++ $(DESTDIR)$(TOAST_INSTALL_MAN)/toast.1 + + + # Default rules +@@ -279,7 +282,7 @@ # Target rules @@ -52,48 +48,98 @@ @-echo $(ROOT): Done. tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result -@@ -299,24 +300,30 @@ - - # The basic API: libgsm - -+$(LIBGSMSO): $(LIB) $(GSM_OBJECTS) -+ $(LD) -o $(LIBGSMSO) -dynamiclib -Wl,-compatibility_version,1,-current_version,@@VERSION@@,-install_name,$(LIBGSMSO) $(GSM_OBJECTS) -lc -+ ln -fs libgsm.@@VERSION@@.dylib lib/libgsm.1.dylib -+ ln -fs libgsm.@@VERSION@@.dylib lib/libgsm.dylib -+ - $(LIBGSM): $(LIB) $(GSM_OBJECTS) - -rm $(RMFLAGS) $(LIBGSM) +@@ -304,11 +307,15 @@ $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS) $(RANLIB) $(LIBGSM) ++$(LIBGSMSO): $(LIB) $(GSM_OBJECTS) ++ -rm $(RMFLAGS) $(LIBGSMSO) ++ $(LD) $(LFLAGS) -o $@ -dynamiclib -Wl,-compatibility_version,1,-current_version,$(VERSION),-install_name,$(GSM_INSTALL_LIB)/libgsm.1.dylib $(GSM_OBJECTS) + # Toast, Untoast and Tcat -- the compress-like frontends to gsm. - $(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM) +-$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM) - $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB) -+ $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LIBGSMO) $(LDLIB) ++$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSMSO) ++ $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB) $(UNTOAST): $(BIN) $(TOAST) -rm $(RMFLAGS) $(UNTOAST) -- $(LN) $(TOAST) $(UNTOAST) -+ $(LN) toast $(UNTOAST) +@@ -350,55 +357,64 @@ + rm $(RMFLAGS) $(TOAST_INSTALL_TARGETS); \ + fi - $(TCAT): $(BIN) $(TOAST) - -rm $(RMFLAGS) $(TCAT) -- $(LN) $(TOAST) $(TCAT) -+ $(LN) toast $(TCAT) +-$(TOAST_INSTALL_BIN)/toast: $(TOAST) ++$(DESTDIR)$(TOAST_INSTALL_BIN)/toast: $(TOAST) + -rm $(RMFLAGS) $@ + cp $(TOAST) $@ + chmod 755 $@ +-$(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast ++$(DESTDIR)$(TOAST_INSTALL_BIN)/untoast: $(DESTDIR)$(TOAST_INSTALL_BIN)/toast + -rm $(RMFLAGS) $@ +- $(LN) $? $@ ++ $(LN) -s toast $@ - # The local bin and lib directories -@@ -426,7 +433,9 @@ +-$(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast ++$(DESTDIR)$(TOAST_INSTALL_BIN)/tcat: $(DESTDIR)$(TOAST_INSTALL_BIN)/toast + -rm $(RMFLAGS) $@ +- $(LN) $? $@ ++ $(LN) -s toast $@ - clean: semi-clean - -rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \ -- $(TOAST) $(TCAT) $(UNTOAST) \ -+ $(LIBGSMSO) $(LIB)/libgsm.1.dylib \ -+ $(LIB)/libgsm.dylib \ -+ $(TOAST) $(TCAT) $(UNTOAST) \ - $(ROOT)/gsm-1.0.tar.gz +-$(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1 ++$(DESTDIR)$(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1 + -rm $(RMFLAGS) $@ + cp $? $@ + chmod 444 $@ +-$(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3 ++$(DESTDIR)$(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3 + -rm $(RMFLAGS) $@ + cp $? $@ + chmod 444 $@ +-$(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3 ++$(DESTDIR)$(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3 + -rm $(RMFLAGS) $@ + cp $? $@ + chmod 444 $@ + +-$(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3 ++$(DESTDIR)$(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3 + -rm $(RMFLAGS) $@ + cp $? $@ + chmod 444 $@ + +-$(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3 ++$(DESTDIR)$(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3 + -rm $(RMFLAGS) $@ + cp $? $@ + chmod 444 $@ + +-$(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h ++$(DESTDIR)$(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h + -rm $(RMFLAGS) $@ + cp $? $@ + chmod 444 $@ + +-$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM) ++$(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM) + -rm $(RMFLAGS) $@ + cp $? $@ + chmod 444 $@ + ++$(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.1.dylib: $(LIBGSMSO) ++ -rm $(RMFLAGS) $@ ++ cp $? $@ ++ chmod 755 $@ + ++$(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.dylib: $(DESTDIR)$(GSM_INSTALL_LIB)/libgsm.1.dylib ++ -rm $(RMFLAGS) $@ ++ $(LN) -s libgsm.1.dylib $@ ++ ++ + # Distribution + + dist: gsm-1.0.tar.gz