pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/44163: misc/gkrellm-weather compiles in incorrect path for GrabWeather (+FIX)
>Number: 44163
>Category: pkg
>Synopsis: misc/gkrellm-weather compiles in incorrect path for
>GrabWeather (+FIX)
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Nov 28 13:35:00 +0000 2010
>Originator: Robert Elz
>Release: NetBSD 5.1 (pkgsrc current 2010-11-28)
>Organization:
Prince of Songkla University
>Environment:
System: NetBSD jade.coe.psu.ac.th 5.1 NetBSD 5.1 (JADE-1.12-20101117) #5: Wed
Nov 17 05:30:55 ICT 2010
kre%jade.coe.psu.ac.th@localhost:/usr/obj/5.1/kernels/i386/JADE i386
Architecture: i386
Machine: i386
>Description:
misc/gkrellm-weather references the (included) GrabWeather script
twice, and in two completely different ways. One of those is
patched (by patches/patch-aa) to remove the path, and so reply
upon the user's PATH setting (that's OK, if not ideal). The other
uses
PREFIX "/bin/GrabWeather"
which if PREFIX were correct would be perfect (GrabWeather gets
installed in ${PREFIX}/bin).
However, while gkrellm-weather's pkgsrc Makefile includes
MAKE_ENV+= PREFIX=${PREFIX:Q}
it uses gmake, and for that (it seems) the explicit setting of
PREFIX in the Makefile
PREFIX = /usr/local
overrides the one that pkgsrc is putting in the environment.
In any case, what gets compiled generates ...
strings /usr/pkg/lib/gkrellm2/plugins/gkrellweather.so | grep Grab
/usr/local/bin/GrabWeather %s
which is not what we want, and leads to diagnostics at runtime
when the script cannot be found (but only if a non-default weather
station is selected, with the default, the other path is used, and
this doesn't happen).
>How-To-Repeat:
I use pkg_comp with NetBSD 5.0 release sets and libkver installed,
but none of that is relevant to this problem.
Simply build misc/gkrellm-weather and inspect the gkrellweather.so
produced (or actually use it, and select any non-default weather
station - I use VTSS).
>Fix:
There must be a dozen different ways to fix this one, I chose the
version with minimal impact on pkgsrc itself (ie: modify the
Makefile and only the Makefile - this change requires a revbump,
so the Makefile is going to get modified, keeping the entire
fix there means only one modified cvs file...
My patch is below.
Alternatives would be to simply modify patch-aa so it corrects
this problem as well as the other (more obviously incorrect)
reference to GrabWeather (it would probably make sense for both
references to be implemented the same way, but ...)
Or, the Makefile (the gkrellm-weather Makefile, rather than pkgsrc's)
could be modified (patch-ab is already touching it) by simply
removing the setting of PREFIX from there, then the one from the
environment would be used (I assume.)
Or ...
Also, I have no way to test it, as I have no idea what it is
used for, but this stuff claims to use nls (locales) and the
setting of the locale directory is based upon the (I think)
incorrect version fo PREFIX - again, pkgsrc attempts to
override that by putting a setting for LOCALEDIR in gmake's
environment, but if that doesn't work for PREFIX, I doubt it
works for LOCALEDIR either.
In any case, the following change to the pkgsrc Makefile
causes the correct path (/usr/pkg/bin/GrabWeather in my case)
to be built info the .so file, so this one is effective, if
not ideal. Altering patches/patch-aa so it actually inserted
PREFIX in place of the path it deletes rather than simply
deleting it (what I mean will be obvious to anyone who looks
at the patch) would allow this patch to make the two references
consistent.
Apply the following patch in pkgsrc/misc/gkrellm-weather
Index: Makefile
===================================================================
RCS file: /cvsroot/NetBSD/pkgsrc/misc/gkrellm-weather/Makefile,v
retrieving revision 1.34
diff -u -r1.34 Makefile
--- Makefile 15 Nov 2010 22:57:56 -0000 1.34
+++ Makefile 28 Nov 2010 13:20:54 -0000
@@ -2,7 +2,7 @@
DISTNAME= gkrellweather-2.0.7
PKGNAME= gkrellm-weather-2.0.7
-PKGREVISION= 6
+PKGREVISION= 7
CATEGORIES= misc
MASTER_SITES= http://kmlinux.fjfi.cvut.cz/~makovick/gkrellm/
EXTRACT_SUFX= .tgz
@@ -20,6 +20,12 @@
REPLACE_PERL= GrabWeather
BUILD_TARGET= gkrellweather.so
+SUBST_CLASSES+= pfx
+SUBST_MESSAGE.pfx= PREFIX replacement
+SUBST_STAGE.pfx= post-patch
+SUBST_FILES.pfx= gkrellweather.c
+SUBST_SED.pfx= -e 's,PREFIX,"${PREFIX}",'
+
MAKE_ENV+= LOCALEDIR=${PREFIX}/${PKGLOCALEDIR}/locale
MAKE_ENV+= enable_nls=1
MAKE_ENV+= PREFIX=${PREFIX:Q}
Home |
Main Index |
Thread Index |
Old Index