Packaging notes


-dev packages Depends:



binNMU support

<lool> feedback: so on that bin NMU thing, it's a new feature the release team gained recently <lool> feedback: the concept is to download the source from the archive, and re build the binary packages <lool> _feedback: it's vert special in that the source doesn't change, so Source-Version is still the same version <_feedback> lool: ok, and that's it, so everything should depend on Source-Version <lool> _feedback: when we write strict dependencies, we used to write "={Source-Version}' (or >=) <lool> but that breaks with bin NMUs <_feedback> hum.. so? <lool> _feedback: if the source has eg 2.1.0-1, the bin NMU will have 2.1.0-1+b1 for a version <lool> yet the =source-version dep will look like = 2.1.0-1 <lool> but this won't exist in the archive anymore <lool> _feedback: so the solution is to introduce a new substvar, binary:Version <_feedback> ok, so, depending on ={binary:Version} solves it? <lool> making a package bin NMU ready means fixing the dependency between arch: any packages to use $binary:Version <lool> but you need a build-dep on a newer dpkg-dev for this <lool> you also have to be careful with arch: all packages which won't be bin NMU ed <lool> you should always depend on them with =source:Version (same as Source-Version, but looks like binary:Version) <lool> and they should depend on arch: any packages with >= source:Version <lool> _feedback: so that's it :)

pkg-config files

<shaka> lool: for some reason i got the "housekeeping task" spirit over me just in time for this upload. what i did was match -dev depends with .pc Requires: -- is that the right way to do it? <vorlon> shaka: if there are no .la files, then yes <vorlon> shaka: Requires: and Requires.private: if you want to support private linking out of the box; considerably more if you have .la files that embed references to all kinds of crap <lool> shaka: yes, that's correct <lool> shaka: you need to depend on packages shipping headers or libraries or pc files referenced from your pc files <lool> shaka: a nice thing to do is to move headers/modules/libs which are only useful to link statically from requires to requires.private, or from libs to libs.private <lool> (in pc files) <lool> shaka: however, moving requires to requires.privates when this pulled headers (-I flags) might break stuff, there's a bug against pkg-config for that <lool> shaka, heikkih: hmm e-d-s isn't doing terribly good :-/ <shaka> lool: so, what if your foo-dev has foo.pc and /usr/include/foo/foo.h with a #include <bar.h> and there is no Requires: bar-pkg <shaka> lool: is that a reason to add it to Requires: (that would be notify upstream)? <lool> shaka: you can also add -I to cflags <shaka> lool: yes, of course <lool> shaka: one part of the pkg-config discussion in the bug is whether such inclusion of headers (API) should cause a link to the included library