public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Owen W. Taylor <otaylor@fishsoup.net>
To: git-commits@fedoraproject.org
Subject: [flatpaks/flatpak-runtime] f45: Mark package in the runtime with missing devel packages in the SDK
Date: Fri, 11 Sep 2026 14:40:41 GMT [thread overview]
Message-ID: <178913764193.1.16347284669631304156.flatpaks-flatpak-runtime-27ef6bdc76d5@fedoraproject.org> (raw)
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")
reply other threads:[~2026-09-11 14:40 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178913764193.1.16347284669631304156.flatpaks-flatpak-runtime-27ef6bdc76d5@fedoraproject.org \
--to=otaylor@fishsoup.net \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox