summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/distrodata.bbclass26
-rw-r--r--meta/lib/oe/recipeutils.py44
2 files changed, 26 insertions, 44 deletions
diff --git a/meta/classes/distrodata.bbclass b/meta/classes/distrodata.bbclass
index c85f7b3474..b0f4ecea09 100644
--- a/meta/classes/distrodata.bbclass
+++ b/meta/classes/distrodata.bbclass
@@ -272,24 +272,15 @@ python do_checkpkg() {
272 if upstream_check_unreliable == "1": 272 if upstream_check_unreliable == "1":
273 return "N/A", "CHECK_IS_UNRELIABLE" 273 return "N/A", "CHECK_IS_UNRELIABLE"
274 274
275 try: 275 uv = oe.recipeutils.get_recipe_upstream_version(localdata)
276 uv = oe.recipeutils.get_recipe_upstream_version(localdata) 276 pupver = uv['version'] if uv['version'] else "N/A"
277 pupver = uv['version'] if uv['version'] else "N/A" 277 pversion = uv['current_version']
278 except Exception as e: 278 revision = uv['revision'] if uv['revision'] else "N/A"
279 pupver = "N/A"
280 279
281 if pupver == "N/A": 280 if pupver == "N/A":
282 pstatus = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN" 281 pstatus = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN"
283 else: 282 else:
284 src_uri = (localdata.getVar('SRC_URI') or '').split() 283 cmp = vercmp_string(pversion, pupver)
285 if src_uri:
286 uri_type, _, _, _, _, _ = decodeurl(src_uri[0])
287 else:
288 uri_type = "none"
289 pv, _, _ = oe.recipeutils.get_recipe_pv_without_srcpv(pversion, uri_type)
290 upv, _, _ = oe.recipeutils.get_recipe_pv_without_srcpv(pupver, uri_type)
291
292 cmp = vercmp_string(pv, upv)
293 if cmp == -1: 284 if cmp == -1:
294 pstatus = "UPDATE" if not upstream_version_unknown else "KNOWN_BROKEN" 285 pstatus = "UPDATE" if not upstream_version_unknown else "KNOWN_BROKEN"
295 elif cmp == 0: 286 elif cmp == 0:
@@ -297,7 +288,7 @@ python do_checkpkg() {
297 else: 288 else:
298 pstatus = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN" 289 pstatus = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN"
299 290
300 return pupver, pstatus 291 return pversion, pupver, pstatus, revision
301 292
302 293
303 """initialize log files.""" 294 """initialize log files."""
@@ -334,7 +325,6 @@ python do_checkpkg() {
334 325
335 pdesc = localdata.getVar('DESCRIPTION') 326 pdesc = localdata.getVar('DESCRIPTION')
336 pgrp = localdata.getVar('SECTION') 327 pgrp = localdata.getVar('SECTION')
337 pversion = localdata.getVar('PV')
338 plicense = localdata.getVar('LICENSE') 328 plicense = localdata.getVar('LICENSE')
339 psection = localdata.getVar('SECTION') 329 psection = localdata.getVar('SECTION')
340 phome = localdata.getVar('HOMEPAGE') 330 phome = localdata.getVar('HOMEPAGE')
@@ -345,7 +335,7 @@ python do_checkpkg() {
345 psrcuri = localdata.getVar('SRC_URI') 335 psrcuri = localdata.getVar('SRC_URI')
346 maintainer = localdata.getVar('RECIPE_MAINTAINER') 336 maintainer = localdata.getVar('RECIPE_MAINTAINER')
347 337
348 pupver, pstatus = get_upstream_version_and_status() 338 pversion, pupver, pstatus, prevision = get_upstream_version_and_status()
349 339
350 if psrcuri: 340 if psrcuri:
351 psrcuri = psrcuri.split()[0] 341 psrcuri = psrcuri.split()[0]
@@ -358,7 +348,7 @@ python do_checkpkg() {
358 with open(logfile, "a") as f: 348 with open(logfile, "a") as f:
359 writer = csv.writer(f, delimiter='\t') 349 writer = csv.writer(f, delimiter='\t')
360 writer.writerow([pname, pversion, pupver, plicense, psection, phome, 350 writer.writerow([pname, pversion, pupver, plicense, psection, phome,
361 prelease, pdepends, pbugtracker, ppe, pdesc, pstatus, pupver, 351 prelease, pdepends, pbugtracker, ppe, pdesc, pstatus, prevision,
362 psrcuri, maintainer, no_upgr_reason]) 352 psrcuri, maintainer, no_upgr_reason])
363 f.close() 353 f.close()
364 bb.utils.unlockfile(lf) 354 bb.utils.unlockfile(lf)
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py
index a1e191afc7..4e0859e6d9 100644
--- a/meta/lib/oe/recipeutils.py
+++ b/meta/lib/oe/recipeutils.py
@@ -900,25 +900,25 @@ def get_recipe_upstream_version(rd):
900 FetchError when don't have network access or upstream site don't response. 900 FetchError when don't have network access or upstream site don't response.
901 NoMethodError when uri latest_versionstring method isn't implemented. 901 NoMethodError when uri latest_versionstring method isn't implemented.
902 902
903 Returns a dictonary with version, type and datetime. 903 Returns a dictonary with version, repository revision, current_version, type and datetime.
904 Type can be A for Automatic, M for Manual and U for Unknown. 904 Type can be A for Automatic, M for Manual and U for Unknown.
905 """ 905 """
906 from bb.fetch2 import decodeurl 906 from bb.fetch2 import decodeurl
907 from datetime import datetime 907 from datetime import datetime
908 908
909 ru = {} 909 ru = {}
910 ru['current_version'] = rd.getVar('PV')
910 ru['version'] = '' 911 ru['version'] = ''
911 ru['type'] = 'U' 912 ru['type'] = 'U'
912 ru['datetime'] = '' 913 ru['datetime'] = ''
913 914 ru['revision'] = ''
914 pv = rd.getVar('PV')
915 915
916 # XXX: If don't have SRC_URI means that don't have upstream sources so 916 # XXX: If don't have SRC_URI means that don't have upstream sources so
917 # returns the current recipe version, so that upstream version check 917 # returns the current recipe version, so that upstream version check
918 # declares a match. 918 # declares a match.
919 src_uris = rd.getVar('SRC_URI') 919 src_uris = rd.getVar('SRC_URI')
920 if not src_uris: 920 if not src_uris:
921 ru['version'] = pv 921 ru['version'] = ru['current_version']
922 ru['type'] = 'M' 922 ru['type'] = 'M'
923 ru['datetime'] = datetime.now() 923 ru['datetime'] = datetime.now()
924 return ru 924 return ru
@@ -927,6 +927,9 @@ def get_recipe_upstream_version(rd):
927 src_uri = src_uris.split()[0] 927 src_uri = src_uris.split()[0]
928 uri_type, _, _, _, _, _ = decodeurl(src_uri) 928 uri_type, _, _, _, _, _ = decodeurl(src_uri)
929 929
930 (pv, pfx, sfx) = get_recipe_pv_without_srcpv(rd.getVar('PV'), uri_type)
931 ru['current_version'] = pv
932
930 manual_upstream_version = rd.getVar("RECIPE_UPSTREAM_VERSION") 933 manual_upstream_version = rd.getVar("RECIPE_UPSTREAM_VERSION")
931 if manual_upstream_version: 934 if manual_upstream_version:
932 # manual tracking of upstream version. 935 # manual tracking of upstream version.
@@ -947,33 +950,22 @@ def get_recipe_upstream_version(rd):
947 ru['datetime'] = datetime.now() 950 ru['datetime'] = datetime.now()
948 else: 951 else:
949 ud = bb.fetch2.FetchData(src_uri, rd) 952 ud = bb.fetch2.FetchData(src_uri, rd)
950 pupver = ud.method.latest_versionstring(ud, rd) 953 if rd.getVar("UPSTREAM_CHECK_COMMITS") == "1":
951 (upversion, revision) = pupver 954 revision = ud.method.latest_revision(ud, rd, 'default')
952 955 upversion = pv
953 # format git version version+gitAUTOINC+HASH 956 if revision != rd.getVar("SRCREV"):
954 if uri_type == 'git': 957 upversion = upversion + "-new-commits-available"
955 (pv, pfx, sfx) = get_recipe_pv_without_srcpv(pv, uri_type) 958 else:
956 959 pupver = ud.method.latest_versionstring(ud, rd)
957 # if contains revision but not upversion use current pv 960 (upversion, revision) = pupver
958 if upversion == '' and revision:
959 upversion = pv
960
961 if upversion:
962 tmp = upversion
963 upversion = ''
964
965 if pfx:
966 upversion = pfx + tmp
967 else:
968 upversion = tmp
969
970 if sfx:
971 upversion = upversion + sfx + revision[:10]
972 961
973 if upversion: 962 if upversion:
974 ru['version'] = upversion 963 ru['version'] = upversion
975 ru['type'] = 'A' 964 ru['type'] = 'A'
976 965
966 if revision:
967 ru['revision'] = revision
968
977 ru['datetime'] = datetime.now() 969 ru['datetime'] = datetime.now()
978 970
979 return ru 971 return ru