From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yann E. MORIN Date: Sun, 14 Aug 2016 02:00:46 +0200 Subject: [Buildroot] [PATCH] support/apply-patches: don't bail-out on libtool patch while using -reconfigure In-Reply-To: <1471129615-12376-1-git-send-email-romain.naour@gmail.com> References: <1471129615-12376-1-git-send-email-romain.naour@gmail.com> Message-ID: <20160814000046.GE5734@free.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Romain, All, On 2016-08-14 01:06 +0200, Romain Naour spake thusly: > Since 19241598147e7555dce40b6dd44b28ef22b67ed9 -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 use AUTORECONF, the libtool patch can be applied many > times as the -reconfigure target is called. This is not a > problem since autoreconf will overwrite the previously patched files. > > Don't bail-out on libtool patch if already present in .applied_patches_list. > > Signed-off-by: Romain Naour > Cc: "Yann E. MORIN" > Cc: Thomas Petazzoni > --- > support/scripts/apply-patches.sh | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) > > diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh > index 7ccb39d..11b218f 100755 > --- a/support/scripts/apply-patches.sh > +++ b/support/scripts/apply-patches.sh > @@ -107,13 +107,19 @@ function apply_patch { > fi > existing="$(grep -E "/${patch}\$" ${builddir}/.applied_patches_list || true)" > if [ -n "${existing}" ]; then > - echo "Error: duplicate filename '${patch}'" > - echo "Conflicting files are:" > - echo " already applied: ${existing}" > - echo " to be applied : ${path}/${patch}" > - exit 1 > + # When a package use AUTORECONF, the libtool patch can be applied many > + # times as the -reconfigure target is called. This is not a > + # problem since autoreconf will overwrite the previously patched files. > + if [[ ${patch} != buildroot-libtool-v*.patch ]]; then I'm not very fond of treating the patch name as a magic value. Rather, I would suggest we add an option to apply-patches.sh to not fail on a duplicate patch. And at the same time, turn all positional arguments into options, so that it becomes easy to manage. Regards, Yann E. MORIN. > + echo "Error: duplicate filename '${patch}'" > + echo "Conflicting files are:" > + echo " already applied: ${existing}" > + echo " to be applied : ${path}/${patch}" > + exit 1 > + fi > + else > + echo "${path}/${patch}" >> ${builddir}/.applied_patches_list > fi > - echo "${path}/${patch}" >> ${builddir}/.applied_patches_list > ${uncomp} "${path}/$patch" | patch -g0 -p1 -E -d "${builddir}" -t -N $silent > if [ $? != 0 ] ; then > echo "Patch failed! Please fix ${patch}!" > -- > 2.5.5 > -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'