summaryrefslogtreecommitdiff
path: root/mk/bulk/build
AgeCommit message (Collapse)AuthorFilesLines
2006-06-07EOL the tv-derecurse branch; it has become too outdated. The last livetv-derecursetv1-365/+0
revision can be fetched at the tv-derecurse-eol tag.
2005-05-17sync [all but bsd.pkg.mk] with HEADtv1-5/+5
2005-01-24sync with HEADtv1-2/+2
2004-12-20sync with HEADtv1-2/+2
2004-11-23merge from HEADtv1-2/+4
2004-11-16Preserve the .work.log file from a broken build as .broken.work.htmljlam1-1/+4
in the package directory, and add a link to it from .broken.html at the point where the build fails. Also adjust the auxilliary scripts to handle/cleanup .broken.work.html files. This should enhance the ability of developers to debug broken builds by providing important information about what is happening as a build progresses and fails.
2004-11-12Bulk builds should be defaulting to building perl58.jlam1-2/+2
2004-09-22Typo - "ressource".mason1-2/+2
2004-08-06Unset CDPATH variable in the user environment which prints the cwd to stdoutsketch1-1/+3
when changing directory, breaking the resulting tsort from the printindex script output.
2004-07-22Abstract out the "nice -n 20" clause, so that it can be set to somethingagc1-3/+8
else if desired. Print out dates in the form: yyyy/mm/dd
2004-04-29add missing -r option that the usage claimed existed. Noted by garbled@dmcmahill1-2/+2
2004-04-24add a -s | --specific-pkgs option which will set SPECIFIC_PKGS=1 for thedmcmahill1-3/+16
build. Suggested by Christoph Badura.
2004-04-09Add a --mirror_only option to the bulk build script. When combined withdmcmahill1-5/+88
setting SPECIFIC_PKGS=1, this is a convenient way to make sure you have all required distfiles before starting a build. In particular, you will get all distfiles for all required dependencies of the explicitly listed packages. As part of this make the option processing part of this script a bit more general purpose and add a -h|--help option.
2004-04-07Add support in the bulk build code to properly deal with SPECIFIC_PKGS=1.dmcmahill1-1/+4
In particular, when SPECIFIC_PKGS is set in /etc/mk.conf, you can now do sh mk/bulk/build and have the right thing happen. Only those packages explicitly listed and those which are depended upon are considered for the build. Other than the restricted list of packages, the bulk build works the same way as a full bulk build.
2004-02-25s/netbsd.org/NetBSD.org/grant1-2/+2
2004-02-05extract OPSYS and OS_VERSION from pkgsrc and use them in the reportgrant1-3/+8
email subject.
2004-01-27Replace all occurrences of the "MAIL" definition with MAIL_CMD, sinceagc1-4/+4
some shells can set MAIL to be the mailbox of the user, and environment variables will override assignments in make when using conditional assignments.
2004-01-22make date format string more portable.grant1-2/+2
2004-01-20missed a `uname -p`grant1-2/+2
2004-01-20get and use the value of ${MACHINE_ARCH} instead of `uname -p` togrant1-2/+3
correctly reflect the pkgsrc arch. (uname -p returns "unknown" on (my) Linux, which is not very helpful..)
2004-01-17portability fixes:grant1-11/+22
- use AWK, GREP, SED and MAIL as set by defs.opsys.mk. - use $? to test exit code of programs
2003-11-20Catch errors from pre-build, and abort if it's not 0.hubertf1-1/+6
2003-05-06Drop trailing whitespace. Ok'ed by wiz.jmmv1-9/+9
2002-12-31If the pkg tools are not update, upgrade them.cjep1-1/+8
2002-12-01add some more error checking. In particular if the bulk-cache creationdmcmahill1-1/+5
fails, then abort the build.
2002-08-22Merge pkgsrc/mk from the buildlink2 branch back into the main trunk.jlam1-1/+1
2002-08-12In the build script, set BATCH=1 and DEPENDS_TARGET=bulk-install in theagc1-1/+6
environment, and pass them down to the bulk build. This means that the /etc/mk.conf (or $MAKECONF) can be shared between ordinary builds and bulk builds.
2002-08-07Make these scripts useful on platforms other than NetBSD by using a BMAKEagc1-14/+22
environment variable, which contains the name of the make(1) program to invoke - suggestion by Julien Letessier some time ago, the confusion mine, since I thought he was referring to something else completely. Don't rely on there being a POSIX tr(1) in the path by default - test explicitly for both "yes" and "YES". Set the default for PRUNEDISTFILES to "no", since we can't assume that the user wants us to delete something which he may have been keeping around, and there are other ways of accomplishing this aim (lintpkgsrc -o, for example). Clean up some superfluous white space at the end of lines.
2002-08-06Add a missing "-o" from the compound test in the if statementagc1-2/+2
2002-06-29don't hard code the start time stamp file as .start.${arch} but allowdmcmahill1-1/+4
OBJMACHINE and OBJHOSTNAME to work. Also don't hardcode /usr/pkg and /usr/X11R6 for LOCALBASE and X11BASE. Finally, fix a few typos in messages while here.
2001-12-17- add 'bulk-cache' and 'clean-bulk-cache' targets to create and removedmcmahill1-18/+3
the cache files used during a bulk pkgsrc build. - replace the code in the build script that used to create the cache files with a 'make bulk-cache' call.
2001-12-01Catch errors while running printindexhubertf1-2/+5
2001-11-26Run "make bulk-package" with stdin redirected from /dev/null,hubertf1-2/+2
to prevent it sitting there for days waiting for input in useless situations.
2001-11-08Change running output from build to include timestamp and current package.jmc1-2/+2
Makes the output a bit long at times but gives a nice concise idea of where you're at and if the build is moving
2001-11-06"bulk-install" already makes a binary package and cleans up after itself,hubertf1-2/+2
no need to make "bulk-package" or "clean" after it!
2001-10-20- change the way we cause the build order to happen. The old way passeddmcmahill1-12/+63
GROUP_SPECIFIC_PKGS into a top pkgsrc level call to make. The new way, uses a shell 'for pkgdir in ....' and then calls a make in each pkg directory. This does 2 things. The first thing is that a 'build restart' starts up _much_ faster because instead of calling 'make' for each package we've already built and finding out they're already build, we just grep through the list of already built pkgs. The second item (a side benefit) is that now a progress meter is simple. - add a progress meter to the build. - add even more error checking.
2001-10-15Set ressource limits as high as possible before we'll start compilinghubertf1-1/+6
2001-10-14add some more failure checks for robustness.dmcmahill1-9/+16
- if something fails while extracting the DEPENDS for a particular package, mark that package as broken and drop the DEPENDS info for it. This allows the build to continue and properly marks the package as broken. - if something fails while extracting the PKGNAME, also mark the pkg as broken. - be more careful about seeing if directories exist before cd'ing to them. Lack of such a test has caused problems elsewhere, so hopefully this will make the system more robust.
2001-10-13after the build, pull in 'lang/perl5' instead of 'lang/perl5-base' as thedmcmahill1-2/+2
latter no longer exists. Also, use '&&' to separate commands where you don't want the second to execute if the first fails!
2001-10-12Change my non-standard copyright header to a BSD-style one.hubertf1-3/+31
2001-03-19-add support for a BULK_PREREQ make variable. BULK_PREREQ contains a listdmcmahill1-6/+35
of packages which must stay installed during the build, but are not pulled in by the DEPENDS for each package. Currently, BULK_PREREQ will always include pkgtools/digest. At this time, the primary use will be to add BULK_PREREQ+=pkgtools/xpkgwedge in /etc/mk.conf to do an xpkgwedge'd bulk build. It is up to the user to make sure that the list of packages in BULK_PREREQ is a flattened list (ie all the DEPENDS are listed too). Again, at this time, xpkgwedge is really the only package that should be added to the list. -add an ADMINSIG build.conf variable. This is the signature at the end of the email report. Maybe now I'll quit forwarding reports signed as "-Hubert". -while here, eliminate grep|awk lines and `grep >/dev/null` replacing them with pure awk and grep -q.
2001-02-13only use the depends cache files during a bulk build, otherwise revert todmcmahill1-1/+2
the old behaviour. This is done because unless we're in the middle of a bulk build, we don't really know that the cache files are up to date. These are fairly time consuming (relative to a single smallish package build) to generate and depend on all of the pkgsrc makefiles. During a bulk build, the overhead is far outweighed by the savings. In particular, 'make bulk-install' will now work correctly outside of a bulk build (useful for debugging broken packages). Thanks to Hubert who noted the 'make bulk-install' problem in a private email.
2001-02-01This commit incorporates several speed improvements which have been testeddmcmahill1-4/+39
over several bulk builds on an alpha: - At the start of a bulk build, 4 files are created to allow fast lookup of various dependency tree things. These files are .index == maps package name (foo-2.3) to directory (bar/foo) .dependstree == contains the complete pkgsrc dependency tree in a tsort(1) compatible format. .depends == contains 1 line per package and lists all the build depends for the package. .supports == contains 1 line per package and lists all packages which depend on this package. - When a package fails to build, the list of all packages which depend upon it is read from .supports. Each of those packages is immediately marked as broken. This prevents us from trying to build those packages which can have significant overhead if lots of other depends are installed before the system notices the broken one. In addition, the post-build postprocessing will now indicate that a package is 'truely broken' (ie, bad PLIST, failed compilation) vs. a package which is broken because it depends on a failed package. This assists in determining where to focus our efforts in fixing broken packages. - In the old approach, all packages are removed after each one is built. The purpose was to a) conserve disk space, b) verify that all required dependencies are in fact listed, and c) prevent conflicts. The problem was that often times several packages in a row have similar depends. For example we might want to build several perl packages in a row. In the old approach, we would install perl, build the pkg, deinstall perl and continue with the next one. In the new approach, when it is decided that a pkg is out of date and should be rebuilt, the .depends file is used to obtain a list of pkgs we require. Then and pkgs which are no longer needed are removed. This helps to minimize the total number of pkg_add/pkg_delete's in a bulk build. - Since the order of the build is controlled by the depends tree, all depends for a given package will have been built by the time the pkg in question needs them. If any of the depends failed to build, then the pkg which needs the failed one will have been marked as broken. Given this, the complete depends list for a pkg is read from .depends and the depends installed via pkg_add rather than relying on recursive make calls to install the depends. - while here, fix a few minor bugs x - don't leave .make log files around when the build succeeds x - make sure we refer to the correct report file in the email x - use '.order' for the build order file instead of '.l' x - use 'grep -c' instead of 'grep | wc -l'
2000-12-31move the code which determines the BROKENFILE and BUILDLOG file names outdmcmahill1-17/+1
of the top level build script and into the {pre,post}-build scripts. This ensures that either of those scripts may be run directly and not rely on a variable being set by the top level script. Thanks to Hubert Feyrer for pointing out the problem in a private email. These changes do not require any user changes to the build.conf file and should be transparent to the user.
2000-12-30further cleanup of handling the .broken.files and .make.filesdmcmahill1-1/+17
- set BROKENF and BLDLOG in the 'build' script and pass those variables down to {pre,post}-build in the environment to make sure we only set them in one place. The values are determined by a make show-var VARNAME=BROKENFILE This causes the default (set in bsd.bulk-pkg.mk) or the user overridden value from /etc/mk.conf or the environment to be correctly determined. This is more robust that relying on a build.conf setting which may or may not be correctly set. - have pre-build only clean up BROKENF and BLDLOG files instead of .broken* and .make* This avoids conflicts when pkgsrc is shared among different machines.
2000-12-11Add date to email subject.skrll1-2/+2
2000-09-29 * Make setting ftp_proxy and http_proxy actually workhubertf1-14/+14
* Store (t)sorted list of pkgs to build in .l
2000-09-17 * Put architecture into summary mailhubertf1-3/+3
* Prefix every line of the build's output with the architecture, so it's easy to see at a glance which architecture you have scrolling by in front of you
2000-09-15Allow setting ftp_proxy and http_proxy in build.conf or $environmenthubertf1-1/+11
2000-09-15Bulk build frameworkhubertf1-0/+51