diff --git a/pmb/aportgen/device.py b/pmb/aportgen/device.py index 3f05cc10..286d10a9 100644 --- a/pmb/aportgen/device.py +++ b/pmb/aportgen/device.py @@ -212,14 +212,17 @@ def generate_deviceinfo(args, pkgname, name, manufacturer, year, arch, def generate_apkbuild(args, pkgname, name, arch, flash_method): # Dependencies - depends = "postmarketos-base linux-" + "-".join(pkgname.split("-")[1:]) + depends = ["postmarketos-base", + "linux-" + "-".join(pkgname.split("-")[1:])] if flash_method in ["fastboot", "heimdall-bootimg"]: - depends += " mkbootimg" + depends.append("mkbootimg") if flash_method == "0xffff": - depends += " uboot-tools" - depends += " mesa-dri-gallium" + depends.append("uboot-tools") + depends.append("mesa-dri-gallium") # Whole APKBUILD + depends.sort() + depends = ("\n" + " " * 12).join(depends) content = f"""\ # Reference: pkgname={pkgname} @@ -230,7 +233,9 @@ def generate_apkbuild(args, pkgname, name, arch, flash_method): license="MIT" arch="{arch}" options="!check !archcheck" - depends="{depends}" + depends=" + {depends} + " makedepends="devicepkg-dev" source="deviceinfo" diff --git a/pmb/aportgen/linux.py b/pmb/aportgen/linux.py index 782ae452..b3de9884 100644 --- a/pmb/aportgen/linux.py +++ b/pmb/aportgen/linux.py @@ -10,7 +10,8 @@ def generate_apkbuild(args, pkgname, deviceinfo, patches): device = "-".join(pkgname.split("-")[1:]) carch = pmb.parse.arch.alpine_to_kernel(deviceinfo["arch"]) - makedepends = "bash bc bison devicepkg-dev flex openssl-dev perl" + makedepends = ["bash", "bc", "bison", "devicepkg-dev", "flex", "openssl-dev", + "perl"] build = """ unset LDFLAGS @@ -27,19 +28,19 @@ def generate_apkbuild(args, pkgname, deviceinfo, patches): soc_vendor = pmb.helpers.cli.ask(args, "SoC vendor", vendors, vendors[-1], complete=vendors) if soc_vendor == "spreadtrum": - makedepends += " dtbtool-sprd" + makedepends.append("dtbtool-sprd") build += """ dtbTool-sprd -p scripts/dtc/ \\ -o "$_outdir/arch/$_carch/boot"/dt.img \\ "$_outdir/arch/$_carch/boot/dts/\"""" elif soc_vendor == "exynos": codename = "-".join(pkgname.split("-")[2:]) - makedepends += " dtbtool-exynos" + makedepends.append("dtbtool-exynos") build += f""" dtbTool-exynos -o "$_outdir/arch/$_carch/boot"/dt.img \\ $(find "$_outdir/arch/$_carch/boot/dts/" -name *{codename}*.dtb)""" else: - makedepends += " dtbtool" + makedepends.append("dtbtool") build += """ dtbTool -p scripts/dtc/ -o "$_outdir/arch/$_carch/boot"/dt.img \\ "$_outdir/arch/$_carch/boot/\"""" @@ -47,6 +48,8 @@ def generate_apkbuild(args, pkgname, deviceinfo, patches): install -Dm644 "$_outdir/arch/$_carch/boot"/dt.img \\ "$pkgdir"/boot/dt.img""" + makedepends.sort() + makedepends = ("\n" + " " * 12).join(makedepends) patches = ("\n" + " " * 12).join(patches) content = f"""\ # Reference: @@ -62,7 +65,9 @@ def generate_apkbuild(args, pkgname, deviceinfo, patches): url="https://kernel.org" license="GPL-2.0-only" options="!strip !check !tracedeps pmb:cross-native" - makedepends="{makedepends}" + makedepends=" + {makedepends} + " # Source _repository="(CHANGEME!)" diff --git a/test/test_aportgen_device_wizard.py b/test/test_aportgen_device_wizard.py index ed1142e5..647804c3 100644 --- a/test/test_aportgen_device_wizard.py +++ b/test/test_aportgen_device_wizard.py @@ -125,9 +125,9 @@ def test_aportgen_device_wizard(args, monkeypatch): deviceinfo, apkbuild, apkbuild_linux = generate(args, monkeypatch, answers) assert apkbuild["pkgname"] == "device-testsuite-testdevice" assert apkbuild["pkgdesc"] == "Testsuite Testdevice" - assert apkbuild["depends"] == ["postmarketos-base", - "linux-testsuite-testdevice", - "mesa-dri-gallium"] + assert apkbuild["depends"] == ["linux-testsuite-testdevice", + "mesa-dri-gallium", + "postmarketos-base"] assert apkbuild_linux["pkgname"] == "linux-testsuite-testdevice" assert apkbuild_linux["pkgdesc"] == "Testsuite Testdevice kernel fork" @@ -162,16 +162,20 @@ def test_aportgen_device_wizard(args, monkeypatch): answers["Flash method"] = "fastboot" answers["Path"] = "" deviceinfo, apkbuild, apkbuild_linux = generate(args, monkeypatch, answers) - assert apkbuild["depends"] == ["postmarketos-base", - "linux-testsuite-testdevice", "mkbootimg", - "mesa-dri-gallium"] + assert apkbuild["depends"] == ["linux-testsuite-testdevice", + "mesa-dri-gallium", + "mkbootimg", + "postmarketos-base"] + assert deviceinfo["flash_method"] == answers["Flash method"] assert deviceinfo["generate_bootimg"] == "true" # 0xffff (legacy uboot initfs) answers["Flash method"] = "0xffff" deviceinfo, apkbuild, apkbuild_linux = generate(args, monkeypatch, answers) - assert apkbuild["depends"] == ["postmarketos-base", - "linux-testsuite-testdevice", "uboot-tools", - "mesa-dri-gallium"] + assert apkbuild["depends"] == ["linux-testsuite-testdevice", + "mesa-dri-gallium", + "postmarketos-base", + "uboot-tools"] + assert deviceinfo["generate_legacy_uboot_initfs"] == "true"