File:  [NetBSD Developer Wiki] / wikisrc / users / ryoon / pbulk_non-netbsd.mdwn
Revision 1.3: download - view: text, annotated - select for diffs
Sun Aug 26 11:05:55 2012 UTC (19 months, 3 weeks ago) by wiz
Branches: MAIN
CVS tags: HEAD
Update references to mksandbox.

## pbulk in chroot on non-NetBSD platform

This documentation describes how to run pkgsrc/pkgtools/pbulk in chroot on non-NetBSD platform.
This is based on [[Using pbulk to create a pkgsrc binary repository|tutorials/pkgsrc/pbulk]] and [[pbulk-HOWTO|http://wiki-static.aydogan.net/pbulk-HOWTO]].

### Bootstrap pkgsrc on non-chrooted environment for getting bmake

For making sandbox, bmake is needed.

	# ./bootstrap --varbase /usr/pkg/var --workdir /tmp/bs

### Making sandbox using script

Make sure you have pkgsrc tree for bulk buld as /usr/pkgsrc.
If you have pkgsrc tree at another place, you can use --pkgsrc=/some/where/pkgsrc option.

And I will setup sandbox under /home/bulk using mksandbox from the pkgtools/mksandbox package.

	# mksandbox --without-x /home/bulk

If you get the following message, you can modify pkgsrc/pkgtools/files/mksandbox script.

	Unknown Operating System ($opsys) - good luck

### Entering to chroot

	# chroot /home/bulk /bin/sh

### Adding unprivileged user for build stage

	# pw useradd bulk # for FreeBSD
	# useradd -M bulk # for CentOS (Linux)

### Creating some directories to store packages and logs.

	# mkdir /scratch /bulklog /packages

	# chown bulk /scratch
	/scratch must be writable for bulk user.

### Creating the environment for pbulk program

	# ./bootstrap --prefix /usr/pkg_bulk --varbase /usr/pkg_bulk/var --workdir /tmp/bs

	# rm -r /tmp/bs

	# vi /usr/pkg_bulk/etc/mk.conf
	Add the following lines.

	WRKOBJDIR=/usr/tmp
	PACKAGES=/scratch/pbulk_packages

	# export PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH}

	# cd /usr/pkgsrc/pkgtools/pbulk

	# bmake install

	# rm -r /usr/tmp/*

### Configuring pbulk

	# vi /usr/pkg_bulk/etc/pbulk.conf
	Add the following lines to header.

	ulimit -t 1800 # set the limit on CPU time (in seconds)
	ulimit -v 2097152 # limits process address space

	Modify the following lines.

	base_url=http://www.NetBSD.org/~ryo_on/FreeBSD-i386-9.0-RC3
	master_mode=no
	bootstrapkit=/bootstrap.tar.gz
	unprivileged_user=bulk
	bulklog=/bulklog
	packages=/packages
	prefix=/usr/pkg
	pkgsrc=/usr/pkgsrc
	pkgdb=/usr/pkg/var/db/pkg
	varbase=/usr/pkg/var
	mail=:
	rsync=:

### Preparing bootstrap kit

	# cd /usr/pkgsrc/bootstrap

	# ./bootstrap --varbase /usr/pkg/var --workdir /tmp/bsi

	# rm -r /tmp/bsi

	# vi /usr/pkg/etc/mk.conf
	Add the following lines.

	WRKOBJDIR=/scratch
	PKGSRCDIR=/usr/pkgsrc
	DISTDIR=/usr/distfiles
	PACKAGES=/packages
	SKIP_LICENSE_CHECK=yes
	ALLOW_VULNERABLE_PACKAGES=yes
	PKG_DEVELOPER=yes
	X11_TYPE=modular

	# tar zvfc /bootstrap.tar.gz /usr/pkg

### Running the bulk build

	# /usr/pkg_bulk/bin/bulkbuild

Or to restart

	# /usr/pkg_bulk/libexec/pbulk/build

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