Revert "util-linux: use meson to build"

util-linux 2.37 doesn't support meson yet.

This reverts commit eab60d315f.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2022-05-26 17:24:32 +08:00
parent 70185ee7b5
commit 206ad7b6a7
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
16 changed files with 51 additions and 384 deletions

View File

@ -25,10 +25,14 @@ PKG_LICENSE_FILES:= COPYING \
libuuid/COPYING \
Documentation/licenses/COPYING.BSD-3
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
DISABLE_NLS:=--disable-nls
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/meson.mk
define Package/util-linux/Default
SECTION:=utils
@ -548,69 +552,44 @@ define Package/wipefs/description
libblkid.
endef
MESON_ARGS += \
-Dsystemd=disabled \
-Dtinfo=disabled \
-Dcryptsetup=disabled \
-Dlibutil=disabled \
-Dlibutempter=disabled \
-Dlibpcre2-posix=disabled \
-Dlibuser=disabled \
-Duse-tty-group=false \
-Duse-tls=false \
-Dbuild-python=disabled \
-Dbuild-zramctl=disabled \
-Dbuild-fsck=disabled \
-Dbuild-wipefs=disabled \
-Dbuild-fallocate=disabled \
-Dbuild-setpriv=disabled \
-Dbuild-hardlink=disabled \
-Dbuild-cramfs=disabled \
-Dbuild-bfs=disabled \
-Dbuild-minix=disabled \
-Dbuild-fdformat=disabled \
-Dbuild-lslogins=disabled \
-Dbuild-wdctl=disabled \
-Dbuild-cal=disabled \
-Dbuild-switch_root=disabled \
-Dbuild-pivot_root=disabled \
-Dbuild-lsmem=disabled \
-Dbuild-lsirq=disabled \
-Dbuild-irqtop=disabled \
-Dbuild-chmem=disabled \
-Dbuild-ipcrm=disabled \
-Dbuild-rfkill=disabled \
-Dbuild-tunelp=disabled \
-Dbuild-kill=disabled \
-Dbuild-last=disabled \
-Dbuild-utmpdump=disabled \
-Dbuild-line=disabled \
-Dbuild-mesg=disabled \
-Dbuild-raw=disabled \
-Dbuild-vipw=disabled \
-Dbuild-newgrp=disabled \
-Dbuild-chfn-chsh=disabled \
-Dbuild-login=disabled \
-Dbuild-nologin=disabled \
-Dbuild-sulogin=disabled \
-Dbuild-su=disabled \
-Dbuild-runuser=disabled \
-Dbuild-ul=disabled \
-Dbuild-pg=disabled \
-Dbuild-write=disabled \
-Dbuild-bash-completion=disabled \
-Dbuild-pylibmount=disabled \
-Dreadline=disabled \
-Dmagic=disabled \
-Dncursesw=enabled
CONFIGURE_ARGS += \
--disable-use-tty-group \
--disable-rpath \
--disable-tls \
--disable-su \
--disable-sulogin \
--disable-makeinstall-chown \
--disable-login \
--disable-nologin \
--disable-lslogins \
--disable-runuser \
--disable-chfn-chsh \
--disable-raw \
--without-python \
--without-udev \
--without-readline \
--without-libmagic \
--with-ncursesw
TARGET_CFLAGS += $(FPIC) -std=gnu99
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/blkid.pc $(1)/usr/lib/pkgconfig
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/blkid.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/blkid.pc
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fdisk.pc $(1)/usr/lib/pkgconfig
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/fdisk.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/fdisk.pc
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/mount.pc $(1)/usr/lib/pkgconfig
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/mount.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/mount.pc
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/smartcols.pc $(1)/usr/lib/pkgconfig
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/smartcols.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/smartcols.pc
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/uuid.pc $(1)/usr/lib/pkgconfig
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/uuid.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/uuid.pc
$(INSTALL_DIR) $(1)/usr/include/blkid
$(CP) $(PKG_INSTALL_DIR)/usr/include/blkid/blkid.h $(1)/usr/include/blkid
@ -624,37 +603,43 @@ define Build/InstallDev
$(CP) $(PKG_INSTALL_DIR)/usr/include/libsmartcols/libsmartcols.h $(1)/usr/include/libsmartcols
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libblkid.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdisk.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmount.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libuuid.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsmartcols.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/libblkid.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/libfdisk.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/libmount.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/libuuid.so* $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/lib/libsmartcols.so* $(1)/usr/lib
$(LN) libblkid.so.1 $(1)/usr/lib/libblkid.so
$(LN) libfdisk.so.1 $(1)/usr/lib/libfdisk.so
$(LN) libmount.so.1 $(1)/usr/lib/libmount.so
$(LN) libuuid.so.1 $(1)/usr/lib/libuuid.so
$(LN) libsmartcols.so.1 $(1)/usr/lib/libsmartcols.so
endef
define Package/libfdisk/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfdisk.so.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/libfdisk.so.* $(1)/usr/lib/
endef
define Package/libblkid/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libblkid.so.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/libblkid.so.* $(1)/usr/lib/
endef
define Package/libmount/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmount.so.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/libmount.so.* $(1)/usr/lib/
endef
define Package/libsmartcols/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsmartcols.so.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/libsmartcols.so.* $(1)/usr/lib/
endef
define Package/libuuid/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libuuid.so.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/lib/libuuid.so.* $(1)/usr/lib/
endef
define Package/agetty/install

View File

@ -1,20 +0,0 @@
From c387d4fe7a1435a762a5b7d8b75feb13ad613315 Mon Sep 17 00:00:00 2001
From: Anatoly Pugachev <matorola@gmail.com>
Date: Fri, 8 Apr 2022 15:34:16 +0300
Subject: [PATCH] libfdisk: meson.build fix typo
---
libfdisk/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/libfdisk/meson.build
+++ b/libfdisk/meson.build
@@ -11,7 +11,7 @@ libfdisk_h = configure_file(
output : 'libfdisk.h',
configuration : defs,
install : build_libfdisk,
- install_dir : join_paths(get_option('includedir'), 'libfisk'),
+ install_dir : join_paths(get_option('includedir'), 'libfdisk'),
)
lib_fdisk_sources = '''

View File

@ -1,22 +0,0 @@
From 38b15ca2dc4ca32bbe4a2449e1c7b645e4577840 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Fri, 29 Apr 2022 16:53:43 -0700
Subject: [PATCH 1/7] meson: fix compilation without systemd
systemdsystemunitdir is used elsewhere.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson.build | 1 +
1 file changed, 1 insertion(+)
--- a/meson.build
+++ b/meson.build
@@ -720,6 +720,7 @@ if fs_search_path_extra != ''
endif
conf.set_quoted('FS_SEARCH_PATH', fs_search_path)
+systemdsystemunitdir = ''
if systemd.found()
systemdsystemunitdir = systemd.get_pkgconfig_variable('systemdsystemunitdir')
endif

View File

@ -1,34 +0,0 @@
From e25db9169450d3d5fb43656a2eae5c08999310f4 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Fri, 29 Apr 2022 16:56:54 -0700
Subject: [PATCH 2/7] meson: don't use run
Fixes cross compilation. run is not needed anyway.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson.build | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
--- a/meson.build
+++ b/meson.build
@@ -577,8 +577,7 @@ int main(void) {
return tzname ? 0 : 1;
}
'''.format(have ? 1 : 0)
-result = cc.run(code, name : 'using tzname[]')
-have = result.compiled() and result.returncode() == 0
+have = cc.compiles(code, name : 'using tzname[]')
conf.set('HAVE_TZNAME', have ? 1 : false)
socket_libs = []
@@ -641,8 +640,7 @@ int main(void) {
return (*__progname != 0);
}
'''
-result = cc.run(code, name : 'using __progname')
-have = result.compiled() and result.returncode() == 0
+have = cc.compiles(code, name : 'using __progname')
conf.set('HAVE___PROGNAME', have ? 1 : false)
build_plymouth_support = get_option('build-plymouth-support')

View File

@ -1,23 +0,0 @@
From 4194bb5b35e9b5f3296bf17b7cabcc5cb1632ba3 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Fri, 29 Apr 2022 16:55:15 -0700
Subject: [PATCH 3/7] meson: fix cpu_set_t test
_GNU_SOURCE is needed here.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -379,7 +379,7 @@ endforeach
have = cc.has_header('sched.h')
conf.set10('HAVE_DECL_CPU_ALLOC', have)
# We get -1 if the size cannot be determined
-have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#include <sched.h>') > 0
+have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#define _GNU_SOURCE\n#include <sched.h>') > 0
conf.set('HAVE_CPU_SET_T', have_cpu_set_t ? 1 : false)
have = cc.has_header_symbol('stdlib.h', 'environ')

View File

@ -1,23 +0,0 @@
From 1e9e2b9fe365cc4a0025d44dc0a9c54bfffe9058 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Fri, 29 Apr 2022 18:16:17 -0700
Subject: [PATCH 4/7] meson: fix environ search
musl has it defined in unistd.h and hidden behind _GNU_SOURCE.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -382,7 +382,7 @@ conf.set10('HAVE_DECL_CPU_ALLOC', have)
have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#define _GNU_SOURCE\n#include <sched.h>') > 0
conf.set('HAVE_CPU_SET_T', have_cpu_set_t ? 1 : false)
-have = cc.has_header_symbol('stdlib.h', 'environ')
+have = cc.has_header_symbol('unistd.h', 'environ', prefix : '#define _GNU_SOURCE')
conf.set10('HAVE_ENVIRON_DECL', have)
have = cc.has_header_symbol('signal.h', 'sighandler_t')

View File

@ -1,23 +0,0 @@
From 5d7557eb3827664b2b78145373907f2a6994bdf9 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Fri, 29 Apr 2022 18:17:52 -0700
Subject: [PATCH 5/7] meson: add _GNU_SOURCE for sighandler_t
musl requires it.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -385,7 +385,7 @@ conf.set('HAVE_CPU_SET_T', have_cpu_set_
have = cc.has_header_symbol('unistd.h', 'environ', prefix : '#define _GNU_SOURCE')
conf.set10('HAVE_ENVIRON_DECL', have)
-have = cc.has_header_symbol('signal.h', 'sighandler_t')
+have = cc.has_header_symbol('signal.h', 'sighandler_t', prefix : '#define _GNU_SOURCE')
conf.set('HAVE_SIGHANDLER_T', have ? 1 : false)
have = cc.has_header_symbol('string.h', 'strsignal')

View File

@ -1,24 +0,0 @@
From 777652585924034deeba98ae3192f26bc32bb661 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Fri, 29 Apr 2022 18:19:53 -0700
Subject: [PATCH 6/7] meson: fix isnan check
musl only has isnan as a macro, not as a function. Handle the former
case.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -622,7 +622,7 @@ rtas_libs = cc.find_library('rtas', requ
conf.set('HAVE_LIBRTAS', rtas_libs.found() ? 1 : false)
math_libs = []
-if not cc.has_function('isnan')
+if not cc.has_header_symbol('math.h', 'isnan')
lib = cc.find_library('m', required : true)
if (cc.has_function('isnan', dependencies : lib) and
cc.has_function('__isnan', dependencies : lib))

View File

@ -1,23 +0,0 @@
From 9a6b2618b46a859388139d1eb18f876886786659 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Fri, 29 Apr 2022 19:00:53 -0700
Subject: [PATCH] meson: fix tzname check
tzname is not a type but a variable. sizeof only works on types.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -565,7 +565,7 @@ have = cc.has_member('struct tm', 'tm_zo
prefix : '#include <time.h>')
conf.set('HAVE_STRUCT_TM_TM_ZONE', have ? 1 : false)
-have = cc.sizeof('tzname', prefix : '#include <time.h>') > 0
+have = cc.has_header_symbol('time.h', 'tzname')
conf.set('HAVE_DECL_TZNAME', have ? 1 : false)
code = '''

