Opened 13 years ago

Closed 13 years ago

#29514 closed update (fixed)

pkgconfig 0.26 update

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: pkgconfig

Description

pkg-config 0.26 is available, however we cannot update to it. pkg-config requires glib, and pkg-config 0.25 and earlier included a stripped-down copy of glib1 that it built and used. pkg-config 0.26 no longer has this, so it now would need to depend on a glib port. But we cannot do that because glib1 and glib2 both depend on pkgconfig. Therefore we cannot update pkgconfig.

This pkgconfig 0.26 glib build loop is discussed on the opensuse packaging list. One suggestion there is to change the glib1 port so it no longer depends on pkgconfig, then depend on glib1 in the pkgconfig port. Another suggestion is to create a pkgconfig025 port for the old version of pkg-config that still builds standalone, use that for glib1, and use glib1 for pkgconfig.

Since this issue has just arisen a few days ago, I'm going to do nothing now, and see if the situation changes. (Perhaps upstream will reinstate the bundled copy of glib.)

Attachments (2)

pkgconfig-0.26.diff (1.7 KB) - added by ryandesign (Ryan Carsten Schmidt) 13 years ago.
proposed patch
0.26-2.diff (1.5 KB) - added by ryandesign (Ryan Carsten Schmidt) 13 years ago.
revised patch proposal

Download all attachments as: .zip

Change History (11)

comment:1 Changed 13 years ago by afb@…

pkg-config 0.26 requires glib 2.0 (not glib1), so you need to bootstrap a static version of glib 2.28.6 first (without pkg-config) similar to how a static version of glib 1.2.10 was bundled with pkg-config 0.25

http://lists.freedesktop.org/archives/pkg-config/2011-May/000753.html

comment:2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Thanks for the pointer. I've read the discussion there now, and the current wisdom seems to be that glib2 could be modified to not require pkg-config at all (using environment variables like ZLIB_CFLAGS). The same would have to happen for dbus, which glib2 uses. Then pkg-config could use glib2 without a circular dependency.

I wouldn't use the word "static" to describe this. The glib2 that's built would still be dynamic libraries as they are now. They would just learn about their dependencies using environment variables and arguments provided in the glib2 Portfile, instead of querying pkg-config.

comment:3 Changed 13 years ago by afb@…

If you change the glib2 build to not use pkg-config, that would work too...

  --with-installed-glib   Use installed Glib-2.x

Just meant if you wanted an upgrade similar to the current pkg-config 0.25.

BTW: I think that was the way it was already being built on Win32, for instance:

  # On Win32, use the normal installed GLib.  Yes, this is a circular
  # dependency. But then, only experienced hackers that presumably can
  # work around that will be building pkg-config and GLib on Win32
  # anyway (especially using the auto*/configure/libtool
  # mechanism). Others use prebuilt versions.

I'm going to use a static glib for my /opt/pkgconfig install, but that's different.

comment:4 in reply to:  3 Changed 13 years ago by afb@…

I'm going to use a static glib for my /opt/pkgconfig install, but that's different.

Which kinda sucked since you also needed to bundle a static libintl and libiconv...
But beyond bloat (12x), it "works". For MacPorts it's better to change glib2/dbus.

comment:5 in reply to:  2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign@…:

glib2 could be modified to not require pkg-config

Done in r79195

comment:6 in reply to:  2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to ryandesign@…:

The same would have to happen for dbus, which glib2 uses.

glib2 no longer uses dbus; see #28985.

Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: pkgconfig-0.26.diff added

proposed patch

comment:7 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

All the prerequisites are taken care of. Attached is a diff that updates pkgconfig to 0.26. Before committing, I'll test it on my system for awhile. Others are welcome to test it as well. I don't expect it to break anything but if it does please say so here.

Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: 0.26-2.diff added

revised patch proposal

comment:8 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Previous patch didn't actually work when pkgconfig wasn't already installed. New patch adds necessary configure environment variables.

comment:9 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Committed in r79633.

Note: See TracTickets for help on using tickets.