Re: packaging problems with openMSX
* Yves Teixeira <firstname.lastname@example.org> [031229 03:49]:
> 1) What should one do when a software comes with files from different
> authors with a different license? Should this license be explicit at
> /usr/share/*/doc/copyright ?
I believe debian/copyright (or whatever becomes
/usr/share/doc/name/copyright) should include all copyrights applicable.
An user should not be forced to search all it for this information.
> 2) There are files in this source that must be copied to
> /usr/share/games/openmsx. Where is the best place to make such copies?
> Is it in the install section of the Makefile.in or of the debian/rules?
> Or in the postinst, preinst files? I've seen the fluxbox example and it
> seems the correct option is the install section of the rules file. Is that
postinst and preinst is only for very special things, like e.g. creating
files depending on the local system or enquing symlinks in some priority
list. Otherwise it should already be in place in the binary package
already. If you prefer Makefile or debian/rules depends on the
situation. Doing things by hand in debian/rules has the advantage of not
messing with internals of the Makefiles, while changing Makefile.in
can center all the logic there. What is better depeds on personal taste
and some other parameters. (Depends of the complexity of the issue,
I would for example only change a Makefile.am (or Makefile.in when there
is a Makefile.am) if there are already other changes needed in there,
as this only causes problems)
> 4) the configuration file has to be fixed either. Should I just edit it
> before making the package? This way I suppose the diff file would show what
> I changed. Is this the right method?
This is a perfectly reasonable way.
> By the way, games configuration files
> should stay at /usr/share/games/openmsx, right? /etc wouldn't be a good
> place, would it?
Depends if it is a configuration file or game data. (Which text commands
beeing data in this sense, too). If it is configuration, then the it
*must* reside under /etc. The question what it is, can be a bit complex.
A simple first method to distinguish is to ask yourself: "May the
system administrator wish to change this?" If he may want to do so,
as it for example ma contain paths to addional levels, times users are
allowed to play, which players are allowed to play, or things like this,
than it has to be in /etc. (The only exception this rule has, is for
things he does not want to change with the administrator hat on but with
the the programmer hat on i.e. when the reason the change the file is
simmular to reasons an administrator may change some file under /bin/
> 3) openMSX needs a config file and the original source uses a hard-code
> place that is wrong in Debian, /opt/share/OpenMSX. Maybe I could just edit
> the source and use /usr/share/games/openmsx, but that isn't the best option,
> considering we have autoconf and configure's datadir. How can one make a C
> source get the value of a certain var from a 'configure'd variable, namely
> prefix/datadir? I thought 'datadir' would be a global var at the time of the
> compilation, so I tried to use it, but it didn't work.
The easiest way it to just hardcode the path. That is sufficent for the
maintainer tasks. If it is within some efford to get the code more
cleaned up and get upstream to accept some patch to clean up, some easy
way is to add something like -DPKGDATADIR=\"$(pkgdatadir)\" to the
CFLAGS. (Another way is the usage of some config.h-file via autoheader)
Bernhard R. Link
Sendmail is like emacs: A nice operating system, but missing
an editor and a MTA.