public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [flatpaks/flatpak-runtime] f45: Mark package in the runtime with missing devel packages in the SDK
@ 2026-09-11 14:40 Owen W. Taylor
0 siblings, 0 replies; only message in thread
From: Owen W. Taylor @ 2026-09-11 14:40 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : flatpaks/flatpak-runtime
Branch : f45
Commit : 27ef6bdc76d554eadb3bce68e2b2a296561d248b
Author : Owen W. Taylor <otaylor@fishsoup.net>
Date : 2020-03-20T21:51:58+01:00
Stats : +97/-11 in 4 file(s)
URL : https://src.fedoraproject.org/flatpaks/flatpak-runtime/c/27ef6bdc76d554eadb3bce68e2b2a296561d248b?branch=f45
Log:
Mark package in the runtime with missing devel packages in the SDK
---
diff --git a/reports/report.css b/reports/report.css
index 5f6f99a..80fe6a7 100644
--- a/reports/report.css
+++ b/reports/report.css
@@ -108,7 +108,12 @@ td.root {
padding: 0px;
}
td.extra {
- background: #8888bb;
+ background: repeating-linear-gradient(-45deg, #999, #999 3px, #ccc 3px, #ccc 6px);
+ border: 1px solid #666666;
+ padding: 0px;
+}
+td.devel-missing {
+ background: repeating-linear-gradient(90deg, #999, #999 3px, #ccc 3px, #ccc 6px);
border: 1px solid #666666;
padding: 0px;
}
@@ -142,7 +147,7 @@ tr.waived {
color: #006600;
}
tr.extra {
- color: #000066;
+ color: #660066;
}
.hidden {
display: none;
diff --git a/runtime-template.html b/runtime-template.html
index 0447eed..e7c990d 100644
--- a/runtime-template.html
+++ b/runtime-template.html
@@ -38,6 +38,7 @@
<tr><td class="files"></td><td> - Included because of files in runtime, also depended upon</td></tr>
<tr><td class="dep"></td><td> - Included because of dependencies</td></tr>
<tr><td class="extra"></td><td> - Listed as an extra package in package-notes.txt</td></tr>
+ <tr><td class="devel-missing"></td><td> - Pulled in as a dependency, no devel package in SDK</td></tr>
</table>
<div class="note">Mouse over shaded squares for details.</div>
</div>
diff --git a/tools/generate-runtime-report.py b/tools/generate-runtime-report.py
index 53df72c..428067e 100755
--- a/tools/generate-runtime-report.py
+++ b/tools/generate-runtime-report.py
@@ -7,6 +7,7 @@ import os
import re
import subprocess
import sys
+import util
def start(msg):
print("{}: \033[90m{} ... \033[39m".format(os.path.basename(sys.argv[0]), msg), file=sys.stderr, end="")
@@ -25,6 +26,20 @@ _nvr_to_name_re = re.compile('^(.*)-[^-]*-[^-]*')
def nvr_to_name(nvr):
return _nvr_to_name_re.match(nvr).group(1)
+def make_devel_packages(repo_info):
+ devel_packages = {}
+
+ start("Making devel package map")
+ def cb(name, srpm):
+ if name.endswith('-devel'):
+ srpm_name = srpm.rsplit('-', 2)[0]
+ devel_packages[srpm_name] = name
+ done()
+
+ util.foreach_package(repo_info, cb)
+
+ return devel_packages
+
class Package(object):
def __init__(self, name):
self.name = name
@@ -53,17 +68,22 @@ class Package(object):
@property
def klass(self):
if self.flag == 'F':
- return "flagged"
- elif self.flag == 'F?':
- return "questionable"
- elif self.flag == 'FD':
- return "flagged-dep"
+ klass = "flagged"
+ elif self. flag == 'F?':
+ klass = "questionable"
+ elif self. flag == 'FD':
+ klass = "flagged-dep"
elif self.flag == 'W':
- return "waived"
+ klass = "waived"
elif self.flag is not None and self.flag.startswith('E'):
- return "extra"
- elif self.gnome_platform and not self.live:
- return "questionable"
+ klass = "extra"
+ else:
+ klass = ""
+
+ if self.source_package.devel_missing:
+ klass += ' devel-missing'
+
+ return klass
@property
def modules(self):
@@ -201,6 +221,14 @@ class SourcePackage(object):
else:
return ""
+ @property
+ def devel_missing(self):
+ devel = devel_packages.get(self.name)
+ if devel is not None:
+ return devel not in packages
+ else:
+ return False
+
class Letter(object):
def __init__(self, letter):
self.letter = letter
@@ -306,6 +334,10 @@ def read_package_notes():
yield name, note, flag
+devel_packages = util.get_repo_cacheable('devel-packages', make_devel_packages)
+# Not gdk-pixbuf2-xlib-devel
+devel_packages['gdk-pixbuf2'] = 'gdk-pixbuf2-devel'
+
add_packages('out/freedesktop-Platform.packages', 'freedesktop_platform', resolve_deps=True)
add_packages('out/freedesktop-Sdk.packages', 'freedesktop_sdk', resolve_deps=True)
add_packages('out/gnome-Platform.packages', 'gnome_platform', resolve_deps=True)
diff --git a/tools/util.py b/tools/util.py
index 324055e..91df779 100644
--- a/tools/util.py
+++ b/tools/util.py
@@ -116,6 +116,54 @@ def foreach_file(repo_info, cb):
done()
+class PackageMapHandler(xml.sax.handler.ContentHandler):
+ def __init__(self, cb):
+ self.cb = cb
+ self.name = None
+ self.sourcerpm = None
+ self.chars = None
+
+ def startElement(self, name, attrs):
+ if name == 'package':
+ pass
+ elif name in ('name', 'rpm:sourcerpm'):
+ self.chars = ''
+
+ def endElement(self, name):
+ if name == 'package':
+ self.cb(self.name, self.sourcerpm)
+ self.name = None
+ self.sourcerpm = None
+ elif name == 'name':
+ self.name = self.chars
+ self.chars = None
+ elif name == 'rpm:sourcerpm':
+ self.sourcerpm = self.chars
+ self.chars = None
+
+ def characters(self, content):
+ if self.chars is not None:
+ self.chars += content
+
+def foreach_package(repo_info, cb):
+ for repo in REPOS:
+ start("Scanning files for {}".format(repo))
+ repo_dir, repomd_contents = repo_info[repo]
+ root = ET.fromstring(repomd_contents)
+
+ ns = {'repo': 'http://linux.duke.edu/metadata/repo'}
+ filelists_location = root.find("./repo:data[@type='primary']/repo:location", ns).attrib['href']
+ filelists_path = os.path.join(repo_dir, filelists_location)
+ if os.path.commonprefix([filelists_path, repo_dir]) != repo_dir:
+ done()
+ error("{}: filelists directory is outside of repository".format(repo_dir))
+
+ handler = PackageMapHandler(cb)
+ with gzip.open(filelists_path, 'rb') as f:
+ xml.sax.parse(f, handler)
+
+ done()
+
def get_repo_cacheable(name, generate):
hash_text = ''
repos_dir = os.path.join(XDG_CACHE_HOME, "fedmod/repos")
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-11 14:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-11 14:40 [flatpaks/flatpak-runtime] f45: Mark package in the runtime with missing devel packages in the SDK Owen W. Taylor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox