diff mbox series

package/squashfs: add upstream patch to fix symlinks

Message ID 20211228091218.1154072-1-thomas.petazzoni@bootlin.com
State Accepted
Headers show
Series package/squashfs: add upstream patch to fix symlinks | expand

Commit Message

Thomas Petazzoni Dec. 28, 2021, 9:12 a.m. UTC
Since version 4.5, squashfs-tools provides two additional utilities:
sqfstar and sqfscat. But their functionality is bundled within
mksquashfs and unsquashfs respectively, so that sqfstar is a symlink
to sqfstar, and sqfscat a symlink to unsquashfs.

Unfortunately, due to how the symlinks were created, they had a bogus
target when INSTALL_DIR was not empty, leading to things like this:

 ./usr/bin/sqfscat -> /home/peko/autobuild/instance-1/output-2/target/usr/bin/unsquashfs
 ./usr/bin/sqfstar -> /home/peko/autobuild/instance-1/output-2/target/usr/bin/mksquashfs

Not only they are wrong, but they also cause reproducible build
issues (this is how they were detected).

This commit backports an upstream patch that fixes this problem.

This is also fixing the squashfs-tools part of the reproducible build
issues at:

  http://autobuild.buildroot.net/results/00af5dca8c30b243af1e8cde3b02e264f7603442/diffoscope-results.txt

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 ...e-of-INSTALL_DIR-for-symlink-targets.patch | 37 +++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch

Comments

Yann E. MORIN Dec. 28, 2021, 9:58 p.m. UTC | #1
Thomas, All,

On 2021-12-28 10:12 +0100, Thomas Petazzoni spake thusly:
> Since version 4.5, squashfs-tools provides two additional utilities:
> sqfstar and sqfscat. But their functionality is bundled within
> mksquashfs and unsquashfs respectively, so that sqfstar is a symlink
> to sqfstar, and sqfscat a symlink to unsquashfs.
> 
> Unfortunately, due to how the symlinks were created, they had a bogus
> target when INSTALL_DIR was not empty, leading to things like this:
> 
>  ./usr/bin/sqfscat -> /home/peko/autobuild/instance-1/output-2/target/usr/bin/unsquashfs
>  ./usr/bin/sqfstar -> /home/peko/autobuild/instance-1/output-2/target/usr/bin/mksquashfs
> 
> Not only they are wrong, but they also cause reproducible build
> issues (this is how they were detected).
> 
> This commit backports an upstream patch that fixes this problem.
> 
> This is also fixing the squashfs-tools part of the reproducible build
> issues at:
> 
>   http://autobuild.buildroot.net/results/00af5dca8c30b243af1e8cde3b02e264f7603442/diffoscope-results.txt
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Applied to master, thanks.

400. Neat.

Regards,
Yann E. MORIN.

> ---
>  ...e-of-INSTALL_DIR-for-symlink-targets.patch | 37 +++++++++++++++++++
>  1 file changed, 37 insertions(+)
>  create mode 100644 package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch
> 
> diff --git a/package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch b/package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch
> new file mode 100644
> index 0000000000..997719e63a
> --- /dev/null
> +++ b/package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch
> @@ -0,0 +1,37 @@
> +From f5c908e92d4c055859be2fddbda266d9e3bfd415 Mon Sep 17 00:00:00 2001
> +From: Patrick McCarty <patrick.mccarty@intel.com>
> +Date: Mon, 26 Jul 2021 11:38:43 -0700
> +Subject: [PATCH] Avoid use of INSTALL_DIR for symlink targets
> +
> +In case INSTALL_DIR is overridden with a staged install location, using
> +INSTALL_DIR for the symlink target path prefix will yield an incorrect location
> +for the final installation.
> +
> +Because the symlink itself is already installed to INSTALL_DIR, simply removing
> +the INSTALL_DIR prefix suffices as a fix.
> +
> +Note that using $DESTDIR/$INSTALL_DIR where appropriate can avoid this type of
> +issue, but that can be considered a future enhancement.
> +
> +Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
> +Upstream: f5c908e92d4c055859be2fddbda266d9e3bfd415
> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> +---
> + squashfs-tools/Makefile | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/squashfs-tools/Makefile b/squashfs-tools/Makefile
> +index f5a55f1..7262a2e 100755
> +--- a/squashfs-tools/Makefile
> ++++ b/squashfs-tools/Makefile
> +@@ -406,5 +406,5 @@ install: mksquashfs unsquashfs
> + 	mkdir -p $(INSTALL_DIR)
> + 	cp mksquashfs $(INSTALL_DIR)
> + 	cp unsquashfs $(INSTALL_DIR)
> +-	ln -fs $(INSTALL_DIR)/unsquashfs $(INSTALL_DIR)/sqfscat
> +-	ln -fs $(INSTALL_DIR)/mksquashfs $(INSTALL_DIR)/sqfstar
> ++	ln -fs unsquashfs $(INSTALL_DIR)/sqfscat
> ++	ln -fs mksquashfs $(INSTALL_DIR)/sqfstar
> +-- 
> +2.31.1
> +
> -- 
> 2.31.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch b/package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch
new file mode 100644
index 0000000000..997719e63a
--- /dev/null
+++ b/package/squashfs/0001-Avoid-use-of-INSTALL_DIR-for-symlink-targets.patch
@@ -0,0 +1,37 @@ 
+From f5c908e92d4c055859be2fddbda266d9e3bfd415 Mon Sep 17 00:00:00 2001
+From: Patrick McCarty <patrick.mccarty@intel.com>
+Date: Mon, 26 Jul 2021 11:38:43 -0700
+Subject: [PATCH] Avoid use of INSTALL_DIR for symlink targets
+
+In case INSTALL_DIR is overridden with a staged install location, using
+INSTALL_DIR for the symlink target path prefix will yield an incorrect location
+for the final installation.
+
+Because the symlink itself is already installed to INSTALL_DIR, simply removing
+the INSTALL_DIR prefix suffices as a fix.
+
+Note that using $DESTDIR/$INSTALL_DIR where appropriate can avoid this type of
+issue, but that can be considered a future enhancement.
+
+Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
+Upstream: f5c908e92d4c055859be2fddbda266d9e3bfd415
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+---
+ squashfs-tools/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/squashfs-tools/Makefile b/squashfs-tools/Makefile
+index f5a55f1..7262a2e 100755
+--- a/squashfs-tools/Makefile
++++ b/squashfs-tools/Makefile
+@@ -406,5 +406,5 @@ install: mksquashfs unsquashfs
+ 	mkdir -p $(INSTALL_DIR)
+ 	cp mksquashfs $(INSTALL_DIR)
+ 	cp unsquashfs $(INSTALL_DIR)
+-	ln -fs $(INSTALL_DIR)/unsquashfs $(INSTALL_DIR)/sqfscat
+-	ln -fs $(INSTALL_DIR)/mksquashfs $(INSTALL_DIR)/sqfstar
++	ln -fs unsquashfs $(INSTALL_DIR)/sqfscat
++	ln -fs mksquashfs $(INSTALL_DIR)/sqfstar
+-- 
+2.31.1
+