Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/filesystems/squashfs Welcome to Squashfs 4.4. This is...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/871dd46cf9d0
branches:  trunk
changeset: 434626:871dd46cf9d0
user:      scole <scole%pkgsrc.org@localhost>
date:      Fri Jun 19 21:17:46 2020 +0000

description:
Welcome to Squashfs 4.4.  This is the first release in over 5 years, and
there are substantial improvements: reproducible builds, new compressors,
CVE fixes, security hardening and new options for Mksquashfs/Unsquashfs.

Please see the INSTALL file for instructions on installing the tools,
and the USAGE file for documentation on how to use the tools.

Summary of changes
---------------------------------------

1. Mksquashfs now generates reproducible images by default.  Mkfs time and
   file timestamps can also be specified.

2. Support for the Zstandard (ZSTD) compression algorithm has been added.

3. Pseudo files now support symbolic links.

4. CVE-2015-4645 and CVE-2015-4646 have been fixed.

5. Unsquashfs has been further hardened against corrupted filestems.

6. Unsquashfs is now more strict about error handling.

7. Miscellaneous new options and major bug fixes for Mksquashfs.

8. Miscellaneous new options and major bug fixes for Unsquashfs.

9. Squashfs-tools 4.4 is compatible with all earlier 4.x filesystems
   and releases.

For pkgsrc changes, now GitHub is now the main repository and using libtool

diffstat:

 filesystems/squashfs/DESCR                         |  10 +-
 filesystems/squashfs/Makefile                      |  38 ++++++------
 filesystems/squashfs/PLIST                         |  32 ++++++-----
 filesystems/squashfs/distinfo                      |  20 +++---
 filesystems/squashfs/options.mk                    |  32 +++++++---
 filesystems/squashfs/patches/patch-Makefile        |  61 +++++++++++----------
 filesystems/squashfs/patches/patch-action.c        |  17 +----
 filesystems/squashfs/patches/patch-fnm__extmatch.h |  15 -----
 filesystems/squashfs/patches/patch-mksquashfs.c    |  51 ++++++++++++++---
 filesystems/squashfs/patches/patch-pseudo.c        |  13 ----
 filesystems/squashfs/patches/patch-unsquashfs.c    |  31 ++++------
 11 files changed, 163 insertions(+), 157 deletions(-)

diffs (truncated from 497 to 300 lines):

diff -r 7277d087db2d -r 871dd46cf9d0 filesystems/squashfs/DESCR
--- a/filesystems/squashfs/DESCR        Fri Jun 19 21:15:31 2020 +0000
+++ b/filesystems/squashfs/DESCR        Fri Jun 19 21:17:46 2020 +0000
@@ -1,8 +1,8 @@
-Squashfs is a highly compressed read-only filesystem for Linux.
-It uses either gzip/xz/lzo/lz4 compression to compress both files, inodes
-and directories.  Inodes in the system are very small and all blocks are
-packed to minimise data overhead. Block sizes greater than 4K are supported
-up to a maximum of 1Mbytes (default block size 128K).
+Squashfs is a highly compressed read-only filesystem for Linux.  It
+uses either gzip/xz/lzo/lz4/zstd compression to compress both files,
+inodes and directories.  Inodes in the system are very small and all
+blocks are packed to minimise data overhead. Block sizes greater than
+4K are supported up to a maximum of 1Mbytes (default block size 128K).
 
 Squashfs is intended for general read-only filesystem use, for archival
 use (i.e. in cases where a .tar.gz file may be used), and in constrained
diff -r 7277d087db2d -r 871dd46cf9d0 filesystems/squashfs/Makefile
--- a/filesystems/squashfs/Makefile     Fri Jun 19 21:15:31 2020 +0000
+++ b/filesystems/squashfs/Makefile     Fri Jun 19 21:17:46 2020 +0000
@@ -1,15 +1,16 @@
-# $NetBSD: Makefile,v 1.7 2020/03/20 11:57:37 nia Exp $
+# $NetBSD: Makefile,v 1.8 2020/06/19 21:17:46 scole Exp $
 
-VERSION=       4.3
-DISTNAME=      squashfs${VERSION}
+VERSION=       4.4
+DISTNAME=      squashfs-tools-${VERSION}
 PKGNAME=       squashfs-${VERSION}
 
-PKGREVISION=   2
 CATEGORIES=    filesystems
-MASTER_SITES=  http://downloads.sourceforge.net/project/squashfs/squashfs/${DISTNAME}/
+MASTER_SITES=  ${MASTER_SITE_GITHUB:=plougher/}
+GITHUB_PROJECT=        squashfs-tools
+GITHUB_TAG=    ${PKGVERSION_NOREV}
 
 MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE=      http://squashfs.sourceforge.net/
+HOMEPAGE=      https://github.com/plougher/squashfs-tools
 COMMENT=       Tools for squashfs archives
 LICENSE=       gnu-gpl-v2
 
@@ -19,33 +20,32 @@
 USE_LANGUAGES= c
 
 USE_TOOLS+=    gmake
+USE_LIBTOOL=   yes
 
 INSTALLATION_DIRS=     bin \
                        share/doc/squashfs \
-                       share/doc/squashfs/OLD-READMEs \
-                       share/examples/squashfs
+                       share/doc/squashfs/RELEASE-READMEs
 
 SQUASH_DIR=    ${WRKDIR}/${DISTNAME}
 WRKSRC=                ${SQUASH_DIR}/squashfs-tools
 SQUASH_PKG_DOC=        ${DESTDIR}${PREFIX}/share/doc/squashfs
 
-MAKE_ENV+=     EXTRA_LDFLAGS="${COMPILER_RPATH_FLAG}${PREFIX}/lib"
+# xxx no sigtimedwait or sigwaitinfo on mac os?
+BROKEN_ON_PLATFORM=    Darwin-*-*
 
 do-install:
-       ${INSTALL_PROGRAM} ${WRKSRC}/mksquashfs ${DESTDIR}${PREFIX}/bin
-       ${INSTALL_PROGRAM} ${WRKSRC}/unsquashfs ${DESTDIR}${PREFIX}/bin
+       ${LIBTOOL} --mode=install ${INSTALL_PROGRAM} \
+               ${WRKSRC}/mksquashfs ${DESTDIR}${PREFIX}/bin
+       ${LIBTOOL} --mode=install ${INSTALL_PROGRAM} \
+               ${WRKSRC}/unsquashfs ${DESTDIR}${PREFIX}/bin
        ${INSTALL_DATA} ${SQUASH_DIR}/ACKNOWLEDGEMENTS   ${SQUASH_PKG_DOC}
        ${INSTALL_DATA} ${SQUASH_DIR}/CHANGES            ${SQUASH_PKG_DOC}
        ${INSTALL_DATA} ${SQUASH_DIR}/COPYING            ${SQUASH_PKG_DOC}
-       ${INSTALL_DATA} ${SQUASH_DIR}/DONATIONS          ${SQUASH_PKG_DOC}
        ${INSTALL_DATA} ${SQUASH_DIR}/INSTALL            ${SQUASH_PKG_DOC}
-       ${INSTALL_DATA} ${SQUASH_DIR}/PERFORMANCE.README ${SQUASH_PKG_DOC}
        ${INSTALL_DATA} ${SQUASH_DIR}/README             ${SQUASH_PKG_DOC}
-       ${INSTALL_DATA} ${SQUASH_DIR}/README-4.3         ${SQUASH_PKG_DOC}
-       ${INSTALL_DATA} ${SQUASH_DIR}/OLD-READMEs/*      ${SQUASH_PKG_DOC}/OLD-READMEs/
-       ${INSTALL_DATA} ${SQUASH_DIR}/pseudo-file.example ${DESTDIR}${PREFIX}/share/examples/squashfs/
+       ${INSTALL_DATA} ${SQUASH_DIR}/README-4.4         ${SQUASH_PKG_DOC}
+       ${INSTALL_DATA} ${SQUASH_DIR}/USAGE              ${SQUASH_PKG_DOC}
+       ${INSTALL_DATA} ${SQUASH_DIR}/RELEASE-READMEs/* \
+               ${SQUASH_PKG_DOC}/RELEASE-READMEs/
 
-.include "../../archivers/lzo/buildlink3.mk"
-.include "../../archivers/xz/buildlink3.mk"
-.include "../../devel/zlib/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
diff -r 7277d087db2d -r 871dd46cf9d0 filesystems/squashfs/PLIST
--- a/filesystems/squashfs/PLIST        Fri Jun 19 21:15:31 2020 +0000
+++ b/filesystems/squashfs/PLIST        Fri Jun 19 21:17:46 2020 +0000
@@ -1,22 +1,24 @@
-@comment $NetBSD: PLIST,v 1.3 2018/01/01 22:29:28 rillig Exp $
+@comment $NetBSD: PLIST,v 1.4 2020/06/19 21:17:46 scole Exp $
 bin/mksquashfs
 bin/unsquashfs
 share/doc/squashfs/ACKNOWLEDGEMENTS
 share/doc/squashfs/CHANGES
 share/doc/squashfs/COPYING
-share/doc/squashfs/DONATIONS
 share/doc/squashfs/INSTALL
-share/doc/squashfs/OLD-READMEs/README-2.0
-share/doc/squashfs/OLD-READMEs/README-2.1
-share/doc/squashfs/OLD-READMEs/README-3.0
-share/doc/squashfs/OLD-READMEs/README-3.1
-share/doc/squashfs/OLD-READMEs/README-3.2
-share/doc/squashfs/OLD-READMEs/README-3.3
-share/doc/squashfs/OLD-READMEs/README-4.0
-share/doc/squashfs/OLD-READMEs/README-4.1
-share/doc/squashfs/OLD-READMEs/README-4.2
-share/doc/squashfs/OLD-READMEs/README-AMD64
-share/doc/squashfs/PERFORMANCE.README
 share/doc/squashfs/README
-share/doc/squashfs/README-4.3
-share/examples/squashfs/pseudo-file.example
+share/doc/squashfs/README-4.4
+share/doc/squashfs/RELEASE-READMEs/DONATIONS
+share/doc/squashfs/RELEASE-READMEs/PERFORMANCE.README
+share/doc/squashfs/RELEASE-READMEs/README-2.0
+share/doc/squashfs/RELEASE-READMEs/README-2.0-AMD64
+share/doc/squashfs/RELEASE-READMEs/README-2.1
+share/doc/squashfs/RELEASE-READMEs/README-3.0
+share/doc/squashfs/RELEASE-READMEs/README-3.1
+share/doc/squashfs/RELEASE-READMEs/README-3.2
+share/doc/squashfs/RELEASE-READMEs/README-3.3
+share/doc/squashfs/RELEASE-READMEs/README-4.0
+share/doc/squashfs/RELEASE-READMEs/README-4.1
+share/doc/squashfs/RELEASE-READMEs/README-4.2
+share/doc/squashfs/RELEASE-READMEs/README-4.3
+share/doc/squashfs/RELEASE-READMEs/pseudo-file.example
+share/doc/squashfs/USAGE
diff -r 7277d087db2d -r 871dd46cf9d0 filesystems/squashfs/distinfo
--- a/filesystems/squashfs/distinfo     Fri Jun 19 21:15:31 2020 +0000
+++ b/filesystems/squashfs/distinfo     Fri Jun 19 21:17:46 2020 +0000
@@ -1,12 +1,10 @@
-$NetBSD: distinfo,v 1.2 2017/02/09 18:16:07 scole Exp $
+$NetBSD: distinfo,v 1.3 2020/06/19 21:17:46 scole Exp $
 
-SHA1 (squashfs4.3.tar.gz) = a615979db9cee82e4a934a1455577f597d290b41
-RMD160 (squashfs4.3.tar.gz) = fc91627c0757205c4a0fbe2037913cec1cefb1fd
-SHA512 (squashfs4.3.tar.gz) = 854ed7acc99920f24ecf11e0da807e5a2a162eeda55db971aba63a03f0da2c13b20ec0564a906c4b0e415bd8258b273a10208c7abc0704f2ceea773aa6148a79
-Size (squashfs4.3.tar.gz) = 182550 bytes
-SHA1 (patch-Makefile) = e9701425da11a12157407f6212ad0e1cd7fed536
-SHA1 (patch-action.c) = d0fc02e79f93a125f20992362214b359460bdce2
-SHA1 (patch-fnm__extmatch.h) = 167c9b473c78f3e10d7536791d63e42c39794e4a
-SHA1 (patch-mksquashfs.c) = 8e91a84b4bfd0de4aef79d9165ff41f17e5b8c41
-SHA1 (patch-pseudo.c) = 6c4e94d8f559404f7b6e155c71267ce7fd6c1456
-SHA1 (patch-unsquashfs.c) = 1e02204097129fdd0309124d2a664c2e081db2f0
+SHA1 (squashfs-tools-4.4.tar.gz) = 883eb8bfae3aaef619e6d3b7ae51f5aa83097cfd
+RMD160 (squashfs-tools-4.4.tar.gz) = 1967b075376dbc05c9683509afd508af89e95d65
+SHA512 (squashfs-tools-4.4.tar.gz) = 133ce437fb8c929933d52cff710b61dd9181f6f8be58250b0d6a59a7bb79a2b350f68f456b06a0e17c469409a71272d586802d570248273ddcd5dad088c00308
+Size (squashfs-tools-4.4.tar.gz) = 241842 bytes
+SHA1 (patch-Makefile) = ee53cb3c16983cb3767df2ccdcf4636bd646fc3c
+SHA1 (patch-action.c) = 35200e6cafd0846fb05fac50862ba3ceb4777935
+SHA1 (patch-mksquashfs.c) = 723e9250e0ce821825de916671ac51251dce9432
+SHA1 (patch-unsquashfs.c) = 167ee4ec1aea744dac6e13d837f1ae19a0f2472a
diff -r 7277d087db2d -r 871dd46cf9d0 filesystems/squashfs/options.mk
--- a/filesystems/squashfs/options.mk   Fri Jun 19 21:15:31 2020 +0000
+++ b/filesystems/squashfs/options.mk   Fri Jun 19 21:17:46 2020 +0000
@@ -1,20 +1,18 @@
-# $NetBSD: options.mk,v 1.3 2019/11/03 19:26:22 rillig Exp $
+# $NetBSD: options.mk,v 1.4 2020/06/19 21:17:46 scole Exp $
 
+# xxx unsquashfs hung for me without any error message when extracting
+# an xattr archive and xattr was an included as a package option
 PKG_OPTIONS_VAR=       PKG_OPTIONS.squashfs
-PKG_SUPPORTED_OPTIONS= zlib lz4 lzo xz xattr
-PKG_SUGGESTED_OPTIONS= zlib lzo xz
+PKG_SUPPORTED_OPTIONS= zlib xz lzo lz4 zstd xattr reproducible
+PKG_SUGGESTED_OPTIONS= zlib xz lzo lz4 zstd xattr reproducible
 
 .include "../../mk/bsd.options.mk"
 
-# XXX any other OS support xattr?
-.if ${OPSYS} == "Linux"
-PKG_SUGGESTED_OPTIONS+=        xattr
-.endif
-
 .if empty(PKG_OPTIONS:Mzlib) && \
     empty(PKG_OPTIONS:Mlz4) && \
     empty(PKG_OPTIONS:Mlzo) && \
-    empty(PKG_OPTIONS:Mxz)
+    empty(PKG_OPTIONS:Mxz) && \
+    empty(PKG_OPTIONS:Mzstd)
 PKG_FAIL_REASON=       "need at least one compression algorithm selected"
 .endif
 
@@ -29,7 +27,7 @@
 .if !empty(PKG_OPTIONS:Mlz4)
 .include "../../archivers/lz4/buildlink3.mk"
 BUILD_MAKE_FLAGS+=     LZ4_SUPPORT=1
-SQUASH_COMPRESSORS+=   lz4     
+SQUASH_COMPRESSORS+=   lz4
 .else
 BUILD_MAKE_FLAGS+=     LZ4_SUPPORT=0
 .endif
@@ -50,6 +48,14 @@
 BUILD_MAKE_FLAGS+=     XZ_SUPPORT=0
 .endif
 
+.if !empty(PKG_OPTIONS:Mzstd)
+.include "../../archivers/zstd/buildlink3.mk"
+BUILD_MAKE_FLAGS+=     ZSTD_SUPPORT=1
+SQUASH_COMPRESSORS+=   zstd
+.else
+BUILD_MAKE_FLAGS+=     ZSTD_SUPPORT=0
+.endif
+
 .if !empty(PKG_OPTIONS:Mxattr)
 BUILD_MAKE_FLAGS+=     XATTR_SUPPORT=1
 .else
@@ -66,3 +72,9 @@
 BUILD_MAKE_FLAGS+=     COMP_DEFAULT=${SQUASH_COMPRESSORS:Nxattr:[1]}
 .  endif
 .endif
+
+.if !empty(PKG_OPTIONS:Mreproducible)
+BUILD_MAKE_FLAGS+=     REPRODUCIBLE_DEFAULT=1
+.else
+BUILD_MAKE_FLAGS+=     REPRODUCIBLE_DEFAULT=0
+.endif
diff -r 7277d087db2d -r 871dd46cf9d0 filesystems/squashfs/patches/patch-Makefile
--- a/filesystems/squashfs/patches/patch-Makefile       Fri Jun 19 21:15:31 2020 +0000
+++ b/filesystems/squashfs/patches/patch-Makefile       Fri Jun 19 21:17:46 2020 +0000
@@ -1,8 +1,9 @@
-$NetBSD: patch-Makefile,v 1.2 2017/02/09 18:16:08 scole Exp $
-Add fnm_extmatch.h dependency, use options framework
+$NetBSD: patch-Makefile,v 1.3 2020/06/19 21:17:46 scole Exp $
 
---- Makefile.orig      2014-05-11 11:56:00.000000000 -0700
-+++ Makefile   2017-02-06 12:08:05.000000000 -0800
+use options framework and libtool
+
+--- Makefile.orig      2019-08-29 01:58:04.000000000 +0000
++++ Makefile
 @@ -15,7 +15,7 @@
  # Obviously, you must select at least one of the available gzip, lzma, lzo
  # compression types.
@@ -12,16 +13,16 @@
  
  ########### Building XZ support #############
  #
-@@ -81,7 +81,7 @@
+@@ -85,7 +85,7 @@ GZIP_SUPPORT = 1
  # in Mksquashfs.  Obviously the compression algorithm must have been
  # selected to be built
  #
 -COMP_DEFAULT = gzip
 +#COMP_DEFAULT = gzip
  
+ 
  ###############################################
- #  Extended attribute (XATTRs) build options  #
-@@ -92,7 +92,7 @@
+@@ -97,7 +97,7 @@ COMP_DEFAULT = gzip
  # If your C library or build/target environment doesn't support XATTRs then
  # comment out the next line to build Mksquashfs and Unsquashfs without XATTR
  # support
@@ -30,7 +31,7 @@
  
  # Select whether you wish xattrs to be stored by Mksquashfs and extracted
  # by Unsquashfs by default.  If selected users can disable xattr support by
-@@ -100,7 +100,7 @@
+@@ -105,7 +105,7 @@ XATTR_SUPPORT = 1
  #
  # If unselected, Mksquashfs/Unsquashfs won't store and extract xattrs by
  # default.  Users can enable xattrs by using the -xattrs option.
@@ -39,31 +40,33 @@
  
  
  ###############################################
-@@ -229,7 +229,8 @@
+@@ -277,11 +277,15 @@ $(error "COMP_DEFAULT is set to ${COMP_D
+       built!")
+ endif
+ 
++%.lo : %.c
++      $(LIBTOOL) --mode=compile --tag=CC $(CC) -o $@ -c $(CFLAGS) $(CPPFLAGS) $<
++
+ .PHONY: all
+ all: mksquashfs unsquashfs
+ 
+-mksquashfs: $(MKSQUASHFS_OBJS)
+-      $(CC) $(LDFLAGS) $(EXTRA_LDFLAGS) $(MKSQUASHFS_OBJS) $(LIBS) -o $@
++mksquashfs: $(MKSQUASHFS_OBJS:.o=.lo)
++      $(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $(MKSQUASHFS_OBJS:.o=.lo) \
++              $(LDFLAGS) $(EXTRA_LDFLAGS) $(LIBS)
  
  mksquashfs.o: Makefile mksquashfs.c squashfs_fs.h squashfs_swap.h mksquashfs.h \
        sort.h pseudo.h compressor.h xattr.h action.h error.h progressbar.h \
--      info.h caches-queues-lists.h read_fs.h restore.h process_fragments.h 
-+      info.h caches-queues-lists.h read_fs.h restore.h process_fragments.h \
-+      fnm_extmatch.h
+@@ -331,8 +335,9 @@ lz4_wrapper.o: lz4_wrapper.c squashfs_fs
  
- read_fs.o: read_fs.c squashfs_fs.h squashfs_swap.h compressor.h xattr.h \
-       error.h mksquashfs.h
-@@ -247,7 +248,7 @@
+ xz_wrapper.o: xz_wrapper.c squashfs_fs.h xz_wrapper.h compressor.h



Home | Main Index | Thread Index | Old Index