1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-28 11:55:44 +03:00

rpm: avoid odd symbols in EOF indicator

The last line in this macros was actually "SYSTEMD_INLINE_EOF " with a space at the end,
but the shell was instructed to look for a line without space.

Macros %sysusers_create_inline and %tmpfiles_create_inline did not have this mistake.

An example:
[root@rosa-2019 bind-server]# cat /etc/passwd | grep named
[root@rosa-2019 bind-server]# cat /tmp/bs
systemd-sysusers --replace=/usr/lib/sysusers.d/named.conf - <<SYSTEMD_INLINE_EOF >/dev/null 2>&1 || :
u named - "BIND DNS Server" /var/lib/named
g named - -
m named named
SYSTEMD_INLINE_EOF
[root@rosa-2019 bind-server]# sh /tmp/bs
/tmp/bs: line 5: warning: here-document at line 1 delimited by end-of-file (wanted `SYSTEMD_INLINE_EOF')
[root@rosa-2019 bind-server]# bash /tmp/bs
/tmp/bs: line 5: warning: here-document at line 1 delimited by end-of-file (wanted `SYSTEMD_INLINE_EOF')
[root@rosa-2019 bind-server]# bash --version
GNU bash, version 5.0.17(1)-release (x86_64-openmandriva-linux-gnu)

The user and group named were NOT created!

Now I remove the trailing space after "SYSTEMD_INLINE_EOF" and rerun:
[root@rosa-2019 bind-server]# sh /tmp/bs
[root@rosa-2019 bind-server]# tail -n 1 /etc/group
named485:named
[root@rosa-2019 bind-server]#

The user and group have been created correctly.

Signed-off-by: Mikhail Novosyolov <m.novosyolov@rosalinux.ru>
This commit is contained in:
Mikhail Novosyolov 2020-07-11 17:08:00 +03:00
parent b159831b61
commit 93406fd379

View File

@ -104,7 +104,7 @@ fi \
%sysusers_create_inline() \ %sysusers_create_inline() \
[ -x @bindir@/systemd-sysusers ] && @bindir@/systemd-sysusers - <<SYSTEMD_INLINE_EOF || : \ [ -x @bindir@/systemd-sysusers ] && @bindir@/systemd-sysusers - <<SYSTEMD_INLINE_EOF || : \
%{?*} \ %{?*} \
SYSTEMD_INLINE_EOF \ SYSTEMD_INLINE_EOF\
%{nil} %{nil}
# This should be used by package installation scripts which require users or # This should be used by package installation scripts which require users or
@ -124,7 +124,7 @@ SYSTEMD_INLINE_EOF \
%{expand:%%{?!__systemd_twoargs_%#:%%{error:This macro requires two arguments}}} \ %{expand:%%{?!__systemd_twoargs_%#:%%{error:This macro requires two arguments}}} \
systemd-sysusers --replace=%_sysusersdir/%1.conf - <<SYSTEMD_INLINE_EOF >/dev/null 2>&1 || : \ systemd-sysusers --replace=%_sysusersdir/%1.conf - <<SYSTEMD_INLINE_EOF >/dev/null 2>&1 || : \
%(cat %2) \ %(cat %2) \
SYSTEMD_INLINE_EOF \ SYSTEMD_INLINE_EOF\
%{nil} %{nil}
# This may be used by package installation scripts to create files according to # This may be used by package installation scripts to create files according to
@ -144,7 +144,7 @@ SYSTEMD_INLINE_EOF \
%{expand:%%{?!__systemd_twoargs_%#:%%{error:This macro requires two arguments}}} \ %{expand:%%{?!__systemd_twoargs_%#:%%{error:This macro requires two arguments}}} \
systemd-tmpfiles --replace=%_tmpfilesdir/%1.conf --create - <<SYSTEMD_INLINE_EOF >/dev/null 2>&1 || : \ systemd-tmpfiles --replace=%_tmpfilesdir/%1.conf --create - <<SYSTEMD_INLINE_EOF >/dev/null 2>&1 || : \
%(cat %2) \ %(cat %2) \
SYSTEMD_INLINE_EOF \ SYSTEMD_INLINE_EOF\
%{nil} %{nil}
%sysctl_apply() \ %sysctl_apply() \