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.