1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-05 15:21:37 +03:00
Commit Graph

563 Commits

Author SHA1 Message Date
Dave Reisner
0a7f0fcc79 configure.ac: keep posix compat for string tests
'==' and '=' are equivalent in /bin/bash, but POSIX compliant shells do
not understand '==.'
2014-12-25 11:43:26 -05:00
Filipe Brandenburger
7115e487cd build-sys: remove references to dbusinterfacedir
This directory is not used by systemd.

Tested by running a full build, running `make install` and comparing the file
list in the target trees and making sure that `make distcheck` still works.
2014-12-25 10:55:42 -05:00
Filipe Brandenburger
977db91c29 build-sys: do not use pkgconfig dbus-1.pc to find dbus directories
Do not use the dbus-1.pc pkgconfig settings to determine dbus directories. Use
directories relative to ${sysconfdir} and ${datadir} instead.

This approach was suggested by Simon McVittie in:
http://lists.freedesktop.org/archives/systemd-devel/2014-October/024388.html

Tested by building and installing systemd without the dbus-devel installed.
Without this patch, the dbus files and directories end up in the root of the
filesystem. With this patch, they end up in the same locations as previously
(assuming default ${sysconfdir} and ${datadir}) whether dbus-devel is present
or not. Also made sure that `make check` works without dbus-devel installed.
2014-12-25 10:55:42 -05:00
Lennart Poettering
91f4347ef7 import: rename 'poll-dck' to 'pull-dkr'
I figure "pull-dck" is not a good name, given that one could certainly
read the verb in a way that might be funny for 16year-olds. ;-)

Also, don't hardcode the index URL to use, make it runtime and configure
time configurable instead.
2014-12-23 03:25:36 +01:00
Umut Tezduyar Lindskog
fe659612e4 build: add option to disable hwdb
[tomegun: fix Makefile-man.am, based on fix from Michael Biebl]
2014-12-20 00:23:37 +01:00
Gabriel de Perthuis
d47f6ca5f9 blkid: Warn when rejecting a superblock with a bad csum
Bump libblkid requirement from 2.20 to 2.24.
util-linux 2.25 is actually required since fdbbad981c
2014-12-14 12:54:17 -05:00
Michal Schmidt
fad5a6c66e journal: add debug mode for mmap-cache (--enable-debug=mmap-cache)
This is useful for exposing unsafe access to mmapped objects after
the context that they were mapped in was already moved.

For example:
journal_file_move_to_object(f1, OBJECT_DATA, p1, &o1);
journal_file_move_to_object(f2, OBJECT_DATA, p2, &o2);
t = o1->object.type; /* this usually works, but is unsafe */
2014-12-13 00:46:16 +01:00
Michal Schmidt
fc86aa0ed2 configure.ac: add a generic --enable-debug, replace --enable-hashmap-debug
There will be more debugging options later.
 --enable-debug will enable them all.
 --enable-debug=hashmap will enable only hashmap debugging.

Also rename the C #define to ENABLE_DEBUG_* pattern.
2014-12-13 00:46:16 +01:00
Lennart Poettering
9807712558 build-sys: bump package and library versions in preparation for 218 release 2014-12-10 22:31:27 +01:00
Przemyslaw Kedzierski
dd5ae4c36c bus-proxy: cloning smack label
When dbus client connects to systemd-bus-proxyd through
Unix domain socket proxy takes client's smack label and sets for itself.

It is done before and independent of dropping privileges.

The reason of such soluton is fact that tests of access rights
performed by lsm may take place inside kernel, not only
in userspace of recipient of message.

The bus-proxyd needs CAP_MAC_ADMIN to manipulate its label.

In case of systemd running in system mode, CAP_MAC_ADMIN
should be added to CapabilityBoundingSet in service file of bus-proxyd.

In case of systemd running in user mode ('systemd --user')
it can be achieved by addition
Capabilities=cap_mac_admin=i and SecureBits=keep-caps
to user@.service file
and setting cap_mac_admin+ei on bus-proxyd binary.
2014-12-09 18:23:24 +01:00
Łukasz Stelmach
5a16bc264c build-sys: configure the list of system users, files and directories
Choose which system users defined in sysusers.d/systemd.conf and files
or directories in tmpfiles.d/systemd.conf, should be provided depending
on comile-time configuration.
2014-11-30 23:50:19 -05:00
Chris Leech
8d3ae2bd4c mount: use libmount to enumerate /proc/self/mountinfo
This lets libmount add in user options from /run/mount/utab, like
_netdev which is needed to get proper ordering against remote-fs.target
2014-11-28 14:30:50 -05:00
David Herrmann
cdcd0ccdbe terminal/idev: add compose-file support
Add support for compose files to idev-keyboard. This requires
libxkbcommon-0.5.0, which is pretty new, but should be fine.

We don't use the compose-files, yet. Further commits will put life into
them.
2014-11-24 18:30:03 +01:00
David Herrmann
d4f5a1f47d localed: validate xkb keymaps
Introduce a new optional dependency on libxkbcommon for systemd-localed.
Whenever the x11 keymap settings are changed, use libxkbcommon to compile
the keymap. If the compilation fails, print a warning so users will get
notified.

On compilation failure, we still update the keymap settings for now. This
patch just introduces the xkbcommon infrastructure to have keymap
validation in place. We can later decide if/how we want to enforce this.
2014-11-24 15:16:33 +01:00
Zbigniew Jędrzejewski-Szmek
8ecec322fe missing: add IFLA_BRPORT_LEARNING and friends
IFLA_BRPORT_LEARNING was added in v3.10-rc4-583-g9ba18891f7,
and IFLA_BRPORT_UNICAST_FLOOD in v3.10-rc4-584-g867a59436f.
2014-11-22 17:12:44 -05:00
Michal Schmidt
994701548d configure.ac: add --enable-hashmap-debug option
The option simply enables hashmap debugging by defining
ENABLE_HASHMAP_DEBUG.

I suggest developing new code with it enabled, to have the iterator checks.
2014-10-30 19:50:51 +01:00
Lennart Poettering
539618a0dd util: make use of the new getrandom() syscall if it is available when needing entropy
Doesn't require an fd, and could be a bit faster, so let's make use of
it, if it is available.
2014-10-29 17:06:32 +01:00
Lennart Poettering
9a4f7f5ef7 build-sys: bump version number in preparation for release 2014-10-28 15:29:49 +01:00
Timofey Titovets
3769415e65 login: remove multi-seat-x 2014-10-28 02:24:46 +01:00
Zbigniew Jędrzejewski-Szmek
c7e4a7bece missing: remove fanotify
It was only used in readahead.
2014-10-17 08:55:42 -04:00
Zbigniew Jędrzejewski-Szmek
65e3a2cf7c build-sys: use -Wno-gnu-variable-sized-type-not-at-end under clang
Otherwise we get useless warnings about journal code.
2014-10-09 23:32:55 -04:00
Zbigniew Jędrzejewski-Szmek
4f47bb8c5e build-sys: use -Wno-typedef-redefinition only for clang
Our checks for -Wno-xxx switches do not work with gcc [1].

[1] https://gcc.gnu.org/wiki/FAQ#wnowarning
2014-10-09 23:32:54 -04:00
Zbigniew Jędrzejewski-Szmek
27c64db6df build-sys: use linux/memfd.h if available
linux/memfd.h was added linux 3.17, so it might not be widely
available for a while.

Also, check if memfd_create is defined, for the HAVE_LINUX_MEMFD_H
check to have a chance of succeeding.

Also, collapse all ifdefs for memfd-related stuff, because they
were all added together so there's no need to check separately.
2014-10-05 19:07:28 -04:00
Emil Renner Berthing
37161c5148 make utmp/wtmp support configurable
This adds --disable-utmp option to configure. If it is used, all
utmp-related functionality, including querying runlevel support,
is removed.
2014-09-26 07:48:35 -04:00
Daniel Buch
d6bc8348d5 readahead: wipe out readahead 2014-09-25 16:39:18 +02:00
David Herrmann
650c544427 terminal: add graphics interface
The grdev layer provides graphics-device access via the
libsystemd-terminal library. It will be used by all terminal helpers to
actually access display hardware.

Like idev, the grdev layer is built around session objects. On each
session object you add/remove graphics devices as they appear and vanish.
Any device type can be supported via specific card-backends. The exported
grdev API hides any device details.

Graphics devices are represented by "cards". Those are hidden in the
session and any pipe-configuration is automatically applied. Out of those,
we configure displays which are then exported to the API user. Displays
are meant as lowest hardware entity available outside of grdev. The
underlying pipe configuration is fully hidden and not accessible from the
outside. The grdev tiling layer allows almost arbitrary setups out of
multiple pipes, but so far we only use a small subset of this. More will
follow.

A grdev-display is meant to represent real connected displays/monitors.
The upper level screen arrangements are user policy and not controlled by
grdev. Applications are free to apply any policy they want.

Real card-backends will follow in later patches.
2014-09-19 14:05:52 +02:00
Michal Schmidt
f44541bc93 build: colorize gcc only if on tty
Rather than forcing gcc to always produce colorized error messages
whether on tty or not, enable automatic colorization by ensuring
GCC_COLORS is set to a non-empty string.

Doing it this way removes the need for workarounds in ~/.emacs or
~/.vimrc for "M-x compile" or ":make", respectively, to work.
2014-09-15 16:08:50 +02:00
Umut Tezduyar Lindskog
4df5c00b6e build-sys: configure option to disable hibernation 2014-09-03 19:40:51 +02:00
Kay Sievers
be2ea723b1 udev: remove userspace firmware loading support 2014-08-30 11:34:20 +02:00
David Herrmann
e06cc7b074 terminal: add xkb-based keyboard devices to idev
The idev-keyboard object provides keyboard devices to the idev interface.
It uses libxkbcommon to provide proper keymap support.

So far, the keyboard implementation is pretty straightforward with one
keyboard device per matching evdev element. We feed everything into the
system keymap and provide proper high-level keyboard events to the
application. Compose-features and IM need to be added later.
2014-08-27 18:42:28 +02:00
David Herrmann
c93e5a62ff terminal: add evdev elements to idev
The evdev-element provides linux evdev interfaces as idev-elements. This
way, all real input hardware devices on linux can be used with the idev
interface.

We use libevdev to interface with the kernel. It's a simple wrapper
library around the kernel evdev API that takes care to resync devices
after kernel-queue overflows, which is a rather non-trivial task.
Furthermore, it's a well tested interface used by all other major input
users (Xorg, weston, libinput, ...).
Last but not least, it provides nice keycode to keyname lookup tables (and
vice versa), which is really nice for debugging input problems.
2014-08-27 18:42:28 +02:00
Tom Gundersen
aeb50ff0bd tmpfiles: make resolv.conf entry conditional on resolved support 2014-08-27 18:17:16 +02:00
Lennart Poettering
d5a169aaee build-sys: update versions for upcoming release 2014-08-19 22:45:53 +02:00
Lennart Poettering
de99c9dcba hashmap: try to use the existing 64bit hash functions for dev_t if it is 64bit 2014-08-19 00:04:55 +02:00
Umut Tezduyar Lindskog
12e34d9d58 ldconfig: add configure option to disable 2014-08-14 01:01:43 +02:00
Lennart Poettering
bdf10b5b4d resolved: handle IDNA domains
Make sure we format UTF-8 labels as IDNA when writing them to DNS
packets, and as native UTF-8 when writing them to mDNS or LLMNR packets.

When comparing or processing labels always consider native UTF-8 and
IDNA formats equivalent.
2014-08-01 00:58:12 +02:00
Robert Schiele
a59f16ce4a build-sys: check for intltool also when polkit is enabled
intltool is needed for nls _and_ polkit, thus the check needs to be
changed to do the test whenever one of them is enables.

Without this build fails when configured with
--disable-nls --enable-polkit
2014-07-31 09:14:52 -04:00
Zbigniew Jędrzejewski-Szmek
1a40a3393e configure: add -Wno-typedef-redefinition
Message-ID: <CAJ+BJsz9Qy-JU25dUuGT2n0LMNzcOpoJNGNtbf_boSuT_6hONw@mail.gmail.com>
2014-07-21 21:07:19 -04:00
Jean-André Santoni
6589d0dba2 Add IFLA_VTI defines to missing.h 2014-07-21 21:04:44 -04:00
David Herrmann
84da4a3022 ui/term: add line/cell/char handling for terminal pages
This commit introduces libsystemd-ui, a systemd-internal helper library
that will contain all the UI related functionality. It is going to be used
by systemd-welcomed, systemd-consoled, systemd-greeter and systemd-er.
Further use-cases may follow.

For now, this commit only adds terminal-page handling based on lines only.
Follow-up commits will add more functionality.
2014-07-17 11:48:40 +02:00
Zbigniew Jędrzejewski-Szmek
75616a1332 missing.h: add IFLA_MACVLAN_FLAGS
Now we are getting into kernel < 3.4 territory...

https://bugs.freedesktop.org/show_bug.cgi?id=80095
2014-07-16 16:44:50 -04:00
Zbigniew Jędrzejewski-Szmek
ad95fd1d2b journal-remote: add units and read certs from default locations 2014-07-15 22:23:49 -04:00
Zbigniew Jędrzejewski-Szmek
36ef43edcf build-sys: add check for libcurl 2014-07-15 22:23:47 -04:00
Zbigniew Jędrzejewski-Szmek
3b1a55e110 Fix build without any compression enabled 2014-07-11 10:42:27 -04:00
Lennart Poettering
418b9be500 firstboot: add new component to query basic system settings on first boot, or when creating OS images offline
A new tool "systemd-firstboot" can be used either interactively on boot,
where it will query basic locale, timezone, hostname, root password
information and set it. Or it can be used non-interactively from the
command line when prepareing disk images for booting. When used
non-inertactively the tool can either copy settings from the host, or
take settings on the command line.

$ systemd-firstboot --root=/path/to/my/new/root --copy-locale --copy-root-password --hostname=waldi

The tool will be automatically invoked (interactively) now on first boot
if /etc is found unpopulated.

This also creates the infrastructure for generators to be notified via
an environment variable whether they are running on the first boot, or
not.
2014-07-07 15:25:55 +02:00
Zbigniew Jędrzejewski-Szmek
d89c8fdf48 journal: add LZ4 as optional compressor
Add liblz4 as an optional dependency when requested with --enable-lz4,
and use it in preference to liblzma for journal blob and coredump
compression. To retain backwards compatibility, XZ is used to
decompress old blobs.

Things will function correctly only with lz4-119.

Based on the benchmarks found on the web, lz4 seems to be the best
choice for "quick" compressors atm.

For pkg-config status, see http://code.google.com/p/lz4/issues/detail?id=135.
2014-07-06 19:06:03 -04:00
Lennart Poettering
252ff40a38 build-sys: bump package and library versions 2014-07-03 20:48:40 +02:00
Filipe Brandenburger
f15515b5e6 build-sys: disable NLS support if intltool is not found
IT_PROG_INTLTOOL makes configure fail if intltool is not present.  If we can
not find intltool, then disable NLS (otherwise make in po/ fails since MSGFMT
will not be defined.)

Tested: Built it on a host without intltool.
  $ ./configure --enable-nls
  ...
  checking for intltool-merge... no
  configure: error: --enable-nls requested but intltool not found

  $ ./configure --disable-polkit
  ...
  checking for intltool-merge... no
  configure: WARNING: *** Disabling NLS support because intltool was not found
  checking whether NLS is requested... no
  ...
  $ make

https://bugs.freedesktop.org/show_bug.cgi?id=79692
2014-06-26 01:41:05 -04:00
Filipe Brandenburger
2f96919bcd build-sys: add explicit support for --disable-nls
In particular, disable intltool when --disable-nls is passed to configure.

Tested: Built it on a host without intltool or gettext.
  $ ./configure --disable-nls --disable-polkit
  $ make
2014-06-26 01:41:05 -04:00
Michael Marineau
972bded032 build-sys: require elfutils >= 158
The recently added stacktrace support in 8d4e028f uses functions added
in elfutils 158. Check for one of the new functions to avoid attempting
to build against older versions.
2014-06-22 12:26:09 -04:00
Zbigniew Jędrzejewski-Szmek
81577dc228 missing.h: add various network enums
We used to check if e.g. IFLA_BOND_MAX is defined and provide fallback
values in missing.h is it wasn't. But over time, various kernel
versions added IFLA_* defines, so checking for IFLA_BOND_MAX is not
enough if the kernel is new enough to have some of them but too old to
have all. In case we detect that the latest known enum value is
missing, #define most of them.

https://bugs.freedesktop.org/show_bug.cgi?id=80095
2014-06-20 22:05:43 -04:00
Zbigniew Jędrzejewski-Szmek
747cf8cdf6 build-sys: fail if python support requested but not found 2014-06-20 18:44:40 -04:00
Filipe Brandenburger
be8737ae38 build-sys: add verbosity to python-lxml detection in ./configure
Be verbose when checking if Python module lxml is available.  Also warn that
Python support will be disabled when the lxml module is not present.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=80005

Tested:
- Without python-lxml package installed:
  $ ./configure
  checking for python extension module directory... ${exec_prefix}/lib64/python2.7/site-packages
  checking for python lxml module... no
  configure: WARNING: *** python support requires python-xml module installed

- With python-lxml package installed:
  $ ./configure
  checking for python extension module directory... ${exec_prefix}/lib64/python2.7/site-packages
  checking for python lxml module... yes
  checking for PYTHON_DEVEL... yes
  ...
          Python:                  yes
          Python Headers:          yes
2014-06-20 18:44:40 -04:00
Lennart Poettering
8d4e028f18 coredump: include stacktrace of coredumps in the log message
elfutils' libdw is maintained, can read DWARF debug data and appears to
be the library of choice for generating backtraces today.
2014-06-19 12:38:45 +02:00
Lennart Poettering
f8b5d99408 sysuser: generate default snippet incorporating TTY_GID properly
When the user specifies --with-tty-gid= then we should honour that and
write it to the snippet, too.
2014-06-12 23:22:27 +02:00
Lennart Poettering
1b99214789 sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from static files
systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
from static definition files that take a lot of inspiration from
tmpfiles snippets. These snippets should carry information about system
users only. To make sure it is not misused for normal users these
snippets only allow configuring UID and gecos field for each user, but
do not allow configuration of the home directory or shell, which is
necessary for real login users.

The purpose of this tool is to enable state-less systems that can
populate /etc with the minimal files necessary, solely from static data
in /usr. systemd-sysuser is additive only, and will never override
existing users.

This tool will create these files directly, and not via some user
database abtsraction layer. This is appropriate as this tool is supposed
to run really early at boot, and is only useful for creating system
users, and system users cannot be stored in remote databases anyway.

The tool is also useful to be invoked from RPM scriptlets, instead of
useradd. This allows moving from imperative user descriptions in RPM to
declarative descriptions.

The UID/GID for a user/group to be created can either be chosen dynamic,
or fixed, or be read from the owner of a file in the file system, in
order to support reconstructing the correct IDs for files that shall be
owned by them.

This also adds a minimal user definition file, that should be
sufficient for most basic systems. Distributions are expected to patch
these files and augment the contents, for example with fixed UIDs for
the users where that's necessary.
2014-06-12 23:07:33 +02:00
Lennart Poettering
42a04ee69c build-sys: update library versions 2014-06-11 15:30:28 +02:00
Kay Sievers
4196a3ead3 NEWS: add section about udev locking 2014-06-11 12:00:47 +02:00
John
235c6e6281 build-sys: accommodate gcc-4.9.0 link-time optimization (LTO) changes
systemd fails to build (symbols not found/resolved during cgls link step)
under gcc-4.9.0 due to link-time optimization (lto) changes, in particular
from gcc-4.9.0/NEWS:

  + When using a linker plugin, compiling with the -flto option
    now generates slim objects files (.o) which only contain
    intermediate language representation for LTO. Use
    -ffat-lto-objects to create files which contain additionally
    the object code. To generate static libraries suitable for LTO
    processing, use gcc-ar and gcc-ranlib; to list symbols from a
    slim object file use gcc-nm. (Requires that ar, ranlib and nm
    have been compiled with plugin support.)

Both -flto and -ffat-lto-objects are now needed when building and linking
against static libs w/LTO.
2014-06-04 17:47:20 +02:00
Tom Gundersen
0bbea466dc configure: networkd no longer requires kmod
Reported by Samuli Suominen.
2014-06-03 01:05:13 +02:00
Lennart Poettering
fdd2531170 virt: rework container detection logic
Instead of accessing /proc/1/environ directly, trying to read the
$container variable from it, let's make PID 1 save the contents of that
variable to /run/systemd/container. This allows us to detect containers
without the need for CAP_SYS_PTRACE, which allows us to drop it from a
number of daemons and from the file capabilities of systemd-detect-virt.

Also, don't consider chroot a container technology anymore. After all,
we don't consider file system namespaces container technology anymore,
and hence chroot() should be considered a container even less.
2014-05-28 18:53:44 +08:00
Kay Sievers
d2edfae0f9 build-sys: use glibc's xattr support instead of requiring libattr 2014-05-28 17:36:40 +08:00
Lennart Poettering
76d4bef384 build-sys: bump package and library version 2014-05-27 19:02:22 +08:00
Zbigniew Jędrzejewski-Szmek
49e5c2b26a build-sys: fix typo in variable name 2014-05-24 18:50:21 -04:00
Lennart Poettering
f7dc3ab9f4 logind: don't apply RemoveIPC= to system users
We shouldn't destroy IPC objects of system users on logout.

http://lists.freedesktop.org/archives/systemd-devel/2014-April/018373.html

This introduces SYSTEM_UID_MAX defined to the maximum UID of system
users. This value is determined compile-time, either as configure switch
or from /etc/login.defs. (We don't read that file at runtime, since this
is really a choice for a system builder, not the end user.)

While we are at it we then also update journald to use SYSTEM_UID_MAX
when we decide whether to split out log data for a specific client.
2014-05-21 09:36:49 +09:00
Tom Gundersen
091a364c80 resolved: add daemon to manage resolv.conf
Also remove the equivalent functionality from networkd.
2014-05-19 18:14:56 +02:00
Cristian Rodríguez
2a4d1ec152 build: Compile everything with PIE 2014-05-19 01:14:35 +09:00
Tom Gundersen
7b4d796839 networkd: also add IPv6 DNS servers by default 2014-05-16 19:48:25 +02:00
Tom Gundersen
e16cb2e4ef networkd: hardcode a set of default dns servers
Similarly to NTP servers, this can be set at compile-time.
2014-05-16 17:19:04 +02:00
Lennart Poettering
4468835285 build-sys: at configure check for verifying that ln supports --relative 2014-05-16 16:51:42 +02:00
Cristian Rodríguez
679be2a742 network: fix build failure, missing KMOD_XXX flags
- Add KMOD_CFLAGS and KMOD_LIBS where appropiate
- networkd now requires kmod. make --disable-kmod --enable-networkd
to raise an error.
2014-05-15 18:51:54 +02:00
Zbigniew Jędrzejewski-Szmek
5ea846cc51 networkd, build-sys: spelling fix 2014-05-15 15:29:59 +02:00
Zbigniew Jędrzejewski-Szmek
de0671ee7f Remove unnecessary casts in printfs
No functional change expected :)
2014-05-15 15:29:58 +02:00
Lennart Poettering
661278ee29 timesyncd: never accept NTP time from server that is older than systemd's release time 2014-05-06 18:08:04 +02:00
Lennart Poettering
e8af69739a timesyncd: read server settings from a configuration file
Also, allow compiling in a default server list via a configure command
line item.
2014-05-06 17:02:11 +02:00
Lennart Poettering
43ba1b3e64 build-sys: enable timesyncd by default 2014-05-05 21:39:10 +02:00
Kay Sievers
a91df40e69 timesyncd: add unit and man page 2014-04-29 09:51:53 +02:00
Kay Sievers
687ed1237b rename timedate-sntp to timesync 2014-04-28 17:08:52 +02:00
Zbigniew Jędrzejewski-Szmek
ae0ceefc2f build-sys: add configure switch for -fsanitize=undefined
--enable-undefined-sanitizer mirrors --enable-memory-sanitizer.
2014-04-26 08:16:39 -04:00
Cristian Rodríguez
aca33b078c build: if -fstack-protector-strong is available, use it. 2014-04-12 11:56:07 -04:00
Lennart Poettering
3b5b000fbc build-sys: prepare 212 2014-03-25 20:22:41 +01:00
Lennart Poettering
7f8aa67131 core: remove tcpwrap support
tcpwrap is legacy code, that is barely maintained upstream. It's APIs
are awful, and the feature set it exposes (such as DNS and IDENT
access control) questionnable. We should not support this natively in
systemd.

Hence, let's remove the code. If people want to continue making use of
this, they can do so by plugging in "tcpd" for the processes they start.
With that scheme things are as well or badly supported as they were from
traditional inetd, hence no functionality is really lost.
2014-03-24 20:07:42 +01:00
Lennart Poettering
5f381b355a missing: define LO_FLAGS_PARTSCAN if it is missing
https://bugs.freedesktop.org/show_bug.cgi?id=76335
2014-03-19 01:10:14 +01:00
Zbigniew Jędrzejewski-Szmek
3f57309664 build-sys: bump required µhttpd version
MHD_USE_EPOLL_LINUX_ONLY, MHD_USE_DUAL_STACK are only available in
next-but-last release.
2014-03-17 01:55:48 -04:00
Zbigniew Jędrzejewski-Szmek
f12be7e8ca journal-gatewayd: check if certificate is signed by CA
If --trust=ca.crt is used, only clients presenting certificates signed
by the ca will be allowed to proceed. No hostname matching is
performed, so any client wielding a signed certificate will be
authorized.

Error functions are moved from journal-gateway to microhttp-util and
made non-static, since now they are used in two source files.
2014-03-17 01:55:48 -04:00
Zbigniew Jędrzejewski-Szmek
6031319956 build-sys: add check on gnutls 2014-03-17 01:55:48 -04:00
Lennart Poettering
6bf6f402b6 build-sys: prepare release 211 2014-03-11 20:25:00 +01:00
Samuli Suominen
2d0efdf1af build-sys: Find the tools for users with no /sbin:/usr/sbin in PATH since some systems still make the distiction between bin and sbin. 2014-03-10 22:36:17 +01:00
Lennart Poettering
1c231f5648 logind: make $XDG_RUNTIME_DIR a per-user tmpfs
This way each user allocates from his own pool, with its own size limit.

This puts the size limit by default to 10% of the physical RAM size but
makes it configurable in logind.conf.
2014-03-04 20:02:50 +01:00
Lennart Poettering
62ca29b81b build-sys: bump revisions and version 2014-02-24 19:25:00 +01:00
Mike Gilbert
4ca39b280f configure: Do not require xsltproc for installation of man pages
The release tarballs ship with pre-generated man pages, so we do not
need xsltproc for a typical end-user build.

Developers will probably have xsltproc anyway, but if not they will now
encounter a build-time failure instead of an error in configure.
2014-02-24 00:20:25 -05:00
Jason A. Donenfeld
7a243b2204 configure: show if networkd is enabled in status 2014-02-21 09:36:04 -05:00
Michael Scherer
eef65bf3ee core: Add AppArmor profile switching
This permit to switch to a specific apparmor profile when starting a daemon. This
will result in a non operation if apparmor is disabled.
It also add a new build requirement on libapparmor for using this feature.
2014-02-21 03:44:20 +01:00
Lennart Poettering
fdc8509fb6 build-sys: don't use -Wcast-align anymore
We do a lot of these casts, and they are all OK, so let's get rid of the
warning, to make things quieter.

http://lists.freedesktop.org/archives/systemd-devel/2014-February/017174.html
2014-02-21 03:15:52 +01:00
Holger Schurig
3b79431414 build-sys: Add setns() functions if not in the C library.
Debian Stable is still using glibc 2.13, which doesn't provide the setns().
So we detect this and provide a tiny wrapper that issues the setns syscall
towards the kernel.
2014-02-21 03:06:29 +01:00
Lennart Poettering
e2044076bf build-sys: bump release in preparation for release 2014-02-19 21:03:55 +01:00
Lennart Poettering
6a6751fe24 core: warn when unit files with unsupported options are parsed 2014-02-17 17:49:09 +01:00
Lennart Poettering
17df7223be core: rework syscall filter
- Allow configuration of an errno error to return from blacklisted
  syscalls, instead of immediately terminating a process.

- Fix parsing logic when libseccomp support is turned off

- Only keep the actual syscall set in the ExecContext, and generate the
  string version only on demand.
2014-02-12 18:30:36 +01:00
Ronny Chevalier
c0467cf387 syscallfilter: port to libseccomp 2014-02-12 18:30:36 +01:00
Zbigniew Jędrzejewski-Szmek
32dcef3ab1 build-sys: make lxml required when generating indices
Since the manpage indices generated without lxml would be missing some
parts, it doesn't make sense to keep lxml optional anymore.
2014-02-12 03:04:57 -05:00
Zbigniew Jędrzejewski-Szmek
53e856e16a build-sys: create "compatibility libraries" section
Compat stuff is moved to src/compat-libs/.
Warnings are issued when programs are linked with the deprecated library.
2014-01-25 18:10:08 -05:00
Zbigniew Jędrzejewski-Szmek
39c4ead232 build-sys: default to gold linker
gold doesn't exhibit the problems with linking of compatibility
libraries.

It is also slightly faster:

make clean && make -j5   bfd       gold

real                   34.885s     33.707s
user                   34.486s     32.189s
sys                    9.929s      10.845s

real                   35.128s     33.508s
user                   34.660s     31.858s
sys                    10.798s     10.341s

real                   35.405s     33.748s
user                   34.765s     32.384s
sys                    11.635s     10.998s

real                   35.250s     33.795s
user                   34.704s     32.253s
sys                    11.220s     11.469s

touch src/libsystemd/sd-bus.c && make -j5
                        bfd        gold

real                   10.224s      9.030s
user                   11.664s      9.877s
sys                    3.431s       2.878s

real                   10.021s      9.165s
user                   11.526s      9.990s
sys                    3.061s       3.015s

real                   10.233s      8.961s
user                   11.657s      9.973s
sys                    3.467s       2.202s

real                   10.160s      9.086s
user                   11.637s      9.950s
sys                    3.188s       2.859s
2014-01-25 18:10:08 -05:00
Chengwei Yang
8114dedc59 build-sys: fix --enable-dbus
The incorrect shell code of AS_IF always get false value, so it always
build without dbus though build with "--enable-dbus" explicitely.
2014-01-16 00:16:02 -05:00
Dave Reisner
146ccaafd5 configure: use POSIX conformant syntax for test
In shells like bash, == and = are equivalent in test contexts. In POSIX
compliant shells, == isn't a valid operator.
2014-01-05 11:57:05 -05:00
Zbigniew Jędrzejewski-Szmek
ac6b760cee build-sys: add --disable-dbus autoconf option 2014-01-02 19:45:47 -05:00
Zbigniew Jędrzejewski-Szmek
ccd06097c7 Use format patterns for usec_t, pid_t, nsec_t, usec_t
It is nicer to predefine patterns using configure time check instead of
using casts everywhere.

Since we do not need to use any flags, include "%" in the format instead
of excluding it like PRI* macros.
2014-01-02 19:45:47 -05:00
Zbigniew Jędrzejewski-Szmek
4acbce7979 build-sys: fix generation of user@.service 2013-12-27 12:12:41 -05:00
Lennart Poettering
25ad866460 build-sys: the pure/const warning options are probably too much as default, but let's make it available via "autogen.sh a" 2013-12-25 19:00:38 +01:00
Lennart Poettering
693eb9a2d4 bus: rename message "serial" to "cookie"
Even if the lower-leveld dbus1 protocol calls it "serial", let's expose
the word "cookie" for this instead, as this is what kdbus uses and since
it doesn't imply monotonicity the same way "serial" does.
2013-12-25 18:04:04 +01:00
Lennart Poettering
cd49e2f664 build-sys: build bus-driverd if kdbus support is enabled 2013-12-17 01:36:59 +01:00
Daniel Mack
294c866023 Add bus-driverd
systemd-bus-driverd is a small daemon that connects to kdbus and
implements the org.freedesktop.DBus interface. IOW, it provides the bus
functions  traditionally taken care for by dbus-daemon.

Calls are proxied to kdbus, either via libsystemd-bus (were applicable)
or with the open-coded use of ioctl().

Note that the implementation is not yet finished as the functions to
add and remove matches and to start services by name are still missing.
2013-12-16 22:34:48 +01:00
Lennart Poettering
213298fb82 build-sys: warn if builds are not byte-by-byte reproducible due to usage of __DATE__ and suchlike 2013-12-16 04:58:20 +01:00
Lukasz Skalski
c97a6dbcf1 build-sys: fix help text for --enable-kdbus 2013-12-13 15:50:38 +01:00
Lennart Poettering
626851be97 bus: do kdbus only if this is enabled on the configure switch
Since we want to retain the ability to break kernel ←→ userspace ABI
after the next release, let's not make use by default of kdbus, so that
people with future kernels will not suddenly break with current systemd
versions.

kdbus support is left in all builds but must now be explicitly requested
at runtime (for example via setting $DBUS_SESSION_BUS). Via a configure
switch the old behaviour can be restored. In fact, we change autogen.sh
to do this, so that git builds (which run autogen.sh) get kdbus by
default, but tarball builds (which ue the configure defaults) do not get
it, and hence this stays out of the distros by default.
2013-11-30 20:18:48 +01:00
Lennart Poettering
03930e4863 Revert "build-sys: avoid warnings from assert_cc"
This reverts commit f1a1264d13.

We can turn this off with a pragma only on old gcc. Newer gcc doesn't
need this, so let's not turn this off for everybody.
2013-11-29 13:34:55 +01:00
Zbigniew Jędrzejewski-Szmek
0b340bcf0e build-sys: use C99
We already use various constructs, so let's just admit that we're using C99.
2013-11-28 14:37:11 -05:00
Zbigniew Jędrzejewski-Szmek
bd441fa27a build-sys: make multi-seat-x optional
At some point it should become disabled by default.

http://lists.freedesktop.org/archives/systemd-devel/2013-November/014869.html
2013-11-28 14:37:11 -05:00
Zbigniew Jędrzejewski-Szmek
f1a1264d13 build-sys: avoid warnings from assert_cc 2013-11-28 03:43:07 -05:00
Kay Sievers
b850b06e1e build-sys: enable gcc Link Time Optimization when optimization is enabled 2013-11-21 21:56:18 +01:00
Lennart Poettering
54b434b1b5 valgrind: make running PID 1 in valgrind useful
Since valgrind only generates useful output on exit() (rather than
exec()) we need to explicitly exit when valgrind is detected.
2013-11-20 22:12:47 +01:00
Umut Tezduyar Lindskog
6aad7f2cd7 build: Allow disabling maintainer mode
This allows make rules for generated build files (i.e.  configure,
Makefile.in, ... ) to be skipped.  This is useful when
the source is stored without timestamps (for example in CVS or GIT).

When the build rules trigger to regenerate the build files, it tries to
use the same autotools version (currently 1.14) as was originally used
for the release.  Since many of our build machines run Debian Squeeze,
they only have autotools 1.11 available and the build fails.

Currently, we have to work around this by touching all the generated
files before building to avoid triggering the make rule. With this
patch, we would be able to just run configure with
--disable-maintainer-mode instead.  The patch sets the default to enable
to not change the default behavior.

Ref: http://git.kernel.org/cgit/utils/kernel/kmod/kmod.git/commit/
     ?id=f5cc26c77d2f332a9b40f51f0ec72e95711edf1e
2013-11-14 00:09:45 +10:00
Colin Walters
3c9317d2d9 build-sys: Add --disable-networkd option
For GNOME (Continuous), we are unlikely to require or want
systemd-networkd in the near term future; all of the tools and code
are targeting NetworkManager.

The long term story is still an open question of course, but for now,
there's no reason for gnome-continuous to build or ship this.
2013-11-12 22:38:08 +01:00
Kay Sievers
2270309471 bus: test-bus-marshal - make dbus-1 optional 2013-11-06 02:03:05 +01:00
Kay Sievers
03a170c03c build-sys: disable _FORTIFY_SOURCE for -Og builds for now
Older gcc versions throw things like:

  In file included from /usr/include/fcntl.h:302:0,
                 from ../src/core/execute.c:25:
In function 'open',
    inlined from 'open_null_as' at ../src/core/execute.c:196:12:
/usr/include/bits/fcntl2.h:50:24: error: call to '__open_missing_mode'
  declared with attribute error: open with O_CREAT in second argument needs 3 arguments
    __open_missing_mode ();
2013-10-21 18:29:53 +02:00
Kay Sievers
ca2871d9b0 bus: remove static introspection file export 2013-10-21 00:41:26 +02:00
David Strauss
70d8320978 Fix kmod error message to have correct version requirement 2013-10-17 13:19:29 -07:00
Tom Gundersen
a18535d9e1 static-nodes: don't call mkdir
This is no longer necessary with kmod-15. Bump the requirement.
2013-10-17 19:53:44 +02:00
Lennart Poettering
3990f24765 rfkill: add new rfkill tool to save/restore rfkill state across reboots
This works analogous to the existing backlight and random seed services
2013-10-14 04:31:49 +02:00
Auke Kok
8b197c3a8a Run with a custom SMACK domain (label).
Allows the systemd --system process to change its current
SMACK label to a predefined custom label (usually "system")
at boot time.

This is needed to have a few system-generated folders and
sockets automatically be created with the right SMACK
label. Without that, processes either cannot communicate with
systemd or systemd fails to perform some actions.
2013-10-07 10:23:20 -07:00
Lennart Poettering
cd4010b373 build-ss: prepare new release 2013-10-02 03:02:25 +02:00
Lennart Poettering
a3b6fafed4 hashmap: randomize hash functions a bit 2013-10-01 23:11:49 +02:00
Lennart Poettering
abaaabf40a build-sys: don't fallback to upstart defaults 2013-10-01 03:23:14 +02:00
Zbigniew Jędrzejewski-Szmek
f2ec0646ab build-sys: restore detection of sphinx 2013-09-27 08:24:08 +02:00
Zbigniew Jędrzejewski-Szmek
732bfe09ae build-sys: add ./configure --enable-address-sanitizer
Enabling address sanitizer seems like a useful thing, but is quite
tricky. Proper flags have to be passed to CPPFLAGS, CFLAGS and
LDFLAGS, but passing them on the commandline doesn't work because
we tests are done with ld directly, and not with libtool like in
real linking. We might want to fix this, but let's add a handy
way to enable address checking anyway.
2013-09-26 11:12:04 +02:00
Zbigniew Jędrzejewski-Szmek
1864b0e395 build-sys: don't build python modules after --without-python
The modules should build just fine, but AM_PATH_PYTHON sets
pkgpyexecdir for us. Without that variable we don't know where to
install modules. In addition libtool tries an empty rpath, breaking
the build. Those issues could be fixed or worked around, but we
probably don't have many people who want to avoid using python binary,
but want to compile python modules. If such uses ever come up, this
issue should be revisited.
2013-09-19 14:58:21 -04:00
Lennart Poettering
4f0be680b5 build-sys: prepare 207 2013-09-13 02:12:16 +02:00
Zbigniew Jędrzejewski-Szmek
5c390a4ae0 Add pam configuration to allow user sessions to work out of the box
systemd-logind will start user@.service. user@.service unit uses
PAM with service name 'systemd-user' to perform account and session
managment tasks. Previously, the name was 'systemd-shared', it is
now changed to 'systemd-user'.

