From b9eaaf853abd4250a6bc424914dae5189bc23de6 Mon Sep 17 00:00:00 2001 From: Slack Coder Date: Wed, 29 Nov 2023 10:35:20 -0500 Subject: Add GNU Taler Add the following packages and dependencies to build them from their git source repositories. - taler-exchange - taler-merchant - libeufin --- gnunet/gnunet.SlackBuild | 21 +- gnunet/gnunet.info | 8 +- google-go-lang/README | 58 ---- google-go-lang/google-go-lang.SlackBuild | 225 --------------- google-go-lang/google-go-lang.info | 12 - google-go-lang/slack-desc | 19 -- libeufin/README | 34 +++ libeufin/doinst.sh | 33 +++ libeufin/libeufin.SlackBuild | 83 ++++++ libeufin/libeufin.info | 8 + libeufin/patch/fix-version-sourcing.patch | 21 ++ .../httpd/sites-available/libeufin-bank.conf.new | 6 + libeufin/root/etc/libeufin/libeufin-bank.conf.new | 34 +++ libeufin/root/etc/libeufin/settings.json.new | 34 +++ libeufin/root/etc/rc.d/rc.libeufin-bank.new | 54 ++++ libeufin/slack-desc | 6 + postgresql/README | 14 + postgresql/README.SBo | 51 ++++ postgresql/doinst.sh | 40 +++ postgresql/postgresql.SlackBuild | 219 +++++++++++++++ postgresql/postgresql.info | 10 + postgresql/postgresql.logrotate | 9 + postgresql/rc.postgresql.new | 171 ++++++++++++ postgresql/setup.postgresql | 35 +++ postgresql/slack-desc | 19 ++ pydata-sphinx-theme/README | 1 + pydata-sphinx-theme/pydata-sphinx-theme.SlackBuild | 94 +++++++ pydata-sphinx-theme/pydata-sphinx-theme.info | 10 + pydata-sphinx-theme/slack-desc | 19 ++ python3-HTMLArk/README | 1 + python3-HTMLArk/python3-HTMLArk.SlackBuild | 93 +++++++ python3-HTMLArk/python3-HTMLArk.info | 10 + python3-HTMLArk/slack-desc | 15 + python3-pep621/README | 1 + python3-pep621/python3-pep621.SlackBuild | 94 +++++++ python3-pep621/python3-pep621.info | 10 + python3-pep621/slack-desc | 17 ++ sphinx-book-theme/README | 1 + sphinx-book-theme/slack-desc | 19 ++ sphinx-book-theme/sphinx-book-theme.SlackBuild | 94 +++++++ sphinx-book-theme/sphinx-book-theme.info | 10 + sphinx-theme-builder/README | 7 + sphinx-theme-builder/slack-desc | 19 ++ .../sphinx-theme-builder.SlackBuild | 93 +++++++ sphinx-theme-builder/sphinx-theme-builder.info | 10 + taler-exchange/README | 59 +++- taler-exchange/doinst.sh | 146 ++++++++++ taler-exchange/download.sh | 29 -- .../httpd/sites-available/taler-exchange.conf.new | 4 + taler-exchange/root/etc/rc.d/rc.taler-exchange.new | 305 +++++++++++++++++++++ .../etc/taler/conf.d/exchange-business.conf.new | 48 ++++ .../root/etc/taler/conf.d/exchange-coins.conf.new | 34 +++ .../root/etc/taler/conf.d/exchange-system.conf.new | 10 + .../exchange-accountcredentials-1.secret.conf.new | 16 ++ .../etc/taler/secrets/exchange-db.secret.conf.new | 10 + taler-exchange/slack-desc | 6 - taler-exchange/taler-exchange.SlackBuild | 49 +++- taler-exchange/taler-exchange.info | 8 +- taler-merchant/README | 35 ++- taler-merchant/doinst.sh | 41 +++ taler-merchant/download.sh | 29 -- .../httpd/sites-available/taler-merchant.conf.new | 22 ++ taler-merchant/root/etc/rc.d/rc.taler-merchant.new | 51 ++++ .../root/etc/taler/conf.d/merchant.conf.new | 10 + .../etc/taler/secrets/merchant-db.secret.conf.new | 8 + taler-merchant/taler-merchant.SlackBuild | 45 +-- taler-merchant/taler-merchant.info | 8 +- 67 files changed, 2383 insertions(+), 432 deletions(-) delete mode 100644 google-go-lang/README delete mode 100644 google-go-lang/google-go-lang.SlackBuild delete mode 100644 google-go-lang/google-go-lang.info delete mode 100644 google-go-lang/slack-desc create mode 100644 libeufin/README create mode 100644 libeufin/doinst.sh create mode 100755 libeufin/libeufin.SlackBuild create mode 100644 libeufin/libeufin.info create mode 100644 libeufin/patch/fix-version-sourcing.patch create mode 100644 libeufin/root/etc/httpd/sites-available/libeufin-bank.conf.new create mode 100644 libeufin/root/etc/libeufin/libeufin-bank.conf.new create mode 100644 libeufin/root/etc/libeufin/settings.json.new create mode 100644 libeufin/root/etc/rc.d/rc.libeufin-bank.new create mode 100644 libeufin/slack-desc create mode 100644 postgresql/README create mode 100644 postgresql/README.SBo create mode 100644 postgresql/doinst.sh create mode 100644 postgresql/postgresql.SlackBuild create mode 100644 postgresql/postgresql.info create mode 100644 postgresql/postgresql.logrotate create mode 100644 postgresql/rc.postgresql.new create mode 100644 postgresql/setup.postgresql create mode 100644 postgresql/slack-desc create mode 100644 pydata-sphinx-theme/README create mode 100644 pydata-sphinx-theme/pydata-sphinx-theme.SlackBuild create mode 100644 pydata-sphinx-theme/pydata-sphinx-theme.info create mode 100644 pydata-sphinx-theme/slack-desc create mode 100644 python3-HTMLArk/README create mode 100644 python3-HTMLArk/python3-HTMLArk.SlackBuild create mode 100644 python3-HTMLArk/python3-HTMLArk.info create mode 100644 python3-HTMLArk/slack-desc create mode 100644 python3-pep621/README create mode 100644 python3-pep621/python3-pep621.SlackBuild create mode 100644 python3-pep621/python3-pep621.info create mode 100644 python3-pep621/slack-desc create mode 100644 sphinx-book-theme/README create mode 100644 sphinx-book-theme/slack-desc create mode 100644 sphinx-book-theme/sphinx-book-theme.SlackBuild create mode 100644 sphinx-book-theme/sphinx-book-theme.info create mode 100644 sphinx-theme-builder/README create mode 100644 sphinx-theme-builder/slack-desc create mode 100644 sphinx-theme-builder/sphinx-theme-builder.SlackBuild create mode 100644 sphinx-theme-builder/sphinx-theme-builder.info create mode 100644 taler-exchange/doinst.sh delete mode 100755 taler-exchange/download.sh create mode 100644 taler-exchange/root/etc/httpd/sites-available/taler-exchange.conf.new create mode 100755 taler-exchange/root/etc/rc.d/rc.taler-exchange.new create mode 100644 taler-exchange/root/etc/taler/conf.d/exchange-business.conf.new create mode 100644 taler-exchange/root/etc/taler/conf.d/exchange-coins.conf.new create mode 100644 taler-exchange/root/etc/taler/conf.d/exchange-system.conf.new create mode 100644 taler-exchange/root/etc/taler/secrets/exchange-accountcredentials-1.secret.conf.new create mode 100644 taler-exchange/root/etc/taler/secrets/exchange-db.secret.conf.new create mode 100644 taler-merchant/doinst.sh delete mode 100755 taler-merchant/download.sh create mode 100644 taler-merchant/root/etc/httpd/sites-available/taler-merchant.conf.new create mode 100755 taler-merchant/root/etc/rc.d/rc.taler-merchant.new create mode 100644 taler-merchant/root/etc/taler/conf.d/merchant.conf.new create mode 100644 taler-merchant/root/etc/taler/secrets/merchant-db.secret.conf.new diff --git a/gnunet/gnunet.SlackBuild b/gnunet/gnunet.SlackBuild index 0a00c26..89b906d 100755 --- a/gnunet/gnunet.SlackBuild +++ b/gnunet/gnunet.SlackBuild @@ -23,7 +23,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=gnunet -VERSION=${VERSION:-0.15.3} +VERSION=${VERSION:-0.21.0} BUILD=${BUILD:-1} TAG=${TAG:-_slackcoder} @@ -60,14 +60,15 @@ rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +tar xvf $CWD/$PRGNAM-$VERSION*.tar.gz 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 {} \; + +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 {} \; ./configure \ --prefix=/usr \ @@ -79,9 +80,7 @@ cd $PRGNAM-$VERSION --disable-static \ --build=$ARCH-slackware-linux make -make DESTDIR="$PKG" install - -# make install does not exist for this project +DESTDIR="$PKG" make install 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 diff --git a/gnunet/gnunet.info b/gnunet/gnunet.info index 679a788..a22e14e 100644 --- a/gnunet/gnunet.info +++ b/gnunet/gnunet.info @@ -1,8 +1,8 @@ PRGNAM="gnunet" -VERSION="0.15.3" +VERSION="0.21.0" HOMEPAGE="https://gnunet.org" -DOWNLOAD="http://ftpmirror.gnu.org/gnunet/gnunet-0.15.3.tar.gz" -MD5SUM="af4851ee8752bdc2bff3745355921aba" -REQUIRES="jansson libmicrohttpd libsodium" +DOWNLOAD="https://ftpmirror.gnu.org/gnu/gnunet/gnunet-0.21.0.tar.gz" +MD5SUM="bea71cd62208138c69977db8fd96e8e1" +REQUIRES="libmicrohttpd postgresql" MAINTAINER="Slack Coder" EMAIL="slackcoder@server.ky" diff --git a/google-go-lang/README b/google-go-lang/README deleted file mode 100644 index 0663187..0000000 --- a/google-go-lang/README +++ /dev/null @@ -1,58 +0,0 @@ -The Go programming language is an open source project to make -programmers more productive. Go is expressive, concise, clean, -and efficient. Its concurrency mechanisms make it easy to write -programs that get the most out of multicore and networked machines, -while its novel type system enables flexible and modular program -construction. Go compiles quickly to machine code yet has the -convenience of garbage collection and the power of run-time -reflection. It's a fast, statically typed, compiled language that -feels like a dynamically typed, interpreted language. - -The tools are added to the path by putting go.sh and go.csh files in -/etc/profile.d and letting the system's /etc/profile or /etc/csh.login -pick it up. If you want to add any of Go's environment variables you -can add them there. - -Also, to easily setup a user-independent path for Go libraries to -be installed to and used, is the GOPATH environment variable. This -variable can be colon delimited. For example, once installing the -built google-go-lang package, then set in your user's ~/.bashrc -something like: - - export GOPATH="$HOME" - -Then, you'll be able to use the `go` command to install an additional -library that will not need root permission and will be in the -compiler's path. Like so: - - go get golang.org/x/tools/cmd/godoc - -Now in ~/src you'll have this source code checked-out, and a binary -built at ~/bin/godoc - -Since the golang idiom is very `go get'able as a limited user, -installed libraries from slackbuilds.org are located outside of GOROOT -(which is only for golang standard library), in /usr/share/gocode By -not setting a system-wide GOPATH defaulting to this location, then -it is up to the user of whether to include this system path as well, -like: - - export GOPATH="$HOME:/usr/share/gocode" - -This system source directory is primarly only for buildtime of -slackbuilds. - -This is because `go get' iterates through the paths provided, looking -for matching imports. If a match is not found, then is cloned to the -first path provided. You would not want this to be a system path, as -to need root privilege to clone source. - -As of go1.2, the 'go doc ...' command has been relocated to the -go.tools library (golang-googlecode-gotools), which provide `godoc`. - -As of go1.5, shared libraries are now supported. The flags to use -linking are available for `go get`, `go install` and `go build`. -To learn more see `go help buildmode`. - -To elect to run the buildtime tests of this package, provide the -environment variable RUN_TEST=true at build time. diff --git a/google-go-lang/google-go-lang.SlackBuild b/google-go-lang/google-go-lang.SlackBuild deleted file mode 100644 index cf84e52..0000000 --- a/google-go-lang/google-go-lang.SlackBuild +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/bash - -# Slackware build script for google-go-lang - -# Written by Eric Schultz eric at schultzter.ca -# Taken over by Vincent Batts vbatts@hashbangbash.com - -# Copyright (c) 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vincent Batts -# Copyright (c) 2012 Eric Schultz -# -# Permission is hereby granted, free of charge, to any person obtaining a copy of -# this software and associated documentation files (the "Software"), to deal in -# the Software without restriction, including without limitation the rights to -# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -# the Software, and to permit persons to whom the Software is furnished to do so, -# subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -cd $(dirname $0) ; CWD=$(pwd) - -PRGNAM=google-go-lang -VERSION=${VERSION:-1.21.3} -BOOTSTRAP_VERSION=${BOOTSTRAP_VERSION:-1.19.11} -BUILD=${BUILD:-1} -TAG=${TAG:-_SBo} -PKGTYPE=${PKGTYPE:-tgz} - -RELEASE=${RELEASE:-linux} - -RUN_TEST=${RUN_TEST:-false} - -if [ -z "$ARCH" ]; then - case "$( uname -m )" in - i?86) ARCH=i586 ;; - arm*) ARCH=arm ;; - *) ARCH=$( uname -m ) ;; - esac -fi - -if [ "$ARCH" = "i586" ]; then - LIBDIRSUFFIX="" - GOARCH="386" -elif [ "$ARCH" = "x86_64" ]; then - LIBDIRSUFFIX="64" - GOARCH="amd64" -elif [ "$ARCH" = "arm" ]; then - LIBDIRSUFFIX="" - GOARCH="arm" - export GOARM="7" # can be '5' as well, to use soft float instead of hardware -elif [ "$ARCH" = "aarch64" ]; then - LIBDIRSUFFIX="64" - GOARCH="arm64" -else - LIBDIRSUFFIX="" - GOARCH=386 -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/usr/lib${LIBDIRSUFFIX}/go${BOOTSTRAP_VERSION} $OUTPUT -cd $PKG/usr/lib${LIBDIRSUFFIX}/go${BOOTSTRAP_VERSION} -tar xvf $CWD/go${BOOTSTRAP_VERSION}.src.tar.gz -cd go -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 {} \; - -# as of >= go1.5, the cross-compiler does not need to be bootstrap, so the -# compiler need only be compiled for the host OS, which it detects -unset GOBIN GOPATH GOOS GOARCH - -# Not sure why, but this causes run.bash to fail --rworkman -unset BASH_ENV - -# gcc 5+ is go1.4 API, so we'll bootstrap with it -export GOROOT_BOOTSTRAP="/usr" - -# Default GOROOT is the parent directory of all.bash, -# which is the current directory we're in. -# Defining it here means we can use it below when building -# shared libraries -GOROOT="$(pwd)" -export GOROOT - -# The value of GOROOT once the package is installed -export GOROOT_FINAL="/usr/lib${LIBDIRSUFFIX}/go${BOOTSTRAP_VERSION}/go" - -case "$ARCH" in - arm|i?86) export GOMAXPROCS=1 ;; -esac - -cd src - -if [[ "${RUN_TEST}" = "true" ]] ; then - LC_ALL=C \ - ./all.bash -else - LC_ALL=C \ - ./make.bash -fi - -# As of go1.5, golang supports shared libraries, so generate them for use. -$GOROOT/bin/go install -buildmode=shared std - -cd .. - -# remove Go build cache -rm -rf pkg/obj/go-build/* - -# remove the doc Makefile -rm -f doc/Makefile - -mkdir -p $PKG$GOROOT_FINAL - -mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/go${VERSION} $OUTPUT -cd $PKG/usr/lib${LIBDIRSUFFIX}/go${VERSION} -tar xvf $CWD/go${VERSION}.src.tar.gz -cd go -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 {} \; - -# as of >= go1.5, the cross-compiler does not need to be bootstrap, so the -# compiler need only be compiled for the host OS, which it detects -unset GOBIN GOPATH GOOS GOARCH - -# Not sure why, but this causes run.bash to fail --rworkman -unset BASH_ENV - -# gcc 5+ is go1.4 API, so we'll bootstrap with it -export GOROOT_BOOTSTRAP="$PKG/usr/lib${LIBDIRSUFFIX}/go${BOOTSTRAP_VERSION}/go" - -# Default GOROOT is the parent directory of all.bash, -# which is the current directory we're in. -# Defining it here means we can use it below when building -# shared libraries -GOROOT="$(pwd)" -export GOROOT - -# The value of GOROOT once the package is installed -export GOROOT_FINAL="/usr/lib${LIBDIRSUFFIX}/go${VERSION}/go" - -case "$ARCH" in - arm|i?86) export GOMAXPROCS=1 ;; -esac - -cd src - -if [[ "${RUN_TEST}" = "true" ]] ; then - LC_ALL=C \ - ./all.bash -else - LC_ALL=C \ - ./make.bash -fi - -# As of go1.5, golang supports shared libraries, so generate them for use. -$GOROOT/bin/go install -buildmode=shared std - -cd .. - -# remove Go build cache -rm -rf pkg/obj/go-build/* - -# remove the doc Makefile -rm -f doc/Makefile - -mkdir -p $PKG$GOROOT_FINAL - -# remove bootstrap -rm -rf $PKG/usr/lib$LIBDIRSUFFIX/go$BOOTSTRAP_VERSION - -# Put the profile scripts for setting PATH and env variables -mkdir -p $PKG/etc/profile.d -cat > $PKG/etc/profile.d/go.csh << EOF -#!/bin/csh -setenv GOROOT ${GOROOT_FINAL} -setenv PATH \${GOROOT}/bin:\${PATH} -EOF -cat > $PKG/etc/profile.d/go.sh << EOF -#!/bin/sh -export GOROOT="${GOROOT_FINAL}" -export PATH="\${GOROOT}/bin:\${PATH}" -EOF - -chmod 0755 $PKG/etc/profile.d/go.csh -chmod 0755 $PKG/etc/profile.d/go.sh - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a \ - CONTRIBUTING.md LICENSE PATENTS README.md SECURITY.md VERSION \ - $PKG/usr/doc/$PRGNAM-$VERSION -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 diff --git a/google-go-lang/google-go-lang.info b/google-go-lang/google-go-lang.info deleted file mode 100644 index 442aa55..0000000 --- a/google-go-lang/google-go-lang.info +++ /dev/null @@ -1,12 +0,0 @@ -PRGNAM="google-go-lang" -VERSION="1.21.3" -HOMEPAGE="http://golang.org" -DOWNLOAD="https://storage.googleapis.com/golang/go1.21.3.src.tar.gz \ - https://storage.googleapis.com/golang/go1.19.11.src.tar.gz" -MD5SUM="" -DOWNLOAD_x86_64="" -MD5SUM_x86_64="" -REQUIRES="" -MAINTAINER="Slack Coder" -EMAIL="slackcoder@server.ky" -TAG="_slackcoder" diff --git a/google-go-lang/slack-desc b/google-go-lang/slack-desc deleted file mode 100644 index 84d7e1d..0000000 --- a/google-go-lang/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# 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------------------------------------------------------| -google-go-lang: google-go-lang (Google's Go Language kit with gc tool chain) -google-go-lang: -google-go-lang: The Go programming language is an open source project to make -google-go-lang: programmers more productive. Go is expressive, concise, clean, and -google-go-lang: efficient. Its concurrency mechanisms make it easy to write programs -google-go-lang: that get the most out of multicore and networked machines, while its -google-go-lang: novel type system enables flexible and modular program construction. -google-go-lang: -google-go-lang: -google-go-lang: -google-go-lang: diff --git a/libeufin/README b/libeufin/README new file mode 100644 index 0000000..ecddebd --- /dev/null +++ b/libeufin/README @@ -0,0 +1,34 @@ +The merchant for the Taler's pseudo bank. + +Installing this package automatically creates the libeufin user and group. + +The libeufin bank requires a postgres database to be configured. The setup +described here assumes postgres was installed with using 'Peer authentication' +by default (omitting '-A md5' when running 'initdb' after postgres +installation). + +``` +# Create the database and its user. +sudo -u postgres -- createuser libeufin-bank +sudo -u postgres -- createdb libeufin-bank --owner libeufin-bank + +# Initialize the database, must be done after each upgrade +sudo -u libeufin-bank -- libeufin-bank-dbinit -c /etc/libeufin/libeufin-bank.conf + +# The admin password should be set after installation. +libeufin-bank passwd -c /etc/libeufin/libeufin-bank.conf admin $PASSWORD +``` + + +To have the system start and stop with your host, add to /etc/rc.d/rc.local: + + if [ -x /etc/rc.d/rc.libeufin-bank ]; then + /etc/rc.d/rc.libeufin-bank start + fi + +And to /etc/rc.d/rc.local_shutdown (creating if needed): + + if [ -x /etc/rc.d/rc.libeufin-bank ]; then + /etc/rc.d/rc.libeufin-bank stop + fi + diff --git a/libeufin/doinst.sh b/libeufin/doinst.sh new file mode 100644 index 0000000..f8325b3 --- /dev/null +++ b/libeufin/doinst.sh @@ -0,0 +1,33 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Group for all taler exchange users. +if ! getent group libeufin-bank >/dev/null; then + groupadd libeufin-bank \ + --system \ + || true +fi + +if ! getent passwd libeufin-bank >/dev/null; then + useradd libeufin-bank \ + --comment 'Talers pseudo bank' \ + --gid libeufin-bank \ + --system \ + --home-dir /var/lib/libeufin-bank \ + || true +fi + +config etc/httpd/sites-available/libeufin-bank.conf.new +config etc/libeufin/libeufin-bank.conf.new +config etc/libeufin/settings.json.new +config etc/rc.d/rc.libeufin-bank.new diff --git a/libeufin/libeufin.SlackBuild b/libeufin/libeufin.SlackBuild new file mode 100755 index 0000000..88bdb82 --- /dev/null +++ b/libeufin/libeufin.SlackBuild @@ -0,0 +1,83 @@ +#!/bin/sh + +PRGNAM=libeufin +VERSION=${VERSION:-0.9.4a} +BUILD=${BUILD:-1} +TAG=${TAG:-_slackcoder} + +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.gz +cd $PRGNAM-$VERSION* + +if [ -z "$JAVA_HOME" -a -f /etc/profile.d/zulu-openjdk17.sh ]; then + source /etc/profile.d/zulu-openjdk17.sh +fi + +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 {} \; + +patch <"$CWD/patch/fix-version-sourcing.patch" + +./configure \ + --prefix=/usr +make +make DESTDIR="$PKG" install + +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 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README_slackware.txt +cp -a \ + COPYING \ + README \ + $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + bank/README \ + $PKG/usr/doc/$PRGNAM-$VERSION/README_bank + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +(cd $CWD/root && find . -type f -not -path . -exec install -D -m 755 {} "$PKG/{}" \; ) + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/libeufin/libeufin.info b/libeufin/libeufin.info new file mode 100644 index 0000000..f3eb95d --- /dev/null +++ b/libeufin/libeufin.info @@ -0,0 +1,8 @@ +PRGNAM="libeufin" +VERSION="0.9.4a" +HOMEPAGE="https://taler.net" +DOWNLOAD="https://ftpmirror.gnu.org/gnu/taler/libeufin-0.9.4a-sources.tar.gz" +MD5SUM="326b152030353c1cbd5a90c927118666" +REQUIRES="zulu-openjdk17" +MAINTAINER="Slack Coder" +EMAIL="slackcoder@server.ky" diff --git a/libeufin/patch/fix-version-sourcing.patch b/libeufin/patch/fix-version-sourcing.patch new file mode 100644 index 0000000..83101eb --- /dev/null +++ b/libeufin/patch/fix-version-sourcing.patch @@ -0,0 +1,21 @@ +diff --git a/build.gradle b/build.gradle +index d47f38cd..dea2c30e 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -43,14 +43,8 @@ idea { + } + + task versionFile() { +- def stdout = new ByteArrayOutputStream() +- exec { +- commandLine 'git', 'rev-parse', '--short', 'HEAD' +- standardOutput = stdout +- } +- def gitHash = stdout.toString().trim() +- def version = getRootProject().version +- new File("${projectDir}/common/src/main/resources", "version.txt").text = "v$version-git-$gitHash" ++ def version = "0.9.4a" ++ new File("${projectDir}/common/src/main/resources", "version.txt").text = "v$version" + } + + // See: https://stackoverflow.com/questions/24936781/gradle-plugin-project-version-number diff --git a/libeufin/root/etc/httpd/sites-available/libeufin-bank.conf.new b/libeufin/root/etc/httpd/sites-available/libeufin-bank.conf.new new file mode 100644 index 0000000..02bab73 --- /dev/null +++ b/libeufin/root/etc/httpd/sites-available/libeufin-bank.conf.new @@ -0,0 +1,6 @@ + + ProxyPass "http://localhost:9099/" + # RequestHeader add "X-Forwarded-Proto" "https" + # RequestHeader add "X-Forwarded-Host" "localhost" + # RequestHeader add "X-Forwarded-Prefix" "/" + diff --git a/libeufin/root/etc/libeufin/libeufin-bank.conf.new b/libeufin/root/etc/libeufin/libeufin-bank.conf.new new file mode 100644 index 0000000..9c2fb32 --- /dev/null +++ b/libeufin/root/etc/libeufin/libeufin-bank.conf.new @@ -0,0 +1,34 @@ +# This is the main configuration entrypoint for the libeufin-bank. + +[libeufin-bank] + +# Internal currency of the libeufin-bank +CURRENCY = KUDOS + +# Default debt limit for newly created accounts +# DEFAULT_DEBT_LIMIT = KUDOS:0 + +# Value of the registration bonus for new users +# REGISTRATION_BONUS = KUDOS:0 + +# Allow account registration by anyone +# ALLOW_REGISTRATION = no + +# Allow an account to delete itself +# ALLOW_ACCOUNT_DELETION = no + +# Enable regional currency conversion +# ALLOW_CONVERSION = no + +# Path to TAN challenge transmission script via sms. If not specified, this TAN channel wil be unuspported. +TAN_SMS = + +# Path to TAN challenge transmission script via email. If not specified, this TAN channel wil be unuspported. +TAN_EMAIL = + +# Where "libeufin-bank serve" serves its API +SERVE = tcp +PORT = 9099 + +[libeufin-bankdb-postgres] +CONFIG = postgres:///libeufin-bank diff --git a/libeufin/root/etc/libeufin/settings.json.new b/libeufin/root/etc/libeufin/settings.json.new new file mode 100644 index 0000000..73ca45d --- /dev/null +++ b/libeufin/root/etc/libeufin/settings.json.new @@ -0,0 +1,34 @@ +// This file is an example of configuration of Bank SPA +// Remove all the comments to make the file a valid +// JSON file, otherwise no value here will make any +// effect. +// All the settings are optionals. +{ + // Where libeufin backend is localted + // default: window.origin without "webui/" + "backendBaseURL": "http://bank.taler.test:1180/", + // Shows a button "create random account" in the registration form + // Useful for testing + // default: false + "allowRandomAccountCreation": false, + // Create all random accounts with password "123" + // Useful for testing + // default: false + "simplePasswordForRandomAccounts": false, + // Bank name shown in the header + // default: "Taler Bank" + "bankName": "Taler TESTING Bank", + // URL where the user is going to be redirected after + // clicking in Taler Logo + // default: home page + "iconLinkURL": "#", + // Mapping for every link shown in the top navitation bar + // - key: link label, what the user will read + // - value: link target, where the user is going to be redirected + // default: empty list + "topNavSites": { + "Exchange": "http://Exchnage.taler.test:1180/", + "Bank": "http://bank-ui.taler.test:1180/", + "Merchant": "http://merchant.taler.test:1180/" + } +} diff --git a/libeufin/root/etc/rc.d/rc.libeufin-bank.new b/libeufin/root/etc/rc.d/rc.libeufin-bank.new new file mode 100644 index 0000000..d3ba3e1 --- /dev/null +++ b/libeufin/root/etc/rc.d/rc.libeufin-bank.new @@ -0,0 +1,54 @@ +#!/bin/sh +# +# Startup/shutdown script for GNU Taler's libeufin bank. +# + +export USERPROFILE=/var/lib/libeufin + +create_run_dir() { + if [ ! -d /run/libeufin-bank/ ]; then + mkdir -p /run/libeufin-bank + chown libeufin-bank:libeufin-bank /run/libeufin-bank + chmod g+wX /run/libeufin-bank + fi +} + +start() { + echo "Starting Libeufin Bank" + create_run_dir + + daemon \ + --name=libeufin-bank \ + --user=libeufin-bank \ + --pidfiles=/run/libeufin-bank \ + --output=/var/log/taler/libeufin-bank.log \ + -- libeufin-bank serve --config /etc/libeufin/libeufin-bank.conf +} + +stop() { + echo "Stopping Libeufin Bank" + /usr/bin/daemon --name=libeufin-bank --pidfiles=/run/libeufin-bank --stop +} + +status() { + /usr/bin/daemon --name=libeufin-bank --pidfiles=/run/libeufin-bank --running --verbose +} + +case "$1" in +start) + start + ;; +stop) + stop + ;; +status) + status + ;; +*) + echo "Usage: $0 {start|stop|status}" + exit 1 +esac + + + + diff --git a/libeufin/slack-desc b/libeufin/slack-desc new file mode 100644 index 0000000..70f03c5 --- /dev/null +++ b/libeufin/slack-desc @@ -0,0 +1,6 @@ + |-----handy-ruler------------------------------------------------------| +libeufin: libeufin +libeufin: +libeufin: LibEuFin is a project providing free software tooling for European +libeufin: FinTech. +libeufin: diff --git a/postgresql/README b/postgresql/README new file mode 100644 index 0000000..5e488da --- /dev/null +++ b/postgresql/README @@ -0,0 +1,14 @@ +PostgreSQL is an advanced object-relational database management +system (ORDBMS) based on POSTGRES. With more than 15 years of +development history, it is quickly becoming the de facto +database for enterprise level open source solutions. + +Before you can run postgresql you'll need to create the database; +please see README.SBo. + +You need a "postgres" user and group prior to building postgresql. +Something like this will suffice for most systems: + groupadd -g 209 postgres + useradd -u 209 -g 209 -d /var/lib/pgsql postgres +Feel free to use a different uid and gid if desired, but 209 is +recommended to avoid conflicts with other stuff from SlackBuilds.org. diff --git a/postgresql/README.SBo b/postgresql/README.SBo new file mode 100644 index 0000000..89e1424 --- /dev/null +++ b/postgresql/README.SBo @@ -0,0 +1,51 @@ +Before you can run postgresql you'll need to create the +database files in /var/lib/pgsql. The following should do +the trick. + # su postgres -c "initdb -D /var/lib/pgsql/14/data --locale=en_US.UTF-8 -A md5 -W" + +Additionally, a logrotation script and init script are included. +For production level log file handling please read +https://www.postgresql.org/docs/14/logfile-maintenance.html + +In order to start postgresql at boot and stop it properly at shutdown, +make sure rc.postgresql is executable and add the following lines to +the following files: + + /etc/rc.d/rc.local + ================== + # Startup postgresql + if [ -x /etc/rc.d/rc.postgresql ]; then + /etc/rc.d/rc.postgresql start + fi + + /etc/rc.d/rc.local_shutdown + =========================== + # Stop postgres + if [ -x /etc/rc.d/rc.postgresql ]; then + /etc/rc.d/rc.postgresql stop + fi + +Additionally, rc.postgresql script has additional modes for stop/restart: + force-stop|force-restart (i.e. pg_ctl 'fast' mode) + unclean-stop|unclean-restart (i.e. pg_ctl 'immediate' mode) +See https://www.postgresql.org/docs/14/app-pg-ctl.html + +From PostgreSQL 9.3 we support in place database upgrades using pg_upgrade: + https://www.postgresql.org/docs/14/pgupgrade.html + +A few hints for PostgreSQL 10.x -> 14.x upgrade: + - Don't remove old PostgreSQL 10.x package + - Install PostgreSQL 14.x, note that binaries are in + '/usr/lib64/postgresql/14/bin' + - Follow regular pg_upgrade docs + - Remove old package when transition is over, or read comments in + rc.postgresql if you want to run multiple PostgreSQL versions in parallel + +This script builds postgresql with some useful extension modules from +the contrib directory, see PG_EXTENSIONS in SlackBuild file. +To build PostgreSQL with all extensions, use the following command: + + # PG_EXTENSIONS=ALL ./postgresql.SlackBuild + +Please note that in order to actually use extension, you must execute +'CREATE EXTENSION [ IF NOT EXISTS ] extension_name' for each extension. diff --git a/postgresql/doinst.sh b/postgresql/doinst.sh new file mode 100644 index 0000000..7b63ec5 --- /dev/null +++ b/postgresql/doinst.sh @@ -0,0 +1,40 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +preserve_perms() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + if [ -e $OLD ]; then + cp -a $OLD ${NEW}.incoming + cat $NEW > ${NEW}.incoming + mv ${NEW}.incoming $NEW + fi + config $NEW +} + +preserve_perms etc/rc.d/rc.postgresql.new +config etc/logrotate.d/postgresql.new + +# Create default program symlinks in /usr/bin +( + cd usr/bin + for pg_binary in ../lib@LIBDIRSUFFIX@/@PRGNAM@/@PG_VERSION@/bin/*; do + pg_prog=$(basename $pg_binary) + if [ -L $pg_prog ]; then + ln -sf $pg_binary + elif [ ! -e $pg_prog ]; then + # make sure we don't overwrite actual binaries + ln -s $pg_binary + fi + done +) + diff --git a/postgresql/postgresql.SlackBuild b/postgresql/postgresql.SlackBuild new file mode 100644 index 0000000..64b8345 --- /dev/null +++ b/postgresql/postgresql.SlackBuild @@ -0,0 +1,219 @@ +#!/bin/bash + +# Slackware build script for PostgreSQL +# +# Copyright 2007-2018 Adis Nezirovic +# 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. + +# Modified by the SlackBuilds.org Project + +# 20220301 bkw: Modified by SlackBuilds.org, BUILD=2: +# - strip pg_config binary (install-strip misses that one). + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=postgresql +VERSION=${VERSION:-15.5} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +PG_VERSION=${PG_VERSION:-15} +PG_PORT=${PG_PORT:-5432} +PG_UID=${PG_UID:-209} +PG_GID=${PG_GID:-209} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + 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} + +# Bail out if user or group isn't valid on your system +# For slackbuilds.org, assigned postgres uid/gid are 209/209 +# See http://slackbuilds.org/uid_gid.txt +# Other popular choice is 26/26 +if ! grep ^postgres: /etc/group > /dev/null 2>&1 ; then + echo " You must have a postgres group to run this script." + echo " # groupadd -g $PG_GID postgres" + exit 1 +elif ! grep ^postgres: /etc/passwd > /dev/null 2>&1 ; then + echo " You must have a postgres user to run this script." + echo " # useradd -u $PG_UID -g $PG_GID -d /var/lib/pgsql postgres" + exit 1 +fi + +# Enable NLS builds using 'ENABLE_NLS=1 ./postgresql.SlackBuild' +if [ ! -z $ENABLE_NLS ];then + NLS=enable +else + NLS=disable +fi + +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 $TMP/$PRGNAM-$VERSION $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +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" \ +PYTHON="/usr/bin/python3" \ +./configure \ + --prefix=/usr/lib${LIBDIRSUFFIX}/$PRGNAM/$PG_VERSION \ + --sysconfdir=/etc/$PRGNAM/$PG_VERSION \ + --includedir=/usr/include \ + --datarootdir=/usr/share \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ + --datadir=/usr/share/$PRGNAM-$PG_VERSION \ + --with-openssl \ + --with-tcl \ + --with-perl \ + --with-python \ + --with-libxml \ + --with-libxslt \ + --enable-thread-safety \ + --with-system-tzdata=/usr/share/zoneinfo \ + --$NLS-nls \ + --build=$ARCH-slackware-linux + +make +make install-strip DESTDIR=$PKG +make install-docs DESTDIR=$PKG + +# 20220414 bkw: this one binary wasn't getting stripped... +strip $PKG/usr/lib${LIBDIRSUFFIX}/$PRGNAM/$PG_VERSION/bin/pg_config + +# create symlinks to shared library for other programs to link against +( cd $PKG/usr/lib${LIBDIRSUFFIX} + for i in $(ls $PRGNAM/$PG_VERSION/lib/lib*.so*) ; do ln -sf $i ; done +) + +# create symlinks to pkg-config scripts +( mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig + cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig + for i in $(ls ../$PRGNAM/$PG_VERSION/lib/pkgconfig/*) ; do ln -sf $i ; done +) + +# Some interesting additional modules: +# https://www.postgresql.org/docs/14/contrib.html +# +# adminpack - helper extension for pgAdmin +# pgcrypto - extension for some business applications +# ltree, xml2 - useful extensions for developers +# postgres_fdw - foreign-data wrapper for access to external PostgreSQL servers +# file_fdw - foreign-data wrapper for access to data files on filesystem + +PG_EXTENSIONS=${PG_EXTENSIONS:-"adminpack pgcrypto ltree xml2 postgres_fdw file_fdw hstore citext"} + +if [ "$PG_EXTENSIONS" = "ALL" ];then + cd $TMP/$PRGNAM-$VERSION/contrib + make all + make install-strip DESTDIR=$PKG +else + for ext in $PG_EXTENSIONS; do + cd $TMP/$PRGNAM-$VERSION/contrib/$ext + make + make install-strip DESTDIR=$PKG + done +fi + +cd $TMP/$PRGNAM-$VERSION + +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 + +cp -a COPYRIGHT HISTORY README doc/KNOWN_BUGS doc/MISSING_FEATURES doc/TODO $PKG/usr/doc/$PRGNAM-$VERSION/ +rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/{man.tar.gz,man1,manl,man7,postgres.tar.gz} +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +cat $CWD/README.SBo > $PKG/usr/doc/$PRGNAM-$VERSION/README.SBo + +# base database directory +# assumes you are using /var/lib/pgsql as a homedir for postgres user +mkdir -p $PKG/var/lib/pgsql/$PG_VERSION/data +chown -R postgres:postgres $PKG/var/lib/pgsql +chmod 700 $PKG/var/lib/pgsql +# permissions for DATADIR should be u=rwx (0700) +chmod 700 $PKG/var/lib/pgsql/$PG_VERSION/data + +# Install init script +mkdir -p $PKG/etc/rc.d +sed -e "s%@PG_VERSION@%$PG_VERSION%" \ + -e "s%@PRGNAM@%$PRGNAM%" \ + -e "s%@PG_PORT@%$PG_PORT%" \ + -e "s%@LIBDIRSUFFIX@%$LIBDIRSUFFIX%" \ + $CWD/rc.$PRGNAM.new > $PKG/etc/rc.d/rc.$PRGNAM.new +chmod 0755 $PKG/etc/rc.d/rc.$PRGNAM.new + +# Install logrotate script +mkdir -p $PKG/etc/logrotate.d +sed -e "s%@PG_VERSION@%$PG_VERSION%" \ + -e "s%@PRGNAM@%$PRGNAM%" \ + $CWD/$PRGNAM.logrotate > $PKG/etc/logrotate.d/$PRGNAM.new + +mkdir -p $PKG/var/log/setup +sed -e "s%@UID@%$PG_UID%" \ + -e "s%@GID@%$PG_GID%" \ + -e "s%@PG_VERSION@%$PG_VERSION%" \ + $CWD/setup.$PRGNAM > $PKG/var/log/setup/setup.$PRGNAM +chmod 755 $PKG/var/log/setup/setup.$PRGNAM + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +sed -e "s%@PG_VERSION@%$PG_VERSION%" \ + -e "s%@PRGNAM@%$PRGNAM%" \ + -e "s%@LIBDIRSUFFIX@%$LIBDIRSUFFIX%" \ + $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/postgresql/postgresql.info b/postgresql/postgresql.info new file mode 100644 index 0000000..c024397 --- /dev/null +++ b/postgresql/postgresql.info @@ -0,0 +1,10 @@ +PRGNAM="postgresql" +VERSION="15.5" +HOMEPAGE="https://www.postgresql.org" +DOWNLOAD="https://ftp.postgresql.org/pub/source/v15.5/postgresql-15.5.tar.gz" +MD5SUM="96175683748e68c7bb36ba0306adc8d7" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Dionysis Ntreou" +EMAIL="yakizarns1@gmail.com" diff --git a/postgresql/postgresql.logrotate b/postgresql/postgresql.logrotate new file mode 100644 index 0000000..489effe --- /dev/null +++ b/postgresql/postgresql.logrotate @@ -0,0 +1,9 @@ +/var/log/@PRGNAM@-@PG_VERSION@ { + daily + rotate 7 + copytruncate + delaycompress + compress + notifempty + missingok +} diff --git a/postgresql/rc.postgresql.new b/postgresql/rc.postgresql.new new file mode 100644 index 0000000..77988c1 --- /dev/null +++ b/postgresql/rc.postgresql.new @@ -0,0 +1,171 @@ +#!/bin/bash + +# PostgreSQL startup script for Slackware Linux +# +# $Revision$ +# $Date$ +# +# Copyright 2007-2018 Adis Nezirovic +# 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. + +# Do not source this script (since it contains exit() calls) +# +# Since version 9.3 this startup script can run multiple PostgreSQL +# versions on different ports and with different data dirs. +# +# e.g. PG_VERSION=14 PG_PORT=6432 /etc/rc.d/rc.@PRGNAM@ start + +PG_VERSION=${PG_VERSION:-@PG_VERSION@} +PG_PORT=${PG_PORT:-@PG_PORT@} +LIBDIRSUFFIX="@LIBDIRSUFFIX@" +LOGFILE=/var/log/@PRGNAM@-$PG_VERSION +DATADIR=/var/lib/pgsql/$PG_VERSION/data +POSTGRES=/usr/lib${LIBDIRSUFFIX}/@PRGNAM@/$PG_VERSION/bin/postgres +PG_CTL=/usr/lib${LIBDIRSUFFIX}/@PRGNAM@/$PG_VERSION/bin/pg_ctl +PIDFILE=$DATADIR/postmaster.pid + +# oom-killer score +# +# https://www.postgresql.org/docs/14/kernel-resources.html#LINUX-MEMORY-OVERCOMMIT +PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj +PG_MASTER_OOM_SCORE_ADJ=-1000 +PG_CHILD_OOM_SCORE_ADJ=0 +PG_ENV="PG_OOM_ADJUST_FILE=$PG_OOM_ADJUST_FILE PG_OOM_ADJUST_VALUE=$PG_CHILD_OOM_SCORE_ADJ" + +# Return values (according to LSB): +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - insufficient privilege +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running + +pg_ctl() +{ + CMD="$PG_CTL -o '-p $PG_PORT' $@" + su - postgres -c "$PG_ENV $CMD" +} + +if [ ! -f $POSTGRES ]; then + echo "Could not find 'postgres' binary. Maybe PostgreSQL is not installed properly?" + exit 5 +fi + +case "$1" in + + "start") + echo "Starting PostgreSQL" + touch $LOGFILE + chown postgres:wheel $LOGFILE + chmod 0640 $LOGFILE + + if [ ! -e $DATADIR/PG_VERSION ]; then + echo "You should initialize the PostgreSQL database at location $DATADIR" + echo "e.g. su postgres -c \"initdb -D $DATADIR --locale=en_US.UTF-8 -A md5 -W\"" + exit 6 + fi + + if [ $(pgrep -f $POSTGRES) ]; then + + echo "PostgreSQL daemon already running" + if [ ! -f $PIDFILE ]; then + echo "Warning: Missing pid file $PIDFILE" + fi + exit 1 + + else + test -e "$PG_OOM_ADJUST_FILE" && echo "$PG_MASTER_OOM_SCORE_ADJ" > "$PG_OOM_ADJUST_FILE" + pg_ctl start -w -l $LOGFILE -D $DATADIR + exit 0 + fi + ;; + + "stop") + echo "Shutting down PostgreSQL..." + pg_ctl stop -l $LOGFILE -D $DATADIR -m smart + ;; + + "force-stop") + # Take care! This will kill _all_ client connections + # and rollback current transactions. + echo "Shutting down PostgreSQL (fast)..." + pg_ctl stop -l $LOGFILE -D $DATADIR -m fast + ;; + + "unclean-stop") + # Take care! This will abort server process itself + # resulting with database recovery on next start. + echo "Shutting down PostgreSQL (immediate)..." + pg_ctl stop -l $LOGFILE -D $DATADIR -m immediate + ;; + + "restart") + echo "Restarting PostgreSQL..." + test -e "$PG_OOM_ADJUST_FILE" && echo "$PG_MASTER_OOM_SCORE_ADJ" > "$PG_OOM_ADJUST_FILE" + pg_ctl restart -l $LOGFILE -D $DATADIR -m smart + ;; + + "force-restart") + # Take care! This will kill _all_ client connections + # and rollback current transactions. + echo "Restarting PostgreSQL (fast)..." + pg_ctl restart -l $LOGFILE -D $DATADIR -m fast + ;; + + "unclean-restart") + # Take care: This will abort server process itself + # resulting with database recovery on start. + echo "Restarting PostgreSQL (immediate)..." + pg_ctl restart -l $LOGFILE -D $DATADIR -m immediate + ;; + + "reload") + echo "Reloading configuration for PostgreSQL..." + pg_ctl reload -l $LOGFILE -D $DATADIR -m smart + ;; + + "status") + if [ $(pgrep -f $POSTGRES) ]; then + echo "PostgreSQL is running" + + if [ ! -e $PIDFILE ]; then + echo "Warning: Missing pid file $PIDFILE" + fi + + exit 0 + else + echo "PostgreSQL is stopped" + + if [ -e $PIDFILE ]; then + echo "Detected stale pid file $PIDFILE" + fi + + exit 0 + fi + ;; + + *) + # unclean-stop and unclean-restart are not documented on purpose. + echo "Usage: $0 {start|stop|force-stop|status|restart|force-restart|reload}" + exit 1 + ;; +esac diff --git a/postgresql/setup.postgresql b/postgresql/setup.postgresql new file mode 100644 index 0000000..2f0ec5f --- /dev/null +++ b/postgresql/setup.postgresql @@ -0,0 +1,35 @@ +#!/bin/bash +#BLURB="PostgreSQL @PG_VERSION@" + +PG_HOME=/var/lib/pgsql +PG_USER=postgres +PG_USER_ID=@UID@ +PG_GROUP=postgres +PG_GROUP_ID=@GID@ +PG_VERSION=@PG_VERSION@ + +echo "Adding PostgreSQL user and group..." +groupadd -g $PG_GROUP_ID $PG_GROUP +useradd -g $PG_GROUP -u $PG_USER_ID -d $PG_HOME -c PostgreSQL $PG_USER +mkdir -p $PG_HOME/$PG_VERSION/data + +## default permissions +echo "Setting up permissions..." +chown -R $PG_USER:$PG_GROUP $PG_HOME +chmod 700 $PG_HOME +chmod 700 $PG_HOME/$PG_VERSION +chmod 700 $PG_HOME/$PG_VERSION/data + +## database cluster +if [ ! -f $PG_HOME/$PG_VERSION/data/PG_VERSION ]; then + echo "Creating database cluster in $PG_HOME/$PG_VERSION/data..." + su $PG_USER -c "initdb -D $PG_HOME/$PG_VERSION/data --locale=en_US.UTF-8 -A md5 -W" +else + echo "*** WARNING ***" >&2 + echo " There is already a database cluster in $PG_HOME/$PG_VERSION/data." >&2 + echo " If you are upgrading from an older version of PostgreSQL" >&2 + echo " you will have to 'dump' and 'restore' your database." >&2 + echo " See PostgreSQL manual for more details." >&2 +fi + +echo "PostgreSQL post-installation setup completed" diff --git a/postgresql/slack-desc b/postgresql/slack-desc new file mode 100644 index 0000000..7e7ced4 --- /dev/null +++ b/postgresql/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------------------------------------------------------| +postgresql: postgresql (object-relational database management system) +postgresql: +postgresql: PostgreSQL is an advanced object-relational database management +postgresql: system (ORDBMS) based on POSTGRES. With more than 15 years of +postgresql: development history, it is quickly becoming the de facto +postgresql: database for enterprise level open source solutions. +postgresql: +postgresql: Homepage: https://www.postgresql.org +postgresql: +postgresql: +postgresql: diff --git a/pydata-sphinx-theme/README b/pydata-sphinx-theme/README new file mode 100644 index 0000000..10e9d05 --- /dev/null +++ b/pydata-sphinx-theme/README @@ -0,0 +1 @@ +The pydata sphinx theme. diff --git a/pydata-sphinx-theme/pydata-sphinx-theme.SlackBuild b/pydata-sphinx-theme/pydata-sphinx-theme.SlackBuild new file mode 100644 index 0000000..e73f292 --- /dev/null +++ b/pydata-sphinx-theme/pydata-sphinx-theme.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/bash + +# SlackBuild build script for pydata_sphinx_theme. + +# Copyright (c) 2024 Slack Coder +# 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=pydata-sphinx-theme +SRCNAM=pydata_sphinx_theme +VERSION=${VERSION:-0.14.4} +BUILD=${BUILD:-1} +TAG=${TAG:-_slackcoder} +PKGTYPE=${PKGTYPE:-txz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + 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} + +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 $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $SRCNAM-$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 {} \; + +python3 -m build --wheel +python3 -m installer --destdir "$PKG" dist/*.whl + +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 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a LICENSE README.md $PKG/usr/doc/$PRGNAM-$VERSION +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 diff --git a/pydata-sphinx-theme/pydata-sphinx-theme.info b/pydata-sphinx-theme/pydata-sphinx-theme.info new file mode 100644 index 0000000..837ac52 --- /dev/null +++ b/pydata-sphinx-theme/pydata-sphinx-theme.info @@ -0,0 +1,10 @@ +PRGNAM="pydata-sphinx-theme" +VERSION="0.14.4" +HOMEPAGE="https://pypi.org/project/sphinx-sphinx-theme" +DOWNLOAD="https://files.pythonhosted.org/packages/de/47/1bc31c4bc8b395cd37d8ceaf720abe10cf64c857fb9ce55856a6dd958484/pydata_sphinx_theme-0.14.4.tar.gz" +MD5SUM="8d2070f7a82bc55f16bea7ebfc2457d0" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="Sphinx sphinx-theme-builder python3-rich nodeenv BeautifulSoup4" +MAINTAINER="Slack Coder" +EMAIL="slackcoder@server.ky" diff --git a/pydata-sphinx-theme/slack-desc b/pydata-sphinx-theme/slack-desc new file mode 100644 index 0000000..cb6f869 --- /dev/null +++ b/pydata-sphinx-theme/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------------------------------------------------------| +pydata-sphinx-theme: pydata-sphinx-theme +pydata-sphinx-theme: +pydata-sphinx-theme: The pydata-sphinx-theme is a sphinx theme. +pydata-sphinx-theme: +pydata-sphinx-theme: +pydata-sphinx-theme: +pydata-sphinx-theme: Homepage: https://pypi.org/project/pydata-sphinx-theme +pydata-sphinx-theme: +pydata-sphinx-theme: +pydata-sphinx-theme: +pydata-sphinx-theme: diff --git a/python3-HTMLArk/README b/python3-HTMLArk/README new file mode 100644 index 0000000..554c4e0 --- /dev/null +++ b/python3-HTMLArk/README @@ -0,0 +1 @@ +Pack a webpage including support files into a single HTML file. diff --git a/python3-HTMLArk/python3-HTMLArk.SlackBuild b/python3-HTMLArk/python3-HTMLArk.SlackBuild new file mode 100644 index 0000000..16a2ff1 --- /dev/null +++ b/python3-HTMLArk/python3-HTMLArk.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/bash + +# SlackBuild build script for python3-pep621. + +# Copyright (c) 2024 Slack Coder +# 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=python3-HTMLArk +SRCNAM=HTMLArk +VERSION=${VERSION:-1.0.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_slackcoder} +PKGTYPE=${PKGTYPE:-txz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + 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} + +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 $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $SRCNAM-$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 {} \; + +python3 -m build --wheel --no-isolation +python3 -m installer --destdir "$PKG" dist/*.whl + +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 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +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 diff --git a/python3-HTMLArk/python3-HTMLArk.info b/python3-HTMLArk/python3-HTMLArk.info new file mode 100644 index 0000000..24a6749 --- /dev/null +++ b/python3-HTMLArk/python3-HTMLArk.info @@ -0,0 +1,10 @@ +PRGNAM="python3-HTMLArk" +VERSION="1.0.0" +HOMEPAGE="https://pypi.org/project/HTMLArk" +DOWNLOAD="https://files.pythonhosted.org/packages/d7/0a/c5150fb593abf13dd58ae3e3b46da56266d3f8aff8c0fc512f2001fa35a3/HTMLArk-1.0.0.tar.gz" +MD5SUM="bcbdd16ae936cf03de478de6bf49bd7f" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="nodeenv" +MAINTAINER="Slack Coder" +EMAIL="slackcoder@server.ky" diff --git a/python3-HTMLArk/slack-desc b/python3-HTMLArk/slack-desc new file mode 100644 index 0000000..c353c50 --- /dev/null +++ b/python3-HTMLArk/slack-desc @@ -0,0 +1,15 @@ +# 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------------------------------------------------------| +python3-HTMLArk: python3-HTMLArk +python3-HTMLArk: +python3-HTMLArk: Pack a webpage including support files into a single HTML file. +python3-HTMLArk: +python3-HTMLArk: Homepage: https://pypi.org/project/HTMLArk +python3-HTMLArk: +python3-HTMLArk: diff --git a/python3-pep621/README b/python3-pep621/README new file mode 100644 index 0000000..47606e5 --- /dev/null +++ b/python3-pep621/README @@ -0,0 +1 @@ +Python3 dataclass for PEP 621 metadata with support for core metadata generation diff --git a/python3-pep621/python3-pep621.SlackBuild b/python3-pep621/python3-pep621.SlackBuild new file mode 100644 index 0000000..073e1f6 --- /dev/null +++ b/python3-pep621/python3-pep621.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/bash + +# SlackBuild build script for python3-pep621. + +# Copyright (c) 2024 Slack Coder +# 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=python3-pep621 +SRCNAM=pep621 +VERSION=${VERSION:-0.4.0.post2} +BUILD=${BUILD:-1} +TAG=${TAG:-_slackcoder} +PKGTYPE=${PKGTYPE:-txz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + 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} + +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 $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $SRCNAM-$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 {} \; + +python3 -m build --wheel --no-isolation +python3 -m installer --destdir "$PKG" dist/*.whl + +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 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a LICENSE README.md $PKG/usr/doc/$PRGNAM-$VERSION +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 diff --git a/python3-pep621/python3-pep621.info b/python3-pep621/python3-pep621.info new file mode 100644 index 0000000..0651f3d --- /dev/null +++ b/python3-pep621/python3-pep621.info @@ -0,0 +1,10 @@ +PRGNAM="python3-pep621" +VERSION="0.4.0.post2" +HOMEPAGE="https://pypi.org/project/python3-pep621" +DOWNLOAD="https://files.pythonhosted.org/packages/92/2d/4718504232643fb69291485f509e0e72b8135de19fceaf4d03c8c16f268c/pep621-0.4.0.post2.tar.gz" +MD5SUM="11a9f2ceebbf49f185c2693d194e61bd" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="nodeenv" +MAINTAINER="Slack Coder" +EMAIL="slackcoder@server.ky" diff --git a/python3-pep621/slack-desc b/python3-pep621/slack-desc new file mode 100644 index 0000000..d933972 --- /dev/null +++ b/python3-pep621/slack-desc @@ -0,0 +1,17 @@ +# 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------------------------------------------------------| +python3-pep621: python3-pep621 +python3-pep621: +python3-pep621: Python3 dataclass for PEP 621 metadata with support for core metadata +python3-pep621: generation. +python3-pep621: +python3-pep621: Homepage: https://pypi.org/project/pep621 +python3-pep621: +python3-pep621: +python3-pep621: diff --git a/sphinx-book-theme/README b/sphinx-book-theme/README new file mode 100644 index 0000000..8110968 --- /dev/null +++ b/sphinx-book-theme/README @@ -0,0 +1 @@ +The sphinx book theme. diff --git a/sphinx-book-theme/slack-desc b/sphinx-book-theme/slack-desc new file mode 100644 index 0000000..f879d97 --- /dev/null +++ b/sphinx-book-theme/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------------------------------------------------------| +sphinx-book-theme: sphinx-book-theme (decorator for caching properties in classes) +sphinx-book-theme: +sphinx-book-theme: The sphinx-book-theme is a sphinx theme. +sphinx-book-theme: +sphinx-book-theme: +sphinx-book-theme: +sphinx-book-theme: Homepage: https://pypi.org/project/sphinx-book-theme +sphinx-book-theme: +sphinx-book-theme: +sphinx-book-theme: +sphinx-book-theme: diff --git a/sphinx-book-theme/sphinx-book-theme.SlackBuild b/sphinx-book-theme/sphinx-book-theme.SlackBuild new file mode 100644 index 0000000..537711e --- /dev/null +++ b/sphinx-book-theme/sphinx-book-theme.SlackBuild @@ -0,0 +1,94 @@ +#!/bin/bash + +# SlackBuild build script for sphinx_book_theme + +# Copyright (c) 2024 Slack Coder +# 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=sphinx-book-theme +SRCNAM=sphinx_book_theme +VERSION=${VERSION:-1.1.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_slackcoder} +PKGTYPE=${PKGTYPE:-txz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + 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} + +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 $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $SRCNAM-$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 {} \; + +python3 -m build --wheel +python3 -m installer --destdir "$PKG" dist/*.whl + +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 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a LICENSE README.md $PKG/usr/doc/$PRGNAM-$VERSION +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 diff --git a/sphinx-book-theme/sphinx-book-theme.info b/sphinx-book-theme/sphinx-book-theme.info new file mode 100644 index 0000000..4bd5ef3 --- /dev/null +++ b/sphinx-book-theme/sphinx-book-theme.info @@ -0,0 +1,10 @@ +PRGNAM="sphinx-book-theme" +VERSION="1.1.0" +HOMEPAGE="https://pypi.org/project/sphinx-book-theme" +DOWNLOAD="https://files.pythonhosted.org/packages/7a/4a/01316bd8a29ad546fd78f460fd958b5a08b3336a6625d96de9b5d149a0e7/sphinx_book_theme-1.1.0.tar.gz" +MD5SUM="b9e67d52ba5227811996c83e2ec84065" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="Sphinx python3-pep621 pydata-sphinx-theme sphinx-theme-builder python3-rich nodeenv" +MAINTAINER="Slack Coder" +EMAIL="slackcoder@server.ky" diff --git a/sphinx-theme-builder/README b/sphinx-theme-builder/README new file mode 100644 index 0000000..4975c2b --- /dev/null +++ b/sphinx-theme-builder/README @@ -0,0 +1,7 @@ +The sphinx_rtd_theme is a sphinx theme designed to look modern and be +mobile-friendly. + +This theme is primarily focused to be used on readthedocs.org but can +work with your own sphinx projects. + +To read more and see a working demo head over to readthedocs.org. diff --git a/sphinx-theme-builder/slack-desc b/sphinx-theme-builder/slack-desc new file mode 100644 index 0000000..be0b12f --- /dev/null +++ b/sphinx-theme-builder/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------------------------------------------------------| +sphinx-theme-builder: sphinx-theme-builder +sphinx-theme-builder: +sphinx-theme-builder: Streamline the Sphinx theme development workflow, by building upon +sphinx-theme-builder: existing standardised tools. +sphinx-theme-builder: +sphinx-theme-builder: +sphinx-theme-builder: Homepage: https://pypi.org/project/sphinx-theme-builder +sphinx-theme-builder: +sphinx-theme-builder: +sphinx-theme-builder: +sphinx-theme-builder: diff --git a/sphinx-theme-builder/sphinx-theme-builder.SlackBuild b/sphinx-theme-builder/sphinx-theme-builder.SlackBuild new file mode 100644 index 0000000..3a2610f --- /dev/null +++ b/sphinx-theme-builder/sphinx-theme-builder.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/bash + +# SlackBuild build script for sphinx_theme_builder + +# Copyright (c) 2024 Slack Coder +# 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=sphinx-theme-builder +VERSION=${VERSION:-0.2.0a7} +BUILD=${BUILD:-1} +TAG=${TAG:-_slackcoder} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + 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} + +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.gz +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 {} \; + +python3 -m build --wheel --no-isolation +python3 -m installer --destdir "$PKG" dist/*.whl + +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 + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a README.md $PKG/usr/doc/$PRGNAM-$VERSION +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 diff --git a/sphinx-theme-builder/sphinx-theme-builder.info b/sphinx-theme-builder/sphinx-theme-builder.info new file mode 100644 index 0000000..e8ec123 --- /dev/null +++ b/sphinx-theme-builder/sphinx-theme-builder.info @@ -0,0 +1,10 @@ +PRGNAM="sphinx-theme-builder" +VERSION="0.2.0a7" +HOMEPAGE="https://pypi.org/project/sphinx-theme-builder" +DOWNLOAD="https://files.pythonhosted.org/packages/37/67/c4a49681104ef3d019bf58c880f9609c22aabfbb0e9538797c0f356fe120/sphinx-theme-builder-0.2.0a7.tar.gz" +MD5SUM="194df3d98fbcc8f2a5317c4f4a73a6ca" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="python3-pyproject-metadata nodejs" +MAINTAINER="Slack Coder" +EMAIL="slackcoder@server.ky" diff --git a/taler-exchange/README b/taler-exchange/README index 2ea3751..de731fe 100644 --- a/taler-exchange/README +++ b/taler-exchange/README @@ -1,6 +1,59 @@ The exchange for the Taler payment system. -The development version is used for this build. Taler also requires some -bootstrapping in order to follow the usual build steps. +Building this package on Slackware 15.0 requires: -Download and create the expected sourcecode into a tar file by running ./download.sh. + - Postgres 15.x or greater, slackbuilds.org has version 14.x. + - Build a newer version of llvm, by setting CC=clang, and installing llvm from Slackware Current. + - The pre-release version of Gnunet. + +Installing this package automatically creates a number of supporting system +users for the exchange. All are listed in the 'taler-exchange' user group. + +The taler exchange runs in a system of services, and a postgres database must +be configured to service them. The setup described here assumes postgres was +installed with using 'Peer authentication' by default (omitting '-A md5' when +running 'initdb' after postgres installation). + +Create the database and its users for system users which require it: + +``` +sudo -u postgres -- createuser taler-exchange-httpd +sudo -u postgres -- createuser taler-exchange-aggregator +sudo -u postgres -- createuser taler-exchange-closer +sudo -u postgres -- createuser taler-exchange-transfer +sudo -u postgres -- createuser taler-exchange-wirewatch +sudo -u postgres -- createdb taler-exchange --owner taler-exchange-httpd +``` + +Initialize the database schema, which should also be done after upgrades: + +``` +sudo -u taler-exchange-httpd -- taler-exchange-dbinit +``` + +Grant the user access to their tables in the database: + +``` +sudo -u taler-exchange-httpd psql taler-exchange << EOF + GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA exchange TO "taler-exchange-aggregator"; + GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA exchange TO "taler-exchange-closer"; + GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA exchange TO "taler-exchange-transfer"; + GRANT SELECT,INSERT,UPDATE ON ALL TABLES IN SCHEMA exchange TO "taler-exchange-wirewatch"; + GRANT USAGE ON ALL SEQUENCES IN SCHEMA exchange TO "taler-exchange-aggregator"; + GRANT USAGE ON ALL SEQUENCES IN SCHEMA exchange TO "taler-exchange-closer"; + GRANT USAGE ON ALL SEQUENCES IN SCHEMA exchange TO "taler-exchange-transfer"; + GRANT USAGE ON ALL SEQUENCES IN SCHEMA exchange TO "taler-exchange-wirewatch"; +EOF +``` + +To have the taler system start and stop with your host, add to /etc/rc.d/rc.local: + + if [ -x /etc/rc.d/rc.taler-exchange ]; then + /etc/rc.d/rc.taler-exchange start + fi + +And to /etc/rc.d/rc.local_shutdown (creating if needed): + + if [ -x /etc/rc.d/rc.taler-exchange ]; then + /etc/rc.d/rc.taler-exchange stop + fi diff --git a/taler-exchange/doinst.sh b/taler-exchange/doinst.sh new file mode 100644 index 0000000..e9cbe05 --- /dev/null +++ b/taler-exchange/doinst.sh @@ -0,0 +1,146 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +# Group for all taler exchange users. +if ! getent group taler >/dev/null; then + groupadd taler \ + --system \ + || true +fi + +# Group for all Taler users with direct database access. +if ! getent group taler-exchange-db >/dev/null; then + groupadd taler-exchange-db \ + --system \ + || true +fi + +# Group for processes with access to online signing keys. +if ! getent group taler-exchange-secmod >/dev/null; then + groupadd taler-exchange-secmod \ + --system \ + || true +fi + +# Group for the access to the offline private key. +if ! getent group taler-exchange-offline >/dev/null; then + groupadd taler-exchange-offline \ + --system \ + || true +fi + +if ! getent passwd taler-exchange-offline >/dev/null; then + useradd taler-exchange-offline \ + --comment 'Runs the HTTP daemon with the core business logic' \ + --groups taler-exchange-db \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +if ! getent passwd taler-exchange-secmod-rsa >/dev/null; then + useradd taler-exchange-secmod-rsa \ + --comment 'Manages the RSA private online signing keys' \ + --gid taler \ + --groups taler-exchange-secmod \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +if ! getent passwd taler-secmod-cs >/dev/null; then + useradd taler-exchange-secmod-cs \ + --comment 'Manages the CS private online signing keys' \ + --gid taler \ + --groups taler-exchange-secmod \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +if ! getent passwd taler-exchange-secmod-eddsa >/dev/null; then + useradd taler-exchange-secmod-eddsa \ + --comment 'Manages the EdDSA private online signing keys' \ + --gid taler \ + --groups taler-exchange-secmod \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +if ! getent passwd taler-exchange-closer >/dev/null; then + useradd taler-exchange-closer \ + --comment 'Closes idle reserves by triggering wire transfers that refund the originator' \ + --gid taler \ + --groups taler-exchange-db \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +if ! getent passwd taler-exchange-aggregator >/dev/null; then + useradd taler-exchange-aggregator \ + --comment 'Aggregates deposits into larger wire transfer requests' \ + --gid taler \ + --groups taler-exchange-db \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +if ! getent passwd taler-exchange-transfer >/dev/null; then + useradd taler-exchange-transfer \ + --comment 'Performs wire transfers with the bank (via LibEuFin/Nexus)' \ + --gid taler \ + --groups taler-exchange-db \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +if ! getent passwd taler-exchange-wirewatch >/dev/null; then + useradd taler-exchange-wirewatch \ + --comment 'Checks for incoming wire transfers with the bank (via LibEuFin/Nexus)' \ + --gid taler \ + --groups taler-exchange-db \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +if ! getent passwd taler-exchange-offline >/dev/null; then + useradd taler-exchange-offline \ + --comment 'User for the access to the offline private key.' \ + --gid taler \ + --groups taler-exchange-offline \ + --system \ + --home-dir /var/lib/taler \ + || true +fi + +config etc/httpd/sites-available/taler-exchange.conf.new +config etc/rc.d/rc.taler-exchange.new +config etc/taler/conf.d/exchange-business.conf.new +config etc/taler/conf.d/exchange-coins.conf.new +config etc/taler/conf.d/exchange-system.conf.new +config etc/taler/secrets/exchange-accountcredentials-1.secret.conf.new +config etc/taler/secrets/exchange-db.secret.conf.new + +chown root:taler etc/taler/secrets +chown root:taler var/cache/taler +chown root:taler var/lib/taler +chown root:taler var/log/taler + +chown :taler etc/taler/secrets/exchange-accountcredentials-1.secret.conf.new +chown :taler-exchange-db etc/taler/secrets/exchange-db.secret.conf.new +chown :taler-exchange-db etc/taler/secrets/exchange-db.secret.conf.new diff --git a/taler-exchange/download.sh b/taler-exchange/download.sh deleted file mode 100755 index 31d62bd..0000000 --- a/taler-exchange/download.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# exit early on error -set -e - -GIT_REPO=${GIT_REPO:-https://git.taler.net/exchange.git} -GIT_REPO_NAME=exchange -PRGNAM=taler-exchange -VERSION=${VERSION:-dadb96} - -CWD=$(pwd) -OUTPUT="${OUTPUT:-/tmp}" -PKG="$TMP/package-$PRGNAM" -TMP=${TMP:-/tmp/sky} - -mkdir -p "$TMP" -cd "$TMP" -rm -fr "$GIT_REPO_NAME" "$PRGNAM-$VERSION" -git clone "$GIT_REPO" -mv "$GIT_REPO_NAME" "$PRGNAM-$VERSION" - -cd "$PRGNAM-$VERSION" -git checkout "$VERSION" -./bootstrap -rm -fr .git - -cd "$TMP" -tar -f "$OUTPUT/$PRGNAM-$VERSION.tar.gz" -C "$TMP" -cj "$PRGNAM-$VERSION" -echo "$OUTPUT/$PRGNAM-$VERSION.tar.gz" diff --git a/taler-exchange/root/etc/httpd/sites-available/taler-exchange.conf.new b/taler-exchange/root/etc/httpd/sites-available/taler-exchange.conf.new new file mode 100644 index 0000000..39f2643 --- /dev/null +++ b/taler-exchange/root/etc/httpd/sites-available/taler-exchange.conf.new @@ -0,0 +1,4 @@ + + ProxyPass "unix:/run/taler/exchange-httpd/exchange-http.sock|http://example.com/" + RequestHeader add "X-Forwarded-Proto" "https" + diff --git a/taler-exchange/root/etc/rc.d/rc.taler-exchange.new b/taler-exchange/root/etc/rc.d/rc.taler-exchange.new new file mode 100755 index 0000000..b032830 --- /dev/null +++ b/taler-exchange/root/etc/rc.d/rc.taler-exchange.new @@ -0,0 +1,305 @@ +#!/bin/sh +# +# Startup/shutdown script for GNU Taler's exchange. +# + +create_run_dir() { + if [ ! -d /run/taler/ ]; then + mkdir -p /run/taler + chown :taler /run/taler + chmod g+wX /run/taler + fi +} + +start_httpd() { + echo "Starting Taler Exchange's httpd service" + create_run_dir + + daemon \ + --name=taler-exchange-httpd \ + --user=taler-exchange-httpd \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-exchange-httpd.log \ + -- taler-exchange-httpd --config /etc/taler/taler.conf +} + +status_httpd() { + /usr/bin/daemon --name=taler-exchange-httpd --pidfiles=/run/taler --running --verbose +} + +stop_httpd() { + echo "Stopping Taler Exchange's httpd service" + /usr/bin/daemon --name=taler-exchange-httpd --pidfiles=/run/taler --stop +} + +start_aggregator() { + echo "Starting Taler Exchange's aggregator service" + create_run_dir + + daemon \ + --name=taler-exchange-aggregator \ + --user=taler-exchange-aggregator \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-exchange-aggregator.log \ + -- taler-exchange-aggregator --config /etc/taler/taler.conf +} + +status_aggregator() { + /usr/bin/daemon --name=taler-exchange-aggregator --pidfiles=/run/taler --running --verbose +} + +stop_aggregator() { + echo "Stopping Taler Exchange's aggregator service" + /usr/bin/daemon --name=taler-exchange-aggregator --pidfiles=/run/taler --stop +} + +start_closer() { + echo "Starting Taler Exchange's closer service" + create_run_dir + + daemon \ + --name=taler-exchange-closer \ + --user=taler-exchange-closer \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-exchange-closer.log \ + -- taler-exchange-closer --config /etc/taler/taler.conf +} + +status_closer() { + /usr/bin/daemon --name=taler-exchange-closer --pidfiles=/run/taler --running --verbose +} + +stop_closer() { + echo "Stopping Taler Exchange's closer service" + /usr/bin/daemon --name=taler-exchange-closer --pidfiles=/run/taler --stop +} + +start_secmod_cs() { + echo "Starting Taler Exchange's secmod-cs service" + create_run_dir + + daemon \ + --name=taler-exchange-secmod-cs \ + --user=taler-exchange-secmod-cs \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-exchange-secmod-cs.log \ + -- taler-exchange-secmod-cs --config /etc/taler/taler.conf +} + +status_secmod_cs() { + /usr/bin/daemon --name=taler-exchange-secmod-cs --pidfiles=/run/taler --running --verbose +} + +stop_secmod_cs() { + echo "Stopping Taler Exchange's secmod-cs service" + /usr/bin/daemon --name=taler-exchange-secmod-cs --pidfiles=/run/taler --stop +} + +start_secmod_rsa() { + echo "Starting Taler Exchange's secmod-rsa service" + create_run_dir + + daemon \ + --name=taler-exchange-secmod-rsa \ + --user=taler-exchange-secmod-rsa \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-exchange-secmod-rsa.log \ + -- taler-exchange-secmod-rsa --config /etc/taler/taler.conf +} + +status_secmod_rsa() { + /usr/bin/daemon --name=taler-exchange-secmod-rsa --pidfiles=/run/taler --running --verbose +} + +stop_secmod_rsa() { + echo "Stopping Taler Exchange's secmod-rsa service" + /usr/bin/daemon --name=taler-exchange-secmod-rsa --pidfiles=/run/taler --stop +} + +start_secmod_eddsa() { + echo "Starting Taler Exchange's secmod-eddsa service" + create_run_dir + + daemon \ + --name=taler-exchange-secmod-eddsa \ + --user=taler-exchange-secmod-eddsa \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-exchange-secmod-eddsa.log \ + -- taler-exchange-secmod-eddsa --config /etc/taler/taler.conf +} + +stop_secmod_eddsa() { + echo "Stopping Taler Exchange's secmod-eddsa service" + /usr/bin/daemon --name=taler-exchange-secmod-eddsa --pidfiles=/run/taler --stop +} + +start_transfer() { + echo "Starting Taler Exchange's transfer service" + create_run_dir + + daemon \ + --name=taler-exchange-transfer \ + --user=taler-exchange-transfer \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-exchange-transfer.log \ + -- taler-exchange-transfer --config /etc/taler/taler.conf +} + +status_transfer() { + /usr/bin/daemon --name=taler-exchange-transfer --pidfiles=/run/taler --running --verbose +} + +stop_transfer() { + echo "Stopping Taler Exchange's transfer service" + /usr/bin/daemon --name=taler-exchange-transfer --pidfiles=/run/taler --stop +} + +start_wirewatch() { + echo "Starting Taler Exchange's wirewatch service" + create_run_dir + + daemon \ + --name=taler-exchange-wirewatch \ + --user=taler-exchange-wirewatch \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-exchange-wirewatch.log \ + -- taler-exchange-wirewatch --config /etc/taler/taler.conf +} + +status_wirewatch() { + /usr/bin/daemon --name=taler-exchange-wirewatch --pidfiles=/run/taler --running --verbose +} + +stop_wirewatch() { + echo "Stopping Taler Exchange's wirewatch service" + /usr/bin/daemon --name=taler-exchange-wirewatch --pidfiles=/run/taler --stop +} + +start() { + start_httpd + start_aggregator + start_closer + start_secmod_cs + start_secmod_rsa + start_secmod_eddsa + start_transfer + start_wirewatch +} + +status() { + status_httpd + status_aggregator + status_closer + status_secmod_cs + status_secmod_rsa + status_transfer + status_wirewatch +} + +stop() { + stop_httpd + stop_aggregator + stop_closer + stop_secmod_cs + stop_secmod_rsa + stop_transfer + stop_wirewatch +} + +case "$1" in +start-httpd) + start_httpd + ;; +status-httpd) + status_httpd + ;; +stop-httpd) + stop_httpd + ;; + +start-aggregator) + start_aggregator + ;; +status-aggregator) + status_aggregator + ;; +stop-aggregator) + stop_aggregator + ;; + +start-closer) + start_closer + ;; +status-closer) + status_closer + ;; +stop-closer) + stop_closer + ;; + +start-secmod_cs) + start_secmod_cs + ;; +status-secmod_cs) + status_secmod_cs + ;; +stop-secmod_cs) + stop_secmod_cs + ;; + +start-secmod_rsa) + start_secmod_rsa + ;; +status-secmod_rsa) + status_secmod_rsa + ;; +stop-secmod_rsa) + stop_secmod_rsa + ;; + +start-secmod_eddsa) + start_secmod_eddsa + ;; +status-secmod_eddsa) + status_secmod_eddsa + ;; +stop-secmod_eddsa) + stop_secmod_eddsa + ;; + +start-transfer) + start_transfer + ;; +status-transfer) + status_transfer + ;; +stop-transfer) + stop_transfer + ;; + +start-wirewatch) + start_wirewatch + ;; +status-wirewatch) + status_wirewatch + ;; +stop-wirewatch) + stop_wirewatch + ;; + +start) + start + ;; +status) + status + ;; +stop) + stop + ;; +*) + echo "Usage: $0 {start\(-*\)|stop\(-*\)|status\(-*\)}" + exit 1 +esac + + + diff --git a/taler-exchange/root/etc/taler/conf.d/exchange-business.conf.new b/taler-exchange/root/etc/taler/conf.d/exchange-business.conf.new new file mode 100644 index 0000000..f56e47b --- /dev/null +++ b/taler-exchange/root/etc/taler/conf.d/exchange-business.conf.new @@ -0,0 +1,48 @@ +# Configuration for business-level aspects of the exchange. + +[exchange] + +# Here you MUST add the master public key of the offline system +# which you can get using `taler-exchange-offline setup`. +# This is just an example, your key will be different! +# MASTER_PUBLIC_KEY = YE6Q6TR1EDB7FD0S68TGDZGF1P0GHJD2S0XVV8R2S62MYJ6HJ4ZG +# MASTER_PUBLIC_KEY = + +# Publicly visible base URL of the exchange. +# BASE_URL = https://example.com/ +# BASE_URL = + +# Here you MUST configure the amount above which transactions are +# always subject to manual AML review. +# AML_THRESHOLD = + +# Attribute encryption key for storing attributes encrypted +# in the database. Should be a high-entropy nonce. +ATTRIBUTE_ENCRYPTION_KEY = SET_ME_PLEASE + +# For your terms of service and privacy policy, you should specify +# an Etag that must be updated whenever there are significant +# changes to either document. The format is up to you, what matters +# is that the value is updated and never re-used. See the HTTP +# specification on Etags. +# TERMS_ETAG = +# PRIVACY_ETAG = + +SERVE = unix +UNIXPATH_MODE = 666 + +# Bank accounts used by the exchange should be specified here: +[exchange-account-1] + +ENABLE_CREDIT = NO +ENABLE_DEBIT = NO + +# Account identifier in the form of an RFC-8905 payto:// URI. +# For SEPA, looks like payto://sepa/$IBAN?receiver-name=$NAME +# Make sure to URL-encode spaces in $NAME! +PAYTO_URI = + +# Credentials to access the account are in a separate +# config file with restricted permissions. +@inline-secret@ exchange-accountcredentials-1 ../secrets/exchange-accountcredentials-1.secret.conf + diff --git a/taler-exchange/root/etc/taler/conf.d/exchange-coins.conf.new b/taler-exchange/root/etc/taler/conf.d/exchange-coins.conf.new new file mode 100644 index 0000000..562ba05 --- /dev/null +++ b/taler-exchange/root/etc/taler/conf.d/exchange-coins.conf.new @@ -0,0 +1,34 @@ +# +# This configuration file specifies the various denominations offered by your +# exchange. +# +# Each denomination must be specified in a sections starting with +# "coin_". +# +# What follows is an example. +# + +# [coin_FOO] +## Actual value of the coin +#VALUE = KUDOS:1 + +## How long will one key be used for withdrawals? +#DURATION_WITHDRAW = 7 days + +## How long do users have to spend their coins? +#DURATION_SPEND = 2 years + +## How long does the exchange keep the proofs around for legal disputes? +#DURATION_LEGAL = 6 years + +## Fees charged. Note that for the lowest denomination, the +## fee must precisely be the lowest denomination, or zero. +#FEE_WITHDRAW = KUDOS:0 +#FEE_DEPOSIT = KUDOS:0 +#FEE_REFRESH = KUDOS:0 +#FEE_REFUND = KUDOS:0 + +## How long should the RSA keys be. Do not change unless you really know +## what you are doing (consult your local cryptographer first!). +#RSA_KEYSIZE = 2048 + diff --git a/taler-exchange/root/etc/taler/conf.d/exchange-system.conf.new b/taler-exchange/root/etc/taler/conf.d/exchange-system.conf.new new file mode 100644 index 0000000..75c670f --- /dev/null +++ b/taler-exchange/root/etc/taler/conf.d/exchange-system.conf.new @@ -0,0 +1,10 @@ +# Configuration settings for system parameters of the exchange. + +# Read secret sections into configuration, but only +# if we have permission to do so. +@inline-secret@ exchangedb-postgres ../secrets/exchange-db.secret.conf + +[exchange] + +# Only supported database is Postgres right now. +DATABASE = postgres diff --git a/taler-exchange/root/etc/taler/secrets/exchange-accountcredentials-1.secret.conf.new b/taler-exchange/root/etc/taler/secrets/exchange-accountcredentials-1.secret.conf.new new file mode 100644 index 0000000..603dc60 --- /dev/null +++ b/taler-exchange/root/etc/taler/secrets/exchange-accountcredentials-1.secret.conf.new @@ -0,0 +1,16 @@ +# This file contains the secret credentials +# to access the Taler Wire Gateway API (usually +# provided by LibEuFin) for the exchange accounts. +# +# Each exchange-account-* section should have a matching +# exchange-accountcredentials-* section here. +# +# Each of those sections must be imported via @inline-secret@, +# usually in conf.d/exchange-business.conf. + +[exchange-accountcredentials-1] + +wire_gateway_auth_method = basic +password = +username = +wire_gateway_url = diff --git a/taler-exchange/root/etc/taler/secrets/exchange-db.secret.conf.new b/taler-exchange/root/etc/taler/secrets/exchange-db.secret.conf.new new file mode 100644 index 0000000..08c2007 --- /dev/null +++ b/taler-exchange/root/etc/taler/secrets/exchange-db.secret.conf.new @@ -0,0 +1,10 @@ +# Database configuration for the Taler exchange. + +[exchangedb-postgres] + +# Typically, there should only be a single line here, of the form: + +CONFIG=postgres:///taler-exchange + +# The details of the URI depend on where the database lives and how +# access control was configured. diff --git a/taler-exchange/slack-desc b/taler-exchange/slack-desc index e4aaa1d..712c373 100644 --- a/taler-exchange/slack-desc +++ b/taler-exchange/slack-desc @@ -4,9 +4,3 @@ taler-exchange: taler-exchange: The exchange for the Taler payment system. taler-exchange: taler-exchange: -taler-exchange: -taler-exchange: -taler-exchange: -taler-exchange: -taler-exchange: -taler-exchange: diff --git a/taler-exchange/taler-exchange.SlackBuild b/taler-exchange/taler-exchange.SlackBuild index 5e59b9f..7234194 100755 --- a/taler-exchange/taler-exchange.SlackBuild +++ b/taler-exchange/taler-exchange.SlackBuild @@ -1,10 +1,13 @@ #!/bin/sh PRGNAM=taler-exchange -VERSION=${VERSION:-0.8.4} +VERSION=${VERSION:-0.9.4a} BUILD=${BUILD:-1} TAG=${TAG:-_slackcoder} +TALER_GID=${TALER_GID:-704} +TALER_EXCHANGE_DB_GID=${TALER_EXCHANGE_DB_GID:-705} + if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; @@ -37,9 +40,9 @@ set -e 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-0.9.4a +tar xvf $CWD/$PRGNAM-0.9.4a.tar.gz +cd $PRGNAM-0.9.4a chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ @@ -53,7 +56,7 @@ find -L . \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ + --docdir=/usr/doc/$PRGNAM-0.9.4a \ --disable-static \ --build=$ARCH-slackware-linux make @@ -62,12 +65,40 @@ make DESTDIR="$PKG" install 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 -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a README $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +mkdir -p $PKG/usr/doc/$PRGNAM-0.9.4a +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-0.9.4a/$PRGNAM.SlackBuild +cat $CWD/README > $PKG/usr/doc/$PRGNAM-0.9.4a/README_slackware.txt +cp -a \ + AUTHORS \ + COPYING \ + ChangeLog \ + INSTALL \ + NEWS \ + README \ + README.1st \ + $PKG/usr/doc/$PRGNAM-0.9.4a mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +mkdir -p $PKG/etc/taler/secrets +chown root:$TALER_GID $PKG/etc/taler/secrets +mkdir -p $PKG/var/cache/taler +chown root:$TALER_GID $PKG/var/cache/taler +chmod g+w $PKG/var/cache/taler +mkdir -p $PKG/var/lib/taler +chown root:$TALER_GID $PKG/var/lib/taler +chmod g+w $PKG/var/lib/taler +mkdir -p $PKG/var/log/taler +chown root:$TALER_GID $PKG/var/log/taler +chmod g+w $PKG/var/log/taler + +(cd $CWD/root && find . -type f -not -path . -exec install -D -m 755 {} "$PKG/{}" \; ) +chown :$TALER_GID $PKG/etc/taler/secrets/exchange-accountcredentials-1.secret.conf.new +chown :$TALER_EXCHANGE_DB_GID $PKG/etc/taler/secrets/exchange-db.secret.conf.new +chown :$TALER_EXCHANGE_DB_GID $PKG/etc/taler/secrets/exchange-db.secret.conf.new +chmod -R u=rwX,g=rX,o= $PKG/etc/taler/secrets/* cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-0.9.4a-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/taler-exchange/taler-exchange.info b/taler-exchange/taler-exchange.info index a6bbf39..0a1558a 100644 --- a/taler-exchange/taler-exchange.info +++ b/taler-exchange/taler-exchange.info @@ -1,8 +1,8 @@ PRGNAM="taler-exchange" -VERSION="0.8.4" +VERSION="0.9.4a" HOMEPAGE="https://taler.net" -DOWNLOAD="https://ftpmirror.gnu.org/taler/taler-exchange-0.8.4.tar.gz" -MD5SUM="fb9d15d363a7b8069f3cb220fefa996c" -REQUIRES="gnunet Jinja2" +DOWNLOAD="https://ftpmirror.gnu.org/gnu/taler/taler-exchange-0.9.4a.tar.gz" +MD5SUM="04705ee8fc210ec161b5ba5e4b007d3b" +REQUIRES="gnunet jq postgresql" MAINTAINER="Slack Coder" EMAIL="slackcoder@server.ky" diff --git a/taler-merchant/README b/taler-merchant/README index 7b7ebf5..7d45e58 100644 --- a/taler-merchant/README +++ b/taler-merchant/README @@ -1,6 +1,35 @@ The merchant for the Taler payment system. -The development version is used for this build. Taler also requires some -bootstrapping in order to follow the usual build steps. +Building this package on Slackware 15.0 requires: -Download and create the expected sourcecode into a tar file by running ./download.sh. + - Postgres 15.x or greater, slackbuilds.org has version 14.x. + - Build a newer version of llvm, by setting CC=clang, and installing llvm from Slackware Current. + - The pre-release version of Gnunet. + +Installing this package automatically creates the taler-merchant user and group. + +The taler merchant requires a postgres database to be configured. The setup +described here assumes postgres was installed with using 'Peer authentication' +by default (omitting '-A md5' when running 'initdb' after postgres +installation). + +``` +# Create the database and its user. +sudo -u postgres -- createuser taler-merchant +sudo -u postgres -- createdb taler-merchant --owner taler-merchant + +# Initialize the database, must be done after each upgrade +sudo -u taler-merchant -- taler-merchant-dbinit +``` + +To have the taler system start and stop with your host, add to /etc/rc.d/rc.local: + + if [ -x /etc/rc.d/rc.taler-merchant ]; then + /etc/rc.d/rc.taler-merchant start + fi + +And to /etc/rc.d/rc.local_shutdown (creating if needed): + + if [ -x /etc/rc.d/rc.taler-merchant ]; then + /etc/rc.d/rc.taler-merchant stop + fi diff --git a/taler-merchant/doinst.sh b/taler-merchant/doinst.sh new file mode 100644 index 0000000..5c6afac --- /dev/null +++ b/taler-merchant/doinst.sh @@ -0,0 +1,41 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +if ! getent group taler >/dev/null; then + groupadd taler \ + --system +fi + +if ! getent group taler-merchant >/dev/null; then + groupadd taler-merchant \ + --system +fi + +if ! getent passwd taler-merchant >/dev/null; then + useradd taler-merchant \ + --comment 'Merchant for accepting taler payments' \ + --gid taler-merchant \ + --groups taler \ + --system +fi + +config etc/httpd/sites-available/taler-merchant.conf.new +config etc/rc.d/rc.taler-merchant.new +config etc/taler/conf.d/merchant.conf.new +config etc/taler/secrets/merchant-db.secret.conf.new + +chown :taler etc/taler/secrets +chown :taler var/cache/taler +chown :taler var/lib/taler +chown :taler var/log/taler +chown :taler-merchant etc/taler/secrets/merchant-db.secret.conf.new diff --git a/taler-merchant/download.sh b/taler-merchant/download.sh deleted file mode 100755 index fab7477..0000000 --- a/taler-merchant/download.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# exit early on error -set -e - -GIT_REPO=${GIT_REPO:-https://git.taler.net/merchant.git} -GIT_REPO_NAME=merchant -PRGNAM=taler-merchant -VERSION=${VERSION:-9b2eae} - -CWD=$(pwd) -OUTPUT="${OUTPUT:-/tmp}" -PKG="$TMP/package-$PRGNAM" -TMP=${TMP:-/tmp/sky} - -mkdir -p "$TMP" -cd "$TMP" -rm -fr "$GIT_REPO_NAME" "$PRGNAM-$VERSION" -git clone "$GIT_REPO" -mv "$GIT_REPO_NAME" "$PRGNAM-$VERSION" - -cd "$PRGNAM-$VERSION" -git checkout "$VERSION" -./bootstrap -rm -fr .git - -cd "$TMP" -tar -f "$OUTPUT/$PRGNAM-$VERSION.tar.gz" -C "$TMP" -cj "$PRGNAM-$VERSION" -echo "$OUTPUT/$PRGNAM-$VERSION.tar.gz" diff --git a/taler-merchant/root/etc/httpd/sites-available/taler-merchant.conf.new b/taler-merchant/root/etc/httpd/sites-available/taler-merchant.conf.new new file mode 100644 index 0000000..5d0050a --- /dev/null +++ b/taler-merchant/root/etc/httpd/sites-available/taler-merchant.conf.new @@ -0,0 +1,22 @@ +# Make sure to enable the following Apache modules before +# integrating this into your configuration: +# +# a2enmod proxy +# a2enmod proxy_http +# a2enmod headers +# +# NOTE: +# - consider to adjust the location +# - consider putting all this into a VirtualHost +# - strongly consider setting up TLS support +# +# For all of the above, please read the respective +# Apache documentation. +# + + ProxyPass "unix:/var/run/taler/merchant-httpd/merchant-http.sock|http://example.com/" + + # NOTE: + # - Uncomment this line if you use TLS/HTTPS + RequestHeader add "X-Forwarded-Proto" "https" + diff --git a/taler-merchant/root/etc/rc.d/rc.taler-merchant.new b/taler-merchant/root/etc/rc.d/rc.taler-merchant.new new file mode 100755 index 0000000..cf6c783 --- /dev/null +++ b/taler-merchant/root/etc/rc.d/rc.taler-merchant.new @@ -0,0 +1,51 @@ +#!/bin/sh +# +# Startup/shutdown script for GNU Taler's exchange. +# + +create_run_dir() { + if [ ! -d /run/taler/ ]; then + mkdir -p /run/taler + chown :taler /run/taler + chmod g+wX /run/taler + fi +} + +start() { + echo "Starting Taler Merchant" + create_run_dir + + daemon \ + --name=taler-merchant-httpd \ + --user=taler-merchant \ + --pidfiles=/run/taler \ + --output=/var/log/taler/taler-merchant-httpd.log \ + -- taler-merchant-httpd --config /etc/taler/taler.conf +} + +stop() { + echo "Stopping Taler Merchant" + /usr/bin/daemon --name=taler-merchant-httpd --pidfiles=/run/taler --stop +} + +status() { + /usr/bin/daemon --name=taler-merchant-httpd --pidfiles=/run/taler --running --verbose +} + +case "$1" in +start) + start + ;; +stop) + stop + ;; +status) + status + ;; +*) + echo "Usage: $0 {start|stop|status}" + exit 1 +esac + + + diff --git a/taler-merchant/root/etc/taler/conf.d/merchant.conf.new b/taler-merchant/root/etc/taler/conf.d/merchant.conf.new new file mode 100644 index 0000000..4851615 --- /dev/null +++ b/taler-merchant/root/etc/taler/conf.d/merchant.conf.new @@ -0,0 +1,10 @@ +# Read secret sections into configuration, but only +# if we have permission to do so. +@inline-secret@ merchantdb-postgres ../secrets/merchant-db.secret.conf + +[merchant] +DATABASE = postgres +SERVE = unix + +# Merchant-specific overrides, included last to take precedence. +@inline-matching@ ../merchant-overrides.conf diff --git a/taler-merchant/root/etc/taler/secrets/merchant-db.secret.conf.new b/taler-merchant/root/etc/taler/secrets/merchant-db.secret.conf.new new file mode 100644 index 0000000..6cbbb24 --- /dev/null +++ b/taler-merchant/root/etc/taler/secrets/merchant-db.secret.conf.new @@ -0,0 +1,8 @@ +[merchantdb-postgres] + +# Typically, there should only be a single line here, of the form: + +CONFIG=postgres:///taler-merchant + +# The details of the URI depend on where the database lives and how +# access control was configured. diff --git a/taler-merchant/taler-merchant.SlackBuild b/taler-merchant/taler-merchant.SlackBuild index 33d9a8d..bfeb870 100755 --- a/taler-merchant/taler-merchant.SlackBuild +++ b/taler-merchant/taler-merchant.SlackBuild @@ -1,7 +1,7 @@ #!/bin/sh PRGNAM=taler-merchant -VERSION=${VERSION:-0.8.3} +VERSION=${VERSION:-0.9.4b} BUILD=${BUILD:-1} TAG=${TAG:-_slackcoder} @@ -37,9 +37,9 @@ set -e 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-0.9.4b +tar xvf $CWD/$PRGNAM-0.9.4b.tar.gz +cd $PRGNAM-0.9.4b chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ @@ -53,28 +53,41 @@ find -L . \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ + --docdir=/usr/doc/$PRGNAM-0.9.4b \ --disable-static \ --build=$ARCH-slackware-linux make make DESTDIR="$PKG" install -# make install does not exist for this project - 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 -# A soon to be fixed bug expects this file, causing it to exit early with -# error. -mkdir -p "$PKG/usr/share/taler/merchant/spa" -touch "$PKG/usr/share/taler/merchant/spa/spa.html" - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a COPYING COPYING.* README $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +mkdir -p $PKG/usr/doc/$PRGNAM-0.9.4b +cp -a COPYING COPYING.* README $PKG/usr/doc/$PRGNAM-0.9.4b +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-0.9.4b/$PRGNAM.SlackBuild +cat $CWD/README > $PKG/usr/doc/$PRGNAM-0.9.4b/README_slackware.txt +cp -a \ + AUTHORS \ + COPYING* \ + ChangeLog \ + NEWS \ + README \ + $PKG/usr/doc/$PRGNAM-0.9.4b mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +mkdir -p $PKG/etc/taler/secrets +mkdir -p $PKG/var/cache/taler +chmod g+w $PKG/var/cache/taler +mkdir -p $PKG/var/lib/taler +chmod g+w $PKG/var/lib/taler +mkdir -p $PKG/var/log/taler +chmod g+w $PKG/var/log/taler + +(cd $CWD/root && find . -type f -exec install -D -m 755 {} "$PKG/{}" \; ) +chmod -R u=rwX,g=rX,o= $PKG/etc/taler/secrets cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-0.9.4b-$ARCH-$BUILD$TAG.${PKGTYPE:-txz} diff --git a/taler-merchant/taler-merchant.info b/taler-merchant/taler-merchant.info index 93ba69a..f93b314 100644 --- a/taler-merchant/taler-merchant.info +++ b/taler-merchant/taler-merchant.info @@ -1,8 +1,8 @@ PRGNAM="taler-merchant" -VERSION="0.8.3" +VERSION="0.9.4b" HOMEPAGE="https://taler.net" -DOWNLOAD="http://ftpmirror.gnu.org/taler/taler-merchant-0.8.3.tar.gz" -MD5SUM="8eda88ca970f8895e3c6b1ed03e18e48" +DOWNLOAD="https://ftpmirror.gnu.org/gnu/taler/taler-merchant-0.9.4b.tar.gz" +MD5SUM="6762ff93cbbe55b452ea9a213b935585" REQUIRES="gnunet taler-exchange" -MAINTAINER="SlackCoder" +MAINTAINER="Slack Coder" EMAIL="slackcoder@server.ky" -- cgit v1.2.3