Re: [systemd-devel] experiments with 'minimal build'
Alison Chaiken píše v St 18. 03. 2015 v 00:07 -0700: After reading about the 'minimal build' on the systemd wiki, I decided to experiment. 0. WIth basically all options turned on, in a Fedora 21 Qemu, systemd used about 300 MB of memory according to 'sudo memstat -p 1'. 1. With ./configure --disable-gtk-doc --disable-seccomp --disable-selinux --disable-apparmor --disable-xz --disable-zlib --disable-pam --disable-acl --disable-smack --disable-gcrypt --disable-audit --disable-elfutils --disable-libcryptsetup --disable-qrencode --disable-microhttpd --disable-gnutls --disable-libcurl --disable-libidn --disable-quotacheck --disable-vconsole --disable-logind --disable-machined --disable-importd --disable-hostnamed --disable-timedated --disable-localed --disable-polkit --disable-resolved --disable-networkd --disable-efi --disable-manpages --disable-hibernate --disable-tests [achaiken@localhost systemd (master)]$ ./systemd --version systemd 219 -PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL -XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN In this case, 'memstat -p 1' says systemd uses about 119 MB of memory. 2. Reducing even further, ./configure --disable-gtk-doc --disable-seccomp --disable-selinux --disable-apparmor --disable-xz --disable-zlib --disable-pam --disable-acl --disable-smack --disable-gcrypt --disable-audit --disable-elfutils --disable-libcryptsetup --disable-qrencode --disable-microhttpd --disable-gnutls --disable-libcurl --disable-libidn --disable-quotacheck --disable-vconsole --disable-logind --disable-machined --disable-importd --disable-hostnamed --disable-timedated --disable-localed --disable-polkit --disable-resolved --disable-networkd --disable-efi --disable-manpages --disable-hibernate --disable-tests --disable-nls --disable-python-devel --disable-utmp --disable-xkbcommon --disable-ima --disable-blkid --disable-binfmt --disable-tmpfiles --disable-sysusers --disable-firstboot --disable-randomseed --disable-backlight --disable-rfkill --disable-timesyncd --disable-coredump --disable-myhostname [achaiken@localhost systemd (master)]$ ./systemd --version systemd 219 -PAM -AUDIT -SELINUX -IMA -APPARMOR -SMACK +SYSVINIT -UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL -XZ -LZ4 -SECCOMP -BLKID -ELFUTILS +KMOD -IDN Now Qemu doesn't boot because Dependency failed for /boot Dependency failed for /home. From emergency shell, 'journalctl -p err' shows 5 udev failures and 8 systemd ones. /boot and /home are empty because fedora-home and the UUID-labelled object are absent in /dev/mapper. The last successful target is Swap. Hypothesis: the failure happened because I turned BLKID off. Does that sound right? Does systemd not work without BLKID? Would it work with BLKID off it it hadn't previously been on at installation? You can run you system without blkid, just change fstab to use /dev/sd* instead of UUIDs. Obviously this was a sandbox experiment and nothing valuable was lost, but nonetheless I'm curious. I assume that turning off KMOD and perhaps SYSVINIT isn't safe either? Thanks for any suggestions, Alison ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [RFC PATCH] udev: add an abs-override builtin to override EV_ABS data
On Thu, Mar 19, 2015 at 01:54:46PM +0100, David Herrmann wrote: Hi On Thu, Mar 19, 2015 at 10:52 AM, Peter Hutterer peter.hutte...@who-t.net wrote: This builtin parses properties in the form EV_ABS_OVERRIDE_00=min:max:res:fuzz:flat The concept sounds good. hwdb is definitely the place to put this, rather than static kernel fixups. and applies them to the kernel device. Future processes that open that device will see the updated EV_ABS range. This is particularly useful for touchpads that don't provide a resolution in the kernel driver but can be fixed up through hwdb entries (e.g. bcm5974). All values in the property are optional, e.g. a string of ::45 is valid to set the resolution to 45. The order intentionally orders resolution before fuzz and flat despite it being the last element in the absinfo struct. The use-case for setting fuzz/flat is almost non-existent, resolution is probably the most common case we'll need. If a field is left empty, should it take the kernel-provided values? This way, you could just order it logically and leave stuff you don't wanna change empty. yeah, it does that anyway (which is why the parser looks a bit weird), but the basic principle is: fetch absinfo from device, update any value given in the property, reload absinfo to device. Any missing value will simply be ignored, so the example of ::45 really only updates the resolution and leaves the rest as-is. if we leave the order as in the absinfo, a resolution update would be 45. given that I don't expect the fuzz/flat to ever be updated that only adds a source for bugs (and I suspect most ppl would think of an axis in terms of min/max/resolution anyway). --- This is just an RFC for now, a couple of questions remain: * we need this for touchpads, but this seems something that could be more generic and have it's own ruleset, possibly depending on ID_INPUT_TOUCH* or so * input_id is already called and opens the device, we could merge this in there Don't get confused by the name of this builtin. It's legacy. We should probably also merge 'keyboard' into it. Talking about the 'keyboard' builtin: why not merge both? They serve the same purpose, fixing wrong kernel mapping/data. You could even rename the prefix to evdev ('input' is reserved..), and then put both into the same file. You could re-use the matching we have in place for keyboards. I think it would work well enough for all other input-devices, too. It uses the input-modalias, and device-name+dmi as fallback. Ok, the atkbd: is special to keyboards, but just ignore it. ack, will send the patches asap. Cheers, Peter ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
Reindl Harald h.rei...@thelounge.net schrieb: Am 19.03.2015 um 22:04 schrieb Kai Krakow: Christoph Pleger christoph.ple...@cs.tu-dortmund.de schrieb: I am experimenting a little with systemd and trying to define a new intermediate runlevel, a runlevel between basic.target and multi-user.target. This means that I want the services which are required by my new runlevel to be started after all services from basic.target have been started and to be finished before any service from multi-user.target is started. I think there is still this sysvinit-related misconception that systemd target equal sysvinit runlevels. Systemd uses automatic ordering of units through socket activation and explicitly defined dependencies (which BTW most of the time are not needed). Thus, a target just defines which set of services you want to run asap. Multiple targets can become active in parallel, and systemd will try to reach them in parallel. All dependencies will be thrown into the same soup and systemd works its way through it that is all fine but given that you don't know when a service is ready to accept connections and the whole world don't turn around systemd it is a legit need to control ordering sometimes strictly Well I don't see where the conflict is. Double-forking services should probably just not return to the caller until they are ready to accept connections. This is why you should design your service units for systemd to not fork but start the process in foreground (most services have a cmdline option for that since years). That is a clear signal for systemd that the service is ready (other signals are the appearence of a PID file for forking processes, but that is not recommended). Forking or double forking only gets in the way for that and is a design from sysvinit days to actually speedup boot (which you state should not be the priority, and I agree with that) and/or decouple the console so the process does not become killed by the HUP signal, or can setuid/setgid. If you don't want to trust some of those security measures to systemd (or start-stop-daemon in openrc, or whatever) then it is probably your task to ensure that the process is ready when the parent returns to the caller after forking. This is something often done wrong even for sysvinit - otherwise I cannot explain why we need sleep 5 or while try-something; do sleep 1; done in init scripts. And yes, I added such fixes myself to init scripts in the past. And not needing it with systemd has nothing to do with performance but with reliability, altough I appreciate the performance benefit of it and it also looks much cleaner without hacks. This goes along with clever tricks of init script maintainers who added to the process spawning to speed up things which I had to remove sometimes to get a much slower but at least reliable service startup. boot performance is not the only important thing - better said on servers it don't matter that much given you don't boot the machine all day long - relieable boot in every context is much more important while claiming everybody does soemthing wrong and systemd is right with it's assumptions don't help much You cannot simply say boot performance is not important for servers. I actually would easier accept boot performance is not important for desktops because we have hibernate/suspend/sleep - desktops don't really need to reboot except for updates. With modern servers which offer UEFI boot, POST time can be reduced to seconds when we had minutes sometimes in legacy BIOS. So, with the arrival of such servers we also have the need for fast boots - because service downtime can be a cost factor. In that regard, I cannot agree with you although I think that your argument is true for some, maybe most, scenarios. But let's also elaborate on reliable boot: This is, what systemd actually offers and even can guarantee, in a much better way traditional sysvinit could ever do. It provides well defined targets telling me if a set of services is up (sysvinit doesn't). It provides supervising, and it provides socket activation with automatic blocking. For services designed to support systemd (and I don't think that is such a big deal for most services), you could even restart services without service interruption because socket activation can guaratee uninterrupted (though delayed) service provision. You may argue there are supervising managers like supervise, runit, etc. But first most of them cannot use socket activation and thus do not give the same guarantees, and if they do, they need to use the same or very similar modifications to your service as they need to use for supporting systemd. And after all one can still argue that using facilities like supervise is no longer traditional sysvinit - so where's the point? Noone claims that everyone is doing it wrong, neither that systemd is the only one doing it right. Everything is fine with traditional
Re: [systemd-devel] [PATCH] hwdb: ship ids-update.pl sdio.ids in the release tarballs.
On Tue, Mar 17, 2015 at 08:26:28AM -0700, Marcel Holtmann wrote: Hi Dimitri, On 16 March 2015 at 23:15, Marcel Holtmann mar...@holtmann.org wrote: Hi Dimitri, This makes it easier to apply stable branch patches on top of the release tarball. --- Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 856accb..0ed35ac 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3877,7 +3877,9 @@ dist_udevhwdb_DATA = \ hwdb/70-touchpad.hwdb EXTRA_DIST += \ - units/systemd-hwdb-update.service.in + units/systemd-hwdb-update.service.in \ + hwdb/ids-update.pl \ + hwdb/sdio.ids I do not think that these files belong in the tarball. Especially the sdio.ids is not something that should be in the tarball. If it is missing locally, a script can always download it rom systemd.git tree. That is where the source is for these and not the tarball. If you want to apply patches from git, then you can always tell git to exclude these files and it will happily apply the rest of the patch. So I do not see a good enough reason to do this. I should be able to regenerate generated copies of code from things included in the tarball without network or git... I need this precisely because stable patches are patching sdio.ids... which is (a) missing (b) ids-update.pl is missing (c) the files that are generated with ab are not updated (a) and (b) can be solved by telling 'patch' or 'git' to not apply hunks to those files. (c) sounds wrong to me. Whenever we change ids-update.pl and friends, we also run them and commit the results to -git. So either you apply the wrong patch (the ids-update.pl-path instead of the patch that commits the results), or your haven't been looking closely enough. I don't see why a distribution would be interested in fixes for ids-update.pl? It should be ignored and never marked for back-porting. Only if at the same run we also update the generated files, those should be picked up. Looking at stable branch: http://cgit.freedesktop.org/systemd/systemd-stable/log/hwdb?h=v219-stable sdio.ids was changed in http://cgit.freedesktop.org/systemd/systemd-stable/commit/hwdb?h=v219-stableid=c10e229f8222b92117ba38045ddb3e4d7951244a but updated in a later commit http://cgit.freedesktop.org/systemd/systemd-stable/commit/hwdb?h=v219-stableid=9ac622b00ca23f9d01e0ff0c944130be8dc3a0e9 So they do look up to date there. usb.ids does not appear to be in the source tree. To me this looks untidy, as preffered form of modification is not shipped in full neither in git, nor in the tarball. And I do need to modify them, the hwdb is too large and has too many things for my targets thus I'm looking at how to patch them out in a maintainable way. that is pretty much your problem to solve if you do not want the full database. Why is that a stable tree issue? Especially since shrinking the database has nothing to do with ids-update.pl or sdio.ids. Why not just commit ids-update.pl / sdio.ids and generate the .hwdb files on $ make dist, or at autoreconf time? Just tell patch or git to skip the hunks modifying ids-update.pl and sdio.ids. Problem solved. I'll apply the patch, but with a slightly different motivation. [L]GPL requires commercial entities distributing a modified version of the program to provide full source in the preferred form for modification, including all scripts used for building. This includes sdio.ids and ids-update.pl. We should make it easy to follow the our licensing, so we should include those files in our tarball to make it directly redistributable. Zbyszek ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] [RFC PATCH] udev: add an abs-override builtin to override EV_ABS data
This builtin parses properties in the form EV_ABS_OVERRIDE_00=min:max:res:fuzz:flat and applies them to the kernel device. Future processes that open that device will see the updated EV_ABS range. This is particularly useful for touchpads that don't provide a resolution in the kernel driver but can be fixed up through hwdb entries (e.g. bcm5974). All values in the property are optional, e.g. a string of ::45 is valid to set the resolution to 45. The order intentionally orders resolution before fuzz and flat despite it being the last element in the absinfo struct. The use-case for setting fuzz/flat is almost non-existent, resolution is probably the most common case we'll need. --- This is just an RFC for now, a couple of questions remain: * we need this for touchpads, but this seems something that could be more generic and have it's own ruleset, possibly depending on ID_INPUT_TOUCH* or so * input_id is already called and opens the device, we could merge this in there * happy to do any changes in the property format * having the axis name spelled out would be nice (EV_OVERRIDE_ABS_X) but that would be a bit of work (without using libevdev anyway) and probably not worth it. * for the apple touchpads, this should be fairly straightforward since there aren't that many of them and they have usbids. for alps, elantech we may have to resort to dmi matching. other comments welcome too. Cheers, Peter Makefile.am | 1 + hwdb/70-touchpad.hwdb| 9 +++ rules/70-touchpad.rules | 5 ++ src/udev/udev-builtin-abs-override.c | 132 +++ src/udev/udev-builtin.c | 1 + src/udev/udev.h | 2 + 6 files changed, 150 insertions(+) create mode 100644 src/udev/udev-builtin-abs-override.c diff --git a/Makefile.am b/Makefile.am index 856accb..86bf53d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3771,6 +3771,7 @@ libudev_core_la_SOURCES = \ src/udev/udev-builtin-net_setup_link.c \ src/udev/udev-builtin-path_id.c \ src/udev/udev-builtin-usb_id.c \ + src/udev/udev-builtin-abs-override.c \ src/udev/net/link-config.h \ src/udev/net/link-config.c \ src/udev/net/ethtool-util.h \ diff --git a/hwdb/70-touchpad.hwdb b/hwdb/70-touchpad.hwdb index 8a32446..2a34762 100644 --- a/hwdb/70-touchpad.hwdb +++ b/hwdb/70-touchpad.hwdb @@ -41,3 +41,12 @@ touchpad:pnpid:*LEN004a*: # Lenovo T450s touchpad:pnpid:*LEN200f*: TOUCHPAD_HAS_TRACKPOINT_BUTTONS=1 + +# Macbook5,1 (unibody), aka wellspring3 +touchpad:usb:v5acp0236: +touchpad:usb:v5acp0237: +touchpad:usb:v5acp0238: + EV_ABS_OVERRIDE_00=::92 + EV_ABS_OVERRIDE_01=::90 + EV_ABS_OVERRIDE_35=::92 + EV_ABS_OVERRIDE_36=::90 diff --git a/rules/70-touchpad.rules b/rules/70-touchpad.rules index 88e6fd2..4127cac 100644 --- a/rules/70-touchpad.rules +++ b/rules/70-touchpad.rules @@ -9,4 +9,9 @@ KERNELS==serio1, \ IMPORT{builtin}=hwdb 'touchpad:pnpid:$attr{firmware_id}:', \ GOTO=touchpad_end +KERNELS==usb, \ +IMPORT{builtin}=hwdb 'touchpad:$env{ID_BUS}:$attr{id/vendor}p$attr{id/product}:', \ +IMPORT{builtin}=abs-override, \ +GOTO=mouse_end + LABEL=touchpad_end diff --git a/src/udev/udev-builtin-abs-override.c b/src/udev/udev-builtin-abs-override.c new file mode 100644 index 000..08e8741 --- /dev/null +++ b/src/udev/udev-builtin-abs-override.c @@ -0,0 +1,132 @@ +/*** + This file is part of systemd. + + Copyright 2015 Red Hat, Inc. + + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + systemd is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with systemd; If not, see http://www.gnu.org/licenses/. +***/ + +#include udev.h +#include linux/input.h + +static int override_abs(int fd, unsigned evcode, const char *value) { +struct input_absinfo absinfo; +int rc; +char *next, *current; +int32_t val; + +rc = ioctl(fd, EVIOCGABS(evcode), absinfo); +if (rc 0) { +log_error_errno(errno, Error, unable to EVIOCABS the device); +return EXIT_FAILURE; +} + +val = strtol(value, next, 0); +if (*next *next != ':') +goto parse_error; +if (next != value) +absinfo.minimum = val; + +if (*next) { +current = ++next; +val = strtol(next, next, 0); +if (*next *next != ':') +goto parse_error; +
Re: [systemd-devel] Boot ordering
Hello, I am experimenting a little with systemd and trying to define a new intermediate runlevel, a runlevel between basic.target and multi-user.target. This means that I want the services which are required by my new runlevel to be started after all services from basic.target have been started and to be finished before any service from multi-user.target is started. There is no feasible way to do it right now. So, if the original unit file multi-user.target contains After=basic.target rescue.service rescue.target this after does not really mean anything and jobs wanted or required by multi-user.target can already be started when some jobs from basic.target have not been started??? Regards Christoph ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On Thu, Mar 19, 2015 at 1:00 PM, Christoph Pleger christoph.ple...@cs.tu-dortmund.de wrote: Hello, I am experimenting a little with systemd and trying to define a new intermediate runlevel, a runlevel between basic.target and multi-user.target. This means that I want the services which are required by my new runlevel to be started after all services from basic.target have been started and to be finished before any service from multi-user.target is started. There is no feasible way to do it right now. So, if the original unit file multi-user.target contains After=basic.target rescue.service rescue.target this after does not really mean anything and jobs wanted or required by multi-user.target can already be started when some jobs from basic.target have not been started??? After means exactly what it says - multi-user.target waits for all units listed in After line. It does not imply anything about relative ordering of those units. Unless they have other dependencies all of them will (attempted to) be started in parallel. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On 19 March 2015 at 10:00, Christoph Pleger christoph.ple...@cs.tu-dortmund.de wrote: Hello, I am experimenting a little with systemd and trying to define a new intermediate runlevel, a runlevel between basic.target and multi-user.target. This means that I want the services which are required by my new runlevel to be started after all services from basic.target have been started and to be finished before any service from multi-user.target is started. There is no feasible way to do it right now. So, if the original unit file multi-user.target contains After=basic.target rescue.service rescue.target this after does not really mean anything and jobs wanted or required by multi-user.target can already be started when some jobs from basic.target have not been started??? Correct. You can move a service to be started earlier. You cannot force move a service to be started later. E.g. if foo.service is WantedBy=multi-user.target, yet bar.service declares Wants=foo.service and bar.service is to be started e.g. for basic.target, foo.service will be already running by the time multi-user.target starts activation of its wants. (in simplified description) This is by design, and hard / non-needed to be fixed. However their might be alternative solutions to your problem. What is the the problem you are trying to solve by implementing a new 'intermediate' runlevel ? -- Regards, Dimitri. Open Source Technology Center Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] [PATCH] timedated: Add a LocalOffset property for timezone offset
This property is in usec (like the TimeUSec property) and allows retrieving the timezone offset for the machine. This is particularly usable for remote callers. --- src/timedate/timedated.c | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index ca771d5..e384b36 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -361,6 +361,22 @@ static int property_get_time( return sd_bus_message_append(reply, t, now(CLOCK_REALTIME)); } +static int property_get_local_offset( +sd_bus *bus, +const char *path, +const char *interface, +const char *property, +sd_bus_message *reply, +void *userdata, +sd_bus_error *error) +{ +struct tm *tm; +time_t dummy = 0; + +assert_se(tm = localtime(dummy)); +return sd_bus_message_append(reply, t, (uint64_t)(tm-tm_gmtoff * 100)); +} + static int property_get_ntp_sync( sd_bus *bus, const char *path, @@ -440,7 +456,8 @@ static int method_set_timezone(sd_bus *bus, sd_bus_message *m, void *userdata, s LOG_MESSAGE(Changed time zone to '%s'., c-zone), NULL); -sd_bus_emit_properties_changed(bus, /org/freedesktop/timedate1, org.freedesktop.timedate1, Timezone, NULL); +sd_bus_emit_properties_changed(bus, /org/freedesktop/timedate1, org.freedesktop.timedate1, + Timezone, LocalOffset, NULL); return sd_bus_reply_method_return(m, NULL); } @@ -666,6 +683,7 @@ static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus static const sd_bus_vtable timedate_vtable[] = { SD_BUS_VTABLE_START(0), SD_BUS_PROPERTY(Timezone, s, NULL, offsetof(Context, zone), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), +SD_BUS_PROPERTY(LocalOffset, t, property_get_local_offset, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY(LocalRTC, b, bus_property_get_bool, offsetof(Context, local_rtc), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY(CanNTP, b, bus_property_get_bool, offsetof(Context, can_ntp), 0), SD_BUS_PROPERTY(NTP, b, bus_property_get_bool, offsetof(Context, use_ntp), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), -- 2.3.3 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On 19 March 2015 at 12:09, Christoph Pleger christoph.ple...@cs.tu-dortmund.de wrote: Hello, So, if the original unit file multi-user.target contains After=basic.target rescue.service rescue.target this after does not really mean anything and jobs wanted or required by multi-user.target can already be started when some jobs from basic.target have not been started??? Correct. ... What is the the problem you are trying to solve by implementing a new 'intermediate' runlevel ? I want a program to be run at boot time without any other systemd services starting concurrently. The program needs the services from basic.target and may influence everything in multi-user.target and later targets, so I guess that between basic.target and multi-user.target is a good time for execution of the program. I hoped that this can be achieved by simply defining a new target, setting after basic.target dependencies for it and changing the dependencies of multi-user.target from basic.target to my new target. This would not require me too know anything about the specific services in basic.target and multi-user.target . Sounds like you want to create intermediate.target, change default.target to point at it, boot all the way up to intermediate.target, and at that point isolate or start multi-user.target. If your default.target points at multi-user.target, there is no way to prevent multi-user things from not running until after itermediate.target. -- Regards, Dimitri. Open Source Technology Center Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [RFC PATCH] udev: add an abs-override builtin to override EV_ABS data
Hi On Thu, Mar 19, 2015 at 10:52 AM, Peter Hutterer peter.hutte...@who-t.net wrote: This builtin parses properties in the form EV_ABS_OVERRIDE_00=min:max:res:fuzz:flat The concept sounds good. hwdb is definitely the place to put this, rather than static kernel fixups. and applies them to the kernel device. Future processes that open that device will see the updated EV_ABS range. This is particularly useful for touchpads that don't provide a resolution in the kernel driver but can be fixed up through hwdb entries (e.g. bcm5974). All values in the property are optional, e.g. a string of ::45 is valid to set the resolution to 45. The order intentionally orders resolution before fuzz and flat despite it being the last element in the absinfo struct. The use-case for setting fuzz/flat is almost non-existent, resolution is probably the most common case we'll need. If a field is left empty, should it take the kernel-provided values? This way, you could just order it logically and leave stuff you don't wanna change empty. --- This is just an RFC for now, a couple of questions remain: * we need this for touchpads, but this seems something that could be more generic and have it's own ruleset, possibly depending on ID_INPUT_TOUCH* or so * input_id is already called and opens the device, we could merge this in there Don't get confused by the name of this builtin. It's legacy. We should probably also merge 'keyboard' into it. Talking about the 'keyboard' builtin: why not merge both? They serve the same purpose, fixing wrong kernel mapping/data. You could even rename the prefix to evdev ('input' is reserved..), and then put both into the same file. You could re-use the matching we have in place for keyboards. I think it would work well enough for all other input-devices, too. It uses the input-modalias, and device-name+dmi as fallback. Ok, the atkbd: is special to keyboards, but just ignore it. Thanks David ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
Hello, So, if the original unit file multi-user.target contains After=basic.target rescue.service rescue.target this after does not really mean anything and jobs wanted or required by multi-user.target can already be started when some jobs from basic.target have not been started??? Correct. ... What is the the problem you are trying to solve by implementing a new 'intermediate' runlevel ? I want a program to be run at boot time without any other systemd services starting concurrently. The program needs the services from basic.target and may influence everything in multi-user.target and later targets, so I guess that between basic.target and multi-user.target is a good time for execution of the program. I hoped that this can be achieved by simply defining a new target, setting after basic.target dependencies for it and changing the dependencies of multi-user.target from basic.target to my new target. This would not require me too know anything about the specific services in basic.target and multi-user.target . Regards Christoph Regards Christoph ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On Thu, Mar 19, 2015 at 3:09 PM, Christoph Pleger christoph.ple...@cs.tu-dortmund.de wrote: Hello, So, if the original unit file multi-user.target contains After=basic.target rescue.service rescue.target this after does not really mean anything and jobs wanted or required by multi-user.target can already be started when some jobs from basic.target have not been started??? Correct. ... What is the the problem you are trying to solve by implementing a new 'intermediate' runlevel ? I want a program to be run at boot time without any other systemd services starting concurrently. The program needs the services from basic.target Well, for the specific service you do know which services it requires, right? Then simply start it as part of basic.target and make sure it is ordered after required services. and may influence everything in multi-user.target and later targets, so I guess that between basic.target and multi-user.target is a good time for execution of the program. I hoped that this can be achieved by simply defining a new target, setting after basic.target dependencies for it and changing the dependencies of multi-user.target from basic.target to my new target. This would not require me too know anything about the specific services in basic.target and multi-user.target . Regards Christoph Regards Christoph ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On Thu, Mar 19, 2015 at 3:19 PM, Christoph Pleger christoph.ple...@cs.tu-dortmund.de wrote: Hello, So, if the original unit file multi-user.target contains After=basic.target rescue.service rescue.target this after does not really mean anything and jobs wanted or required by multi-user.target can already be started when some jobs from basic.target have not been started??? After means exactly what it says - multi-user.target waits for all units listed in After line. It does not imply anything about relative ordering of those units. Unless they have other dependencies all of them will (attempted to) be started in parallel. Then, I still do not understand why my definition of a new target did not work. What is the difference between multi-user.target waiting for basic.target on the one hand and new.target waiting for basic.target and multi-user.target waiting for new.target on the other hand, aside from that one intermediate step? Everything else that is ordered before multi-user.target is started concurrently with your new.target. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
Am 19.03.2015 um 13:09 schrieb Christoph Pleger: What is the the problem you are trying to solve by implementing a new 'intermediate' runlevel ? I want a program to be run at boot time without any other systemd services starting concurrently. The program needs the services from basic.target and may influence everything in multi-user.target and later targets, so I guess that between basic.target and multi-user.target is a good time for execution of the program. I hoped that this can be achieved by simply defining a new target, setting after basic.target dependencies for it and changing the dependencies of multi-user.target from basic.target to my new target. This would not require me too know anything about the specific services in basic.target and multi-user.target what about After=basic.target Before=multi-user.target signature.asc Description: OpenPGP digital signature ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
Hello, So, if the original unit file multi-user.target contains After=basic.target rescue.service rescue.target this after does not really mean anything and jobs wanted or required by multi-user.target can already be started when some jobs from basic.target have not been started??? After means exactly what it says - multi-user.target waits for all units listed in After line. It does not imply anything about relative ordering of those units. Unless they have other dependencies all of them will (attempted to) be started in parallel. Then, I still do not understand why my definition of a new target did not work. What is the difference between multi-user.target waiting for basic.target on the one hand and new.target waiting for basic.target and multi-user.target waiting for new.target on the other hand, aside from that one intermediate step? Regards Christoph ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] StartLimitBurst prevents manual start-up of a service
В Thu, 19 Mar 2015 15:23:41 -0400 Nekrasov, Alexander alexander.nekra...@emc.com пишет: Hi All, Suppose I have a B.service that's doing important work, and an A.service that's watching over B memory consumption. So I want to start A when I start B, and stop A when I stop B. Also B, being important, should be allowed to restart on failures. A, being just a monitor, should be left down if it starts failing too often. Suppose I have in A.service: Restart=yes StartLimitInterval=300 StartLimitBurst=1 StopWhenUnneeded=true Suppose B.service.wants/A.service and in B.service I have: Restart=yes StartLimitInterval=30 StartLimitBurst=3 What happens is, any start of A is counted against the StartLimitBurst limit. Which means, there is no way to let B restart any more frequently than A and have A follow B. The same thing applies to starting A manually - a systemctl start call will fail if done more frequently than once per 300 seconds. The manual systemctl start problem can be fixed by running systemctl reset-failed before it, but I couldn't find a way to fix the failing to start on a dependency. How do I support this use case? Why A is restarted in the first place? Once it is started, it should not be cleaned up until B is present, and B will be present as long as it is being restarted. Restart of B should not cause restart of A, at least not because A suddenly becomes unneeded. Thanks, Alex systemd-210-34.9.x86_64 systemd-bash-completion-210-34.9.noarch systemd-rpm-macros-2-7.2.noarch util-linux-systemd-2.25-2.2.x86_64 systemd-32bit-210-34.9.x86_64 systemd-sysvinit-210-34.9.x86_64 systemd-presets-branding-SLE-12.0-12.1.noarch ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] hwdb: ship ids-update.pl sdio.ids in the release tarballs.
Hi Michael, On 16 March 2015 at 23:15, Marcel Holtmann mar...@holtmann.org wrote: Hi Dimitri, Just tell patch or git to skip the hunks modifying ids-update.pl and sdio.ids. Problem solved. I'll apply the patch, but with a slightly different motivation. [L]GPL requires commercial entities distributing a modified version of the program to provide full source in the preferred form for modification, including all scripts used for building. This includes sdio.ids and ids-update.pl. We should make it easy to follow the our licensing, so we should include those files in our tarball to make it directly redistributable. that is just making stuff up. Where was I wrong? Are you now also including usb.ids? We probably should Right, we should include all source files, not only the generated files. is this turning in Freaky Friday now? Can we please be real for a bit. You do realize that I did not put a copyright header on top of sdio.ids. In addition this information will be most likely considered a not copyrightable piece of source anyway. If we assume that this is non-copyrightable, then how can you apply a copyleft license to it? And honestly I rather take sdio.ids file out of systemd.git and maintain it outside if we start making these weird claims. Regards Marcel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH 4/4] Add a new tmpfiles.d snippets to set the NOCOW the journal.
On Mon, Mar 16, 2015 at 08:33:52PM +0100, Goffredo Baroncelli wrote: From: Goffredo Baroncelli kreij...@inwind.it Add a new tmpfiles.d snippets to set the NOCOW attributes for the journal files. This allow better perfomance when the root file system is BTRFS. Pay attention that the NOCOW flags disables the checksum and prevent scrub to rebuild a corrupted journal. I now merged patches 1-3/4, but not this one. Setting/unsetting attributes seems to be generally useful, so the rest stands on its own. The reason I held back with the last patch is that setting of the attributes through tmpfiles should be added together with the removal of the same functionality from journald. But there are some details to work out. Setting +C on /var/log/journal/%m has smaller scope than the code in journal-file.c now. For example it does not cover files opened by systemd-journal-remote. Having the files no-cow is just as useful for those, but it's not entirely clear how to support it in the new scheme. Zbyszek +# set the journal file as NOCOW; only valid for BTRFS filesystem +h /var/log/journal/%m - - - - +C ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] hwdb: ship ids-update.pl sdio.ids in the release tarballs.
2015-03-21 13:12 GMT+01:00 Zbigniew Jędrzejewski-Szmek zbys...@in.waw.pl: On Thu, Mar 19, 2015 at 06:43:18PM -0700, Marcel Holtmann wrote: Hi Zbyszek, On 16 March 2015 at 23:15, Marcel Holtmann mar...@holtmann.org wrote: Hi Dimitri, Just tell patch or git to skip the hunks modifying ids-update.pl and sdio.ids. Problem solved. I'll apply the patch, but with a slightly different motivation. [L]GPL requires commercial entities distributing a modified version of the program to provide full source in the preferred form for modification, including all scripts used for building. This includes sdio.ids and ids-update.pl. We should make it easy to follow the our licensing, so we should include those files in our tarball to make it directly redistributable. that is just making stuff up. Where was I wrong? Are you now also including usb.ids? We probably should Right, we should include all source files, not only the generated files. -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth? ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] hwdb: ship ids-update.pl sdio.ids in the release tarballs.
On Thu, Mar 19, 2015 at 06:43:18PM -0700, Marcel Holtmann wrote: Hi Zbyszek, On 16 March 2015 at 23:15, Marcel Holtmann mar...@holtmann.org wrote: Hi Dimitri, This makes it easier to apply stable branch patches on top of the release tarball. --- Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 856accb..0ed35ac 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3877,7 +3877,9 @@ dist_udevhwdb_DATA = \ hwdb/70-touchpad.hwdb EXTRA_DIST += \ - units/systemd-hwdb-update.service.in + units/systemd-hwdb-update.service.in \ + hwdb/ids-update.pl \ + hwdb/sdio.ids I do not think that these files belong in the tarball. Especially the sdio.ids is not something that should be in the tarball. If it is missing locally, a script can always download it rom systemd.git tree. That is where the source is for these and not the tarball. If you want to apply patches from git, then you can always tell git to exclude these files and it will happily apply the rest of the patch. So I do not see a good enough reason to do this. I should be able to regenerate generated copies of code from things included in the tarball without network or git... I need this precisely because stable patches are patching sdio.ids... which is (a) missing (b) ids-update.pl is missing (c) the files that are generated with ab are not updated (a) and (b) can be solved by telling 'patch' or 'git' to not apply hunks to those files. (c) sounds wrong to me. Whenever we change ids-update.pl and friends, we also run them and commit the results to -git. So either you apply the wrong patch (the ids-update.pl-path instead of the patch that commits the results), or your haven't been looking closely enough. I don't see why a distribution would be interested in fixes for ids-update.pl? It should be ignored and never marked for back-porting. Only if at the same run we also update the generated files, those should be picked up. Looking at stable branch: http://cgit.freedesktop.org/systemd/systemd-stable/log/hwdb?h=v219-stable sdio.ids was changed in http://cgit.freedesktop.org/systemd/systemd-stable/commit/hwdb?h=v219-stableid=c10e229f8222b92117ba38045ddb3e4d7951244a but updated in a later commit http://cgit.freedesktop.org/systemd/systemd-stable/commit/hwdb?h=v219-stableid=9ac622b00ca23f9d01e0ff0c944130be8dc3a0e9 So they do look up to date there. usb.ids does not appear to be in the source tree. To me this looks untidy, as preffered form of modification is not shipped in full neither in git, nor in the tarball. And I do need to modify them, the hwdb is too large and has too many things for my targets thus I'm looking at how to patch them out in a maintainable way. that is pretty much your problem to solve if you do not want the full database. Why is that a stable tree issue? Especially since shrinking the database has nothing to do with ids-update.pl or sdio.ids. Why not just commit ids-update.pl / sdio.ids and generate the .hwdb files on $ make dist, or at autoreconf time? Just tell patch or git to skip the hunks modifying ids-update.pl and sdio.ids. Problem solved. I'll apply the patch, but with a slightly different motivation. [L]GPL requires commercial entities distributing a modified version of the program to provide full source in the preferred form for modification, including all scripts used for building. This includes sdio.ids and ids-update.pl. We should make it easy to follow the our licensing, so we should include those files in our tarball to make it directly redistributable. that is just making stuff up. Where was I wrong? Are you now also including usb.ids? We probably should Zbyszek ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] systemd and nested Btrfs subvolumes
Short version: -- Instead of machinectl clone using btrfs snapshots, or even needing to store things in a var/lib/machines Btrfs subvolume, does it meet the requirements for Btrfs optimization to do this with cp -a --reflink instead? Why? Nested subvolumes are confusing. And nested subvolumes are excluded from snapshots. Subvolume B inside of Subvolume A, will not be snapshot or rolled back, if I snapshot Subvolume A and subsequently rollback to the snapshot of A. Is this the intended workflow? Long version comparing two different Btrfs layout paramdigms: -- New in systemd-219 is the creation of a subvolume for storing containers (machines). This is what things look like on Fedora 22 right now. # btrfs sub list -a / ID 257 gen 1705 top level 5 path FS_TREE/root ID 258 gen 1662 top level 5 path FS_TREE/home ID 259 gen 1681 top level 5 path FS_TREE/boot ID 262 gen 1705 top level 257 path root/var/lib/machines # cat etc fstab UUID=uuid / btrfs subvol=root 0 0 UUID=uuid /boot btrfs subvol=boot 0 0 UUID=uuid /home btrfs subvol=home 0 0 And I see the entry in 'man machinectl' clone entry which says: clone NAME NAME Clones a container or VM image. The arguments specify the name of the image to clone and the name of the newly cloned image. Note that plain directory container images are cloned into subvolume images with this command. Note that cloning a container or VM image is optimized for btrfs file systems, and might not be efficient on others, due to file system limitations. The problem is that nested subvolumes like var/lib/machines becomes tricky. If I snapshot the root subvolume, it doesn't contain var/lib/machines. If I rollback to root.n-1 and boot that, I no longer have var/lib/machines at all because it's now in an old unused subvolume and not in the currently mounted path. Can clone instead use cp -a --reflink instead of using snapshots? Can subvolumes be entirely avoided? Right now there is a split in Btrfs layout paradigms. The Fedora/RH method is to create non-nested subvolumes in the (permanent) top level subvolume (ID 5 a.k.a. ID 0), and then use fstab to mount those subvolumes to the proper mount points in the conventional FHS we're used to. The top level of the file system is never actually mounted by default on Fedora. This paradigm suggests a 'machines' subvolume should go in the top level, and an fstab entry to mount it via: UUID=uuid /var/lib/machines btrfs subvol=machines 0 0 Now, the other paradigm, is from openSUSE. The top level (subvol ID 5) is populated like any other filesystem would be, but many of the usual directories are instead subvolumes. There are 14 subvolumes to be exact, and they're subvolumes for the purpose of excluding them from the snapshotting and rolling back policies of root fs. In this paradigm, root is the only thing being snapshot and rolled back, and to avoid rolling back things like the journal and logs, they use subvolumes because nested subvolumes do not get snapshot - there's no recursive snapshotting of nested subvolumes on Btrfs. # cat /etc/fstab UUID=uuid swap swap defaults 0 0 UUID=uuid / btrfs defaults 0 0 UUID=uuid /boot/grub2/i386-pc btrfs subvol=boot/grub2/i386-pc 0 0 UUID=uuid /boot/grub2/x86_64-efi btrfs subvol=boot/grub2/x86_64-efi 0 0 UUID=uuid /opt btrfs subvol=opt 0 0 UUID=uuid /srv btrfs subvol=srv 0 0 UUID=uuid /tmp btrfs subvol=tmp 0 0 UUID=uuid /usr/local btrfs subvol=usr/local 0 0 UUID=uuid /var/crash btrfs subvol=var/crash 0 0 UUID=uuid /var/lib/mailman btrfs subvol=var/lib/mailman 0 0 UUID=uuid /var/lib/named btrfs subvol=var/lib/named 0 0 UUID=uuid /var/lib/pgsql btrfs subvol=var/lib/pgsql 0 0 UUID=uuid /var/log btrfs subvol=var/log 0 0 UUID=uuid /var/opt btrfs subvol=var/opt 0 0 UUID=uuid /var/spool btrfs subvol=var/spool 0 0 UUID=uuid /var/tmp btrfs subvol=var/tmp 0 0 UUID=uuid /home xfs defaults 1 2 UUID=uuid /.snapshots btrfs subvol=.snapshots 0 0 If today, on openSUSE, a hypothetical 'machines' subvolume were created, it would most likely need to go in a /.subvolume subvolume to keep it out of the expected FHS listing at / and this is also consistent with the /.snapshots subvolume in which they keep snapshots. Therefore, it's a somewhat nested subvolume strategy, with a heavy duty fstab to reassemble the thing, and quite substantial grub2 patches so that snapshots are visible and can be rolled back from the boot menu. So back to cp -a --reflink as a work around for both paradigms? Does this method of cloning meet the requirements for systemd containers? If so, it works on both the RH/Fedora and the openSUSE layouts. Meaning the var/lib/machines subvolume isn't needed, just use cp -a --reflink on either directories or files, and it's almost as fast as a btrfs snapshot. [1]
Re: [systemd-devel] [PATCH] hwdb: ship ids-update.pl sdio.ids in the release tarballs.
Hi Zbyszek, On 16 March 2015 at 23:15, Marcel Holtmann mar...@holtmann.org wrote: Hi Dimitri, This makes it easier to apply stable branch patches on top of the release tarball. --- Makefile.am | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 856accb..0ed35ac 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3877,7 +3877,9 @@ dist_udevhwdb_DATA = \ hwdb/70-touchpad.hwdb EXTRA_DIST += \ - units/systemd-hwdb-update.service.in + units/systemd-hwdb-update.service.in \ + hwdb/ids-update.pl \ + hwdb/sdio.ids I do not think that these files belong in the tarball. Especially the sdio.ids is not something that should be in the tarball. If it is missing locally, a script can always download it rom systemd.git tree. That is where the source is for these and not the tarball. If you want to apply patches from git, then you can always tell git to exclude these files and it will happily apply the rest of the patch. So I do not see a good enough reason to do this. I should be able to regenerate generated copies of code from things included in the tarball without network or git... I need this precisely because stable patches are patching sdio.ids... which is (a) missing (b) ids-update.pl is missing (c) the files that are generated with ab are not updated (a) and (b) can be solved by telling 'patch' or 'git' to not apply hunks to those files. (c) sounds wrong to me. Whenever we change ids-update.pl and friends, we also run them and commit the results to -git. So either you apply the wrong patch (the ids-update.pl-path instead of the patch that commits the results), or your haven't been looking closely enough. I don't see why a distribution would be interested in fixes for ids-update.pl? It should be ignored and never marked for back-porting. Only if at the same run we also update the generated files, those should be picked up. Looking at stable branch: http://cgit.freedesktop.org/systemd/systemd-stable/log/hwdb?h=v219-stable sdio.ids was changed in http://cgit.freedesktop.org/systemd/systemd-stable/commit/hwdb?h=v219-stableid=c10e229f8222b92117ba38045ddb3e4d7951244a but updated in a later commit http://cgit.freedesktop.org/systemd/systemd-stable/commit/hwdb?h=v219-stableid=9ac622b00ca23f9d01e0ff0c944130be8dc3a0e9 So they do look up to date there. usb.ids does not appear to be in the source tree. To me this looks untidy, as preffered form of modification is not shipped in full neither in git, nor in the tarball. And I do need to modify them, the hwdb is too large and has too many things for my targets thus I'm looking at how to patch them out in a maintainable way. that is pretty much your problem to solve if you do not want the full database. Why is that a stable tree issue? Especially since shrinking the database has nothing to do with ids-update.pl or sdio.ids. Why not just commit ids-update.pl / sdio.ids and generate the .hwdb files on $ make dist, or at autoreconf time? Just tell patch or git to skip the hunks modifying ids-update.pl and sdio.ids. Problem solved. I'll apply the patch, but with a slightly different motivation. [L]GPL requires commercial entities distributing a modified version of the program to provide full source in the preferred form for modification, including all scripts used for building. This includes sdio.ids and ids-update.pl. We should make it easy to follow the our licensing, so we should include those files in our tarball to make it directly redistributable. that is just making stuff up. Are you now also including usb.ids? Regards Marcel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] not running ExecStop= when stopping activating services?
В Thu, 19 Mar 2015 15:08:39 -0400 Nekrasov, Alexander alexander.nekra...@emc.com пишет: Hi All, With these settings [Service] ExecStart=/cli run ExecStop=/cli stop Type=forking PIDFile=/tmp/cli.pid The service is active once cli run exits. A call to systemctl stop then produces a call to cli stop. This is as expected. However if I call systemctl stop on this service before cli run exited, i.e., when the service is still activating, the service is stopped, all threads are killed off, but cli stop is never run. Is that as intended? Why? Is there a way to change this behavior? This is intentional (see commit 3f6c78dc); I do not think intention was as much do not run ExecStopPost as do not spend time if starting failed anyway). There is currently no way to change it, it is hardcoded. I guess you will need to present use case and explain what is broken with current behavior. Although there is obvious corner case - timeout expires exactly when service starts and before systemd has chance to notice it. Then we have fully started service that gets killed. systemd-210-34.9.x86_64 systemd-bash-completion-210-34.9.noarch systemd-rpm-macros-2-7.2.noarch util-linux-systemd-2.25-2.2.x86_64 systemd-32bit-210-34.9.x86_64 systemd-sysvinit-210-34.9.x86_64 systemd-presets-branding-SLE-12.0-12.1.noarch Thanks, Alex ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] resolved: Do not add .busname dependencies, when compiling without kdbus.
On 19 March 2015 at 16:29, Michael Biebl mbi...@gmail.com wrote: 2015-03-19 17:07 GMT+01:00 David Herrmann dh.herrm...@gmail.com: On Thu, Mar 19, 2015 at 4:59 PM, Michael Biebl mbi...@gmail.com wrote: So, +1 for Dimitri's patch. Looks correct to me. Unless someone objects, I'm planning on merging it. Yes, please go ahead. I missed that .busname is not installed without --enable-kdbus. Pushed as defa8e675b2903ad53e093bb2847c7256f0779a5 I made a small addition and added /systemd-resolved.service.m4 to .gitignore Thanks a lot. -- Regards, Dimitri. https://01.org/clearlinux Open Source Technology Center Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] CapabilityBoundingSet vs. ExecReload (kill)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 That tells me that the ExecReload command (kill) is also restricted by CapabilityBoundingSet. Is this expected [..]? recent systemd has more problems in context of systemctl and restricting even PID1 itself in a way no longer be able to kill processes thanks for the links. so you are saying this is just a bug and indeed not expected? thanks, Nusenu -BEGIN PGP SIGNATURE- iQIcBAEBCgAGBQJVCwGpAAoJEFv7XvVCELh0DDUP/3RF5qsT44IWEunRwnuEQELc rnGV4LcBMf+q09r5bYTN/HG1djaKlhePgUgP3QNLFhhETDJoARcgPA9aLKJTgl0h n3gWrgzXyM6fJ5Yhd10AmexkVqb+Nv2dV2YHPQWE2d33idaitsKbO6756bVd0xjA xUdqIdhP094fAj+enrW1Ui93k+eIY3PxuSI+3YOXkNSBsASEqJh+sXXE2A4OWWhz GGnRi3ufusM8w3/zRw9rXgHXExDzQ512RdIly2F3S2BTsVo84IIYqzQ7VRCneVj7 Q7eysok/nSIFH1SgpnM1iSYZqke1qLAiIUIN2FGBla3UscDT7YpWNJsDx/fJ/CQE ZC3r55EHU2TZIk5kI/FT/Xemt+YLTXxoi0XLkHky4saj4p20cG1Ciq+ACSCgXFDd bZD8+3u2e7Xd3AWtEb4nYAUQtDSoTMaqnVgkc0QS68S2JLUyAqA5Pj8BNSN5qWiG gAsKDPnWQRuLpxpyMuPmqv0gMSjA8+E4rdKkPZ0mxgBMF7n5RNFleichRbYa3q5K LHpsi6XVrqQZOVp6gQfgcbGjNzqDwRfVOw5Duu3PZU0PJp8sntYt4sbMaJQ1p98g n6+Qtz4pW8SUgSNyQIv6B1Fk6zIJgHRZUthVayie8w1ne/pypAhmqQFUA7Dea8n3 K4BSzHEkStVZ5PZHDqhd =tCLM -END PGP SIGNATURE- ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] systemd: Have rpc-statd-notify.service Require network.target
On 03/03/2015 01:36 PM, Steve Dickson wrote: Its been reported that having the rpc-statd-notify service depend on network.target instead network-online.target decrease boot times as much as 10 seconds on some installs Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1183293 Signed-off-by: Steve Dickson ste...@redhat.com Reported-by: Eric Work work.e...@gmail.com Committed... steved. --- systemd/rpc-statd-notify.service |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/systemd/rpc-statd-notify.service b/systemd/rpc-statd-notify.service index a655445..b608a14 100644 --- a/systemd/rpc-statd-notify.service +++ b/systemd/rpc-statd-notify.service @@ -1,6 +1,6 @@ [Unit] Description=Notify NFS peers of a restart -Requires=network-online.target +Requires=network.target After=network.target nss-lookup.target # if we run an nfs server, it needs to be running before we ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] missing.h: add more btrfs types and defines
On Thu, Mar 19, 2015 at 02:05:00PM +0100, David Herrmann wrote: On Wed, Mar 18, 2015 at 2:04 PM, Michael Olbrich m.olbr...@pengutronix.de wrote: it seems we're getting a lot of btrfs stuff here. Maybe we should ship a copy of btrfs.h instead? All these definitions where introduced with linux-3.8 (well, the header was moved to linux/btrfs.h at that time). Our current requirement is linux-3.7. I'd just say, lets require linux-headers-3.8 at build-time? Actually, that would be 3.9 not 3.8. And I'd really like to avoid such a dependency. When cross-compiling for embedded systems, a host 'systemd-hwdb' is needed to generate the hwdb. And build servers often run older Distributions (e.g. Debian stable). Well, what I really want, is just to build systemd-hwdb and just ignore the whole btrfs and network stuff, that would require newer kernel headers. However, the way the systemd build-system is set up, that's currently not possible. Michael -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] resolved: Do not add .busname dependencies, when compiling without kdbus.
On 19 March 2015 at 13:31, David Herrmann dh.herrm...@gmail.com wrote: Hi On Tue, Mar 17, 2015 at 4:37 PM, Dimitri John Ledkov dimitri.j.led...@intel.com wrote: --- Makefile.am | 2 +- units/systemd-resolved.service.in| 29 - units/systemd-resolved.service.m4.in | 31 +++ 3 files changed, 32 insertions(+), 30 deletions(-) delete mode 100644 units/systemd-resolved.service.in create mode 100644 units/systemd-resolved.service.m4.in There is already a: ConditionPathExists=/sys/fs/kdbus/0-system/ in the busname unit. Isn't that enough? The busname unit is not installed, when compiling without kdbus. Thus upon loading systemd-resolved.service, .busname unit is attempted to be loaded and ends up being not found, which imho is untidy. Regards, Dimitri. Thanks David diff --git a/Makefile.am b/Makefile.am index 856accb..dd8b825 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5611,7 +5611,7 @@ dist_dbussystemservice_DATA += \ src/resolve/org.freedesktop.resolve1.service EXTRA_DIST += \ - units/systemd-resolved.service.in + units/systemd-resolved.service.m4.in SYSTEM_UNIT_ALIASES += \ systemd-resolved.service dbus-org.freedesktop.resolve1.service diff --git a/units/systemd-resolved.service.in b/units/systemd-resolved.service.in deleted file mode 100644 index b643da9..000 --- a/units/systemd-resolved.service.in +++ /dev/null @@ -1,29 +0,0 @@ -# This file is part of systemd. -# -# systemd is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation; either version 2.1 of the License, or -# (at your option) any later version. - -[Unit] -Description=Network Name Resolution -Documentation=man:systemd-resolved.service(8) -After=systemd-networkd.service network.service - -# On kdbus systems we pull in the busname explicitly, because it -# carries policy that allows the daemon to acquire its name. -Wants=org.freedesktop.resolve1.busname -After=org.freedesktop.resolve1.busname - -[Service] -Type=notify -Restart=always -RestartSec=0 -ExecStart=@rootlibexecdir@/systemd-resolved -CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER -ProtectSystem=full -ProtectHome=yes -WatchdogSec=1min - -[Install] -WantedBy=multi-user.target diff --git a/units/systemd-resolved.service.m4.in b/units/systemd-resolved.service.m4.in new file mode 100644 index 000..d133847 --- /dev/null +++ b/units/systemd-resolved.service.m4.in @@ -0,0 +1,31 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Network Name Resolution +Documentation=man:systemd-resolved.service(8) +After=systemd-networkd.service network.service + +m4_ifdef(`ENABLE_KDBUS', +# On kdbus systems we pull in the busname explicitly, because it +# carries policy that allows the daemon to acquire its name. +Wants=org.freedesktop.resolve1.busname +After=org.freedesktop.resolve1.busname + +)m4_dnl +[Service] +Type=notify +Restart=always +RestartSec=0 +ExecStart=@rootlibexecdir@/systemd-resolved +CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER +ProtectSystem=full +ProtectHome=yes +WatchdogSec=1min + +[Install] +WantedBy=multi-user.target -- 2.1.0 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- Regards, Dimitri. https://01.org/clearlinux Open Source Technology Center Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] missing.h: add more btrfs types and defines
Hi On Wed, Mar 18, 2015 at 2:04 PM, Michael Olbrich m.olbr...@pengutronix.de wrote: --- Hi, it seems we're getting a lot of btrfs stuff here. Maybe we should ship a copy of btrfs.h instead? All these definitions where introduced with linux-3.8 (well, the header was moved to linux/btrfs.h at that time). Our current requirement is linux-3.7. I'd just say, lets require linux-headers-3.8 at build-time? Thanks David Michael src/shared/missing.h | 151 +++ 1 file changed, 151 insertions(+) diff --git a/src/shared/missing.h b/src/shared/missing.h index 802b4957e0a1..ca670cea43f7 100644 --- a/src/shared/missing.h +++ b/src/shared/missing.h @@ -230,12 +230,59 @@ static inline int getrandom(void *buffer, size_t count, unsigned flags) { #define BTRFS_UUID_SIZE 16 #endif +#ifndef BTRFS_SUBVOL_RDONLY +#define BTRFS_SUBVOL_RDONLY (1ULL 1) +#endif + +#ifndef BTRFS_SUBVOL_NAME_MAX +#define BTRFS_SUBVOL_NAME_MAX 4039 +#endif + +#ifndef BTRFS_INO_LOOKUP_PATH_MAX +#define BTRFS_INO_LOOKUP_PATH_MAX 4080 +#endif + +#ifndef BTRFS_SEARCH_ARGS_BUFSIZE +#define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key)) +#endif + #ifndef HAVE_LINUX_BTRFS_H struct btrfs_ioctl_vol_args { int64_t fd; char name[BTRFS_PATH_NAME_MAX + 1]; }; +struct btrfs_qgroup_limit { +__u64 flags; +__u64 max_rfer; +__u64 max_excl; +__u64 rsv_rfer; +__u64 rsv_excl; +}; + +struct btrfs_qgroup_inherit { +__u64 flags; +__u64 num_qgroups; +__u64 num_ref_copies; +__u64 num_excl_copies; +struct btrfs_qgroup_limit lim; +__u64 qgroups[0]; +}; + +struct btrfs_ioctl_vol_args_v2 { +__s64 fd; +__u64 transid; +__u64 flags; +union { +struct { +__u64 size; +struct btrfs_qgroup_inherit *qgroup_inherit; +}; +__u64 unused[4]; +}; +char name[BTRFS_SUBVOL_NAME_MAX + 1]; +}; + struct btrfs_ioctl_dev_info_args { uint64_t devid; /* in/out */ uint8_t uuid[BTRFS_UUID_SIZE]; /* in/out */ @@ -251,6 +298,68 @@ struct btrfs_ioctl_fs_info_args { uint8_t fsid[BTRFS_FSID_SIZE]; /* out */ uint64_t reserved[124]; /* pad to 1k */ }; + +struct btrfs_ioctl_ino_lookup_args { +__u64 treeid; +__u64 objectid; +char name[BTRFS_INO_LOOKUP_PATH_MAX]; +}; + +struct btrfs_ioctl_search_key { +/* which root are we searching. 0 is the tree of tree roots */ +__u64 tree_id; + +/* keys returned will be = min and = max */ +__u64 min_objectid; +__u64 max_objectid; + +/* keys returned will be = min and = max */ +__u64 min_offset; +__u64 max_offset; + +/* max and min transids to search for */ +__u64 min_transid; +__u64 max_transid; + +/* keys returned will be = min and = max */ +__u32 min_type; +__u32 max_type; + +/* + * how many items did userland ask for, and how many are we + * returning + */ +__u32 nr_items; + +/* align to 64 bits */ +__u32 unused; + +/* some extra for later */ +__u64 unused1; +__u64 unused2; +__u64 unused3; +__u64 unused4; +}; + +struct btrfs_ioctl_search_header { +__u64 transid; +__u64 objectid; +__u64 offset; +__u32 type; +__u32 len; +}; + + +struct btrfs_ioctl_search_args { +struct btrfs_ioctl_search_key key; +char buf[BTRFS_SEARCH_ARGS_BUFSIZE]; +}; + +struct btrfs_ioctl_clone_range_args { +__s64 src_fd; +__u64 src_offset, src_length; +__u64 dest_offset; +}; #endif #ifndef BTRFS_IOC_DEFRAG @@ -258,6 +367,48 @@ struct btrfs_ioctl_fs_info_args { struct btrfs_ioctl_vol_args) #endif +#ifndef BTRFS_IOC_CLONE +#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int) +#endif + +#ifndef BTRFS_IOC_CLONE_RANGE +#define BTRFS_IOC_CLONE_RANGE _IOW(BTRFS_IOCTL_MAGIC, 13, \ + struct btrfs_ioctl_clone_range_args) +#endif + +#ifndef BTRFS_IOC_SUBVOL_CREATE +#define BTRFS_IOC_SUBVOL_CREATE _IOW(BTRFS_IOCTL_MAGIC, 14, \ + struct btrfs_ioctl_vol_args) +#endif + +#ifndef BTRFS_IOC_SNAP_DESTROY +#define BTRFS_IOC_SNAP_DESTROY _IOW(BTRFS_IOCTL_MAGIC, 15, \ + struct btrfs_ioctl_vol_args) +#endif + +#ifndef BTRFS_IOC_TREE_SEARCH +#define BTRFS_IOC_TREE_SEARCH _IOWR(BTRFS_IOCTL_MAGIC, 17, \ + struct btrfs_ioctl_search_args) +#endif + +#ifndef
Re: [systemd-devel] [PATCH] resolved: Do not add .busname dependencies, when compiling without kdbus.
Hi On Tue, Mar 17, 2015 at 4:37 PM, Dimitri John Ledkov dimitri.j.led...@intel.com wrote: --- Makefile.am | 2 +- units/systemd-resolved.service.in| 29 - units/systemd-resolved.service.m4.in | 31 +++ 3 files changed, 32 insertions(+), 30 deletions(-) delete mode 100644 units/systemd-resolved.service.in create mode 100644 units/systemd-resolved.service.m4.in There is already a: ConditionPathExists=/sys/fs/kdbus/0-system/ in the busname unit. Isn't that enough? Thanks David diff --git a/Makefile.am b/Makefile.am index 856accb..dd8b825 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5611,7 +5611,7 @@ dist_dbussystemservice_DATA += \ src/resolve/org.freedesktop.resolve1.service EXTRA_DIST += \ - units/systemd-resolved.service.in + units/systemd-resolved.service.m4.in SYSTEM_UNIT_ALIASES += \ systemd-resolved.service dbus-org.freedesktop.resolve1.service diff --git a/units/systemd-resolved.service.in b/units/systemd-resolved.service.in deleted file mode 100644 index b643da9..000 --- a/units/systemd-resolved.service.in +++ /dev/null @@ -1,29 +0,0 @@ -# This file is part of systemd. -# -# systemd is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation; either version 2.1 of the License, or -# (at your option) any later version. - -[Unit] -Description=Network Name Resolution -Documentation=man:systemd-resolved.service(8) -After=systemd-networkd.service network.service - -# On kdbus systems we pull in the busname explicitly, because it -# carries policy that allows the daemon to acquire its name. -Wants=org.freedesktop.resolve1.busname -After=org.freedesktop.resolve1.busname - -[Service] -Type=notify -Restart=always -RestartSec=0 -ExecStart=@rootlibexecdir@/systemd-resolved -CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER -ProtectSystem=full -ProtectHome=yes -WatchdogSec=1min - -[Install] -WantedBy=multi-user.target diff --git a/units/systemd-resolved.service.m4.in b/units/systemd-resolved.service.m4.in new file mode 100644 index 000..d133847 --- /dev/null +++ b/units/systemd-resolved.service.m4.in @@ -0,0 +1,31 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Network Name Resolution +Documentation=man:systemd-resolved.service(8) +After=systemd-networkd.service network.service + +m4_ifdef(`ENABLE_KDBUS', +# On kdbus systems we pull in the busname explicitly, because it +# carries policy that allows the daemon to acquire its name. +Wants=org.freedesktop.resolve1.busname +After=org.freedesktop.resolve1.busname + +)m4_dnl +[Service] +Type=notify +Restart=always +RestartSec=0 +ExecStart=@rootlibexecdir@/systemd-resolved +CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_CHOWN CAP_DAC_OVERRIDE CAP_FOWNER +ProtectSystem=full +ProtectHome=yes +WatchdogSec=1min + +[Install] +WantedBy=multi-user.target -- 2.1.0 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] timedated: Add a LocalOffset property for timezone offset
Hi On Thu, Mar 19, 2015 at 11:24 AM, Stef Walter st...@redhat.com wrote: This property is in usec (like the TimeUSec property) and allows retrieving the timezone offset for the machine. This is particularly usable for remote callers. --- src/timedate/timedated.c | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index ca771d5..e384b36 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -361,6 +361,22 @@ static int property_get_time( return sd_bus_message_append(reply, t, now(CLOCK_REALTIME)); } +static int property_get_local_offset( +sd_bus *bus, +const char *path, +const char *interface, +const char *property, +sd_bus_message *reply, +void *userdata, +sd_bus_error *error) +{ +struct tm *tm; +time_t dummy = 0; + +assert_se(tm = localtime(dummy)); +return sd_bus_message_append(reply, t, (uint64_t)(tm-tm_gmtoff * 100)); +} + Hmm, so this is a convenience call. You could just set tm.tm_zone locally and use mktime() with the value retrieved by Timezone? Yeah, the time-api is awful with global variables, but that's not really our fault, is it? I'm not really against this bus-call, but I also don't see the point. There's much more information in a timezone file than the offset, so why expose the offset but not the other data? Thanks David static int property_get_ntp_sync( sd_bus *bus, const char *path, @@ -440,7 +456,8 @@ static int method_set_timezone(sd_bus *bus, sd_bus_message *m, void *userdata, s LOG_MESSAGE(Changed time zone to '%s'., c-zone), NULL); -sd_bus_emit_properties_changed(bus, /org/freedesktop/timedate1, org.freedesktop.timedate1, Timezone, NULL); +sd_bus_emit_properties_changed(bus, /org/freedesktop/timedate1, org.freedesktop.timedate1, + Timezone, LocalOffset, NULL); return sd_bus_reply_method_return(m, NULL); } @@ -666,6 +683,7 @@ static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus static const sd_bus_vtable timedate_vtable[] = { SD_BUS_VTABLE_START(0), SD_BUS_PROPERTY(Timezone, s, NULL, offsetof(Context, zone), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), +SD_BUS_PROPERTY(LocalOffset, t, property_get_local_offset, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY(LocalRTC, b, bus_property_get_bool, offsetof(Context, local_rtc), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), SD_BUS_PROPERTY(CanNTP, b, bus_property_get_bool, offsetof(Context, can_ntp), 0), SD_BUS_PROPERTY(NTP, b, bus_property_get_bool, offsetof(Context, use_ntp), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), -- 2.3.3 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] timedated: Add a LocalOffset property for timezone offset
On 19.03.2015 14:39, David Herrmann wrote: Hi On Thu, Mar 19, 2015 at 11:24 AM, Stef Walter st...@redhat.com wrote: This property is in usec (like the TimeUSec property) and allows retrieving the timezone offset for the machine. This is particularly usable for remote callers. --- src/timedate/timedated.c | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index ca771d5..e384b36 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -361,6 +361,22 @@ static int property_get_time( return sd_bus_message_append(reply, t, now(CLOCK_REALTIME)); } +static int property_get_local_offset( +sd_bus *bus, +const char *path, +const char *interface, +const char *property, +sd_bus_message *reply, +void *userdata, +sd_bus_error *error) +{ +struct tm *tm; +time_t dummy = 0; + +assert_se(tm = localtime(dummy)); +return sd_bus_message_append(reply, t, (uint64_t)(tm-tm_gmtoff * 100)); +} + Hmm, so this is a convenience call. You could just set tm.tm_zone locally and use mktime() with the value retrieved by Timezone? Yeah, the time-api is awful with global variables, but that's not really our fault, is it? I'm not really against this bus-call, but I also don't see the point. In Cockpit we're running on a different machine, and accessing timedated remotely. If this information is not available in timedated, we would need to add another DBus service to expose this information. Besides it fits in well with the TimeUSec property. There's much more information in a timezone file than the offset, so why expose the offset but not the other data? I would like to be able to do 'timedatectl list-timezones' over DBus as well. Such work would allow timedatectl to work properly with the --host argument. Currently the output of 'timedatectl status --host=machine-in-another-timezone.example.com' is full of invalid information. Stef signature.asc Description: OpenPGP digital signature ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On Thu, Mar 19, 2015 at 4:27 PM, Christoph Pleger christoph.ple...@cs.tu-dortmund.de wrote: Hello, Then, I still do not understand why my definition of a new target did not work. What is the difference between multi-user.target waiting for basic.target on the one hand and new.target waiting for basic.target and multi-user.target waiting for new.target on the other hand, aside from that one intermediate step? Everything else that is ordered before multi-user.target is started concurrently with your new.target. Hm. But I have no idea why for example gdm3 is started while my test script is still executing its sleep command. Because gdm3 has no ordering dependencies against your test script so both are scheduled to be started concurrently. Which one will be first is more or less random. This is the output of systemd-analyze dot | grep gdm: shutdown.target-gdm.service [color=green]; shutdown.target-gdm.service [color=red]; graphical.target-gdm.service [color=grey66]; x-display-manager.target-gdm.service [color=green]; x-display-manager.target-gdm.service [color=black]; gdm.service-systemd-user-sessions.service [color=green]; gdm.service-getty@tty7.service [color=green]; gdm.service-plymouth-quit.service [color=green]; gdm.service-systemd-journald.socket [color=green]; gdm.service-basic.target [color=green]; gdm.service-system.slice [color=green]; gdm.service-basic.target [color=black]; gdm.service-x-display-manager.target [color=grey66]; gdm.service-system.slice [color=grey66]; gdm.service-getty@tty7.service [color=red]; gdm.service-plymouth-quit.service [color=red]; gdm.service-shutdown.target [color=red]; getty@tty7.service-gdm.service [color=red]; plymouth-quit.service-gdm.service [color=red]; plymouth-halt.service-gdm.service [color=green]; plymouth-reboot.service-gdm.service [color=green]; Color legend: black = Requires dark blue = Requisite dark grey = Wants red = Conflicts green = After If I understand this correctly, gdm is pulled into the boot process only by graphical.target, which according to target unit definitions should be after multi-user.target , which should be after my new.target ... You seem to misunderstand what target does. Target simply tells systemd if you start me, start also these other services. Those other services are started as soon as possible. Ordering of target units has absolutely no relation to startup order of other services. The only thing I can imagine what causes my problem is that Debian jessie does not use only systemd units, but also init scripts in /etc/rc*.d/ and that this brakes my desired boot order. Regards Christoph ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] timedated: Add a LocalOffset property for timezone offset
Hi On Thu, Mar 19, 2015 at 2:58 PM, Stef Walter st...@redhat.com wrote: On 19.03.2015 14:39, David Herrmann wrote: Hmm, so this is a convenience call. You could just set tm.tm_zone locally and use mktime() with the value retrieved by Timezone? Yeah, the time-api is awful with global variables, but that's not really our fault, is it? I'm not really against this bus-call, but I also don't see the point. In Cockpit we're running on a different machine, and accessing timedated remotely. If this information is not available in timedated, we would need to add another DBus service to expose this information. Besides it fits in well with the TimeUSec property. But TimeUSec is UTC. If you retrieve TimeUSec and Timezone, you can reconstruct the time offset yourself, without any further information, right? There's much more information in a timezone file than the offset, so why expose the offset but not the other data? I would like to be able to do 'timedatectl list-timezones' over DBus as well. Why? This information should be the same on all machines, right? I don't see why the remote list is of any interest. Such work would allow timedatectl to work properly with the --host argument. Currently the output of 'timedatectl status --host=machine-in-another-timezone.example.com' is full of invalid information. Yes, but it's the job of timedatectl to print information in the timezone of the remote host, not of the local host. It should retrieve the Timezone field and modify it's local timezone if you want the information to be relative to remote timezone, not the local timezone (which I'm not sure you really want). What exactly do you mean with full of invalid information? Thanks David ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] Create journal-remote.conf.xml to document the format of the configuration file for systemd-journal-remote
On Thu, Mar 19, 2015 at 9:23 AM, David Herrmann dh.herrm...@gmail.com wrote: Hi On Mon, Mar 16, 2015 at 1:49 PM, Chris Morgan chmor...@gmail.com wrote: --- man/journal-remote.conf.xml| 111 + man/systemd-journal-remote.xml | 1 + 2 files changed, 112 insertions(+) create mode 100644 man/journal-remote.conf.xml diff --git a/man/journal-remote.conf.xml b/man/journal-remote.conf.xml new file mode 100644 index 000..84e07ee --- /dev/null +++ b/man/journal-remote.conf.xml @@ -0,0 +1,111 @@ +?xml version='1.0'? !--*-nxml-*-- +!DOCTYPE refentry PUBLIC -//OASIS//DTD DocBook XML V4.2//EN + http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd; + +!-- + This file is part of systemd. + + Copyright 2015 Chris Morgan + + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + systemd is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with systemd; If not, see http://www.gnu.org/licenses/. +-- + +refentry id=journal-remote.conf +xmlns:xi=http://www.w3.org/2001/XInclude; + refentryinfo +titlejournal-remote.conf/title +productnamesystemd/productname + +authorgroup + author +contribDeveloper/contrib +firstnameChris/firstname +surnameMorgan/surname +emailchmor...@gmail.com/email + /author +/authorgroup + /refentryinfo + + refmeta +refentrytitlejournal-remote.conf/refentrytitle +manvolnum5/manvolnum + /refmeta + + refnamediv +refnamejournal-remote.conf/refname missing: refnamejournal-remote.conf.d/refname +refpurposeJournal remote service configuration files/refpurpose + /refnamediv + + refsynopsisdiv +parafilename/etc/systemd/journal-remote.conf/filename/para +parafilename/etc/journal-remote.conf/filename/para +parafilename/run/journal-remote.conf/filename/para +parafilename/usr/local/lib/journal-remote.conf/filename/para +parafilename/usr/lib/journal-remote.conf/filename/para Where do all these come from? Shouldn't these be the same as in journal.conf.xml? Have a look at the CONF_DIRS_NULSTR macro in src/shared/macro.h, which defines the lookup directories. + /refsynopsisdiv + + refsect1 +titleDescription/title + +paraThese files configure various parameters of the systemd-remote-journal +application, + citerefentryrefentrytitlesystemd-journal-remote/refentrytitlemanvolnum8/manvolnum/citerefentry./para + + /refsect1 + How about: xi:include href=standard-conf.xml xpointer=main-conf / + refsect1 +titleOptions/title + +paraAll options are configured in the +literal[Journal]/literal section:/para The section is called [Remote]. + +variablelist + + varlistentry +termvarnameSplitMode=/varname/term + +listitemparaOne of literalhost/literal or literalnone/literal. +/para/listitem + /varlistentry + + varlistentry +termvarnameServerKeyFile=/varname/term + +listitemparaSSL key in PEM format/para/listitem + /varlistentry + + varlistentry +termvarnameServerCertificateFile=/varname/term + +listitemparaSSL CA certificate in PEM format./para/listitem + /varlistentry + + varlistentry +termvarnameTrustedCertificateFile=/varname/term + +listitemparaSSL CA certificate./para/listitem + /varlistentry + +/variablelist A bit short, but better than nothing, so I wouldn't mind applying it. Maybe Zbigniew can amend some more information. + + /refsect1 + + refsect1 + titleSee Also/title + para + citerefentryrefentrytitlesystemd-journal-remote/refentrytitlemanvolnum1/manvolnum/citerefentry I'd add some more entries here, including systemd(1) and systemd-journald(1). Otherwise looks good. I'll leave this to Zbigniew, though. I have not much clue of how journal-remote works, sorry! Thanks David + /para + /refsect1 + +/refentry diff --git a/man/systemd-journal-remote.xml b/man/systemd-journal-remote.xml index 2687662..d5bda63 100644 --- a/man/systemd-journal-remote.xml +++ b/man/systemd-journal-remote.xml @@ -310,6 +310,7 @@ systemd-journal-remote --url http://some.host:19531/ citerefentryrefentrytitlejournalctl/refentrytitlemanvolnum1/manvolnum/citerefentry, citerefentryrefentrytitlesystemd-journald.service/refentrytitlemanvolnum8/manvolnum/citerefentry,
Re: [systemd-devel] [PATCH] Create journal-remote.conf.xml to document the format of the configuration file for systemd-journal-remote
Hi On Mon, Mar 16, 2015 at 1:49 PM, Chris Morgan chmor...@gmail.com wrote: --- man/journal-remote.conf.xml| 111 + man/systemd-journal-remote.xml | 1 + 2 files changed, 112 insertions(+) create mode 100644 man/journal-remote.conf.xml diff --git a/man/journal-remote.conf.xml b/man/journal-remote.conf.xml new file mode 100644 index 000..84e07ee --- /dev/null +++ b/man/journal-remote.conf.xml @@ -0,0 +1,111 @@ +?xml version='1.0'? !--*-nxml-*-- +!DOCTYPE refentry PUBLIC -//OASIS//DTD DocBook XML V4.2//EN + http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd; + +!-- + This file is part of systemd. + + Copyright 2015 Chris Morgan + + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + systemd is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with systemd; If not, see http://www.gnu.org/licenses/. +-- + +refentry id=journal-remote.conf +xmlns:xi=http://www.w3.org/2001/XInclude; + refentryinfo +titlejournal-remote.conf/title +productnamesystemd/productname + +authorgroup + author +contribDeveloper/contrib +firstnameChris/firstname +surnameMorgan/surname +emailchmor...@gmail.com/email + /author +/authorgroup + /refentryinfo + + refmeta +refentrytitlejournal-remote.conf/refentrytitle +manvolnum5/manvolnum + /refmeta + + refnamediv +refnamejournal-remote.conf/refname missing: refnamejournal-remote.conf.d/refname +refpurposeJournal remote service configuration files/refpurpose + /refnamediv + + refsynopsisdiv +parafilename/etc/systemd/journal-remote.conf/filename/para +parafilename/etc/journal-remote.conf/filename/para +parafilename/run/journal-remote.conf/filename/para +parafilename/usr/local/lib/journal-remote.conf/filename/para +parafilename/usr/lib/journal-remote.conf/filename/para Where do all these come from? Shouldn't these be the same as in journal.conf.xml? Have a look at the CONF_DIRS_NULSTR macro in src/shared/macro.h, which defines the lookup directories. + /refsynopsisdiv + + refsect1 +titleDescription/title + +paraThese files configure various parameters of the systemd-remote-journal +application, + citerefentryrefentrytitlesystemd-journal-remote/refentrytitlemanvolnum8/manvolnum/citerefentry./para + + /refsect1 + How about: xi:include href=standard-conf.xml xpointer=main-conf / + refsect1 +titleOptions/title + +paraAll options are configured in the +literal[Journal]/literal section:/para The section is called [Remote]. + +variablelist + + varlistentry +termvarnameSplitMode=/varname/term + +listitemparaOne of literalhost/literal or literalnone/literal. +/para/listitem + /varlistentry + + varlistentry +termvarnameServerKeyFile=/varname/term + +listitemparaSSL key in PEM format/para/listitem + /varlistentry + + varlistentry +termvarnameServerCertificateFile=/varname/term + +listitemparaSSL CA certificate in PEM format./para/listitem + /varlistentry + + varlistentry +termvarnameTrustedCertificateFile=/varname/term + +listitemparaSSL CA certificate./para/listitem + /varlistentry + +/variablelist A bit short, but better than nothing, so I wouldn't mind applying it. Maybe Zbigniew can amend some more information. + + /refsect1 + + refsect1 + titleSee Also/title + para + citerefentryrefentrytitlesystemd-journal-remote/refentrytitlemanvolnum1/manvolnum/citerefentry I'd add some more entries here, including systemd(1) and systemd-journald(1). Otherwise looks good. I'll leave this to Zbigniew, though. I have not much clue of how journal-remote works, sorry! Thanks David + /para + /refsect1 + +/refentry diff --git a/man/systemd-journal-remote.xml b/man/systemd-journal-remote.xml index 2687662..d5bda63 100644 --- a/man/systemd-journal-remote.xml +++ b/man/systemd-journal-remote.xml @@ -310,6 +310,7 @@ systemd-journal-remote --url http://some.host:19531/ citerefentryrefentrytitlejournalctl/refentrytitlemanvolnum1/manvolnum/citerefentry, citerefentryrefentrytitlesystemd-journald.service/refentrytitlemanvolnum8/manvolnum/citerefentry,
Re: [systemd-devel] Boot ordering
Hello, Then, I still do not understand why my definition of a new target did not work. What is the difference between multi-user.target waiting for basic.target on the one hand and new.target waiting for basic.target and multi-user.target waiting for new.target on the other hand, aside from that one intermediate step? Everything else that is ordered before multi-user.target is started concurrently with your new.target. Hm. But I have no idea why for example gdm3 is started while my test script is still executing its sleep command. This is the output of systemd-analyze dot | grep gdm: shutdown.target-gdm.service [color=green]; shutdown.target-gdm.service [color=red]; graphical.target-gdm.service [color=grey66]; x-display-manager.target-gdm.service [color=green]; x-display-manager.target-gdm.service [color=black]; gdm.service-systemd-user-sessions.service [color=green]; gdm.service-getty@tty7.service [color=green]; gdm.service-plymouth-quit.service [color=green]; gdm.service-systemd-journald.socket [color=green]; gdm.service-basic.target [color=green]; gdm.service-system.slice [color=green]; gdm.service-basic.target [color=black]; gdm.service-x-display-manager.target [color=grey66]; gdm.service-system.slice [color=grey66]; gdm.service-getty@tty7.service [color=red]; gdm.service-plymouth-quit.service [color=red]; gdm.service-shutdown.target [color=red]; getty@tty7.service-gdm.service [color=red]; plymouth-quit.service-gdm.service [color=red]; plymouth-halt.service-gdm.service [color=green]; plymouth-reboot.service-gdm.service [color=green]; Color legend: black = Requires dark blue = Requisite dark grey = Wants red = Conflicts green = After If I understand this correctly, gdm is pulled into the boot process only by graphical.target, which according to target unit definitions should be after multi-user.target , which should be after my new.target ... The only thing I can imagine what causes my problem is that Debian jessie does not use only systemd units, but also init scripts in /etc/rc*.d/ and that this brakes my desired boot order. Regards Christoph ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] machinectl login system: Failed to get machine PTY: Unit container-getty@0.service failed to load: No such file or directory.
Hi On Tue, Mar 17, 2015 at 4:54 PM, Peter Paule systemd-de...@fedux.org wrote: Hi, starting a container works fine. I'm running now systemd from git. Last commit is 1b41981d9a62443d566df6bcabc1b5024e9f5e4a which changes things with container-getty. $ sudo machinectl start test-server $ sudo machinectl status test-server test-server Since: Tue 2015-03-17 16:41:34 CET; 3s ago Leader: 707 (systemd) Service: nspawn; class container Root: /var/lib/machines/test-server Iface: ve-test-server OS: CentOS Linux 7 (Core) Unit: systemd-nspawn@test\x2dserver.service ├─706 /usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --network-veth --machine=test-server ├─707 /usr/lib/systemd/systemd └─system.slice ├─dbus.service │ └─751 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation ├─systemd-journald.service │ └─724 /usr/lib/systemd/systemd-journald ├─systemd-logind.service │ └─750 /usr/lib/systemd/systemd-logind ├─console-getty.service │ └─757 /sbin/agetty --noclear -s console 115200 38400 9600 └─rails-app.service └─749 /usr/local/bin/ruby script/rails server Mar 17 16:41:35 test1.ib.vrnetze.de systemd-nspawn[706]: Starting Console Getty... Mar 17 16:41:35 test1.ib.vrnetze.de systemd-nspawn[706]: [ OK ] Started Console Getty. Mar 17 16:41:35 test1.ib.vrnetze.de systemd-nspawn[706]: [ OK ] Reached target Login Prompts. Mar 17 16:41:35 test1.ib.vrnetze.de systemd-nspawn[706]: [ OK ] Started Dump dmesg to /var/log/dmesg. Mar 17 16:41:35 test1.ib.vrnetze.de systemd-nspawn[706]: [ OK ] Started Login Service. Mar 17 16:41:36 test1.ib.vrnetze.de systemd-nspawn[706]: [FAILED] Failed to start LSB: Bring up/down networking. Mar 17 16:41:36 test1.ib.vrnetze.de systemd-nspawn[706]: See 'systemctl status network.service' for details. Mar 17 16:41:36 test1.ib.vrnetze.de systemd-nspawn[706]: [ OK ] Reached target Multi-User System. Mar 17 16:41:36 test1.ib.vrnetze.de systemd-nspawn[706]: CentOS Linux 7 (Core) Mar 17 16:41:36 test1.ib.vrnetze.de systemd-nspawn[706]: Kernel 3.18.6-1-ARCH on an x86_64 But when I tried to login I get the following error message: $ sudo machinectl login test-server Failed to get machine PTY: Unit container-getty@0.service failed to load: No such file or directory. The file container-getty@.service is available in your container? /sbin/agetty is available in your container? Thanks David I would like to troubleshoot Mar 17 16:41:36 test1.ib.vrnetze.de systemd-nspawn[706]: [FAILED] Failed to start LSB: Bring up/down networking. Mar 17 16:41:36 test1.ib.vrnetze.de systemd-nspawn[706]: See 'systemctl status network.service' for details. Is there another way to get a login prompt or fix the error above? /pp ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Needs help for on charging activation
Hi On Mon, Mar 9, 2015 at 3:21 PM, WaLyong Cho walyong@samsung.com wrote: Hi, I want to find best solution on our case. Our product is mobile device. But I don't think that is only problem of mobile device. That also can be problem of laptop. So, please comment to me. We have some of services are always running after system is started up as default. They don't need to be running always. They are just needed only charger is plugged in. So I thought lets only active them when only charger is plugged in. I thought two methods. method 1: Charger also can be detected by udev. So udev hardware activation can be used. I wrote below udev rules. SUBSYSTEM==power_supply, ENV{POWER_SUPPLY_CHARGE_NOW}==1, TAG+=systemd, ENV{SYSTEMD_WANTS}+=foo.service I guess the problem is, the .device unit is never stopped. Therefore, when you unplug it, it will not be stopped, as the device is still there. You could try this: SUBSYSTEM==power_supply, ENV{POWER_SUPPLY_CHARGE_NOW}==1, \ TAG+=systemd, ENV{SYSTEMD_WANTS}+=foo.service, \ ENV{SYSTEMD_READY}=1 SUBSYSTEM==power_supply, ENV{POWER_SUPPLY_CHARGE_NOW}==0, \ ENV{SYSTEMD_READY}=0 It's not particularly nice, as other dependencies on the power-supply device will now be borked. But as a hack it should work. I cannot think of a better way to support udev-activation based on attribute-changes. We never explicitly supported it. Hmm.. Thanks David It looked working well. foo.service is only activated when charger was plugged in. But I have some of problems with hardware activation. I want to be stopped foo.service when the charger is plugged out. As I know, this is impossible with udev hardware activation. To do this, foo.service have to determine the charger state itself and if the charger is plugged out, it have to stop itself. And it is working only at the first time. After foo.service was activated, I stopped foo.service by systemctl stop foo.service. And plug out and plug in the charger again. Then foo.service was not activated. (Is it normal? I did not try to find the reason. If you say it's a problem, then I will try to find.) method 2: We have another device daemon. Let's call that as deviced and its service name is deviced.service. deviced know about plug in/out of the charger. So, I made a new charging.target. foo.service have Wants= dependency for charging.target. (Installed on charging.target.wants.) And I added BindsTo=charging.target to foo.service. Then foo.service is activated well when the charging.target is entered to active state. And also deactivated when charging.target was deactivated. In this method, there are limitations what some of other daemon is needed and new charging.target is needed. Is there any more good way for this? I want to find best appropriate way. Thank you in advance for comment. WaLyong ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] CapabilityBoundingSet vs. ExecReload (kill)
Am 19.03.2015 um 18:04 schrieb Nusenu: That tells me that the ExecReload command (kill) is also restricted by CapabilityBoundingSet. Is this expected [..]? recent systemd has more problems in context of systemctl and restricting even PID1 itself in a way no longer be able to kill processes thanks for the links. so you are saying this is just a bug and indeed not expected? to be honest i don't know but i hope it's not excpected so it can go away sonner or later - while i understand the intention restrict even systemd pieces itself as much as possible some of this things are in the way when you try to secure a customized service as much as possible as example there is PermissionsStartOnly=true which helps to have a ExecStartPre script to ensure permissions and apply User/Group only to ExecStart the same don#t work for ReadOnlyDirectories which are unconditionally applied *before* ExecStartPre what i would like in some cases is to have a ExecStartPre script which takes acre of owner, group, permissions and so on on folders which are finally protected by ReadOnlyDirectories - in otehr words: make sure that the service binary has read-permissions without the need of a own root-unit ordered with Before/After beause that don't sale with Restart/Reload signature.asc Description: OpenPGP digital signature ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
Am 19.03.2015 um 18:00 schrieb Uoti Urpala: On Thu, 2015-03-19 at 18:41 +0300, Andrei Borzenkov wrote: On Thu, Mar 19, 2015 at 6:11 PM, Michael Biebl mbi...@gmail.com wrote: The summary of my reply was What you probably want, is hook into basic.target or sysinit.target, use DefaultDependencies=no, and specify the dependencies/orderings explicitly. Apparently, this didn't stick. The reality is, this question comes again and again; and the very fact that we had to add *-pre.target to allow such kind of ordering dependencies shows that the problem is real. What exactly is your definition of this question and the problem? I don't see any natural definition that would equally apply to what the original poster was trying to do and things like local-fs-pre.target that you have sometimes things where you want to make sure a specific order and say: don't start my target until basic target is started and don't start anything until all the services of my target are up it would make ordering way easier and give a ton of flexibility for unit-writers (which are not only distributions but end-users/admins with very specific environments) signature.asc Description: OpenPGP digital signature ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] experiments with 'minimal build'
В Thu, 19 Mar 2015 08:39:18 -0700 Alison Chaiken ali...@she-devel.com пишет: I ran systemd 219 with most recent patches and -PAM -AUDIT -SELINUX -IMA -APPARMOR -SMACK +SYSVINIT -UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL -XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN and, to compare, with +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN Checking memory RSS usage with 'sudo pmap -x -p 1' as suggested by Mantas, the former case uses about 5 MB, while the later consumes close to 9 MB.I'm sure that with statically compiled kernel and appropriate fstab that KMOD and BLKID are not needed either, but I doubt that they affect memory usage much. http://freedesktop.org/wiki/Software/systemd/MinimalBuilds/ says that the minimum requirements are udev and journald. I wonder if udev is really needed if the kernel is completely statically compiled and module loading is disabled? That is a common use case for many embedded devices. Systemd enumerates devices using udev, so any dependency on device won't work. May be it is not that important for embedded world, just something to keep in mind. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
[systemd-devel] bandwidth per service
Hi I see device specific ones at http://www.freedesktop.org/software/systemd/man/systemd.resource-control.html I was wondering, whether it would be feasible to add bandwidth limits either by size or percentage for any particular service? squid, torrent daemons etc could use this. Rahul ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH 0/2] some systemd unit changes
On 03/03/2015 12:28 PM, Martin Pitt wrote: Hello NFS developers, reposting the two patches inline as requested by Steve. I'm currently systemd-ifying our nfs-utils Ubuntu package. For testing I put the NFS server and client (i. e. localhost:/foo/bar mounts) on the same machine. With that I get long hangs during shutdown on stopping the NFS .mount units, as when that happens the NFS server is already shut down. This is certainly a corner case as you'd usually not NFS-mount a share from localhost; but fixing it is relatively simple with the first patch, which makes sure that if NFS server and client are installed, the server starts before the client, and the client stops before the server. For a client without installed server this is harmless as Before= does not imply a dependency. Likewise, for an NFS server which does not mount shares by itself, it's also a no-op as remote-fs.target is empty. This would only slightly reorder the boot sequence for machines which both are an NFS server and have some remote NFS mounts, but I don't see an issue with that. The second patch make NFS start earlier in the boot (i. e. before basic.target), so that you can do things like put /var/ on NFS, or have rcS SysV init scripts which depend on $remote_fs work. I tested this on both a server and a client. This is certainly a bit more intrusive, but could be worthwhile; what do you think? Thanks for considering, Committed steved. Martin ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On Thu, 2015-03-19 at 18:41 +0300, Andrei Borzenkov wrote: On Thu, Mar 19, 2015 at 6:11 PM, Michael Biebl mbi...@gmail.com wrote: The summary of my reply was What you probably want, is hook into basic.target or sysinit.target, use DefaultDependencies=no, and specify the dependencies/orderings explicitly. Apparently, this didn't stick. The reality is, this question comes again and again; and the very fact that we had to add *-pre.target to allow such kind of ordering dependencies shows that the problem is real. What exactly is your definition of this question and the problem? I don't see any natural definition that would equally apply to what the original poster was trying to do and things like local-fs-pre.target. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Needs help for on charging activation
On Thursday, March 19, 2015, David Herrmann dh.herrm...@gmail.com wrote: Hi On Mon, Mar 9, 2015 at 3:21 PM, WaLyong Cho walyong@samsung.com javascript:; wrote: Hi, I want to find best solution on our case. Our product is mobile device. But I don't think that is only problem of mobile device. That also can be problem of laptop. So, please comment to me. We have some of services are always running after system is started up as default. They don't need to be running always. They are just needed only charger is plugged in. So I thought lets only active them when only charger is plugged in. I thought two methods. method 1: Charger also can be detected by udev. So udev hardware activation can be used. I wrote below udev rules. SUBSYSTEM==power_supply, ENV{POWER_SUPPLY_CHARGE_NOW}==1, TAG+=systemd, ENV{SYSTEMD_WANTS}+=foo.service I guess the problem is, the .device unit is never stopped. Therefore, when you unplug it, it will not be stopped, as the device is still there. You could try this: SUBSYSTEM==power_supply, ENV{POWER_SUPPLY_CHARGE_NOW}==1, \ TAG+=systemd, ENV{SYSTEMD_WANTS}+=foo.service, \ ENV{SYSTEMD_READY}=1 SUBSYSTEM==power_supply, ENV{POWER_SUPPLY_CHARGE_NOW}==0, \ ENV{SYSTEMD_READY}=0 It's not particularly nice, as other dependencies on the power-supply device will now be borked. But as a hack it should work. There are some hard test-case. Connect disconnect within short time and several time. Then does it handle it at udev activation based service launch? Another one is that there are lots of services has dependency with charging. Then dose it add it all cases like above? Doesn't better to use target? E.g., charging.target? Thank you, Kyungmin Park I cannot think of a better way to support udev-activation based on attribute-changes. We never explicitly supported it. Hmm.. Thanks David It looked working well. foo.service is only activated when charger was plugged in. But I have some of problems with hardware activation. I want to be stopped foo.service when the charger is plugged out. As I know, this is impossible with udev hardware activation. To do this, foo.service have to determine the charger state itself and if the charger is plugged out, it have to stop itself. And it is working only at the first time. After foo.service was activated, I stopped foo.service by systemctl stop foo.service. And plug out and plug in the charger again. Then foo.service was not activated. (Is it normal? I did not try to find the reason. If you say it's a problem, then I will try to find.) method 2: We have another device daemon. Let's call that as deviced and its service name is deviced.service. deviced know about plug in/out of the charger. So, I made a new charging.target. foo.service have Wants= dependency for charging.target. (Installed on charging.target.wants.) And I added BindsTo=charging.target to foo.service. Then foo.service is activated well when the charging.target is entered to active state. And also deactivated when charging.target was deactivated. In this method, there are limitations what some of other daemon is needed and new charging.target is needed. Is there any more good way for this? I want to find best appropriate way. Thank you in advance for comment. WaLyong ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org javascript:; http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org javascript:; http://lists.freedesktop.org/mailman/listinfo/systemd-devel ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] timedated: Add a LocalOffset property for timezone offset
On 19.03.2015 15:17, David Herrmann wrote: Hi On Thu, Mar 19, 2015 at 2:58 PM, Stef Walter st...@redhat.com wrote: On 19.03.2015 14:39, David Herrmann wrote: Hmm, so this is a convenience call. You could just set tm.tm_zone locally and use mktime() with the value retrieved by Timezone? Yeah, the time-api is awful with global variables, but that's not really our fault, is it? I'm not really against this bus-call, but I also don't see the point. In Cockpit we're running on a different machine, and accessing timedated remotely. If this information is not available in timedated, we would need to add another DBus service to expose this information. Besides it fits in well with the TimeUSec property. But TimeUSec is UTC. If you retrieve TimeUSec and Timezone, you can reconstruct the time offset yourself, without any further information, right? No, the Timezone field is textual and unusable in a browser (unless you reimplement all of /usr/share/zoneinfo in the browser). There's much more information in a timezone file than the offset, so why expose the offset but not the other data? I would like to be able to do 'timedatectl list-timezones' over DBus as well. Why? This information should be the same on all machines, right? I don't see why the remote list is of any interest. Because Cockpit is running in a browser, and accesses DBus from a browser. But I guess we could implement our own DBus timedated2 interface which exposes the zoneinfo information. I just figured timedated would be a natural place for such an API. Such work would allow timedatectl to work properly with the --host argument. Currently the output of 'timedatectl status --host=machine-in-another-timezone.example.com' is full of invalid information. Yes, but it's the job of timedatectl to print information in the timezone of the remote host, not of the local host. It should retrieve the Timezone field and modify it's local timezone if you want the information to be relative to remote timezone, not the local timezone (which I'm not sure you really want). What exactly do you mean with full of invalid information? Example below. First set of timedatectl output is correct (since I SSH and then invoke timedatectl) ... second set has lots of incorrect fields, since timedatectl accesses timedated remotely: $ ssh 192.168.11.155 timedatectl Local time: Fr 2015-03-20 01:31:41 AEDT Universal time: Do 2015-03-19 14:31:41 UTC RTC time: Do 2015-03-19 14:31:41 Time zone: Australia/Tasmania (AEDT, +1100) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: yes Last DST change: DST began at So 2014-10-05 01:59:59 AEST So 2014-10-05 03:00:00 AEDT Next DST change: DST ends (the clock jumps one hour backwards) at So 2015-04-05 02:59:59 AEDT So 2015-04-05 02:00:00 AEST $ timedatectl --host=192.168.11.155 Local time: Do 2015-03-19 15:31:50 CET Universal time: Do 2015-03-19 14:31:50 UTC RTC time: Do 2015-03-19 14:31:50 Time zone: Australia/Tasmania (CET, +0100) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: no Last DST change: DST ended at So 2014-10-26 02:59:59 CEST So 2014-10-26 02:00:00 CET Next DST change: DST begins (the clock jumps one hour forward) at So 2015-03-29 01:59:59 CET So 2015-03-29 03:00:00 CEST In particular the following fields are incorrect in the second set of output: Local time: Do 2015-03-19 15:31:50 CET Time zone: Australia/Tasmania (CET, +0100) Last DST change: DST ended at So 2014-10-26 02:59:59 CEST So 2014-10-26 02:00:00 CET Next DST change: DST begins (the clock jumps one hour forward) at So 2015-03-29 01:59:59 CET So 2015-03-29 03:00:00 CEST Cheers, Stef signature.asc Description: OpenPGP digital signature ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On Thu, 2015-03-19 at 14:27 +0100, Christoph Pleger wrote: Then, I still do not understand why my definition of a new target did not work. What is the difference between multi-user.target waiting for basic.target on the one hand and new.target waiting for basic.target and multi-user.target waiting for new.target on the other hand, aside from that one intermediate step? You're misunderstanding some of the basics of unit ordering. That multi-user.target has an After: relationship to basic.target only means that multi-user.target ITSELF will not be considered to have been successfully started before basic.target has. This does not say anything about the ordering of any other units, such as the services that are started because multi-user.target wants them - the reason why some service is started at boot (such as which target pulls it in via a Wants/Requires relationship) says NOTHING about where the service can be ordered. If multi-user.target wants some service, it's up to the individual dependencies of that service to determine when the service can be started. Typically most services started by multi-user.target run after basic.target, but that's only because they each have the default configuration DefaultDependencies=yes, which implies After: basic.target. If some service has DefaultDependencies=no and defines no other ordering requirements, it can even be the first service to run at boot even if it's only wanted by multi-user.target. Thus your between basic.target and multi-user.target is not a well-defined requirement. My best guess about what you might actually want to achieve (assuming you aren't so thoroughly confused that it makes no sense at all) is a service that runs before any service that has DefaultDependencies enabled, and which requires (most of) basic.target. I think this would be most practically implemented as a DefaultDependencies=no service, which is wanted by basic.target, and which has explicit dependencies on (most of) other services that are wanted by basic.target. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
2015-03-19 15:46 GMT+01:00 Uoti Urpala uoti.urp...@pp1.inet.fi: On Thu, 2015-03-19 at 14:27 +0100, Christoph Pleger wrote: Then, I still do not understand why my definition of a new target did not work. What is the difference between multi-user.target waiting for basic.target on the one hand and new.target waiting for basic.target and multi-user.target waiting for new.target on the other hand, aside from that one intermediate step? You're misunderstanding some of the basics of unit ordering. That multi-user.target has an After: relationship to basic.target only means that multi-user.target ITSELF will not be considered to have been successfully started before basic.target has. This does not say anything about the ordering of any other units, such as the services that are started because multi-user.target wants them - the reason why some service is started at boot (such as which target pulls it in via a Wants/Requires relationship) says NOTHING about where the service can be ordered. If multi-user.target wants some service, it's up to the individual dependencies of that service to determine when the service can be started. Typically most services started by multi-user.target run after basic.target, but that's only because they each have the default configuration DefaultDependencies=yes, which implies After: basic.target. If some service has DefaultDependencies=no and defines no other ordering requirements, it can even be the first service to run at boot even if it's only wanted by multi-user.target. Thus your between basic.target and multi-user.target is not a well-defined requirement. My best guess about what you might actually want to achieve (assuming you aren't so thoroughly confused that it makes no sense at all) is a service that runs before any service that has DefaultDependencies enabled, and which requires (most of) basic.target. I think this would be most practically implemented as a DefaultDependencies=no service, which is wanted by basic.target, and which has explicit dependencies on (most of) other services that are wanted by basic.target. I already told Christoph that a week ago, since he was posting the same question on debian-user. The summary of my reply was What you probably want, is hook into basic.target or sysinit.target, use DefaultDependencies=no, and specify the dependencies/orderings explicitly. Apparently, this didn't stick. -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth? ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] experiments with 'minimal build'
On Fri, Mar 20, 2015 at 02:44:47AM +1100, Jeff Waugh wrote: On Fri, Mar 20, 2015 at 2:39 AM, Alison Chaiken ali...@she-devel.com wrote: http://freedesktop.org/wiki/Software/systemd/MinimalBuilds/ says that the minimum requirements are udev and journald. I wonder if udev is really needed if the kernel is completely statically compiled and module loading is disabled? That is a common use case for many embedded devices. Yeah, we still need udev to populate /dev and manage device changes, all of which is still relevant even if the kernel has everything built in. (devtmpfs doesn't let us dump udev, either.) Population of /dev happens from devtmpfs, not udev. udev doesn't create device nodes anymore, and hasn't for years from what I recall. thanks, greg k-h ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] experiments with 'minimal build'
On Thu, Mar 19, 2015 at 08:39:18AM -0700, Alison Chaiken wrote: I ran systemd 219 with most recent patches and -PAM -AUDIT -SELINUX -IMA -APPARMOR -SMACK +SYSVINIT -UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL -XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN and, to compare, with +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN Checking memory RSS usage with 'sudo pmap -x -p 1' as suggested by Mantas, the former case uses about 5 MB, while the later consumes close to 9 MB.I'm sure that with statically compiled kernel and appropriate fstab that KMOD and BLKID are not needed either, but I doubt that they affect memory usage much. http://freedesktop.org/wiki/Software/systemd/MinimalBuilds/ says that the minimum requirements are udev and journald. I wonder if udev is really needed if the kernel is completely statically compiled and module loading is disabled? That is a common use case for many embedded devices. static compilation doesn't affect the ability to plug in dynamic devices into your system, like USB :) That being said, you can run an embedded system without udev, just use the kernel devtmpfs and you should be fine. But watch out, you usually quickly need/want to determine your hardware types and locations, and need libudev, so I really recommend adding it. thanks, greg k-h ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] resolved: Do not add .busname dependencies, when compiling without kdbus.
2015-03-19 17:07 GMT+01:00 David Herrmann dh.herrm...@gmail.com: On Thu, Mar 19, 2015 at 4:59 PM, Michael Biebl mbi...@gmail.com wrote: So, +1 for Dimitri's patch. Looks correct to me. Unless someone objects, I'm planning on merging it. Yes, please go ahead. I missed that .busname is not installed without --enable-kdbus. Pushed as defa8e675b2903ad53e093bb2847c7256f0779a5 I made a small addition and added /systemd-resolved.service.m4 to .gitignore Thanks, Michael -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth? ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] resolved: Do not add .busname dependencies, when compiling without kdbus.
2015-03-19 15:02 GMT+01:00 Dimitri John Ledkov dimitri.j.led...@intel.com: On 19 March 2015 at 13:31, David Herrmann dh.herrm...@gmail.com wrote: Hi On Tue, Mar 17, 2015 at 4:37 PM, Dimitri John Ledkov dimitri.j.led...@intel.com wrote: --- Makefile.am | 2 +- units/systemd-resolved.service.in| 29 - units/systemd-resolved.service.m4.in | 31 +++ 3 files changed, 32 insertions(+), 30 deletions(-) delete mode 100644 units/systemd-resolved.service.in create mode 100644 units/systemd-resolved.service.m4.in There is already a: ConditionPathExists=/sys/fs/kdbus/0-system/ in the busname unit. Isn't that enough? The busname unit is not installed, when compiling without kdbus. Thus upon loading systemd-resolved.service, .busname unit is attempted to be loaded and ends up being not found, which imho is untidy. This also leads to those error messages in the journal: Mär 19 16:57:59 debian systemd[1]: Cannot add dependency job for unit org.freedesktop.resolve1.busname, ignoring: Unit org.freedesktop.resolve1.busname failed to load: No such file or directory. So, +1 for Dimitri's patch. Looks correct to me. Unless someone objects, I'm planning on merging it. Regards, Michael -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth? ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH] resolved: Do not add .busname dependencies, when compiling without kdbus.
Hi On Thu, Mar 19, 2015 at 4:59 PM, Michael Biebl mbi...@gmail.com wrote: 2015-03-19 15:02 GMT+01:00 Dimitri John Ledkov dimitri.j.led...@intel.com: On 19 March 2015 at 13:31, David Herrmann dh.herrm...@gmail.com wrote: Hi On Tue, Mar 17, 2015 at 4:37 PM, Dimitri John Ledkov dimitri.j.led...@intel.com wrote: --- Makefile.am | 2 +- units/systemd-resolved.service.in| 29 - units/systemd-resolved.service.m4.in | 31 +++ 3 files changed, 32 insertions(+), 30 deletions(-) delete mode 100644 units/systemd-resolved.service.in create mode 100644 units/systemd-resolved.service.m4.in There is already a: ConditionPathExists=/sys/fs/kdbus/0-system/ in the busname unit. Isn't that enough? The busname unit is not installed, when compiling without kdbus. Thus upon loading systemd-resolved.service, .busname unit is attempted to be loaded and ends up being not found, which imho is untidy. This also leads to those error messages in the journal: Mär 19 16:57:59 debian systemd[1]: Cannot add dependency job for unit org.freedesktop.resolve1.busname, ignoring: Unit org.freedesktop.resolve1.busname failed to load: No such file or directory. So, +1 for Dimitri's patch. Looks correct to me. Unless someone objects, I'm planning on merging it. Yes, please go ahead. I missed that .busname is not installed without --enable-kdbus. Thanks David ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] experiments with 'minimal build'
I ran systemd 219 with most recent patches and -PAM -AUDIT -SELINUX -IMA -APPARMOR -SMACK +SYSVINIT -UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL -XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN and, to compare, with +PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN Checking memory RSS usage with 'sudo pmap -x -p 1' as suggested by Mantas, the former case uses about 5 MB, while the later consumes close to 9 MB.I'm sure that with statically compiled kernel and appropriate fstab that KMOD and BLKID are not needed either, but I doubt that they affect memory usage much. http://freedesktop.org/wiki/Software/systemd/MinimalBuilds/ says that the minimum requirements are udev and journald. I wonder if udev is really needed if the kernel is completely statically compiled and module loading is disabled? That is a common use case for many embedded devices. Thanks, Alison -- Alison Chaiken ali...@she-devel.com 650-279-5600 http://{she-devel.com,exerciseforthereader.org} One consumes a great deal of silence in the course of becoming educated. -- Matthew B. Crawford ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] Boot ordering
On Thu, Mar 19, 2015 at 6:11 PM, Michael Biebl mbi...@gmail.com wrote: The summary of my reply was What you probably want, is hook into basic.target or sysinit.target, use DefaultDependencies=no, and specify the dependencies/orderings explicitly. Apparently, this didn't stick. The reality is, this question comes again and again; and the very fact that we had to add *-pre.target to allow such kind of ordering dependencies shows that the problem is real. ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] experiments with 'minimal build'
On Fri, Mar 20, 2015 at 2:39 AM, Alison Chaiken ali...@she-devel.com wrote: http://freedesktop.org/wiki/Software/systemd/MinimalBuilds/ says that the minimum requirements are udev and journald. I wonder if udev is really needed if the kernel is completely statically compiled and module loading is disabled? That is a common use case for many embedded devices. Yeah, we still need udev to populate /dev and manage device changes, all of which is still relevant even if the kernel has everything built in. (devtmpfs doesn't let us dump udev, either.) Thanks, Jeff ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel