Skip to contentSkip to conversation

squashfs-tools: upgrade to newer revision from git

PATCH In review Martin Jansa 2 participants 5 messages Jun 8, 2015 – Jul 10, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 squashfs-tools: upgrade to newer revision from git

* 4.3 release has nasty hard to reproduce bug in LZO compression which in few cases results in one of these 2 errors:
1) Lseek failure when creating the FS:

    | writer: Lseek on destination failed because Bad file descriptor, offset=0x1f72306
    | FATAL ERROR:Probably out of space on output filesystem
    | Parallel mksquashfs: Using 32 processors
    | Creating 4.0 filesystem on rootfs.squashfs, block size 262144.
    ..

2) failing to read the filesystem in runtime, kernel 3.16.0 showing errors like this:
[ 46.720568] SQUASHFS error: lzo decompression failed, data probably corrupt
[ 46.730003] SQUASHFS error: squashfs_read_data failed to read block 0x1f72305
[ 46.740076] SQUASHFS error: Unable to read fragment cache entry [1f72305]
it's fixed in upstream git repo:
https://github.com/plougher/squashfs-tools/commit/de03266983ceb62e5365aac84fcd3b2fd4d16e6f
https://github.com/plougher/squashfs-tools/commit/9c1db6d13a51a2e009f0027ef336ce03624eac0d
the official repo is:
https://git.kernel.org/cgit/fs/squashfs/squashfs-tools.git
but author's github is kept in sync so we can use just that

---
 .../squashfs-tools/squashfs-tools_4.3.bb           | 40 ----------------------
 .../squashfs-tools/squashfs-tools_git.bb           | 37 ++++++++++++++++++++
 2 files changed, 37 insertions(+), 40 deletions(-)
 delete mode 100644 meta/recipes-devtools/squashfs-tools/squashfs-tools_4.3.bb
 create mode 100644 meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
meta/recipes-devtools/squashfs-tools/squashfs-tools_4.3.bb deleted +0 -40
deleted file mode 100644
index 19d555e1..0000000
@@ -1,40 +0,0 @@
-# Note, we can probably remove the lzma option as it has be replaced with xz,
-# and I don't think the kernel supports it any more.
-SUMMARY = "Tools for manipulating SquashFS filesystems"
-SECTION = "base"
-LICENSE = "GPL-2 & PD"
-LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://../../7zC.txt;beginline=12;endline=16;md5=2056cd6d919ebc3807602143c7449a7c \
-                   "
-DEPENDS = "attr zlib xz lzo lz4"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/squashfs/squashfs${PV}.tar.gz;name=squashfs \
-           http://downloads.sourceforge.net/sevenzip/lzma465.tar.bz2;name=lzma \
-          "
-
-SRC_URI[squashfs.md5sum] = "d92ab59aabf5173f2a59089531e30dbf"
-SRC_URI[squashfs.sha256sum] = "0d605512437b1eb800b4736791559295ee5f60177e102e4d4ccd0ee241a5f3f6"
-
-SRC_URI[lzma.md5sum] = "29d5ffd03a5a3e51aef6a74e9eafb759"
-SRC_URI[lzma.sha256sum] = "c935fd04dd8e0e8c688a3078f3675d699679a90be81c12686837e0880aa0fa1e"
-
-S = "${WORKDIR}/squashfs${PV}/squashfs-tools"
-SPDX_S = "${WORKDIR}/squashfs${PV}"
-
-# EXTRA_OEMAKE is typically: -e MAKEFLAGS=
-# the -e causes problems as CFLAGS is modified in the Makefile, so
-# we redefine EXTRA_OEMAKE here
-EXTRA_OEMAKE = "MAKEFLAGS= LZMA_SUPPORT=1 LZMA_DIR=../.. XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1"
-
-do_compile() {
-	oe_runmake mksquashfs unsquashfs
-}
-do_install () {
-        install -d ${D}${sbindir}
-        install -m 0755 mksquashfs ${D}${sbindir}/
-	install -m 0755 unsquashfs ${D}${sbindir}/
-}
-
-ARM_INSTRUCTION_SET = "arm"
-
-BBCLASSEXTEND = "native nativesdk"
meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb new file +37 -0
new file mode 100644
index 0000000..95042dd
@@ -0,0 +1,37 @@
+# Note, we can probably remove the lzma option as it has be replaced with xz,
+# and I don't think the kernel supports it any more.
+SUMMARY = "Tools for manipulating SquashFS filesystems"
+SECTION = "base"
+LICENSE = "GPL-2 & PD"
+LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://../../7zC.txt;beginline=12;endline=16;md5=2056cd6d919ebc3807602143c7449a7c \
+"
+DEPENDS = "attr zlib xz lzo lz4"
+
+PV = "4.3+gitr${SRCPV}"
+SRCREV = "9c1db6d13a51a2e009f0027ef336ce03624eac0d"
+SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https \
+           http://downloads.sourceforge.net/sevenzip/lzma465.tar.bz2;name=lzma \
+"
+SRC_URI[lzma.md5sum] = "29d5ffd03a5a3e51aef6a74e9eafb759"
+SRC_URI[lzma.sha256sum] = "c935fd04dd8e0e8c688a3078f3675d699679a90be81c12686837e0880aa0fa1e"
+
+S = "${WORKDIR}/git/squashfs-tools"
+
+# EXTRA_OEMAKE is typically: -e MAKEFLAGS=
+# the -e causes problems as CFLAGS is modified in the Makefile, so
+# we redefine EXTRA_OEMAKE here
+EXTRA_OEMAKE = "MAKEFLAGS= LZMA_SUPPORT=1 LZMA_DIR=../.. XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1"
+
+do_compile() {
+    oe_runmake mksquashfs unsquashfs
+}
+do_install () {
+    install -d ${D}${sbindir}
+    install -m 0755 mksquashfs ${D}${sbindir}/
+    install -m 0755 unsquashfs ${D}${sbindir}/
+}
+
+ARM_INSTRUCTION_SET = "arm"
+
+BBCLASSEXTEND = "native nativesdk"
Signature · 1 line
2.4.2
#1 lore raw
Quoted 8 lines · Martin Jansa

* 4.3 release has nasty hard to reproduce bug in LZO compression which in few cases results in one of these 2 errors:
1) Lseek failure when creating the FS:

    | writer: Lseek on destination failed because Bad file descriptor, offset=0x1f72306
    | FATAL ERROR:Probably out of space on output filesystem
    | Parallel mksquashfs: Using 32 processors
    | Creating 4.0 filesystem on rootfs.squashfs, block size 262144.
    ..
Quoted 11 lines

2) failing to read the filesystem in runtime, kernel 3.16.0 showing errors like this:
[ 46.720568] SQUASHFS error: lzo decompression failed, data probably corrupt
[ 46.730003] SQUASHFS error: squashfs_read_data failed to read block 0x1f72305
[ 46.740076] SQUASHFS error: Unable to read fragment cache entry [1f72305]
it's fixed in upstream git repo:
https://github.com/plougher/squashfs-tools/commit/de03266983ceb62e5365aac84fcd3b2fd4d16e6f
https://github.com/plougher/squashfs-tools/commit/9c1db6d13a51a2e009f0027ef336ce03624eac0d
the official repo is:
https://git.kernel.org/cgit/fs/squashfs/squashfs-tools.git
but author's github is kept in sync so we can use just that

Ping

#2 lore raw
Quoted 9 lines · Martin Jansa
Quoted 6 lines · Martin Jansa

* 4.3 release has nasty hard to reproduce bug in LZO compression which in few cases results in one of these 2 errors:
....
the official repo is:
https://git.kernel.org/cgit/fs/squashfs/squashfs-tools.git
but author's github is kept in sync so we can use just that

Ping

The author doesn't provide version tags in either of his repositories, which make upstream version check impossible.

When a new version with this fix is released we should revert back to tarballs. If the patch didn't already appear in poky, I would suggest you cherry-pick those fixes instead.

Alex

#3 lore raw
Quoted 9 lines · Alexander Kanavin
Quoted 8 lines · Martin Jansa
Quoted 6 lines · Martin Jansa

* 4.3 release has nasty hard to reproduce bug in LZO compression which in few cases results in one of these 2 errors:
....
the official repo is:
https://git.kernel.org/cgit/fs/squashfs/squashfs-tools.git
but author's github is kept in sync so we can use just that

Quoted 8 lines
Quoted 1 line

Ping

The author doesn't provide version tags in either of his repositories, which make upstream version check impossible.

When a new version with this fix is released we should revert back to tarballs. If the patch didn't already appear in poky, I would suggest you cherry-pick those fixes instead.

He said that there won't be any new release in near future if ever.

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#4 lore raw
Quoted 5 lines · Martin Jansa
Quoted 3 lines

When a new version with this fix is released we should revert back to tarballs. If the patch didn't already appear in poky, I would suggest you cherry-pick those fixes instead.

He said that there won't be any new release in near future if ever.

That's ok too, upstream version check should let us know whenever he pushes new commits to git repo. It's rather odd that such a critical fix is only available from git though.

Alex