diff --git a/guide/Makefile b/guide/Makefile
index ddfe277..2bde1d8 100644
--- a/guide/Makefile
+++ b/guide/Makefile
@@ -27,32 +27,22 @@
# set XML_DEBUG_CATALOG= to see catalog debugging info
SOURCEDIR?= xml
-NEWSOURCEDIR?= new/xml
DOCBOOK_XSL?= ${prefix}/share/xsl/docbook-xsl/
HTMLDIR?= html
-NEWHTMLDIR?= new/html
XHTMLDIR?= xhtml
STYLESHEET?= ${DOCBOOK_XSL}/html/chunk.xsl
XSTYLESHEET?= ${DOCBOOK_XSL}/xhtml/chunk.xsl
-NEWSTYLESHEET?= ${DOCBOOK_XSL}/xhtml/docbook.xsl
XML_CATALOG_FILES?= ${prefix}/etc/xml/catalog
XML_DEBUG_CATALOG?=
CSS_STYLESHEET?= docbook.css
RESOURCES?= resources/
-NEWRESOURCES?= new/resources/
STRINGPARAMS?= --stringparam html.stylesheet ${CSS_STYLESHEET} --stringparam chunk.section.depth 0
-NEWSTRINGPARAMS?= --stringparam html.stylesheet ${CSS_STYLESHEET} \
- --stringparam section.autolabel 1 \
- --stringparam toc.section.depth 1 \
- --stringparam generate.toc "book toc" \
- --stringparam section.label.includes.component.label 1
.PHONY : all
.PHONY : clean
#.PHONY : install
.PHONY : html
.PHONY : xhtml
-.PHONY : new
.PHONY : check
.PHONY : tidy
@@ -68,12 +58,6 @@ xhtml:
cp ${RESOURCES}${CSS_STYLESHEET} ${XHTMLDIR}
xsltproc --xinclude ${STRINGPARAMS} -o "${XHTMLDIR}/" "${XSTYLESHEET}" "${SOURCEDIR}/guide.xml"
-new:
- mkdir -p ${NEWHTMLDIR}
- cp ${NEWRESOURCES}${CSS_STYLESHEET} ${NEWHTMLDIR}
- cp ${NEWRESOURCES}/images/* ${NEWHTMLDIR}
- xsltproc --xinclude ${NEWSTRINGPARAMS} -o "${NEWHTMLDIR}/guide.html" "${NEWSTYLESHEET}" "${NEWSOURCEDIR}/guide.xml"
-
all: html xhtml tidy
tidy:
@@ -85,6 +69,6 @@ tidy:
-tidy -quiet -modify -indent -xml ${XHTMLDIR}/*
clean:
- rm -fr ${HTMLDIR} ${XHTMLDIR} ${NEWHTMLDIR}
+ rm -fr ${HTMLDIR} ${XHTMLDIR}
include ../../base/Mk/macports.autoconf.mk
diff --git a/guide/new/resources/docbook.css b/guide/new/resources/docbook.css
deleted file mode 100755
index df167d9..0000000
--- a/guide/new/resources/docbook.css
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * MacPorts Guide Stylesheet
- */
-
-/*
- CSS design by Mark Duling
-*/
-
-div.mediaobject {
- text-align: center;
- margin: auto;
- border: thin black inset;
-}
-
-.emphasis { font-weight: bold ; }
-
-a:link { color: #6298E5; text-decoration: none; }
-a:visited { color: #6298E5; text-decoration: none;}
-a:hover { text-decoration: underline; }
-
-.filename { color: #8B1A1A; }
-
-span.term { font-weight: bold; }
-
-span.guilabel { font-weight: bold; }
-
-span.guimenu { font-weight: bold; }
-
-.programlisting {
- font-family: monospace;
- font-size: medium;
- background-color: #E6E6E6;
- border: thin black inset }
-
-.screen {
- font-family: monospace;
- font-size: medium;
- border: thin black inset;
- background-color: white; }
-
-div.screenshot div.mediaobject {
- text-align: center;
- margin: auto }
-
-body {
- font-family: Verdana, Arial, sans-serif;
- font-size: 14px;
- line-height: 1.4;
- color: #696969;
-}
-
-div.note h3.title { color: #C00; }
-
-.author {
- font-size: 14px;
- color: #6298E5;
- font-weight: bold;
-}
-
-.copyright {
- font-size: 12px;
- font-family: times;
-}
-
-div.book div.titlepage h1 {
- font-family: Verdana, Arial, Utopia, sans-serif;
- font-size: 24pt;
- color: black;
- font-weight: bold;
- text-align: left;
-}
-
-div.book div.titlepage h2 {
- font-family: Verdana, Arial, Utopia, sans-serif;
- font-size: 18pt;
- color: black;
- font-weight: bold;
- text-align: left;
-}
-
-div.section div.titlepage h2 {
- font-family: Verdana, Arial, Utopia, sans-serif;
- font-size: 16pt;
- color: black;
- text-align: left;
-}
-
-div.section div.titlepage h3 {
- font-family: Verdana, Arial, Utopia, sans-serif;
- font-size: 14pt;
- color: black;
- font-weight: bold;
- text-align: left;
-}
-
-div.section div.titlepage h4 {
- font-family: Verdana, Arial, Utopia, sans-serif;
- font-size: 12pt;
- color: black;
- font-weight: bold;
- text-align: left;
-}
-
-div.mediaobject {
- text-align: center;
- margin: auto;
-}
-
-p { margin-bottom: 14pt; }
-
-div.toc {
- border-width: 1px;
- border-color: black;
- border-style: solid;
-/* background-color: #C2CAD8; Color of macosforge.org sidebar */
- background-color: #9FB6CD;
- background-repeat: no-repeat;
- background-position: center top;
-
- font-size: 10px;
- font-family: Verdana, Arial, sans-serif;
- color: black;
- left: 8px;
- width: 234px;
- padding-left: 2px;
- padding-top: 0px;
- height: 96%;
- float: left;
- overflow: scroll;
- position: fixed;
- top: 12px;
-
-/* IE hack */
-
- position: expression("absolute");
- top: expression(document.body.scrollTop+this.offsetHeight-this.offsetHeight);
-}
-
-/* Definitions for non-Safari/non-IE toc sections */
-div.toc dt {
- font-size: 12px;
- line-height: 22px;
-}
-
-/* Definitions for non-Safari/non-IE toc subsections */
-div.toc dd dl dt {
- font-size: 11px;
- line-height: 14px;
-}
-
-/* Definitions for toc sections using Safari Stokely hack */
-html*.toc dt {
-/* Seen by Safari */
- font-size: 14px;
- line-height: 16px;
-/* Seen by IE */
- _font-size: 14px;
- _line-height: 22px;
-}
-
-/* Definitions for toc subsections using Safari Stokely hack */
-html*.toc dd dl dt {
-/* Seen by Safari */
- font-size: 11px;
- line-height: 13px;
- padding-bottom: 0px;
-/* Seen by IE */
- _font-size: 11px;
- _line-height: 14px;
- _padding-bottom: 0px;
-}
-
-/* TOC All Links */
-/* div.toc a:link { color: royalblue; } */
-/* div.toc a:hover { color: #D00; } */
-/* div.toc a:visited { color: black; text-decoration: none; } */
-
-
-/* TOC Section Links */
-div.toc dt a:link { color: #F4F6F8; text-decoration: none; }
-div.toc dt a:hover { color: gray; }
-div.toc dt a:visited { color: #F4F6F8; text-decoration: none; }
-
-
-/* TOC Subsubsection Links */
-div.toc dd dl dt a:link { color: black; text-decoration: none; }
-div.toc dd dl dt a:hover { color: gray; }
-div.toc dd dl dt a:visited { color: black; text-decoration: none; }
-
-div.book {
- margin-left: 247px;
-}
-
-/*
-div.toc:before {
- font-family: Palatino, Bookman, serif;
- font-size: 16px;
- font-weight: bold;
- text-align: center;
- display: block;
- color: black;
- content: "MacPorts Guide Contents";
-} */
-
diff --git a/guide/new/resources/images/trac-default.png b/guide/new/resources/images/trac-default.png
deleted file mode 100644
index f218abf..0000000
Binary files a/guide/new/resources/images/trac-default.png and /dev/null differ
diff --git a/guide/new/xml/glossary.xml b/guide/new/xml/glossary.xml
deleted file mode 100644
index 314d9cf..0000000
--- a/guide/new/xml/glossary.xml
+++ /dev/null
@@ -1,479 +0,0 @@
-
-
-
- MacPorts Guide Terms
-
-
-
- MacPorts Guide Terms
-
-
- activate phase
-
-
-
-
-
-
-
- automake
-
-
-
-
-
-
-
- autoconf
-
-
-
-
-
-
-
- API
-
-
-
-
-
-
-
- BSD Unix
-
-
-
-
-
-
-
- CVS
-
-
-
-
-
-
-
- destroot phase
-
-
-
-
-
-
-
- port binary
-
-
-
-
-
-
-
- build
-
-
-
-
-
-
-
- build phase
-
-
-
-
-
-
-
- checksum
-
-
-
-
-
-
-
- checksum phase
-
-
-
-
-
-
-
- compile
-
-
-
-
-
-
-
- configure
-
-
-
-
-
-
-
- configure phase
-
-
-
-
-
-
-
- dependency
-
-
-
-
-
-
-
- destroot phase
-
-
-
-
-
-
-
- diff
-
-
-
-
-
-
-
- extract phase
-
-
-
-
-
-
-
- fetch phase
-
-
-
-
-
-
-
- free software
-
-
-
-
-
-
-
- global keyword
-
-
-
-
-
-
-
- gunzip
-
-
-
-
-
-
-
- keyword
-
-
-
-
-
-
-
- keyword argument modifier
-
-
-
-
-
-
-
- keyword list modifier
-
-
-
-
-
-
-
- library
-
-
-
-
-
-
-
- MacPorts
-
-
- A system for compiling, installing, and managing free and open
- source software comprised of an infrastructure called MacPorts base
- and a collection of ports. MacPorts current port collection defines
- the software may be installed.
-
-
-
-
- open source software
-
-
-
-
-
-
-
- patch phase
-
-
-
-
-
-
-
- patch file
-
-
-
-
-
-
-
- pextlib
-
-
-
-
-
-
-
- phase
-
-
-
-
-
-
-
- port
-
-
-
-
-
-
-
- port command
-
-
-
-
-
-
-
- port image
-
-
-
-
-
-
-
- port maintainer
-
-
-
-
-
-
-
- port phase
-
-
-
-
-
-
-
- port phase keyword
-
-
-
-
-
-
-
- PortGroup
-
-
-
-
-
-
-
- Portfile
-
-
-
-
-
-
-
- registry
-
-
-
-
-
-
-
- rsync
-
-
-
-
-
-
-
- selfupdate
-
-
-
-
-
-
-
- shell
-
-
-
-
-
-
-
- StartupItem
-
-
-
-
-
-
-
- subversion
-
-
-
-
-
-
-
- sync
-
-
-
-
-
-
-
- tar
-
-
-
-
-
-
-
- Tcl
-
-
-
-
-
-
-
- Tcl extension
-
-
-
-
-
-
-
- Trac
-
-
-
-
-
-
-
- Unix
-
-
-
-
-
-
-
- unzip
-
-
-
-
-
-
-
- variant
-
-
-
-
-
-
-
- Xcode Tools
-
-
-
-
-
-
-
- X11
-
-
-
-
-
-
-
- zip
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/guide/new/xml/guide.xml b/guide/new/xml/guide.xml
deleted file mode 100644
index 9b3a6f2..0000000
--- a/guide/new/xml/guide.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
- MacPorts Guide
-
-
-
- Mark
-
- Duling
-
-
-
- Dr
-
- Michael
-
- Maibaum
-
- A
-
-
-
- Will
-
- Barton
-
-
-
- 2007
-
- The MacPorts Project
-
-
-
- 2002, 2003, 2004
-
- The OpenDarwin Project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/guide/new/xml/installing.xml b/guide/new/xml/installing.xml
deleted file mode 100644
index 38d61fc..0000000
--- a/guide/new/xml/installing.xml
+++ /dev/null
@@ -1,270 +0,0 @@
-
-
-
- Installing MacPorts
-
- This chapter show you how to install MacPorts and its prerequisites
- step-by-step. Note that sections 1 through 3 are Mac OS X specific. If you
- wish to install MacPorts on FreeBSD, first make sure you have gcc and X11
- installed, and then begin with section Install MacPorts - Source.
-
-
- Install Xcode Tools
-
- To install Xcode Tools and the X11 SDK, follow these steps.
-
-
-
- Download and install the latest version of Xcode Tools—do
- not install an older version from the OS X 10.4 install disk or some
- ports may fail to install.
-
-
-
- Run the binary installer.
-
-
-
- Click the button Customize, expand the Applications category and
- click the check box beside X11 SDK to add it to the default
- items.
-
-
-
- Click "Install" to install Xcode Tools and the X11 SDK.
-
-
-
-
- Xcode Tools are not updated via OS X's Software Update
- utility.
-
-
-
-
- Install X11
-
- On OS X 10.4, Apple's X Window System (X11) is an optional install
- (Apple's X11 is currently recommended over the MacPorts X11 port). It is
- recommended that you install it even if you don't plan to run X11
- applications immediately.
-
-
-
- Insert the "Mac OS X Install Disk 1" and run the package named
- "Optional Installs".
-
-
-
- At the software selection window expand the Applications
- category and click the check box beside X11 (and nothing else).
-
-
-
- Click the Install button to install X11.
-
-
-
- Drag the /Applications/Utilities/X11 icon
- to your dock —you must open X11 before launching an X11
- application.
-
-
-
-
- X11 and the X11SDK (from Xcode Tools) are both required for X11
- apps. To verify the presence of both, check for files
- X11User.pkg and X11SDK.pkg in
- /Library/Receipts/.
-
-
-
- Optional X11 Settings
-
- To launch X11 applications directly from an X11 window (instead of
- a terminal window), you need to have the MacPorts paths imported into
- X11 sessions when they are opened. This is a two step process.
-
- First, tell X11 about the ~/.profile file
- that will be created after you install MacPorts. Do this by editing the
- file /etc/X11/xinit/xinitrc and adding this line
- near the top.
-
- source ~/.profile
-
- Now finish the process by making subsequent X11 sessions opened
- using the menu bar respect your .profile
- file.
-
-
-
- Open X11 and select "Customize Menu ..." from the Applications
- menu.
-
-
-
- Double-click the menu item "Terminal" and change: "xterm" to
- "xterm -ls"
-
-
-
- Click "Done" to save the change.
-
-
-
-
-
-
- Install MacPorts - Binary
-
- If you wish to install MacPorts to a path other than
- /opt/local do not install the MacPorts binary —skip
- this section and install MacPorts from
- the source code. The MacPorts binary installer will only install to
- /opt/local.
-
-
-
- Download the latest MacPorts .dmg disk image from the MacPorts
- download directory.
-
-
-
- Run the binary installer.
-
-
-
- Perform the default “easy” install.
-
-
-
-
- A MacPorts selfupdate
- operation will automatically update to the latest release if the binary
- .dmg image is behind the latest released tarball.
-
-
-
-
- Install MacPorts - Source
-
- If you installed MacPorts using the binary installer, skip this
- section. Installing from source on Mac OS X is only necessary if you wish
- to install to a path other than /opt/local, or if you
- wish to install a non-release version of MacPorts base. You must also
- install MacPorts from source if you wish to install MacPorts on a platform
- other than Mac OS X.
-
-
-
- Download and unzip the latest MacPorts tarball from the MacPorts
- download directory.
-
-
-
- Perform these commands in a terminal window, substituting a real
- path for NEW_PREFIX if you wish to use a path other than
- /opt/local/.
-
- %%cd ~/MacPorts-1.x.x/
-%%./configure --prefix=NEW_PREFIX (setting prefix is optional)
-%%make
-%%sudo make install
-
-
-
-
- Multiple MacPorts Installs
-
- Occasionally a MacPorts developer may wish to install more than
- one copy of MacPorts on the same host, possibly to test two different
- versions of MacPorts. But only one copy of MacPorts may use the default
- MacPorts Tcl library path /Library/Tcl, so for a
- second installation use the --with-tclpackage switch
- set to any newly created (empty) directory, say
- /Library/Tcl/macports-new. Also, the standard MacPorts binary path must
- not be present during the installation of the second instance. To
- install a second instance of MacPorts, follow these steps.
-
- %%export PATH=/bin:/sbin:/usr/bin:/usr/sbin
-%%cd ~/MacPorts-1.x.x/
-%%./configure --prefix=NEW_PREFIX --with-tcl-package=NEW_TCLPACKAGE
-%%make
-%%sudo make install
-
-
-
-
-
- Set the Bash Shell
-
- The MacPorts binary installer places a .profile
- file in your home directory (view files with a dot using ls
- -a). The contents of the ~/.profile adds
- the MacPorts paths in front of the standard Unix paths for the default
- Bash shell so that MacPorts libraries will take precedence over
- vendor-supplied libraries if both are present.
-
- The path statement in the MacPorts-installed .profile is set as
- shown.
-
- export PATH=/opt/local/bin:/opt/local/sbin:$PATH
-
- You must add this DISPLAY variable for
- X11.
-
- export DISPLAY=:0.0
-
- Add the EDITOR variable to use your favorite text
- editor. A complete ~/.profile file with the added
- variables is shown below.
-
- export PATH=/opt/local/bin:/opt/local/sbin:$PATH
-export DISPLAY=:0.0
-export EDITOR=/usr/bin/pico
-
-
- Changes to ~/.profile do not take effect until
- a new terminal session is opened. Type env in the
- terminal to verify the current environment settings. Example output of
- env is below.
-
- TERM_PROGRAM=Apple_Terminal
-TERM=xterm-color
-SHELL=/bin/bash
-TERM_PROGRAM_VERSION=133
-USER=joebob
-__CF_USER_TEXT_ENCODING=0x1FC:0:0
-PATH=/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
-PWD=/Users/joebob
-EDITOR=/usr/bin/pico
-SHLVL=1
-HOME=/Users/joebob
-LOGNAME=joebob
-DISPLAY=:0.0
-SECURITYSESSIONID=b0cea0
-_=/usr/bin/env
-
-
- If you have either a .bash_login or a
- .bash_profile file in your home directory, they may
- take precedence over .profile. You may either
- remove the previously used file, or add the contents of
- .profile to it.
-
-
-
-
- MacPorts Selfupdate
-
- You must always do a selfupdate after a new MacPorts install, and
- you should also do it frequently thereafter. See selfupdate —one of several port commands.
-
-
\ No newline at end of file
diff --git a/guide/new/xml/internals.xml b/guide/new/xml/internals.xml
deleted file mode 100644
index 536e2c1..0000000
--- a/guide/new/xml/internals.xml
+++ /dev/null
@@ -1,926 +0,0 @@
-
-
-
- MacPorts Internals
-
- This chapter contains information to help gain a better understanding
- of MacPorts or learn how to configure it for non-default operation.
-
-
- MacPorts File Hierarchy
-
- MacPorts port authors install files according to guidelines that
- define where ports should install the various classes of files in the
- MacPorts file hierarchy. These guidelines are listed below.
-
-
-
- ${prefix}
-
-
- The base of the MacPorts filesystem hierarchy.
-
- Default: /opt/local/
-
-
-
- bin/
-
-
- Common utilities, programming tools, and
- applications.
-
-
-
-
-
-
- etc/
-
-
- System configuration files and scripts.
-
-
-
-
-
-
- games/
-
-
- Useful and semi-frivolous programs.
-
-
-
-
-
-
- include/
-
-
- Standard C include files.
-
-
-
-
-
-
- java/
-
-
- Applications based on Java.
-
-
-
-
-
-
- libexec/
-
-
- System daemons and system utilities (executed by other
- programs).
-
-
-
-
-
-
- sbin/
-
-
- System programs and administration utilities.
-
-
-
-
-
-
- share/
-
-
- Architecture-independent files.
-
-
-
- doc/
-
-
- Miscellaneous documentation.
-
-
-
-
-
-
- examples/
-
-
- Examples for users and programmers.
-
-
-
-
-
-
- info/
-
-
- GNU Info hypertext system.
-
-
-
-
-
-
- locale/
-
-
- Localization files.
-
-
-
-
-
-
- man/
-
-
- Manual pages.
-
-
-
-
-
-
- misc/
-
-
- Miscellaneous system-wide ASCII text files.
-
-
-
-
-
-
-
- var/
-
-
- Multi-purpose log, temporary, transient and spool
- files.
-
-
-
- db/
-
-
- Miscellaneous automatically generated
- system-specific database files.
-
-
-
- mports/
-
-
- MacPorts runtime data.
-
-
-
-
-
-
-
-
-
- spool/
-
-
- Directory containing output spool files.
-
-
-
-
-
-
- log/
-
-
- Miscellaneous system log files.
-
-
-
-
-
-
- run/
-
-
- System information files describing various
- information about the system since it was booted.
-
-
-
-
-
-
-
-
-
-
-
-
- /Applications/MacPorts/
-
-
- Native Mac OS X applications.
-
-
-
-
-
-
- Configuration Files
-
- The MacPorts configuration files do not need to be modified for the
- general end user. They contain options that may be of use to advanced
- users and port developers. All the MacPorts configuration files are
- located in /opt/local/etc/macports.
-
-
- sources.conf
-
- sources.conf is where the location(s) are set
- to scan for MacPorts Portfiles. This file is commonly modified to add a
- local Portfile repository.
-
-
-
- macports.conf
-
- macports.conf contains advanced MacPorts
- configuration options. See the file comments for instructions.
-
-
-
- variants.conf
-
- variants.conf is used to specify variants to
- be used for all ports where they exist.
-
-
-
-
- Port Images
-
- MacPorts has a unique ability to allow for multiple versions,
- revisions, and variants of the same port installed at the same time, so
- you may test new port versions without uninstalling a previous working
- version.
-
- This capability derives from the fact that a MacPorts port by
- default is not installed into its final or "activated" location, but
- rather to an intermediate location that is only made available to other
- ports and end-users after an activation phase that makes hard links of all
- its files in ${prefix} that point to the port's files
- in the image repository. Therefore deactivating a port image to install a
- different version only removes the hard links in
- ${prefix} pointing to the previous port version's image
- —the deactivated port's image is not disturbed.
-
-
- MacPorts image mode may be turned off in favor of direct mode by
- setting the portinstalltype variable in the
- macports.conf file "direct". But unless you know
- what you're doing, don't change it.
-
-
-
-
- MacPorts APIs and Libs
-
- The MacPorts system is composed of three Tcl libraries:
-
-
-
- MacPorts API - MacPorts public API for handling Portfiles,
- dependencies, and registry
-
-
-
- Ports API - API for Portfile parsing and execution
-
-
-
- pextlib - C extensions to Tcl
-
-
-
-
- Ports API
-
- The code for the Port API is located in
- base/src/port1.0. The Port API provides all the
- primitives required for a Portfile to be parsed, queried, and executed.
- It also provides a single procedure call that the MacPorts API uses to
- kick off execution: "eval_targets". The port Tcl library supplies these
- procedures, all of which are generated at run-time using the
- options procedure in portutil.tcl.
-
- The macports Tcl library loads the Portfile into a
- sub-interpreter, within which all port-specific code is run. This
- process ensures that there will never be pollution of the Tcl space of
- other ports, nor the MacPorts libraries, nor the calling
- application.
-
-
- Portfiles are executed in a Tcl interpreter as Tcl code (and not
- truly parsed strictly speaking), so every Portfile option must be a
- TCL procedure.
-
-
- The Ports API performs the following functions:
-
-
-
- Manages target registrations. All targets register themselves
- with the Port API. Accordingly, the Port API creates pre-/post-/main
- overrides for each of the targets.
-
-
-
- Option/Default handling. All Portfile options (name, version,
- revision ...) are registered by targets. The Port API creates
- procedures for these options, and sets up the complex variable
- traces necessary to support option defaults.
-
-
-
- Executes target procedures, including the pre/post/main
- routines.
-
-
-
- Manages a state file containing information about what
- variants were specified and what targets have run
- successfully.
-
-
-
- Provides essential Portfile Tcl extensions (reinplace,
- xinstall, etc).
-
-
-
- Provides simple access to the ui_event mechanism by providing
- the various ui_ procedures (i.e., ui_msg, ui_error).
-
-
-
-
-
- MacPorts API
-
- The code for the MacPorts API is located in
- base/src/macports1.0. The MacPorts API provides a
- public API into the MacPorts system by providing simple primitives for
- handling Portfiles, dependencies, and registry operations, and exports
- the MacPorts API for the port command line utility,
- or any other. The API has very little information about the contents
- Portfiles; instead, it relies entirely upon the port
- Tcl library. By keeping the high level API simple and generic, revisions
- to the underlying ports system will not necessarily require a revision
- of the high level MacPorts API.
-
- The MacPorts API is also responsible for loading user specified
- options into a sub-interpreter to be evaluated by the ports API. In that
- case it sets the variable name in the sub-interpreter and adds the
- option to the sub-interpreter's global array user_options(). User
- options are passed as part of the call to mportopen.
-
- The MacPorts API performs the following functions:
-
-
-
- Dependency support.
-
- This is implemented in a highly generic fashion, and is used
- throughout the system. The dependency functions are exported to the
- Port API, and the Port API uses them to execute targets in the
- correct order.
-
-
-
- Dependency processing.
-
- Software dependencies are handled at this layer using the
- dependency support layer.
-
-
-
- UI abstractions.
-
- UI Abstractions are handled at this layer. Each port action is
- provided a context, and a mechanism for posting user interface
- events is exported to the Port API (ui_event).
-
-
-
- Registry management routines.
-
- Manages the rudimentary port registry in
- ${prefix}/var/mports/receipts/.
-
-
-
- mportregistry::new: create a new port
- registry entry.
-
-
-
- mportregistry::exists: check if a port
- registry entry exists (either versioned or not).
-
-
-
- mportregistry::delete: delete an existing
- registry entry.
-
-
-
- mportregistry::close: closes a new registry
- entry.
-
-
-
-
-
- Exports the MacPorts API for use by client
- applications.
-
- The following routines are defined.
-
-
-
- mportinit: Initializes the MacPorts system.
- Should be called before trying to use any other
- procedure.
-
-
-
- mportsearch: Given a regexp, searches the
- PortIndex for ports with matching
- names.
-
-
-
- mportopen: Given a URI to a port, opens a
- Portfile and returns an opaque handle to it.
-
-
-
- portclose: Given a port handle, closes a
- Portfile.
-
-
-
- mportexec: Given a port handle, executes a
- target (i.e. install).
-
-
-
- mportinfo: Given a port handle, this returns
- the PortInfo array (as a flat list of array elements). This is a
- little tricky and unstable and only used by the
- portindex command.
-
-
-
- mportdepends: Given a port handle, returns a
- list of ports upon which the specified port depends.
-
-
-
-
-
- For an example of the MacPorts API, when one executes
- port search cm3, the port utility:
-
-
-
- Calls the mportsearch function to find all ports
- containing "cm3".
-
-
-
- Returns Tcl array(s) containing data from the
- PortIndex: port name, version, revision,
- variants, etc.
-
-
-
- Formats the list of arrays in the standard viewing
- format.
-
-
-
- For another MacPorts API example, when one executes port
- install cm3, the port utility:
-
-
-
- Calls the mportsearch function to find the first
- port that matches the name "cm3".
-
-
-
- Calls the mportopen function to open the
- port.
-
-
-
- Calls the mportexec function to execute the
- install target in the port.
-
-
-
- Calls the mportclose function to close the
- port.
-
-
-
-
-
- pextlib
-
- The pextlib TCL library provides a variety of C extensions to add
- capabilities to TCL procedures; for example, an interface to flock(2)
- and mkstemp(3).
-
-
-
-
- The MacPorts Registry
-
- This chapter provides an overview of the MacPorts registry and its
- API. The registry is queried by MacPorts utilities for information about
- installed ports related to dependencies, port images, and simple user
- information about what is installed. It provides abstraction over a
- modular receipt storage layer; this allows for flat file receipts as well
- as receipts stored in a SQLite database.
-
- The registry allows MacPorts utilities to:
-
-
-
- Modify receipts to reflect changes made to installed ports being
- maintained by MacPorts.
-
-
-
- Query the global file and dependency databases for file
- conflicts between a port being installed and a port already
- installed.
-
-
-
- Maintain dependency trees of installed ports.
-
-
-
-
- Registry Files
-
- The flat file registry (MacPorts default registry) files are
- contained in ${portdbpath}/receipts, which by
- default is location
- ${prefix}/var/macports/receipts. File mappings and
- dependency mappings are tracked in the flat file registry by two
- files:
-
-
-
- file_map.db
-
-
-
- dep_map.bz2
-
-
-
-
-
- The Registry API
-
- The MacPorts registry provides a public API in the registry1.0 Tcl
- package. Using this API listed below you can access the MacPorts
- Registry using the default receipt storage mechanism chosen in
- macports.conf.
-
-
-
- registry::new_entry {name version {revision 0}
- {variants ""}}
-
-
- Begin the creation of a new registry entry for the given
- port. Returns a reference ID to the registry entry created.
-
-
-
-
-
-
- registry::open_entry {name {version 0}
- {revision 0} {variants ""}}
-
-
- Opens an existing registry entry. Returns a reference ID to
- the registry entry that was opened.
-
-
-
-
-
-
- registry::entry_exists {name version {revision
- 0} {variants ""}}
-
-
- Checks to see if a port exists in the registry. Returns 1 if
- the entry exists, 0 if not.
-
-
-
-
-
-
- registry::write_entry
- {ref}
-
-
- Writes the receipt associated with the given
- reference.
-
-
-
-
-
-
- registry::delete_entry
- {ref}
-
-
- Deletes the receipt associated with the given
- reference.
-
-
-
-
-
-
- registry::property_store {ref property
- value}
-
-
- Store the given value with the property name in the receipt
- associated with the given reference.
-
-
-
-
-
-
- registry::property_retrieve {ref
- property}
-
-
- Retrieve the property name from the receipt associated with
- the given reference. Returns the value of the property, if the
- property exists.
-
-
-
-
-
-
- registry::installed {{name ""} {version
- ""}}
-
-
- Get all installed ports, optionally all installed ports
- matching the given name, or the given name and version. Returns a
- list of the installed ports.
-
-
-
-
-
-
- registry::location {portname
- portversion}
-
-
- Returns the physical location the port is installed in on
- the disk. This is primarily useful for finding out where a port
- image is installed.
-
-
-
-
-
-
- registry::open_file_map
- {args}
-
-
- Opens the file map that contains file-port
- relationships.
-
-
-
-
-
-
- registry::file_registered
- {file}
-
-
- Returns the name of the port that owns the given file, if
- the file is registered as installed, and 0 otherwise.
-
-
-
-
-
-
- registry::port_registered
- {name}
-
-
- Returns a list of all files associated with the given port
- if that port is installed, and 0 otherwise.
-
-
-
-
-
-
- registry::register_file {file
- port}
-
-
- Registers the given file in the file map as belonging to the
- given port.
-
-
-
-
-
-
- registry::unregister_file
- {file}
-
-
- Removes the file from the file map.
-
-
-
-
-
-
- registry::write_file_map
- {args}
-
-
- Write the changes to the file map.
-
-
-
-
-
-
- registry::open_dep_map
- {args}
-
-
- Opens the dependency map that contains port dependency
- relationships.
-
-
-
-
-
-
- registry::fileinfo_for_file
- {fname}
-
-
- Returns a list for the given file name representing all data
- currently known about the file. This is a 6-tuple in the form
- of:
-
-
-
- file path
-
-
-
- uid
-
-
-
- gid
-
-
-
- mode
-
-
-
- size
-
-
-
- md5 checksum
-
-
-
-
-
-
-
-
- registry::fileinfo_for_index
- {flist}
-
-
- Returns a list of information concerning each file in the
- given file list, if that file exists in the registry. The
- information if obtained through registry::fileinfo_for_file
-
-
-
-
-
-
- registry::list_depends
- {name}
-
-
- Returns a list of all the ports that given port name depends
- on.
-
-
-
-
-
-
- registry::list_dependents
- {name}
-
-
- Returns a list of all the ports that depend on the given
- port name.
-
-
-
-
-
-
- registry::register_dep {dep type
- port}
-
-
- Registers the given dependency as the given type of
- dependency with the given port.
-
-
-
-
-
-
- registry::unregister_dep {dep type
- port}
-
-
- Unregister the given dependency of the given type as a
- dependency of the given port.
-
-
-
-
-
-
- registry::write_dep_map
- {args}
-
-
- Write changes to the dependency map.
-
-
-
-
-
-
\ No newline at end of file
diff --git a/guide/new/xml/intro.xml b/guide/new/xml/intro.xml
deleted file mode 100644
index 92f0591..0000000
--- a/guide/new/xml/intro.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
- Introduction
-
- MacPorts is a system for compiling, installing, and managing free and
- open source software. MacPorts may be conceptually divided into two main
- parts: the infrastructure, known as MacPorts base, and the set of available
- ports. A MacPorts port is a set of specifications contained in a Portfile that defines an
- application, its characteristics, and any files or special instructions
- required to install it, so MacPorts may automatically fetch, patch, compile,
- and install ported software.
-
- However, installing software using MacPorts instead of doing it
- manually brings advantages apart from scripted installs for individual
- applications. For example, MacPorts:
-
-
-
- Installs automatically any required support software, known as
- "dependencies", for a given port.
-
-
-
- Provides automatic uninstalls and upgrades for installed
- ports.
-
-
-
- Confines ported software to a private "sandbox" that keeps it from
- intermingling with your operating system and its vendor-supplied
- software to prevent them from becoming corrupted.
-
-
-
- Allows you to create pre-compiled binary installers of ported
- applications to quickly install software on computers without compiling
- from source code.
-
-
-
- MacPorts is developed on Mac OS X, though it is designed to be
- portable so it can work on other Unix-like systems, especially those
- descended from the Berkeley Software Distribution (BSD).
-
-
- Document Conventions
-
- The MacPorts Guide uses some notational conventions to distinguish
- between terminal input/output, file text, and other special text
- types.
-
-
-
- Terminal I/O and file text.
-
- %% Commands to be typed into a terminal window.
-
- Command output to a terminal window.
-
- File text.
-
-
-
- Other special text types.
-
- A hyperlink: spontaneous
- combustion.
-
- A file: /var/log/system.log.
-
- A command: ifconfig.
-
- An option: port
-
-
-
-
\ No newline at end of file
diff --git a/guide/new/xml/portfiledev.xml b/guide/new/xml/portfiledev.xml
deleted file mode 100644
index 3b93e78..0000000
--- a/guide/new/xml/portfiledev.xml
+++ /dev/null
@@ -1,696 +0,0 @@
-
-
-
- Portfile Development
-
- This chapter covers a brief introduction to Portfiles, how to create a
- local Portfile repository for development, and creating Portfiles.
-
-
- Portfile Introduction
-
- A MacPorts Portfile is a TCL script that usually
- contains only the simple keyword/value combinations and Tcl extensions as
- described in the Portfile Reference
- chapter, though it may also contain arbitrary TCL code. Every port has a
- corresponding Portfile, but Portfiles do not completely define a port's
- installation behavior since MacPorts base has default port installation
- characteristics coded within it. Therefore Portfiles need only specify
- required options, though some ports may require non-default
- options.
-
- A common way for Portfiles to augment or override MacPorts base
- default installation phase characteristics is by using
- Portfile phase declaration(s). If you use Portfile
- phase declaration(s), you should know how to identify the "global" section
- of a Portfile. Any statements not contained within a phase declaration, no
- matter where they are located in a Portfile, are said to be in the global
- section of the Portfile; therefore the global section need not be
- contiguous. Likewise, to remove statements from the global section they
- must be placed within a phase declaration.
-
- The main phases you need to be aware of when making a Portfile are
- these:
-
-
-
- Fetch
-
-
-
- Extract
-
-
-
- Patch
-
-
-
- Configure
-
-
-
- Build
-
-
-
- Destroot
-
-
-
- The default installation phase behavior performed by the MacPorts
- base works fine for applications that use the standard
- configure, make, and make
- install steps, which conform to phases configure, build, and
- destroot respectively. For applications that do not conform to this
- standard behavior, any installation phase may be augmented using pre- and/or post- phases, or
- even overridden or
- eliminated. See
- Example Portfiles
- below.
-
-
- For a detailed description of all port phases, see the Portfile Reference chapter.
-
-
-
-
- Local Portfile Repositories
-
- To create and test Portfiles that are not yet committed to
- subversion, you may create a local Portfile repository as shown. Replace
- the hypothetical user julesverne with your username
- in the example below.
-
-
-
- Open the sources.conf file in a text
- editor.
-
- %%cd ${prefix}/etc/macports/
-%%pico sources.conf
-
-
-
- Insert a URL pointing to your local repository location before
- the rsync URL as shown.
-
- file:///Users/julesverne/ports
-rsync://rsync.macports.org/release/ports
-
-
-
- The file URL should always appear before the rsync URL so that
- local Portfiles can be tested that are duplicated in the MacPorts
- tree, because the port command will always
- operate on the first Portfile it encounters.
-
-
-
-
- Place the Portfiles you create inside a directory whose name
- matches the port, which should in turn be placed inside a directory
- that reflect the port's primary category (the first category entry in
- the Portfile).
-
- %%cd /Users/julesverne
-%%mkdir -p ports/games/bestevergame
-%%cd ports/games/bestevergame
-%%touch Portfile
-
-
-
- After a Portfile is created (see below), use the MacPorts
- portindex command in the local repository's
- directory to install it into the
- Portindex.
-
- %% cd /Users/julesverne/ports
-%% portindex
-
- Creating software index in /Users/julesverne/ports
-Adding port games/bestevergame
-
-Total number of ports parsed: 1
-Ports successfully parsed: 1
-Ports failed: 0
-
-
-
- Once the local port is added to the Portindex,
- it becomes available for searching or installation as with any other
- Portfile in the MacPorts tree as shown.
-
- %%port search bestever
-
- bestevergame games/bestevergame 1.1 The Best Ever Game
-
-
-
- Creating a Portfile
-
- Here we list the individual Portfile components for an application
- that conforms to the the standard configure,
- make, and make install steps of most
- open source application installs.
-
-
-
- Subversion ID tag line
-
- The first line of a new Portfile must be set as shown. When a
- port is committed to subversion, ID tags are expanded to include the
- last person to commit and the commit time.
-
- # $Id$
-
-
-
- PortSystem line
-
- This statement is required for all ports.
-
- PortSystem 1.0
-
-
-
- Port name
-
- name rrdtool
-
-
-
- Port version
-
- version 1.2.23
-
-
-
- Port categories
-
- A port may belong to more than one category, but the first
- (primary) category should match the directory name in the ports tree
- where the Portfile is to reside.
-
- categories net
-
-
-
- Port maintainers
-
- A port's maintainer is a person or persons who take
- responsibility for keeping the port up-to-date, and the maintainer
- keyword lists maintainer email addresses(s). To hide these addresses
- from spambots, see the more full explanation of the maintainer keyword
- in the Global
- Keywords section of the Portfile
- Reference chapter.
-
- maintainers julesverne@example.org
-
-
- The address nomaintainer@macports.org, or in
- hidden form nomaintainer, designates a port that may
- be modified by any committer.
-
-
-
-
- Port description
-
- description Round Robin Database
-
-
-
- Port long_description
-
- long_description RRDtool is a system to store and display time-series data
-
-
-
- A port's application homepage
-
- homepage http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/
-
-
-
- Platform statement
-
- platforms darwin
-
-
-
- A port's download URLs
-
- master_sites http://oss.oetiker.ch/rrdtool/pub/ \
- ftp://ftp.pucpr.br/rrdtool/
-
-
-
- Port checksums
-
- The checksums specified in a Portfile are checked with the
- fetched tarball for security. For the best security, use md5, sha1,
- and rmd160 checksum types.
-
- checksums md5 dafa161bc9c61e57636a6085c87c1fe8 \
- sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
- rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23
-
- To find the correct checksums for a port's distribution file,
- follow this example:
-
- %%md5 rrdtool-1.2.23.tar.gz
-%%openssl sha1 rrdtool-1.2.23.tar.gz
-%%openssl rmd160 rrdtool-1.2.23.tar.gz
-
- MD5 ( ... rrdtool-1.2.23.tar.gz) = dafa161bc9c61e57636a6085c87c1fe8
-
-SHA1( ... rrdtool-1.2.23.tar.gz)= 5da610e1c8bc01b80abc21ab9e98e004363b429c
-
-RIPEMD160( ... rrdtool-1.2.23.tar.gz)= 0c1147242adf476f5e93f4d59b553ee3ea378b23
-
-
-
- Port dependencies
-
- A port's dependencies are ports that must be installed before
- another port is installed.
-
- depends_lib port:perl5.8 \
- port:tcl \
- port:zlib
-
-
-
- Port configure arguments (optional)
-
- configure.args --prefix=${prefix} \
- --enable-perl-site-install \
- --mandir=${prefix}/share/man
-
-
-
-
-
- Example Portfiles
-
- In this section we begin by taking a look at a complete simple
- Portfile; then we see how to augment default phases by
- defining pre- and post- phases, how to override default phases,
- and finally how to eliminate port
- phases.
-
-
- A Basic Portfile
-
- # Id$
-PortSystem 1.0
-
-name rrdtool
-version 1.2.23
-categories net
-maintainers julesverne
-description Round Robin Database
-long_description RRDtool is a system to store and display time-series data
-homepage http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/
-platforms darwin
-master_sites http://oss.oetiker.ch/rrdtool/pub/ \
- ftp://ftp.pucpr.br/rrdtool/
-
-checksums md5 dafa161bc9c61e57636a6085c87c1fe8 \
- sha1 5da610e1c8bc01b80abc21ab9e98e004363b429c \
- rmd160 0c1147242adf476f5e93f4d59b553ee3ea378b23
-
-depends_lib port:perl5.8 \
- port:tcl \
- port:zlib
-
-configure.args --prefix=${prefix} \
- --enable-perl-site-install \
- --mandir=${prefix}/share/man
-
-
-
- Augment Phases Using pre- / post-
-
- To augment a port's installation phase, and not override it, you
- may use pre- and post- installation phases as shown in this
- example.
-
- post-destroot {
-# Install example files not installed by the Makefile
- file mkdir ${destroot}${prefix}/share/doc/${name}/examples
- file copy ${worksrcpath}/examples/ \
- ${destroot}${prefix}/share/doc/${name}/examples
-}
-
-
-
- Overriding Phases
-
- To override the automatic MacPorts installation phase processing,
- define your own installation phases as shown in this example.
-
- destroot {
- xinstall -m 755 -d ${destroot}${prefix}/bin
- xinstall -m 755 ${worksrcpath}/cdpr ${destroot}${prefix}/bin
-}
-
-
-
- Eliminating Phases
-
- To eliminate a default phase, simply define a phase with no
- contents as shown.
-
- build {}
-
-
- Because many software packages do not use
- , a keyword is provided to eliminate the
- phase. See the chapter Portfile Reference for full
- information.
-
-
-
-
- Creating a StartupItem
-
- Startupitems may be placed in the global section of a
- Portfile.
-
- startupitem.create yes
-startupitem.name nmicmpd
-startupitem.executable "${prefix}/bin/nmicmpd"
-
- Startupitems keywords may also be used within a variant definition
- to make their installation conditional.
-
- variant server {
- startupitem.create yes
- startupitem.start "${prefix}/share/${name}/vm-pop3d.init start"
- startupitem.stop "${prefix}/share/${name}/vm-pop3d.init stop"
-}
-
-
-
-
- Port Variants
-
- Variants are a way for port authors to provide options that may be
- invoked at install time. They are declared in the global section of a
- Portfile using the "variant" keyword and may provide a description.
-
-
- Variants to Modify Options
-
- The most common use for a variant is to add or remove
- dependencies, configure arguments, and build arguments from the global
- Portfile section. Here is an example of a port providing four variants
- that add additional configure arguments to a port.
-
- variant pop { configure.args-append --enable-pop }
-variant imap { configure.args-append --enable-imap }
-variant ssl { configure.args-append --with-ssl }
-variant debug { configure.args-append --enable-debug }
-
- In the example variant declaration, the configure argument
- --without-x is removed and a numner of others are
- appended.
-
- variant x11 description {Builds port as an X11 program with Lucid widgets} {
- configure.args-delete --without-x
- configure.args-append --with-x-toolkit=lucid \
- --without-carbon \
- --with-xpm \
- --with-jpeg \
- --with-tiff \
- --with-gif \
- --with-png
- depends_lib-append lib:libX11:XFree86 \
- lib:libXpm:XFree86 \
- port:jpeg \
- port:tiff \
- port:libungif \
- port:libpng
-}
-
-
-
- Variant Actions in a Phase
-
- If a variant requires options in addition to those provided by
- keywords using -append and/or -delete, in other words, any actions that
- would normally take place within a port installation phase, do not try
- to do this within the variant declaration. Rather, modify the behavior
- of any affected phases when the variant is invoked using the
- variant_isset keyword.
-
- post-destroot {
- xinstall -m 755 -d ${destroot}${prefix}/etc/
- xinstall ${worksrcpath}/examples/foo.conf \
- ${destroot}${prefix}/etc/
-
- if {[variant_isset] carbon]} {
- delete ${destroot}${prefix}/bin/emacs
- delete ${destroot}${prefix}/bin/emacs-${version}
- }
-}
-
-
-
- Default Variants
-
- Variants are used to specify actions that lie outside the core
- functions of an application or port, but there may be some cases where
- you wish to specify these non-core functions by default. For this
- purpose you may use the keyword default_variants.
-
- default_variants +foo +bar
-
-
- The default_variant keyword may only be used in the global
- Portfile section.
-
-
-
-
-
- Patch Files
-
- Patch files are files created with the Unix command
- diff that are applied using the command
- patch to modify text files to fix bugs or extend
- functionality.
-
-
- Creating Portfile Patches
-
- If you wish to contribute modifications or fixes to a Portfile,
- you should do so in the form of a patch.
-
-
-
- Make a copy of the Portfile you wish to modify; both files
- must be in the same directory, though it may be any
- directory.
-
- %%cp Portfile Portfile.orig
-
-
-
- Edit the file to make it as you want it to be after it is
- fetched.
-
-
-
- Now use the Unix command diff -u to create
- a "unified" diff patch file. Put the name of the port in the
- patchfile, for example, Portfile-rrdtool.diff.
-
- %%diff -u Portfile.orig Portfile > Portfile-rrdtool.diff
-
-
-
- A patch file that is a "unified" diff file is the easiest to
- interpret by humans and this type should always be used for ports.
- The Portfile patch below will change the version and checksums when
- applied.
-
- --- Portfile.orig 2007-07-25 18:52:12.000000000 -0700
-+++ Portfile 2007-07-25 18:53:35.000000000 -0700
-@@ -2,7 +2,7 @@
- PortSystem 1.0
-
- name nefu
--version 1.4.0
-+version 1.3.0
- categories net
- maintainers nomaintainer@macports.org
- description A network monitoring daemon.
-@@ -13,9 +13,9 @@
-
- homepage http://rsug.itd.umich.edu/software/${name}
-
- master_sites ${homepage}/files/
--checksums md5 f0953b21cdb5eb327e40d4b215110b71
-+checksums md5 01532e67a596bfff6a54aa36face26ae
- extract.suffix .tgz
- platforms darwin
-
-
-
-
- Now you may attach the patch file to a MacPorts Trac ticket for
- the port author to evaluate.
-
-
-
- Creating Source Code Patches
-
- Necessary or useful patches to application source code should be
- sent to the application developer (not the port author) so the
- modifications may be included in the next version, and the port patch
- eventually removed.
-
-
-
- Locate the file you wish to patch in its original location
- within the unpacked source directory and make a duplicate of
- it.
-
- %%cd foo-1.34/src
-%%cp Makefile.in Makefile.in.orig
-
-
-
- Edit the file to make it as you want it to be after it is
- fetched.
-
-
-
- Now use the Unix command diff -u to create
- a "unified" diff patch file.
-
- %%cd foo-1.34
-%%diff -u Makefile.in.orig Makefile.in > patch-Makefile.in
-
-
- You must execute the diff command in the
- top-level of the unpacked source code. Otherwise the
- patch command will look for the file to be
- patched in the wrong place and fail.
-
-
-
-
- A patch file that is a "unified" diff file is the easiest to
- interpret by humans and this type should always be used for ports.
- See the example below where a patch adds DESTDIR
- support to a Makefile.in file.
-
- --- Makefile.in.orig 2007-06-01 16:30:47.000000000 -0700
-+++ Makefile.in 2007-06-20 10:10:59.000000000 -0700
-@@ -131,23 +131,23 @@
- $(INSTALL_DATA)/gdata $(INSTALL_DATA)/perl
-
- install-lib:
-- -mkdir -p $(INSTALL_LIB)
-+ -mkdir -p $(DESTDIR)$(INSTALL_LIB)
- $(PERL) tools/install_lib -s src -l $(INSTALL_LIB) $(LIBS)
-- cp $(TEXT) $(INSTALL_LIB)/
-+ cp $(TEXT) $(DESTDIR)$(INSTALL_LIB)/
-
-
-
- Now you may place the patch
- patch-Makefile.in in the path ${portpath}/files
- of a local repository (or commit it to subversion) and use it in a
- port using the patchfiles keyword.
-
- patchfiles patch-Makefile.in
-
-
- You should make a patch file for each file to be patched,
- though if you obtain a patch from another source that patches
- multiple files it is permissible to use it that way. Patch
- filenames should generally be of the form
- "patch-<directory>-<filename>", as shown in this
- example: patch-src-Makefile.in.
-
-
-
-
-
-
- Manually Applying Patches
-
- Though MacPorts applies patch files automatically, you may want to
- know how to apply patch files manually if you want to test patch files
- you have created or you wish to apply uncommitted Portfile
- patches.
-
-
-
- Change to the directory containing the file to be patched. In
- this example, we'll apply a Portfile patch to the postfix
- port.
-
- %%cd ${prefix}/var/macports/sources/rsync.macports.org/release/ports/mail/postfix
-
-
-
- Now apply the patch that is on the current user's desktop. The
- patchfile knows the filename of the file to be patched.
-
- %%patch -p0 < ~/Desktop/Portfile-postfix.diff
-
- patching file Portfile
-
-
-
-
-
-
- Portfile Best Practices
-
- This section contains practical guidelines for creating Portfiles
- that install smoothly and provide consistency between ports. The following
- sections are on the TODO list.
-
-
- Don't Overwrite Config Files
-
- TODO:
-
-
-
- Install Docs and Examples
-
- TODO:
-
-
-
- Provide User Messages
-
- TODO:
-
-
-
- Use Variables
-
- TODO: Set variables so changing paths may be done in one place;
- use them anytime it makes updates simpler: distname
- ${name}-src-${version}
-
-
-
\ No newline at end of file
diff --git a/guide/new/xml/portfileref.xml b/guide/new/xml/portfileref.xml
deleted file mode 100644
index 6f0f97e..0000000
--- a/guide/new/xml/portfileref.xml
+++ /dev/null
@@ -1,2172 +0,0 @@
-
-
-
- Portfile Reference
-
- This chapter serves as a reference for the major elements of a
- Portfile: port phases, dependencies, StartupItems, variables, keywords, and
- Tcl extensions.
-
-
- Port Phases
-
- A MacPorts port has ten distinct phases. The MacPorts base is set to
- perform default steps for applications that use the standard
- configure, make, and make
- install steps, but for applications that do not conform to this
- behavior, installation phases may be declared in a Portfile to augment or override the default
- behavior as described in the Portfile
- Development chapter.
-
-
- Fetch
-
- Overview: Fetch the ${distfiles} from
- ${master_sites} and place it in
- ${prefix}/var/macports/distfiles.
-
-
-
- Checksum
-
- Overview: Compare ${checksums} specified in a
- Portfile to the checksums of the fetched
- ${distfiles}.
-
-
-
- Extract
-
- Overview: Unzip and untar the ${distfiles} into
- the path ${prefix}/var/macports/build/..../work
-
-
-
- Patch
-
- Overview: Apply optional patch files
- specified in ${patchfiles} to modify a port's source
- code file(s).
-
- Details: Patch files are made using the diff command, and
- MacPorts patches should be created as unified
- diffs.
-
-
-
- Configure
-
- Overview: Execute the command "configure" in
- ${workpath}.
-
-
-
- Build
-
- Overview: Execute the command "make" in
- ${workpath}.
-
-
-
- Destroot
-
- Overview: Execute the command make install
- DESTDIR=${destroot} in ${workpath}.
-
- Details: Understanding the destroot phase is critical to
- understanding MacPorts, because, unlike some port systems, MacPorts
- "stages" an installation into an intermediate location —not the final
- file destination. There are two main advantages to this method.
-
-
-
- A port's files may be cleanly uninstalled because all files
- and locations are tracked.
-
-
-
- Since a port's files are not installed into MacPorts directory
- structure until an activation phase, a port may be deactivated
- through MacPorts to allow activation of a different version of the
- same port, thus allowing two versions of a port to be present,
- though not both active, on a given host.
-
-
-
-
- The $(DESTDIR) variable must be supported in
- an application's Makefile for the MacPorts destroot phase to work
- properly. Urge developers to fully support
- $(DESTDIR) in their Makefiles.
-
-
- At the beginning of the destroot phase, all the directories in the
- file ${prefix}/etc/macports/prefix.mtree are
- created. Any directories still empty upon completion of the destroot
- phase are removed unless a directory is listed using a destroot.keepdirs
- keyword.
-
-
-
- Archive
-
- Overview: Use tar to create a tarball of a port's destrooted files
- and copy it to
- ${prefix}/var/macports/packages/.
-
-
-
- Install
-
- Overview: Copy a port's destrooted files into
- ${prefix}/var/macports/software. See Port Images in the MacPorts Internals chapter for
- details.
-
-
-
- Activate
-
- Overview: Set hardlinks pointing
- to ${prefix}/var/macports/software to point to
- ${prefix}.
-
-
-
-
- Dependencies
-
- Free and open source software is highly modular, and MacPorts ports
- often require modules not provided in a port's distribution to be
- installed before a port may be installed, compiled, or run. These support
- modules are generally other MacPorts ports, and the ports required to
- satisfy prerequistes for a given port are called a port's
- "dependencies".
-
- There are three types of dependencies in MacPorts: library, build,
- and run dependencies. The dependency type is important for proper port
- upgrade and uninstall behavior. For example, you may not uninstall a port
- that is a library dependency for another port, though you may remove one
- with a build dependency; likewise, upgrading a port will upgrade its
- library and build dependencies also, but not its run dependencies.
-
-
- depends_lib
-
- The list of dependencies to check before phases
- , ,
- , , and
- . Library dependencies are needed both at build
- time (for headers and libraries to link against) and at run time.
-
- depends_lib port:rrdtool
-
-
-
- depends_build
-
- The list of dependencies to check before phases
- , ,
- , and . Build
- dependencies are needed when software is compiled, but not needed at all
- once the software is compiled and installed.
-
- depends_build port:gcc42
-
-
-
- depends_run
-
- The list of dependencies to check before phases
- , , and
- . Run dependencies are needed when the software
- is run, but not to compile it.
-
- depends_run port:apache2
-
-
-
- Non-Port Dependencies
-
- Port dependencies should refer to other MacPorts ports whenever
- possible. However, if satisfying a dependency with a port is not
- practical or desirable for a special reason, you may specify
- dependencies by having MacPorts test for an individual file by replacing
- port: with one of the options lib: bin: or
- path:.
-
- In this lib style dependency, if the file
- libX11.6.x.dylib is not found in the library path
- the XFree86 port will be installed to satisfy it.
-
- depends_lib lib:libX11.6:XFree86
-
- In this bin style dependency, if the python
- binary is not found in the shell's binary path the port python24 will be
- installed.
-
- depends_build bin:python:python24
-
- In this path style dependency, if the file
- /usr/bin/nano is not found the nano port will be
- installed.
-
- depends_run path:/usr/bin/nano:nano
-
-
-
-
- StartupItems
-
- StartupItems are keywords that create Mac OS X startup scripts for
- launchd, the
- facility intoduced by Apple beginning with OS X 10.4, that starts, stops,
- and manages daemons, programs and scripts. Port authors use StartupItem
- keywords within Portfiles to instruct MacPorts to generate and install
- launchd scripts for daemons during port installation.
- To support launchd, a wrapper program named daemondo is
- provided by MacPorts base that serves as an adapter between OS X's
- launchd and daemons that are normally started via
- traditional rc.d style scripts.
-
- There are three categories of StartupItem keywords. Those that
- trigger StartupItem creation and setup logging, those that specify
- attributes of executable StartupItems, and those that
- specify attributes of script StartupItems.
-
-
- StartupItem Creation & Logging
-
- The keywords in this section may be used with either
- executable or script StartupItems (see
- below).
-
-
-
- startupitem.create
-
-
- Trigger the creation of a StartupItem.
-
-
- Type: optional
-
- Default:
-
- Values:
-
- Example:
-
-
- startupitem.create yes
-
-
-
-
- startupitem.name
-
-
- Sets the name for the StartupItem.
-
-
- Type: required
-
- Default: none
-
- Values: any name
-
- Example:
-
-
- startupitem.name OpenSSH
-
-
-
-
- startupitem.logfile
-
-
- Path to a logfile for logging events about the lifetime of
- the StartupItem. Depending on the type of StartupItem, and the
- manner in which it is started, standard output from the daemon may
- also be directed to the logfile.
-
-
- Type: optional
-
- Default:
-
- Values: /file/path/
-
- Example:
-
-
- startupitem.logfile ${prefix}/var/log/mydaemon.log
-
-
-
-
- startupitem.logevents
-
-
- Control whether or not to log events to the log file. If
- logevents is set, events with timestamps are logged to the
- logfile.
-
-
- Type: optional
-
- Default:
-
- Values:
-
- Example:
-
-
- startupitem.logevents yes
-
-
-
-
-
-
- Executable StartupItems
-
- Executable StartupItems are slightly preferred over
- script StartupItems because daemondo
- launches the daemon directly, rather than indirectly via a startup
- script, and therefore it automatically knows how to monitor the daemon
- to restart it if it dies. The executable StartupItem
- specifies the path and name of the daemon to be run in the
- background.
-
-
- For a given port, the executable StartupItem
- keyword may not be used with any keywords in the script
- StartupItem category.
-
-
-
-
- startupitem.executable
-
-
- Specifies the name of the daemon to be run in the
- background. It may have multiple arguments, but they must be
- appropriate for a call to exec; arbitrary shell code may not be
- used.
-
-
- Type: optional
-
- Default:
-
- Values:
- /path/to/executable
-
- Example:
-
-
- startupitem.executable "${prefix}/bin/nmicmpd"
-
-
-
-
-
-
- Script StartupItems
-
- StartupItems of type script use
- daemondo to launch a daemon via a startup script
- provided in port distributions containing daemons. When using this type
- of StartupItem, the startupitem.pidfile keyword may be used
- so daemondo can monitor the daemon's PID and restart
- it if it dies.
-
-
- For a given port, StartupItem keywords in category
- script may not be used with an
- executable StartupItem keyword.
-
-
-
-
- startupitem.start
-
-
- Specify a shell script to start the daemon.
-
-
- Type: optional
-
- Default: none
-
- Values: shell_script
-
- Example:
-
-
- startupitem.start ${prefix}/share/mysql/mysql.server start
-
-
-
-
- startupitem.stop
-
-
- Specify a shell script to stop the daemon.
-
-
- Type: optional
-
- Default: none
-
- Values: shell_script
-
- Example:
-
-
- startupitem.start ${prefix}/share/mysql/mysql.server stop
-
-
-
-
- startupitem.restart
-
-
- Specify a shell script to restart the daemon. In the absence
- of this key, the daemon will be restarted by taking the stop
- action, followed by taking the start action.
-
-
- Type: optional
-
- Default: none
-
- Values: shell_script
-
- Example:
-
-
- startupitem.start ${prefix}/share/mysql/mysql.server restart
-
-
-
-
- startupitem.pidfile
-
-
- This keyword must be defined properly for
- daemondo to be able to monitor daemons launched
- via script StartupItems and restart them if they
- die. It specifies two things: a process id (PID) file handling
- method, and a pidfile name and path.
-
-
- Type: optional
-
- Default: |
- [${prefix}/var/run/${name}.pid]
-
- Values:
- [/path/to/pidfile]
-
- Example:
-
-
- startupitem.pidfile auto ${prefix}/var/run/${name}.pidfile
-
- Pidfile handling options:
-
-
- - The daemon is not to use a
- pidfile.
-
- - The daemon generates its own
- pidfile.
-
- - The daemon never generates a
- pidfile; the StartupItem must manage the pidfile on its
- own.
-
- - The daemon generates its own
- but will not delete it; the StartupItem must delete it.
-
-
-
-
-
- startupitem.init
-
-
- Shell code that will be executed prior to any of the options
- startupitem.start, startupitem.stop and
- startupitem.restart.
-
-
- Type: optional
-
- Default:
-
- Values: shell_script
-
- Example:
-
-
- startupitem.init "PID=/var/run/dhcpd.pid"
-
-
-
-
-
-
-
- Variables
-
- This section describes the MacPorts preset variables that may be
- used within Portfiles.
-
-
- General
-
- These are the variables available to any
- Portfile.
-
-
-
- prefix
-
-
- Installation prefix, set in the system-wide configuration
- file ${prefix}/etc/macports/macports.conf
- —may be overridden on a per port basis. For example, aqua
- applications are installed in
- /Applications/MacPorts.
-
-
-
-
- binpath
-
-
- Default PATH to use in finding executables. Read
- only.
-
-
-
-
- libpath
-
-
- Path to the MacPorts TCL libraries. Read only.
-
-
-
-
- portpath
-
-
- Path to the directory containing the downloaded Read
- only.
-
-
-
-
- filesdir
-
-
- Path to port files relative to
- ${portpath}. Read only.
-
-
-
-
- workpath
-
-
- Full path to work directory. Read only.
-
-
-
-
- worksrcpath
-
-
- Full path to extracted source code. Equivalent to
- ${workpath}/${worksrcdir}.
-
-
-
-
- destroot
-
-
- Full path into which software will be destrooted.
- Equivalent to ${workpath}/destroot. Read
- only.
-
-
-
-
- distpath
-
-
- Location to store downloaded distfiles. Read only.
-
-
-
-
- install.user
-
-
- The Unix user at the time of port installation.
-
-
-
-
- install.group
-
-
- The Unix group at the time of port installation.
-
-
-
-
- os.platform
-
-
- Identifies platform type (ie, "darwin", "freebsd", etc).
- Read only.
-
-
-
-
- os.arch
-
-
- Identifies hardware type (ie, "powerpc", "intel"). Read
- only.
-
-
-
-
- os.version
-
-
- The version number of the host operating system (ie "8.0"
- for Darwin 8.0). Read only.
-
-
-
-
- os.major
-
-
- The major version number of the host operating system (ie
- "8" for Darwin 8.0). Read only.
-
-
-
-
-
-
- PortGroup Variables
-
- In addition to the general Portfile type for
- standard Unix applications and libraries, there are six optional
- PortGroup types that provide special Portfile
- handling to make creating a Portfile easier.
-
-
-
- perl5
-
-
-
- python24 and python25
-
-
-
- ruby
-
-
-
- xcode
-
-
-
- gnustep
-
-
-
- zope
-
-
-
- Some PortGroups provide additional variables when they are
- declared within a Portfile. The additional variables provided by
- PortGroups perl5, python, and ruby are listed below. You may view the
- port Tcl code for each group in the directory
- ${prefix}/share/macports/resources/port1.0/group.
-
-
-
- PortGroup perl5
-
-
- Description: The variables available to a
- Portfile when the PortGroup
- perl5 keyword is declared.
-
-
-
- perl5.version
-
-
- The MacPorts Perl version.
-
-
-
-
-
-
- perl5.bin
-
-
- The Perl binary path (ie,
- ${prefix}/bin/perl).
-
-
-
-
-
-
- perl5.lib
-
-
- Path to the Perl vendor directory.
-
-
-
-
-
-
- perl5.archlib
-
-
- Path to the Perl architecture-dependent modules
- directory.
-
-
-
-
-
-
-
-
-
- PortGroup python2x
-
-
- Description: The variables available to a
- Portfile when the PortGroup
- python2x keyword is declared.
-
-
-
- python.bin
-
-
- The MacPorts Python binary location.
-
-
-
-
-
-
- python.lib
-
-
- The Python dynamic library and path (ie,
- ${prefix}/lib/libpython2.x.dylib).
-
-
-
-
-
-
- python.include
-
-
- Path to the Python include directory.
-
-
-
-
-
-
- python.pkgd
-
-
- Path to the Python site-packages directory. (ie,
- ${prefix}/lib/python2.4/site-packages).
-
-
-
-
-
-
-
-
-
- PortGroup ruby
-
-
- Description: The variables available to a
- Portfile when the PortGroup
- ruby keyword is declared.
-
-
-
- ruby.version
-
-
- The MacPorts Ruby version.
-
-
-
-
-
-
- ruby.bin
-
-
- The Ruby binary location.
-
-
-
-
-
-
- ruby.lib
-
-
- Path to the Ruby vendorlibdir directory (ie,
- ${prefix}/lib/ruby/vendor_ruby/${ruby.version})
-
-
-
-
- ruby.arch
-
-
- The name for the Ruby architecture-dependent directory
- name (ie, i686-darwin8.10.1).
-
-
-
-
-
-
- ruby.archlib
-
-
- Path to the Ruby vendor archdir (ie,
- ${ruby.lib}/${ruby.arch}).
-
-
-
-
-
-
-
-
-
-
- Keywords
-
- MacPorts keywords are used to specify required or optional items
- within a Portfile, or to override default options
- used by MacPorts base for individual ports when necessary. Keywords are to
- be used within the "global" and "variant" sections of Portfiles, and not
- within optional port phase declarations. In other words, port phase
- keywords are not located within port phase declarations, but rather they
- refer to port phases and set options for those
- phases, and they take affect whether or not phase declarations have been
- explicitly defined by a port author.
-
- The keywords listed below in category "global" specify information
- for ports as a whole, whereas the keywords listed under a port phase
- specify information to be used during a particular installation
- phase.
-
-
- Using -append and -delete Keywords
-
- It is often necessary to add to a list of keyword values
- previously set by MacPorts base or set by a prior Portfile keyword. In
- these cases we generally don't want to replace the current list, but
- rather to add or delete values from the list. For this purpose there are
- "-append" and "-delete" keywords; they are listed below according to
- keyword category. The three most common uses for these keywords are
- given below.
-
-
-
- Preserve default configure arguments.
-
- MacPorts base sets the gcc compiler flags CFLAGS and LDFLAGS
- for all ports using configure.cflags and
- configure.ldflags, therefore to keep from
- overwriting the default compiler flags use:
-
-
-
- configure.cflags-append
-
-
-
- configure.ldflags-append
-
-
-
-
-
- Preserve default dependencies within a PortGroup.
-
- Ports in a PortGroup have default library dependencies set by
- MacPorts base. Therefore, never use depends_lib
- in ports belonging to a PortGroup or it will overwrite the default
- library dependencies. Instead, use:
-
-
-
- depends_lib-append
-
-
-
-
-
- Add or delete port dependencies, distfiles, patchfiles, etc.
- for port variants.
-
- When a variant requires more or fewer dependencies, distfiles,
- or patchfiles, you want to add or remove items to the list of
- dependency keyword values that were set in the global section of the
- Portfile. Use the appropriate keywords, for example:
-
-
-
- depends_lib-append or
- depends_lib-delete
-
-
-
- distfiles-append or
- distfiles-delete
-
-
-
- patchfiles-append or
- patchfiles-delete
-
-
-
-
-
-
-
- Global Keywords
-
- The list of global keywords.
-
-
-
- PortSystem
-
-
- The top line of every Portfile; it must be followed by a
- blank line. It defines which version of the Portfile interpreter
- will be used.
-
- PortSystem 1.0
-
-
-
-
-
-
- name
-
-
- The name of the Port; it should be lowercase.
-
-
- Type: required
-
- Default: none
-
-
- name foo
-
-
-
-
- version
-
-
- The version of the ported software.
-
- version 1.23.45
-
-
-
-
- revision
-
-
- Optional keyword (default is 0) that is used to track port
- revisions. It should not be incremented for port revisions unless
- it would benefit users to upgrade an installed port, and cleared
- when the port is updated to a newer version.
-
- revision 1
-
-
-
-
- categories
-
-
- The category under which the ported software falls. The
- first category should be the same as the directory within which
- the Portfile is stored; secondary and tertiary categories may be
- selected.
-
- categories net security
-
-
-
-
- maintainers
-
-
- A port's maintainer is a person or persons who take
- responsibility for keeping the port up-to-date, and the maintainer
- keyword lists maintainer email addresses(s). However, many
- maintainers wish to hide these addresses from spambots; to do so
- follow these conventions:
-
-
-
- For addresses in domain @macports.org, simply omit the
- domain name.
-
-
-
- For addresses in other domains, say
- account@example.org, use the convention
- example.org:account to specify the address.
-
-
-
- In the example below, the maintainer email addresses
- jdoe@macports.org and
- julesverne@example.org are hidden using these
- conventions.
-
- maintainers jdoe \
- example.org:julesverne
-
-
-
-
- description
-
-
- A one-sentence description of the ported software.
-
- description A clasic shooter arcade game.
-
-
-
-
- long_description
-
-
- A long description of the ported software. Break long lines
- with escaped newlines.
-
- description A classic shooter arcade game derived from \
- the game alien-munchers. Not suitable for \
- children under two years old.
-
-
-
-
- homepage
-
-
- Port application's homepage.
-
- homepage http://www.somesite.org/apps
-
-
-
-
- platforms
-
-
- The platforms on which the port has been tested.
-
- platforms darwin freebsd
-
-
-
-
- depends_lib
-
-
- Library dependencies are needed both at build time (for
- headers and libraries to link against) and at run time.
-
- depends_lib port:rrdtool
-
-
- depends_lib-append
-
- depends_lib-delete
-
-
-
-
-
- depends_build
-
-
- Build dependencies are needed when software is compiled, but
- not needed at all once the software is compiled and
- installed.
-
- depends_build port:gcc42
-
-
- depends_build-append
-
- depends_build-delete
-
-
-
-
-
- depends_run
-
-
- Run dependencies are needed when the software is run, but
- not to compile it.
-
- depends_run port:apache2
-
-
- depends_run-append
-
- depends_run-delete
-
-
-
-
-
-
-
- Fetch
-
- The list of keywords related to the fetch phase.
-
-
-
- master_sites
-
-
- A list of urls from which a port's download file(s) may be
- retrieved.
-
- For ports that require only one download file, the list is
- searched in order until a file matching
- ${distname}${extract.suffix} is found.
-
- master_sites http://www.somesite.org/files/ \
- http://www.somemirror.org/somesite_org/files/
-
- You may also use mirror sites predefined by MacPorts. Here
- the sourceforge and gnu mirrors are used.
-
- master_sites sourceforge gnu
-
- When using mirror master_sites, the subdirectory
- ${name} is checked on every mirror. If the
- mirror subdirectory does not match ${name}, then you may specify
- it using after the mirror separated by a colon.
-
- master_sites sourceforge:widget \
- gnu:widget
-
- For ports that must fetch multiple download files from
- different locations, you may label the files with tags and match
- the tags in a distfiles statement. The format is
- mirror:subdirectory:tag.
-
- In the example below, file_one.tar.gz is fetched from
- sourceforge mirrors in subdirectory ${name};
- file tagtwo.tar.gz is fetched from the gnu mirrors in subdirectory
- sources.
-
- distfiles file_one.tar.gz:tagone \
- file_two.tar.gz:tagtwo \
- file_three.tar.gz
-
-master_sites sourceforge::tagone \
- gnu:sources:tagtwo
-
-
-
-
- patch_sites
-
-
- A list of sites from which a port's patchfiles may be
- downloaded, where applicable.
-
- patch_sites ftp://ftp.patchcityrepo.com/pub/magic/patches
-
-
-
-
- distname
-
-
- The default distname is
- ${name}-${version}. This keyword is used to
- specify download files that do not meet this standard (excluding
- the extract.suffix).
-
- distname ${name}
-
-
-
-
- distfiles
-
-
- The default distfile name is
- ${distname}${extract.suffix}. This keyword is
- used when a download file for a port is not
- ${distname}${extract.suffix} or to used to
- specify multiple download files.
-
- distfiles ${name}-dev_src.tgz
-
-
-
-
- extract.suffix
-
-
- The default value is .tar.gz, so is normally used to specify
- file suffixes other than .tar.gz.
-
- extract.suffix .tar.gz
-
-
-
-
- use_bzip2
-
-
- This keyword is for downloads that are tarred and bzipped.
- It automatically sets these variables:
-
-
- extract_suffix = .tar.bz2
-
- extract.cmd = bzip
-
-
- use_bzip2 yes
-
-
-
-
- use_zip
-
-
- This keyword is for downloads are zipped. It automatically
- sets these variables:
-
-
- extract.suffix = .zip
-
- extract.cmd = unzip
-
- extract.pre_args = -q
-
- extract.post_args = "-d $portpath/$workdir"
-
-
- use_zip yes
-
-
-
-
-
-
- Checksum
-
- The list of keywords related to the checksum phase.
-
-
-
- checksums
-
-
- Checksum(s) of the distribution files.
-
- checksums md5 65b89365a65dcad71d4402b48
-
- To download multiple files for a port, you must associate
- the files with their checksums by including the filename.
-
- checksums ${distname}${extract.suffix} md5 65b89365a65dcad71d4402b44 \
- hobbit.tar.gz md5 65b89365a65dcad71d4402b48
-
-
-
-
-
-
- Extract
-
- The list of keywords related to the extract phase.
-
-
-
- extract.only
-
-
- List of files to extract into
- ${worksrcpath}; the default is
- ${distfiles}. Only use if default extract
- behavior is not correct for your port.
-
- extract.only foo.tar.gz bar.tar.gz
-
-
- extract.only-append
-
- extract.only-delete
-
-
-
-
-
- extract.cmd
-
-
- Command to perform extraction; the default is "gzip".
-
- extract.cmd gunzip
-
-
-
-
- extract.pre_args
-
-
- Arguments added to extract.cmd before a file name; the
- default is "-dc".
-
- extract.pre_args -cd
-
-
- extract.pre_args-append
-
- extract.pre_args-delete
-
-
-
-
-
- extract.args
-
-
- Arguments to extract.cmd; the default is
- ${distpath}/${distfile}.
-
- extract.args
-
-
- extract.args-append
-
- extract.args-delete
-
-
-
-
-
- extract.post_args
-
-
- Arguments added to extract.cmd after a file name; the
- default is "| tar -xf".
-
- extract.post_args "| tar -xf - --exclude 'CVS'"
-
-
- extract.post_args-append
-
- extract.post_args-delete
-
-
-
-
-
-
-
- Patch
-
- The list of keywords related to the patch phase.
-
-
-
- patchfiles
-
-
- Specify patch files to be applied for a port.
-
- patchfiles patch-Makefile.in patch-source.c
-
-
- patchfiles-append
-
- patchfiles-delete
-
-
-
-
-
-
-
- Configure
-
- The list of keywords related to the configure phase.
-
- MacPorts base sets some important default configure options, so
- should use the -append version of most configure keywords so you don't
- overwrite them. For example, MacPorts base sets default
- configure.ldflags so you should always use
- configure.cflags-append to set additional CFLAGS in
- Portfiles.
-
-
-
- configure.env
-
-
- Set environment variables for configure.
-
- configure.env CFLAGS=-I${prefix}/include
-
-
- configure.env-append
-
- configure.env-delete
-
-
-
-
-
- configure.pre_args
-
-
- Arguments added to configure.cmd before
- ${configure.args}; the default is
- --prefix=${prefix}.
-
- configure.pre_args --prefix=${prefix}/apache2
-
-
- configure.pre_args-append
-
- configure.pre_args-delete
-
-
-
-
-
- configure.args
-
-
- Arguments to pass to configure.
-
- configure.args --etcdir=${prefix}/etc
-
-
- configure.args-append
-
- configure.args-delete
-
-
-
-
-
- configure.cflags
-
-
- Set CFLAGS compiler flags.
-
- configure.cflags -I/usr/X11R6/include
-
-
- configure.cflags-append
-
- configure.cflags-delete
-
-
-
-
-
- configure.ldflags
-
-
- Set LDFLAGS for the linker.
-
- configure.ldflags -L${prefix}/lib/db44
-
-
- configure.ldflags-append
-
- configure.ldflags-delete
-
-
-
-
-
- configure.cppflags
-
-
- Set CPPFLAGS for passing to the C processor.
-
- configure.cppflags -I${prefix}/include/db4
-
-
- configure.cppflags-append
-
- configure.cppflags-delete
-
-
-
-
-
-
- Automake and Autoconf
-
- The list of configure keywords available for ports that need
- automake and/or autoconf.
-
-
-
- use_automake
-
-
- Whether or not to use automake; the default is
- "no".
-
- use_automake yes
-
-
-
-
- automake.env
-
-
- Environment variables to pass to automake.
-
- automake.env CFLAGS=-I${prefix}/include
-
-
-
-
- automake.args
-
-
- Arguments to pass to automake.
-
- automake.args --foreign
-
-
-
-
- automake.dir
-
-
- Directory in which to run
- ${automake.cmd}; the default is
- ${worksrcpath}.
-
- automake.dir ./src
-
-
-
-
- use_autoconf
-
-
- Whether or not to use autoconf; the default is
- "no".
-
- use_autoconf yes
-
-
-
-
- autoconf.env
-
-
- Environmental variables to pass to autoconf.
-
- autoconf.env CFLAGS=-I${prefix}/include/gtk12
-
-
-
-
- autoconf.args
-
-
- Arguments to pass to autoconf.
-
- autoconf.args -l src/aclocaldir
-
-
-
-
- autoconf.dir
-
-
- Directory in which to run
- ${autoconf.cmd}; the default is
- ${worksrcpath}.
-
- autoconf.dir src
-
-
-
-
-
-
-
- Build
-
- The list of keywords related to the build phase.
-
-
-
- build.cmd
-
-
- Make command to run in ${worksrcdir}; the
- default is "make".
-
- build.cmd pbxbuild
-
-
-
-
- build.type
-
-
- Defines which "make" is required: "gnu" or "bsd". Sets
- build.cmd to either "gnumake" or "bsdmake" accordingly.
-
- build.type gnu
-
-
-
-
- build.pre_args
-
-
- Arguments to pass to ${build.cmd} before
- ${build.args}; the default is
- ${build.target.current}.
-
- build.pre_args -project AudioSlicer.xcode
-
-
- build.pre_args-append
-
- build.pre_args-delete
-
-
-
-
-
- build.args
-
-
- Arguments to pass to ${build.cmd}.
-
- build.args -DNOWARN
-
-
-
-
- build.target
-
-
- Target to pass to make for building everything; default is
- "all".
-
- build.target.all all-src
-
-
-
-
-
-
- Destroot
-
- The list of keywords related to the destroot phase.
-
-
-
- destroot.cmd
-
-
- Install command to run relative to
- ${worksrcdir}; defaults is
- ${build.cmd}.
-
- destroot.cmd pbxbuild
-
-
-
-
- destroot.type
-
-
- Defines which "make" is required: either "gnu" or "bsd".
- Sets install.cmd to either "gnumake" or "bsdmake"
- accordingly.
-
- destroot.type gnu
-
-
-
-
- destroot.pre_args
-
-
- Arguments to pass to ${destroot.cmd}
- before ${destroot.args}; default is
- ${destroot.target}.
-
- destroot.pre_args -project AudioSlicer.xcode
-
-
- destroot.pre_args-append
-
- destroot.pre_args-delete
-
-
-
-
-
- destroot.target
-
-
- Install target to pass to
- ${destroot.cmd}.
-
- destroot.target install-src
-
-
- destroot.target-append
-
- destroot.target-delete
-
-
-
-
-
- destroot.destdir
-
-
- Arguments passed to ${destroot.cmd} to install correctly
- into the destroot.
-
- destroot.destdir prefix=${destroot}${prefix}
-
-
- If an application's Makefile properly supports the DESTDIR
- variable, MacPorts will automatically destroot the port
- properly. A port must destroot properly or the port will not
- install correctly, upgrade, or uninstall. If not, you may need
- to set this variable, or even patch the application's
- Makefile.
-
-
-
-
-
- destroot.keepdirs
-
-
- A list of directories that should not be removed if empty
- upon destroot completion.
-
- destroot.keepdirs \
- ${destroot}${prefix}/var/run \
- ${destroot}${prefix}/var/log \
- ${destroot}${prefix}/var/cache/mrtg
-
-
-
-
- destroot.violate_mtree
-
-
- MacPorts tests for compliance to the common directory
- structure in ${prefix}; the default is "no". If a port is not
- compliant with the standard, set it to "yes".
-
- destroot.violate_mtree yes
-
-
-
-
-
-
-
- Tcl Extensions
-
- A MacPorts Portfile is a Tcl script, so it may contain any arbitrary
- Tcl code you may learn about in a Tcl reference manual.
- However, few authors will use arbitrary Tcl code; the vast majority will
- use Tcl extensions that are coded within MacPorts for performing the most
- common tasks needed for Portfiles. The list below is a list of Tcl
- extensions provided by MacPorts base.
-
-
-
- file
-
-
- Description.
-
-
-
- file copy
-
-
-
-
-
-
-
-
-
- file move
-
-
-
-
-
-
-
-
-
- file rename
-
-
-
-
-
-
-
-
-
- file delete [-force]
-
-
-
-
-
-
-
-
-
- file mkdir
-
-
-
-
-
-
-
-
-
-
- macros
-
-
- Description.
-
-
-
- copy
-
-
- Shorthand alternative to "file copy".
-
-
-
-
-
-
- move
-
-
- Shorthand alternative to "file rename".
-
-
-
-
- delete file ...
-
-
- Deletes each of the given files/directories. Behaves
- similarly to file delete -force except that file delete
- -force will fail to delete directories properly on 10.3
- systems.
-
-
-
-
- touch
-
-
- Mimicks the BSD touch command.
-
-
-
-
- ln
-
-
- Mimickes the BSD ln command.
-
-
-
-
-
-
-
- xinstall
-
-
- xinstall copies files and creates directories; it is
- intended to be compatible with install(1).
-
-
-
- xinstall [-o owner] [-g group] [-m mode] [file1 file2
- ...] directory
-
-
- Install the specified file(s) to a destination
- directory.
-
-
-
-
-
-
- xinstall [-o owner] [-g group] [-m mode] [-W dir] [file1
- file2 ...] directory
-
-
- Change to and install file(s) to
- a destination directory.
-
-
-
-
-
-
- eval xinstall [-o owner] [-g group] [-m mode] [glob
- regexp] directory
-
-
- Install the file(s) matching the glob expression to a
- destination directory.
-
-
-
-
-
-
- xinstall -d [-o owner] [-g group] [-m mode]
- directory
-
-
- Create a directory.
-
-
-
-
- Defaults:
-
-
-
- owner -
-
-
-
- group -
-
-
-
- mode -
-
-
-
- Examples:
-
- xinstall -m 640 ${worksrcpath}/doc README \
- ${destroot}${prefix}/share/doc/${name}
-
- xinstall -m 640 -W ${worksrcpath}/doc README INSTALL COPY \
- ${destroot}${prefix}/share/doc/${name}
-
- eval xinstall -m 640 [glob ${worksrcpath}/doc/*] \
- ${destroot}${prefix}/share/doc/${name}
-
- xinstall -d ${destroot}${prefix}/share/doc/${name}
-
-
-
-
- reinplace
-
-
- Description.
-
- Examples:
-
- example 1
-
- example 2
-
- example 3
-
-
-
-
- user/group
-
-
-
-
-
-
- adduser username [uid=uid] [gid=gid] [passwd=passwd]
- [realname=realname] [home=home] [shell=shell]
-
-
- Add a new local user to the system with the specified
- uid, gid, password, real name, home directory and login
- shell.
-
-
-
-
-
-
- existsuser username
-
-
- Check if a local user exists.
-
-
-
-
-
-
- nextuid
-
-
- Returns the highest used uid plus one.
-
-
-
-
-
-
- addgroup group [gid=gid] [passwd=passwd]
- [realname=realname] [users=users]
-
-
- Add a new local group to the system, with the
- specified gid, password, real name, and with a list users as
- members.
-
-
-
-
-
-
- existsgroup group
-
-
- Check if a local group exists and return the
- corresponding gid. This can be used with adduser:
-
- addgroup foo
-adduser foo gid=[existsgroup foo]
-
-
-
-
-
-
- nextgid
-
-
- Returns the highest used gid plus one.
-
-
-
-
-
-
-
- External program execution
-
-
- Use only when ....
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/guide/new/xml/project.xml b/guide/new/xml/project.xml
deleted file mode 100644
index 471fe3e..0000000
--- a/guide/new/xml/project.xml
+++ /dev/null
@@ -1,438 +0,0 @@
-
-
-
- MacPorts Project
-
- The MacPorts Project uses a system called Trac to file tickets to report bugs
- and enhancement requests. Trac also provides an interface to browse the
- MacPorts
- Subversion repository. Though anyone may search Trac for tickets,
- you must register for a Trac
- account to create tickets.
-
-
- Creating Trac Tickets
-
- Once you are logged into Trac, you may click View Tickets
- -> New Ticket and you will be presented with a new ticket
- window shown in the graphic below. Follow the Trac ticket guidelines below
- to fill out the form.
-
-
- A new Trac ticket
-
-
-
-
-
-
-
-
-
- Trac Ticket Guidelines
-
- There are certain conventions used to ensure that Trac tickets
- convey as much accurate information as possible so problems and
- contributions may be acted upon efficiently.
-
-
-
- Short Summary: [port] [version] [concise
- description]
-
-
-
- Example: "rrdtool-1.2.23 Configure error - build
- failure"
-
-
-
-
-
- Type: There are two main types of
- tickets.
-
-
-
- defect - The default; any port/MacPorts
- build/runtime failures and/or documentation corrections.
-
-
-
- enhancement - Tickets, with or without
- patches, created to enhance something that isn't failing its
- intended purpose.
-
-
-
-
-
- Full Description: All details that might
- be relevant to someone reading the ticket. Wiki
- formatting or attached log files should be used for large
- text blocks.
-
-
-
- Priority: Assign a priority level to the
- ticket.
-
-
-
- High - For MacPorts base build/runtime
- failures and critical enhancement requests.
-
-
-
- Normal - The default. For normal port
- failures, non-critical enhancement requests, non-critical port
- failures.
-
-
-
- Low - For mostly cosmetic improvements,
- documentation corrections/improvements, etc.
-
-
-
- Blank - Anything that doesn't fit the categories high,
- normal, or low.
-
-
-
-
-
- Component: Set what part of the MacPorts
- project the ticket is to be filed against.
-
-
-
- ports - Tickets related to
- ports.
-
-
-
- base - Tickets related to MacPorts base
- code.
-
-
-
- guide - Documentation enhancements and
- error corrections, or patches to the MacPorts Guide.
-
-
-
- www - MacPorts website enhancements and
- error corrections.
-
-
-
- infrastructure - Reserved for MacPorts
- Portmgr team members.
-
-
-
-
-
- Assign To: For tickets on ports, select
- the port maintainer's email address (use port info
- <portname>). If the maintainer's email address is
- nomaintainer@macports.org, select
- macports-dev@lists.macosforge.org.
-
-
-
- Milestone: This is a ticket category that
- allows for search and sorting tickets efficiently.
-
-
-
- Documentation - for tickets relating to
- the documentation for Macports, including the MacPorts guide,
- wiki and man pages.
-
-
-
- MacPorts base enhancements - for
- tickets requesting or providing improvements to the
- functionality of the MacPorts system.
-
-
-
- MacPorts base bugs - for tickets
- reporting or fixing bugs in the MacPorts system.
-
-
-
- MacPorts x.y - indicates tickets
- against the MacPorts base code that have been accepted and
- scheduled for inclusion or fixing in the x.y MacPorts release
- series.
-
-
- This milestone may only be applied by MacPorts team
- members.
-
-
-
-
- Port Bugs - for tickets reporting or
- fixing bugs in ports provided by MacPorts.
-
-
-
- Port Enhancements - for submissions
- providing enhancements to ports provided by MacPorts.
-
-
-
- Port Requests - for requests for ports
- to be added to MacPorts.
-
-
-
- Port Submissions - for submissions that
- add a port to MacPorts.
-
-
-
- Port Updates - for submissions that
- update a port provided by MacPorts.
-
-
-
-
-
- Version: Select the MacPorts version you
- are using when it is applicable.
-
-
-
- Keywords: Type any keywords that might
- help when searching for tickets (portname, type of problem,
- etc).
-
-
-
- Cc: The reporter should enter his or her
- email address and the maintainer's email address to notify both
- parties when updates to the ticket occur. This is important, because
- Trac currently only sends emails to addresses on the Cc list, not to
- the reporter or the assignee.
-
-
-
- Attachments: Files may be attached only
- after a ticket has been submitted. Once the ticket has been created
- you will see the file attachment button.
-
-
-
-
-
-
- Contributing to MacPorts
-
- You may contribute new ports and port updates to current ports using
- Trac tickets.
-
-
-
-
- New Ports
-
- Ports are contributed by following these steps. See Ticket
- Submission Guidelines above for a description of all fields.
-
-
-
- Create a Trac ticket.
-
-
-
- Set the type to enhancement.
-
-
-
- Set the milestone to Port
- Submissions.
-
-
-
- Attach the Portfile and any required
- patchfiles to the ticket.
-
-
-
-
-
- Port Updates
-
- Portfile updates should always be contributed as
- Portfile patches. Ports are contributed by
- following these steps. See Ticket Submission Guidelines above for a
- description of all fields.
-
-
-
- Create a Portfile patch with your changes
- as described in Portfile Development.
-
-
-
- Create a Trac ticket.
-
-
-
- Set the type to enhancement.
-
-
-
- Set the milestone to Port
- Enhancements.
-
-
-
- Attach your Portfile patch file and any new or changed patch
- files (don't patch patches) to the ticket.
-
-
-
-
-
-
- Port Update Policies
-
- Port maintainers normally are given commit privileges to the
- Subversion repository so they can make updates to their own ports.
- However, the MacPorts project does not restrict commit privileges for
- maintainers, so before a person other than a port's maintainer updates a
- port it is a good practice to inform a port's maintainer. See details
- below.
-
-
- Non-Maintainer Port Updates
-
- If you have a port update or bugfix for a port you do not
- maintain, to respect the rights of the port maintainer you should follow
- the following guidelines:
-
-
-
- If a port's maintainer is
- nomaintainer@macports.org, you may feel free to make
- updates and/or take maintainership of the port.
-
-
-
- If a port's maintainer contains the address
- openmaintainer@macports.org, this means that the
- author allows minor updates to the port without contacting him
- first. But permission should still be sought for major
- changes.
-
-
-
- Create patch file(s) as necessary, attach them to a Trac
- ticket, and assign the ticket to the maintainer and Cc him or
- her.
-
-
-
- Wait for a response from the maintainer. The maintainer should
- apply the patches and close the ticket within 72 hours.
-
-
-
- However, for maintained ports without
- openmaintainer@macports.org, there are some conditions
- under which maintainer permission may be waived:
-
-
-
- If the maintainer does not respond within 72 hours, you or
- another committer may review the patches and update the port. If you
- are not a committer, you may email
- macports-dev@lists.macosforge.org and request the
- updates be committed.
-
-
-
- A port is abandoned by it's current maintainer. A port against
- which a Port Abandoned ticket has been filed (see below) can be
- updated without contacting the maintainer.
-
-
-
- A critical port is broken that affects many users.
-
-
-
-
-
- Port Abandonment
-
- A port may be considered abandoned if a bug has not been
- acknowledged for more than three weeks after a ticket is filed. If this
- time period has passed and you wish to initiate the Port Abandonment
- protocol and volunteer as the new maintainer:
-
-
-
- File a new Trac ticket with the summary line [Port
- Abandoned].
-
-
-
- Refer to the original unacknowledged ticket in the Port
- Abandoned ticket.
-
-
-
- The Port Abandoned ticket may be closed when the new
- maintainer is assigned, and the original ticket with the updates may
- be resolved when the updates attached to the original ticket are
- committed.
-
-
-
-
-
-
- MacPorts Membership
-
- A requirement for a person to become a MacPorts committer is to
- first become involved and contribute to the project. This may be done by
- having a record of contributing to the project in several of the following
- ways:
-
-
-
- Contributing new ports.
-
-
-
- Fixing bugs in existing ports.
-
-
-
- Volunteering as a maintainer of non-maintained ports.
-
-
-
- Involvement on MacPorts support lists.
-
-
-
- To apply for MacPorts commit rights, send a brief email to
- macports-mgr@lists.macosforge.org entitled “Request for
- commit rights” detailing the reasons for your application and why you
- think you deserve commit rights (including evidence of contributions to
- MacPorts as described above).
-
-
\ No newline at end of file
diff --git a/guide/new/xml/using.xml b/guide/new/xml/using.xml
deleted file mode 100644
index 944d397..0000000
--- a/guide/new/xml/using.xml
+++ /dev/null
@@ -1,598 +0,0 @@
-
-
-
- Using MacPorts
-
- This chapter describes using the port command, port
- variants, common tasks, port binaries, and setting up an rsync replication
- server.
-
-
- The port Command
-
- The MacPorts port command is the main utility
- used to interact with MacPorts. It is used to update
- Portfiles and the MacPorts infrastructure, and
- install and manage ports.
-
-
- selfupdate
-
- The option should be used regularly to
- the local ports tree with the global MacPorts
- ports repository so you will have the latest port versions. It also
- checks for new revisions of the MacPorts infrastructure, called MacPorts
- base, and upgrades it when necessary.
-
-
- Selfupdate runs only on Mac OS X. If you are running MacPorts on
- another platform, you must use option sync to update the ports tree; to
- update MacPorts base you must manually install a newer version from
- source.
-
-
- %%sudo port selfupdate
-
- Use the debug flag for verbose output.
-
- %%sudo port -d selfupdate
-
- DEBUG: Rebuilding the MacPorts base system if needed.
-DEBUG: Synchronizing ports tree(s)
-Synchronizing from rsync://rsync.macports.org/release/ports/
-DEBUG: /usr/bin/rsync -rtzv --delete-after rsync://rsync.macports.org/release/ports/
-receiving file list ... done
-
-[ ... trimmed ... ]
-
-Downloaded MacPorts base version 1.5
-The MacPorts installation is not outdated and so was not updated
-DEBUG: Setting ownership to root
-selfupdate done!
-
-
-
- sync
-
- The option performs a subset of
- actions. It synchronizes the ports tree, as
- does , but it does not check for upgrades to
- MacPorts base. On OS X, unless there is a special reason not to do so,
- you should run selfupdate.
-
-
- For platforms other than OS X, is the only
- way to get port updates because is
- supported only on OS X.
-
-
-
-
- list
-
- The option is used to get a list of all
- available ports. The list of available ports is very long, so use search if you know a port's name or
- part of it.
-
- %%port list
-
-
-
- search
-
- The option is very useful to find port
- names by partial matches.
-
- %%port search rrd
-
- rrdtool net/rrdtool 1.2.23 Round Robin Database
-php5-rrdtool www/php5-rrdtool 1.0 PHP 5 glue for RRDtool
-
-
-
- info
-
- The option is used to get information about
- a port: description, maintainer, etc.
-
- %%port info flowd
-
- flowd 0.9, net/flowd (Variants: universal, darwin_8)
-http://www.mindrot.org/flowd.html
-
-flowd is a small, fast and secure NetFlow collector.
-
-Platforms: darwin
-Maintainers: nomaintainer@macports.org
-
-
-
- deps
-
- The option shows you the dependencies of a
- port; dependencies are explicitly declared in
- Portfiles.
-
- %%port deps apache2
-
- apache2 has library dependencies on:
- apr
- apr-util
- expat
- openssl
- pcre
-
-
-
- variants
-
- The option allows you to check what
- variations of a port are available before you install it. Variants are a
- way for port authors to provide options that may be invoked at install
- time. See Invoking Port
- Variants below to install ports that have variants.
-
- %%port variants nmap
-
- nmap has the variants:
- universal
- gtk2
- no_ssl
- no_pcre
-
-
-
- install
-
- The option is used to install a port. See
- Invoking Port Variants
- below to install ports that have variants.
-
- %%sudo port install nmap
-
-
- You may break up a port's installation into smaller steps for
- troubleshooting by passing port a prior
- installation phase such as fetch, configure, build, or destroot. See
- section Port Phases for a
- complete list of phases.
-
-
-
-
- clean
-
- The option deletes all intermediate files
- that MacPorts creates while building a port. A port
- clean is also often necessary to remove corrupted tarballs
- after a failed fetch phase.
-
- %%port clean --all vile
-
-
- You may also clean files selectively by using options
- , , or
- .
-
-
-
-
- uninstall
-
- The option will uninstall an installed
- port.
-
- %%port uninstall vile
-
-
- If a port as installed as a dependency of another port,
- uninstall will not remove it unless you remove the dependent ports
- first. To override this behavior, use the (force)
- switch. But some ports need to be rebuilt if dependencies change, so
- you should know what you are doing if you force uninstall
- ports.
-
- %%port -f uninstall vile
-
-
-
-
- contents
-
- The option displays the files that have
- been installed by a given port. Uninstalled ports will always show no
- contents.
-
- %%port contents render
-
- Port render contains:
- /opt/local/include/X11/extensions/render.h
- /opt/local/include/X11/extensions/renderproto.h
- /opt/local/lib/pkgconfig/render.pc
- /opt/local/share/doc/render/library
- /opt/local/share/doc/render/protocol
-
-
-
- installed
-
- The option displays all installed
- ports.
-
- %%port installed
-
- The following ports are currently installed:
- aalib @1.4rc5_2 (active)
- apr @1.2.8_0 (active)
- apr-util @1.2.8_2 (active)
- atk @1.18.0_0 (active)
-
-[ ... trimmed ...]
-
- wxWidgets @2.8.4_2+darwin_8 (active)
- Xft2 @2.1.7_0 (active)
- xrender @0.9.0_0+darwin_8 (active)
- zlib @1.2.3_1 (active)
-
-
-
- outdated
-
- The option checks your installed ports
- against the MacPorts repository to see if updated Portfiles have been
- released since your ports were installed.
-
- %%port outdated
-
-
-
-
-
- upgrade
-
- The option upgrades installed ports and
- their dependencies when a Portfile in the
- repository has been updated after a port was installed.
-
- %%port upgrade gnome
-
- If you wish not to upgrade a port's dependencies, use the
- switch.
-
- %%port -n upgrade gnome
-
- If you'd like to upgrade all outdated ports, use this
- command.
-
- %%port upgrade outdated
-
-
- The option by default does not
- uninstall an upgraded port —it deactivates it. See section Port Images, and also Destroot and Activate phases in Port Phases. If you wish to
- uninstall the old version, use the option.
-
- %%port -u upgrade vile
-
-
-
-
- dependents
-
- The option reports what ports depend
- upon a given port, if any. MacPorts learns about dependents during port
- installation, so uninstalled ports will always report that there are no
- dependents.
-
- %%port dependents openssl
-
- neon depends on openssl
-gnome-vfs depends on openssl
-libdap depends on openssl
-
-
-
- livecheck
-
- The livecheck option checks to see if the application
- corresponding to a given port has been updated at the developer's
- download site. It's especially useful for port maintainers, but others
- may also wish to see if a port has the latest available distribution
- source. See section Livecheck
- for more information.
-
- %%port livecheck rrdtool
-
- rrdtool seems to have been updated (port version: 1.2.23, new version: 1.3beta1)
-
-
- If livecheck finds no higher version at the port's download
- site, it prints nothing. The option (debug) may be
- used for detailed livecheck processing information.
-
-
-
-
-
-
-
- Port Variants
-
- Variants are a way for port authors to provide options for a port
- that may be chosen during the port install. To display the available
- variants, if any, use this command:
-
- %%port variants fetchmail
-
- fetchmail has the variants:
- universal
- ssl: Support secure connections using OpenSSL
- fetchmailconf: Install a graphical configurator
- ntlm: Enable NTLM authentication
-
-
- Variant descriptions are optional, so you may not see descriptions
- for all variants.
-
-
-
- Invoking Variants
-
- A variant can only be invoked when a port is installed. After you
- have determined what variants a given port has, if any, you may install
- a port using the variant as shown.
-
- %%port install fetchmail +ssl
-
- Port variant execution may be verified using the
- port command with the verbose switch.
-
- %%port -v install fetchmail +ssl
-
- When a port is installed using a valid variant and specified
- correctly, the verbose output will contain:
-
- DEBUG: Executing variant ssl provides ssl
-
-
-
- Negating Default Variants
-
- For an explanation of default variants see Port Variants. Default variants
- are optional, and not all ports using variants have them. For ports with
- default variants, you may install a port without them by negating
- default variants using "-" as shown.
-
- %%port install fetchmail -ssl
-
- To verify that you have properly negated a default variant, you
- may want to use verbose mode. But negated variants are simply not
- reported in any way by the port command, as if they
- did not exist. You will know you have successfully negated the default
- variant in the example above if you do not see this
- line in the verbose output.
-
- DEBUG: Executing variant ssl provides ssl
-
-
-
-
- Common Tasks
-
- This section lists common operations you may want to perform when
- managing a MacPorts installation.
-
- TODO: Add content here.
-
-
-
- Port Binaries
-
- MacPorts can pre-compile ports into binaries so applications need
- not be compiled when installing on a target system. MacPorts may create
- two types of binaries: archives and packages.
-
-
- Binary Archives
-
- Binary archives can only be used on a target system running
- MacPorts. Binary archives allow MacPorts utilities to begin installation
- after the destroot phase and install and activate a port on the target
- system. Binary archives are created using the port
- command as shown.
-
- %%port -d archive logrotate
-
- Debug output is shown below.
-
- Creating logrotate-3.7_0.i386.tgz
-
-[ ... trimmed ... ]
-
-DEBUG:
-./
-./+COMMENT
-./+CONTENTS
-./+DESC
-./+PORTFILE
-./+STATE
-./opt/
-./opt/local/
-./opt/local/etc/
-./opt/local/etc/logrotate.conf
-./opt/local/man/
-./opt/local/man/man8/
-./opt/local/man/man8/logrotate.8
-./opt/local/sbin/
-./opt/local/sbin/logrotate
----> Archive logrotate-3.7_0.i386.tgz packaged
-DEBUG: Executing archive_finish
----> Archive for logrotate 3.7_0 packaged]]>
-
- Binary archive files are placed in
- ${prefix}/var/macports/packages/. The archive file
- type is set in the macports.conf file. The default
- format is .tgz; other options are: tar, tbz, tbz2, xar, zip, cpgz,
- cpio.
-
-
-
- Binary Packages
-
- Binary packages are standalone binary installers that are
- precompiled; they do not require MacPorts on the target system. Binary
- files created with MacPorts may be either .pkg (Mac OS X Installer
- Packages), or RPM (RPM Package Manager) format. MacPorts may also
- process a .pkg package into an OS X .dmg disk image file. You may create
- binary packages with the port command as shown in
- these examples.
-
- %%port pkg pstree
-
- You may create an OS X .dmg disk image file as shown.
-
- %%port dmg pstree
-
- You may compile a port into an RPM file as shown, in order to
- install it onto a target that has RPM utilities or a full package
- management system that can install RPMs.
-
- %%port rpm pstree
-
- All packages are placed in a port's work directory.
-
-
-
- Port Source Packages
-
- Source packages are bundles consisting of a
- Portfile, patches if needed, and any other files
- required to install the port. Port source packages are mainly used by
- developers of package management and port submission frameworks. Port
- source packages may be in either .portpkg (XAR) or .nosrc.rpm (SRPM)
- format.
-
-
-
-
- Rsync Replication Servers
-
- You may setup an rsync replication server on your local network to
- minimize internet delay and bandwidth when performing MacPorts selfupdate
- operations. An rsync replication server pulls the latest MacPorts base,
- development, and port sources from the remote MacPorts subversion server,
- and then serves as the rsync source when rsync replication clients on the
- local network perform selfupdates.
-
-
- Only advanced users should attempt to setup an rsync replication
- server. Before doing so, please contact portmgr @
- macports.org. If the scripts are run too often you may overload
- the MacPorts rsync mirrors; it must not be run any more often than each
- one-half hour and should be run at an offset to the clock half hour
- periods.
-
-
-
- Rsync Server Setup
-
- TODO: This section needs to be completed.
-
- To setup a host as an rsync replication server, follow these
- steps:
-
-
-
- Change to the portmgr directory where
- mprsyncup and rsync.repos
- reside.
-
- %%cd ${prefix}/var/macports/sources/rsync.macports.org/release/ \
- base/portmgr
-
-
-
-
- Set variables in the mprsyncup
- script.
-
- ???
-
-
-
- Set variables in the rsync.repos
- script.
-
- ???
-
-
-
- Set the mprsyncup and
- rsync.repos scripts in
- crontab.
-
-
- If you wish to setup and rsync replication server, please
- contact portmgr@macports.org. If the scripts are run too often you
- may overload the MacPorts rsync mirrors; It must not be run any
- more often than each one-half hour and should be run at an offset
- to the clock half hour periods.
-
-
- %%sudo crontab -e
-
- 15 * * * * ${prefix}/var/macports/sources/rsync.macports.org/release/ \
- base/portmgr/mprsyncup
-
-
-
-
-
- Rsync Client Setup
-
- To setup a host as an rsync replication client, follow these
- steps:
-
-
-
- Change to the MacPorts etc/ directory to
- access macports.conf and
- sources.conf.
-
- %%cd ${prefix}/etc/macports
-
-
-
- In macports.conf, set variable
- rsync_server to the rsync replication server; the
- rsync_dir path variable can be left at the
- default if you follow the defaults that the MacPorts mirrors
- use.
-
- rsync_server rsync.mycompany.com
-
-rsync_dir release/base/
-
-
-
- In sources.conf, set the URL rsync:// to
- the rsync replication server.
-
- rsync://rsync.mycompany.com/release/ports/
-
-
-
-
-
\ No newline at end of file