aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2024-03-15 08:08:46 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2024-03-15 08:08:46 +0000
commit5edf9f1ac6d43c9f463b4b0f1a56efc6b855e7c2 (patch)
tree6dc41b651ad4b00f4e0eab91cd15c6d6ad4aa8fd
parent64e80d6c123a80308a949b72cb7d981a061c6fe5 (diff)
downloadports-5edf9f1ac6d43c9f463b4b0f1a56efc6b855e7c2.tar.gz
ports-5edf9f1ac6d43c9f463b4b0f1a56efc6b855e7c2.zip
sysutils/squashfs-tools-ng: update the port to version 1.3.0
Pull one upstream patch which had been omitted from this release for some reason so that gensquashfs(1) can apply xattr file also when using a pack file. Reported by: portscout
-rw-r--r--sysutils/squashfs-tools-ng/Makefile3
-rw-r--r--sysutils/squashfs-tools-ng/distinfo6
-rw-r--r--sysutils/squashfs-tools-ng/files/patch-bin_gensquashfs_mkfs.c77
-rw-r--r--sysutils/squashfs-tools-ng/pkg-plist12
4 files changed, 87 insertions, 11 deletions
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,6 +1,5 @@
PORTNAME= squashfs-tools-ng
-PORTVERSION= 1.2.0
-PORTREVISION= 1
+PORTVERSION= 1.3.0
CATEGORIES= sysutils
MASTER_SITES= https://infraroot.at/pub/squashfs/
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
@@ -27,13 +27,8 @@ 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
@@ -42,3 +37,8 @@ libdata/pkgconfig/libsquashfs1.pc
%%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