diff mbox series

[1/1] package/perl: apply perl-cross patch only on target perl

Message ID 20260831194910.260600-1-ju.o@free.fr
State New
Headers show
Series [1/1] package/perl: apply perl-cross patch only on target perl | expand

Commit Message

Julien Olivain Aug. 31, 2026, 7:49 p.m. UTC
Buildroot commit [1] (package/perl: fix build issue with musl)
introduced a patch that is meant to be applied on top of perl-cross,
which is extracted on top of perl only in the target variant.

Since the patch was introduced as a normal package patch, the Buildroot
infra is trying to always apply it, even for the host package variant.
Since perl-cross is not extracted for the host variant, some patched
files are missing. In that case, the host-perl is failing with error:

    >>> host-perl 5.42.3 Patching
    Applying 0001-configure-keep-_GNU_SOURCE-in-build-flags.patch using patch:
    can't find file to patch at input line 46

This commit fixes the issue by moving the package patch in a dedicated
"perl-cross" subdirectory, to make sure it will no longer be applied by
the infra. We apply the patch only for the target package variant using
a _POST_PATCH_HOOKS hook.

Fixes:
- [1]
- https://gitlab.com/buildroot.org/buildroot/-/jobs/16185948610 (TestPerlXMLLibXML)
- ...and few other tests requiring host-perl

[1] https://gitlab.com/buildroot.org/buildroot/-/commit/d950fff290b1318fd72c7f09fedbd1b87b96155f

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
 .../0001-configure-keep-_GNU_SOURCE-in-build-flags.patch | 0
 package/perl/perl.mk                                     | 9 +++++++++
 2 files changed, 9 insertions(+)
 rename package/perl/{ => perl-cross}/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch (100%)

Comments

Peter Korsgaard Aug. 31, 2026, 8:40 p.m. UTC | #1
>>>>> "Julien" == Julien Olivain via buildroot <buildroot@buildroot.org> writes:

 > Buildroot commit [1] (package/perl: fix build issue with musl)
 > introduced a patch that is meant to be applied on top of perl-cross,
 > which is extracted on top of perl only in the target variant.

 > Since the patch was introduced as a normal package patch, the Buildroot
 > infra is trying to always apply it, even for the host package variant.
 > Since perl-cross is not extracted for the host variant, some patched
 > files are missing. In that case, the host-perl is failing with error:

 >>>> host-perl 5.42.3 Patching
 >     Applying 0001-configure-keep-_GNU_SOURCE-in-build-flags.patch using patch:
 >     can't find file to patch at input line 46

 > This commit fixes the issue by moving the package patch in a dedicated
 > "perl-cross" subdirectory, to make sure it will no longer be applied by
 > the infra. We apply the patch only for the target package variant using
 > a _POST_PATCH_HOOKS hook.

 > Fixes:
 > - [1]
 > - https://gitlab.com/buildroot.org/buildroot/-/jobs/16185948610 (TestPerlXMLLibXML)
 > - ...and few other tests requiring host-perl

 > [1] https://gitlab.com/buildroot.org/buildroot/-/commit/d950fff290b1318fd72c7f09fedbd1b87b96155f

 > Signed-off-by: Julien Olivain <ju.o@free.fr>

Committed, thanks.
diff mbox series

Patch

diff --git a/package/perl/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch b/package/perl/perl-cross/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch
similarity index 100%
rename from package/perl/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch
rename to package/perl/perl-cross/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 912445ccc8..43820cfcc3 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -32,6 +32,15 @@  define PERL_CROSS_EXTRACT
 endef
 PERL_POST_EXTRACT_HOOKS += PERL_CROSS_EXTRACT
 
+# We need to patch perl-cross, but perl-cross is extracted over the
+# target perl sources only (and not the host variant). So we apply the
+# patch only for the target case using a post patch hook.
+define PERL_CROSS_PATCH
+	$(APPLY_PATCHES) $(@D) $(PERL_PKGDIR)/perl-cross \
+		0001-configure-keep-_GNU_SOURCE-in-build-flags.patch
+endef
+PERL_POST_PATCH_HOOKS += PERL_CROSS_PATCH
+
 # Even though perl is not an autotools-package, it uses config.sub and
 # config.guess. Up-to-date versions of these files may be needed to build perl
 # on newer host architectures, so we borrow the hook which updates them from the