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 27cb366444
commit df40ce6741
7 changed files with 811 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,43 @@
x11/pixman
www/curl
textproc/libxml2
textproc/icu
shells/bash
security/openssh
security/openssl
security/p5-IO-Socket-SSL
security/heimdal
print/ghostscript
pkgtools/pkgin
pkgtools/pkg_install
pkgtools/digest
pkgtools/bootstrap-mk-files
minix/stp
minix/netdrv_tg3
minix/git-review
minix/dde-linux26-usb-drivers
minix/dde-linux26
lang/tcl
lang/python27
lang/python26
lang/perl5
lang/gcc45
lang/clang
fonts/harfbuzz
fonts/fontconfig
devel/pth
devel/pkg-config
devel/ncurses
devel/mk-configure
devel/m4
devel/libidn
devel/libtool
devel/glib2
devel/git-base
devel/gettext
devel/cmake
devel/bison
devel/binutils
devel/bmake
databases/gdbm
converters/libiconv

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

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

@ -0,0 +1,125 @@
# 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_CMD_stacksize?= :
ULIMIT_CMD_memorysize?= :
PS?= /usr/bin/ps
# Our nroff can't handle -mandoc correctly
NROFF?= mandoc
PREFER_NATIVE_PTHREADS= no
# 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_MINIX?= \
http://www.minix3.org/pkgsrc/distfiles/minix/${OS_VERSION}/
MASTER_SITE_BACKUP?= \
http://www.minix3.org/pkgsrc/distfiles/local/${OS_VERSION}/ \
ftp://ftp.netbsd.org/pub/pkgsrc/distfiles/${DIST_SUBDIR} \
ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR} \
http://ftp.jp.netbsd.org/pub/pkgsrc/distfiles/${DIST_SUBDIR}
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"
CLANGBASE?= /usr
HAVE_LLVM?= 34
CC?= clang
CXX?= clang++
CPP?= clang -E
.else
AS?= gas
CC?= gcc
CXX?= g++
.endif
#######################################################################
# Compilation Flags for all packages
CFLAGS+= -march=i586
# Headers are available, but not yet fully supported.
CONFIGURE_ENV+= ac_cv_header_spawn_h=no
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
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
#PREFER_PKGSRC?= MesaLib Xft2 Xrandr Xrender glu fontconfig freetype2
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
PKG_OPTIONS.groff?= -x11
PKG_OPTIONS.ghostscript?= -x11
.endif # BSD_PKG_MK

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

@ -0,0 +1,472 @@
#!/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 ''
do
CHROOT_PATH=${CHROOT_PATH}:${d}/bin:${d}/sbin
done
LD_CHROOT_PATH=/usr/pkg/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
make build etcforce \
USETOOLS=${USETOOLS} \
TOOLDIR=${TOOLDIR} \
DESTDIR=${ROOT_MINIX} \
SLOPPY_FLIST=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)/
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)/
# 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 ${ROOT_PBULK}/usr/pbulk-logs ${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}/
fi
if [ ${SAVE_DISTFILES} = ${YES} ]
then
${CP} -pr ${ROOT_PBULK}${PKGSRC_PREFIX}/distfiles ${ROOT_DISTFILES}
fi
if [ ${SAVE_PACKAGES} = ${YES} ]
then
${CP} -pr ${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}"

135
minix/pbulk.conf Normal file
View File

@ -0,0 +1,135 @@
# $NetBSD: pbulk.conf,v 1.16 2009/06/08 16:02:52 joerg Exp $
# Version of the configuration file. This is bumped whenver the default
# config changes to notify the administrator about updates.
#
config_version=0.51
# 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.122.114
scan_clients="192.168.122.114"
build_clients="192.168.122.58 192.168.122.129"
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_args_no_del="-av -e ssh"
pkg_rsync_target="root@cynis.ca:/srv/minix/packages"
report_rsync_args="-avz --delete-excluded -e ssh"
report_rsync_target="root@cynis.ca:/srv/minix/reports"
report_subject_prefix="pkgsrc"
report_recipients="tcort@minix3.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
# 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=yes
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