Making packages
Ben Pfaff
blp@cs.stanford.edu
28 Dec 2001 13:32:19 -0800
michael@dynamine.net (Michael S. Fischer) writes:
> On Fri, Dec 28, 2001 at 01:02:30PM -0800, Ben Pfaff wrote:
>
> > michael@dynamine.net (Michael S. Fischer) writes:
> >
> > > I'm now working for a hardware startup in Fremont in "stealth mode",
> > > whose software is placed atop a Red Hat distribution, after being
> > > packaged in a custom format (which handles dependencies and multi-node
> > > installations).
> >
> > I don't even know what a "multi-node installation" is.
>
> Oh, it's an extension to the package manager that passes packages to all
> of the nodes in a cluster and tells the package managers on all the
> nodes to install the packages as well.
Ah. I would use apt-get to do this under Debian. Just write a
utility that works something like this
for d in node1 node2 node3 ...; do
ssh $d apt-get update \; apt-get -y dist-upgrade
done
unless there's truly more to it than that, of course.
> > > Presently our custom software packaging system is similar to .deb's
> > > (metadata, files, pre/post-install scripts) but the packages are built
> > > by simply collecting a bunch of files that have been generated in various
> > > places throughout the source tree. The traditional method of building
> > > Debian packages doesn't seem to fit the same paradigm.
> I have read the New Maintainer's guide, but it's focused around dh_make,
> which won't work here.
dh_make is only good for setting up the skeleton of a package anyway.
> > A more elaborate description of what you're trying to do would be
> > helpful.
>
> OK, here's an example of our current package manager's config file:
>
> [cli]
> version 0.83.2
> postinstall scripts/cli_post
> file etc/temp-tclshrc /root/.tclshrc
> file etc/temp-cli.sh /etc/profile.d/temp-cli.sh
> file etc/temp-cli-pwfile /root/temp-cli-pwfile
> # commands start here
> file batteryage
> file batterylogreset
> file batteryskiprecharge
That's just great. You can take this and write a Perl script
that translates this format into a debian/ directory. Then you
can use `debian/rules binary' to build your package. You'll
probably need some kind of link farm because there can only be
one debian/ directory in a single place.
> An additional question I failed to ask earlier: have any of you ever
> tied the Changelogs in your packages to revision control systems? Seems
> silly to store the change logs twice (once in your RCS/SCCS checkin
> comments and then again in the Changelog itself).
There's a package in Debian called cvs2cl that transforms CVS
logs into ChangeLog files. Maybe that would help.
--
"How could this be a problem in a country
where we have Intel and Microsoft?"
--Al Gore on Y2K