aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--development/gnatstudio-bin/README7
-rw-r--r--development/gnatstudio-bin/doinst.sh14
-rw-r--r--development/gnatstudio-bin/douninst.sh1
-rw-r--r--development/gnatstudio-bin/gnatstudio-bin.SlackBuild269
-rw-r--r--development/gnatstudio-bin/gnatstudio-bin.csh3
-rw-r--r--development/gnatstudio-bin/gnatstudio-bin.info10
-rw-r--r--development/gnatstudio-bin/gnatstudio-bin.sh3
-rw-r--r--development/gnatstudio-bin/slack-desc19
8 files changed, 326 insertions, 0 deletions
diff --git a/development/gnatstudio-bin/README b/development/gnatstudio-bin/README
new file mode 100644
index 000000000000..907f306d2782
--- /dev/null
+++ b/development/gnatstudio-bin/README
@@ -0,0 +1,7 @@
+gnatstudio-bin (GNAT Studio)
+
+GNAT Studio is a lightweight, extensible IDE, intended to develop
+high-integrity software in Ada and SPARK, with support for C and
+C++ as well.
+
+This is a binary package.
diff --git a/development/gnatstudio-bin/doinst.sh b/development/gnatstudio-bin/doinst.sh
new file mode 100644
index 000000000000..e633e9fb82e6
--- /dev/null
+++ b/development/gnatstudio-bin/doinst.sh
@@ -0,0 +1,14 @@
+# Update gdkpixbuf loaders cache
+
+basedir=/opt/gnatstudio
+LD_LIBRARY_PATH=$basedir/lib/gnatstudio:$LD_LIBRARY_PATH \
+GDK_PIXBUF_MODULE_FILE=$basedir/lib/gnatstudio/gdk-pixbuf-2.0/2.10.0/loaders.cache \
+GDK_PIXBUF_MODULEDIR=$basedir/lib/gnatstudio/gdk-pixbuf-2.0/2.10.0/loaders \
+./$basedir/bin/gdk-pixbuf-query-loaders --update-cache
+
+# Update immodules cache
+
+LD_LIBRARY_PATH=$basedir/lib/gnatstudio:$LD_LIBRARY_PATH \
+GTK_IM_MODULE_FILE=$basedir/lib/gnatstudio/gtk-3.0/3.0.0/immodules.cache \
+GTK_PATH=$basedir/lib/gnatstudio/gtk-3.0 \
+./$basedir/bin/gtk-query-immodules-3.0 --update-cache
diff --git a/development/gnatstudio-bin/douninst.sh b/development/gnatstudio-bin/douninst.sh
new file mode 100644
index 000000000000..772e50e06e07
--- /dev/null
+++ b/development/gnatstudio-bin/douninst.sh
@@ -0,0 +1 @@
+rm -rf /opt/gnatstudio
diff --git a/development/gnatstudio-bin/gnatstudio-bin.SlackBuild b/development/gnatstudio-bin/gnatstudio-bin.SlackBuild
new file mode 100644
index 000000000000..98723d7a844e
--- /dev/null
+++ b/development/gnatstudio-bin/gnatstudio-bin.SlackBuild
@@ -0,0 +1,269 @@
+#!/bin/bash
+
+# Slackware build script for gnatstudio-bin
+
+# Copyright 2024, Zhu, Qun-Ying
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=gnatstudio-bin
+VERSION=${VERSION:-25.0w.20240506}
+SRC_FILE="gnatstudio-25.0w-20240506-x86_64-linux-bin.tar.gz"
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ x86_64 ) ARCH=x86_64 ;;
+ * ) echo "Only x86_64 is supported."
+ exit ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+
+mkdir -p $PKG/opt/gnatstudio
+tar xvf $CWD/$SRC_FILE -C $PKG/opt/gnatstudio --strip-components=1
+cd $PKG/opt/gnatstudio
+rm doinstall
+chown -R root:root .
+
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+mkdir -p $PKG/etc/profile.d
+cat $CWD/gnatstudio-bin.sh > $PKG/etc/profile.d/gnatstudio-bin.sh
+cat $CWD/gnatstudio-bin.csh > $PKG/etc/profile.d/gnatstudio-bin.csh
+chmod +x $PKG/etc/profile.d/*
+
+# the binary release of gnatstudio has so many duplicate files, most of them
+# are suppose to be symbolic links :(
+# change directory to support libs and replase those duplicate files with
+# symbolic link
+(cd $PKG/opt/gnatstudio/lib/gnatstudio/
+ ln -sf libatk-1.0.so.0 libatk-1.0.so
+ ln -sf libatk-bridge-2.0.so.0 libatk-bridge-2.0.so
+ ln -sf libatspi.so.0 libatspi.so
+ ln -sf libcairo-gobject.so.2 libcairo-gobject.so
+ ln -sf libcairo-script-interpreter.so.2 libcairo-script-interpreter.so
+ ln -sf libcairo.so.2 libcairo.so
+ ln -sf libcroco-0.6.so.3 libcroco-0.6.so
+ ln -sf libcups.so.2 libcups.so
+ ln -sf libcupsimage.so.2 libcupsimage.so
+ ln -sf libdbus-1.so.3 libdbus-1.so
+ ln -sf libepoxy.so.0 libepoxy.so
+ ln -sf libexpat.so.1 libexpat.so
+ ln -sf libffi.so.8 libffi.so
+ ln -sf libfontconfig.so.1 libfontconfig.so
+ ln -sf libfreetype.so.6 libfreetype.so
+ ln -sf libfribidi.so.0 libfribidi.so
+ ln -sf libgailutil-3.so.0 libgailutil-3.so
+ ln -sf libgdk-3.so.0 libgdk-3.so
+ ln -sf libgdk_pixbuf-2.0.so.0 libgdk_pixbuf-2.0.so
+ ln -sf libgettextlib-0.20.2.so libgettextlib.so
+ ln -sf libgettextpo.so.0 libgettextpo.so
+ ln -sf libgettextsrc-0.20.2.so libgettextsrc.so
+ ln -sf libgio-2.0.so.0 libgio-2.0.so
+ ln -sf libgirepository-1.0.so.1 libgirepository-1.0.so
+ ln -sf libgladeui-2.so.13 libgladeui-2.so
+ ln -sf libglib-2.0.so.0 libglib-2.0.so
+ ln -sf libgmodule-2.0.so libgmodule-2.0.so.0
+ ln -sf libgnatcoll_core.so.25.0w libgnatcoll_core.so.25
+ ln -sf libgnatcoll_gmp.so.25.0w libgnatcoll_gmp.so.25
+ ln -sf libgnatcoll_iconv.so.25.0w libgnatcoll_iconv.so.25
+ ln -sf libgnatcoll_projects.so.25.0w libgnatcoll_projects.so.25
+ ln -sf libgnatcoll_python3.so.25.0w libgnatcoll_python3.so.25
+ ln -sf libgnatcoll_sql.so.25.0w libgnatcoll_sql.so.25
+ ln -sf libgnatcoll_sqlite.so.25.0w libgnatcoll_sqlite.so.25
+ ln -sf libgnatcoll_xref.so.25.0w libgnatcoll_xref.so.25
+ ln -sf libgobject-2.0.so.0 libgobject-2.0.so
+ ln -sf libgthread-2.0.so.0 libgthread-2.0.so
+ ln -sf libgtk-3.so.0 libgtk-3.so
+ ln -sf libgtkada.so.25.0w libgtkada.so.25
+ ln -sf libharfbuzz-gobject.so.0 libharfbuzz-gobject.so
+ ln -sf libharfbuzz-subset.so.0 libharfbuzz-subset.so
+ ln -sf libharfbuzz.so.0 libharfbuzz.so
+ ln -sf libjpeg.so.8 libjpeg.so
+ ln -sf libpango-1.0.so.0 libpango-1.0.so
+ ln -sf libpangocairo-1.0.so.0 libpangocairo-1.0.so
+ ln -sf libpangoft2-1.0.so.0 libpangoft2-1.0.so
+ ln -sf libpixman-1.so.0 libpixman-1.so
+ ln -sf libpng16.so.16 libpng16.so
+ ln -sf libpng16.so libpng.so
+ ln -sf librsvg-2.so.2 librsvg-2.so
+ ln -sf libtextstyle.so.0 libtextstyle.so
+ ln -sf libxml2.so.2 libxml2.so
+ ln -sf libxmlada_dom.so.25.0w libxmlada_dom.so.25
+ ln -sf libxmlada_input_sources.so.25.0w libxmlada_input_sources.so.25
+ ln -sf libxmlada_sax.so.25.0w libxmlada_sax.so.25
+ ln -sf libxmlada_schema.so.25.0w libxmlada_schema.so.25
+ ln -sf libxmlada_unicode.so.25.0w libxmlada_unicode.so.25
+ ln -sf libz.so.1 libz.so
+ chmod +x libgcc_s* preloadable_libintl.so
+)
+(cd $PKG/opt/gnatstudio/share/gnatstudio/python/lib/python3.9/site-packages/libadalang/
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libadalang.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libadasat.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgcc_s.so.1
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnarl-25.20240411.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnat-25.20240411.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnatcoll_core.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnatcoll_core.so.25.0w
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnatcoll_gmp.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnatcoll_gmp.so.25.0w
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnatcoll_iconv.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnatcoll_iconv.so.25.0w
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnatcoll_projects.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgnatcoll_projects.so.25.0w
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgpr.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libgpr2.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/liblangkit_support.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libprettier_ada.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libvss-gnat.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libvss-json.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libvss-regexp.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libvss.so
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_dom.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_dom.so.25.0w
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_input_sources.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_input_sources.so.25.0w
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_sax.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_sax.so.25.0w
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_schema.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_schema.so.25.0w
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_unicode.so.25
+ ln -sf /opt/gnatstudio/lib/gnatstudio/libxmlada_unicode.so.25.0w
+)
+(cd $PKG/opt/gnatstudio/share/doc/gnatstudio/html/tutorial
+ rm -rf _static
+ ln -sf /opt/gnatstudio/share/doc/gnatdoc/html/users_guide/_static
+ cd $PKG/opt/gnatstudio/share/doc/gnatstudio/html/users_guide
+ rm -rf _static
+ ln -sf /opt/gnatstudio/share/doc/gnatdoc/html/users_guide/_static
+)
+# move some packages only in
+# opt/gnatstudio/libexec/gnatstudio/gnathub/share/gnathub/python
+# to opt/gnatstudio/share/gnatstudio/python, then replace it with a softlink
+ python_libexec_path="$PKG/opt/gnatstudio/libexec/gnatstudio/gnathub/share/gnathub/python/"
+ python_share_path="$PKG/opt/gnatstudio/share/gnatstudio/python"
+ mv ${python_libexec_path}/bin/flask ${python_share_path}/bin
+ mv ${python_libexec_path}/bin/pygmentize ${python_share_path}/bin
+
+( cd ${python_libexec_path}/lib/python3.9/site-packages
+ rm -rf _distutils_hack pip* pkg_resources setuptools* wheel* README.txt \
+ distutils-precedence.pth
+)
+ mv ${python_libexec_path}/lib/python3.9/site-packages/* ${python_share_path}/lib/python3.9/site-packages/
+ rm -rf ${python_libexec_path}
+
+( cd $PKG/opt/gnatstudio/libexec/gnatstudio/gnathub/share/gnathub/
+ ln -sf /opt/gnatstudio/share/gnatstudio/python
+)
+
+function symlink_duplicate_file() {
+ file_prefix=$(echo $1 | rev | cut -d . -f 3- | rev)
+ file0=${file_prefix}.pyc
+ file1=${file_prefix}.opt-1.pyc
+ file2=${file_prefix}.opt-2.pyc
+ sum0=$(md5sum $file0 2> /dev/null | cut -d ' ' -f 1)
+ sum1=$(md5sum $file1 2> /dev/null | cut -d ' ' -f 1)
+ sum2=$(md5sum $file2 2> /dev/null | cut -d ' ' -f 1)
+ if [ ! -z "$sum2" -a "$sum2" = "$sum1" ]; then
+ ln -sf $file2 $file1
+ fi
+ if [ ! -z "$sum1" -a "$sum0" = "$sum1" ]; then
+ ln -sf $file1 $file0
+ fi
+ if [ ! -z "$sum2" -a "$sum2" = "$sum0" ]; then
+ ln -sf $file2 $file0
+ fi
+}
+
+function remove_duplicate_pycache_files() {
+ base_name=$(basename $1)
+ if [ "$base_name" = "__pycache__" ] ; then
+ (cd $1
+ mapfile -t match_files < <(find -name "*.opt-1.pyc" -printf '%f\n')
+ for each_file in "${match_files[@]}"; do
+ symlink_duplicate_file $each_file
+ done
+ if [ "$1" = "$PKG/opt/gnatstudio/share/gnatstudio/python/lib/python3.9/test/__pycache__" ]; then
+ if [ -f "test_tcl.cpython-39.opt-2.pyc" ]; then
+ symlink_duplicate_file "test_tcl.cpython-39.opt-2.pyc"
+ elif [ -f "test_pprint.cpython-39.opt-2.pyc" ]; then
+ symlink_duplicate_file "test_pprint.cpython-39.opt-2.pyc"
+ else
+ echo "no opt-2.pyc found"
+ fi
+ fi
+ )
+ else
+ mapfile -t subdirs < <(find $1 -maxdepth 1 -type d)
+ for each_subdir in "${subdirs[@]}" ; do
+ if [ "$each_subdir" != "$1" ]; then
+ remove_duplicate_pycache_files $each_subdir
+ fi
+ done
+ fi
+}
+
+( cd ${python_share_path}/bin
+ ln -sf coverage-3.9 coverage3
+ ln -sf coverage-3.9 coverage
+ ln -sf python3 python
+
+
+ # use system terminfo
+ cd ${python_share_path}/lib/python3.9/lib-dynext/share
+ rm -rf terminfo
+ ln -sf /usr/share/terminfo
+
+ remove_duplicate_pycache_files ${python_share_path}/lib/python3.9
+)
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+mv COPYING3 README $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/douninst.sh > $PKG/install/douninst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/development/gnatstudio-bin/gnatstudio-bin.csh b/development/gnatstudio-bin/gnatstudio-bin.csh
new file mode 100644
index 000000000000..de8566498db1
--- /dev/null
+++ b/development/gnatstudio-bin/gnatstudio-bin.csh
@@ -0,0 +1,3 @@
+#!/bin/csh
+setenv PATH ${PATH}:/opt/gnatstudio/bin
+setenv GNATSTUDIO_DOC_PATH /opt/gnatstudio/share/doc/gnatstudio/html
diff --git a/development/gnatstudio-bin/gnatstudio-bin.info b/development/gnatstudio-bin/gnatstudio-bin.info
new file mode 100644
index 000000000000..03794f184530
--- /dev/null
+++ b/development/gnatstudio-bin/gnatstudio-bin.info
@@ -0,0 +1,10 @@
+PRGNAM="gnatstudio-bin"
+VERSION="25.0w.20240506"
+HOMEPAGE="https://github.com/AdaCore/gnatstudio/"
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://github.com/AdaCore/gnatstudio/releases/download/gnatstudio-cr-20240506/gnatstudio-25.0w-20240506-x86_64-linux-bin.tar.gz"
+MD5SUM_x86_64="64608fec05da9eb42a4bb3455975f232"
+REQUIRES=""
+MAINTAINER="Zhu Qun-Ying"
+EMAIL="zhu.qunying@gmail.com"
diff --git a/development/gnatstudio-bin/gnatstudio-bin.sh b/development/gnatstudio-bin/gnatstudio-bin.sh
new file mode 100644
index 000000000000..8d82904e3c43
--- /dev/null
+++ b/development/gnatstudio-bin/gnatstudio-bin.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+export PATH=$PATH:/opt/gnatstudio/bin
+export GNATSTUDIO_DOC_PATH=/opt/gnatstudio/share/doc/gnatstudio/html
diff --git a/development/gnatstudio-bin/slack-desc b/development/gnatstudio-bin/slack-desc
new file mode 100644
index 000000000000..4c37e6f20dee
--- /dev/null
+++ b/development/gnatstudio-bin/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+gnatstudio-bin: gnatstudio-bin (GNAT Studio)
+gnatstudio-bin:
+gnatstudio-bin: GNAT Studio is a lightweight, extensible IDE, intended to develop
+gnatstudio-bin: high-integrity software in Ada and SPARK, with support for C and
+gnatstudio-bin: C++ as well.
+gnatstudio-bin:
+gnatstudio-bin: https://github.com/AdaCore/gnatstudio
+gnatstudio-bin:
+gnatstudio-bin:
+gnatstudio-bin:
+gnatstudio-bin: