Merge pull request #35 from kubedzero/master

Update llfuse-1.3.6 to 1.3.8 to fix borg mount, add llfuse SlackBuild
This commit is contained in:
Derek Macias 2020-11-20 19:37:50 -07:00 committed by GitHub
commit bd4c3e1708
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 164 additions and 49 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,8 +0,0 @@
LLFUSE is a set of Python bindings for the low level FUSE API. It requires at
least FUSE 2.8.0 and supports both Python 2.x and 3.x.
LLFUSE was originally part of S3QL, but has been factored out so that it can
be used by other projects as well.
The SlackBuild detects presence of Python 3.x and if found,
then also bindings for Python 3.x are built.

View File

@ -0,0 +1,94 @@
## Package Description
LLFUSE is a set of Python bindings for the low level FUSE API. It requires at
least FUSE 2.8.0 and supports both Python 2.x and 3.x.
LLFUSE was originally part of S3QL, but has been factored out so that it can
be used by other projects as well.
The SlackBuild detects presence of Python 3.x and if found,
then also bindings for Python 3.x are built.
Python-LLFUSE is no longer actively maintained. Unless you are stuck with Python 2.x or libfuse 2.x, we recommended to use the pyfuse3 module instead: https://github.com/libfuse/pyfuse3
## kubedzero notes
* I set up Slackware-current (15.0) based on a Princeton ISO http://mirror.math.princeton.edu/pub/slackware/slackware-iso/slackware-current-iso/ and then updated all the packages.
* I made sure `fuse-2.9.9` and `fuse3-3.10.0` were installed, along with `python`, `python3`, `pip`, and `setuptools`
* I copied over `slack-desc` and `llfuse.SlackBuild` from this repository, making sure the SlackBuild is executable. The other files don't seem to be used.
* I then downloaded the latest ZIP source of llfuse from https://github.com/python-llfuse/python-llfuse/archive/release-1.3.8.zip and put it in the same directory as the SlackBuild script.
* Finally, I executed the SlackBuild script. It unzips the Github source archive to a directory created in `/tmp/` and runs `setup.py build_cython` as well as `setup.py install` with both Python 2 and Python 3. It also copies some other files over, and then packages the compiled files into a Slack-installable `/tmp/llfuse-1.3.8-x86_64-1_SBo.txz` file
* NOTE: The SlackBuild script will need to be updated with a new version number to build future versions of this library
* NOTE: https://github.com/python-llfuse/python-llfuse/blob/master/developer-notes/release-process.md had some additional setup and development notes
* NOTE: If you see `gcc: error: src/llfuse.c: No such file or directory` after `gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-pro -o build/temp.linux-x86_64-2.7/src/llfuse.o -D_FILE_OFFSET_BITS=64 -I/usr/include/-Wsign-compare -DLLFUSE_VERSION="1.3.7" -Wno-unused-function -Wno-implicit-fallthroerror=unreachable-code -Werror=conversion -Werror=sign-compare -fno-strict-aliasing` it's possible that `setup.py build_cython` did not run to completion and thus did not create the compiled `.c` files
## Package versions
These are the package versions installed during the 2020/11 build of llfuse:
```
Package Version
-------------- ---------
-lxc 0.1
appdirs 1.4.4
Brotli 1.0.9
caca 0.99b19
certifi 2020.11.8
chardet 3.0.4
cupshelpers 1.0
Cython 0.29.21
distro 1.5.0
docutils 0.16
future 0.18.2
getmail6 6.9
gpg 1.14.0
gyp 0.1
idna 2.10
include-server 3.3.3
isc 2.0
libwebp 0.0
M2Crypto 0.36.0
Mako 1.1.3
mercurial 5.6
meson 0.56.0
netsnmp-python 1.0a1
notify2 0.3.1
packaging 20.4
Pillow 8.0.1
pip 20.2.4
ply 3.11
pssh 2.3.4
pwquality 1.4.4
pycairo 1.20.0
pycups 2.0.1
pycurl 7.43.0.6
Pygments 2.7.2
PyGObject 3.36.1
pyparsing 2.4.7
PyQt4-sip 4.19.23
PyQt5 5.15.1
PyQt5-sip 12.8.1
python-sane 2.8.3
pyxdg 0.27
QScintilla 2.11.5
requests 2.25.0
rpm 4.16.0
SCons 4.0.1
setuptools 50.3.2
sip 5.4.0
six 1.15.0
toml 0.10.2
undervolt 0.3.0
urllib3 1.26.2
```
```
root@slack:~# slackpkg search <packageName>
[ installed ] - fuse-2.9.9-x86_64-1
[ installed ] - fuse3-3.10.0-x86_64-1
[ installed ] - python-pip-20.2.4-x86_64-2
[ installed ] - python-setuptools-50.3.2-x86_64-2
[ installed ] - python2-2.7.18-x86_64-2
[ installed ] - python3-3.9.0-x86_64-1
```

Binary file not shown.

89
source/SlackBuild/llfuse/llfuse.SlackBuild Normal file → Executable file
View File

@ -1,32 +1,39 @@
#!/bin/sh
# Slackware build script for LLFUSE
# Slackware build script for "llfuse".
# Adapted by kubedzero from https://slackbuilds.org/repository/14.2/python/llfuse/
# Copyright 2015 Andrzej Telszewski, Sabadell
# Copyright 2015-2016 Andrzej Telszewski, Sabadell
# Copyright 2016 Marcel Saegebarth <marc@mos6581.de>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
# Redistribution and use in source and binary forms, with or without
# modification, are 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.
# * Redistributions of source code 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.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "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 COPYRIGHT
# OWNER OR CONTRIBUTORS 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.
# Set these to tell the script what input/output files to use
PRGNAM=llfuse
VERSION=${VERSION:-1.3.8}
ARCHIVE="python-$PRGNAM-release-$VERSION"
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
# Determine architecture of build system
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
@ -35,11 +42,6 @@ if [ -z "$ARCH" ]; then
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
@ -54,14 +56,27 @@ else
LIBDIRSUFFIX=""
fi
set -e
# Halt on errors and print out each variable's state
set -ex
# NOTE: script checks working directory, execute from within same dir
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
# remove existing build output and recreate build directories
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
rm -rf "$PRGNAM-$VERSION" "$ARCHIVE"
# Unzip the repository code, rename it, and move into that directory
unzip "$CWD/$ARCHIVE.zip"
mv "$ARCHIVE" "$PRGNAM-$VERSION"
cd "$PRGNAM-$VERSION"
# Set permissions on files in the unzipped repository
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@ -69,25 +84,39 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Assumes Cython is already installed, build the C files in the repo
python setup.py build_cython
# Run the install using GCC, outputting to the $PKG build output
python setup.py install --root=$PKG
# Python 3 support.
# Python 3 support, rebuild using Python3
if $(python3 -c 'import sys' 2>/dev/null); then
python3 setup.py build_cython
python3 setup.py install --root=$PKG
fi
# Consecutive filtering of files and text to confirm the output is present
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
# Copy the documentation files into the $PKG build output
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html
cp -a examples LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
cp -a doc/html/*.html doc/html/searchindex.js doc/html/_static \
$PKG/usr/doc/$PRGNAM-$VERSION/html
cp -a examples Changes.rst LICENSE README.rst $PKG/usr/doc/$PRGNAM-$VERSION
## Copy the HTML documentation as well. Needs a certain Python build target,
## otherwise this doesn't succeed. Commented out for compatibility
# mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html
# cp -a doc/html/*.html doc/html/searchindex.js doc/html/_static \
# $PKG/usr/doc/$PRGNAM-$VERSION/html
# Copy the build script to the $PKG build output as well
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
# Copy the Slackware slack-desc text file to the $PKG build output
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
# Go to the $PKG build output and actually build the compiled TXZ package
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}

View File

@ -1,10 +1,10 @@
PRGNAM="llfuse"
VERSION="0.40"
HOMEPAGE="https://bitbucket.org/nikratio/python-llfuse/"
DOWNLOAD="https://bitbucket.org/nikratio/python-llfuse/downloads/llfuse-0.40.tar.bz2"
MD5SUM="bd8d07ddb6061ab03816e636efa37b5b"
VERSION="1.3.8"
HOMEPAGE="https://github.com/python-llfuse/python-llfuse"
DOWNLOAD="https://github.com/python-llfuse/python-llfuse/archive/release-1.3.8.zip"
MD5SUM="ed0164e4aaa62f4f0f302180b2a0b2e6"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="pysetuptools"
MAINTAINER="Andrzej Telszewski"
EMAIL="atelszewski@gmail.com"
REQUIRES=""
MAINTAINER="ThomasWaldmann"
EMAIL="tw@waldmann-edv.de"

View File

@ -11,9 +11,9 @@ llfuse:
llfuse: LLFUSE is a set of Python bindings for the low level FUSE API.
llfuse: It requires at least FUSE 2.8.0 and supports both Python 2.x and 3.x.
llfuse:
llfuse: Homepage: https://bitbucket.org/nikratio/python-llfuse/
llfuse:
llfuse:
llfuse:
llfuse: Warning - no longer maintained
llfuse: Python-LLFUSE is no longer actively maintained. Unless you are stuck
llfuse: with Python 2.x or libfuse 2.x, use the pyfuse3 module instead.
llfuse:
llfuse: Homepage: https://github.com/python-llfuse/python-llfuse
llfuse: