Changeset 37509


Ignore:
Timestamp:
Jun 10, 2008, 2:48:05 PM (12 years ago)
Author:
raimue@…
Message:

Merged revisions 34872-37508 via svnmerge from
https://svn.macports.org/repository/macports/trunk/base

........

r34874 | raimue@… | 2008-03-10 01:04:09 +0100 (Mon, 10 Mar 2008) | 4 lines


port1.0/portlivecheck.tcl:
Fix livecheck for ports using customized ${livecheck.version}.
Thanks to Simon Ruderich for the report.

........

r34875 | eridius@… | 2008-03-10 05:50:45 +0100 (Mon, 10 Mar 2008) | 2 lines


Add support for fetch.type git (Fixes #14232)

........

r34885 | raimue@… | 2008-03-10 14:30:18 +0100 (Mon, 10 Mar 2008) | 3 lines


ChangeLog:
New fetch.type git

........

r34886 | eridius@… | 2008-03-10 14:38:11 +0100 (Mon, 10 Mar 2008) | 2 lines


Add reference to #14232 to the ChangeLog

........

r34887 | afb@… | 2008-03-10 14:46:16 +0100 (Mon, 10 Mar 2008) | 2 lines


update changelog, #13968

........

r34901 | raimue@… | 2008-03-10 17:24:07 +0100 (Mon, 10 Mar 2008) | 3 lines


port1.0/portmain.tcl:
Add a variant description for the built-in +universal

........

r34977 | eridius@… | 2008-03-13 15:13:51 +0100 (Thu, 13 Mar 2008) | 2 lines


Add new --recursive option to port uninstall to uninstall dependents (#14637)

........

r35030 | ryandesign@… | 2008-03-15 00:49:07 +0100 (Sat, 15 Mar 2008) | 2 lines


fix typos: "the the" => "the"

........

r35042 | eridius@… | 2008-03-15 15:30:32 +0100 (Sat, 15 Mar 2008) | 2 lines


Fix recursive uninstall for case where multiple branches of dep tree contain the same port

........

r35103 | raimue@… | 2008-03-17 15:33:01 +0100 (Mon, 17 Mar 2008) | 4 lines


HACKING:

  • Replace 'filetype' by shorter 'ft' in vim modeline
  • Remove trailing whitespace

........

r35138 | afb@… | 2008-03-18 09:57:09 +0100 (Tue, 18 Mar 2008) | 2 lines


put applications_dir and frameworks_dir in global variables

........

r35139 | afb@… | 2008-03-18 10:04:27 +0100 (Tue, 18 Mar 2008) | 2 lines


mention tcldoc/tcldox in changelog

........

r35140 | afb@… | 2008-03-18 10:12:53 +0100 (Tue, 18 Mar 2008) | 2 lines


mention default MDT in changelog

........

r35171 | afb@… | 2008-03-19 09:59:44 +0100 (Wed, 19 Mar 2008) | 2 lines


use applications_dir and frameworks_dir instead of hardcoded paths

........

r35195 | afb@… | 2008-03-20 10:22:41 +0100 (Thu, 20 Mar 2008) | 2 lines


fix typo in workaround (interactive installs are evil)

........

r35196 | afb@… | 2008-03-20 10:24:39 +0100 (Thu, 20 Mar 2008) | 2 lines


use explicit external tclthread/sqlite3/gnuobjc/gnustep for configure

........

r35211 | wsiegrist@… | 2008-03-21 01:35:36 +0100 (Fri, 21 Mar 2008) | 2 lines


Use proper mail headers. Also cleaned up some variable case and layout weirdness

........

r35249 | wsiegrist@… | 2008-03-22 06:22:09 +0100 (Sat, 22 Mar 2008) | 2 lines


Add distfiles command for listing each distfile for a given port spec and the list of URLs that fetch will use. This will eventually be used for distfile mirroring.

........

r35256 | wsiegrist@… | 2008-03-22 23:18:17 +0100 (Sat, 22 Mar 2008) | 2 lines


added checksum display and an early exit when master_sites is not provided

........

r35257 | wsiegrist@… | 2008-03-22 23:31:11 +0100 (Sat, 22 Mar 2008) | 2 lines


added distfiles to port manpage

........

r35279 | epimenov@… | 2008-03-23 21:46:32 +0100 (Sun, 23 Mar 2008) | 5 lines


Tracelib


1) I allow /Developer, not only /Developer/Headers. Because Xcode 3.1 (aka iPhone SDK) uses a lot of stuff here. It can't compile without /Developer/Platform/MacOSX.platform for example. Also SDK redirection will not work with Xcode 3.1. Also it introduce ablitity to change /Developer folder, so we should handle this somehow.
2) Also this commit fixes issue with recv overflow. If you run xcodebuild with old rules you'll see a lot of sandbox viloations (xcode scans for plugins, platforms and so on), and you'll see malformed commands. It happens when tracelib sends more than 1024 bytes of data. Now it properly handled.

........

r35299 | wsiegrist@… | 2008-03-24 23:50:32 +0100 (Mon, 24 Mar 2008) | 2 lines


Add distfiles target to port. This should have gone in with r35249.

........

r35474 | wsiegrist@… | 2008-03-29 02:33:33 +0100 (Sat, 29 Mar 2008) | 3 lines


Made checkouts non-recursive since lint doesnt rely on actual files/ contents.
Added logging to help debug things server side.

........

r35476 | wsiegrist@… | 2008-03-29 02:48:25 +0100 (Sat, 29 Mar 2008) | 2 lines


Emails now go to both committer and maintainers

........

r35606 | jmr@… | 2008-03-31 03:12:12 +0200 (Mon, 31 Mar 2008) | 2 lines


sort the list of mirror groups like the comment says

........

r35630 | raimue@… | 2008-04-01 00:13:05 +0200 (Tue, 01 Apr 2008) | 3 lines


macports1.0/macports.tcl:
Error out if syncing a source failed, but continue instead of returning an error code

........

r35643 | jmr@… | 2008-04-01 13:05:03 +0200 (Tue, 01 Apr 2008) | 2 lines


Fix or remove broken mirrors.

........

r35644 | jmr@… | 2008-04-01 13:51:46 +0200 (Tue, 01 Apr 2008) | 2 lines


List master download sites last.

........

r35647 | raimue@… | 2008-04-01 15:09:48 +0200 (Tue, 01 Apr 2008) | 5 lines


macports1.0/macports.tcl:
Implement fetching of daily snapshot tarballs as an alternative to rsync.
Just add the following line to sources.conf instead of rsync:
http://macports.org/files/ports.tar.gz

........

r35648 | raimue@… | 2008-04-01 15:48:23 +0200 (Tue, 01 Apr 2008) | 4 lines


port/port.tcl, macports/macports.tcl:

  • Pass optional $optionslist to mportsync
  • Only sync daily snapshot if the tarball is newer than the local ports directory

........

r35649 | raimue@… | 2008-04-01 15:52:20 +0200 (Tue, 01 Apr 2008) | 3 lines


ChangeLog:
Fetching of daily snapshot tarballs of the ports tree as an alternative to rsync

........

r35654 | jmr@… | 2008-04-01 18:05:15 +0200 (Tue, 01 Apr 2008) | 2 lines


Add some new mirror sites.

........

r35675 | raimue@… | 2008-04-02 01:27:08 +0200 (Wed, 02 Apr 2008) | 3 lines


port1.0/portutil.tcl:
tracemode: always allow gzip in destroot phase, as it is used to compress man pages

........

r35714 | jmr@… | 2008-04-03 23:14:14 +0200 (Thu, 03 Apr 2008) | 2 lines


fix typo

........

r35748 | jmr@… | 2008-04-04 21:58:24 +0200 (Fri, 04 Apr 2008) | 2 lines


Try mirrors in ascending order of ping time in fetch.

........

r35749 | jmr@… | 2008-04-04 22:09:59 +0200 (Fri, 04 Apr 2008) | 2 lines


Add full modeline to portfetch.tcl.

........

r35750 | jmr@… | 2008-04-04 22:20:05 +0200 (Fri, 04 Apr 2008) | 2 lines


ChangeLog: fetch prefers mirrors with lower ping times.

........

r35772 | eridius@… | 2008-04-05 20:39:49 +0200 (Sat, 05 Apr 2008) | 2 lines


Get rid of all usage of _cd and [exec find ...] in ruby-1.0.tcl

........

r35773 | eridius@… | 2008-04-05 21:00:12 +0200 (Sat, 05 Apr 2008) | 2 lines


ruby.setup now takes type "fetch" for just fetch/extract. Thanks to Mr_Bond for the patch

........

r35790 | raimue@… | 2008-04-06 21:00:49 +0200 (Sun, 06 Apr 2008) | 4 lines


port1.0/portutil.tcl:
Avoid parsing Portfiles multiple times in recursive_collect_deps.
This makes tracemode a lot faster if there are many deps.

........

r35806 | raimue@… | 2008-04-07 01:40:58 +0200 (Mon, 07 Apr 2008) | 7 lines


port1.0/portfetch.tcl:
Move checkfiles from fetch_init to fetch_start:

  • Assemble fetch URLs only when needed
  • Do not ping servers if not actually fetching


Reverted in r36734.

........

r35807 | raimue@… | 2008-04-07 01:43:32 +0200 (Mon, 07 Apr 2008) | 4 lines


ChangeLog:
Add r35806,

  • Do not ping servers if not actually fetching

........

r35808 | jmr@… | 2008-04-07 02:26:39 +0200 (Mon, 07 Apr 2008) | 2 lines


Only call sortsites when we actually need to fetch something.

........

r35809 | raimue@… | 2008-04-07 03:26:42 +0200 (Mon, 07 Apr 2008) | 3 lines


ChangeLog:
Another ping related change

........

r35812 | raimue@… | 2008-04-07 04:09:22 +0200 (Mon, 07 Apr 2008) | 3 lines


doc/Makefile:
Compress man pages before installation, see #14668.

........

r35929 | jmr@… | 2008-04-10 10:29:46 +0200 (Thu, 10 Apr 2008) | 2 lines


Account for the space between words in length calculation when wrapping lines.

........

r35970 | afb@… | 2008-04-11 23:33:16 +0200 (Fri, 11 Apr 2008) | 2 lines


add missing global variable declaration

........

r35975 | jmr@… | 2008-04-12 08:17:27 +0200 (Sat, 12 Apr 2008) | 2 lines


remove keywords property from binary file

........

r36002 | jkh@… | 2008-04-14 06:07:30 +0200 (Mon, 14 Apr 2008) | 3 lines


Pick a reasonable default for people without EDITOR set, following existing
precedent for editor escapes.

........

r36127 | markd@… | 2008-04-19 03:46:17 +0200 (Sat, 19 Apr 2008) | 2 lines


Add comments for binpath.

........

r36160 | raimue@… | 2008-04-20 03:47:23 +0200 (Sun, 20 Apr 2008) | 3 lines


registry1.0/portuninstall.tcl:
Rename --recursive to --follow-dependents

........

r36285 | eridius@… | 2008-04-25 16:46:00 +0200 (Fri, 25 Apr 2008) | 2 lines


Make the auto-lint script catch errors too, not just warnings

........

r36379 | raimue@… | 2008-04-29 05:29:37 +0200 (Tue, 29 Apr 2008) | 3 lines


base/src:
Adapting $portname @$version notation

........

r36500 | raimue@… | 2008-05-04 19:09:55 +0200 (Sun, 04 May 2008) | 4 lines


cregistry/registry.c:
Fix build error. dirname(3) might change the passed argument, therefore we need
to strdup() the const char *path first.

........

r36501 | raimue@… | 2008-05-04 20:18:13 +0200 (Sun, 04 May 2008) | 3 lines


base/src:
Addition to r36379, Adapting $portname @$version notation

........

r36545 | jmr@… | 2008-05-06 07:23:54 +0200 (Tue, 06 May 2008) | 2 lines


_libtest: add /usr/X11/lib to search_path in case the /usr/X11R6 link goes away in future

........

r36640 | afb@… | 2008-05-09 09:00:28 +0200 (Fri, 09 May 2008) | 2 lines


always edit scripts, just in case user changed their mind and reconfigured

........

r36648 | jmr@… | 2008-05-09 11:43:47 +0200 (Fri, 09 May 2008) | 2 lines


mportdepends: make sure we always error out on nonexistent ports

........

r36656 | jmr@… | 2008-05-09 18:02:15 +0200 (Fri, 09 May 2008) | 2 lines


ruby portgroup: make doc install in post-destroot actually work

........

r36679 | jmr@… | 2008-05-11 10:18:24 +0200 (Sun, 11 May 2008) | 4 lines


fetch_init, archive_init, unarchive_init:
Avoid creating too many subdirectory levels when these procedures are called
more than once. Fix for #11971.

........

r36687 | jmr@… | 2008-05-12 00:01:57 +0200 (Mon, 12 May 2008) | 2 lines


back out the fetch part of r36679, as it breaks other phases

........

r36688 | jmr@… | 2008-05-12 00:37:38 +0200 (Mon, 12 May 2008) | 2 lines


simpler, working fix for #11971.

........

r36708 | ryandesign@… | 2008-05-13 05:27:25 +0200 (Tue, 13 May 2008) | 2 lines


Allow distfiles to be disk images with new "use_dmg yes" port option; #13509.

........

r36709 | ryandesign@… | 2008-05-13 05:28:43 +0200 (Tue, 13 May 2008) | 2 lines


ChangeLog: whitespace changes only

........

r36710 | ryandesign@… | 2008-05-13 05:29:24 +0200 (Tue, 13 May 2008) | 2 lines


ChangeLog: whitespace changes only

........

r36711 | ryandesign@… | 2008-05-13 05:34:13 +0200 (Tue, 13 May 2008) | 4 lines


ChangeLog: add info about 'use_dmg yes' option from r36708; #13509


The change to PortIndex2MySQL.tcl was not intended and was reverted in r36712.

........

r36712 | ryandesign@… | 2008-05-13 05:35:20 +0200 (Tue, 13 May 2008) | 2 lines


PortIndex2MySQL.tcl: revert change inadvertently committed in r36711

........

r36719 | afb@… | 2008-05-13 13:04:28 +0200 (Tue, 13 May 2008) | 2 lines


add unsetenv command, for working around bugs in Leopard tcl

........

r36722 | afb@… | 2008-05-13 13:21:41 +0200 (Tue, 13 May 2008) | 2 lines


explicitly unset all env vars (an extra time), to work around Leopard Tcl bugs (#13930 and friends)

........

r36723 | afb@… | 2008-05-13 13:32:11 +0200 (Tue, 13 May 2008) | 2 lines


add patch needed for Leopard, to the included tclthread (#13495)

........

r36724 | afb@… | 2008-05-13 13:34:05 +0200 (Tue, 13 May 2008) | 2 lines


update changelog, #13930 #13495

........

r36728 | afb@… | 2008-05-13 13:47:16 +0200 (Tue, 13 May 2008) | 2 lines


test the env CC problem explicitly

........

r36734 | raimue@… | 2008-05-13 15:41:48 +0200 (Tue, 13 May 2008) | 4 lines


port1.0/portfetch.tcl:
Revert r35806. The checkfiles proc must always be run as the checksum phase depends on
global variables from there.

........

r36735 | jmr@… | 2008-05-13 15:43:23 +0200 (Tue, 13 May 2008) | 3 lines


In image mode, don't count dependencies as being satisfied when the satisfying
port is not active. Fix for #7361.

........

r36736 | markd@… | 2008-05-13 21:15:11 +0200 (Tue, 13 May 2008) | 2 lines


Fix hardcoded paths in binpath comments.

........

r36745 | jmr@… | 2008-05-14 05:22:56 +0200 (Wed, 14 May 2008) | 2 lines


Prevent duplicate dep_map entries from being inserted. Fix for #8763.

........

r36747 | jmr@… | 2008-05-14 06:53:20 +0200 (Wed, 14 May 2008) | 3 lines


uninstall: allow unforced removal of a port with dependents, iff it is
inactive and there is at least one other version of the same port installed.

........

r36750 | jmr@… | 2008-05-14 07:17:05 +0200 (Wed, 14 May 2008) | 2 lines


update changelog

........

r36762 | jmr@… | 2008-05-14 10:48:55 +0200 (Wed, 14 May 2008) | 4 lines


upgrade: if the latest installed version of a port is not active, deactivate
the currently active version, if any, before trying to activate the latest
version. Fix for #12013.

........

r36764 | jmr@… | 2008-05-14 11:11:07 +0200 (Wed, 14 May 2008) | 3 lines


Reworked the handling of the default universal variant. We can now avoid
adding it at all when we know it won't work. Fix for #12170.

........

r36765 | ryandesign@… | 2008-05-14 11:36:20 +0200 (Wed, 14 May 2008) | 2 lines


Fix comment: universal support requires the universal SDK be installed

........

r36770 | afb@… | 2008-05-14 13:08:23 +0200 (Wed, 14 May 2008) | 2 lines


only edit when reconfigured, always is not needed

........

r36771 | jmr@… | 2008-05-14 13:34:23 +0200 (Wed, 14 May 2008) | 2 lines


update changelog

........

r36773 | afb@… | 2008-05-14 13:49:20 +0200 (Wed, 14 May 2008) | 2 lines


include epoch in archive

........

r36774 | afb@… | 2008-05-14 13:57:44 +0200 (Wed, 14 May 2008) | 2 lines


create destroot for archive +JUNK, even if there are no files

........

r36800 | raimue@… | 2008-05-15 02:36:20 +0200 (Thu, 15 May 2008) | 4 lines


port1.0/portutil.tcl:
Put checks for universal SDK in the default +universal variant into a pre-fetch
block to avoid breaking commands like port info +universal.

........

r36801 | raimue@… | 2008-05-15 02:55:33 +0200 (Thu, 15 May 2008) | 3 lines


doc/macports.conf.in:
Be more clear about the startupitem_type option.

........

r36880 | jmr@… | 2008-05-17 08:25:29 +0200 (Sat, 17 May 2008) | 2 lines


add an xorg mirror group

........

r36890 | afb@… | 2008-05-17 10:38:01 +0200 (Sat, 17 May 2008) | 2 lines


don't include build.nice and build.jobs in destroot.cmd, only in the build.cmd (#15295)

........

r36904 | afb@… | 2008-05-18 10:11:44 +0200 (Sun, 18 May 2008) | 2 lines


update changelog for r36890

........

r36905 | afb@… | 2008-05-18 10:28:46 +0200 (Sun, 18 May 2008) | 2 lines


add fetch.remote_time for curl --remote-time (#12629)

........

r36907 | nox@… | 2008-05-18 14:00:46 +0200 (Sun, 18 May 2008) | 2 lines


merge procedure now uses configure.universal_archs

........

r36909 | afb@… | 2008-05-18 18:50:36 +0200 (Sun, 18 May 2008) | 2 lines


update documentation, from r36890

........

r36913 | afb@… | 2008-05-18 20:32:16 +0200 (Sun, 18 May 2008) | 2 lines


better fix for #15295, restore build.cmd to sanity

........

r36914 | afb@… | 2008-05-18 20:35:37 +0200 (Sun, 18 May 2008) | 2 lines


restore previous destroot.cmd, undo build.cmd workaround

........

r36915 | afb@… | 2008-05-18 20:47:10 +0200 (Sun, 18 May 2008) | 2 lines


oops, nice was applied to cd instead of make

........

r36959 | jmr@… | 2008-05-21 12:27:53 +0200 (Wed, 21 May 2008) | 2 lines


Add a CTAN mirror group.

........

r37023 | afb@… | 2008-05-23 11:59:26 +0200 (Fri, 23 May 2008) | 2 lines


sqlite3-threads port was removed, sqlite3 port threads are enabled by default

........

r37046 | jmr@… | 2008-05-24 16:24:54 +0200 (Sat, 24 May 2008) | 6 lines


upgrade: when following dependents (-R), only upgrade the dependents of the
specified port, not those of all its dependencies as well. Also use the
depscache for dependents as well as dependencies. These changes reduce the
amount of work done by 'port -R upgrade', by an enormous amount in some cases.
Fixes #10827.

........

r37047 | jmr@… | 2008-05-24 16:41:50 +0200 (Sat, 24 May 2008) | 2 lines


Update changelog for r37046.

........

r37070 | afb@… | 2008-05-25 11:09:08 +0200 (Sun, 25 May 2008) | 2 lines


need to look at build.cmd, not default getmaketype (#15426)

........

r37118 | raimue@… | 2008-05-27 00:37:25 +0200 (Tue, 27 May 2008) | 4 lines


port/port.tcl:
In opUnion: add items only once to the result as it was meant to be.
Fixes #15433.

........

r37119 | raimue@… | 2008-05-27 01:59:56 +0200 (Tue, 27 May 2008) | 5 lines


port/port.tcl:
port search looks now in name, description and long_description for the search
pattern and prints the list sorted.
Fixes #15434.

........

r37120 | raimue@… | 2008-05-27 02:05:08 +0200 (Tue, 27 May 2008) | 2 lines


Update ChangeLog for r15434

........

r37121 | raimue@… | 2008-05-27 02:12:46 +0200 (Tue, 27 May 2008) | 3 lines


port/port.tcl:
Fix number of ports found in port search

........

r37122 | raimue@… | 2008-05-27 02:16:34 +0200 (Tue, 27 May 2008) | 2 lines


Update ChangeLog for r37121

........

r37217 | jmr@… | 2008-05-30 14:12:21 +0200 (Fri, 30 May 2008) | 2 lines


Add our new distfile mirror (distfiles.macports.org) and automatically append it to master_sites.

........

r37218 | jmr@… | 2008-05-30 14:21:32 +0200 (Fri, 30 May 2008) | 2 lines


update changelog for r37217

........

r37231 | raimue@… | 2008-05-31 19:28:34 +0200 (Sat, 31 May 2008) | 3 lines


port/port.tcl:
Add a list of arguments the commands accept

........

r37232 | raimue@… | 2008-05-31 19:33:00 +0200 (Sat, 31 May 2008) | 3 lines


port/port.tcl:
Check if an action is valid before parsing its arguments

........

r37233 | raimue@… | 2008-05-31 20:11:45 +0200 (Sat, 31 May 2008) | 3 lines


port/port.tcl:
Remove unused variable

........

r37238 | raimue@… | 2008-05-31 22:03:34 +0200 (Sat, 31 May 2008) | 3 lines


port/port.tcl:
Only expand portlist when needed

........

r37240 | raimue@… | 2008-05-31 22:20:27 +0200 (Sat, 31 May 2008) | 3 lines


port/port.tcl:
If the 'current' port does not expand to any port, return an error

........

r37241 | raimue@… | 2008-05-31 22:36:51 +0200 (Sat, 31 May 2008) | 7 lines


port/port.tcl:
Do some half-intelligent string matching for port search.
If the specified search string already contained an *, use it as direct glob
expression, otherwise add * around the search string.


As an example see how the output from 'port search less' and 'port search less*' differs.

........

r37242 | raimue@… | 2008-05-31 23:12:13 +0200 (Sat, 31 May 2008) | 3 lines


port/port.tcl:
Output a nice usage list of arguments on port help <action>

........

r37243 | raimue@… | 2008-05-31 23:57:15 +0200 (Sat, 31 May 2008) | 3 lines


port/port-help.tcl:
More helpful action desriptions

........

r37244 | raimue@… | 2008-06-01 01:07:53 +0200 (Sun, 01 Jun 2008) | 3 lines


port/port.tcl:
Correct the list of arguments for the commands and sort each of them

........

r37247 | raimue@… | 2008-06-01 04:53:03 +0200 (Sun, 01 Jun 2008) | 3 lines


port/port.tcl:
Enable multiple arguments for --options

........

r37248 | raimue@… | 2008-06-01 04:59:15 +0200 (Sun, 01 Jun 2008) | 4 lines


port/port.tcl:
Re-add --info and --index for port info which got lost in previous attempts to
complete the list

........

r37249 | raimue@… | 2008-06-01 06:20:31 +0200 (Sun, 01 Jun 2008) | 3 lines


port/port.tcl:
Rework the previous action array

........

r37251 | raimue@… | 2008-06-01 06:52:50 +0200 (Sun, 01 Jun 2008) | 3 lines


port/port.tcl:
Remove hardcoded values and use action_args_const instead

........

r37253 | raimue@… | 2008-06-01 07:12:23 +0200 (Sun, 01 Jun 2008) | 4 lines


port/port.tcl:
port usage <action> gives the basic usage as in port help <action> on the top
Removed hardcoded values and use action_args_const instead

........

r37254 | raimue@… | 2008-06-01 07:22:03 +0200 (Sun, 01 Jun 2008) | 3 lines


port/port.tcl:
Fix output on occurrences of proc wrap

........

r37255 | jmr@… | 2008-06-01 08:27:45 +0200 (Sun, 01 Jun 2008) | 2 lines


The distfile mirror does in fact have patchfiles as well, so append it to patch_sites.

........

r37264 | raimue@… | 2008-06-02 01:09:49 +0200 (Mon, 02 Jun 2008) | 3 lines


test/Makefile:
Add missing definition of $(PWD)

........

r37265 | raimue@… | 2008-06-02 01:11:10 +0200 (Mon, 02 Jun 2008) | 4 lines


tests/Makefile:
test-port.conf was renamed to test-macports.conf in r25535,
but was not changed in the Makefile

........

r37266 | raimue@… | 2008-06-02 01:13:04 +0200 (Mon, 02 Jun 2008) | 3 lines


test/test/cvs-and-patchfiles:
Use a working CVS server for the test

........

r37267 | raimue@… | 2008-06-02 01:21:39 +0200 (Mon, 02 Jun 2008) | 4 lines


tests/:
case-insensitive-deactivate can now be invoked from the test framework:

sudo make test TESTS=case-insensitive-deactivate

........

r37268 | raimue@… | 2008-06-02 01:27:34 +0200 (Mon, 02 Jun 2008) | 3 lines


port/port.tcl:
Errors should go to stderr

........

r37269 | raimue@… | 2008-06-02 01:34:43 +0200 (Mon, 02 Jun 2008) | 5 lines


port/port.tcl:
Output an empty field instead of nothing in port info if the requested
field is not specified for the port. This makes is easier to parse the output,
if needed.

........

r37270 | raimue@… | 2008-06-02 02:05:20 +0200 (Mon, 02 Jun 2008) | 3 lines


tests/test/dependencies_c:
Fix dependency check, new @version notation

........

r37271 | raimue@… | 2008-06-02 02:06:59 +0200 (Mon, 02 Jun 2008) | 4 lines


tests/test/universal{,-2}:
Use port info --variants to check for the variant instead of the whole info
output. Should be more error prone if we make further changes.

........

r37290 | raimue@… | 2008-06-02 17:05:26 +0200 (Mon, 02 Jun 2008) | 5 lines


port/port.tcl:
Add a new option --line to port search.
This works a little bit like the old output of port search in 1.6.1, but uses
tabs to separate fields instead of hardcoded spaces (easy parsing with awk or similar).

........

r37314 | raimue@… | 2008-06-03 00:10:22 +0200 (Tue, 03 Jun 2008) | 3 lines


port/port.tcl:
Make port mirror --new available again.

........

r37315 | raimue@… | 2008-06-03 00:45:18 +0200 (Tue, 03 Jun 2008) | 2 lines


Update the ChangeLog

........

r37316 | raimue@… | 2008-06-03 01:37:43 +0200 (Tue, 03 Jun 2008) | 5 lines


port/port.tcl, macports1.0/macports.tcl:
Use current terminal size instead of a hardcoded width. This uses the COLUMNS
environment variable which therefore should be preserved by the env cleanup in
macports.tcl. See #15488.

........

r37336 | jmr@… | 2008-06-03 21:06:00 +0200 (Tue, 03 Jun 2008) | 3 lines


Python portgroups: fix incorrect python.include paths, and add a new variable
python.libdir (#15226)

........

r37349 | jmr@… | 2008-06-04 10:32:15 +0200 (Wed, 04 Jun 2008) | 8 lines


Try to be case-insensitive and case-preserving with port names as much as
possible. Match names case-insensitively in the registry (previously this was
not done when running on a case-sensitive FS), but return the name with its
correct case. Additionally, make sure to use the correctly-cased name whenever
possible, where previously the name as entered by the user was used. This
changeset fixes the bug where giving the port name with incorrect case when
deactivating would fail to delete the port's files from $prefix (#11759).

........

r37373 | raimue@… | 2008-06-05 02:08:35 +0200 (Thu, 05 Jun 2008) | 4 lines


port/port.tcl:
Add new option --depends to port info,
which is a shorthand for --depends_bin --depends_lib --depends_build

........

r37386 | raimue@… | 2008-06-05 12:31:37 +0200 (Thu, 05 Jun 2008) | 3 lines


port/port.tcl:
port provides was broken by r37238, closes #15515.

........

r37433 | jmr@… | 2008-06-07 17:54:47 +0200 (Sat, 07 Jun 2008) | 7 lines


upgrade: refactor handling of dependencies

  • depscache entries are now added by the callee instead of the caller
  • a 'port:' entry is always added if the port is installed
  • a 'port:' entry in the cache immediately satisfies other depspecs involving that port
  • factored out redundant code for different depends_* types

Fixes #15520.

........

r37442 | jmr@… | 2008-06-08 01:28:20 +0200 (Sun, 08 Jun 2008) | 3 lines


Make uninstalling the old version of a port during upgrade work without -f,
whether due to -u, epoch override, or being in direct mode.

........

r37453 | jmr@… | 2008-06-08 14:39:45 +0200 (Sun, 08 Jun 2008) | 3 lines


Check depends_build before configure phase, and check dependencies before
alll packaging targets. This is a step towards fixing #15161.

........

r37501 | afb@… | 2008-06-10 11:31:54 +0200 (Tue, 10 Jun 2008) | 2 lines


make missing sed extended regexp into a run-time error instead of configure-time

........

r37502 | afb@… | 2008-06-10 11:41:07 +0200 (Tue, 10 Jun 2008) | 2 lines


update changelog, #15577/r37501

........

r37503 | afb@… | 2008-06-10 12:02:33 +0200 (Tue, 10 Jun 2008) | 2 lines


stop abusing command_exec filter/redirect arguments for build nice/jobs, and improve debugging output (#15530)

........

Location:
branches/variant-descs-14482/base
Files:
60 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/variant-descs-14482/base

  • branches/variant-descs-14482/base/ChangeLog

    r34872 r37509  
    66
    77Unreleased:
     8    - Make missing sed extended regexp (for reinplace -E) into a runtime error.
     9      (#15577, afb in r37501)
     10
     11    - More helpful strings for 'port help' (needs more work #15467, raimue)
     12
     13    - Command line options are checked if the command accepts it before
     14      running (raimue)
     15
     16    - We now have a mirror of (almost) all distfiles at distfiles.macports.org,
     17      and it is automatically appended to master_sites (#15456, jmr in r37217)
     18
     19    - port search looks now in name, description and long_description for the
     20      search pattern and prints the list sorted (#15434, raimue in r37119,
     21      r37121)
     22
     23    - Stopped 'port -R upgrade' from processing more ports than it should, and
     24      from processing ports multiple times. (#10827, jmr in r37046)
     25
     26    - Don't include build.nice and build.jobs in destroot.cmd (#15295)
     27
     28    - The default universal variant is no longer added when we know it won't
     29      work. (#12170, jmr in r36764)
     30
     31    - During upgrade, if the latest installed version of a port is not active,
     32      the currently active version (if any) is now deactivated before trying
     33      to activate the latest version. (#12013, jmr in r36762)
     34
     35    - A port with dependents can now be removed without forcing iff it is
     36      inactive and there is at least one other version of the same port
     37      installed (#11501, jmr in r36747)
     38
     39    - Duplicate entries can no longer build up in the dependency map (#8763,
     40      jmr in r36745)
     41
     42    - In image mode, dependencies are no longer treated as being satisfied
     43      when the satisfying port is not active (#7361, jmr in r36735)
     44
     45    - Fixed a bug where upgrade could create too many nested subdirectories
     46      in distpath, archive.destpath and unarchive.srcpath (#11971, jmr in
     47      r36679, r36687, r36688)
     48
     49    - Declaring a dependency on a nonexistent port now always causes an error
     50      (#10768, jmr in r36648)
     51
     52    - Explicitly use unsetenv(3) on all environment variables (#13930)
     53
     54    - Make the included tclthread compile on Leopard if configured (#13495)
     55
     56    - Allow distfiles to be disk images with "use_dmg yes" port option (#13509,
     57      ryandesign in r36708)
     58
     59    - ruby.setup now takes a type 'fetch' to just fetch/extract (eridius in r35773)
     60
     61    - Fetch now prefers mirrors with lower ping times (#14891, jmr in r35748,
     62      r35806, r35808)
     63
     64    - Fetching of daily snapshot tarballs of the ports tree as an alternative to rsync
     65      (raimue in r35647, r35648)
     66
     67    - port uninstall now takes --recursive to uninstall all dependents (#14637, eridius in r34977)
     68
     69    - New fetch.type git (#14232, eridius in r34875)
     70
     71    - fixed "port mdmg" getting block size wrong for the disk image (#13968, afb in r34844)
     72
     73    - always set MACOSX_DEPLOYMENT_TARGET, to avoid bugs with older glibtool (afb in r34541)
     74
    875    - port lint now checks all dependencies so that the ports actually exist (#14380)
    976
     
    1178
    1279    - Overhauled output for port info/deps/dependents/search (raimue in
    13         r34354, r34371, r34391, r34395, r34402, r34420)
     80      r34354, r34371, r34391, r34395, r34402, r34420)
    1481
    1582    - Revert the default +universal MDT/SDK to 10.4/10.4u on Tiger and 10.5/10.5 on Leopard
     
    1784    - port lint shouldn't require variable master_sites for fetch.type != standard (#14377)
    1885
     86    - Add "tcldoc" documentation comments and "tcldox" Doxyfile for doxygen (#12048)
     87
    1988    - Add --pretend and --nosync flags to selfupdate (raimue in r33938, r33939,
    20         r33940, 33941)
     89      r33940, 33941)
    2190
    2291    - Work around autoconf X11 detection bugs on darwin (afb in r33717)
     
    78147      prebinding of binaries, which can be harmful on Tiger and above (#13436, mww in r31786).
    79148
    80     - Add 'gcc-4.2' option to the configure.compiler Portfile command (mww in r31891). 
     149    - Add 'gcc-4.2' option to the configure.compiler Portfile command (mww in r31891).
    81150
    82151    - Flush port(1) output channel after issuing prompt, when readline is not
    83152      available, to ensure prompt is displayed at proper time. (jberry r31338).
    84      
     153
    85154    - readline is now disabled by default, in order to avoid support issues.
    86155      use --enable-readine parameter to configure to enable support for readine.
     
    539608      along with 'move' and 'copy' shorthands for TCL's "file rename/copy" calls (eridius in r22007).
    540609
    541     - Fix a dangerous bug in parsing filenames with spaces in the the 'delete' command, while reworking it
     610    - Fix a dangerous bug in parsing filenames with spaces in the 'delete' command, while reworking it
    542611      to no longer be a plain 'system "rm -rf <path>"' call (eridius in r22007).
    543612
  • branches/variant-descs-14482/base/HACKING

    r31680 r37509  
    4949 *  All source code files SHOULD have the following as the first line of
    5050    the file:
    51        
    52         # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
    53        
     51
     52        # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
     53
    5454    This is a modeline that works for both emacs and vim.
    55    
     55
    5656 *  Portfiles SHOULD use soft tabs at a tabstop of 4, but implementation
    5757    of this is left up to the discretion of the maintainer.
     
    6363
    6464 *  Makefiles MAY use a modeline. The following works for emacs and vim:
    65  
    66         # -*- coding: utf-8; mode: Makefile; tab-width: 8; indent-tabs-mode: t -*- vim:fenc=utf-8:filetype=Makefile:noet:sw=8:ts=8
     65
     66        # -*- coding: utf-8; mode: Makefile; tab-width: 8; indent-tabs-mode: t -*- vim:fenc=utf-8:ft=Makefile:noet:sw=8:ts=8
    6767
    6868 *  All other files (documentation, etc) SHOULD use soft tabs at a tabstop
  • branches/variant-descs-14482/base/aclocal.m4

    r34314 r37509  
    913913                SED_EXT=-r
    914914        else
    915                 AC_MSG_RESULT([no idea])
    916                 AC_MSG_ERROR([cannot determine flag to use for $SED])
     915                AC_MSG_RESULT([not available])
     916                SED_EXT='N/A'
    917917        fi
    918918        AC_SUBST(SED_EXT)
  • branches/variant-descs-14482/base/configure

    r34314 r37509  
    687687CVS
    688688SVN
     689GIT
    689690RSYNC
    690691SED
     
    35953596
    35963597
     3598# Extract the first word of "git", so it can be a program name with args.
     3599set dummy git; ac_word=$2
     3600{ echo "$as_me:$LINENO: checking for $ac_word" >&5
     3601echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
     3602if test "${ac_cv_path_GIT+set}" = set; then
     3603  echo $ECHO_N "(cached) $ECHO_C" >&6
     3604else
     3605  case $GIT in
     3606  [\\/]* | ?:[\\/]*)
     3607  ac_cv_path_GIT="$GIT" # Let the user override the test with a path.
     3608  ;;
     3609  *)
     3610  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     3611for as_dir in $PATH
     3612do
     3613  IFS=$as_save_IFS
     3614  test -z "$as_dir" && as_dir=.
     3615  for ac_exec_ext in '' $ac_executable_extensions; do
     3616  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     3617    ac_cv_path_GIT="$as_dir/$ac_word$ac_exec_ext"
     3618    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     3619    break 2
     3620  fi
     3621done
     3622done
     3623IFS=$as_save_IFS
     3624
     3625  ;;
     3626esac
     3627fi
     3628GIT=$ac_cv_path_GIT
     3629if test -n "$GIT"; then
     3630  { echo "$as_me:$LINENO: result: $GIT" >&5
     3631echo "${ECHO_T}$GIT" >&6; }
     3632else
     3633  { echo "$as_me:$LINENO: result: no" >&5
     3634echo "${ECHO_T}no" >&6; }
     3635fi
     3636
     3637
    35973638# Extract the first word of "rsync", so it can be a program name with args.
    35983639set dummy rsync; ac_word=$2
     
    41654206                SED_EXT=-r
    41664207        else
    4167                 { echo "$as_me:$LINENO: result: no idea" >&5
    4168 echo "${ECHO_T}no idea" >&6; }
    4169                 { { echo "$as_me:$LINENO: error: cannot determine flag to use for $SED" >&5
    4170 echo "$as_me: error: cannot determine flag to use for $SED" >&2;}
    4171    { (exit 1); exit 1; }; }
     4208                { echo "$as_me:$LINENO: result: not available" >&5
     4209echo "${ECHO_T}not available" >&6; }
     4210                SED_EXT='N/A'
    41724211        fi
    41734212
     
    1304613085CVS!$CVS$ac_delim
    1304713086SVN!$SVN$ac_delim
     13087GIT!$GIT$ac_delim
    1304813088RSYNC!$RSYNC$ac_delim
    1304913089SED!$SED$ac_delim
     
    1307213112OBJC_LIBS!$OBJC_LIBS$ac_delim
    1307313113OBJC_PTHREAD_LIBS!$OBJC_PTHREAD_LIBS$ac_delim
    13074 OBJC_PTHREAD_CFLAGS!$OBJC_PTHREAD_CFLAGS$ac_delim
    1307513114_ACEOF
    1307613115
     
    1311413153for ac_last_try in false false false false false :; do
    1311513154  cat >conf$$subs.sed <<_ACEOF
     13155OBJC_PTHREAD_CFLAGS!$OBJC_PTHREAD_CFLAGS$ac_delim
    1311613156OBJC_FOUNDATION!$OBJC_FOUNDATION$ac_delim
    1311713157OBJC_FOUNDATION_LDFLAGS!$OBJC_FOUNDATION_LDFLAGS$ac_delim
     
    1318113221_ACEOF
    1318213222
    13183   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 65; then
     13223  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 66; then
    1318413224    break
    1318513225  elif $ac_last_try; then
  • branches/variant-descs-14482/base/configure.ac

    r34314 r37509  
    7575AC_PATH_PROG(CVS, [cvs], [])
    7676AC_PATH_PROG(SVN, [svn], [])
     77AC_PATH_PROG(GIT, [git], [])
    7778AC_PATH_PROG(RSYNC, [rsync], [])
    7879AC_PATH_PROG(SED, [sed])
  • branches/variant-descs-14482/base/doc/Makefile

    r27887 r37509  
    1212
    1313clean:
     14        rm -f *.{1,5,7}.gz
    1415
    1516test:
     
    1819        rm -f prefix.mtree macports.conf macosx.mtree
    1920
    20 install:
     21%.1.gz: %.1
     22        gzip -c $^ > $@
     23
     24%.5.gz: %.5
     25        gzip -c $^ > $@
     26
     27%.7.gz: %.7
     28        gzip -c $^ > $@
     29
     30install: ${MAN1:.1=.1.gz} ${MAN5:.5=.5.gz} ${MAN7:.7=.7.gz}
    2131        $(INSTALL) -d -o ${DSTUSR} -g ${DSTGRP} -m ${DSTMODE} ${INSTALLDIR}
    2232        $(INSTALL) -d -o ${DSTUSR} -g ${DSTGRP} -m ${DSTMODE} ${DESTDIR}${mpconfigdir}
     
    4454        fi
    4555
     56        # delete old uncompressed man pages if they exist
     57        for m in ${MAN1}; do rm -f ${INSTALLDIR}/share/man/man1/$$m ; done
     58        for m in ${MAN5}; do rm -f ${INSTALLDIR}/share/man/man5/$$m ; done
     59        for m in ${MAN7}; do rm -f ${INSTALLDIR}/share/man/man7/$$m ; done
     60
    4661        $(INSTALL) -d -o ${DSTUSR} -g ${DSTGRP} -m ${DSTMODE} ${INSTALLDIR}/share/macports/resources/port1.0/install
    4762        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 644 prefix.mtree ${INSTALLDIR}/share/macports/resources/port1.0/install/
    4863        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 644 macosx.mtree ${INSTALLDIR}/share/macports/resources/port1.0/install/
    49         $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 port.1 ${INSTALLDIR}/share/man/man1
    50         $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 macports.conf.5 ${INSTALLDIR}/share/man/man5
    51         $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 portfile.7 ${INSTALLDIR}/share/man/man7
    52         $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 portstyle.7 ${INSTALLDIR}/share/man/man7
    53         $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 porthier.7 ${INSTALLDIR}/share/man/man7
    54         $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 portgroup.7 ${INSTALLDIR}/share/man/man7
     64        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 port.1.gz ${INSTALLDIR}/share/man/man1
     65        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 macports.conf.5.gz ${INSTALLDIR}/share/man/man5
     66        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 portfile.7.gz ${INSTALLDIR}/share/man/man7
     67        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 portstyle.7.gz ${INSTALLDIR}/share/man/man7
     68        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 porthier.7.gz ${INSTALLDIR}/share/man/man7
     69        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 portgroup.7.gz ${INSTALLDIR}/share/man/man7
  • branches/variant-descs-14482/base/doc/macports.conf.in

    r34314 r37509  
    1414# Type of installation to do for ports, "direct" or "image".  See macports.conf(5) and online documentation.
    1515portinstalltype         image
     16
     17# PATH settings that are used for external tools (configure, make, etc.) while installing ports. The default
     18# paths are given in the example; it need not be uncommented.  Customizing binpath is intended for advanced users only.
     19#binpath                @prefix_expanded@/bin:@prefix_expanded@/sbin:/bin:/sbin:/usr/bin:/usr/sbin:@x11prefix@/bin
    1620
    1721# Directory containing the X11 installation.
     
    9094# startupitem_type may be "default", "systemstarter", "launchd", or "none";
    9195# if the option is empty or "default" then a startupitem type appropriate
    92 # to the platform will be chosen. Tiger will default to launchd, while
    93 # older Mac OS X systems will default to systemstarter. If option "none"
    94 # is chosen, port startupitems are ignored and no startupitems are installed.
     96# to the platform will be chosen. Mac OS X 10.4 Tiger and above will default to
     97# launchd, while older Mac OS X systems will default to systemstarter. If
     98# option "none" is chosen, port startupitems are ignored and no startupitems
     99# are installed.
    95100startupitem_type        default
    96101
  • branches/variant-descs-14482/base/doc/port.1

    r34134 r37509  
    290290To uninstall all installed but inactive ports, use
    291291.Fl u .
     292To recursively uninstall all dependents of this port, use
     293.Fl -recursive .
     294.Pp
    292295For example:
    293296.Pp
    294297.Dl "port uninstall vim"
    295298.Dl "port -u uninstall"
     299.Dl "port uninstall --recursive python24"
    296300.Ss activate
    297301Activate the installed
     
    401405.Pp
    402406.Ss list
    403 If no argument is given, display a list of the the latest version of all available ports.
     407If no argument is given, display a list of the latest version of all available ports.
    404408If portname(s) are given as arguments, display a list of the latest version of each port.
    405409.Ss version
     
    481485.Ss distcheck
    482486Check if the distfiles haven't changed and can be fetched.
     487.Ss distfiles
     488Display each distfile, its checksums, and the URLs used to fetch it.
    483489.Ss livecheck
    484490Check if the software hasn't been updated since the Portfile was last modified.
  • branches/variant-descs-14482/base/doc/portfile.7

    r28677 r37509  
    737737      svn.url svn://www.domain.com/svn-repo/mydirectory
    738738.It Ic svn.tag
    739 Specify the a tag from which svn should fetch files. This
     739Specify a tag from which svn should fetch files. This
    740740corresponds to the -r option to the svn cli.  Note that you
    741741will need to use backslashes to escape characters that have
     
    752752.Dl svn.tag 37192
    753753      svn.tag \\{\\"2006-02-17 15:30 +0230\\"\\}
     754.El
     755.Ss FETCHING FROM GIT
     756As an alternative to fetching distribution files, pulling the sources
     757from a git repository is supported. Use of git can give rise to
     758non-reproducible builds, so it is strongly discouraged.
     759.Bl -tag -width lc
     760.It Ic git.url
     761Specify the url from which to fetch files
     762.br
     763.Sy Type:
     764.Em required
     765.br
     766.Sy Default:
     767.Em none
     768.br
     769.Sy Example:
     770.Dl git.url git://git.kernel.org/pub/scm/git/git.git
     771      git.url http://www.kernel.org/pub/scm/git/git.git
     772.It Ic git.branch
     773Specify a branch (or other commit-ish) that git should checkout.
     774Note that any branch besides HEAD should be prefixed by origin/.
     775.br
     776.Sy Type:
     777.Em optional
     778.br
     779.Sy Default:
     780.Em none
     781.br
     782.Sy Example:
     783.Dl git.branch 72bf1c8
     784      git.branch origin/next
    754785.El
    755786.Sh EXTRACT OPTIONS
  • branches/variant-descs-14482/base/m4/tcl.m4

    r32543 r37509  
    20342034# Results:
    20352035#
    2036 #       Sets the the following vars:
     2036#       Sets the following vars:
    20372037#               XINCLUDES
    20382038#               XLIBSW
  • branches/variant-descs-14482/base/portmgr/fedora/macports.spec.in

    r32365 r37509  
    3030%setup -n MacPorts-%{version}
    3131# avoid the whole upgrade and information procedure
    32 perl -pe 's/^install::/interactive:/' -i Makefile.in
     32perl -pe 's/^install::/interactive::/' -i Makefile.in
    3333
    3434%define _prefix         %{prefix}
  • branches/variant-descs-14482/base/portmgr/freebsd/Makefile.in

    r32365 r37509  
    2121LIB_DEPENDS=    tcl84:${PORTSDIR}/lang/tcl84-thread \
    2222                curl:${PORTSDIR}/ftp/curl \
    23                 sqlite3:${PORTSDIR}/databases/sqlite3-threads
     23                sqlite3:${PORTSDIR}/databases/sqlite3
    2424BUILD_DEPENDS=  ${LOCALBASE}/lib/thread2.6.5:${PORTSDIR}/devel/tclthread \
    2525                bash:${PORTSDIR}/shells/bash
  • branches/variant-descs-14482/base/portmgr/jobs/PortIndex2MySQL.tcl

    r34406 r37509  
    6666set mailprog "/usr/sbin/sendmail"
    6767set DATE [clock format [clock seconds] -format "%A %Y-%m-%d at %T"]
    68 set subject "PortIndex2MySQL run failure on $DATE"
     68
    6969set SPAM_LOVERS macports-dev@lists.macosforge.org
    7070
     71set SUBJECT "PortIndex2MySQL run failure on $DATE"
     72set FROM macports-mgr@lists.macosforge.org
     73set HEADERS "To: $SPAM_LOVERS\r\nFrom: $FROM\r\nSubject: $SUBJECT\r\n\r\n"
     74
     75# We first initialize the runlog with proper mail headers
     76puts $runlog_fd $HEADERS
    7177
    7278# House keeping on exit.
     
    9197    exit $exit_status
    9298}
    93 
    94 
    95 # We first initialize the runlog with a proper mail subject.
    96 puts $runlog_fd "Subject: $subject"
    9799
    98100# Check if there are any stray sibling jobs before moving on, bail in such case.
  • branches/variant-descs-14482/base/portmgr/jobs/portfile_lint.pl

    r34066 r37509  
    1515my $SVNLOOK = "/opt/local/bin/svnlook";
    1616my $PORTCMD = "/opt/local/bin/port";
    17 my $SVN = "/opt/local/bin/svn -q --non-interactive";
     17my $SVN = "/opt/local/bin/svn -Nq --non-interactive";
    1818my $MKDIR = "/bin/mkdir -p";
    1919
     
    2323
    2424my @changes = `$SVNLOOK changed $REPOPATH -r $rev`;
     25
     26my $author = `$SVNLOOK author $REPOPATH -r $rev`;
     27chomp($author);
     28
     29_log("Rev: $rev");
    2530
    2631foreach my $change (@changes) {
     
    3641        my $group = $change;
    3742        $group =~ s/^.*\/([^\/]+)\/[^\/]+\/Portfile$/$1/g;     
     43
     44        _log("Port: $group / $port ");
    3845
    3946        # make a temporary work area
     
    5360sub _lint {
    5461    my ($port) = @_;
    55     my $errors = `$PORTCMD -qc lint`;
     62    my $errors = `$PORTCMD -qc lint 2>&1`;
    5663
    5764    if ($errors) {
     65        _log("Error: $errors ");
    5866        my $maintainers = `$PORTCMD -q info --maintainer $port`;
    5967        # strip everything but the email addresses
     
    6270        $maintainers =~ s/nomaintainer\@macports.org//;
    6371        chop($maintainers);
     72
     73        _log("Maintainers: $maintainers ");
    6474
    6575        _mail($port, $maintainers, $errors);
     
    7181
    7282    my %mail = (
    73              To => $maintainers,
     83             To => "$author, $maintainers",
    7484             From => 'noreply@macports.org',
    75              Subject => "[MacPorts Lint] Portfile Lint Errors for: $port",
    76              Message => "Portfile: $port \n\n\n Errors: $errors \n\n",
     85             Subject => "[$rev] $port Lint Report",
     86             Message => "Portfile: $port\n\n\n$errors \n\n",
    7787             smtp => 'relay.apple.com',
    7888             );
    7989
     90    _log("Mailto: $maintainers ");
     91
    8092    sendmail(%mail) or die $Mail::Sendmail::error;
     93}
     94
     95sub _log {
     96        my ($errors) = @_;
     97        open(LOG, ">>$TMPROOT/errors") or return;
     98        print LOG "$errors\n";
     99        close(LOG);
    81100}
    82101
     
    86105}
    87106
    88 
    89 
    90 
  • branches/variant-descs-14482/base/portmgr/ubuntu/macports_1.6.0-0.dsc

    r33769 r37509  
    99Files:
    1010 67e61ebf25389ccee8ab09b859397c83 2116892 macports_1.6.0.orig.tar.gz
    11  0a020177fd8e89147df75fe10e5e2d98 3868 macports_1.6.0-0.diff.gz
     11 11cf5fe5ba1e98861472e980648e56c5 3868 macports_1.6.0-0.diff.gz
  • branches/variant-descs-14482/base/src/cregistry/registry.c

    r28029 r37509  
    3535#include <stdlib.h>
    3636#include <libgen.h>
     37#include <string.h>
    3738#include <stdarg.h>
    3839#include <sqlite3.h>
     
    162163        initialized = 0;
    163164        if (errno == ENOENT) {
    164             if (stat(dirname(path), &sb) != 0) {
     165            char *mypath = strdup(path);
     166            mypath = dirname(mypath);
     167            if (stat(mypath, &sb) != 0) {
    165168                can_write = 0;
    166169            }
     170            free(mypath);
    167171        } else {
    168172            can_write = 0;
  • branches/variant-descs-14482/base/src/macports1.0/macports.tcl

    r37508 r37509  
    4646        rsync_dir startupitem_type place_worksymlink xcodeversion xcodebuildcmd \
    4747        mp_remote_url mp_remote_submit_url configureccache configuredistcc configurepipe buildnicevalue buildmakejobs \
    48         universal_target universal_sysroot universal_archs"
     48        applications_dir frameworks_dir universal_target universal_sysroot universal_archs"
    4949    variable user_options "submitter_name submitter_email submitter_key"
    5050    variable portinterp_options "\
     
    5454        rsync_options rsync_dir startupitem_type place_worksymlink \
    5555        mp_remote_url mp_remote_submit_url configureccache configuredistcc configurepipe buildnicevalue buildmakejobs \
    56         universal_target universal_sysroot universal_archs $user_options"
     56        applications_dir frameworks_dir universal_target universal_sysroot universal_archs $user_options"
    5757   
    5858    # deferred options are only computed when needed.
     
    659659        USER GROUP
    660660        http_proxy HTTPS_PROXY FTP_PROXY ALL_PROXY NO_PROXY
     661        COLUMNS LINES
    661662    }
    662663    if {[info exists extra_env]} {
     
    971972
    972973    $workername eval source Portfile
     974   
     975    # add the default universal variant, but only if
     976    # it will work and another one isn't already present
     977    if {[$workername eval default_universal_variant_allowed]} {
     978        $workername eval add_default_universal_variant
     979    }
    973980
    974981    # evaluate the variants
     
    10811088        lappend search_path $env(DYLD_LIBRARY_PATH)
    10821089    }
    1083     lappend search_path /lib /usr/lib /usr/X11R6/lib ${prefix}/lib
     1090    lappend search_path /lib /usr/lib /usr/X11R6/lib /usr/X11/lib ${prefix}/lib
    10841091    if {[info exists env(DYLD_FALLBACK_LIBRARY_PATH)]} {
    10851092        lappend search_path $env(DYLD_FALLBACK_LIBRARY_PATH)
     
    11591166}
    11601167
     1168# Determine if a port is active (only for image mode)
     1169proc _mportactive {mport} {
     1170    set workername [ditem_key $mport workername]
     1171    if {[catch {set reslist [$workername eval registry_active \${portname}]} res]} {
     1172        return 0
     1173    } else {
     1174        return [expr [llength $reslist] > 0]
     1175    }
     1176}
     1177
    11611178### _mportispresent is private; may change without notice
    11621179
    1163 # Determine if some depspec is satisfied or if the given port is installed.
     1180# Determine if some depspec is satisfied or if the given port is installed
     1181# (and active, if we're in image mode).
    11641182# We actually start with the registry (faster?)
    11651183#
     
    11671185# depspec   the dependency test specification (path, bin, lib, etc.)
    11681186proc _mportispresent {mport depspec} {
    1169     # Check for the presense of the port in the registry
    1170     set workername [ditem_key $mport workername]
    11711187    ui_debug "Searching for dependency: [ditem_key $mport provides]"
    1172     if {[catch {set reslist [$workername eval registry_installed \${portname}]} res]} {
    1173         set res 0
    1174     } else {
    1175         set res [llength $reslist]
     1188    if {[string equal ${macports::registry.installtype} "image"]} {
     1189        set res [_mportactive $mport]
     1190    } else {
     1191        set res [_mportinstalled $mport]
    11761192    }
    11771193    if {$res != 0} {
     
    12451261        || $target == "destroot" || $target == "install"
    12461262        || $target == "archive"
     1263        || $target == "dmg" || $target == "mdmg"
    12471264        || $target == "pkg" || $target == "mpkg"
    1248         || $target == "rpm" || $target == "dpkg" } {
     1265        || $target == "rpm" || $target == "dpkg"
     1266        || $target == "srpm" } {
    12491267
    12501268        if {[mportdepends $mport $target] != 0} {
     
    12621280        # understand Port Images before this can get prettier
    12631281        if { [string equal ${macports::registry.installtype} "image"] } {
    1264             set result [dlist_eval $dlist _mportinstalled [list _mportexec "activate"]]
     1282            set result [dlist_eval $dlist _mportactive [list _mportexec "activate"]]
    12651283        } else {
    12661284            set result [dlist_eval $dlist _mportinstalled [list _mportexec "install"]]
     
    13101328proc macports::getsourcepath {url} {
    13111329    global macports::portdbpath
     1330
    13121331    set source_path [split $url ://]
     1332
     1333    if {[_source_is_snapshot $url]} {
     1334        # daily snapshot tarball
     1335        return [file join $portdbpath sources [join [lrange $source_path 3 end-1] /] ports]
     1336    }
     1337
    13131338    return [file join $portdbpath sources [lindex $source_path 3] [lindex $source_path 4] [lindex $source_path 5]]
     1339}
     1340
     1341##
     1342# Checks whether a supplied source URL is for a daily snapshot tarball
     1343# (private)
     1344#
     1345# @param url source URL to check
     1346# @return a list containing filename and extension or an empty list
     1347proc _source_is_snapshot {url {filename ""} {extension ""}} {
     1348    upvar $filename myfilename
     1349    upvar $extension myextension
     1350
     1351    if {[regexp {^(?:https?|ftp)://.+/(.+\.(tar\.gz|tar\.bz2))$} $url -> f e]} {
     1352        set myfilename $f
     1353        set myextension $e
     1354
     1355        return 1
     1356    }
     1357
     1358    return 0
    13141359}
    13151360
     
    13461391}
    13471392
    1348 proc mportsync {} {
     1393proc mportsync {{optionslist {}}} {
    13491394    global macports::sources macports::portdbpath macports::rsync_options tcl_platform
    1350     global macports::autoconf::rsync_path
    1351    
     1395    global macports::portverbose
     1396    global macports::autoconf::rsync_path
     1397    array set options $optionslist
     1398
     1399    set numfailed 0
     1400
    13521401    ui_debug "Synchronizing ports tree(s)"
    13531402    foreach source $sources {
     
    13781427                    } {
    13791428                        ui_debug "$::errorInfo"
    1380                         return -code error "Synchronization of the local ports tree failed doing an svn update"
     1429                        ui_error "Synchronization of the local ports tree failed doing an svn update"
     1430                        incr numfailed
     1431                        continue
    13811432                    }
    13821433                }
     
    13971448                ui_debug $rsync_commandline
    13981449                if {[catch {system $rsync_commandline}]} {
    1399                     return -code error "Synchronization of the local ports tree failed doing rsync"
     1450                    ui_error "Synchronization of the local ports tree failed doing rsync"
     1451                    incr numfailed
     1452                    continue
    14001453                }
    14011454                if {[catch {system "chmod -R a+r \"$destdir\""}]} {
     
    14041457            }
    14051458            {^https?$|^ftp$} {
    1406                 set indexfile [macports::getindex $source]
    1407                 file mkdir [file dirname $indexfile]
    1408                 exec curl -L -s -S -o $indexfile $source/PortIndex
     1459                if {[_source_is_snapshot $source filename extension]} {
     1460                    # sync a daily port snapshot tarball
     1461                    set indexfile [macports::getindex $source]
     1462                    set destdir [file dirname $indexfile]
     1463                    set tarpath [file join [file normalize [file join $destdir ..]] $filename]
     1464
     1465                    set updated 1
     1466                    if {[file isdirectory $destdir]} {
     1467                        set moddate [file mtime $destdir]
     1468                        if {[catch {set updated [curl isnewer $source $moddate]} error]} {
     1469                            ui_warn "Cannot check if $source was updated, ($error)"
     1470                        }
     1471                    }
     1472
     1473                    if {(![info exists options(ports_force)] || $options(ports_force) != "yes") && $updated <= 0} {
     1474                        ui_info "No updates for $source"
     1475                        continue
     1476                    }
     1477
     1478                    file mkdir [file dirname $indexfile]
     1479
     1480                    set verboseflag {}
     1481                    if {$macports::portverbose == "yes"} {
     1482                        set verboseflag "-v"
     1483                    }
     1484
     1485                    if {[catch {eval curl fetch $verboseflag {$source} {$tarpath}} error]} {
     1486                        ui_error "Fetching $source failed ($error)"
     1487                        incr numfailed
     1488                        continue
     1489                    }
     1490
     1491                    set extflag {}
     1492                    switch $extension {
     1493                        {tar.gz} {
     1494                            set extflag "-z"
     1495                        }
     1496                        {tar.bz2} {
     1497                            set extflag "-j"
     1498                        }
     1499                    }
     1500
     1501                    if { [catch { system "cd $destdir/.. && tar ${verboseflag} ${extflag} -xf $filename" } error] } {
     1502                        ui_error "Extracting $source failed ($error)"
     1503                        incr numfailed
     1504                        continue
     1505                    }
     1506
     1507                    if {[catch {system "chmod -R a+r \"$destdir\""}]} {
     1508                        ui_warn "Setting world read permissions on parts of the ports tree failed, need root?"
     1509                    }
     1510
     1511                    file delete $tarpath
     1512                } else {
     1513                    # sync just a PortIndex file
     1514                    set indexfile [macports::getindex $source]
     1515                    file mkdir [file dirname $indexfile]
     1516                    exec curl -L -s -S -o $indexfile $source/PortIndex
     1517                }
    14091518            }
    14101519            default {
     
    14121521            }
    14131522        }
     1523    }
     1524
     1525    if {$numfailed > 0} {
     1526        return -code error "Synchronization of $numfailed source(s) failed"
    14141527    }
    14151528}
     
    14781591                                    set source_url "file://[macports::getsourcepath $source]"
    14791592                                }
     1593                                {^https?$|^ftp$} {
     1594                                    if {[_source_is_snapshot $source filename extension]} {
     1595                                        # daily snapshot tarball
     1596                                        set source_url "file://[macports::getsourcepath $source]"
     1597                                    } else {
     1598                                        # default action
     1599                                        set source_url $source
     1600                                    }
     1601                                }
    14801602                                default {
    14811603                                    set source_url $source
     
    15811703    # Determine deptypes to look for based on target
    15821704    switch $target {
    1583         configure   { set deptypes "depends_lib" }
    1584        
     1705        configure   -
    15851706        build       { set deptypes "depends_lib depends_build" }
    15861707       
     
    15891710        install     -
    15901711        archive     -
     1712        dmg         -
    15911713        pkg         -
     1714        mdmg        -
    15921715        mpkg        -
    15931716        rpm         -
     1717        srpm        -
    15941718        dpkg        -
    15951719        ""          { set deptypes "depends_lib depends_build depends_run" }
     
    16171741            return 1
    16181742        }
     1743       
     1744        unset -nocomplain porturl
    16191745        foreach {name array} $res {
    16201746            array set portinfo $array
     
    16771803    # syncing ports tree.
    16781804    if {![info exists options(ports_selfupdate_nosync)] || $options(ports_selfupdate_nosync) != "yes"} {
    1679         if {[catch {mportsync} result]} {
     1805        if {[catch {mportsync $optionslist} result]} {
    16801806            return -code error "Couldn't sync the ports tree: $result"
    16811807        }
     
    17971923    # fill array with information
    17981924    array set portinfo [lindex $result 1]
     1925    # set portname again since the one we were passed may not have had the correct case
     1926    set portname $portinfo(name)
    17991927
    18001928    # set version_in_tree and revision_in_tree
     
    18361964                    return 1
    18371965                }
     1966                # we just installed it, so mark it done in the cache
     1967                set depscache(port:${portname}) 1
    18381968            } else {
    18391969                # port installed outside MacPorts
    18401970                ui_debug "$portname installed outside the MacPorts system"
    18411971                set depflag 1
     1972                # mark this depspec as satisfied in the cache
     1973                set depscache($dspec) 1
    18421974            }
    18431975
     
    18461978            exit 1
    18471979        }
    1848     }
    1849     set anyactive 0
     1980    } else {
     1981        # we'll now take care of upgrading it, so we can add it to the cache
     1982        set depscache(port:${portname}) 1
     1983    }
     1984    set anyactive no
    18501985    set version_installed {}
    18511986    set revision_installed {}
     
    18551990        set version_installed $version_in_tree
    18561991        set revision_installed $revision_in_tree
     1992        set iname $portname
    18571993        # That was a very dirty hack showing how ugly our depencendy and upgrade code is.
    18581994        # To get it working when user provides -f, we also need to set the variant to
     
    18722008                    || ([rpm-vercomp $version $version_installed] == 0
    18732009                        && [rpm-vercomp $revision $revision_installed] > 0)} {
     2010                set iname [lindex $i 0]
    18742011                set version_installed $version
    18752012                set revision_installed $revision
    1876                 set epoch_installed [registry::property_retrieve [registry::open_entry $portname [lindex $i 1] [lindex $i 2] $variant] epoch]
     2013                set variant_installed $variant
     2014                set epoch_installed [registry::property_retrieve [registry::open_entry $iname [lindex $i 1] [lindex $i 2] $variant] epoch]
    18772015                set num $i
    18782016            }
     
    18802018            set isactive [lindex $i 4]
    18812019            if {$isactive == 1} {
    1882                 if { [rpm-vercomp $version_installed $version] < 0
    1883                         || ([rpm-vercomp $version_installed $version] == 0
    1884                             && [rpm-vercomp $revision_installed $revision] < 0)} {
    1885                     # deactivate version
    1886                     if {[catch {portimage::deactivate $portname $version $optionslist} result]} {
    1887                         global errorInfo
    1888                         ui_debug "$errorInfo"
    1889                         ui_error "Deactivating $portname $version_installed_$revision_installed failed: $result"
    1890                         return 1
    1891                     }
    1892                 }
     2020                set anyactive yes
     2021                set active_name [lindex $i 0]
     2022                set version_active $version
     2023                set revision_active $revision
     2024                set variant_active $variant
     2025            }
     2026        }
     2027        if { $anyactive && ([rpm-vercomp $version_installed $version_active] != 0
     2028                            || [rpm-vercomp $revision_installed $revision_active] != 0
     2029                            || [string compare $variant_installed $variant_active] != 0)} {
     2030            # deactivate version
     2031            if {[catch {portimage::deactivate $active_name ${version_active}_${revision_active}${variant_active} $optionslist} result]} {
     2032                global errorInfo
     2033                ui_debug "$errorInfo"
     2034                ui_error "Deactivating $active_name @${version_active}_${revision_active} failed: $result"
     2035                return 1
    18932036            }
    18942037        }
    18952038        if { [lindex $num 4] == 0 && 0 == [string compare "image" ${macports::registry.installtype}] } {
    18962039            # activate the latest installed version
    1897             if {[catch {portimage::activate $portname ${version_installed}_$revision_installed$variant $optionslist} result]} {
     2040            if {[catch {portimage::activate $iname ${version_installed}_${revision_installed}$variant $optionslist} result]} {
    18982041                global errorInfo
    18992042                ui_debug "$errorInfo"
    1900                 ui_error "Activating $portname ${version_installed}_$revision_installed failed: $result"
     2043                ui_error "Activating $iname @${version_installed}_${revision_installed} failed: $result"
    19012044                return 1
    19022045            }
     
    19072050    ui_debug "epoch: in tree: $epoch_in_tree installed: $epoch_installed"
    19082051    ui_debug "$portname ${version_in_tree}_$revision_in_tree exists in the ports tree"
    1909     ui_debug "$portname ${version_installed}_$revision_installed is installed"
     2052    ui_debug "$iname ${version_installed}_$revision_installed is installed"
    19102053
    19112054    # set the nodeps option 
     
    19202063        set depflag 0
    19212064    } else {
    1922         # build depends is upgraded
    1923         if {[info exists portinfo(depends_build)]} {
    1924             foreach i $portinfo(depends_build) {
    1925                 if {![llength [array get depscache $i]]} {
    1926                 set d [lindex [split $i :] end]
    1927                     set depscache($i) 1
    1928                     upgrade $d $i $variationslist $optionslist depscache
    1929                 }
    1930             }
    1931         }
    1932         # library depends is upgraded
    1933         if {[info exists portinfo(depends_lib)]} {
    1934             foreach i $portinfo(depends_lib) {
    1935                 if {![llength [array get depscache $i]]} {
    1936                 set d [lindex [split $i :] end]
    1937                     set depscache($i) 1
    1938                     upgrade $d $i $variationslist $optionslist depscache
    1939                 }
    1940             }
    1941         }
    1942         # runtime depends is upgraded
    1943         if {[info exists portinfo(depends_run)]} {
    1944             foreach i $portinfo(depends_run) {
    1945                 if {![llength [array get depscache $i]]} {
    1946                 set d [lindex [split $i :] end]
    1947                     set depscache($i) 1
    1948                     upgrade $d $i $variationslist $optionslist depscache
    1949                 }
    1950             }
     2065        # If we're following dependents, we only want to follow this port's
     2066        # dependents, not those of all its dependencies. Otherwise, we would
     2067        # end up processing this port's dependents n+1 times (recursively!),
     2068        # where n is the number of dependencies this port has, since this port
     2069        # is of course a dependent of each of its dependencies. Plus the
     2070        # dependencies could have any number of unrelated dependents.
     2071       
     2072        # So we save whether we're following dependents, unset the option
     2073        # while doing the dependencies, and restore it afterwards.
     2074        set saved_do_dependents [info exists options(ports_do_dependents)]
     2075        unset -nocomplain options(ports_do_dependents)
     2076       
     2077        # each dep type is upgraded
     2078        foreach dtype {depends_build depends_lib depends_run} {
     2079            if {[info exists portinfo($dtype)]} {
     2080                foreach i $portinfo($dtype) {
     2081                    set d [lindex [split $i :] end]
     2082                    if {![llength [array get depscache port:${d}]] && ![llength [array get depscache $i]]} {
     2083                        upgrade $d $i $variationslist [array get options] depscache
     2084                    }
     2085                }
     2086            }
     2087        }
     2088       
     2089        # restore dependent-following to its former value
     2090        if {$saved_do_dependents} {
     2091            set options(ports_do_dependents) yes
    19512092        }
    19522093    }
     
    19572098                && [rpm-vercomp $revision_installed $revision_in_tree] >= 0 ))
    19582099        && ![info exists options(ports_force)] } {
    1959         ui_debug "No need to upgrade! $portname ${version_installed}_$revision_installed >= $portname ${version_in_tree}_$revision_in_tree"
     2100        ui_debug "No need to upgrade! $iname ${version_installed}_$revision_installed >= $portname ${version_in_tree}_$revision_in_tree"
    19602101        if { $epoch_installed >= $epoch_in_tree } {
    19612102            # Check if we have to do dependents
     
    19652106
    19662107                registry::open_dep_map
    1967                 set deplist [registry::list_dependents $portname]
     2108                set deplist [registry::list_dependents $iname]
    19682109
    19692110                if { [llength deplist] > 0 } {
    19702111                    foreach dep $deplist {
    1971                         set mpname [lindex $dep 2]
    1972                         macports::upgrade $mpname "port:$mpname" [array get variations] [array get options]
     2112                        set mpname [lindex $dep 2]
     2113                        if {![llength [array get depscache port:${mpname}]]} {
     2114                            macports::upgrade $mpname port:${mpname} [array get variations] [array get options] depscache
     2115                        }
    19732116                    }
    19742117                }
     
    20292172
    20302173    # uninstall old ports
    2031     if {[info exists options(port_uninstall_old)] || $epoch_override == 1 || [info exists options(ports_force)] || 0 != [string compare "image" ${macports::registry.installtype}] } {
     2174    if { $epoch_override == 1 || [info exists options(ports_force)] || 0 != [string compare "image" ${macports::registry.installtype}] } {
    20322175        # uninstall old
    2033         ui_debug "Uninstalling $portname ${version_installed}_$revision_installed$oldvariant"
    2034         if {[catch {portuninstall::uninstall $portname ${version_installed}_$revision_installed$oldvariant $optionslist} result]} {
     2176        ui_debug "Uninstalling $iname ${version_installed}_$revision_installed$oldvariant"
     2177        # we have to force the uninstall in case of dependents
     2178        set force_cur [info exists options(ports_force)]
     2179        set options(ports_force) yes
     2180        if {[catch {portuninstall::uninstall $iname ${version_installed}_$revision_installed$oldvariant [array get options]} result]} {
    20352181            global errorInfo
    20362182            ui_debug "$errorInfo"
    2037             ui_error "Uninstall $portname ${version_installed}_$revision_installed$oldvariant failed: $result"
     2183            ui_error "Uninstall $iname ${version_installed}_$revision_installed$oldvariant failed: $result"
    20382184            return 1
    20392185        }
     2186        if {!$force_cur} {
     2187            unset options(ports_force)
     2188        }
    20402189    } else {
    20412190        # XXX deactivate version_installed
    2042         if {[catch {portimage::deactivate $portname ${version_installed}_$revision_installed$oldvariant $optionslist} result]} {
     2191        if {[catch {portimage::deactivate $iname ${version_installed}_$revision_installed$oldvariant $optionslist} result]} {
    20432192            global errorInfo
    20442193            ui_debug "$errorInfo"
    2045             ui_error "Deactivating $portname ${version_installed}_$revision_installed failed: $result"
     2194            ui_error "Deactivating $iname ${version_installed}_$revision_installed failed: $result"
    20462195            return 1
     2196        }
     2197        if { [info exists options(port_uninstall_old)] } {
     2198            # uninstalling now could fail due to dependents when not forced,
     2199            # because the new version is not installed
     2200            set uninstall_later yes
    20472201        }
    20482202    }
     
    20542208        return 1
    20552209    }
     2210   
     2211    if { [info exists uninstall_later] && $uninstall_later == yes } {
     2212        ui_debug "Uninstalling $iname ${version_installed}_$revision_installed$oldvariant"
     2213        if {[catch {portuninstall::uninstall $iname ${version_installed}_$revision_installed$oldvariant $optionslist} result]} {
     2214            global errorInfo
     2215            ui_debug "$errorInfo"
     2216            ui_error "Uninstall $iname ${version_installed}_$revision_installed$oldvariant failed: $result"
     2217            return 1
     2218        }
     2219    }
    20562220
    20572221    # Check if we have to do dependents
     
    20652229        if { [llength deplist] > 0 } {
    20662230            foreach dep $deplist {
    2067                 set mpname [lindex $dep 2]
    2068                 macports::upgrade $mpname "port:$mpname" [array get variations] [array get options]
     2231                set mpname [lindex $dep 2]
     2232                if {![llength [array get depscache port:${mpname}]]} {
     2233                    macports::upgrade $mpname port:${mpname} [array get variations] [array get options] depscache
     2234                }
    20692235            }
    20702236        }
  • branches/variant-descs-14482/base/src/package1.0/portarchive.tcl

    r30320 r37509  
    6262        global ports_force ports_source_only ports_binary_only
    6363        global portname portversion portrevision portvariants
    64         global archive.destpath archive.type archive.file archive.path
     64        global archive.destpath archive.type archive.file archive.path archive.fulldestpath
    6565
    6666        # Check mode in case archive called directly by user
     
    8383        # Define archive destination directory and target filename
    8484        if {![string equal ${archive.destpath} ${workpath}] && ![string equal ${archive.destpath} ""]} {
    85                 set archive.destpath [file join ${archive.destpath} [option os.platform] [option os.arch]]
     85                set archive.fulldestpath [file join ${archive.destpath} [option os.platform] [option os.arch]]
     86        } else {
     87            set archive.fulldestpath ${archive.destpath}
    8688        }
    8789
     
    101103                        if {[catch {archiveTypeIsSupported ${archive.type}} errmsg] == 0} {
    102104                                set archive.file "${portname}-${portversion}_${portrevision}${portvariants}.[option os.arch].${archive.type}"
    103                                 set archive.path "[file join ${archive.destpath} ${archive.file}]"
     105                                set archive.path "[file join ${archive.fulldestpath} ${archive.file}]"
    104106                        } else {
    105107                                ui_debug "Skipping [string toupper ${archive.type}] archive: $errmsg"
     
    238240        global UI_PREFIX variations
    239241        global workpath destpath portpath ports_force
    240         global portname portversion portrevision portvariants
    241         global archive.destpath archive.type archive.file archive.path
     242        global portname portepoch portversion portrevision portvariants
     243        global archive.fulldestpath archive.type archive.file archive.path
    242244
    243245        # Create archive destination path (if needed)
    244         if {![file isdirectory ${archive.destpath}]} {
    245                 system "mkdir -p ${archive.destpath}"
     246        if {![file isdirectory ${archive.fulldestpath}]} {
     247                system "mkdir -p ${archive.fulldestpath}"
     248        }
     249
     250        # Create (if no files) destroot for archiving
     251        if {![file isdirectory ${destpath}]} {
     252                system "mkdir -p ${destpath}"
    246253        }
    247254
     
    285292        puts $fd "@name ${portname}-${portversion}_${portrevision}${portvariants}"
    286293        puts $fd "@portname ${portname}"
     294        puts $fd "@portepoch ${portepoch}"
    287295        puts $fd "@portversion ${portversion}"
    288296        puts $fd "@portrevision ${portrevision}"
     
    318326                        # Define archive file/path
    319327                        set archive.file "${portname}-${portversion}_${portrevision}${portvariants}.[option os.arch].${archive.type}"
    320                         set archive.path "[file join ${archive.destpath} ${archive.file}]"
     328                        set archive.path "[file join ${archive.fulldestpath} ${archive.file}]"
    321329
    322330                        # Setup archive command
  • branches/variant-descs-14482/base/src/package1.0/portunarchive.tcl

    r30307 r37509  
    6262        global ports_force ports_source_only ports_binary_only
    6363        global portname portversion portrevision portvariants portpath
    64         global unarchive.srcpath unarchive.type unarchive.file unarchive.path
     64        global unarchive.srcpath unarchive.type unarchive.file unarchive.path unarchive.fullsrcpath
    6565
    6666        # Check mode in case archive called directly by user
     
    8383        # Define archive directory, file, and path
    8484        if {![string equal ${unarchive.srcpath} ${workpath}] && ![string equal ${unarchive.srcpath} ""]} {
    85                 set unarchive.srcpath [file join ${unarchive.srcpath} [option os.platform] [option os.arch]]
     85                set unarchive.fullsrcpath [file join ${unarchive.srcpath} [option os.platform] [option os.arch]]
     86        } else {
     87            set unarchive.fullsrcpath ${unarchive.srcpath}
    8688        }
    8789
     
    105107                        if {[catch {archiveTypeIsSupported ${unarchive.type}} errmsg] == 0} {
    106108                                set unarchive.file "${portname}-${portversion}_${portrevision}${portvariants}.[option os.arch].${unarchive.type}"
    107                                 set unarchive.path "[file join ${unarchive.srcpath} ${unarchive.file}]"
     109                                set unarchive.path "[file join ${unarchive.fullsrcpath} ${unarchive.file}]"
    108110                                if {[file exist ${unarchive.path}]} {
    109111                                        set found 1
  • branches/variant-descs-14482/base/src/pextlib1.0/Pextlib.c

    r34872 r37509  
    11191119}
    11201120
     1121/**
     1122 * deletes environment variable
     1123 *
     1124 * Syntax is:
     1125 * unsetenv name (* for all)
     1126 */
     1127int UnsetEnvCmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
     1128{
     1129    char *name;
     1130    char **envp;
     1131    char *equals;
     1132    size_t len;
     1133   
     1134    if (objc != 2) {
     1135        Tcl_WrongNumArgs(interp, 1, objv, "name");
     1136        return TCL_ERROR;
     1137    }
     1138
     1139    name = Tcl_GetString(objv[1]);
     1140    if (strchr(name, '=') != NULL) {
     1141        Tcl_SetResult(interp, "only the name should be given", TCL_STATIC);
     1142        return TCL_ERROR;
     1143    }
     1144
     1145    if (strcmp(name, "*") == 0) {
     1146        /* unset all current environment variables */
     1147        for (envp = environ; *envp != NULL; envp++) {
     1148            equals = strchr(*envp, '=');
     1149            if (equals != NULL) {
     1150                len = equals - *envp;
     1151                name = malloc(len+1);
     1152                if (name != NULL) {
     1153                    memcpy(name, *envp, len);
     1154                    name[len] = '\0';
     1155                    (void) unsetenv(name);
     1156                    free(name);
     1157                }
     1158            }
     1159        }
     1160    } else {
     1161        (void) unsetenv(name);
     1162    }
     1163
     1164    return TCL_OK;
     1165}
     1166
    11211167int Pextlib_Init(Tcl_Interp *interp)
    11221168{
     
    11501196        Tcl_CreateObjCommand(interp, "curl", CurlCmd, NULL, NULL);
    11511197    Tcl_CreateObjCommand(interp, "symlink", CreateSymlinkCmd, NULL, NULL);
     1198    Tcl_CreateObjCommand(interp, "unsetenv", UnsetEnvCmd, NULL, NULL);
    11521199       
    11531200        Tcl_CreateObjCommand(interp, "readline", ReadlineCmd, NULL, NULL);
  • branches/variant-descs-14482/base/src/pextlib1.0/curl.h

    r30972 r37509  
    5858 * curl getsize url
    5959 *      Determine the file size of some resource. Try to not fetch the resource
    60  *  if possible. The size returned is the the number of bytes.
     60 *  if possible. The size returned is the number of bytes.
    6161 */
    6262int CurlCmd(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[]);
  • branches/variant-descs-14482/base/src/pextlib1.0/tracelib.c

    r30972 r37509  
    124124
    125125/*
     126 * Is there more data? (return 1 if more data in socket, 0 otherwise)
     127 */
     128static char can_I_recv_more(int sock)
     129{
     130        struct timeval tv;
     131        fd_set fdr;
     132        tv.tv_sec  = 0;
     133        tv.tv_usec = 0;
     134
     135        FD_ZERO(&fdr);
     136        FD_SET(sock, &fdr);
     137        return select(sock+1, &fdr, 0, 0, &tv) == 1;
     138}
     139
     140/*
    126141 * receive line from socket, parse it and send answer
    127142 */
    128143static char process_line(int sock)
    129144{
    130         char * t, buf[1024]={0}, *f;
     145        char * t, buf[1024]={0}, *f, *next_t;
    131146        int len;
    132147       
    133         if((len=recv(sock, buf, sizeof(buf), 0))==-1)
     148        if((len=recv(sock, buf, sizeof(buf) - 1, 0))==-1)
    134149                return 0;
    135150        if(!len)
    136151                return 0;
    137152        buf[len]=0;
    138         /* sometimes two messages come in one recv.. I ain't caring about it now, but it can be a problem */
    139         for(t=buf;*t&&t-buf<(int)sizeof(buf);t=f+strlen(f)+1)
    140         {
     153        for(t=buf;*t&&t-buf<(int)sizeof(buf);t=next_t)
     154        {
     155                next_t = t+strlen(t)+1;
     156                if(next_t == buf + sizeof(buf) && len == sizeof(buf) - 1)
     157                {
     158                        memmove(buf, t, next_t - t);
     159                        t = buf;
     160                        {
     161                                char * end_of_t = t + strlen(t);
     162                                *end_of_t = ' ';
     163                                for(;can_I_recv_more(sock);)
     164                                {
     165                                        if(recv(sock, end_of_t, 1, 0) != 1)
     166                                        {
     167                                                ui_warn("recv failed");
     168                                                return 0;
     169                                        }
     170                                        if(*end_of_t++ == 0)
     171                                                break;
     172                                }
     173                        }
     174                }
     175   
    141176                f=strchr(t, '\t');
    142177                if(!f)
     
    146181                }
    147182                *f++=0;
     183
    148184                if(!strcmp(t, "filemap"))
    149185                {
     
    207243                                append_allow("/System/Library", 0);
    208244                                append_allow("/Library", 0);
    209                                 append_allow("/Developer/Headers", 0);
     245                                append_allow("/Developer", 0);
    210246                        }
    211247                }else
  • branches/variant-descs-14482/base/src/pextlib1.0/xinstall.c

    r28669 r37509  
    750750         * NFS does not support flags.  Ignore EOPNOTSUPP flags if we're just
    751751         * trying to turn off UF_NODUMP.  If we're trying to set real flags,
    752          * then warn if the the fs doesn't support it, otherwise fail.
     752         * then warn if the fs doesn't support it, otherwise fail.
    753753         */
    754754#if defined(UF_NODUMP)
  • branches/variant-descs-14482/base/src/port/Makefile

    r33553 r37509  
    1111all: ${SCRIPTS}
    1212
    13 portmirror: portmirror.tcl
     13portmirror: portmirror.tcl ../../Mk/macports.autoconf.mk
    1414        ${edit} portmirror.tcl > $@
    1515
    16 portindex: portindex.tcl
     16portindex: portindex.tcl ../../Mk/macports.autoconf.mk
    1717        ${edit} portindex.tcl > $@
    1818
    19 port: port.tcl
     19port: port.tcl ../../Mk/macports.autoconf.mk
    2020        ${edit} port.tcl > $@
    2121
  • branches/variant-descs-14482/base/src/port/port-help.tcl

    r34872 r37509  
    77# $Id$
    88
    9 set porthelp(activate) "activate a port"
    10 set porthelp(archive) "archive a port"
    11 set porthelp(build) "build a port"
    12 set porthelp(cat) "cat a port"
    13 set porthelp(cd) "cd to a port"
    14 set porthelp(checksum) "checksum a port"
    15 set porthelp(clean) "clean a port"
    16 set porthelp(compact) "compact a port"
    17 set porthelp(configure) "configure a port"
    18 set porthelp(contents) "get contents for a port"
    19 set porthelp(deactivate) "deactivate a port"
    20 set porthelp(dependents) "dependents a port"
    21 set porthelp(deps) "show deps for a port"
    22 set porthelp(destroot) "destroot a port"
    23 set porthelp(dir) "dir a port"
    24 set porthelp(distcheck) "distcheck a port"
    25 set porthelp(dmg) "dmg a port"
    26 set porthelp(dpkg) "dpkg a port"
    27 set porthelp(echo) "echo a port"
    28 set porthelp(ed) "ed a port"
    29 set porthelp(edit) "edit a port"
    30 set porthelp(exit) "exit a port"
    31 set porthelp(extract) "extract a port"
    32 set porthelp(fetch) "fetch a port"
    33 set porthelp(file) "file a port"
    34 set porthelp(gohome) "gohome a port"
    35 set porthelp(help) "help a port"
    36 set porthelp(info) "info a port"
    37 set porthelp(install) "install a port"
    38 set porthelp(installed) "installed a port"
    39 set porthelp(lint) "lint a port"
    40 set porthelp(list) "list a port"
    41 set porthelp(livecheck) "livecheck a port"
    42 set porthelp(load) "load a port"
    43 set porthelp(location) "location a port"
    44 set porthelp(mdmg) "mdmg a port"
    45 set porthelp(mirror) "mirror a port"
    46 set porthelp(mpkg) "mpkg a port"
    47 set porthelp(outdated) "outdated a port"
    48 set porthelp(patch) "patch a port"
    49 set porthelp(pkg) "pkg a port"
    50 set porthelp(platform) "platform a port"
    51 set porthelp(provides) "provides a port"
    52 set porthelp(quit) "quit a port"
    53 set porthelp(rpm) "rpm a port"
    54 set porthelp(search) "search a port"
    55 set porthelp(selfupdate) "selfupdate a port"
    56 set porthelp(srpm) "srpm a port"
    57 set porthelp(submit) "submit a port"
    58 set porthelp(sync) "sync a port"
    59 set porthelp(test) "test a port"
    60 set porthelp(trace) "trace a port"
    61 set porthelp(unarchive) "unarchive a port"
    62 set porthelp(uncompact) "uncompact a port"
    63 set porthelp(uninstall) "uninstall a port"
    64 set porthelp(unload) "unload a port"
    65 set porthelp(upgrade) "upgrade a port"
    66 set porthelp(url) "url a port"
    67 set porthelp(usage) "usage a port"
    68 set porthelp(variants) "variants a port"
    69 set porthelp(version) "version a port"
     9
     10set porthelp(activate) {
     11Activate the given ports
     12}
     13
     14set porthelp(archive) {
     15Archive the given ports
     16}
     17
     18set porthelp(build) {
     19Build the given ports
     20}
     21
     22set porthelp(cat) {
     23Writes the Portfiles of the given ports to stdout
     24}
     25
     26set porthelp(cd) {
     27Changes to the directory of the given port
     28
     29Only in interactive mode.
     30}
     31
     32set porthelp(checksum) {
     33Compares the checksums for the downloaded files of the given ports
     34}
     35
     36set porthelp(clean) {
     37Removes file associates with given ports
     38
     39--archives    Removes created archives
     40--dist        Removes downloaded distfiles
     41--work        Removes work directory
     42--all         Removes everything from above
     43}
     44
     45set porthelp(compact) {
     46Compact the given ports
     47}
     48
     49set porthelp(configure) {
     50Configure the given ports
     51}
     52
     53set porthelp(contents) {
     54Returns a list of files installed by given ports
     55}
     56
     57set porthelp(deactivate) {
     58Deactivates the given ports
     59}
     60
     61set porthelp(dependents) {
     62Returns a list of installed dependents for each of the given ports
     63
     64Note: Don't get fooled by the language!
     65Dependents are those ports which depend on the given port, not vice-versa!
     66}
     67
     68set porthelp(deps) {
     69Returns a list of dependencies for each of the given ports
     70}
     71
     72set porthelp(destroot) {
     73Destroot the given ports
     74}
     75
     76set porthelp(dir) {
     77Returns the directories of the given ports
     78
     79This can be quite handy to be used in your shell:
     80cd $(port dir <portname>)
     81}
     82
     83set porthelp(distcheck) {
     84Checks if the given ports can be fetched from all of its master_sites
     85}
     86
     87set porthelp(distfiles) {
     88Returns a list of distfiles for the given port
     89}
     90
     91set porthelp(dmg) {
     92Creates a dmg for each of the given ports
     93}
     94
     95set porthelp(dpkg) {
     96Creates a dpkg for each of the given ports
     97}
     98
     99set porthelp(echo) {
     100Returns the list of ports the argument expands to
     101
     102This can be useful to what a pseudo-port expands.
     103}
     104
     105set porthelp(edit) {
     106Edit given ports
     107}
     108
     109set porthelp(ed) $porthelp(edit)
     110
     111set porthelp(exit) {
     112Exit port
     113
     114Only in interactive mode.
     115}
     116
     117set porthelp(extract) {
     118Extract the downloaded files of the given ports
     119}
     120
     121set porthelp(fetch) {
     122Downloaded distfiles for the given ports
     123}
     124
     125set porthelp(file) {
     126Returns the path to the Portfile for each of the given ports
     127}
     128
     129set porthelp(gohome) {
     130Opens the homepages of the given ports in your browser
     131}
     132
     133set porthelp(help) {
     134Displays short help texts for the given ports
     135}
     136
     137set porthelp(info) {
     138Returns informations about the given ports
     139}
     140
     141set porthelp(install) {
     142Installs the given ports
     143}
     144
     145set porthelp(installed) {
     146List installed versions of the given port
     147}
     148
     149set porthelp(lint) {
     150Checks if the Portfile is lint-free for each of the given ports
     151}
     152
     153set porthelp(list) {
     154List the available version for each of the given ports
     155}
     156
     157set porthelp(livecheck) {
     158Checks if a new version of the software is available
     159}
     160
     161set porthelp(load) {
     162Interface to launchctl(1) for ports providing startup items
     163}
     164
     165set porthelp(location) {
     166Returns the install location for each of the given ports
     167}
     168
     169set porthelp(mdmg) {
     170Creates a dmg for each of the given ports
     171}
     172
     173set porthelp(mirror) {
     174Fetches distfiles for the given ports
     175}
     176
     177set porthelp(mpkg) {
     178Creates a mpkg for each of the given ports
     179}
     180
     181set porthelp(outdated) {
     182Returns a list of outdated ports
     183}
     184
     185set porthelp(patch) {
     186Applies patches on each of the given port
     187}
     188
     189set porthelp(pkg) {
     190Creates a pkg for each of the given ports
     191}
     192
     193set porthelp(platform) {
     194Returns the current platform you are on
     195}
     196
     197set porthelp(provides) {
     198Return a list of files provided by the given ports
     199}
     200
     201set porthelp(quit) $porthelp(exit)
     202
     203set porthelp(rpm) {
     204Creates a rpm for each of the given ports
     205}
     206
     207set porthelp(search) {
     208Search for a port
     209
     210This looks in name, desription and long_description of each port for the given search string.
     211}
     212
     213set porthelp(selfupdate) {
     214Upgrade MacPorts itself
     215}
     216
     217set porthelp(srpm) {
     218Creates a srpm for each of the given ports
     219}
     220
     221set porthelp(submit) {
     222Submit a port to the MacPorts Web Application
     223}
     224
     225set porthelp(sync) {
     226Synchronize the set of Portfiles
     227}
     228
     229set porthelp(test) {
     230Run tests on each of the given ports
     231}
     232
     233set porthelp(trace) {
     234Trace a port
     235}
     236
     237set porthelp(unarchive) {
     238Unarchive a port
     239}
     240
     241set porthelp(uncompact) {
     242Uncompact a port
     243}
     244
     245set porthelp(uninstall) {
     246Uninstall the given ports
     247}
     248
     249set porthelp(unload) $porthelp(load)
     250
     251set porthelp(upgrade) {
     252Upgrades the given ports to the latest version
     253}
     254
     255set porthelp(url) {
     256Returns the URL for each of the given ports
     257}
     258
     259set porthelp(usage) {
     260Returns basic usage of the port command
     261}
     262
     263set porthelp(variants) {
     264Returns a list of variants with descriptions available for the given ports
     265}
     266
     267set porthelp(version) {
     268Returns the version of MacPorts
     269}
  • branches/variant-descs-14482/base/src/port/port.tcl

    r36952 r37509  
    210210    set ilist [registry::installed $portname $portversion]
    211211    if { [llength $ilist] > 1 } {
     212        # set portname again since the one we were passed may not have had the correct case
     213        set portname [lindex [lindex $ilist 0] 0]
    212214        puts "The following versions of $portname are currently installed:"
    213215        foreach i [portlist_sortint $ilist] {
     
    317319    if {[llength $portlist] == 0} {
    318320        set portlist [get_current_port]
     321
     322        if {[llength $portlist] == 0} {
     323            # there was no port in current directory
     324            return 1
     325        }
    319326    }
    320327
     
    393400
    394401##
     402# Makes sure we get the current terminal size
     403proc set_term_size {} {
     404    global env
     405
     406    if {![info exists env(COLUMNS)] || ![info exists env(LINES)]} {
     407        if {![catch {exec stty size} err]} {
     408            regexp {(\d+) (\d+)} $err -> rows cols
     409            set env(COLUMNS) $cols
     410            set env(LINES) $rows
     411        } else {
     412            puts stderr "Warning: Unable to get terminal size, using 80x24!"
     413            set cols 80
     414            set rows 24
     415        }
     416    }
     417}
     418
     419##
    395420# Wraps a multi-line string at specified textwidth
    396421#
     
    398423#
    399424# @param string input string
    400 # @param maxlen text width (indent length not counted)
     425# @param maxlen text width (0 defaults to current terminal width)
    401426# @param indent prepend to every line
    402427# @return wrapped string
    403 proc wrap {string maxlen {indent ""}} {
     428proc wrap {string maxlen {indent ""} {indentfirstline 1}} {
     429    global env
     430
     431    if {$maxlen == 0} {
     432        set maxlen $env(COLUMNS)
     433    }
     434
    404435    set splitstring {}
    405436    foreach line [split $string "\n"] {
    406         lappend splitstring [wrapline $line $maxlen $indent]
     437        lappend splitstring [wrapline $line $maxlen $indent $indentfirstline]
    407438    }
    408439    return [join $splitstring "\n"]
     
    415446#
    416447# @param line input line
    417 # @param maxlen text width (indent length not counted)
     448# @param maxlen text width (0 defaults to current terminal width)
    418449# @param indent prepend to every line
    419450# @return wrapped string
    420 proc wrapline {line maxlen {indent ""}} {
     451proc wrapline {line maxlen {indent ""} {indentfirstline 1}} {
     452    global env
     453
     454    if {$maxlen == 0} {
     455        set maxlen $env(COLUMNS)
     456    }
     457
    421458    set string [split $line " "]
    422     set newline $indent
     459    if {$indentfirstline == 0} {
     460        set newline ""
     461        set maxlen [expr $maxlen - [string length $indent]]
     462    } else {
     463        set newline $indent
     464    }
    423465    append newline [lindex $string 0]
    424466    set joiner " "
     467    set first 1
    425468    foreach word [lrange $string 1 end] {
    426         if {[string length $newline]+[string length $word] > $maxlen} {
     469        if {[string length $newline]+[string length $word] >= $maxlen} {
    427470            lappend lines $newline
    428471            set newline $indent
     
    431474        append newline $joiner $word
    432475        set joiner " "
     476        set first 0
     477        if {$first == 1 && $indentfirstline == 0} {
     478            set maxlen [expr $maxlen + [string length $indent]]
     479        }
    433480    }
    434481    lappend lines $newline
     
    508555        ui_msg "(you might also see this message if a pseudo-port such as"
    509556        ui_msg "outdated or installed expands to no ports)."
     557        return [list]
    510558    }
    511559
     
    895943        array set port $item
    896944        if {[info exists onetime($port(fullname))]} continue
     945        set onetime($port(fullname)) 1
    897946        lappend result $item
    898947    }
     
    901950        array set port $item
    902951        if {[info exists onetime($port(fullname))]} continue
     952        set onetime($port(fullname)) 1
    903953        lappend result $item
    904954    }
     
    11391189##########################################
    11401190
     1191proc action_get_usage { action } {
     1192    global action_array cmd_args_array
     1193
     1194    if {[info exists action_array($action)]} {
     1195        set cmds ""
     1196        if {[info exists cmd_args_array($action)]} {
     1197            foreach cmd $cmd_args_array($action) {
     1198                set name [lindex $cmd 0]
     1199                set argc [lindex $cmd 1]
     1200
     1201                append cmds " --$name"
     1202
     1203                for {set i 1} {$i <= $argc} {incr i} {
     1204                    append cmds " <arg$i>"
     1205                }
     1206            }
     1207        }
     1208        set args ""
     1209        set needed [action_needs_portlist $action]
     1210        if {[action_args_const strings] == $needed} {
     1211            set args " <arguments>"
     1212        } elseif {[action_args_const strings] == $needed} {
     1213            set args " <portlist>"
     1214        }
     1215
     1216        set ret "Usage: "
     1217        set len [string length $action]
     1218        append ret [wrap "$action$cmds$args" 0 [string repeat " " [expr 8 + $len]] 0]
     1219        append ret "\n"
     1220
     1221        return $ret
     1222    }
     1223
     1224    return -1
     1225}
     1226
    11411227proc action_usage { action portlist opts } {
    1142     print_usage
    1143     return 0
     1228    if {[llength $portlist] == 0} {
     1229        print_usage
     1230        return 0
     1231    }
     1232
     1233    foreach topic $portlist {
     1234        set usage [action_get_usage $topic]
     1235        if {$usage != -1} {
     1236           puts -nonewline stderr $usage
     1237        } else {
     1238            ui_error "No usage for topic $topic"
     1239            return 1
     1240        }
     1241    }
    11441242}
    11451243
    11461244
    11471245proc action_help { action portlist opts } {
    1148     set pl [lindex $portlist 0]
    1149     set x [lsearch $pl name*]
    11501246    set helpfile "$macports::prefix/var/macports/port-help.tcl"
    11511247
    1152     if {$x != -1} {
    1153         set topic [lindex $pl [expr $x + 1]]
     1248    if {[llength $portlist] == 0} {
     1249        print_help
     1250        return 0
     1251    }
     1252
    11541253        if {[file exists $helpfile]} {
    11551254                if {[catch {source $helpfile} err]} {
    11561255                        puts stderr "Error reading helpfile $helpfile: $err"
    11571256                        return 1
    1158                 } else {
    1159                         if {[info exists porthelp($topic)]} {
    1160                                 puts stderr $porthelp($topic)
    1161                                 return 0
    1162                         } else {
    1163                                 puts stderr "No help for topic $topic"
    1164                                 return 1
    1165                         }
    11661257                }
    1167         } else {
     1258    } else {
    11681259                puts stderr "Unable to open help file $helpfile"
    11691260                return 1
    11701261        }
    1171     } else {
    1172         print_help
    1173     }
     1262
     1263    foreach topic $portlist {
     1264        if {![info exists porthelp($topic)]} {
     1265            puts stderr "No help for topic $topic"
     1266            return 1
     1267        }
     1268
     1269        set usage [action_get_usage $topic]
     1270        if {$usage != -1} {
     1271           puts -nonewline stderr $usage
     1272        } else {
     1273            ui_error "No usage for topic $topic"
     1274            return 1
     1275        }
     1276
     1277        puts stderr $porthelp($topic)
     1278    }
     1279
    11741280    return 0
    11751281}
     
    12421348            variants        1
    12431349        "
     1350
     1351        if {[info exists options(ports_info_depends)] && $options(ports_info_depends) == "yes"} {
     1352            array unset options ports_info_depends
     1353            set options(ports_info_depends_build) yes
     1354            set options(ports_info_depends_lib) yes
     1355            set options(ports_info_depends_run) yes
     1356        }
    12441357               
    12451358        # Set up our field separators
     
    12791392            if {![info exists portinfo($ropt)]} {
    12801393                if {!$quiet} {
    1281                     puts "no info for '$opt'"
    1282                 }
    1283                 continue
     1394                    puts stderr "no info for '$opt'"
     1395                }
     1396                set inf ""
     1397            } else {
     1398                set inf $portinfo($ropt)
    12841399            }
    12851400           
     
    12911406           
    12921407            # Format the data
    1293             set inf $portinfo($ropt)
    12941408            if { $ropt eq "maintainers" } {
    12951409                set inf [unobscure_maintainers $inf]
     
    13201434                global global_variations
    13211435
    1322                 puts -nonewline "Variants:    "
    13231436                set joiner ""
     1437                set vars ""
    13241438                foreach v [lsort $portinfo(variants)] {
    13251439                    set mod ""
     
    13321446                    }
    13331447                    # TODO: selected by default_variants (with [+]/[-])
    1334                     puts -nonewline "$joiner$mod$v"
     1448                    append vars "$joiner$mod$v"
    13351449                    set joiner ", "
    13361450                }
    1337                 puts ""
     1451                puts -nonewline "Variants:    "
     1452                puts [wrap $vars 0 [string repeat " " 13] 0]
    13381453            }
    13391454            puts ""
    13401455            if {[info exists portinfo(long_description)]} {
    1341                 puts [wrap [join $portinfo(long_description)] 80]
     1456                puts [wrap [join $portinfo(long_description)] 0]
    13421457            } else {
    13431458                if {[info exists portinfo(description)]} {
    1344                     puts [wrap [join $portinfo(description)] 80]
     1459                    puts [wrap [join $portinfo(description)] 0]
    13451460                }
    13461461            }
     
    13941509            break_softcontinue "port location failed: $result" 1 status
    13951510        } else {
     1511            # set portname again since the one we were passed may not have had the correct case
     1512            set portname [lindex $ilist 0]
    13961513            set version [lindex $ilist 1]
    13971514            set revision [lindex $ilist 2]
     
    14211538        return 1
    14221539    }
    1423     foreachport $portlist {
    1424         set file [compat filenormalize $portname]
     1540    foreach filename $portlist {
     1541        set file [compat filenormalize $filename]
    14251542        if {[file exists $file]} {
    14261543            if {![file isdirectory $file]} {
    1427                 set port [registry::file_registered $file] 
     1544                set port [registry::file_registered $file]
    14281545                if { $port != 0 } {
    14291546                    puts "$file is provided by: $port"
     
    15781695            ui_debug "$errorInfo"
    15791696            break_softcontinue "$result" 1 status
     1697        } else {
     1698            # set portname again since the one we were passed may not have had the correct case
     1699            set portname [lindex [lindex $ilist 0] 0]
    15801700        }
    15811701       
     
    18081928    }
    18091929    foreachport $portlist {
     1930        if { ![catch {set ilist [registry::installed $portname]} result] } {
     1931            # set portname again since the one we were passed may not have had the correct case
     1932            set portname [lindex [lindex $ilist 0] 0]
     1933        }
    18101934        set files [registry::port_registered $portname]
    18111935        if { $files != 0 } {
     
    18461970        array unset portinfo
    18471971        array set portinfo [lindex $result 1]
     1972        # set portname again since the one we were passed may not have had the correct case
     1973        set portname $portinfo(name)
    18481974
    18491975        set depstypes {depends_build depends_lib depends_run}
     
    18942020        array unset portinfo
    18952021        array set portinfo [lindex $result 1]
     2022        # set portname again since the one we were passed may not have had the correct case
     2023        set portname $portinfo(name)
    18962024        set porturl $portinfo(porturl)
    18972025        set portdir $portinfo(portdir)
     
    19412069
    19422070proc action_search { action portlist opts } {
    1943     global private_options
     2071    global private_options global_options
    19442072    set status 0
    19452073    if {![llength $portlist] && [info exists private_options(ports_no_args)] && $private_options(ports_no_args) == "yes"} {
     
    19492077   
    19502078    set separator ""
    1951     foreachport $portlist {
     2079    foreach portname $portlist {
    19522080        puts -nonewline $separator
    19532081
     2082        if {[string first "*" $portname] == -1} {
     2083            set searchstring "*$portname*"
     2084        } else {
     2085            set searchstring $portname
     2086        }
     2087
    19542088        set portfound 0
    1955         if {[catch {set res [mportsearch $portname no]} result]} {
     2089        set res {}
     2090        if {[catch {set matches [mportsearch $searchstring no glob name]} result]} {
    19562091            global errorInfo
    19572092            ui_debug "$errorInfo"
    1958             break_softcontinue "search for portname $portname failed: $result" 1 status
    1959         }
     2093            break_softcontinue "search for name $portname failed: $result" 1 status
     2094        }
     2095        set tmp {}
     2096        foreach {name info} $matches {
     2097            add_to_portlist tmp [concat [list name $name] $info]
     2098        }
     2099        set res [opUnion $res $tmp]
     2100        if {[catch {set matches [mportsearch $searchstring no glob description]} result]} {
     2101            global errorInfo
     2102            ui_debug "$errorInfo"
     2103            break_softcontinue "search for description $portname failed: $result" 1 status
     2104        }
     2105        set tmp {}
     2106        foreach {name info} $matches {
     2107            add_to_portlist tmp [concat [list name $name] $info]
     2108        }
     2109        set res [opUnion $res $tmp]
     2110        if {[catch {set matches [mportsearch $searchstring no glob long_description]} result]} {
     2111            global errorInfo
     2112            ui_debug "$errorInfo"
     2113            break_softcontinue "search for long_description $portname failed: $result" 1 status
     2114        }
     2115        set tmp {}
     2116        foreach {name info} $matches {
     2117            add_to_portlist tmp [concat [list name $name] $info]
     2118        }
     2119        set res [opUnion $res $tmp]
     2120        set res [portlist_sort $res]
     2121
    19602122        set joiner ""
    1961         foreach {name array} $res {
     2123        foreach info $res {
    19622124            array unset portinfo
    1963             array set portinfo $array
     2125            array set portinfo $info
    19642126
    19652127            # XXX is this the right place to verify an entry?
     
    19802142                puts $portinfo(name)
    19812143            } else {
    1982                 puts -nonewline $joiner
    1983 
    1984                 puts -nonewline "$portinfo(name) @$portinfo(version)"
    1985                 if {[info exists portinfo(categories)]} {
    1986                     puts -nonewline " ([join $portinfo(categories) ", "])"
    1987                 }
    1988                 puts ""
    1989                 puts [wrap [join $portinfo(description)] 76 [string repeat " " 4]]
     2144                if {[info exists global_options(ports_search_line)]
     2145                        && $global_options(ports_search_line) == "yes"} {
     2146                    puts "$portinfo(name)\t$portinfo(version)\t$portinfo(categories)\t$portinfo(description)"
     2147                } else {
     2148                    puts -nonewline $joiner
     2149
     2150                    puts -nonewline "$portinfo(name) @$portinfo(version)"
     2151                    if {[info exists portinfo(categories)]} {
     2152                        puts -nonewline " ([join $portinfo(categories) ", "])"
     2153                    }
     2154                    puts ""
     2155                    puts [wrap [join $portinfo(description)] 0 [string repeat " " 4]]
     2156                }
    19902157            }
    19912158
     
    19952162        if { !$portfound } {
    19962163            ui_msg "No match for $portname found"
    1997         } elseif {[llength $res] > 2} {
    1998             ui_msg "\nFound [expr [llength $res] / 2] ports."
     2164        } elseif {[llength $res] > 1} {
     2165            if {![info exists global_options(ports_search_line)]
     2166                    || $global_options(ports_search_line) != "yes"} {
     2167                ui_msg "\nFound [llength $res] ports."
     2168            }
    19992169        }
    20002170
     
    21262296                    }
    21272297                   
    2128                     # Invoke the editor
    2129                     if { $editor == "" } {
    2130                         break_softcontinue "No EDITOR is specified in your environment" 1 status
    2131                     } else {
    2132                         if {[catch {eval exec >/dev/stdout </dev/stdin $editor $portfile} result]} {
    2133                             global errorInfo
    2134                             ui_debug "$errorInfo"
    2135                             break_softcontinue "unable to invoke editor $editor: $result" 1 status
    2136                         }
     2298                    # Invoke the editor, with a reasonable canned default.
     2299                    if { $editor == "" } { set editor "/usr/bin/vi" }
     2300                    if {[catch {eval exec >/dev/stdout </dev/stdin $editor $portfile} result]} {
     2301                        global errorInfo
     2302                        ui_debug "$errorInfo"
     2303                        break_softcontinue "unable to invoke editor $editor: $result" 1 status
    21372304                    }
    21382305                   
     
    21972364
    21982365proc action_sync { action portlist opts } {
     2366    global global_options
     2367
    21992368    set status 0
    2200     if {[catch {mportsync} result]} {
     2369    if {[catch {mportsync [array get global_options]} result]} {
    22012370        global errorInfo
    22022371        ui_debug "$errorInfo"
     
    23132482}
    23142483
    2315 
     2484# action_array specifies which action to run on the given command
     2485# and if the action wants an expanded portlist.
     2486# The value is a list of the form {action expand},
     2487# where action is a string and expand a value:
     2488#   0 none        Does not expect any text argument
     2489#   1 strings     Expects some strings as text argument
     2490#   2 ports       Wants an expanded list of ports as text argument
     2491# Use action_args_const to translate them
    23162492global action_array
    2317 array set action_array {
    2318     usage       action_usage
    2319     help        action_help
    2320 
    2321     echo        action_echo
    2322    
    2323     info        action_info
    2324     location    action_location
    2325     provides    action_provides
    2326    
    2327     activate    action_activate
    2328     deactivate  action_deactivate
    2329    
    2330     sync        action_sync
    2331     selfupdate  action_selfupdate
    2332    
    2333     upgrade     action_upgrade
    2334    
    2335     version     action_version
    2336     platform    action_platform
    2337     compact     action_compact
    2338     uncompact   action_uncompact
    2339    
    2340     uninstall   action_uninstall
    2341    
    2342     installed   action_installed
    2343     outdated    action_outdated
    2344     contents    action_contents
    2345     dependents  action_dependents
    2346     deps        action_deps
    2347     variants    action_variants
    2348    
    2349     search      action_search
    2350     list        action_list
    2351    
    2352     ed          action_portcmds
    2353     edit        action_portcmds
    2354     cat         action_portcmds
    2355     dir         action_portcmds
    2356     work        action_portcmds
    2357     cd          action_portcmds
    2358     url         action_portcmds
    2359     file        action_portcmds
    2360     gohome      action_portcmds
    2361    
    2362     fetch       action_target
    2363     checksum    action_target
    2364     extract     action_target
    2365     patch       action_target
    2366     configure   action_target
    2367     build       action_target
    2368     destroot    action_target
    2369     install     action_target
    2370     clean       action_target
    2371     test        action_target
    2372     lint        action_target
    2373     submit      action_target
    2374     trace       action_target
    2375     livecheck   action_target
    2376     distcheck   action_target
    2377     mirror      action_target
    2378     load        action_target
    2379     unload      action_target
    2380 
    2381     archive     action_target
    2382     unarchive   action_target
    2383     dmg         action_target
    2384     mdmg        action_target
    2385     dpkg        action_target
    2386     mpkg        action_target
    2387     pkg         action_target
    2388     rpm         action_target
    2389     srpm        action_target
    2390 
    2391     quit        action_exit
    2392     exit        action_exit
    2393 }
    2394 
     2493proc action_args_const {arg} {
     2494    switch -- $arg {
     2495        none {
     2496            return 0
     2497        }
     2498        strings {
     2499            return 1
     2500        }
     2501        default -
     2502        ports {
     2503            return 2
     2504        }
     2505    }
     2506}
     2507array set action_array [list \
     2508    usage       [list action_usage          [action_args_const strings]] \
     2509    help        [list action_help           [action_args_const strings]] \
     2510    \
     2511    echo        [list action_echo           [action_args_const ports]] \
     2512    \
     2513    info        [list action_info           [action_args_const ports]] \
     2514    location    [list action_location       [action_args_const ports]] \
     2515    provides    [list action_provides       [action_args_const strings]] \
     2516    \
     2517    activate    [list action_activate       [action_args_const ports]] \
     2518    deactivate  [list action_deactivate     [action_args_const ports]] \
     2519    \
     2520    sync        [list action_sync           [action_args_const none]] \
     2521    selfupdate  [list action_selfupdate     [action_args_const none]] \
     2522    \
     2523    upgrade     [list action_upgrade        [action_args_const ports]] \
     2524    \
     2525    version     [list action_version        [action_args_const none]] \
     2526    platform    [list action_platform       [action_args_const none]] \
     2527    compact     [list action_compact        [action_args_const ports]] \
     2528    uncompact   [list action_uncompact      [action_args_const ports]] \
     2529    \
     2530    uninstall   [list action_uninstall      [action_args_const ports]] \
     2531    \
     2532    installed   [list action_installed      [action_args_const ports]] \
     2533    outdated    [list action_outdated       [action_args_const ports]] \
     2534    contents    [list action_contents       [action_args_const ports]] \
     2535    dependents  [list action_dependents     [action_args_const ports]] \
     2536    deps        [list action_deps           [action_args_const ports]] \
     2537    variants    [list action_variants       [action_args_const ports]] \
     2538    \
     2539    search      [list action_search         [action_args_const strings]] \
     2540    list        [list action_list           [action_args_const ports]] \
     2541    \
     2542    ed          [list action_portcmds       [action_args_const ports]] \
     2543    edit        [list action_portcmds       [action_args_const ports]] \
     2544    cat         [list action_portcmds       [action_args_const ports]] \
     2545    dir         [list action_portcmds       [action_args_const ports]] \
     2546    work        [list action_portcmds       [action_args_const ports]] \
     2547    cd          [list action_portcmds       [action_args_const ports]] \
     2548    url         [list action_portcmds       [action_args_const ports]] \
     2549    file        [list action_portcmds       [action_args_const ports]] \
     2550    gohome      [list action_portcmds       [action_args_const ports]] \
     2551    \
     2552    fetch       [list action_target         [action_args_const ports]] \
     2553    checksum    [list action_target         [action_args_const ports]] \
     2554    extract     [list action_target         [action_args_const ports]] \
     2555    patch       [list action_target         [action_args_const ports]] \
     2556    configure   [list action_target         [action_args_const ports]] \
     2557    build       [list action_target         [action_args_const ports]] \
     2558    destroot    [list action_target         [action_args_const ports]] \
     2559    install     [list action_target         [action_args_const ports]] \
     2560    clean       [list action_target         [action_args_const ports]] \
     2561    test        [list action_target         [action_args_const ports]] \
     2562    lint        [list action_target         [action_args_const ports]] \
     2563    submit      [list action_target         [action_args_const ports]] \
     2564    trace       [list action_target         [action_args_const ports]] \
     2565    livecheck   [list action_target         [action_args_const ports]] \
     2566    distcheck   [list action_target         [action_args_const ports]] \
     2567    mirror      [list action_target         [action_args_const ports]] \
     2568    load        [list action_target         [action_args_const ports]] \
     2569    unload      [list action_target         [action_args_const ports]] \
     2570    distfiles   [list action_target         [action_args_const ports]] \
     2571    \
     2572    archive     [list action_target         [action_args_const ports]] \
     2573    unarchive   [list action_target         [action_args_const ports]] \
     2574    dmg         [list action_target         [action_args_const ports]] \
     2575    mdmg        [list action_target         [action_args_const ports]] \
     2576    dpkg        [list action_target         [action_args_const ports]] \
     2577    mpkg        [list action_target         [action_args_const ports]] \
     2578    pkg         [list action_target         [action_args_const ports]] \
     2579    rpm         [list action_target         [action_args_const ports]] \
     2580    srpm        [list action_target         [action_args_const ports]] \
     2581    \
     2582    quit        [list action_exit           [action_args_const none]] \
     2583    exit        [list action_exit           [action_args_const none]] \
     2584]
    23952585
    23962586proc find_action_proc { action } {
     
    23992589    set action_proc ""
    24002590    if { [info exists action_array($action)] } {
    2401         set action_proc $action_array($action)
     2591        set action_proc [lindex $action_array($action) 0]
    24022592    }
    24032593   
     
    24052595}
    24062596
     2597# Returns whether an action expects text arguments at all,
     2598# expects text arguments or wants an expanded list of ports
     2599# Return value:
     2600#   0 none        Does not expect any text argument
     2601#   1 strings     Expects some strings as text argument
     2602#   2 ports       Wants an expanded list of ports as text argument
     2603# Use action_args_const to translate them
     2604proc action_needs_portlist { action } {
     2605    global action_array
     2606
     2607    set ret 0
     2608    if {[info exists action_array($action)]} {
     2609        set ret [lindex $action_array($action) 1]
     2610    }
     2611
     2612    return $ret
     2613}
     2614
     2615# cmd_args_array specifies which arguments the commands accept
     2616# Commands not listed here do not accept any arguments
     2617# Syntax if {option argn}
     2618# Where option is the name of the option and argn specifies how many arguments
     2619# this argument takes
     2620global cmd_args_array
     2621array set cmd_args_array {
     2622    info        {{category 0} {categories 0} {depends_build 0} {depends_lib 0}
     2623                {depends_run 0} {depends 0} {description 0} {epoch 0}
     2624                {homepage 0} {index 0} {line 0} {long_description 0}
     2625                {maintainer 0} {maintainers 0} {name 0} {platform 0}
     2626                {platforms 0} {portdir 0} {revision 0} {variant 0} {variants 0}
     2627                {version 0}}
     2628    search      {{line 0}}
     2629    selfupdate  {{nosync 0} {pretend 0}}
     2630    uninstall   {{follow-dependents 0}}
     2631    variants    {{index 0}}
     2632    clean       {{all 0} {archive 0} {dist 0} {work 0}}
     2633    mirror      {{new 0}}
     2634}
     2635
     2636##
     2637# Checks whether the given option is valid
     2638#
     2639# œparam action for which action
     2640# @param option the option to check
     2641# @param upoptargc reference to upvar for storing the number of arguments for
     2642#                  this option
     2643proc cmd_option_exists { action option {upoptargc ""}} {
     2644    global cmd_args_array
     2645    upvar 1 $upoptargc optargc
     2646
     2647    # This could be so easy with lsearch -index,
     2648    # but that's only available as of Tcl 8.5
     2649
     2650    if {![info exists cmd_args_array($action)]} {
     2651        return 0
     2652    }
     2653
     2654    foreach item $cmd_args_array($action) {
     2655        set name [lindex $item 0]
     2656        set argc [lindex $item 1]
     2657
     2658        if {$name == $option} {
     2659            set optargc $argc
     2660            return 1
     2661        }
     2662    }
     2663
     2664    return 0
     2665}
    24072666
    24082667# Parse global options
     
    24172676    upvar $ui_options_name ui_options
    24182677    upvar $global_options_name global_options
    2419     global cmdname
     2678    global cmdname cmd_args_array
    24202679   
    24212680    while {[moreargs]} {
     
    24322691                default {
    24332692                    set key [string range $arg 2 end]
    2434                     set global_options(ports_${action}_${key}) yes
     2693                    set kargc 0
     2694                    if {![cmd_option_exists $action $key kargc]} {
     2695                        return -code error "${action} does not accept --${key}"
     2696                    }
     2697                    if {$kargc == 0} {
     2698                        set global_options(ports_${action}_${key}) yes
     2699                    } else {
     2700                        set args {}
     2701                        while {[moreargs] && $kargc > 0} {
     2702                            advance
     2703                            lappend args [lookahead]
     2704                            set kargc [expr $kargc - 1]
     2705                        }
     2706                        if {$kargc > 0} {
     2707                            return -code error "--${key} expects [expr $kargc + [llength $args]] parameters!"
     2708                        }
     2709                        set global_options(ports_${action}_${key}) $args
     2710                    }
    24352711                }
    24362712            }
     
    25542830        array set global_options $global_options_base
    25552831       
     2832        # Find an action to execute
     2833        set action_proc [find_action_proc $action]
     2834        if { $action_proc == "" } {
     2835            puts "Unrecognized action \"$action\""
     2836            set action_status 1
     2837            break
     2838        }
     2839
    25562840        # Parse options that will be unique to this action
    25572841        # (to avoid abiguity with -variants and a default port, either -- must be
    25582842        # used to terminate option processing, or the pseudo-port current must be specified).
    2559         parse_options $action ui_options global_options
    2560        
     2843        if {[catch {parse_options $action ui_options global_options} result]} {
     2844            global errorInfo
     2845            ui_debug "$errorInfo"
     2846            ui_error $result
     2847            set action_status 1
     2848            break
     2849        }
     2850
     2851        # What kind of arguments does the command expect?
     2852        set expand [action_needs_portlist $action]
     2853
    25612854        # Parse action arguments, setting a special flag if there were none
    25622855        # We otherwise can't tell the difference between arguments that evaluate
     
    25692862            }
    25702863            default {
    2571                 # Parse port specifications into portlist
    2572                 if {![portExpr portlist]} {
    2573                     ui_error "Improper expression syntax while processing parameters"
     2864                if {[action_args_const none] == $expand} {
     2865                    ui_error "$action does not accept string arguments"
    25742866                    set action_status 1
    25752867                    break
    2576                 }
    2577             }
    2578         }
    2579        
    2580         # Find an action to execute
    2581         set action_proc [find_action_proc $action]
    2582         if { $action_proc != "" } {
    2583             set action_status [$action_proc $action $portlist [array get global_options]]
    2584         } else {
    2585             puts "Unrecognized action \"$action\""
    2586             set action_status 1
    2587         }
     2868                } elseif {[action_args_const strings] == $expand} {
     2869                    while { [moreargs] && ![match ";"] } {
     2870                        lappend portlist [lookahead]
     2871                        advance
     2872                    }
     2873                } elseif {[action_args_const ports] == $expand} {
     2874                    # Parse port specifications into portlist
     2875                    if {![portExpr portlist]} {
     2876                        ui_error "Improper expression syntax while processing parameters"
     2877                        set action_status 1
     2878                        break
     2879                    }
     2880                }
     2881            }
     2882        }
     2883       
     2884        # execute the action
     2885        set action_status [$action_proc $action $portlist [array get global_options]]
    25882886
    25892887        # semaphore to exit
     
    26012899
    26022900proc complete_portname { text state } {
    2603     global action_array
    26042901    global complete_choices complete_position
    26052902   
     
    28073104array set private_options {}
    28083105
     3106# Make sure we get the size of the terminal
     3107# We do this here to save it in the boot_env, in case we determined it manually
     3108set_term_size
     3109
    28093110# Save off a copy of the environment before mportinit monkeys with it
    28103111global env boot_env
  • branches/variant-descs-14482/base/src/port1.0/Makefile

    r31943 r37509  
    66        portclean.tcl porttest.tcl portactivate.tcl portsubmit.tcl \
    77        port_autoconf.tcl portstartupitem.tcl porttrace.tcl portlivecheck.tcl \
    8         portdistcheck.tcl portmirror.tcl portload.tcl portunload.tcl
     8        portdistcheck.tcl portmirror.tcl portload.tcl portunload.tcl \
     9        portdistfiles.tcl
    910
    1011SUBDIR=         resources
  • branches/variant-descs-14482/base/src/port1.0/port.tcl

    r31500 r37509  
    5555package require portload 1.0
    5656package require portunload 1.0
     57
     58package require portdistfiles 1.0
  • branches/variant-descs-14482/base/src/port1.0/port_autoconf.tcl.in

    r33620 r37509  
    3434        variable cvs_path "@CVS@"
    3535        variable svn_path "@SVN@"
     36        variable git_path "@GIT@"
    3637        variable rsync_path "@RSYNC@"
    3738        variable mtree_path "@MTREE@"
  • branches/variant-descs-14482/base/src/port1.0/portbuild.tcl

    r31807 r37509  
    4646# defaults
    4747default build.dir {${workpath}/${worksrcdir}}
    48 default build.cmd {[build_getnicevalue][build_getmaketype][build_getmakejobs]}
     48default build.cmd {[build_getmaketype]}
    4949default build.nice {${buildnicevalue}}
    5050default build.jobs {${buildmakejobs}}
     
    119119    ui_debug "port allows a parallel build"
    120120
    121     if {![exists build.jobs] || ![string match "*make*" [build_getmaketype]]} {
     121    if {![exists build.jobs] || ![string match "*make*" [option build.cmd]]} {
    122122        return ""
    123123    }
     
    144144
    145145proc build_main {args} {
     146    global build.cmd
     147
     148    set nice_prefix [build_getnicevalue]
     149    set jobs_suffix [build_getmakejobs]
     150
     151    set realcmd ${build.cmd}
     152    set build.cmd "$nice_prefix${build.cmd}$jobs_suffix"
    146153    command_exec build
     154    set build.cmd ${realcmd}
    147155    return 0
    148156}
  • branches/variant-descs-14482/base/src/port1.0/portconfigure.tcl

    r34872 r37509  
    201201# internal function to determine the CFLAGS for the compiler
    202202proc configure_get_universal_cflags {args} {
    203     global configure.universal_sysroot
     203    global configure.universal_sysroot configure.universal_target
    204204    global os.platform os.arch os.version os.major
    205205    set flags [configure_get_universal_archflags]
     
    217217# internal function to determine the LDFLAGS for the compiler
    218218proc configure_get_universal_ldflags {args} {
    219     global configure.universal_sysroot configure.universal_target 
     219    global configure.universal_sysroot configure.universal_target
    220220    global os.platform os.arch os.version os.major
    221221    set flags [configure_get_universal_archflags]
  • branches/variant-descs-14482/base/src/port1.0/portextract.tcl

    r31028 r37509  
    5959
    6060proc extract_init {args} {
    61     global extract.only extract.dir extract.cmd extract.pre_args extract.post_args extract.mkdir distfiles use_bzip2 use_zip workpath
     61    global extract.only extract.dir extract.cmd extract.pre_args extract.post_args extract.mkdir distfiles use_bzip2 use_zip use_dmg workpath
    6262
    6363    # should the distfiles be extracted to worksrcpath instead?
     
    7575        option extract.pre_args -q
    7676        option extract.post_args "-d [option extract.dir]"
     77    } elseif {[tbool use_dmg]} {
     78        global worksrcdir
     79        set dmg_tmp_dir [exec mktemp -d -q "/tmp/mports.XXXXXXXX"]
     80        set dmg_mount ${dmg_tmp_dir}/${worksrcdir}
     81        file mkdir ${dmg_mount}
     82        option extract.cmd [binaryInPath "hdiutil"]
     83        option extract.pre_args attach
     84        option extract.post_args "-private -readonly -nobrowse -mountpoint ${dmg_mount} && [binaryInPath "cp"] -Rp ${dmg_mount} ${extract.dir} && ${extract.cmd} detach ${dmg_mount} && [binaryInPath "rmdir"] ${dmg_mount} ${dmg_tmp_dir}"
    7785    }
    7886}
  • branches/variant-descs-14482/base/src/port1.0/portfetch.tcl

    r32801 r37509  
    1 # et:ts=4
     1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
    22# portfetch.tcl
    33# $Id$
     
    4242
    4343# define options: distname master_sites
    44 options master_sites patch_sites extract.suffix distfiles patchfiles use_zip use_bzip2 dist_subdir \
     44options master_sites patch_sites extract.suffix distfiles patchfiles use_zip use_bzip2 use_dmg dist_subdir \
    4545        fetch.type fetch.user fetch.password fetch.use_epsv fetch.ignore_sslcert \
    4646        master_sites.mirror_subdir patch_sites.mirror_subdir portname \
    4747        cvs.module cvs.root cvs.password cvs.date cvs.tag \
    48         svn.url svn.tag
     48        svn.url svn.tag \
     49        git.url git.branch
    4950       
    5051# XXX we use the command framework to buy us some useful features,
     
    7677default svn.post_args {"${svn.url}"}
    7778
     79default git.dir {${workpath}}
     80default git.branch {}
     81
    7882# Set distfiles
    7983default distfiles {[suffix $distname]}
     
    8791# Ignore SSL certificate
    8892default fetch.ignore_sslcert "no"
     93# Use remote timestamps
     94default fetch.remote_time "no"
    8995
    9096default fallback_mirror_site "macports"
     97default global_mirror_site "macports_distfiles"
    9198default mirror_sites.listfile {"mirror_sites.tcl"}
    9299default mirror_sites.listpath {"${portresourcepath}/fetch/"}
     
    95102option_proc use_bzip2 fix_extract_suffix
    96103option_proc use_zip fix_extract_suffix
     104option_proc use_dmg fix_extract_suffix
    97105
    98106proc fix_extract_suffix {option action args} {
     
    106114                set extract.suffix .zip
    107115            }
     116            use_dmg {
     117                set extract.suffix .dmg
     118            }
    108119        }
    109120    }
     
    116127set_ui_prefix
    117128
    118 # Given a distname, return a suffix based on the use_zip / use_bzip2 / extract.suffix options
     129# Given a distname, return a suffix based on the use_zip / use_bzip2 / use_dmg / extract.suffix options
    119130proc suffix {distname} {
    120131    global extract.suffix fetch.type
    121132    switch -- "${fetch.type}" {
    122133        cvs                     -
    123         svn                     { return "" }
     134        svn                     -
     135        git                     { return "" }
    124136        standard        -
    125137        default         { return "${distname}${extract.suffix}" }
     
    208220proc checksites {args} {
    209221    global patch_sites master_sites master_sites.mirror_subdir \
    210         patch_sites.mirror_subdir fallback_mirror_site env
    211    
    212     append master_sites " ${fallback_mirror_site}"
     222        patch_sites.mirror_subdir fallback_mirror_site global_mirror_site env
     223   
     224    append master_sites " ${global_mirror_site} ${fallback_mirror_site}"
    213225    if {[info exists env(MASTER_SITE_LOCAL)]} {
    214226        set master_sites [concat $env(MASTER_SITE_LOCAL) $master_sites]
    215227    }
    216228   
    217     append patch_sites " ${fallback_mirror_site}"
     229    append patch_sites " ${global_mirror_site} ${fallback_mirror_site}"
    218230    if {[info exists env(PATCH_SITE_LOCAL)]} {
    219231        set patch_sites [concat $env(PATCH_SITE_LOCAL) $patch_sites]
     
    297309}
    298310
     311# sorts fetch_urls in order of ping time
     312proc sortsites {args} {
     313    global fetch_urls fallback_mirror_site
     314
     315    set fallback_mirror_list [mirror_sites $fallback_mirror_site {} {}]
     316
     317    foreach {url_var distfile} $fetch_urls {
     318        global portfetch::$url_var
     319        if {![info exists $url_var]} {
     320            ui_error [format [msgcat::mc "No defined site for tag: %s, using master_sites"] $url_var]
     321            set url_var master_sites
     322            global portfetch::$url_var
     323        }
     324        set urllist [set $url_var]
     325        set hosts {}
     326        set hostregex {[a-zA-Z]+://([a-zA-Z0-9\.\-_]+)}
     327
     328        if {[llength $urllist] - [llength $fallback_mirror_list] <= 1} {
     329            # there is only one mirror, no need to ping or sort
     330            continue
     331        }
     332
     333        foreach site $urllist {
     334            regexp $hostregex $site -> host
     335
     336            if { [info exists seen($host)] } {
     337                continue
     338            }
     339            foreach fallback $fallback_mirror_list {
     340                if {[string match [append fallback *] $site]} {
     341                    # don't bother pinging fallback mirrors
     342                    set seen($host) yes
     343                    # and make them sort to the very end of the list
     344                    set pingtimes($host) 20000
     345                    break
     346                }
     347            }
     348            if { ![info exists seen($host)] } {
     349                set seen($host) yes
     350                lappend hosts $host
     351                ui_debug "Pinging $host..."
     352                set fds($host) [open "|ping -noq -c3 -t3 $host | grep round-trip | cut -d / -f 5"]
     353            }
     354        }
     355
     356        foreach host $hosts {
     357            set len [gets $fds($host) pingtimes($host)]
     358            if { [catch { close $fds($host) }] || ![string is double -strict $pingtimes($host)] } {
     359                # ping failed, so put it last in the list (but before the fallback mirrors)
     360                set pingtimes($host) 10000
     361            }
     362            ui_debug "$host ping time is $pingtimes($host)"
     363        }
     364       
     365        set pinglist {}
     366        foreach site $urllist {
     367            regexp $hostregex $site -> host
     368            lappend pinglist [ list $site $pingtimes($host) ]
     369        }
     370
     371        set pinglist [ lsort -real -index 1 $pinglist ]
     372
     373        set $url_var {}
     374        foreach pair $pinglist {
     375            lappend $url_var [lindex $pair 0]
     376        }
     377    }
     378}
     379
    299380# Perform the full checksites/checkpatchfiles/checkdistfiles sequence.
    300381# This method is used by distcheck target.
     
    388469}
    389470
     471# Perform a git fetch
     472proc gitfetch {args} {
     473    global worksrcpath prefix_frozen
     474    global git.url git.branch git.sha1
     475   
     476    # Look for the git command
     477    set git.cmd {}
     478    foreach gitcmd "$portutil::autoconf::git_path $prefix_frozen/bin/git git" {
     479        if {[file executable $gitcmd]} {
     480            set git.cmd $gitcmd
     481            break
     482        }
     483    }
     484    if {${git.cmd} == {}} {
     485        ui_error "git is required to fetch ${git.url}"
     486        ui_error "Please install the git-core port before proceeding."
     487        return -code error [msgcat::mc "Git command not found"]
     488    }
     489   
     490    set options "-q"
     491    if {[string length ${git.branch}] == 0} {
     492        # if we're just using HEAD, we can make a shallow repo
     493        set options "$options --depth=1"
     494    }
     495    set cmdstring "${git.cmd} clone $options ${git.url} ${worksrcpath} 2>&1"
     496    ui_debug "Executing: $cmdstring"
     497    if {[catch {system $cmdstring} result]} {
     498        return -code error [msgcat::mc "Git clone failed"]
     499    }
     500   
     501    if {[string length ${git.branch}] > 0} {
     502        set env "GIT_DIR=${worksrcpath}/.git GIT_WORK_TREE=${worksrcpath}"
     503        set cmdstring "$env ${git.cmd} checkout -q ${git.branch} 2>&1"
     504        ui_debug "Executing $cmdstring"
     505        if {[catch {system $cmdstring} result]} {
     506            return -code error [msgcat::mc "Git checkout failed"]
     507        }
     508    }
     509   
     510    if {[info exists patchfiles]} {
     511        return [fetchfiles]
     512    }
     513   
     514    return 0
     515}
     516
    390517# Perform a standard fetch, assembling fetch urls from
    391518# the listed url varable and associated distfile
    392519proc fetchfiles {args} {
    393520        global distpath all_dist_files UI_PREFIX fetch_urls
    394         global fetch.user fetch.password fetch.use_epsv fetch.ignore_sslcert
     521        global fetch.user fetch.password fetch.use_epsv fetch.ignore_sslcert fetch.remote_time
    395522        global distfile site
    396523        global portverbose
     
    413540                lappend fetch_options "--ignore-ssl-cert"
    414541        }
     542        if {${fetch.remote_time} != "no"} {
     543                lappend fetch_options "--remote-time"
     544        }
    415545        if {$portverbose == "yes"} {
    416546                lappend fetch_options "-v"
    417547        }
     548        set sorted no
    418549       
    419550        foreach {url_var distfile} $fetch_urls {
     
    422553                        if {![file writable $distpath]} {
    423554                                return -code error [format [msgcat::mc "%s must be writable"] $distpath]
     555                        }
     556                        if {!$sorted} {
     557                            sortsites
     558                            set sorted yes
    424559                        }
    425560                        global portfetch::$url_var
     
    491626# Initialize fetch target and call checkfiles.
    492627proc fetch_init {args} {
    493     global distfiles distname distpath all_dist_files dist_subdir fetch.type
    494    
    495     if {[info exist distpath] && [info exists dist_subdir]} {
    496         set distpath ${distpath}/${dist_subdir}
     628    global distfiles distname distpath all_dist_files dist_subdir fetch.type fetch_init_done
     629   
     630    if {[info exists distpath] && [info exists dist_subdir] && ![info exists fetch_init_done]} {
     631            set distpath ${distpath}/${dist_subdir}
     632            set fetch_init_done yes
    497633    }
    498634    checkfiles
     
    521657        cvs             { return [cvsfetch] }
    522658        svn             { return [svnfetch] }
     659        git             { return [gitfetch] }
    523660        standard -
    524661        default { return [fetchfiles] }
  • branches/variant-descs-14482/base/src/port1.0/portinstall.tcl

    r28796 r37509  
    4949proc install_start {args} {
    5050        global UI_PREFIX portname portversion portrevision variations portvariants
    51         ui_msg "$UI_PREFIX [format [msgcat::mc "Installing %s %s_%s%s"] $portname $portversion $portrevision $portvariants]"
     51        ui_msg "$UI_PREFIX [format [msgcat::mc "Installing %s @%s_%s%s"] $portname $portversion $portrevision $portvariants]"
    5252}
    5353
  • branches/variant-descs-14482/base/src/port1.0/portlivecheck.tcl

    r34872 r37509  
    188188                        if {[regexp $the_re $line matched upver]} {
    189189                            set foundmatch 1
    190                             if {[rpm-vercomp $upver $updated_version] > 0} {
     190                            if {$updated_version == 0 || [rpm-vercomp $upver $updated_version] > 0} {
    191191                                set updated_version $upver
    192192                            }
  • branches/variant-descs-14482/base/src/port1.0/portmain.tcl

    r34872 r37509  
    4545options long_description description homepage
    4646options worksrcdir filesdir distname portdbpath libpath distpath sources_conf os.platform os.version os.major os.arch os.endian platforms default_variants install.user install.group macosx_deployment_target
     47options universal_variant os.universal_supported
    4748
    4849# Export options via PortInfo
     
    5960default prefix /opt/local
    6061default x11prefix /usr/X11R6
     62default applications_dir /Applications/MacPorts
     63default frameworks_dir /Library/Frameworks
    6164default destdir destroot
    6265default destpath {${workpath}/${destdir}}
     
    9598# Remove trailing "Endian"
    9699default os.endian {[string range $tcl_platform(byteOrder) 0 end-6]}
     100default os.universal_supported no
    97101
    98102set macosx_version {}
     
    104108default macosx_deployment_target {$macosx_version}
    105109
     110default universal_variant yes
     111
    106112# Select implicit variants
    107113if {[info exists os.platform] && ![info exists variations(${os.platform})]} { variant_set ${os.platform}}
     
    110116if {[info exists os.platform] && (${os.platform} == "darwin") && [file isdirectory /System/Library/Frameworks/Carbon.framework] && ![info exists variations(macosx)]} { variant_set macosx }
    111117if {[info exists variations(macosx)] && $variations(macosx) == "+"} {
    112     # Declare default universal variant, on >10.3
    113     variant universal {
    114         if {[tbool use_xmkmf] || ![tbool use_configure]} {
    115             return -code error "Default universal variant only works with ports based on configure"
    116         }
    117         eval configure.args-append ${configure.universal_args}
    118         if {![file exists ${configure.universal_sysroot}]} {
    119             return -code error "Universal SDK is not installed (are we running on 10.3? did you forget to install it?) and building with +universal will very likely fail"
    120         }
    121         eval configure.cflags-append ${configure.universal_cflags}
    122         eval configure.cppflags-append ${configure.universal_cppflags}
    123         eval configure.cxxflags-append ${configure.universal_cxxflags}
    124         eval configure.ldflags-append ${configure.universal_ldflags}
    125     }
     118    # the universal variant itself is now created in
     119    # add_default_universal_variant, which is called from mportopen
     120    option os.universal_supported yes
     121
    126122    if {[info exists variations(universal)] && $variations(universal) == "+"} {
    127123        # cannot go into the variant, due to the amount of ports overriding it
     
    131127        }
    132128    }
    133 
    134     # This is not a standard option, because we need to take an action when it's
    135     # set, in order to alter the PortInfo structure in time.
    136     proc universal_variant {state} {
    137         if {${state} == "no"} {
    138             variant_undef universal
    139         }
    140     }
    141 } else {
    142     proc universal_variant {state} {
    143         if {${state} != "no"} {
    144             ui_error "+universal is only available on +macosx"
    145         }
    146     }
    147129}
    148130
  • branches/variant-descs-14482/base/src/port1.0/portutil.tcl

    r36956 r37509  
    357357    # Restore the environment.
    358358    array unset env *
     359    unsetenv *
    359360    array set env [array get saved_env]
    360361
     
    805806        set cmdline $portutil::autoconf::sed_command
    806807        if {$extended} {
     808            if {$portutil::autoconf::sed_ext_flag == "N/A"} {
     809                ui_debug "sed extended regexp not available"
     810                return -code error "reinplace sed(1) too old"
     811            }
    807812            lappend cmdline $portutil::autoconf::sed_ext_flag
    808813        }
     
    12351240                        # Determine deptypes to look for based on target
    12361241                        switch $target {
    1237                             configure   { set deptypes "depends_lib depends_build" }
    1238                            
     1242                            configure   -
    12391243                            build       { set deptypes "depends_lib depends_build" }
    12401244                       
     
    12431247                            install     -
    12441248                            archive     -
     1249                            dmg         -
    12451250                            pkg         -
    12461251                            mpkg        -
     
    12481253                            srpm        -
    12491254                            dpkg        -
     1255                            mdmg        -
    12501256                            activate    -
    12511257                            ""          { set deptypes "depends_lib depends_build depends_run" }
     
    12671273                            lappend depsPorts $dep_portname
    12681274                        }
     1275
     1276                        # always allow gzip in destroot as it is used to compress man pages
     1277                        if {$target == "destroot"} {
     1278                            lappend depsPorts "gzip"
     1279                        }
    12691280                   
    12701281                        set portlist $depsPorts
    12711282                        foreach depName $depsPorts {
    1272                             set portlist [concat $portlist [recursive_collect_deps $depName $deptypes]]
     1283                            set portlist [recursive_collect_deps $depName $deptypes $portlist]
    12731284                        }
    1274                         #uniquer from http://aspn.activestate.com/ASPN/Cookbook/Tcl/Recipe/147663
    1275                         array set a [split "[join $portlist {::}]:" {:}]
    1276                         set depsPorts [array names a]
    12771285                   
    1278                         if {[llength $deptypes] > 0} {tracelib setdeps $depsPorts}
     1286                        if {[llength $deptypes] > 0} {tracelib setdeps $portlist}
    12791287                    }
    12801288                }
     
    13481356}
    13491357
    1350 # recursive found depends for portname
    1351 # It isn't ideal, because it scan many ports multiple time
    1352 proc recursive_collect_deps {portname deptypes} \
     1358# recursive dependency search for portname
     1359proc recursive_collect_deps {portname deptypes {depsfound {}}} \
    13531360{
    13541361    set res [mport_search ^$portname\$]
     
    13681375        }
    13691376    }
    1370    
    1371     set portdeps {}
     1377
     1378    set portdeps $depsfound
    13721379    foreach depspec $depends \
    13731380    {
    13741381        set portname [lindex [split $depspec :] end]
    1375         lappend portdeps $portname
    1376         set portdeps [concat $portdeps [recursive_collect_deps $portname $deptypes]]
     1382        if {[lsearch -exact $portdeps $portname] == -1} {
     1383            lappend portdeps $portname
     1384            set portdeps [recursive_collect_deps $portname $deptypes $portdeps]
     1385        }
    13771386    }
    13781387    return $portdeps
     
    16941703   
    16951704    return $result
     1705}
     1706
     1707proc default_universal_variant_allowed {args} {
     1708   
     1709    if {[variant_exists universal]} {
     1710        ui_debug "universal variant already exists, so not adding the default one"
     1711        return no
     1712    } elseif {[exists universal_variant] && ![option universal_variant]} {
     1713        ui_debug "'universal_variant no' specified, so not adding the default universal variant"
     1714        return no
     1715    } elseif {[exists use_xmkmf] && [option use_xmkmf]} {
     1716        ui_debug "using xmkmf, so not adding the default universal variant"
     1717        return no
     1718    } elseif {[exists use_configure] && ![option use_configure]} {
     1719        ui_debug "not using configure, so not adding the default universal variant"
     1720        return no
     1721    } elseif {![exists os.universal_supported] || ![option os.universal_supported]} {
     1722        ui_debug "OS doesn't support universal builds, so not adding the default universal variant"
     1723        return no
     1724    } else {
     1725        ui_debug "adding the default universal variant"
     1726        return yes
     1727    }
     1728}
     1729
     1730proc add_default_universal_variant {args} {
     1731    # Declare default universal variant if universal SDK is installed
     1732    variant universal description {Build for multiple architectures} {
     1733        pre-fetch {
     1734            if {![file exists ${configure.universal_sysroot}]} {
     1735                return -code error "Universal SDK is not installed (are we running on 10.3? did you forget to install it?) and building with +universal will very likely fail"
     1736            }
     1737        }
     1738
     1739        eval configure.args-append ${configure.universal_args}
     1740        eval configure.cflags-append ${configure.universal_cflags}
     1741        eval configure.cppflags-append ${configure.universal_cppflags}
     1742        eval configure.cxxflags-append ${configure.universal_cxxflags}
     1743        eval configure.ldflags-append ${configure.universal_ldflags}
     1744    }
    16961745}
    16971746
     
    21022151# e.g. call 'merge ${workpath}/pre-dest' with having a destroot in ${workpath}/pre-dest/i386 and ${workpath}/pre-dest/ppc64 -- single arch -- each
    21032152proc merge {base} {
    2104     global destroot
     2153    global destroot configure.universal_archs
    21052154
    21062155    # test which architectures are available, set one as base-architecture
    21072156    set archs ""
    21082157    set base_arch ""
    2109     foreach arch {"i386" "x86_64" "ppc" "ppc64"} {
     2158    foreach arch ${configure.universal_archs} {
    21102159        if [file exists "${base}/${arch}"] {
    21112160            set archs [concat ${archs} ${arch}]
  • branches/variant-descs-14482/base/src/port1.0/resources/fetch/mirror_sites.tcl

    r32741 r37509  
    1414
    1515set portfetch::mirror_sites::sites(afterstep) {
    16     ftp://ftp.afterstep.org/
    1716    ftp://ftp.kddlabs.co.jp/X11/AfterStep/
    1817    ftp://ftp.chg.ru/pub/X11/windowmanagers/afterstep/
     18    ftp://ftp.dti.ad.jp/pub/X/AfterStep/
     19    ftp://ftp.planetmirror.com/pub/afterstep/
     20    ftp://ftp.afterstep.org/
    1921}
    2022
    2123set portfetch::mirror_sites::sites(apache) {
     24    http://www.ibiblio.org/pub/mirrors/apache/
     25    http://www.gtlib.gatech.edu/pub/apache/
     26    http://apache.mirror.rafal.ca/
     27    http://apache.mirroring.de/
     28    ftp://ftp.planetmirror.com/pub/apache/dist/
     29    ftp://ftp.infoscience.co.jp/pub/net/apache/dist/
     30    http://apache.multidist.com/
     31    http://mirror.internode.on.net/pub/apache/
     32    http://mirror.pacific.net.au/pub1/apache-dist/
     33    http://apache.wildit.net.au/
     34    ftp://ftp.pop-mg.com.br/data/apache/dist/
     35    http://www.mirrorservice.org/sites/ftp.apache.org/
     36    http://mirror.aarnet.edu.au/pub/apache/
     37    http://apache.adcserver.com.ar/
     38    http://apache.mirror.phpchina.com/
     39    http://apache-mirror.dkuug.dk/
     40    http://apache.digimirror.nl/
     41    http://apache.rediska.ru/
     42    http://apache.is.co.za/
    2243    http://www.apache.org/dist/
    2344    http://archive.apache.org/dist/
    24     http://apache.planetmirror.com.au/dist/
    25     ftp://ftp.planetmirror.com/pub/apache/dist/
    26     ftp://ftp.is.co.za/Apache/dist/
    27     ftp://ftp.infoscience.co.jp/pub/net/apache/dist/
    2845}
    2946
    3047set portfetch::mirror_sites::sites(freebsd) {
    31     ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/:nosubdir
    32     ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/:nosubdir
     48    ftp://ftp5.freebsd.org/pub/FreeBSD/ports/distfiles/:nosubdir
     49    ftp://ftp5.freebsd.org/pub/FreeBSD/ports/local-distfiles/:nosubdir
    3350    ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/ports/distfiles/:nosubdir
    3451    ftp://ftp.uk.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/:nosubdir
     
    3754    ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ports/distfiles/:nosubdir
    3855    ftp://ftp.tw.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/:nosubdir
     56    ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/ports/distfiles/:nosubdir
     57    ftp://ftp.ru.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/:nosubdir
     58    ftp://ftp.se.FreeBSD.org/pub/FreeBSD/ports/distfiles/:nosubdir
     59    ftp://ftp.se.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/:nosubdir
     60    http://mirror.aarnet.edu.au/pub/FreeBSD/ports/distfiles/:nosubdir
     61    http://mirror.aarnet.edu.au/pub/FreeBSD/ports/local-distfiles/:nosubdir
     62    ftp://ftp.planetmirror.com/pub/freebsd/ports/distfiles/:nosubdir
     63    ftp://ftp.planetmirror.com/pub/freebsd/ports/local-distfiles/:nosubdir
     64    http://www.mirrorservice.org/sites/ftp.freebsd.org/pub/FreeBSD/ports/distfiles/:nosubdir
     65    http://www.mirrorservice.org/sites/ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/:nosubdir
     66    ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/:nosubdir
     67    ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/:nosubdir
    3968}
    4069
    4170set portfetch::mirror_sites::sites(gnome) {
    42     http://mandril.creatis.insa-lyon.fr/linux/gnome.org/
     71    ftp://ftp.cse.buffalo.edu/pub/Gnome/
     72    http://www.gtlib.cc.gatech.edu/pub/gnome/
     73    http://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/
     74    http://fr2.rpmfind.net/linux/gnome.org/
    4375    http://mirror.aarnet.edu.au/pub/GNOME/
    4476    http://ftp.unina.it/pub/linux/GNOME/
    45     http://fr.rpmfind.net/linux/gnome.org/
    46     http://fr2.rpmfind.net/linux/gnome.org/
    4777    http://ftp.acc.umu.se/pub/GNOME/
    4878    http://ftp.belnet.be/mirror/ftp.gnome.org/
    4979    http://ftp.linux.org.uk/mirrors/ftp.gnome.org/
    5080    http://ftp.nara.wide.ad.jp/pub/X11/GNOME/
    51     http://ftp.gnome.org/pub/GNOME/
    52     ftp://mirror.pacific.net.au/linux/GNOME
    53     ftp://ftp.dataplus.se/pub/GNOME/
    5481    ftp://ftp.dit.upm.es/pub/GNOME/
    5582    ftp://ftp.no.gnome.org/pub/GNOME/
     
    5986    ftp://ftp.kddlabs.co.jp/pub/GNOME/
    6087    ftp://ftp.dti.ad.jp/pub/X/gnome/
     88    http://mirror.internode.on.net/pub/gnome/
     89    ftp://ftp.planetmirror.com/pub/gnome/
     90    http://ftp.gnome.org/pub/GNOME/
    6191}
    6292
    6393set portfetch::mirror_sites::sites(gnu) {
    64     http://ftp.gnu.org/gnu/
    65     ftp://ftp.gnu.org/gnu/
     94    http://mirrors.ibiblio.org/pub/mirrors/gnu/ftp/gnu/
     95    http://mirrors.kernel.org/gnu/
     96    http://www.mirrorservice.org/sites/ftp.gnu.org/gnu/
    6697    ftp://ftp.uu.net/archive/systems/gnu/
    6798    ftp://ftp.funet.fi/pub/gnu/prep/
    68     ftp://ftp.kddlabs.co.jp/pub/gnu/
     99    ftp://ftp.kddlabs.co.jp/pub/gnu/gnu/
     100    ftp://ftp.kddlabs.co.jp/pub/gnu/old-gnu/
    69101    ftp://ftp.dti.ad.jp/pub/GNU/
    70102    ftp://ftp.informatik.hu-berlin.de/pub/gnu/
    71103    ftp://ftp.lip6.fr/pub/gnu/
    72104    ftp://ftp.chg.ru/pub/gnu/
    73     ftp://ftp.mirror.ac.uk/sites/ftp.gnu.org/gnu/
     105    http://mirror.internode.on.net/pub/gnu/
     106    http://mirror.pacific.net.au/pub1/gnu/gnu/
     107    http://mirror.aarnet.edu.au/pub/GNU/
     108    ftp://ftp.unicamp.br/pub/gnu/
     109    http://gnu.glug-nith.org/
     110    ftp://ftp.gnu.org/gnu/
     111    http://ftp.gnu.org/gnu/
    74112    ftp://ftp.gnu.org/old-gnu/
    75113}
    76114
    77115set portfetch::mirror_sites::sites(gnupg) {
     116    http://mirrors.rootmode.com/ftp.gnupg.org/
     117    http://gulus.USherbrooke.ca/pub/appl/GnuPG/
     118    http://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/
     119    http://ftp.freenet.de/pub/ftp.gnupg.org/gcrypt/
     120    ftp://ftp.planetmirror.com/pub/gcrypt/
     121    http://www.ring.gr.jp/pub/net/gnupg/
     122    ftp://ftp.gnupg.org/gcrypt/
    78123    http://ftp.gnupg.org/gcrypt/
    79     http://mirrors.rootmode.com/ftp.gnupg.org/
    80     http://ftp.freenet.de/pub/ftp.gnupg.org/gcrypt/
    81     ftp://ftp.gnupg.org/gcrypt/
    82124}
    83125
    84126set portfetch::mirror_sites::sites(gnustep) {
    85     http://ftp.easynet.nl/mirror/GNUstep/pub/gnustep/
     127    ftp://ftp.planetmirror.com/pub/gnustep/gnustep/
    86128    http://ftpmain.gnustep.org/pub/gnustep/
    87     ftp://ftp.easynet.nl/mirror/GNUstep/pub/gnustep/
    88129    ftp://ftp.gnustep.org/pub/gnustep/
    89130}
     
    94135
    95136set portfetch::mirror_sites::sites(isc) {
    96     ftp://ftp.isc.org/isc/
     137    ftp://ftp.epix.net/pub/isc/
     138    ftp://ftp.nominum.com/pub/isc/
     139    http://mirrors.24-7-solutions.net/pub/isc/
     140    http://www.mirrorservice.org/sites/ftp.isc.org/isc/
    97141    ftp://gd.tuwien.ac.at/infosys/servers/isc/
    98142    ftp://ftp.ciril.fr/pub/isc/
     
    105149    ftp://ftp.task.gda.pl/mirror/ftp.isc.org/isc/
    106150    ftp://ftp.sunet.se/pub/network/isc/
    107     ftp://ftp.epix.net/pub/isc/
    108     ftp://ftp.nominum.com/pub/isc/
    109151    ftp://ftp.ripe.net/mirrors/sites/ftp.isc.org/isc/
    110     ftp://ftp.pop-mg.com.br/pub/isc/
    111152    ftp://ftp.ntua.gr/pub/net/isc/isc/
    112153    ftp://ftp.metu.edu.tr/pub/mirrors/ftp.isc.org/
     154    http://mirror.internode.on.net/pub/isc/
     155    ftp://ftp.planetmirror.com/pub/isc/
     156    ftp://ftp.isc.org/isc/
    113157}
    114158
    115159set portfetch::mirror_sites::sites(kde) {
     160    http://ibiblio.org/pub/mirrors/kde/
    116161    http://kde.mirrors.hoobly.com/
     162    http://ftp.gtlib.cc.gatech.edu/pub/kde/
     163    http://www.mirrorservice.org/sites/ftp.kde.org/pub/kde/
    117164    http://gd.tuwien.ac.at/kde/
    118165    http://mirrors.isc.org/pub/kde/
    119     http://ftp.gtlib.cc.gatech.edu/pub/kde/
    120     http://ftp.du.se/pub/mirrors/kde/
    121     http://kde.mirrors.tds.net/pub/kde
    122     http://ftp.caliu.info/pub/mirrors/kde
     166    http://kde.mirrors.tds.net/pub/kde/
    123167    ftp://ftp.oregonstate.edu/pub/kde/
    124168    ftp://ftp.solnet.ch/mirror/KDE/
     169    http://mirror.internode.on.net/pub/kde/
     170    http://mirror.aarnet.edu.au/pub/kde/
     171    ftp://ftp.planetmirror.com/pub/kde/
     172    http://ftp.chg.ru/pub/kde/
     173    http://ftp.kddlabs.co.jp/pub/X11/kde/
    125174    ftp://ftp.kde.org/pub/kde/
    126175}
     
    132181}
    133182
    134 set portfetch::mirror_sites::sites(perl_cpan) {
    135     http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/
    136     ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module/
    137     ftp://ftp.cpan.org/pub/CPAN/modules/by-module/
    138     ftp://ftp.kddlabs.co.jp/lang/perl/CPAN/modules/by-module/
    139     ftp://ftp.sunet.se/pub/lang/perl/CPAN/modules/by-module/
    140     ftp://mirror.hiwaay.net/CPAN/modules/by-module/
    141     ftp://ftp.bora.net/pub/CPAN/modules/by-module/
    142     ftp://ftp.mirror.ac.uk/sites/ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module/
    143     ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN/modules/by-module/
    144     ftp://ftp.auckland.ac.nz/pub/perl/CPAN/modules/by-module/
    145     ftp://ftp.cs.colorado.edu/pub/perl/CPAN/modules/by-module/
    146     ftp://cpan.pop-mg.com.br/pub/CPAN/modules/by-module/
    147     ftp://ftp.is.co.za/programming/perl/CPAN/modules/by-module/
    148     ftp://sunsite.org.uk/packages/perl/CPAN/modules/by-module/
    149     ftp://ftp.chg.ru/pub/lang/perl/CPAN/modules/by-module/
    150 }
    151 
    152 set portfetch::mirror_sites::sites(ruby) {
    153     http://www.ibiblio.org/pub/languages/ruby/
    154     http://mirrors.sunsite.dk/ruby/
    155     ftp://xyz.lcs.mit.edu/pub/ruby/
    156     ftp://ftp.iij.ad.jp/pub/lang/ruby/
    157     ftp://ftp.ruby-lang.org/pub/ruby/
    158     ftp://ftp.fu-berlin.de/unix/languages/ruby/
    159     ftp://ftp.easynet.be/ruby/ruby/
    160     ftp://ftp.ntua.gr/pub/lang/ruby/
    161     ftp://ftp.chg.ru/pub/lang/ruby/
    162     ftp://ftp.kr.FreeBSD.org/pub/ruby/
    163     ftp://ftp.iDaemons.org/pub/mirror/ftp.ruby-lang.org/ruby/
    164 }
    165 
    166 set portfetch::mirror_sites::sites(sourceforge) {
    167     http://downloads.sourceforge.net/
    168     http://easynews.dl.sourceforge.net/
    169     http://ufpr.dl.sourceforge.net/
    170     http://kent.dl.sourceforge.net/
    171     http://jaist.dl.sourceforge.net/
    172 }
    173 
    174 set portfetch::mirror_sites::sites(sourceforge_jp) {
    175     http://iij.dl.sourceforge.jp/
    176     http://osdn.dl.sourceforge.jp/
    177     http://jaist.dl.sourceforge.jp/
    178     http://keihanna.dl.sourceforge.jp/
    179     http://globalbase.dl.sourceforge.jp/
    180 }
    181 
    182 set portfetch::mirror_sites::sites(sunsite) {
    183     http://www.ibiblio.org/pub/Linux/
    184     ftp://ftp.unicamp.br/pub/systems/Linux/
    185     ftp://ftp.tuwien.ac.at/pub/linux/ibiblio/
    186     ftp://ftp.cs.tu-berlin.de/pub/linux/Mirrors/sunsite.unc.edu/
    187     ftp://ftp.lip6.fr/pub/linux/sunsite/
    188     ftp://ftp.nvg.ntnu.no/pub/mirrors/metalab.unc.edu/
    189     ftp://ftp.icm.edu.pl/vol/rzm1/linux-sunsite/
    190     ftp://ftp.cse.cuhk.edu.hk/pub4/Linux/
    191     ftp://ftp.kddlabs.co.jp/Linux/metalab.unc.edu/
    192     ftp://ftp.chg.ru/pub/Linux/sunsite/
    193 }
    194 
    195 set portfetch::mirror_sites::sites(tcltk) {
    196     ftp://ftp.funet.fi/pub/languages/tcl/tcl/
    197     ftp://ftp.kddlabs.co.jp/lang/tcl/ftp.scriptics.com/
    198 }
    199 
    200 set portfetch::mirror_sites::sites(xcontrib) {
    201     ftp://ftp.net.ohio-state.edu/pub/X11/contrib/
    202     ftp://ftp.gwdg.de/pub/x11/x.org/contrib/
    203     ftp://ftp.x.org/contrib/
    204     ftp://ftp2.x.org/contrib/
    205     ftp://ftp.mirror.ac.uk/sites/ftp.x.org/contrib/
    206 }
    207 
    208 set portfetch::mirror_sites::sites(xfree) {
    209     http://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.xfree86.org/XFree86/
    210     ftp://ftp.fit.vutbr.cz/pub/XFree86/
    211     ftp://mir1.ovh.net/ftp.xfree86.org/
    212     ftp://ftp.gwdg.de/pub/xfree86/XFree86/
    213     ftp://ftp.rediris.es/mirror/XFree86/
    214     ftp://ftp.esat.net/pub/X11/XFree86/
    215     ftp://sunsite.uio.no/pub/XFree86/
    216     ftp://ftp.task.gda.pl/pub/XFree86/
    217     ftp://ftp.physics.uvt.ro/pub/XFree86/
    218     ftp://ftp.chg.ru/pub/XFree86/
    219     ftp://ftp.xfree86.org/pub/XFree86/
     183set portfetch::mirror_sites::sites(macports_distfiles) {
     184    http://distfiles.macports.org/:mirror
    220185}
    221186
    222187set portfetch::mirror_sites::sites(openbsd) {
    223188    http://mirror.roothell.org/pub/OpenBSD/
     189    http://www.mirrorservice.org/sites/ftp.openbsd.org/pub/OpenBSD/
    224190    http://ftp-stud.fht-esslingen.de/pub/OpenBSD/
    225     http://mirror.paranoidbsd.org/pub/OpenBSD/
    226     ftp://ftp.openbsd.org/pub/OpenBSD/
    227     ftp://ftp.jp.openbsd.org/pub/OpenBSD/
    228191    ftp://carroll.cac.psu.edu/pub/OpenBSD/
    229192    ftp://openbsd.informatik.uni-erlangen.de/pub/OpenBSD/
     
    234197    ftp://rt.fm/pub/OpenBSD/
    235198    ftp://ftp.openbsd.md5.com.ar/pub/OpenBSD/
     199    ftp://ftp.jp.openbsd.org/pub/OpenBSD/
     200    http://mirror.internode.on.net/pub/OpenBSD/
     201    http://mirror.aarnet.edu.au/pub/OpenBSD/
     202    ftp://ftp.planetmirror.com/pub/OpenBSD/
     203    ftp://ftp.chg.ru/pub/OpenBSD/
     204    ftp://ftp.openbsd.org/pub/OpenBSD/
     205}
     206
     207set portfetch::mirror_sites::sites(perl_cpan) {
     208    http://mirrors.ibiblio.org/pub/mirrors/CPAN/modules/by-module/
     209    http://www.mirrorservice.org/sites/ftp.cpan.org/pub/CPAN/modules/by-module/
     210    http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/
     211    ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module/
     212    ftp://ftp.kddlabs.co.jp/lang/perl/CPAN/modules/by-module/
     213    ftp://ftp.sunet.se/pub/lang/perl/CPAN/modules/by-module/
     214    ftp://mirror.hiwaay.net/CPAN/modules/by-module/
     215    ftp://csociety-ftp.ecn.purdue.edu/pub/CPAN/modules/by-module/
     216    ftp://ftp.auckland.ac.nz/pub/perl/CPAN/modules/by-module/
     217    ftp://ftp.cs.colorado.edu/pub/perl/CPAN/modules/by-module/
     218    ftp://cpan.pop-mg.com.br/pub/CPAN/modules/by-module/
     219    ftp://ftp.is.co.za/programming/perl/CPAN/modules/by-module/
     220    ftp://ftp.chg.ru/pub/lang/perl/CPAN/modules/by-module/
     221    http://mirror.internode.on.net/pub/cpan/modules/by-module/
     222    http://cpan.mirrors.ilisys.com.au/modules/by-module/
     223    http://mirror.aarnet.edu.au/pub/CPAN/modules/by-module/
     224    ftp://ftp.planetmirror.com/pub/cpan/modules/by-module/
     225    ftp://ftp.cpan.org/pub/CPAN/modules/by-module/
    236226}
    237227
     
    239229    http://ftp8.us.postgresql.org/postgresql/
    240230    http://ftp9.us.postgresql.org/pub/mirrors/postgresql/
    241     http://ftp7.de.postgresql.org/pub/ftp.postgresql.org/
     231    http://www.mirrorservice.org/sites/ftp.postgresql.org/
     232    http://ftp7.de.postgresql.org/ftp.postgresql.org/
    242233    http://ftp2.jp.postgresql.org/pub/postgresql/
    243     ftp://ftp2.ch.postgresql.org/mirror/postgresql/
    244     ftp://ftp.postgresql.org/pub/
     234    ftp://ftp2.ch.postgresql.org/pub/mirrors/postgresql
    245235    ftp://ftp.de.postgresql.org/mirror/postgresql/
    246236    ftp://ftp.fr.postgresql.org/
    247     ftp://ftp2.uk.postgresql.org/
    248 }
     237    http://mirror.aarnet.edu.au/pub/postgresql/
     238    ftp://ftp.au.postgresql.org/pub/postgresql/
     239    ftp://ftp.ru.postgresql.org/pub/unix/database/pgsql/
     240    ftp://ftp.postgresql.org/pub/
     241}
     242
     243set portfetch::mirror_sites::sites(ruby) {
     244    http://www.ibiblio.org/pub/languages/ruby/
     245    http://www.mirrorservice.org/sites/ftp.ruby-lang.org/pub/ruby/
     246    http://mirrors.sunsite.dk/ruby/
     247    ftp://xyz.lcs.mit.edu/pub/ruby/
     248    ftp://ftp.iij.ad.jp/pub/lang/ruby/
     249    ftp://ftp.fu-berlin.de/unix/languages/ruby/
     250    ftp://ftp.easynet.be/ruby/ruby/
     251    ftp://ftp.ntua.gr/pub/lang/ruby/
     252    ftp://ftp.chg.ru/pub/lang/ruby/
     253    ftp://ftp.kr.FreeBSD.org/pub/ruby/
     254    ftp://ftp.iDaemons.org/pub/mirror/ftp.ruby-lang.org/ruby/
     255    ftp://ftp.planetmirror.com/pub/ruby/
     256    ftp://ftp.ruby-lang.org/pub/ruby/
     257}
     258
     259set portfetch::mirror_sites::sites(sourceforge) {
     260    http://downloads.sourceforge.net/
     261    http://easynews.dl.sourceforge.net/
     262    http://ufpr.dl.sourceforge.net/
     263    http://kent.dl.sourceforge.net/
     264    http://jaist.dl.sourceforge.net/
     265    http://optusnet.dl.sourceforge.net/
     266    http://nchc.dl.sourceforge.net/
     267    http://switch.dl.sourceforge.net/
     268    http://puzzle.dl.sourceforge.net/
     269    http://garr.dl.sourceforge.net/
     270    http://surfnet.dl.sourceforge.net/
     271    http://internap.dl.sourceforge.net/
     272    http://superb-east.dl.sourceforge.net/
     273    http://superb-west.dl.sourceforge.net/
     274}
     275
     276set portfetch::mirror_sites::sites(sourceforge_jp) {
     277    http://iij.dl.sourceforge.jp/
     278    http://osdn.dl.sourceforge.jp/
     279    http://jaist.dl.sourceforge.jp/
     280    http://keihanna.dl.sourceforge.jp/
     281    http://globalbase.dl.sourceforge.jp/
     282}
     283
     284set portfetch::mirror_sites::sites(sunsite) {
     285    http://www.ibiblio.org/pub/Linux/
     286    http://www.gtlib.cc.gatech.edu/pub/Linux/
     287    ftp://ftp.unicamp.br/pub/systems/Linux/
     288    ftp://ftp.tuwien.ac.at/pub/linux/ibiblio/
     289    ftp://ftp.cs.tu-berlin.de/pub/linux/Mirrors/sunsite.unc.edu/
     290    ftp://ftp.lip6.fr/pub/linux/sunsite/
     291    ftp://ftp.nvg.ntnu.no/pub/mirrors/metalab.unc.edu/
     292    ftp://ftp.icm.edu.pl/vol/rzm1/linux-ibiblio/
     293    ftp://ftp.cse.cuhk.edu.hk/pub4/Linux/
     294    ftp://ftp.kddlabs.co.jp/Linux/metalab.unc.edu/
     295    ftp://ftp.chg.ru/pub/Linux/sunsite/
     296    ftp://ftp.planetmirror.com/pub/ibiblio/
     297}
     298
     299set portfetch::mirror_sites::sites(tcltk) {
     300    http://www.mirrorservice.org/sites/ftp.tcl.tk/pub/tcl/
     301    ftp://mirror.switch.ch/mirror/tcl.tk/
     302    ftp://ftp.informatik.uni-hamburg.de/pub/soft/lang/tcl/
     303    ftp://ftp.funet.fi/pub/languages/tcl/tcl/
     304    ftp://ftp.kddlabs.co.jp/lang/tcl/ftp.scriptics.com/
     305    http://www.etsimo.uniovi.es/pub/mirrors/ftp.scriptics.com/
     306    http://ftp.chg.ru/pub/lang/tcl/
     307    ftp://ftp.tcl.tk/pub/tcl/
     308}
     309
     310set portfetch::mirror_sites::sites(tex_ctan) {
     311        http://mirrors.ibiblio.org/pub/mirrors/CTAN/
     312        http://ctan.math.utah.edu/ctan/tex-archive/
     313        ftp://ftp.funet.fi/pub/TeX/CTAN/
     314        http://mirror.internode.on.net/pub/ctan/
     315        ftp://ctan.unsw.edu.au/tex-archive/
     316        http://mirror.aarnet.edu.au/pub/CTAN/
     317        ftp://ftp.kddlabs.co.jp/CTAN/
     318        ftp://ftp.chg.ru/pub/TeX/CTAN/
     319        ftp://mirror.macomnet.net/pub/CTAN/
     320        http://ftp.sun.ac.za/ftp/CTAN/
     321        http://ftp.inf.utfsm.cl/pub/tex-archive/
     322        http://ftp.das.ufsc.br/pub/ctan/
     323        ftp://ftp.tex.ac.uk/tex-archive/
     324        ftp://ftp.dante.de/tex-archive/
     325        ftp://ctan.tug.org/tex-archive/
     326}
     327
     328set portfetch::mirror_sites::sites(xcontrib) {
     329    ftp://ftp.net.ohio-state.edu/pub/X11/contrib/
     330    http://www.mirrorservice.org/sites/ftp.x.org/contrib/
     331    ftp://ftp.gwdg.de/pub/x11/x.org/contrib/
     332    http://mirror.aarnet.edu.au/pub/X11/contrib/
     333    ftp://ftp.planetmirror.com/pub/x11/contrib/
     334    ftp://ftp.chg.ru/pub/X11/x.org/contrib/
     335    ftp://ftp2.x.org/contrib/
     336    ftp://ftp.x.org/contrib/
     337}
     338
     339set portfetch::mirror_sites::sites(xfree) {
     340    http://www.gtlib.cc.gatech.edu/pub/XFree86/
     341    http://www.mirrorservice.org/sites/ftp.xfree86.org/pub/XFree86/
     342    http://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.xfree86.org/XFree86/
     343    ftp://ftp.fit.vutbr.cz/pub/XFree86/
     344    ftp://mir1.ovh.net/ftp.xfree86.org/
     345    ftp://ftp.gwdg.de/pub/xfree86/XFree86/
     346    ftp://ftp.rediris.es/mirror/XFree86/
     347    ftp://ftp.esat.net/pub/X11/XFree86/
     348    ftp://sunsite.uio.no/pub/XFree86/
     349    ftp://ftp.physics.uvt.ro/pub/XFree86/
     350    ftp://ftp.chg.ru/pub/XFree86/
     351    http://mirror.aarnet.edu.au/pub/XFree86/
     352    ftp://ftp.planetmirror.com/pub/xfree86/
     353    ftp://ftp.xfree86.org/pub/XFree86/
     354}
     355
     356set portfetch::mirror_sites::sites(xorg) {
     357    http://x.paracoda.com/pub/
     358    http://www.mirrorservice.org/sites/ftp.x.org/pub/
     359    ftp://ftp.gwdg.de/pub/x11/x.org/pub/
     360    ftp://ftp.cs.cuhk.edu.hk/pub/X11/
     361    http://ftp.nara.wide.ad.jp/pub/X11/x.org/pub/
     362    http://www.qtopia.org.cn/ftp/mirror/ftp.x.org/pub/
     363    ftp://ftp.cica.es/pub/X/pub/
     364    ftp://ftp.ntua.gr/pub/X11/X.org/
     365    ftp://ftp.task.gda.pl/mirror/ftp.x.org/pub/
     366    ftp://ftp.sunet.se/pub/X11/ftp.x.org/
     367    ftp://sunsite.uio.no/pub/X11/
     368    ftp://ftp.chg.ru/pub/X11/x.org/pub/
     369    ftp://ftp.is.co.za/pub/x.org/pub/
     370    http://xorg.freedesktop.org/releases/
     371    ftp://ftp.x.org/pub/
     372}
  • branches/variant-descs-14482/base/src/port1.0/resources/group/python24-1.0.tcl

    r26177 r37509  
    3535set python.bin  ${prefix}/bin/python2.4
    3636set python.lib  ${prefix}/lib/libpython2.4.dylib
     37set python.libdir ${prefix}/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4
    3738set python.pkgd ${prefix}/lib/python2.4/site-packages
    38 set python.include      ${prefix}/include/python/2.4
     39set python.include      ${prefix}/Library/Frameworks/Python.framework/Versions/2.4/include/python2.4
    3940
    4041categories              python
  • branches/variant-descs-14482/base/src/port1.0/resources/group/python25-1.0.tcl

    r31442 r37509  
    3535set python.bin  ${prefix}/bin/python2.5
    3636set python.lib  ${prefix}/lib/libpython2.5.dylib
     37set python.libdir ${prefix}/lib/python2.5
    3738set python.pkgd ${prefix}/lib/python2.5/site-packages
    38 set python.include      ${prefix}/include/python/2.5
     39set python.include      ${prefix}/include/python2.5
    3940
    4041categories              python
  • branches/variant-descs-14482/base/src/port1.0/resources/group/python30-1.0.tcl

    r34872 r37509  
    3737set python.bin  ${prefix}/bin/python3.0
    3838set python.lib  ${prefix}/lib/libpython3.0.dylib
     39set python.libdir ${prefix}/lib/python3.0
    3940set python.pkgd ${prefix}/lib/python3.0/site-packages
    40 set python.include      ${prefix}/include/python/3.0
     41set python.include      ${prefix}/include/python3.0
    4142
    4243categories              python
  • branches/variant-descs-14482/base/src/port1.0/resources/group/ruby-1.0.tcl

    r28796 r37509  
    181181
    182182                        destroot {
    183                                 _cd ${worksrcpath}/${ruby.srcdir}
     183                                set root ${worksrcpath}/${ruby.srcdir}
    184184                                xinstall -d -m 0755 ${destroot}${ruby.lib}
    185                                 foreach dir [exec find . -type d] {
    186                                         set dir [strsed ${dir} {s|^[.]/||}]
    187                                         xinstall -d -m 0755 ${destroot}${ruby.lib}/${dir}
    188                                 }
    189                                 foreach file [exec find . -type f] {
    190                                         set file [strsed ${file} {s|^[.]/||}]
    191                                         xinstall -m 0644 ${file} ${destroot}${ruby.lib}/${file}
     185                                fs-traverse file $root {
     186                                        set file [trimroot $root $file]
     187                                        if {$file ne ""} {
     188                                                set filepath [file join $root $file]
     189                                                if {[file isdirectory $filepath]} {
     190                                                        xinstall -d -m 0755 ${destroot}${ruby.lib}/${file}
     191                                                } else {
     192                                                        xinstall -m 0644 $filepath ${destroot}${ruby.lib}/${file}
     193                                                }
     194                                        }
    192195                                }
    193196                        }
     
    273276                       
    274277                        destroot {
    275                           _cd ${worksrcpath}
    276                           system "${prefix}/bin/gem install --local --force --install-dir ${destroot}${prefix}/lib/ruby/gems/${ruby.version} ${distpath}/${distname}"
     278                          system "cd ${worksrcpath} && ${prefix}/bin/gem install --local --force --install-dir ${destroot}${prefix}/lib/ruby/gems/${ruby.version} ${distpath}/${distname}"
    277279                       
    278280                                set binDir ${destroot}${prefix}/lib/ruby/gems/${ruby.version}/bin
    279281                                if {[file isdirectory $binDir]} {
    280                                         _cd $binDir
    281282                                        foreach file [readdir $binDir] {
    282                                                 file copy $file ${destroot}${prefix}/bin
     283                                                file copy [file join $binDir $file] ${destroot}${prefix}/bin
    283284                                        }
    284285                                }
    285286                        }
     287                }
     288                fetch {
     289                        # do nothing but fetch and extract - for strange installers
     290                        build {}
    286291                }
    287292                default {
     
    292297
    293298        post-destroot {
    294                 _cd ${worksrcpath}
    295299                # Install documentation files (if specified)
    296300                if {[llength ${ruby.docs}] > 0} {
     
    298302                        xinstall -d -m 0755 ${destroot}${docPath}
    299303                        foreach docitem ${ruby.docs} {
     304                                set docitem [file join ${worksrcpath} ${docitem}]
    300305                                if {[file isdirectory ${docitem}]} {
    301                                         foreach dir [exec find ${docitem} -type d] {
    302                                                 xinstall -d -m 0755 ${destroot}${docPath}/${dir}
    303                                         }
    304                                         foreach file [exec find ${docitem} -type f] {
    305                                                 xinstall -m 0644 ${file} ${destroot}${docPath}/${file}
     306                                    set subdir [file tail $docitem]
     307                                    xinstall -d -m 0755 ${destroot}${docPath}/${subdir}
     308                                        fs-traverse file $docitem {
     309                                                set file [trimroot $docitem $file]
     310                                                if {$file ne ""} {
     311                                                        set filepath [file join $docitem $file]
     312                                                        if {[file isdirectory $filepath]} {
     313                                                                xinstall -d -m 0755 ${destroot}${docPath}/${subdir}/${file}
     314                                                        } else {
     315                                                                xinstall -m 0644 $filepath ${destroot}${docPath}/${subdir}/${file}
     316                                                        }
     317                                                }
    306318                                        }
    307319                                } else {
     
    312324        }
    313325}
     326
     327proc trimroot {root path} {
     328        set acc {}
     329        set skiproot no
     330        foreach rootf [file split $root] pathf [file split $path] {
     331                if {$pathf eq ""} {
     332                        # we've hit the end of the path
     333                        break
     334                } elseif {$skiproot eq "yes" || $rootf eq ""} {
     335                        lappend acc $pathf
     336                } elseif {$rootf ne $pathf} {
     337                        # diverged from the root
     338                        lappend acc $pathf
     339                        set skiproot yes
     340                }
     341        }
     342        if {[llength $acc] == 0} {
     343                return ""
     344        } else {
     345                return [eval [subst -nobackslashes -nocommands {file join $acc}]]
     346        }
     347}
  • branches/variant-descs-14482/base/src/port1.0/resources/group/xcode-1.0.tcl

    r30775 r37509  
    171171# remark: xcodebuild take care of creating the directory if required.
    172172proc xcode::get_install_path_setting { path type } {
     173    global applications_dir frameworks_dir
    173174    if {$path == ""} {
    174175        if {$type == "application"} {
    175             return "INSTALL_PATH=/Applications/MacPorts"
     176            return "INSTALL_PATH=${applications_dir}"
    176177        } elseif {$type == "framework"} {
    177             return "INSTALL_PATH=/Library/Frameworks"
     178            return "INSTALL_PATH=${frameworks_dir}"
    178179        } else {
    179180            return ""
  • branches/variant-descs-14482/base/src/registry1.0/portimage.tcl

    r26177 r37509  
    8080        }
    8181
    82         ui_msg "$UI_PREFIX [format [msgcat::mc "Activating %s %s"] $name $v]"
    83        
    8482        set ilist [_check_registry $name $v]
     83        # set name again since the one we were passed may not have had the correct case
     84        set name [lindex $ilist 0]
    8585        set version [lindex $ilist 1]
    8686        set revision [lindex $ilist 2]
    8787        set     variants [lindex $ilist 3]
     88       
     89    if {$v != ""} {
     90        ui_msg "$UI_PREFIX [format [msgcat::mc "Activating %s @%s"] $name $v]"
     91    } else {
     92        ui_msg "$UI_PREFIX [format [msgcat::mc "Activating %s"] $name]"
     93    }
    8894
    8995        set ilist [registry::installed $name]
     
    143149        }
    144150
    145         ui_msg "$UI_PREFIX [format [msgcat::mc "Deactivating %s %s"] $name $v]"
    146        
    147151        set ilist [registry::active $name]
    148152        if { [llength $ilist] > 1 } {
     
    151155                set ilist [lindex $ilist 0]
    152156        }
     157        # set name again since the one we were passed may not have had the correct case
     158        set name [lindex $ilist 0]
    153159        set version [lindex $ilist 1]
    154160        set revision [lindex $ilist 2]
    155161        set     variants [lindex $ilist 3]
    156162        set fqversion ${version}_${revision}${variants}
     163       
     164    if {$v != ""} {
     165        ui_msg "$UI_PREFIX [format [msgcat::mc "Deactivating %s @%s"] $name $v]"
     166    } else {
     167        ui_msg "$UI_PREFIX [format [msgcat::mc "Deactivating %s"] $name]"
     168    }
    157169       
    158170        if { $v != "" && ![string equal ${fqversion} $v] } {
     
    210222        if { [string equal $v ""] } {
    211223                if { [llength $ilist] > 1 } {
     224                    # set name again since the one we were passed may not have had the correct case
     225                    set name [lindex [lindex $ilist 0] 0]
    212226                        ui_msg "$UI_PREFIX [msgcat::mc "The following versions of $name are currently installed:"]"
    213227                        foreach i $ilist {
  • branches/variant-descs-14482/base/src/registry1.0/portuninstall.tcl

    r19376 r37509  
    4545        set ilist [registry::installed $portname $v]
    4646        if { [llength $ilist] > 1 } {
     47            set portname [lindex [lindex $ilist 0] 0]
    4748                ui_msg "$UI_PREFIX [msgcat::mc "The following versions of $portname are currently installed:"]"
    4849                foreach i $ilist {
     
    6061                return -code error "Registry error: Please specify the full version as recorded in the port registry."
    6162        } else {
     63            # set portname again since the one we were passed may not have had the correct case
     64            set portname [lindex [lindex $ilist 0] 0]
    6265                set version [lindex [lindex $ilist 0] 1]
    6366                set revision [lindex [lindex $ilist 0] 2]
    6467                set variants [lindex [lindex $ilist 0] 3]
     68                set active [lindex [lindex $ilist 0] 4]
    6569        }
    6670
     
    9296                        # something instead  of erroring.
    9397                        if { ![catch {set installed [registry::installed $depport]} res] } {
    94                                 if { [llength [registry::installed $depport]] > 0 } {
     98                                if { [llength installed] > 0 } {
    9599                                        lappend dl $depport
    96100                                }
     
    99103                # Now see if we need to error
    100104                if { [llength $dl] > 0 } {
    101                         ui_msg "$UI_PREFIX [format [msgcat::mc "Unable to uninstall %s %s_%s%s, the following ports depend on it:"] $portname $version $revision $variants]"
    102                         foreach depport $dl {
    103                                 ui_msg "$UI_PREFIX [format [msgcat::mc "        %s"] $depport]"
    104                         }
    105                         if { [info exists uninstall.force] && [string equal ${uninstall.force} "yes"] } {
    106                                 ui_warn "Uninstall forced.  Proceeding despite dependencies."
     105                        if {[info exists options(ports_uninstall_follow-dependents)] && $options(ports_uninstall_follow-dependents) eq "yes"} {
     106                                foreach depport $dl {
     107                                        # make sure it's still installed, since a previous dep uninstall may have removed it
     108                                        # does registry::installed still error? A cursory look at the code says no, but above says yes
     109                                        if { ![catch {set installed [registry::installed $depport]} res] } {
     110                                                if { [llength installed] > 0 } {
     111                                                        portuninstall::uninstall $depport "" [array get options]
     112                                                }
     113                                        }
     114                                }
    107115                        } else {
    108                                 return -code error "Please uninstall the ports that depend on $portname first."
     116                # will need to change this when we get version/variant dependencies
     117                if {$nb_versions_installed == 1 || $active == 1} {
     118                    ui_msg "$UI_PREFIX [format [msgcat::mc "Unable to uninstall %s %s_%s%s, the following ports depend on it:"] $portname $version $revision $variants]"
     119                    foreach depport $dl {
     120                        ui_msg "$UI_PREFIX [format [msgcat::mc "        %s"] $depport]"
     121                    }
     122                    if { [info exists uninstall.force] && [string equal ${uninstall.force} "yes"] } {
     123                        ui_warn "Uninstall forced.  Proceeding despite dependencies."
     124                    } else {
     125                        return -code error "Please uninstall the ports that depend on $portname first."
     126                    }
     127                }
    109128                        }
    110129                }
     
    117136        }
    118137
    119         ui_msg "$UI_PREFIX [format [msgcat::mc "Uninstalling %s %s_%s%s"] $portname $version $revision $variants]"
     138        ui_msg "$UI_PREFIX [format [msgcat::mc "Uninstalling %s @%s_%s%s"] $portname $version $revision $variants]"
    120139
    121140        # Look to see if the port has registered an uninstall procedure
  • branches/variant-descs-14482/base/src/registry1.0/receipt_flat.tcl

    r30972 r37509  
    427427                # [PG] Huh?
    428428        } else {
     429            # We want to be case-insensitive but case-preserving, so the name gets
     430            # returned with the correct case even if it's wrong when given. To get the
     431            # correct case on a case-insensitive FS, we have to list the directory and
     432            # compare against each entry.
     433            set name_path [file join ${query_path} *]
     434            set name_entries [glob -nocomplain -types d ${name_path}]
     435            foreach entry $name_entries {
     436                set basename [file tail $entry]
     437                if {[string equal -nocase $basename $name]} {
     438                    set name $basename
     439                    break
     440                }
     441            }
    429442                set query_path [file join ${query_path} ${name}]
    430443                if { $version != "" } {
     
    733746proc register_dep {dep type port} {
    734747        variable dep_map
    735         lappend dep_map [list $dep $type $port]
     748        set newdep [list $dep $type $port]
     749        # slow, but avoids duplicate entries building up
     750        if {[lsearch -exact $dep_map $newdep] == -1} {
     751            lappend dep_map $newdep
     752        }
    736753}
    737754
  • branches/variant-descs-14482/base/src/registry2.0/portimage.tcl

    r28769 r37509  
    7878    }
    7979
    80     ui_msg "$UI_PREFIX [format [msgcat::mc "Activating %s %s"] $name $specifier]"
     80    if {$specifier != ""} {
     81            ui_msg "$UI_PREFIX [format [msgcat::mc "Activating %s @%s"] $name $specifier]"
     82    } else {
     83            ui_msg "$UI_PREFIX [format [msgcat::mc "Activating %s"] $name]"
     84    }
    8185
    8286    registry::read {
     
    132136    }
    133137
    134     ui_msg "$UI_PREFIX [format [msgcat::mc "Deactivating %s %s"] $name $v]"
     138    if {$spec != ""} {
     139            ui_msg "$UI_PREFIX [format [msgcat::mc "Deactivating %s @%s"] $name $spec]"
     140    } else {
     141            ui_msg "$UI_PREFIX [format [msgcat::mc "Deactivating %s"] $name]"
     142    }
    135143
    136144    if { [string equal $name {}] } {
  • branches/variant-descs-14482/base/src/registry2.0/portuninstall.tcl

    r28769 r37509  
    9191        }
    9292
    93         ui_msg "$UI_PREFIX [format [msgcat::mc "Uninstalling %s %s_%s%s"] $portname $version $revision $variants]"
     93        ui_msg "$UI_PREFIX [format [msgcat::mc "Uninstalling %s @%s_%s%s"] $portname $version $revision $variants]"
    9494
    9595    # pkg_uninstall isn't used anywhere as far as I can tell and I intend to add
  • branches/variant-descs-14482/base/src/thread2.6.diff

    r26177 r37509  
    5151         variable elock [$mutex create]
    5252         variable store tsv::
     53# tcl-64/tcl_ext/thread/thread.diff
     54--- src/thread2.6/generic/threadPoolCmd.c.orig  2003-11-27 11:54:19.000000000 -0800
     55+++ src/thread2.6/generic/threadPoolCmd.c       2005-07-20 23:10:12.000000000 -0700
     56@@ -1710,18 +1710,21 @@
     57  *
     58  *----------------------------------------------------------------------
     59  */
     60+#ifdef __WIN32__
     61+#include <sys/timeb.h>
     62+#else
     63+#include <sys/time.h>
     64+#endif
     65 static void
     66 GetTime(timePtr)
     67     Tcl_Time *timePtr;
     68 {
     69 #ifdef __WIN32__
     70-#include <sys/timeb.h>
     71     struct timeb tb;
     72     (void)ftime(&tb);
     73     timePtr->sec  = tb.time;
     74     timePtr->usec = tb.millitm * 1000;
     75 #else
     76-#include <sys/time.h>
     77     struct timeval tv;
     78     (void)gettimeofday(&tv, NULL);
     79     timePtr->sec  = tv.tv_sec;
  • branches/variant-descs-14482/base/src/thread2.6.tar.gz

    • Property svn:keywords deleted
  • branches/variant-descs-14482/base/tests/Makefile

    r26177 r37509  
    11include ../Mk/macports.autoconf.mk
    22
    3 TESTS?=checksums-1 cvs-and-patchsites envvariables site-tags trace universal universal-2 xcodeversion dependencies-c
     3TESTS?=checksums-1 cvs-and-patchsites envvariables site-tags trace universal universal-2 xcodeversion dependencies-c case-insensitive-deactivate
     4
     5PWD=$(shell pwd)
    46
    57.PHONY: test clean PortIndex
     
    3941                if [ -e ${DIRPRFX}$$subdir/Makefile ]; then \
    4042                        ( cd $$subdir && \
    41                                 $(MAKE) DIRPRFX=${DIRPRFX}$$subdir/ PORTSRC=$(PWD)/test-ports.conf test) || exit 1; \
     43                                $(MAKE) DIRPRFX=${DIRPRFX}$$subdir/ PORTSRC=$(PWD)/test-macports.conf test) || exit 1; \
    4244                else \
    4345                        ( cd $$subdir && \
    44                                 PORTSRC=$(PWD)/test-ports.conf $(bindir)/port clean > /dev/null && \
    45                                 PORTSRC=$(PWD)/test-ports.conf $(bindir)/port test > output 2>&1 \
     46                                PORTSRC=$(PWD)/test-macports.conf $(bindir)/port clean > /dev/null && \
     47                                PORTSRC=$(PWD)/test-macports.conf $(bindir)/port test > output 2>&1 \
    4648                                        || (cat output; exit 1) && \
    4749                        sed -e "s|${PWD}|PWD|g" < output > output.sed && \
  • branches/variant-descs-14482/base/tests/test/case-insensitive-deactivate/Makefile

    r34190 r37509  
    11include ../../../Mk/macports.autoconf.mk
    22
    3 TESTFILE=$(prefix)/var/macports/case
     3# see test-macports.conf for the value of prefix
     4TESTFILE=/tmp/macports-tests/opt/local/var/macports/case
    45TESTPORT1=casesensitive
    56TESTPORT2=CaseSensitivE
  • branches/variant-descs-14482/base/tests/test/cvs-and-patchsites/Portfile

    r23699 r37509  
    1313
    1414fetch.type          cvs
    15 cvs.root            :pserver:anonymous@cvs.mutt.org:/home/roessler/cvs
    16 cvs.module          mutt
     15cvs.root            :pserver:anonymous@common-lisp.net:/project/slime/cvsroot
     16cvs.module          slime
    1717cvs.password        anonymous
    18 worksrcdir          mutt
     18worksrcdir          slime
    1919
    2020patch_sites      http://home.uchicago.edu/~dgc/sw/mutt/
  • branches/variant-descs-14482/base/tests/test/dependencies-c/master

    r23701 r37509  
    55--->  Building dependencies-b with target all
    66--->  Staging dependencies-b into destroot
    7 --->  Installing dependencies-b 1_0
    8 --->  Activating dependencies-b 1_0
     7--->  Installing dependencies-b @1_0
     8--->  Activating dependencies-b @1_0
    99--->  Cleaning dependencies-b
    1010--->  Fetching dependencies-a
     
    1414--->  Building dependencies-a with target all
    1515--->  Staging dependencies-a into destroot
    16 --->  Installing dependencies-a 1_0+i_want_b
    17 --->  Activating dependencies-a 1_0+i_want_b
     16--->  Installing dependencies-a @1_0+i_want_b
     17--->  Activating dependencies-a @1_0+i_want_b
    1818--->  Cleaning dependencies-a
    1919--->  Fetching dependencies-c
  • branches/variant-descs-14482/base/tests/test/universal-2/Makefile

    r26177 r37509  
    99test:
    1010        @PORTSRC=$(PORTSRC) $(bindir)/port clean > /dev/null
    11         @sh -c "export PORTSRC=$(PORTSRC); $(bindir)/port info" > output 2>&1 || (cat output; exit 1)
     11        @sh -c "export PORTSRC=$(PORTSRC); $(bindir)/port info --variants" > output 2>&1 || (cat output; exit 1)
    1212        @diff output master 2>&1 | tee difference
    1313        @if [ -s difference ]; then \
  • branches/variant-descs-14482/base/tests/test/universal-2/master

    r23968 r37509  
    1 universal-2 1, test/universal-2
    2 http://www.macports.org/
    3 
    4 {Test port for universal variant}
    5 
    6 Platforms: darwin
    7 Maintainers: pguyot@kallisys.net
     1no info for 'variants'
     2variants:
  • branches/variant-descs-14482/base/tests/test/universal/Makefile

    r26177 r37509  
    99test:
    1010        @PORTSRC=$(PORTSRC) $(bindir)/port clean > /dev/null
    11         @sh -c "export PORTSRC=$(PORTSRC); $(bindir)/port info" > output 2>&1 || (cat output; exit 1)
     11        @sh -c "export PORTSRC=$(PORTSRC); $(bindir)/port info --variants" > output 2>&1 || (cat output; exit 1)
    1212        @diff output master 2>&1 | tee difference
    1313        @if [ -s difference ]; then \
  • branches/variant-descs-14482/base/tests/test/universal/master

    r23968 r37509  
    1 universal 1, test/universal (Variants: universal)
    2 http://www.macports.org/
    3 
    4 {Test port for universal variant}
    5 
    6 Platforms: darwin
    7 Maintainers: pguyot@kallisys.net
     1variants: universal
Note: See TracChangeset for help on using the changeset viewer.