[XviD-devel] Debianized tree for devapi4 available

Edouard Gomez ed.gomez at free.fr
Fri Oct 17 03:16:59 CEST 2003


Hello,

More news about devapi4.

I know it's still not time to release it, but I'm working on making it a
bit less rough  on the edges than 0.9.x  releases, especially concerning
the packaging on GNU/Linux distros.

I still see  packages (especially RPMs) that are  probably not very good
for  users from  the maintainability  of their  systems. As  a  proof of
concept,  I had  a debianized  tree of  devapi3 and  devapi4  since many
months. I  think it's  time to publish  it, so  xvid 1.0 will  be better
packaged.

So what was the main goal:
 - make upgrades easy for users (the debian moto)

How do i achieved that:
 - the package's name depends only  on xvidcore string and the Major API
   version, and  is versioned  with the lib  version (as branded  by us,
   0.9.x,       or       1.0.x).        This      package       provides
   libxvidcore.so.$MAJOR_API.$MINOR_API,  and because  of  some unix  ld
   limitations,      a      .so.$MAJOR_API      symlink      to      the
   .so.$MAJOR_API.$MINOR_API

   => A user will never be forced to upgrade libxvidcore if the major
      API  does not change.  User versions  may differ  but if  they are
      binary compatible, there is no reason to force the user upgrading.
   => Multiple major API versions can live together.
   => Programs  using XviD are  linked against the  .so.$MAJOR_API, this
      ensure smooth  upgrades for the client applications  as there will
      never be two incompatible versions having a same .so.$MAJOR_API

 - the dev  package provides the header  file, the static  library and a
   .so  symlink to  the  libxvidcore.so.$MAJOR_API. The  package has  to
   conflict with  other MAJOR_API  versions, so the  client applications
   still  use #include  <xvid.h> and  not some  kind of  tricky #include
   <xvid2/xvid.h>

   => the  .so symlink  pointing to .so.$MAJOR_API  ensures applications
      are  linked  against  .so.$MAJOR_API  symlink. This  is  good  for
      keeping bin compatibility as explained in the previous points.
   => All the apps can #include <xvid.h>

On debian, this is the default  policy for libs (sorry if i'm not clear,
read the  debian policy for real  and precise reasons). I'm  sorry but i
don't have  a RPM based  distro to show  you how to accomplish  all that
with .desc file. Contributions are welcome.

Debianized tarballs available on my web page:
http://ed.gomez.free.fr/

-- 
Edouard Gomez


More information about the XviD-devel mailing list