commit 8a0148a2a4e8d5c4942d78e6d57cc9cde56c6156 Author: EnumDev Date: Wed Oct 1 14:28:21 2025 +0300 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e58e5f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Exclude bpm archives +*.bpm \ No newline at end of file diff --git a/check-version.sh b/check-version.sh new file mode 100644 index 0000000..ecdff02 --- /dev/null +++ b/check-version.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +URL="https://download.gluster.org/pub/gluster/glusterfs/LATEST/" + +# Get version number from FTP server +VERSION=$(curl -s -L "$URL" | grep -o 'glusterfs-.*.tar.gz' | grep -o -E '[0-9]{1,}.[0-9]{1,}' | head -n1) + +echo "$VERSION" diff --git a/pkg.info b/pkg.info new file mode 100644 index 0000000..76ad27c --- /dev/null +++ b/pkg.info @@ -0,0 +1,30 @@ +name: glusterfs +description: free and open source software scalable network filesystem +version: "11.1" +revision: 1 +url: https://www.gluster.org/ +license: GPL2-or-later,LGPL3-only +architecture: any +type: source +keep: + - etc/glusterfs/ +depends: + - attr + - fuse3 + - gperftools + - libaio + - liburcu + - liburing + - libxml2 + - python3 + - rpcbind + - sysusers +optional_depends: + - glib +make_depends: + - rpcsvc-proto +downloads: + - url: https://download.gluster.org/pub/gluster/glusterfs/${BPM_PKG_VERSION%%.*}/${BPM_PKG_VERSION}/glusterfs-${BPM_PKG_VERSION}.tar.gz + extract_to_bpm_source: true + extract_strip_components: 1 + checksum: 6a31b8450d02cd12f47f4571c031e9d6b8705279a0e8970ae9a05e1c87dffb76 diff --git a/source-files/sysusers b/source-files/sysusers new file mode 100644 index 0000000..96942d2 --- /dev/null +++ b/source-files/sysusers @@ -0,0 +1 @@ +u! gluster - "GlusterFS daemons" /var/run/gluster - diff --git a/source.sh b/source.sh new file mode 100644 index 0000000..5116036 --- /dev/null +++ b/source.sh @@ -0,0 +1,47 @@ +# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package +# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE +# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT + +prepare() { + cd "$BPM_SOURCE" + autoreconf -fi +} + +# The build function is executed in the source directory +# This function is used to compile the source code +build() { + ./configure --prefix=/usr \ + --sbindir=/usr/bin \ + --with-mountutildir=/usr/bin \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/share/man \ + --libexecdir=/usr/lib/glusterfs \ + --enable-gnfs \ + LEXLIB= + make +} + +# The check function is executed in the source directory +# This function is used to run tests to verify the package has been compiled correctly +check() { + make check +} + +# The package function is executed in the source directory +# This function is used to move the compiled files into the output directory +package() { + make -j1 DESTDIR="$BPM_OUTPUT" install + + # Remove unwanted directory + rm -rf "$BPM_OUTPUT"/var/run + + # Install documentation + cp -r doc/* "$BPM_OUTPUT"/usr/share/doc/glusterfs/ + + # Install sysusers file + install -Dm644 "$BPM_WORKDIR"/sysusers "$BPM_OUTPUT"/usr/lib/sysusers.d/glusterfs.conf + + # Install package license + install -Dm644 "$BPM_SOURCE"/COPYING* -t "$BPM_OUTPUT"/usr/share/licenses/glusterfs/ +}