Move systemd-resolved daemon and related tools to its own subpackage. Keep only nss-resolve in systemd, the service itself is moved to subpackage. It has quite different functionality than systemd package and deserves own package. Still recommend resolved from main package Keep backward compatibility and still recommend systemd-resolved. Allow removal, but would be installed by default.
158 lines
5.6 KiB
Python
158 lines
5.6 KiB
Python
import re, sys, os, collections
|
|
|
|
buildroot = sys.argv[1]
|
|
known_files = sys.stdin.read().splitlines()
|
|
known_files = {line.split()[-1]:line for line in known_files}
|
|
|
|
def files(root):
|
|
os.chdir(root)
|
|
todo = collections.deque(['.'])
|
|
while todo:
|
|
n = todo.pop()
|
|
files = os.scandir(n)
|
|
for file in files:
|
|
yield file
|
|
if file.is_dir() and not file.is_symlink():
|
|
todo.append(file)
|
|
|
|
o_libs = open('.file-list-libs', 'w')
|
|
o_udev = open('.file-list-udev', 'w')
|
|
o_pam = open('.file-list-pam', 'w')
|
|
o_rpm_macros = open('.file-list-rpm-macros', 'w')
|
|
o_devel = open('.file-list-devel', 'w')
|
|
o_container = open('.file-list-container', 'w')
|
|
o_networkd = open('.file-list-networkd', 'w')
|
|
o_oomd_defaults = open('.file-list-oomd-defaults', 'w')
|
|
o_remote = open('.file-list-remote', 'w')
|
|
o_resolve = open('.file-list-resolve', 'w')
|
|
o_tests = open('.file-list-tests', 'w')
|
|
o_standalone_tmpfiles = open('.file-list-standalone-tmpfiles', 'w')
|
|
o_standalone_sysusers = open('.file-list-standalone-sysusers', 'w')
|
|
o_rest = open('.file-list-rest', 'w')
|
|
for file in files(buildroot):
|
|
n = file.path[1:]
|
|
if re.match(r'''/usr/(share|include)$|
|
|
/usr/share/man(/man.|)$|
|
|
/usr/share/zsh(/site-functions|)$|
|
|
/usr/share/dbus-1$|
|
|
/usr/share/dbus-1/system.d$|
|
|
/usr/share/dbus-1/(system-|)services$|
|
|
/usr/share/polkit-1(/actions|/rules.d|)$|
|
|
/usr/share/pkgconfig$|
|
|
/usr/share/bash-completion(/completions|)$|
|
|
/usr(/lib|/lib64|/bin|/sbin|)$|
|
|
/usr/lib.*/(security|pkgconfig)$|
|
|
/usr/lib/rpm(/macros.d|)$|
|
|
/usr/lib/firewalld(/services|)$|
|
|
/usr/share/(locale|licenses|doc)| # no $
|
|
/etc(/pam\.d|/xdg|/X11|/X11/xinit|/X11.*\.d|)$|
|
|
/etc/(dnf|dnf/protected.d)$|
|
|
/usr/(src|lib/debug)| # no $
|
|
/run$|
|
|
/var(/cache|/log|/lib|/run|)$
|
|
''', n, re.X):
|
|
continue
|
|
if '/security/pam_' in n or '/man8/pam_' in n:
|
|
o = o_pam
|
|
elif '/rpm/' in n:
|
|
o = o_rpm_macros
|
|
elif '/usr/lib/systemd/tests' in n:
|
|
o = o_tests
|
|
elif re.search(r'/lib.*\.pc|/man3/|/usr/include|(?<!/libsystemd-shared-...).so$', n):
|
|
o = o_devel
|
|
elif re.search(r'''journal-(remote|gateway|upload)|
|
|
systemd-remote\.conf|
|
|
/usr/share/systemd/gatewayd|
|
|
/var/log/journal/remote
|
|
''', n, re.X):
|
|
o = o_remote
|
|
elif re.search(r'''mymachines|
|
|
machinectl|
|
|
systemd-nspawn|
|
|
import-pubring.gpg|
|
|
systemd-(machined|import|pull)|
|
|
/machine.slice|
|
|
/machines.target|
|
|
var-lib-machines.mount|
|
|
org.freedesktop.(import|machine)1
|
|
''', n, re.X):
|
|
o = o_container
|
|
elif re.search(r'''/usr/lib/systemd/network/80-|
|
|
networkd|
|
|
networkctl|
|
|
org.freedesktop.network1
|
|
''', n, re.X):
|
|
o = o_networkd
|
|
elif '.so.' in n:
|
|
o = o_libs
|
|
elif re.search(r'''udev(?!\.pc)|
|
|
hwdb|
|
|
bootctl|
|
|
sd-boot|systemd-boot\.|loader.conf|
|
|
bless-boot|
|
|
boot-system-token|
|
|
kernel-install|
|
|
vconsole|
|
|
backlight|
|
|
rfkill|
|
|
random-seed|
|
|
modules-load|
|
|
timesync|
|
|
cryptsetup|
|
|
kmod|
|
|
quota|
|
|
pstore|
|
|
sleep|suspend|hibernate|
|
|
systemd-tmpfiles-setup-dev|
|
|
network/99-default.link|
|
|
growfs|makefs|makeswap|mkswap|
|
|
fsck|
|
|
repart|
|
|
gpt-auto|
|
|
volatile-root|
|
|
verity-setup|
|
|
remount-fs|
|
|
/boot$|
|
|
/boot/efi|
|
|
/kernel/|
|
|
/kernel$|
|
|
/modprobe.d
|
|
''', n, re.X):
|
|
o = o_udev
|
|
elif re.search(r'''resolvectl|
|
|
resolved|
|
|
systemd-resolve|
|
|
resolvconf|
|
|
resolve1\.
|
|
''', n, re.X):
|
|
# keep only nss-resolve in systemd
|
|
o = o_resolve
|
|
elif re.search(r'10-oomd-.*defaults.conf|lib/systemd/oomd.conf.d', n, re.X):
|
|
o = o_oomd_defaults
|
|
elif n.endswith('.standalone'):
|
|
if 'tmpfiles' in n:
|
|
o = o_standalone_tmpfiles
|
|
elif 'sysusers' in n:
|
|
o = o_standalone_sysusers
|
|
else:
|
|
assert False, 'Found .standalone not belonging to known packages'
|
|
else:
|
|
o = o_rest
|
|
|
|
if n in known_files:
|
|
prefix = ' '.join(known_files[n].split()[:-1])
|
|
if prefix:
|
|
prefix += ' '
|
|
elif file.is_dir() and not file.is_symlink():
|
|
prefix = '%dir '
|
|
elif 'README' in n:
|
|
prefix = '%doc '
|
|
elif n.startswith('/etc'):
|
|
prefix = '%config(noreplace) '
|
|
else:
|
|
prefix = ''
|
|
|
|
suffix = '*' if '/man/' in n else ''
|
|
|
|
print(f'{prefix}{n}{suffix}', file=o)
|