[arch-commits] Commit in util-linux/repos (24 files)
Sébastien Luttringer
seblu at archlinux.org
Fri Mar 31 23:18:04 UTC 2017
Date: Friday, March 31, 2017 @ 23:18:03
Author: seblu
Revision: 291956
db-move: moved util-linux from [testing] to [core] (i686, x86_64)
Added:
util-linux/repos/core-i686/0001-sfdisk-support-empty-label-use-case.patch
(from rev 291955, util-linux/repos/testing-i686/0001-sfdisk-support-empty-label-use-case.patch)
util-linux/repos/core-i686/PKGBUILD
(from rev 291955, util-linux/repos/testing-i686/PKGBUILD)
util-linux/repos/core-i686/pam-common
(from rev 291955, util-linux/repos/testing-i686/pam-common)
util-linux/repos/core-i686/pam-login
(from rev 291955, util-linux/repos/testing-i686/pam-login)
util-linux/repos/core-i686/pam-su
(from rev 291955, util-linux/repos/testing-i686/pam-su)
util-linux/repos/core-i686/util-linux.sysusers
(from rev 291955, util-linux/repos/testing-i686/util-linux.sysusers)
util-linux/repos/core-x86_64/0001-sfdisk-support-empty-label-use-case.patch
(from rev 291955, util-linux/repos/testing-x86_64/0001-sfdisk-support-empty-label-use-case.patch)
util-linux/repos/core-x86_64/PKGBUILD
(from rev 291955, util-linux/repos/testing-x86_64/PKGBUILD)
util-linux/repos/core-x86_64/pam-common
(from rev 291955, util-linux/repos/testing-x86_64/pam-common)
util-linux/repos/core-x86_64/pam-login
(from rev 291955, util-linux/repos/testing-x86_64/pam-login)
util-linux/repos/core-x86_64/pam-su
(from rev 291955, util-linux/repos/testing-x86_64/pam-su)
util-linux/repos/core-x86_64/util-linux.sysusers
(from rev 291955, util-linux/repos/testing-x86_64/util-linux.sysusers)
Deleted:
util-linux/repos/core-i686/0001-sfdisk-support-empty-label-use-case.patch
util-linux/repos/core-i686/PKGBUILD
util-linux/repos/core-i686/pam-common
util-linux/repos/core-i686/pam-login
util-linux/repos/core-i686/pam-su
util-linux/repos/core-x86_64/0001-sfdisk-support-empty-label-use-case.patch
util-linux/repos/core-x86_64/PKGBUILD
util-linux/repos/core-x86_64/pam-common
util-linux/repos/core-x86_64/pam-login
util-linux/repos/core-x86_64/pam-su
util-linux/repos/testing-i686/
util-linux/repos/testing-x86_64/
------------------------------------------------------------+
/0001-sfdisk-support-empty-label-use-case.patch | 446 +++++++++++
/PKGBUILD | 220 +++++
/pam-common | 12
/pam-login | 14
/pam-su | 18
core-i686/0001-sfdisk-support-empty-label-use-case.patch | 223 -----
core-i686/PKGBUILD | 104 --
core-i686/pam-common | 6
core-i686/pam-login | 7
core-i686/pam-su | 9
core-i686/util-linux.sysusers | 1
core-x86_64/0001-sfdisk-support-empty-label-use-case.patch | 223 -----
core-x86_64/PKGBUILD | 104 --
core-x86_64/pam-common | 6
core-x86_64/pam-login | 7
core-x86_64/pam-su | 9
core-x86_64/util-linux.sysusers | 1
17 files changed, 712 insertions(+), 698 deletions(-)
Deleted: core-i686/0001-sfdisk-support-empty-label-use-case.patch
===================================================================
--- core-i686/0001-sfdisk-support-empty-label-use-case.patch 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-i686/0001-sfdisk-support-empty-label-use-case.patch 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,223 +0,0 @@
-From 35ca51182782193f555fbdcb06bb10766550d017 Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak at 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 at 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
-
Copied: util-linux/repos/core-i686/0001-sfdisk-support-empty-label-use-case.patch (from rev 291955, util-linux/repos/testing-i686/0001-sfdisk-support-empty-label-use-case.patch)
===================================================================
--- core-i686/0001-sfdisk-support-empty-label-use-case.patch (rev 0)
+++ core-i686/0001-sfdisk-support-empty-label-use-case.patch 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,223 @@
+From 35ca51182782193f555fbdcb06bb10766550d017 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak at 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 at 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
+
Deleted: core-i686/PKGBUILD
===================================================================
--- core-i686/PKGBUILD 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-i686/PKGBUILD 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,104 +0,0 @@
-# $Id$
-# Maintainer: Tom Gundersen <teg at jklm.no>
-# Maintainer: Dave Reisner <dreisner at archlinux.org>
-# Contributor: judd <jvinet at zeroflux.org>
-
-pkgbase=util-linux
-pkgname=(util-linux libutil-linux)
-_pkgmajor=2.29
-pkgver=${_pkgmajor}.2
-pkgrel=1
-pkgdesc="Miscellaneous system utilities for Linux"
-url="https://www.kernel.org/pub/linux/utils/util-linux/"
-arch=('i686' 'x86_64')
-makedepends=('systemd' 'python')
-license=('GPL2')
-options=('strip' 'debug')
-validpgpkeys=('B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284') # Karel Zak
-source=("https://www.kernel.org/pub/linux/utils/util-linux/v$_pkgmajor/$pkgbase-$pkgver.tar."{xz,sign}
- pam-{login,common,su}
- '0001-sfdisk-support-empty-label-use-case.patch')
-md5sums=('63c40c2068fcbb7e1d5c1d281115d973'
- 'SKIP'
- '4368b3f98abd8a32662e094c54e7f9b1'
- 'a31374fef2cba0ca34dfc7078e2969e4'
- 'fa85e5cce5d723275b14365ba71a8aad'
- '6d2e3915124938577f0ff18ef701c87f')
-
-prepare() {
- cd "$pkgbase-$pkgver"
-
- patch -Np1 <../0001-sfdisk-support-empty-label-use-case.patch
-}
-
-build() {
- cd "$pkgbase-$pkgver"
-
- ./configure --prefix=/usr \
- --libdir=/usr/lib \
- --bindir=/usr/bin \
- --localstatedir=/run \
- --enable-fs-paths-extra=/usr/bin \
- --enable-raw \
- --enable-vipw \
- --enable-newgrp \
- --enable-chfn-chsh \
- --enable-write \
- --enable-mesg \
- --with-python=3
-
- make
-}
-
-package_util-linux() {
- conflicts=('util-linux-ng' 'eject' 'zramctl')
- provides=("util-linux-ng=$pkgver" 'eject' 'zramctl')
- replaces=('zramctl')
- depends=('pam' 'shadow' 'coreutils' 'libsystemd' 'libutil-linux')
- optdepends=('python: python bindings to libmount')
- groups=('base' 'base-devel')
- backup=(etc/pam.d/chfn
- etc/pam.d/chsh
- etc/pam.d/login
- etc/pam.d/su
- etc/pam.d/su-l)
-
- cd "$pkgbase-$pkgver"
-
- make DESTDIR="$pkgdir" install
-
- # setuid chfn and chsh
- chmod 4755 "$pkgdir"/usr/bin/{newgrp,ch{sh,fn}}
-
- # install PAM files for login-utils
- install -Dm644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chfn"
- install -m644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chsh"
- install -m644 "$srcdir/pam-login" "$pkgdir/etc/pam.d/login"
- install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su"
- install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su-l"
-
- # TODO(dreisner): offer this upstream?
- sed -i '/ListenStream/ aRuntimeDirectory=uuidd' "$pkgdir/usr/lib/systemd/system/uuidd.socket"
-
- # adjust for usrmove
- # TODO(dreisner): fix configure.ac upstream so that this isn't needed
- cd "$pkgdir"
- mv {,usr/}sbin/* usr/bin
- rmdir sbin usr/sbin
-
- ### 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
-}
-
-package_libutil-linux() {
- pkgdesc="util-linux runtime libraries"
- provides=('libblkid.so' 'libfdisk.so' 'libmount.so' 'libsmartcols.so' 'libuuid.so')
-
- make -C "$pkgbase-$pkgver" DESTDIR="$pkgdir" install-usrlib_execLTLIBRARIES
-}
Copied: util-linux/repos/core-i686/PKGBUILD (from rev 291955, util-linux/repos/testing-i686/PKGBUILD)
===================================================================
--- core-i686/PKGBUILD (rev 0)
+++ core-i686/PKGBUILD 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,110 @@
+# $Id$
+# Maintainer: Tom Gundersen <teg at jklm.no>
+# Maintainer: Dave Reisner <dreisner at archlinux.org>
+# Contributor: judd <jvinet at zeroflux.org>
+
+pkgbase=util-linux
+pkgname=(util-linux libutil-linux)
+_pkgmajor=2.29
+pkgver=${_pkgmajor}.2
+pkgrel=2
+pkgdesc="Miscellaneous system utilities for Linux"
+url="https://www.kernel.org/pub/linux/utils/util-linux/"
+arch=('i686' 'x86_64')
+makedepends=('systemd' 'python')
+license=('GPL2')
+options=('strip' 'debug')
+validpgpkeys=('B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284') # Karel Zak
+source=("https://www.kernel.org/pub/linux/utils/util-linux/v$_pkgmajor/$pkgbase-$pkgver.tar."{xz,sign}
+ pam-{login,common,su}
+ 'util-linux.sysusers'
+ '0001-sfdisk-support-empty-label-use-case.patch')
+md5sums=('63c40c2068fcbb7e1d5c1d281115d973'
+ 'SKIP'
+ '4368b3f98abd8a32662e094c54e7f9b1'
+ 'a31374fef2cba0ca34dfc7078e2969e4'
+ 'fa85e5cce5d723275b14365ba71a8aad'
+ 'dfc9904f67ebc54bb347ca3cc430ef2b'
+ '6d2e3915124938577f0ff18ef701c87f')
+
+prepare() {
+ cd "$pkgbase-$pkgver"
+
+ patch -Np1 <../0001-sfdisk-support-empty-label-use-case.patch
+}
+
+build() {
+ cd "$pkgbase-$pkgver"
+
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib \
+ --bindir=/usr/bin \
+ --localstatedir=/run \
+ --enable-fs-paths-extra=/usr/bin \
+ --enable-raw \
+ --enable-vipw \
+ --enable-newgrp \
+ --enable-chfn-chsh \
+ --enable-write \
+ --enable-mesg \
+ --with-python=3
+
+ make
+}
+
+package_util-linux() {
+ conflicts=('util-linux-ng' 'eject' 'zramctl')
+ provides=("util-linux-ng=$pkgver" 'eject' 'zramctl')
+ replaces=('zramctl')
+ depends=('pam' 'shadow' 'coreutils' 'libsystemd' 'libutil-linux')
+ optdepends=('python: python bindings to libmount')
+ groups=('base' 'base-devel')
+ backup=(etc/pam.d/chfn
+ etc/pam.d/chsh
+ etc/pam.d/login
+ etc/pam.d/su
+ etc/pam.d/su-l)
+
+ cd "$pkgbase-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # setuid chfn and chsh
+ chmod 4755 "$pkgdir"/usr/bin/{newgrp,ch{sh,fn}}
+
+ # install PAM files for login-utils
+ install -Dm644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chfn"
+ install -m644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chsh"
+ install -m644 "$srcdir/pam-login" "$pkgdir/etc/pam.d/login"
+ install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su"
+ install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su-l"
+
+ # TODO(dreisner): offer this upstream?
+ sed -i '/ListenStream/ aRuntimeDirectory=uuidd' "$pkgdir/usr/lib/systemd/system/uuidd.socket"
+
+ # adjust for usrmove
+ # TODO(dreisner): fix configure.ac upstream so that this isn't needed
+ cd "$pkgdir"
+ mv {,usr/}sbin/* usr/bin
+ rmdir sbin usr/sbin
+
+ ### 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"
+}
+
+package_libutil-linux() {
+ pkgdesc="util-linux runtime libraries"
+ provides=('libblkid.so' 'libfdisk.so' 'libmount.so' 'libsmartcols.so' 'libuuid.so')
+
+ make -C "$pkgbase-$pkgver" DESTDIR="$pkgdir" install-usrlib_execLTLIBRARIES
+}
Deleted: core-i686/pam-common
===================================================================
--- core-i686/pam-common 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-i686/pam-common 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
-password required pam_permit.so
Copied: util-linux/repos/core-i686/pam-common (from rev 291955, util-linux/repos/testing-i686/pam-common)
===================================================================
--- core-i686/pam-common (rev 0)
+++ core-i686/pam-common 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_permit.so
Deleted: core-i686/pam-login
===================================================================
--- core-i686/pam-login 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-i686/pam-login 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,7 +0,0 @@
-#%PAM-1.0
-
-auth required pam_securetty.so
-auth requisite pam_nologin.so
-auth include system-local-login
-account include system-local-login
-session include system-local-login
Copied: util-linux/repos/core-i686/pam-login (from rev 291955, util-linux/repos/testing-i686/pam-login)
===================================================================
--- core-i686/pam-login (rev 0)
+++ core-i686/pam-login 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,7 @@
+#%PAM-1.0
+
+auth required pam_securetty.so
+auth requisite pam_nologin.so
+auth include system-local-login
+account include system-local-login
+session include system-local-login
Deleted: core-i686/pam-su
===================================================================
--- core-i686/pam-su 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-i686/pam-su 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,9 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-# Uncomment the following line to implicitly trust users in the "wheel" group.
-#auth sufficient pam_wheel.so trust use_uid
-# Uncomment the following line to require a user to be in the "wheel" group.
-#auth required pam_wheel.so use_uid
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
Copied: util-linux/repos/core-i686/pam-su (from rev 291955, util-linux/repos/testing-i686/pam-su)
===================================================================
--- core-i686/pam-su (rev 0)
+++ core-i686/pam-su 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,9 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+# Uncomment the following line to implicitly trust users in the "wheel" group.
+#auth sufficient pam_wheel.so trust use_uid
+# Uncomment the following line to require a user to be in the "wheel" group.
+#auth required pam_wheel.so use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
Copied: util-linux/repos/core-i686/util-linux.sysusers (from rev 291955, util-linux/repos/testing-i686/util-linux.sysusers)
===================================================================
--- core-i686/util-linux.sysusers (rev 0)
+++ core-i686/util-linux.sysusers 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1 @@
+u uuidd 68
Deleted: core-x86_64/0001-sfdisk-support-empty-label-use-case.patch
===================================================================
--- core-x86_64/0001-sfdisk-support-empty-label-use-case.patch 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-x86_64/0001-sfdisk-support-empty-label-use-case.patch 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,223 +0,0 @@
-From 35ca51182782193f555fbdcb06bb10766550d017 Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak at 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 at 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
-
Copied: util-linux/repos/core-x86_64/0001-sfdisk-support-empty-label-use-case.patch (from rev 291955, util-linux/repos/testing-x86_64/0001-sfdisk-support-empty-label-use-case.patch)
===================================================================
--- core-x86_64/0001-sfdisk-support-empty-label-use-case.patch (rev 0)
+++ core-x86_64/0001-sfdisk-support-empty-label-use-case.patch 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,223 @@
+From 35ca51182782193f555fbdcb06bb10766550d017 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak at 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 at 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
+
Deleted: core-x86_64/PKGBUILD
===================================================================
--- core-x86_64/PKGBUILD 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-x86_64/PKGBUILD 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,104 +0,0 @@
-# $Id$
-# Maintainer: Tom Gundersen <teg at jklm.no>
-# Maintainer: Dave Reisner <dreisner at archlinux.org>
-# Contributor: judd <jvinet at zeroflux.org>
-
-pkgbase=util-linux
-pkgname=(util-linux libutil-linux)
-_pkgmajor=2.29
-pkgver=${_pkgmajor}.2
-pkgrel=1
-pkgdesc="Miscellaneous system utilities for Linux"
-url="https://www.kernel.org/pub/linux/utils/util-linux/"
-arch=('i686' 'x86_64')
-makedepends=('systemd' 'python')
-license=('GPL2')
-options=('strip' 'debug')
-validpgpkeys=('B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284') # Karel Zak
-source=("https://www.kernel.org/pub/linux/utils/util-linux/v$_pkgmajor/$pkgbase-$pkgver.tar."{xz,sign}
- pam-{login,common,su}
- '0001-sfdisk-support-empty-label-use-case.patch')
-md5sums=('63c40c2068fcbb7e1d5c1d281115d973'
- 'SKIP'
- '4368b3f98abd8a32662e094c54e7f9b1'
- 'a31374fef2cba0ca34dfc7078e2969e4'
- 'fa85e5cce5d723275b14365ba71a8aad'
- '6d2e3915124938577f0ff18ef701c87f')
-
-prepare() {
- cd "$pkgbase-$pkgver"
-
- patch -Np1 <../0001-sfdisk-support-empty-label-use-case.patch
-}
-
-build() {
- cd "$pkgbase-$pkgver"
-
- ./configure --prefix=/usr \
- --libdir=/usr/lib \
- --bindir=/usr/bin \
- --localstatedir=/run \
- --enable-fs-paths-extra=/usr/bin \
- --enable-raw \
- --enable-vipw \
- --enable-newgrp \
- --enable-chfn-chsh \
- --enable-write \
- --enable-mesg \
- --with-python=3
-
- make
-}
-
-package_util-linux() {
- conflicts=('util-linux-ng' 'eject' 'zramctl')
- provides=("util-linux-ng=$pkgver" 'eject' 'zramctl')
- replaces=('zramctl')
- depends=('pam' 'shadow' 'coreutils' 'libsystemd' 'libutil-linux')
- optdepends=('python: python bindings to libmount')
- groups=('base' 'base-devel')
- backup=(etc/pam.d/chfn
- etc/pam.d/chsh
- etc/pam.d/login
- etc/pam.d/su
- etc/pam.d/su-l)
-
- cd "$pkgbase-$pkgver"
-
- make DESTDIR="$pkgdir" install
-
- # setuid chfn and chsh
- chmod 4755 "$pkgdir"/usr/bin/{newgrp,ch{sh,fn}}
-
- # install PAM files for login-utils
- install -Dm644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chfn"
- install -m644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chsh"
- install -m644 "$srcdir/pam-login" "$pkgdir/etc/pam.d/login"
- install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su"
- install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su-l"
-
- # TODO(dreisner): offer this upstream?
- sed -i '/ListenStream/ aRuntimeDirectory=uuidd' "$pkgdir/usr/lib/systemd/system/uuidd.socket"
-
- # adjust for usrmove
- # TODO(dreisner): fix configure.ac upstream so that this isn't needed
- cd "$pkgdir"
- mv {,usr/}sbin/* usr/bin
- rmdir sbin usr/sbin
-
- ### 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
-}
-
-package_libutil-linux() {
- pkgdesc="util-linux runtime libraries"
- provides=('libblkid.so' 'libfdisk.so' 'libmount.so' 'libsmartcols.so' 'libuuid.so')
-
- make -C "$pkgbase-$pkgver" DESTDIR="$pkgdir" install-usrlib_execLTLIBRARIES
-}
Copied: util-linux/repos/core-x86_64/PKGBUILD (from rev 291955, util-linux/repos/testing-x86_64/PKGBUILD)
===================================================================
--- core-x86_64/PKGBUILD (rev 0)
+++ core-x86_64/PKGBUILD 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,110 @@
+# $Id$
+# Maintainer: Tom Gundersen <teg at jklm.no>
+# Maintainer: Dave Reisner <dreisner at archlinux.org>
+# Contributor: judd <jvinet at zeroflux.org>
+
+pkgbase=util-linux
+pkgname=(util-linux libutil-linux)
+_pkgmajor=2.29
+pkgver=${_pkgmajor}.2
+pkgrel=2
+pkgdesc="Miscellaneous system utilities for Linux"
+url="https://www.kernel.org/pub/linux/utils/util-linux/"
+arch=('i686' 'x86_64')
+makedepends=('systemd' 'python')
+license=('GPL2')
+options=('strip' 'debug')
+validpgpkeys=('B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284') # Karel Zak
+source=("https://www.kernel.org/pub/linux/utils/util-linux/v$_pkgmajor/$pkgbase-$pkgver.tar."{xz,sign}
+ pam-{login,common,su}
+ 'util-linux.sysusers'
+ '0001-sfdisk-support-empty-label-use-case.patch')
+md5sums=('63c40c2068fcbb7e1d5c1d281115d973'
+ 'SKIP'
+ '4368b3f98abd8a32662e094c54e7f9b1'
+ 'a31374fef2cba0ca34dfc7078e2969e4'
+ 'fa85e5cce5d723275b14365ba71a8aad'
+ 'dfc9904f67ebc54bb347ca3cc430ef2b'
+ '6d2e3915124938577f0ff18ef701c87f')
+
+prepare() {
+ cd "$pkgbase-$pkgver"
+
+ patch -Np1 <../0001-sfdisk-support-empty-label-use-case.patch
+}
+
+build() {
+ cd "$pkgbase-$pkgver"
+
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib \
+ --bindir=/usr/bin \
+ --localstatedir=/run \
+ --enable-fs-paths-extra=/usr/bin \
+ --enable-raw \
+ --enable-vipw \
+ --enable-newgrp \
+ --enable-chfn-chsh \
+ --enable-write \
+ --enable-mesg \
+ --with-python=3
+
+ make
+}
+
+package_util-linux() {
+ conflicts=('util-linux-ng' 'eject' 'zramctl')
+ provides=("util-linux-ng=$pkgver" 'eject' 'zramctl')
+ replaces=('zramctl')
+ depends=('pam' 'shadow' 'coreutils' 'libsystemd' 'libutil-linux')
+ optdepends=('python: python bindings to libmount')
+ groups=('base' 'base-devel')
+ backup=(etc/pam.d/chfn
+ etc/pam.d/chsh
+ etc/pam.d/login
+ etc/pam.d/su
+ etc/pam.d/su-l)
+
+ cd "$pkgbase-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # setuid chfn and chsh
+ chmod 4755 "$pkgdir"/usr/bin/{newgrp,ch{sh,fn}}
+
+ # install PAM files for login-utils
+ install -Dm644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chfn"
+ install -m644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chsh"
+ install -m644 "$srcdir/pam-login" "$pkgdir/etc/pam.d/login"
+ install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su"
+ install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su-l"
+
+ # TODO(dreisner): offer this upstream?
+ sed -i '/ListenStream/ aRuntimeDirectory=uuidd' "$pkgdir/usr/lib/systemd/system/uuidd.socket"
+
+ # adjust for usrmove
+ # TODO(dreisner): fix configure.ac upstream so that this isn't needed
+ cd "$pkgdir"
+ mv {,usr/}sbin/* usr/bin
+ rmdir sbin usr/sbin
+
+ ### 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"
+}
+
+package_libutil-linux() {
+ pkgdesc="util-linux runtime libraries"
+ provides=('libblkid.so' 'libfdisk.so' 'libmount.so' 'libsmartcols.so' 'libuuid.so')
+
+ make -C "$pkgbase-$pkgver" DESTDIR="$pkgdir" install-usrlib_execLTLIBRARIES
+}
Deleted: core-x86_64/pam-common
===================================================================
--- core-x86_64/pam-common 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-x86_64/pam-common 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,6 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
-password required pam_permit.so
Copied: util-linux/repos/core-x86_64/pam-common (from rev 291955, util-linux/repos/testing-x86_64/pam-common)
===================================================================
--- core-x86_64/pam-common (rev 0)
+++ core-x86_64/pam-common 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_permit.so
Deleted: core-x86_64/pam-login
===================================================================
--- core-x86_64/pam-login 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-x86_64/pam-login 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,7 +0,0 @@
-#%PAM-1.0
-
-auth required pam_securetty.so
-auth requisite pam_nologin.so
-auth include system-local-login
-account include system-local-login
-session include system-local-login
Copied: util-linux/repos/core-x86_64/pam-login (from rev 291955, util-linux/repos/testing-x86_64/pam-login)
===================================================================
--- core-x86_64/pam-login (rev 0)
+++ core-x86_64/pam-login 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,7 @@
+#%PAM-1.0
+
+auth required pam_securetty.so
+auth requisite pam_nologin.so
+auth include system-local-login
+account include system-local-login
+session include system-local-login
Deleted: core-x86_64/pam-su
===================================================================
--- core-x86_64/pam-su 2017-03-31 23:17:43 UTC (rev 291955)
+++ core-x86_64/pam-su 2017-03-31 23:18:03 UTC (rev 291956)
@@ -1,9 +0,0 @@
-#%PAM-1.0
-auth sufficient pam_rootok.so
-# Uncomment the following line to implicitly trust users in the "wheel" group.
-#auth sufficient pam_wheel.so trust use_uid
-# Uncomment the following line to require a user to be in the "wheel" group.
-#auth required pam_wheel.so use_uid
-auth required pam_unix.so
-account required pam_unix.so
-session required pam_unix.so
Copied: util-linux/repos/core-x86_64/pam-su (from rev 291955, util-linux/repos/testing-x86_64/pam-su)
===================================================================
--- core-x86_64/pam-su (rev 0)
+++ core-x86_64/pam-su 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1,9 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+# Uncomment the following line to implicitly trust users in the "wheel" group.
+#auth sufficient pam_wheel.so trust use_uid
+# Uncomment the following line to require a user to be in the "wheel" group.
+#auth required pam_wheel.so use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
Copied: util-linux/repos/core-x86_64/util-linux.sysusers (from rev 291955, util-linux/repos/testing-x86_64/util-linux.sysusers)
===================================================================
--- core-x86_64/util-linux.sysusers (rev 0)
+++ core-x86_64/util-linux.sysusers 2017-03-31 23:18:03 UTC (rev 291956)
@@ -0,0 +1 @@
+u uuidd 68
More information about the arch-commits
mailing list