make fetch
make makesum
make extract
Note: Patches go in the directory `patches' and are names patch-xx where xx should be aa, ab, ..., az, ba, bb ... zz.
make patch
make PATCH_DEBUG=YES patch
The easiest way to re-run patches is to `make clean && make patch'. This will delete the work directory and re-extract and patch.
If GNU_CONFIGURE is used you may want to run ./configure --help to see what options are available. Anything thay you may want to override can be changed by adding the --option flags to the CONFIGURE_ARGS parameter in the Makefile
make configure
Note: make sure host dependent files go in /etc or /etc/ The OpenBSD file locations are:
COMMENT is the one-line description of the port. Do NOT include the
package name (or version number of the software) in the comment.
DESCR is a longer description of the port. One to a few paragraphs
concisely explaining what the port does is sufficient.
PLIST is kept empty at this point.
which makes a the file PLIST-auto in the pkg directory. This file
is a candidate packing list. Beware: the files are found by
timestamp. This means it does NOT:
Peruse `PLIST-auto' and verify that everything was installed and
that it was installed in the proper locations. Anything not installed
can be added to a port Makefile `post-install' rule.
Copy `PLIST-auto' to `PLIST'
should only list standard directory names.
user executables: /usr/local/bin
system admin executables: /usr/local/sbin
program executables: /usr/local/libexec
libraries /usr/local/lib
architecture dependent data /usr/local/lib/
make
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.
mkdir pkg; touch pkg/{DESCR,COMMENT,PLIST}
Create dummy versions of the package files. Edit DESCR and COMMENT.
sudo make install
install the application.
After the install is complete use the developers command:
make plist
info/dir
file if .info files are
added. You'll have to add that by hand. Also, be sure that
the info/dir
is not part of the PLIST.
Perfect is when everything installs and uninstalls
in its proper location. `pkg_delete find /usr/local -newer work/.install_started -print
After the port installs correctly issue the command
make package
to create a package. To test the
package first do a pkg_delete
and then do a
pkg_add
The results after an add should EXACTLY
match the results after a `make install'.
;;;
indicates values that must be supplied by the
porter. Remove extraneous comments when done.
# OpenBSD makefile for: ;;; # Version required: ;;; # Date created: ;;; # Whom: you@your.domain # # $OpenBSD: checklist.html,v 1.3 1998/08/16 00:16:31 marc Exp $ # # What port/package will be created # DISTNAME= ;;; #DIST_SUBDIR= ;;; #PKGNAME= ;;; CATEGORIES= ;;; # Reasons why the port/package shouldn't be built # #COMES_WITH= 2.3 #ONLY_FOR_ARCHS= list architectures here #BROKEN= "reason" #RESTRICTED= "reason" #NO_CDROM= "reason" #NO_PACKAGE= "reason" # where to send bitches about this port # MAINTAINER= ports@openbsd.org # where the source files and patches can be fetched # MASTER_SITES= ;;; #MASTER_SITE_SUBDIR= ;;; #DISTFILES= ;;; #PATCH_SITES= ;;; #PATCHFILES= ;;; #PATCH_DIST_STRIP= -p0 # How to extract the sources # #EXTRACT_SUFX= .tar.Z #EXTRACT_CMD= ;;; #EXTRACT_BEFORE_ARGS= ;;; #EXTRACT_AFTER_ARGS= ;;; # Dependencies # #FETCH_DEPENDS= ;;; #BUILD_DEPENDS= ;;; #RUN_DEPENDS= ;;; #LIB_DEPENDS= ;;; # Is the build automagic or is it interactive # #IS_INTERACTIVE= yes # build/configuration variables # #USE_GMAKE= yes #USE_IMAKE= yes #USE_X11= yes (assumed if USE_IMAKE is yes) #GNU_CONFIGURE= yes #HAS_CONFIGURE= yes (assumed if GNU_CONFIGURE is yes) #CONFIGURE_SCRIPT= ;;; (if other than configure) #.if (${MACHINE_ARCH} != "alpha") #CONFIGURE_ARGS+= --enable-shared #.endif #CONFIGURE_ARGS+= --enable-static #CONFIGURE_ENV= ${SETENV} # Things that we don't want to do for this port/package # #NO_DEPENDS= yes #NO_WRKDIR= yes #NO_WRKSUBDIR= yes #NO_CHECKSUM= yes #NO_EXTRACT= yes #NO_PATCH= yes #NO_CONFIGURE= yes #NO_BUILD= yes #NO_INSTALL= yes #NO_MTREE= yes # This section is only needed if man pages are distributed in compressed # form. Define MANCOMPRESSED and the man pages by section. The pages # will be uncompressed after being installed. # #MANCOMPRESSED= yes #MAN1= ;;; #MAN3= ;;; #MAN4= ;;; #MAN5= ;;; #MAN8= ;;; # Overrides for default values # #MAKEFILE= ;;; #MAKE_FLAGS= ;;; #MAKE_ENV= ;;; #SCRIPTS_ENV= ;;; #LDFLAGS= ;;; #WRKDIR= ;;; if other than work #WRKSRC= ;;; if other than ${WRKDIR}/$DISTNAME #ALL_TARGET= ;;; #INSTALL_TARGET= ;;; # This target may be necessary if a shared library may have been created # #post-install: # ${LDCONFIG} -m ${PREFIX}/lib .include <bsd.port.mk>