meson: add second build system

To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install

v2:
- Optional items are now based on the 'feature' feature in meson.
  Built libraries which are disabled turn into disabler() objects
  and also poison any executables which link to them.

What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
  man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
  ./configure settings

Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
  are all used, so that should be fine. In the build system, some
  files should be skipped, but that is probably not always done properly.
  Getting this right might require some testing of various build option
  combinations to get the details right.

Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???

Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
  autogenerated .pc file. Not sure if they should be there or not. If
  necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
  sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
  anyway, so maybe we could simplify things but not implementing it at
  all under meson?
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-02-23 19:42:55 +01:00 committed by Karel Zak
parent 9fb5486c27
commit d4c880d5a4
22 changed files with 4229 additions and 7 deletions

1
.gitignore vendored
View File

@ -181,3 +181,4 @@ ylwrap
/write
/zramctl
/uclampset
/build*/

95
disk-utils/meson.build Normal file
View File

@ -0,0 +1,95 @@
mkfs_sources = files(
'mkfs.c',
)
mkfs_bfs_sources = files(
'mkfs.bfs.c',
)
isosize_sources = files(
'isosize.c',
)
mkswap_sources = files(
'mkswap.c',
)
swaplabel_sources = files(
'swaplabel.c',
) + \
swapprober_c
fsck_sources = files(
'fsck.c',
) + \
monotonic_c
mkfs_minix_sources = files(
'mkfs.minix.c',
'minix_programs.h',
)
fsck_minix_sources = files(
'fsck.minix.c',
'minix_programs.h',
)
mkfs_cramfs_sources = files(
'mkfs.cramfs.c',
'cramfs.h',
'cramfs_common.c',
)
fsck_cramfs_sources = files(
'fsck.cramfs.c',
'cramfs.h',
'cramfs_common.c',
)
raw_sources = files(
'raw.c',
)
fdformat_sources = files(
'fdformat.c',
)
blockdev_sources = files(
'blockdev.c',
)
fdisk_sources = files(
'fdisk.c',
'fdisk.h',
'fdisk-menu.c',
'fdisk-list.c',
'fdisk-list.h')
sfdisk_sources = files(
'sfdisk.c',
'fdisk-list.c',
'fdisk-list.h')
cfdisk_sources = files(
'cfdisk.c',
)
addpart_sources = files(
'addpart.c',
)
delpart_sources = files(
'delpart.c',
)
resizepart_sources = files(
'resizepart.c',
)
partx_sources = files(
'partx.c',
)
addpart_delpart_man = files(
'addpart.8',
'delpart.8',
'resizepart.8',
'partx.8',
)

3
include/meson.build Normal file
View File

@ -0,0 +1,3 @@
dir_include = include_directories('.')
list_h = files('list.h')

92
lib/meson.build Normal file
View File

@ -0,0 +1,92 @@
lib_common_sources = '''
blkdev.c
canonicalize.c
color-names.c
crc32.c
crc32c.c
encode.c
env.c
exec_shell.c
fileutils.c
ismounted.c
mangle.c
match.c
mbsalign.c
mbsedit.c
pager.c
pwdutils.c
setproctitle.c
signames.c
timeutils.c
ttyutils.c
'''.split()
idcache_c = files('idcache.c')
randutils_c = files('randutils.c')
md5_c = files('md5.c')
sha1_c = files('sha1.c')
strutils_c = files('strutils.c')
strv_c = files('strv.c')
lib_common_sources += [idcache_c,
randutils_c,
md5_c,
sha1_c,
strutils_c,
strv_c]
monotonic_c = files('monotonic.c')
timer_c = files('timer.c')
swapprober_c = files('swapprober.c')
pty_session_c = files('pty-session.c')
if LINUX
lib_common_sources += '''
caputils.c
linux_version.c
loopdev.c
'''.split()
endif
if build_plymouth_support
lib_common_sources += '''
plymouth-ctrl.c
'''.split()
endif
if conf.get('HAVE_LANGINFO_H') in [1]
lib_common_sources += 'langinfo.c'
endif
if conf.get('HAVE_CPU_SET_T') in [1]
lib_common_sources += 'cpuset.c'
endif
if conf.get('HAVE_OPENAT') in [1] and conf.get('HAVE_DIRFD') in [1]
lib_common_sources += '''
path.c
procutils.c
sysfs.c
'''.split()
endif
lib_common = static_library(
'common',
lib_common_sources,
include_directories : dir_include)
lib_color_sources = files('''
colors.c
color-names.c
'''.split())
# colors.h include/color-names.h
lib_tcolors = static_library(
'tcolors',
lib_color_sources,
include_directories : dir_include,
dependencies : curses_libs)
install_man(
'terminal-colors.d.5')

144
libblkid/meson.build Normal file
View File

@ -0,0 +1,144 @@
dir_libblkid = include_directories('.', 'src')
blkid_h = configure_file(
input : 'src/blkid.h.in',
output : 'blkid.h',
configuration : conf)
lib_blkid_sources = '''
src/blkidP.h
src/init.c
src/cache.c
src/config.c
src/dev.c
src/devname.c
src/devno.c
src/encode.c
src/evaluate.c
src/getsize.c
src/llseek.c
src/probe.c
src/read.c
src/resolve.c
src/save.c
src/tag.c
src/verify.c
src/version.c
src/partitions/aix.c
src/partitions/aix.h
src/partitions/atari.c
src/partitions/bsd.c
src/partitions/dos.c
src/partitions/gpt.c
src/partitions/mac.c
src/partitions/minix.c
src/partitions/partitions.c
src/partitions/partitions.h
src/partitions/sgi.c
src/partitions/solaris_x86.c
src/partitions/sun.c
src/partitions/ultrix.c
src/partitions/unixware.c
src/superblocks/adaptec_raid.c
src/superblocks/apfs.c
src/superblocks/bcache.c
src/superblocks/befs.c
src/superblocks/bfs.c
src/superblocks/bitlocker.c
src/superblocks/bluestore.c
src/superblocks/btrfs.c
src/superblocks/cramfs.c
src/superblocks/ddf_raid.c
src/superblocks/drbd.c
src/superblocks/drbdproxy_datalog.c
src/superblocks/drbdmanage.c
src/superblocks/exfat.c
src/superblocks/exfs.c
src/superblocks/ext.c
src/superblocks/f2fs.c
src/superblocks/gfs.c
src/superblocks/hfs.c
src/superblocks/highpoint_raid.c
src/superblocks/hpfs.c
src/superblocks/iso9660.c
src/superblocks/isw_raid.c
src/superblocks/jfs.c
src/superblocks/jmicron_raid.c
src/superblocks/linux_raid.c
src/superblocks/lsi_raid.c
src/superblocks/luks.c
src/superblocks/lvm.c
src/superblocks/minix.c
src/superblocks/mpool.c
src/superblocks/netware.c
src/superblocks/nilfs.c
src/superblocks/ntfs.c
src/superblocks/refs.c
src/superblocks/nvidia_raid.c
src/superblocks/ocfs.c
src/superblocks/promise_raid.c
src/superblocks/reiserfs.c
src/superblocks/romfs.c
src/superblocks/silicon_raid.c
src/superblocks/squashfs.c
src/superblocks/stratis.c
src/superblocks/superblocks.c
src/superblocks/superblocks.h
src/superblocks/swap.c
src/superblocks/sysv.c
src/superblocks/ubi.c
src/superblocks/ubifs.c
src/superblocks/udf.c
src/superblocks/ufs.c
src/superblocks/vdo.c
src/superblocks/vfat.c
src/superblocks/via_raid.c
src/superblocks/vmfs.c
src/superblocks/vxfs.c
src/superblocks/xfs.c
src/superblocks/zfs.c
src/topology/topology.c
src/topology/topology.h
'''.split()
if LINUX
lib_blkid_sources += '''
src/topology/dm.c
src/topology/evms.c
src/topology/ioctl.c
src/topology/lvm.c
src/topology/md.c
src/topology/sysfs.c
'''.split()
endif
libblkid_sym = 'src/libblkid.sym'
libblkid_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libblkid_sym)
if build_libblkid and not have_dirfd and not have_ddfd
error('neither dirfd nor ddfd are available')
endif
lib_blkid = both_libraries(
'blkid',
list_h,
lib_blkid_sources,
include_directories : [dir_include, dir_libblkid],
link_depends : libblkid_sym,
version : libblkid_version,
link_args : ['-Wl,--version-script=@0@'.format(libblkid_sym_path)],
link_with : lib_common,
dependencies : build_libblkid ? [] : disabler(),
install : build_libblkid)
pkgconfig.generate(lib_blkid,
description : 'Block device id library',
subdirs : 'blkid',
version : pc_version)
if build_libblkid
install_man('libblkid.3')
endif

67
libfdisk/meson.build Normal file
View File

@ -0,0 +1,67 @@
dir_libfdisk = include_directories('.', 'src')
defs = configuration_data()
defs.set('LIBFDISK_VERSION', libfdisk_version)
defs.set('LIBFDISK_MAJOR_VERSION', libfdisk_version.split('.')[0])
defs.set('LIBFDISK_MINOR_VERSION', libfdisk_version.split('.')[1])
defs.set('LIBFDISK_PATCH_VERSION', libfdisk_version.split('.')[2])
libfdisk_h = configure_file(
input : 'src/libfdisk.h.in',
output : 'libfdisk.h',
configuration : defs)
lib_fdisk_sources = '''
src/fdiskP.h
src/init.c
src/field.c
src/item.c
src/test.c
src/ask.c
src/alignment.c
src/label.c
src/utils.c
src/context.c
src/parttype.c
src/partition.c
src/table.c
src/iter.c
src/script.c
src/version.c
src/wipe.c
src/sun.c
src/sgi.c
src/dos.c
src/bsd.c
src/gpt.c
'''.split() + [
list_h,
]
libfdisk_sym = 'src/libfdisk.sym'
libfdisk_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libfdisk_sym)
lib_fdisk_includes = [dir_include,
dir_libblkid,
dir_libfdisk,
dir_libuuid] # XXX: should this be declared along with the lib?
lib_fdisk = both_libraries(
'fdisk',
list_h,
lib_fdisk_sources,
include_directories : lib_fdisk_includes,
link_depends : libfdisk_sym,
version : libfdisk_version,
link_args : ['-Wl,--version-script=@0@'.format(libfdisk_sym_path)],
link_with : [lib_common,
lib_blkid,
lib_uuid],
dependencies : build_libfdisk ? [] : disabler(),
install : build_libfdisk)
pkgconfig.generate(lib_fdisk,
description : 'fdisk library',
subdirs : 'libfdisk',
version : pc_version)

80
libmount/meson.build Normal file
View File

@ -0,0 +1,80 @@
dir_libmount = include_directories('.', 'src')
defs = configuration_data()
defs.set('LIBMOUNT_VERSION', libmount_version)
defs.set('LIBMOUNT_MAJOR_VERSION', libmount_version.split('.')[0])
defs.set('LIBMOUNT_MINOR_VERSION', libmount_version.split('.')[1])
defs.set('LIBMOUNT_PATCH_VERSION', libmount_version.split('.')[2])
libmount_h = configure_file(
input : 'src/libmount.h.in',
output : 'libmount.h',
configuration : defs)
lib_mount_sources = '''
src/mountP.h
src/cache.c
src/fs.c
src/init.c
src/iter.c
src/lock.c
src/optmap.c
src/optstr.c
src/tab.c
src/tab_diff.c
src/tab_parse.c
src/tab_update.c
src/test.c
src/utils.c
src/version.c
'''.split() + [
list_h,
monotonic_c,
]
if LINUX
lib_mount_sources += '''
src/context.c
src/context_loopdev.c
src/context_veritydev.c
src/context_mount.c
src/context_umount.c
src/monitor.c
'''.split()
endif
if enable_btrfs
lib_mount_sources += 'src/btrfs.c'
endif
libmount_sym = 'src/libmount.sym'
libmount_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libmount_sym)
if build_libmount and not have_dirfd and not have_ddfd
error('neither dirfd nor ddfd are available')
endif
lib_mount = both_libraries(
'mount',
list_h,
lib_mount_sources,
monotonic_c,
include_directories : [dir_include,
dir_libmount,
dir_libblkid],
link_depends : libmount_sym,
version : libmount_version,
link_args : ['-Wl,--version-script=@0@'.format(libmount_sym_path)],
link_with : [lib_common,
lib_blkid],
dependencies : [lib_selinux,
lib_cryptsetup,
realtime_libs],
install : build_libmount)
pkgconfig.generate(lib_mount,
description : 'mount library',
subdirs : 'libmount',
version : pc_version)
subdir('python')

View File

@ -0,0 +1,34 @@
python_module = import('python')
python = python_module.find_installation(
get_option('python'),
required : get_option('build-python'),
disabler : true)
build_python = python.found()
pylibmount_sources = '''
pylibmount.c
pylibmount.h
fs.c
tab.c
'''.split()
if LINUX
pylibmount_sources += 'context.c'
endif
python.extension_module(
'pylibmount',
pylibmount_sources,
include_directories : [dir_include, dir_libmount],
subdir : 'libmount',
link_with : lib_mount,
dependencies : python.dependency(),
install : true)
if build_python
python.install_sources(
'__init__.py',
subdir : 'libmount',
pure : false)
endif

48
libsmartcols/meson.build Normal file
View File

@ -0,0 +1,48 @@
dir_libsmartcols = include_directories('.', 'src')
defs = configuration_data()
defs.set('LIBSMARTCOLS_VERSION', libsmartcols_version)
libsmartcols_h = configure_file(
input : 'src/libsmartcols.h.in',
output : 'libsmartcols.h',
configuration : defs)
lib_smartcols_sources = '''
src/smartcolsP.h
src/iter.c
src/symbols.c
src/cell.c
src/column.c
src/line.c
src/table.c
src/print.c
src/fput.c
src/print-api.c
src/version.c
src/buffer.c
src/calculate.c
src/grouping.c
src/walk.c
src/init.c
'''.split()
libsmartcols_sym = 'src/libsmartcols.sym'
libsmartcols_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libsmartcols_sym)
lib_smartcols = both_libraries(
'smartcols',
list_h,
lib_smartcols_sources,
include_directories : [dir_include, dir_libsmartcols],
link_depends : libsmartcols_sym,
version : libsmartcols_version,
link_args : ['-Wl,--version-script=@0@'.format(libsmartcols_sym_path)],
link_with : lib_common,
dependencies : build_libsmartcols ? [] : disabler(),
install : build_libsmartcols)
pkgconfig.generate(lib_smartcols,
description : 'table or tree library',
subdirs : 'libsmartcols',
version : pc_version)

60
libuuid/meson.build Normal file
View File

@ -0,0 +1,60 @@
dir_libuuid = include_directories('src')
lib_uuid_sources = '''
src/uuidP.h
src/clear.c
src/compare.c
src/copy.c
src/gen_uuid.c
src/isnull.c
src/pack.c
src/parse.c
src/uuidd.h
src/uuid_time.c
'''.split()
predefined_c = files('src/predefined.c')
unpack_c = files('src/unpack.c')
unparse_c = files('src/unparse.c')
libuuid_sym = 'src/libuuid.sym'
libuuid_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libuuid_sym)
lib_uuid = both_libraries(
'uuid',
list_h,
lib_uuid_sources,
predefined_c,
unpack_c,
unparse_c,
randutils_c,
md5_c,
sha1_c,
include_directories : [dir_include, dir_libuuid],
link_depends : libuuid_sym,
version : libuuid_version,
link_args : ['-Wl,--version-script=@0@'.format(libuuid_sym_path)],
dependencies : [socket_libs,
build_libuuid ? [] : disabler()],
install : build_libuuid)
pkgconfig.generate(lib_uuid,
description : 'Universally unique id library',
subdirs : 'uuid',
version : pc_version)
if build_libuuid
install_man(
'man/uuid.3',
'man/uuid_clear.3',
'man/uuid_compare.3',
'man/uuid_copy.3',
'man/uuid_generate.3',
'man/uuid_is_null.3',
'man/uuid_parse.3',
'man/uuid_time.3',
'man/uuid_unparse.3',
'man/uuid_generate_random.3',
'man/uuid_generate_time.3',
'man/uuid_generate_time_safe.3')
endif

75
login-utils/meson.build Normal file
View File

@ -0,0 +1,75 @@
chfn_chsh_sources = files(
'ch-common.c',
'ch-common.h',
)
chfn_chsh_deps = [lib_readline]
if chfn_chsh_password
chfn_chsh_sources += files(
'auth.c',
'auth.h',
)
chfn_chsh_deps += [
lib_pam,
lib_pam_misc,
]
endif
if lib_user.found()
chfn_chsh_sources += files(
'libuser.c',
'libuser.h',
)
chfn_chsh_deps += lib_user
else
chfn_chsh_sources += files(
'islocal.c',
'islocal.h',
'setpwnam.c',
'setpwnam.h',
)
endif
if lib_selinux.found()
chfn_chsh_sources += files(
'selinux_utils.c',
'selinux_utils.h',
)
chfn_chsh_deps += [lib_selinux]
endif
chfn_sources = files(
'chfn.c',
'logindefs.c',
'logindefs.h',
)
test_islocal_sources = files(
'islocal.c',
)
test_logindefs_sources = files(
'logindefs.c',
'logindefs.h',
)
test_consoles_sources = files(
'sulogin-consoles.c',
)
last_sources = files(
'last.c',
) + \
monotonic_c
login_sources = files(
'login.c',
'logindefs.c',
'logindefs.h',
)
sulogin_sources = files(
'sulogin.c',
'sulogin-consoles.c',
'sulogin-consoles.h',
)

