Diff for /wikisrc/pkgsrc/how_to_do_an_unprivileged_bulk_build_on_solaris.mdwn between versions 1.1 and 1.2

version 1.1, 2011/11/20 20:28:27 version 1.2, 2012/02/05 07:14:36
Line 1 Line 1
 First, I bootstrapped pkgsrc into the directory /usr/pkg/2006Q4.  First, I bootstrapped pkgsrc into the directory /usr/pkg/2006Q4.
   
     $HOME/proj/pkgsrc/bootstrap/bootstrap --prefix=/usr/pkg/2006Q4 --unprivileged --compiler=sunpro      $HOME/proj/pkgsrc/bootstrap/bootstrap --prefix=/usr/pkg/2006Q4 --unprivileged --compiler=sunpro
     mkdir /usr/pkg/2006Q4/etc      mkdir /usr/pkg/2006Q4/etc
     mv work/mk.conf.example /usr/pkg/2006Q4/etc/mk.conf      mv work/mk.conf.example /usr/pkg/2006Q4/etc/mk.conf
   
 Then I made a backup of that directory. You can never know. :)  Then I made a backup of that directory. You can never know. :)
   
     cd /usr/pkg && gtar cfz 2006Q4.tar.gz 2006Q4      cd /usr/pkg && gtar cfz 2006Q4.tar.gz 2006Q4
   
 Since in a previous try, the pre-build program had removed the pkgsrc directory, I just commented it out by inserting an exit 0 in line 2. Since now there is no danger that anything in that directory is deleted, I could edit the mk.conf file and adjust some local settings.  Since in a previous try, the pre-build program had removed the pkgsrc directory, I just commented it out by inserting an exit 0 in line 2. Since now there is no danger that anything in that directory is deleted, I could edit the mk.conf file and adjust some local settings.
 #/usr/pkg/2006Q4/mk.conf  #/usr/pkg/2006Q4/mk.conf
 <pre><code>  <pre><code>
 # Example /usr/pkg/2006Q4/etc/mk.conf file produced by bootstrap-pkgsrc  # Example /usr/pkg/2006Q4/etc/mk.conf file produced by bootstrap-pkgsrc
 # Tue Jan  9 13:01:49 CET 2007  # Tue Jan  9 13:01:49 CET 2007
   
 .ifdef BSD_PKG_MK       # begin pkgsrc settings  .ifdef BSD_PKG_MK       # begin pkgsrc settings
   
 PKGSRC_COMPILER=        sunpro  PKGSRC_COMPILER=        sunpro
 UNPRIVILEGED=           yes  UNPRIVILEGED=           yes
 PKG_DBDIR=              /usr/pkg/2006Q4/var/db/pkg  PKG_DBDIR=              /usr/pkg/2006Q4/var/db/pkg
 LOCALBASE=              /usr/pkg/2006Q4  LOCALBASE=              /usr/pkg/2006Q4
 VARBASE=                /usr/pkg/2006Q4/var  VARBASE=                /usr/pkg/2006Q4/var
 PKG_TOOLS_BIN=          /usr/pkg/2006Q4/sbin  PKG_TOOLS_BIN=          /usr/pkg/2006Q4/sbin
 PKGMANDIR=              man  PKGMANDIR=              man
   
 TOOLS_PLATFORM.awk?=            /usr/pkg/2006Q4/bin/nawk  TOOLS_PLATFORM.awk?=            /usr/pkg/2006Q4/bin/nawk
 TOOLS_PLATFORM.sed?=            /usr/pkg/2006Q4/bin/nbsed  TOOLS_PLATFORM.sed?=            /usr/pkg/2006Q4/bin/nbsed
 FETCH_CMD=                      /usr/pkg/2006Q4/bin/ftp  FETCH_CMD=                      /usr/pkg/2006Q4/bin/ftp
 TOOLS_PLATFORM.pax?=            /usr/pkg/2006Q4/bin/pax  TOOLS_PLATFORM.pax?=            /usr/pkg/2006Q4/bin/pax
 TOOLS_PLATFORM.tar?=            /usr/pkg/2006Q4/bin/tar  TOOLS_PLATFORM.tar?=            /usr/pkg/2006Q4/bin/tar
 TOOLS_PLATFORM.mtree?=          /usr/pkg/2006Q4/sbin/mtree  TOOLS_PLATFORM.mtree?=          /usr/pkg/2006Q4/sbin/mtree
   
 DISTDIR=                /usr/pkg/distfiles  DISTDIR=                /usr/pkg/distfiles
 PACKAGES=               /usr/pkg/2006Q4-packages  PACKAGES=               /usr/pkg/2006Q4-packages
   
 PKG_DEVELOPER=          yes  PKG_DEVELOPER=          yes
   
 CC=     cc  CC=     cc
 CXX=    CC  CXX=    CC
 CPP=    cc -E  CPP=    cc -E
 CXXCPP= CC -E  CXXCPP= CC -E
   
 SUNWSPROBASE=           /local/SUNWspro  SUNWSPROBASE=           /local/SUNWspro
 USE_LANGUAGES+=         c99  USE_LANGUAGES+=         c99
   
 TOOLS_PLATFORM.nroff=   /opt/bin/groff  TOOLS_PLATFORM.nroff=   /opt/bin/groff
   
 .endif                  # end pkgsrc settings  .endif                  # end pkgsrc settings
 </code></pre>  </code></pre>
 /usr/pkg/2006Q4/build.conf  /usr/pkg/2006Q4/build.conf
 <pre><code>  <pre><code>
 # $NetBSD: build.conf-example,v 1.36 2006/06/02 22:01:46 dillo Exp $  # $NetBSD: how_to_do_an_unprivileged_bulk_build_on_solaris.mdwn,v 1.1 2011/11/20 20:28:27 mspo Exp $
 #  #
   
 osrev=`uname -r`  osrev=`uname -r`
 arch=`uname -m`  arch=`uname -m`
 USR_PKGSRC="$HOME/proj/pkgsrc"  USR_PKGSRC="$HOME/proj/pkgsrc"
 MAKECONF="/usr/pkg/2006Q4/etc/mk.conf"  MAKECONF="/usr/pkg/2006Q4/etc/mk.conf"
   
 PRUNEDISTFILES=no  PRUNEDISTFILES=no
 NICE_LEVEL="nice -n 20"  NICE_LEVEL="nice -n 20"
 LINTPKGSRC_CACHE=no  LINTPKGSRC_CACHE=no
   
 ADMIN="1illig@informatik.uni-hamburg.de"  ADMIN="1illig@informatik.uni-hamburg.de"
 ADMINSIG="- Roland"  ADMINSIG="- Roland"
   
 REPORTS_DIR="/usr/pkg/2006Q4-pkgstat"  REPORTS_DIR="/usr/pkg/2006Q4-pkgstat"
 REPORT_BASEDIR=`date +%Y%m%d.%H%M`  REPORT_BASEDIR=`date +%Y%m%d.%H%M`
 REPORT_HTML_FILE="report.html"  REPORT_HTML_FILE="report.html"
 REPORT_TXT_FILE="report.txt"  REPORT_TXT_FILE="report.txt"
 REPORTS_URL="file://$REPORTS_DIR"  REPORTS_URL="file://$REPORTS_DIR"
   
 UPDATE_VULNERABILITY_LIST=yes  UPDATE_VULNERABILITY_LIST=yes
 PRUNEPACKAGES=yes  PRUNEPACKAGES=yes
 MKSUMS=yes  MKSUMS=yes
 MKSUMMARY=no  MKSUMMARY=no
 RSYNC_DST=ftp.NetBSD.org:/pub/NetBSD/packages/pkgsrc-200xQy/NetBSD-a.b.c/i386  RSYNC_DST=ftp.NetBSD.org:/pub/NetBSD/packages/pkgsrc-200xQy/NetBSD-a.b.c/i386
 RSYNC_OPTS='-e ssh'  RSYNC_OPTS='-e ssh'
 </code></pre>  </code></pre>
 I began to setup the bulk build environment in a screen.  I began to setup the bulk build environment in a screen.
   
     $ screen -S <ulk-2006Q4      $ screen -S <ulk-2006Q4
     $ sh ./proj/pkgsrc/mk/bulk/build -c /usr/pkg/2006Q4/etc/build.conf      $ sh ./proj/pkgsrc/mk/bulk/build -c /usr/pkg/2006Q4/etc/build.conf
   
 It seems to work, and I'm waiting for the package databases to be generated. But since I have a T2000 here, I'm thinking about parallelizing the work. For generating the databases, the two "make" processes could be run completely in parallel, making use of 12000 processors. :)  It seems to work, and I'm waiting for the package databases to be generated. But since I have a T2000 here, I'm thinking about parallelizing the work. For generating the databases, the two "make" processes could be run completely in parallel, making use of 12000 processors. :)
   
 In the main phase, all packages that have the exact same dependencies can be built in parallel, but must be still installed one after another.  In the main phase, all packages that have the exact same dependencies can be built in parallel, but must be still installed one after another.
 #Help, my files are being removed  #Help, my files are being removed
   
 When I had started the bulk build, it complained that it couldn't find /usr/pkg/2006Q4/bin/nawk anymore. But looking at the backup I made above, I say that it had been there after bootstrapping. The simple solution to this was to change the tools definitions in mk.conf so that they point to tools outside ${LOCALBASE}:  When I had started the bulk build, it complained that it couldn't find /usr/pkg/2006Q4/bin/nawk anymore. But looking at the backup I made above, I say that it had been there after bootstrapping. The simple solution to this was to change the tools definitions in mk.conf so that they point to tools outside ${LOCALBASE}:
 <pre><code>  <pre><code>
 TOOLS_PLATFORM.awk=     /usr/pkg/current/bin/nawk  TOOLS_PLATFORM.awk=     /usr/pkg/current/bin/nawk
 TOOLS_PLATFORM.sed?=    /usr/pkg/current/bin/nbsed  TOOLS_PLATFORM.sed?=    /usr/pkg/current/bin/nbsed
 FETCH_CMD=              /usr/pkg/current/bin/ftp  FETCH_CMD=              /usr/pkg/current/bin/ftp
 TOOLS_PLATFORM.pax?=    /usr/pkg/current/bin/pax  TOOLS_PLATFORM.pax?=    /usr/pkg/current/bin/pax
 TOOLS_PLATFORM.tar?=    /usr/pkg/current/bin/tar  TOOLS_PLATFORM.tar?=    /usr/pkg/current/bin/tar
 TOOLS_PLATFORM.mtree?=  /usr/pkg/current/sbin/mtree  TOOLS_PLATFORM.mtree?=  /usr/pkg/current/sbin/mtree
 </code></pre>  </code></pre>
 Luckily, bin/bmake is not registered as belonging to any package, so it hasn't been removed yet.  Luckily, bin/bmake is not registered as belonging to any package, so it hasn't been removed yet.
   
 The bulk build also tried to deinstall the infrastructure packages, so I had to protect them against that:  The bulk build also tried to deinstall the infrastructure packages, so I had to protect them against that:
 <pre><code>  <pre><code>
 BULK_PREREQ+=           pkgtools/bootstrap-mk-files  BULK_PREREQ+=           pkgtools/bootstrap-mk-files
 BULK_PREREQ+=           pkgtools/tnftp  BULK_PREREQ+=           pkgtools/tnftp
 BULK_PREREQ+=           pkgtools/mtree  BULK_PREREQ+=           pkgtools/mtree
 BULK_PREREQ+=           pkgtools/pax  BULK_PREREQ+=           pkgtools/pax
 BULK_PREREQ+=           pkgtools/pkg_install  BULK_PREREQ+=           pkgtools/pkg_install
 BULK_PREREQ+=           sysutils/mtree  BULK_PREREQ+=           sysutils/mtree
   
 BULK_PREREQ+=           sysutils/checkperms  BULK_PREREQ+=           sysutils/checkperms
 </code></pre>  </code></pre>
   

Removed from v.1.1  
changed lines
  Added in v.1.2


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb