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:
parent
64e80d6c12
commit
5edf9f1ac6
|
@ -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/
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue