summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-04-13tmpfiles: Add +C attrib to the journal files directoriesGoffredo Baroncelli
Add the +C file attribute (NOCOW) to the journal directories, so that the flag is inherited automatically for new journal files created in them. The journal write pattern is problematic on btrfs file systems as it results in badly fragmented files when copy-on-write (COW) is used: the performances decreases substantially over time. To avoid this issue, this tmpfile.d snippet sets the NOCOW attribute to the journal files directories, so newly created journal files inherit the NCOOW attribute that disables copy-on-write. Be aware that the NOCOW file attribute also disables btrfs checksumming for these files, and thus prevents btrfs from rebuilding corrupted files on a RAID filesystem. In a single disk filesystems (or filesystems without redundancy) it is safe to use the NOCOW flags without drawbacks, since the journal files contain their own checksumming.
2015-04-13update TODOLennart Poettering
2015-04-13man: slightly fewer paragraphs can help readabilityLennart Poettering
2015-04-13man: fix examples indentation in tmpfiles.d(5)Lennart Poettering
2015-04-13man: add information about more lines to explanation of argument fieldLennart Poettering
2015-04-13man: document which tmpfiles line types follow symlinksLennart Poettering
Generally, we will not follow symlinks, except for "w". Avoid documentation for now for fifo, device node, directory lines, which currently follow symlinks but better shouldn't.
2015-04-13tmpfiles: don't follow symlinks when adjusting ACLs, fille attributes, ↵Lennart Poettering
access modes or ownership
2015-04-13hwdb: Fix wireless switch on Dell LatitudeMartin Pitt
It does not generate a release event. https://launchpad.net/bugs/1441849
2015-04-12journal-gatewayd: use (void) to silence coverityZbigniew Jędrzejewski-Szmek
CID #996297.
2015-04-12journal: use (void) to silence coverityZbigniew Jędrzejewski-Szmek
This shouldn't really fail and anyway not much we can do about it. CID #996292, #996294, #996295.
2015-04-12pam_system: use (void) to silence coverityZbigniew Jędrzejewski-Szmek
CID #996284.
2015-04-12man: add link to glib in sd_event_run(3)Zbigniew Jędrzejewski-Szmek
2015-04-12po: update Polish translationPiotr Drąg
https://bugs.freedesktop.org/show_bug.cgi?id=89989
2015-04-12sysv-generator: free memory allocated for service stubsZbigniew Jędrzejewski-Szmek
2015-04-12shared/hashmap: normalize whitespaceZbigniew Jędrzejewski-Szmek
2015-04-12sysv-generator: always log on oomZbigniew Jędrzejewski-Szmek
This code appears to follow the following convention: - all errors are logged at point of origin - oom errors abort execution, non-oom errors are logged but execution continues. Make sure all ooms result in a log message, and remove warning which could not be reached. Downgrade non-fatal errors to warnings.
2015-04-12sysv-generator: split out two nested blocks into functionsZbigniew Jędrzejewski-Szmek
No functional change intended. Just splitting this out to make it easier to edit in the future.
2015-04-12dhcp: yes, infiniband has the larger MAC address length, but let the ↵Lennart Poettering
compuler figure that out...
2015-04-12efi-boot-generator: need need to proceed if /boot is already a mount pointLennart Poettering
2015-04-12gpt-generator: Find device on a stateless systemTobias Hunger
A stateless system has a tmpfs as root file system. That obviously does not have any block device associated with it. So try falling back to the device of the /usr filesystem if the root filesystem fails.
2015-04-12python-systemd: fix is_socket_inet to cope with portsSimon Farnsworth
Just a couple of trivial oversights.
2015-04-12efi-boot-generator: Continue if /boot does not existTobias Hunger
/boot does not exist on a stateless system, so do not get confused by that.
2015-04-12bus-util: add articles to explanation messagesZbigniew Jędrzejewski-Szmek
We are talking about one member of a group of things (resource limits, signals, timeouts), without specifying which one. An indenfinite article is in order. When we are talking about the control process, it's a specific one, so the definite article is used.
2015-04-12sysv-generator: free LookupPaths also on errorZbigniew Jędrzejewski-Szmek
Followup for 7a03974a6f.
2015-04-12udev-builtin-keyboard: make error messages more standardZbigniew Jędrzejewski-Szmek
- No need to add "Error, " prefix, we already have that as metadata. - Also use double quotes for path names, as in most other places. - Remove stray newline at end of message. - Downgrade error messages after which we continue to warnings.
2015-04-12rules: finish incomplete renameZbigniew Jędrzejewski-Szmek
Fixup for 51c0c2869845a058268d54c3111d55d0dd485704.
2015-04-12tmpfiles: use qsort_safeZbigniew Jędrzejewski-Szmek
2015-04-11sysv-generator: fix mem leaksThomas Hindoe Paaboel Andersen
2015-04-11bus: implement bus_path_{en,de}code_unique()David Herrmann
Whenever we provide a bus API that allows clients to create and manage server-side objects, we need to provide a unique name for these objects. There are two ways to provide them: 1) Let the server choose a name and return it as method reply. 2) Let the client pass its name of choice in the method arguments. The first method is the easiest one to implement. However, it suffers from a race condition: If a client creates an object asynchronously, it cannot destroy that object until it received the method reply. It cannot know the name of the new object, thus, it cannot destroy it. Furthermore, this method enforces a round-trip. If the client _depends_ on the method call to succeed (eg., it would close() the connection if it failed), the client usually has no reason to wait for the method reply. Instead, the client can immediately schedule further method calls on the newly created object (in case the API guarantees in-order method-call handling). The second method fixes both problems: The client passes an object name with the method-call. The server uses it to create the object. Therefore, the client can schedule object destruction even if the object-creation hasn't finished, yet (again, requiring in-order method-call handling). Furthermore, the client can schedule further method calls on the newly created object, before the constructor returned. There're two problems to solve, though: 1) Object names are usually defined via dbus object paths, which are usually globally namespaced. Therefore, multiple clients must be able to choose unique object names without interference. 2) If multiple libraries share the same bus connection, they must be able to choose unique object names without interference. The first problem is solved easily by prefixing a name with the unique-bus-name of a connection. The server side must enforce this and reject any other name. The second problem is solved by providing unique suffixes from within sd-bus. As long as sd-bus always returns a fresh new ID, if requested, multiple libraries will never interfere. This implementation re-uses bus->cookie as ID generator, which already provides unique IDs for each bus connection. This patch introduces two new helpers: bus_path_encode_unique(sd_bus *bus, const char *prefix, const char *sender_id, const char *external_id, char **ret_path); This creates a new object-path via the template '/prefix/sender_id/external_id'. That is, it appends two new labels to the given prefix. If 'sender_id' is NULL, it will use bus->unique_name, if 'external_id' is NULL, it will allocate a fresh, unique cookie from bus->cookie. bus_path_decode_unique(const char *path, const char *prefix, char **ret_sender, char **ret_external); This reverses what bus_path_encode_unique() did. It parses 'path' from the template '/prefix/sender/external' and returns both suffix-labels in 'ret_sender' and 'ret_external'. In case the template does not match, 0 is returned and both output arguments are set to NULL. Otherwise, 1 is returned and the output arguments contain the decoded labels. Note: Client-side allocated IDs are inspired by the Wayland protocol (which itself was inspired by X11). Wayland uses those IDs heavily to avoid round-trips. Clients can create server-side objects and send method calls without any round-trip and waiting for any object IDs to be returned. But unlike Wayland, DBus uses gobally namespaced object names. Therefore, we have to add the extra step by adding the unique-name of the bus connection.
2015-04-11bus: implement bus_label_unescape_n()David Herrmann
This is like bus_label_unescape() but takes a maximum length instead of relying on NULL-terminated strings. This is highly useful to unescape labels that are not at the end of a path.
2015-04-11hashmap: return NULL from destructorDavid Herrmann
We _always_ return NULL from destructors to allow direct assignments to the variable holding the object. Especially on hashmaps, which treat NULL as empty hashmap, this is pretty neat.
2015-04-11udevd: fix synchronization with settle when handling inotify eventsDaniel Drake
udev uses inotify to implement a scheme where when the user closes a writable device node, a change uevent is forcefully generated. In the case of block devices, it actually requests a partition rescan. This currently can't be synchronized with "udevadm settle", i.e. this is not reliable in a script: sfdisk --change-id /dev/sda 1 81 udevadm settle mount /dev/sda1 /foo The settle call doesn't synchronize there, so at the same time we try to mount the device, udevd is busy removing the partition device nodes and readding them again. The mount call often happens in that moment where the partition node has been removed but not readded yet. This exact issue was fixed long ago: http://git.kernel.org/cgit/linux/hotplug/udev.git/commit/?id=bb38678e3ccc02bcd970ccde3d8166a40edf92d3 but that fix is no longer valid now that sequence numbers are no longer used. Fix this by forcing another mainloop iteration after handling inotify events before unblocking settle. If the inotify event caused us to generate a "change" event, we'll pick that up in the following loop iteration, before we reach the end of the loop where we respond to settle's control message, unblocking it.
2015-04-11hwdb: add Samsung ATIV Book 6 / 8Gavin Li
This adds support for the keyboard illumination keys and fixes Fn+F1.
2015-04-11build: allow setting OBJCOPYMarc-Antoine Perennou
2015-04-11configure: allow setting EFI_CCMarc-Antoine Perennou
2015-04-11efi: use EFI_CCMarc-Antoine Perennou
2015-04-11factory: install to datadirMarc-Antoine Perennou
2015-04-11udev: restore udevadm settle timeoutNir Soffer
Commit 9ea28c55a2 (udev: remove seqnum API and all assumptions about seqnums) introduced a regresion, ignoring the timeout option when waiting until the event queue is empty. Previously, if the udev event queue was not empty when the timeout was expired, udevadm settle was returning with exit code 1. To check if the queue is empty, you could invoke udevadm settle with timeout=0. This patch restores the previous behavior. (David: fixed timeout==0 handling and dropped redundant assignment)
2015-04-11rules: fix tests for removable stateMatthew Garrett
We only care about whether our direct parent is removable, not whether any further points up the tree are - the kernel will take care of policy for those itself. This enables autosuspend on devices where the root hub reports that its removable state is unknown.
2015-04-11README: glibc version 2.16 is required for IP_UNICAST_IFŁukasz Stelmach
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=be08eda5 https://bugs.gentoo.org/show_bug.cgi?id=546194
2015-04-11TODO: add 13790add4 as blocker for v220David Herrmann
2015-04-11build: add support for AARCH64 EFIKoen Kooi
Aarch64 and ARM32 lack an EFI capable objcopy, so use the ldflags + -O binary trick gnu-efi and the Red Hat shimloader are using. (David: rebase to systemd-git and added EFI_ prefixes)
2015-04-11boot/util: add ticks_read() stubKoen Kooi
2015-04-11build: add AARCH64 efi supportKoen Kooi
This is just plumbing to add ARCH_AARCH64 EFI support for makefile tests and defining the machine name.
2015-04-11boot/util: use x86 ASM only on x86 platforms.Koen Kooi
2015-04-11build: support non-x86 EFI buildsKoen Kooi
Move the no-mmx/no-sse CFLAGS to X86-64 and IA32 defines in preparation for ARM32 and Aarch64 support.
2015-04-11hwdb: set the resolution for a couple of bcm5974 touchpadsPeter Hutterer
Verified for the 5,1 Macbook, the others are guesses based on the list of supported devices of the moshi trackpad protector. http://www.moshi.com/trackpad-protector-trackguard-macbook-pro#silver Resolution calculated based on the min/max settings set in the kernel driver, divided by the physical size. This is probably slightly off, but still better than no resolution at all. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-04-11udev: builtin-keyboard: add support for EVDEV_ABS_*Peter Hutterer
Parse properties in the form EVDEV_ABS_00="<min>:<max>:<res>:<fuzz>:<flat>" and apply 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. To avoid multiple hwdb invocations for the same device, replace the hwdb "keyboard:" prefix with "evdev:" and drop the separate 60-keyboard.rules file. The new 60-evdev.rules is called for all event nodes anyway, we don't need a separate rules file and second callout to the hwdb builtin.
2015-04-11udev: builtin-keyboard: invert a conditionPeter Hutterer
No functional changes, just to make the next patch easier to review
2015-04-11udev: builtin-keyboard: move actual key mapping to a helper functionPeter Hutterer
No changes in the mapping, but previously we opened the device only on successful parsing. Now we open the mapping as soon as we have a value that looks interesting. Since errors are supposed to be the exception, not the rule, this is probably fine.