From 91a508d5bfd1fc865b57ce240d514cd233dcabeb Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 17 Apr 2016 15:16:12 +0000 Subject: [PATCH] util-linux: update to version 2.28 The following patches were merged upstream: * 0001-switch_root-improve-statfs-f_type-portability.patch * 0002-lib-colors-use-static-buffers-when-parse-scheme.patch * 002-mkostemp.patch The following patch is not needed any more because all libc implementations support alloc in sscanf: * 001-no-printf-alloc.patch Signed-off-by: Hauke Mehrtens SVN-Revision: 49191 --- package/utils/util-linux/Makefile | 35 ++++- ...ot-improve-statfs-f_type-portability.patch | 49 ------- ...use-static-buffers-when-parse-scheme.patch | 126 ------------------ .../patches/001-no-printf-alloc.patch | 104 --------------- .../util-linux/patches/002-mkostemp.patch | 46 ------- .../patches/003-fix_pkgconfig_files.patch | 18 ++- 6 files changed, 45 insertions(+), 333 deletions(-) delete mode 100644 package/utils/util-linux/patches/0001-switch_root-improve-statfs-f_type-portability.patch delete mode 100644 package/utils/util-linux/patches/0002-lib-colors-use-static-buffers-when-parse-scheme.patch delete mode 100644 package/utils/util-linux/patches/001-no-printf-alloc.patch delete mode 100644 package/utils/util-linux/patches/002-mkostemp.patch diff --git a/package/utils/util-linux/Makefile b/package/utils/util-linux/Makefile index 73903cd92d..c128b487e5 100644 --- a/package/utils/util-linux/Makefile +++ b/package/utils/util-linux/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=util-linux -PKG_VERSION:=2.25.2 -PKG_RELEASE:=4 +PKG_VERSION:=2.28 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.25 -PKG_MD5SUM:=cab3d7be354000f629bc601238b629b3 +PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.28 +PKG_MD5SUM:=e534e6ccc49107e5d31c329af798ef7d PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING getopt/COPYING libblkid/COPYING libmount/COPYING Documentation/licenses/COPYING.GPLv2 Documentation/licenses/COPYING.LGPLv2.1 libuuid/COPYING Documentation/licenses/COPYING.BSD-3 @@ -41,6 +41,7 @@ CONFIGURE_ARGS += \ --disable-sulogin \ --without-python \ --without-udev \ + --without-readline \ $(if $(CONFIG_PACKAGE_cal)$(CONFIG_PACKAGE_cfdisk)$(CONFIG_PACKAGE_setterm),--with-ncurses,--without-ncurses) TARGET_CFLAGS += $(FPIC) -std=gnu99 @@ -53,12 +54,15 @@ define Build/InstallDev $(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(CP) $(PKG_BUILD_DIR)/libblkid/blkid.pc $(1)/usr/lib/pkgconfig + $(CP) $(PKG_BUILD_DIR)/libfdisk/fdisk.pc $(1)/usr/lib/pkgconfig $(CP) $(PKG_BUILD_DIR)/libmount/mount.pc $(1)/usr/lib/pkgconfig $(CP) $(PKG_BUILD_DIR)/libsmartcols/smartcols.pc $(1)/usr/lib/pkgconfig $(CP) $(PKG_BUILD_DIR)/libuuid/uuid.pc $(1)/usr/lib/pkgconfig $(INSTALL_DIR) $(1)/usr/include/blkid $(CP) $(PKG_BUILD_DIR)/libblkid/src/blkid.h $(1)/usr/include/blkid + $(INSTALL_DIR) $(1)/usr/include/fdisk + $(CP) $(PKG_BUILD_DIR)/libfdisk/src/libfdisk.h $(1)/usr/include/fdisk $(INSTALL_DIR) $(1)/usr/include/libmount $(CP) $(PKG_BUILD_DIR)/libmount/src/libmount.h $(1)/usr/include/libmount $(INSTALL_DIR) $(1)/usr/include/uuid @@ -68,6 +72,7 @@ define Build/InstallDev $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_BUILD_DIR)/.libs/libblkid.{a,so*} $(1)/usr/lib + $(CP) $(PKG_BUILD_DIR)/.libs/libfdisk.{a,so*} $(1)/usr/lib $(CP) $(PKG_BUILD_DIR)/.libs/libmount.{a,so*} $(1)/usr/lib $(CP) $(PKG_BUILD_DIR)/.libs/libuuid.{a,so*} $(1)/usr/lib $(CP) $(PKG_BUILD_DIR)/.libs/libsmartcols.{a,so*} $(1)/usr/lib @@ -88,6 +93,18 @@ define Package/libblkid/description identifiers/serial numbers... endef +define Package/libfdisk +$(call Package/util-linux/Default) + DEPENDS:=+libuuid +libblkid + TITLE:=partition manipulating library + SECTION:=libs + CATEGORY:=Libraries +endef + +define Package/libfdisk/description + The libfdisk library is used for manipulating with partition tables. +endef + define Package/libmount $(call Package/util-linux/Default) DEPENDS:=+libblkid @@ -174,7 +191,7 @@ endef define Package/cfdisk $(call Package/util-linux/Default) TITLE:=display or manipulate disk partition table - DEPENDS:= +libblkid +libncurses +libsmartcols + DEPENDS:= +libblkid +libncurses +libsmartcols +libfdisk +libmount SUBMENU:=disc endef @@ -195,7 +212,7 @@ endef define Package/fdisk $(call Package/util-linux/Default) TITLE:=manipulate disk partition table - DEPENDS:= +libblkid +libsmartcols + DEPENDS:= +libblkid +libsmartcols +libfdisk SUBMENU=disc endef @@ -449,6 +466,11 @@ define Package/wipefs/description libblkid. endef +define Package/libfdisk/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_BUILD_DIR)/.libs/libfdisk.so* $(1)/usr/lib/ +endef + define Package/libblkid/install $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_BUILD_DIR)/.libs/libblkid.so* $(1)/usr/lib/ @@ -626,6 +648,7 @@ define Package/wipefs/install endef $(eval $(call BuildPackage,libblkid)) +$(eval $(call BuildPackage,libfdisk)) $(eval $(call BuildPackage,libmount)) $(eval $(call BuildPackage,libsmartcols)) $(eval $(call BuildPackage,libuuid)) diff --git a/package/utils/util-linux/patches/0001-switch_root-improve-statfs-f_type-portability.patch b/package/utils/util-linux/patches/0001-switch_root-improve-statfs-f_type-portability.patch deleted file mode 100644 index 761ace77ab..0000000000 --- a/package/utils/util-linux/patches/0001-switch_root-improve-statfs-f_type-portability.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 8f806bb1ea30f15db7ca36d1cfa79349f8115302 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Thu, 6 Nov 2014 12:50:27 +0100 -Subject: [PATCH] switch_root: improve statfs->f_type portability - -__SWORD_TYPE is not available everywhere, for example it's not defined -by musl libc. It also seems that __SWORD_TYPE is not used for f_type -on some architectures (s390x). - -Reported-by: Natanael Copa -Signed-off-by: Karel Zak ---- - include/statfs_magic.h | 11 +++++++++++ - sys-utils/switch_root.c | 4 ++-- - 2 files changed, 13 insertions(+), 2 deletions(-) - ---- a/include/statfs_magic.h -+++ b/include/statfs_magic.h -@@ -1,6 +1,17 @@ - #ifndef UTIL_LINUX_STATFS_MAGIC_H - #define UTIL_LINUX_STATFS_MAGIC_H - -+#include -+ -+/* -+ * If possible then don't depend on internal libc __SWORD_TYPE type. -+ */ -+#ifdef __GNUC__ -+typedef __typeof__( ((struct statfs *)0)->f_type ) ul_statfs_ftype_t; -+#else -+typedef __SWORD_TYPE ul_statfs_ftype_t; -+#endif -+ - /* - * Unfortunately, Linux kernel hedeader file is incomplete - * mess and kernel returns by statfs f_type many numbers that are nowhere ---- a/sys-utils/switch_root.c -+++ b/sys-utils/switch_root.c -@@ -181,8 +181,8 @@ static int switchroot(const char *newroo - if (pid <= 0) { - struct statfs stfs; - if (fstatfs(cfd, &stfs) == 0 && -- (stfs.f_type == (__SWORD_TYPE)STATFS_RAMFS_MAGIC || -- stfs.f_type == (__SWORD_TYPE)STATFS_TMPFS_MAGIC)) -+ (stfs.f_type == (ul_statfs_ftype_t) STATFS_RAMFS_MAGIC || -+ stfs.f_type == (ul_statfs_ftype_t) STATFS_TMPFS_MAGIC)) - recursiveRemove(cfd); - else - warn(_("old root filesystem is not an initramfs")); diff --git a/package/utils/util-linux/patches/0002-lib-colors-use-static-buffers-when-parse-scheme.patch b/package/utils/util-linux/patches/0002-lib-colors-use-static-buffers-when-parse-scheme.patch deleted file mode 100644 index ccd82fd057..0000000000 --- a/package/utils/util-linux/patches/0002-lib-colors-use-static-buffers-when-parse-scheme.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 6508db29ded734ac4ff5e5e19486c143c9eb3d89 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Fri, 21 Nov 2014 12:23:47 +0100 -Subject: [PATCH] lib/colors: use static buffers when parse scheme - -* use static buffers when parse scheme colors -* cleanup deallocation on error in sequence parser - -Signed-off-by: Karel Zak ---- - -This is modified upstream patch. - ---- a/lib/colors.c -+++ b/lib/colors.c -@@ -416,28 +416,31 @@ static int colors_add_scheme(struct ul_c - char *name, - char *seq0) - { -- struct ul_color_scheme *cs; -- char *seq; -+ struct ul_color_scheme *cs = NULL; -+ char *seq = NULL; - int rc; - - if (!cc || !name || !*name || !seq0 || !*seq0) - return -EINVAL; - - rc = cn_sequence(seq0, &seq); -- free(seq0); - if (rc) - return rc; - -+ rc = -ENOMEM; -+ - /* convert logical name (e.g. "red") to real ESC code */ - if (isalpha(*seq)) { - const char *s = color_sequence_from_colorname(seq); - char *p; - -- if (!s) -- return -EINVAL; -+ if (!s) { -+ rc = -EINVAL; -+ goto err; -+ } - p = strdup(s); - if (!p) -- return -ENOMEM; -+ goto err; - free(seq); - seq = p; - } -@@ -447,17 +450,28 @@ static int colors_add_scheme(struct ul_c - void *tmp = realloc(cc->schemes, (cc->nschemes + 10) - * sizeof(struct ul_color_scheme)); - if (!tmp) -- return -ENOMEM; -+ goto err; - cc->schemes = tmp; - cc->schemes_sz = cc->nschemes + 10; - } - - /* add a new item */ -- cs = &cc->schemes[cc->nschemes++]; -- cs->name = name; -+ cs = &cc->schemes[cc->nschemes]; - cs->seq = seq; -+ cs->name = strdup(name); -+ if (!cs->name) -+ goto err; - -+ cc->nschemes++; - return 0; -+err: -+ if (cs) { -+ free(cs->seq); -+ free(cs->name); -+ cs->seq = cs->name = NULL; -+ } else -+ free(seq); -+ return rc; - } - - /* -@@ -543,7 +557,8 @@ static int colors_read_schemes(struct ul - { - int rc = 0; - FILE *f = NULL; -- char buf[BUFSIZ]; -+ char buf[BUFSIZ], -+ cn[129], seq[129]; - - if (!cc->configured) - rc = colors_read_configuration(cc); -@@ -560,7 +575,6 @@ static int colors_read_schemes(struct ul - } - - while (fgets(buf, sizeof(buf), f)) { -- char *cn = NULL, *seq = NULL; - char *p = strchr(buf, '\n'); - - if (!p) { -@@ -576,17 +590,14 @@ static int colors_read_schemes(struct ul - if (*p == '\0' || *p == '#') - continue; - -- rc = sscanf(p, UL_SCNsA" " /* name */ -- UL_SCNsA, /* color */ -- &cn, &seq); -- if (rc == 2 && cn && seq) -+ rc = sscanf(p, "%128[^ ] %128[^\n ]", cn, seq); -+ if (rc == 2 && *cn && *seq) { - rc = colors_add_scheme(cc, cn, seq); /* set rc=0 on success */ -- if (rc) { -- free(cn); -- free(seq); -+ if (rc) -+ goto done; - } -- rc = 0; - } -+ rc = 0; - - done: - if (f) diff --git a/package/utils/util-linux/patches/001-no-printf-alloc.patch b/package/utils/util-linux/patches/001-no-printf-alloc.patch deleted file mode 100644 index ad9eef0959..0000000000 --- a/package/utils/util-linux/patches/001-no-printf-alloc.patch +++ /dev/null @@ -1,104 +0,0 @@ ---- a/configure.ac -+++ b/configure.ac -@@ -798,7 +798,6 @@ AC_ARG_ENABLE([libmount], - ) - UL_BUILD_INIT([libmount]) - UL_REQUIRES_BUILD([libmount], [libblkid]) --UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier]) - AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes]) - AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes]) - ---- a/libmount/src/tab_parse.c -+++ b/libmount/src/tab_parse.c -@@ -22,6 +22,10 @@ - #include "pathnames.h" - #include "strutils.h" - -+#ifndef HAVE_SCANF_MS_MODIFIER -+# define UL_SCNsA "%s" -+#endif -+ - static int next_number(char **s, int *num) - { - char *end = NULL; -@@ -52,16 +56,31 @@ static int mnt_parse_table_line(struct l - int rc, n = 0, xrc; - char *src = NULL, *fstype = NULL, *optstr = NULL; - -+#ifndef HAVE_SCANF_MS_MODIFIER -+ size_t len = strlen(s) + 1; -+ src = malloc(len); -+ fstype = malloc(len); -+ fs->target = malloc(len); -+ optstr = malloc(len); -+#endif -+ - rc = sscanf(s, UL_SCNsA" " /* (1) source */ - UL_SCNsA" " /* (2) target */ - UL_SCNsA" " /* (3) FS type */ - UL_SCNsA" " /* (4) options */ - "%n", /* byte count */ - -+#ifdef HAVE_SCANF_MS_MODIFIER - &src, - &fs->target, - &fstype, - &optstr, -+#else -+ src, -+ fs->target, -+ fstype, -+ optstr, -+#endif - &n); - xrc = rc; - -@@ -127,6 +146,16 @@ static int mnt_parse_mountinfo_line(stru - unsigned int maj, min; - char *fstype = NULL, *src = NULL, *p; - -+#ifndef HAVE_SCANF_MS_MODIFIER -+ size_t len = strlen(s) + 1; -+ fs->root = malloc(len); -+ fs->target = malloc(len); -+ fs->vfs_optstr = malloc(len); -+ fs->fs_optstr = malloc(len); -+ fstype = malloc(len); -+ src = malloc(len); -+#endif -+ - rc = sscanf(s, "%d " /* (1) id */ - "%d " /* (2) parent */ - "%u:%u " /* (3) maj:min */ -@@ -138,9 +167,15 @@ static int mnt_parse_mountinfo_line(stru - &fs->id, - &fs->parent, - &maj, &min, -+#ifdef HAVE_SCANF_MS_MODIFIER - &fs->root, - &fs->target, - &fs->vfs_optstr, -+#else -+ fs->root, -+ fs->target, -+ fs->vfs_optstr, -+#endif - &end); - - if (rc >= 7 && end > 0) -@@ -160,9 +195,15 @@ static int mnt_parse_mountinfo_line(stru - UL_SCNsA" " /* (9) source */ - UL_SCNsA, /* (10) fs options (fs specific) */ - -+#ifdef HAVE_SCANF_MS_MODIFIER - &fstype, - &src, - &fs->fs_optstr); -+#else -+ fstype, -+ src, -+ fs->fs_optstr); -+#endif - - if (rc >= 10) { - size_t sz; diff --git a/package/utils/util-linux/patches/002-mkostemp.patch b/package/utils/util-linux/patches/002-mkostemp.patch deleted file mode 100644 index 0281842300..0000000000 --- a/package/utils/util-linux/patches/002-mkostemp.patch +++ /dev/null @@ -1,46 +0,0 @@ -Support older hosts with latest util-linux-native - -mkostemp is not defined on older machines. So we detect this and -provide a define that uses mkstemp instead. - -O_CLOEXEC is not defined on older machines. It is however defined -in the 'c.h' header. Fix up the users to include 'c.h'. - -fdisks/fdisksunlabel.c was modified to use qsort_r, however -this is not defined on older hosts. Revert: - commit c69bbca9c1f6645097bd20fe3a21f5a99a2a0698 - fdisk: (sun): use ask API, remove global variable - -Upstream-Status: Inappropriate [other] -Patches revert upstream changes in order to support older -machines. - -Signed-off-by: Mark Hatle ---- - ---- a/configure.ac -+++ b/configure.ac -@@ -315,6 +315,7 @@ AC_CHECK_FUNCS([ \ - llseek \ - lseek64 \ - mempcpy \ -+ mkostemp \ - nanosleep \ - open_memstream \ - personality \ ---- a/include/c.h -+++ b/include/c.h -@@ -233,6 +233,13 @@ static inline int dirfd(DIR *d) - #endif - - /* -+ * mkostemp replacement -+ */ -+#ifndef HAVE_MKOSTEMP -+#define mkostemp(template, flags) mkstemp(template) -+#endif -+ -+/* - * MAXHOSTNAMELEN replacement - */ - static inline size_t get_hostname_max(void) diff --git a/package/utils/util-linux/patches/003-fix_pkgconfig_files.patch b/package/utils/util-linux/patches/003-fix_pkgconfig_files.patch index ac590a0642..cc9cd11188 100644 --- a/package/utils/util-linux/patches/003-fix_pkgconfig_files.patch +++ b/package/utils/util-linux/patches/003-fix_pkgconfig_files.patch @@ -10,7 +10,7 @@ endif # BUILD_LIBUUID --- a/configure.ac +++ b/configure.ac -@@ -1802,15 +1802,19 @@ AC_CONFIG_HEADERS([config.h]) +@@ -2122,18 +2122,23 @@ AC_CONFIG_HEADERS([config.h]) # AC_CONFIG_FILES([ Makefile @@ -18,6 +18,10 @@ libblkid/docs/Makefile libblkid/docs/version.xml libblkid/src/blkid.h ++libfdisk/fdisk.pc + libfdisk/docs/Makefile + libfdisk/docs/version.xml + libfdisk/src/libfdisk.h +libmount/mount.pc libmount/docs/Makefile libmount/docs/version.xml @@ -52,7 +56,7 @@ endif # BUILD_LIBMOUNT --- a/libsmartcols/Makemodule.am +++ b/libsmartcols/Makemodule.am -@@ -8,7 +8,6 @@ SUBDIRS += libsmartcols/docs +@@ -9,7 +9,6 @@ SUBDIRS += libsmartcols/docs endif pkgconfig_DATA += libsmartcols/smartcols.pc @@ -60,3 +64,13 @@ EXTRA_DIST += libsmartcols/COPYING endif # BUILD_LIBSMARTCOLS +--- a/libfdisk/Makemodule.am ++++ b/libfdisk/Makemodule.am +@@ -8,7 +8,6 @@ SUBDIRS += libfdisk/docs + endif + + pkgconfig_DATA += libfdisk/fdisk.pc +-PATHFILES += libfdisk/fdisk.pc + EXTRA_DIST += libfdisk/COPYING + + endif # BUILD_LIBFDISK -- 2.25.1