From owner-freebsd-ports Wed Sep 22 0: 4:58 1999 Delivered-To: freebsd-ports@freebsd.org Received: from shale.csir.co.za (shale.csir.co.za [146.64.46.5]) by hub.freebsd.org (Postfix) with ESMTP id 539E414FC1 for ; Wed, 22 Sep 1999 00:04:45 -0700 (PDT) (envelope-from reg@shale.csir.co.za) Received: from granite.hip.berkeley.edu (granite.hip.berkeley.edu [136.152.155.25]) by shale.csir.co.za (8.9.3/8.9.3) with ESMTP id JAA51922; Wed, 22 Sep 1999 09:04:15 +0200 (SAT) (envelope-from reg@shale.csir.co.za) Received: (from reg@localhost) by granite.hip.berkeley.edu (8.9.3/8.9.3) id AAA26268; Wed, 22 Sep 1999 00:06:59 -0700 (PDT) (envelope-from reg) Date: Wed, 22 Sep 1999 00:06:59 -0700 From: Jeremy Lea To: Alexander Langer Cc: ports@FreeBSD.ORG Subject: Re: Port Making Program Message-ID: <19990922000659.B422@shale.csir.co.za> References: <19990921133230.A43770@cichlids.cichlids.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0pre1i In-Reply-To: <19990921133230.A43770@cichlids.cichlids.com> Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Hi, On Tue, Sep 21, 1999 at 01:32:30PM +0200, Alexander Langer wrote: > Is there a program that helps one with making ports (automatically > creating list for PLIST etc), or must this first be written? No, there's no program to do this automatically (although there's this rumour about Satoshi's hamster...) This is the general procedure which I follow, although it's not going to work for everything. 1. Copy a working similar port to the directory name you've chosen for your port. Delete all the CVS directories (rm -r CVS; rm -r */CVS). Delete all the patches (rm patches/patch*). 2. Edit the Makefile, starting at the top to reflect your new baby. Check everything... and set to $FreeBSD$. Remove any targets which you don't think you'll need, and any settings which might not be useful. Edit pkg/* and remove everything from the PLIST. Make up a COMMENT and DESCR. 3. Once the Makefile has the right PKGNAME/DISTNAME and SITES, then run 'make makesum'. Don't copy the tarball into /usr/ports/distfiles first, check the URLs. You should check them all, unless you're pretty sure they are good mirrors. 4. 'make patch'. Then cd to the work directory and start looking for clues. ltconfig means you need USE_LIBTOOL. configure.in means GNU_CONFIGURE, configure HAS_CONFIGURE and Imakefile's means that you need USE_IMAKE. Read the README if there is one, and if there is a configure script, run it to see what it's looking for. Don't worry about failures at the moment. 5. Go back and edit your port's Makefile to reflect what you found. Then run 'make configure | & more' to see if the port finds all it's dependencies. If it doesn't then you need to either start patching or adding configure arguments or other settings. Repeat until the port configures correctly. 6. 'make clean' and 'make'. Start patching you whatever until it builds. Then run 'make install' and carry on patching until it installs. 7. 'make clean' and 'make install'. Then 'find /usr/local/ -newer work/.builddone' and 'find /usr/X11R6/ -newer work/.builddone'. You might also want to check the entire tree for new files. Continue patching until the files are all going to the right places. 8. Run 'make clean' and 'make install'. Then run 'find /usr/local/ -newer work/.builddone ! -type d | sed -e "s^/usr/local/^^g" | sort > pkg/PLIST', followed by 'find /usr/local/ -newer work/.builddone -type d | sed -e "s^/usr/local/^@dirrm ^g | sort -r >> pkg/PLIST'. Then edit the PLIST and look for wrong files (especially info/dir) and copy in the ldconfig lines from another port if you are installing shared libraries, and the install-info commands if you have info files. Obviously use /usr/X11R6/ if you're going there... Also move man pages into the Makefile MAN?= variables. 9. Run 'make clean' then 'make install' then 'make deinstall' and 'find /usr/local -newer work/.builddone' to make sure the port is not leaving anything behind. Then install and see if the port works. Then run: make clean make install make package make deinstall pkg_install pkg_delete make reinstall 10. Repeat the procedure above until this completes without error... Or something like that... -Jeremy -- | ------------------------------------------------------ --+-- "Maybe tomorrow will be better than today, | or maybe it will not come at all..." - Pam Thum | ------------------------------------------------------ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message