summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 90757831871d805b51089f29ddc9bb37f11a7166 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Maintainer: marmis <tiagodepalves@gmail.com>
# Contributor: vitor_hideyoshi <vitor.h.n.batista@gmail.com>
# Contributor: katt <magunasu.b97@gmail.com>
# Contributor: Yangtse Su <i@yangtse.me>

_pkgname=xpadneo
_dkmsname=hid-${_pkgname}
pkgname=${_pkgname}-dkms
pkgver=0.9.6
_pkgver=v${pkgver}
pkgrel=2
pkgdesc="Advanced Linux Driver for Xbox One Wireless Gamepad"
arch=(any)
url='https://github.com/atar-axis/xpadneo'
license=(GPL-3.0-or-later)
depends=('dkms' 'bluez' 'bluez-utils')
source=("${_pkgname}-${_pkgver}.tar.gz::${url}/archive/${_pkgver}.tar.gz"
        01-drop-etc-files.patch 02-kernel-6-12.patch)
b2sums=('22a85732de2894d310e0994c101ed62b7358f1b6b8ba5b389fc273bfd48a1ce619ebc04f3699818290f61833234d4c444fff25ea852d9dcf420b99ab28687a03'
        '480c0301dc0140168d85e5f578dfcaac3a9fa664a99b1c85ca76eefe5fc571a2ee956b4350c4cebd8e89241538a3edde044e8cc6f5b634aa69fd1c02e0c5afdc'
        'b4336e7811b29f645ba996d8241e868196c0cca762a439c52c25f2da2abb6eb99a921c33521826ea6102409edba009bb09d97c110adfdff1f9f7ebdd3e076e55')

prepare() {
    cd "${_pkgname}-${pkgver}/${_dkmsname}"

    # Upstream uses dkms.post_install to create modprobe and udev files in
    # /etc. In Arch, it makes more sense to create these files in /usr/lib
    # and let pacman take care of them.
    patch -p1 -i "${srcdir}/01-drop-etc-files.patch"

    # Fix for Linux kernel 6.12 (https://github.com/atar-axis/xpadneo/issues/498)
    # Thanks Kudlaty for the heads-up.
    patch -p2 -i "${srcdir}/02-kernel-6-12.patch"

    # Set the current version in DKMS config file.
    sed "s/@DO_NOT_CHANGE@/${_pkgver}/" dkms.conf.in > dkms.conf
}

check() {
    # Warning if missing linux-headers for current `uname -r` kernel
    if [ ! -f "/usr/lib/modules/$(uname -r)/build/Makefile" ]
    then
        _BOLDRED='\033[1;31m'
        _RED='\033[0;31m'
        _RESET='\033[0m'
        echo -e "${_BOLDRED}WARNING:${_RED} You may be missing headers for your current kernel, DKMS packages requires them."
        echo -e "Please refer to https://wiki.archlinux.org/title/Dynamic_Kernel_Module_Support for details.${_RESET}"
    fi
}

package() {
    cd "${_pkgname}-${pkgver}/${_dkmsname}"

    # Module source
    install -Dm0644 -t "${pkgdir}/usr/src/${_dkmsname}-${_pkgver}/src" src/*

    # DKMS files
    install -Dm0644 -t "${pkgdir}/usr/src/${_dkmsname}-${_pkgver}" Makefile dkms.conf
    install -Dm0755 -t "${pkgdir}/usr/src/${_dkmsname}-${_pkgver}" dkms.post_install dkms.post_remove

    # Module dependencies
    install -Dm0644 -t "${pkgdir}/usr/lib/modprobe.d" etc-modprobe.d/*
    install -Dm0644 -t "${pkgdir}/usr/lib/udev/rules.d" etc-udev-rules.d/*
}