readlink -f illegal operation under FreeBSD7.1 #1033

anonymous-piwik-user opened this Issue Nov 2, 2009 · 10 comments

3 participants


in misc/cron/ line 26:

PIWIK_CRON_FOLDER=dirname $(readlink -f ${0})

Gives an error:
readlink: illegal option -- f
usage: readlink [file ...
usage: dirname string

Testing readlink on Scientific Linux SL release 5.3

readlink -f /path/to/file

also gives an error

readlink: Need exactly one argument.
Try `readlink --help' for more information.


Remove the -f and report back to us.


man readlink says:
'When invoked as readlink, only the target of the symbolic link is
printed. If the given argument is not a symbolic link, readlink will
print nothing and exit with an error.'

I've changed it to
PIWIK_CRON_FOLDER=dirname ${0}

To make my local version work


Ah yes, thanks for the reminder. That's why we use -f.


act_path() {
    local pathname="$1"
    readlink -f "$pathname" 2>/dev/null || \
    realpath "$pathname" 2>/dev/null || \
    type -P "$pathname" 2>/dev/null

ARCHIVE=`act_path ${0}`

The above works for me on FreeBSD and Scientific Linux SL

Piwik Open Source Analytics member

ogs22, do you think you could submit a version that works on freebsd-SL linux and on debian/other linux? it would be very useful. Thanks


Sorry yes I should have said the above code should work on any Linux version the original code worked on as it tries the readlink -f first.

I'll attach the modified

Piwik Open Source Analytics member

ogs22, could you post a diff instead of the full file please? thx


In [1568], fixes #1033 - patch; thanks ogs22

@anonymous-piwik-user anonymous-piwik-user added this to the Piwik 0.5 milestone Jul 8, 2014
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment