On Fri, May 16, 2014 at 12:30 AM, Lennart Poettering <lenn...@poettering.net> wrote: > On Wed, 07.05.14 08:54, Emil Sjölin (emil.sjo...@axis.com) wrote: > >> This fix makes sure that the package installation will work >> on systems using versions of 'GNU coreutils' older than 8.16. >> >> Please see tools/lnr.sh for limitations for this fix. >> --- >> configure.ac | 16 ++++++++++ >> tools/lnr.sh | 93 >> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 109 insertions(+) >> create mode 100755 tools/lnr.sh >> >> diff --git a/configure.ac b/configure.ac >> index ead697b..399a52f 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -315,6 +315,22 @@ fi >> AM_CONDITIONAL(ENABLE_COVERAGE, [test "$have_coverage" = "yes"]) >> >> # >> ------------------------------------------------------------------------------ >> +ln_relative_support=yes >> +AC_CHECK_PROG(ln_found, [ln], [yes], [no]) >> +if test "x$ln_found" = xno ; then >> + AC_MSG_ERROR([*** ln support requested but the program was not >> found]) >> +else >> + ln_version_major="`ln --version | head -1 | cut -d ' ' -f 4 | cut >> -d '.' -f 1`" >> + ln_version_minor="`ln --version | head -1 | cut -d ' ' -f 4 | >> cut -d '.' -f 2`" > > Isn't "head -n 1" more correct? > >> + if test "$ln_version_major" -lt 8 || test "$ln_version_major" -eq 8 >> -a "$ln_version_minor" -lt 16; then >> + ln_relative_support=no >> + fi >> + if test "x$ln_relative_support" = "xno"; then >> + LN_S=$(echo "$LN_S" | sed >> s:"ln":""$srcdir"\/tools\/lnr.sh":) > > Shouldn't this be "sed -e"? > >> + fi >> +fi > > Hmm, if we ship this anyway, why not always use it? Otherwise it would > too easily bitrot... > > THis would also allow removing much of the shell pipeline in the > configure script for this. I mean, these commands have changed all the > time in the past, for example sed quite a bit... > >> + >> +# >> ------------------------------------------------------------------------------ >> have_kmod=no >> AC_ARG_ENABLE(kmod, AS_HELP_STRING([--disable-kmod], [disable loadable >> modules support])) >> if test "x$enable_kmod" != "xno"; then >> diff --git a/tools/lnr.sh b/tools/lnr.sh >> new file mode 100755 >> index 0000000..74e1644 >> --- /dev/null >> +++ b/tools/lnr.sh >> @@ -0,0 +1,93 @@ > > No shebang? > >> +# This script makes the 'ln --relative' command work as expected on a >> system where the >> +# 'relative' option of 'ln' is not supported. >> +# >> +# NOTE: >> +# The script assumes that the 'relative' option of 'ln' is used with any >> +# of the following syntaxes: >> +# '--relative' >> +# '-r' >> +# >> +# The script will NOT handle combined options e.g. '-rf', '-ir' etc. >> +# The script will also only handle the 1st form of the 'ln' command (see >> man page >> +# for the 'ln' command for the different forms). >> +# >> + >> + >> +while [ $# -gt 2 ]; do >> + string="$1" >> + if [ "${string#-*}" != "$string" ]; then >> + # argument is an option >> + if [ "$string" = "$relop_1" ] || [ "$string" = >> "$relop_2" ]; then > > Why not "-o" instead of "] || ["? > > I'd really prefer if somebody who's a true shell guru could look over > this. Harald? (Or Zbigniew?)
I do not think we should do such hacks in upstream systemd. It is a commonly available feature since quite some years, and building without chroot on old systems is a bit too exotic to justify carrying this rather large work around upstream. We do not accept distro-specific, not commonly needed things in the upstream code base because we do not want to maintain them, the same seems to apply to this. Thanks, Kay _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel