Commit graph

441 commits

Author SHA1 Message Date
Kris Kennaway
13c6a42331 Use pkg_add instead of pkg_add -f 2003-01-24 04:39:02 +00:00
Kris Kennaway
47e798381c Sync with bento:
- Switch to using ${arch}/${branch} subdirectory instead of ${branch}
- export INDEXFILE, MACHINE_ARCH and ARCH variables
- Add (commented out) FETCH_BEFORE_ARGS setting
- Add MASTER_SITE_OVERRIDE to fetch from ftp://bento
- Zap some mouldy old unused variables
2003-01-24 04:37:29 +00:00
Kris Kennaway
4fbc0185e0 Remove these scripts, which are no longer useful. 2003-01-24 04:32:33 +00:00
Kris Kennaway
520ab052d8 Convert this to buildenv to make it actually work properly. 2002-11-18 10:12:47 +00:00
Kris Kennaway
115bbb55f9 Fix the html output of this script. There was neither a closing
body tag nor a closing html tag.  In general, browsers work without
these, but Konqueror in particular was displaying some artifacts.

Also make sure empty cells have an nbsp directive; eliminate a bogus
case for Aff.; and change Date build to Build date.

Submitted by:	Mark Linimon <linimon@lonesome.com>
PR:		www/45021
2002-11-10 08:55:33 +00:00
Kris Kennaway
78395efc95 Catch up to lots of changes from bento/beta:
* Update list of quickports to include kde3

* Add ability to restart builds (-restart)

* Change default to build packages for non-cdrom use (associated option name
  inverted from -nocdrom to -cdrom)

* Cope with .tgz or .tbz packages

* Use buildenv framework

* Use cvs update -PdA instead of -Pd when updating ports/docs tree

* Always delete restricted packages after a build run, since they are
  published on the website.

* Minor cosmetic changes
2002-11-08 22:20:48 +00:00
Kris Kennaway
a3be6877e5 Revamp this script:
* generate an interim .logs file containing the data to be presented in
  the html files (also useful for other consumers, like fenner's
  per-maintainer error logs)

* Generate 5 different summaries of the error data, sorted by port name,
  maintainer, category, build error, builddate

* Improve the table html code so it renders faster

* Add a few new failure reasons

Submitted by:	edwin (based on)
PR:		ports/43927
2002-11-03 22:41:40 +00:00
Kris Kennaway
7c78297dc2 Add C versions of the pnohang and ptimeout scripts (previously written in
perl).  Thanks to all those who submitted versions of these.

Submitted by:	marcus (based on)
2002-11-03 04:49:39 +00:00
Kris Kennaway
da8d4e6bda Use the correct filename for the FreeBSD version string used by the
uname script.  Mount the docs from the correct location.  Remove the
hack to pkg_add perl into the chroot environment, now that the scripts
no longer rely on it.
2002-11-02 04:04:14 +00:00
Kris Kennaway
78774e2719 Read FTP url from ${ftpurl}. Remove hack to fetch perl package into the
bindist now that it is no longer required.
2002-11-02 04:01:54 +00:00
Kris Kennaway
52918465c1 Support either .tgz or .tbz packages 2002-11-02 04:00:18 +00:00
Kris Kennaway
a76f0d1da4 Add FTP_PASSIVE_MODE. Build tgz packages on 4 and 4-exp, and tbz on 5. 2002-11-02 03:59:45 +00:00
Kris Kennaway
ef6266db84 Correct a message 2002-09-15 22:05:54 +00:00
Kris Kennaway
ce8ff4da93 Conditionalize one more thing on i386 2002-09-15 22:04:05 +00:00
Kris Kennaway
a959b8bdac Optimize the html output by putting multiple missing files in the same
table row, instead of making a new row for every single file.  This
cuts down the generated page size drastically, improving rendering times.

Submitted by:	Edwin Groothuis <edwin@mavetju.org>
PR:		ports/40962
2002-09-15 22:02:20 +00:00
Kris Kennaway
2eda2e760e Add a bunch of new failure modes (mostly to do with ports failing on 5.0) 2002-09-15 21:58:46 +00:00
Kris Kennaway
538513b7da Use PKGSUFFIX from buildenv 2002-09-15 21:57:52 +00:00
Kris Kennaway
d50285d854 Add PKG_PATH so packages can be found automatically (not sure what caused
this to break).  Support both .tgz and .tbz packages.
2002-09-15 21:57:05 +00:00
Kris Kennaway
b2abae3101 .tbz packages are now standard 2002-09-15 21:56:08 +00:00
Kris Kennaway
328a27e8b5 * XFREE86_VERSION=4 is now standard
* Add PKGSUFFIX and PKGZIPCMD variables
2002-09-15 21:55:52 +00:00
Kris Kennaway
17048bd504 * Support multiple arches and conditionalize i386-only stuff
* Fetch perl package on -current
2002-09-15 21:55:08 +00:00
Kris Kennaway
ec25ae9a13 * Catch up to .tbz packages
* Hack to use perl package on -current (needs to be done better somehow)
* Use buildenv
2002-09-15 21:53:59 +00:00
Kris Kennaway
759c4f8b14 Allow packages to be installed in the build chroot; this is needed
for 5.x package builds since the pnohang script is written in perl,
which was removed from the base OS.
2002-06-06 20:58:52 +00:00
Kris Kennaway
79fb8478c2 Only run ldconfig -aout commands on i386
Correct some build environment variables
Exit with code 255 if the port build failed uncleanly
2002-06-06 20:55:57 +00:00
Kris Kennaway
abd2d0f62e - Catch up to buildenv changes.
- Always update UNAME_TARGET with each build
- Populate mtree hierarchies better
2002-05-13 03:43:07 +00:00
Kris Kennaway
7e69da3672 Comment out the kernel building and just link to kernel.GENERIC. 2002-05-13 03:40:20 +00:00
Kris Kennaway
2982df6210 Zap some unused code. Catch up to buildenv changes. 2002-05-13 03:30:21 +00:00
Kris Kennaway
68f5d86cb9 - Switch default to XFree86-4.x for all branches
- buildenv() takes extra argument of the portbuild directory
- Add a todo comment
2002-05-13 03:25:39 +00:00
Kris Kennaway
ba656274f6 * Clean up this script a bit
* Add a trap handler to try and clean up the build if it is interrupted
  by a signal (one problem with the previous version is that package builds
  whice are interrupted by ptimeout because they are stuck, leave their
  working files lying around in the chroot).
* Switch to NFS v3 mounts instead of v2
* Autogenerate the version string to report in uname within the chroot,
  based on the version string in the head of the CVS branch being built.
* Copy packages via cp from the NFS mount, not scp.
2002-03-25 00:24:03 +00:00
Kris Kennaway
1b934126ce * Clean up this script a bit
* Require an additional <tmpdir> argument so the client knows where its
  temp directory is.
* Mount the portbuild directory readonly via NFS, and copy files that
  way instead of via scp, which has too much overhead
2002-03-25 00:20:34 +00:00
Kris Kennaway
e1b376a273 Detect a couple more failure modes 2002-03-25 00:18:00 +00:00
Kris Kennaway
3f8e160d36 Add MASTER_SITE_OVERRIDE to the list of variables propagated, so that
the cluster machines preferentially fetch an existing file from ftp-master
2002-03-25 00:16:29 +00:00
Kris Kennaway
8668b4f30b Update OSVERSIONS. This needs to be switched to buildenv. 2002-03-16 05:51:02 +00:00
Kris Kennaway
ad945e95f4 Use buildenv for setting environment variables, and tidy up a bit. Fix
typo s/UNAME_VERSION/UNAME_TARGET/
2002-03-16 05:50:24 +00:00
Kris Kennaway
42b02fbb89 Pull environment variables from buildenv, and tidy up a bit. 2002-03-16 05:48:03 +00:00
Kris Kennaway
6d24580fc9 Collect some more environment variables here and tidy up a bit 2002-03-16 05:46:33 +00:00
Kris Kennaway
5826701f06 Clean up index generation:
* Don't assume the script will be called from the ports directory

* Use buildenv to set environment variables

* Set LOCALBASE and X11BASE to dummy variables to prevent the ports tree
  from picking up packages installed on the host system, and patch up
  the generated index at the end
2002-03-11 11:54:40 +00:00
Kris Kennaway
530ba84e62 Set all of the <bsd.port.mk> control variables to be used in port/package
operations in one central place, instead of doing them piecemeal all over
the place.  This also includes the ability to customize settings per
port branch (e.g. XFREE86_VERSION)

Also, instead of hardcoding values of OSVERSION and OSREL which are going
to get forgotten again, pull them out of the source tree in ${branch}/src
so they track the head of the branch.
2002-03-11 11:52:15 +00:00
Kris Kennaway
909460e7dd Zap support for 2.2 and 3.x 2002-03-11 03:56:20 +00:00
Kris Kennaway
0bfaa61d95 * Ports get built under ${scratchdir}, not under ${pb}..this was pretty
tangled up.
* Sort the environment variables so that all of the commented out ones
  are grouped together
* Reverse sense of NOPLISTCHECK -> PLISTCHECK, since it's not an option
  we want enabled by default (it causes too many build failures).  This
  was too easy to forget when building packages 'by hand' using the parallel
  makefile.
* Copy across UNAME_VERSION into the chroot area so that uname inside the
  chroot reports the desired version
2002-03-09 23:18:10 +00:00
Kris Kennaway
2f9e4ad54b * Use portbuild.conf for config information.
* Shorten timeout period from 12 hours to 4 hours to avoid delaying the builds
  unnecessarily.
* Reverse sense of NOPLISTCHECK -> PLISTCHECK, since it's not an option
  we want enabled by default (it causes too many build failures).  This
  was too easy to forget when building packages 'by hand' using the parallel
  makefile.
2002-03-09 23:14:41 +00:00
Kris Kennaway
1e74bafe56 Add -nocdrom option to usage 2002-03-09 23:12:33 +00:00
Kris Kennaway
2c2d88145a * Reverse sense of NOPLISTCHECK -> PLISTCHECK, since it's not an option
we want enabled by default (it causes too many build failures).  This
  was too easy to forget when building packages 'by hand' using the parallel
  makefile.
* Display correct pathnames in build progress messages
* Add a -nocdrom option to avoid the (time-consuming) clean-for-cdrom-list
  target
* Remove x11/XFree86 from dummyports since we don't want to use an old
  stale version of the package which never gets rebuilt
* Add comments noting that we should check for CVS conflicts in the cvs
  update scripts and exit gracefully.
2002-03-09 23:11:11 +00:00
Kris Kennaway
6601c13809 Reverse sense of NOPLISTCHECK -> PLISTCHECK, since it's not an option
we want enabled by default (it causes too many build failures).  This
was too easy to forget when building packages 'by hand' using the parallel
makefile.
2002-03-09 23:07:25 +00:00
Kris Kennaway
6a89c7bb38 Ports are built in ${scratchdir}, not ${pb} 2002-03-09 23:06:27 +00:00
Kris Kennaway
0875e2f60d * Document the purpose of this script
* Don't display errors if the bindist tarball is not yet on the client
* Copy over some more files required to set up the client
2002-03-09 23:05:48 +00:00
Kris Kennaway
976b001efd Add new version of uname for 5.x bindists 2002-03-09 23:04:20 +00:00
Kris Kennaway
7bdc623fd8 Add template file from bento 2002-03-09 23:04:04 +00:00
Kris Kennaway
9988eab1eb Don't hard-code a version string to report to the chroots, pick it up
from a file so it can be more easily changed (and is more obvious so it
doesn't get overlooked)
2002-03-09 22:51:20 +00:00
Kris Kennaway
7e42e1b8ed Garbage collect these old configuration directories, since we don't
support 2.2.x/3.x package builds any more.
2002-02-25 08:26:10 +00:00
Kris Kennaway
8ef0083a13 Clean up this script a bit:
* Don't require the script to be called from inside the branch directory;
  follow standard practise and pass the branch to build as an argument.
* Populate the chroot with the BSD.local.dist mtree file
* Add whitespace for readability, and sprinkle liberally with comments
* Comment on some inscrutable parts of the script which were presumably
  put there to work around a (perceived) problem, but which I can't
  understand.
2002-02-24 08:01:54 +00:00
Kris Kennaway
e7d0711182 Axe support for 2.2.x and 3.x branches, and make this script more robust
by removing assumptions about how and from where it is called.
2002-02-24 01:42:26 +00:00
Kris Kennaway
52e7663529 When the 'makeduds' script fails, show the contents of the duds file instead
of just proclaiming "error(s) occurred".  This should immediately identify
which port is causing the build to break (although it's a bit of a verbose
solution).
2002-02-24 00:44:15 +00:00
Kris Kennaway
31c7c10181 Catch up to changes on bento:
* Update OSVERSIONs
* Add -x to ssh arguments
* Use per-branch ports collection
2002-02-11 03:07:54 +00:00
Kris Kennaway
177f0f7012 Catch up to changes on bento:
* Add some commented out stuff which tries to mount/unmount something.  No
  idea why, but it's commented out so it's harmless :)
2002-02-11 03:06:03 +00:00
Kris Kennaway
6a7d0bb916 Catch up to changes on bento:
* Run mtree in the temporary directory to create the filesystem
  hierarchy
* Use the correct kernel compile directory on both 5.x and earlier versions.
2002-02-11 03:03:49 +00:00
Kris Kennaway
24dda16d93 Catch up to changes on bento:
* Don't run this script in a loop, run once only.
2002-02-11 03:00:32 +00:00
Kris Kennaway
5320b2628b Catch up to changes on bento:
* Update OSVERSIONs for the various branches; add 4-exp.
* Add SRCBASE environment variable and export it to the make job.
2002-02-11 02:59:08 +00:00
Kris Kennaway
37be0b441e Catch up to changes on bento:
* Don't create logs for 3.x, do them for 4-exp instead.
2002-02-11 02:55:17 +00:00
Kris Kennaway
03455d1bf9 Catch up to changes on bento:
* Require a branch argument
* Use tar --unlink when copying distfiles
2002-02-11 02:54:07 +00:00
Kris Kennaway
b9b339d725 Catch up with changes from bento:
* Update the list of ports which takes a long time to build.
* Don't use a single ports collection for every port build, indirect through
  ${pb}/${branch}/ports so we can have different ports collections for
  each branch.  Add -noportscvs option to prevent cvs update of ports
  collection.
* Remove 3.x as a valid branch, add 4-exp for the 4.x experimental builds
  used for testing bsd.port.mk patches
* Update usage information
2002-02-11 02:50:02 +00:00
Kris Kennaway
51d99dad1e Document the use and purpose of this script. 2002-02-11 02:43:14 +00:00
Kris Kennaway
37a754673b Describe the meaning of the mlist file a bit better, and update step 9 in
the setup instructions.
2002-02-11 02:32:44 +00:00
Kris Kennaway
a40b28ac21 Document the purpose of this script and the algorithm it uses to
decide machines which should be handed new jobs.  Also, at some point someone
added a note about a possible bug in the reportload script which causes
this one to fall over.
2002-02-11 02:24:23 +00:00
Kris Kennaway
a76e4a0c08 Document the purpose of this script. Use the temp directory for tempfiles 2002-02-11 02:13:29 +00:00
Kris Kennaway
c0d1c2939b Document the purpose of this script. 2002-02-11 02:12:22 +00:00
Kris Kennaway
f2e6390c69 Add a comment describing what this script does. 2002-02-11 01:55:29 +00:00
Satoshi Asami
bae984c218 Add another check for duplicate installations of same port. Only
search for logs in toplevel directory.  A couple of cosmetic changes.
2001-10-14 20:00:31 +00:00
Satoshi Asami
bf0af6f063 Uncomment and update OSREL and OSVERSION in preparation for 4.3R. 2001-03-12 10:55:03 +00:00
Satoshi Asami
041d6fd7a5 mkbindist is in scripts/ now, with ${branch}/mkbindist.conf specifying
necessary per-branch options.
2001-02-28 17:14:29 +00:00
Satoshi Asami
abbe92fc7c (1) Update values of OSREL/OSVERSION to match reality.
(2) (portbuild) Change no-output timeout from 1800 to 3600.  Some ports
    seem to actually take more than 30 minutes inside a command.

(3) (portbuild) Add -p flag to tar when extracting bindist.

(4) (makeindex) Remove the -j flag to make index, the argument was 1 anyway.
2001-02-21 04:35:35 +00:00
Satoshi Asami
f8e206ffe7 A few new features:
(1) The script now assumes make(1) knows how to handle long dependency
    chains properly.  quickports is a list of ports that take a
    long time to build by thesmelves (not ports that have long
    dependency chains).  The script adds several extra dependency
    levels to the generate Makefile for those ports to make their
    dependency chains longer.

(2) Use -R flag to cvs.  Comment out the cvsup part.

(3) Preserve error messages for ports that didn't build the first
    time around but did build on the retry.

(4) Record the package's timestamps in the log directory by doing
    an "ls -asFlrt" in the packages/All directory.

(5) Add a little sleep after two background jobs so outputs won't
    be garbled.
2001-01-21 01:02:13 +00:00
Satoshi Asami
990f4557b0 master is back to bento.
Add definition of scratchdir=/x/tmp for scratch directory to use
when temporarily creating load files.
2000-12-18 04:43:46 +00:00
Satoshi Asami
aa93cd0f98 Combine the scripts for building the bundist tarballs. The per-branch
specifics are in mkbindist.conf under ${portbuilddir}/${branch}.
2000-12-18 01:54:19 +00:00
Satoshi Asami
118622e658 Use YYYYMMDDHH for log files so we can have two builds on the same
day.  Remove lock file if package build aborts.
2000-11-07 23:40:07 +00:00
Satoshi Asami
4928f195ad (1) New flag, -ftp, indicates packages are to be copied over to the
ftp site (specified in portbuild.conf).  (It used to be implied by
    -norestr.)

(2) Remove x11-toolkits/Motif-dummy from list of dummy ports, since
    open-motif is now the default.  Also gone is the MOTIF_OPEN
    variable.

(3) Run the tar -czf of the ports tree and generation of CHECKSUM.MD5
    in the background.

(4) Print the amount of time it took for the entire process, as well
    as phase 1 and phase 2 of the compilations.  (It is done by date
    -r, so it will only work modulo 24 hours.  Hopefully the build
    will never go over 24 hours again.)

(5) Make symlink of the form [ae].${branch}.YYYYMMDD ->
    [ae].${branch}.YYYYMMDDHH so we can have the simple "date" form as
    well as the new "date+hour" directories for logs.

(6) Remove temporary make status files from /tmp that are over 60
    minutes since the last modification.  It was filling up the root
    filesystem.

(7) Print out an "ls -lrt" of packages/All into logs/ls-lrt.  This is
    going to be used to evaluate make's job dispatch policies.
2000-11-07 23:39:16 +00:00
Satoshi Asami
423990e4c2 Name change, files/md5 -> distinfo. (Only change is to message -- the
code actually detects both new and old errors.)

Expand the USE_XLIB case to include Xosdefs.h.
2000-10-09 01:37:22 +00:00
Satoshi Asami
37ee08a11b Hack this file beyond recognition to cope with both the old and new
mtree outputs.

Also change the title of the file from "List of extra files and
directories" to "List of files and directories that do not match their
mtree description", which is more accurate.
2000-10-06 07:32:42 +00:00
Satoshi Asami
ef88fdd4c1 Need to quote su -c command with ", not ' since I've got variables
in there (d'oh!).
2000-10-06 07:31:19 +00:00
Satoshi Asami
884508eff0 Typo (/etc/portbuild -> /var/portbuild). 2000-10-06 07:30:25 +00:00
Satoshi Asami
e93b21fc89 Comment out OSREL settings -- these are taken from /usr/bin/uname
in the chroot dirs (which is a hacked version) anyway.
2000-10-06 07:29:56 +00:00
Satoshi Asami
bafaa911bf Detect two more failures -- fetch timeout and runaway process (which is
really a make package timeout without output).
2000-09-29 11:27:19 +00:00
Satoshi Asami
68bad8cfd6 Don't delete modules, it might be needed. 2000-09-27 03:45:23 +00:00
Satoshi Asami
b139324d13 Read in configuration variables from /var/portbuild/portbuild.conf. 2000-09-27 01:43:32 +00:00
Satoshi Asami
0d088a094b Pull in configuration variables from /var/portbuild/portbuild.conf.
/var/portbuild is the new designated home of the portbuild setup, and
is expected to be a symlink to wherever you choose to put the stuff.

Also, change reportload to use /var/portbuild to store temporary files.
Seems there are some bugs in the null mount code that make the files
inaccessible if you are using an NFS root.
2000-09-27 01:41:44 +00:00
Satoshi Asami
607ef25fb6 A configuration file where all options reside. 2000-09-27 01:31:17 +00:00
Satoshi Asami
b674158285 A little script to call "at" to copy the packages. 2000-09-27 01:04:37 +00:00
Satoshi Asami
a17437a871 Don't whack old packages, we have enough disk space to keep a few sets
around now.

Make a symlink "Makefile" so I don't have to "make -f ../../Makefile"
when I'm restarting an aborted build.

Print out pnohang messages along with ptimeout messages.

Count the number of jobs at the beginning of the second phase too.

Check integrity of packages at end with gzip -t.  Remove the ones that
don't pass the test.

Don't try to compare list of packages if there is no prior list to
compare with.

If the -norestr flag is given, copy the packages to the ftp site.
2000-09-27 01:03:17 +00:00
Satoshi Asami
85f9fecab1 Remove syslog message about a load file being empty -- I know it happens now. 2000-09-27 00:59:37 +00:00
Satoshi Asami
bf39c7d73a Make sure you're given the "start" argument before trying to start the script. 2000-09-27 00:58:31 +00:00
Satoshi Asami
c4b86368de Don't add packages that are already installed.
Use pnohang to catch make checksum (fetch) or make package (usually an
xemacs running away) that aren't making any progress.
2000-09-27 00:09:10 +00:00
Satoshi Asami
b57b6e5cd4 A little script to kill makes that haven't printed out any message in
a while (presumably because they are hanging or are in an infinite loop).
2000-09-27 00:05:22 +00:00
Satoshi Asami
de1b8b82a9 Change "grep *.log" to "find . -name '*.log' | xargs grep", the number of
logs were overflowing the argv array.
2000-09-26 23:51:04 +00:00
Satoshi Asami
c46666b5b6 Catch one more case of XFree86-4 manpage building error.
Mark ports that are already marked BROKEN (and don't build, predictably)
with a red "[B]" for people to see.
2000-09-26 23:49:45 +00:00
Satoshi Asami
e94549da79 Remove an extra message that only served to clutter the logs. 2000-09-26 23:44:35 +00:00
Satoshi Asami
82767949b8 Don't try to process logs twice by protecting this script with a lock file. 2000-09-26 23:43:09 +00:00
Satoshi Asami
68d197cd25 Add -t and -n flags to ssh. (-t flag suggested by: ps)
This seems to fix a lot of the hang problems to bump up the timeout from
5 hours to 12 hours.
2000-09-26 23:40:13 +00:00
Satoshi Asami
ea5f827cdf Change lock file name to "cppackages.lock" so it's clear it's a lock. 2000-09-26 23:36:35 +00:00
Satoshi Asami
411ba40b8e When NODUMMY is defined, set XFREE86_VERSION to 4 and MOTIF_OPEN to t.
These are for testing the split-up XFree86-4 ports and open-motif.
2000-09-26 23:35:36 +00:00
Satoshi Asami
cf84480637 Don't remove the distfiles from the backup directory -- the next
run of dopackages will take care of it.
2000-09-26 23:34:35 +00:00
Satoshi Asami
31fb70c70d Exit with error status in ${portbuild}/status when an error occurs.
Make INDEX build failure a fatal error.

Copy INDEX to INDEX-${branch} for later perusal.

There is no -a flag in OpenSSH's scp.

Use sed to remove /usr/ports and stuff from restricted.sh and
cdrom.sh, so they can be run without further modification using
relative directories.

Take more options, namely -norestr (don't build RESTRICTED ports),
-noplistcheck (turn off "extra files check"), and -nodummy (use
open-motif instead of Motif-dummy and XFree86-4-* instead of
XFree86-3).  -nodummy will become the default soon.  Also a new flag
-nocvs will prevent cvs update on ${branch}/src only (while -nocvsup
will prevent cvsup and cvs update on usr/ports).  -nocvs is to be used
when builds for more than one branch shares a same cvsup session.

Write out time cvsup is done so it can be used by log processing
scripts.

Handle dummy ports by using a more generic approach -- list the
directories they reside in (e.g., x11-toolkits/Motif-dummy) and
generate the package name from there, instead of hardcoding them
package names everywhere.  Hopefully this will go away when we get rid
of the special case handling for Motif and XFree86.

Add something called "quickports" -- these are packages with very long
dependency lists that always seem to throttle the parallel build near
the end.  By spelling them out explicitly, try to make make build
dependencies for them earlier while there are a lot of other stuff to
do.  (Our make doesn't do anything with the target list, but maybe I
can fix that someday.)

Copy bindist.tar to clients before the second run of package build
too.  It can be useful to "sneak" in fixes if something minorly wrong
is discovered in the bindist during the first run.  Since there is a
md5 checking, this copying will not be done unless the files are
actually different.

When -norestr is set, delete restricted packages and distfiles using
restricted.sh immediately after completion of package build.

Generate CHECKSUM.MD5 after packages are built.

Copy distfiles over to the ftp site after everything is done.  This is
run in the background on bak/distfiles so the next package build can
immediately start.
2000-08-29 08:51:57 +00:00
Satoshi Asami
03914a93bd Split build into two phases, checksum and package, and copy the
distfile to the server right after checksum.  This will make it
possible to "harvest" distfiles even for ports that don't currently
build.  (This was a reason for a lot of distfiles being lost in the
past -- someone commits a broken port, distfile doesn't get fetched to
ftp.FreeBSD.org since package doesn't build, and distfile is gone from
the master site before the port is fixed.)  This also enables more
efficient sharing of distfiles since we can set MASTER_SITE_OVERRIDE
to the port build server and have a better chance of finding the
distfiles there.

Instead of using a simple make package | tee, redirect the output of
make package into a separate log file and concatenate it later.  For
some reason, the gconf build always hangs after the build succeeds
(tee doesn't exit).

Handle the new arguments (-norestr for NO_RESTRICTED, -noplistcheck
for NOPLISTCHECK and -nodummy for NODUMMY) by converting them to
environment variables.

Add the branch=5 case.  Run ldconfig on /usr/lib/compat too.
2000-08-29 08:33:05 +00:00
Satoshi Asami
fcb5d2b7fe Instead of doing a pwd | grep (duh!) to find the branch we are
building ports for, pass it as an argument.

Pass NO_RESTRICTED, NOPLISTCHECK and NODUMMY to ssh as flags when said
environment variables are set.
2000-08-29 08:25:14 +00:00
Satoshi Asami
5fc1b924f9 The errors and logs are now in the archive directory named
[ae].${branch}.${date}, and "logs" and "errors" are just symlinks to
them.
2000-08-29 08:23:42 +00:00
Satoshi Asami
c867f8186d Change find command line to find potential security hazards (ports
that install setupd binaries etc.)

Submitted by:	kris
2000-08-29 08:22:39 +00:00
Satoshi Asami
04694e8990 Run build on three branches. Check the status file filled out by
dopackages and abort build if there were any errors.  It intentionally
leaves lock files behind in that case because it usually requires my
manual intervention to fix whatever's wrong (usually a botched INDEX
build due to someone forgetting to update dependency lines) and we
don't want subsequent failed tries to wipe out all the good packages
and distfiles we have accumulated.
2000-08-29 08:21:47 +00:00
Satoshi Asami
a88f6b297c Handle arbitrary number of log directories instead of just two. 2000-08-29 08:18:44 +00:00
Satoshi Asami
c0a421c34b Ignore empty loads files -- it seems scp in OpenSSH sometimes leaves
files empty even if the original target and the new source are both
non-empty.  (Old ssh1 never did that, but whether this is a bug is not
obvious.)
2000-08-29 08:17:08 +00:00
Satoshi Asami
abc8a78dc9 Handle three branches instead of two. Use a for loop instead of just
listing calls to comparelogs etc., so we can expand it into the future
(no, not 4 branches, but maybe another architecture).
2000-08-29 08:14:52 +00:00
Satoshi Asami
fd7f4efa48 Add -f to forcefully umount /usr/src and /usr/obj before reboot. 2000-08-29 08:13:18 +00:00
Satoshi Asami
ccaef40b74 Add branch=5 case and update some variables. Don't set NO_RESTRICTED,
this will be passed down by calling scripts if necessary.

Remove extra spaces in dependency list -- this sometimes confuses make
for some reason.
2000-08-29 08:12:16 +00:00
Satoshi Asami
199691e133 Add branch=5 case and update some variables. Don't set NO_RESTRICTED,
this will be passed down by calling scripts if necessary.
2000-08-29 08:04:13 +00:00
Satoshi Asami
e8c4933e13 Print uptime after the number of jobs running. This has no functional
effect since the job scheduler will only look at the first field, but
will give humans looking at the load reports some idea about the
machines (especially crashes).
2000-08-29 08:03:13 +00:00
Satoshi Asami
a3e9efec50 A little script that tries to "undo" a package build. Basically just renames
a bunch of directories back.  Use it when you want to void a botched build.
2000-08-29 08:00:51 +00:00
Satoshi Asami
f4528a378f A small script to copy packages over to the ftp site. It is not integrated
into the main build scripts yet so you need to call this one manually.
2000-08-29 07:58:44 +00:00
Satoshi Asami
0a59f74d84 A small script to copy distfiles from per-port directory to central
location.

This is done to avoid write-on-write race conditions, when two package
builds try to write the same distfile back into the server.  To avoid
this, the distfiles are first copied over to
distfiles/.pbtmp/${PKGNAME}, and then a .done file is created in that

directory.  This script runs on the server periodically to copy the
files to the central location.  Since this script copies one distfile
at a time, the race mentioned above doesn't exist.  Also, it will only
copy files from directories where the .done file exists to avoid
read-before-write race conditions.
2000-08-29 07:57:09 +00:00
Satoshi Asami
8dc4353d1b Remove bak/distfiles after it's done -- this script is now called in
the background with bak/distfiles to work with (so that the new
package build can run in parallel).
2000-08-29 07:52:55 +00:00
Satoshi Asami
7173c62988 (1) Use timestamp file to make log processing lazier -- only process
logs when there are logs newer than the .stamp file.

(2) Print time cvs update is done for reference.

(3) Print number of affected ports (the "aff." field).  Basically the
    number of times the port appears in INDEX minus one (itself), so
    it won't take care of all chained build dependencies, but it will
    give you some idea how critical a port is when looking at the long
    list.

(4) Catch a few more error cases.
2000-08-29 07:50:12 +00:00
Satoshi Asami
dd7b8f01ce Read package build log files and compile a list of "extra" files in an
HTML table format.
2000-08-29 07:45:02 +00:00
Satoshi Asami
ed58e5d6dd Add -nocopy option to prevent bindist.tar from being copied over. Could
be useful between the first and second phases of the build.

Do a "killall make fetch" to clear any remaining processes.
2000-08-10 20:01:42 +00:00
Satoshi Asami
92b5be3047 Make this run on ${portbuild}/bak/distfiles rather than
${portbuild}/distfiles so it can be interleaved with the next run of
build.
2000-08-04 07:20:52 +00:00
Satoshi Asami
8d9ad9015d Fix benign bug which had the script claiming to delete any package that
includes a missing package's name as a substring (e.g., ja-mh-6.8.4 vs.
mh-6.8.4), when it wasn't actually deleting it anyway.
2000-07-12 23:29:30 +00:00
Satoshi Asami
d8176a286f Back out (1) in previous commit -- extra directories are fatal again.
Otherwise it is often too hard to find out which port left the directory
behind since packages propagates extra directories.  Also, many
of the extra directories contain files, so it makes no sense to ignore them.
2000-07-05 17:49:46 +00:00
Satoshi Asami
f20bd10615 (1) Make extra files fatal errors only if they are files -- extra
directories are still included in the list of "extra stuff", but
    are not considered fatal (for now).

(2) Use ls's -a flag to print out list of all files in ${PREFIX}, for
    obvious reasons.
2000-07-02 09:32:30 +00:00
Satoshi Asami
d36051792d (1) Make this file callable in two phases (checksum, package) so distfiles
can be fetched even if the packaging fails.  This is to ensure distfiles
    with correct checksums can be fetched and put on ftp.FreeBSD.org
    before they disappear from the original master sites.

(2) Delete port and all dependencies after packaging, and print out
    list of

 (a) Security-related files (set[ug]id flag set or world-writable)

 (b) Extra files and directories

Requested by:	 kris (2a only)
2000-05-08 07:37:28 +00:00
Satoshi Asami
df6b4a0473 (1) Be a little less picky about finding read-only mounts.
(2) Create directories before trying to copy files over.

(3) There's no -a option to scp anymore.
2000-03-21 18:30:40 +00:00
Satoshi Asami
f95eee7f03 Add a few more error tags (bison, ELF, REQUIRES_MOTIF, dependency, new
compiler error).
2000-03-02 23:07:03 +00:00
Satoshi Asami
0a03ad0d0e Add a few more files to bindest. 2000-02-17 00:15:41 +00:00
Satoshi Asami
b0abcbc5f3 freebsd.org -> FreeBSD.org 1999-10-12 12:12:34 +00:00
Satoshi Asami
2adb18bf67 Increase wait from 4 hours to 5 hours. Seems the ports are taking longer
to build now.
1999-10-10 11:33:15 +00:00
Satoshi Asami
3bb7126018 Don't run make describe in parallel -- the outputs gets mangled sometimes. 1999-10-10 11:32:46 +00:00
Satoshi Asami
51d8f5dd29 Minor cleanup, remove excessive tests. 1999-09-24 01:20:23 +00:00
Satoshi Asami
ac78fcedc4 Adjust to new directory structure. 1999-09-24 01:19:22 +00:00
Satoshi Asami
face7489ea Put the logs and error logs in a dated subdirectory of the archive
directory and create symlinks to it.

Move index generation back into the parallel part, let's see if the
echo `perl` fix to bsd.port.mk will make a difference.  Move the index
syntax check out of the background job so it can be properly flagged.
1999-09-22 13:02:21 +00:00
Satoshi Asami
e8e78d7877 Call bothlogs. 1999-09-22 01:00:46 +00:00
Satoshi Asami
e25ec83995 A small script to generate a list of logs that are in both 3-stable
and 4-current.
1999-09-22 01:00:31 +00:00
Satoshi Asami
c1eecfce5a Put build logs in "archive/buildlogs" and make a symlink to it. 1999-09-22 00:59:47 +00:00
Satoshi Asami
84768fa69e Another case for compiler error. 1999-09-22 00:58:48 +00:00
Satoshi Asami
1ef91d42b2 Run chflags if rm -rf of chroot dir fails -- some port may have
left some schg junk around.
1999-09-22 00:58:26 +00:00
Satoshi Asami
1ba68ec84e Run Xvfb if it exists and set DISPLAY accordingly. This helps ports
that require xrdb and other inane stuff during build.
1999-09-22 00:57:02 +00:00
Satoshi Asami
4e920fa436 Remove /var/db/pkg/* *inside* chroot area, not outside. 1999-09-11 13:19:32 +00:00
Satoshi Asami
cae9020a73 Little whitespace fix. 1999-09-11 01:41:52 +00:00
Satoshi Asami
b3037be663 Note that you need /usr/lib/aout/c++rt0.o for package building. It's not
included in bindist or any of the compat*dists.
1999-09-11 00:57:00 +00:00
Satoshi Asami
95eddd5009 This is supposed to be 4-current, not 3.1-release. 1999-09-11 00:54:03 +00:00
Satoshi Asami
67b0efb7ed Don't delete the whole /usr/games, leave strfile behind. At least one port
(misc/fortuneit) needs it.
1999-09-11 00:51:51 +00:00
Satoshi Asami
632c2ef905 Improve snapshot ftp installation. Put hostnames, distributions etc. in
variables instead of command lines.  Create /var/db/port.mkversion.
1999-09-11 00:48:37 +00:00
Satoshi Asami
cf0ffa76bf (1) Instead of specifying list of package names of dummy ports (i.e.,
XFree86, Motif) to copy, make a variable hold directory names, and
    do a "make package-name" in there to obtain the package names.

(2) Exit if there is problem in INDEX.  A line that contains
    "non-existent" (suggesting a dangling dependency) or a line that
    has less or more than nine |'s flag errors.

(3) Pass the fifth argument (bindist.tar's md5) to setupnode.

(4) Typo in spelling "restricted".
Submitted by:	     marcel

(5) Run cvsup at verbosity level 0 instead of 1.

(6) Print out only ${PKGNAME}, not ${PKGNAME}.log or ${PKGNAME}.tgz
    when reporting new or old packages/failures.

(7) Archive /usr/ports used to build packages in ${branch}/tarballs.
Requested by:	       steve
1999-09-11 00:35:51 +00:00
Satoshi Asami
20f70843a3 (1) Remove FORCE_PKG_REGISTER, it is not necessary anymore. Remove
everything under /var/db/pkg/* before installing dependencies and
    during final cleanup.

(2) Change OSREL, OSVERSION and PORTOBJFORMAT (if necessary).  Comment
    out those for 3-stable.
Reported by:  paul, tg

(3) Move mtree until after we actually mount /usr/src. ;)
Reported by:   taoka

(4) Run ldconfig with and without -aout in all sorts of directories to
    pick up everything that could be in compat dirs etc.  Run ldconfig
    -aout -R after cleanup too.
1999-09-11 00:18:38 +00:00
Satoshi Asami
0a15669df6 Add extra argument md5 for bindist.tar. Skip scp if md5 matches
what the client already has.
1999-09-11 00:11:12 +00:00
Satoshi Asami
9a4b76df92 Change OSREL and OSVERSION for 3 and 4 branches. (The ones for 3-stable
are commented out anyway....)
1999-09-11 00:09:22 +00:00
Satoshi Asami
5a8bbc0d75 Add check for "invalid category" error.
Add another case for compilation error (undeclared variable).
1999-09-11 00:07:58 +00:00
Satoshi Asami
16773b1535 Explict specify NFSv2 for mounting /usr/src and /usr/obj during make world. 1999-09-11 00:06:08 +00:00
Satoshi Asami
10bd1061ba Copy logs to ${portbuild}/buildlogs/${branch}.log.${date}.
Replace another explicit mail address with ${mailto}.
1999-09-11 00:03:12 +00:00
Satoshi Asami
8d5bb6353e Do not require dependencies to be deleted to be explicitly listed.
Any dependency that doesn't exist as a package will be automatically
deleted from the list of dependencies.
1999-08-18 10:24:53 +00:00
Satoshi Asami
d2a070ab6a Move CHECKSUM.MD5 generation to after INDEX splitting. Not much change
in functionality but echo statements will print the counts right.
1999-08-01 19:27:43 +00:00
Satoshi Asami
230004a3c3 Parallelize things a bit more. Now we'll do index/cdrom/restricted
list generation at the same time we're setting up the clients.

duds generation is intentionally separate.  If we get an error back
from that one (usually means someone committed a Makefile with a
syntax error), abort the whole thing so we won't generate a faulty
index and destroy the stuff that's been builtbefore.

Lockfile handling is now moved to dopackages2 so we won't overwrite
the build.log file just to say "skipped".

Generate INDEX right after packages are built, from the same INDEX
that was used to build them.

Compare the packages from this build with the previous one and report
what's missing and whatnot.
1999-07-30 07:26:52 +00:00
Satoshi Asami
5779c79e66 Create lock file so you won't have two of these running. Also, separate
the report mailing address into the configurable variables section.
1999-07-30 07:19:44 +00:00
Satoshi Asami
83855eba5a Compare the last full runs (and not only the last partial runs). 1999-07-30 06:54:27 +00:00
Satoshi Asami
99a7dab167 Run with -j4.
Exit with error status if an error occured.
1999-07-30 06:53:31 +00:00
Satoshi Asami
79ab397bca Run with -j4. 1999-07-30 06:53:00 +00:00
Satoshi Asami
9c3aa283bc Intentionally set up ${PORTSDIR} with symlink to catch broken ports.
Suggested by:	takamune@avrl.mei.co.jp
1999-07-30 06:52:02 +00:00
Satoshi Asami
8f42a57801 Little script to convert ports/INDEX to packages/INDEX. 1999-07-30 05:51:04 +00:00
Satoshi Asami
a1431c4e37 Move message about skipping missing packages into the right else clause. 1999-07-14 05:58:12 +00:00
Satoshi Asami
7f1d21d66f Print out date and time the port is killed due to timeout. 1999-06-25 02:07:29 +00:00
Satoshi Asami
f07de8de4f Plularity typo. 1999-06-25 02:06:51 +00:00
Satoshi Asami
c2ae7d52ff Driver script for whole build process. It will
(1) cvsup
(2) run cvs update on the ports and doc trees
(3) generate new index
(4) generate new duds list
(5) move old packages and distfiles out of the way
(6) build packages
(7) build packages again (to salvage those died with transient errors)
(8) generate restricted list
(9) generate no-cdrom list

Steps (3)-(9) are repeated for 4-current and 3-stable.
1999-06-22 10:43:10 +00:00
Satoshi Asami
be0abd7000 Add support for 4-current. Add /compat to list of directories to
delete after building is done.  Run mtree regardless of the directory
exists or not.  Do not use local copy of dependency packages -- it is
too hard to maintain consistency -- always use one on master.
1999-06-22 10:37:46 +00:00
Satoshi Asami
45f51c8307 Timeout port builds after 4 hours. This will prevent ports that get
stuck indefinitely in fetch or configure from hanging up the entire
build process.
1999-06-22 10:18:40 +00:00
Satoshi Asami
d18483f0fa Print out the time when the build starts and ends. 1999-06-22 10:13:23 +00:00
Satoshi Asami
613cff9828 Three scripts to look into the error logs and generate the now-famous
web page of errors.
1999-06-22 10:11:00 +00:00
Satoshi Asami
50f1d25176 Little helper scripts to upgrade your machinery. 1999-06-22 09:51:31 +00:00
Satoshi Asami
ff4726b2bb A little script to copy changed/new distfiles over to wcarchive. This
probably won't be of much use to too many people, but just FYI.
1999-06-22 09:48:00 +00:00
Satoshi Asami
a0a221bc9c A little script to fire up checkmachines. Put in /usr/local/etc/rc.d. 1999-06-22 09:30:27 +00:00
Satoshi Asami
8ec91a7640 The makeindex and makeduds scripts now take a "branch" argument to work
on the specified branch.
1999-06-22 07:45:34 +00:00
Satoshi Asami
3dc9d1aad2 A perl script to run a command with a timeout. The command is killed if it
doesn't complete within the specified timeout period.

I tried to do this from within the pdispatch script, but I couldn't
get all the auxiliary processes to be killed correctly so implemented
this as a separate script in perl.
1999-06-22 06:47:21 +00:00
Satoshi Asami
9478eafe5e Setup a client machine. Unmounts all read-only mounts that looks like
portbuild temporary mounts, deletes all the chroot dirs and copies the
portbuild script and the correct bindist tarball.
1999-06-22 06:41:39 +00:00
Satoshi Asami
15d5069eb1 Delete the chroot dirs before starting the load average reporting
script so that a rebooting machine doesn't join the cluster in an
unclean state.
1999-06-22 06:34:52 +00:00
Satoshi Asami
547a32d999 Update to reflect recent world order. In particular, you need /dev/bpf0
to build some ports.
1999-05-12 08:09:18 +00:00
Satoshi Asami
b8ccbc9c4a We are now in 3.1-STABLE. 1999-03-22 08:46:24 +00:00
Satoshi Asami
42b27e8ff8 Various updates. 1999-03-22 05:44:47 +00:00
Satoshi Asami
679db78f2c Note that makeinfo and install-info also needs to be updated. 1999-01-26 03:09:17 +00:00
Satoshi Asami
8b817234de (1) Do not delete and recreate the chroot dir for every new package
that is built.  This saves a lot of time, especiall when the
    parallelism (the number of jobs per machine, not the number of
    machines) is low.

    However, the build script only blows away /usr/local and
    /usr/X11R6, so if there is a port that does some nasty things
    outside that area, all bets are off.

(2) Better load balancing.  Now, each machine reports its own
    load in a form of a text file, which the master merely aggregates
    to pick the lowest-loaded machine(s).  Other than generally
    running faster (and more up-to-date) under loaded conditions, the
    master script will no longer hold up until a timeout when a
    machine goes down.
1999-01-26 03:06:24 +00:00
Satoshi Asami
b568349be8 The build root is now one directory up from here. 1999-01-22 10:20:32 +00:00
Satoshi Asami
95573c6baf Moved the scripts into subdirectory "scripts" with repository copy. 1999-01-22 10:10:01 +00:00
Satoshi Asami
58dc5e1a21 By defining NOCLEAN in the environment, you can have the chroot dir left
behind.  Useful for debugging.

Touch package on master after copying it back.  This will avoid synchronization
problems when the machines' clocks are wildly skewed.

Remove log from master when build is successful.  No need to keep around
transient error logs.
1999-01-22 10:00:08 +00:00
Satoshi Asami
15f7d52568 Print out maintainer. 1999-01-22 09:57:16 +00:00
Satoshi Asami
a94fca4984 Sync this with my private copy. 1999-01-22 09:37:15 +00:00
Satoshi Asami
65d3ba8a30 Add /usr/libexec/elf/ld to list of files to update. 1999-01-08 11:22:29 +00:00
Satoshi Asami
a348de2d8c Typo in echo statement. 1999-01-07 08:21:37 +00:00
Satoshi Asami
8c6d5b075b Add sys.mk to list of files you need to update. 1999-01-05 06:51:27 +00:00
Satoshi Asami
75ec193fb8 The scripts to allow parallel package building. See the README file in
Tools/portbuild for details.

Note that this is still a major work in progress.  I probably forgot
something but I need to go to sleep.  At least it works here (most of
the time :).
1998-12-28 13:27:27 +00:00