[Neurodebian-users] Question about nd_* tools

Hänel Nikolaus Valentin valentin.haenel at epfl.ch
Sun May 6 18:35:14 UTC 2012


* Hänel Nikolaus Valentin <valentin.haenel at epfl.ch> [2012-05-06]:
> * Hänel Nikolaus Valentin <valentin.haenel at epfl.ch> [2012-05-06]:
> > * Yury V. Zaytsev <yury at shurup.com> [2012-05-06]:
> > > On Sun, 2012-05-06 at 16:38 +0200, Hänel Nikolaus Valentin wrote:
> > > What I personally use is the approach that is described here in more
> > > details: https://wiki.ubuntu.com/PbuilderHowto . Basically, you create a
> > > smart ~/.pbuilderrc which automates the selection of the right keyring
> > > basing upon the DIST variable:
> > > 
> > > if $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then 
> > > # Debian configuration
> > >     MIRRORSITE="http://$DEBIAN_MIRROR/debian/"
> > >     COMPONENTS="main contrib non-free"
> > >     DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/debian-archive-keyring.gpg")
> > > elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then
> > >     # Ubuntu configuration
> > >     MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/"
> > >     COMPONENTS="main restricted universe multiverse"
> > >     DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg")
> > > else
> > >     echo "Unknown distribution: $DIST"
> > >     exit 1
> > > fi
> > > 
> > > However, I don't know how this integrates with NeuroDebian tools, which
> > > I have never tried. 
> > 
> > I modified the .pbuilderrc as follows:
> > 
> > if env | grep -q debian; then
> > # Debian configuration
> >     DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/debian-archive-keyring.gpg")
> > elif env  | grep -q ubuntu; then
> >     # Ubuntu configuration
> >     DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg")
> > else
> >     echo "Unknown distribution: $DIST"
> >     exit 1
> > fi
> > 
> > This works because the envirnoment (env) contains some variable which
> > contains either 'debian' or 'ubuntu' keyword. I know this ultra-fragile,
> > but right now, «it works for me»™. I can't remember what the variable
> > was, maybe something like SUDO_CMD?
> > 
> > Note also, that I could do this in the $HOME/.pbuilderrc of my regular
> > user, because Ubuntu (unlike Debian) has a sudo that does not reset the
> > environment.  But since it is ubuntu that I am working on that does not
> > matter.
> > 
> > Now i get:
> > 
> > SUMMARY:
> >  nd+debian-squeeze      exists
> >  nd+debian-wheezy       exists
> >  nd+debian-sid  ok
> >  nd+ubuntu-natty        exists
> >  nd+ubuntu-oneiric      exists
> >  nd+ubuntu-precise      failed
> >  debian-squeeze         exists
> >  debian-wheezy  exists
> >  debian-sid     exists
> > 
> > Guess the configuration for precise is missing, or did I misspell it?
> > 
> > Now on to build from *.dsc....
> 
> So here, my luck leaves me, the .pbuilderrc posted above then causes
> nd_build4all to fall over... Because there is neither 'ubuntu' nor
> 'debian' in the env then. So... simply comment out the exit 1 and off we
> go. :D

So it finally went through and i found some errors in my package. Mainly precision problems with the unit tests on i386.

However there were also some errors not related to this. For example:

zsh» nd_build nd+debian sid i386 psignifit_3.0\~beta.20120503.1-1.dsc
Building for nd+debian sid i386 ...
 -> Copying COW directory
  forking: rm -rf /home/haenel/nd_cowbuildroot/build/cow.22381 
  forking: cp -al /home/haenel/nd_cowbuildroot/cow/nd+debian-sid-i386.cow /home/haenel/nd_cowbuildroot/build/cow.22381 
I: unlink for ilistfile /home/haenel/nd_cowbuildroot/build/cow.22381/.ilist failed, it didn't exist?
  forking: chroot /home/haenel/nd_cowbuildroot/build/cow.22381 cowdancer-ilistcreate /.ilist find . -xdev -path ./home -prune -o \( \( -type l -o -type f \) -a -links +1 -print0 \) | xargs -0 stat --format '%d %i ' 
chroot: failed to run command `cowdancer-ilistcreate': No such file or directory
W: cowdancer-ilistcreate failed to run within chroot, falling back to old method
 -> Invoking pbuilder
  forking: pbuilder build --logfile psignifit_3.0~beta.20120503.1-1_i386.build --aptcache /home/haenel/nd_cowbuildroot/debian_aptcache --debbuildopts -B --buildplace /home/haenel/nd_cowbuildroot/build/cow.22381 --buildresult . --debbuildopts -B --no-targz --internal-chrootexec chroot /home/haenel/nd_cowbuildroot/build/cow.22381 cow-shell /home/haenel/nd_cowbuildroot/dsc/psignifit_3.0~beta.20120503.1-1.dsc 
Unknown distribution: 
I: Logging to psignifit_3.0~beta.20120503.1-1_i386.build
I: Running in no-targz mode
I: using fakeroot in build.
I: Current time: Sun May  6 20:31:00 CEST 2012
I: pbuilder-time-stamp: 1336329060
I: copying local configuration
cp: cannot create regular file `/home/haenel/nd_cowbuildroot/build/cow.22381/etc/hosts': No such file or directory
 -> Cleaning COW directory
  forking: rm -rf /home/haenel/nd_cowbuildroot/build/cow.22381 


It would seem like the call to:

forking: cp -al /home/haenel/nd_cowbuildroot/cow/nd+debian-sid-i386.cow /home/haenel/nd_cowbuildroot/build/cow.22381

perhaps failed?

V-



More information about the Neurodebian-users mailing list