Hi, I found a strange behaviour in prt-get, I suppose this might be a bug. In my Pkgfile I have: [...] TIP=`cd $REPO && hg tip | grep changeset | cut -d ':' -f2 | sed -e 's/ //g'` version=rev-${TIP} [...] prt-get builds the package properly: =======> Building '/home/pkgmk/packages/uki-awesome#rev-6738-1.pkg.tar.gz' succeeded. but than when it tries to install it: prt-get: installing uki-awesome rev-${TIP}-1 pkgadd: could not open uki-awesome#rev--1.pkg.tar.gz: No such file or directory Is this a bug? And if not - how can I fix my Pkgfile? Cheers, -- Łukasz Gruner
W dniu 21.03.2011 00:48, uki pisze:
Hi,
I found a strange behaviour in prt-get, I suppose this might be a bug.
In my Pkgfile I have: [...] TIP=`cd $REPO && hg tip | grep changeset | cut -d ':' -f2 | sed -e 's/ //g'` version=rev-${TIP} [...]
prt-get builds the package properly: =======> Building '/home/pkgmk/packages/uki-awesome#rev-6738-1.pkg.tar.gz' succeeded.
but than when it tries to install it: prt-get: installing uki-awesome rev-${TIP}-1 pkgadd: could not open uki-awesome#rev--1.pkg.tar.gz: No such file or directory
Is this a bug? And if not - how can I fix my Pkgfile?
From what I saw in sources, the reason is that prt-get is not really a shell script, and during installation phase it looks into Pkgfile itself - caring /only/ for version= - thus other lines are not shell expanded or cared at all. To be precise, peek into package.cpp: expandShellCommands(m_data->version, timeNow, unameBuf); is the "culprit" here (quotes intended, actually we're are the culprits ;) Just use pkg{mk,add,rm} for Pkgfiles bent towards versioning systems (I do analogous stuff for git). Or, make sure everything needed for shell expansion is in version=, e.g. version=rev-$(stuff you had in TIP, without dependency on other shell lines)
W dniu 21.03.2011 09:22, Michal Soltys pisze:
Just use pkg{mk,add,rm} for Pkgfiles bent towards versioning systems (I do analogous stuff for git). Or, make sure everything needed for shell expansion is in version=, e.g.
version=rev-$(stuff you had in TIP, without dependency on other shell lines)
Small correction, after looking a bit more. prt-get handles $() and ``, but only with uname -r, date "+..." or date '+...'. I generally use the last one in my Pkgfiles (the ones depending on git), so I never noticed any problems. Note it only applies to version= . release= is taken verbatim without any interpretation.
participants (2)
-
Michal Soltys
-
uki