Step 0: minix category

This contains MINIX specific packages, configuration and (PKGSRC) build
scripts.
This commit is contained in:
Lionel Sambuc 2014-04-09 10:55:26 +02:00 committed by Lionel Sambuc
parent bc17d767a5
commit 632da51b7a
7 changed files with 841 additions and 0 deletions

14
minix/Makefile Normal file
View File

@ -0,0 +1,14 @@
# $NetBSD: $
#
COMMENT= Minix specific packages
# The following needs to be re-imported and fixed.
# For current state, please see branch 3.3.0-dev
#SUBDIR+= dde-linux26
#SUBDIR+= dde-linux26-usb-drivers
#SUBDIR+= git-review
#SUBDIR+= netdrv_tg3
#SUBDIR+= stp
.include "../mk/misc/category.mk"

View File

@ -0,0 +1,8 @@
pkgtools/pkgin
devel/git-base
devel/binutils
lang/clang
lang/gcc45
devel/bmake
editors/vim
security/openssh

View File

@ -0,0 +1,49 @@
x11/pixman
textproc/libxml2
textproc/icu
print/web2c
print/poppler
print/ghostscript-gpl
x11/tk
lang/tcl
lang/hugs
lang/gcc45
graphics/netpbm
graphics/gdk-pixbuf2
graphics/gdk-pixbuf
graphics/cairo
fonts/harfbuzz
emulators/suse131_linux
emulators/suse121_linux
emulators/suse100_linux
devel/ncurses
devel/mk-configure
devel/glib2
devel/boehm-gc
database/sqlite3
databases/gdbm
minix/git-review
lang/clang
lang/python27
devel/cmake
devel/binutils
security/openssh
devel/git-base
www/curl
security/heimdal
devel/bison
devel/m4
security/p5-IO-Socket-SSL
devel/libidn
devel/pkg-config
converters/libiconv
pkgtools/pkgin
security/openssl
devel/gettext
lang/perl5
devel/pth
devel/libtool
pkgtools/digest
pkgtools/pkg_install
devel/bmake
pkgtools/bootstrap-mk-files

14
minix/minibootstrap.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/sh
# This .sh script can be executed by the base system to let
# the pkgsrc system put things right. Currently only needed
# for mk.conf.
MKCONF=mk.conf.minix
if [ ! -f $MKCONF ]
then echo "No $MKCONF. Please run me from pkgsrc/minix/."
exit 1
fi
cp $MKCONF /usr/pkg/etc/mk.conf

133
minix/mk.conf.minix Normal file
View File

@ -0,0 +1,133 @@
# We ensure this Makefile is only seen during pkgsrc builds
.ifdef BSD_PKG_MK
# Allow local overrides:
.-include "${.PARSEDIR}/local.mk.conf"
#######################################################################
# Settings which differs from platform/NetBSD.mk
unix= We run Minix.
OS= Minix
OS_VARIANT= Minix
NOLINT= 1
MKCATPAGES?= yes
ROOT_GROUP?= operator
BINGRP?= operator
MANGRP?= operator
INFOGRP?= operator
DOCGRP?= operator
NLSGRP?= operator
NOLOGIN?= /bin/false
ULIMIT_CMD_datasize?= ulimit -d
ULIMIT_CMD_stacksize?= ulimit -s
ULIMIT_CMD_memorysize?= ulimit -m
ULIMIT_CMD_cputime?= ulimit -t
PS?= /usr/bin/ps
# Our nroff can't handle -mandoc correctly
NROFF?= mandoc
PREFER_NATIVE_PTHREADS= no
X11_TYPE= native
# In some cases, MACHINE_GNU_PLATFORM get set back to i386--netbsdelf,
# make sure the correct triple is set.
# LSC: Still required?
MACHINE_GNU_PLATFORM= ${MACHINE_ARCH}-elf32-minix
#######################################################################
# Download URLs for sources and packages
MASTER_SITE_LOCAL?= \
http://www.minix3.org/pkgsrc/distfiles/minix/${OS_VERSION}/
MASTER_SITE_MINIX?= \
http://www.minix3.org/pkgsrc/distfiles/local/${OS_VERSION}/
MASTER_SITE_BACKUP?= \
ftp://ftp.netbsd.org/pub/pkgsrc/distfiles/ \
ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/ \
http://ftp.jp.netbsd.org/pub/pkgsrc/distfiles/
MASTER_SITE_OVERRIDE?= \
${MASTER_SITE_MINIX}
#######################################################################
# PKGSRC Paths
# defaults to /var, which is too small on MINIX
VARBASE?= /usr/pkg/var
PKG_DBDIR?= /usr/pkg/var/db/pkg
PKG_TOOLS_BIN?= /usr/pkg/sbin
# By default builds within pkgsrc, we don't want that
WRKOBJDIR?= ${PKGSRCDIR}/work
# Defaults to ${PKGSRCDIR}/packages, seems we don't want either.
PACKAGES?= ${PKGSRCDIR}/packages/${OS_VERSION}/${MACHINE_ARCH}
#######################################################################
# PKGSRC tools
PKGSRC_COMPILER?= clang
.if ${PKGSRC_COMPILER} == "clang"
# Check if the clang package is available
.if exists(/usr/pkg/bin/clang)
CLANGBASE?= /usr/pkg
.else
CLANGBASE?= /usr
.endif
HAVE_LLVM?= 36
CC?= clang
CXX?= clang++
CPP?= clang -E
.else
AS?= gas
CC?= gcc
CXX?= g++
.endif
.if exists(/usr/pkg/bin/strip)
TOOLS_PLATFORM.strip?= /usr/pkg/bin/strip
.endif
#######################################################################
# Compilation Flags for all packages
CFLAGS+= -march=i586
# Headers are available, but not yet fully supported.
CONFIGURE_ENV+= ac_cv_func_msync=no
CONFIGURE_ENV+= gl_have_pthread=no
IMAKEOPTS+= -DBuildHtmlManPages=NO
#######################################################################
# PKGSRC Build Options
SKIP_LICENSE_CHECK?= yes
ALLOW_VULNERABLE_PACKAGES?= yes
PKG_DEFAULT_OPTIONS?= -inet6 -threads -kqueue
PKG_RCD_SCRIPTS?= yes
RCD_SCRIPTS_DIR?= ${LOCALBASE}/etc/rc.d
#LSC: the following packages are not yet part of the base system, as expected
# on NetBSD
PREFER_PKGSRC+= groff
PYTHON_VERSION_DEFAULT?= 27
PYPACKAGE?= python27
#LSC: Otherwise fails on missing files when generating the tarball
ZSH_STATIC?= yes
#######################################################################
# Package-specific default options
PKG_OPTIONS.gcc45?= -gcc-java -gcc-fortran
.endif # BSD_PKG_MK

478
minix/pbulk-ng.sh Executable file
View File

@ -0,0 +1,478 @@
#!/bin/sh
# This script tries to optimise time building for jailed pbulk builds
# at the expense of disk space.
#
# A full (all packages) build requires currently about:
# - 1.0GB pkgsrc itself
# - 0.3GB chroot-minix
# - 1.3GB chroot-bootstrap
# - 1.3GB chroot-pbulk (w/o distfiles)
# - 24.0GB distfiles (sources of the packages)
# - 20.0GB during build, to store temporary files and produced packages
# ==========
# ~48.0GB total
#
# I (LSC) recommend a partition of at least 100GB for a full build.
#
# this will create the following hierarchy (assuming defaults) :
# /usr/bbuild
# /usr/bbuild/chroot-minix Pristine minix rootfs
# /usr/bbuild/chroot-bootstrap Pristine minix + bootstrapped pbulk tools
# /usr/bbuild/chroot-pbulk Root system with build pkgsrc.
#
# Upon successful completion the following will be copied into:
# /usr/bbuild/save/YYYYMMDD-HHmmss.logs pbulk-log files
# /usr/bbuild/save/YYYYMMDD-HHmmss.packages generated packages
# /usr/bbuild/save/YYYYMMDD-HHmmss.disfiles fetched distfiles
#
# Exit at the first error
set -e
# Some useful constant
YES="yes"
NO="no"
# Defaults
: ${TOPDIR=/usr/bbuild}
: ${SAVEDIR=/usr/bbuild/save}
: ${TOOLDIR=/usr/bbuild/tooldir.$(uname -p)}
: ${MINIXSRCDIR=/usr/src}
: ${PKGSRCDIR=/usr/pkgsrc}
: ${DISTFILESDIR=/usr/pkgsrc/distfiles}
: ${USETOOLS=no}
: ${ROOT_MINIX=${TOPDIR}/chroot-minix}
: ${ROOT_BOOTSTRAP=${TOPDIR}/chroot-bootstrap}
: ${ROOT_PBULK=${TOPDIR}/chroot-pbulk}
# By default copy the local pkgsrc repository
: ${PKGSRC_COPY=${YES}}
: ${PKGSRC_REMOTE=pkgsrc}
: ${PKGSRC_URL=git://git.minix3.org/pkgsrc.git}
: ${PKGSRC_BRANCH=minix-master}
# Destination pkgsrc git, absolute path, has to contain ROOT_BOOTSTRAP!
: ${PKGSRC_GIT=${ROOT_BOOTSTRAP}/usr/pkgsrc/.git}
# By default re-use root FS if available
: ${BUILD_ROOT_BOOTSTRAP=${NO}}
: ${BUILD_ROOT_MINIX=${NO}}
: ${BUILD_ROOT_PBULK=${NO}}
# By default copy to a safe place the generated packages, distfiles and logs
: ${SAVE_PACKAGES=${YES}}
: ${SAVE_DISTFILES=${YES}}
: ${SAVE_LOGS=${YES}}
# Use tools through variables, ease the debug process
: ${DRY_RUN=${NO}}
# Some private variables which may used from within the chroots
: ${CMD_BOOTSTRAP=./bootstrap/bootstrap}
: ${CMD_BOOTSTRAP_CLEANUP=./bootstrap/cleanup}
# This cannot be changed without updating pbulk.conf
: ${BOOTSTRAP_PREFIX=/usr/pbulk}
: ${PKGSRC_PREFIX=/usr/pkgsrc}
# Generate a clean PATH for the jails.
CHROOT_PATH=""
for d in ${BOOTSTRAP_PREFIX} /usr/pkg /usr/X11R7 /usr ''
do
CHROOT_PATH=${CHROOT_PATH}:${d}/bin:${d}/sbin
done
CHROOT_PATH=${CHROOT_PATH}:/usr/games
LD_CHROOT_PATH=/usr/pkg/lib:/usr/X11R7/lib:/usr/lib:/lib
if [ ! -d $MINIXSRCDIR ]
then
echo Please install the minix sources in $MINIXSRCDIR.
exit 1
fi
#============================================================================
if [ ${DRY_RUN} = ${YES} ]
then
RM='echo ##: rm '
MV='echo ##: mv '
CP='echo ##: cp '
CD='echo ##: cd '
LN='echo ##: ln '
SED='echo ##: sed '
CHROOT='echo ##: chroot '
MKDIR='echo ##: mkdir '
TAR='echo ##: tar '
EXPORT='echo ##: export '
PKG_ADD='echo ##: pkg_add '
SYNCTREE='echo ##: synctree '
GIT='echo ##: git '
BMAKE='echo ##: bmake '
CMD_RELEASE="echo ##: ${CMD_RELEASE} "
CMD_BOOTSTRAP="echo ##: ${CMD_BOOTSTRAP} "
CMD_BOOTSTRAP_CLEANUP="echo ##: ${CMD_BOOTSTRAP_CLEANUP} "
CMD_RESET_ERRORS="echo ##: test ! -f /usr/pbulk-logs/meta/error || rm /usr/pbulk-logs/meta/error "
CMD_BULKBUILD="echo ##: bulkbuild "
CMD_BULKBUILD_RESTART="echo ##: bulkbuild-restart "
DIRNAME='echo _dirname_ '
# Kind of an exception, but as it used to collect
# all the output of a phase, we want it to be echoed,
# instead of saved in a log file
TEE="cat - "
else
RM='rm '
MV='mv '
CP='cp '
CD='cd '
LN='ln '
SED='sed '
DIRNAME='dirname '
CHROOT='chroot '
MKDIR='mkdir '
TAR='tar '
EXPORT='export '
PKG_ADD='pkg_add '
SYNCTREE='synctree '
GIT='git '
BMAKE='bmake '
TEE='tee '
CMD_RESET_ERRORS="test ! -f /usr/pbulk-logs/meta/error || rm /usr/pbulk-logs/meta/error "
CMD_BULKBUILD="bulkbuild "
CMD_BULKBUILD_RESTART="bulkbuild-restart "
fi
# Check at which step which should start :
[ ! -d "${ROOT_MINIX}" ] && BUILD_ROOT_MINIX=${YES}
[ ! -d "${ROOT_BOOTSTRAP}" ] && BUILD_ROOT_BOOTSTRAP=${YES}
[ ! -d "${ROOT_PBULK}" ] && BUILD_ROOT_PBULK=${YES}
# Ensure that all the steps following the first to be generated
# are also re-generated.
[ ${BUILD_ROOT_MINIX} = ${YES} ] && BUILD_ROOT_BOOTSTRAP=${YES}
[ ${BUILD_ROOT_BOOTSTRAP} = ${YES} ] && BUILD_ROOT_PBULK=${YES}
#============================================================================
build_minix() {
echo ":-> Building minix chroot in ${ROOT_MINIX}"
(
exec 2>&1
set +e
echo ":--> Building minix sources [${BUILD_START}]"
${CD} ${MINIXSRCDIR}
# Make fetch scripts executable
find . -name fetch.sh -exec chmod 755 {} \;
# Detect the default toolchain, and install the same in the
# jail. Having cc point to gcc while clang is installed, is
# unsupported. Either this is a gcc-only system, or cc points
# to clang, as it is the default compiler.
which clang > /dev/null; _clang=$?
which gcc > /dev/null; _gcc=$?
which cc > /dev/null; _cc=$?
if [ ! ${_gcc} = 0 -a ! ${_clang} = 0 ]; then
echo "No toolchain detected, please install clang or gcc."
exit 1
fi
if [ ${_cc} = 0 -a ${_clang} = 0 -a $(cc --version | grep -q clang) ]
then
echo "It is unsupported to have cc set to someting else than clang,"
echo "while clang is also installed on the system."
echo
echo "Please fix your cc symlink, or uninstall clang."
exit 1
fi
if [ ${_clang} = 0 ];
then
toolchain=" MKLLVM=yes MKLIBCXX=yes MKGCCCMDS=no MKLIBSTDCXX=no"
fi
# If both gcc and clang are installed, we still prefer clang.
if [ ${_gcc} = 0 -a ! ${_clang} = 0 ];
then
toolchain=" MKLLVM=no MKLIBCXX=no MKGCCCMDS=yes MKLIBSTDCXX=yes"
# Download Binutils, gmake & texinfo
./external/lgpl3/mpfr/fetch.sh
./external/lgpl3/gmp/fetch.sh
./external/lgpl3/mpc/fetch.sh
./external/gpl3/gcc/fetch.sh
fi
# Download Binutils, gmake & texinfo
./gnu/dist/fetch.sh
./external/gpl3/binutils/fetch.sh
export MAKEOBJDIR='${.CURDIR:C,^/mnt/src,/mnt/obj.pbulk.386,}'
export MKOBJDIRS=yes
export MKBINUTILS=yes
make build etcforce \
USETOOLS=${USETOOLS} \
TOOLDIR=${TOOLDIR} \
DESTDIR=${ROOT_MINIX} \
SLOPPY_FLIST=yes \
MKX11=yes \
MKUPDATE=yes \
${toolchain} \
MKKYUA=no \
MKATF=no
echo ":--> Copying config files"
for f in hosts resolv.conf
do
[ -f /etc/${f} ] && ${CP} /etc/${f} ${ROOT_MINIX}/etc/${f}
done
) | ${TEE} ${TOPDIR}/1-build_minix.log
echo ":-> Building minix chroot done"
return 0
}
build_bootstrap() {
echo ":-> Building bootstrapped chroot"
(
exec 2>&1
set -e
echo ":--> Initializing chroot in ${ROOT_BOOTSTRAP} [${BUILD_START}]"
if [ ${PKGSRC_COPY} = ${YES} ]
then
echo ":--> Copying from ${PKGSRCDIR}"
# Copy and use our local pkgsrc repository as it is
${MKDIR} -p ${ROOT_BOOTSTRAP}${PKGSRC_PREFIX}
${SYNCTREE} -f ${PKGSRCDIR} ${ROOT_BOOTSTRAP}${PKGSRC_PREFIX} >/dev/null
else
echo ":--> Cloning from ${PKGSRC_URL}/${PKGSRC_BRANCH}"
# Copy our own pkgsrc repository there so the new
# repository does not have to retrieve objects we
# already have locally.
${MKDIR} -p ${PKGSRC_GIT}
${SYNCTREE} -f ${PKGSRCDIR}/.git ${PKGSRC_GIT} >/dev/null
${GIT} --git-dir ${PKGSRC_GIT} remote rm ${PKGSRC_REMOTE}
${GIT} --git-dir ${PKGSRC_GIT} remote add ${PKGSRC_REMOTE} ${PKGSRC_URL}
${GIT} --git-dir ${PKGSRC_GIT} fetch ${PKGSRC_REMOTE}
${GIT} --git-dir ${PKGSRC_GIT} checkout -f ${PKGSRC_REMOTE}/${PKGSRC_BRANCH}
fi
# Bonus distfiles
echo ":--> Copying prefetched distfiles from ${DISTFILESDIR}"
${MKDIR} -p ${ROOT_BOOTSTRAP}${PKGSRC_PREFIX}/distfiles
${SYNCTREE} -f ${DISTFILESDIR} ${ROOT_BOOTSTRAP}${PKGSRC_PREFIX}/distfiles >/dev/null
# Ensure that the package directoy is clean and exists
${RM} -rf ${ROOT_BOOTSTRAP}${PKGSRC_PREFIX}/packages/$(uname -r)/
${MKDIR} -p ${ROOT_BOOTSTRAP}${PKGSRC_PREFIX}/packages/$(uname -r)/$(uname -p)/All
echo ":--> Bootstrapping pbulk"
${CHROOT} ${ROOT_BOOTSTRAP} sh -c \
"(
set -e
${EXPORT} PATH=${CHROOT_PATH}
${EXPORT} LD_LIBRARY_PATH=${LD_CHROOT_PATH}
${CD} ${PKGSRC_PREFIX}
# First stage, PBULK bootstrap & installation
# Trim the .ifdef BSD_PKG_MK and .endif lines to make a 'fragment'
# and adapt a few path to the ones expected for pbulk
${SED} \
-e '/.*BSD_PKG_MK/d' \
-e 's@VARBASE?=.*@VARBASE= '${BOOTSTRAP_PREFIX}'/var@' \
-e 's@PKG_DBDIR?=.*@PKG_DBDIR= '${BOOTSTRAP_PREFIX}'/pkgdb@' \
-e 's@WRKOBJDIR?=.*@WRKOBJDIR= '${BOOTSTRAP_PREFIX}'/work@' \
./minix/mk.conf.minix \
> ./minix/mk.conf.minix.pbulk.frag
echo ':--> Building pbulk kit'
${CMD_BOOTSTRAP} \
--prefix=${BOOTSTRAP_PREFIX} \
--varbase=${BOOTSTRAP_PREFIX}/var \
--pkgdbdir=${BOOTSTRAP_PREFIX}/pkgdb \
--workdir=${BOOTSTRAP_PREFIX}/work \
--mk-fragment=./minix/mk.conf.minix.pbulk.frag
# Install pbulk into /usr/pbulk
echo ':--> Building and installing pbulk'
${BMAKE} -C ./devel/pth package-install
${BMAKE} -C ./pkgtools/pbulk package-install
${SED} -e 's/OP_SYS_VER/'$(uname -r)'/g' ./minix/pbulk.conf > ${BOOTSTRAP_PREFIX}/etc/pbulk.conf
# First stage: done
echo ':--> Bootstrap cleanup'
${CMD_BOOTSTRAP_CLEANUP}
# Second stage, pkgsrc bootstrap & installation
# Trim the .ifdef BSD_PKG_MK and .endif lines to make a 'fragment'
${SED} -e '/.*BSD_PKG_MK/d' \
./minix/mk.conf.minix \
> ./minix/mk.conf.minix.frag
echo ':--> Building binary pkgsrc kit'
${CMD_BOOTSTRAP} \
--varbase=/usr/pkg/var \
--pkgdbdir=/usr/pkg/var/db/pkg \
--mk-fragment=./minix/mk.conf.minix.frag \
--workdir=${PKGSRC_PREFIX}/work \
--gzip-binary-kit=${BOOTSTRAP_PREFIX}/bootstrap.tar.gz
${RM} -rf ./packages/$(uname -r)/
${MKDIR} -p ./packages/$(uname -r)/$(uname -p)/All
# Use the same mk.conf that our users instead of the hybrid
# auto-generated mk.conf from bootstrap.
${TAR} -C /tmp -xzf ${BOOTSTRAP_PREFIX}/bootstrap.tar.gz
${CP} ./minix/mk.conf.minix /tmp/usr/pkg/etc/mk.conf
${TAR} -C /tmp -hzcf ${BOOTSTRAP_PREFIX}/bootstrap.tar.gz usr
${RM} -rf /tmp/usr
# Second stage: done
)"
echo ":--> Bootstrapping pbulk done"
) | ${TEE} ${TOPDIR}/2-build_bootstrap.log
echo ":-> Building bootstrapped chroot done"
return 0
}
pbulk_start() {
echo ":-> Building packages from scratch"
(
exec 2>&1
set -e
${CHROOT} ${ROOT_PBULK} sh -c \
"(
set -e
${EXPORT} PATH=${CHROOT_PATH}
${EXPORT} LD_LIBRARY_PATH=${LD_CHROOT_PATH}
${CD} ${PKGSRC_PREFIX}
echo ':--> Starting build ['${BUILD_START}']'
${CMD_BULKBUILD}
)"
) | ${TEE} ${TOPDIR}/3-pbulk.log
echo ":-> Building packages from scratch done"
return 0
}
pbulk_restart() {
echo ":-> Building packages from previous build"
(
exec 2>&1
set -e
${CHROOT} ${ROOT_PBULK} sh -c \
"(
set -e
${EXPORT} PATH=${CHROOT_PATH}
${EXPORT} LD_LIBRARY_PATH=${LD_CHROOT_PATH}
${CD} ${PKGSRC_PREFIX}
echo ':--> Resetting error file'
${CMD_RESET_ERRORS}
echo ':--> Restarting build ['${BUILD_START}']'
${CMD_BULKBUILD_RESTART}
)"
) | ${TEE} ${TOPDIR}/3-pbulk.log
echo ":-> Building packages from previous build done"
}
#============================================================================
# Initializations are done, start applying the requested actions on the system
BUILD_START=$(date)
echo -e "\n:: pbulk started on ${BUILD_START}"
if [ ${BUILD_ROOT_MINIX} = ${YES} ]
then
echo -e "\n:> Generating minix root fs."
${RM} -rf ${ROOT_MINIX}
# Ensure presence of destination directory
${MKDIR} -p ${ROOT_MINIX}
build_minix
fi
if [ ${BUILD_ROOT_BOOTSTRAP} = ${YES} ]
then
echo -e "\n:> Bootstrapping pkgsrc."
# Ensure the new chroot is clean.
${MKDIR} -p ${ROOT_BOOTSTRAP}
${SYNCTREE} -f ${ROOT_MINIX} ${ROOT_BOOTSTRAP} >/dev/null
build_bootstrap
fi
if [ ${BUILD_ROOT_PBULK} = ${YES} ]
then
echo -e "\n:> Initializing pbulk root."
# Ensure the new chroot is clean.
${MKDIR} -p ${ROOT_PBULK}
${SYNCTREE} -f ${ROOT_BOOTSTRAP} ${ROOT_PBULK} >/dev/null
echo -e "\n:> Building packages from scratch."
pbulk_start
else
# We want to re-use a previous pbulk.
# Just make sure that any modification within the pkgsrc tree is visible
# find param to make synctree keep files in packages and distfiles
# Also requires regenerating the bootstrap tarball, as well as updating
# ROOT_PBULK/usr/pbulk/etc/pbulk.conf
#${SYNCTREE} -f ${PKGSRCDIR} ${ROOT_PBULK}${PKGSRC_PREFIX} >/dev/null
echo -e "\n:> Restarting build of packages."
pbulk_restart
fi
_build_end=$(date '+%Y%m%d%H%M.%S')
BUILD_END=$(date -j ${_build_end})
# We have to do this here, otherwise the date field would be empty
: ${TIMESTAMP=$(date -j '+%Y%m%d-%H%M%S' ${_build_end})}
: ${ROOT_LOGS=${SAVEDIR}/${TIMESTAMP}.logs}
: ${ROOT_DISTFILES=${SAVEDIR}/${TIMESTAMP}.distfiles}
: ${ROOT_PACKAGES=${SAVEDIR}/${TIMESTAMP}.packages}
if [ ${SAVE_LOGS} = ${YES} ]
then
${MKDIR} -p ${ROOT_LOGS}
${CP} -pfr ${TOPDIR}/1-build_minix.log ${ROOT_LOGS}/
${CP} -pfr ${TOPDIR}/2-build_bootstrap.log ${ROOT_LOGS}/
${CP} -pfr ${TOPDIR}/3-pbulk.log ${ROOT_LOGS}/
${SYNCTREE} -uf ${ROOT_PBULK}/usr/pbulk-logs ${ROOT_LOGS}/pbulk-logs
fi
if [ ${SAVE_DISTFILES} = ${YES} ]
then
${SYNCTREE} -uf ${ROOT_PBULK}${PKGSRC_PREFIX}/distfiles ${ROOT_DISTFILES}
fi
if [ ${SAVE_PACKAGES} = ${YES} ]
then
${SYNCTREE} -uf ${ROOT_PBULK}${PKGSRC_PREFIX}/packages ${ROOT_PACKAGES}
fi
echo -e "\n:: pbulk finished:"
echo ":> started on : ${BUILD_START}"
echo ":> finished on : ${BUILD_END}"
echo ":> Build logs : ${ROOT_LOGS}"
echo ":> Distfiles : ${ROOT_DISTFILES}"
echo ":> Packages : ${ROOT_PACKAGES}"

145
minix/pbulk.conf Normal file
View File

@ -0,0 +1,145 @@
# $NetBSD: pbulk.conf,v 1.21 2015/09/13 11:45:37 joerg Exp $
# Version of the configuration file. This is bumped whenever the default
# config changes to notify the administrator about updates.
#
config_version=0.53
# The URL where the build report will be made available. This is only
# used in the .txt version of the report.
#
base_url=http://www.minix3.org/
# If yes, keep the last scan results in ${bulklog}.old and try to reuse them.
reuse_scan_results=no
# The pbulk framework can use multiple machines to build the packages.
# On a single-processor, non-distributed build, you may want to say "no"
# here.
#
master_mode=no
has_nfs=no
master_ip=192.168.75.10
scan_clients="192.168.75.21 192.168.75.22 192.168.75.23 192.168.75.24"
build_clients="192.168.75.21 192.168.75.22 192.168.75.23 192.168.75.24"
master_port_scan=${master_ip}:2001
master_port_build=${master_ip}:2002
# Some flags for the programs that publish the binary packages and the
# build report. If you want to disable the publishing at all, see below.
#
pkg_rsync_args="-av --delete-excluded -e ssh"
pkg_rsync_target="pkgsrc@192.168.75.1:/public/packages/current/DragonFly-1.8"
report_rsync_args="-avz --delete-excluded -e ssh"
report_rsync_target="pkgsrc@192.168.75.1:/public/reports/current/DragonFly-1.8"
report_subject_prefix="pkgsrc"
report_recipients="pkgsrc-bulk@netbsd.org"
# An archive containing the pkgsrc binary tree after bootstrapping.
#
bootstrapkit=/usr/pbulk/bootstrap.tar.gz
# Optionally build a subset of the available packages and their dependencies.
# The file is a newline separated list of package locations (e.g. lang/perl5).
limited_list=/usr/pkgsrc/minix/limited_list.minimal
limited_list=/usr/pkgsrc/minix/limited_list.patched
limited_list=
# Optionally ignore unresolvable dependencies for a full build (e.g.
# a build without limited_list set). Default behavior is to bail out.
#
ignore_missing_dependencies=no
# If yes, consider a package up-to-date, if the dependency list matches
# the existing binary package and the recorded RCS IDs match the pkgsrc
# tree. Otherwise, additionally require that the package is not older
# than any of the dependencies.
#
skip_age_check=yes
report_graph_script_limit=512
# Account used for user-destdir builds. This account should have
# no special permissions.
#
unprivileged_user=root
# If yes, run the checksum phase as unprivileged user.
# Note: requires DISTDIR to be writeable for the unprivileged user.
use_unprivileged_checksum=no
# Variables used for the optional cross-compiling of packages.
#
cross_compile=no
target_arch=i386
target_destdir=/usr/src/destdir.${target_arch}
# The directories where the various files are created.
#
bulklog=/usr/pbulk-logs
packages=/usr/pkgsrc/packages/OP_SYS_VER/i386/
prefix=/usr/pkg
pkgsrc=/usr/pkgsrc
pkgdb=/usr/pkg/var/db/pkg
varbase=/usr/pkg/var
# The following programs must NOT be inside ${prefix}
pkg_info=/usr/pbulk/sbin/pkg_info
pkg_add=/usr/pbulk/sbin/pkg_add
pkg_delete=/usr/pbulk/sbin/pkg_delete
# The tools that are used for building the packages. If you do not want
# to publish anything at all, set rsync=: and mail=:.
#
bzip2=/usr/bin/bzip2
digest=/usr/pbulk/bin/digest
gzip="/usr/bin/gzip -nf -9"
# On non-NetBSD, this should usually point at the bmake in ${prefix}, not the
# make used to build pbulk itself.
make=${prefix}/bin/bmake
mail=: #/usr/bin/mail
neato=/usr/pbulk/bin/neato
rsync=: #/usr/pbulk/bin/rsync
sed=/bin/sed
tar=/usr/bin/tar
loc=${bulklog}/meta
pbuild=/usr/pbulk/bin/pbulk-build
presolve=/usr/pbulk/bin/pbulk-resolve
pscan=/usr/pbulk/bin/pbulk-scan
# When a package build fails, it is often necessary to have a look at
# the working directory or the installed files. When these options are
# set to "yes", they will be archived in the log directory.
#
keep_wrkdir=no
keep_prefix=no
pkg_up_to_date_script=/usr/pbulk/libexec/pbulk/pkg-up-to-date
pbuild_script=/usr/pbulk/libexec/pbulk/pkg-build
pbuild_start_script=/usr/pbulk/libexec/pbulk/build-client-start
pscan_prepare=/usr/pbulk/libexec/pbulk/client-clean
pscan_start_script=/usr/pbulk/libexec/pbulk/scan-client-start
report_script=/usr/pbulk/libexec/pbulk/create-report
report_html_script=/usr/pbulk/libexec/pbulk/create-report-html
report_txt_script=/usr/pbulk/libexec/pbulk/create-report-txt
report_graph_script=/usr/pbulk/libexec/pbulk/create-broken-graph
packages_script=/usr/pbulk/libexec/pbulk/compute-packages
script_phase_pre_build=/usr/pbulk/libexec/pbulk/pre-build
script_phase_build=/usr/pbulk/libexec/pbulk/build
script_phase_report=/usr/pbulk/libexec/pbulk/report
script_phase_scan=/usr/pbulk/libexec/pbulk/scan
script_phase_upload=/usr/pbulk/libexec/pbulk/upload
# Arguments are buildlog and pkgname
sync_buildlog=:
# Arguments are path to the temporary package file, the package name
# and categories. The default handler just copies the file to ${packages}
# and creates the symlinks.
sync_package=default_sync_package
# PKG_SUFX as set in mk.conf
pkg_sufx=.tgz