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

Re: debtags support proposed for xcontrol



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Mon, Apr 07, 2008 at 09:11:53AM +0200, Andreas Tille wrote:
> On Mon, 7 Apr 2008, Simon Richter wrote:
>> I can see another way of implementing that in a policy compliant 
>> manner: If the "Depends-Debtags:" field exists, append 
>> "${debtags:Depends}" to the normal dependency spec during control 
>> file generation, and determine the list of packages at compile time 
>> with a separate tool that reads the spec in the xcontrol file and 
>> generates appropriate substvars.

Indeed interesting!

I see that as a separate thing than xcontrol, however.

xcontrol mess with the control file, so by nature should do its dynamic 
resolving outside of official Debian packaging (either before, like the 
get-orig-source hook Andreas mentions, or after, like unoffical 
cross-compile rebuilds), and only ensure stabiliy while in official use.

Some separate dh-debtags tool, similar to d-shlibs, doing resolving at 
build time, would make more sense to me than adding official-build-time 
dynamic resolving to xcontrol.

But of course if you feel differently, I am not to tell you the scope of 
your own tool :-P



> IMHO a really interesting idea.  However I see a drawback here: If you 
> build the packages at different points in time (delays of auto 
> builders, some other reasons to rebuild the packages later) you might 
> get different dependencies in the resulting binaries in case the 
> Debtags database changed.  I don't know whether I really like that.

Even if the above issue is solved technically, CDD developers might not 
agree with official Debtags tagging, and thus might want to use Debtags 
as a CDD development tool, but offer the result as static package lists 
in the final CDD (either just freezing at a time they agreed with 
official Debtags, or manually overriding some entries after Debtags 
resolving).

Debian-junior is an example of a CDD so closely coordinated[1] with 
Debtags that it even has its own unique facet.

Debian-science, on the other hand, is sceptical that Debtags is too 
simple to express their needed package classification, so currently 
favor hand-maintained package lists.

So Debian-junior is a simple showcase demonstrated at the xcontrol wiki 
page, but also so simple that they don't really need this mechanism. The 
real challenge is an implementation that even Debian-science will want 
to adopt ;-)


>> About your other idea, looking whether packages are available on an 
>> arch and omitting them if not: can be done, something similar was on 
>> my list already (although the static version where "foo [i386]" would 
>> be replaced by "not+i386 | foo"; I can certainly see that happening 
>> with substvars as well for Arch: any packages, but it will be 
>> difficult for Arch: all as we cannot see what the other arches have).
>
> Huh, why can't we see this?  Parsing the Packages.arch.gz files comes 
> to mind.  I planned to do this for the cdd-dev tools but if it would 
> be implemented in xcontrol I could save my time and just create a 
> xcontrol file and leave the processing of this to debian-xcontrol. I 
> like the idea of saving my time very much. ;-)

Packages.arch.gz isn't normally available for all architectures, and 
pulling it at official-build-time it is illegal.

Currently, xcontrol can run at any build-time, and break if control 
changes, to avoid violating policy.

Analyzing resources external build process causes xcontrol to _alway_ 
violate policy, even when the control file would not get changed.

Also, as an end-user, I dislike the not+foo mechanism: Type-handling 
depends on dpkg-dev which pulls in a bunch development tools I would 
like to avoid installing in non-development systems.



> BTW, if it comes to parsing Packages files I've written something that 
> does this for i386 for the moment.  It uses python-debian:
>
>   svn svn://svn.debian.org/debian-med/trunk/community/infrastructure/scripts/cddtasktools.py

Interesting in general here on the list, but I guess not that relevant 
for xcontrol implemented in C++, with (it seems) its own pkg parser :-)


[1] I belive the junior:: facet in debtags was actually an experiment, 
and not the proper approach generally for CDDs (to avoid polluting the 
namespace) according to the Debtags maintainers.  If I got that wrong, I 
am sure Enrico or others are happy to correct me here :-)

- -- 
* Jonas Smedegaard - idealist og Internet-arkitekt
* Tlf.: +45 40843136  Website: http://dr.jones.dk/

  - Enden er nær: http://www.shibumi.org/eoti.htm
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFH+gyFn7DbMsAkQLgRAsXVAJwKus7GkP7ZXfhMTRDcJJKs6N9z/wCfd4dz
m8y1R7+6dqU3Xa3l2MF19ek=
=3KZX
-----END PGP SIGNATURE-----


Reply to: