Hi Dmitry,

* Dmitry Katsubo <dm...@mail.ru>, 2011-01-21, 13:36:
I attach the trivial solution for the bug: the library header
cuneiform.h is packaged as libcuneiform-dev.deb

Apart from being trivial it is also wrong. :)

With this patch applied it is (still) not possible to link to libcuneiform without jumping through extra hops. Worse still, it is not possible to build a policy-compliant package linking to libcuneiform at all; please consult Debian Policy 8.


All in all, package layouts should look like this:

* cuneiform:
  /usr/share/man/man1/cuneiform.1.gz
  /usr/bin/cuneiform

* libcuneiform<soversion>:
  /usr/lib/libcuneiform.so.<soversion>
  /usr/lib/cuneiform/libexc.so.<soversion>
  /usr/lib/cuneiform/librsadd.so.<soversion>
  /usr/lib/cuneiform/librlings.so.<soversion>
  [... - and so on; it's better to keep these auxiliary libraries in a private
directory, as other software is not supposed to link to them]

* libcuneiform-dev:
  /usr/include/cuneiform.h
  /usr/lib/libcuneiform.so -> /usr/lib/libcuneiform.so.<soversion>


Apart from that, two things are worrying me:

1. A few types and constants defined in cuneiform.h have very generic names ("enum Languages", "Bool", "LANG_ENGLISH" etc.). This is not something acceptable in a public header file, and these names could easily conflict with other names in user's code.

2. SONAME is currently "libcuneiform.so.1.0.0". Does it mean that it's going to be "libcuneiform.so.<upstream-version>", i.e. changing with every upstream release? That would mean that with every upstream release:
- Debian package would have to pass through the NEW queue.
- Packages linking to the shared library (if any) would have to be rebuilt. This is not something I'd be happy about. SONAME should change if and only if the new version actually breaks ABI.

--
Jakub Wilk



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to