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 $HOME/bulk:
|
First, I bootstrapped pkgsrc into $HOME/bulk: |
<pre><code>
|
<pre><code> |
$ cd
|
$ cd |
$ env \
|
$ env \ |
CC=cc \
|
CC=cc \ |
CXX=CC \
|
CXX=CC \ |
MIPSPROBASE=$HOME/mipspro-wrapper \
|
MIPSPROBASE=$HOME/mipspro-wrapper \ |
./proj/pkgsrc/bootstrap/bootstrap \
|
./proj/pkgsrc/bootstrap/bootstrap \ |
--prefix=$HOME/bulk \
|
--prefix=$HOME/bulk \ |
--unprivileged \
|
--unprivileged \ |
--compiler=mipspro \
|
--compiler=mipspro \ |
--quiet
|
--quiet |
...
|
... |
</code></pre>
|
</code></pre> |
Then, make a backup copy of LOCALBASE:
|
Then, make a backup copy of LOCALBASE: |
|
|
$ tar cfz bulk.tar.gz bulk
|
$ tar cfz bulk.tar.gz bulk |
|
|
It is a good idea to store all configuration files outside of *LOCALBASE*:
|
It is a good idea to store all configuration files outside of *LOCALBASE*: |
|
|
$ mkdir bulk-etc
|
$ mkdir bulk-etc |
$ cp bulk/etc/mk.conf bulk-etc/.
|
$ cp bulk/etc/mk.conf bulk-etc/. |
|
|
Like on Solaris, I needed to comment out the *pre-build* script. The configuration files look similar to the ones from the Solaris build.
|
Like on Solaris, I needed to comment out the *pre-build* script. The configuration files look similar to the ones from the Solaris build. |
|
|
**Contents**
|
**Contents** |
|
|
[[!toc]]
|
[[!toc]] |
|
|
#build.conf
|
#build.conf |
<pre><code>
|
<pre><code> |
osrev=`uname -r`
|
osrev=`uname -r` |
arch=`uname -m`
|
arch=`uname -m` |
USR_PKGSRC="$HOME/proj/pkgsrc"
|
USR_PKGSRC="$HOME/proj/pkgsrc" |
MAKECONF="$HOME/bulk-etc/mk.conf"
|
MAKECONF="$HOME/bulk-etc/mk.conf" |
|
|
PRUNEDISTFILES=no
|
PRUNEDISTFILES=no |
NICE_LEVEL="nice -n 20"
|
NICE_LEVEL="nice -n 20" |
LINTPKGSRC_CACHE=no
|
LINTPKGSRC_CACHE=no |
ADMIN="rillig@localhost"
|
ADMIN="rillig@localhost" |
ADMINSIG="- Roland"
|
ADMINSIG="- Roland" |
|
|
REPORTS_DIR="$HOME/bulk-reports"
|
REPORTS_DIR="$HOME/bulk-reports" |
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=no
|
UPDATE_VULNERABILITY_LIST=no |
PRUNEPACKAGES=no
|
PRUNEPACKAGES=no |
MKSUMS=no
|
MKSUMS=no |
MKSUMMARY=no
|
MKSUMMARY=no |
RSYNC_DST=none
|
RSYNC_DST=none |
RSYNC_OPTS=none
|
RSYNC_OPTS=none |
</code></pre>
|
</code></pre> |
#mk.conf
|
#mk.conf |
<pre><code>
|
<pre><code> |
# Example /usr/people/rillig/bulk/etc/mk.conf file produced by bootstrap-pkgsrc
|
# Example /usr/people/rillig/bulk/etc/mk.conf file produced by bootstrap-pkgsrc |
# Wed Feb 21 07:42:55 EST 2007
|
# Wed Feb 21 07:42:55 EST 2007 |
|
|
.ifdef BSD_PKG_MK # begin pkgsrc settings
|
.ifdef BSD_PKG_MK # begin pkgsrc settings |
|
|
OPSYS= IRIX
|
OPSYS= IRIX |
ABI= 64
|
ABI= 64 |
PKGSRC_COMPILER= mipspro
|
PKGSRC_COMPILER= mipspro |
UNPRIVILEGED= yes
|
UNPRIVILEGED= yes |
PKG_DBDIR= /usr/people/rillig/bulk/var/db/pkg
|
PKG_DBDIR= /usr/people/rillig/bulk/var/db/pkg |
LOCALBASE= /usr/people/rillig/bulk
|
LOCALBASE= /usr/people/rillig/bulk |
VARBASE= /usr/people/rillig/bulk/var
|
VARBASE= /usr/people/rillig/bulk/var |
PKG_TOOLS_BIN= /usr/people/rillig/bulk/sbin
|
PKG_TOOLS_BIN= /usr/people/rillig/bulk/sbin |
PKGMANDIR= man
|
PKGMANDIR= man |
|
|
TOOLS_PLATFORM.install?= /usr/people/rillig/pkg/bin/ginstall
|
TOOLS_PLATFORM.install?= /usr/people/rillig/pkg/bin/ginstall |
TOOLS_PLATFORM.sed?= /usr/people/rillig/bulk/bin/nbsed
|
TOOLS_PLATFORM.sed?= /usr/people/rillig/bulk/bin/nbsed |
FETCH_CMD= /usr/people/rillig/bulk/bin/ftp
|
FETCH_CMD= /usr/people/rillig/bulk/bin/ftp |
TOOLS_PLATFORM.pax?= /usr/people/rillig/bulk/bin/pax
|
TOOLS_PLATFORM.pax?= /usr/people/rillig/bulk/bin/pax |
TOOLS_PLATFORM.tar?= /usr/people/rillig/bulk/bin/tar
|
TOOLS_PLATFORM.tar?= /usr/people/rillig/bulk/bin/tar |
TOOLS_PLATFORM.mtree?= /usr/people/rillig/bulk/sbin/mtree
|
TOOLS_PLATFORM.mtree?= /usr/people/rillig/bulk/sbin/mtree |
IMAKEOPTS+= -DBuild64bit -DSgiISA64=4
|
IMAKEOPTS+= -DBuild64bit -DSgiISA64=4 |
|
|
DISTDIR= /usr/people/rillig/distfiles
|
DISTDIR= /usr/people/rillig/distfiles |
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 |
|
|
MIPSPROBASE= /usr/people/rillig/mipspro-wrapper
|
MIPSPROBASE= /usr/people/rillig/mipspro-wrapper |
TOOLS_PLATFORM.nroff= /usr/people/rillig/pkg/bin/groff
|
TOOLS_PLATFORM.nroff= /usr/people/rillig/pkg/bin/groff |
BULKFILESDIR= /usr/people/rillig/bulk-logs
|
BULKFILESDIR= /usr/people/rillig/bulk-logs |
PACKAGES= /usr/people/rillig/bulk-packages
|
PACKAGES= /usr/people/rillig/bulk-packages |
WRKOBJDIR= /usr/people/rillig/bulk-tmp
|
WRKOBJDIR= /usr/people/rillig/bulk-tmp |
|
|
.endif # end pkgsrc settings
|
.endif # end pkgsrc settings |
</code></pre>
|
</code></pre> |
To get a usable environment, I have built some package before in $HOME/pkg, so that I can link to them (for example *ginstall* and *groff*).
|
To get a usable environment, I have built some package before in $HOME/pkg, so that I can link to them (for example *ginstall* and *groff*). |
<pre><code>
|
<pre><code> |
$ screen -S bulk
|
$ screen -S bulk |
$ sh proj/pkgsrc/mk/bulk/build -c /usr/people/rillig/bulk-etc/build.conf
|
$ sh proj/pkgsrc/mk/bulk/build -c /usr/people/rillig/bulk-etc/build.conf |
...
|
... |
BULK> Package bzip2-1.0.4 not built yet, packaging...
|
BULK> Package bzip2-1.0.4 not built yet, packaging... |
/usr/people/rillig/pkg/bin/bmake bulk-package PRECLEAN=no
|
/usr/people/rillig/pkg/bin/bmake bulk-package PRECLEAN=no |
###
|
### |
### Wed Feb 21 08:56:12 EST 2007
|
### Wed Feb 21 08:56:12 EST 2007 |
### pkgsrc build log for bzip2-1.0.4
|
### pkgsrc build log for bzip2-1.0.4 |
###
|
### |
|
|
bmake: exec(/bin/sh) failed (Arg list too long)
|
bmake: exec(/bin/sh) failed (Arg list too long) |
*** Error code 1
|
*** Error code 1 |
</code></pre>
|
</code></pre> |
Grmpf. IRIX has only 20k for the command line and the environment, and that gets filled pretty quickly. Let's see what's the cause for that. It's the command starting with "${RUN} set +e;" and going until the lonely "fi" in line 534. That's pretty much. Since I don't know how to break that into smaller chunks, I stop here.
|
Grmpf. IRIX has only 20k for the command line and the environment, and that gets filled pretty quickly. Let's see what's the cause for that. It's the command starting with "${RUN} set +e;" and going until the lonely "fi" in line 534. That's pretty much. Since I don't know how to break that into smaller chunks, I stop here. |
#Some hours later
|
#Some hours later |
|
|
I've made some progress. I didn't rewrite the bulk builds but simply patched bmake to create a temporary file and write the overly long command lines there when an execve fails due to E2BIG. I applied [this patch](ftp://ftp.netbsd.org/pub/pkgsrc/misc/rillig/bmake-irix.patch) in the devel/bmake directory and re-ran bootstrap. Things seem to work now.
|
I've made some progress. I didn't rewrite the bulk builds but simply patched bmake to create a temporary file and write the overly long command lines there when an execve fails due to E2BIG. I applied [this patch](ftp://ftp.netbsd.org/pub/pkgsrc/misc/rillig/bmake-irix.patch) in the devel/bmake directory and re-ran bootstrap. Things seem to work now. |
|
|
At least, [lang/perl](http://pkgsrc.se/lang/perl) is building, which takes some time. Not to speak of the database generation that follows. Meanwhile, I'm adding the following to the [[pkgsrc/mk.conf]] file, just as in the Solaris bulk build:
|
At least, [lang/perl](http://pkgsrc.se/lang/perl) is building, which takes some time. Not to speak of the database generation that follows. Meanwhile, I'm adding the following to the [[pkgsrc/mk.conf]] file, just as in the Solaris bulk build: |
<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> |
#See also
|
#See also |
|
|
* [[pkgsrc/How to do an unprivileged bulk build on Solaris]] |
* [[pkgsrc/How to do an unprivileged bulk build on Solaris]] |
|
|