Le 30 déc. 2006 à 17:59, Martin Costabel a écrit :
Michèle Garoche wrote:
Sorry if my question seems to be trivial. I need an answer first for my own understanding, second for correct translation.
I second your request for explanation. I don't understand the formulations either. And what I seem to understand doesn't immediately make sense to me. Info3 has been in fink for quite some time, but the number of packages that currently use it is *zero*, so I suspect no one else understands its purpose either, or it is really superfluous.
After my recent dispute with Max over his claim to have observed a situation that would make Info4 necessary, I tried to understand the status of the InfoN field in fink, but I am still confused. I'll try to explain what I gather from reading the sources and from some experiments, but I am not sure if everything in the following is correct.
I thought that Info2 and then InfoN were originally introduced as an emergency measure, for the case that a new feature was impossible to be introduced without it, but they seem to have gained an attraction of their own now, as a kind of higher-level version numbers for fink features. For the sake of simplicity of the info files, I would prefer if they could be avoided, but there seems to exist also a wish to make them more or less mandatory.
Info2 was introduced exclusively for protecting older versions of fink from crashing in the presence of newer info files (which use the variants system), because otherwise upgrading was impossible in certain situations. It is a no-op, either hiding the package completely (with older fink), or doing nothing (with newer fink); a little like the "Architecture:" field.
Info3 is different: It switches between different existing syntax rules of current fink versions. It will also hide a package that uses Info3 from older fink versions that don't know about Info3, but that doesn't seem to be its main purpose.
I've tried to understand the explanation of Info3 in the packaging manual, but I'm completely at lost with it:
<quote>Can indent nicely in .info files</quote>
Anything to do here (tabs, spaces, etc.) or is it done automatically?
Without Info3, field names like "Package:" have to begin at the beginning of a line, except in SplitOffs where they can be indented. With Info3, you can indent them everywhere. So with Info3, you can have
Package : foo
Version : 1
Revision: 1001
Without Info3, the old RFC-822 continuation-line interpretation kicks in and sees the Version and Revision lines as continuation of the Package line, with disastrous results. I am not sure, however, why one cannot simply drop the RFC-822 stuff now. I don't think there is any package description left that still uses it.
Another difference is that without Info3, the indentation in DescUsage that you see with "fink describe" is the same as the original in the info file. With Info3, leading whitespace is removed according to certain rules. Thus, for example, if you have
DescUsage: <<
Line 1
Line 2
Line 3
Line4
<<
"fink describe foo" will show you without Info3:
Usage Notes:
Line 1
Line 2
.
Line 3
Line4
and with Info3:
Usage Notes:
Line 1
Line 2
.
Line 3
Line4
I guess this can be useful in some situations, for instance when your DescUsage is heavily indented, so that instead of
DescUsage: <<
Some text
describing the package
<<
you can write under Info3:
DescUsage: <<
Some text
describing the package
<<
and you get the same result.
<quote>Can put comments in pkglist fields</quote>
What are pkglist fields?
All fields in an info files? Only fields which lists packages, such as Depends, BuildDepends?
This is the list according to Validation.pm:
'Depends',
'BuildDepends',
'Conflicts',
'BuildConflicts',
'TestDepends',
'TestConflicts',
'Provides',
'Suggests',
'Recommends',
'Enhances',
'Architecture',
The classical way to write these lists is in one line, in which case comments inside the list don't make sense. But one can write them also in several lines using heredoc. With Info3 you can then insert comments into the list that will be ignored (from "#" to end of line).
Thank you very much, Martin. I will integrate those explanations in the French version of the packaging manual. Then, whoever wants to integrate it in the English version...