diff options
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | 0001-sfdisk-support-empty-label-use-case.patch | 223 | ||||
-rw-r--r-- | PKGBUILD | 32 |
3 files changed, 18 insertions, 257 deletions
@@ -1,6 +1,6 @@ pkgbase = util-linux-selinux pkgdesc = SELinux aware miscellaneous system utilities for Linux - pkgver = 2.29.2 + pkgver = 2.30.1 pkgrel = 2 url = https://www.kernel.org/pub/linux/utils/util-linux/ arch = i686 @@ -9,38 +9,36 @@ pkgbase = util-linux-selinux license = GPL2 makedepends = systemd makedepends = python + makedepends = libcap-ng makedepends = libselinux options = strip options = debug - source = https://www.kernel.org/pub/linux/utils/util-linux/v2.29/util-linux-2.29.2.tar.xz - source = https://www.kernel.org/pub/linux/utils/util-linux/v2.29/util-linux-2.29.2.tar.sign + source = https://www.kernel.org/pub/linux/utils/util-linux/v2.30/util-linux-2.30.1.tar.xz + source = https://www.kernel.org/pub/linux/utils/util-linux/v2.30/util-linux-2.30.1.tar.sign source = pam-login source = pam-common source = pam-su source = util-linux.sysusers - source = 0001-sfdisk-support-empty-label-use-case.patch validpgpkeys = B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284 - md5sums = 63c40c2068fcbb7e1d5c1d281115d973 + md5sums = 5e5ec141e775efe36f640e62f3f8cd0d md5sums = SKIP md5sums = 4368b3f98abd8a32662e094c54e7f9b1 md5sums = a31374fef2cba0ca34dfc7078e2969e4 md5sums = fa85e5cce5d723275b14365ba71a8aad md5sums = dfc9904f67ebc54bb347ca3cc430ef2b - md5sums = 6d2e3915124938577f0ff18ef701c87f pkgname = util-linux-selinux depends = pam-selinux depends = shadow-selinux depends = coreutils-selinux depends = libsystemd-selinux + depends = libcap-ng depends = libutil-linux-selinux optdepends = python: python bindings to libmount - provides = util-linux-ng=2.29.2 provides = eject provides = zramctl - provides = util-linux=2.29.2-2 - provides = selinux-util-linux=2.29.2-2 - conflicts = util-linux-ng + provides = util-linux=2.30.1-2 + provides = selinux-util-linux=2.30.1-2 conflicts = eject conflicts = zramctl conflicts = util-linux @@ -59,6 +57,6 @@ pkgname = libutil-linux-selinux provides = libmount.so provides = libsmartcols.so provides = libuuid.so - provides = libutil-linux=2.29.2-2 + provides = libutil-linux=2.30.1-2 conflicts = libutil-linux diff --git a/0001-sfdisk-support-empty-label-use-case.patch b/0001-sfdisk-support-empty-label-use-case.patch deleted file mode 100644 index 29ab44d9d7b9..000000000000 --- a/0001-sfdisk-support-empty-label-use-case.patch +++ /dev/null @@ -1,223 +0,0 @@ -From 35ca51182782193f555fbdcb06bb10766550d017 Mon Sep 17 00:00:00 2001 -From: Karel Zak <kzak@redhat.com> -Date: Wed, 30 Nov 2016 12:43:10 +0100 -Subject: [PATCH] sfdisk: support empty label use-case - -By default sfdisk creates partition table when a first partition is -specified, otherwise the device is not modified. This force users to -create at least one partition. - -This commit allows to create empty label without partitions if "label: -<name>" header line is specified by script. - -The commit also modifies "New situation:" output to list label name -and label identifier. - -Addresses: https://github.com/karelzak/util-linux/issues/374 -Signed-off-by: Karel Zak <kzak@redhat.com> ---- - disk-utils/fdisk-list.c | 23 +++++++++++++++-------- - disk-utils/fdisk-list.h | 1 + - disk-utils/sfdisk.8 | 18 +++++++++++++++++- - disk-utils/sfdisk.c | 17 +++++++++++++++++ - libfdisk/src/libfdisk.h.in | 1 + - libfdisk/src/libfdisk.sym | 5 +++++ - libfdisk/src/script.c | 20 +++++++++++++++++++- - 7 files changed, 75 insertions(+), 10 deletions(-) - -diff --git a/disk-utils/fdisk-list.c b/disk-utils/fdisk-list.c -index e6b2033..c9560f4 100644 ---- a/disk-utils/fdisk-list.c -+++ b/disk-utils/fdisk-list.c -@@ -34,10 +34,23 @@ static int is_ide_cdrom_or_tape(char *device) - return ret; - } - -+void list_disk_identifier(struct fdisk_context *cxt) -+{ -+ struct fdisk_label *lb = fdisk_get_label(cxt, NULL); -+ char *id = NULL; -+ -+ if (fdisk_has_label(cxt)) -+ fdisk_info(cxt, _("Disklabel type: %s"), -+ fdisk_label_get_name(lb)); -+ -+ if (!fdisk_is_details(cxt) && fdisk_get_disklabel_id(cxt, &id) == 0 && id) { -+ fdisk_info(cxt, _("Disk identifier: %s"), id); -+ free(id); -+ } -+} - - void list_disk_geometry(struct fdisk_context *cxt) - { -- char *id = NULL; - struct fdisk_label *lb = fdisk_get_label(cxt, NULL); - uint64_t bytes = fdisk_get_nsectors(cxt) * fdisk_get_sector_size(cxt); - char *strsz = size_to_human_string(SIZE_SUFFIX_SPACE -@@ -71,14 +84,8 @@ void list_disk_geometry(struct fdisk_context *cxt) - if (fdisk_get_alignment_offset(cxt)) - fdisk_info(cxt, _("Alignment offset: %lu bytes"), - fdisk_get_alignment_offset(cxt)); -- if (fdisk_has_label(cxt)) -- fdisk_info(cxt, _("Disklabel type: %s"), -- fdisk_label_get_name(lb)); - -- if (!fdisk_is_details(cxt) && fdisk_get_disklabel_id(cxt, &id) == 0 && id) { -- fdisk_info(cxt, _("Disk identifier: %s"), id); -- free(id); -- } -+ list_disk_identifier(cxt); - } - - void list_disklabel(struct fdisk_context *cxt) -diff --git a/disk-utils/fdisk-list.h b/disk-utils/fdisk-list.h -index eddab92..4ed5c25 100644 ---- a/disk-utils/fdisk-list.h -+++ b/disk-utils/fdisk-list.h -@@ -2,6 +2,7 @@ - #define UTIL_LINUX_FDISK_LIST_H - - extern void list_disklabel(struct fdisk_context *cxt); -+extern void list_disk_identifier(struct fdisk_context *cxt); - extern void list_disk_geometry(struct fdisk_context *cxt); - extern void list_freespace(struct fdisk_context *cxt); - -diff --git a/disk-utils/sfdisk.8 b/disk-utils/sfdisk.8 -index fcde872..efe4a86 100644 ---- a/disk-utils/sfdisk.8 -+++ b/disk-utils/sfdisk.8 -@@ -212,7 +212,10 @@ Deprecated option. Only the sector unit is supported. - .BR \-X , " \-\-label " \fItype - Specify the disk label type (e.g. \fBdos\fR, \fBgpt\fR, ...). If this option - is not given, then \fBsfdisk\fR defaults to the existing label, but if there --is no label on the device yet, then the type defaults to \fBdos\fR. -+is no label on the device yet, then the type defaults to \fBdos\fR. The default -+or the current label may be overwritten by the "label: <name>" script header -+line. The option \fB\-\-label\fR does not force \fBsfdisk\fR to create empty -+disk label (see the \fBEMPTY DISK LABEL\fR section below). - .TP - .BR \-Y , " \-\-label\-nested " \fItype - Force editing of a nested disk label. The primary disk label has to exist already. -@@ -404,6 +407,19 @@ For backward compatibility the \fBId=\fR field has the same meaning. - .RE - .RE - -+.SH "EMPTY DISK LABEL" -+.B sfdisk -+does not create partition table without partitions by default. The lines with -+partitions are expected in the script by default. The empty partition table has -+to be explicitly requested by "label: <name>" script header line without any -+partitions lines. For example: -+.RS -+.sp -+.B "echo 'label: gpt' | sfdisk /dev/sdb" -+.sp -+.RE -+creates empty GPT partition table. Note that the \fB\-\-append\fR disables this feature. -+ - .SH "BACKING UP THE PARTITION TABLE" - It is recommended to save the layout of your devices. - .B sfdisk -diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c -index 10307ad..2d65974 100644 ---- a/disk-utils/sfdisk.c -+++ b/disk-utils/sfdisk.c -@@ -1766,8 +1766,25 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv) - } - } while (1); - -+ /* create empty disk label if label, but no partition specified */ -+ if (rc == SFDISK_DONE_EOF && created == 0 -+ && fdisk_script_has_force_label(dp) == 1 -+ && fdisk_table_get_nents(tb) == 0 -+ && fdisk_script_get_header(dp, "label")) { -+ -+ int xrc = fdisk_apply_script_headers(sf->cxt, dp); -+ created = !xrc; -+ if (xrc) { -+ fdisk_warnx(sf->cxt, _( -+ "Failed to apply script headers, " -+ "disk label not created.")); -+ rc = SFDISK_DONE_ABORT; -+ } -+ } -+ - if (!sf->quiet && rc != SFDISK_DONE_ABORT) { - fdisk_info(sf->cxt, _("\nNew situation:")); -+ list_disk_identifier(sf->cxt); - list_disklabel(sf->cxt); - } - -diff --git a/libfdisk/src/libfdisk.h.in b/libfdisk/src/libfdisk.h.in -index 9154f5b..59cce19 100644 ---- a/libfdisk/src/libfdisk.h.in -+++ b/libfdisk/src/libfdisk.h.in -@@ -642,6 +642,7 @@ const char *fdisk_script_get_header(struct fdisk_script *dp, const char *name); - int fdisk_script_set_header(struct fdisk_script *dp, const char *name, const char *data); - struct fdisk_table *fdisk_script_get_table(struct fdisk_script *dp); - int fdisk_script_get_nlines(struct fdisk_script *dp); -+int fdisk_script_has_force_label(struct fdisk_script *dp); - - int fdisk_script_set_userdata(struct fdisk_script *dp, void *data); - void *fdisk_script_get_userdata(struct fdisk_script *dp); -diff --git a/libfdisk/src/libfdisk.sym b/libfdisk/src/libfdisk.sym -index 02cd7a8..d6d4ac5 100644 ---- a/libfdisk/src/libfdisk.sym -+++ b/libfdisk/src/libfdisk.sym -@@ -274,3 +274,8 @@ FDISK_2.29 { - fdisk_labelitem_is_number; - fdisk_gpt_set_npartitions; - } FDISK_2.28; -+ -+ -+FDISK_2.30 { -+ fdisk_script_has_force_label; -+} FDISK_2.29; -diff --git a/libfdisk/src/script.c b/libfdisk/src/script.c -index ae7e99a..0d1f260 100644 ---- a/libfdisk/src/script.c -+++ b/libfdisk/src/script.c -@@ -36,7 +36,8 @@ struct fdisk_script { - size_t nlines; - struct fdisk_label *label; - -- unsigned int json : 1; /* JSON output */ -+ unsigned int json : 1, /* JSON output */ -+ force_label : 1; /* label: <name> specified */ - }; - - -@@ -354,6 +355,22 @@ int fdisk_script_get_nlines(struct fdisk_script *dp) - } - - /** -+ * fdisk_script_has_force_label: -+ * @dp: script -+ * -+ * Note that fdisk_script_set_header(dp, "label", name) does not modify -+ * force_label status. The label has to be specified by script. -+ * -+ * Returns: true if "label: <name>" has been parsed. -+ */ -+int fdisk_script_has_force_label(struct fdisk_script *dp) -+{ -+ assert(dp); -+ return dp->force_label; -+} -+ -+ -+/** - * fdisk_script_read_context: - * @dp: script - * @cxt: context -@@ -706,6 +723,7 @@ static int parse_line_header(struct fdisk_script *dp, char *s) - if (strcmp(name, "label") == 0) { - if (dp->cxt && !fdisk_get_label(dp->cxt, value)) - goto done; /* unknown label name */ -+ dp->force_label = 1; - } else if (strcmp(name, "unit") == 0) { - if (strcmp(value, "sectors") != 0) - goto done; /* only "sectors" supported */ --- -2.10.2 - @@ -8,8 +8,8 @@ pkgbase=util-linux-selinux pkgname=(util-linux-selinux libutil-linux-selinux) -_pkgmajor=2.29 -pkgver=${_pkgmajor}.2 +_pkgmajor=2.30 +pkgver=${_pkgmajor}.1 pkgrel=2 pkgdesc="SELinux aware miscellaneous system utilities for Linux" url="https://www.kernel.org/pub/linux/utils/util-linux/" @@ -20,27 +20,19 @@ groups=('selinux') # systemd depends on libutil-linux and util-linux depends on libudev # provided by libsystemd (FS#39767). To break this cycle, make # util-linux-selinux depend on systemd at build time. -makedepends=('systemd' 'python' 'libselinux') +makedepends=('systemd' 'python' 'libcap-ng' 'libselinux') license=('GPL2') options=('strip' 'debug') validpgpkeys=('B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284') # Karel Zak source=("https://www.kernel.org/pub/linux/utils/util-linux/v$_pkgmajor/${pkgbase/-selinux}-$pkgver.tar."{xz,sign} pam-{login,common,su} - 'util-linux.sysusers' - '0001-sfdisk-support-empty-label-use-case.patch') -md5sums=('63c40c2068fcbb7e1d5c1d281115d973' + 'util-linux.sysusers') +md5sums=('5e5ec141e775efe36f640e62f3f8cd0d' 'SKIP' '4368b3f98abd8a32662e094c54e7f9b1' 'a31374fef2cba0ca34dfc7078e2969e4' 'fa85e5cce5d723275b14365ba71a8aad' - 'dfc9904f67ebc54bb347ca3cc430ef2b' - '6d2e3915124938577f0ff18ef701c87f') - -prepare() { - cd "${pkgbase/-selinux}-$pkgver" - - patch -Np1 <../0001-sfdisk-support-empty-label-use-case.patch -} + 'dfc9904f67ebc54bb347ca3cc430ef2b') build() { cd "${pkgbase/-selinux}-$pkgver" @@ -63,13 +55,13 @@ build() { } package_util-linux-selinux() { - conflicts=('util-linux-ng' 'eject' 'zramctl' + conflicts=('eject' 'zramctl' "${pkgname/-selinux}" "selinux-${pkgname/-selinux}") - provides=("util-linux-ng=$pkgver" 'eject' 'zramctl' + provides=('eject' 'zramctl' "${pkgname/-selinux}=${pkgver}-${pkgrel}" "selinux-${pkgname/-selinux}=${pkgver}-${pkgrel}") depends=('pam-selinux' 'shadow-selinux' 'coreutils-selinux' - 'libsystemd-selinux' 'libutil-linux-selinux') + 'libsystemd-selinux' 'libcap-ng' 'libutil-linux-selinux') optdepends=('python: python bindings to libmount') backup=(etc/pam.d/chfn etc/pam.d/chsh @@ -103,12 +95,6 @@ package_util-linux-selinux() { ### runtime libs are shipped as part of libutil-linux rm "$pkgdir"/usr/lib/lib*.{a,so}* - ### tailf has been deprecated for a while. let's not include it anymore. - rm \ - "$pkgdir"/usr/bin/tailf \ - "$pkgdir"/usr/share/bash-completion/completions/tailf \ - "$pkgdir"/usr/share/man/man1/tailf.1 - ### install systemd-sysusers install -Dm644 "$srcdir/util-linux.sysusers" \ "$pkgdir/usr/lib/sysusers.d/util-linux.conf" |