[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RFC: packaging a daemon for an embedded platform



Hi, José.

On Aug 23 2008, José Luis Tallón wrote:
> Rogério Brito wrote:
> > I intend to package a heartbeat program for an embedded computer
> > (actually, a NAS) based on PowerPC, the Kurobox.
> >   
> Yup, your thread on -devel is most detailed.

I just included that preamble because I'm not sure if the people on
debian-mentors actually got my earlier e-mail.

> > The original firmware of the Kurobox is non-free, but there is a free,
> > highly configurable daemon from
> > <http://sourceforge.net/projects/ppc-evtd>.
> >
> > The "problem" is that it is packaged by upstream in a quite unusual
> > way, with the following directory structure:
> >   
> Hmm.. "packaged"? you mean the "upstream tarball"?
> In this case, it doesn't really matter.

Yes, by packaged I meant the upstream tarball.

> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> > rbrito@cruz:/tmp$ tar ztf avr_evtd_1.7.2.release.tar.gz
> > usr/src/avr_evtd/./
> > usr/src/avr_evtd/./COPYING
> > usr/src/avr_evtd/./Makefile
> > usr/src/avr_evtd/./README1st.txt
> > usr/src/avr_evtd/./avr_evtd.c
> > usr/src/avr_evtd/./PPC/
> > usr/src/avr_evtd/./PPC/avr_evtd
> > usr/src/avr_evtd/./MIPS/
> > usr/src/avr_evtd/./Install/
> > usr/src/avr_evtd/./Install/avr_evtd
> > usr/src/avr_evtd/./Install/emergency_eth0
> > usr/src/avr_evtd/./Install/avr_evtd.sample
> > usr/src/avr_evtd/./Install/EventScript
> > usr/src/avr_evtd/./Install/COPYING
> > usr/src/avr_evtd/./Install/recovery.tar
> > usr/src/avr_evtd/./Install/avr_evtd.1.gz
> > usr/src/avr_evtd/./IMPORTANT.PLEASE READ
> > rbrito@cruz:/tmp$
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> >
> > It also contains a binary included and some other things that need to
> > be Debianized. So, in light of this strange situation, would it be the
> > case of repackaging the source or would it be better to keep
> > upstream's strange arrangement?
>
> dpkg-source would, AFAIK, rename the "usr" to the proper
> avr-evtd-<version> upon unpacking.

Please, correct me if I am wrong, but dpkg-source would only rename usr to
the proper directory once I have already a source package built, right?

> Unless you have to extensively patch the source, or remove any
> non-DFSG-free content, I would keep the upstream tarball as it is as
> much as possible ("pristine upstream source" for traceability purposes)

Right, I understand that. But the amount of patching is quite significant.

> When debianizing, just:
> 
> in debian/rules:
>     - remove all binaries (I mean src/avr_evtd/PPC/avr_evtd): this is
> typically achieved by calling "$(MAKE) clean" or similar

The Makefile is quite unusual and it has hardcoded paths like
/usr/local/sbin, which, of course, need to be changed. It's not a script
like the ones generated by a ./configure script.

>     - compile, but do not install --- you most probably want to do that
> yourself, anyway, seeing how upstream likes to arrange things o_O

Right. It is indeed unusual.

>     - you might want to investigate compiler switches to make the daemon
> use less resources

I guess that compiling with "-Os" (which, BTW, is hardcoded in the
Makefile, along with other options) would contradict the policy (right?),
even though this would be the desired case for a limited memory platform.

> For the rest
> - put the daemon in /usr/sbin  -debian/install (or avr-evtd.install)

Right.

> - put the config file in /etc/avr-evtd/avr-evtd.conf or similar  (you
> might need to patch the source for this)

Yes, I will definitely need to patch the daemon for the pathes of
configuration files.

> - emergency_eth0 seems to be a script -- it would go within
> /etc/avr-evtd or /usr/lib/avr-evtd depending on how it gets used

It goes, by upstream, into /etc/avr_evtd . And the capitalized names are
hardcoded... :-/

> - install the manpage   - dh_installmanpages
> - install the samples   - dh_installexamples

Right.

> What does "recovery.tar" contain?? this might be the most hairy part...

It just contains some text files for the emergency mode of the NAS:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-rw-r--r-- root/root       514 2006-10-17 17:02 etc/group
-rw-r----- root/root       429 2006-10-17 17:02 etc/gshadow
-rw-r--r-- root/root       870 2006-10-17 17:02 etc/passwd
-rw-r----- root/root       574 2006-10-17 17:02 etc/shadow
-rw-r--r-- root/root       593 2006-10-18 15:08 etc/issue.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


Thanks, Rogério Brito.

-- 
Rogério Brito : rbrito@{mackenzie,ime.usp}.br : GPG key 1024D/7C2CAEB8
http://www.ime.usp.br/~rbrito : http://meusite.mackenzie.com.br/rbrito
Projects: algorithms.berlios.de : lame.sf.net : vrms.alioth.debian.org


Reply to: