Commit graph

203 commits

Author SHA1 Message Date
Bryan Drewery
7b879fa85a - Update to 3.17.6
Changes:
  * Speedup --list-origins with pkg
  * Use proper /usr/local/etc/portmaster.rc path in portmaster.8
  * Fix running from deleted dirs.
  * Fix losing control of building run-depends of staged ports
    (thus breaking -g and counts). [1]

PR:		189398 [1]
2014-06-19 00:36:18 +00:00
Bryan Drewery
a8b719b6ab - Update to 3.17.5
Changes:
  * Fix some issues with killing child processes
  * Use builtin kill(1)
2014-05-24 19:04:30 +00:00
Bryan Drewery
0d3e691cd0 - Update to 3.17.4
Changes:
  - Fix --check-depends with pkg [1]
  - Allow installing DEPRECATED ports

PR:		ports/186915 [1]
Submitted by:	kaltheat <kaltheat@gmail.com> [1] (based on)
2014-03-15 18:29:41 +00:00
Bryan Drewery
11e80ffd08 - Update to 3.17.3
Changes:
 * Fix with pkg-devel which has broken pkg-info -O compatibility
2013-11-19 15:05:20 +00:00
Bryan Drewery
da8811d66a - Support STAGEDIR 2013-09-23 11:23:47 +00:00
Bryan Drewery
2324655f20 - Add NO_STAGE until validated to be safe for upcoming staging support 2013-09-20 15:58:09 +00:00
Bryan Drewery
e4ce57f02e - Update to 3.17.2
Changes:
 - Fix detection of pkg-devel

PR:		ports/181813 [1]
Reported by:	Takanori Saneto <sanewo@ba2.so-net.ne.jp> [1], eadler
2013-09-14 12:32:14 +00:00
Bryan Drewery
0c28ddccc8 - Update to 3.17.1
Changes:
  * Fix --check-port-dbdir support after ports r321785 changed
    to /var/db/ports/category_port (OPTIONS_NAME) instead of
    UNIQUENAME [1]

Reported by:	many
2013-07-22 00:41:45 +00:00
Bryan Drewery
dc8f131329 - Update to 3.17
Changes:
  - Fix completion scripts when ports are not checked out.

PR:		ports/179098
Reported by:	Doug Barton <dougb@dougbarton.us>
2013-06-22 16:38:09 +00:00
Bryan Drewery
f579b30bcd - Remove temporary WRKSRC hack
- Rename distfile and fix checksum errors. These errors
  were due to renaming the upstream account, which changed
  which directory the distfile untarred in.
- Shuffle MASTER_SITES so that FreeBSD.org and other more
  reliable mirrors come before github
2013-06-08 11:28:13 +00:00
Bryan Drewery
4484e1151b - Fix build with temporary fix
Reported by:	John Ko <john@johnko.ca>
2013-06-04 01:47:18 +00:00
Bryan Drewery
830c8be52b Update MASTER_SITE to github.com/freebsd 2013-06-03 10:49:41 +00:00
Bryan Drewery
ab2198cf03 - Update to 3.16
This fixes a regression with non-pkgng usage that would invoke
the bootstrapper when upgrading ports. My testing did not
cover systems with the bootstrapper that did not use pkgng, so
this was missed.

The impact of this was just a hung build during deinstall.

Reported by:	mandree
Pointyhat to:	bdrewery
2013-03-29 23:48:02 +00:00
Bryan Drewery
8dd2f7091d Mark BROKEN as I fix a reported regression 2013-03-29 23:31:25 +00:00
Bryan Drewery
3b9dc59b3f - Update to 3.15
- Add extra mirror
- Remove PKGNGPATCH option

Changes:
  - The pkgng patch has been fully integrated upstream with its
    history copied from the pkgng repo over to portmaster's repo
  - Add extra messages before/after killing background processes so
    that 'Terminated' messages look less unexpected
  - Fix running from / trying to build the entire tree
  - pkgng: Fix -s not respecting the automatic flag
  - Fix "Argument list too long" errors
  - Add PM_SU_CMD documentation to the sample config file [1]
  - Fix -o not showing the specified origin [pkgng patch bug]

Submitted by: Oleg Pudeyev <oleg@bsdpower.com> [1]
2013-03-29 20:43:54 +00:00
Bryan Drewery
282a9890b6 Remove standard descriptions for BASH/ZSH
Suggested by:	danfe
2013-03-23 11:21:50 +00:00
Bryan Drewery
d8d3b88b2b - Enable pkgng support by default. This is safe for
non-pkgng users as well.
2013-03-23 02:07:26 +00:00
Bryan Drewery
8d9524b3b8 - Remove use of bsd.port.pre.mk
- Reword pkg-message to try to be more clear
2013-03-14 22:11:47 +00:00
Eitan Adler
cc483cb5b0 Make it clear that pkgng is optional
Submitted by:	wblock
Approved by:	bdrewery (maintainer)
2013-02-06 02:35:29 +00:00
Alex Kozlov
05a9235c98 - Fix all cases of 'No newline at end of file' in ports tree
Approved by: portmgr (bapt)
2013-02-01 15:04:00 +00:00
Bryan Drewery
39224de87d - Don't force pkg as a RUN_DEPENDS. The patch should be
safe for non-pkgng usage.
  I am in the process of testing this and will be fully
  integrating the patch upstream soon.
2013-01-25 19:30:25 +00:00
Bryan Drewery
8416505cff - Add upstream patch for fixing bash completions with PKGNG
and to respect env PORTSDIR/PKG_DBDIR

Feature safe:	yes
2012-12-06 17:46:10 +00:00
Bryan Drewery
4522cd5f2f - Fix PKGNG patch trying to call pkg(8) when not
actually using pkgng due to improper short-circuit
  logic

Submitted by:	John Hein <jhein@symmetricom.com>
Feature safe:	yes
2012-10-29 19:06:13 +00:00
Bryan Drewery
fc79661a53 - Update ZSH completions to work on CURRENT with pkgng [1]
- Don't depend on ports-mgmt/pkg on 7.x with PKGNGPATCH option

Submitted by:	ume [1]
Feature safe:	yes
2012-10-20 19:26:34 +00:00
Bryan Drewery
2e25939099 - Fix WITH_PKGNG detection on CURRENT, as it may
not be defined in /etc/make.conf.

Submitted by:	dim
Feature safe:	yes
2012-10-18 16:02:29 +00:00
Bryan Drewery
138760a2b8 - Update ZSH completions with pkgng support [1]
- Enable the PKGNG patch by default if WITH_PKGNG
  is defined.

Submitted by:	ume [1]
Feature safe:	yes
2012-10-16 03:00:00 +00:00
Bryan Drewery
395142568b - Add ports-mgmt/pkg as a RUN_DEPENDS if enabling pkgng support
- Add UPDATING entry and pkg-message to assist in converting

Feature safe:	yes
2012-10-15 16:14:35 +00:00
Bryan Drewery
c3b5b180ed - Rename PKGNG option to PKGNGPATCH to fix
this port confusing bsd.pkgng.mk into thinking
  that WITH_PKGNG is defined and pkg(8) shoul be
  used to register.

Pointyhat to:	bdrewery
Feature safe:	yes
2012-10-15 15:50:21 +00:00
Bryan Drewery
300c0a9c56 - Add backup non-https mirror
- Add PKGNG option to apply pkgng support patch. This will
  be fully integrated upstream in the next version. This
  functionality is only enabled when WITH_PKGNG is defined
  in make.conf (or a recent CURRENT by default, see
  UPDATING 20121010). Due to the compat OPTION handling,
  defining WITH_PKGNG will also apply the patch by default.
  The pkgng patch is contributed by avilla@

Feature safe:	yes
2012-10-15 06:10:44 +00:00
Bryan Drewery
7821cd7798 - Move to new home, http://github.com/portmaster
- Take maintainership
- Convert to new options framework
- Use USE_GITHUB for fetching
- Add DISTNAME to avoid conflict with existing distfile as
  the checksum of the distfile has changed now that it is
  no longer modified for release.
- Remove use of bsd.port.pre.mk
2012-10-10 13:03:04 +00:00
Carlo Strub
5630f5f09c Add a temporary mirror 2012-10-08 11:22:10 +00:00
Doug Barton
deda664425 Throw my ports back in the pool, and make my intentions clear for the
various ports that I've created.

I bid fond fare well
A chapter closes for me
What opens for you?
2012-10-08 10:38:47 +00:00
Doug Barton
6e5b73e7b1 Fix the problem of background fetches hanging forever when the background
process to read the distinfo files encounters a fatal error.
2012-10-01 08:40:16 +00:00
Doug Barton
22aca7c98c Update to 3.13.13:
Minor improvements:
===================
* Improve messages for processing of dependent ports when -r
* If there is an installed version, always print that message, not just
  when we're in the parent
* Optimize determination of $new_port:
 - When first set, let it be global
 - Use a function to incorporate/optimize the various tests from the
   2 different places that it was being set
* Use a more robust method of determining portdir from $PWD. This also
  works for bare 'portmaster' with no arguments now, if you're in a port
  directory.
* Various additional code cleanups

Bug fix:
========
Do read_distinfos() in the background for multiport() too, oops
2012-07-24 20:48:17 +00:00
Doug Barton
323e0ff2eb Update to version 3.13.1
Minor fixes/improvements
========================
* Turns out there are a non-zero number of distinfo files that have SIZE
  listed first, so in the code that parses them for the data to put into
  /var/db/pkg/$port/distfiles, handle this situation gracefully.

* If we trap while working on a child port do not remove that child from
  the PM_NEEDS_UPDATE list so that when it gets printed in the parent
  that child is still on the list.

* Use the count of total ports as $num_of_deps for -Faf

* For -av, add num_{roots|trunks|branches|leaves} values to the headers

* In multiport(), decrement the number of ports to work on and print a -v
  message if we have already seen a port in the worklist as a dependency
  of another port in the list.

* Many other minor code cleanups

Performance enhancement
=======================
* In read_distinfos*() use while read instead of grep. Avoids the fork
  and reduces the total time for building the list(s) of distfiles by 25%
2012-07-17 07:38:27 +00:00
Doug Barton
f428599ca5 Upgrade to version 3.13
Major updates/fixes to the distfile handling code
=================================================
* Make all parts of the code SUBDIR-safe (most were already)
  - Fix a few places where the relativity of the cwd was not respected,
    most often resulting in files not being deleted that should be
* Move the storage of the distfile info back to /var/db/pkg where it
  should have been all along. Mostly for correctness, but also to deal
  with the problem of non-UNIQUENAMEs causing the wrong files to be
  deleted with -d.
* Clean up the old /var/db/ports/*/distfiles files after reading them,
  and delete the directory if it's empty. Since we are doing this
  unconditionally now, there is no longer a need for delete_dist_list().
  The new ones will live and die with the rest of the package directory.
* Update some of the messages printed out for distfile-related things
  to make it more clear what's going on.
* Check DI_FILES to see if the distfile could be valid for another port
  in more places, so add a function to deal with the common ones.
* When checking DI_FILES, anchor the grep pattern with a ^ to
  avoid false positives

Other code changes
==================
* Make the whitespace more consistent
* Various minor improvements, mostly to avoid unnecessary forking

UI Change
=========
* When using -i and there is an +IGNOREME file, the default should be no
2012-07-07 12:16:20 +00:00
Doug Barton
b3b3c80e67 Minor improvements
==================
* Restore the line from -av that prints each port as we work on it.
* Print more useful information about ports that don't have distfiles,
  or distfiles we're skipping due to duplicates when -F (especially
  with -a).

Bug fixes
=========
* Consolidate all writing to the IPC_SAVE file into safe_exit()
  so that it always gets called. Also, zero out the file after
  reading it so that a parent process doesn't inadvertently
  read stale data during a trap (unlikely, but not impossible).
2012-06-26 01:51:19 +00:00
Doug Barton
f18b7d0bbb Upgrade to 3.12.1, removes pgrep since it's not safe to use on older
versions of FreeBSD
2012-06-15 06:10:18 +00:00
Doug Barton
7fb2b1acb3 New Features
============
Print the same progress update that goes to the term title in-line,
and apply various improvements to that code.

Move 'make clean' to the background. There is no point waiting around
for it to finish. In the case of very large work directories this may
cause some I/O contention during the unpacking of the next port to
build, but in most cases this should be lost in the noise.

Other Improvements
==================
Speed up the determination of WRKDIRPREFIX, and do not bother looking
for empty directories if we exited abnormally.

Add code to detect dependency loops created by moving part of a port
into another port, and CONFLICT'ing on previous versions of that port
(ala textproc/p5-XML-SAX -> p5-XML-SAX-Base). When a loop is detected
suggest that the user try pkg_updating.

Bug Fixes
=========
Improve error handling for mktemp

Improve handling of abnormal exits (such as ^C, failed port, etc.),
especially when the first exit happens in a child process.

If the second argument to -o is something that is completely non-existent,
report in the error message what the user typed on the command line.
Reported by:	avilla

In clean_build_only_list() remove ports that are already installed
when using --delete-build-only to prevent them from being spuriously
removed.
Reported by:	avilla
2012-06-13 11:39:23 +00:00
Doug Barton
d8dcc077e7 Fix plist for bash completion file. Bump PORTREVISION for it as well.
Submitted by:	sunpoet
2012-01-24 09:46:18 +00:00
Doug Barton
7d6ad43b14 Move the Bash completion file to ${PREFIX}/etc/bash_completion.d
Bump PORTREVISION for the WITH_BASH case

While here, remove the license info
2012-01-20 10:19:00 +00:00
Doug Barton
3e80fc4345 New Features
============
1. Add a feature to allow users to list files that should be
   preserved across upgrades.

Various Improvements
====================
1. Add a verbose message for cleaning WRKDIRPREFIX

2. Improve the handling of the -F option with packages, especially with
   --packages-only:

 * In update_port() do better at saying what we're launching a child to do
 * In post_first_pass() make clear that we are fetch'ing, not building,
   installing, etc.
 * In multiport() call check_fetch_only when we're done
 * In the main body add fetch'ed ports to the CUR_DEPS list so that they
   are only fetched once.

3. Various typo fixes for the man page.

Bug Fixes
=========
1. If an update fails in a child port the parent needs to source the
   $IPC_SAVE file before it bails out to make sure that various lists are
   updated in the parent.  This is particularly important for the list(s)
   of work already completed, and especially to update PM_NEEDS_UPDATE for
   the message of how to resume from the point of failure.

2. For multiple -r, don't add a port to the list of dependents to rebuild
   if it was itself specified as a -r port.

3. In parent_exit() run the code to kill background processes if we're
   called with a non-zero exit code.  That will trigger it (for example)
   where the user answers no to the confirmation prompt and is either
   using -D, or the generation of the list of valid distfiles did not
   complete.

4. Until I can revamp the way dependencies are tracked, include all 3
   forms of CONFLICTS to make sure we catch alternates.
2011-12-13 07:47:21 +00:00
Doug Barton
d2d4481f06 Remove no-longer relevant comment 2011-10-01 19:46:45 +00:00
Doug Barton
0cc6561198 New Features
============
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]
2011-09-12 06:19:07 +00:00
Doug Barton
262ff9f4a6 Update to 3.9.1, a minor bugfix version:
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]
2011-06-08 06:08:36 +00:00
Doug Barton
362cb389be New Features:
=============

* 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
2011-05-02 07:33:34 +00:00
Doug Barton
ea6f6d9c52 Clean up zsh-related directories if the zsh completions are included
PR:		ports/156651
Submitted by:	ohauer
2011-04-25 20:26:19 +00:00
Doug Barton
20fb60d4b0 Release version 3.8:
* 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.
2011-04-15 22:56:15 +00:00
Doug Barton
e07527a808 New Features:
* 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
2011-04-11 06:19:59 +00:00
Doug Barton
7f8d550961 Remove FreeBSD 6.x specific comment 2011-04-11 06:18:21 +00:00