From f1ad7eabadb0aefb4a263b7a1b97af6ca6f2bed0 Mon Sep 17 00:00:00 2001 From: Joshua Murphy Date: Tue, 30 Dec 2025 15:05:49 -0500 Subject: [PATCH] main/postmarketos-usb-moded: add support for openrc Part-of: --- main/postmarketos-usb-moded/APKBUILD | 27 +++++++++++++++++-- ...-etc-init.d-usb-moded-developer-mode.initd | 9 +++++++ ...-etc-init.d-usb-moded-tethering-mode.initd | 9 +++++++ ...-moded-dyn-modes-developer_mode_openrc.ini | 12 +++++++++ ...sb-moded-dyn-modes-mtp_ffs_mode_openrc.ini | 11 ++++++++ ...-moded-dyn-modes-tethering_mode_openrc.ini | 12 +++++++++ temp/usb-moded/APKBUILD | 6 ++--- temp/usb-moded/usb-moded.confd | 1 + temp/usb-moded/usb-moded.initd | 10 +++++++ 9 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 main/postmarketos-usb-moded/rootfs-etc-init.d-usb-moded-developer-mode.initd create mode 100644 main/postmarketos-usb-moded/rootfs-etc-init.d-usb-moded-tethering-mode.initd create mode 100644 main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-developer_mode_openrc.ini create mode 100644 main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-mtp_ffs_mode_openrc.ini create mode 100644 main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-tethering_mode_openrc.ini diff --git a/main/postmarketos-usb-moded/APKBUILD b/main/postmarketos-usb-moded/APKBUILD index b1feceaf8..c9ad413df 100644 --- a/main/postmarketos-usb-moded/APKBUILD +++ b/main/postmarketos-usb-moded/APKBUILD @@ -1,6 +1,6 @@ maintainer="Clayton Craft " pkgname=postmarketos-usb-moded -pkgver=2 +pkgver=3 pkgrel=0 pkgdesc="Meta package for configuring usb-moded on postmarketOS" url="https://postmarketos.org" @@ -14,12 +14,16 @@ depends=" subpackages=" $pkgname-default-profile-charging:charging_default $pkgname-default-profile-developer:developer_default + $pkgname-openrc $pkgname-systemd " _pmb_select="$pkgname-default-profile" _source644=" etc/usb-moded/configfs.ini + etc/usb-moded/dyn-modes/developer_mode_openrc.ini + etc/usb-moded/dyn-modes/tethering_mode_openrc.ini + etc/usb-moded/dyn-modes/mtp_ffs_mode_openrc.ini etc/usb-moded/dyn-modes/developer_mode_systemd.ini etc/usb-moded/dyn-modes/tethering_mode_systemd.ini etc/usb-moded/dyn-modes/mtp_ffs_mode_systemd.ini @@ -29,6 +33,8 @@ _source644=" usr/lib/systemd/system/usb-moded.service.d/override.conf " _source755=" + etc/init.d/usb-moded-developer-mode.initd + etc/init.d/usb-moded-tethering-mode.initd usr/bin/usb-moded-developer-mode usr/bin/usb-moded-tethering-mode usr/lib/systemd/system-generators/umtprd-config-generator @@ -60,7 +66,7 @@ package() { install -Dm600 "$srcdir/$(flatpath "$i")" "$pkgdir/$i" done for i in $_source755; do - install -Dm755 "$srcdir/$(flatpath "$i")" "$pkgdir/$i" + install -Dm755 "$srcdir/$(flatpath "$i")" "$pkgdir/${i%.initd}" done } @@ -89,8 +95,23 @@ developer_default() { EOF } +openrc() { + default_openrc + + amove etc/usb-moded/dyn-modes/*openrc.ini +} + +systemd() { + default_systemd + + amove etc/usb-moded/dyn-modes/*systemd.ini +} + sha512sums=" 231c1cfb991bb4d9f9807bb81e970bc2f63b7ea6e9bb06cf06a698af69b4a9f82f015252ec4c802ad0f8b58456d624f07e62902f04207dc5bac76cc785c296a7 rootfs-etc-usb-moded-configfs.ini +af6dd318268c9765d4b368b390cb8eca50142d98eeb16cf73b45bdbf43a4cf1598ca9995dcb72e5e2132141cdc0be0f86860c9f4e3856c77a9add9f6131084f3 rootfs-etc-usb-moded-dyn-modes-developer_mode_openrc.ini +7e09c8f5208051a79aa95a377ae4a0dd4381be2d05e3c834d1b2dfcbccbda55248b1f21676ac650916de755b1248cf8c89af03989e4dff0cd52f8a5d000952c6 rootfs-etc-usb-moded-dyn-modes-tethering_mode_openrc.ini +1efbc7621e2423d9a69505d9c23d136e17314d955dd5a1016d49acafe3b02ce42457fae2e472b374b8b950dea076c017a9c6884cbcd57284e6d3b0dfb4813ff9 rootfs-etc-usb-moded-dyn-modes-mtp_ffs_mode_openrc.ini d373201040a911663fd74123e9ef35e43dedfd375eeefe8ca949a3e24737d457a4693e836b1c5ad6f4cf3149b656ae24d751f767babb9858a42114c5d2ad083e rootfs-etc-usb-moded-dyn-modes-developer_mode_systemd.ini 3d4e20f9e8e357030ce5f5c73367aef31cebecce48a9b1ff7915731335a83715e0679812959ac9ee41f88447a8636177244c0b9c5109cd8a227caecb9931ed9e rootfs-etc-usb-moded-dyn-modes-tethering_mode_systemd.ini af41dc4ceb7255dbb88273916306c6e7e66c879bb67523c9571f9e812c9b36ab00ea666ade49369cd5846b4552a53add58cd1aea574a496bf53ddd3fbc630922 rootfs-etc-usb-moded-dyn-modes-mtp_ffs_mode_systemd.ini @@ -98,6 +119,8 @@ af41dc4ceb7255dbb88273916306c6e7e66c879bb67523c9571f9e812c9b36ab00ea666ade49369c 2c838fd0ad66c92386f6159c7d96d3ba940e13834642eb2cb7612d79d6b8832e9bd06b1eb189141f21fa9085d8b43ea514c15d82736ebd6b94533811f5a15f11 rootfs-usr-lib-systemd-system-usb-moded-developer-mode.service 56ce2662dd8f88795bd2e9063f20747e1377d896fbcf9e1ae43c90ef511c4a11517d7c673f857cf194070c425f417df8f40ced9b95749ed1df53e1be122a8ef7 rootfs-usr-lib-systemd-system-usb-moded-tethering-mode.service 79dc304cc5d455135f929a0ba60487f03b1b66d09245d972f685ee5ddabc8414f74159e47bbb13bff862163fa07dd9497a30ab7e32074bff95f2189685d851a2 rootfs-usr-lib-systemd-system-usb-moded.service.d-override.conf +95681a9bb2d5f8d99f51762d09dc4f0c487442a20070ad1439de1309b775ac1752fe60a205389cc74a1ee9026afc4ad984ac3363659a6749792835654a111d7f rootfs-etc-init.d-usb-moded-developer-mode.initd +1d8b98508f7969a4ba671866eee5e54261c50362e41b18bfebf004a6ed1e97d01a8eb83e3a33c392cbd00ea1a20f0f004b4794582ef1b71dedbba0fba2dc4602 rootfs-etc-init.d-usb-moded-tethering-mode.initd 9aab1a91a817e2337320ee0fa1bf6133e65e9269631560c1860c3b777adb336d036cebbc2510d1df35a82bf4396d553ff9e2edd0004027c7a3130168f7f50d90 rootfs-usr-bin-usb-moded-developer-mode 5cc40b1a0c86904d824f8f03e3f44900aaf407c5c462902f4f58cd58c603be1c5919651b91320983e21da42f5891e29df504bf4f1bddef64fedc68c2accdccbc rootfs-usr-bin-usb-moded-tethering-mode ca4b82b0cccbbb498b8898c4e360142136c46687e97bce85553dc1793bf8ae2e0f509c2a1acdf96b08dc7c6b69f098b56181f9033ad669cabbf5a159ad8efbaa rootfs-usr-lib-systemd-system-generators-umtprd-config-generator diff --git a/main/postmarketos-usb-moded/rootfs-etc-init.d-usb-moded-developer-mode.initd b/main/postmarketos-usb-moded/rootfs-etc-init.d-usb-moded-developer-mode.initd new file mode 100644 index 000000000..72b99c8ca --- /dev/null +++ b/main/postmarketos-usb-moded/rootfs-etc-init.d-usb-moded-developer-mode.initd @@ -0,0 +1,9 @@ +#!/sbin/openrc-run + +description="USB Moded Developer Mode" +command="usb-moded-developer-mode" +command_args="up" + +stop() { + usb-moded-developer-mode down +} diff --git a/main/postmarketos-usb-moded/rootfs-etc-init.d-usb-moded-tethering-mode.initd b/main/postmarketos-usb-moded/rootfs-etc-init.d-usb-moded-tethering-mode.initd new file mode 100644 index 000000000..4e294984e --- /dev/null +++ b/main/postmarketos-usb-moded/rootfs-etc-init.d-usb-moded-tethering-mode.initd @@ -0,0 +1,9 @@ +#!/sbin/openrc-run + +description="USB Moded Tethering Mode" +command="usb-moded-tethering-mode" +command_args="up" + +stop() { + usb-moded-tethering-mode down +} diff --git a/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-developer_mode_openrc.ini b/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-developer_mode_openrc.ini new file mode 100644 index 000000000..cbcdbf227 --- /dev/null +++ b/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-developer_mode_openrc.ini @@ -0,0 +1,12 @@ +[mode] +name=developer_mode +module=none +network=0 + +[options] +idProduct=0xD001 +idVendorOverride=0x18D1 +sysfs_value=ncm.usb0 +dhcp_server=0 +command_up=service usb-moded-developer-mode start +command_down=service usb-moded-developer-mode stop diff --git a/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-mtp_ffs_mode_openrc.ini b/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-mtp_ffs_mode_openrc.ini new file mode 100644 index 000000000..8371cd5e1 --- /dev/null +++ b/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-mtp_ffs_mode_openrc.ini @@ -0,0 +1,11 @@ +[mode] +name=mtp_ffs_mode +module=none + +[options] +idProduct=0x1D6B +idVendorOverride=0x0100 +sysfs_value=ffs.mtp +command_up=service umtprd start +command_down=service umtprd stop +ffs_daemon_mountpoint=mtp diff --git a/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-tethering_mode_openrc.ini b/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-tethering_mode_openrc.ini new file mode 100644 index 000000000..bf49477b5 --- /dev/null +++ b/main/postmarketos-usb-moded/rootfs-etc-usb-moded-dyn-modes-tethering_mode_openrc.ini @@ -0,0 +1,12 @@ +[mode] +name=tethering_mode +module=none +network=0 + +[options] +idProduct=0xD001 +idVendorOverride=0x18D1 +sysfs_value=ncm.usb0 +dhcp_server=0 +command_up=service usb-moded-tethering-mode start +command_down=service usb-moded-tethering-mode stop diff --git a/temp/usb-moded/APKBUILD b/temp/usb-moded/APKBUILD index b647e5669..79d89a3bb 100644 --- a/temp/usb-moded/APKBUILD +++ b/temp/usb-moded/APKBUILD @@ -4,7 +4,7 @@ maintainer="Dylan Van Assche " pkgname=usb-moded _pkgver=0.86.0.69 pkgver="999$_pkgver" -pkgrel=1 +pkgrel=2 _commit_dbus_glib="d42176ae4763e5288ef37ea314fe58387faf2005" pkgdesc="A daemon activating a certain USB profile based on the usb cable connection status" url="https://github.com/sailfishos/usb-moded" @@ -90,8 +90,8 @@ package() { sha512sums=" 55c8892c9f9c5a9cc6b526e8c1f9c55cd5f61922dbc52b1c85abb2850a00d1146c0d8e4f7a631bd0d7927e40908dae2541870bf1cc591b9d527ce29306051829 usb-moded-9990.86.0.69.tar.gz 665cd6395ee0ea14086ba30188c62a72697b3f63484681e18fc7f54109c9aca162f2e33aa2fa4d45287c6c0b590e81ca310c143dac0232cd5887692cdaf51256 dbus-glib-d42176ae4763e5288ef37ea314fe58387faf2005.tar.gz -b841282b96110ec59a7aa539db0737327b09549d55c78dc4b2c3b28b4a6ad1facf015b3175cb6d3a38f13e47aa6314ef3dc1514a4e60dd653a97409ec54ba706 usb-moded.confd -28c2d1e594d0be7d480885c1d3d38a2e33d310363a51093f19daf69221d173df5a03d04f1b7dfba3bcdb00697715123313441216a016efc8d11151daaa0ae4ea usb-moded.initd +d6548342e6b83fe08d050d81825d14f07aa5ede4961dd7e34d5fca45fbe474e786198559f89e4de3002c7d86737c69e85d21932a5f8c6785c5f2f2b51cbf65bf usb-moded.confd +38f263a9f1c6711396b2672e53b297dbaa2f41222061da7eb90e2646e52f124b126b9bcedcec5b85e387518d455c132c37ce2196e5975f8e7732be240ead490d usb-moded.initd 912f0700c87883b55f631cfc3d76e172ff1c21aa57b0c18d1e7b9671ecd6254b1e7565816e3967c68caab196076bf7c8b848375c89185aa4466f4ca7f65231be umtprd.conf 8e15fcdcb5199c7c9deffc417035e2260aa7d4a437056f2ab9141c33220618da59324b87cbcebe9857d0269b170f98e2ea703c69b6543cbae237555cc6e297a4 basename.patch 23980ebf109c01ad9be366ac35cd101608ed14a826c20e73a33fbeed856feef435ba29b34033a054e282075bcac18108f2d6e0ec8e81f41d97c3639fdd5fe23f 0001-dyn-config-Add-option-for-running-a-command-on-mode-.patch diff --git a/temp/usb-moded/usb-moded.confd b/temp/usb-moded/usb-moded.confd index 9bd312c0c..db8de35b6 100644 --- a/temp/usb-moded/usb-moded.confd +++ b/temp/usb-moded/usb-moded.confd @@ -1 +1,2 @@ +configfs="/config" supervisor=supervise-daemon diff --git a/temp/usb-moded/usb-moded.initd b/temp/usb-moded/usb-moded.initd index 327025437..c145af5e3 100644 --- a/temp/usb-moded/usb-moded.initd +++ b/temp/usb-moded/usb-moded.initd @@ -8,3 +8,13 @@ command_background=yes depend() { need dbus } + +start_pre() { + mkdir -p "$configfs" + mount -t configfs none "$configfs" +} + +stop_post() { + umount "$configfs" + rmdir "$configfs" +}