summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* units: bring systemd-tmpfiles-setup-dev.service closer to ↵Lennart Poettering2014-06-152-2/+4
| | | | | | | systemd-tmpfiles-setup.service Among other things, order both services relative to systemd-sysusers.service in the same direction.
* tmpfiles: create /etc/resolv.conf as link to networkd's version, if it ↵Lennart Poettering2014-06-151-0/+1
| | | | | | | doesn't exist If /etc/resolv.conf doesn't exist it's better than nothing to make it point to networkd's version.
* sysusers: order before tmpfiles which need the idsKay Sievers2014-06-141-1/+1
|
* networkd: link - flush all pending NEWLINK events before trying to matchTom Gundersen2014-06-141-10/+44
| | | | | | We could still have an old interface name and/or mac address when libudev tells us that the device is initialized, as the up-to-date info could still be on its way from the kernel.
* Revert "Revert "networkd: netdev - set predictable mac address when creating ↵Tom Gundersen2014-06-141-1/+73
| | | | | | | | | | | netdev"" This reverts (and rewrites) commit 7d95c772cba1836545459760273b13f2e01dd2a8. The issue blocking this feature has now been fixed in the kernel, and backported to the various stable kernels. Our netdevs will now have stable MAC addresses, even if one is not specified.
* networkd: netdev - allow setting MACAddress in .netdev filesTom Gundersen2014-06-145-2/+78
| | | | | | It may sometimes be necessary to specify the MAC address of a netdev. Let us set the correct one from the get-go, rather than having the kernel generate a random one, and then change it after.
* networkd: add assertTom Gundersen2014-06-141-0/+2
| | | | | | | It should not be possible to have a DHCP lease on a link without also having an associated network. Add assert() to avoid compiler warnings. Reported by Thomas H. P. Andersen
* networkd: link - check returned value from set_lease_poolThomas Hindoe Paaboel Andersen2014-06-131-0/+2
|
* Fix spelling mistake, scirpt --> scriptColin Ian King2014-06-131-1/+1
|
* core: don't complain at early boot if /etc/mtab is not the right symlinkLennart Poettering2014-06-131-9/+15
| | | | | When we boot up with an empty /etc it's ok if the symlink doesn't exist. We will create it later with tmpfiles.
* tmpfiles: always use relative symlinks from tmpfiles snippetsLennart Poettering2014-06-131-1/+1
|
* os-release: define /usr/lib/os-release as fallback for /etc/os-releaseLennart Poettering2014-06-1311-26/+76
| | | | | | | | | | | | | | | | The file should have been in /usr/lib/ in the first place, since it describes the OS container in /usr (and not the configuration in /etc), hence, let's support os-release files in /usr/lib as fallback if no version in /etc exists, following the usual override logic. A prior commit already enabled tmpfiles to create /etc/os-release as a symlink to /usr/lib/os-release should it be missing, thus providing nice compatibility with applications only checking in /etc. While it's probably a good idea if all apps check both locations via a fallback logic, it is only necessary in the early boot process, as long as the /etc/os-release symlink has not been restored, in case we boot with an empty /etc.
* sysusers: always treat ENOENT as entry-not-found when doing NSS callsLennart Poettering2014-06-131-7/+7
| | | | | | | For most NSS calls it is documented that they return NULL + errno=0 when an entry is not found. However, in reality it appears to be common to return NULL + errno=ENOENT, instead. Handle that correctly, and don't consider ENOENT a systematic error.
* rpm: add RPM macros to apply sysusers, sysctl, and binfmt drop-insLennart Poettering2014-06-133-2/+16
| | | | | | | | | | | | With this in place RPMs can make sure that whatever they drop in is immeidately applied, and not delayed until next reboot. This also moves systemd-sysusers back to /usr/bin, since hardcoding the path to /usr/lib in the macros would mean compatibility breaks in future, should we turn sysusers into a command that is actually OK for people to call directly. And given that that is quite likely to happen (since it is useful to prepare images with its --root= switch), let's just prepare for it.
* rpm: don't hardcode the binary paths in the macros, rely on $PATHLennart Poettering2014-06-131-10/+10
| | | | | | this gives us a little bit more freedom to move things around later on, as we don't hardcode the systemd paths in old RPMs that shall work with new systemds.
* sd-dhcp-server: test - skip when lacking permsTom Gundersen2014-06-131-3/+15
|
* install: fix invalid free() in unit_file_mask()Andreas Henriksson2014-06-131-1/+1
| | | | | | | | int unit_file_mask(...) in ./src/shared/install.c calls get_config_path(...) which can in 4 error cases return without setting "ret", and thus "prefix" can be uninitialized when unit_file_mask(...) finishes (which it does directly after the error is returned from get_config_path(...)).
* udev: fix invalid free() in enable_name_policy()Andreas Henriksson2014-06-131-1/+1
| | | | | | | | static bool enable_name_policy(...) in ./src/udev/net/link-config.c calls proc_cmdline(...) to get "line" initialized, but proc_cmdline(...) does not guarantee that atleast when both conditions (detect_container(NULL) > 0) and read_full_file(...) returned < 0.
* core: fix invalid free() in killall()Andreas Henriksson2014-06-131-1/+1
| | | | | | | | | | static int killall(....) in ./src/core/killall.c tries to get "s" initialized by calling get_process_comm(...) which calls read_one_line_file(...) which if it fails will mean it is left uninitialized. It is then used in argument to strna(s) call where it is dereferenced(!), in addition to nothing else initializing it before the scope it is in finishes.
* sd-dhcp-client: fix invalid free() in client_send_request()Andreas Henriksson2014-06-131-1/+1
| | | | | | | | static int client_send_request(...) in ./src/libsystemd-network/sd-dhcp-client.c tries to initialize "request" by calling client_message_init(...), which has atleast 5 error cases where it can return without that happening. This leads to the function finishing without "request" being initialized.
* networkd: link - left-align debug messagesTom Gundersen2014-06-133-25/+25
| | | | | Still add some whitespace betwen ifname and the message to get the messages aligned (as I find it easier to spot specific messages this way).
* networkd: add dhcp server supportTom Gundersen2014-06-133-14/+93
| | | | | | | | | | | | | | | | | | | | | | | | | When enabled in [Network] it will set up a dhcp server on the interface, listening on one of its statically configured IPv4 addresses and with a fixed size pool of leases determined from it. Example: [Match] Name=ve-arch-tree [Network] Address=192.168.12.5/24 DHCPServer=yes [Route] Gateway=192.168.12.5 Destination=192.168.12.0/24 In this case we will configure ve-arch-tree with the address 192.168.12.5 and hand out addresses in the range 192.168.12.6 - 192.168.12.38. In the future, we should (as suggested by Lennart) introduce a syntax to pick the server address automatically.
* sd-dhcp-server: add RELEASE supportTom Gundersen2014-06-131-1/+26
|
* sd-dhcp-server: add dummy DECLINE supportTom Gundersen2014-06-131-0/+9
|
* sd-dhcp-server: track bound leasesTom Gundersen2014-06-133-14/+206
| | | | | Make sure we don't hand out the same IP twice. We still don't handle lease expiry.
* sd-dhcp-server: add support for clients requesting lease lifetimeTom Gundersen2014-06-132-4/+11
|
* sd-dhcp-server: add basic NAK supportTom Gundersen2014-06-132-7/+36
|
* sd-dhcp-server: add basic REQUEST/ACK supportTom Gundersen2014-06-134-5/+172
|
* sd-dhcp-server: add basic DISCOVER/OFFER supportTom Gundersen2014-06-132-9/+87
|
* sd-dhcp-server: add support for sending messagesTom Gundersen2014-06-132-0/+153
|
* sd-dhcp-server: add support for setting the server addressTom Gundersen2014-06-134-0/+32
|
* sd-dhcp-server: bind to raw socket for sendingTom Gundersen2014-06-132-0/+12
| | | | | We would like to use the UDP socket, but we cannot as we need to specify the MAC address manually.
* sd-dhcp-server: add basic message parsingTom Gundersen2014-06-132-2/+101
| | | | | Parse the maximum message size the client can accept and the client id, falling back to sane defaults if they are not set.
* sd-dhcp-server: add basic message handling and verificationTom Gundersen2014-06-133-4/+88
|
* sd-dhcp-server: bind to a given interfaceTom Gundersen2014-06-134-3/+26
| | | | | We will (at least at first), restrict our focus to running the server on at most one interface.
* sd-dhcp-server: add basic functionality for starting/stopping serverTom Gundersen2014-06-134-0/+100
| | | | Bind to UDP socket and listen for messages, discarding anything we receive.
* sd-dhcp-server: add basic functionality for creating/destroying server instanceTom Gundersen2014-06-137-0/+249
|
* dhcp-network: allow UDP socket to listen on any addressTom Gundersen2014-06-131-2/+13
| | | | | | For this to work nicely we need to use REUSEADDR so that more than one socket can be open at the same time. Also, we request the ifindex to be appended to incoming messages, so we know whence it came.
* tmpfiles: add minimal tmpfiles snippet to rebuild the most essential stuff ↵Lennart Poettering2014-06-132-1/+14
| | | | from /etc
* units: rebuild /etc/passwd, the udev hwdb and the journal catalog files on bootLennart Poettering2014-06-139-9/+93
| | | | | Only when necessary of course, nicely guarded with the new ConditionNeedsUpdate= condition we added.
* core: add new ConditionNeedsUpdate= unit conditionLennart Poettering2014-06-135-0/+38
| | | | | | | | | | | | | | | | | | | This new condition allows checking whether /etc or /var are out-of-date relative to /usr. This is the counterpart for the update flag managed by systemd-update-done.service. Services that want to be started once after /usr got updated should use: [Unit] ConditionNeedsUpdate=/etc Before=systemd-update-done.service This makes sure that they are only run if /etc is out-of-date relative to /usr. And that it will be executed after systemd-update-done.service which is responsible for marking /etc up-to-date relative to the current /usr. ConditionNeedsUpdate= will also checks whether /etc is actually writable, and not trigger if it isn't, since no update is possible then.
* update-done: add minimal tool to manage system updates for /etc and /var, if ↵Lennart Poettering2014-06-136-4/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | /usr has changed In order to support offline updates to /usr, we need to be able to run certain tasks on next boot-up to bring /etc and /var in line with the updated /usr. Hence, let's devise a mechanism how we can detect whether /etc or /var are not up-to-date with /usr anymore: we keep "touch files" in /etc/.updated and /var/.updated that are mtime-compared with /usr. This means: Whenever the vendor OS tree in /usr is updated, and any services that shall be executed at next boot shall be triggered, it is sufficient to update the mtime of /usr itself. At next boot, if /etc/.updated and/or /var/.updated is older than than /usr (or missing), we know we have to run the update tools once. After that is completed we need to update the mtime of these files to the one of /usr, to keep track that we made the necessary updates, and won't repeat them on next reboot. A subsequent commit adds a new ConditionNeedsUpdate= condition that allows checking on boot whether /etc or /var are outdated and need updating. This is an early step to allow booting up with an empty /etc, with automatic rebuilding of the necessary cache files or user databases therein, as well as supporting later updates of /usr that then propagate to /etc and /var again.
* condition: minor modernizationsLennart Poettering2014-06-132-10/+5
|
* units: don't conditionalize sysctl serviceLennart Poettering2014-06-131-5/+0
| | | | | | We install two sysctl snippets ourselves, hence the condition will always trigger, so no point in tryng to optimize things with this, it just will make things slower, if anything.
* units: remove conditions from systemd-tmpfiles-setupLennart Poettering2014-06-132-11/+0
| | | | | | | | There's no point in conditionalizing systemd-tmpfiles at boot, since we ship tmpfiles snippets ourselves, hence they will always trigger anyway. Also, there's no reason to pull in local-fs.target from the service, hence drop that.
* system-update-generator: modernizationsLennart Poettering2014-06-131-7/+3
|
* sysusers: hide generate .conf fileLennart Poettering2014-06-131-0/+1
|
* update TODOLennart Poettering2014-06-131-4/+0
|
* sysusers: move systemd-sysusers to libexec for nowLennart Poettering2014-06-131-1/+1
|
* tmpfiles: skip mknod() on -EPERM (device cgroup)Kay Sievers2014-06-131-3/+11
|