Skip to contentSkip to conversation

kmod: fix build with pkgconf 1.5.3

PATCH Superseded Fabrice Fontaine 2 participants 4 messages Dec 14, 2018

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kmod: fix build with pkgconf 1.5.3

Since the bump to 1.5.3, pkgconf prepends the sysroot to all absolute paths found in the .pc file. This is correct when the paths refer to something in STAGING_DIR (e.g. libdir, includedir), but not when it refers to something used for the target.

kmod uses the completionsdir variable from bash-completions.pc to decide where to install things. Since DESTDIR is prepended to the install destination, this will end up in the wrong location.

Until a better solution is found in pkgconf, pass the appdefaultdir to use explicitly instead of relying on bash-completions.pc.

Fixes:
- http://autobuild.buildroot.org/results/f8a1f956333062027294e766ff0ddab5c35d5887

---
 package/kmod/kmod.mk | 4 ++++
 1 file changed, 4 insertions(+)
package/kmod/kmod.mk +4 -0
index c165ea3020..ea5d291133 100644
@@ -28,6 +28,10 @@ KMOD_CONF_OPTS = --disable-static --enable-shared
 KMOD_CONF_OPTS += --disable-manpages
 HOST_KMOD_CONF_OPTS = --disable-manpages
 
+ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y)
+KMOD_CONF_OPTS += --with-bashcompletiondir=/usr/share/bash-completion/completions
+endif
+
 ifeq ($(BR2_PACKAGE_ZLIB),y)
 KMOD_DEPENDENCIES += zlib
 KMOD_CONF_OPTS += --with-zlib
Signature · 1 line
2.14.1
#1 lore raw

PATCH 1/1 kmod: fix build with pkgconf 1.5.3

Quoted 27 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Fabrice" == Fabrice Fontaine <[email protected]> writes:

Since the bump to 1.5.3, pkgconf prepends the sysroot to all absolute paths found in the .pc file. This is correct when the paths refer to something in STAGING_DIR (e.g. libdir, includedir), but not when it refers to something used for the target.

kmod uses the completionsdir variable from bash-completions.pc to decide where to install things. Since DESTDIR is prepended to the install destination, this will end up in the wrong location.

Until a better solution is found in pkgconf, pass the appdefaultdir to use explicitly instead of relying on bash-completions.pc.

Fixes:
- http://autobuild.buildroot.org/results/f8a1f956333062027294e766ff0ddab5c35d5887

---
 package/kmod/kmod.mk | 4 ++++
 1 file changed, 4 insertions(+)
package/kmod/kmod.mk +0 -0
index c165ea3020..ea5d291133 100644

package/kmod/kmod.mk KMOD_CONF_OPTS = --disable-static --enable-shared · line 33

Quoted 6 lines
package/kmod/kmod.mk +3 -0
@@ -28,6 +28,10 @@ KMOD_CONF_OPTS = --disable-static --enable-shared
 KMOD_CONF_OPTS += --disable-manpages
 HOST_KMOD_CONF_OPTS = --disable-manpages
 
+ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y)
+KMOD_CONF_OPTS += --with-bashcompletiondir=/usr/share/bash-completion/completions
+endif

Hmm, how did this work before if there wasn't anything to ensure bash-completion was built before kmod? Just the alphabetical order?

Anyway, committed - Thanks.

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

PATCH 1/1 kmod: fix build with pkgconf 1.5.3

Dear Peter,

Le ven. 14 d?c. 2018 ? 21:29, Peter Korsgaard <[email protected]> a ?crit :

Quoted 31 lines
Quoted 30 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

"Fabrice" == Fabrice Fontaine <[email protected]> writes:

Since the bump to 1.5.3, pkgconf prepends the sysroot to all absolute paths found in the .pc file. This is correct when the paths refer to something in STAGING_DIR (e.g. libdir, includedir), but not when it refers to something used for the target.

kmod uses the completionsdir variable from bash-completions.pc to decide where to install things. Since DESTDIR is prepended to the install destination, this will end up in the wrong location.

Until a better solution is found in pkgconf, pass the appdefaultdir to use explicitly instead of relying on bash-completions.pc.

Fixes:
- http://autobuild.buildroot.org/results/f8a1f956333062027294e766ff0ddab5c35d5887

---
 package/kmod/kmod.mk | 4 ++++
 1 file changed, 4 insertions(+)
package/kmod/kmod.mk +0 -0
index c165ea3020..ea5d291133 100644
@@ -28,6 +28,10 @@ KMOD_CONF_OPTS = --disable-static --enable-shared
 KMOD_CONF_OPTS += --disable-manpages
 HOST_KMOD_CONF_OPTS = --disable-manpages
Quoted 6 lines

package/kmod/kmod.mk KMOD_CONF_OPTS = --disable-static --enable-shared · line 33

Quoted 3 lines
package/kmod/kmod.mk +3 -0
+ifeq ($(BR2_PACKAGE_BASH_COMPLETION),y)
+KMOD_CONF_OPTS += --with-bashcompletiondir=/usr/share/bash-completion/completions
+endif

Hmm, how did this work before if there wasn't anything to ensure bash-completion was built before kmod? Just the alphabetical order?

You're right, personally, I think that we should add a bash-completion dependency but bash-completion is not a "real" build time dependency, it's only needed to retrieve completionsdir.
Because I was told to remove udev dependency from alsa-utils during review of https://patchwork.ozlabs.org/patch/1013180, I applied the same logic for kmod.
Howerver if you want, I can send a new patch to add bash-completion dependency.

Quoted 5 lines

Anyway, committed - Thanks.

--
Bye, Peter Korsgaard

Best Regards,

Fabrice

#3 lore raw

PATCH 1/1 kmod: fix build with pkgconf 1.5.3

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

"Fabrice" == Fabrice Fontaine <[email protected]> writes:

Hi,

Quoted 10 lines
Quoted 2 lines

Hmm, how did this work before if there wasn't anything to ensure bash-completion was built before kmod? Just the alphabetical order?

You're right, personally, I think that we should add a bash-completion dependency but bash-completion is not a "real" build time dependency, it's only needed to retrieve completionsdir.
Because I was told to remove udev dependency from alsa-utils during review of https://patchwork.ozlabs.org/patch/1013180, I applied the same logic for kmod.
Howerver if you want, I can send a new patch to add bash-completion dependency.

OK. As we now explicitly pass --with-completiondir (and hence not rely on bash-completion.pc) and the install logic creates the destination directory if needed, I don't think we really _NEED_ it.

Signature · 1 line
Bye, Peter Korsgaard