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

Re: Bug#630344: dpkg-gensymbols: Add support for private symbol tag



Hi,

(moving to list since I'm veering off-topic)
Raphael Hertzog wrote:

> Since private symbols are not to be used outside of the source package,
> we can just invent a special value to use in the associated minimal
> version field.
>  symbol@Base *private*

Thanks.  That reminds me, I almost wanted something very similar
recently.

This package was for experimental because it included some symbols
that are not part of the maintained ABI (and thus should never be part
of stable).  The idea is that people would feel free to play around
with these symbols --- since that's a good way to get an early sanity
check and other feedback --- but only after they understand that there
are no guarantees about the interface, even from one day to the next.

At compile time, an application declares it understands it is asking
to be burned by defining -DLZMA_UNSTABLE.  The debian/symbols file
makes sure package dependencies reflect the contract: if you use one
of these symbols, you are tied to a particular upstream version of
liblzma, and only Debian revisions starting with "exp".

	liblzma.so.5 liblzma5 #MINVER#
	| liblzma5 (>= 5.1.1alpha+20110528-exp), liblzma5 (<< 5.1.1alpha+20110528-.)
	* Build-Depends-Package: liblzma-dev
	 (symver)XZ_5.0 5.1.1alpha+20110528
	 (symver)XZ_5.1.1alpha 5.1.1alpha+20110528 1

Now what I wished I could do is

	liblzma.so.5 liblzma5 #MINVER#
	| liblzma5 (>= ${source:Upstream-Version}-exp), liblzma5 (<< ${source:Upstream-Version}-.)
	* Build-Depends-Package: liblzma-dev
	 (symver)XZ_5.0 5.1.1alpha+20110528
	 (symver)XZ_5.1.1alpha 5.1.1alpha+20110528 1

but that creates a DEBIAN/symbols file including a literal
${source:Upstream-Version} string, which is not quite right.  An
alternative syntax like

	liblzma.so.5 liblzma5 #MINVER#
	| liblzma5 (>= @UPSTREAMVER@-exp), liblzma5 (<< @UPSTREAMVER@-.)
	* Build-Depends-Package: liblzma-dev
	 (symver)XZ_5.0 5.1.1alpha+20110528
	 (symver)XZ_5.1.1alpha @UPSTREAMVER@ 1

might have been more appropriate.  Anyway, this is a bit of a weird
example, so I don't actually mind doing that substitution myself in
debian/rules; just thought the example might be entertaining.

Regards,
Jonathan


Reply to: