pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/51694: lang/guile20 FreeBSD PLIST variable incorrect because of library naming convention



>Number:         51694
>Category:       pkg
>Synopsis:       lang/guile20 FreeBSD PLIST variable incorrect because of library naming convention
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 07 02:35:00 +0000 2016
>Originator:     David Shao
>Release:        current pkgsrc
>Organization:
>Environment:
FreeBSD xxxxxx.xxx 11.0-RELEASE-p2 FreeBSD 11.0-RELEASE-p2 #0: Mon Oct 24 06:55:27 UTC 2016     root%amd64-builder.daemonology.net@localhost:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
lang/guile20 does not build on FreeBSD because of a PLIST variable that is supposed to reflect the value of a library name.  guile20 wants to know the name of the actual libguile object file library so it can construct another file in the PLIST:

lib/libguile-2.0.${GUILE_LIBNAME}-gdb.scm

But on FreeBSD, neither of the choices for GUILE_LIBNAME set in the Makefile reflect FreeBSD's naming convention for libraries:

ls -la /usr/pkg/lib | grep libguile-2.0
-rw-r--r--   1 root  wheel    9427052 Dec  6 01:34 libguile-2.0.a
-rwxr-xr-x   1 root  wheel       1086 Dec  6 01:34 libguile-2.0.la
lrwxr-xr-x   1 root  wheel         18 Dec  6 01:34 libguile-2.0.so -> libguile-2.0.so.30
-rwxr-xr-x   1 root  wheel    5886812 Dec  6 01:34 libguile-2.0.so.30
-rw-r--r--   1 root  wheel       7793 Dec  6 01:34 libguile-2.0.so.30-gdb.scm

Here the value of 30 seems to come from guile-2.0.12's script file GUILE-VERSION:

LIBGUILE_INTERFACE_CURRENT=30
LIBGUILE_INTERFACE_REVISION=0
LIBGUILE_INTERFACE_AGE=8

Currently the lang/guile20 Makefile assumes that if the platform isn't Darwin, the library name is constructed by subtracting 8 from 30 to get 22 and then forming the string:

so.22.0.8

whereas FreeBSD merely takes the 30 to form

so.30

Incidentally is there a good place for pkgsrc maintainers to document where exactly these magic numbers particular to a port come from, perhaps in the port itself?  It might save some time for the next person ...




>How-To-Repeat:

>Fix:
diff -Nur lang/guile20/Makefile lang/guile20.new/Makefile
--- lang/guile20/Makefile	2016-09-28 02:04:41.000000000 -0700
+++ lang/guile20.new/Makefile	2016-12-06 01:17:30.153649000 -0800
@@ -50,6 +50,7 @@
 
 OPSYSVARS+=		GUILE_LIBNAME
 GUILE_LIBNAME.Darwin=	a
+GUILE_LIBNAME.FreeBSD=	so.30
 GUILE_LIBNAME.*=	so.22.8.0
 
 PLIST_SUBST+=		GUILE_LIBNAME=${GUILE_LIBNAME}



Home | Main Index | Thread Index | Old Index