All checks were successful
package / package (push) Successful in 1m55s
fp6-img no longer builds imsd from source: its images install the apk this repo's package CI publishes to the registry (pinned version + sha256), so the image and 'apk upgrade' carry the same binary and APKBUILD.binary is the only imsd packaging left. The two payload files the aport carried (kde-modem-daemon skel override, systemd preset) move up to packaging/, where build-package.sh now takes them from.
69 lines
3.4 KiB
Text
69 lines
3.4 KiB
Text
# SPDX-License-Identifier: GPL-3.0-only
|
|
# SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
|
# Maintainer: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
|
|
# Binary packaging: wraps a crafter-build binary cross-compiled per the
|
|
# README's "Cross-compiling" section into a proper apk — used by this repo's
|
|
# package CI (packaging/build-package.sh, which also seds pkgver from
|
|
# implementations/main.cpp) and runnable by hand. The source tarball is
|
|
# produced by packaging/make-bin-tarball.sh; the desktop/preset files live
|
|
# next to it in packaging/ (copy them beside this file). Since 2026-09-02
|
|
# this is the only imsd packaging: fp6-img images install the apk this
|
|
# builds from the registry rather than building their own.
|
|
pkgname=imsd
|
|
pkgver=0.3.1
|
|
pkgrel=0
|
|
pkgdesc="Userspace IMS/VoLTE daemon for mainline Linux phones"
|
|
url="https://forgejo.catcrafts.net/Catcrafts/imsd"
|
|
arch="aarch64"
|
|
license="GPL-3.0-only"
|
|
# the media leg dlopen's the AMR-WB codecs; pw-record/pw-play drive PipeWire
|
|
depends="modemmanager libc++ opencore-amr vo-amrwbenc pipewire-tools"
|
|
# versioned provides = imsd satisfies soc-qcom-modem's 81voltd dependency AND
|
|
# excludes the real package: 81voltd serves the modem's own ims-PDN requests,
|
|
# which races imsd for the PDN and flaps it with a new prefix every ~2.5 min
|
|
# (fp6 journal/ims.md s57) — the two IMS stacks cannot share one PDN
|
|
provides="81voltd=$pkgver-r$pkgrel"
|
|
# no OpenRC service yet: the unit's PDN-bring-up/env-file sequencing is only
|
|
# tested under systemd; an initd is welcome once someone can verify one
|
|
subpackages="$pkgname-systemd"
|
|
options="!check !tracedeps"
|
|
source="
|
|
imsd-$pkgver.tar.gz
|
|
org.kde.modem.daemon.desktop
|
|
80-imsd.preset
|
|
"
|
|
|
|
package() {
|
|
cd "$srcdir/imsd-$pkgver"
|
|
install -Dm755 imsd "$pkgdir"/usr/bin/imsd
|
|
install -Dm755 imsd-media "$pkgdir"/usr/libexec/imsd-media
|
|
install -Dm755 imsd-dialerd "$pkgdir"/usr/bin/imsd-dialerd
|
|
install -Dm755 ims-pdn-up.sh "$pkgdir"/usr/libexec/ims-pdn-up.sh
|
|
install -Dm644 imsd.service "$pkgdir"/usr/lib/systemd/system/imsd.service
|
|
install -Dm644 imsd-dialerd.desktop \
|
|
"$pkgdir"/etc/xdg/autostart/imsd-dialerd.desktop
|
|
install -Dm644 net.catcrafts.IMS1.conf \
|
|
"$pkgdir"/usr/share/dbus-1/system.d/net.catcrafts.IMS1.conf
|
|
# the skel override hides kde-telephony's modem daemon autostart for the
|
|
# account created at install — imsd-dialerd owns those session bus names
|
|
install -Dm644 "$srcdir"/org.kde.modem.daemon.desktop \
|
|
"$pkgdir"/etc/skel/.config/autostart/org.kde.modem.daemon.desktop
|
|
# enabled by preset: the unit is a no-op until /etc/imsd.env exists, and
|
|
# VoLTE surviving reboots must not depend on a manual systemctl enable
|
|
install -Dm644 "$srcdir"/80-imsd.preset \
|
|
"$pkgdir"/usr/lib/systemd/system-preset/80-imsd.preset
|
|
mkdir -p "$pkgdir"/etc/systemd/system/multi-user.target.wants
|
|
ln -s /usr/lib/systemd/system/imsd.service \
|
|
"$pkgdir"/etc/systemd/system/multi-user.target.wants/imsd.service
|
|
# ...but only actually start once the carrier config exists, so
|
|
# unconfigured systems don't boot into a failing unit
|
|
mkdir -p "$pkgdir"/usr/lib/systemd/system/imsd.service.d
|
|
printf '[Unit]\nConditionPathExists=/etc/imsd.env\n' \
|
|
> "$pkgdir"/usr/lib/systemd/system/imsd.service.d/10-require-config.conf
|
|
}
|
|
|
|
systemd() {
|
|
install_if="$pkgname=$pkgver-r$pkgrel systemd"
|
|
|
|
amove usr/lib/systemd/system
|
|
}
|