Commit graph

33 commits

Author SHA1 Message Date
Kris Kennaway
271351e954 * Catch up to X11R6 removal
* Keep RESTRICTED distfiles in a separate DISTDIR so we can easily
  avoid accidentally publishing them to the FTP site (idea from des@)
2008-06-11 13:22:58 +00:00
Mark Linimon
4cc67bd216 Add a note that processonelog and processlogs2 are finicky about the
header format of the log files.
2008-05-29 01:46:08 +00:00
Pav Lucistnik
7b00cf5640 - Add the port's Makefile ident string to the build log headers
PR:		113234
Submitted by:	Andrej Zverev <andrey.zverev@electro-com.ru>

- Sync with actual script on pointyhat (whitespace, mostly)
2008-03-13 09:54:03 +00:00
Kris Kennaway
5d0b9b3789 * Remove vestiges of procfs mounting/umounting from here; we have to
do it in portbuild from outside the jail thesedays

* Ignore /var/db/fontconfig which does not get restored to pristine state

* Save copies of master.passwd and groups and check them after the build
  for changes, to look for user/group additions that may not be correctly
  registered in UIDs/GIDs.  Future work will hopefully automatically
  check against those files and make unregistered IDs a fatal condition

* Correct logic mistake that was keeping distfiles for collection when
  the checksum mismatched
2007-07-29 19:35:00 +00:00
Kris Kennaway
f400f2bb03 Also filter out gconf leftover files from /usr/local as well as /usr/X11R6.
Set DISPLAY to the IP address instead of using the :<...> implied form.
This is required for jails.
2007-02-18 09:03:21 +00:00
Kris Kennaway
3c9d082dd2 * Silence gconf spam from the mtree checks (for now)
* Don't try and mount/umount procfs, it won't work when we build inside a
  jail.

* Report the uname -mr of the build environment, to ease confusion of
  people reading the error logs by mail.
2006-09-14 05:19:09 +00:00
Kris Kennaway
721c2900a5 jdk is buildable on amd64, so we need to also mount linprocfs there. 2006-04-03 04:40:39 +00:00
Kris Kennaway
7a39c45c24 Add some more directories temporarily until these ports can be made to
clean themselves up properly.

Approved by:	portmgr (implicit)
2006-03-13 03:04:07 +00:00
Kris Kennaway
bb3de95c29 * Don't try to pkg_delete packages that are not installed (the usual
cause is because it was specified in the list twice)

* Don't panic when the list of packages to delete becomes empty

* When unexpected filesystem changes are detected, bail immediately
  instead of proceeding and hiding the error in the middle of
  the log
2006-02-15 07:39:48 +00:00
Kris Kennaway
17394c78b7 * Switch back to using pkg_delete -f; we are not yet ready to deal
with all the errors from broken pkg_delete scripts

* As threatened in previous commit, move the pristine mtree spec
  generation to phase 1, and avoid having to delete and re-add the
  FETCH_DEPENDS.  We still have to keep them installed until after
  'make extract' though
2006-02-13 20:47:04 +00:00
Kris Kennaway
b8d81fba50 Checkpoint a major round of changes:
* Only keep distfiles if the port passes 'make fetch', so we don't
  accidentally keep files with invalid checksums

* Use cleanup() instead of directly exiting in some error conditions

* When cleanup() is called indicating an unexpected error (possibly
  leaving the filesystem in an inconsistent state), mark the chroot
  as dirty so it will not be reused by another build

* Remove packages in dependency order instead of with pkg_delete -f in
  possibly incorrect order.  This paves the way for focusing on errors
  generated by pkg_delete (e.g. @dirrm that should be @dirrmtry) in the
  future. [1]

* Detect when packages were left behind because they were still in use
  by other packages, indicating an incorrect or incomplete port
  dependency list

* Partial support for ccache builds (not yet complete)

* Support non-standard LOCALBASE/X11BASE settings

* Delete FETCH_DEPENDS after the 'make fetch' stage.  We have to add
  them again before 'make extract' since, due to a lack of a 'fetch
  cookie', 'make extract' actually *always* runs 'make fetch' again,
  even when distfiles have already been fetched.  We need to delete
  them in order to:

* Record an mtree spec of the 'pristine' filesystem state, for later
  comparison.
  # XXX Perhaps this can be done in stage 1 before the
  # 'make fetch', removing the need to delete-and-readd.

* Also record an mtree spec of the filesystem state prior to the
  build phase.  Compare this to the state of the filesystem
  immediately before running the install phase, to detect files
  that were inappropriately installed during the build phase.
  Doing so is a fatal error.

* Prior to installing, try to run a 'regression-test' port makefile
  target, if it exists.  This allows ports to hook their internal
  regression suites into the package build.  This needs further
  infrastructure support, e.g. a default NOP target in bsd.port.mk.
  For now this is run with 'make -k', so regression failures will
  not yet actually cause package build failures.

* Separate the 'make install' from 'make package' phases rather than
  let the latter implicitly do the install.

* After the newly packaged port has been deleted, compare the state
  of the filesystem to the state before 'make install'.

* After removing BUILD and RUN dependencies, compare the filesystem
  state to the pristine state before the start of the build.  This
  also detects package dependencies that did not clean themselves up
  properly when deinstalling.  It also detects dependencies that were
  'missing' from the port INDEX: these were not pkg_added into place,
  so the package build had to compile them from scratch (a big waste
  of time and effort), so this is now also a fatal error.

PR:		ports/85746 (inspired by) [1]
Submitted by:	Boris B. Samorodov <bsam@ipt.ru> [1]
2006-02-11 09:38:18 +00:00
Kris Kennaway
b713f62e3b Use LOCALBASE and X11BASE from buildenv 2006-01-22 04:54:24 +00:00
Kris Kennaway
e93c55ca9b * Unmount linprocfs around pkg_adding dependencies, to try and work
around silly failures in some ports when it is present

* Add a footer to completed builds that is recognised by pdispatch to
  retry truncated builds

* If ALWAYS_KEEP_DISTFILES is not present in the environment or port
  makefile, then clean up DISTDIR after the build finishes, to prevent
  collection of distfiles for this port.

* Finish flipping the switch on -noplistcheck - this is activated by
  passing in the NOPLISTCHECK environment variable instead of
  using PLISTCHECK in the opposite case
2005-10-11 03:40:57 +00:00
Kris Kennaway
37d3297837 Update the list of files and directories to filter from the plist checking. 2005-04-02 20:17:47 +00:00
Kris Kennaway
4e40e823b4 Update the plist checking to look for a subset of files and weed out some
false positives.
2005-02-12 03:34:21 +00:00
Kris Kennaway
0ebddec26a Fix the Xvfb code to run Xvfb before the build phase if detected
(i.e. if the package lists a dependency on the relevant package in the
PACKAGE_BUILDING case).  This allows packages that require an
available DISPLAY to again build (with some forthcoming fixes to
existing ports).

Improve the reporting of detected filesystem anomalies (extra files
left behind after deinstallation, changes to and removal of
pre-existing files)
2004-12-28 05:43:40 +00:00
Kris Kennaway
33afdf33e9 * Recursively list all files detected as having been left behind after
the port deinstall; mtree does not recurse into subdirectories it does
  not know about
* Break out the 'files incorrectly removed' and 'files incorrectly changed'
  into their own sections
2004-11-25 00:02:38 +00:00
Kris Kennaway
a09ab19235 * Add a cleanup() function and use it so that we archive the ${WRKDIR}
if requested (".keep" file in the port directory), no matter where
  we fail.

* Add package dependencies before the corresponding build stage
  (e.g. FETCH_DEPENDS before 'make fetch'), and remove them again
  afterwards.  This allows us to catch ports that list their
  dependencies too early/late.

* No need to check for set[ug]id files here, the security-check target
  in bsd.port.mk does it for us.

* Exclude some more directories and files from showing up in the mtree
  before/after comparison, to trim down the false-positive in the
  pkg-plist check.

* Other minor changes
2004-07-14 10:19:12 +00:00
Kris Kennaway
6ebc6a8ffb * Set the PACKAGE_BUILDING variable in the build environment so ports can
detect they are being built on bento
* Update the list of "extra files" to filter to reduce some false positives
2004-03-08 01:23:20 +00:00
Kris Kennaway
2629774416 Simplify the collection of load statistics for the cluster. Loads
are now collected by polling a small server on the client (using netcat)
instead of having the client scp the load files to the master every 10
seconds (!!!)
2003-02-22 22:21:00 +00:00
Kris Kennaway
04a23345d0 If the port directory contains a file called .keep, then tar up the
${WRKDIR} after the port build completes and copy it to
${arch}/${branch}/wrkdirs/${pkgname}.tbz.
2003-01-24 11:01:37 +00:00
Kris Kennaway
13c6a42331 Use pkg_add instead of pkg_add -f 2003-01-24 04:39:02 +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
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
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
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
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
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
d18483f0fa Print out the time when the build starts and ends. 1999-06-22 10:13:23 +00:00
Satoshi Asami
15f7d52568 Print out maintainer. 1999-01-22 09:57:16 +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