diff options
-rw-r--r-- | testing/lizardfs/0001-common-Add-multi-platform-endian-conversion-function.patch | 152 | ||||
-rw-r--r-- | testing/lizardfs/APKBUILD | 203 | ||||
-rw-r--r-- | testing/lizardfs/fix-headers.patch | 12 | ||||
-rw-r--r-- | testing/lizardfs/lizardfs-cgiserv.initd | 10 | ||||
-rw-r--r-- | testing/lizardfs/lizardfs-chunkserver.initd | 10 | ||||
-rw-r--r-- | testing/lizardfs/lizardfs-master.initd | 9 | ||||
-rw-r--r-- | testing/lizardfs/lizardfs-metalogger.initd | 9 | ||||
-rw-r--r-- | testing/lizardfs/lizardfs.pre-install | 6 |
8 files changed, 411 insertions, 0 deletions
diff --git a/testing/lizardfs/0001-common-Add-multi-platform-endian-conversion-function.patch b/testing/lizardfs/0001-common-Add-multi-platform-endian-conversion-function.patch new file mode 100644 index 0000000000..0c805d9b56 --- /dev/null +++ b/testing/lizardfs/0001-common-Add-multi-platform-endian-conversion-function.patch @@ -0,0 +1,152 @@ +From 9b03a1b4481ed48f8950c2cffd36112f67d6e183 Mon Sep 17 00:00:00 2001 +From: Frank Denis <github@pureftpd.org> +Date: Thu, 19 Mar 2015 11:52:40 +0100 +Subject: [PATCH] common: Add multi-platform endian conversion functions + +This commit adds portable_endian.h file with set of endian conversion +functions. + +Change-Id: I145cdc7c79eb9a16bd5199247af1976e18c59814 +--- + src/common/portable_endian.h | 116 +++++++++++++++++++++++++++++++++++++++++++ + src/common/posix_acl_xattr.h | 1 + + 2 files changed, 117 insertions(+) + create mode 100644 src/common/portable_endian.h + +diff --git a/src/common/portable_endian.h b/src/common/portable_endian.h +new file mode 100644 +index 0000000..e1d1d59 +--- /dev/null ++++ b/src/common/portable_endian.h +@@ -0,0 +1,116 @@ ++// "License": Public Domain ++// I, Mathias Panzenböck, place this file hereby into the public domain. Use it at your own risk for whatever you like. ++// In case there are jurisdictions that don't support putting things in the public domain you can also consider it to ++// be "dual licensed" under the BSD, MIT and Apache licenses, if you want to. This code is trivial anyway. Consider it ++// an example on how to get the endian conversion functions on different platforms. ++ ++#pragma once ++ ++#include "common/platform.h" ++ ++#if (defined(_WIN16) || defined(_WIN32) || defined(_WIN64)) && !defined(__WINDOWS__) ++ ++#define __WINDOWS__ ++ ++#endif ++ ++#if defined(__linux__) || defined(__CYGWIN__) ++ ++#include <endian.h> ++ ++#elif defined(__APPLE__) ++ ++#include <libkern/OSByteOrder.h> ++ ++#define htobe16(x) OSSwapHostToBigInt16(x) ++#define htole16(x) OSSwapHostToLittleInt16(x) ++#define be16toh(x) OSSwapBigToHostInt16(x) ++#define le16toh(x) OSSwapLittleToHostInt16(x) ++ ++#define htobe32(x) OSSwapHostToBigInt32(x) ++#define htole32(x) OSSwapHostToLittleInt32(x) ++#define be32toh(x) OSSwapBigToHostInt32(x) ++#define le32toh(x) OSSwapLittleToHostInt32(x) ++ ++#define htobe64(x) OSSwapHostToBigInt64(x) ++#define htole64(x) OSSwapHostToLittleInt64(x) ++#define be64toh(x) OSSwapBigToHostInt64(x) ++#define le64toh(x) OSSwapLittleToHostInt64(x) ++ ++#define __BYTE_ORDER BYTE_ORDER ++#define __BIG_ENDIAN BIG_ENDIAN ++#define __LITTLE_ENDIAN LITTLE_ENDIAN ++#define __PDP_ENDIAN PDP_ENDIAN ++ ++#elif defined(__OpenBSD__) ++ ++#include <sys/endian.h> ++ ++#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) ++ ++#include <sys/endian.h> ++ ++#define be16toh(x) betoh16(x) ++#define le16toh(x) letoh16(x) ++ ++#define be32toh(x) betoh32(x) ++#define le32toh(x) letoh32(x) ++ ++#define be64toh(x) betoh64(x) ++#define le64toh(x) letoh64(x) ++ ++#elif defined(__WINDOWS__) ++ ++#include <winsock2.h> ++#include <sys/param.h> ++ ++#if BYTE_ORDER == LITTLE_ENDIAN ++ ++#define htobe16(x) htons(x) ++#define htole16(x) (x) ++#define be16toh(x) ntohs(x) ++#define le16toh(x) (x) ++ ++#define htobe32(x) htonl(x) ++#define htole32(x) (x) ++#define be32toh(x) ntohl(x) ++#define le32toh(x) (x) ++ ++#define htobe64(x) htonll(x) ++#define htole64(x) (x) ++#define be64toh(x) ntohll(x) ++#define le64toh(x) (x) ++ ++#elif BYTE_ORDER == BIG_ENDIAN ++ ++#define htobe16(x) (x) ++#define htole16(x) __builtin_bswap16(x) ++#define be16toh(x) (x) ++#define le16toh(x) __builtin_bswap16(x) ++ ++#define htobe32(x) (x) ++#define htole32(x) __builtin_bswap32(x) ++#define be32toh(x) (x) ++#define le32toh(x) __builtin_bswap32(x) ++ ++#define htobe64(x) (x) ++#define htole64(x) __builtin_bswap64(x) ++#define be64toh(x) (x) ++#define le64toh(x) __builtin_bswap64(x) ++ ++#else ++ ++#error byte order not supported ++ ++#endif ++ ++#define __BYTE_ORDER BYTE_ORDER ++#define __BIG_ENDIAN BIG_ENDIAN ++#define __LITTLE_ENDIAN LITTLE_ENDIAN ++#define __PDP_ENDIAN PDP_ENDIAN ++ ++#else ++ ++#error platform not supported ++ ++#endif +diff --git a/src/common/posix_acl_xattr.h b/src/common/posix_acl_xattr.h +index 29c3543..c293dc9 100644 +--- a/src/common/posix_acl_xattr.h ++++ b/src/common/posix_acl_xattr.h +@@ -8,6 +8,7 @@ + + #include "common/exception.h" + #include "common/massert.h" ++#include "common/portable_endian.h" + + // These #defines and structs were extracted from kernel sources + +-- +2.4.5 + diff --git a/testing/lizardfs/APKBUILD b/testing/lizardfs/APKBUILD new file mode 100644 index 0000000000..52c48fb228 --- /dev/null +++ b/testing/lizardfs/APKBUILD @@ -0,0 +1,203 @@ +# Contributor: +# Maintainer: +pkgname=lizardfs +pkgver=2.6.0 +pkgrel=0 +pkgdesc="a highly reliable, scalable and efficient distributed file system" +url="https://github.com/lizardfs/lizardfs/" +arch="all" +license="GPLv3" +depends="" +depends_dev="" +makedepends="$depends_dev cmake fuse-dev zlib-dev asciidoc python" +pkgusers="mfs" +pkggroups="mfs" +install="$pkgname.pre-install" +subpackages="$pkgname-doc $pkgname-master $pkgname-metalogger + $pkgname-chunkserver $pkgname-client $pkgname-cgi $pkgname-cgiserv + $pkgname-adm" +source="lizardfs-$pkgver.tar.gz::https://github.com/lizardfs/lizardfs/archive/v$pkgver.tar.gz + fix-headers.patch + 0001-common-Add-multi-platform-endian-conversion-function.patch + + lizardfs-cgiserv.initd + lizardfs-chunkserver.initd + lizardfs-master.initd + lizardfs-metalogger.initd + " + +_builddir="$srcdir"/lizardfs-$pkgver +prepare() { + local i + cd "$_builddir" + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + mkdir -p build +} + +build() { + cd "$_builddir"/build + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="/" \ + -DENABLE_TESTS=NO \ + -DENABLE_DEBIAN_PATHS=YES \ + || return 1 + make || return 1 +} + +package() { + cd "$_builddir"/build + make DESTDIR="$pkgdir" install || return 1 + chown -R mfs:mfs "$pkgdir"/var/lib/mfs + for i in $source; do + case $i in + *.initd) + install -Dm755 "$srcdir"/$i \ + "$pkgdir"/etc/init.d/${i%.*} || return 1 + ;; + esac + done +} + +_mv_files() { + local i + for i in "$@"; do + case $i in + */*) mkdir -p "$subpkgdir"/${i%/*};; + *) mkdir -p "$subpkgdir";; + esac + mv "$pkgdir"/$i "$subpkgdir"/$i || return 1 + done +} + +master() { + pkgdesc="LizardFS master server" + depends="lizardfs=$pkgver-r$pkgrel" + cd "$pkgdir" + _mv_files \ + usr/sbin/mfsmaster \ + usr/sbin/mfsrestoremaster \ + usr/sbin/mfsmetadump \ + usr/sbin/mfsmetarestore \ + etc/mfs/mfsexports.cfg.dist \ + etc/mfs/mfstopology.cfg.dist \ + etc/mfs/mfsgoals.cfg.dist \ + etc/mfs/mfsmaster.cfg.dist \ + etc/mfs/globaliolimits.cfg.dist \ + var/lib/mfs/metadata.mfs.empty \ + etc/init.d/lizardfs-master \ + || return 1 + chown -R mfs:mfs "$subpkgdir"/var/lib/mfs +} + +metalogger() { + pkgdesc="LizardFS metadata replication server" + depends="lizardfs=$pkgver-r$pkgrel" + cd "$pkgdir" + _mv_files \ + usr/sbin/mfsmetalogger \ + etc/mfs/mfsmetalogger.cfg.dist \ + etc/init.d/lizardfs-metalogger \ + || return 1 +} + +chunkserver() { + pkgdesc="LizardFS data server" + depends="lizardfs=$pkgver-r$pkgrel" + cd "$pkgdir" + _mv_files \ + usr/sbin/mfschunkserver \ + etc/mfs/mfschunkserver.cfg.dist \ + etc/mfs/mfshdd.cfg.dist \ + etc/init.d/lizardfs-chunkserver \ + || return 1 +} + +client() { + pkgdesc="LizardFS client" + depends="fuse" + cd "$pkgdir" + _mv_files \ + usr/bin/mfstools \ + usr/bin/mfsmount \ + usr/bin/mfssnapshot \ + usr/bin/mfsappendchunks \ + usr/bin/mfscheckfile \ + usr/bin/mfsdeleattr \ + usr/bin/mfsdirinfo \ + usr/bin/mfsfileinfo \ + usr/bin/mfsfilerepair \ + usr/bin/mfsgeteattr \ + usr/bin/mfsgetgoal \ + usr/bin/mfsgettrashtime \ + usr/bin/mfsmakesnapshot \ + usr/bin/mfsrepquota \ + usr/bin/mfsrgetgoal \ + usr/bin/mfsrgettrashtime \ + usr/bin/mfsrsetgoal \ + usr/bin/mfsrsettrashtime \ + usr/bin/mfsseteattr \ + usr/bin/mfssetgoal \ + usr/bin/mfssetquota \ + usr/bin/mfssettrashtime \ + etc/mfs/mfsmount.cfg.dist \ + etc/mfs/iolimits.cfg.dist \ + || return 1 + +} + +cgi() { + pkgdesc="LizardFS CGI Monitor" + depends="python" + cd "$pkgdir" + _mv_files \ + usr/share/mfscgi \ + || return 1 +} + +cgiserv() { + pkgdesc="Simple CGI-capable HTTP server to run LizardFS CGI Monitor" + depends="$pkgname-cgi=$pkgver-r$pkgrel" + cd "$pkgdir" + _mv_files \ + usr/sbin/lizardfs-cgiserver \ + usr/sbin/mfscgiserv \ + etc/init.d/lizardfs-cgiserv \ + || return 1 +} + +adm() { + pkgdesc="LizardFS administration utility" + depends="" + cd "$pkgdir" + _mv_files \ + usr/bin/lizardfs-admin \ + usr/bin/lizardfs-probe \ + || return 1 +} + +md5sums="9765bca6f8812a6fbca58a04e2f33c6e lizardfs-2.6.0.tar.gz +a04e01504edff691389236697d9e9f72 fix-headers.patch +8beae2dc879a6e3bc778fa63409dd5be 0001-common-Add-multi-platform-endian-conversion-function.patch +fcd290b193fbedc9035cbd4be46463b7 lizardfs-cgiserv.initd +deffb670f92d3675b8716c79d8ba954f lizardfs-chunkserver.initd +3185ec14fe09cc7c74dc8c9b00b289e8 lizardfs-master.initd +17022128ce9dce94e632a59fbd2c5f05 lizardfs-metalogger.initd" +sha256sums="f7f7e3c64d4907db318113d224b9296ebcd629028ad3e13894eb592dac8d9161 lizardfs-2.6.0.tar.gz +2db07acf838c6b468d4ea3a5ad831e7cacf95a0067140d03640f9f01fde15175 fix-headers.patch +24a2b699fdf96c8ead795b5ad962502421bbac64a4bc4d7cf68dfaee16cc6b19 0001-common-Add-multi-platform-endian-conversion-function.patch +e080c484e67f6ec25816a5c90b12a3c867a5b123fa73aa9442f76bc5a8e90264 lizardfs-cgiserv.initd +b0157cf08cb22bdee27f9f88a11806341868102177021535e3ee66be5afd311b lizardfs-chunkserver.initd +1ef583e31532a9012406be0643f432bc059dc22eacc71c9aca1d2cef722e67c7 lizardfs-master.initd +05b091d78fe3f4efab6ba916e0e91b0c628a9eb45244ee793bf473ccac825d6e lizardfs-metalogger.initd" +sha512sums="a80277cf625e175728147f1850cc6ad234d490589a825bfede23e53720ffef7d8c5d21ed8ce6a31217c8901e04cb5c91ac581da3795a592756c5f8f3257537ff lizardfs-2.6.0.tar.gz +eaeff3c67951bccb7e3963981c5bae2f582c6cddfadbd604f0151ace49ade0524d51665c7a7821b59c80d61aade05900368c9f7022793131f03e44df6c96c3f8 fix-headers.patch +f5c391717b36315ec62ee71a24d41409a5138d2ba3579e392e9b29c08bb4c8711c4f71440518cc6ee03f13cdb265515cc544f99b5c368717aae1da1a9ca9ca9f 0001-common-Add-multi-platform-endian-conversion-function.patch +2c78af05c2eeba866c25c58d996c64d16a590248660a362e29a52065af93c126c6eb3232c8cdbb797e60cca406608b77f29ce62717446b7c3d1a8d35e0a722d8 lizardfs-cgiserv.initd +f5de527f2c6f729d49c365cbac64d938d8f90de2c78ac2f4fdbb445532fbc6438ed7380b7963f70cfbf99d48282d7da6a8dbb3df9ae84ac7d2fcebda2ce308c8 lizardfs-chunkserver.initd +6234131965bf52ef0bb859a50010b649b10b81786ff302f6ff65429d03026b32d0e1ad2daeab99dea4bd8cc94ac5aed75707d640adf33b4fb79e22185e77ac01 lizardfs-master.initd +76951ecdbaa69cef0fc383bbc3d36b1eb00aced3c98750676ab159a44a9e50d29ebe188080a08a2a09df6c62f6899bb093cf94e9e3e1688826f5ff8dfdc0fa68 lizardfs-metalogger.initd" diff --git a/testing/lizardfs/fix-headers.patch b/testing/lizardfs/fix-headers.patch new file mode 100644 index 0000000000..3b8746aa8d --- /dev/null +++ b/testing/lizardfs/fix-headers.patch @@ -0,0 +1,12 @@ +diff --git a/src/common/lockfile.cc b/src/common/lockfile.cc +index 209beab..d6ca234 100644 +--- a/src/common/lockfile.cc ++++ b/src/common/lockfile.cc +@@ -1,6 +1,7 @@ + #include "common/platform.h" + #include "common/lockfile.h" + ++#include <fcntl.h> + #include <unistd.h> + #include <sys/file.h> + #include <sys/types.h> diff --git a/testing/lizardfs/lizardfs-cgiserv.initd b/testing/lizardfs/lizardfs-cgiserv.initd new file mode 100644 index 0000000000..8ee89ab728 --- /dev/null +++ b/testing/lizardfs/lizardfs-cgiserv.initd @@ -0,0 +1,10 @@ +#!/sbin/openrc-run + +pidfile=/var/run/lizardfs-cgiserv.pid +command=/usr/sbin/lizardfs-cgiserver + + +depend() { + after net +} + diff --git a/testing/lizardfs/lizardfs-chunkserver.initd b/testing/lizardfs/lizardfs-chunkserver.initd new file mode 100644 index 0000000000..abf97b77fe --- /dev/null +++ b/testing/lizardfs/lizardfs-chunkserver.initd @@ -0,0 +1,10 @@ +#!/sbin/openrc-run + +command=/usr/sbin/mfschunkserver + +depend() { + need syslog + after net +} + + need syslog diff --git a/testing/lizardfs/lizardfs-master.initd b/testing/lizardfs/lizardfs-master.initd new file mode 100644 index 0000000000..9e2e29f4a0 --- /dev/null +++ b/testing/lizardfs/lizardfs-master.initd @@ -0,0 +1,9 @@ +#!/sbin/openrc-run + +command=/usr/sbin/mfsmaster + +depend() { + need syslog + after net +} + diff --git a/testing/lizardfs/lizardfs-metalogger.initd b/testing/lizardfs/lizardfs-metalogger.initd new file mode 100644 index 0000000000..012d8836c9 --- /dev/null +++ b/testing/lizardfs/lizardfs-metalogger.initd @@ -0,0 +1,9 @@ +#!/sbin/openrc-run + +command=/usr/sbin/mfsmetalogger + +depend() { + need syslog + after net +} + diff --git a/testing/lizardfs/lizardfs.pre-install b/testing/lizardfs/lizardfs.pre-install new file mode 100644 index 0000000000..33821a25bf --- /dev/null +++ b/testing/lizardfs/lizardfs.pre-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S mfs 2>/dev/null +adduser -S -H -h /var/lib/mfs -s /sbin/nologin -D -G mfs mfs \ + 2>/dev/null +exit 0 |