Subject: should package renames mean dependency bumps?
To: None <tech-pkg@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 11/01/2007 19:27:15
A few days ago in my "ERROR: libglade is not installed; can't buildlink
files." email I asked about this.
I have same problem again (third time lately).
Building inkscape fails with:
ERROR: libsigcpp is not installed; can't buildlink files.
inkscape includes x11/gtkmm/buildlink3.mk which includes
devel/glibmm/buildlink3.mk which includes devel/libsigc++/buildlink3.mk.
I have good enough gtkmm and glibmm installed so pkgsrc doesn't know to
install devel/libsigc++.
I have libsigc++2-2.0.17nb1 installed.
libsigc++2 was renamed to libsigc++ on 2007/09/21.
What can we do to make pkgsrc work?
One solution is to bump the required versions for the packages that depend
on a renamed package. So I have installed:
glibmm-2.12.10
And at the time of the libsigc++ rename, it was 2.12.10.
Something like this should fix my problem:
diff -u -r1.9 buildlink3.mk
--- devel/glibmm/buildlink3.mk 21 Sep 2007 13:03:35 -0000 1.9
+++ devel/glibmm/buildlink3.mk 2 Nov 2007 00:19:40 -0000
@@ -12,7 +12,7 @@
BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}glibmm
.if !empty(GLIBMM_BUILDLINK3_MK:M+)
-BUILDLINK_API_DEPENDS.glibmm+= glibmm>=2.6.1
+BUILDLINK_API_DEPENDS.glibmm+= glibmm>=2.12.10nb1
BUILDLINK_ABI_DEPENDS.glibmm+= glibmm>=2.8.3nb1
BUILDLINK_PKGSRCDIR.glibmm?= ../../devel/glibmm
.endif # GLIBMM_BUILDLINK3_MK
But now that forces me to upgrade glibmm (which should build the new
libsigc++ package) for no reason other than a rename of the libsigc++2
package.
Any other ideas?
What about dummy packages? I don't think I want to do that either.
We alread use (abuse some would say) BUILDLINK_API_DEPENDS for similar
situations, so maybe just doing my diff above is fine. Let me know and I
will commit above patch and document this policy.
Jeremy C. Reed
p.s. Why doesn't anyone else hit these problems? We should run bulk builds
that don't rebuild packages if a good-enough package is already available.