2828
meson.build Normal file

File diff suppressed because it is too large Load Diff

184
meson_options.txt Normal file
View File

@ -0,0 +1,184 @@
# enable various dependencies (no prefixes)
option('tinfo', type : 'feature')
option('ncursesw', type : 'feature')
option('ncurses', type : 'feature')
option('slang', type : 'feature', value : 'disabled',
description : 'compile cfdisk with slang rather than ncurses')
option('cryptsetup', type : 'feature')
option('zlib', type : 'feature')
option('readline', type : 'feature')
option('libutil', type : 'feature')
option('libutempter', type : 'feature')
option('libpcre', type : 'feature')
option('libuser', type : 'feature')
option('selinux', type : 'feature', value : 'disabled')
option('audit', type : 'feature', value : 'disabled')
option('smack', type : 'feature', value : 'disabled')
option('systemd', type : 'feature')
option('btrfs', type : 'feature')
option('widechar', type : 'feature',
description : 'compile with wide character support')
# enable building of various programs and features ("build-" prefix)
option('build-python', type : 'feature', value : 'auto',
description : 'build python extension module')
option('python', type : 'string', value : 'python3',
description : 'build extension module for this python')
option('build-libblkid', type : 'feature',
description : 'build libblkid and many related utilities')
option('build-libuuid', type : 'feature',
description : 'build libuuid and uuid utilities')
option('build-libmount', type : 'feature',
description : 'build libmount')
option('build-libsmartcols', type : 'feature',
description : 'build libsmartcols')
option('build-libfdisk', type : 'feature',
description : 'build libfdisk')
option('build-fdisks', type : 'feature',
description : 'build fdisk(8), sfdisk(8) and cfdisk(8)')
option('build-mount', type : 'feature',
description : 'build mount(8) and umount(8)')
option('build-losetup', type : 'feature',
description : 'build losetup')
option('build-zramctl', type : 'feature',
description : 'build zramctl')
option('build-fsck', type : 'feature',
description : 'build fsck')
option('build-partx', type : 'feature',
description : 'build addpart, delpart, partx')
option('build-uuidd', type : 'feature',
description : 'build the uuid daemon')
option('build-wipefs', type : 'feature',
description : 'build wipefs')
option('build-mountpoint', type : 'feature',
description : 'build mountpoint')
option('build-fallocate', type : 'feature',
description : 'build fallocate')
option('build-unshare', type : 'feature',
description : 'build unshare')
option('build-nsenter', type : 'feature',
description : 'build nsenter')
option('build-setpriv', type : 'feature',
description : 'build setpriv')
option('build-hardlink', type : 'feature',
description : 'build hardlink')
option('build-eject', type : 'feature',
description : 'build eject')
option('build-agetty', type : 'feature',
description : 'build agetty')
option('build-cramfs', type : 'feature',
description : 'build fsck.cramfs, mkfs.cramfs')
option('build-bfs', type : 'feature',
description : 'build mkfs.bfs')
option('build-minix', type : 'feature',
description : 'build fsck.minix, mkfs.minix')
option('build-fdformat', type : 'feature',
description : 'build fdformat')
option('build-hwclock', type : 'feature',
description : 'build hwclock')
option('build-lslogins', type : 'feature',
description : 'build lslogins')
option('build-wdctl', type : 'feature',
description : 'build wdctl')
option('build-cal', type : 'feature',
description : 'build cal')
option('build-logger', type : 'feature',
description : 'build logger')
option('build-switch_root', type : 'feature',
description : 'switch_root')
option('build-pivot_root', type : 'feature',
description : 'build pivot_root')
option('build-lsmem', type : 'feature',
description : 'build lsmem')
option('build-chmem', type : 'feature',
description : 'build chmem')
option('build-ipcrm', type : 'feature',
description : 'build ipcrm')
option('build-ipcs', type : 'feature',
description : 'build ipcs')
option('build-rfkill', type : 'feature',
description : 'build rfkill')
option('build-tunelp', type : 'feature',
description : 'build tunelp')
option('build-kill', type : 'feature',
description : 'build kill')
option('build-last', type : 'feature',
description : 'build last')
option('build-utmpdump', type : 'feature',
description : 'build utmpdump')
option('build-line', type : 'feature',
description : 'build line')
option('build-mesg', type : 'feature',
description : 'build mesg')
option('build-raw', type : 'feature',
description : 'build raw')
option('build-rename', type : 'feature',
description : 'build rename')
option('build-vipw', type : 'feature',
description : 'build vipw')
option('build-newgrp', type : 'feature',
description : 'build newgrp')
option('build-chfn-chsh', type : 'feature',
description : 'build chfn and chsh')
option('build-login', type : 'feature',
description : 'build login')
option('build-nologin', type : 'feature',
description : 'build nologin')
option('build-sulogin', type : 'feature',
description : 'build sulogin')
option('build-su', type : 'feature',
description : 'build su')
option('build-runuser', type : 'feature',
description : 'build runuser')
option('build-ul', type : 'feature',
description : 'build ul')
option('build-more', type : 'feature',
description : 'build more')
option('build-pg', type : 'feature',
description : 'build pg')
option('build-setterm', type : 'feature',
description : 'build setterm')
option('build-schedutils', type : 'feature',
description : 'build chrt, ionice, taskset')
option('build-wall', type : 'feature',
description : 'build wall')
option('build-write', type : 'feature',
description : 'build write')
option('build-bash-completion', type : 'feature',
description : 'install bash completion files')
option('build-pylibmount', type : 'feature',
description : 'build pylibmount')
option('chfn-chsh-password',
type : 'boolean', value : true,
description : 'require the user to enter the password in chfn and chsh')
option('chsh-only-listed',
type : 'boolean', value : true,
description : 'chsh: only allow shells in /etc/shells')
option('use-tty-group',
type : 'boolean', value : true,
description : 'install wall and write setgid tty')
option('build-plymouth-support',
type : 'feature',
description : 'support plymouth feature in sulogin and agetty')
option('use-tls',
type : 'boolean', value : true,
description : 'use thread-local storage')
option('pg-bell',
type : 'boolean', value : true,
description : 'should pg ring the bell on invalid keys?')
option('fs-search-path',
type : 'string',
value : '/sbin:/sbin/fs.d:/sbin/fs',
description : 'default search path for fs helpers')
option('fs-search-path-extra',
type : 'string',
description : 'additional search path for fs helpers')

136
misc-utils/meson.build Normal file
View File

@ -0,0 +1,136 @@
cal_sources = files(
'cal.c',
)
logger_sources = files(
'logger.c',
) + \
strutils_c + \
strv_c
look_sources = files(
'look.c',
)
mcookie_sources = files(
'mcookie.c',
) + \
md5_c
namei_sources = files(
'namei.c',
) + \
strutils_c + \
idcache_c
whereis_sources = files(
'whereis.c',
)
lslocks_sources = files(
'lslocks.c',
)
lsblk_sources = files(
'lsblk.c',
'lsblk-mnt.c',
'lsblk-properties.c',
'lsblk-devtree.c',
'lsblk.h',
)
uuidgen_sources = files(
'uuidgen.c',
)
uuidparse_sources = files(
'uuidparse.c',
)
uuidd_sources = files(
'uuidd.c',
) + \
monotonic_c + \
timer_c
test_uuidd_sources = files(
'test_uuidd.c',
)
if build_uuidd
uuidd_service = configure_file(
input : 'uuidd.service.in',
output : 'uuidd.service',
configuration : conf)
install_data(
uuidd_service,
install_dir : systemdsystemunitdir)
uuidd_socket = configure_file(
input : 'uuidd.socket.in',
output : 'uuidd.socket',
configuration : conf)
install_data(
uuidd_socket,
install_dir : systemdsystemunitdir)
uuidd_8 = configure_file(
input : 'uuidd.8.in',
output : 'uuidd.8',
configuration : conf)
install_man(uuidd_8)
endif
blkid_sources = files(
'blkid.c',
)
findfs_sources = files(
'findfs.c',
)
wipefs_sources = files(
'wipefs.c',
)
findmnt_sources = files(
'findmnt.c',
'findmnt-verify.c',
'findmnt.h',
)
kill_sources = files(
'kill.c',
)
rename_sources = files(
'rename.c',
)
getopt_sources = files(
'getopt.c',
)
getopt_1 = configure_file(
input : 'getopt.1.in',
output : 'getopt.1',
configuration : conf)
install_man(getopt_1)
install_data(
'getopt-parse.bash',
'getopt-parse.tcsh',
install_dir : 'doc/getopt',
install_mode: 'rwxr-xr-x')
fincore_sources = files(
'fincore.c',
)
hardlink_sources = files(
'hardlink.c',
)
cal_sources = files(
'cal.c',
)

27
po/LINGUAS Normal file
View File

@ -0,0 +1,27 @@
ca
cs
da
de
es
et
eu
fi
fr
gl
hr
hu
id
it
ja
nl
pl
pt_BR
pt
ru
sl
sv
tr
uk
vi
zh_CN
zh_TW

4
po/meson.build Normal file
View File

@ -0,0 +1,4 @@
i18n = import('i18n')
i18n.gettext(meson.project_name(),
preset : 'glib',
data_dirs : '.')

232
sys-utils/meson.build Normal file
View File

@ -0,0 +1,232 @@
dir_sys_utils = include_directories('.')
hwclock_parse_date = bison_gen.process('hwclock-parse-date.y')
lsmem_sources = files(
'lsmem.c',
)
chmem_sources = files(
'chmem.c',
)
choom_sources = files(
'choom.c',
)
ipcmk_sources = files(
'ipcmk.c',
)
ipcrm_sources = files(
'ipcrm.c',
)
ipcs_sources = files(
'ipcs.c',
'ipcutils.c',
'ipcutils.h',
)
rfkill_sources = files(
'rfkill.c',
)
renice_sources = files(
'renice.c',
)
setsid_sources = files(
'setsid.c',
)
readprofile_sources = files(
'readprofile.c',
)
tunelp_sources = files(
'tunelp.c',
)
fstrim_sources = files(
'fstrim.c',
)
dmesg_sources = files(
'dmesg.c',
) + \
monotonic_c
ctrlaltdel_sources = files(
'ctrlaltdel.c',
)
fsfreeze_sources = files(
'fsfreeze.c',
)
blkdiscard_sources = files(
'blkdiscard.c',
) + \
monotonic_c
blkzone_sources = files(
'blkzone.c',
)
ldattach_sources = files(
'ldattach.c',
)
rtcwake_sources = files(
'rtcwake.c',
)
setarch_sources = files(
'setarch.c',
)
eject_sources = files(
'eject.c',
) + \
monotonic_c
losetup_sources = files(
'losetup.c',
)
zramctl_sources = files(
'zramctl.c',
)
prlimit_sources = files(
'prlimit.c',
)
lsns_sources = files(
'lsns.c',
)
mount_sources = files(
'mount.c',
)
umount_sources = files(
'umount.c',
)
mount_man = files(
'fstab.5',
'mount.8',
'umount.8',
)
swapon_sources = files(
'swapon.c',
'swapon-common.c',
'swapon-common.h',
) + \
swapprober_c
swapoff_sources = files(
'swapoff.c',
'swapon-common.c',
'swapon-common.h',
) + \
swapprober_c
lscpu_sources = files(
'lscpu.c',
'lscpu.h',
'lscpu-arm.c',
'lscpu-dmi.c',
)
chcpu_sources = files(
'chcpu.c',
)
wdctl_sources = files(
'wdctl.c',
)
mountpoint_sources = files(
'mountpoint.c',
)
fallocate_sources = files(
'fallocate.c',
)
pivot_root_sources = files(
'pivot_root.c',
)
switch_root_sources = files(
'switch_root.c',
)
unshare_sources = files(
'unshare.c',
)
nsenter_sources = files(
'nsenter.c',
)
setpriv_sources = files(
'setpriv.c',
)
flock_sources = files(
'flock.c',
) + \
monotonic_c + \
timer_c
lsipc_sources = files(
'lsipc.c',
'ipcutils.c',
'ipcutils.h',
)
hwclock_sources = [
'sys-utils/hwclock.c',
'sys-utils/hwclock.h',
hwclock_parse_date,
]
if use_hwclock_cmos
hwclock_sources += [
'sys-utils/hwclock-cmos.c',
]
endif
if LINUX
hwclock_sources += [
'sys-utils/hwclock-rtc.c',
monotonic_c,
]
endif
fstrim_service = configure_file(
input : 'fstrim.service.in',
output : 'fstrim.service',
configuration : conf)
install_data(fstrim_service,
install_dir : systemdsystemunitdir)
install_data('fstrim.timer',
install_dir : systemdsystemunitdir)
man = configure_file(
input : 'rtcwake.8.in',
output : 'rtcwake.8',
configuration : conf)
install_man(man)
if build_hwclock
man = configure_file(
input : 'hwclock.8.in',
output : 'hwclock.8',
configuration : conf)
install_man(man)
endif

41
term-utils/meson.build Normal file
View File

