From e1c3f3980f4edbf66ef7280498b7011bbebafb2a Mon Sep 17 00:00:00 2001 From: itmodulo Date: Wed, 31 Jan 2024 02:45:17 +0100 Subject: [PATCH] Added seafile and deps --- .gitea/workflows/release_arm64v8.yml | 4 +- srcpkgs/libsearpc/APKBUILD | 40 ++++++++++++++ srcpkgs/seafile-client/APKBUILD | 42 ++++++++++++++ .../seafile-client/fix_build_with_QT6.diff | 21 +++++++ srcpkgs/seafile-client/fix_fts_musl.diff | 55 +++++++++++++++++++ srcpkgs/seafile/APKBUILD | 44 +++++++++++++++ 6 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/libsearpc/APKBUILD create mode 100644 srcpkgs/seafile-client/APKBUILD create mode 100644 srcpkgs/seafile-client/fix_build_with_QT6.diff create mode 100644 srcpkgs/seafile-client/fix_fts_musl.diff create mode 100644 srcpkgs/seafile/APKBUILD diff --git a/.gitea/workflows/release_arm64v8.yml b/.gitea/workflows/release_arm64v8.yml index 34f05ed..0f2df35 100644 --- a/.gitea/workflows/release_arm64v8.yml +++ b/.gitea/workflows/release_arm64v8.yml @@ -35,7 +35,9 @@ jobs: echo "${{ secrets.REPO_PRIVKEY }}" > /home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }} && chown runner:runner /home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }} su - runner -c "echo 'PACKAGER_PRIVKEY="/home/runner/.abuild/${{ secrets.REPO_PRIVKEY_FILENAME }}"' >> ~/.abuild/abuild.conf" mv srcpkgs /home/runner && chown -R runner:runner /home/runner/srcpkgs - su - runner -c 'export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"; cd srcpkgs; for i in $(ls ./ ); do cd $i && abuild -r; cd .. ; done' + su - runner -c 'export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"; cd srcpkgs/libsearpc; abuild -r' + echo "/home/runner/packages/srcpkgs" >> /etc/apk/repositories + su - runner -c 'export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"; cd srcpkgs; for i in $(ls ./ | grep -v libsearpc); do cd $i && abuild -r; cd .. ; done' su - runner -c 'mkdir hole' echo "${{ secrets.REPO_LOGIN }}" > /home/runner/id_ecdsa && chown runner:runner /home/runner/id_ecdsa && chmod 600 /home/runner/id_ecdsa su - runner -c 'sshfs -p "${{ secrets.LOGIN_PORT }}" -o StrictHostKeyChecking=accept-new -o default_permissions,allow_other -o IdentityFile=/home/runner/id_ecdsa "${{ secrets.SERVER_LOGIN_AND_ADDRESS }}":"${{ secrets.SERVER_REPO_PATH }}" /home/runner/hole' diff --git a/srcpkgs/libsearpc/APKBUILD b/srcpkgs/libsearpc/APKBUILD new file mode 100644 index 0000000..5a58fb6 --- /dev/null +++ b/srcpkgs/libsearpc/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: ITmodulo +# Maintainer: ITmodulo +pkgname="libsearpc" +pkgver=3.3.0 +pkgrel=0 +pkgdesc="A simple C language RPC framework (including both server side & client side)" +arch="all" +url="https://github.com/haiwen/libsearpc" +license="Apache-2.0" +depends="py3-gobject3 py3-simplejson" +makedepends="musl-dev jansson-dev py3-gobject3-dev glib-dev autoconf automake libtool pkgconf" +_pkgver="${pkgver%.*}-latest" +source="libsearpc-$_pkgver.tar.gz::$url/archive/v$_pkgver.tar.gz" + +prepare () { + default_prepare + cd "$srcdir/$pkgname-$_pkgver" + sed -i 's|(DESTDIR)@prefix@|@prefix@|' './libsearpc.pc.in' +} + +build () { + cd "$srcdir/$pkgname-$_pkgver" + ./autogen.sh + ./configure --prefix=/usr PYTHON='/usr/bin/python3' + make +} + +check () { + cd "$srcdir/$pkgname-$_pkgver" + make check +} + +package () { + cd "$srcdir/$pkgname-$_pkgver" + make DESTDIR="$pkgdir" install +} + +sha512sums=" +94213219d5fccec83f7fbbce72403430ca183b8b8e915b9b488e395966e4b3745e06cdfca627118e551b190f094fed2cb5d90ee46e8435dcf184c48a2bc301be libsearpc-3.3-latest.tar.gz +" \ No newline at end of file diff --git a/srcpkgs/seafile-client/APKBUILD b/srcpkgs/seafile-client/APKBUILD new file mode 100644 index 0000000..2fad895 --- /dev/null +++ b/srcpkgs/seafile-client/APKBUILD @@ -0,0 +1,42 @@ +# Contributor: ITmodulo +# Maintainer: ITmodulo +pkgname=seafile-client +pkgver=9.0.4 +pkgrel=1 +pkgdesc="GUI client for synchronizing your local files with seafile server" +arch="all" +url="https://github.com/haiwen/$pkgname" +license="Apache-2.0" +depends="" +makedepends="cmake extra-cmake-modules qt6-qttools qt6-qt5compat-dev qt6-qtbase-dev qt6-qtwebengine-dev jansson-dev sqlite-dev libsearpc seafile musl-fts-dev musl-dev autoconf automake libtool clang-dev doxygen" + +source=" + $pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz + fix_build_with_QT6.diff + fix_fts_musl.diff +" + +prepare() { + default_prepare + cd "$srcdir/$pkgname-$pkgver" + patch -p1 -i "$srcdir/fix_build_with_QT6.diff" + patch -p1 -i "$srcdir/fix_fts_musl.diff" +} + +build() { + + cmake -B build -S "$srcdir/$pkgname-$pkgver" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX='/usr' \ + -DBUILD_SHIBBOLETH_SUPPORT=ON + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build +} +sha512sums=" +163b48200e5244816db13ad1f24c3d8177f4d9f940cb0d9f3a5392146c64e7061859010f72f2bed601540f1300d28cf626f8393806ea292f9b508a9938cfcf11 seafile-client-9.0.4.tar.gz +1f4eec4e846c5c5bcce75ba4495738f6d975de22903805ab76f00fb6123c01a5f1b4d3c67cece84d67be1da7656e94353f3ee710846ad90491f4faee83ecc86a fix_build_with_QT6.diff +bf7e9dd6e761243e9f3368eb4b3a3cfe0b222c51b3cdd6db552d3295d0fecb7e2b295f55123b926fe116a4cd011d4744bb3c913ae711400014455bcc56e75015 fix_fts_musl.diff +" \ No newline at end of file diff --git a/srcpkgs/seafile-client/fix_build_with_QT6.diff b/srcpkgs/seafile-client/fix_build_with_QT6.diff new file mode 100644 index 0000000..19cc2a1 --- /dev/null +++ b/srcpkgs/seafile-client/fix_build_with_QT6.diff @@ -0,0 +1,21 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fd16f046..5c195178 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -133,14 +133,14 @@ ENDIF() + #################### + ###### BEGIN: QT configuration + #################### +-FIND_PROGRAM(qmake_executable NAMES qmake qmake.exe) ++FIND_PROGRAM(qmake_executable NAMES qmake6) + EXECUTE_PROCESS(COMMAND + bash -c "${qmake_executable} --version | grep -iE '^using qt version [0-9.]+' | awk '{print $4}'" + OUTPUT_VARIABLE DETECTED_QT_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + MESSAGE("Qt version: ${DETECTED_QT_VERSION}") + EXECUTE_PROCESS(COMMAND +- bash -c "qmake --version|grep -iE '^using qt version [0-9]'|awk '{print $4}'|grep -iE '^[0-9]'|awk -F . '{print $1}'" ++ bash -c "${qmake_executable} --version|grep -iE '^using qt version [0-9]'|awk '{print $4}'|grep -iE '^[0-9]'|awk -F . '{print $1}'" + OUTPUT_VARIABLE QT_VERSION_MAJOR + OUTPUT_STRIP_TRAILING_WHITESPACE) + MESSAGE("QT_VERSION_MAJOR: ${QT_VERSION_MAJOR}") \ No newline at end of file diff --git a/srcpkgs/seafile-client/fix_fts_musl.diff b/srcpkgs/seafile-client/fix_fts_musl.diff new file mode 100644 index 0000000..aa8b2cc --- /dev/null +++ b/srcpkgs/seafile-client/fix_fts_musl.diff @@ -0,0 +1,55 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f4b9e6c8..6f9f957e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,6 +8,9 @@ SET(PROJECT_VERSION "${SEAFILE_CLIENT_VERSION_MAJOR}.${SEAFILE_CLIENT_VERSION_MI + ADD_DEFINITIONS(-DSEAFILE_CLIENT_VERSION=${PROJECT_VERSION}) + ADD_DEFINITIONS(-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26) + INCLUDE(FindPkgConfig) ++INCLUDE(CheckLibraryExists) ++INCLUDE(CheckFunctionExists) ++INCLUDE(CheckIncludeFiles) + + ## Build crash repoter on release build as default + IF (NOT (${CMAKE_BUILD_TYPE} MATCHES Release)) +@@ -362,6 +365,30 @@ ENDIF() + ###### END: QT configuration + #################### + ++#################### ++##### BEGIN FTS fix ++#################### ++ ++CHECK_INCLUDE_FILES("sys/types.h;sys/stat.h;fts.h" HAVE_FTS_H) ++# fts functions may be in external library ++IF(HAVE_FTS_H) ++ CHECK_FUNCTION_EXISTS(fts_open HAVE_FTS_OPEN) ++ IF(NOT HAVE_FTS_OPEN) ++ CHECK_LIBRARY_EXISTS(fts fts_open "" HAVE_LIB_FTS) ++ ENDIF(NOT HAVE_FTS_OPEN) ++ENDIF(HAVE_FTS_H) ++ ++IF(HAVE_LIB_FTS) ++ SET(FTS_LIB fts) ++ELSE() ++ SET(FTS_LIB "") ++ENDIF() ++ ++#################### ++###### END FTS fix ++#################### ++ ++ + #################### + ###### BEGIN: pthread support is required explicitly on linux + #################### +@@ -585,7 +612,8 @@ FUNCTION(ADD_SC_LIBRARY name) + + TARGET_LINK_LIBRARIES(${name} ${QT_LIBRARIES} + ${SQLITE3_LIBRARIES} ${JANSSON_LIBRARIES} +- ${EXTRA_LIBS} -lglib-2.0 ${ARG_LINK_LIBS} ${ZLIB_LIBRARIES}) ++ ${EXTRA_LIBS} -lglib-2.0 ${ARG_LINK_LIBS} ${ZLIB_LIBRARIES} ${FTS_LIB}) ++ + ENDFUNCTION(ADD_SC_LIBRARY) + + # library utils \ No newline at end of file diff --git a/srcpkgs/seafile/APKBUILD b/srcpkgs/seafile/APKBUILD new file mode 100644 index 0000000..42ecba4 --- /dev/null +++ b/srcpkgs/seafile/APKBUILD @@ -0,0 +1,44 @@ +# Contributor: ITmodulo +# Maintainer: ITmodulo +pkgname=seafile +pkgver=9.0.4 +pkgrel=1 +pkgdesc="An online file storage and collaboration tool" +arch="all" +url="https://github.com/haiwen/$pkgname" +license="GPL-2.0-only" +depends=" + libsearpc + py3-future + fuse +" + +makedepends="vala intltool libevent-dev fuse-dev libwebsockets-dev sqlite-dev py3-future libsearpc libtool automake autoconf pkgconf curl-dev" + +subpackages="$pkgname-doc $pkgname-pyc" + +source="seafile-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz" + +prepare() { + default_prepare + cd "$srcdir/seafile-$pkgver" + sed -i 's|(DESTDIR)@prefix@|@prefix@|' './lib/libseafile.pc.in' +} + +build() { + cd "$srcdir/seafile-$pkgver" + ./autogen.sh + ./configure \ + --enable-console \ + --prefix='/usr' \ + PYTHON='/usr/bin/python3' + make +} + +package() { + cd "$srcdir/seafile-$pkgver" + make DESTDIR="$pkgdir" install +} +sha512sums=" +b0aece4330054d5d0b417370ed2160f4c4ef0c67e41335a2cad7f68e745302aa7fab5d46de411e9d24135ab67b782872d7b771bdcd5c5c1e14978086fc7e4d3e seafile-9.0.4.tar.gz +" \ No newline at end of file