* 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.