Lennart Poettering
0a9707187b
util: split out memcmp()/memset() related calls into memory-util.[ch]
...
Just some source rearranging.
2019-03-13 12:16:43 +01:00
Lennart Poettering
eefc66aa8f
util: split out some stuff into a new file limits-util.[ch]
2019-03-13 12:16:43 +01:00
Lennart Poettering
0cb8e3d118
util: split out namespace related stuff into a new namespace-util.[ch] pair
...
Just some minor reorganiztion.
2019-03-13 12:16:38 +01:00
Zbigniew Jędrzejewski-Szmek
311b63fef8
Remove now-unused refcnt.h
2019-03-04 14:16:39 +01:00
Louis Taylor
d1084aa2f8
meson: make version a dependency and use it in libbasic
...
This should hopefully ensure it gets generated before basic build
happens.
Fixes #11483 .
2019-01-22 14:39:38 +01:00
Zbigniew Jędrzejewski-Szmek
df93e8ef05
meson: declare version.h as dep for libbasic
...
"meson build && ninja -C build systemd-cat" would fail on missing version.h.
Fixes #11335 .
2019-01-05 13:30:23 +01:00
Zbigniew Jędrzejewski-Szmek
681bd2c524
meson: generate version tag from git
...
$ build/systemctl --version
systemd 239-3555-g6178cbb5b5
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN +PCRE2 default-hierarchy=hybrid
$ git tag v240 -m 'v240'
$ ninja -C build
ninja: Entering directory `build'
[76/76] Linking target fuzz-unit-file.
$ build/systemctl --version
systemd 240
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN +PCRE2 default-hierarchy=hybrid
This is very useful during development, because a precise version string is
embedded in the build product and displayed during boot, so we don't have to
guess answers for questions like "did I just boot the latest version or the one
from before?".
This change creates an overhead for "noop" builds. On my laptop, 'ninja -C
build' that does nothing goes from 0.1 to 0.5 s. It would be nice to avoid
this, but I think that <1 s is still acceptable.
Fixes #7183 .
PACKAGE_VERSION is renamed to GIT_VERSION, to make it obvious that this is the
more dynamically changing version string.
Why save to a file? It would be easy to generate the version tag using
run_command(), but we want to go through a file so that stuff gets rebuilt when
this file changes. If we just defined an variable in meson, ninja wouldn't know
it needs to rebuild things.
2018-12-21 13:43:20 +01:00
Yu Watanabe
5b139f86a6
missing: re-add drm related entries
...
This effectively reverts dab28f0905
.
Fixes #11075 .
2018-12-07 12:46:55 +01:00
Yu Watanabe
0b7d48f5f4
af-list,arphrd-list: also include relevant missing_*.h headers
2018-12-07 11:48:41 +09:00
Yu Watanabe
18bf324ab5
journal: use missing_audit.h to generate audit_type-list.txt
2018-12-07 11:48:37 +09:00
Yu Watanabe
54480d649f
cap-list: use missing_capabilty.h to generate list of capabilities
2018-12-07 11:31:22 +09:00
Zbigniew Jędrzejewski-Szmek
871fa294ff
Merge pull request #10935 from poettering/rlimit-nofile-safe
...
Merged by hand to resolve a trivial conflict in TODO.
2018-12-06 17:19:21 +01:00
Yu Watanabe
503f480f8e
missing: move fs or mount related definitions to missing_fs.h
...
This also fixes errnous definition MS_REC -> MS_SLAVE.
2018-12-06 13:30:43 +01:00
Yu Watanabe
22332e339b
missing: move sched.h related definitions to missing_sched.h
2018-12-06 13:28:28 +01:00
Yu Watanabe
470f348b97
missing: move definition of secure_getenv() to missing_stdlib.h
2018-12-06 13:26:55 +01:00
Yu Watanabe
b19bb11142
missing: move rand related definitions to missing_random.h
2018-12-06 13:26:55 +01:00
Yu Watanabe
c8a363eb15
missing: add memfd related definitions to missing_mman.h
2018-12-06 13:25:24 +01:00
Yu Watanabe
d7330b60a9
missing: move timer related definition to missing_timerfd.h
2018-12-06 13:25:24 +01:00
Yu Watanabe
66ffbdf933
missing: move socket related definitions to missing_socket.h
2018-12-06 13:25:24 +01:00
Yu Watanabe
dea72eda9c
missing: move fcntl related definitions to missing_fcntl.h
2018-12-06 13:25:24 +01:00
Yu Watanabe
6c76de27ee
missing: move resource related definitions to missing_resource.h
2018-12-06 13:25:24 +01:00
Yu Watanabe
0e7117d001
missing: move audit related definitions to missing_audit.h
2018-12-06 13:25:24 +01:00
Yu Watanabe
38e0c63d72
missing: move char{16,32}_t definitions to missing_type.h
2018-12-04 08:38:18 +01:00
Yu Watanabe
8ca2702f00
missing: move capabilities to missing_capability.h
2018-12-04 08:38:14 +01:00
Yu Watanabe
2a03bb3e65
missing: move prctl related entries to missing_prctl.h
2018-12-04 08:34:46 +01:00
Yu Watanabe
e01819f84b
missing: move statx related definitions to missing_stat.h
2018-12-04 08:27:50 +01:00
Yu Watanabe
1e54f0ab15
missing: move entries defined in magic.h to missing_magic.h
2018-12-04 07:55:23 +01:00
Yu Watanabe
31c2ddabea
missing: move input related entries to missing_input.h
2018-12-04 07:51:52 +01:00
Yu Watanabe
3843e8260c
missing: rename securebits.h to missing_securebits.h
2018-12-04 07:49:24 +01:00
Yu Watanabe
b9683baffe
missing: move btrfs related entries to missing_btrfs.h and missing_btrfs_tree.h
2018-12-04 07:46:59 +01:00
Yu Watanabe
d7276b61bd
missing: move missing entries in keyctl.h to missing_keyctl.h
2018-12-04 07:42:32 +01:00
Yu Watanabe
475c18f06a
meson: add missing missing_*.h
2018-12-04 07:34:47 +01:00
Lennart Poettering
686d13b9f2
util-lib: split out env file parsing code into env-file.c
...
It's quite complex, let's split this out.
No code changes, just some file rearranging.
2018-12-02 13:22:29 +01:00
Lennart Poettering
e4de72876e
util-lib: split out all temporary file related calls into tmpfiles-util.c
...
This splits out a bunch of functions from fileio.c that have to do with
temporary files. Simply to make the header files a bit shorter, and to
group things more nicely.
No code changes, just some rearranging of source files.
2018-12-02 13:22:29 +01:00
Lennart Poettering
3c069cdac4
move src/shared/rlimit-util.[ch] → src/basic/
...
This is really basic stuff and in a follow-up commit will use it all
across the codebase, including in process-util.[ch] which is in
src/basic/. Hence let's move it back to src/basic/ itself.
2018-12-01 12:50:45 +01:00
Zbigniew Jędrzejewski-Szmek
77c772f227
Move mount-util.c to shared/
...
libmount dep is moved from libbasic to libshared, potentially removing
libmount from some build products.
2018-11-29 21:03:44 +01:00
Zbigniew Jędrzejewski-Szmek
049af8ad0c
Split out part of mount-util.c into mountpoint-util.c
...
The idea is that anything which is related to actually manipulating mounts is
in mount-util.c, but functions for mountpoint introspection are moved to the
new file. Anything which requires libmount must be in mount-util.c.
This was supposed to be a preparation for further changes, with no functional
difference, but it results in a significant change in linkage:
$ ldd build/libnss_*.so.2
(before)
build/libnss_myhostname.so.2:
linux-vdso.so.1 (0x00007fff77bf5000)
librt.so.1 => /lib64/librt.so.1 (0x00007f4bbb7b2000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007f4bbb755000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4bbb734000)
libc.so.6 => /lib64/libc.so.6 (0x00007f4bbb56e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4bbb8c1000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f4bbb51b000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f4bbb512000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4bbb4e3000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f4bbb45e000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f4bbb458000)
build/libnss_mymachines.so.2:
linux-vdso.so.1 (0x00007ffc19cc0000)
librt.so.1 => /lib64/librt.so.1 (0x00007fdecb74b000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fdecb744000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fdecb6e7000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdecb6c6000)
libc.so.6 => /lib64/libc.so.6 (0x00007fdecb500000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdecb8a9000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fdecb4ad000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fdecb4a2000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fdecb475000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fdecb3f0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdecb3ea000)
build/libnss_resolve.so.2:
linux-vdso.so.1 (0x00007ffe8ef8e000)
librt.so.1 => /lib64/librt.so.1 (0x00007fcf314bd000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fcf314b6000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fcf31459000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcf31438000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcf31272000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcf31615000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fcf3121f000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fcf31214000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fcf311e7000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fcf31162000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fcf3115c000)
build/libnss_systemd.so.2:
linux-vdso.so.1 (0x00007ffda6d17000)
librt.so.1 => /lib64/librt.so.1 (0x00007f610b83c000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f610b835000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007f610b7d8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f610b7b7000)
libc.so.6 => /lib64/libc.so.6 (0x00007f610b5f1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f610b995000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f610b59e000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f610b593000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f610b566000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f610b4e1000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f610b4db000)
(after)
build/libnss_myhostname.so.2:
linux-vdso.so.1 (0x00007fff0b5e2000)
librt.so.1 => /lib64/librt.so.1 (0x00007fde0c328000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fde0c307000)
libc.so.6 => /lib64/libc.so.6 (0x00007fde0c141000)
/lib64/ld-linux-x86-64.so.2 (0x00007fde0c435000)
build/libnss_mymachines.so.2:
linux-vdso.so.1 (0x00007ffdc30a7000)
librt.so.1 => /lib64/librt.so.1 (0x00007f06ecabb000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f06ecab4000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f06eca93000)
libc.so.6 => /lib64/libc.so.6 (0x00007f06ec8cd000)
/lib64/ld-linux-x86-64.so.2 (0x00007f06ecc15000)
build/libnss_resolve.so.2:
linux-vdso.so.1 (0x00007ffe95747000)
librt.so.1 => /lib64/librt.so.1 (0x00007fa56a80f000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fa56a808000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa56a7e7000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa56a621000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa56a964000)
build/libnss_systemd.so.2:
linux-vdso.so.1 (0x00007ffe67b51000)
librt.so.1 => /lib64/librt.so.1 (0x00007ffb32113000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007ffb3210c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffb320eb000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffb31f25000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffb3226a000)
I don't quite understand what is going on here, but let's not be too picky.
2018-11-29 21:03:44 +01:00
Yu Watanabe
7b5e750d2a
util: also move scripts related to socket-protocol-list.[ch] to shared/
...
The source files were moved to shared/. Let's also move the relevant scripts.
2018-11-28 20:20:29 +09:00
Yu Watanabe
6ec439fd4b
tools: move generate-gperfs.py to tools/
2018-11-28 20:19:41 +09:00
Zbigniew Jędrzejewski-Szmek
294bf0c34a
Split out pretty-print.c and move pager.c and main-func.h to shared/
...
This is high-level functionality, and fits better in shared/ (which is for
our executables), than in basic/ (which is also for libraries).
2018-11-20 18:40:02 +01:00
Zbigniew Jędrzejewski-Szmek
4de8d971f0
meson: drop libblkid from libbasic
...
This doesn't seem to change anything, because libmount links to libblkid anyway.
But we don't need to include this dep directly in libbasic.
2018-11-20 07:27:37 +01:00
Zbigniew Jędrzejewski-Szmek
d284b82b3e
Move various files that don't need to be in basic/ to shared/
...
This doesn't have much effect on the final build, because we link libbasic.a
into libsystemd-shared.so, so in the end, all the object built from basic/
end up in libsystemd-shared. And when the static library is linked into binaries,
any objects that are included in it but are not used are trimmed. Hence, the
size of output artifacts doesn't change:
$ du -sb /var/tmp/inst*
54181861 /var/tmp/inst1 (old)
54207441 /var/tmp/inst1s (old split-usr)
54182477 /var/tmp/inst2 (new)
54208041 /var/tmp/inst2s (new split-usr)
(The negligible change in size is because libsystemd-shared.so is bigger
by a few hundred bytes. I guess it's because symbols are named differently
or something like that.)
The effect is on the build process, in particular partial builds. This change
effectively moves the requirements on some build steps toward the leaves of the
dependency tree. Two effects:
- when building items that do not depend on libsystemd-shared, we
build less stuff for libbasic.a (which wouldn't be used anyway,
so it's a net win).
- when building items that do depend on libshared, we reduce libbasic.a as a
synchronization point, possibly allowing better parallelism.
Method:
1. copy list of .h files from src/basic/meson.build to /tmp/basic
2. $ for i in $(grep '.h$' /tmp/basic); do echo $i; git --no-pager grep "include \"$i\"" src/basic/ 'src/lib*' 'src/nss-*' 'src/journal/sd-journal.c' |grep -v "${i%.h}.c";echo ;done | less
2018-11-20 07:27:37 +01:00
Yu Watanabe
52048013b7
Merge pull request #10845 from poettering/static-destruct
...
RFC: introduce automatic destructors for static variables
2018-11-20 12:31:52 +09:00
Lennart Poettering
a64841779a
meson: order source files alphabetically
2018-11-19 21:50:54 +01:00
Lennart Poettering
67e16c31e9
util: add set of macros for declaring _cleanup_-style destructors for static variables
2018-11-19 21:14:34 +01:00
Lennart Poettering
cd0b6c5390
json: add a nice JSON parser
...
As preparation for OCI support in nspawn, let's add a JSON parser.
The json.h file contains an explanation why this is new code instead of
just us linking against an existing JSON library.
2018-10-10 10:13:30 +02:00
Zbigniew Jędrzejewski-Szmek
3cb9b42af3
Move module-util.h to src/shared/ and load_module() to libshared
...
Unfortunately this needs libshared to link to libkmod. Before it was linked
into systemd-udevd, udevadm, and systemd each seperately. On most systems this
doesn't make much difference, because at least systemd would be installed, but
it might not be in small chroots. It is a small library, so I hope this is not
a big issue.
2018-07-16 13:08:40 +02:00
Zbigniew Jędrzejewski-Szmek
0cd41d4dff
Drop my copyright headers
...
perl -i -0pe 's/\s*Copyright © .... Zbigniew Jędrzejewski.*?\n/\n/gms' man/*xml
git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/(#\n)?# +Copyright © [0-9, -]+ Zbigniew Jędrzejewski.*?\n//gms'
git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/\s*\/\*\*\*\s+Copyright © [0-9, -]+ Zbigniew Jędrzejewski[^\n]*?\s*\*\*\*\/\s*/\n\n/gms'
git grep -e 'Copyright.*Jędrzejewski' -l | xargs perl -i -0pe 's/\s+Copyright © [0-9, -]+ Zbigniew Jędrzejewski[^\n]*//gms'
2018-06-14 13:03:20 +02:00
Lennart Poettering
96b2fb93c5
tree-wide: beautify remaining copyright statements
...
Let's unify an beautify our remaining copyright statements, with a
unicode ©. This means our copyright statements are now always formatted
the same way. Yay.
2018-06-14 10:20:21 +02:00
Lennart Poettering
d58ad743f9
os-util: add helpers for finding /etc/os-release
...
Place this new helpers in a new source file os-util.[ch], and move the
existing and related call path_is_os_tree() to it as well.
2018-05-24 17:01:57 +02:00