Note: this release contains schema/DB changes. Be sure to run the upgrade
procedure to properly incorporate the new changes. There will be at least one
other DB change before 3.4 release, too.
============
1. Add the ability to retry package creation. This is mostly useful for
PM_SU_CMD after a build that took so long that your sudo ticket has
expired.
2. Add support for multiple -r options on the same command line. [1]
Various Internal Cleanups and Improvements
==========================================
1. s/printf/echo -e/ for consistency, and use it to full advantage
2. In the code that derives the proper value of PACKAGESITE remove 6.x
and add 9.x. Also add a 10-current entry.
3. Add a more-or-less painless test to deal with the issue of the current
working directory no longer existing. This problem usually manifests as
a "The value of DISTDIR cannot be empty" error because 'make -f' does
not handle this condition gracefully.
4. In find_and_delete_distfiles() (run after a successful install) change
the default pattern to be foo-[0-9]* instead of foo* [2]
When the new pattern doesn't match any existing distfiles, fall back to
the old one.
5. Also in find_and_delete_distfiles(), cache matches to $DI_FILES so that
we don't have to re-test that same file again.
6. Change the method used to print the prompt in get_answer_g() to echo -e
so that I can be more flexible in formatting prompt messages.
7. For --clean-packages if a package is up to date but not installed
it should still be deleted if -y is in use.
8. Avoid duplicate word in a composite sentence [3]
9. If a user has non-standard FETCH_ARGS it could circumvent the intent
of --always-fetch, so forcibly unlink the file before proceeding to
the fetch routine.
Sponsored by: Henk van Oers [1]
Suggested by: Lapo Luchini <lapo@lapo.it> [2]
Submitted by: Dan Allen <danallen46@airwired.net> [3]
- Fix bug where LIB_DEPENDS data was missing from some of the
RUN_DEPENDS column in the generated INDEX (reported by dougb)
- Add an option to portdepends to shorten the output. Only
traverse each dependency sub-tree one time. For complex ports
this results in a substantial decrease in output -- the long
form can produce literally millions of lines.
- Add LICENSE
- Pet portlint
This release modifies the on-disk binary format of the cache.
You will need to rerun cache-init after upgrading.
PR: ports/160252
Submitted by: maintainer
* Change a comment to relfect the check number [1]
* Add a check to see if a file that ends in ".core" was checked into CVS [2]
* Do a proper check for 2 or 3 tuple depends [3]
* Correct the detection of the WWW string in pkg-descr [4]
PR: 159057 [3]
159522 [4]
Reported by: Ilya A. Arkhipov <micro@heavennet.ru> [1]
Requested by: netchild [2]
Sbumitted by: sunpoet [4]
remove support for them from bsd.java.mk. As Jikes is not available in Java 1.5
or higher, remove it from bsd.java.mk too (suggested by hq@) and from the ports
which used it (only occurences were USE_JIKES=no). Support for the Blackdown VM
is also removed, as it is not available in Java 1.5 and higher.
Also remove the mapping from Java 1.1-1.4 to Java 1.5+ in bsd.java.mk to detect
old, broken ports; therefore bump the minimal value of JAVA_VERSION to 1.5.
While here, replace static values of JAVA_VERSION in files/*.in by
%%JAVA_VERSION%% .
PR: ports/158969
Submitted by: rene
Tested on: pointyhat-west -exp
* Be more careful is searching for WITH(OUT)_FOO OPTIONS checks so to avoid
false positive warnings. [1]
* Support := in the *_DEPENDS section. [2]
* Make sure we expand DISTNAME to catch potential superfluous uses of it. [3]
* Fix the error seen when one passes CPPFLAGS to CONFIGURE_ENV. [4]
* Add the license block check after the MAINTAINER block [5]
* Add a check for use of ${FIND}...${XARGS} ${RM}. [6]
PR: 156164 [1]
155753 [2]
154320 [3]
158305 [5]
157566 [6]
Submitted by: sahil [1]
"Ilya A. Arkhipov" <micro@heavennet.ru> [5]
Reported by: pav [4]
In shuffling around the updating of +REQUIRED_BY I forgot to delete
empty grep_deps files. [1]
While I'm looking at unlink'ing files, bring some sanity to the various
places that it's done which haven't been reviewed in a while:
* Fix the pm_unlink* functions to use the builtin test
* Only/always call the function when we're not sure if the file exists
* Just use /bin/unlink when we're sure it does
* In parent_exit the glob pattern in the for loop will return 'pattern-*'
if there are no matches, so test for that specifically rather than
returning to the conditional version.
The mere presence of IS_INTERACTIVE in the Makefile is not enough, the
condition needs to be verified in case it is conditional [2]
We want to make sure that $TMPDIR exists before trying to use it. The
cheapest way to do this is to just call mkdir -p. Move the umask call
before this to be safe.
Split the test for the existence of /usr/X11R6 and whether or not it's
a link for one more micro-optimization.
Submitted by: olgeni [1]
PR: ports/157481 [2]
Submitted by: Carl <k0802647@telus.net> [2]
GHC in the ports tree has been updated to 7.0.3 and all other Haskell ports
are also updated to their corresponding Haskell Platform versions, or latest
versions.
We would like to acknowledge the support of the FreeBSD Donations Team and
Eotvos Lorand University, Faculty of Informatics who contributed to the server
that we used for testing.
We would also like to thank all the testers who tested FreeBSD Haskell ports
and provided their feedback.
PR: ports/156642
Approved by: tabthorpe (mentor)
Obtained from: FreeBSD Haskell
=============
* The -F option now works with --packages and --packages-only
o If -F --packages-only and there is no package to fetch,
give the user a menu of options
o If -F and --packages lack of a package is a soft fail
* Revamp the code in check_fetch_only() and where we wait for b/g
distfile fetching to complete to be a lot smarter:
o In check_fetch_only() simplify the code to count fetch processes which
both makes it faster by avoiding ps, and also makes it smarter because
it will find fewer false positives.
o In both, poll every 2 seconds, but only output to the console every 6.
This way we'll be able to exit a lot sooner, but still avoid spamming
the user with lots of messages.
* In the event that an invalid combination of configuration options causes
a port to be BROKEN, etc. allow the user to run --force-config and try
again
* Add the ability to specify the -t option to -L and --index-only to
check every installed port instead of using the shortcut. This is
slow, but useful on an old system where there is no ports tree and
one or more of the ports is so old that it no longer exists in INDEX.
Bug Fixes:
==========
Fix an unfortunately long-standing bug in the --package code, we need to
update the +REQUIRED_BY files for ports that the installed port depends on.
When I tested pkg_add originally I confirmed that it did this, but I
neglected to re-test when adding the --no-deps option, which suppresses
this behavior. Mea culpa.
So take this opportunity to fix the bug, and improve some other things in
the process:
* Add code to the section that updates dependencies for the newly installed
package to walk the +CONTENTS file and runs the +REQUIRED_BY update for
every port that the newly installed depends on.
* Various non-user-visible optimizations to the dependency udpating code
* When called from gen_dep_list, which also uses temp_list as a local
variable, uniquify_list() needs its own set of local variables otherwise
temp_list ends up being duplicated by uniquify_list
Minor Optimizations:
====================
* Micro-optimize a few more cases where we can avoid going out to disk
to test stuff by separating the test for a variable first.
* Continue the campaign to unset things to keep the environment small
* Various other micro-optimizations
A concurrent ports building tool. Although FreeBSD ports supports building a
single port using multiple jobs (via MAKE_JOBS) however it cannot build
multiple ports concurrently. This tool accomplishes just that.
Some of its key features:
* Concurrent port building
* Load control
* Top like UI
* Persistent builds (by default)
WWW: http://github.com/DragonSA/portbuilder/
PR: ports/156441
Submitted by: David Naylor <naylor.b.david at gmail.com>
2011-04-24 ports-mgmt/portmk: has not been kept up to date for > 6 months
2011-04-26 ports-mgmt/portsman: hardwires an ancient version of INDEX
2011-04-30 mail/kiltdown: upstream seems dead since 2001
* Fix a long-standing bug with EUID detection. If the UID was > 4 digits
the code would fail. Fix this by using a more efficient ps command.
While I'm at it, use the same more efficient method for determining
the process group id for the trap cleanup routine.
* Fix a buglet in the new --update-if-newer code, exit if all listed
ports are actually up to date.
* Add --update-if-newer which will operate on a list of ports given
on the command line. If a port list is already up to date, it
will be skipped.
* Tweak the way INDEX files are downloaded and installed to only
require root privileges for the minimum possible number of actions,
and do things in a more secure way:
1. If necessary to download the new INDEX.bz2, as a non-root user, do
it in a temporary directory created with mktemp
2. If necessary to update the actual INDEX file unzip it in that same
temporary directory
3. Only use $PM_SU_CMD to install the file if necessary
4. Unlink both INDEX and INDEX.bz2 in their real locations before
installing the new versions
* Add the ability to store the portmaster.rc file in the same directory
as the script itself.
Many improvements to the --index-only/--packages-only code, particularly
in the absence of a ports tree.
* Make the --index* options more friendly to being duplicated in the rc
file and command line. Mixing different options will still trigger an
error, however having the same option both places will not.
* Don't do the work of handling the INDEX file if we won't need it
(-l, --list-origins, -e, -s)
* Reorganize the final check of $pd (PORTSDIR) to properly handle the
various combinations
* For multiple ports and -o, only test for the origin directory if
we are not using the INDEX. If we are, check it there instead.
* Add some code to --check-depends to explicitly handle --index-only.
It worked before by ignoring the origin test if there was no ports
directory, but failed if --index-only was also used.
This is better both because it doesn't fail with --index-only, but
also because it now uses the index to validate $origin.
* Since --check-depends now works with --index-only, update usage()
Also:
* Add some whitespace to the "Installing new +CONTENTS" message
* In --clean-packages show the path in the delete prompt for stale
packages that are not installed like we do for ones that are
* Various internal cleanups and micro-optimizations
* Check for the direct assignment of BUILD_DEPENDS to RUN_DEPENDS [1]
* Add a deprecated pointer for USE_XPM. [2]
* CPPFLAGS is now passed to CONFIGURE_ENV automatically. [3]
PR: 154896 [1]
155550 [3]
Submitted by: eadler [2]
This is a fast, Perl5-based, database-less pkg_which variant
useful to assist with site-package-upgrades, for instance,
after a Python 2.6 -> 2.7 upgrade.
* Check for duplicate MANx macros [1]
* Add a warning if the wrong CPAN URL is used for the WWW URL [2]
* Remove an obsolete CPAN warning [3]
PR: 154069 [1]
154149 [2]
154724 [3]
Submitted by: skreuzer [2]
milki@rescomp.berkeley.edu [3]
This patch changes the order in which the conf file is read vs.
when the default variable assignments are made in order to provide
the ability to override them in the conf file. It also adds the
ability to include a conf file in the same directory as the script.
The patch also changes some of the = assignments to := where
having a null setting by mistake would be fatal.
The use case for these changes is the ability to "package" all
of the elements together in one place for use on multiple systems
that can all mount the same central location.
PR: 154518
Submitted by: dougb
Hat: secteam
Feature safe: yes
* Do not warn when the "work" directory is not in CVS. [1]
* Improve Ruby docs and examples handling. [2]
PR: 152053 [1]
153596 [2]
Submitted by: Eitan Adler <lists@eitanadler.com> [1]
tota [2]
New Features
============
1. The PT_NO_INSTALL_PACKAGE make variable will cause a port to always
be compiled, instead of being installed from a package. It cannot
be used in combination with the -PP/--packages-only option. [1]
2. All user input is now wrapped in a verification routine to make
sure that yes means yes, etc.
3. The -e, -s, --clean-distfiles, --clean-packages, --check-depends
and --check-port-dbdir features can now take -y and -n options to
answer "yes" or "no" respectively to all user dialogs. This also
allows me to deprecate the horribly hacky --clean-distfiles-all and
--clean-packages-all in favor of -y.
4. If using a separate WRKDIRPREFIX, when the run is over use find to
clean out the empty directories that are left behind by the ports
infrastructure.
5. If PM_PACKAGES is set, don't bother with build depends [2]
Small Fixes And Improvements
============================
1. Update usage() in the script and the man page for the new features,
and improve the consistency between the two.
2. When we enter -PRERELEASE phase the package-finding code should
still be looking at -stable. [3]
3. Fix some bugs with -r:
* In certain situations dependent ports that were otherwise
up to date would be missed.
* For the purpose of not rebuilding the parent port when -R
is used we only care about the dependencies of the parent
port being up to date.
4. Error handling for INDEX fetch
5. The -e, -s, -l, -L, --list-origins, and --check-depends features
all work fine without a ports tree
* In -e and -s, delete_dist_list() requires the ports tree, so
if the user didn't use -D imply it when the ports tree is
missing, and hide delete_dist_list() behind that test
6. pdb and port_dbdir need default values for usage()
Inspired by: Marco van Lienen <marco+freebsd-ports@lordsith.net> [1]
Matthew Seaman <m.seaman@infracaninophile.co.uk> [1]
Reminded by: ale [2]
Reported by: Jakub Lach <jakub_lach@mailplus.pl> [3]
- remove CSUP option, since csup port is gone because csup is in base on all
supported OSVERSIONs
- assure the needed dependencies are installed for sending emails and log
compression via two OPTIONS: EMAILS and LOG_COMPRESS
- flip ON by default the patches for tmpfs and parallel tindy instances
- update plist for hooks/compress_wrkdir and webui's BuildGroups support
- RIP MD5 in distinfo while I'm here.
*** I'm not sure about this patch, so you can argue about it with me.
Also you can look ports/152102.
PR: ports/152156
Submitted by: az
Approved by: sergei (timeout)
When specifying 'portmaster port-1.23 dependency-of-port-2.34'
the dependency would be built twice because the PM_NEEDS_UPDATE
list is kept by ORIGIN. So use the same technique to validate
the port in the build phase that we are using in the first pass.
Also, update the documentation on full version upgrades to encourage
users to back up any vital file in /usr/local before "making sure that
it is empty."
release can be found at http://library.gnome.org/misc/release-notes/2.32/
This will be the last release of the GNOME 2.x series, mainly a bugfix and
bridge release to the first release of the GNOME 3.x series.
This release features commits by avl, marcus, mezz and myself.
The FreeBSD GNOME Team would like to thank the following contributors and
testers for there help with this release:
Zane C.B. <vvelox@vvelox.net>
romain@
Olaf Seibert <O.Seibert@cs.ru.nl>
DomiX
Bapt <baptiste.daroussin@gmail.com>
jsa@
miwi@
Sergio de Almeida Lenzi <lenzi.sergio@gmail.com>
Maxim Samsonov <xors@mne.ru>
Kris Moore
And pav@ for 2 exp-runs
PR: ports/152255
ports/143260
ports/141033
ports/149629
ports/150350
ports/151523
With hat: gnome@
=========
1. Since $build_l is no longer being incremented prior to the user's
+IGNOREME decision it's no longer necessary to decrement it if the
user chooses not to update that port.
2. While I was reading the trace to find this bug I noticed that we are
running update_build_l() (which in turn updates PM_NEEDS_UPDATE) prior
to running check_state() (FORBIDDEN|DEPRECATED|BROKEN|IGNORE), so move
that check up; and move the "currently installed" and "port directory"
messages up as well to give context to any messages from check_state().
3. Only print the fast-resume message if we're building. Otherwise we
might not know all the ports that need updating.
4. Fix the zsh completion file for --clean-packages[-all]
Minor Fixes
===========
1. In read_distinfos_all() a missing DISTINFO_FILE doesn't need to be fatal
like it does in read_distinfos() since it could be caused by something
uninteresting like a MASTERDIR that exists in part of the tree that has
not been downloaded (e.g., a c[v]sup refuse file). Add some whitespace
around the message in case make also emits an error.
2. For --clean-distfiles* add a line after the "Checking" message to
make the spacing consistent
3. In usage() fill in $pd if it's empty (which it will be for -h|--help)
4. Give a more helpful error message for -o when the port to be replaced
isn't installed or listed as a dependency
* Correct the UIDs passwd file format.
* Parse out comments when checking dependency format. [1]
* Added check for the case when LICENSE contains multiple tokens but
LICENSE_COMB do not set or equal to 'single' (instead of correct 'multi' or
'dual'). [2]
* Add support for @rmtry. [3]
PR: 150997 [1]
151966 [2]
151301 [3]
Submitted by: skv [2]
2010-11-01 ftp/kwebget: Development has ceased.
2010-11-01 multimedia/clive-utils: development has ceased; use multimedia/umph instead
2010-11-01 ports-mgmt/barry: Development has ceased.
2010-11-01 www/wb0: Development has ceased.
in -a as dependencies, then built again because they were pre-scheduled for
update.
Use the same method to handle the same problem in multiport(), which allows
me to remove one more list.
Bug Fixes
=========
1. Properly handle +IGNOREME files again
2. In safe_exit() only print the restart hint if -n PM_NEEDS_UPDATE
Enhancements
============
1. For -F, a better message for spawned children, and continue the campaign
to do less irrelevant stuff.
2. Add some whitespace to the "All ports are up to date" message for -a
3. Make it clear in the docs that -e only handles single ports, and
use the enhanced features of find_glob_dirs() to return better error
messages if a glob doesn't match one and only one port. (Problem
mentioned in PR.)
PR: ports/151824
Submitted by: Ben Grimm <freebsd-pr@bengrimm.net>
numerous internal reorganizations of various sections of code; and several
informative messages have been updated to be more informative. :)
If you're interested in all the details you can review the svn logs at
http://svn.freebsd.org/viewvc/base/user/dougb/portmaster/
Catch Up With Ports Infrastructure
==================================
1. Switch to using DISTINFO_FILE instead of MD5_FILE
2. Use the SHA256 line from distinfo instead of MD5
3. The BEFOREPORTMK trick no longer works to list MASTER_SITES for all ports
so switch to the slightly slower but more reliable pm_make without it. This
will solve the problem of portmaster not fetching all distfiles in the
background.
4. In the case statement to select the appropriate release for package
fetching glob 9.0-CURRENT to handle snapshots as well.
Various Improvements
====================
1. If we fail, offer a suggestion for a shortcut to restart
2. In messages that refer to the INDEX file, use the variable to make it
clear what we're working with.
3. In dependency_check() be clear when we're using the INDEX
4. Dramatic (9-10 times) speedup in iport_from_origin() by making an
intelligent guess about what director{y|ies] to search in based on
the origin directory name which means we're almost always
looking in either exactly the right directory the first time, or
at worst (such as the py-* ports) a dramatically smaller subset.
5. If using --index-only and neither INDEXDIR nor PORTSDIR are set, set
INDEXDIR to $TMPDIR so that we can proceed. That makes PACKAGES the
only variable the user has to set to use --index-only and --packages-only
with no $PORTSDIR and no ports directory.
Bug Fixes
=========
1. For the determination of LOCALBASE:
a. Don't try to use INDEX if PM_INDEX is not set
b. Give a more meaningful error message
2. Be more careful to check that there is a line for the port in the INDEX
when working --index-only.
3. In the package fetch routine use a better string match to see if we have
already downloaded the directory listing. The previous one worked but would
match too many files for net* and x11*, especially when installing a lot of
ports. So add a '.' to differentiate these.
4. The --clean-packages and --clean-packages-all features were added just
a little too hastily, so overhaul them.
be generated or checked, and will be silently ignored for now. Also,
generalize the MD5_FILE macro to DISTINFO_FILO.
PR: 149657
Submitted by: rene
Approved by: portmgr
Tested on: pointyhat i386 7-exp
* major new release
* most functions has been rewritten for speed and efficiency
* -S deprecated
* -I switched with -i
* search improvements (using INDEX)
* overall code clean-up
PR: ports/150324
Submitted by: Andy Kosela <akosela _at_ andykosela.com> (maintainer)
- small fix if prefix is given with trailing /
PR: 150273
Submitted by: Rob Farmer <rfarmer _at_ predatorlabs.net>
Approved by: maintainer, glakin (mentor, implicit)
New Features
============
1. Add an option to log actions after the run is complete. To enable
it define PM_LOG in your rc file as the path of the file you want
to log to. If using PM_SU_CMD make sure that the directory or file
is writable by the unprivileged user.
2. Add the --clean-packages[-all] feature
This works similarly to --clean-distfiles[-all] in that it searches
the $PACKAGES directory for out of date packages, and either offers
to delete them, or with -all deletes them without prompting. It
also cleans out stale symlinks and empty directories.
This necessitates moving init_packages_var() and parse_index() so
they can be used by the new feature.
The idea for grabbing the ORIGIN from the package's +CONTENTS file
and checking to see if it is up to date came from:
Alexey Markov <a.markov@complitex.ru>
3. Add an option to --clean-distfiles[-all] to allow a distfile to be
valid if it matches ANY port in the tree, not just those installed.
This requires building a distinfo list from all ports, so duplicate
the relevant bits of read_distinfos() into read_distinfos_all(). The
common elements are split into during the loop and after the loop, so
making 4 functions total doesn't seem worth it.
Add logic to --clean-distfiles to handle the -t option and call the
right read_distinfos* function accordingly.
4. Add the ability to ignore failed backup package creation by setting
PM_IGNORE_FAILED_BACKUP_PACKAGE in the environment (rc file, etc.)
5. Add the ability to skip the rebuild of the -r port by adding -R
Cleanups and Tweaks
===================
1. Finalize the deprecations of /etc/portmaster.rc, -u and -p
2. If --local-packagedir and ${LOCAL_PACKAGEDIR}/All/${new_port}.tbz
exists just use it, don't bother dereferencing $LATEST_LINK. This
is faster, but it also solves the problem of (for example)
packages/Latest/perl links to perl-5.10.x, even with 5.12.x
installed and the 5.12.x package in packages/All
3. Change the behavior of the -G option.
In the original version of portmaster the concept of 2 distinct
passes through the dependency tree, the first to do all the
'make config's and the second to build everything was intrinsic to
the design. When released publicly there were a non-trivial number
of users who objected to the idea of 'make config' being mandatory,
so I added the -G option to disable the whole first pass. However
as time went on, more and more features were added that depended on
the first pass, so it was necessary to rethink how -G works.
In this version, the 2-pass design is now universal, and the only
thing -G does is suppress the actual OPTIONS dialog. This has
several benefits:
a. Now all features are available to -G users
b. The new method of suppressing the OPTIONS dialog is 100%
effective (thus it's no longer necessary to use BATCH to truly
suppress them)
c. The --force-config option now overrides -G so users who really
hate OPTIONS can have -G in their rc file, but still have it
available by using --force-config on the command line
Lots of variables, functions, and text have been modified to
substitute out references to "config" in favor of "first pass"
4. Use nice for the make commands that actually build stuff
5. Improve the messages for fetching and updating INDEX
6. Add some whitespace in checkdepends() after removing stale data
7. If we're doing -F don't bother to initialize $PACKAGES
8. Clean up whitespace in the code
9. Use a better, more generic method of signaling an abnormal exit
and call safe_exit with a status of 1 from more places.
This is likely the cause of some of the vague problem reports I have
received in the past that include complaints of, "I used -r/f and -R
but portmaster still rebuilt certain ports a whole bunch of times."
10. In parent_exit() if INSTALLED_LIST has content but ilist does not,
move it over so we can display the right information about work done
11. Make parse_index() more forgiving of PORTSDIR != /usr/ports
12. If PORTSDIR exists, but isn't a ports tree, warn the user, and when
setting PACKAGES run tests against $pd, not literal /usr/ports.
Thanks to bf@ for these 2.
ports to update it can get quite large.
If there are a very large number of ports installed the grep in
iport_from_origin() can fail with "Argument list too long." It's also
theoretically possible that the grep would fail for other reasons. So
if it does, fall back to 'pkg_info -O'. My method is faster which is
why I'm still trying it first, but this is a sort of "belt and
suspenders" situation.
ports you specifically want to have installed. The normal dependency
checking in programs like pkg_delete(1) will prevent easy deletion of
ports that other ports depend on. Keeps egg off face. Protects feet
from being shot.
PR: ports/147808
Submitted by: Matthew Seaman <m.seaman at infracaninophile.co.uk>
Approved by: tabthorpe (mentor)
and doing so can make debugging more difficult.
Add code to post_config() to make sure that things in the
build-only dependency list are not listed as run dependencies for
something already installed.
Apparently, in some circumstances it's necessary to run ldconfig -R
when one moves shared libs from /usr/local/lib to
/usr/local/lib/compat/pkg. So add that to the -w code.
has moved) but there IS a /var/db/ports/<portname>/distfiles, we do not
want to prompt the user if they are using -d, we just want to delete
the files.
In the code to strip the port from $build_l if the user chose not to
update a port that has an +IGNOREME file, the backslash in "\t" needs
to be escaped.
and maintain a portshaker configuration throught the ports system.
It is designed to ease using portshaker for users who want to merge portshaker
powered ports overlays in their FreeBSD ports tree.
everything Gnome PackageKit does except:
- install catalog;
- service pack;
- a D-Bus session interface.
These items are not mandatory since they are more features of the GUI
itself than a feature in PackageKit.
WWW: http://kde-apps.org/content/show.php/KPackageKit?content=84745
Approved by: tabthorpe, miwi (mentors)
I notice it looks for a perl executable in /usr/bin/perl. However, a
perl executable may not exist here, so this small patch changes the
port to use the PERL5 variable to determine the correct location of
perl as determined by the ports system.
This represents a milestone release over the previous version, and
includes significant improvements to the version detection and
comparison algorithms, support for the new SourceForge mirror layout
(and an easy way to add future workarounds), theoretical support for
NetBSD's pkgsrc and OpenBSD ports, support for providing a list of
software in an XML file in place of ports, and support for SQLite.
Of course, there are also many optimisations and general bug fixes.
=============================
1. In iport_from_origin() if we don't find a match (which is normal for
ports that are not yet installed) then return immediately.
2. A little more white space after the user input for --check-port-dbdir
3. In check_for_updates() if a port has moved we should also check for
an +IGNOREME file before forcing the update.
4. For distfile fetching:
a. Limit the scope of some of the variables
b. If a distfile has a / in the file name creation of the flag file
for background fetching will fail, so swap that for a _ instead.
ports which makes possible the direct translation of Cabal package
descriptions to FreeBSD ports. It promises both easier addition and
maintenance for Cabal-based ports.
===========
Add a --packages-local option for those who wish to use only local
packages, and never attempt to fetch from a remote site.
Bug Fix
=======
Fix a braino for --index-first and --index-only:
The cross-checking of the command line options needs to happen before
the environment variables are set.
Cleanups And Optimizations
==========================
1. LOCALBASE_COMPAT is only ever used in combination with /pkg at the
end, so fold that into the variable to start with.
2. Indicate to the user that -p is deprecated
3. Allow setting of DISTDIR directly in .portmasterrc like the other
widely used vars. This entails the following:
a. Capitalize distdir every place that it's used.
b. Add to the list of --options to check which mean we don't even
have to try to set it. This saves us a call to make(1).
c. Don't set it to / if DISTDIR is empty, which makes error checking
later on easier.
d. Mark DISTDIR (and related vars) global in a few more functions
to make it consistent.
4. Move the test for version > 6.4 first in the list, no point in
processing a bunch of stuff only to bail out later.
5. Unset the test_command_line function when we're done using it
6. Be smarter about whether or not to use $PM_SU_CMD to fetch the
INDEX.bz2
7. Improve cross-option error checking for the --packages* options
release can be found at http://library.gnome.org/misc/release-notes/2.30/ .
This release brings initial PackageKit support, Upower (replaces power
management part of hal), cuse4bsd integration with HAL and cheese, and a
faster Evolution.
Sadly GNOME 2.30.x will be the last release with FreeBSD 6.X support. This
will also be the last of the 2.x releases. The next release will be the
highly-anticipated GNOME 3.0 which will bring with it a new UI experience.
Currently, there are a few bugs with GNOME 2.30 that may be of note for our
users. Be sure to consult the UPGRADING note or the 2.30 upgrade FAQ at
http://www.freebsd.org/gnome/docs/faq230.html for specific upgrading
instructions, and the up-to-date list of known issues.
This release features commits by avl, ahze, bland, marcus, mezz, and myself.
The FreeBSD GNOME Team would like to thank Anders F Bjorklund for doing the
initual packagekit porting.
And the following contributors & testers for there help with this release:
Eric L. Chen
Vladimir Grebenschikov
Sergio de Almeida Lenzi
DomiX
walder
crsd
Kevin Oberman
Michal Varga
Pavel Plesov
Bapt
kevin
and ITetcu for two exp-run
PR: ports/143852
ports/145347
ports/144980
ports/145830
ports/145511
============
Add a --no-index-fetch option for people who want to use the
--index* options but do not want portmaster to do the fetching.
Cleanup and Fixes
=================
1. Remove no longer necessary local variable in version()
2. Rework how some initial variables are set. Deriving the values via
make works, but is very slow. So try to be more intelligent about
recognizing the standard values for the ones we always need to have.
* For PORTSDIR and PKG_DBDIR if those variables are not in the
environment and the standard directories exist, use them.
* Move the setting of pd (PORTSDIR) up to before the INDEX-related
items so that we can use ${INDEXDIR:-$pd}
* The derivation of the INDEX-related stuff wasn't working (since
we didn't know $pd) and no one has complained, so just use the
default values from bsd.port.mk unless the user specifies others.
* If /var/db/ports exists, use it for port_dbdir
3. Indicate that the -[lL] options are not compatible with -FRaefnors,
updates, or installs
4. In the test to see if we downloaded a new INDEX.bz2 file supply a
default value for index_time so that if the file did not exist
previously the test will not fail.
================================
1. Adjust whitespace at the end of the run
2. In a couple places where default value setting is overly complex
(including a couple of the places related to the recent ro_upg_port
changes) simplify the code.
3. When checking stat(1) for the INDEX updates we really want to check
the time when the file was last modified for pedantic value, although
in this scenario the practical effect was the same.
4. In --check-port-dbdir we now need to check if the values in the loop
are directories, since origin_from_pdb() now emits an error if it can't
find ORIGIN.
============
Expand on an idea provided by mandree@ to use 'pkg_version -I' to quickly
check what ports are out of date, and incorporate that check into the
--index option. Feedback from users seems to indicate that this is what
they expected the option to do anyway, so the minor change to the feature
does not seem to be a POLA violation, especially since INDEX support is
still relatively new. Add the --index-first option to do what --index used
to do in case anyone cares.
Bug Fixes
=========
1. Add more error checking for incompatible command line options.
Add a new cross_idx() to handle checking the 3 --index* options, and
consolidate some of the old tests that were all relative to -G.
2. We want to test the .bz2 version of INDEX to see if it's newer, and
unzip it if it is.
3. For -o mode:
Going back a long ways upg_port was (ab)used to indicate the currently
installed version of the old port for -o. Originally this was safe since
it's very rare to have the new port installed already, and it saved a
little bit of code complexity. However, as more and more features were
added that utilized the value of upg_port it became increasingly
unsafe. Particularly, at this time there are 2 related bugs manifest.
First the wrong information appears in the confirm list (upgrade of
the old port vs. install of the new) and parsing the old port
directory. The latter was (mostly) harmless, although in the case of
an old port directory being DEPRECATED this resulted in a fatal error
when trying to upgrade.
So, make the following changes:
a. Make upg_port an installed version of the new port, if it exists.
b. Introduce ro_upg_port for the existing version of the old port.
c. Factor out some code that was related to how to handle lack of an
installed version of the old port (since now that's done higher up).
d. In the stage after the build of the new port and before pkg_delete
of the old port test for upg_port OR ro_upg_port and run the various
features (lib backup for -w, pkg_delete, etc.) as needed for both.
e. In install_failed() notify the user about the backup port for the old
version.
f. I discovered in regression testing that invoking -o for MOVED
ports that we get to as dependencies was working, but the code to
automatically invoke -o for a parent port was broken. The problem is
that we can't just exec a new version if we're the parent, we have to
cleanly shut down background fetches and other processes, delete temp
files, etc. So split the parts of safe_exit() that relate to these
elements into their own function, parent_exit(), and call it both
from safe_exit() and when exec'ing a new version for -o in this case.
4. Add error checking to pm_mktemp, and the stray mktemp call. According
to a private report from a user it can actually fail.
5. Add error-checking to parse_index() so that if we don't find a line for
the port we return an error code; check for the error in the callers.
6. Improve the handling of various situations where there is no ORIGIN
recorded in the +CONTENTS file. This is almost always an error in the
package building process, and therefore usually needs to be flagged and
handled as an error. There are (at least) 2 situations where it may not
be an error; bsdpan ports, and when the user has added an +IGNOREME file
(usually for 3rd party packages).
a. Add code to origin_from_pdb() that tests to see that grep returned
something, echos the result as before, then also returns successfully
* If the port is a bsdpan port, return with an error code but let the
caller handle the reporting as appropriate.
* If there is no ORIGIN but there is an +IGNOREME file don't report
the error unless we're using -v, then also report that the
+IGNOREME file is there. Either way, return with an error code.
* If there is no ORIGIN, and no +IGNOREME file, report the error and
return with an error code.
b. In several places this allows several lines of code where the
function is called to be collapsed into:
origin=`origin_from_pdb $iport` || continue
c. In the main body where we parse the command line for what to work on
convert the code that was individually testing the various conditions
that are now handled in origin_from_pdb() to simply parse the return
codes with a case statement.
In the common case (there is an ORIGIN in +CONTENTS) this is almost
certainly a minor optimization since the error handling code in
origin_from_pdb() is never reached, and several places where things
like "is it a bsdpan port?" and other error handling have been removed.
7. In check_for move some local variables down into the block where they
are used.
old way. So only add spaces to the list if we're generating it from the
INDEX, and let the case statement match with or without spaces.
Reported by: avilla
Improve markup slightly for --packages options
Document --index and --index-only
Reflect that -e now takes a glob
Add a note about the nature of glob patterns
============
1. Introducing the new options --index and --index-only. The first
will use the INDEX file to check if a port is up to date. The
second allows the use of portmaster with no /usr/ports directory.
2. The second argument to -o and the port name for -e can now be globs
3. For the -d|-D and -b|-B options allow the command line to override
any values that might be set in .portmasterrc
Internals
=========
1. Add a pm_sv() function to handle verbose messages for PM_SU_CMD
2. Add a find_glob_dirs() function, and use it instead of custom
versions each place this is needed.
3. For -o, add -DDISABLE_CONFLICTS
Bug Fixes
=========
1. If running as root, unset PM_SU_VERBOSE
2. Minor tweaks to improve usage()
* Only make checks for PORTVERSION/DISTVERSION, MAINTAINER, COMMENT, and
CATEGORIES fatal if they are not set elsewhere. Instead, print a warning
for non-slave ports. [1]
* Make the check for an Apache dependency case-sensitive to fix an issue
with false positives. [2]
* Add support for checking for the need for USE_DOS2UNIX, and for ports which
may need MASTER_SITE*CPAN. [3]
* Add a new -m flag which enables checks for MOVED, UIDs, and GIDs. This flag
is disabled by default, but can be enabled with -c, -C, or -A. [4]
PR: 142381 [2]
Submitted by: wen [2]
hrs [4]
Requested by: chukharev@mail.ru [1] [3]
===========
Add a --delete-packages option so that after a package is installed
it will be deleted.
User-Visible Change
===================
Warn the user if they have an /etc/portmaster.rc file. This location
is deprecated in favor of PREFIX/etc.
Minor Updates
=============
1. Add -m1 to grep lines that can only have one match
2. Additional debugging help and error checking
3. Introduce init_packages_var() to initialize the PACKAGES variable,
and use it in some places where init_packages() was being overloaded.
4. Improve the logic of when, and when not to initialize the
packages directories.
5. Bring in some internal changes from the latest svn version for
diff reduction.
6. Add $PM_SU_CMD to a few places where it's needed
Bug Fixes
=========
1. In pm_cd_pd() the error message should reference $1, not $origin
2. The -r option should take a glob as input
The build system does the update of the ports tree,
moving old packages out of the way, fetch and rebuild
the packages you need. Its ports tree with packages
is served to the production systems and desktops.
On a system you can update installed ports with
the clean build packages from the build system.
WWW: http://people.freebsd.org/~dinoex/batch/README
============
1. Add a --no-term-title option to avoid updating the xterm title bar
Bug Fixes
=========
1. Add code to prevent duplicate entries in the list of things to be
done for the user to confirm after config is done.
2. Add code so that if a user has an +IGNOREME file for a port that
is a dependency and chooses not to update it we will not falsely claim
that it will be udpated in post_config().
3. If we are running on a cons25 terminal let term_printf() return
instead of trying to printf the escapes which won't work and will
annoy users.
4. Fix 2 places where sudo privileges might be needed but the non-sudo
version of the command was called. [1]
5. If a user chose -G don't print the (${dep_of_deps}/${num_of_deps})
in the xterm title since the latter will not be incremented. This has
the pleasant side effect of allowing better indenting of the code.
Submitted by: N.J. Mann <njm@njm.me.uk> [1] (for pkg_delete)
While here, turn on the conditional inclusion of bsd.perl.mk. I have
had this in my own tree for some time, and sometimes check it in and
sometimes don't. This settles it.
New Features:
=============
1. When running through the config phase a list of things to be installed
and/or upgraded will be generated. This list will then be presented to
the user for confirmation before proceeding.
2. Add a --no-confirm option to suppress this new feature.
3. When using portmaster in an X terminal window that supports updating
the title you will now see a status update for what port is being
built, and as appropriate what dependency of that port and an (N/M)
counter. Thanks to ehaupt for the push on this, as well as some testing
and sample code.
4. Make the "yes or no" prompts (hopefully) more clear by adding "y/n"
to the text of the message, e.g., "===>>> Do you want to live? y/n [y] "
Feature expansion:
==================
Do a more thorough job of tracking things that should fall into the
--packages-build/--delete-build-only category. I.e., if something is
a run dependency of a port or ports that themselves are only build
dependencies, add it to the build_only_dl_g anyway.
New internals:
=============
1. Add a uniquify_list function so that internal lists of variables
can be made unique. Start using it for some of the new stuff, and
in clean_build_only_list().
2. Add a pm_cd_pd() which will cd into the port directory or error out
with an appropriate message.
3. Start using pm_cd_pd() where appropriate, including in a couple of
new places where we have to go back to the port directory after cd'ing
around elsewhere due to the new update_build_l().
4. Make some other cd/pm_cd invocations consistent
Cleanups:
=========
1. Instead of saving some of the new variables unconditionally in
safe_exit() move the things that are only done in the config phase
to that section, and move build_deps_il to the !config section.
2. Since $new_port may be set as a side effect of the new "Terminal
title" feature, conditionalize it for the "main" process.
3. Remove the old RCS Id stuff since I'm not using it
Bug fix:
========
In safe_exit() when doing multiports and we interrupt the process
the attempt to print the INSTALLED_LIST was not successful. So move
all of the related code into a test for INSTALLED_LIST's existence,
and just print the whole list (even if it has only one item) in both
the -a (as it was already) and multiport cases.
Changes:
Fixes from upstream:
- Remove X11BASE support it is now obsolete. (already in ports-mgmt/tinderbox)
- Expand the glob to check for Perl so that it actually
captures lang/perl5.10. (already in ports-mgmt/tinderbox)
- Restore some of the leftover exceptions but use LOCALBASE instead of X11BASE.
- Expand the MySQL glob to match on MySQL 5.4 and 5.5.
- Adjust the SQL query to remove all entries from a BuildPortsQueue. This
makes things more compatible.
Two Experimental patches from Tim Bishop and beat@.
- Tim has added support for multiple tinderd instances at the same
time.
The parallel patch allows to run multiple tinderd instances at the
same time. You can enable multiple tinderd instances via /etc/rc.conf
with tinderd_instances="X"
- beat@ as added support for tmpfs to enable the usage of FreeBSD's
tmpfs implementation.
Both patches are experimental and are not official supported by the Tinderbox
distribution.
Reviewed by: itetcu, beat (thx!)
Approved by: itetcu (maintainer implicit)
Obtained from: tinderbox cvs (snapshot)
1. Versions of pkg_add in FreeBSD older than 6.4-RELEASE will not have
the proper options available, so warn the user if they try to use
package-related code.[1]
2. Highlight some different features
Reported by: Miroslav Lachman <000.fbsd@quip.cz>[1]
====================
1. We only want to set PM_BUILD_ONLY_LIST=pm_bol in the command line
parser if we are the parent port. Otherwise proper build dep detection
will not occur.
2. Versions of pkg_add in FreeBSD older than 6.4-RELEASE will not have
the proper options available, so warn the user if they try to use
package-related code.[1]
Reported by: Miroslav Lachman <000.fbsd@quip.cz>[1]
PR: ports/136065 ports/127469
Submitted by: N.J. Mann <njm@njm.me.uk> and Aldis Berjoza <killasmurf86@gmail.com>
- Early identify port CONFLICTS
PR: 137855
Submitted by: Piotr Smyrak <smyru@heron.pl>
- Add --no-same-permissions to the EXTRACT_AFTER_ARGS command.
Tijl Coosemans has been reported an issue that when root is extracting from the
tarball, and the tarball contains world writable files
(sysutils/policykit as an example), there is a chance that the files
gets changed by malicious third parties right after the extraction,
which makes it possible to inject code into the package thus compromise
the system.
Submitted by: Tijl Coosemans <tijl@coosemans.org> Xin LI (delphij@)
- Fix some whitespaces
Tested with: exp-run