summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authormickael92015-09-25 12:22:55 +0200
committermickael92015-09-25 15:32:44 +0200
commiteccf4912b486c84e79dd304d498b5957c41e0c77 (patch)
tree8398959c2b20099a6340f00859a0350a36f795f3
parent137ea5689139003dee1d4378cf6292dc7b580331 (diff)
downloadaur-eccf4912b486c84e79dd304d498b5957c41e0c77.tar.gz
Improved PKGBUILD
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD179
-rwxr-xr-xmicrochip-mplabx-bin.install11
3 files changed, 117 insertions, 79 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e931144a6fb2..9b18f817be6f 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = microchip-mplabx-bin
pkgdesc = IDE for Microchip PIC and dsPIC development
pkgver = 3.10
- pkgrel = 1
+ pkgrel = 2
url = http://www.microchip.com/mplabx
install = microchip-mplabx-bin.install
arch = i686
@@ -13,12 +13,13 @@ pkgbase = microchip-mplabx-bin
depends = libxslt
depends = libxtst
depends = desktop-file-utils
- depends = jdk7-openjdk
+ depends = java-runtime>=7
optdepends = microchip-mplabxc8-bin: C compiler for PIC10 PIC12 PIC16 PIC18 MCUs
optdepends = microchip-mplabxc16-bin: C compiler for PIC24 MCUs and dsPIC DSCs
optdepends = microchip-mplabxc32-bin: C Compiler for PIC32 MCUs
optdepends = microchip-mplabc18_bin: C compiler for PIC18 MCUs
optdepends = sdcc: C compiler for PIC16/18 MCUs
+ optdepends = java-openjfx: required JavaFX package for OpenJDK users
provides = mplab
conflicts = mplab
options = !strip
@@ -27,6 +28,7 @@ pkgbase = microchip-mplabx-bin
options = emptydirs
options = !zipman
options = !upx
+ backup = opt/microchip/mplabx/v3.10/mplab_ide/etc/mplab_ide.conf
source = http://ww1.microchip.com/downloads/en/DeviceDoc/MPLABX-v3.10-linux-installer.tar
source = LICENSE
md5sums = 7746910503fd9a01152d43b649cca211
diff --git a/PKGBUILD b/PKGBUILD
index c097adca1d05..f9fa883eabcb 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,98 +1,127 @@
-# Maintainer: Peter Ivanov <ivanovp@gmail.com>
+# Maintainer: mickael9 <mickael9 at gmail dot com>
+# Contributor: Peter Ivanov <ivanovp@gmail.com>
# Contributor: joat
# Submitter: BxS <bxsbxs at gmail dot com>
pkgname=microchip-mplabx-bin
pkgver=3.10
-pkgrel=1
+pkgrel=2
pkgdesc="IDE for Microchip PIC and dsPIC development"
arch=(i686 x86_64)
-url=http://www.microchip.com/mplabx
+url='http://www.microchip.com/mplabx'
license=(custom)
-depends=(gtk2 alsa-lib libxslt libxtst desktop-file-utils jdk7-openjdk)
+depends=(gtk2 alsa-lib libxslt libxtst desktop-file-utils "java-runtime>=7")
+depends_x86_64=(lib32-glibc lib32-fakeroot)
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')
+ 'sdcc: C compiler for PIC16/18 MCUs'
+ 'java-openjfx: required JavaFX package for OpenJDK users'
+ )
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/)
+install="${pkgname}.install"
+
+_mplabx_dir="/opt/microchip/mplabx/v${pkgver}"
+_mplabcomm_dir="/opt/microchip/mplabcomm/v${pkgver}"
+_mplabx_installer="MPLABX-v${pkgver}-linux-installer"
+_mplabcomm_installer="MPLABCOMM-v${pkgver}-linux-installer"
+
+source=("http://ww1.microchip.com/downloads/en/DeviceDoc/${_mplabx_installer}.tar"
+ "LICENSE")
+source_x86_64=("fakechroot-i686.pkg.tar.xz::http://www.archlinux.org/packages/extra/i686/fakechroot/download/")
md5sums=('7746910503fd9a01152d43b649cca211'
'a34a85b2600a26f1c558bcd14c2444bd')
-md5sums_x86_64+=('92b9a1dc8fa0534048790731a7bf2fc5')
+md5sums_x86_64=('92b9a1dc8fa0534048790731a7bf2fc5')
+
+backup=("${_mplabx_dir:1}/mplab_ide/etc/mplab_ide.conf")
+
+PKGEXT='.pkg.tar'
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/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
+ mkdir -p "${pkgdir}"/{etc,usr/{bin,lib},tmp}
+
+ # Create a fake chroot in $pkgdir to run installers into
+ ln -s /usr/bin "${pkgdir}/"
+
+ echo "root:x:0:0:root:/root:/bin/bash" > "${pkgdir}/etc/passwd"
+ echo "root:x:0:root" > "${pkgdir}/etc/group"
+
+ echo "Extracting installers..."
+ sh ${_mplabx_installer}.sh --tar xf
+ mv ${_mplabx_installer}.run ${_mplabcomm_installer}.run "${pkgdir}/tmp"
+ chmod 0755 "${pkgdir}/tmp/${_mplabx_installer}.run"
+ chmod 0755 "${pkgdir}/tmp/${_mplabcomm_installer}.run"
+
+ # Create install script
+ cat << EOF > "${pkgdir}/tmp/install.sh"
+#!/bin/sh
+LD_LIBRARY_PATH="${srcdir}/usr/lib/libfakeroot/fakechroot:\$LD_LIBRARY_PATH"
+PATH=/bin
+echo Running MPLABX installer...
+tmp/${_mplabx_installer}.run --mode unattended >/dev/null
+echo Running MPLABCOMM installer...
+tmp/${_mplabcomm_installer}.run --mode unattended >/dev/null
+EOF
+
+ chmod 0755 "${pkgdir}/tmp/install.sh"
+
+ # Run installers in the fake chroot
+ fakechroot chroot "${pkgdir}" tmp/install.sh
+
+ # Remove uninstaller
+ rm -f "${pkgdir}${_mplabx_dir}"/Uninstall_*
+
+ # Fix ugly fonts
+ sed -i 's/^default_options="/default_options="-J-Dawt.useSystemAAFontSettings=on /' "${pkgdir}${_mplabx_dir}/mplab_ide/etc/mplab_ide.conf"
+
+ # Patch jdkhome to use system JRE
+ local conf
+ for conf in mplab_ipe/mplab_ipe mplab_ipe/ipecmd.sh mplab_ide/etc/mplab_ide.conf; do
+ sed -i '/^jdkhome=/c \jdkhome=/usr/lib/jvm/default-runtime/' "${pkgdir}${_mplabx_dir}/${conf}"
+ done
+ sed -i '/^"$jdkhome"bin\/java/c\ java -jar '${_mplabx_dir}'/mplab_ipe/ipe.jar' "${pkgdir}${_mplabx_dir}/mplab_ipe/mplab_ipe"
+
+ # Remove bundled JRE
+ rm -rf "${pkgdir}${_mplabx_dir}/sys"
+
+ # Move libs away from /usr/local/lib
+ mv "${pkgdir}"/usr/local/lib/*.so{,.*} "${pkgdir}"/usr/lib/
+ rm -rf "${pkgdir}/usr/local/"
+
+ # Symlink executables
+ ln -sf "${_mplabx_dir}"/mplab_ide/bin/mplab_ide "${pkgdir}/usr/bin/"
+ ln -sf "${_mplabx_dir}"/mplab_ipe/mplab_ipe "${pkgdir}/usr/bin/"
+ ln -sf "${_mplabcomm_dir}/lib/mchplinusbdevice" "${pkgdir}/etc/.mplab_ide/"
+
+ # Symlink libs from MPLABCOMM
+ local lib
+ for lib in "${pkgdir}${_mplabcomm_dir}"/lib/*.so{,.*}; do
+ local bname=$(basename "$lib")
+ ln -sf "${_mplabcomm_dir}/lib/${bname}" "${pkgdir}/usr/lib/"
+ done
+
+ # Correctly link .so.* -> .so for all libs
+ for lib in "${pkgdir}"/usr/lib/*.so.*; do
+ local bname=$(basename "$lib")
+ local soname=${bname%.so.*}
+ ln -sf ${bname} "${pkgdir}/usr/lib/${soname}.so"
+ done
+
+ # Tweak .desktop files for better desktop integration
+ 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"
+
+ # Install license files
+ install -Dm 644 "${srcdir}"/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm 644 "${pkgdir}${_mplabcomm_dir}/MPLABCOMMLicense.txt" "${pkgdir}/usr/share/licenses/${pkgname}/MPLABCOMMLicense.txt"
+
+ # Cleanup
+ rm "${pkgdir}"/{bin,etc/{group,passwd}}
+ rm -r "${pkgdir}/tmp"
}
diff --git a/microchip-mplabx-bin.install b/microchip-mplabx-bin.install
index 845cadd3160f..69e71537452b 100755
--- a/microchip-mplabx-bin.install
+++ b/microchip-mplabx-bin.install
@@ -6,10 +6,17 @@ post_install() {
Before using MPLAB X you have to agree with LICENSE:
/usr/share/licenses/microchip-mplabx-bin/LICENSE
-To run MPLAB X type 'mplab_ide' in console or just use the 'microchip-mplabx.desktop' desktop file.
+To run MPLAB X, type 'mplab_ide' in console or just use the 'microchip-mplabx.desktop' desktop file.
-To run (IPE) Integrated Programmer Environment (Beta) type 'mplab_ipe' in console or just use the 'microchip-mplab_ipe.desktop' desktop file.
+To run (IPE) Integrated Programmer Environment, type 'mplab_ipe' in console or just use the 'microchip-mplab_ipe.desktop' desktop file.
---------------------------------------------------------"
+
+if [[ ! -f "/usr/lib/jvm/default-runtime/lib/ext/jfxrt.jar" ]]; then
+ echo
+ echo "WARNING: JavaFX is not installed in your default Java installation. MPLAB X will not work."
+ echo "Perhaps you should install java-openjfx ?"
+ echo
+fi
}
post_upgrade() {