packaging system (was: Re: GCC 3.3.2 kernel)

Chris Pressey cpressey at catseye.mine.nu
Fri Oct 31 09:51:33 PST 2003


On Thu, 30 Oct 2003 21:18:26 -0500
David Rhodus <drhodus at xxxxxxxxx> wrote:

> I'd love to see someone bust some code out for this issue.

If not code, maybe we can at least go from stating vague desires to
giving concrete examples?

I think we can agree on some of the following points (bearing in mind
it's still too early in the morning for me to think clearly about this):

- Better standardization than the FreeBSD ports tree.
-- don't just encourage porters make up whatever knobs they like
(look at the USE_* WITH_* WITHOUT_* mess.)
-- standardized knobs for installing a development package ("dev") and
documentation ("doc") as an additional part of a port.
-- standardized naming convention.  The name of the directory in which
the port skeleton resides should have some (consistent) relationship to
the actual name of the package.
- Port hierarchy: I'm sort-of against it.  If you have a web search
engine, do you put it in www or textproc?  You resort to 'virtual
directories'.  Perhaps it's a limitation of the file system?  But I do
think things like 'www' and 'textproc' are more *keywords* than
categories.  A concordance can always be generated, for searching.
- Data format: I don't really care.  As extremes, XML and Makefiles can
both be shown to work.  But, we already have a "hierarchical container
for information" called the filesystem, and barring the previous point,
maybe that can be made to work too.

So what I'm thinking is (assuming a portbase called /usr/ports/):

usr/
  ports/
    k/
      killerapp/
        INFO/
          description.txt
          keywords.txt
          contributors.txt
          licenses.txt
          urls.txt
          ...
        2.1088/
          build/
            settings/
              knobs.txt
              dependencies.txt
              packinglist.txt
              ...
            script/
              pre-fetch.sh
              post-install.sh
              ...
          devel/
            packinglist.txt
            ...
          doc/
            packinglist.txt
            ...
          dist/
            killerapp-src-2.1088.tgz
            ... (any other d/l'd src files)
          patch/
            aa-killerapp__src__Makefile.patch
            ... (any other patches)
          pkg/
            killerapp-2.1088-DragonflyBSD-1.0-i386.pkg
            ... (any other pkg files created by build)
        2.3/
          build/  ...
          devel/  ...
          doc/    ...
          dist/   ...
          patch/  ...
          pkg/    ...
        cvs/
          build/  ...
          devel/  ...
          doc/    ...
          dist/   ...
          patch/  ...
          pkg/    ...
        ...
     ...
   ...

Intended only to spark the imagination and conversation.
In fact, please DO find things wrong with it!
Keeping in mind that file extensions are more or less arbitrary - the
text files might not even be text files, they might be XML files, or
just subdirectories of tiny text files where the filename maps to a
setting's name and the contents map to a setting's value a la some of
djb's config stuff.

-Chris





More information about the Kernel mailing list