- update to 4.1.0
Changes in this release include: - Major rework of dependency calculations for initial Makefile building. Dependencies are now built inside of Build jails to prevent any cross-contamination. OPTIONS are handled properly via a new static d4p port (needs to be installed on the host). - Fix enterbuild so that the sleepme file can be properly deleted - Add support for protocol flag in createJail command when using LFTP update method. - Add some more variable exceptions that are used by bmake - Fix ports fetching on IPv6 hosts - Correct some clang issues, typos and style problems in pnohang - Add support for 11.X - Force CC and CXX to be the GNU versions for FreeBSD < 9 PR: 184391 Submitted by: ohauer Approved by: maintainer timeout (14 days)
This commit is contained in:
parent
04df414523
commit
89921b4b40
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=336508
3 changed files with 3 additions and 399 deletions
|
@ -2,8 +2,7 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= tinderbox
|
||||
PORTVERSION= 4.0.1
|
||||
PORTREVISION= 4
|
||||
PORTVERSION= 4.1.0
|
||||
CATEGORIES= ports-mgmt
|
||||
MASTER_SITES= http://tinderbox.marcuscom.com/ \
|
||||
http://T32.TecNik93.com/FreeBSD/ports/${PORTNAME}/sources/
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (tinderbox/tinderbox-4.0.1.tar.gz) = 4d49e62bcfd94438f4dce3481fab7d89c86cc200fc73a9c0744ddd01b36bc92e
|
||||
SIZE (tinderbox/tinderbox-4.0.1.tar.gz) = 150826
|
||||
SHA256 (tinderbox/tinderbox-4.1.0.tar.gz) = b2950034fe66ab36b741b99dc3d59626cef3f75a46b128d77f08e679bf69e5ee
|
||||
SIZE (tinderbox/tinderbox-4.1.0.tar.gz) = 151397
|
||||
|
|
|
@ -1,395 +0,0 @@
|
|||
Calculate dependencies in a chroot
|
||||
|
||||
Index: lib/makemake
|
||||
===================================================================
|
||||
RCS file: /space/cvs/marcuscom-cvs/portstools/tinderbox/lib/makemake,v
|
||||
retrieving revision 1.48
|
||||
diff -u -r1.48 makemake
|
||||
--- lib/makemake 6 Nov 2012 21:55:47 -0000 1.48
|
||||
+++ lib/makemake 5 Oct 2013 16:30:30 -0000
|
||||
@@ -135,11 +135,12 @@
|
||||
my (
|
||||
%pkgdir, %pkgdeps, %pkgedeps, %pkgpdeps, %pkgfdeps,
|
||||
%pkgbdeps, %pkgrdeps, @duds, $portbase, $makecache,
|
||||
- %pkgtdeps, %pkgpkgdeps,
|
||||
+ %pkgtdeps, %pkgpkgdeps, $chroot,
|
||||
);
|
||||
|
||||
$portbase = $ENV{'PORTSDIR'};
|
||||
-$makecache = new Tinderbox::MakeCache($portbase, $ENV{'PKGSUFFIX'});
|
||||
+$chroot = $ENV{'CHROOT'};
|
||||
+$makecache = new Tinderbox::MakeCache($portbase, $chroot, $ENV{'PKGSUFFIX'});
|
||||
|
||||
while (scalar(@PORTS)) {
|
||||
my $port = shift @PORTS;
|
||||
@@ -148,7 +149,7 @@
|
||||
|
||||
next if (defined($pkgdir{$portdir}));
|
||||
|
||||
- $tportdir = "$portbase/$portdir";
|
||||
+ $tportdir = "$chroot$portbase/$portdir";
|
||||
if (!-d $tportdir) {
|
||||
print STDERR "ERROR: Directory $tportdir does not exist.\n";
|
||||
if (defined($pkgdeps{$portdir})
|
||||
Index: lib/tc_command.pl
|
||||
===================================================================
|
||||
RCS file: /space/cvs/marcuscom-cvs/portstools/tinderbox/lib/tc_command.pl,v
|
||||
retrieving revision 1.184
|
||||
diff -u -r1.184 tc_command.pl
|
||||
--- lib/tc_command.pl 28 Apr 2013 20:05:40 -0000 1.184
|
||||
+++ lib/tc_command.pl 5 Oct 2013 16:30:31 -0000
|
||||
@@ -1536,7 +1536,8 @@
|
||||
sub addPortToOneBuild {
|
||||
my $build = $ds->getBuildByName($opts->{'b'});
|
||||
my $makecache =
|
||||
- new Tinderbox::MakeCache($ENV{'PORTSDIR'}, $ENV{'PKGSUFFIX'});
|
||||
+ new Tinderbox::MakeCache($ENV{'PORTSDIR'}, $ENV{'CHROOT'},
|
||||
+ $ENV{'PKGSUFFIX'});
|
||||
my @bports = ();
|
||||
|
||||
if (!$opts->{'d'}) {
|
||||
@@ -3414,12 +3415,14 @@
|
||||
my $cache = shift;
|
||||
my $deps = shift;
|
||||
|
||||
- my $portdir = $ENV{'PORTSDIR'} . "/" . $port;
|
||||
+ my $portsdir = $ENV{'CHROOT'} . $ENV{'PORTSDIR'};
|
||||
+
|
||||
+ my $portdir = $portsdir . "/" . $port;
|
||||
return undef if (!-d $portdir);
|
||||
|
||||
# Canonicalize the port directory.
|
||||
$port = abs_path($portdir);
|
||||
- $port =~ s|$ENV{'PORTSDIR'}/||;
|
||||
+ $port =~ s|$portsdir/||;
|
||||
|
||||
if (defined($deps)) {
|
||||
my @list;
|
||||
Index: lib/tc_command.sh
|
||||
===================================================================
|
||||
RCS file: /space/cvs/marcuscom-cvs/portstools/tinderbox/lib/tc_command.sh,v
|
||||
retrieving revision 1.175
|
||||
diff -u -r1.175 tc_command.sh
|
||||
--- lib/tc_command.sh 7 Aug 2013 18:25:52 -0000 1.175
|
||||
+++ lib/tc_command.sh 5 Oct 2013 16:30:32 -0000
|
||||
@@ -1385,7 +1385,7 @@
|
||||
cleanDirs ${buildName} ${BUILD_DIR}
|
||||
|
||||
if [ "${MD_FSTYPE}" = "ufs" -o "${MD_FSTYPE}" = "zfs" ]; then
|
||||
- if [ -n "${MD_SIZE}" -a ${MD_SIZE%[a-zA-Z]} -gt 0 ]; then
|
||||
+ if [ -n "${MD_SIZE}" ] && [ ${MD_SIZE%[a-zA-Z]} -gt 0 ]; then
|
||||
# setup md (ramdisk) backing for the build
|
||||
mdconfig -a -t swap -s ${MD_SIZE} > /tmp/tinderbuild_md.${build}
|
||||
read MD_UNIT </tmp/tinderbuild_md.${build}
|
||||
@@ -1400,7 +1400,7 @@
|
||||
fi
|
||||
fi
|
||||
elif [ "${MD_FSTYPE}" = "tmpfs" ]; then
|
||||
- if [ -n "${MD_SIZE}" -a ${MD_SIZE%[a-zA-Z]} -gt 0 ]; then
|
||||
+ if [ -n "${MD_SIZE}" ] && [ ${MD_SIZE%[a-zA-Z]} -gt 0 ]; then
|
||||
mount -t tmpfs -o size=${MD_SIZE} tmpfs ${BUILD_DIR}
|
||||
else
|
||||
mount -t tmpfs tmpfs ${BUILD_DIR}
|
||||
@@ -1416,7 +1416,7 @@
|
||||
execute_hook "postBuildExtract" "BUILD=${buildName} DESTDIR=${BUILD_DIR} JAIL=${jailName} PB=${pb} RC=0"
|
||||
|
||||
# Finalize environment
|
||||
- cp -f /etc/resolv.conf ${BUILD_DIR}/etc
|
||||
+ cp /etc/resolv.conf ${BUILD_DIR}/etc || touch ${BUILD_DIR}/etc/resolv.conf
|
||||
|
||||
return 0
|
||||
}
|
||||
@@ -1957,7 +1957,16 @@
|
||||
${tc} updatePortsTree -p ${portstree}
|
||||
fi
|
||||
|
||||
- # Create makefile if required
|
||||
+ # Set up the chrooted environment
|
||||
+ osmajor=$(echo ${jail} | sed -E -e 's|(^[[:digit:]]+).*$|\1|')
|
||||
+ if [ ${osmajor} -lt 6 ]; then
|
||||
+ echo "tinderbuild: unhandled OS version: ${osmajor}"
|
||||
+ tinderbuild_cleanup 1
|
||||
+ fi
|
||||
+
|
||||
+ tinderbuild_setup
|
||||
+
|
||||
+ # Create Makefile if required
|
||||
if [ ${skipmake} -eq 0 ]; then
|
||||
echo "tinderbuild: creating makefile..."
|
||||
|
||||
@@ -1966,19 +1975,16 @@
|
||||
(
|
||||
export PORTBUILD_ARGS="$(echo ${pbargs})"
|
||||
buildenvNoHost ${build}
|
||||
- if ! requestMount -t portstree -p ${portstree}; then
|
||||
- echo "tinderbuild: cannot mount portstree: ${portstree}"
|
||||
- exit 1
|
||||
- fi
|
||||
- env PORTSDIR=$(tinderLoc portstree ${portstree})/ports \
|
||||
+ buildenv ${jail} ${portstree} ${build}
|
||||
+ HOST_WORKDIR=$(${tc} configGet | \
|
||||
+ awk -F= '/^HOST_WORKDIR/ {print $2}')
|
||||
+ env PORTSDIR=/a/ports \
|
||||
+ CHROOT=$(tinderLoc buildroot ${build}) \
|
||||
$(tinderLoc scripts lib/makemake) ${noduds} ${build} ${ports}
|
||||
)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "tinderbuild: failed to generate Makefile for ${build}"
|
||||
- cleanupMounts -t portstree -p ${portstree}
|
||||
tinderbuild_cleanup 1
|
||||
- else
|
||||
- cleanupMounts -t portstree -p ${portstree}
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1987,15 +1993,6 @@
|
||||
tinderbuild_cleanup 0
|
||||
fi
|
||||
|
||||
- # Set up the chrooted environment
|
||||
- osmajor=$(echo ${jail} | sed -E -e 's|(^[[:digit:]]+).*$|\1|')
|
||||
- if [ ${osmajor} -lt 6 ]; then
|
||||
- echo "tinderbuild: unhandled OS version: ${osmajor}"
|
||||
- tinderbuild_cleanup 1
|
||||
- fi
|
||||
-
|
||||
- tinderbuild_setup
|
||||
-
|
||||
# Seatbelts off. Away we go.
|
||||
${tc} updateBuildStatus -b ${build} -s PORTBUILD
|
||||
tinderbuild_phase 0 ${jobs} ${pkgDir}
|
||||
@@ -2045,7 +2042,11 @@
|
||||
addPortToBuild_cleanup () {
|
||||
jail=$1
|
||||
portsTree=$2
|
||||
+ build=$3
|
||||
|
||||
+ cleanupMounts -t buildports -b ${build}
|
||||
+ cleanupMounts -t buildsrc -b ${build}
|
||||
+ cleanupMounts -t buildoptions -b ${build}
|
||||
cleanupMounts -t jail -j ${jail}
|
||||
cleanupMounts -t portstree -p ${portsTree}
|
||||
}
|
||||
@@ -2070,7 +2071,29 @@
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- trap "addPortToBuild_cleanup ${jail} ${portsTree}" 1 2 3 9 10 11 15
|
||||
+ # Extracting the Jail tarball takes ages on some systems, so we can
|
||||
+ # pretty safely (for these purposes) reuse the extraction as long as
|
||||
+ # resolv.conf is newer than the tarball (resolv.conf is created
|
||||
+ # by makeBuild)
|
||||
+ HOST_WORKDIR=$(${tc} configGet | awk -F= '/^HOST_WORKDIR/ {print $2}')
|
||||
+ if [ $(tinderLoc jailtarball ${jail}) -ot \
|
||||
+ $(tinderLoc buildroot ${build})/etc/resolv.conf ]; then
|
||||
+ echo "addPortToBuild: recent jail tarball exists; no need to reextract"
|
||||
+ else
|
||||
+ echo "addPortToBuild: extracting jail tarball to calculate dependencies inside"
|
||||
+ makeBuild -b ${build}
|
||||
+ fi
|
||||
+
|
||||
+ if ! requestMount -t buildports -b ${build} -r -n; then
|
||||
+ echo "addPortToBuild: cannot mount ports source inside ${build}"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+ if ! requestMount -t buildsrc -b ${build} -r -n; then
|
||||
+ echo "addPortToBuild: cannot mount base source inside ${build}"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+
|
||||
+ trap "addPortToBuild_cleanup ${jail} ${portsTree} ${build}" 1 2 3 9 10 11 15
|
||||
|
||||
# Save TERM since we need that for OPTIONS
|
||||
save_TERM=${TERM}
|
||||
@@ -2082,22 +2105,30 @@
|
||||
buildenv ${jail} ${portsTree} ${build}
|
||||
buildenvNoHost ${build}
|
||||
|
||||
- export PORTSDIR=$(tinderLoc portstree ${portsTree})/ports
|
||||
- if [ -z "${portDir}" ]; then
|
||||
- ${tc} addPortToOneBuild -b ${build} ${norecurse}
|
||||
- else
|
||||
- if [ ! -d ${PORTSDIR}/${portDir} ]; then
|
||||
- echo "addPort: Unknown port ${portDir}"
|
||||
- exit 1
|
||||
- fi
|
||||
- ${tc} addPortToOneBuild -b ${build} -d ${portDir} ${norecurse}
|
||||
+ if [ ${options} -eq 1 -a ${OPTIONS_ENABLED} -eq 1 ]; then
|
||||
+ mkdir -p $(tinderLoc options ${build}) \
|
||||
+ $(tinderLoc buildoptions ${build})
|
||||
+ if ! requestMount -t buildoptions -b ${build} \
|
||||
+ -s $(tinderLoc options ${build}) -n; then
|
||||
+ echo "addPortToBuild: cannot mount options inside ${build}"
|
||||
+ exit 1
|
||||
+ fi
|
||||
fi
|
||||
+
|
||||
+ export PORTSDIR=/a/ports
|
||||
+ export CHROOT=$(tinderLoc buildroot ${build})
|
||||
+
|
||||
+ if [ -n "${portDir}" ] && [ ! -d ${CHROOT}/${PORTSDIR}/${portDir} ]; then
|
||||
+ echo "addPort: Unknown port ${portDir}"
|
||||
+ exit 1
|
||||
+ fi
|
||||
+
|
||||
if [ ${options} -eq 1 -a ${OPTIONS_ENABLED} -eq 1 ]; then
|
||||
pdirs=""
|
||||
if [ -z "${portDir}" ]; then
|
||||
pdirs=$(${tc} getPortsForBuild -b ${build} 2>/dev/null)
|
||||
else
|
||||
- pdirs="${PORTSDIR}/${portDir}"
|
||||
+ pdirs="${portDir}"
|
||||
fi
|
||||
rmconfig=true
|
||||
if [ ${cleanOptions} -eq 1 ]; then
|
||||
@@ -2108,28 +2139,38 @@
|
||||
fi
|
||||
fi
|
||||
for pdir in ${pdirs}; do
|
||||
- if [ -d ${pdir} ]; then
|
||||
+ if [ -d ${CHROOT}${PORTSDIR}/${pdir} ]; then
|
||||
export TERM=${save_TERM}
|
||||
+ if ! cp /usr/local/bin/dialog4ports-static ${CHROOT}/; then
|
||||
+ echo "In order to customise OPTIONS, you must install"
|
||||
+ echo "ports-mgmt/dialog4ports-static."
|
||||
+ break
|
||||
+ fi
|
||||
read -p "Generating options for ${build}; hit Enter to continue..." key
|
||||
echo ""
|
||||
if [ -z "${norecurse}" ]; then
|
||||
- ( cd ${pdir} && ${rmconfig} \
|
||||
- && make -k config-recursive )
|
||||
+ chroot ${CHROOT} /bin/sh -c \
|
||||
+ "cd ${PORTSDIR}/${pdir} && ${rmconfig} && \
|
||||
+ make -k DIALOG4PORTS=/dialog4ports-static \
|
||||
+ config-recursive"
|
||||
else
|
||||
- ( cd ${pdir} && ${rmconfig} \
|
||||
- && make config )
|
||||
+ chroot ${CHROOT} /bin/sh -c \
|
||||
+ "cd ${PORTSDIR}/${pdir} && ${rmconfig} && \
|
||||
+ make DIALOG4PORTS=/dialog4ports-static config"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
+ ${tc} addPortToOneBuild -b ${build} ${portDir:+-d} ${portDir} ${norecurse}
|
||||
+
|
||||
if [ -n "${save_SRCBASE}" ]; then
|
||||
export SRCBASE=${save_SRCBASE}
|
||||
else
|
||||
unset SRCBASE
|
||||
fi
|
||||
|
||||
- addPortToBuild_cleanup ${jail} ${portsTree}
|
||||
+ addPortToBuild_cleanup ${jail} ${portsTree} ${build}
|
||||
}
|
||||
|
||||
addPort () {
|
||||
Index: lib/tinderlib.sh
|
||||
===================================================================
|
||||
RCS file: /space/cvs/marcuscom-cvs/portstools/tinderbox/lib/tinderlib.sh,v
|
||||
retrieving revision 1.83
|
||||
diff -u -r1.83 tinderlib.sh
|
||||
--- lib/tinderlib.sh 10 Jun 2013 16:49:51 -0000 1.83
|
||||
+++ lib/tinderlib.sh 5 Oct 2013 16:30:32 -0000
|
||||
@@ -498,9 +498,7 @@
|
||||
save_IFS=${IFS}
|
||||
IFS='
|
||||
'
|
||||
- # Allow SRCBASE to be overridden
|
||||
- eval "export SRCBASE=${SRCBASE:-`realpath $(tinderLoc jail ${jail})/src`}" \
|
||||
- >/dev/null 2>&1
|
||||
+ # Do not set SRCBASE here-- we use chroots nowadays so /usr/src is there
|
||||
|
||||
# Set ARCH (needed for cross-building)
|
||||
export ARCH=$(${tc} getJailArch -j ${jail})
|
||||
@@ -524,13 +522,6 @@
|
||||
eval "export __MAKE_CONF=${jailBase}/make.conf" >/dev/null 2>&1
|
||||
eval "export LOCALBASE=/nonexistentlocal" >/dev/null 2>&1
|
||||
eval "export PKG_DBDIR=/nonexistentdb" >/dev/null 2>&1
|
||||
- if [ x"${OPTIONS_ENABLED}" != x"1" ]; then
|
||||
- eval "export PORT_DBDIR=/nonexistentportdb" >/dev/null 2>&1
|
||||
- else
|
||||
- optionsDir=$(tinderLoc options ${build})
|
||||
-
|
||||
- eval "export PORT_DBDIR=${optionsDir}" >/dev/null 2>&1
|
||||
- fi
|
||||
eval "export LINUXBASE=/nonexistentlinux" >/dev/null 2>&1
|
||||
eval "unset DISPLAY" >/dev/null 2>&1
|
||||
}
|
||||
Index: lib/Tinderbox/MakeCache.pm
|
||||
===================================================================
|
||||
RCS file: /space/cvs/marcuscom-cvs/portstools/tinderbox/lib/Tinderbox/MakeCache.pm,v
|
||||
retrieving revision 1.12
|
||||
diff -u -r1.12 MakeCache.pm
|
||||
--- lib/Tinderbox/MakeCache.pm 4 Mar 2012 12:53:08 -0000 1.12
|
||||
+++ lib/Tinderbox/MakeCache.pm 5 Oct 2013 16:30:32 -0000
|
||||
@@ -49,6 +49,7 @@
|
||||
CACHE => undef,
|
||||
SEEN => undef,
|
||||
BASEDIR => shift,
|
||||
+ CHROOT => shift,
|
||||
}, $name;
|
||||
|
||||
$self;
|
||||
@@ -67,7 +68,10 @@
|
||||
|
||||
$tmp = '-V ' . join(' -V ', @makeTargets);
|
||||
my $dir = $self->{BASEDIR} . '/' . $port;
|
||||
- @ret = split("\n", `cd $dir && make $tmp`);
|
||||
+ my $cmd = "cd $dir && make $tmp";
|
||||
+ $cmd = "chroot $self->{CHROOT} /bin/sh -c '$cmd'";
|
||||
+
|
||||
+ @ret = split("\n", `$cmd`);
|
||||
|
||||
foreach $tmp (@makeTargets) {
|
||||
$self->{CACHE}->{$port}{$tmp} = shift @ret;
|
||||
? .fslckout
|
||||
? .fslckout-mjFA3F63973
|
||||
Index: lib/tc_command.sh
|
||||
===================================================================
|
||||
RCS file: /space/cvs/marcuscom-cvs/portstools/tinderbox/lib/tc_command.sh,v
|
||||
retrieving revision 1.176
|
||||
diff -u -r1.176 tc_command.sh
|
||||
--- lib/tc_command.sh 7 Oct 2013 16:36:54 -0000 1.176
|
||||
+++ lib/tc_command.sh 7 Oct 2013 18:34:20 -0000
|
||||
@@ -2049,6 +2049,7 @@
|
||||
cleanupMounts -t buildoptions -b ${build}
|
||||
cleanupMounts -t jail -j ${jail}
|
||||
cleanupMounts -t portstree -p ${portsTree}
|
||||
+ cleanenv
|
||||
}
|
||||
|
||||
addPortToBuild () {
|
||||
|
||||
Index: lib/tinderlib.sh
|
||||
===================================================================
|
||||
RCS file: /space/cvs/marcuscom-cvs/portstools/tinderbox/lib/tinderlib.sh,v
|
||||
retrieving revision 1.85
|
||||
diff -u -r1.85 tinderlib.sh
|
||||
--- lib/tinderlib.sh 7 Oct 2013 16:36:54 -0000 1.85
|
||||
+++ lib/tinderlib.sh 13 Oct 2013 12:54:19 -0000
|
||||
@@ -506,7 +506,10 @@
|
||||
save_IFS=${IFS}
|
||||
IFS='
|
||||
'
|
||||
- # Do not set SRCBASE here-- we use chroots nowadays so /usr/src is there
|
||||
+
|
||||
+ # Allow SRCBASE to be overridden
|
||||
+ eval "export SRCBASE=${SRCBASE:-`realpath $(tinderLoc jail ${jail})/src`}" \
|
||||
+ >/dev/null 2>&1
|
||||
|
||||
# Set ARCH (needed for cross-building)
|
||||
export ARCH=$(${tc} getJailArch -j ${jail})
|
||||
--- lib/tc_command.wrong 2013-10-19 21:15:58.461836978 +0100
|
||||
+++ lib/tc_command.sh 2013-10-19 21:16:32.105859389 +0100
|
||||
@@ -1967,7 +1967,6 @@
|
||||
(
|
||||
export PORTBUILD_ARGS="$(echo ${pbargs})"
|
||||
buildenvNoHost ${build}
|
||||
- buildenv ${jail} ${portstree} ${build}
|
||||
HOST_WORKDIR=$(${tc} configGet | \
|
||||
awk -F= '/^HOST_WORKDIR/ {print $2}')
|
||||
env PORTSDIR=/a/ports \
|
Loading…
Reference in a new issue