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

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: