Skip to contentSkip to conversation

unionfs: add missing dependency on host-pkg-config

PATCH New Arnout Vandecappelle (Essensium/Mind) 5 participants 18 messages Sep 21, 2012 – Sep 22, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

---
How was this never caught by the autobuilders? Do they happen to build host-pkg-config most of the time? If so, maybe we should make the randpackageconfig select a smaller number of packages to increase the chance of finding this kind of issue...

 package/unionfs/unionfs.mk |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/unionfs/unionfs.mk +1 -1
index e2ffd72..eb8109e 100644
@@ -7,7 +7,7 @@
 UNIONFS_VERSION = 0.26
 UNIONFS_SITE = http://podgorny.cz/unionfs-fuse/releases
 UNIONFS_SOURCE = unionfs-fuse-$(UNIONFS_VERSION).tar.xz
-UNIONFS_DEPENDENCIES = libfuse
+UNIONFS_DEPENDENCIES = libfuse host-pkg-config
 UNIONFS_LICENSE = BSD-3c
 UNIONFS_LICENSE_FILES = LICENSE
 
Signature · 1 line
tg: (669d07b..) t/unionfs-host-pkg-config (depends on: master)
#1 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 1 line · Arnout Vandecappelle (Essensium/Mind)
Quoted 4 lines

How was this never caught by the autobuilders? Do they happen to build host-pkg-config most of the time? If so, maybe we should make the randpackageconfig select a smaller number of packages to increase the chance of finding this kind of issue...

Because it uses any pkg-config around, it doesn't honour PKG_CONFIG nor check for it as a dependency.

Makefile:CPPFLAGS += $(shell pkg-config --cflags fuse) Makefile:LIB = $(shell pkg-config --libs fuse)

As long as there's one on PATH it'll just work.
Regards.

#2 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 10 lines · Gustavo Zacarias
Quoted 1 line · Arnout Vandecappelle (Essensium/Mind)
Quoted 4 lines

How was this never caught by the autobuilders? Do they happen to build host-pkg-config most of the time? If so, maybe we should make the randpackageconfig select a smaller number of packages to increase the chance of finding this kind of issue...

Quoted 7 lines

Because it uses any pkg-config around, it doesn't honour PKG_CONFIG nor check for it as a dependency.

Makefile:CPPFLAGS += $(shell pkg-config --cflags fuse) Makefile:LIB = $(shell pkg-config --libs fuse)

As long as there's one on PATH it'll just work.

No, unless libfuse-dev is installed on the autobuilders. /usr/bin/pkg-config
doesn't look in $(STAGING_DIR)...

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#3 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 3 lines · Arnout Vandecappelle

No, unless libfuse-dev is installed on the autobuilders.
/usr/bin/pkg-config
doesn't look in $(STAGING_DIR)...

I'm on gentoo so -dev doesn't exist in my world, it's builtin :) Regards.

#4 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

In reply to Arnout Vandecappelle
Quoted 8 lines · Arnout Vandecappelle
Quoted 4 lines

Makefile:CPPFLAGS += $(shell pkg-config --cflags fuse) Makefile:LIB = $(shell pkg-config --libs fuse)

As long as there's one on PATH it'll just work.

No, unless libfuse-dev is installed on the autobuilders.
/usr/bin/pkg-config
doesn't look in $(STAGING_DIR)...

Also on that Makefile expression the result will fail with an error message passing by (missing pkg-config or fuse.pc) but won't make make (sic) bailout, try it...
Regards.

#5 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 7 lines · Gustavo Zacarias
Quoted 5 lines · Arnout Vandecappelle
Quoted 4 lines

Makefile:CPPFLAGS += $(shell pkg-config --cflags fuse) Makefile:LIB = $(shell pkg-config --libs fuse)

As long as there's one on PATH it'll just work.

Quoted 7 lines
Quoted 3 lines

No, unless libfuse-dev is installed on the autobuilders.
/usr/bin/pkg-config
doesn't look in $(STAGING_DIR)...

Also on that Makefile expression the result will fail with an error message passing by (missing pkg-config or fuse.pc) but won't make make (sic) bailout, try it...

But the final link will fail because of undefined fuse_xxx symbols,
because there is no -lfuse added by pkg-config.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#6 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 2 lines · Arnout Vandecappelle

But the final link will fail because of undefined fuse_xxx symbols,
because there is no -lfuse added by pkg-config.

Yes, that's why i Acked your patch, it IS a problem.
It's just not the problem stated in the commit msg about the autobuilders not detecting it (host-pkg-config almost always present, that changes nothing as long as there's a pkg-config around) :) Regards.

#7 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 1 line · Gustavo Zacarias

host-pkg-config almost always present

Maybe we should make that _always_ present, and add host-pkg-config to
the toolchain build... It is more or less part of the toolchain, and it doesn't hurt to build it if it's not needed.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#8 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 5 lines · Arnout Vandecappelle
Quoted 1 line

host-pkg-config almost always present

Maybe we should make that _always_ present, and add host-pkg-config to
the toolchain build... It is more or less part of the toolchain, and it doesn't hurt to build it if it's not needed.

Possible, host variant doesn't use anything that we don't have around and it's pretty straightforward.
Also adding a helper script for new packages would be neat, at least to check for the usual suspects, with some magic grepping of the unpacked tarballs.
Regards.

#9 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

In reply to Arnout Vandecappelle
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

