Subject: Re: questions about creating a new package
To: Jeremy C. Reed <reed@reedmedia.net>
From: Jason Beegan <jason@kurwenal.com>
List: tech-pkg
Date: 02/10/2001 05:57:48
> To build my pkgsrc (both times), I manually created a directory under a
> category under my pkgsrc directory. Then I manually created the 
> pkg/COMMENT, pkg/DESCR, pkg/PLIST, pkg/MESSAGE and Makefile files. The
> first time I manually created files/md5,  but this time is used 'make
> makesum'. Then to submit this new pkgsrc'd package I tar'd it up and made
> it available from my webpage.

Haven't you heard of url2pkg? You'll find it in pkgsrc/pkgtools/url2pkg.
Anyway, with url2pkg you just do, eg.

	mkdir pkgsrc/games/pkgname
	cd pkgsrc/games/pkgname
	url2pkg path/to/distfile.tar.gz  (can be a local or remote file)

This will setup a skeleton Makefile, generate the checksum, and create
all of the other files you mention.

For the diffs, do something like, eg

	       cp Makefile Makefile.orig
	       emacs Makefile		  (edit the makefile into submission)
	       pkgdiff Makefile.orig Makefile > patch-aa

The pkgdiff'd file will contain the necessary RCS tags, and will be in
the right format (unified diff, diff -u).
	
> next time I do an CVS update I'll have a few conflicts. How can I work
> around this? How can I do it correctly the first time?

You shouldn't have any conflicts while updating your other files by
CVS, since your file aren't imported into the CVS repository.  When
you update, you'll just see question marks beside your own files as CVS
ignores them

		cvs -z3 update -P -d		(recommended command to use)

Ugames/gnuchess4/
......
Ugames/....
?games/pkgname/Makefile
?games/pkgname/files/md5
?games/pkgname/files/patchsum
......
?games/pkgname/pkg/PLIST
Ugames/...

> What is the correct way to do this? (How can I make a diff file that
> contains these new directories and files so I can just include it in my
> send-pr?)

To include it in your PR either:

	   (i) Make a shell archive. Have a look at shar(1).
          (ii) Use a MIME capable mail agent, eg. Mutt, to attach a
               .tar.gz file to your PR. You could also just use
               `base64' to encode the .tar.gz file (but this is a
                little tricky, since you will have to put a MIME
                boundary in the message).

Perhaps it's better to just put it up on the WWW, and send the URL.

> It appears that pkgdiff is for only one file at a time. Is this true?

Yes. AFAIK there is a tool for creating several patches at once, but I
know no more about it.

Regarding learning CVS, you might find something useful at

	  http://www.cvshome/docs/index.html

> I have several more things to package :)

Great!  I hope this was of some help.


Jason Beegan.  (jtb@netbsd.org)