Most PAM installations use one common setup for different callers.
Based on a quick poll, distributions fall into two camps: those that
have system-auth (Redhat, Fedora, CentOS, Arch, Gentoo, Mageia,
Mandriva), and those that have common-auth (Debian, Ubuntu, OpenSUSE).
Distributions that have system-auth have just one configuration file
that contains auth, password, account, and session blocks, and
distributions that have common-auth also have common-session,
common-password, and common-account. It is thus impossible to use one
configuration file which would work for everybody. systemd-user now
refers to system-auth, because it seems that the approach with one
file is more popular and also easier, so let's follow that.
2013-09-11 15:35:06 -04:00
Michael Marineau
4b357e1587 build-sys: Add configure check for linux/btrfs.h
btrfs.h was added to uapi in Linux 3.9. To fix building with older
header versions this adds a configure check for the header and re-adds
btrfs definitions to missing.h which was removed in bed2e820 along with
two other ioctls used by gpt-auto-generator.

[ Apparently, btrfs.h was only added recently:
  http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=55e301fd57a6239ec14b91a1cf2e70b3dd135194
  let's re-add it for now -- kay ]
2013-08-16 23:29:41 +02:00
Lennart Poettering
3731acf1ac backlight: add minimal tool to save/restore screen brightness across reboots
As many laptops don't save/restore screen brightness across reboots,
let's do this in systemd with a minimal tool, that restores the
brightness as early as possible, and saves it as late as possible. This
will cover consoles and graphical logins, but graphical desktops should
do their own per-user stuff probably.

This only touches firmware brightness controls for now.
2013-08-14 01:57:02 +02:00
William Giokas
4f87c47b35 zsh_completion: fix zsh completion installation
Moved zsh shell completion to shell-completion/zsh/_systemd for
automake's sake. Also allow users to specify where the files should go
with::

  ./configure --with-zshcompletiondir=/path/to/some/where

and by default going to `$datadir/zsh/site-functions`
2013-08-02 10:43:08 -04:00
Kay Sievers
7959ff9914 build-sys: support old glibc versions without clock_gettime() 2013-07-30 03:46:14 +02:00
Shawn Landden
fba1ea06bb build: do not link everything with -lrt (and therefore -pthread) 2013-07-30 02:35:36 +02:00
Zbigniew Jędrzejewski-Szmek
a6c0b31d50 build-sys: use pkg-config for python compilation flags
Python 2.7, and 3.2 and higher support querying compilation
flags through pkg-config. This makes python support follow
rules similar to various other optional compilation-time
libraries. New flags are called PYTHON_DEVEL_CFLAGS and
PYTHON_DEVEL_LIBS, because PYTHON (without _DEVEL), is
already used for the python binary name, and things would
be confusing if the same prefix was used for two things.
configure has --disable-python-devel to disable python modules.

One advantage is that CFLAGS for modules gets smaller:
- -I/usr/include/python3.3m -I/usr/include/python3.3m -Wno-unused-result -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv
+ -I/usr/include/python3.3m
as does LIBS:
- -lpthread -ldl -lutil -lm -lpython3.3m
+ -lpython3.3m

Support for Python 2.6 is removed, but can be easily
restored by using
PYTHON_DEVEL_CFLAGS="$(python2.6-config --cflags)",
etc., as ./configure parameters.

https://bugs.freedesktop.org/show_bug.cgi?id=57800
2013-07-26 11:28:15 -04:00
Lennart Poettering
251cc81942 build-sys: prepare 206 2013-07-23 01:32:36 +02:00
Zbigniew Jędrzejewski-Szmek
1070f974f7 systemd-python: fix iteration
Back in 6a58bf4135 raising stop iteration was removed from the C
code, but wasn't added in the Python counterpart.
2013-07-17 23:40:42 -04:00
Kay Sievers
ddc77f6224 switch from udev keymaps to hwdb 2013-07-16 16:22:01 +02:00
Zbigniew Jędrzejewski-Szmek
7801356442 build-sys: discover the path to kexec during build time
https://bugs.freedesktop.org/show_bug.cgi?id=55248
2013-07-15 23:20:56 -04:00
Jan Janssen
8cf3ca8068 cryptsetup: Add tcrypt support
Tcrypt uses a different approach to passphrases/key files. The
passphrase and all key files are incorporated into the "password"
to open the volume. So, the idea of slots that provide a way to
open the volume with different passphrases/key files that are
independent from each other like with LUKS does not apply.

Therefore, we use the key file from /etc/crypttab as the source
for the passphrase. The actual key files that are combined with
the passphrase into a password are provided as a new option in
/etc/crypttab and can be given multiple times if more than one
key file is used by a volume.
2013-07-16 01:24:31 +02:00
Thomas H.P. Andersen
6aea6d10f4 Add test coverage and generate report with lcov
Enable coverage with --enable-coverage.
"make coverage" will create the report locally,
"make coverage-sync" will upload the report to
http://www.freedesktop.org/software/systemd/coverage/.

Requires lcov version 1.10 to handle naming in systemd and to
use the --no-external option.

[zj: make the coverage at least generate something with
     separate build dir, simplify rules a bit: all errors
     are mine. ]
2013-07-13 21:56:33 -04:00
Zbigniew Jędrzejewski-Szmek
9f64229f9c Revert "build-sys: don't enable color gcc on dumb terminals"
This reverts commit cd3069559a.

Emacs compilation can be fixed by putting
(custom-set-variables
 '(compilation-environment (quote ("GCC_COLORS="))))
in ~/.emacs.
2013-07-12 13:24:06 -04:00