source: trunk/www/faq.php @ 1668

Last change on this file since 1668 was 1354, checked in by landonf (Landon Fuller), 17 years ago

Add reference to dp-cocoa
Submitted by: <fkr@…>

  • Property svn:eol-style set to native
File size: 7.2 KB
Line 
1<?
2
3//
4// File     : faq.php
5// Version  : $Id: faq.php,v 1.9 2002/12/08 16:13:57 landonf Exp $
6// Location : /projects/darwinports/faq.php
7//
8
9        include_once("$DOCUMENT_ROOT/includes/od_lib.inc.php");
10        od_print_header("DarwinPorts FAQ", "en", "iso-8859-1", "");
11?>
12
13<center>
14<table border="0" width="500" cellspacing="0" cellpadding="3">
15<tr><td>
16
17<h2>DarwinPorts FAQ</h2>
18
19
20<p>
21This document attempts to answer some frequently asked questions about
22darwinports.</p>
23
24<p><i>Author: Jordan K Hubbard</i></p>
25
26
27<p><strong>What IS darwinports?</strong></p>
28
29<p>
30darwinports is probably best described by comparison:  It's sort of like
31the <a href="http://www.freebsd.org/ports">FreeBSD ports collection</a>
32or <a href="http://fink.sourceforge.net">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.
39</p>
40
41<p><strong>How is darwinports implemented?</strong></p>
42
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 (like the work-in-progress
46<a href="http://www.opendarwin.org/cgi-bin/cvsweb.cgi/proj/dp-cocoa/">dp-cocoa</a>
47, a cocoa-based interface) or web-driven application management
48mechanisms.  Being designed to be highly extensible from the very
49beginning, it is layered in such a way as to make it fairly
50future-proof in the face of future design changes and the
51infrastructure can be versioned independently of the individual ports,
52meaning that as the system evolves, older things don't just break.</p>
53
54<p>Even though darwinports is written in Tcl, a user also does not need to
55know Tcl in order to use the system or even to add new ports.  Port
56description files, though they are actually full Tcl programs in their
57own right, are designed to look like nothing more than a list of
58key/value pairs.
59</p>
60
61<p><strong>How does darwinports compare to FreeBSD ports?</strong></p>
62
63<p> FreeBSD ports is essentially implemented as some very impressive
64but hairy BSD make(1)'s macros and can be a little opaque and
65non-extensible from the perspective of someone looking to extend or
66re-factor parts of the system.  Given that Makefiles aren't the
67easiest thing to parse, it is also harder to "mine" the FreeBSD ports
68collection for data to use for other purposes, such as generating
69documentation indexes or arbitrary front-ends for creating or managing
70ports.</p>
71
72<p><strong>Why did darwinports start from scratch rather than adopting something like FreeBSD ports?</strong></p>
73
74<p> Even discounting some of the limitations of FreeBSD ports
75described above, the "science" of creating automated build systems is
76rather more complex than it looks at first glance and there's always
77room for fresh approaches to the problem, which is what we set out to
78do with darwinports. There are certainly other systems, some of which
79have already been mentioned, which have made their own attempts at
80solving this problem and there will likely be many more such systems
81in the future since trying to find a single solution which pleases
82everyone is rather like trying to find a single programming language
83which pleases everyone - it's more or less impossible.  We urge people
84to judge darwinports' design on its own merits and consider it a
85parallel rather than a competing effort since there's more software
86out there than any one system can ever manage to encapsulate and
87automate. </p>
88
89<p><strong>What are the system requirements for Darwinports?</strong></p>
90
91<p> It currently requires Mac OS X 10.2 (Jaguar) with the developer
92tools installed since that's the reference code base most of us are
93using.  There is also work planned to make it more compatible with
9410.1 (Puma) just as soon as we can identify all of the "variant"
95issues that need to be added to the various ports.  Darwinports does
96make provisions for OS version or architecture specific "variants" of
97a port and we intend to leverage this mechanism to support multiple OS
98versions and architectures (for Darwin/x86) in a fairly clean way.
99</p>
100
101<p><strong>Does darwinports also do package management?</strong></p>
102
103<p> At present, darwinports just builds software from scratch,
104installs it and records the installation so that you can ask
105darwinports to uninstall it again if necessary.  It will also create
106binary "snapshot" tarballs of a given port installation so that you
107can give these to someone else to simply unpack rather than having to
108build the ports themselves, but package management is something we've
109deliberately left for "phase II" of the project, where we'll probably
110adopt one of the existing package management systems and make
111darwinports simply generate those on demand.  Even with "proper
112package management", it will always be important to offer the
113capability of building things from source since something has to
114generate the packages for each release of the OS or the individual
115ports, and developers who are modifying system libraries or playing
116with different ways of building a given piece of software may find a
117canned binary package to be insufficient for their needs. </p>
118
119<p><strong>Why does darwinports install everything into /opt/local by default?</strong></p>
120
121<p>First, this location can be set to anything you like by editing
122/etc/ports/ports.conf so nothing is fixed in place.  Even the basic
123darwinports infrastructure, which installs into /opt/local by default,
124can be installed elsewhere by overriding the value of PREFIX on the
125command line (see the README file for details).  Second, we had to
126pick SOME location for things to install into so that they would not
127collide with system components or things already installed in /usr/local,
128so we elected to loosely follow Sun's convention and go with /opt/local.</p>
129
130<p><strong>OK, so how do I start playing with it then?</strong></p>
131
132<p> See the <a
133href="http://www.opendarwin.org/projects/darwinports">darwinports</a>
134web page for information on checking the project out of CVS.  Once you
135get your hands on a copy, check out the top level README for
136installation and basic usage instructions</p>
137
138<p><strong>What's the command to see available ports?</strong></p>
139
140<p>port search ".*"</p>
141<p> port search takes a regex as an argument so you can look for the particular
142port(s) you are interested in.</p>
143
144<p><strong>Known Issues and Incompatibilities</strong></p>
145
146<p><i>Unable to open port: can't find package Pextlib 1.0</i></p>
147<p>
148DarwinPorts will not build properly against the TCL libraries shipped with
149earlier versions of the Fink TCL package. Either update your installed fink TCL package or ensure your use of the system TCL library, and rebuild DarwinPorts.
150</p>
151
152<p><i>Norton AntiVirus</i></p>
153<p>The Fink project has recently discovered numerous problems including kernel
154panics and infinite hangs during patching when certain anti-virus software is
155installed.
156You may need to switch off any anti-virus software before using DarwinPorts
157or Fink.
158</p>
159
160</td></tr>
161</table>
162</center>
163
164
165<? 
166        od_print_footer("en"); 
167?>
Note: See TracBrowser for help on using the repository browser.