desktop/flatpak-builder: Added (sandboxing tool).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Vincent Batts 2018-11-12 07:38:21 +07:00 committed by Willy Sudiarto Raharjo
parent 39b31288b7
commit 5d94d11544
4 changed files with 170 additions and 0 deletions

View file

@ -0,0 +1,40 @@
Flatpak
Flatpak is the new framework for desktop applications on Linux
Distributing applications on Linux is a pain: different distributions in
multiple versions, each with their own versions of libraries and packaging
formats. Flatpak is here to change all that. It allows the same app to be
installed on different Linux distributions, including different versions. And
it has been designed from the ground up with security in mind, so that apps
are isolated from each other and from the host system.
You can find many apps already available on https://flathub.org/
Apps that require pulse audio (like steam, skype, etc) need PULSE_SERVER
environment variable to be set. This is not set for most shells in slackware
by default. One way I found to set this is:
```
export `xprop -root -notype PULSE_SERVER | tr -d ' '`
```
Some of the examples from http://flatpak.org/#users are relying on polkit
helpers, that expect a user in the 'wheel' group to have privileges for, but
default polkit admin rule for slackware is just the root user.
So, if you run a command like:
```
flatpak remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo
flatpak remote-add --from gnome-apps https://sdk.gnome.org/gnome-apps.flatpakrepo
```
as a limited user, you will get a polkit prompt for root's password. This is
because the default location for establishing these repos is in
`/var/lib/flatpak` and requires admin privileges.
You can optionally add the flag `--user` to flatpak commands, and it will
instead manage the repos in `~/.local/share/flatpak`.
There are examples of flatpak runtimes and applications on their wiki:
https://github.com/flatpak/flatpak/wiki/Examples
They too have desktop launchers search by desktops like KDE and XFCE, it will
require a logout, as /etc/profile.d/flatpak.sh will need to be sourced.

View file

@ -0,0 +1,101 @@
#!/bin/sh
# Slackware build script for flatpak
# Copyright 2018 Vincent Batts <vbatts@hashbangbash.com>
# 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.
PRGNAM=flatpak-builder
VERSION=${VERSION:-1.0.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
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 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--build=$ARCH-slackware-linux
make
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a README.md COPYING NEWS ABOUT-NLS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.SBo
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="flatpak-builder"
VERSION="1.0.1"
HOMEPAGE="https://flatpak.org/"
DOWNLOAD="https://github.com/flatpak/flatpak-builder/releases/download/1.0.1/flatpak-builder-1.0.1.tar.xz"
MD5SUM="a29d824c7d84d5bd2112a1b9de872b33"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="flatpak"
MAINTAINER="Vincent Batts"
EMAIL="vbatts@hashbangbash.com"

View file

@ -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------------------------------------------------------|
flatpak-builder: flatpak-builder (sandboxing desktop application building tool)
flatpak-builder:
flatpak-builder: flatpak-builder is a tool for building flatpaks from sources.
flatpak-builder:
flatpak-builder: Site: https://github.com/flatpak/flatpak-builder/
flatpak-builder:
flatpak-builder:
flatpak-builder:
flatpak-builder:
flatpak-builder:
flatpak-builder: