[pacman-dev] [PATCH] makepkg: Fix xz extraction
Xavier
shiningxc at gmail.com
Tue Aug 4 11:32:52 EDT 2009
On Tue, Aug 4, 2009 at 3:24 PM, Cedric Staniewski<cedric at gmx.ca> wrote:
> Yesterday, I wanted to use a xz compressed source in a PKGBUILD and had
> to notice that xz extraction is currently broken in makepkg (not .tar.xz
> though) even if the file is actually extracted. This is caused by xz's
> attempt to remove the symlink to the source in the src directory. It
> fails (because it is a symlink) and therefore xz returns an error code.
> Luckily, it is fairly simple to fix this by adding an additional flag to
> the xz extraction command.
>
> $ ln -s ../test.xz
> $ ls
> test.xz
> $ xz -d test.xz
> xz: test.xz: Is a symbolic link, skipping
> $ echo $?
> 2
> $ ls
> test.xz
> $ xz -d -f test.xz
> xz: test.xz: File seems to be moved, not removing
> $ echo $?
> 1
> $ ls
> test test.xz
> $ rm test
> $ ls
> test.xz
> $ xz -d -f -k test.xz
> $ echo $?
> 0
> $ ls
> test test.xz
>
>
>
> >From b2acc55fdf7da81a7581ed10c6351aed234285c5 Mon Sep 17 00:00:00 2001
> From: Cedric Staniewski <cedric at gmx.ca>
> Date: Tue, 4 Aug 2009 15:10:17 +0200
> Subject: [PATCH] makepkg: Fix xz extraction
>
> xz cannot remove symlinks and therefore it returns an error code after
> the (successful) extraction.
>
> $ ln -s ../test.xz
> $ xz -d -f test.xz
> xz: test.xz: File seems to be moved, not removing
> $ echo $?
> 1
> $ ls
> test test.xz
> $ rm test
> $ xz -d -f -k test.xz
> $ echo $?
> 0
> $ ls
> test test.xz
>
> Signed-off-by: Cedric Staniewski <cedric at gmx.ca>
> ---
> scripts/makepkg.sh.in | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 56ad2c0..d4b03a0 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -650,7 +650,7 @@ extract_sources() {
> *application/x-bzip*)
> cmd="bunzip2 -f" ;;
> *application/x-xz*)
> - cmd="xz -d -f" ;;
> + cmd="xz -d -f -k" ;;
> *)
> # Don't know what to use to extract this file,
> # skip to the next file
> --
> 1.6.4
> _______________________________________________
> pacman-dev mailing list
> pacman-dev at archlinux.org
> http://www.archlinux.org/mailman/listinfo/pacman-dev
>
But should we remove the symlink manually then?
More information about the pacman-dev
mailing list