Message ID | 6e90b5d192055fdb9550.1403291465@localhost |
---|---|
State | Superseded |
Headers | show |
On 20/06/14 21:11, Thomas De Schampheleire wrote: > qt5 performs sed replacements of /usr to $(STAGING_DIR)/usr in .la files. > However, if buildroot itself is located in /usr, then STAGING_DIR also > starts with /usr, and naive replacements of '/usr' can result in paths of > the form: > /usr/buildroot/.../sysroot/usr/buildroot/.../sysroot/... > > This patch makes the replacements more careful, by first replacing the known > paths BASE_DIR and STAGING_DIR to tokens, then performing the actual > replacement, and finally replacing the tokens with the corresponding paths. > > Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750) > > Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> > > --- > v2: no changes > > package/qt5/qt5.mk | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff -r 2969a1777632 -r 6e90b5d19205 package/qt5/qt5.mk > --- a/package/qt5/qt5.mk Fri Jun 20 21:09:35 2014 +0200 > +++ b/package/qt5/qt5.mk Thu Jun 19 21:16:12 2014 +0200 > @@ -5,7 +5,12 @@ > > define QT5_LA_PRL_FILES_FIXUP > for i in $$(find $(STAGING_DIR)/usr/lib* -name "libQt5*.la"); do \ > - $(SED) "s:\(['= ]\)/usr:\\1$(STAGING_DIR)/usr:g" $$i; \ > + $(SED) "s:$(BASE_DIR):@BASE_DIR@:g" \ > + -e "s:$(STAGING_DIR):@STAGING_DIR@:g" \ > + -e "s:\(['= ]\)/usr:\\1@STAGING_DIR@/usr:g" \ > + -e "s:@STAGING_DIR@:$(STAGING_DIR):g" \ > + -e "s:@BASE_DIR@:$(BASE_DIR):g" \ > + $$i ; \ Now that I see the two patches next to each other: why is this hook needed? It's already done by the generic staging-install target, no? ThomasP carries the blame for this, so putting him in Cc... Regards, Arnout > $(SED) "/^dependency_libs=/s%-L/usr/lib %%g" $$i ; \ > done > for i in $$(find $(STAGING_DIR)/usr/lib* -name "libQt5*.prl"); do \ > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot >
Dear Arnout Vandecappelle, On Sat, 21 Jun 2014 01:14:26 +0200, Arnout Vandecappelle wrote: > Now that I see the two patches next to each other: why is this hook needed? > It's already done by the generic staging-install target, no? ThomasP carries the > blame for this, so putting him in Cc... I don't think I should be blamed for this actually :-) The generic staging-install fixup of .la files is only part of the autotools-package infrastructure, because it's related to libtool, which is normally used in combination with the rest of the autotools. However, qt5* packages are all generic-packages, so the "generic" staging-install fixup of .la files doesn't apply for these packages. That being said, we could certainly make the .la fixup logic a common macro, which could be used by both the autotools-package infrastructure, and some other packages as well. Best regards, Thomas
diff -r 2969a1777632 -r 6e90b5d19205 package/qt5/qt5.mk --- a/package/qt5/qt5.mk Fri Jun 20 21:09:35 2014 +0200 +++ b/package/qt5/qt5.mk Thu Jun 19 21:16:12 2014 +0200 @@ -5,7 +5,12 @@ define QT5_LA_PRL_FILES_FIXUP for i in $$(find $(STAGING_DIR)/usr/lib* -name "libQt5*.la"); do \ - $(SED) "s:\(['= ]\)/usr:\\1$(STAGING_DIR)/usr:g" $$i; \ + $(SED) "s:$(BASE_DIR):@BASE_DIR@:g" \ + -e "s:$(STAGING_DIR):@STAGING_DIR@:g" \ + -e "s:\(['= ]\)/usr:\\1@STAGING_DIR@/usr:g" \ + -e "s:@STAGING_DIR@:$(STAGING_DIR):g" \ + -e "s:@BASE_DIR@:$(BASE_DIR):g" \ + $$i ; \ $(SED) "/^dependency_libs=/s%-L/usr/lib %%g" $$i ; \ done for i in $$(find $(STAGING_DIR)/usr/lib* -name "libQt5*.prl"); do \
qt5 performs sed replacements of /usr to $(STAGING_DIR)/usr in .la files. However, if buildroot itself is located in /usr, then STAGING_DIR also starts with /usr, and naive replacements of '/usr' can result in paths of the form: /usr/buildroot/.../sysroot/usr/buildroot/.../sysroot/... This patch makes the replacements more careful, by first replacing the known paths BASE_DIR and STAGING_DIR to tokens, then performing the actual replacement, and finally replacing the tokens with the corresponding paths. Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750) Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> --- v2: no changes package/qt5/qt5.mk | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)