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

Re: Vendor specific data files



Niels Thykier <niels@thykier.net> writes:

> Thanks for the feedback.  I am quoting your reply in full for the sake
> of debian-lint-maint.  :)

Ok, I include that list in my reply.


[...]

>> Do you think there is a possibility to have version specific under each
>> vendor?
>> 
>
> "You" (i.e. the vendor) could encode the version as a part of the
> profile name (e.g. debian/v6_02 or ubuntu/v1110).  This plus a data dir
> for each Lintian profile should solve that.

Ok for that, with a layout as suggested at the end it could be easy to
read/use.

>> Why not making @include-parent the default?

[...]

> Personally, I think an explcit "@include-parent" is better than it being
> default semantics.  It tells the reader that there is more to the file
> than the lines in it.
>
> As a Lintian maintainer, either way is fine for me because I will be
> working with it often.  But I am afraid "newcomers" may find it
> surprising that parent files are parsed by default.

Ok, my explanation was not very clear:

As a vendor, Extending, say, "debian/main", do I need to provide:
- a full data/ directory?
- just files I wanted different?

I agree with the explicit "@include-parent" when redefining a "data
file", but I prefer not to have to copy-and-adapt the full debian/main
data/.

For example, I'm vendor "foo", I just Extends "debian/main" but my
distribution is called "quux", I only want to provide one file in a
lintian-vendor-foo package:

"$LINTIAN_ROOT/vendors/foo/main/data/changelog-file/foo-dists"

with the regexp (or list) of my distributions: "quux(?:-(?:proposed-updates|security|backports))"

If I want to use "debian/main" distribution names in my project, I need
to provide an "@include-parent" line

I hope I do not need to provide all the other files, containing only
"@include-parent".

So, we can call this something like "inheritance of nonexistent data files".

>>> Open question: Is parent vendor defined in terms of "dpkg-vendor" or in
>>> terms of Lintian profiles's "Extends:" relation?  Which is less
>>> confusing/most useful?
>>>   - I admit thinking dpkg-vendor for the first hour of writing this
>>>     email.
>>>   - But would the "Extends" relation be more useful?
>> 
>> Why not intersection of both?
>> 
>
> I do not see how you could that.  Do you have a proposal for how that it
> would work?

Not really, I'm not confident with dpkg-vendors, mostly due to the lack
of documentation ;-)

My problem is that dpkg-vendors provide a Parent but no profile name,
which seems to be specific to lintian.

So, here is a try:

- if a "--profile" command line argument is provided to lintian, skip
  dpkg-vendors as the information could be unavailable on the machine.
  Like check an ubuntu package on a debian system

- no "--profile" command line argument is provided to lintian:
  1. Get current vendor origins with dpkg-vendors

  2. Load lintian main profile of the current vendor:

     - Is there an "Extends"?:

       - Yes: Is there a dpkg-vendors "Parent"?

         - Yes: miss-match?

           - Yes: raise Error

           - No: recurse to 1. with lintian profile "Extends" vendor as
                 current vendor

         - No: recurse to 1. with lintian profile "Extends" vendor as
           current vendor

      - No: Is there a dpkg-vendors "Parent"?

        - Yes: recurse to 1. with dpkg-vendors "Parent" vendor as
          current vendor

        - No: End


I wonder if someone use the dpkg-vendors "Parent" field.

I think we can not tell which one is the reference if the dpkg-vendors
"Parent" does not match a lintian profile "Extends", so I raise an Error
in that case to let people handle it.

> now you mention it, using something like
>
>   LINTIAN_ROOT/vendors/$PROFILE_NAME/data/
>
> it probably a better idea.  It would be consistent and would come with a
> built-in namespace.

+1

Regards.
-- 
Daniel Dehennin
Récupérer ma clef GPG:
gpg --keyserver pgp.mit.edu --recv-keys 0x6A2540D1

Attachment: pgpqIvtrkFvwj.pgp
Description: PGP signature


Reply to: