summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 7ca1d00911f239d8200e3b5c19990c5d803d9cfa (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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# Maintainer: Peter Ivanov <ivanovp@gmail.com>
# Contributor: joat
# Submitter: BxS <bxsbxs at gmail dot com>

pkgname=microchip-mplabx-bin
pkgver=3.05
pkgrel=4
pkgdesc="IDE for Microchip PIC and dsPIC development"
arch=(i686 x86_64)
url=http://www.microchip.com/mplabx
license=(custom)
depends=(gtk2 alsa-lib libxslt libxtst desktop-file-utils jdk7-openjdk)
makedepends=(fakechroot)
depends_x86_64+=(lib32-glibc lib32-fakeroot)
optdepends=('microchip-mplabxc8-bin: C compiler for PIC10 PIC12 PIC16 PIC18 MCUs'
            'microchip-mplabxc16-bin: C compiler for PIC24 MCUs and dsPIC DSCs'
            'microchip-mplabxc32-bin: C Compiler for PIC32 MCUs'
            'microchip-mplabc18_bin: C compiler for PIC18 MCUs'
            'sdcc: C compiler for PIC16/18 MCUs')
provides=(mplab)
conflicts=(mplab)
options=(!strip docs libtool emptydirs !zipman !upx)
PKGEXT='.pkg.tar'
install=$pkgname.install
instdir=/opt/microchip/mplabx
installer_tar=MPLABX-v$pkgver-linux-installer.tar
installer_sh=MPLABX-v$pkgver-linux-installer.sh
installer=MPLABX-v$pkgver-linux-installer.run
installer2=MPLABCOMM-v$pkgver-linux-installer.run
source=(http://ww1.microchip.com/downloads/en/DeviceDoc/$installer_tar
        LICENSE)
source_x86_64+=(fakechroot-i686.pkg.tar.xz::http://www.archlinux.org/packages/extra/i686/fakechroot/download/)

md5sums=('cd9f5108ef6f4fdfbfabd89007748012'
         'a34a85b2600a26f1c558bcd14c2444bd')
md5sums_x86_64+=('92b9a1dc8fa0534048790731a7bf2fc5')

package() {
  cd $srcdir

  mkdir -p $pkgdir/{bin,etc,usr/{bin,lib,local/lib},usr/local/lib,tmp}

  ln -s /bin/bash $pkgdir/bin/
  ln -s /bin/sh $pkgdir/bin/
  ln -s /usr/bin/find $pkgdir/usr/bin/

  echo "root:x:0:0:root:/root:/bin/bash" > $pkgdir/etc/passwd
  echo "root:x:0:root" > $pkgdir/etc/group

  echo Extracting installer from the buggy shell script...
# dd if=$installer_sh of=$installer.tar.gz skip=15067 bs=1 count=1036093 # This is slow because block size is 1 byte
# dd if=$installer_sh of=$installer.tmp skip=1 bs=1M
# cat $installer.tmp >>$installer.tar.gz
# tar xvzf $installer.tar.gz
# rm $installer.tmp $installer.tar.gz
  sh $installer_sh --tar xvf
  cp $srcdir/$installer $pkgdir/
  cp $srcdir/$installer2 $pkgdir/
  chmod 0755 $pkgdir/$installer
  chmod 0755 $pkgdir/$installer2

  echo -e "\n\n\n\n\n\n\n\n\n\ny\n\ny\ny\ny\n\n" > $pkgdir/inst_input
  echo -e "\n\n\n" > $pkgdir/inst_input2

  echo "#!/bin/bash
  LD_LIBRARY_PATH=$srcdir/usr/lib/libfakeroot/fakechroot:\$LD_LIBRARY_PATH
  #./$installer2 --mode text --installdir /opt/microchip/mplabcomm1.0 < inst_input2 &> /dev/null || true
  ./$installer --mode text < inst_input &> /dev/null || true"> $pkgdir/chroot_input.sh
#  ./$installer --mode text < inst_input || true"> $pkgdir/chroot_input.sh
  chmod 0755 $pkgdir/chroot_input.sh

  echo -e "Creating the Package\n  Please wait..."

  export FAKECHROOT_CMD_SUBST=/usr/bin/ldconfig=$srcdir/fake_ldconfig.sh
  fakechroot chroot $pkgdir ./chroot_input.sh

  sed -i 's|#jdkhome="/path/to/jdk"|jdkhome=/usr/lib/jvm/java-7-openjdk/|g' $pkgdir$instdir/v$pkgver/mplab_ide/etc/mplab_ide.conf
  sed -i 's|#jdkhome="/path/to/jdk"|jdkhome=/usr/lib/jvm/java-7-openjdk/|g' $pkgdir$instdir/v$pkgver/mplab_ipe/mplab_ipe
  sed -i 's|\"$jdkhome\"bin/java -jar \"$jdkhome\"/../../../mplab_ipe/ipe.jar|\"$jdkhome\"bin/java -jar '$instdir'/v'$pkgver'/mplab_ipe/ipe.jar|g' $pkgdir$instdir/v$pkgver/mplab_ipe/mplab_ipe

  rm $pkgdir/{chroot_input.sh,inst_input,inst_input2,$installer,$installer2,etc/{group,passwd}}
  rm -r $pkgdir/{bin,tmp,usr/bin/find}

  ln -s $instdir/v$pkgver/mplab_ide/bin/mplab_ide $pkgdir/usr/bin/mplab_ide
  ln -s $instdir/v$pkgver/mplab_ipe/mplab_ipe $pkgdir/usr/bin/mplab_ipe
  ln -s $instdir/../mplabcomm/v$pkgver/lib/libmchpusb-1.0.so.0.0.0 $pkgdir/usr/local/lib/libmchpusb-1.0.so
  ln -s $instdir/../mplabcomm/v$pkgver/lib/mchplinusbdevice $pkgdir/etc/.mplab_ide
  ln -s $instdir/../mplabcomm/v$pkgver/lib/libUSBAccessLink.so $pkgdir/usr/lib/libUSBAccessLink.so
  ln -s $instdir/../mplabcomm/v$pkgver/lib/libSerialAccessLink.so $pkgdir/usr/lib/libSerialAccessLink.so
 
  echo "StartupWMClass=MPLAB X IDE v$pkgver" >> $pkgdir/usr/share/applications/mplab.desktop
  echo 'StartupWMClass=com-microchip-ipe-ui-ProdProgrammerApp' >> $pkgdir/usr/share/applications/mplab_ipe.desktop

  rm -f $pkgdir$instdir/Uninstall*

  install -Dm 644 $srcdir/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
}