Dan McGee wrote:
On Mon, Nov 2, 2009 at 11:00 PM, Eric Bélanger <[email protected]> wrote:
When DESTDIR is used, symlinks to the packages will be put in the build 
directory.  This combines the convenience of a global package cache with the 
ease of having a package (i.e. a symlink) in the build directory for testing 
and installation purpose.

This seems really reasonable. It gets a +1 from me for the idea; I
didn't test the code or anything though.

Signed-off-by: Eric Bélanger <[email protected]>
---
 scripts/makepkg.sh.in |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 92b0454..dc9124b 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1000,6 +1000,8 @@ create_package() {
               "$PKGEXT" ; EXT=$PKGEXT ;;
       esac
       local 
pkg_file="$PKGDEST/${nameofpkg}-${pkgver}-${pkgrel}-${PKGARCH}${EXT}"
+       local 
pkglinks_name="${startdir}/${nameofpkg}-${pkgver}-${pkgrel}-${PKGARCH}${PKGEXT}"
+       local 
pkglinks_target="$PKGDEST/${nameofpkg}-${pkgver}-${pkgrel}-${PKGARCH}${PKGEXT}"
Since we repeat the same
"${nameofpkg}-${pkgver}-${pkgrel}-${PKGARCH}${PKGEXT}" part three
times, we should really pull that into a local variable and then set
the three others as necessary.

On the gpg branch, there is (going to be...) a patch creating "tar_file" (=current pkg_file) and pkg_file (pkglinks_target here). I think we can get away with just those two varabiles... see below.

       local ret=0

@@ -1018,6 +1020,10 @@ create_package() {
               ret=$?
       fi

+       if [ $ret -eq 0 ]; then
+               [ ! -f "${pkglinks_name}" ] && ln -s "${pkglinks_target}" 
"${pkglinks_name}" && ret=$?
Will this work with err traps? I thought you need to be explicit with
the if; then; fi blocks.

How about testing if $PKGDEST is the same as $startdir and then make the symlink using
ln -s ${pkg_file} ${pkgfile/$PKGDEST/$startdir/}


+       fi
+
       if [ $ret -ne 0 ]; then
               error "$(gettext "Failed to create package file.")"
               exit 1 # TODO: error code
--
1.6.5.2



Reply via email to