Paul Schmehl wrote:
--On January 11, 2008 9:24:36 PM -0800 Doug Barton <[EMAIL PROTECTED]> wrote:

First, thanks for you answer. Second, a clarification. I started this thread from the viewpoint of a port maintainer (I maintain about 10 ports) who is concerned about confusing users.

Thanks for clarifying that. I will therefore snip the bits that we agree on below. :)

1) You can't build a dependent port and first set the config for the
options that you want.  So, when you select sasl in postfix, you never
get the chance to check the saslauthd option, for example.

Portmaster actually does a depth-first traversal of the dependency tree
which allows you to do this.


Interesting. I haven't used portmaster because I'm used to doing things the "traditional" way. I *thought* portmaster was a replacement/improvement of portupgrade,

"Alternative" to portupgrade is probably the right way to phrase that. Portupgrade does a lot more stuff, and portmaster has no ability to install packages.

However both tools are just as good at installing things as they are at upgrading them. The distfiles for portmaster consist of just the /bin/sh script and the man page, so you can install the port, read the man page, and if you're not interested just delete it. Also there is a 2.0-beta version of portmaster at http://dougbarton.us/portmaster. The --help is up to date for the new version, but I haven't finished updating the man page for the new features yet. The old man page still applies for everything else though.

Another thing that used to confuse me was the existence of multiple ports for the same software. For example, bash and bash2. It took me a while to realize that bash was the *current* version and bash2 was the *older* version. If you look, however, at the apache ports or the mysql ports, they always append the version number. This makes it easier for the user to understand, without having to do a great deal of research, what each port actually is. This, perhaps, is an area where standardization would benefit the community without creating undue rigidity.

I have actually advocated in the past that ALL ports should have version numbers, and that we then create virtual ports (symlinks, whatever) that point to whatever is the "current" version of that software. Different developers dislike that idea for different reasons, but my opinion is still that from the user perspective this would make life a lot easier.

3) There's no standard for the format of pkg-plist,

This has already been covered, but for the record you're wrong about
that.


Really? Some ports use PLIST_SUB and use those macros in pkg-plist. Others do not - they use the relative path entirely.

That is plain wrong, and should not happen.

I don't recall anything in the handbook that says you must or should use one or the other. Here again is an area where standardization might improve clarity.

Agreed.

The use of unexec is also not clear. Should I go to the trouble of checking to see if the conf file has been altered and remove it if it hasn't been?

Yes. You're right again here that this needs to be better documented.

... re pkg-descr ...

I'm not looking for a cookie cutter approach, but I think the use of "must", "should" and "may" in the docs would be helpful. For example, you "must" have a WWW: in pkg-descr if there is one available. You "should" create a brief description of what the port does. You "may" use a cut and paste of the vendor's explanation but be careful to make sure it isn't so generic that it doesn't make sense to FreeBSD users.

Sure, that sounds reasonable. I'd change the one about WWW to a SHOULD, but IMO you're on the right track here.

When do you use @dirrm as opposed to @dirrmtry?

That's an easy one. If the directory might have files in it from another
port, use the latter. If your port is the only one putting files in it,
the former.


Not as easy as you think. I maintain a port that creates files and directories. The first time the app is launched *new* files *and* directories are created in those directories - files and directories which have names that I can't possibly know at the time of port creation.

That's unfortunate. :) Depending on what kind of data we are talking about, you might consider putting it in /var. If it's not something that needs to be preserved across reboots, putting it in /var/run would solve several problems at once.

The other option is to add a message on deinstall that tells the user how to delete this stuff themselves if they won't use the port anymore.

hth,

Doug

--

    This .signature sanitized for your protection
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to