diff --git a/device/device-samsung-i9070/90-android-touch-dev.rules b/device/device-samsung-i9070/90-android-touch-dev.rules deleted file mode 100644 index 11a93744d..000000000 --- a/device/device-samsung-i9070/90-android-touch-dev.rules +++ /dev/null @@ -1,8 +0,0 @@ -# udev rules file -# All device names can be read from weston's logfile - -# Touchscreen (use 'weston-calibrator' to calibrate) -SUBSYSTEM=="input", ATTRS{name}=="sec_touchscreen", \ -ENV{ID_INPUT}="1", ENV{ID_INPUT_TOUCHSCREEN}="1" \ -ENV{WL_CALIBRATION}="1.043478 0.000000 -5.217407 0.014562 0.956938 2.798035" - diff --git a/device/device-samsung-i9070/APKBUILD b/device/device-samsung-i9070/APKBUILD index d840b0c61..9963e46a1 100644 --- a/device/device-samsung-i9070/APKBUILD +++ b/device/device-samsung-i9070/APKBUILD @@ -1,30 +1,32 @@ +# Reference: pkgname=device-samsung-i9070 pkgver=1 -pkgrel=15 +pkgrel=16 pkgdesc="Samsung Galaxy S Advance" url="https://github.com/postmarketOS" arch="noarch" license="MIT" depends="linux-samsung-i9070 firmware-samsung-i9070" -makedepends="" +makedepends="devicepkg-dev" install="" subpackages="$pkgname-mesa" source=" deviceinfo initfs-hook.sh - 90-android-touch-dev.rules modules-load.conf " options="!check" +build() { + devicepkg_build $startdir $pkgname +} + package() { - install -D -m644 "$srcdir/deviceinfo" \ - "$pkgdir/etc/deviceinfo" - install -D -m644 "$srcdir"/initfs-hook.sh \ + devicepkg_package $startdir $pkgname + + install -Dm644 "$srcdir"/initfs-hook.sh \ "$pkgdir"/etc/postmarketos-mkinitfs/hooks/00-${pkgname}.sh - install -D -m644 "$srcdir"/90-android-touch-dev.rules \ - "$pkgdir"/etc/udev/rules.d/90-android-touch-dev.rules - install -D -m644 "$srcdir"/modules-load.conf \ + install -Dm644 "$srcdir"/modules-load.conf \ "$pkgdir"/etc/modules-load.d/00-${pkgname}.conf } @@ -36,5 +38,4 @@ mesa() { sha512sums="4aaa8192110e8480b2f674b81f5e850cf419bfb20675443dce63d7f631dc3a0084dd7354b2cf1352349dc5127548fb6940f1c4b2bc80c44595c53b55e80242e0 deviceinfo 098187f6ab56d2542f98f1b5fbcf493431f665a4300db05e859357366e39b02a3d508bfd94c1d1bd7c669261e7ef0d4e1aef1fdbb15541fe34f3f48a6caa247f initfs-hook.sh -f913184639f9f367730a7c0476657133c673a07dbcbde1fc643595a1a6b99774c2e2f63955bf52cf6d6de343a60b52af8085da3aebbdf6a95b52812a3e3181ec 90-android-touch-dev.rules 61e8becbf6fa7c1c6c42e481083f5981ae7af33a48cbc53e817d8ac2c6a8e4f67a54b32ae3b8f5f25f7b412165a849dc93a629110dc47b0d16927bf2a12eb7e1 modules-load.conf" diff --git a/main/devicepkg-dev/APKBUILD b/main/devicepkg-dev/APKBUILD new file mode 100644 index 000000000..c4983f755 --- /dev/null +++ b/main/devicepkg-dev/APKBUILD @@ -0,0 +1,20 @@ +pkgname="devicepkg-dev" +pkgver=0.1 +pkgrel=0 +pkgdesc="Provides default device package functions" +url="https://github.com/postmarketOS" +arch="all" +license="MIT" +source=" + devicepkg_build.sh + devicepkg_package.sh +" + +package() { + install -Dm755 "$srcdir/devicepkg_build.sh" \ + "$pkgdir/usr/bin/devicepkg_build" + install -Dm755 "$srcdir/devicepkg_package.sh" \ + "$pkgdir/usr/bin/devicepkg_package" +} +sha512sums="e6f96f8942fa8124ca7461bcf9c78879e08ef00da4a728735046503cae86548505594e078eb14056af74616b17332474f1473f72127299773e075bfd970af13b devicepkg_build.sh +c732792596f56860f6ab9ddd53b9a7a80224400dd20097b20cebe17a6e7330e9178783f09db16132a28a555f83e29ef3643bfe069638b62998912a9a7ffefdc0 devicepkg_package.sh" diff --git a/main/devicepkg-dev/devicepkg_build.sh b/main/devicepkg-dev/devicepkg_build.sh new file mode 100644 index 000000000..15cb3508b --- /dev/null +++ b/main/devicepkg-dev/devicepkg_build.sh @@ -0,0 +1,34 @@ +#!/bin/sh +startdir=$1 +pkgname=$2 + +if [ -z "$startdir" ] || [ -z "$pkgname" ]; then + echo "ERROR: missing argument!" + echo "Please call devicepkg_default_build() with \$startdir and \$pkgname as arguments." + exit 1 +fi + +srcdir="$startdir/src" + +if [ ! -f "$srcdir/deviceinfo" ]; then + echo "NOTE: $0 is intended to be used inside of the build() function" + echo "of a device package's APKBUILD only." + echo "ERROR: deviceinfo file missing!" + exit 1 +fi + +# shellcheck disable=SC1090,SC1091 +. "$srcdir/deviceinfo" + +# shellcheck disable=SC2154 +if [ ! -z "$deviceinfo_dev_touchscreen" ]; then + # Create touchscreen udev rule + { + echo "SUBSYSTEM==\"input\", ENV{DEVNAME}==\"$deviceinfo_dev_touchscreen\", \\" + # shellcheck disable=SC2154 + if [ ! -z "$deviceinfo_dev_touchscreen_calibration" ]; then + echo "ENV{WL_CALIBRATION}=\"$deviceinfo_dev_touchscreen_calibration\", \\" + fi + echo "ENV{ID_INPUT}=\"1\", ENV{ID_INPUT_TOUCHSCREEN}=\"1\"" + } > "$srcdir/90-$pkgname.rules" +fi diff --git a/main/devicepkg-dev/devicepkg_package.sh b/main/devicepkg-dev/devicepkg_package.sh new file mode 100644 index 000000000..f04c14375 --- /dev/null +++ b/main/devicepkg-dev/devicepkg_package.sh @@ -0,0 +1,27 @@ +#!/bin/sh +startdir=$1 +pkgname=$2 + +if [ -z "$startdir" ] || [ -z "$pkgname" ]; then + echo "ERROR: missing argument!" + echo "Please call devicepkg_default_package() with \$startdir and \$pkgname as arguments." + exit 1 +fi + +srcdir="$startdir/src" +pkgdir="$startdir/pkg/$pkgname" + +if [ ! -f "$srcdir/deviceinfo" ]; then + echo "NOTE: $0 is intended to be used inside of the package() function" + echo "of a device package's APKBUILD only." + echo "ERROR: deviceinfo file missing!" + exit 1 +fi + +install -Dm644 "$srcdir/deviceinfo" \ + "$pkgdir/etc/deviceinfo" + +if [ -f "$srcdir/90-$pkgname.rules" ]; then + install -Dm644 "$srcdir/90-$pkgname.rules" \ + "$pkgdir/etc/udev/rules.d/90-$pkgname.rules" +fi