source: trunk/www/en/faq.php @ 818

Last change on this file since 818 was 818, checked in by michaelm, 18 years ago

added port search, fixed some open tags

  • Property svn:eol-style set to native
File size: 7.1 KB
4// File     : faq.php
5// Version  : $Id: faq.php,v 1.5 2002/09/28 00:38:50 michaelm Exp $
6// Location : /projects/darwinports/faq.php
9        include_once("$DOCUMENT_ROOT/includes/");
10        od_print_header("DarwinPorts FAQ", "en", "iso-8859-1", "");
14<table border="0" width="500" cellspacing="0" cellpadding="3">
17<h2>DarwinPorts FAQ</h2>
21This document attempts to answer some frequently asked questions about
24<p><i>Author: Jordan K Hubbard</i></p>
27<p><strong>What IS darwinports?</strong></p>
30darwinports is probably best described by comparison:  It's sort of like
31the <a href="">FreeBSD ports collection</a>
32or <a href="">fink</a> in that it automates
33the process of building 3rd party software for Mac OS X.  It also
34tracks all dependency information for a given piece of software and knows
35how to make it build under Mac OS X and install it to a common
36location, meaning that software installed via darwinports doesn't
37simply scatter itself all over the system or require user knowledge
38of what to install in what order.
41<p><strong>How is darwinports implemented?</strong></p>
43<p> The darwinports system is almost fully written in Tcl and designed
44to be embedded into other applications, such as software browsing
45front-ends (Cocoa anyone?) or web-driven application management
46mechanisms.  Being designed to be highly extensible from the very
47beginning, it is layered in such a way as to make it fairly
48future-proof in the face of future design changes and the
49infrastructure can be versioned independently of the individual ports,
50meaning that as the system evolves, older things don't just break.</p>
52<p>Even though darwinports is written in Tcl, a user also does not need to
53know Tcl in order to use the system or even to add new ports.  Port
54description files, though they are actually full Tcl programs in their
55own right, are designed to look like nothing more than a list of
56key/value pairs.
59<p><strong>How does darwinports compare to FreeBSD ports?</strong></p>
61<p> FreeBSD ports is essentially implemented as some very impressive
62but hairy BSD make(1)'s macros and can be a little opaque and
63non-extensible from the perspective of someone looking to extend or
64re-factor parts of the system.  Given that Makefiles aren't the
65easiest thing to parse, it is also harder to "mine" the FreeBSD ports
66collection for data to use for other purposes, such as generating
67documentation indexes or arbitrary front-ends for creating or managing
70<p><strong>Why did darwinports start from scratch rather than adopting something like FreeBSD ports?</strong></p>
72<p> Even discounting some of the limitations of FreeBSD ports
73described above, the "science" of creating automated build systems is
74rather more complex than it looks at first glance and there's always
75room for fresh approaches to the problem, which is what we set out to
76do with darwinports. There are certainly other systems, some of which
77have already been mentioned, which have made their own attempts at
78solving this problem and there will likely be many more such systems
79in the future since trying to find a single solution which pleases
80everyone is rather like trying to find a single programming language
81which pleases everyone - it's more or less impossible.  We urge people
82to judge darwinports' design on its own merits and consider it a
83parallel rather than a competing effort since there's more software
84out there than any one system can ever manage to encapsulate and
85automate. </p>
87<p><strong>What are the system requirements for Darwinports?</strong></p>
89<p> It currently requires Mac OS X 10.2 (Jaguar) with the developer
90tools installed since that's the reference code base most of us are
91using.  There is also work planned to make it more compatible with
9210.1 (Puma) just as soon as we can identify all of the "variant"
93issues that need to be added to the various ports.  Darwinports does
94make provisions for OS version or architecture specific "variants" of
95a port and we intend to leverage this mechanism to support multiple OS
96versions and architectures (for Darwin/x86) in a fairly clean way.
99<p><strong>Does darwinports also do package management?</strong></p>
101<p> At present, darwinports just builds software from scratch,
102installs it and records the installation so that you can ask
103darwinports to uninstall it again if necessary.  It will also create
104binary "snapshot" tarballs of a given port installation so that you
105can give these to someone else to simply unpack rather than having to
106build the ports themselves, but package management is something we've
107deliberately left for "phase II" of the project, where we'll probably
108adopt one of the existing package management systems and make
109darwinports simply generate those on demand.  Even with "proper
110package management", it will always be important to offer the
111capability of building things from source since something has to
112generate the packages for each release of the OS or the individual
113ports, and developers who are modifying system libraries or playing
114with different ways of building a given piece of software may find a
115canned binary package to be insufficient for their needs. </p>
117<p><strong>Why does darwinports install everything into /opt/local by default?</strong></p>
119<p>First, this location can be set to anything you like by editing
120/etc/ports/ports.conf so nothing is fixed in place.  Even the basic
121darwinports infrastructure, which installs into /opt/local by default,
122can be installed elsewhere by overriding the value of PREFIX on the
123command line (see the README file for details).  Second, we had to
124pick SOME location for things to install into so that they would not
125collide with system components or things already installed in /usr/local,
126so we elected to loosely follow Sun's convention and go with /opt/local.</p>
128<p><strong>OK, so how do I start playing with it then?</strong></p>
130<p> See the <a
132web page for information on checking the project out of CVS.  Once you
133get your hands on a copy, check out the top level README for
134installation and basic usage instructions</p>
136<p><strong>Whats the command to see available ports?</strong></p>
138<p>port search ".*"</p>
139<p> port search takes a regex as an arguement so you can look for the particular
140port(s) you are interested in.</p>
142<p><strong>Are there any known issues or incompatibilities?</strong></p>
144<p><i>Unable to open port: can't find package Pextlib 1.0</i></p>
145<p>Darwinports won't build properly if it is built when there is an older (pre 10.2)
146version of tcl on the system. For example the problem will occur with a Fink tcl install
147that hasn't been updated for 10.2. Either update the older version of tcl or make sure you
148use the system tcl to build darwinports</p>
150<p><i>Norton AntiVirus</i></p>
151<p>Recently we have heard some reports of strange behavior in the BSD layer when Norton
152AntVirus is running. If you are having peculiar problems which you can't identify, try
153switching off Norton Antivirus and see if the problems persists. </p>
161        od_print_footer("en"); 
Note: See TracBrowser for help on using the repository browser.