From 1acb1b49f2ec27526ac6634f43f9f07296519c2b Mon Sep 17 00:00:00 2001 From: fusion809 Date: Mon, 31 Oct 2016 05:59:04 +1000 Subject: [PATCH] Updating --- .gitignore | 1 + recipes/meta/netbeans/Recipe | 246 +++++++++++++++++++++++++++++ recipes/meta/netbeans/netbeans.yml | 43 +++++ 3 files changed, 290 insertions(+) create mode 100755 recipes/meta/netbeans/Recipe create mode 100644 recipes/meta/netbeans/netbeans.yml diff --git a/.gitignore b/.gitignore index c99e445..1dd7883 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,4 @@ supertux2 qBittorrent gvim-gtk2 gvim-gtk3 +recipes/meta/netbeans/netbeans diff --git a/recipes/meta/netbeans/Recipe b/recipes/meta/netbeans/Recipe new file mode 100755 index 0000000..0490c7e --- /dev/null +++ b/recipes/meta/netbeans/Recipe @@ -0,0 +1,246 @@ +#!/usr/bin/env bash + +# Halt on errors +set -e + +# Check dependencies +which wget >/dev/null 2>&1 || ( echo wget missing && exit 1 ) +which grep >/dev/null 2>&1 || ( echo grep missing && exit 1 ) +which sed >/dev/null 2>&1 || ( echo sed missing && exit 1 ) +which cut >/dev/null 2>&1 || ( echo cut missing && exit 1 ) +which dpkg-scanpackages >/dev/null 2>&1 || ( echo dpkg-scanpackages missing && exit 1 ) + +# If the yaml file doesn't exist locally, get it from GitHub +if [ ! -f "$1" ] ; then + YAMLFILE=/tmp/_recipe.yml + wget -q "https://github.com/probonopd/AppImages/raw/master/recipes/meta/$1.yml" -O "$YAMLFILE" +else + YAMLFILE=$(readlink -f $1) +fi + +# Function to parse yaml +# https://gist.github.com/epiloque/8cf512c6d64641bde388 +# based on https://gist.github.com/pkuczynski/8665367 +parse_yaml() { + local prefix=$2 + local s + local w + local fs + s='[[:space:]]*' + w='[a-zA-Z0-9_]*' + fs="$(echo @|tr @ '\034')" + sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s[:-]$s\(.*\)$s\$|\1$fs\2$fs\3|p" "$1" | + awk -F"$fs" '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i/dev/null || true + generate_status + if [ -e sources.list ] ; then + rm sources.list + fi + for SOURCE in "${_ingredients_sources[@]}" ; do + echo "${SOURCE}" >> sources.list + done + for PPA in "${_ingredients_ppas[@]}" ; do + echo "deb http://ppa.launchpad.net/${PPA}/ubuntu ${_ingredients_dist} main" >> sources.list + done +fi + +if [ ! -z "${_ingredients_script[0]}" ] ; then + # Execute extra steps defined in recipe + shell_execute $YAMLFILE _ingredients_script +fi + +if [ ! -z "${_ingredients_dist}" ] ; then + # Some projects provide raw .deb files without a repository + # hence we create our own local repository as part of + # the AppImage creation process in order to "install" + # the package using apt-get as normal + if [ ! -z "${_ingredients_debs[0]}" ] ; then + which dpkg-scanpackages >/dev/null 2>&1 || ( echo dpkg-scanpackages missing && exit 1 ) + for DEB in "${_ingredients_debs[@]}" ; do + if [ ! -f $(basename "$DEB") ] ; then + wget -c $DEB + fi + done + fi + dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz + echo "deb file:$(readlink -e $PWD) ./" >> sources.list + + INSTALL=$LOWERAPP + if [ ! -z "${_ingredients_package}" ] ; then + INSTALL="${_ingredients_package}" + fi + + apt-get $OPTIONS update || true + URLS=$(apt-get $OPTIONS -y install --print-uris "$INSTALL" ${_ingredients_packages[@]} | cut -d "'" -f 2 | grep -e "^http") + for URL in $URLS ; do + if [ ! -f $(basename "$URL") ] ; then + wget -c $URL + fi + done +fi + +mkdir -p ./$APP.AppDir/ +cd ./$APP.AppDir/ + +mkdir -p usr/bin usr/lib +find ../*.deb -exec dpkg -x {} . \; || true + +# Try to copy icons to standard locations where appimaged can pick them up +mkdir -p usr/share/icons/hicolor/{22x22,24x24,32x32,48x48,64x64,128x128,256x256,512x512}/apps/ +find . -path *icons* -path *22* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/22x22/apps/ \; || true +find . -path *icons* -path *24* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/24x24/apps/ \; || true +find . -path *icons* -path *32* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/32x32/apps/ \; || true +find . -path *icons* -path *48* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/48x48/apps/ \; || true +find . -path *icons* -path *64* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/64x64/apps/ \; || true +find . -path *icons* -path *128* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/128x128/apps/ \; || true +find . -path *icons* -path *256* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/256x256/apps/ \; || true +find . -path *icons* -path *512* -name "*$LOWERAPP*" -exec cp {} usr/share/icons/hicolor/512x512/apps/ \; || true + +get_icon +get_apprun +get_desktop + +# Prevent Qt from loading plugins from the system +unset QTPATH +QTPATH=$(find usr/lib -type d -name qt4 -or -name qt5 | sed -e 's|usr/|../|g') +if [ ! -z $QTPATH ] ; then +cat > usr/bin/qt.conf < VERSION + +script: + - mkdir -p usr/lib/jvm/ + - tar xf ../jre* -C usr/lib/jvm/ + - mkdir -p bin + - ( cd ./bin; ln -sf ../usr/lib/jvm/jre*/bin/java . ) + - unzip ../netbeans*zip -d usr/ + - rm -rf usr/bin + - mv ./usr/netbeans ./usr/bin + - ( cd ./usr/bin; ln -sf bin/netbeans . ) + - find . -name *.exe -exec rm {} \; + - rm -rf ./usr/bin/cnd/bin/SunOS* + - rm -rf ./usr/bin/cnd/bin/MacOSX* + - rm -rf ./usr/bin/cnd/bin/Linux-x86 + - rm -rf ./usr/bin/cnd/bin/Linux-sparc_64 + - rm -rf ./usr/bin/dlight/bin/SunOS* + - rm -rf ./usr/bin/dlight/bin/Linux-arm + - rm -rf ./usr/bin/dlight/bin/Linux-sparc + - rm -rf ./usr/bin/dlight/bin/Linux-x86 + - rm -rf ./usr/bin/dlight/bin/MacOS* + - rm -rf ./usr/bin/ide/bin/nativeexecution/SunOS* + - rm -rf ./usr/bin/ide/bin/nativeexecution/Windows* + - rm -rf ./usr/bin/ide/bin/nativeexecution/MacOS* + - rm -rf ./usr/bin/ide/bin/nativeexecution/Linux-x86 + - rm -rf ./usr/bin/ide/bin/nativeexecution/Linux-sparc_64 + - cat > netbeans.desktop <<\EOF + - [Desktop Entry] + - Name=NetBeans + - Exec=netbeans + - Icon=netbeans + - Type=Application + - Categories=IDE;Development; + - Comment=NetBeans IDE + - EOF + - cp ./usr/bin/nb/netbeans.png netbeans.png