[pacman-dev] [PATCH] Remove -f option from ln for POSIX compliance (close FS#24893)
Dan McGee
dpmcgee at gmail.com
Sun Jun 26 15:46:20 EDT 2011
On Sun, Jun 26, 2011 at 2:13 PM, Eric Bélanger <snowmaniscool at gmail.com> wrote:
Looks mostly good, only one comment below.
d> Signed-off-by: Eric Bélanger <snowmaniscool at gmail.com>
> ---
> scripts/makepkg.sh.in | 18 ++++++++++++------
> scripts/repo-add.sh.in | 10 ++++++----
> 2 files changed, 18 insertions(+), 10 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 8d082a2..ed5cdef 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -518,7 +518,8 @@ download_sources() {
> local file=$(get_filepath "$netfile" || true)
> if [[ -n "$file" ]]; then
> msg2 "$(gettext "Found %s")" "${file##*/}"
> - ln -sf "$file" "$srcdir/"
> + rm -f "$srcdir/$file"
> + ln -s "$file" "$srcdir/"
Is this behavior (specifying a directory for the link name)
POSIX-compliant or guaranteed by anything except GNU ls?
> continue
> fi
>
> @@ -878,8 +879,8 @@ tidy_install() {
> # update symlinks to this manpage
> find ${MAN_DIRS[@]} -lname "$file" 2>/dev/null |
> while read link ; do
> - rm -f "$link"
> - ln -sf "${file}.gz" "${link}.gz"
> + rm -f "$link" "${link}.gz"
> + ln -s "${file}.gz" "${link}.gz"
> done
>
> # check file still exists (potentially already compressed due to hardlink)
> @@ -1187,9 +1188,13 @@ create_package() {
> create_signature "$pkg_file"
>
> if (( ! ret )) && [[ ! "$PKGDEST" -ef "${startdir}" ]]; then
> - ln -sf "${pkg_file}" "${pkg_file/$PKGDEST/$startdir}"
> + rm -f "${pkg_file/$PKGDEST/$startdir}"
> + ln -s "${pkg_file}" "${pkg_file/$PKGDEST/$startdir}"
> ret=$?
> - [[ -f $pkg_file.sig ]] && ln -sf "$pkg_file.sig" "${pkg_file/$PKGDEST/$startdir}.sig"
> + if [[ -f $pkg_file.sig ]]; then
> + rm -f "${pkg_file/$PKGDEST/$startdir}.sig"
> + ln -s "$pkg_file.sig" "${pkg_file/$PKGDEST/$startdir}.sig"
> + fi
> fi
>
> if (( ret )); then
> @@ -1276,7 +1281,8 @@ create_srcpackage() {
> fi
>
> if (( ! ret )) && [[ ! "$SRCPKGDEST" -ef "${startdir}" ]]; then
> - ln -sf "${pkg_file}" "${pkg_file/$SRCPKGDEST/$startdir}"
> + rm -f "${pkg_file/$SRCPKGDEST/$startdir}"
> + ln -s "${pkg_file}" "${pkg_file/$SRCPKGDEST/$startdir}"
> ret=$?
> fi
>
> diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
> index e970da3..b125035 100644
> --- a/scripts/repo-add.sh.in
> +++ b/scripts/repo-add.sh.in
> @@ -613,12 +613,14 @@ if (( success )); then
> [[ -f $tmpdir/$filename.sig ]] && mv "$tmpdir/$filename.sig" "$REPO_DB_FILE.sig"
> dblink="${REPO_DB_FILE%.tar*}"
> target=${REPO_DB_FILE##*/}
> - ln -sf "$target" "$dblink" 2>/dev/null || \
> - ln -f "$target" "$dblink" 2>/dev/null || \
> + rm -f "$dblink"
> + ln -s "$target" "$dblink" 2>/dev/null || \
> + ln "$target" "$dblink" 2>/dev/null || \
> cp "$REPO_DB_FILE" "$dblink"
> if [[ -f "$target.sig" ]]; then
> - ln -sf "$target.sig" "$dblink.sig" 2>/dev/null || \
> - ln -f "$target.sig" "$dblink.sig" 2>/dev/null || \
> + rm -f "$dblink.sig"
> + ln -s "$target.sig" "$dblink.sig" 2>/dev/null || \
> + ln "$target.sig" "$dblink.sig" 2>/dev/null || \
> cp "$REPO_DB_FILE.sig" "$dblink.sig"
> fi
> else
> --
> 1.7.5.4
>
>
>
More information about the pacman-dev
mailing list