Merge ~fourdollars/pc-enablement/+git/oem-scripts:master into ~oem-solutions-engineers/pc-enablement/+git/oem-scripts:master

Proposed by Shih-Yuan Lee
Status: Merged
Approved by: Shih-Yuan Lee
Approved revision: 1b7fe315ec0ce514f4afa09224f87ec8486fb36f
Merged at revision: 60d9c8914fb5ba6e467f9b5a6f80aa1c09b95c76
Proposed branch: ~fourdollars/pc-enablement/+git/oem-scripts:master
Merge into: ~oem-solutions-engineers/pc-enablement/+git/oem-scripts:master
Diff against target: 216 lines (+100/-20)
2 files modified
debian/tests/oem-meta-packages (+24/-13)
oem-meta-packages (+76/-7)
Reviewer Review Type Date Requested Status
Kai-Chuan Hsieh Approve
Review via email: mp+444013@code.launchpad.net

Description of the change

$ time oem-meta-packages --quiet --dry-run update --kernel linux-generic-hwe-20.04 oem-hw-info/platform-info/somerville/fossa-warcraft-amd.json
...
real 3m40.142s
user 1m22.641s
sys 0m6.140s

$ time oem-meta-packages --use-cache --quiet --dry-run update oem-hw-info/platform-info/somerville/fossa-warcraft-amd.json
...
real 0m18.595s
user 0m8.378s
sys 0m1.332s

$ time oem-meta-packages --use-cache --quiet --dry-run update oem-hw-info/platform-info/stella/jellyfish-aron.json
<WARNING> (oem-stella-aron-meta:aron-jammy-oem) $ git show
commit 447111a81813bae99026e81939f4a64f6a604329
Author: Shih-Yuan Lee (FourDollars) <email address hidden>
Date: Fri Jun 2 22:45:17 2023 +0800

    Update the market name for linux-oem-22.04b.

    Updated by oem-scripts 1.79.

diff --git a/debian/changelog b/debian/changelog
index 615b523..4767da1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+oem-stella-aron-meta (22.04ubuntu4) jammy; urgency=medium
+
+ * Update the market name for linux-oem-22.04b.
+
+ -- Shih-Yuan Lee (FourDollars) <email address hidden> Fri, 02 Jun 2023 22:45:17 +0800
+
 oem-stella-aron-meta (22.04ubuntu3) jammy; urgency=medium

   * Update hp-doc and eula to march23-wks version. (LP: #1996787).
diff --git a/debian/control b/debian/control
index 2e69a69..0ca16a0 100644
--- a/debian/control
+++ b/debian/control
@@ -12,16 +12,16 @@ Architecture: all
 Depends: ${misc:Depends}, ubuntu-oem-keyring, linux-oem-22.04b, oem-stella-meta
 XB-Modaliases: ${modaliases}
 XB-Ubuntu-OEM-Kernel-Flavour: oem
-Description: hardware support for Stella Aron platform
- This is a metapackage for Stella Aron platform.
+Description: hardware support for HP Z2 Tower G9 Workstation Desktop PC
+ This is a metapackage for HP Z2 Tower G9 Workstation Desktop PC.
  It installs packages needed to support this hardware fully.

 Package: oem-stella-factory-aron-meta
 Architecture: all
 Depends: ${misc:Depends}, oem-stella-factory-meta, oem-doc-hp-march23-wks, oem-eula-march23-wks
 Recommends: stella-hp-wallpaper-rik
-Description: hardware support for Stella Aron platform (factory)
- This is a factory metapackage for Stella Aron platform.
+Description: hardware support for HP Z2 Tower G9 Workstation Desktop PC (factory)
+ This is a factory metapackage for HP Z2 Tower G9 Workstation Desktop PC.
  It installs packages needed to support this hardware fully. (factory)

 Package: oem-stella.cmit-aron-meta

real 0m29.240s
user 0m8.929s
sys 0m1.812s

To post a comment you must log in.
Revision history for this message
OEM Taipei Bot (oem-taipei-bot) wrote :

[autopkgtest]
pkg-somerville-meta PASS
pkg-stella-meta PASS
pkg-sutton-meta PASS
bug-bind PASS
get-private-ppa PASS
lp-api PASS
lp-bug PASS
pkg-list PASS
review-merge-proposal PASS
run-autopkgtest PASS
setup-apt-dir PASS
bootstrap-meta PASS
mir-bug PASS
oem-meta-packages FAIL non-zero exit status 1
git-url-insteadof-setting PASS
lp-dl-attm PASS
recovery-from-iso.sh PASS

https://oem-share.canonical.com/partners/lyoncore/share/artifacts/oem-scripts/oem-scripts-1.79-9c39999-in-linux-container-jammy

Revision history for this message
OEM Taipei Bot (oem-taipei-bot) wrote :

[autopkgtest]
pkg-somerville-meta PASS
pkg-stella-meta PASS
pkg-sutton-meta PASS
bug-bind PASS
get-private-ppa PASS
lp-api PASS
lp-bug PASS
pkg-list PASS
review-merge-proposal PASS
run-autopkgtest PASS
setup-apt-dir PASS
bootstrap-meta PASS
mir-bug PASS
oem-meta-packages FAIL non-zero exit status 1
git-url-insteadof-setting PASS
lp-dl-attm PASS
recovery-from-iso.sh PASS

https://oem-share.canonical.com/partners/lyoncore/share/artifacts/oem-scripts/oem-scripts-1.79-0ca2829-in-linux-container-jammy

Revision history for this message
OEM Taipei Bot (oem-taipei-bot) wrote :

[autopkgtest]
pkg-somerville-meta PASS
pkg-stella-meta PASS
pkg-sutton-meta PASS
bug-bind PASS
get-private-ppa PASS
lp-api PASS
lp-bug PASS
pkg-list PASS
review-merge-proposal PASS
run-autopkgtest PASS
setup-apt-dir PASS
bootstrap-meta PASS
mir-bug PASS
oem-meta-packages PASS
git-url-insteadof-setting PASS
lp-dl-attm PASS
recovery-from-iso.sh PASS

https://oem-share.canonical.com/partners/lyoncore/share/artifacts/oem-scripts/oem-scripts-1.79-0d1a0f2-in-linux-container-jammy

Revision history for this message
OEM Taipei Bot (oem-taipei-bot) wrote :

[autopkgtest]
pkg-somerville-meta PASS
pkg-stella-meta PASS
pkg-sutton-meta PASS
bug-bind PASS
get-private-ppa PASS
lp-api PASS
lp-bug PASS
pkg-list PASS
review-merge-proposal PASS
run-autopkgtest PASS
setup-apt-dir PASS
bootstrap-meta PASS
mir-bug PASS
oem-meta-packages FAIL non-zero exit status 1
git-url-insteadof-setting PASS
lp-dl-attm PASS
recovery-from-iso.sh PASS

https://oem-share.canonical.com/partners/lyoncore/share/artifacts/oem-scripts/oem-scripts-1.79-6281c89-in-linux-container-jammy

Revision history for this message
OEM Taipei Bot (oem-taipei-bot) wrote :

[autopkgtest]
pkg-somerville-meta PASS
pkg-stella-meta PASS
pkg-sutton-meta PASS
bug-bind PASS
get-private-ppa PASS
lp-api PASS
lp-bug PASS
pkg-list PASS
review-merge-proposal PASS
run-autopkgtest PASS
setup-apt-dir PASS
bootstrap-meta PASS
mir-bug PASS
oem-meta-packages PASS
git-url-insteadof-setting PASS
lp-dl-attm PASS
recovery-from-iso.sh PASS

https://oem-share.canonical.com/partners/lyoncore/share/artifacts/oem-scripts/oem-scripts-1.79-1b7fe31-in-linux-container-jammy

Revision history for this message
Kai-Chuan Hsieh (kchsieh) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/debian/tests/oem-meta-packages b/debian/tests/oem-meta-packages
index 318da7c..f42eeb3 100644
--- a/debian/tests/oem-meta-packages
+++ b/debian/tests/oem-meta-packages
@@ -9,6 +9,17 @@ RET=0
9oem-meta-packages --quiet list9oem-meta-packages --quiet list
1010
11# collect11# collect
12if ! timeout 10s oem-meta-packages --quiet --series focal --use-cache collect oem-somerville-aipom-adl-meta; then
13 echo "FAIL: Timeout after 10s for 'oem-meta-packages --quiet --series focal --use-cache collect oem-somerville-aipom-adl-meta'."
14 RET=1
15fi
16if [ -f oem-somerville-aipom-adl-meta.json ] && [ "$(jq -r '."oem-somerville-aipom-adl-meta".new_desc' < oem-somerville-aipom-adl-meta.json)" = "Dell OptiPlex 5400 AIO, 7400 AIO" ]; then
17 jq '."oem-somerville-aipom-adl-meta"' < oem-somerville-aipom-adl-meta.json
18else
19 echo "FAIL: oem-somerville-aipom-adl-meta.json is expected to be generated after 'oem-meta-packages --quiet --series focal --use-cache collect oem-somerville-aipom-adl-meta'."
20 RET=1
21fi
22
12cat > fossa-bronn.json <<ENDLINE23cat > fossa-bronn.json <<ENDLINE
13{24{
14 "certification-hardware": [25 "certification-hardware": [
@@ -35,9 +46,9 @@ cat > fossa-bronn.json <<ENDLINE
35 "short_description": "Precision 12345"46 "short_description": "Precision 12345"
36}47}
37ENDLINE48ENDLINE
38oem-meta-packages --series focal --quiet collect fossa-bronn.json -o oem-somerville-bronn-meta.json49oem-meta-packages --series focal --quiet collect fossa-bronn.json -o random.json
39if [ "$(jq -r '."oem-somerville-bronn-meta".new_desc' < oem-somerville-bronn-meta.json)" != "Dell Precision 12345" ]; then50if [ "$(jq -r '."oem-somerville-bronn-meta".new_desc' < random.json)" != "Dell Precision 12345" ]; then
40 echo "FAIL: 'oem-meta-packages --series focal --quiet collect fossa-bronn.json -o oem-somerville-bronn-meta.json' failed."51 echo "FAIL: 'oem-meta-packages --series focal --quiet collect fossa-bronn.json -o random.json' failed."
41 RET=152 RET=1
42fi53fi
4354
@@ -176,17 +187,17 @@ oem-meta-packages create jellyfish-cais.json
176mv oem-sutton-cais-meta jellyfish-cais-meta-2187mv oem-sutton-cais-meta jellyfish-cais-meta-2
177188
178# update189# update
179oem-meta-packages --dry-run --series focal update oem-somerville-tentacool-meta --kernel linux-generic-hwe-20.04190oem-meta-packages --dry-run --use-cache --series focal update oem-somerville-tentacool-meta --kernel linux-generic-hwe-20.04
180oem-meta-packages --dry-run --series focal update oem-stella.cmit-camerupt-meta --kernel linux-generic-hwe-20.04191oem-meta-packages --dry-run --use-cache --series focal update oem-stella.cmit-camerupt-meta --kernel linux-generic-hwe-20.04
181oem-meta-packages --dry-run --series jammy update oem-somerville-tentacool-meta --kernel linux-generic-hwe-22.04192oem-meta-packages --dry-run --use-cache --series jammy update oem-somerville-tentacool-meta --kernel linux-generic-hwe-22.04
182oem-meta-packages --dry-run --series jammy update oem-stella-aron-meta --kernel linux-generic-hwe-22.04193oem-meta-packages --dry-run --use-cache --series jammy update oem-stella-aron-meta --kernel linux-generic-hwe-22.04
183194
184# staging-copy195# staging-copy
185oem-meta-packages --dry-run --series focal staging-copy oem-somerville-kingdra-adl-meta 2>&1 | grep -e cesg:somerville-fossa-kingdra-adl-focal-staging -e somerville-fossa-kingdra-adl-focal-devel196oem-meta-packages --dry-run --use-cache --series focal staging-copy oem-somerville-kingdra-adl-meta 2>&1 | grep -e cesg:somerville-fossa-kingdra-adl-focal-staging -e somerville-fossa-kingdra-adl-focal-devel
186oem-meta-packages --dry-run --series focal staging-copy oem-somerville-charmander-meta 2>&1 | grep -e cesg:somerville-fossa-charmander-focal-staging -e cesg:somerville-fossa-charmander-focal-devel197oem-meta-packages --dry-run --use-cache --series focal staging-copy oem-somerville-charmander-meta 2>&1 | grep -e cesg:somerville-fossa-charmander-focal-staging -e cesg:somerville-fossa-charmander-focal-devel
187oem-meta-packages --dry-run --series focal staging-copy oem-stella.cmit-aerodactyl-meta 2>&1 | grep -e cesg:stella-cmit-ouagadougou-focal-staging -e stella-cmit-ouagadougou-focal-devel198oem-meta-packages --dry-run --use-cache --series focal staging-copy oem-stella.cmit-aerodactyl-meta 2>&1 | grep -e cesg:stella-cmit-ouagadougou-focal-staging -e stella-cmit-ouagadougou-focal-devel
188oem-meta-packages --dry-run --series focal staging-copy oem-sutton.newell-aaden-meta 2>&1 | grep -e cesg:sutton-newell-focal-staging -e cesg:sutton-newell-focal-devel199oem-meta-packages --dry-run --use-cache --series focal staging-copy oem-sutton.newell-aaden-meta 2>&1 | grep -e cesg:sutton-newell-focal-staging -e cesg:sutton-newell-focal-devel
189oem-meta-packages --dry-run --series jammy staging-copy oem-somerville-tentacool-meta 2>&1 | grep -e cesg:somerville-jellyfish-tentacool-jammy-devel -e cesg:somerville-jellyfish-tentacool-jammy-staging200oem-meta-packages --dry-run --use-cache --series jammy staging-copy oem-somerville-tentacool-meta 2>&1 | grep -e cesg:somerville-jellyfish-tentacool-jammy-devel -e cesg:somerville-jellyfish-tentacool-jammy-staging
190oem-meta-packages --dry-run --series jammy staging-copy oem-sutton-balesego-meta 2>&1 | grep -e cesg:sutton-jammy-devel -e cesg:sutton-jammy-staging201oem-meta-packages --dry-run --use-cache --series jammy staging-copy oem-sutton-balesego-meta 2>&1 | grep -e cesg:sutton-jammy-devel -e cesg:sutton-jammy-staging
191202
192exit "$RET"203exit "$RET"
diff --git a/oem-meta-packages b/oem-meta-packages
index 4fe104e..1e826b3 100755
--- a/oem-meta-packages
+++ b/oem-meta-packages
@@ -150,6 +150,11 @@ parser.add_argument("--yes", help="Say yes for all prompts.", action="store_true
150parser.add_argument("--apt-dir", type=str, help="specify the dir for apt")150parser.add_argument("--apt-dir", type=str, help="specify the dir for apt")
151series = lsb_release.get_os_release()["CODENAME"]151series = lsb_release.get_os_release()["CODENAME"]
152parser.add_argument(152parser.add_argument(
153 "--use-cache",
154 help=f"Use cache from https://people.canonical.com/~oem-enablement/oem-meta-packages/oem-{{somerville,stella,sutton}}-*-meta-{series}.json to speed up the process. (experimental)",
155 action="store_true",
156)
157parser.add_argument(
153 "--series",158 "--series",
154 help=f"Specify the series codename, such as focal or jammy. ('{series}' by default)",159 help=f"Specify the series codename, such as focal or jammy. ('{series}' by default)",
155)160)
@@ -257,7 +262,7 @@ create.add_argument(
257262
258update = subparsers.add_parser(263update = subparsers.add_parser(
259 "update",264 "update",
260 help="[-h] oem-qemu-meta",265 help="[-h] oem-qemu-meta --kernel KERNEL",
261 formatter_class=argparse.RawDescriptionHelpFormatter,266 formatter_class=argparse.RawDescriptionHelpFormatter,
262 epilog="""267 epilog="""
263For example,268For example,
@@ -273,7 +278,6 @@ update.add_argument(
273update.add_argument(278update.add_argument(
274 "--kernel",279 "--kernel",
275 choices=ALLOWED_KERNEL_META_LIST,280 choices=ALLOWED_KERNEL_META_LIST,
276 default="linux-generic-hwe-20.04",
277 help="Specify the kernel meta to update.",281 help="Specify the kernel meta to update.",
278)282)
279update.add_argument(283update.add_argument(
@@ -1634,6 +1638,8 @@ def collect_pkg_info(
1634 print(f"{data} is not supported.")1638 print(f"{data} is not supported.")
1635 exit(1)1639 exit(1)
16361640
1641 meta_name = data
1642
1637 if "." in result.group(1):1643 if "." in result.group(1):
1638 project, group = result.group(1).split(".")1644 project, group = result.group(1).split(".")
1639 else:1645 else:
@@ -1672,6 +1678,10 @@ def collect_pkg_info(
1672 project = data.get("project")1678 project = data.get("project")
1673 codename = data.get("platform")1679 codename = data.get("platform")
1674 group = data.get("group")1680 group = data.get("group")
1681 if data.get("series") == "focal" and project != "somerville":
1682 meta_name = f"oem-{project}.{group}-{codename}-meta"
1683 else:
1684 meta_name = f"oem-{project}-{codename}-meta"
1675 if project == "somerville":1685 if project == "somerville":
1676 customer = "Dell"1686 customer = "Dell"
1677 tag = animal + "-" + data.get("platform")1687 tag = animal + "-" + data.get("platform")
@@ -1699,6 +1709,58 @@ def collect_pkg_info(
1699 if "productnames" in data:1709 if "productnames" in data:
1700 json_data["ProductNames"] = data["productnames"]1710 json_data["ProductNames"] = data["productnames"]
17011711
1712 if args.use_cache:
1713 json_url = f"https://people.canonical.com/~oem-enablement/oem-meta-packages/{meta_name}-{series}.json"
1714 req = requests.get(json_url)
1715 if req.status_code != 200:
1716 error("Fetching {json_url} failed.")
1717 exit(1)
1718 payload = json.loads(req.text)
1719 pkgInfo = dict()
1720 pkgInfo[meta_name] = PkgInfo(
1721 bootstrap=payload[meta_name]["bootstrap"],
1722 oem=payload[meta_name]["oem"],
1723 old_desc=payload[meta_name]["old_desc"],
1724 new_desc=payload[meta_name]["new_desc"],
1725 product_names=payload[meta_name]["product_names"],
1726 )
1727
1728 if type(data) is not str and data.get("short_description"):
1729 market_name = data.get("short_description")
1730 elif payload[meta_name]["bootstrap"]["git"]["market_name"]:
1731 market_name = payload[meta_name]["bootstrap"]["git"]["market_name"]
1732 elif payload[meta_name]["oem"]["git"]["market_name"]:
1733 market_name = payload[meta_name]["oem"]["git"]["market_name"]
1734 else:
1735 market_name = ""
1736
1737 if project == "somerville":
1738 branding = "Dell"
1739 elif project == "stella":
1740 branding = "HP"
1741 elif project == "sutton":
1742 branding = "Lenovo"
1743 else:
1744 error("f{project} is not supported yet.")
1745 exit(1)
1746
1747 if not pkgInfo[meta_name].new_desc and market_name:
1748 if branding in market_name:
1749 pkgInfo[meta_name].new_desc = market_name
1750 else:
1751 pkgInfo[meta_name].new_desc = f"{branding} {market_name}"
1752 if group:
1753 pkgInfo[
1754 meta_name
1755 ].old_desc = (
1756 f"{project.title()} {group.title()} {codename.title()} platform"
1757 )
1758 else:
1759 pkgInfo[
1760 meta_name
1761 ].old_desc = f"{project.title()} {codename.title()} platform"
1762 return pkgInfo
1763
1702 debug(json.dumps(json_data, indent=4, sort_keys=True))1764 debug(json.dumps(json_data, indent=4, sort_keys=True))
17031765
1704 somerville = dict()1766 somerville = dict()
@@ -1893,6 +1955,9 @@ def process_update_task(pkgInfo) -> None:
1893def deal_with_meta_git(pkg_name: str, pkg_info: PkgInfo, bootstrap: bool) -> bool:1955def deal_with_meta_git(pkg_name: str, pkg_info: PkgInfo, bootstrap: bool) -> bool:
1894 result = meta_pattern.match(pkg_name)1956 result = meta_pattern.match(pkg_name)
18951957
1958 if not args.kernel:
1959 args.kernel = pkg_info.oem.git.kernel_meta
1960
1896 if not result:1961 if not result:
1897 return1962 return
18981963
@@ -2206,9 +2271,13 @@ elif args.subcommand == "update":
2206 oem_scripts_config = ConfigParser()2271 oem_scripts_config = ConfigParser()
2207 oem_scripts_config.read(oem_scripts_config_ini)2272 oem_scripts_config.read(oem_scripts_config_ini)
2208 config = oem_scripts_config["private"]2273 config = oem_scripts_config["private"]
2209 r = requests.get(2274 if args.use_cache:
2210 config["archive"] + "/dists/", auth=(config["username"], config["password"])2275 text = None
2211 )2276 else:
2277 r = requests.get(
2278 config["archive"] + "/dists/", auth=(config["username"], config["password"])
2279 )
2280 text = r.text
2212 if os.path.exists(args.meta):2281 if os.path.exists(args.meta):
2213 with open(args.meta) as data:2282 with open(args.meta) as data:
2214 meta_json = json.load(data)2283 meta_json = json.load(data)
@@ -2220,11 +2289,11 @@ elif args.subcommand == "update":
2220 series = meta_json["series"]2289 series = meta_json["series"]
2221 animal = get_animal(series)2290 animal = get_animal(series)
2222 pkgInfo = collect_pkg_info(2291 pkgInfo = collect_pkg_info(
2223 meta_json, check_private=True, index=r.text, config=config2292 meta_json, check_private=True, index=text, config=config
2224 )2293 )
2225 else:2294 else:
2226 pkgInfo = collect_pkg_info(2295 pkgInfo = collect_pkg_info(
2227 args.meta, check_private=True, index=r.text, config=config2296 args.meta, check_private=True, index=text, config=config
2228 )2297 )
2229 process_update_task(pkgInfo)2298 process_update_task(pkgInfo)
2230elif args.subcommand == "collect":2299elif args.subcommand == "collect":

Subscribers

People subscribed via source and target branches