[freeside-devel] Some Ideas

David Burgess burgess at neonramp.com
Wed Nov 16 15:10:43 PST 2005


I've run FreeSide under NetBSD in the past (and plan to again after the
first of January).  As such, I'm used to the files storage locations for
the PKGSRC system that NetBSD uses.  While it's all style, the location
structure that NetBSD uses makes excellent sense to me:

- Anything installed by a local administrator goes into /usr/local
- Anything installed by a pkgsrc package goes into /usr/pkg

On my system, /usr/local/ and /usr/pkg/ are symlinked together.  As such,
I always end up with most of the installation files in /usr/pkg.

- Configuration examples go into /usr/pkg/share/examples/{pkgname}
- Configuration files go in either /usr/pkg/etc/ or /usr/pkg/etc/{pkgname}
depending on the number of files.
- Logs go into /var/log/{pkgname}/ or /var/log/pkgname.log
- Perl modules are installed using CPAN, and the CPAN we use installs
everything in /usr/pkg/lib/perl....
- Executables go in /usr/pkg/bin for public executables, /usr/pkg/sbin for
system management programs, and /usr/pkg/libexec for programs executed as
subordinate executables.  An example is anything that gets installed as a
cgi-bin web app.
- If the package needs a biiiig directory full of stuff that doesn't fit
into these categories goes into /usr/pkg/{pkgname}.  Ghostscript and cups
are examples where one of these might get built.  Usually, however,
everything of a configuration nature ends up in /usr/pkg/etc/{pkgname}
instead.

So, if FreeSide was a NetBSD package again (I built a package for it a
couple of years ago), it would install all of the required packages
(Mason, etc.) using the pre-existing packages in pkgsrc, then install all
of it's configuration stuff in /usr/pkg/etc/freeside.  The executables
would go into /usr/pkg/sbin, and the Apache Interface stuff would all go
into /usr/pkg/libexec/cgi-bin.

The only real variation on the theme is the placement of files in the /var
directory.  Under NetBSD's normal theme, the /var directory is transitory,
so databases and logs don't need their own /usr/local or /usr/pkg var
directories.

By going with a standard set of installation directories, it's easy to
predict where files are going to be, where to look for programs, and to
manage a larger set of servers than using a long series of possible
locations for everything.

Dave

<quote who="Jason Thomas">
> On Tue, Nov 15, 2005 at 11:04:20PM -0500, Richard Siddall wrote:
>> Jason Thomas wrote:
>> > Debian is very strict about package layout, and I'm having a lot of
>> > trouble massaging Freeside to fit.
>>
>> I gather the RPM version doesn't comply with all sorts of layout
>> standards.
>>
>> Could you elaborate a bit?  It looks like Ivan's running sisd.com on
>
> Well actually I never looked at where your packages put stuff. But an
> example of the kind of trouble is the logs in etc/freeside/, although
> simple to change this is just one example and there seem to be lots.
>
> Usually when I package something you just do configure --prefix=/usr &&
> make install DESTDIR=/home/jason/<application name>/debian/tmp/usr
>
> With freeside I've had to write all sorts of shell code to munge stuff.
> _______________________________________________
> freeside-devel mailing list
> freeside-devel at sisd.com
> http://420.am/cgi-bin/mailman/listinfo/freeside-devel
>


-- 
Dave Burgess
President, Nebraska On-Ramp
Bellevue, NE 68123



More information about the freeside-devel mailing list