Re: Splitting in /usr/lib/<arch> and /usr/share
On Sat, Mar 08, 2014 at 08:47:41PM +0100, Оlе Ѕtrеісhеr wrote:
> Bartosz Feński <bartosz@fenski.pl> writes:
> >> I am packaging some older software (eso-midas, [1]) that installs
> >> everything into a common directory (f.e. /usr/lib/eso-midas/). However,
> >> the FHS requires that this should be split between /usr/share/ and
> >> /usr/lib/<arch>/. In the majority of cases, this could be done
> >> automatically by recognizing the type with the "file" command: object
> >> files, libs etc. go to /usr/lib/<arch>/eso-midas/, all text and data
> >> files to /usr/share/eso-midas (with a link to
> >> /usr/lib/<arch>/eso-midas).
> >>
> >> Is there already a little helper script that does this for me?
> >
> > I don't know such script but lintian will show you the files that are
> > placed inappropriate.
> > Just direct them to proper location in .install file.
>
> This is quite a large number of files, and one needs to create links for
> all of them. I can handle this manually somehow, on the other hand it
> looks like a task that could be automatized via a helper script --
> especially if one has to repeat this for every new version.
Is this some old package with autotools? Then... this may be fixed by
reconfiguring build script, do so. I mean:
Try:
./configure --help
Which should listi something like:
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/libkkc]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Then experiment to find the right install path by setting its arguments
etc. Let's suppose the following fix it:
./configure --prefix=/usr --datadir=/etc/foo
Then if you use dh (v7 or larger), set up debian/rules:
override_dh_auto_configure:
dh_auto_configure -- --prefix=/usr --datadir=/etc/foo
Osamu
Reply to: