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
This commit is contained in:
Alexey Dokuchaev 2024-03-15 08:08:46 +00:00
parent 64e80d6c12
commit 5edf9f1ac6
4 changed files with 87 additions and 11 deletions

View File

@ -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/

View File

@ -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

View File

@ -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;
}

View File

@ -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