View File

@ -1,18 +0,0 @@
--- a/meson.build
+++ b/meson.build
@@ -299,10 +299,14 @@ conf.set('HAVE_LIBUDEV', lib_udev.found(
lib_crypt = cc.find_library('crypt')
-lib_pam = cc.find_library('pam')
+req_libpam = not (get_option('build-login').disabled() or get_option('build-chfn-chsh').disabled()
+ or get_option('build-su').disabled() or get_option('build-runuser').disabled())
+lib_pam = cc.find_library('pam', required : req_libpam)
if lib_pam.found()
lib_pam_misc = cc.find_library('pam_misc')
lib_pam = [lib_pam, lib_pam_misc]
+else
+ lib_pam_misc = declare_dependency()
endif
lib_cryptsetup = dependency(

View File

@ -1,31 +0,0 @@
From cd23a4336f49ba6a12ade557a09589f2a7c966f4 Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Mon, 2 May 2022 16:18:33 -0700
Subject: [PATCH] meson: make libcap-ng dependent on setpriv
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
meson.build | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/meson.build
+++ b/meson.build
@@ -334,7 +334,8 @@ have = cc.has_function(
conf.set('HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY', have ? 1 : false)
lib_cap_ng = dependency(
- 'libcap-ng')
+ 'libcap-ng',
+ required : get_option('build-setpriv'))
lib_selinux = dependency(
'libselinux',
@@ -1754,7 +1755,7 @@ if opt and not is_disabler(exe)
exes += exe
endif
-opt = not get_option('build-setpriv').disabled()
+opt = not get_option('build-setpriv').disabled() and lib_cap_ng.found()
exe = executable(
'setpriv',
setpriv_sources,

View File

@ -1,21 +0,0 @@
From e51565b653cf09985df57cb7254b16d5af5df223 Mon Sep 17 00:00:00 2001
From: Nicolas Caramelli <caramelli.devel@gmail.com>
Date: Fri, 29 Apr 2022 18:16:36 +0200
Subject: [PATCH] meson: fix when HAVE_CLOCK_GETTIME is set
Signed-off-by: Nicolas Caramelli <caramelli.devel@gmail.com>
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -602,7 +602,7 @@ if not have
have = cc.has_function('clock_gettime',
dependencies : realtime_libs)
endif
-conf.set('HAVE_CLOCK_GETTIME', have_dirfd ? 1 : false)
+conf.set('HAVE_CLOCK_GETTIME', have ? 1 : false)
thread_libs = dependency('threads')

View File

@ -1,20 +0,0 @@
From e0c1a86bf88b568a7afe8ebaea1b9f84afb892c2 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz@archlinux.org>
Date: Wed, 4 May 2022 23:52:31 -0400
Subject: [PATCH] meson: get the project version from the version-gen script
This matches autotools and ensures that the version number is actually
reliable.
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('util-linux', 'c',
- version : '2.37',
+ version : run_command('tools/git-version-gen', check: true).stdout(),
license : 'GPLv2+')
pkgconfig = import('pkgconfig')

View File

@ -1,26 +0,0 @@
From dc307e1cbf73f6dbf72bb049c19d332774cdb4e7 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz@archlinux.org>
Date: Thu, 5 May 2022 00:16:15 -0400
Subject: [PATCH] meson: fix error in processing version for pc files
This awk command was copied verbatim from configure.ac, which included
non-awk syntax because configure.ac cannot contain [ literals.
Rewrite these autoconf quadrigraphs as their actual values, for meson.
Fixes always setting the micro version to "0".
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/meson.build
+++ b/meson.build
@@ -41,7 +41,7 @@ conf.set_quoted('PACKAGE_VERSION', meson
codes = [''' {print $1} ''',
''' {sub("-.*","",$2); print $2} ''',
- ''' {sub("-.*","",$3); print $3 ~ /^@<:@0-9@:>@+$/ ? $3 : 0} ''']
+ ''' {sub("-.*","",$3); print $3 ~ /^[0-9]+$/ ? $3 : 0} ''']
pc_version = []
foreach code : codes
res = run_command('bash', '-c',

View File

@ -1,10 +0,0 @@
--- a/meson.build
+++ b/meson.build
@@ -774,7 +774,6 @@ subdir('disk-utils')
subdir('misc-utils')
subdir('text-utils')
subdir('term-utils')
-subdir('po')
includes = [dir_include,
dir_libblkid,