fossology icon indicating copy to clipboard operation
fossology copied to clipboard

Docker: empty or "uknown" values for VERSION in /usr/local/etc/fossology/VERSION

Open mosesdd opened this issue 2 years ago • 2 comments

Description

The version information is empty or "unknown" in the Docker image at /usr/local/etc/fossology/VERSION. This leads to problems with the migration scripts when upgrade from e.g. 4.2.0 to 4.3.0 as the "Release" value in sysconfig table in the database is empty too:

Migrate data from 2.1 to 2.2 in /usr/local/lib/fossology Rename license in /usr/local/lib/fossology Missing column clearing_decision.clearing_pk, you should update to version 2.6.2 before migration

How to reproduce

$ docker run -t fossology/fossology:4.3.0 cat /usr/local/etc/fossology/VERSION

Versions

4.2.0, 4.2.1, 4.3.0

Logs

$ docker run -t fossology/fossology:4.3.0 cat /usr/local/etc/fossology/VERSION

...

[BUILD] VERSION="" BRANCH="" COMMIT_HASH= BUILD_DATE=2023/06/28 06:52 +00:00 COMMIT_DATE=

$ docker run -t fossology/fossology:4.2.1 cat /usr/local/etc/fossology/VERSION

...

[BUILD] VERSION="unknown" BRANCH="unknown" COMMIT_HASH=unknown BUILD_DATE=2022/11/15 10:21 +00:00 COMMIT_DATE=unknown

--

$ docker run -t fossology/fossology:4.2.0 cat /usr/local/etc/fossology/VERSION

...

[BUILD] VERSION="unknown" BRANCH="unknown" COMMIT_HASH=unknown BUILD_DATE=2022/11/11 12:14 +00:00 COMMIT_DATE=unknown

DB:

fossology=# select * FROM sysconfig WHERE variablename = 'Release'; sysconfig_pk | variablename | conf_value | ui_label | vartype | group_name | group_order | description | validation_function | option_value --------------+--------------+------------+----------+---------+------------+-------------+-------------+---------------------+-------------- 76 | Release | | Release | 2 | Release | | | | (1 row)

mosesdd avatar Aug 09 '23 09:08 mosesdd

Workaround to upgrade from 4.2.0 to 4.3.0:

UPDATE sysconfig SET conf_value = '4.2.0' WHERE variablename = 'Release';

mosesdd avatar Aug 09 '23 12:08 mosesdd

Hi @mosesdd,

The current CMake build system fetches the version using git describe --tags (please refer FoUtilities.cmake). The version is then specified in the VERSION file at /usr/local/etc/fossology. It appears that no version tags were set during releases. To address this, you can manually set the version using git tag 4.4.0 (for example), and scripts will recognize it.

I tested the same and here are the results

image version at the header is no longer empty

[BUILD]
VERSION="4.4.0"
BRANCH="master"
COMMIT_HASH=8286d8
BUILD_DATE=2024/02/24 22:55 +05:30
COMMIT_DATE=2024/01/29 11:32 +05:30

version is restored in VERSION file at /usr/local/etc/fossology

Tagging maintainers for release tag issue @shaheemazmalmmd @GMishx

dvjsharma avatar Feb 24 '24 17:02 dvjsharma