From 38bb89ee84d4cb79c16926611b7ced4f62f6d597 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20Wei=C3=9Fschuh?= Date: Thu, 30 Dec 2021 16:35:03 +0100 Subject: [PATCH] meson: install manpages and bash completions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Weißschuh --- meson.build | 158 +++++++++++++++++++++++++++++-- tools/meson-make-manpage-stub.sh | 5 + 2 files changed, 156 insertions(+), 7 deletions(-) create mode 100644 tools/meson-make-manpage-stub.sh diff --git a/meson.build b/meson.build index 13475a554a..dced67076d 100644 --- a/meson.build +++ b/meson.build @@ -26,6 +26,7 @@ usrbin_exec_dir = join_paths(execprefixdir, 'bin') usrsbin_exec_dir = join_paths(execprefixdir, 'sbin') sysconfdir = '/etc' localstatedir = '/var' +bash_completion = dependency('bash-completion', required : get_option('build-bash-completion')) vendordir = get_option('vendordir') @@ -742,6 +743,7 @@ bison_gen = generator( meson_make_symlink = meson.current_source_dir() + '/tools/meson-make-symlink.sh' +meson_make_manpage_stub = meson.current_source_dir() + '/tools/meson-make-manpage-stub.sh' config_h = configure_file( output : 'config.h', @@ -750,7 +752,8 @@ config_h = configure_file( add_project_arguments('-include', 'config.h', language : 'c') manadocs = [] -manlinks = [] +manlinks = {} +bashcompletions = [] subdir('include') subdir('lib') @@ -788,6 +791,7 @@ exe = executable( install_dir : usrbin_exec_dir, install : opt, build_by_default : opt) + exe2 = executable( 'chsh', 'login-utils/chsh.c', @@ -800,6 +804,8 @@ exe2 = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += [exe, exe2] + manadocs += ['login-utils/chfn.1.adoc', 'login-utils/chsh.1.adoc'] + bashcompletions += ['chfn', 'chsh'] endif exe = executable( @@ -838,6 +844,9 @@ if opt and not is_disabler(exe) meson.add_install_script(meson_make_symlink, 'last', join_paths(usrbin_exec_dir, 'lastb')) + manadocs += ['login-utils/last.1.adoc'] + manlinks += {'lastb.1': 'last.1'} + bashcompletions += ['last'] endif opt = not get_option('build-nologin').disabled() @@ -851,6 +860,7 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['login-utils/nologin.8.adoc'] endif opt = not get_option('build-utmpdump').disabled() @@ -864,6 +874,8 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['login-utils/utmpdump.1.adoc'] + bashcompletions += ['utmpdump'] endif opt = not get_option('build-su').disabled() @@ -886,6 +898,8 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['login-utils/su.1.adoc'] + bashcompletions += ['su'] endif opt = not get_option('build-newgrp').disabled() @@ -899,6 +913,7 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['login-utils/newgrp.1.adoc'] endif opt = not get_option('build-lslogins').disabled() @@ -917,6 +932,8 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['login-utils/lslogins.1.adoc'] + bashcompletions += ['lslogins'] endif opt = not get_option('build-vipw').disabled() @@ -935,6 +952,7 @@ if opt and not is_disabler(exe) meson.add_install_script(meson_make_symlink, 'vipw', join_paths(usrbin_exec_dir, 'vigr')) + manadocs += ['login-utils/vipw.8.adoc'] endif opt = not get_option('build-runuser').disabled() @@ -958,6 +976,12 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['login-utils/runuser.1.adoc'] + if bash_completion.found() + meson.add_install_script(meson_make_symlink, + 'su', + join_paths(bash_completion.get_variable('completionsdir'), 'runuser')) +endif endif ############################################################ @@ -970,6 +994,8 @@ exe = executable( install_dir : usrbin_exec_dir, install : true) exes += exe +manadocs += ['text-utils/col.1.adoc'] +bashcompletions += ['col'] exe = executable( 'colcrt', @@ -978,6 +1004,8 @@ exe = executable( install_dir : usrbin_exec_dir, install : true) exes += exe +manadocs += ['text-utils/colcrt.1.adoc'] +bashcompletions += ['colcrt'] exe = executable( 'colrm', @@ -987,6 +1015,8 @@ exe = executable( install_dir : usrbin_exec_dir, install : true) exes += exe +manadocs += ['text-utils/colrm.1.adoc'] +bashcompletions += ['colrm'] exe = executable( 'rev', @@ -995,6 +1025,8 @@ exe = executable( install_dir : usrbin_exec_dir, install : true) exes += exe +manadocs += ['text-utils/rev.1.adoc'] +bashcompletions += ['rev'] exe = executable( 'column', @@ -1006,6 +1038,8 @@ exe = executable( install : true) if not is_disabler(exe) exes += exe + manadocs += ['text-utils/column.1.adoc'] + bashcompletions += ['column'] endif opt = not get_option('build-line').disabled() @@ -1018,6 +1052,7 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['text-utils/line.1.adoc'] endif opt = not get_option('build-pg').disabled() @@ -1033,6 +1068,8 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['text-utils/pg.1.adoc'] + bashcompletions += ['pg'] endif opt = not get_option('build-ul').disabled() @@ -1047,6 +1084,8 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + manadocs += ['text-utils/ul.1.adoc'] + bashcompletions += ['ul'] endif opt = not get_option('build-more').disabled() @@ -1073,6 +1112,8 @@ exe2 = executable( exes += exe if opt and not is_disabler(exe) exes += [exe, exe2] + manadocs += ['text-utils/more.1.adoc'] + bashcompletions += ['more'] endif exe = executable( @@ -1086,6 +1127,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['text-utils/hexdump.1.adoc'] + bashcompletions += ['hexdump'] endif opt = not get_option('build-lsmem').disabled() @@ -1101,6 +1143,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/lsmem.1.adoc'] + bashcompletions += ['lsmem'] endif opt = not get_option('build-chmem').disabled() @@ -1115,6 +1158,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/chmem.8.adoc'] + bashcompletions += ['chmem'] endif exe = executable( @@ -1136,6 +1180,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/ipcmk.1.adoc'] +bashcompletions += ['ipcmk'] exe = executable( 'ipcrm', @@ -1146,6 +1191,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/ipcrm.1.adoc'] +bashcompletions += ['ipcrm'] opt = not get_option('build-ipcs').disabled() exe = executable( @@ -1159,6 +1205,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/ipcs.1.adoc'] + bashcompletions += ['ipcs'] endif opt = not get_option('build-rfkill').disabled() @@ -1174,6 +1221,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/rfkill.8.adoc'] + bashcompletions += ['rfkill'] endif exe = executable( @@ -1187,6 +1235,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/renice.1.adoc'] + bashcompletions += ['renice'] endif exe = executable( @@ -1200,6 +1249,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/setsid.1.adoc'] + bashcompletions += ['setsid'] endif exe = executable( @@ -1213,6 +1263,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/readprofile.8.adoc'] + bashcompletions += ['readprofile'] endif opt = not get_option('build-tunelp').disabled() @@ -1227,6 +1278,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/tunelp.8.adoc'] + bashcompletions += ['tunelp'] endif exe = executable( @@ -1240,6 +1292,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/fstrim.8.adoc'] + bashcompletions += ['fstrim'] endif exe = executable( @@ -1252,6 +1305,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/dmesg.1.adoc'] + bashcompletions += ['dmesg'] endif exe = executable( @@ -1274,6 +1328,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/ctrlaltdel.8.adoc'] +bashcompletions += ['ctrlaltdel'] exe = executable( 'fsfreeze', @@ -1283,6 +1338,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/fsfreeze.8.adoc'] +bashcompletions += ['fsfreeze'] exe = executable( 'blkdiscard', @@ -1294,6 +1350,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/blkdiscard.8.adoc'] +bashcompletions += ['blkdiscard'] exe = executable( 'blkzone', @@ -1304,6 +1361,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/blkzone.8.adoc'] +bashcompletions += ['blkzone'] exe = executable( 'ldattach', @@ -1314,6 +1372,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/ldattach.8.adoc'] +bashcompletions += ['ldattach'] exe = executable( 'rtcwake', @@ -1324,6 +1383,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/rtcwake.8.adoc'] +bashcompletions += ['rtcwake'] exe = executable( 'setarch', @@ -1333,6 +1393,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/setarch.8.adoc'] +bashcompletions += ['setarch'] setarch_links = ['uname26', 'linux32', 'linux64'] setarch_links_arch = { @@ -1351,6 +1412,7 @@ foreach link: setarch_links meson.add_install_script(meson_make_symlink, 'setarch', join_paths(usrbin_exec_dir, link)) + manlinks += {link + '.8': 'setarch.8'} endforeach opt = not get_option('build-eject').disabled() @@ -1366,6 +1428,7 @@ exe = executable( if opt and not is_disabler(exe) exe = exe manadocs += ['sys-utils/eject.1.adoc'] + bashcompletions += ['eject'] endif opt = not get_option('build-losetup').disabled() @@ -1381,6 +1444,7 @@ exe = executable( if opt and not is_disabler(exe) manadocs += ['sys-utils/losetup.8.adoc'] exes += exe + bashcompletions += ['losetup'] endif opt = opt and 'losetup' in static_programs @@ -1411,6 +1475,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/zramctl.8.adoc'] + bashcompletions += ['zramctl'] endif exe = executable( @@ -1424,6 +1489,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/prlimit.1.adoc'] + bashcompletions += ['prlimit'] endif exe = executable( @@ -1438,6 +1504,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/lsns.8.adoc'] + bashcompletions += ['lsns'] endif opt = not get_option('build-mount').disabled() @@ -1464,6 +1531,7 @@ if opt and not is_disabler(exe) manadocs += ['sys-utils/fstab.5.adoc', 'sys-utils/mount.8.adoc', 'sys-utils/umount.8.adoc'] + bashcompletions += ['mount', 'umount'] endif opt2 = opt and 'mount' in static_programs @@ -1510,6 +1578,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/swapon.8.adoc'] + bashcompletions += ['swapon'] endif exe = executable( @@ -1523,7 +1592,8 @@ exe = executable( install : true) if not is_disabler(exe) exes += exe - manlinks += 'sys-utils/swapoff.8.adoc' + manlinks += {'swapoff.8': 'swapon.8'} + bashcompletions += ['swapoff'] endif exe = executable( @@ -1538,6 +1608,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/lscpu.1.adoc'] + bashcompletions += ['lscpu'] endif exe = executable( @@ -1549,6 +1620,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/chcpu.8.adoc'] +bashcompletions += ['chcpu'] exe = executable( 'wdctl', @@ -1560,6 +1632,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['sys-utils/wdctl.8.adoc'] + bashcompletions += ['wdctl'] endif opt = not get_option('build-mountpoint').disabled() @@ -1573,6 +1646,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/mountpoint.1.adoc'] + bashcompletions += ['mountpoint'] endif opt = not get_option('build-fallocate').disabled() @@ -1587,6 +1661,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/fallocate.1.adoc'] + bashcompletions += ['fallocate'] endif opt = not get_option('build-pivot_root').disabled() @@ -1600,6 +1675,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/pivot_root.8.adoc'] + bashcompletions += ['pivot_root'] endif opt = not get_option('build-switch_root').disabled() @@ -1630,6 +1706,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/unshare.1.adoc'] + bashcompletions += ['unshare'] endif opt = opt and 'unshare' in static_programs @@ -1658,6 +1735,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/nsenter.1.adoc'] + bashcompletions += ['nsenter'] endif opt = opt and 'nsenter' in static_programs @@ -1687,6 +1765,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/setpriv.1.adoc'] + bashcompletions += ['setpriv'] endif exe = executable( @@ -1699,6 +1778,7 @@ exe = executable( install : true) exes += exe manadocs += ['sys-utils/flock.1.adoc'] +bashcompletions += ['flock'] opt = not get_option('build-lsirq').disabled() exe = executable( @@ -1713,6 +1793,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/lsirq.1.adoc'] + bashcompletions += ['lsirq'] endif opt = not get_option('build-irqtop').disabled() @@ -1730,6 +1811,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/irqtop.1.adoc'] + bashcompletions += ['irqtop'] endif opt = not get_option('build-ipcs').disabled() @@ -1745,6 +1827,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/lsipc.1.adoc'] + bashcompletions += ['lsipc'] endif opt = build_hwclock @@ -1760,7 +1843,8 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe - manadocs += ['sys-utils/hwclock.8.adoc'] + manadocs += ['sys-utils/hwclock.8.adoc', 'sys-utils/adjtime_config.5.adoc'] + bashcompletions += ['hwclock'] endif exe = executable( @@ -1771,6 +1855,7 @@ exe = executable( install : true) exes += exe manadocs += ['disk-utils/mkfs.8.adoc'] +bashcompletions += ['mkfs'] opt = not get_option('build-bfs').disabled() exe = executable( @@ -1784,6 +1869,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['disk-utils/mkfs.bfs.8.adoc'] + bashcompletions += ['mkfs.bfs'] endif exe = executable( @@ -1795,6 +1881,7 @@ exe = executable( install : true) exes += exe manadocs += ['disk-utils/isosize.8.adoc'] +bashcompletions += ['isosize'] exe = executable( 'mkswap', @@ -1809,6 +1896,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['disk-utils/mkswap.8.adoc'] + bashcompletions += ['mkswap'] endif exe = executable( @@ -1823,6 +1911,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['disk-utils/swaplabel.8.adoc'] + bashcompletions += ['swaplabel'] endif opt = not get_option('build-fsck').disabled() @@ -1840,6 +1929,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['disk-utils/fsck.8.adoc'] + bashcompletions += ['fsck'] endif opt = not get_option('build-minix').disabled() @@ -1869,6 +1959,7 @@ exe3 = executable( if opt and not is_disabler(exe) exes += [exe, exe2, exe3] manadocs += ['disk-utils/mkfs.minix.8.adoc','disk-utils/fsck.minix.8.adoc'] + bashcompletions += ['mkfs.minix', 'fsck.minix'] endif opt = not get_option('build-cramfs').disabled() @@ -1893,6 +1984,7 @@ exe2 = executable( if not is_disabler(exe) exes += [exe, exe2] manadocs += ['disk-utils/mkfs.cramfs.8.adoc','disk-utils/fsck.cramfs.8.adoc'] + bashcompletions += ['mkfs.cramfs', 'fsck.cramfs'] endif opt = not get_option('build-raw').disabled() @@ -1909,6 +2001,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['disk-utils/raw.8.adoc'] + bashcompletions += ['raw'] endif opt = not get_option('build-fdformat').disabled() @@ -1933,6 +2026,7 @@ exe = executable( install_dir : sbindir, install : true) manadocs += ['disk-utils/blockdev.8.adoc'] +bashcompletions += ['blockdev'] opt = not get_option('build-fdisks').disabled() if opt and not have_dirfd and not have_ddfd @@ -1952,6 +2046,7 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + bashcompletions += ['fdisk'] endif opt2 = opt and 'fdisk' in static_programs @@ -1986,6 +2081,7 @@ exe = executable( build_by_default : opt) if opt and not is_disabler(exe) exes += exe + bashcompletions += ['sfdisk'] endif opt2 = opt and 'sfdisk' in static_programs @@ -2023,6 +2119,7 @@ if opt and not is_disabler(exe) manadocs += ['disk-utils/fdisk.8.adoc', 'disk-utils/sfdisk.8.adoc', 'disk-utils/cfdisk.8.adoc'] + bashcompletions += ['cfdisk'] endif opt = not get_option('build-partx').disabled() @@ -2066,6 +2163,7 @@ if opt 'disk-utils/delpart.8.adoc', 'disk-utils/resizepart.8.adoc', 'disk-utils/partx.8.adoc'] + bashcompletions += ['addpart', 'delpart', 'resizepart', 'partx'] endif ############################################################ @@ -2083,6 +2181,7 @@ exe = executable( install : true) exes += exe manadocs += ['term-utils/script.1.adoc'] +bashcompletions += ['script'] exe = executable( 'test_script', @@ -2108,6 +2207,7 @@ exe = executable( install : true) exes += exe manadocs += ['term-utils/scriptlive.1.adoc'] +bashcompletions += ['scriptlive'] exe = executable( 'scriptreplay', @@ -2119,6 +2219,7 @@ exe = executable( install : true) exes += exe manadocs += ['term-utils/scriptreplay.1.adoc'] +bashcompletions += ['scriptreplay'] opt = not get_option('build-agetty').disabled() exe = executable( @@ -2148,6 +2249,7 @@ exe = executable( if opt exes += exe manadocs += ['term-utils/setterm.1.adoc'] + bashcompletions += ['setterm'] endif opt = not get_option('build-mesg').disabled() @@ -2162,6 +2264,7 @@ exe = executable( if opt exes += exe manadocs += ['term-utils/mesg.1.adoc'] + bashcompletions += ['mesg'] endif opt = not get_option('build-wall').disabled() @@ -2176,6 +2279,7 @@ exe = executable( if opt exes += exe manadocs += ['term-utils/wall.1.adoc'] + bashcompletions += ['wall'] endif # chgrp tty $(DESTDIR)$(usrbin_execdir)/wall @@ -2241,6 +2345,7 @@ exe = executable( install : true) exes += exe manadocs += ['misc-utils/cal.1.adoc'] +bashcompletions += ['cal'] opt = not get_option('build-logger').disabled() exe = executable( @@ -2255,6 +2360,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/logger.1.adoc'] + bashcompletions += ['logger'] endif exe = executable( @@ -2276,6 +2382,7 @@ exe = executable( install : true) exes += exe manadocs += ['misc-utils/look.1.adoc'] +bashcompletions += ['look'] exe = executable( 'mcookie', @@ -2286,6 +2393,7 @@ exe = executable( install : true) exes += exe manadocs += ['misc-utils/mcookie.1.adoc'] +bashcompletions += ['mcookie'] exe = executable( 'namei', @@ -2295,6 +2403,7 @@ exe = executable( install : true) exes += exe manadocs += ['misc-utils/namei.1.adoc'] +bashcompletions += ['namei'] exe = executable( 'whereis', @@ -2305,6 +2414,7 @@ exe = executable( install : true) exes += exe manadocs += ['misc-utils/whereis.1.adoc'] +bashcompletions += ['whereis'] exe = executable( 'lslocks', @@ -2318,6 +2428,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/lslocks.8.adoc'] + bashcompletions += ['lslocks'] endif exe = executable( @@ -2333,6 +2444,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/lsblk.8.adoc'] + bashcompletions += ['lsblk'] endif exe = executable( @@ -2358,6 +2470,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/uuidgen.1.adoc'] + bashcompletions += ['uuidgen'] endif exe = executable( @@ -2372,6 +2485,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/uuidparse.1.adoc'] + bashcompletions += ['uuidparse'] endif opt = build_uuidd @@ -2397,6 +2511,7 @@ exe2 = executable( if not is_disabler(exe) exes += [exe, exe2] manadocs += ['misc-utils/uuidd.8.adoc'] + bashcompletions += ['uuidd'] endif opt = build_libblkid @@ -2412,6 +2527,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/blkid.8.adoc'] + bashcompletions += ['blkid'] endif opt = opt and 'blkid' in static_programs @@ -2476,6 +2592,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/findfs.8.adoc'] + bashcompletions += ['findfs'] endif exe = executable( @@ -2490,6 +2607,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/wipefs.8.adoc'] + bashcompletions += ['wipefs'] endif exe = executable( @@ -2505,6 +2623,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/findmnt.8.adoc'] + bashcompletions += ['findmnt'] endif exe = executable( @@ -2529,6 +2648,7 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/rename.1.adoc'] + bashcompletions += ['rename'] endif exe = executable( @@ -2540,6 +2660,7 @@ exe = executable( install : true) exes += exe manadocs += ['misc-utils/getopt.1.adoc'] +bashcompletions += ['getopt'] exe = executable( 'fincore', @@ -2552,6 +2673,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/fincore.1.adoc'] + bashcompletions += ['fincore'] endif exe = executable( @@ -2564,6 +2686,7 @@ exe = executable( if not is_disabler(exe) exes += exe manadocs += ['misc-utils/hardlink.1.adoc'] + bashcompletions += ['hardlink'] endif exe = executable( @@ -2623,6 +2746,7 @@ if opt and not is_disabler(exe) 'schedutils/ionice.1.adoc', 'schedutils/taskset.1.adoc', 'schedutils/uclampset.1.adoc'] + bashcompletions += ['chrt', 'ionice', 'taskset', 'uclampset'] endif ############################################################ @@ -3061,10 +3185,11 @@ if build_libuuid 'libuuid/man/uuid_parse.3.adoc', 'libuuid/man/uuid_time.3.adoc', 'libuuid/man/uuid_unparse.3.adoc'] - manlinks += [ - 'libuuid/man/uuid_generate_random.3', - 'libuuid/man/uuid_generate_time.3', - 'libuuid/man/uuid_generate_time_safe.3'] + manlinks += { + 'uuid_generate_random.3': 'uuid_generate.3', + 'uuid_generate_time.3': 'uuid_generate.3', + 'uuid_generate_time_safe.3': 'uuid_generate.3', + } endif asciidoctor = find_program('asciidoctor', required : false) @@ -3081,7 +3206,9 @@ if asciidoctor.found() command : [ asciidoctor, '-b', 'manpage', '-a', 'VERSION=' + meson.project_version(), + '-a', 'release-version=' + meson.project_version(), '-a', 'ADJTIME_PATH=/etc/adjtime', + '-a', 'package-docdir=' + docdir, '--base-dir=' + meson.current_source_dir(), '--destination-dir=' + meson.current_build_dir(), '@INPUT@'], @@ -3090,4 +3217,21 @@ if asciidoctor.found() install: true, install_dir : mandirn) endforeach + + foreach link_name, target : manlinks + link_section = link_name.split('.')[-1] + target_section = target.split('.')[-1] + meson.add_install_script(meson_make_manpage_stub, + join_paths('man' + target_section, target), + join_paths(mandir, 'man' + link_section, link_name)) + endforeach +endif + +if bash_completion.found() + foreach completion : bashcompletions + install_data( + join_paths('bash-completion', completion), + install_dir : bash_completion.get_variable('completionsdir') + ) + endforeach endif diff --git a/tools/meson-make-manpage-stub.sh b/tools/meson-make-manpage-stub.sh new file mode 100644 index 0000000000..b1af333442 --- /dev/null +++ b/tools/meson-make-manpage-stub.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -eu + +mkdir -vp "$(dirname "${DESTDIR:-}$2")" +printf '.so %s\n' "$1" > "${DESTDIR:-}$2" -- 2.47.3