diff --git a/sysutils/squashfs-tools-ng/Makefile b/sysutils/squashfs-tools-ng/Makefile index 640eec8df879..c7a2ffaa1a60 100644 --- a/sysutils/squashfs-tools-ng/Makefile +++ b/sysutils/squashfs-tools-ng/Makefile @@ -1,45 +1,44 @@ PORTNAME= squashfs-tools-ng -PORTVERSION= 1.2.0 -PORTREVISION= 1 +PORTVERSION= 1.3.0 CATEGORIES= sysutils MASTER_SITES= https://infraroot.at/pub/squashfs/ MAINTAINER= danfe@FreeBSD.org COMMENT= New set of tools and libraries to work with SquashFS images WWW= https://infraroot.at/projects/squashfs-tools-ng/ LICENSE= GPLv3+ LGPL3+ LICENSE_COMB= dual LICENSE_FILE= ${WRKSRC}/COPYING.md USES= libtool pkgconfig tar:xz GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share USE_LDCONFIG= yes INSTALL_TARGET= install-strip TEST_TARGET= check OPTIONS_DEFINE= DOCS LZ4 LZO TOOLS ZSTD OPTIONS_DEFAULT= LZ4 LZO TOOLS ZSTD OPTIONS_SUB= yes TOOLS_DESC= Build the tools, not just the library LZ4_LIB_DEPENDS= liblz4.so:archivers/liblz4 LZ4_CONFIGURE_OFF= --without-lz4 LZO_LIB_DEPENDS= liblzo2.so:archivers/lzo2 LZO_CONFIGURE_ENV= LZO_CFLAGS="-I${LOCALBASE}/include" \ LZO_LIBS="-L${LOCALBASE}/lib -llzo2" LZO_CONFIGURE_OFF= --without-lzo TOOLS_CONFIGURE_OFF= --without-tools ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd ZSTD_CONFIGURE_OFF= --without-zstd post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/CHANGELOG.md ${WRKSRC}/README.md \ ${WRKSRC}/doc/* ${STAGEDIR}${DOCSDIR} .include diff --git a/sysutils/squashfs-tools-ng/distinfo b/sysutils/squashfs-tools-ng/distinfo index 839ff9f95889..80049366d147 100644 --- a/sysutils/squashfs-tools-ng/distinfo +++ b/sysutils/squashfs-tools-ng/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1670069084 -SHA256 (squashfs-tools-ng-1.2.0.tar.xz) = d736076095d584975640a78cd1554ce15ccbdebdd73d779b7d1ec8004832b7e7 -SIZE (squashfs-tools-ng-1.2.0.tar.xz) = 586992 +TIMESTAMP = 1710194396 +SHA256 (squashfs-tools-ng-1.3.0.tar.xz) = 5f91df5eb4d4ae6b6f613e9b7cd346daf45373a1b065c6c1b0891a86abe13e8f +SIZE (squashfs-tools-ng-1.3.0.tar.xz) = 585800 diff --git a/sysutils/squashfs-tools-ng/files/patch-bin_gensquashfs_mkfs.c b/sysutils/squashfs-tools-ng/files/patch-bin_gensquashfs_mkfs.c new file mode 100644 index 000000000000..66f9167e7fd2 --- /dev/null +++ b/sysutils/squashfs-tools-ng/files/patch-bin_gensquashfs_mkfs.c @@ -0,0 +1,77 @@ +--- bin/gensquashfs/mkfs.c.orig 2024-01-24 08:55:22 UTC ++++ bin/gensquashfs/mkfs.c +@@ -70,7 +70,8 @@ static int pack_files(sqfs_block_processor_t *data, fs + } + + static int relabel_tree_dfs(const char *filename, sqfs_xattr_writer_t *xwr, +- tree_node_t *n, void *selinux_handle) ++ tree_node_t *n, void *selinux_handle, ++ void *xattrmap) + { + char *path = fstree_get_path(n); + int ret; +@@ -86,24 +87,28 @@ static int relabel_tree_dfs(const char *filename, sqfs + return -1; + } + +- if (selinux_relable_node(selinux_handle, xwr, n, path)) { +- free(path); +- return -1; +- } ++ if (xattrmap != NULL) ++ ret = xattr_apply_map_file(path, xattrmap, xwr); + +- ret = sqfs_xattr_writer_end(xwr, &n->xattr_idx); ++ if (ret == 0 && selinux_handle != NULL) ++ ret = selinux_relable_node(selinux_handle, xwr, n, path); ++ ++ free(path); ++ if (ret == 0) ++ ret = sqfs_xattr_writer_end(xwr, &n->xattr_idx); ++ + if (ret) { + sqfs_perror(filename, "flushing completed key-value pairs", + ret); + return -1; + } + +- free(path); +- + if (S_ISDIR(n->mode)) { + for (n = n->data.dir.children; n != NULL; n = n->next) { +- if (relabel_tree_dfs(filename, xwr, n, selinux_handle)) ++ if (relabel_tree_dfs(filename, xwr, n, ++ selinux_handle, xattrmap)) { + return -1; ++ } + } + } + +@@ -111,15 +116,15 @@ static int relabel_tree_dfs(const char *filename, sqfs + } + + static int read_fstree(fstree_t *fs, options_t *opt, sqfs_xattr_writer_t *xwr, +- void *selinux_handle) ++ void *selinux_handle, void *xattrmap) + { + int ret; + + ret = fstree_from_file(fs, opt->infile, opt->packdir); + +- if (ret == 0 && selinux_handle != NULL) ++ if (ret == 0 && (selinux_handle != NULL || xattrmap != NULL)) + ret = relabel_tree_dfs(opt->cfg.filename, xwr, +- fs->root, selinux_handle); ++ fs->root, selinux_handle, xattrmap); + + return ret; + } +@@ -175,7 +180,7 @@ int main(int argc, char **argv) + goto out; + } + } else { +- if (read_fstree(&sqfs.fs, &opt, sqfs.xwr, sehnd)) ++ if (read_fstree(&sqfs.fs, &opt, sqfs.xwr, sehnd, xattrmap)) + goto out; + } + diff --git a/sysutils/squashfs-tools-ng/pkg-plist b/sysutils/squashfs-tools-ng/pkg-plist index 71b6a8f951bd..c45f36f07a70 100644 --- a/sysutils/squashfs-tools-ng/pkg-plist +++ b/sysutils/squashfs-tools-ng/pkg-plist @@ -1,44 +1,44 @@ %%TOOLS%%bin/gensquashfs %%TOOLS%%bin/rdsquashfs %%TOOLS%%bin/sqfs2tar %%TOOLS%%bin/sqfsdiff %%TOOLS%%bin/tar2sqfs include/sqfs/block.h include/sqfs/block_processor.h include/sqfs/block_writer.h include/sqfs/compressor.h include/sqfs/data_reader.h include/sqfs/dir.h include/sqfs/dir_reader.h include/sqfs/dir_writer.h include/sqfs/error.h include/sqfs/frag_table.h include/sqfs/id_table.h include/sqfs/inode.h include/sqfs/io.h include/sqfs/meta_reader.h include/sqfs/meta_writer.h include/sqfs/predef.h include/sqfs/super.h include/sqfs/table.h include/sqfs/xattr.h include/sqfs/xattr_reader.h include/sqfs/xattr_writer.h lib/libsquashfs.a lib/libsquashfs.so lib/libsquashfs.so.1 -lib/libsquashfs.so.1.4.0 +lib/libsquashfs.so.1.4.1 libdata/pkgconfig/libsquashfs1.pc -%%TOOLS%%share/man/man1/gensquashfs.1.gz -%%TOOLS%%share/man/man1/rdsquashfs.1.gz -%%TOOLS%%share/man/man1/sqfs2tar.1.gz -%%TOOLS%%share/man/man1/sqfsdiff.1.gz -%%TOOLS%%share/man/man1/tar2sqfs.1.gz %%PORTDOCS%%%%DOCSDIR%%/CHANGELOG.md %%PORTDOCS%%%%DOCSDIR%%/README.md %%PORTDOCS%%%%DOCSDIR%%/architecture.md %%PORTDOCS%%%%DOCSDIR%%/benchmark.ods %%PORTDOCS%%%%DOCSDIR%%/benchmark.txt %%PORTDOCS%%%%DOCSDIR%%/format.adoc %%PORTDOCS%%%%DOCSDIR%%/mainpage.dox %%PORTDOCS%%%%DOCSDIR%%/parallelism.txt +%%TOOLS%%share/man/man1/gensquashfs.1.gz +%%TOOLS%%share/man/man1/rdsquashfs.1.gz +%%TOOLS%%share/man/man1/sqfs2tar.1.gz +%%TOOLS%%share/man/man1/sqfsdiff.1.gz +%%TOOLS%%share/man/man1/tar2sqfs.1.gz