Ninjatrappeur's systemd working tree
Go to file
Ray Strode b82f58bfe3 basic: support default and alternate values for env expansion
Sometimes it's useful to provide a default value during an environment
expansion, if the environment variable isn't already set.

For instance $XDG_DATA_DIRS is suppose to default to:

/usr/local/share/:/usr/share/

if it's not yet set. That means callers wishing to augment
XDG_DATA_DIRS need to manually add those two values.

This commit changes replace_env to support the following shell
compatible default value syntax:

XDG_DATA_DIRS=/foo:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share}

Likewise, it's useful to provide an alternate value during an
environment expansion, if the environment variable isn't already set.

For instance, $LD_LIBRARY_PATH will inadvertently search the current
working directory if it starts or ends with a colon, so the following
is usually wrong:

LD_LIBRARY_PATH=/foo/lib:${LD_LIBRARY_PATH}

To address that, this changes replace_env to support the following
shell compatible alternate value syntax:

LD_LIBRARY_PATH=/foo/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

[zj: gate the new syntax under REPLACE_ENV_ALLOW_EXTENDED switch, so
existing callers are not modified.]
2017-02-20 23:32:53 -05:00
.github CONTRIBUTING: reword the part about unsetting the label (#4716) 2016-11-23 08:52:19 +01:00
.mkosi Merge pull request #4879 from poettering/systemd 2017-01-14 21:29:27 -05:00
catalog catalog: update Russian translation (#5232) 2017-02-05 11:56:47 -05:00
coccinelle tree-wide: drop NULL sentinel from strjoin 2016-10-23 11:43:27 -04:00
docs docs: add .gitignore 2015-07-06 17:47:38 +02:00
factory/etc factory: remove broken pam_limits 2014-07-30 15:21:54 +02:00
hwdb hwdb: Asus TP500LB accelerometer support 2017-01-28 23:48:55 +01:00
m4 build-sys: Perform flag tests in context to existing flags 2016-02-06 14:57:46 +01:00
man basic: support default and alternate values for env expansion 2017-02-20 23:32:53 -05:00
network network: allow LLDP packets to cross non-customer bridges for container network interfaces 2016-05-09 15:45:31 +02:00
po l10n: fix file permissions of Indonesian translation 2017-02-07 19:02:01 +01:00
rules rules: allow systemd to manage UBI volumes (#5214) 2017-02-03 09:26:50 +01:00
shell-completion systemctl: restore --failed (#5198) 2017-02-02 00:23:46 +01:00
src basic: support default and alternate values for env expansion 2017-02-20 23:32:53 -05:00
sysctl.d sysctl.d: replace URL of SysRq key documentation (#5274) 2017-02-08 19:42:43 +01:00
system-preset unit: drop console-shell.service (#4298) (#4325) 2016-10-10 12:06:26 +02:00
sysusers.d remove bus-proxyd 2016-02-12 19:10:01 +01:00
test tests: show journal on systemd-resolved.service failures (#5297) 2017-02-09 21:30:44 -05:00
tmpfiles.d tmpfiles.d: set primary group rights to r-w (#5265) 2017-02-07 18:56:55 -05:00
tools tools/catalog-report.py: a script to scour the journal for bad catalog entries 2016-12-11 15:43:16 -05:00
units Introduce '## ' as internal comment prefix in .in files and filter out a comment (#5289) 2017-02-09 16:28:37 +01:00
xorg login: support user-bus on dbus1 2015-08-31 18:12:37 +02:00
.dir-locals.el editors: only extend line width to 119 for C and XML files 2016-02-10 12:29:32 +01:00
.editorconfig editors: only extend line width to 119 for C and XML files 2016-02-10 12:29:32 +01:00
.gitattributes git: indicate that tabs are never OK in the systemd tree 2013-10-30 02:25:38 +01:00
.gitignore environment-generator: new generator to peruse environment.d 2017-02-20 18:49:14 -05:00
.mailmap NEWS: add contributor list to news file 2016-11-02 15:52:57 -06:00
.travis.yml remove gudev and gtk-doc 2015-06-03 00:22:53 +02:00
.vimrc vimrc: fix indentation logic for our docbook xml files 2016-04-29 12:23:34 +02:00
.ycm_extra_conf.py ycm: update flag blacklist 2014-06-04 15:41:10 -04:00
autogen.sh build-sys/autogen: don't use bashisms (#4489) 2016-10-25 19:39:48 -04:00
CODING_STYLE tree-wide: set SA_RESTART for signal handlers we install 2016-12-01 12:41:17 +01:00
configure.ac build-sys: make environment.d support conditional 2017-02-20 23:32:53 -05:00
DISTRO_PORTING build-sys: Allow disabling installation of pam config snippet 2016-10-12 14:09:14 -03:00
ENVIRONMENT.md util-lib: read $SYSTEMD_PROC_CMDLINE if set when looking for the kernel cmdline 2016-12-21 19:07:55 +01:00
HACKING documentation: add a short document describing how to test your systemd build tree (#3763) 2016-07-20 22:15:54 -04:00
LICENSE.GPL2 relicense to LGPLv2.1 (with exceptions) 2012-04-12 00:24:39 +02:00
LICENSE.LGPL2.1 licence: remove references to old FSF address 2012-12-17 11:41:31 +01:00
Makefile-man.am build-sys,man: load /etc/environment and describe the new environment.d syntax 2017-02-20 18:49:14 -05:00
Makefile.am build-sys: make environment.d support conditional 2017-02-20 23:32:53 -05:00
mkosi.build mkosi: change /etc/issue text a bit for mkosi images build from systemd tree 2016-12-14 18:29:30 +01:00
mkosi.default mkosi: create .mkosi directory 2016-10-06 11:53:58 -04:00
NEWS Merge pull request #4879 from poettering/systemd 2017-01-14 21:29:27 -05:00
README README: suffix unit file options with "=" 2017-02-06 21:13:29 +01:00
README.md documentation: add a short document describing how to test your systemd build tree (#3763) 2016-07-20 22:15:54 -04:00
TODO Merge pull request #4962 from poettering/root-directory-2 2017-02-08 23:05:05 -05:00

systemd - System and Service Manager

Build Status
Coverity Scan Status

Details

General information about systemd can be found in the systemd Wiki.

Information about build requirements are provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the HACKING file for information how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.