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.