@ -0,0 +1,41 @@
script_sources = files(
'script.c',
) + \
pty_session_c + \
monotonic_c
scriptlive_sources = files(
'scriptlive.c',
'script-playutils.c',
'script-playutils.h',
) + \
pty_session_c + \
monotonic_c
scriptreplay_sources = files(
'scriptreplay.c',
'script-playutils.c',
'script-playutils.h',
)
agetty_sources = files(
'agetty.c',
)
setterm_sources = files(
'setterm.c',
)
mesg_sources = files(
'mesg.c',
)
wall_sources = files(
'wall.c',
'ttymsg.c',
'ttymsg.h',
)
write_sources = files(
'write.c',
)

View File

@ -288,6 +288,10 @@ function ts_init_env {
top_srcdir=$(ts_abspath $top_srcdir)
top_builddir=$(ts_abspath $top_builddir)
if [ -e "$top_builddir/meson.conf" ]; then
. "$top_builddir/meson.conf"
fi
# We use helpser always from build tree
ts_helpersdir="${top_builddir}/"
@ -432,15 +436,23 @@ function ts_init_suid {
function ts_init_py {
LIBNAME="$1"
[ -f "$top_builddir/py${LIBNAME}.la" ] || ts_skip "py${LIBNAME} not compiled"
if [ -f "$top_builddir/py${LIBNAME}.la" ]; then
# autotoolz build
export LD_LIBRARY_PATH="$top_builddir/.libs:$LD_LIBRARY_PATH"
export PYTHONPATH="$top_builddir/$LIBNAME/python:$top_builddir/.libs:$PYTHONPATH"
export LD_LIBRARY_PATH="$top_builddir/.libs:$LD_LIBRARY_PATH"
export PYTHONPATH="$top_builddir/$LIBNAME/python:$top_builddir/.libs:$PYTHONPATH"
PYTHON_VERSION=$(awk '/^PYTHON_VERSION/ { print $3 }' $top_builddir/Makefile)
PYTHON_MAJOR_VERSION=$(echo $PYTHON_VERSION | sed 's/\..*//')
export PYTHON_VERSION=$(awk '/^PYTHON_VERSION/ { print $3 }' $top_builddir/Makefile)
export PYTHON_MAJOR_VERSION=$(echo $PYTHON_VERSION | sed 's/\..*//')
export PYTHON="python${PYTHON_MAJOR_VERSION}"
export PYTHON="python${PYTHON_MAJOR_VERSION}"
elif compgen -G "$top_builddir/$LIBNAME/python/py$LIBNAME*.so" >/dev/null; then
# mezon!
export PYTHONPATH="$top_builddir/$LIBNAME/python:$PYTHONPATH"
else
ts_skip "py${LIBNAME} not compiled"
fi
}
function ts_run {

View File

@ -160,7 +160,11 @@ OPTS="$OPTS --srcdir=$top_srcdir --builddir=$top_builddir"
# Auto-enable ASAN to avoid conflicts between tests and binaries
if [ -z "$has_asan_opt" ]; then
asan=$(awk '/^ASAN_LDFLAGS/ { print $3 }' $top_builddir/Makefile)
if [ -e "$top_builddir/Makefile" ]; then
asan=$(awk '/^ASAN_LDFLAGS/ { print $3 }' $top_builddir/Makefile)
else
. "$top_builddir/meson.conf"
fi
if [ -n "$asan" ]; then
OPTS="$OPTS --memcheck-asan"
fi

43
text-utils/meson.build Normal file
View File

@ -0,0 +1,43 @@
col_sources = files(
'col.c',
)
colcrt_sources = files(
'colcrt.c',
)
colrm_sources = files(
'colrm.c',
)
rev_sources = files(
'rev.c',
)
column_sources = files(
'column.c',
)
line_sources = files(
'line.c',
)
pg_sources = files(
'pg.c',
)
ul_sources = files(
'ul.c',
)
more_sources = files(
'more.c',
)
hexdump_sources = files(
'hexdump.c',
'hexdump.h',
'hexdump-conv.c',
'hexdump-display.c',
'hexdump-parse.c',
)

12
tools/meson-make-symlink.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
set -eu
# this is needed mostly because $DESTDIR is provided as a variable,
# and we need to create the target directory...
mkdir -vp "$(dirname "${DESTDIR:-}$2")"
if [ "$(dirname $1)" = . ]; then
ln -fs -T "$1" "${DESTDIR:-}$2"
else
ln -fs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2"
fi