Changes in 3.0 include:
* The www-exp module has been renamed webui, and a new web frontend has
been added called paefchen.
* All Tinderbox commands with the exception of tinderd are now performed
using the tc utility.
* The Hosts system has been removed as it was not really used, and not
really suited to the purpose of distributed builds. The ground work has
been laid to support distributed builds, but that is not present in 3.0.
* A DISTFILE_URI config directive has been introduced to allow for
distributed distfile caches.
* The latest port fail reasons and patterns have been synced from
pointyhat.
* The total size taken by a port build (in KB) is now tracked in the
database. This can be obtained using the command ``tc getPortTotalSize
-d DIRECTORY -b BUILD''.
* Port build logs now contain OPTIONS and environment details.
* The ``tc addPort'' command assumes a recursive add by default. This
can be disabled by passing the -R argument.
* Port dependencies are now recorded in the database when ``tc addPort''
is called without -R. The dependency list can be retrieved with ``tc
getDependenciesForPort -d DIRECTORY -b BUILD''.
* The ``tc tbcleanup'' command now supports pruning stale distfiles,
stale packages, and not pruning old error logs. See the README for
command line details.
* The default update type and update host are configurable at Setup and
Upgrade time. The default update type has been changed from CVSUP to
CSUP.
* The last_fail_reason is now exported to the postPortBuild Hook.
* Fix the build time display if a tinderbuild takes longer than 24 hours.
* Add a new command, ``tc rescanPorts'' which updates the properties of
all ports in the datastore (including dependencies).
* Display the remake count in the webui frontends.
* Hack around a potential perl-related leftover false positive.
* A new -O option has been added to addPort/rescanPorts which enables
OPTIONS, but does not run rmconfig before calling config. This way,
existing OPTIONS can be preserved. The default behavior is to call
rmconfig to maintain POLA.
* The webui index page has been enhanced to make it more readable, and
more powerful.
* The number of ports not built due to dependency failures has been
added to the webui's main page.
* tc processLog -v now prints the matching text to aid with false
positive identification.
PLUS:
* In webui:
- Change tinderd queue view. Field for adding new ports is the first now.
- Show target port of current build.
- miwi's RSS module
- an other patch from miwi for inc_tinderbox.php.dist which should make
setting-up the webui easier on non-standard configurations.
* Bug-fix: Add o and O to the list of valid options for addPort.
The new code will silently ignore MASTER_SITE_GOOGLE_CODE and
MASTER_SITE_DEBIAN_POOL unless specifically asked to sort them, in which
case an error message is printed.
Most of the patch came from Ryan Steinmetz <rpsfa@rit.edu> with small
additions by me.
* Add a check for duplicate CATEGORIES [1]
* Be stricter when checking for --mandir and --infodir [2]
* Properly check *_DEPENDS both before and after bsd.port.pre.mk [3]
PR: 125962 [2]
126681 [3]
Requested by: kris [1]
Submitted by: Eygene Ryabinkin <rea-fbsd@codelabs.ru> [3]
Renato Botelho <garga@FreeBSD.org> [2]
Specifically, newer autoconf (> 2.13) has different semantic of the
configure target. In short, one should use --build=CONFIGURE_TARGET
instead of CONFIGURE_TARGET directly. Otherwise, you will get a warning
and the old semantic may be removed in later autoconf releases.
To workaround this issue, many ports hack the CONFIGURE_TARGET variable
so that it contains the ``--build='' prefix.
To solve this issue, under the fact that some ports still have
configure script generated by the old autoconf, we use runtime detection
in the do-configure target so that the proper argument can be used.
Changes to Mk/*:
- Add runtime detection magic in bsd.port.mk
- Remove CONFIGURE_TARGET hack in various bsd.*.mk
- USE_GNOME=gnometarget is now an no-op
Changes to individual ports, other than removing the CONFIGURE_TARGET hack:
= pkg-plist changed (due to the ugly CONFIGURE_TARGET prefix in * executables)
- comms/gnuradio
- science/abinit
- science/elmer-fem
- science/elmer-matc
- science/elmer-meshgen2d
- science/elmerfront
- science/elmerpost
= use x86_64 as ARCH
- devel/g-wrap
= other changes
- print/magicfilter
GNU_CONFIGURE -> HAS_CONFIGURE since it's not generated by autoconf
Total # of ports modified: 1,027
Total # of ports affected: ~7,000 (set GNU_CONFIGURE to yes)
PR: 126524 (obsoletes 52917)
Submitted by: rafan
Tested on: two pointyhat 7-amd64 exp runs (by pav)
Approved by: portmgr (pav)
============
1. You can now specify multiple globs for directories in /var/db/pkg on the
command line (along with full names of directories/paths from /usr/ports
and/or /var/db/pkg, as before)
2. When calling check_interactive or update_port from check_for_updates
tell the user what updated version is available. [1]
Bug Fixes
=========
1. Don't set show_list to "all" for -a unless there is somthing to show
2. Add K (don't postclean) to getopts [2]
Other Improvements
==================
1. In check_dependency_files() don't let ro_opd be empty for the purpose
of the egrep expression. It works now, but it apparently violates the
spec and could case problems down the road (e.g., for bsdgrep).
2. Since the BSDPAN pseudo-ports do not exist in the ports tree there
is nothing for portmaster to do with them. Therefore ignore them when
appropriate, notifying the user when necessary. [3]
Submitted by: Geraint Edwards <gedge@yadn.org> [1]
PR: ports/126006 [2]
Submitted by: ahze [2]
Pointy hat: moi [2]
Problem pointed out by: Bapt <baptiste.daroussin@gmail.com> [3]
PR: ports/125428 [3]
The example in the description of pkg_tree shows old package
names (imake-4, XFree86-libraries).
PR: ports/125990
Submitted by: Carlos Santos <unixmania@gmail.com>
recently, parsing the files /usr/ports/MOVED and /usr/ports/UPDATING. MOVED had
an extra blank line on the end for awhile, and the case of some of the UPDATING
lines have changed (e.g., Author: instead of AUTHOR:). This patch allows
portupdate-scan to tolerate these variances.
PR: ports/125840
Submitted by: Alex Stangl <alex@stangl.us> (maintainer)
* Add some USE_GCC checks [1]
* Check to make sure pkg-descr lines do not end with CRLF [2]
* Warn against using != in assignments [2]
* Check for a valid WWW syntax in pkg-descr [2]
Requested by: gerald [1]
kris [2]
=========
1. Fix -a mode by moving the update of CONFIG_SEEN_LIST to after the port
has been checked for available updates. The old way worked as a side
effect to one of the things I fixed in version 2.4. This is probably
how it should have been done all along, but since the old way worked
I was hesitant to change it.
2. Now that we are using a different format for the INSTALLED_LIST,
fix the bit that always displays the list if we are using -a.
=================
Print a list of ports that will be worked on when doing multiple
ports, either from a glob or listed on the command line.
Bug Fixes
=========
1. When working multiple ports, if a port that is specified on the
command line is reached as a dependency for another port that is on
the command line (either specifically or from a glob) that port
should be rebuilt the first time through, even if it is up to date.
2. By the same token, only rebuild that dependent port once if it
was not up to date. Implement these features by keeping lists of
what needs to be, and has been built specific to the multiport
context.
3. In multiport() declare local variables to be local
4. When reading a glob pattern from the command line do not run
the multiport feature if there is only one match, just pass it on.
Minor Enhancements
==================
1. Save the list of work done using \t and \n and print with echo -e
2. Now that we are properly updating CONFIG_SEEN_LIST at the end of
the config run remove the old update to that list from
dependency_check()
The affected ports are the ones with gettext as a run-dependency
according to ports/INDEX-7 (5007 of them) and the ones with USE_GETTEXT
in Makefile (29 of them).
PR: ports/124340
Submitted by: edwin@
Approved by: portmgr (pav)
1. A glob pattern on the command line now updates all ports that match
2. Clarify that we rebuild the port(s) on the command line by default
3. Document -K option
4. Note the move of /etc/portmaster.rc -> /usr/local/etc/portmaster.rc
5. Document that you need to look in the script to find values to place
in the *rc files. TODO: List potentially useful variables
5. Fix the Xr for sudo
===========
1. By popular demand, change the command line behavior of 'portmaster blah*'
to update all ports in /var/db/pkg which match the glob.
2. Add the -K flag to avoid cleaning the work directory after the build.[1]
Bug Fixes
=========
1. Instead of /etc/portmaster.rc we should be reading
/usr/local/etc/portmaster.rc.[2] Begin introducing support for that.
2. If using the -n option, don't try to fetch the distfiles.[3]
3. When I added the optimization to only run 'make -V CONFLICTS' if
it existed in the Makefile I neglected to unset the value of $conflicts
in the script between ports.[4]
4. I ran into a port which set VERBOSE to a value that it needed to use
in its build process, and since I was using the -v option for portmaster
(which sets VERBOSE=yes) the build failed. To work around this, prefix
the variable names for common English words (VERBOSE, FORCE, BUILDING)
with PM_.
5. To aid future debugging (as in 4. above) change the values of flag
variables to something meaningful instead of just "yes."
6. Automatically handle the case where the parent port has MOVED instead
of asking the user to re-run portmaster with the right options.
Submitted by: pav [1]
Submitted by: Miroslav Lachman 000.fbsd@quip.cz [2]
Submitted by: Jiawei Ye <leafy7382@gmail.com> [3]
PR: ports/124271 [4]
Submitted by: James Kelly <jjk@tilted.net> [4]
PR: ports/124226 (based on the patch)
Submitted by: Yi-Huan Chan <yhchan AT csie.nctu.edu.tw>
Approved by: Benjamin Lutz <mail AT maxlor.com> (maintainer)
If all goes well, this will be the last 2.x release before a 3.0 major release.
The 2.4.3 release is primarily aimed at fixing bugs, but a few small features
have been added:
* Treat the -u argument to sendBuildCompletionMail as a username rather than an
arbitrary database ID. Also, do better error checking in case a user has not
been defined in the datastore.
* Add -b <build name> support to the listBuildPortsQueue command.
* Add a new tc command, getPortLastBuiltStatus to get a port's last status.
* Properly quote the UPDATE_CMD argument in the *PortsTreeUpdate hooks.
* Add a new tbkill.sh tool to terminate a running tinderbuild.
* Add a new tinderbuild option, -norebuild, which will prevent tinderbuild from
forcing a rebuild of any packages specified on the command line.
* Add the build platform and release level to the logs.
* Add support for listing total ports per Build in the www-exp frontend.
* Some other minor bugs have been fixed.
Plus 3 local (port) patches:
* in "Current and Latest Builds" (?action=latest_buildports) increase the number
of ports displayed from 20 to 30
* in ports built for a build view (?action=list_buildports&build=something)
when sorting is done by Last Build Attempt sort descending (latest build first).
* in build logs, add: [1]
- building for: (ie: "6.3-STABLE amd64")
- Makefile ident: (ie: "$FreeBSD: ports/ports-mgmt/tinderbox/Makefile,v 1.41 2008/05/19 20:00:16 itetcu Exp $")
- prefixes: (ie: "LOCALBASE=usr/local X11BASE=usr/local")
- NO* env vars: (ie: "NOPORTDOCS=yes NOPORTEXAMPLES=yes NOPORTDATA=yes")
This release would not have been possible without the contributions of
Alexander Loginov, miwi, Chess Griffin, itetcu, Dmitriy Kirhlarov,
Robert Gogolok, and ade.
- Fix a few typos in pkg-message. [2]
PR: ports/123957 [2]
Submited by: Wen heping <wenheping@gmail.com> [2],
idea from miwi@'s patch for HEAD [1]
- Remove USE_XLIB/USE_X_PREFIX/USE_XPM in favor of USE_XORG
- Remove X11BASE support in favor of LOCALBASE or PREFIX
- Use USE_LDCONFIG instead of INSTALLS_SHLIB
- Remove unneeded USE_GCC 3.4+
Thanks to all Helpers:
Dmitry Marakasov, Chess Griffin, beech@, dinoex, rafan, gahr,
ehaupt, nox, itetcu, flz, pav
PR: 116263
Tested on: pointyhat
Approved by: portmgr (pav)
- This is a routine bug fix release.
- New features: can now process the output from portsnap as part of
maintaining a local INDEX file. See
http://www.infracaninophile.co.uk/portindex/index.xhtml for more
information.
PR: ports/122546
Submitted by: maintainer
better, it works better in opera, it provides a slightly better usability and
it's more FreeBSDish
- fetch all DISTFILES from my server for simplicity
- bump PORTREVISION for plist changes
Prompted by: miwi@'s tindy :-)
Implement a "visual" mode, where the user is given the complete list of leaf
packages inside his editor. He can then remove packages by removing the lines in
the file, save and exit. The now missing packages will then be removed.
PR: 121910
Submitted by: Ulrich Spoerlein <uspoerlein@gmail.com>
* Use the actual Makefile when checking for pre-defined sites. This allows
us to catch things that rely on port variables. [1]
* USE_GETOPT_LONG is now obsolete, and should not be suggested. [2]
* Check for cases where X_DEPENDS = ${Y_DEPENDS} which can result in adding
unwanted dependencies.
PR: 121664 [1]
Suggested by: pav [2]
==================
The previous code tried to handle moved ports in much the same way
as it handled replacing a port with the -o option, but this would
sometimes create problems if we are deep in a dependency graph.
So rather than re-implement only a portion of the -o code, use the
whole thing instead.
We accomplish this by either exec'ing ourselves with the proper -o
options if we are in the dependency tree, or by asking the user to
restart with the proper -o options if they specified the moved port
on the command line. The latter is necessary to avoid having to
duplicate all the "initialize the parent process" code. This allows
me to simplify the code in a few places since -o is now the only
special case.
Bug Fixes
=========
1. Don't try to derive $portdir from $upg_port if using -o
2. Don't try to build a port with an +IGNOREME file if we are doing
the dependent ports in -r mode
Minor tweak: Add some whitespace after a warning message
your ports, I had:
pkg_delete *
which works for me because of a local bash completion, but doesn't
work for most users. So, correct that to be:
pkg_delete '*'
instead.