diff options
authorGravatar Romain Naour <romain.naour@gmail.com>2016-08-17 18:01:08 +0200
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-08-18 23:52:47 +0200
commitba4af1a06d8f289fd1136badddb50f002e6d1046 (patch)
parentc1276aacd2b0c1dc52b02bacd4b4c7c50a4b26fe (diff)
core/pkg-autotools: don't use APPLY_PATCHES for libtool patches
Since [1] <package>-reconfigure target is broken. $ make elementary-reconfigure Applying buildroot-libtool-v2.4.4.patch using patch: Error: duplicate filename 'buildroot-libtool-v2.4.4.patch' Conflicting files are: already applied: buildroot/support/libtool/buildroot-libtool-v2.4.4.patch to be applied : buildroot/support/libtool/buildroot-libtool-v2.4.4.patch When a package uses AUTORECONF, the libtool patch can be applied a second time on the same ltmain.sh in the same directory as the <package>-reconfigure target is called. This is not a problem since autoreconf will overwrite the previously patched files. But with the check introduced by [1], apply-patches.sh throw an error when the package is reconfigured since the libtool patch is already present in .applied_patches_list. In addition to this, the .applied_patches_list file generated by apply-patches.sh while patching ltmain.sh is not in the top-level package source directory. Instead a duplicated .applied_patches_list is generated beside the patched ltmain.sh which can be in a subdirectory. As noticed by Arnout Vandecappelle [2], the apply-patches.sh script doesn't bring anything for the libtool patches. "apply_patches.sh does the following: * It handles directories -> not needed here. * It handles compressed patches and tarballs -> not needed. * It handles series files -> not needed. * It handles errors in case of multiple patches -> not needed since it's only one patch. * It detects errors based on *.rej files -> not needed since it's only a single patch so patch exit code is OK. * It writes the patch list -> for libtool, this is quite silly because it will be written in the directory where ltmain.sh is found, not in the top-level directory, so you have these patch lists spread over the source tree." So use patch directly rather than apply-patches. [1] 19241598147e7555dce40b6dd44b28ef22b67ed9 [2] http://lists.busybox.net/pipermail/buildroot/2016-August/169810.html Signed-off-by: Romain Naour <romain.naour@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
1 files changed, 4 insertions, 4 deletions
diff --git a/package/pkg-autotools.mk b/package/pkg-autotools.mk
index 75e2df001f..d1cdb89fb5 100644
--- a/package/pkg-autotools.mk
+++ b/package/pkg-autotools.mk
@@ -65,14 +65,14 @@ define LIBTOOL_PATCH_HOOK
ltmain_patchlevel=`sed -n '/^[ \t]*VERSION=/{s/^[ \t]*VERSION=//;p;q;}' $$i | \
sed -e 's/\([0-9]*\.[0-9]*\.*\)\([0-9]*\).*/\2/' -e 's/\"//'`; \
if test $${ltmain_version} = '1.5'; then \
- $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
+ patch -i support/libtool/buildroot-libtool-v1.5.patch $${i}; \
elif test $${ltmain_version} = "2.2"; then\
- $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
+ patch -i support/libtool/buildroot-libtool-v2.2.patch $${i}; \
elif test $${ltmain_version} = "2.4"; then\
if test $${ltmain_patchlevel:-0} -gt 2; then\
- $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.4.patch; \
+ patch -i support/libtool/buildroot-libtool-v2.4.4.patch $${i}; \
else \
- $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
+ patch -i support/libtool/buildroot-libtool-v2.4.patch $${i}; \
fi \
fi \