pkgconf: bump to 1.5.3, change upstream

Message ID 20180908200507.23939-1-thomas.petazzoni@bootlin.com
State Accepted
Headers show
Series
  • pkgconf: bump to 1.5.3, change upstream
Related show

Commit Message

Thomas Petazzoni Sept. 8, 2018, 8:05 p.m.
The pkgconf project now has a website at pkgconf.org, and hosts its
tarballs at https://distfiles.dereferenced.org/pkgconf/, so this
commit updates the upstream location, and uses the xz-compressed
tarball as well.

pkgconf is bumped to 1.5.3. What prompted this update is the fact that
GStreamer uses the --define-prefix option when calling pkg-config, and
this option didn't exist in pkgconf 0.9.2.

The patch 0001-Fix-all-variables-sysroot-prefix-problem.patch is
dropped, because pkgconf now behaves properly, by prefixing all paths
with the sysroot. This has been verified by testing libdir and
includedir in zlib.pc, and adding some dummy pkgdatadir, mapdir and
sdkdir variables:

$ cat staging/usr/lib/pkgconfig/zlib.pc
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
sharedlibdir=${libdir}
includedir=${prefix}/include
pkgdatadir=${prefix}/pouet
mapdir=${prefix}/this/is/map/dir
sdkdir=${prefix}/this/is/sdk/dir
[...]

$ ./host/bin/pkg-config --variable=libdir zlib
./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib
$ ./host/bin/pkg-config --variable=includedir zlib
./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include
$ ./host/bin/pkg-config --variable=mapdir zlib
./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/this/is/map/dir
$ ./host/bin/pkg-config --variable=sdkdir zlib
./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/this/is/sdk/dir
$ ./host/bin/pkg-config --variable=pkgdatadir zlib
./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/pouet

So, the 0001-Fix-all-variables-sysroot-prefix-problem patch is no
longer necessary.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
Of course, updating pkgconf has the potential of breaking lots of
things, that's why I would suggest to update early in the development
cycle, to leave us enough time to resolve issues.
---
 ...-Fix-all-variables-sysroot-prefix-problem.patch | 64 ----------------------
 package/pkgconf/Config.in                          |  2 +-
 package/pkgconf/pkgconf.hash                       |  2 +-
 package/pkgconf/pkgconf.mk                         |  6 +-
 4 files changed, 5 insertions(+), 69 deletions(-)
 delete mode 100644 package/pkgconf/0001-Fix-all-variables-sysroot-prefix-problem.patch

Comments

Yann E. MORIN Dec. 3, 2018, 10:17 a.m. | #1
On 2018-09-08 22:05 +0200, Thomas Petazzoni spake thusly:
> pkgconf is bumped to 1.5.3.
[--SNIP--]
[--SNIP--]
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
> Of course, updating pkgconf has the potential of breaking lots of
> things, that's why I would suggest to update early in the development
> cycle, to leave us enough time to resolve issues.

What's more, it does fix all the build failures seen with the
(short-lived) bump of libglib2.

I've done a pre tty big build with a random set of packages (15%), plus
I explicitly enabled qt5 and a few qt5 packages, plus libglib2 and a few
glib-based packages (those that were failign on the autobuilders: atk,
dbus-glib...) and the build was succesful, so:

Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.
Thomas Petazzoni Dec. 9, 2018, 3:57 p.m. | #2
Hello,

On Sat,  8 Sep 2018 22:05:07 +0200, Thomas Petazzoni wrote:
> The pkgconf project now has a website at pkgconf.org, and hosts its
> tarballs at https://distfiles.dereferenced.org/pkgconf/, so this
> commit updates the upstream location, and uses the xz-compressed
> tarball as well.
> 
> pkgconf is bumped to 1.5.3. What prompted this update is the fact that
> GStreamer uses the --define-prefix option when calling pkg-config, and
> this option didn't exist in pkgconf 0.9.2.
> 
> The patch 0001-Fix-all-variables-sysroot-prefix-problem.patch is
> dropped, because pkgconf now behaves properly, by prefixing all paths
> with the sysroot. This has been verified by testing libdir and
> includedir in zlib.pc, and adding some dummy pkgdatadir, mapdir and
> sdkdir variables:
> 
> $ cat staging/usr/lib/pkgconfig/zlib.pc
> prefix=/usr
> exec_prefix=${prefix}
> libdir=${exec_prefix}/lib
> sharedlibdir=${libdir}
> includedir=${prefix}/include
> pkgdatadir=${prefix}/pouet
> mapdir=${prefix}/this/is/map/dir
> sdkdir=${prefix}/this/is/sdk/dir
> [...]
> 
> $ ./host/bin/pkg-config --variable=libdir zlib
> ./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib
> $ ./host/bin/pkg-config --variable=includedir zlib
> ./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include
> $ ./host/bin/pkg-config --variable=mapdir zlib
> ./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/this/is/map/dir
> $ ./host/bin/pkg-config --variable=sdkdir zlib
> ./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/this/is/sdk/dir
> $ ./host/bin/pkg-config --variable=pkgdatadir zlib
> ./host/bin/../arm-buildroot-linux-uclibcgnueabi/sysroot/usr/pouet
> 
> So, the 0001-Fix-all-variables-sysroot-prefix-problem patch is no
> longer necessary.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
> Of course, updating pkgconf has the potential of breaking lots of
> things, that's why I would suggest to update early in the development
> cycle, to leave us enough time to resolve issues.
> ---
>  ...-Fix-all-variables-sysroot-prefix-problem.patch | 64 ----------------------
>  package/pkgconf/Config.in                          |  2 +-
>  package/pkgconf/pkgconf.hash                       |  2 +-
>  package/pkgconf/pkgconf.mk                         |  6 +-
>  4 files changed, 5 insertions(+), 69 deletions(-)
>  delete mode 100644 package/pkgconf/0001-Fix-all-variables-sysroot-prefix-problem.patch

Applied to master, thanks.

Thomas
Bernd Kuhls Dec. 9, 2018, 6:31 p.m. | #3
Am Sat, 08 Sep 2018 22:05:07 +0200 schrieb Thomas Petazzoni:

> Of course, updating pkgconf has the potential of breaking lots of
> things, that's why I would suggest to update early in the development
> cycle, to leave us enough time to resolve issues.

Hi,

libxcb got broken due to this bump:
http://autobuild.buildroot.net/?reason=libxcb-1.13

Libxcb configure checks for the variable xcbincludedir of the xcb-proto 
package during configure:
https://cgit.freedesktop.org/xcb/libxcb/tree/configure.ac#n75

This results in

$ /home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/bin/pkg-
config --variable=xcbincludedir xcb-proto

/home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/x86_64-
buildroot-linux-uclibc/sysroot/home/bernd/buildroot/
br8_ffmpeg3_kodi17_github/output/host/bin/../x86_64-buildroot-linux-
uclibc/sysroot/usr/share/xcb

Please note that "/home/bernd/buildroot/..." is present twice in the 
pkgconfig result.

There seems to be an attempt to fix the problem
https://patchwork.freedesktop.org/patch/179233/
but it makes things even worse:

checking XCBPROTO_XCBINCLUDEDIR... /home/bernd/buildroot/
br8_ffmpeg3_kodi17_github/output/host/x86_64-buildroot-linux-uclibc/
sysroot/home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/bin/../
x86_64-buildroot-linux-uclibc/sysroot/home/bernd/buildroot/
br8_ffmpeg3_kodi17_github/output/host/bin/../x86_64-buildroot-linux-
uclibc/sysroot/usr/share/xcb
checking XCBPROTO_XCBPYTHONDIR... /home/bernd/buildroot/
br8_ffmpeg3_kodi17_github/output/host/x86_64-buildroot-linux-uclibc/
sysroot/home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/bin/../
x86_64-buildroot-linux-uclibc/sysroot/home/bernd/buildroot/
br8_ffmpeg3_kodi17_github/output/host/bin/../x86_64-buildroot-linux-
uclibc/sysroot/usr/lib/python2.7/site-packages

Now "/home/bernd/buildroot/..." is present three times...

Regards, Bernd
Yann E. MORIN Dec. 9, 2018, 7:59 p.m. | #4
Bernd, All,

On 2018-12-09 19:31 +0100, Bernd Kuhls spake thusly:
> Am Sat, 08 Sep 2018 22:05:07 +0200 schrieb Thomas Petazzoni:
> 
> > Of course, updating pkgconf has the potential of breaking lots of
> > things, that's why I would suggest to update early in the development
> > cycle, to leave us enough time to resolve issues.
> 
> Hi,
> 
> libxcb got broken due to this bump:
> http://autobuild.buildroot.net/?reason=libxcb-1.13
> 
> Libxcb configure checks for the variable xcbincludedir of the xcb-proto 
> package during configure:
> https://cgit.freedesktop.org/xcb/libxcb/tree/configure.ac#n75
> 
> This results in
> 
> $ /home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/bin/pkg-
> config --variable=xcbincludedir xcb-proto
> 
> /home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/x86_64-
> buildroot-linux-uclibc/sysroot/home/bernd/buildroot/
> br8_ffmpeg3_kodi17_github/output/host/bin/../x86_64-buildroot-linux-
> uclibc/sysroot/usr/share/xcb
> 
> Please note that "/home/bernd/buildroot/..." is present twice in the 
> pkgconfig result.

Have you noticed that it is us that are adding the sysroot to the
xcb-proto.pc file:

    https://git.buildroot.org/buildroot/tree/package/x11r7/xcb-proto/xcb-proto.mk#n18

and thus maybe we need to dfrop this tweak now that pkgconf does it for
us?

Regards,
Yann E. MORIN.

> There seems to be an attempt to fix the problem
> https://patchwork.freedesktop.org/patch/179233/
> but it makes things even worse:
> 
> checking XCBPROTO_XCBINCLUDEDIR... /home/bernd/buildroot/
> br8_ffmpeg3_kodi17_github/output/host/x86_64-buildroot-linux-uclibc/
> sysroot/home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/bin/../
> x86_64-buildroot-linux-uclibc/sysroot/home/bernd/buildroot/
> br8_ffmpeg3_kodi17_github/output/host/bin/../x86_64-buildroot-linux-
> uclibc/sysroot/usr/share/xcb
> checking XCBPROTO_XCBPYTHONDIR... /home/bernd/buildroot/
> br8_ffmpeg3_kodi17_github/output/host/x86_64-buildroot-linux-uclibc/
> sysroot/home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/bin/../
> x86_64-buildroot-linux-uclibc/sysroot/home/bernd/buildroot/
> br8_ffmpeg3_kodi17_github/output/host/bin/../x86_64-buildroot-linux-
> uclibc/sysroot/usr/lib/python2.7/site-packages
> 
> Now "/home/bernd/buildroot/..." is present three times...
> 
> Regards, Bernd
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN Dec. 9, 2018, 8:03 p.m. | #5
Bernd, All,

(Damn, I was not finished typing my mail, I was to quick at sending
it... Sorry for the noise...)

On 2018-12-09 20:59 +0100, Yann E. MORIN spake thusly:
> On 2018-12-09 19:31 +0100, Bernd Kuhls spake thusly:
> > Am Sat, 08 Sep 2018 22:05:07 +0200 schrieb Thomas Petazzoni:
> > > Of course, updating pkgconf has the potential of breaking lots of
> > > things, that's why I would suggest to update early in the development
> > > cycle, to leave us enough time to resolve issues.
> > libxcb got broken due to this bump:
> > http://autobuild.buildroot.net/?reason=libxcb-1.13
> > 
> > Libxcb configure checks for the variable xcbincludedir of the xcb-proto 
> > package during configure:
> > https://cgit.freedesktop.org/xcb/libxcb/tree/configure.ac#n75
> > 
> > This results in
> > 
> > $ /home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/bin/pkg-
> > config --variable=xcbincludedir xcb-proto
> > 
> > /home/bernd/buildroot/br8_ffmpeg3_kodi17_github/output/host/x86_64-
> > buildroot-linux-uclibc/sysroot/home/bernd/buildroot/
> > br8_ffmpeg3_kodi17_github/output/host/bin/../x86_64-buildroot-linux-
> > uclibc/sysroot/usr/share/xcb
> > 
> > Please note that "/home/bernd/buildroot/..." is present twice in the 
> > pkgconfig result.
> 
> Have you noticed that it is us that are adding the sysroot to the
> xcb-proto.pc file:
> 
>     https://git.buildroot.org/buildroot/tree/package/x11r7/xcb-proto/xcb-proto.mk#n18
> 
> and thus maybe we need to dfrop this tweak now that pkgconf does it for

s/dfrop/drop/

> us?

BTW, that tweak was done by someone called Bernd Kuhls, in commit
862e1221d1c (xorg: Bump xcb-proto & libxcb version to 1.10). Granted,
that was back then in January 2014, now almost 5 years ago, so you're
forgiven for forgiving that! ;-)

Regards,
Yann E. MORIN.
Bernd Kuhls Dec. 9, 2018, 8:42 p.m. | #6
Am Sun, 09 Dec 2018 21:03:37 +0100 schrieb Yann E. MORIN:

> BTW, that tweak was done by someone called Bernd Kuhls, in commit
> 862e1221d1c (xorg: Bump xcb-proto & libxcb version to 1.10). Granted,
> that was back then in January 2014, now almost 5 years ago, so you're
> forgiven for forgiving that! ;-)

Hi,

thanks for the reminder, sent http://patchwork.ozlabs.org/patch/1010160/

Regards, Bernd

Patch

diff --git a/package/pkgconf/0001-Fix-all-variables-sysroot-prefix-problem.patch b/package/pkgconf/0001-Fix-all-variables-sysroot-prefix-problem.patch
deleted file mode 100644
index bc2b5273cd..0000000000
--- a/package/pkgconf/0001-Fix-all-variables-sysroot-prefix-problem.patch
+++ /dev/null
@@ -1,64 +0,0 @@ 
-From aa6bbc09e68426592faf722630fe92b6ede75bc8 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Mon, 2 Nov 2015 18:38:00 -0300
-Subject: [PATCH] Fix all-variables sysroot prefix problem
-
-According to the pkg-config specifications (or rather documentation)
-only the -L/-I directory entries should be sysroot-prefixed.
-
-We also need to prefix the mapdir/sdkdir variables since they're used by
-xorg and expected that way.
-
-Also allow prefixing for includedir and libdir since in some silly cases
-the directories may be requested barebones via pkg-config
---variable=includedir libfool for example.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-Added pkgdatadir to the list of to-be-prefixed variables.
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- main.c | 19 ++++++++++++++-----
- 1 file changed, 14 insertions(+), 5 deletions(-)
-
-diff --git a/main.c b/main.c
-index 6947126..ce5e18f 100644
---- a/main.c
-+++ b/main.c
-@@ -313,9 +313,13 @@ print_variable(pkg_t *pkg, void *data, unsigned int flags)
- 			memset(req->buf, 0, sizeof(req->buf));
- 
- 			if (*var == '/' && (flags & PKGF_MUNGE_SYSROOT_PREFIX) &&
--			    (sysroot_dir != NULL && strncmp(var, sysroot_dir, strlen(sysroot_dir))))
--				strlcat(req->buf, sysroot_dir, sizeof(req->buf));
--
-+			    (sysroot_dir != NULL && strncmp(var, sysroot_dir, strlen(sysroot_dir))) &&
-+			    	(!strcmp(req->variable, "includedir") || \
-+				    !strcmp(req->variable, "libdir") || \
-+				    !strcmp(req->variable, "mapdir") || \
-+				    !strcmp(req->variable, "pkgdatadir") || \
-+				    !strcmp(req->variable, "sdkdir")))
-+					strlcat(req->buf, sysroot_dir, sizeof(req->buf));
- 			strlcat(req->buf, var, sizeof(req->buf));
- 			return;
- 		}
-@@ -323,8 +327,13 @@ print_variable(pkg_t *pkg, void *data, unsigned int flags)
- 		strlcat(req->buf, " ", sizeof(req->buf));
- 
- 		if (*var == '/' && (flags & PKGF_MUNGE_SYSROOT_PREFIX) &&
--		    (sysroot_dir != NULL && strncmp(var, sysroot_dir, strlen(sysroot_dir))))
--			strlcat(req->buf, sysroot_dir, sizeof(req->buf));
-+		    (sysroot_dir != NULL && strncmp(var, sysroot_dir, strlen(sysroot_dir))) &&
-+		    	(!strcmp(req->variable, "includedir") || \
-+			    !strcmp(req->variable, "libdir") || \
-+			    !strcmp(req->variable, "mapdir") || \
-+			    !strcmp(req->variable, "pkgdatadir") || \
-+			    !strcmp(req->variable, "sdkdir")))
-+				strlcat(req->buf, sysroot_dir, sizeof(req->buf));
- 
- 		strlcat(req->buf, var, sizeof(req->buf));
- 	}
--- 
-2.4.10
-
diff --git a/package/pkgconf/Config.in b/package/pkgconf/Config.in
index 76fa394c94..a9c5658da9 100644
--- a/package/pkgconf/Config.in
+++ b/package/pkgconf/Config.in
@@ -7,4 +7,4 @@  config BR2_PACKAGE_PKGCONF
 	  2011 to replace pkg-config, which now needs itself to build
 	  itself
 
-	  https://github.com/pkgconf/pkgconf
+	  http://pkgconf.org/
diff --git a/package/pkgconf/pkgconf.hash b/package/pkgconf/pkgconf.hash
index 79191bc94e..7ea7ff57a8 100644
--- a/package/pkgconf/pkgconf.hash
+++ b/package/pkgconf/pkgconf.hash
@@ -1,2 +1,2 @@ 
 # Locally calculated
-sha256	7ec8b516e655e247f4ba976837cee808134785819ab8f538f652fe919cc6c09f	pkgconf-0.9.12.tar.bz2
+sha256	d3468308553c94389dadfd10c4d1067269052b5364276a9d24a643c88485f715	pkgconf-1.5.3.tar.xz
diff --git a/package/pkgconf/pkgconf.mk b/package/pkgconf/pkgconf.mk
index 00b2d017ee..5352f5c962 100644
--- a/package/pkgconf/pkgconf.mk
+++ b/package/pkgconf/pkgconf.mk
@@ -4,9 +4,9 @@ 
 #
 ################################################################################
 
-PKGCONF_VERSION = 0.9.12
-PKGCONF_SITE = https://github.com/pkgconf/pkgconf/releases/download/pkgconf-$(PKGCONF_VERSION)
-PKGCONF_SOURCE = pkgconf-$(PKGCONF_VERSION).tar.bz2
+PKGCONF_VERSION = 1.5.3
+PKGCONF_SITE = https://distfiles.dereferenced.org/pkgconf/
+PKGCONF_SOURCE = pkgconf-$(PKGCONF_VERSION).tar.xz
 PKGCONF_LICENSE = pkgconf license
 PKGCONF_LICENSE_FILES = COPYING