Quoted 1 line · Gustavo Zacarias
Quoted 1 line

host-pkg-config almost always present

Arnout> Maybe we should make that _always_ present, and add Arnout> host-pkg-config to the toolchain build... It is more or less Arnout> part of the toolchain, and it doesn't hurt to build it if it's Arnout> not needed.

That's an option, but it's fairly slow to build (mainly because of the embedded glib), so people might not like it (especially if using an external toolchain). Perhaps it would be better to move to pkgconf instead then (I think Gentoo uses it)?

https://github.com/pkgconf/pkgconf

Signature · 1 line
Bye, Peter Korsgaard
#10 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 6 lines · Peter Korsgaard

That's an option, but it's fairly slow to build (mainly because of the embedded glib), so people might not like it (especially if using an external toolchain). Perhaps it would be better to move to pkgconf instead then (I think Gentoo uses it)?

https://github.com/pkgconf/pkgconf

It's not a default in Gentoo yet, though it's available. Anybody run some tests switching to it? Regards.

#11 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 7 lines · Gustavo Zacarias
Quoted 5 lines · Peter Korsgaard

That's an option, but it's fairly slow to build (mainly because of the embedded glib), so people might not like it (especially if using an external toolchain). Perhaps it would be better to move to pkgconf instead then (I think Gentoo uses it)?

Quoted 5 lines
Quoted 1 line

https://github.com/pkgconf/pkgconf

It's not a default in Gentoo yet, though it's available. Anybody run some tests switching to it? Regards.

Funtoo Linux (gentoo-based) uses pkgconf as default now :
http://jira.funtoo.org/browse/FL-15
I think this switch is quite safe and you can trust Funtoo maintainers...

My 2 cents
Lionel

Quoted 5 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#12 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

In reply to Arnout Vandecappelle

Dear Arnout Vandecappelle,

Quoted 3 lines · Arnout Vandecappelle

Maybe we should make that _always_ present, and add host-pkg-config to
the toolchain build... It is more or less part of the toolchain, and it doesn't hurt to build it if it's not needed.

host-pkg-config depends on host-automake, which depends on host-autoconf and host-libtool, themselves needing host-m4.

Are we going to become OpenEmebdded, and rebuild the entire host distribution before building anything useful for the target?

Sorry, but the fact that when building a Busybox system, Buildroot builds Busybox and nothing else is a very good property of Buildroot. Let's keep it this way, thanks :-)

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#13 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

In reply to Gustavo Zacarias

Dear Gustavo Zacarias,

Quoted 2 lines · Gustavo Zacarias

Because it uses any pkg-config around, it doesn't honour PKG_CONFIG nor check for it as a dependency.

My autobuild stuff runs inside a chroot that does not have pkg-config installed. The chroot in question has the strict minimal number of dependencies that Buildroot requires on the host system.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#14 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

In reply to Arnout Vandecappelle (Essensium/Mind)

Dear Arnout Vandecappelle (Essensium/Mind),

Quoted 4 lines · Arnout Vandecappelle (Essensium/Mind)

How was this never caught by the autobuilders? Do they happen to build host-pkg-config most of the time? If so, maybe we should make the randpackageconfig select a smaller number of packages to increase the chance of finding this kind of issue...

We can configure the probability for each given package to be selected in randpackageconfig, and my autobuilder script itself make this value a random value between (IIRC) 2 and 35%. So depending on the build, each package has between 2% and 35% of chances of being selected. And I certainly see builds with very few packages selected. So I'm also surprised it wasn't found until now.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#15 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

In reply to Arnout Vandecappelle (Essensium/Mind)
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle (Essensium/Mind) <[email protected]> writes:

Arnout> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]> Arnout> ---
Arnout> How was this never caught by the autobuilders? Do they happen to Arnout> build host-pkg-config most of the time? If so, maybe we should make Arnout> the randpackageconfig select a smaller number of packages to increase Arnout> the chance of finding this kind of issue...

Committed, thanks.

Lots of stuff indeed pulls in host-pkgconfig, and as 'u' is pretty late in the alphabet the chance is quite high that it is already available:

ls package | cat -n | grep unionfs
520 unionfs

ls package | wc -l
559

We do have KCONFIG_PROBABILITY (see 3435c1afb583) that I sometimes play with, but you need both low and high probability builds as they catch different issues.

Signature · 1 line
Bye, Peter Korsgaard
#16 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Dear Peter Korsgaard,

Quoted 2 lines · Peter Korsgaard

Lots of stuff indeed pulls in host-pkgconfig, and as 'u' is pretty late in the alphabet the chance is quite high that it is already available:

Can we somehow fight this alphabet thing and make things even more random? Something that would shuffle the make targets or something, but I don't know if it is possible.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#17 lore raw

PATCH 1/1 unionfs: add missing dependency on host-pkg-config

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Thomas> Dear Peter Korsgaard,

Quoted 2 lines · Peter Korsgaard
Quoted 2 lines

Lots of stuff indeed pulls in host-pkgconfig, and as 'u' is pretty late in the alphabet the chance is quite high that it is already available:

Thomas> Can we somehow fight this alphabet thing and make things even more Thomas> random? Something that would shuffle the make targets or something, but Thomas> I don't know if it is possible.

I don't know of any easy/clean way, but it could probably be done by some $(wildcard) / $(shell unsort ..) stuff instead of include package/*/*.mk, but it won't be pretty.

Signature · 1 line
Bye, Peter Korsgaard