===================================================================
RCS file: /cvsrepo/anoncvs/cvs/www/Attic/checklist.html,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- www/Attic/checklist.html 2000/03/11 07:43:53 1.21
+++ www/Attic/checklist.html 2000/03/11 18:49:19 1.22
@@ -6,12 +6,12 @@
-
+
OpenBSD Porting Checklist
-
+
OpenBSD Porting Checklist
@@ -24,7 +24,7 @@
--
+
-
If you want to be a maintainer, subscribe to
ports@openbsd.org.
-
@@ -36,13 +36,13 @@
good advice or test ports for you.
- -
+
-
Check out a copy of the ports tree from cvs.
You can find instructions to do this at
http://www.openbsd.org/anoncvs.html.
-
-
+
-
Pick a place to put your port and create the basic
infrastructure there. Use the template Makefile at
/usr/ports/infrastructure/templates/Makefile.template
.
@@ -52,7 +52,7 @@
Create these empty files pkg/COMMENT, pkg/DESCR, pkg/PLIST
- -
+
-
Add the fetch portions of the Makefile.
-
Fill in EXTRACT_SUFFIX if its anything besides .tar.gz. Other examples are
@@ -61,8 +61,8 @@
Fill in DISTNAME which is the name of the file minus the extract suffix. E.g. if you have foo-1.0.tar.gz, DISTNAME is foo-1.0.
-
Fill in MASTER_SITES which is a URL to the directory where the distfile
-is kept. E.g. ftp://ftp.openbsd.org/pub/OpenBSD/distfiles/ Don't forget
-the trailing slash. Try to have at least three distinct sites as well.
+is kept. E.g. ftp://ftp.openbsd.org/pub/OpenBSD/distfiles/ . Don't forget
+the trailing slash. Try to have at least three distinct sites as well.
Place the most easily accessible first as they are traversed in order.
-
Keep in mind that fetch references the file as
@@ -76,7 +76,7 @@
For more complex ports, you have more options and tools available to you:
-
You also have the variable PATCHFILES available. This is a list of vendor
-(not openbsd) patches to the port. Common uses are things like security
+(not OpenBSD) patches to the port. Common uses are things like security
or reliability fixes.
-
If your ports are available over large public mirrors such as GNU, SunSite, or
@@ -107,7 +107,7 @@
mirror-distfiles will fetch those supplementary files that the casual user doesn't need.
- -
+
-
Create a checksum in files/md5 by typing make makesum.
Then verify the checksum is correct by typing make checksum
-
@@ -125,15 +125,16 @@
Patches that need specific treatment should be mentioned in DISTFILES, and removed from EXTRACT_ONLY, for historic reasons.
- -
+
-
Extract the port with make extract. Pay attention to where the base
of the sources are. Usually, its work/DISTNAME You may need to modify
the Makefile's WRKDIST variable if it is different.
-
-
+
-
Read the installation documentation and note what you have to do to build
the port and any special options that might be needed.
-
-
+
+
-
Now is also a good time to figure out what kind of licensing restrictions
apply to your port. Many are freely redistribution but then again, quite
a few are not. We need four questions answered to distribute ports
@@ -152,7 +153,7 @@
later on. E.g. some ports require to install a copy of the license. We
recommend you place the license in
/usr/local/share/DISTNAME/
.
- -
+
-
Add configuration options to Makefile and/or create the configuration script.
-
You can add a port configuration script named `configure' to a directory
@@ -169,7 +170,7 @@
overwrite it.
- -
+
-
Try building the port with make build.
-
If you're lucky, the port will go all the way through without errors.
@@ -183,7 +184,7 @@
and patch your port.
- -
+
-
Begin and cycle of make build, generate a patch, and
make clean patch.
-
@@ -211,7 +212,7 @@
Please feed your patches back to the author of that piece of software.
- -
+
-
Try setting
SEPARATE_BUILD
-
If the port can build with object files outside its source tree,
@@ -222,12 +223,12 @@
restart the cycle at
configure
most of the time.
- -
+
-
Peruse the output (if any) and tweak any options in the Makefile.
To repeat issue the command `make clean configure'.
Note: make sure host dependent files go in /etc or
-/etc/<name>, but NEVER REPLACE OR MODIFY existing files
+/etc/<name>, but NEVER REPLACE OR MODIFY existing files
in /etc. Best to have install place
in /usr/local/share/<name> and then copy to
/etc or /etc/<name> only if the files do not exist.
@@ -253,11 +254,12 @@
misc documentation: /usr/local/share/doc/<name>
-
-
+
-
Begin a cycle of makes until the port is ready. Patch (see above)
clean, and make until the port is generated. Get rid of all warnings
if possible, especially security related warnings.
-
-
+
+
-
Control SEPARATE_BUILD semantics.
You have to do this only if the port builds with
SEPARATE_BUILD defined.
@@ -271,7 +273,7 @@
distinct arches simultaneously may meet with problems, as some
source files may be regenerated at awkward moments.
-
-
+
-
Edit pkg/DESCR, pkg/COMMENT, pkg/PLIST.
-
@@ -286,14 +288,14 @@
PLIST is kept empty at this point.
- -
+
-
Install the application with make install
If the port installs dynamic libraries, check their symbol tables
with nm
, as some mistaken software strips dynamic libraries,
which may lead to weird failures later.
-
-
+
-
Check port for security holes again. This is
especially important for network and setuid programs. See
our security recommendations
@@ -311,7 +313,7 @@
The server makes extensive use of strlcpy/strlcat/snprintf.
-
-
+
-
Create pkg/PLIST. After the install is complete use the developer's command,
make plist which makes the file PLIST-auto in the pkg directory.
This file is a candidate packing list.
@@ -351,7 +353,7 @@
shared libraries.
- -
+
-
Keep repeating uninstall and reinstall until perfect.
Perfect is when everything installs and uninstalls
in its proper location. `pkg_delete <pkg_name>' is
@@ -361,7 +363,7 @@
find /usr/local -newer work/.install_started -print
should only list standard directory names.
-
-
+
-
Test the packaging:
After the port installs correctly issue the command
make package
to create a package. To test the
@@ -369,7 +371,7 @@
pkg_add
The results after an add should EXACTLY
match the results after a `make install'.
- -
+
-
Mail ports@openbsd.org with a short
note asking for comments and testing. Attach the port to this email and
sent it out. If you don't get any comments, send email to
@@ -378,19 +380,18 @@
Try to get others to test it on a variety of platforms for you.
-
The DEC Alpha is good because it has only static libraries and because
-sizeof(int) != sizeof(long)
+
sizeof(int) != sizeof(long)
-
Sun SPARC is good because it is very common and because its byte order is
the reverse of i386; if you developed on SPARC, of course, you'd want it
tested on i386).
-
- -
+
-
Incorporate any feedback you get. Test it again on your platform.
Get those who gave you feedback to test it again from your new port.
-
-
+
-
Finally, include it in the "ports" tree.
If you do not have CVS access, ask someone on
@@ -398,7 +399,7 @@
about me, turan@openbsd.org if no one
picks it up.
-
-
+
-
If you are a developer with CVS access, check it in.
We normally use "import" for a new port,
rather than adding a zillion (or a dozen) files individually.
@@ -452,22 +453,22 @@
$
-
-
+
-
Last but not least, add a one-line entry for the new port
in its parent directory's makefile, i.e., for ports/lang/kaffe1,
add it to ports/lang/Makefile.
-
-
+
-
Maintain the port! As time goes by, problems may arise, or new versions
of the software may be released. You should strive to keep your port up
-to date. In other words - iterate, test, test, iterate, ...
-
+to date. In other words - iterate, test, test, iterate...
+
Thank you for supporting the OpenBSD "ports" process!
www@openbsd.org
-
$OpenBSD: checklist.html,v 1.21 2000/03/11 07:43:53 form Exp $
+
$OpenBSD: checklist.html,v 1.22 2000/03/11 18:49:19 rohee Exp $