summaryrefslogtreecommitdiff
path: root/libre/linux-libre-firmware/PKGBUILD
blob: 5a281751e0db4da51105a0933d2b35e0ff030aca (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
65
66
67
68
69
70
71
72
73
74
75
76
77
# Maintainer: David P. <megver83@parabola.nu>
# Contributor: André Silva <emulatorman@hyperbola.info>
# Contributor: Márcio Silva <coadde@hyperbola.info>
# Contributor: Luke Shumaker <lukeshu@sbcglobal.net>

pkgname=linux-libre-firmware
pkgver=1.1
pkgrel=4
epoch=1
pkgdesc='Firmware files for Linux-libre'
arch=('any')
url='https://jxself.org/firmware'
license=('GPL3' 'GPL2')
makedepends=('cmake' 'gmp' 'gperf' 'arm-linux-gnueabi-gcc' 'sh-elf-gcc' 'sh-elf-newlib' 'xtensa-unknown-elf-gcc')
provides=('linux-firmware')
conflicts=('linux-firmware'
           'linux-firmware-git'
           'kernel26-firmware'
           'ar9170-fw'
           'iwlwifi-1000-ucode'
           'iwlwifi-3945-ucode'
           'iwlwifi-4965-ucode'
           'iwlwifi-5000-ucode'
           'iwlwifi-5150-ucode'
           'iwlwifi-6000-ucode'
           'rt2870usb-fw'
           'rt2x00-rt61-fw'
           'rt2x00-rt71w-fw'
           'amd-ucode'
           'openfwwf'
           'ath9k-htc-firmware')
replaces=(${conflicts[@]})
options=(!strip)
source=("${url}/${pkgname}-${pkgver}.tar.lz"{,.asc}
        'remove-wget.patch' # remove the download of external toolchains
)
sha512sums=('4ef111f86e8a87bab31e02be171e09f47d71884f1737f5329e9dd07e9f799436d8ff2de5aa0b2cfb4bc921ed02bb2b59b9a1ea69176dcef5f902364d8725e75a'
            'SKIP'
            '60b58bed66e737148a5954c18efb1113518f14cf43ee2b6e7e8cdabe253a6db1c0d696f01eb25ecda7a8d3300afcf0169fa35f5eb123211554f08710f2c26ea2')
validpgpkeys=('F611A908FFA165C699584ED49D0DB31B545A3198') # Jason Self

prepare() {
  cd $srcdir/$pkgname-$pkgver
  
  # Some firmwares download toolchains with wget. We don't want that
  patch -p1 -i ../remove-wget.patch

  # CARL9170 configuration
  sed -e '13s|config/conf|config/conf --alldefconfig|' \
      -i src/carl9170fw/autogen.sh
}  

build() {
  cd "${srcdir}/${pkgname}-${pkgver}/src"
  
  if [ $CARCH = x86_64 ]; then
    # Building as31 with -O2 in 64-bits systems will
    # make usbdux result into a segmentation fault
    # Source: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=887320
    CFLAGS=${CFLAGS/-O2/-O0}
  fi

  make
}

package() {
  cd "${srcdir}/${pkgname}-${pkgver}/src"

  install -dm755 $pkgdir/usr/lib/firmware
  make prefix=$pkgdir/usr/lib/firmware install
  
  # ath9k_htc works only if it's located at /usr/lib/firmware
  mv $pkgdir/usr/lib/firmware/ath9k_htc/* $pkgdir/usr/lib/firmware
  rm -r $pkgdir/usr/lib/firmware/ath9k_htc
  
  install -Dm644 WHENCE $pkgdir/usr/share/licenses/$pkgname/WHENCE
}