[Buildroot] [PATCH 0/4] Sanetize packages version

Arnout Vandecappelle arnout at mind.be
Wed Jun 12 08:51:57 UTC 2019



On 12/06/2019 09:26, Thomas Petazzoni wrote:
> Hello,
> 
> On Wed, 12 Jun 2019 08:42:05 +0200
> Victor Huesca <victor.huesca at bootlin.com> wrote:
> 
>> In particular packages fetched via git cannot be easily sanitized. The
>> implementation behind the git method is to use the <pkg>_VERSION after the
>> rope cloning to checkout the version tag. A workaround could be to add a
>> new variable to the infrastructure that can be set to specify the tag for
>> these cases.
> 
> I guess an example of this is the "at" package, which has:
> 
> AT_VERSION = release/3.1.23
> AT_SITE = https://salsa.debian.org/debian/at.git
> AT_SITE_METHOD = git
> 
> but we would probably want the version to be just "3.1.23", like is
> tracked at https://release-monitoring.org/project/127/.
> 
> So indeed, I see two possible directions here:
> 
>  (1) Keep the <pkg>_VERSION semantic as it is today, and add a separate
>      <pkg>_UPSTREAM_VERSION variable (or some other name) that holds the
>      upstream version. This would give:
> 
>      AT_UPSTREAM_VERSION = 3.1.23
>      AT_VERSION = release/$(AT_UPSTREAM_VERSION)
> 
>      With this, no need to change anything in the package
>      infrastructure, we just need <pkg>_UPSTREAM_VERSION be extracted
>      by support/scripts/pkg-stats, which is can trivially do instead of
>      extracting <pkg>_VERSION.
> 
>      This approach also has the advantage that the name of the tarballs
>      stored on disk doesn't change, which means all the DL_DIR contents
>      + sources.b.o content remain identical.
> 
>      Of course, the package infrastructure defines
>      <pkg>_UPSTREAM_VERSION to <pkg>_VERSION if there's no
>      <pkg>_UPSTREAM_VERSION value defined for a given package.
> 
>  (2) As suggested by Victor, add a separate variable that tells the Git
>      download logic what is the actual tag/version to fetch, i.e:
> 
>     AT_VERSION = 3.1.23
>     AT_GIT_COMMIT = release/$(AT_UPSTREAM_VERSION)

 I'm in favour of this second solution, but call the variable $(PKG)_REVISION.

 Actually, I think _DL_VERSION already covers it. The only thing we have to do
is to make the assignment conditional, i.e. allow pre-assigned _DL_VERSION.

 Alternatively, we introdcue a _REVISION ?= _VERSION and use that for
_DL_VERSION instead of _VERSION.

 Regards,
 Arnout


> Perhaps option (1) is the easiest ? But it has the drawback that
> <pkg>_VERSION doesn't contain just the actual version, but like we do
> today, some possibly semi-random stuff in addition to the version (like
> "release/1.2.3" or "foo-1.2.3).
> 
>> Also, there are a few packages that use the <pkg>_VERSION variable to store
>> more than just the version. For example gap-madam-bin-maxi have a suffix
> 
> I don't see a gap-madam-bin-maxi package in Buildroot. I am missing
> something ?
> 
>> depending on whereas the frame buffer is selected. An other example is lua-
>> coatpersistent which seems to have two backends  and store this in the
>> version variable.
>>
>> A last case I found is the case of Kodi. Kodi's major versions have a
>> codename in addition to the version number (eg. 18.2 "Leia" or 17.3 "Krypton").
>> This codename may or not be consider as an inherent part of the version. I
>> would tend to consider this as part of the version and keep it as a version
>> suffix for all kodi-related packages as it is currently.
> 
> Kodi has two different entries in release-monitoring.org:
> 
>  https://release-monitoring.org/project/5511/, which has only the
>  version, but seems to be outdated
> 
>   https://release-monitoring.org/project/20547/, which has the version
>   + codename, and seems to be updated
> 
> So it looks like we should use the second one, and therefore keep the
> code name ?
> 
> Best regards,
> 
> Thomas
> 



More information about the buildroot mailing list