We were seeing some issues when trying to create our new database alias using symlinks on certain filesystems (see FS#19907). Have a fallback method in place where we first try a symlink, then a hard link, then just copy the database if all else fails. Signed-off-by: Dan McGee <dan@archlinux.org> --- scripts/repo-add.sh.in | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index 7bde600..2838f81 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -487,7 +487,10 @@ if (( success )); then [[ -f $REPO_DB_FILE ]] && mv -f "$REPO_DB_FILE" "${REPO_DB_FILE}.old" [[ -f $tmpdir/$filename ]] && mv "$tmpdir/$filename" "$REPO_DB_FILE" - ln -sf "$REPO_DB_FILE" "${REPO_DB_FILE%.tar.*}" + dblink="${REPO_DB_FILE%.tar.*}" + ln -sf "$REPO_DB_FILE" "$dblink" 2>/dev/null || \ + ln -f "$REPO_DB_FILE" "$dblink" 2>/dev/null || \ + cp "$REPO_DB_FILE" "$dblink" else msg "$(gettext "No packages modified, nothing to do.")" exit 1 -- 1.7.1