Skip to content

Commit

Permalink
package/pkg-generic: drop support for arch-specific patches
Browse files Browse the repository at this point in the history
The last architecture-specific patch we had was removed 2015-02-14 with
commit 9863553 (packages: all salute the passing of avr32), where
we eventually got rid of the avr32-specific patch for fbv.

Since then, we've only had common patches (that apply systematically),
or conditional patches, that are applied in an ad-hoc manner with
post-patch hooks. Currently, we even only have one such patch (for
Linux).

Since we do not advertise that possibility in the manual, and since we
do not want to have such patches, drop the support for it.

This has the potential for breaking existing br2-external trees, but
there is a workaround for those: they can provide a pre-patch ook that
copies the necessary per-arch patches if needed. We document this in the
manual.

Signed-off-by: Yann E. MORIN <[email protected]>
Signed-off-by: Arnout Vandecappelle <[email protected]>
  • Loading branch information
yann-morin-1998 authored and arnout committed Oct 15, 2023
1 parent 0455f95 commit 6480774
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
23 changes: 23 additions & 0 deletions docs/manual/migrating.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,26 @@ change implies that:
to be updated appropriately;
* the archive version suffix has been updated to +-br3+, so the hash
files must be updated appropriately.

Before Buildroot 2023.11, it was possible (but undocumented and unused)
to apply architecture-specific patches, by prefixing the patch filename
with the architecture, e.g. `0001-some-changes.patch.arm` and such a
patch would only be applied for that architecture. With Buildroot 2023.11,
this is no longer supported, and such patches are now longer applied at
all.

If you still need per-architecture patches, then you may provide a
xref:hooks[pre-patch hook] that copies the patches applicable to the
configured architecture, e.g.:

----
define LIBFOO_ARCH_PATCHES
$(foreach p,$(wildcard $(LIBFOO_PKGDIR)/*.patch.$(ARCH)), \
cp -f $(p) $(patsubst %.$(ARCH),%,$(p))
)
endef
LIBFOO_PRE_PATCH_HOOKS += LIBFOO_ARCH_PATCHES
----

Note that no package in Buildroot has architecture-specific patches, and
that such patches will most probably not be accepted.
4 changes: 2 additions & 2 deletions package/pkg-generic.mk
Original file line number Diff line number Diff line change
Expand Up @@ -242,9 +242,9 @@ $(BUILD_DIR)/%/.stamp_patched:
for D in $(PATCH_BASE_DIRS); do \
if test -d $${D}; then \
if test -d $${D}/$($(PKG)_VERSION); then \
$(APPLY_PATCHES) $(@D) $${D}/$($(PKG)_VERSION) \*.patch \*.patch.$(ARCH) || exit 1; \
$(APPLY_PATCHES) $(@D) $${D}/$($(PKG)_VERSION) \*.patch || exit 1; \
else \
$(APPLY_PATCHES) $(@D) $${D} \*.patch \*.patch.$(ARCH) || exit 1; \
$(APPLY_PATCHES) $(@D) $${D} \*.patch || exit 1; \
fi; \
fi; \
done; \
Expand Down

0 comments on commit 6480774

Please sign in to comment.