* [Buildroot] [PATCH 1/2] dependencies.mk: reverse check-host-*.mk include to work around lzip -> tar dependency
@ 2018-02-26 22:38 Peter Korsgaard
2018-02-26 22:38 ` [Buildroot] [PATCH 2/2] check-host-tar.sh: blacklist tar 1.30+ Peter Korsgaard
0 siblings, 1 reply; 2+ messages in thread
From: Peter Korsgaard @ 2018-02-26 22:38 UTC (permalink / raw)
To: buildroot
host-lzip needs host-tar to extract the source code tarball, so we need to
ensure that host-tar gets added to DEPENDENCIES_HOST_PREREQ before host-lzip
in case they are both available, otherwise host-lzip will fail to extract.
With the upcoming change to blacklist modern tar versions this situation is
likely to trigger more often.
The real solution to this issue is the <foo>_EXTRACT_DEPENDENCIES rework,
but that series is a bit too intrusive to add this close to 2018.02, so
therefore this hack.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
support/dependencies/dependencies.mk | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/support/dependencies/dependencies.mk b/support/dependencies/dependencies.mk
index 4f606f849d..dfdc1fa116 100644
--- a/support/dependencies/dependencies.mk
+++ b/support/dependencies/dependencies.mk
@@ -12,7 +12,9 @@
define suitable-host-package
$(shell support/dependencies/check-host-$(1).sh $(2))
endef
--include $(sort $(wildcard support/dependencies/check-host-*.mk))
+# host-lzip needs host-tar to extract the source code tarball, so
+# ensure check-host-tar.mk is included before check-host-lzip.mk.
+-include $(call reverse,$(sort $(wildcard support/dependencies/check-host-*.mk)))
ifeq ($(BR2_CCACHE),y)
DEPENDENCIES_HOST_PREREQ += host-ccache
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Buildroot] [PATCH 2/2] check-host-tar.sh: blacklist tar 1.30+
2018-02-26 22:38 [Buildroot] [PATCH 1/2] dependencies.mk: reverse check-host-*.mk include to work around lzip -> tar dependency Peter Korsgaard
@ 2018-02-26 22:38 ` Peter Korsgaard
0 siblings, 0 replies; 2+ messages in thread
From: Peter Korsgaard @ 2018-02-26 22:38 UTC (permalink / raw)
To: buildroot
Tar 1.30 changed the --numeric-owner output for filenames > 100 characters,
leading to hash mismatches for the tar archives we create ourselves from
git. This is really a fix for a bug in earlier tar versions regarding
deterministic output, so it is unlikely to be reverted in later versions.
To work around this issue, blacklist tar 1.30+ similar to how we do it for
pre-1.17 versions so Buildroot falls back to building host-tar.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
support/dependencies/check-host-tar.sh | 33 ++++++++++++++++++++++++---------
1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/support/dependencies/check-host-tar.sh b/support/dependencies/check-host-tar.sh
index 932d3c4fb2..2143877524 100755
--- a/support/dependencies/check-host-tar.sh
+++ b/support/dependencies/check-host-tar.sh
@@ -30,13 +30,28 @@ fi
# containing hard-links if the --strip-components option is used).
major_min=1
minor_min=17
-if [ $major -gt $major_min ]; then
- echo $tar
-else
- if [ $major -eq $major_min -a $minor -ge $minor_min ]; then
- echo $tar
- else
- # echo nothing: no suitable tar found
- exit 1
- fi
+
+# Maximal version = 1.29 (1.30 changed --numeric-owner output for
+# filenames > 100 characters). This is really a fix for a bug in
+# earlier tar versions regarding deterministic output so it is
+# unlikely to be reverted in later versions.
+major_max=1
+minor_max=29
+
+if [ $major -lt $major_min -o $major -gt $major_max ]; then
+ # echo nothing: no suitable tar found
+ exit 1
fi
+
+if [ $major -eq $major_min -a $minor -lt $minor_min ]; then
+ # echo nothing: no suitable tar found
+ exit 1
+fi
+
+if [ $major -eq $major_max -a $minor -gt $minor_max ]; then
+ # echo nothing: no suitable tar found
+ exit 1
+fi
+
+# valid
+echo $tar
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-02-26 22:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-26 22:38 [Buildroot] [PATCH 1/2] dependencies.mk: reverse check-host-*.mk include to work around lzip -> tar dependency Peter Korsgaard
2018-02-26 22:38 ` [Buildroot] [PATCH 2/2] check-host-tar.sh: blacklist tar 1.30+ Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox