summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD189
1 files changed, 105 insertions, 84 deletions
diff --git a/PKGBUILD b/PKGBUILD
index a3ab3842ccea..7daa06e2365e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,106 +1,127 @@
-# Maintainer: Matthias Blaicher <matthias at blaicher dot com>
-# Co-Maintainer: Danny Dutton <duttondj@vt.edu>
+# Maintainer: Gabriel Souza Franco <Z2FicmllbGZyYW5jb3NvdXphQGdtYWlsLmNvbQ==>
+# Contributor: Matthias Blaicher <matthias at blaicher dot com>
+# Contributor: Danny Dutton <duttondj@vt.edu>
#
# NOTE: If you plan on using the usbblaster make sure you are member of the plugdev group.
-# NOTE: Altera has dramatically changed their packing in regards to version 12. This
-# PKGBUILD will install the full Altera suite now. Be aware that the space requirement
-# for installation is around 14GB but packaging may require up to 54GB of space.
#
pkgname=quartus-free
-pkgver=16.0.0.211
-pkgrel=2
+_mainver=18.0
+# Keep dot in _patchver
+_patchver=.0
+_buildver=614
+_basever=.0.614
+pkgver=${_mainver}${_patchver}.${_buildver}
+pkgrel=1
pkgdesc="Quartus Prime Lite Edition design software for Altera FPGA's"
-arch=('i686' 'x86_64')
+arch=('x86_64')
url="https://dl.altera.com/?edition=lite"
license=('custom')
-_build_nr=$(echo ${pkgver} | cut -d '.' -f4)
-_alteradir="/opt/altera/${pkgver%.*.*}"
-
-# Change this to "ae" if using ModelSim Subscription Edition
-_modelsimver="ase"
+_alteradir="/opt/altera/${_mainver}"
# According to the installer script, these dependencies are needed for the installer
-if [[ $CARCH = i686 ]]
-then
- depends=('desktop-file-utils' 'expat' 'fontconfig' 'freetype2'
- 'glibc' 'gtk2' 'libcanberra' 'libpng' 'libpng12' 'libice' 'libsm'
- 'util-linux' 'ncurses' 'ncurses5-compat-libs' 'tcl' 'tcllib'
- 'zlib' 'libx11' 'libxau' 'libxdmcp' 'libxext' 'libxft'
- 'libxrender' 'libxt' 'libxtst')
-fi
-
-if [[ $CARCH = x86_64 ]]
-then
- depends=('desktop-file-utils' 'expat' 'fontconfig' 'freetype2'
- 'glibc' 'gtk2' 'libcanberra' 'libpng' 'libpng12' 'libice' 'libsm'
- 'util-linux' 'ncurses' 'tcl' 'tcllib' 'zlib' 'libx11' 'libxau'
- 'libxdmcp' 'libxext' 'libxft' 'libxrender' 'libxt' 'libxtst'
-
- 'lib32-expat' 'lib32-fontconfig' 'lib32-freetype2' 'lib32-glibc'
- 'lib32-gtk2' 'lib32-libcanberra' 'lib32-libpng' 'lib32-libpng12'
- 'lib32-libice' 'lib32-libsm' 'lib32-util-linux' 'lib32-ncurses'
- 'lib32-ncurses5-compat-libs' 'lib32-zlib' 'lib32-libx11'
- 'lib32-libxau' 'lib32-libxdmcp' 'lib32-libxext' 'lib32-libxft'
- 'lib32-libxrender' 'lib32-libxt' 'lib32-libxtst')
-fi
-
-makedepends=('bash')
-
-# A more permanent source for lib32-freetype2-2.5.0.1-1-x86-64 should be found
-source=("https://download.altera.com/akdlm/software/acdsinst/${pkgver%.*.*}/${_build_nr}/ib_tar/Quartus-lite-${pkgver}-linux.tar"
- "https://gaming.jhu.edu/mirror/archlinux/multilib/os/x86_64/lib32-freetype2-2.5.0.1-1-x86_64.pkg.tar.xz" # Used for a freetype bugfix HACK
- "quartus.sh" "quartus.desktop" "51-usbblaster.rules" "quartus.install" "modelsim-ase.desktop" "modelsim-ae.desktop")
-md5sums=('A3AD9370D0773F4E6AC41D1EAC4C85EE'
- 'd3b3b7cdf874b6dd0b60c40d84dd9128'
- '067c444cae7fe31d3608245712b43ce8'
- '32b17cb8b992fc2dccd33d87f0dcd8ce'
- 'f5744dc4820725b93917e3a24df13da9'
- 'a331a81c44aed062a7af6d28542c3d82'
- 'bb11a542139ea8ded899ea42588ec0f7'
- 'eb4fbf2b7b3a2ffa59ccac57fff968e5')
-
-options=('!strip' '!upx') # Stripping and UPX will takes ages, I'd avoid it.
-install='quartus.install'
-PKGEXT=".pkg.tar"
-
-# Need to patch some Quartus/ModelSim files
-prepare() {
- cd "${srcdir}"
-
- echo "Notice: May require up to 54GB of free space during package building!"
+depends=('lib32-expat' 'lib32-fontconfig' 'lib32-freetype2' 'lib32-glibc'
+ 'lib32-gtk2' 'lib32-libcanberra' 'lib32-libpng' 'lib32-libice' 'lib32-libsm'
+ 'lib32-util-linux' 'lib32-ncurses' 'lib32-ncurses5-compat-libs' 'lib32-zlib'
+ 'lib32-libx11' 'lib32-libxau' 'lib32-libxdmcp' 'lib32-libxext' 'lib32-libxft'
+ 'lib32-libxrender' 'lib32-libxt' 'lib32-libxtst')
+
+makedepends=('unzip' 'metakit' 'tcl-cookfs' 'tdom' 'patchelf')
+
+source=("http://download.altera.com/akdlm/software/acdsinst/${_mainver}std${_patchver/.0//}/${_buildver}/ib_tar/Quartus-lite-${pkgver}-linux.tar"
+ 'quartus.sh' 'quartus.desktop' 'modelsim-ase.desktop' '51-usbblaster.rules' 'installFiles.tcl')
+sha256sums=('25d40a57c1c2e66a36f18fd7545b5ba39e75e7db6201bb0c86da8e909d5a8915'
+ '2a3d61e6f01aa16c9d3ddd40e9741b9fd080496db5437530b4e38faf6771c1ed'
+ 'f8ba2a84c6f7551bb4ab62d17f77e2814c70871ddb15f0276f1bf89cc6c674b8'
+ '1092f7fe1e6471f2f6fe12177ecb8781c26ec1fededd10f9e65de921debb8696'
+ 'dd9d33fa2698a0ec11ae86f4508f77e2e12bf4a21224f5b16640bc41d6c0999b'
+ 'e91f5fceffe9220f15edd6fc403c578ad260ba81debf27a4978d0c07fcd8649e')
+
+options=(!strip !debug) # Stripping will takes ages, I'd avoid it
+PKGEXT=".pkg.tar" # Same for compression
+
+package() {
+ echo "Notice: Requires around 34GB of free space during package building!"
echo "Extracting install binaries and scripts from downloaded tar..."
- # Run setup.sh to extract Quartus, ModelSim, and device/help files
- DISPLAY="" bash ./setup.sh --mode unattended --unattendedmodeui none --installdir "${srcdir}${_alteradir}"
+
+ # Quartus installer deadlocks when using recent glibc
+ # Work around it by doing the install ourselves
+
+ echo "==> Installing QuartusLiteSetup"
+ ./installFiles.tcl components/QuartusLiteSetup-${_mainver}${_basever}-linux.run "${pkgdir}${_alteradir}"
+
+ echo "==> Installing QuartusHelpSetup"
+ ./installFiles.tcl components/QuartusHelpSetup-${_mainver}${_basever}-linux.run "${pkgdir}${_alteradir}"
+ unzip -qq -o "${pkgdir}${_alteradir}/quartus/common/help/webhelp.zip" -d "${pkgdir}${_alteradir}/quartus/common/help/"
+ rm -f "${pkgdir}${_alteradir}/quartus/common/help/webhelp.zip"
+
+ echo "==> Installing ModelSimSetup"
+ ./installFiles.tcl components/ModelSimSetup-${_mainver}${_basever}-linux.run "${pkgdir}${_alteradir}" "product_key modelsim_ase"
+ unzip -qq -o "${pkgdir}${_alteradir}/modelsim_ase/altera/modelsim_altera_verilog.zip" -d "${pkgdir}${_alteradir}/modelsim_ase/altera"
+ rm -f "${pkgdir}${_alteradir}/modelsim_ase/altera/modelsim_altera_verilog.zip"
+ unzip -qq -o "${pkgdir}${_alteradir}/modelsim_ase/altera/modelsim_altera_vhdl.zip" -d "${pkgdir}${_alteradir}/modelsim_ase/altera"
+ rm -f "${pkgdir}${_alteradir}/modelsim_ase/altera/modelsim_altera_vhdl.zip"
+
+ for dev in arria_lite cyclone10lp cyclone cyclonev max10 max; do
+ echo "=> Installing component files for ${dev} devices"
+ unzip -qq -o components/${dev}-${_mainver}${_basever}.qdz -d "${pkgdir}${_alteradir}"
+ done
+
+ #echo "=> Installing update file QuartusSetup-${pkgver}"
+ #./installFiles.tcl components/QuartusSetup-${pkgver}-linux.run "${pkgdir}${_alteradir}"
echo "Finished extracting binaries and scripts."
- # Remove uninstaller and install logs since we have a working package management
- rm -r "${srcdir}${_alteradir}/uninstall"
- rm -r "${srcdir}${_alteradir}/logs"
-
+ # Remove useless unzip binaries
+ find "${pkgdir}${_alteradir}" -name "unzip" -or -name "unzip32" -delete
+ # Remove not installed folder
+ rmdir "${pkgdir}${_alteradir}/modelsim_ae"
+
+ # vlib needs this folder for some reason
+ ln -s ${_alteradir}/modelsim_ase/linuxaloem "${pkgdir}${_alteradir}/modelsim_ase/linuxpe"
+
+ # Fix interpreter for the license manager
+ for prog in quartus/linux64/{lmutil,lmgrd}; do
+ patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 "${pkgdir}${_alteradir}/${prog}"
+ done
+ for prog in ip/altera/mentor_vip_ae/common/linux{,_x86_64}/mgls/bin/lmgrd modelsim_ase/linuxaloem/{mgls/bin/,}{lmutil,lmgrd}; do
+ patchelf --set-interpreter /lib/ld-linux.so.2 "${pkgdir}${_alteradir}/${prog}"
+ done
+
+ # Create Lite "license" files
+ touch "${pkgdir}${_alteradir}/quartus/linux64/qvweid.fil"
+ touch "${pkgdir}${_alteradir}/modelsim_ase/lib/.awe"
+
+ # This file is removed for some reason
+ rm -f "${pkgdir}${_alteradir}/quartus/linux64/libsys_tb2_base.so"
+
+ # The installer creates this file
+ mkdir -p "${pkgdir}${_alteradir}/quartus/sopc_builder"
+ cat > "${pkgdir}${_alteradir}/quartus/sopc_builder/.sopc_builder" <<EOF
+# .sopc_builder configuration file:
+sopc_builder = "${_alteradir}/quartus/sopc_builder";
+sopc_legacy_dir = "";
+sopc_quartus_dir = "${_alteradir}/quartus/";
+sopc_modelsim_dir = "";
+sopc_ui_debug = "0";
+EOF
+
# Replace altera directory in integration files
- sed -i.bak "s,_alteradir,$_alteradir,g" quartus.sh
- sed -i.bak "s,_alteradir,$_alteradir,g" quartus.desktop
- sed -i.bak "s,_alteradir,$_alteradir,g" "modelsim-${_modelsimver}.desktop"
+ sed -i "s,_alteradir,${_alteradir},g" quartus.sh
+ sed -i "s,_alteradir,${_alteradir},g" quartus.desktop
+ sed -i "s,_alteradir,${_alteradir},g" modelsim-ase.desktop
# Fix modelsim startup code for Linux Kernel >=4.0
# see https://wiki.archlinux.org/index.php/Altera_Design_Software
- sed -i.bak "s,linux_rh60,linux,g" "${srcdir}${_alteradir}/modelsim_${_modelsimver}/vco"
+ sed -i 's,linux_rh60,linux,g' "${pkgdir}${_alteradir}/modelsim_ase/vco"
- # Tell ModelSim where to find the specific lib32-freetype2 libraries it requires
- # see https://wiki.archlinux.org/index.php/Altera_Design_Software#With_freetype2_2.5.0.1-1
- sed -i.bak2 "10s,^,export LD_LIBRARY_PATH=${_alteradir}/modelsim_${_modelsimver}/lib \n,g" "${srcdir}${_alteradir}/modelsim_${_modelsimver}/vco"
-}
+ # Modelsim bundles a copy of tkImg linked to old versions of libs
+ # Replace by system version
+ rm -rf "${pkgdir}${_alteradir}/modelsim_ase/linuxaloem/Img1.3"
+ ln -s /usr/lib32/Img[0-9]* "${pkgdir}${_alteradir}/modelsim_ase/linuxaloem/Img"
-package() {
- # Copy Quartus over to pkgdir for installation
- mkdir -p "${pkgdir}${_alteradir}"
- cp -r "${srcdir}${_alteradir}"/* "${pkgdir}${_alteradir}"
+ # Suppress spurious warning about linux-gate.so.1
+ sed -i '/msg_system/a suppress = 3116' "${pkgdir}${_alteradir}/modelsim_ase/modelsim.ini"
- # Place the lib32-freetype2 libraries where ModelSim is now expecting them to be
- # see https://wiki.archlinux.org/index.php/Altera_Design_Software#With_freetype2_2.5.0.1-1
- install -D -m755 usr/lib32/libfreetype.so* "${pkgdir}${_alteradir}/modelsim_${_modelsimver}/lib"
-
# Copy license file
install -D -m644 "${pkgdir}${_alteradir}/licenses/license.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
@@ -108,5 +129,5 @@ package() {
install -D -m755 quartus.sh "${pkgdir}/etc/profile.d/quartus.sh"
install -D -m644 51-usbblaster.rules "${pkgdir}/etc/udev/rules.d/51-usbblaster.rules"
install -D -m644 quartus.desktop "${pkgdir}/usr/share/applications/quartus.desktop"
- install -D -m644 modelsim-${_modelsimver}.desktop "${pkgdir}/usr/share/applications/modelsim-${_modelsimver}.desktop"
+ install -D -m644 modelsim-ase.desktop "${pkgdir}/usr/share/applications/modelsim-ase.desktop"
}