diff options
34 files changed, 1898 insertions, 78 deletions
diff --git a/experimental/perl-task-freecellsolver-testing/APKBUILD b/experimental/perl-task-freecellsolver-testing/APKBUILD deleted file mode 100644 index 5176d50b0..000000000 --- a/experimental/perl-task-freecellsolver-testing/APKBUILD +++ /dev/null @@ -1,46 +0,0 @@ -# Automatically generated by apkbuild-cpan, template 1 -# Contributor: A. Wilcox <awilfox@adelielinux.org> -# Maintainer: A. Wilcox <awilfox@adelielinux.org> -pkgname=perl-task-freecellsolver-testing -_pkgreal=Task-FreecellSolver-Testing -pkgver=0.0.11 -pkgrel=0 -pkgdesc="Perl module for testing the Freecell Solver package" -url="http://search.cpan.org/dist/Task-FreecellSolver-Testing/" -arch="noarch" -license="MIT" -cpandepends="" -cpanmakedepends="perl-module-build" -depends="$cpandepends" -makedepends="perl-dev $cpanmakedepends" -subpackages="$pkgname-doc" -source="http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/$_pkgreal-v$pkgver.tar.gz" -builddir="$srcdir/$_pkgreal-v$pkgver" - -prepare() { - cd "$builddir" - if [ -e Build.PL ]; then - perl Build.PL installdirs=vendor - else - PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor - fi -} - -build() { - cd "$builddir" - export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'` - ./Build -} - -check() { - cd "$builddir" - ./Build test -} - -package() { - cd "$builddir" - ./Build install destdir="$pkgdir" - find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete -} - -sha512sums="85c3d7e68e0fa14abac2442ec7b6e90cc4df9f6733fbd87e5a872043a03a71d8cd3a262c816d861a1c729646ff379665c1d5d6e0bc80ae476db089d9d3793b82 Task-FreecellSolver-Testing-v0.0.11.tar.gz" diff --git a/system/musl/APKBUILD b/system/musl/APKBUILD index a3a0eb81c..08f4342dd 100644 --- a/system/musl/APKBUILD +++ b/system/musl/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=musl pkgver=1.1.20 -pkgrel=3 +pkgrel=4 pkgdesc="System library (libc) implementation" url="http://www.musl-libc.org/" arch="all" @@ -11,12 +11,17 @@ license="MIT" depends="" depends_dev="!uclibc-dev" makedepends="$depends_dev" -triggers="$pkgname-utils.trigger=/etc/ld.so.conf.d" subpackages="$pkgname-dev $pkgname-dbg" case "$BOOTSTRAP" in -nocc) pkgname="musl-dev"; subpackages=""; options="$options !dbg" builddir="$srcdir"/musl-$pkgver;; +nocc) pkgname="musl-dev" + subpackages="" + options="$options !dbg" + builddir="$srcdir"/musl-$pkgver + ;; nolibc) ;; -*) subpackages="$subpackages $pkgname-utils";; +*) subpackages="$subpackages $pkgname-utils" + triggers="$pkgname-utils.trigger=/etc/ld.so.conf.d" + ;; esac source="http://www.musl-libc.org/releases/musl-$pkgver.tar.gz amalgamation.patch diff --git a/user/cram/APKBUILD b/user/cram/APKBUILD new file mode 100644 index 000000000..914809606 --- /dev/null +++ b/user/cram/APKBUILD @@ -0,0 +1,31 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=cram +pkgver=0.6 +pkgrel=0 +pkgdesc="Functional testing framework for command line applications" +url="https://bitheap.org/cram/" +arch="noarch" +license="GPL-2.0-only" +depends="python3" +makedepends="" +subpackages="" +source="https://bitheap.org/cram/cram-$pkgver.tar.gz" +builddir="$srcdir/cram-$pkgver" + +build() { + cd "$builddir" + python3 setup.py build +} + +check() { + cd "$builddir" + python3 setup.py -q test +} + +package() { + cd "$builddir" + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums="502f2531c0c813ad849720d8e3c134e9e12a94bd4be065a2410c6d0adce102c35b42e42a35dbc3c6c6327e3dc0fa98ccb94ca490c706d5f3639f80cceed74d4c cram-0.6.tar.gz" diff --git a/experimental/freecell-solver/APKBUILD b/user/freecell-solver/APKBUILD index 4263870e5..fe3df52e6 100644 --- a/experimental/freecell-solver/APKBUILD +++ b/user/freecell-solver/APKBUILD @@ -7,10 +7,9 @@ pkgdesc="Library for solving card games" url="http://fc-solve.shlomifish.org/" arch="all" license="MIT" -depends="" -depends_dev="" -makedepends="$depends_dev perl gperf python3 py3-random2" -install="" +depends="python3" +makedepends="gperf perl perl-task-freecellsolver-testing python3 py3-random2" +checkdepends="gmp-dev libtap-dev perl-dev py3-cffi the_silver_searcher valgrind" subpackages="$pkgname-dev $pkgname-doc" source="http://fc-solve.shlomifish.org/downloads/fc-solve/freecell-solver-$pkgver.tar.xz" @@ -21,13 +20,14 @@ build() { fi cmake \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ -DBUILD_SHARED_LIBS=True \ -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_FLAGS="$CFLAGS" \ ${CMAKE_CROSSOPTS} - make + # The build system generates header files; jobs >1 may cause failures + # because .h don't exist yet. + make -j1 } check() { diff --git a/user/kpat/APKBUILD b/user/kpat/APKBUILD index 838c733bf..72ce3776b 100644 --- a/user/kpat/APKBUILD +++ b/user/kpat/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kpat -pkgver=18.04.3 +pkgver=18.08.1 pkgrel=0 pkgdesc="Collection of card games for KDE" url="https://games.kde.org/game.php?game=kpat" @@ -11,7 +11,8 @@ depends="libkdegames-carddecks" makedepends="cmake extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev kconfig-dev kcompletion-dev kconfigwidgets-dev kcoreaddons-dev kcrash-dev ki18n-dev kdbusaddons-dev kdoctools-dev kguiaddons-dev kio-dev knewstuff-dev - kwidgetsaddons-dev kxmlgui-dev libkdegames-dev shared-mime-info" + kwidgetsaddons-dev kxmlgui-dev libkdegames-dev shared-mime-info + freecell-solver-dev" subpackages="$pkgname-doc $pkgname-lang" source="https://download.kde.org/stable/applications/$pkgver/src/kpat-$pkgver.tar.xz" @@ -41,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="bd325d52faad7200d5aa1738cc539d8f285c4b9cb67e2f63837379fc89b4adb8873433df01392447e69546db04698b2f108613fe0a3001bf7c77dbda0bd73acf kpat-18.04.3.tar.xz" +sha512sums="989cb29db087ea3e17cf5971c6cad57c3e691d2f27975b3fd776f6d7c3d7b74ef2572c5ef6c1f3a8e7b39e39c178aa47ff1751fb87cad2cff5dfbb1e8e032516 kpat-18.08.1.tar.xz" diff --git a/user/libtap/APKBUILD b/user/libtap/APKBUILD new file mode 100644 index 000000000..0c47e0468 --- /dev/null +++ b/user/libtap/APKBUILD @@ -0,0 +1,43 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=libtap +pkgver=1.12.0 +pkgrel=0 +pkgdesc="C library implementing the Test Anything Protocol (TAP)" +url="https://www.shlomifish.org/open-source/projects/libtap/" +arch="all" +license="BSD-3-Clause" +depends="" +depends_dev="" +makedepends="cmake perl" +subpackages="$pkgname-dev $pkgname-doc" +source="http://web-cpan.shlomifish.org/downloads/libtap-$pkgver.tar.bz2" +builddir="$srcdir/libtap-$pkgver" + +build() { + cd "$builddir" + if [ "$CBUILD" != "$CHOST" ]; then + CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" + fi + cmake \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + ${CMAKE_CROSSOPTS} + make +} + +check() { + cd "$builddir" + CTEST_OUTPUT_ON_FAILURE=TRUE ctest +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install +} + +sha512sums="510f85a5b10525cf8b67a0bcc67213e43a9e752def5293fecbc97f7058d24256a85cd8ce8c0b408186ca676f3ca700ddbeea4c8c7558352665956b4233258d31 libtap-1.12.0.tar.bz2" diff --git a/user/llvm6/APKBUILD b/user/llvm6/APKBUILD index f3bc9acc7..c4eb242d8 100644 --- a/user/llvm6/APKBUILD +++ b/user/llvm6/APKBUILD @@ -12,7 +12,7 @@ arch="all" options="!checkroot !dbg" url="https://llvm.org/" license="NCSA" -depends_dev="$pkgname=$pkgver-r$pkgrel" +depends_dev="$pkgname=$pkgver-r$pkgrel libexecinfo-dev libxml2-dev" makedepends="binutils-dev chrpath cmake file libexecinfo-dev libffi-dev libxml2-dev python3 zlib-dev" subpackages="$pkgname-static $pkgname-libs $pkgname-dev @@ -24,6 +24,7 @@ source="http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz disable-dlclose-test.patch musl-ppc64-elfv2.patch secure-plt.patch + more-secure-plt.patch " builddir="$srcdir/$_pkgname-$pkgver.src" @@ -245,5 +246,6 @@ f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3ce 6d1a716e5aa24e6b9a3acf4cc11e2504b1b01abf574074e9e5617b991de87d5e4e687eb18e85e73d5e632568afe2fc357771c4c96f9e136502071991496fb78c cmake-fix-libLLVM-name.patch 49c47f125014b60d0ea7870f981a2c1708ad705793f89287ed846ee881a837a4dc0170bf467e03f2ef56177473128945287749ac80dc2d13cfabcf8b929ba58a disable-FileSystemTest.CreateDir-perms-assert.patch caeec8e4dbd92f5f74940780b69075f3879a267a8623822cbdc193fd14706eb089071e3a5a20d60cc2eca59e4c5b2a61d29827a2f3362ee7c5f74f11d9ace200 disable-dlclose-test.patch -bde743960003a2a39868af9f665d86fadb0a7b1e7eb51c16ebbd74ce4c5220bbc400b1d5211c02fc2643863f49ee961e9a18dffa0eb813a0e1723613396512ab musl-ppc64-elfv2.patch -35d289641fa4d200b5a3f62f1d51da600a734641356b0dc6c54a3080dd89aec3b031e36af8b53be49c35346c1cbcce00268de7ec9b4f552bfd7bf84d3504d1c4 secure-plt.patch" +e5ddbc4b6c4928e79846dc3c022eb7928aaa8fed40515c78f5f03b8ab8264f34f1eb8aa8bfc0f436450932f4917e54ad261603032092ea271d9590f11a37cf1e musl-ppc64-elfv2.patch +35d289641fa4d200b5a3f62f1d51da600a734641356b0dc6c54a3080dd89aec3b031e36af8b53be49c35346c1cbcce00268de7ec9b4f552bfd7bf84d3504d1c4 secure-plt.patch +3d4a0a478bf800ea262c577451e22a1dbd5a4258226e49c66a697559263c8aa4fc0fff642a3c80ac3dfbb3efd6d9c0dbeb41dae1250fc7946de821cfef1ce1f0 more-secure-plt.patch" diff --git a/user/llvm6/more-secure-plt.patch b/user/llvm6/more-secure-plt.patch new file mode 100644 index 000000000..1cc08a9a8 --- /dev/null +++ b/user/llvm6/more-secure-plt.patch @@ -0,0 +1,38 @@ +diff --git a/lib/Target/PowerPC/PPCSubtarget.cpp b/lib/Target/PowerPC/PPCSubtarget.cpp +index c0cbfd779cb..5d7a021c3e2 100644 +--- a/lib/Target/PowerPC/PPCSubtarget.cpp ++++ b/lib/Target/PowerPC/PPCSubtarget.cpp +@@ -106,6 +106,7 @@ + HasFloat128 = false; + IsISA3_0 = false; + UseLongCalls = false; ++ SecurePlt = false; + + HasPOPCNTD = POPCNTD_Unavailable; + } +@@ -136,6 +137,10 @@ + if (isDarwin()) + HasLazyResolverStubs = true; + ++ // Set up musl-specific properties. ++ if (TargetTriple.getEnvironment() == Triple::Musl) ++ SecurePlt = true; ++ + // QPX requires a 32-byte aligned stack. Note that we need to do this if + // we're compiling for a BG/Q system regardless of whether or not QPX + // is enabled because external functions will assume this alignment. +diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp +index c583fba8cab..6a9eedf89c5 100644 +--- a/lib/Target/PowerPC/PPCTargetMachine.cpp ++++ b/lib/Target/PowerPC/PPCTargetMachine.cpp +@@ -222,6 +222,10 @@ static Reloc::Model getEffectiveRelocModel(const Triple &TT, + if (TT.getArch() == Triple::ppc64 || TT.getArch() == Triple::ppc64le) + return Reloc::PIC_; + ++ // musl needs SecurePlt, which depends on PIC. ++ if (TT.getEnvironment() == Triple::Musl) ++ return Reloc::PIC_; ++ + // 32-bit is static by default. + return Reloc::Static; + } diff --git a/user/llvm6/musl-ppc64-elfv2.patch b/user/llvm6/musl-ppc64-elfv2.patch index 6fa65526b..016be5dad 100644 --- a/user/llvm6/musl-ppc64-elfv2.patch +++ b/user/llvm6/musl-ppc64-elfv2.patch @@ -1,13 +1,43 @@ ---- llvm-6.0.1.src/lib/Target/PowerPC/PPCTargetMachine.cpp.orig 2018-09-13 03:51:11.900000000 +0000 -+++ llvm-6.0.1.src/lib/Target/PowerPC/PPCTargetMachine.cpp 2018-09-13 03:56:10.740000000 +0000 -@@ -191,6 +191,10 @@ - if (TT.isMacOSX()) - return PPCTargetMachine::PPC_ABI_UNKNOWN; - -+ // musl uses ELFv2 ABI on both endians. -+ if (TT.getEnvironment() == Triple::Musl) -+ return PPCTargetMachine::PPC_ABI_ELFv2; -+ - switch (TT.getArch()) { +From 750d323a6060ad92c3d247f85d6555041f55b4a5 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Thu, 4 Oct 2018 15:26:59 -0500 +Subject: [PATCH] Add support for powerpc64-*-linux-musl targets + +This patch ensures that 64-bit PowerPC musl targets use ELFv2 ABI on both +endians. It additionally adds a test that big endian PPC64 uses ELFv2 on +musl. +--- + lib/Target/PowerPC/PPCTargetMachine.cpp | 4 ++++ + test/CodeGen/PowerPC/ppc64-elf-abi.ll | 1 + + 2 files changed, 5 insertions(+) + +diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp +index 34410393ef6..c583fba8cab 100644 +--- a/lib/Target/PowerPC/PPCTargetMachine.cpp ++++ b/lib/Target/PowerPC/PPCTargetMachine.cpp +@@ -199,6 +199,10 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT, case Triple::ppc64le: return PPCTargetMachine::PPC_ABI_ELFv2; + case Triple::ppc64: ++ // musl uses ELFv2 ABI on both endians. ++ if (TT.getEnvironment() == Triple::Musl) ++ return PPCTargetMachine::PPC_ABI_ELFv2; ++ + return PPCTargetMachine::PPC_ABI_ELFv1; + default: + return PPCTargetMachine::PPC_ABI_UNKNOWN; +diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll +index 1e17930304b..aa594b37b47 100644 +--- a/test/CodeGen/PowerPC/ppc64-elf-abi.ll ++++ b/test/CodeGen/PowerPC/ppc64-elf-abi.ll +@@ -1,6 +1,7 @@ + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2 ++; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1 + ; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2 +-- +2.18.0 + diff --git a/user/nextcloud-client/APKBUILD b/user/nextcloud-client/APKBUILD new file mode 100644 index 000000000..c842eaa18 --- /dev/null +++ b/user/nextcloud-client/APKBUILD @@ -0,0 +1,45 @@ +# Contributor: Leonardo Arena <rnalrd@alpinelinux.org> +# Maintainer: Max Rees <maxcrees@me.com> +pkgname=nextcloud-client +pkgver=2.5.0_beta2 +_ver="${pkgver%_beta2}-beta2" +pkgrel=0 +pkgdesc="Nextcloud desktop client" +url="https://github.com/nextcloud/desktop" +arch="all" +license="GPL-2.0+ AND LGPL-2.1+ AND Public-Domain AND MIT AND (Custom:Digia-Qt OR LGPL-2.1-only WITH Qt-LGPL-exception-1.1) AND (Custom:Digia-Qt OR LGPL-2.1-only WITH Qt-LGPL-exception-1.1 OR GPL-3.0-only)" +depends="" +makedepends="cmake qt5-qttools-dev qtkeychain-dev zlib-dev + openssl-dev sqlite-dev qt5-qtsvg-dev" +subpackages="$pkgname-dev" +source="$pkgname-$pkgver.tar.gz::https://github.com/nextcloud/desktop/archive/v$_ver.tar.gz + no-webengine.patch + openssl.patch" +builddir="$srcdir/desktop-$_ver" + +build() { + cd "$builddir" + cmake \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_SYSCONFDIR="/etc/$pkgname" \ + -DNO_SHIBBOLETH=1 \ + -DWITH_CRASHREPORTER=bool:OFF \ + -DUNIT_TESTING=bool:ON + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install +} + +sha512sums="ed5ec8c0fd79d3f7f843ef1aefb9b94088b85dacca442388bc9a42e1ddbf1ee90482595135ffaffc85e40d223406964c903949ca1c2161fa0f6a2d6770a77cea nextcloud-client-2.5.0_beta2.tar.gz +6bd83fdee02eabe7ae29fb1a677f62d4a416ec553a0f8c66b7544cafb9201dd7d8b04dc6fb21f447f6c1ece13b06f5d3cba57ac71b211e166607ef15350b3e57 no-webengine.patch +e323a1074f8ac96667a420f076fdfc988e2fd97cdacd05d83ac54b467b567f5adbf635e7c4fb0414af0012b4016cc4c13441cb35ed3976bc970e514e81b65fd4 openssl.patch" diff --git a/user/nextcloud-client/no-webengine.patch b/user/nextcloud-client/no-webengine.patch new file mode 100644 index 000000000..d5beed35c --- /dev/null +++ b/user/nextcloud-client/no-webengine.patch @@ -0,0 +1,1017 @@ +--- desktop-2.5.0-beta1/src/libsync/networkjobs.cpp 2018-08-02 16:32:56.000000000 -0400 ++++ desktop-2.5.0-beta1/src/libsync/networkjobs.cpp 2018-08-15 19:10:43.340595365 -0400 +@@ -922,7 +922,7 @@ + + // WebViewFlow > OAuth > Shib > Basic + if (_account->serverVersionInt() >= Account::makeServerVersion(12, 0, 0)) { +- result = WebViewFlow; ++ result = Basic; + } + + qCInfo(lcDetermineAuthTypeJob) << "Auth type for" << _account->davUrl() << "is" << result; +--- desktop-2.5.0-beta1/src/gui/creds/webflowcredentialsdialog.cpp 2018-08-02 16:32:56.000000000 -0400 ++++ /dev/null 2018-08-15 19:12:03.420596798 -0400 +@@ -1,49 +0,0 @@ +-#include "webflowcredentialsdialog.h" +- +-#include <QVBoxLayout> +-#include <QLabel> +- +-#include "wizard/webview.h" +- +-namespace OCC { +- +-WebFlowCredentialsDialog::WebFlowCredentialsDialog(QWidget *parent) +- : QDialog(parent) +-{ +- _layout = new QVBoxLayout(this); +- +- //QString msg = tr("You have been logged out of %1 as user %2, please login again") +- // .arg(_account->displayName(), _user); +- _infoLabel = new QLabel(); +- _layout->addWidget(_infoLabel); +- +- _webView = new WebView(); +- _layout->addWidget(_webView); +- +- _errorLabel = new QLabel(); +- _errorLabel->hide(); +- _layout->addWidget(_errorLabel); +- +- setLayout(_layout); +- +- connect(_webView, &WebView::urlCatched, this, &WebFlowCredentialsDialog::urlCatched); +-} +- +-void WebFlowCredentialsDialog::setUrl(const QUrl &url) { +- _webView->setUrl(url); +-} +- +-void WebFlowCredentialsDialog::setInfo(const QString &msg) { +- _infoLabel->setText(msg); +-} +- +-void WebFlowCredentialsDialog::setError(const QString &error) { +- if (error.isEmpty()) { +- _errorLabel->hide(); +- } else { +- _errorLabel->setText(error); +- _errorLabel->show(); +- } +-} +- +-} +--- desktop-2.5.0-beta1/src/gui/creds/webflowcredentials.cpp 2018-08-02 16:32:56.000000000 -0400 ++++ /dev/null 2018-08-15 19:12:03.420596798 -0400 +@@ -1,258 +0,0 @@ +-#include "webflowcredentials.h" +- +-#include "creds/httpcredentials.h" +- +-#include <QAuthenticator> +-#include <QNetworkAccessManager> +-#include <QNetworkReply> +-#include <QPointer> +-#include <QTimer> +-#include <keychain.h> +-#include <QDialog> +-#include <QVBoxLayout> +-#include <QLabel> +- +-#include "accessmanager.h" +-#include "account.h" +-#include "theme.h" +-#include "wizard/webview.h" +-#include "webflowcredentialsdialog.h" +- +-using namespace QKeychain; +- +-namespace OCC { +- +-Q_LOGGING_CATEGORY(lcWebFlowCredentials, "sync.credentials.webflow", QtInfoMsg) +- +-WebFlowCredentials::WebFlowCredentials() +- : _ready(false), +- _credentialsValid(false) +-{ +- +-} +- +-WebFlowCredentials::WebFlowCredentials(const QString &user, const QString &password, const QSslCertificate &certificate, const QSslKey &key) +- : _user(user) +- , _password(password) +- , _clientSslKey(key) +- , _clientSslCertificate(certificate) +- , _ready(true) +- , _credentialsValid(true) +-{ +- +-} +- +-QString WebFlowCredentials::authType() const { +- return QString::fromLatin1("webflow"); +-} +- +-QString WebFlowCredentials::user() const { +- return _user; +-} +- +-QString WebFlowCredentials::password() const { +- return _password; +-} +- +-QNetworkAccessManager *WebFlowCredentials::createQNAM() const { +- qCInfo(lcWebFlowCredentials()) << "Get QNAM"; +- AccessManager *qnam = new AccessManager(); +- +- connect(qnam, &AccessManager::authenticationRequired, this, &WebFlowCredentials::slotAuthentication); +- connect(qnam, &AccessManager::finished, this, &WebFlowCredentials::slotFinished); +- +- return qnam; +-} +- +-bool WebFlowCredentials::ready() const { +- return _ready; +-} +- +-void WebFlowCredentials::fetchFromKeychain() { +- _wasFetched = true; +- +- // Make sure we get the user fromt he config file +- fetchUser(); +- +- if (ready()) { +- emit fetched(); +- } else { +- qCInfo(lcWebFlowCredentials()) << "Fetch from keyhchain!"; +- fetchFromKeychainHelper(); +- } +-} +- +-void WebFlowCredentials::askFromUser() { +- _askDialog = new WebFlowCredentialsDialog(); +- +- QUrl url = _account->url(); +- QString path = url.path() + "/index.php/login/flow"; +- url.setPath(path); +- _askDialog->setUrl(url); +- +- QString msg = tr("You have been logged out of %1 as user %2. Please login again") +- .arg(_account->displayName(), _user); +- _askDialog->setInfo(msg); +- +- _askDialog->show(); +- +- connect(_askDialog, &WebFlowCredentialsDialog::urlCatched, this, &WebFlowCredentials::slotAskFromUserCredentialsProvided); +- +- qCWarning(lcWebFlowCredentials()) << "User needs to reauth!"; +-} +- +-void WebFlowCredentials::slotAskFromUserCredentialsProvided(const QString &user, const QString &pass, const QString &host) { +- Q_UNUSED(host); +- +- if (_user != user) { +- qCInfo(lcWebFlowCredentials()) << "Authed with the wrong user!"; +- +- QString msg = tr("Please login with the user: %1") +- .arg(_user); +- _askDialog->setError(msg); +- +- QUrl url = _account->url(); +- QString path = url.path() + "/index.php/login/flow"; +- url.setPath(path); +- _askDialog->setUrl(url); +- +- return; +- } +- +- qCInfo(lcWebFlowCredentials()) << "Obtained a new password"; +- +- _password = pass; +- _ready = true; +- _credentialsValid = true; +- persist(); +- emit asked(); +- +- _askDialog->close(); +- delete _askDialog; +- _askDialog = NULL; +-} +- +- +-bool WebFlowCredentials::stillValid(QNetworkReply *reply) { +- qCWarning(lcWebFlowCredentials()) << "Still valid?"; +- qCWarning(lcWebFlowCredentials()) << reply->error(); +- qCWarning(lcWebFlowCredentials()) << reply->errorString(); +- return (reply->error() != QNetworkReply::AuthenticationRequiredError); +-} +- +-void WebFlowCredentials::persist() { +- if (_user.isEmpty()) { +- // We don't even have a user nothing to see here move along +- return; +- } +- +- _account->setCredentialSetting("user", _user); +- _account->wantsAccountSaved(_account); +- +- //TODO: Add ssl cert and key storing +- WritePasswordJob *job = new WritePasswordJob(Theme::instance()->appName()); +- job->setInsecureFallback(false); +- job->setKey(keychainKey(_account->url().toString(), _user, _account->id())); +- job->setTextData(_password); +- job->start(); +-} +- +-void WebFlowCredentials::invalidateToken() { +- // clear the session cookie. +- _account->clearCookieJar(); +- +- // let QNAM forget about the password +- // This needs to be done later in the event loop because we might be called (directly or +- // indirectly) from QNetworkAccessManagerPrivate::authenticationRequired, which itself +- // is a called from a BlockingQueuedConnection from the Qt HTTP thread. And clearing the +- // cache needs to synchronize again with the HTTP thread. +- QTimer::singleShot(0, _account, &Account::clearQNAMCache); +-} +- +-void WebFlowCredentials::forgetSensitiveData(){ +- _password = QString(); +- _ready = false; +- +- fetchUser(); +- +- const QString kck = keychainKey(_account->url().toString(), _user, _account->id()); +- if (kck.isEmpty()) { +- qCWarning(lcWebFlowCredentials()) << "InvalidateToken: User is empty, bailing out!"; +- return; +- } +- +- DeletePasswordJob *job = new DeletePasswordJob(Theme::instance()->appName()); +- job->setInsecureFallback(false); +- job->setKey(kck); +- job->start(); +- +- invalidateToken(); +-} +- +-void WebFlowCredentials::setAccount(Account *account) { +- AbstractCredentials::setAccount(account); +- if (_user.isEmpty()) { +- fetchUser(); +- } +-} +- +-QString WebFlowCredentials::fetchUser() { +- _user = _account->credentialSetting("user").toString(); +- return _user; +-} +- +-void WebFlowCredentials::slotAuthentication(QNetworkReply *reply, QAuthenticator *authenticator) { +- Q_UNUSED(reply); +- +- if (!_ready) { +- return; +- } +- +- if (_credentialsValid == false) { +- return; +- } +- +- qCWarning(lcWebFlowCredentials()) << "Requires authentication"; +- +- authenticator->setUser(_user); +- authenticator->setPassword(_password); +- _credentialsValid = false; +-} +- +-void WebFlowCredentials::slotFinished(QNetworkReply *reply) { +- qCInfo(lcWebFlowCredentials()) << "request finished"; +- +- if (reply->error() == QNetworkReply::NoError) { +- _credentialsValid = true; +- } +-} +- +-void WebFlowCredentials::fetchFromKeychainHelper() { +- const QString kck = keychainKey( +- _account->url().toString(), +- _user, +- _account->id()); +- +- ReadPasswordJob *job = new ReadPasswordJob(Theme::instance()->appName()); +- job->setInsecureFallback(false); +- job->setKey(kck); +- connect(job, &Job::finished, this, &WebFlowCredentials::slotReadPasswordJobDone); +- job->start(); +-} +- +-void WebFlowCredentials::slotReadPasswordJobDone(Job *incomingJob) { +- QKeychain::ReadPasswordJob *job = static_cast<ReadPasswordJob *>(incomingJob); +- QKeychain::Error error = job->error(); +- +- if (error == QKeychain::NoError) { +- _password = job->textData(); +- _ready = true; +- _credentialsValid = true; +- } else { +- _ready = false; +- } +- +- emit fetched(); +-} +- +-} +--- desktop-2.5.0-beta1/src/gui/creds/webflowcredentialsdialog.h 2018-08-02 16:32:56.000000000 -0400 ++++ /dev/null 2018-08-15 19:12:03.420596798 -0400 +@@ -1,36 +0,0 @@ +-#ifndef WEBFLOWCREDENTIALSDIALOG_H +-#define WEBFLOWCREDENTIALSDIALOG_H +- +-#include <QDialog> +-#include <QUrl> +- +-class QLabel; +-class QVBoxLayout; +- +-namespace OCC { +- +-class WebView; +- +-class WebFlowCredentialsDialog : public QDialog +-{ +- Q_OBJECT +-public: +- WebFlowCredentialsDialog(QWidget *parent = 0); +- +- void setUrl(const QUrl &url); +- void setInfo(const QString &msg); +- void setError(const QString &error); +- +-signals: +- void urlCatched(const QString user, const QString pass, const QString host); +- +-private: +- WebView *_webView; +- QLabel *_errorLabel; +- QLabel *_infoLabel; +- QVBoxLayout *_layout; +-}; +- +-} +- +-#endif // WEBFLOWCREDENTIALSDIALOG_H +--- desktop-2.5.0-beta1/src/gui/creds/credentialsfactory.cpp 2018-08-02 16:32:56.000000000 -0400 ++++ desktop-2.5.0-beta1/src/gui/creds/credentialsfactory.cpp 2018-08-15 19:29:27.240615471 -0400 +@@ -21,7 +21,6 @@ + #ifndef NO_SHIBBOLETH + #include "creds/shibbolethcredentials.h" + #endif +-#include "creds/webflowcredentials.h" + + namespace OCC { + +@@ -40,8 +39,6 @@ + } else if (type == "shibboleth") { + return new ShibbolethCredentials; + #endif +- } else if (type == "webflow") { +- return new WebFlowCredentials; + } else { + qCWarning(lcGuiCredentials, "Unknown credentials type: %s", qPrintable(type)); + return new DummyCredentials; +--- desktop-2.5.0-beta1/src/gui/creds/webflowcredentials.h 2018-08-02 16:32:56.000000000 -0400 ++++ /dev/null 2018-08-15 19:12:03.420596798 -0400 +@@ -1,79 +0,0 @@ +-#ifndef WEBFLOWCREDENTIALS_H +-#define WEBFLOWCREDENTIALS_H +- +-#include <QSslCertificate> +-#include <QSslKey> +- +-#include "creds/abstractcredentials.h" +- +-class QDialog; +-class QLabel; +-class QNetworkReply; +-class QAuthenticator; +- +-namespace QKeychain { +- class Job; +-} +- +-namespace OCC { +- +-class WebFlowCredentialsDialog; +- +-class WebFlowCredentials : public AbstractCredentials +-{ +- Q_OBJECT +-public: +- explicit WebFlowCredentials(); +- WebFlowCredentials(const QString &user, const QString &password, const QSslCertificate &certificate = QSslCertificate(), const QSslKey &key = QSslKey()); +- +- QString authType() const override; +- QString user() const override; +- QString password() const; +- QNetworkAccessManager *createQNAM() const override; +- +- bool ready() const override; +- +- void fetchFromKeychain() override; +- void askFromUser() override; +- +- bool stillValid(QNetworkReply *reply) override; +- void persist() override; +- void invalidateToken() override; +- void forgetSensitiveData() override; +- +- // To fetch the user name as early as possible +- void setAccount(Account *account) override; +- +-private slots: +- void slotAuthentication(QNetworkReply *reply, QAuthenticator *authenticator); +- void slotFinished(QNetworkReply *reply); +- +- void slotReadPasswordJobDone(QKeychain::Job *incomingJob); +- void slotAskFromUserCredentialsProvided(const QString &user, const QString &pass, const QString &host); +- +-private: +- /** Reads data from keychain locations +- * +- * Goes through +- * slotReadClientCertPEMJobDone to +- * slotReadClientCertPEMJobDone to +- * slotReadJobDone +- */ +- void fetchFromKeychainHelper(); +- +- QString fetchUser(); +- +- QString _user; +- QString _password; +- QSslKey _clientSslKey; +- QSslCertificate _clientSslCertificate; +- +- bool _ready; +- bool _credentialsValid; +- +- WebFlowCredentialsDialog *_askDialog; +-}; +- +-} +- +-#endif // WEBFLOWCREDENTIALS_H +--- desktop-2.5.0-beta1/src/gui/CMakeLists.txt 2018-08-02 16:32:56.000000000 -0400 ++++ desktop-2.5.0-beta1/src/gui/CMakeLists.txt 2018-08-15 19:28:53.640614870 -0400 +@@ -41,7 +41,6 @@ + wizard/owncloudoauthcredspage.ui + wizard/owncloudsetupnocredspage.ui + wizard/owncloudwizardresultpage.ui +- wizard/webview.ui + ) + + set(client_SRCS +@@ -104,8 +103,6 @@ + creds/credentialsfactory.cpp + creds/httpcredentialsgui.cpp + creds/oauth.cpp +- creds/webflowcredentials.cpp +- creds/webflowcredentialsdialog.cpp + wizard/postfixlineedit.cpp + wizard/abstractcredswizardpage.cpp + wizard/owncloudadvancedsetuppage.cpp +@@ -116,8 +113,6 @@ + wizard/owncloudwizardcommon.cpp + wizard/owncloudwizard.cpp + wizard/owncloudwizardresultpage.cpp +- wizard/webviewpage.cpp +- wizard/webview.cpp + ) + + IF(NOT NO_SHIBBOLETH) +@@ -290,7 +290,7 @@ + endif() + + add_library(updater STATIC ${updater_SRCS}) +-target_link_libraries(updater ${synclib_NAME} Qt5::Widgets Qt5::Network Qt5::Xml Qt5::WebEngineWidgets) ++target_link_libraries(updater ${synclib_NAME} Qt5::Widgets Qt5::Network Qt5::Xml) + target_include_directories(updater PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) + + set_target_properties( ${APPLICATION_EXECUTABLE} PROPERTIES +--- desktop-2.5.0-beta2/src/gui/wizard/webview.cpp 2018-08-24 12:54:42.000000000 +0000 ++++ /dev/null 2018-10-03 06:10:44.230254545 +0000 +@@ -1,162 +0,0 @@ +-#include "webview.h" +- +-#include <QWebEnginePage> +-#include <QWebEngineProfile> +-#include <QWebEngineUrlRequestInterceptor> +-#include <QWebEngineUrlRequestJob> +-#include <QWebEngineUrlSchemeHandler> +-#include <QWebEngineView> +-#include <QDesktopServices> +-#include <QProgressBar> +-#include <QLoggingCategory> +-#include <QLocale> +- +-#include "common/utility.h" +- +-namespace OCC { +- +-Q_LOGGING_CATEGORY(lcWizardWebiew, "gui.wizard.webview", QtInfoMsg) +- +- +-class WebViewPageUrlRequestInterceptor : public QWebEngineUrlRequestInterceptor +-{ +- Q_OBJECT +-public: +- WebViewPageUrlRequestInterceptor(QObject *parent = 0); +- void interceptRequest(QWebEngineUrlRequestInfo &info); +-}; +- +-class WebViewPageUrlSchemeHandler : public QWebEngineUrlSchemeHandler +-{ +- Q_OBJECT +-public: +- WebViewPageUrlSchemeHandler(QObject *parent = 0); +- void requestStarted(QWebEngineUrlRequestJob *request); +- +-Q_SIGNALS: +- void urlCatched(QString user, QString pass, QString host); +-}; +- +-class WebEnginePage : public QWebEnginePage { +-public: +- WebEnginePage(QWebEngineProfile *profile, QObject* parent = nullptr); +- QWebEnginePage * createWindow(QWebEnginePage::WebWindowType type) override; +-}; +- +-// We need a separate class here, since we cannot simply return the same WebEnginePage object +-// this leads to a strage segfault somewhere deep inside of the QWebEngine code +-class ExternalWebEnginePage : public QWebEnginePage { +-public: +- ExternalWebEnginePage(QWebEngineProfile *profile, QObject* parent = nullptr); +- bool acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame) override; +-}; +- +-WebView::WebView(QWidget *parent) +- : QWidget(parent), +- _ui() +-{ +- _ui.setupUi(this); +- +- _webview = new QWebEngineView(this); +- _profile = new QWebEngineProfile(this); +- _page = new WebEnginePage(_profile); +- _interceptor = new WebViewPageUrlRequestInterceptor(this); +- _schemeHandler = new WebViewPageUrlSchemeHandler(this); +- +- const QString userAgent(Utility::userAgentString()); +- _profile->setHttpUserAgent(userAgent); +- QWebEngineProfile::defaultProfile()->setHttpUserAgent(userAgent); +- _profile->setRequestInterceptor(_interceptor); +- _profile->installUrlSchemeHandler("nc", _schemeHandler); +- +- /* +- * Set a proper accept langauge to the language of the client +- * code from: http://code.qt.io/cgit/qt/qtbase.git/tree/src/network/access/qhttpnetworkconnection.cpp +- */ +- { +- QString systemLocale = QLocale::system().name().replace(QChar::fromLatin1('_'),QChar::fromLatin1('-')); +- QString acceptLanguage; +- if (systemLocale == QLatin1String("C")) { +- acceptLanguage = QString::fromLatin1("en,*"); +- } else if (systemLocale.startsWith(QLatin1String("en-"))) { +- acceptLanguage = systemLocale + QLatin1String(",*"); +- } else { +- acceptLanguage = systemLocale + QLatin1String(",en,*"); +- } +- _profile->setHttpAcceptLanguage(acceptLanguage); +- } +- +- _webview->setPage(_page); +- _ui.verticalLayout->addWidget(_webview); +- +- connect(_webview, &QWebEngineView::loadProgress, _ui.progressBar, &QProgressBar::setValue); +- connect(_schemeHandler, &WebViewPageUrlSchemeHandler::urlCatched, this, &WebView::urlCatched); +-} +- +-void WebView::setUrl(const QUrl &url) { +- _page->setUrl(url); +-} +- +-WebViewPageUrlRequestInterceptor::WebViewPageUrlRequestInterceptor(QObject *parent) +- : QWebEngineUrlRequestInterceptor(parent) { +- +-} +- +-void WebViewPageUrlRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo &info) { +- info.setHttpHeader("OCS-APIREQUEST", "true"); +-} +- +-WebViewPageUrlSchemeHandler::WebViewPageUrlSchemeHandler(QObject *parent) +- : QWebEngineUrlSchemeHandler(parent) { +- +-} +- +-void WebViewPageUrlSchemeHandler::requestStarted(QWebEngineUrlRequestJob *request) { +- QUrl url = request->requestUrl(); +- +- QString path = url.path().mid(1); +- QStringList parts = path.split("&"); +- +- QString server; +- QString user; +- QString password; +- +- for (QString part : parts) { +- if (part.startsWith("server:")) { +- server = part.mid(7); +- } else if (part.startsWith("user:")) { +- user = part.mid(5); +- } else if (part.startsWith("password:")) { +- password = part.mid(9); +- } +- } +- +- qCInfo(lcWizardWebiew()) << "Got user: " << user << ", server: " << server; +- +- emit urlCatched(user, password, server); +-} +- +- +-WebEnginePage::WebEnginePage(QWebEngineProfile *profile, QObject* parent) : QWebEnginePage(profile, parent) { +- +-} +- +-QWebEnginePage * WebEnginePage::createWindow(QWebEnginePage::WebWindowType type) { +- ExternalWebEnginePage *view = new ExternalWebEnginePage(this->profile()); +- return view; +-} +- +-ExternalWebEnginePage::ExternalWebEnginePage(QWebEngineProfile *profile, QObject* parent) : QWebEnginePage(profile, parent) { +- +-} +- +- +-bool ExternalWebEnginePage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame) +-{ +- QDesktopServices::openUrl(url); +- return false; +-} +- +-} +- +-#include "webview.moc" +--- desktop-2.5.0-beta1/src/gui/wizard/webviewpage.cpp 2018-08-02 16:32:56.000000000 -0400 ++++ /dev/null 2018-08-15 19:06:30.250590838 -0400 +@@ -1,73 +0,0 @@ +-#include "webviewpage.h" +- +-#include <QWebEngineUrlRequestJob> +-#include <QProgressBar> +-#include <QVBoxLayout> +- +-#include "owncloudwizard.h" +-#include "creds/webflowcredentials.h" +-#include "webview.h" +-#include "account.h" +- +-namespace OCC { +- +-Q_LOGGING_CATEGORY(lcWizardWebiewPage, "gui.wizard.webviewpage", QtInfoMsg) +- +- +-WebViewPage::WebViewPage(QWidget *parent) +- : AbstractCredentialsWizardPage() +-{ +- _ocWizard = qobject_cast<OwncloudWizard *>(parent); +- +- qCInfo(lcWizardWebiewPage()) << "Time for a webview!"; +- _webView = new WebView(this); +- +- QVBoxLayout *layout = new QVBoxLayout(this); +- layout->addWidget(_webView); +- setLayout(layout); +- +- connect(_webView, &WebView::urlCatched, this, &WebViewPage::urlCatched); +-} +- +-void WebViewPage::initializePage() { +- QString url; +- if (_ocWizard->registration()) { +- url = "https://nextcloud.com/register"; +- } else { +- url = _ocWizard->ocUrl(); +- url += "/index.php/login/flow"; +- } +- qCInfo(lcWizardWebiewPage()) << "Url to auth at: " << url; +- _webView->setUrl(QUrl(url)); +-} +- +-int WebViewPage::nextId() const { +- return WizardCommon::Page_AdvancedSetup; +-} +- +-bool WebViewPage::isComplete() const { +- return false; +-} +- +-AbstractCredentials* WebViewPage::getCredentials() const { +- return new WebFlowCredentials(_user, _pass, _ocWizard->_clientSslCertificate, _ocWizard->_clientSslKey); +-} +- +-void WebViewPage::setConnected() { +- qCInfo(lcWizardWebiewPage()) << "YAY! we are connected!"; +-} +- +-void WebViewPage::urlCatched(QString user, QString pass, QString host) { +- qCInfo(lcWizardWebiewPage()) << "Got user: " << user << ", server: " << host; +- +- _user = user; +- _pass = pass; +- +- AccountPtr account = _ocWizard->account(); +- account->setUrl(host); +- +- qCInfo(lcWizardWebiewPage()) << "URL: " << field("OCUrl").toString(); +- emit connectToOCUrl(host); +-} +- +-} +--- desktop-2.5.0-beta2/src/gui/wizard/webview.h 2018-08-24 12:54:42.000000000 +0000 ++++ /dev/null 2018-10-03 06:11:27.640255322 +0000 +@@ -1,42 +0,0 @@ +-#ifndef WEBVIEW_H +-#define WEBVIEW_H +- +-#include <QUrl> +-#include <QWidget> +- +-#include "ui_webview.h" +- +-class QWebEngineView; +-class QWebEngineProfile; +-class QWebEnginePage; +- +-namespace OCC { +- +-class WebViewPageUrlRequestInterceptor; +-class WebViewPageUrlSchemeHandler; +-class WebEnginePage; +- +-class WebView : public QWidget +-{ +- Q_OBJECT +-public: +- WebView(QWidget *parent = 0); +- void setUrl(const QUrl &url); +- +-signals: +- void urlCatched(const QString user, const QString pass, const QString host); +- +-private: +- Ui_WebView _ui; +- +- QWebEngineView *_webview; +- QWebEngineProfile *_profile; +- WebEnginePage *_page; +- +- WebViewPageUrlRequestInterceptor *_interceptor; +- WebViewPageUrlSchemeHandler *_schemeHandler; +-}; +- +-} +- +-#endif // WEBVIEW_H +--- desktop-2.5.0-beta1/src/gui/wizard/webviewpage.h 2018-08-02 16:32:56.000000000 -0400 ++++ /dev/null 2018-08-15 19:25:56.010611692 -0400 +@@ -1,41 +0,0 @@ +-#ifndef WEBVIEWPAGE_H +-#define WEBVIEWPAGE_H +- +-#include "wizard/abstractcredswizardpage.h" +- +-namespace OCC { +- +-class AbstractCredentials; +-class OwncloudWizard; +-class WebView; +- +-class WebViewPage : public AbstractCredentialsWizardPage +-{ +- Q_OBJECT +-public: +- WebViewPage(QWidget *parent = 0); +- +- void initializePage() Q_DECL_OVERRIDE; +- int nextId() const Q_DECL_OVERRIDE; +- bool isComplete() const; +- +- AbstractCredentials* getCredentials() const; +- void setConnected(); +- +-signals: +- void connectToOCUrl(const QString&); +- +-private slots: +- void urlCatched(QString user, QString pass, QString host); +- +-private: +- OwncloudWizard *_ocWizard; +- WebView *_webView; +- +- QString _user; +- QString _pass; +-}; +- +-} +- +-#endif // WEBVIEWPAGE_H +--- desktop-2.5.0-beta1/src/gui/wizard/owncloudsetuppage.cpp 2018-08-02 16:32:56.000000000 -0400 ++++ desktop-2.5.0-beta1/src/gui/wizard/owncloudsetuppage.cpp 2018-08-15 19:23:33.100609136 -0400 +@@ -161,7 +161,7 @@ + void OwncloudSetupPage::slotGotoProviderList() + { + _ocWizard->setRegistration(true); +- _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::WebViewFlow); ++ _ocWizard->setAuthType(DetermineAuthTypeJob::AuthType::Basic); + _authTypeKnown = true; + _checking = false; + emit completeChanged(); +@@ -278,8 +278,6 @@ + return WizardCommon::Page_OAuthCreds; + case DetermineAuthTypeJob::Shibboleth: + return WizardCommon::Page_ShibbolethCreds; +- case DetermineAuthTypeJob::WebViewFlow: +- return WizardCommon::Page_WebView; + } + return WizardCommon::Page_HttpCreds; + } +--- desktop-2.5.0-beta1/src/gui/wizard/webview.ui 2018-08-02 16:32:56.000000000 -0400 ++++ /dev/null 2018-08-15 19:24:43.320610392 -0400 +@@ -1,80 +0,0 @@ +-<?xml version="1.0" encoding="UTF-8"?> +-<ui version="4.0"> +- <class>WebView</class> +- <widget class="QWidget" name="WebView"> +- <property name="geometry"> +- <rect> +- <x>0</x> +- <y>0</y> +- <width>800</width> +- <height>700</height> +- </rect> +- </property> +- <property name="sizePolicy"> +- <sizepolicy hsizetype="Minimum" vsizetype="Maximum"> +- <horstretch>0</horstretch> +- <verstretch>0</verstretch> +- </sizepolicy> +- </property> +- <property name="minimumSize"> +- <size> +- <width>800</width> +- <height>650</height> +- </size> +- </property> +- <property name="windowTitle"> +- <string>Form</string> +- </property> +- <layout class="QGridLayout" name="gridLayout"> +- <property name="leftMargin"> +- <number>0</number> +- </property> +- <property name="topMargin"> +- <number>0</number> +- </property> +- <property name="rightMargin"> +- <number>0</number> +- </property> +- <property name="bottomMargin"> +- <number>0</number> +- </property> +- <item row="1" column="0"> +- <layout class="QVBoxLayout" name="verticalLayout"> +- <property name="spacing"> +- <number>0</number> +- </property> +- <item> +- <widget class="QProgressBar" name="progressBar"> +- <property name="maximumSize"> +- <size> +- <width>16777215</width> +- <height>5</height> +- </size> +- </property> +- <property name="styleSheet"> +- <string notr="true">QProgressBar::chunk { +- background-color: rgba(0, 130, 201, 255); +-}</string> +- </property> +- <property name="value"> +- <number>0</number> +- </property> +- <property name="textVisible"> +- <bool>false</bool> +- </property> +- </widget> +- </item> +- <item> +- <layout class="QHBoxLayout" name="resultLayout"> +- <property name="spacing"> +- <number>0</number> +- </property> +- </layout> +- </item> +- </layout> +- </item> +- </layout> +- </widget> +- <resources/> +- <connections/> +-</ui> +--- desktop-2.5.0-beta1/src/gui/wizard/owncloudwizard.h 2018-08-02 16:32:56.000000000 -0400 ++++ desktop-2.5.0-beta1/src/gui/wizard/owncloudwizard.h 2018-08-15 19:22:00.430607478 -0400 +@@ -39,7 +39,6 @@ + class OwncloudWizardResultPage; + class AbstractCredentials; + class AbstractCredentialsWizardPage; +-class WebViewPage; + + /** + * @brief The OwncloudWizard class +@@ -106,7 +105,6 @@ + OwncloudAdvancedSetupPage *_advancedSetupPage; + OwncloudWizardResultPage *_resultPage; + AbstractCredentialsWizardPage *_credentialsPage; +- WebViewPage *_webViewPage; + + QStringList _setupLog; + +--- desktop-2.5.0-beta1/src/gui/wizard/owncloudwizard.cpp 2018-08-02 16:32:56.000000000 -0400 ++++ desktop-2.5.0-beta1/src/gui/wizard/owncloudwizard.cpp 2018-08-15 19:04:35.670588788 -0400 +@@ -26,7 +26,6 @@ + #endif + #include "wizard/owncloudadvancedsetuppage.h" + #include "wizard/owncloudwizardresultpage.h" +-#include "wizard/webviewpage.h" + + #include "QProgressIndicator.h" + +@@ -51,7 +50,6 @@ + , _advancedSetupPage(new OwncloudAdvancedSetupPage) + , _resultPage(new OwncloudWizardResultPage) + , _credentialsPage(0) +- , _webViewPage(new WebViewPage(this)) + , _setupLog() + , _registration(false) + { +@@ -64,7 +62,6 @@ + #endif + setPage(WizardCommon::Page_AdvancedSetup, _advancedSetupPage); + setPage(WizardCommon::Page_Result, _resultPage); +- setPage(WizardCommon::Page_WebView, _webViewPage); + + connect(this, &QDialog::finished, this, &OwncloudWizard::basicSetupFinished); + +@@ -79,7 +76,6 @@ + #ifndef NO_SHIBBOLETH + connect(_shibbolethCredsPage, &OwncloudShibbolethCredsPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); + #endif +- connect(_webViewPage, &WebViewPage::connectToOCUrl, this, &OwncloudWizard::connectToOCUrl); + connect(_advancedSetupPage, &OwncloudAdvancedSetupPage::createLocalAndRemoteFolders, + this, &OwncloudWizard::createLocalAndRemoteFolders); + connect(this, &QWizard::customButtonClicked, this, &OwncloudWizard::skipFolderConfiguration); +@@ -168,10 +164,6 @@ + break; + #endif + +- case WizardCommon::Page_WebView: +- _webViewPage->setConnected(); +- break; +- + case WizardCommon::Page_AdvancedSetup: + _advancedSetupPage->directoriesCreated(); + break; +@@ -195,8 +187,6 @@ + #endif + if (type == DetermineAuthTypeJob::OAuth) { + _credentialsPage = _browserCredsPage; +- } else if (type == DetermineAuthTypeJob::WebViewFlow) { +- _credentialsPage = _webViewPage; + } else { // try Basic auth even for "Unknown" + _credentialsPage = _httpCredsPage; + } +--- desktop-2.5.0-beta1/src/CMakeLists.txt 2018-08-02 16:32:56.000000000 -0400 ++++ desktop-2.5.0-beta1/src/CMakeLists.txt 2018-08-15 20:59:59.390712646 -0400 +@@ -4,7 +4,7 @@ + + set(synclib_NAME ${APPLICATION_EXECUTABLE}sync) + +-find_package(Qt5 5.6 COMPONENTS Core Network Xml Concurrent WebEngineWidgets WebEngine REQUIRED) ++find_package(Qt5 5.6 COMPONENTS Core Network Xml Concurrent REQUIRED) + if (Qt5Core_VERSION VERSION_LESS 5.9.0) + message(STATUS "For HTTP/2 support, compile with Qt 5.9 or higher.") + endif() diff --git a/user/nextcloud-client/openssl.patch b/user/nextcloud-client/openssl.patch new file mode 100644 index 000000000..426fa0cfb --- /dev/null +++ b/user/nextcloud-client/openssl.patch @@ -0,0 +1,11 @@ +--- desktop-2.5.0-beta2/CMakeLists.txt 2018-08-24 12:54:42.000000000 +0000 ++++ desktop-2.5.0-beta2/CMakeLists.txt 2018-10-03 06:19:15.840263697 +0000 +@@ -183,7 +183,7 @@ if(BUILD_CLIENT) + endif() + find_package(Sphinx) + find_package(PdfLatex) +- find_package(OpenSSL 1.1 REQUIRED ) ++ find_package(OpenSSL 1.0 REQUIRED ) + + find_package(ZLIB REQUIRED) + find_package(GLib2) diff --git a/user/perl-code-tidyall/APKBUILD b/user/perl-code-tidyall/APKBUILD new file mode 100644 index 000000000..ed36959e5 --- /dev/null +++ b/user/perl-code-tidyall/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-code-tidyall +pkgver=0.71 +pkgrel=0 +pkgdesc="Your all-in-one Perl code tidier and validator" +url="https://metacpan.org/release/Code-TidyAll" +arch="noarch" +license="Artistic-1.0-Perl" +depends="perl-capture-tiny perl-config-ini perl-file-pushd perl-file-which + perl-ipc-run3 perl-ipc-system-simple perl-list-compare + perl-list-someutils perl-log-any perl-module-runtime perl-moo + perl-path-tiny perl-scope-guard perl-specio + perl-specio-library-path-tiny perl-text-diff perl-timedate + perl-time-duration-parse perl-try-tiny" +makedepends="perl-dev" +checkdepends="perl-lib-relative perl-test-class-most perl-test-differences + perl-test-fatal perl-test-warnings" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Code-TidyAll-$pkgver.tar.gz" +builddir="$srcdir/Code-TidyAll-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="b8d29eaceedf95ce8dc92142a861a7f552443dd713cbfe4a273bcbaa7222ec48646bde434e81cc209adde07d5a2f6e2d6b408e7427dfc574df0af884c8a61f92 Code-TidyAll-0.71.tar.gz" diff --git a/user/perl-file-find-object-rule/APKBUILD b/user/perl-file-find-object-rule/APKBUILD new file mode 100644 index 000000000..f8938a59c --- /dev/null +++ b/user/perl-file-find-object-rule/APKBUILD @@ -0,0 +1,34 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-file-find-object-rule +pkgver=0.0309 +pkgrel=0 +pkgdesc="Alternative Perl interface to File::Find::Object" +url="https://metacpan.org/release/File-Find-Object-Rule" +arch="noarch" +license="Artistic-1.0-Perl" +depends="perl-class-xsaccessor perl-file-find-object perl-number-compare + perl-text-glob" +makedepends="perl-dev perl-module-build" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/File-Find-Object-Rule-$pkgver.tar.gz" +builddir="$srcdir/File-Find-Object-Rule-$pkgver" + +build() { + cd "$builddir" + perl Build.PL installdirs=vendor + ./Build +} + +check() { + cd "$builddir" + ./Build test +} + +package() { + cd "$builddir" + ./Build install destdir="$pkgdir" + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="d4fe0bc369faa4870bb4f66b4e1212f0597ab0eb723dfb0ab6473428657067c0a72f9b9d6354a549117e553be1ddde222ede822555f94846ba110a2f82cc4b68 File-Find-Object-Rule-0.0309.tar.gz" diff --git a/user/perl-file-find-object/APKBUILD b/user/perl-file-find-object/APKBUILD new file mode 100644 index 000000000..b35c550d5 --- /dev/null +++ b/user/perl-file-find-object/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=perl-file-find-object +pkgver=0.3.2 +pkgrel=0 +pkgdesc="Object-oriented File::Find replacement for Perl" +url="https://metacpan.org/release/File-Find-Object" +arch="noarch" +license="Artistic-2.0" +depends="perl-class-xsaccessor" +makedepends="perl-dev perl-module-build" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/File-Find-Object-v$pkgver.tar.gz" +builddir="$srcdir/File-Find-Object-v$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="58ca07083da520aee03945259ac89b6b584728d89ad52aea1a6f19a14da73fc92fcfc46c01656130d64fbc9fc9e4b1c5ef56274f30ebe3711972235dd8945956 File-Find-Object-v0.3.2.tar.gz" diff --git a/user/perl-file-finder/APKBUILD b/user/perl-file-finder/APKBUILD new file mode 100644 index 000000000..83f2ada97 --- /dev/null +++ b/user/perl-file-finder/APKBUILD @@ -0,0 +1,36 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-file-finder +pkgver=0.53 +pkgrel=1 +pkgdesc="Wrap Perl File::Find" +url="https://metacpan.org/release/File-Finder" +arch="noarch" +license="Artistic-1.0-Perl" +depends="perl-text-glob" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/M/ME/MERLYN/File-Finder-$pkgver.tar.gz + fix-test.patch + " +builddir="$srcdir/File-Finder-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="abcbc5b5c7ae09eb13e62ab1656e79a25becafb91eeef241fc0803ba0b35ae902c93db2240dfff6342952df7f0ff589350f63fdb1ccead64816f51bf52e366f0 File-Finder-0.53.tar.gz +8b96e6adb28e0a26843a3551d5939b9c9f65fbef155e46c155b82263923e1275a6be8c6184bbc831dfff7cc899d7b48df0f21e7005f273c389eff830190be166 fix-test.patch" diff --git a/user/perl-file-finder/fix-test.patch b/user/perl-file-finder/fix-test.patch new file mode 100644 index 000000000..6c371f6fc --- /dev/null +++ b/user/perl-file-finder/fix-test.patch @@ -0,0 +1,16 @@ +Thanks @smaeul + +--- File-Finder-0.53/t/05-steps.t.old 2004-10-07 01:04:12.000000000 -0500 ++++ File-Finder-0.53/t/05-steps.t 2018-10-02 22:27:29.867015209 -0500 +@@ -51,9 +51,9 @@ + 'mode 755'); + + { +- my $dirperm = (stat ".")[2] & 07777; ++ my $dirperm = (stat ".")[2] & 0777; + is_deeply([File::Finder->perm($dirperm)->in(qw(.))], +- [fin(sub { ((stat($_))[2] & 07777) == $dirperm }, '.')], ++ [fin(sub { ((stat($_))[2] & 0777) == $dirperm }, '.')], + 'mode same as current directory'); + } + diff --git a/user/perl-file-slurp/APKBUILD b/user/perl-file-slurp/APKBUILD new file mode 100644 index 000000000..bfe483c7a --- /dev/null +++ b/user/perl-file-slurp/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-file-slurp +pkgver=9999.19 +pkgrel=0 +pkgdesc="Simple and efficient file manipulation in Perl" +url="https://metacpan.org/release/File-Slurp" +arch="noarch" +license="Artistic-1.0-Perl" +depends="" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/U/UR/URI/File-Slurp-$pkgver.tar.gz" +builddir="$srcdir/File-Slurp-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="3fb8f452d625e321e77475cbc7d5672d53fe49945581561a0001be0a9464e67659303271648e102d52b6ebd04c87afc7432238fcade0c098f584f3b58c90ec82 File-Slurp-9999.19.tar.gz" diff --git a/user/perl-log-any/APKBUILD b/user/perl-log-any/APKBUILD new file mode 100644 index 000000000..8b0e5a88d --- /dev/null +++ b/user/perl-log-any/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-log-any +pkgver=1.707 +pkgrel=0 +pkgdesc="Bring Perl loggers and listeners together" +url="https://metacpan.org/release/Log-Any" +arch="noarch" +license="Artistic-1.0-Perl" +depends="" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/P/PR/PREACTION/Log-Any-$pkgver.tar.gz" +builddir="$srcdir/Log-Any-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="b5fc37130b3bb07c9fac896c539657fffad2e80c2055a09816e133e48f3f5db9a3b896ea11bf087b5fe6844a72fb6189656a3033c7761c00f471282747e1c290 Log-Any-1.707.tar.gz" diff --git a/user/perl-number-compare/APKBUILD b/user/perl-number-compare/APKBUILD new file mode 100644 index 000000000..c88666cc0 --- /dev/null +++ b/user/perl-number-compare/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-number-compare +pkgver=0.03 +pkgrel=0 +pkgdesc="Numeric comparisons for Perl" +url="https://metacpan.org/release/Number-Compare" +arch="noarch" +license="Artistic-1.0-Perl" +depends="" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Number-Compare-$pkgver.tar.gz" +builddir="$srcdir/Number-Compare-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="fc7efb0177bcb84142619b7d8c0252f4548e547650ddbe9cfafaba97b8ae791c20fbffa6f8b01449b9dd217d9914f94bfeaff57cdfdc2c11e2a1456992bd9893 Number-Compare-0.03.tar.gz" diff --git a/user/perl-perl-tidy/APKBUILD b/user/perl-perl-tidy/APKBUILD new file mode 100644 index 000000000..84361f161 --- /dev/null +++ b/user/perl-perl-tidy/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-perl-tidy +pkgver=20180220 +pkgrel=0 +pkgdesc="Indent and reformat Perl scripts" +url="https://metacpan.org/release/Perl-Tidy" +arch="noarch" +license="GPL-2.0-only" +depends="" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/S/SH/SHANCOCK/Perl-Tidy-$pkgver.tar.gz" +builddir="$srcdir/Perl-Tidy-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="93bdf2c18efdd9d62d5bb666ded9d9502a722370049a2a51f9d41107d7fa67acd91dfdd184a11eaab287f11a901ad686585e959f09407b0493719d19ce5d842e Perl-Tidy-20180220.tar.gz" diff --git a/user/perl-scope-guard/APKBUILD b/user/perl-scope-guard/APKBUILD new file mode 100644 index 000000000..121aa0f5f --- /dev/null +++ b/user/perl-scope-guard/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-scope-guard +pkgver=0.21 +pkgrel=0 +pkgdesc="Lexically-scoped Perl resource management" +url="https://metacpan.org/release/Scope-Guard" +arch="noarch" +license="Artistic-1.0-Perl" +depends="" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE/Scope-Guard-$pkgver.tar.gz" +builddir="$srcdir/Scope-Guard-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="65492e08ab79dc323649166e83ffc13c6f1fffaa9c60d581d8854dfe427a54a3c3c5e4d8b90308d4b1a31a1a54c7977b4e1d36fc9005c6e716c2361ce187fc9f Scope-Guard-0.21.tar.gz" diff --git a/user/perl-task-freecellsolver-testing/APKBUILD b/user/perl-task-freecellsolver-testing/APKBUILD new file mode 100644 index 000000000..c31fc7b7d --- /dev/null +++ b/user/perl-task-freecellsolver-testing/APKBUILD @@ -0,0 +1,38 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-task-freecellsolver-testing +pkgver=0.0.11 +pkgrel=0 +pkgdesc="Perl module for testing the Freecell Solver package" +url="https://metacpan.org/release/Task-FreecellSolver-Testing" +arch="noarch" +license="MIT" +depends="perl-code-tidyall perl-env-path perl-file-which + perl-games-solitaire-verify perl-inline perl-inline-c + perl-list-moreutils perl-moo perl-moox perl-moox-late perl-path-tiny + perl-string-shellquote perl-task-test-run-allplugins + perl-template-toolkit perl-test-data-split perl-test-differences + perl-test-perltidy perl-test-runvalgrind perl-test-trailingspace" +makedepends="perl-dev perl-module-build" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Task-FreecellSolver-Testing-v$pkgver.tar.gz" +builddir="$srcdir/Task-FreecellSolver-Testing-v$pkgver" + +build() { + cd "$builddir" + perl Build.PL installdirs=vendor + ./Build +} + +check() { + cd "$builddir" + ./Build test +} + +package() { + cd "$builddir" + ./Build install destdir="$pkgdir" + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="85c3d7e68e0fa14abac2442ec7b6e90cc4df9f6733fbd87e5a872043a03a71d8cd3a262c816d861a1c729646ff379665c1d5d6e0bc80ae476db089d9d3793b82 Task-FreecellSolver-Testing-v0.0.11.tar.gz" diff --git a/user/perl-test-perltidy/APKBUILD b/user/perl-test-perltidy/APKBUILD new file mode 100644 index 000000000..392257c83 --- /dev/null +++ b/user/perl-test-perltidy/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-test-perltidy +pkgver=20130104 +pkgrel=0 +pkgdesc="Check all your Perl files for tidiness" +url="https://metacpan.org/release/Test-PerlTidy" +arch="noarch" +license="Artistic-1.0-Perl" +depends="perl-file-finder perl-file-slurp perl-perl-tidy perl-text-diff" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/L/LA/LARRYL/Test-PerlTidy-$pkgver.tar.gz" +builddir="$srcdir/Test-PerlTidy-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="47d77083ec6f4808ac60bdb19431b3013b996f83506b0af490a6fa52f4f71a8c1812cf21b447568661495c845d524f9c2be6842380bd41c9ccfe22ec6acd802f Test-PerlTidy-20130104.tar.gz" diff --git a/user/perl-test-runvalgrind/APKBUILD b/user/perl-test-runvalgrind/APKBUILD new file mode 100644 index 000000000..c6f31b336 --- /dev/null +++ b/user/perl-test-runvalgrind/APKBUILD @@ -0,0 +1,36 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-test-runvalgrind +pkgver=0.2.0 +pkgrel=0 +pkgdesc="Tests an external program is 'valgrind clean' from Perl" +url="https://metacpan.org/release/Test-RunValgrind" +arch="noarch" +license="MIT" +depends="perl-path-tiny perl-test-trap" +makedepends="perl-dev perl-module-build" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Test-RunValgrind-$pkgver.tar.gz + portable-memory-assumptions.patch + " +builddir="$srcdir/Test-RunValgrind-$pkgver" + +build() { + cd "$builddir" + perl Build.PL installdirs=vendor + ./Build +} + +check() { + cd "$builddir" + ./Build test +} + +package() { + cd "$builddir" + ./Build install destdir="$pkgdir" + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="e85547d24fb7c8b0a8fd1a84826eec51d3c4c94d83cbb525517515ecc27b0ba530378a10f8a2ffee9fb1f48eb2e65a6a2654738ee069bd85adcec7f4c205f143 Test-RunValgrind-0.2.0.tar.gz +f2ebba2310df820666728e5f59c44f5b63cd03efdb42092f22700da13b4f099ae5c911292fb2a0f271f7629343727ea14c5953d2918c98419a580e5a998cb650 portable-memory-assumptions.patch" diff --git a/user/perl-test-runvalgrind/portable-memory-assumptions.patch b/user/perl-test-runvalgrind/portable-memory-assumptions.patch new file mode 100644 index 000000000..927da1194 --- /dev/null +++ b/user/perl-test-runvalgrind/portable-memory-assumptions.patch @@ -0,0 +1,14 @@ +Upstream: https://github.com/shlomif/perl-Test-RunValgrind/issues/5 + +--- Test-RunValgrind-0.2.0/lib/Test/RunValgrind.pm.old 2018-01-26 18:07:19.000000000 +0000 ++++ Test-RunValgrind-0.2.0/lib/Test/RunValgrind.pm 2018-10-02 22:42:05.450000000 +0000 +@@ -80,7 +80,8 @@ + index( $$out_text, q{ERROR SUMMARY: 0 errors from 0 contexts} ) >= 0 + ) + && ( $self->_ignore_leaks +- || ( index( $$out_text, q{in use at exit: 0 bytes} ) >= 0 ) ) ++ || ( index( $$out_text, q{in use at exit: 0 bytes} ) >= 0 ) ++ || ( index( $$out_text, q{still reachable: 0 bytes} ) >= 0 ) ) + ); + } + diff --git a/user/perl-test-trailingspace/APKBUILD b/user/perl-test-trailingspace/APKBUILD new file mode 100644 index 000000000..ccaf8e873 --- /dev/null +++ b/user/perl-test-trailingspace/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-test-trailingspace +pkgver=0.0301 +pkgrel=0 +pkgdesc="Test for trailing spaces in Perl source files" +url="https://metacpan.org/release/Test-TrailingSpace" +arch="noarch" +license="MIT" +depends="perl-file-find-object-rule" +makedepends="perl-dev perl-module-build" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-$pkgver.tar.gz" +builddir="$srcdir/Test-TrailingSpace-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="9ec511759b12265c2a98a06a54081e0ca0377e707b29174fb874fd505330e0abfafebe910f7ceba9f8a6bcbfcf5d74fc8ffdca2e17b9cad15c207213449085d4 Test-TrailingSpace-0.0301.tar.gz" diff --git a/user/perl-text-glob/APKBUILD b/user/perl-text-glob/APKBUILD new file mode 100644 index 000000000..85bbc7a9b --- /dev/null +++ b/user/perl-text-glob/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> +pkgname=perl-text-glob +pkgver=0.11 +pkgrel=0 +pkgdesc="glob(3) style string matching for Perl" +url="https://metacpan.org/release/Text-Glob" +arch="noarch" +license="Artistic-1.0-Perl" +depends="" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Text-Glob-$pkgver.tar.gz" +builddir="$srcdir/Text-Glob-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="20322fee3f56ee7e65f0f8e5371d9dbbe89895d8b9c9207486e7934e29bd883fb557c9765e406f85f56b67019293d82a0318ded83a9387b164cb5e8f58bef0cb Text-Glob-0.11.tar.gz" diff --git a/user/py3-cffi/APKBUILD b/user/py3-cffi/APKBUILD new file mode 100644 index 000000000..9c7e1124c --- /dev/null +++ b/user/py3-cffi/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=py3-cffi +pkgver=1.11.5 +pkgrel=0 +pkgdesc="Interface for Python to call in to C code" +url="https://cffi.readthedocs.io/" +arch="all" +license="MIT" +depends="python3 py3-cparser" +makedepends="libffi-dev python3-dev" +checkdepends="py3-pytest" +subpackages="" +source="https://files.pythonhosted.org/packages/e7/a7/4cd50e57cc6f436f1cc3a7e8fa700ff9b8b4d471620629074913e3735fb2/cffi-$pkgver.tar.gz" +builddir="$srcdir/cffi-$pkgver" + +build() { + cd "$builddir" + python3 setup.py build +} + +check() { + cd "$builddir" + python3 setup.py test +} + +package() { + cd "$builddir" + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums="6770d5293cfd7405e733d60c96655641b5bcc5878fc66a737f4a8308f465d459ee0e3fcaa47893d8f57fb195e5534dd7e4728c868f33d7e657688f45e1fb1880 cffi-1.11.5.tar.gz" diff --git a/user/py3-cparser/APKBUILD b/user/py3-cparser/APKBUILD new file mode 100644 index 000000000..d08071bf2 --- /dev/null +++ b/user/py3-cparser/APKBUILD @@ -0,0 +1,31 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=py3-cparser +pkgver=2.19 +pkgrel=0 +pkgdesc="C99 parser in pure Python" +url="https://github.com/eliben/pycparser" +arch="noarch" +license="BSD-3-Clause" +depends="python3" +makedepends="" +subpackages="" +source="py3-cparser-$pkgver.tar.gz::https://github.com/eliben/pycparser/archive/release_v$pkgver.tar.gz" +builddir="$srcdir/pycparser-release_v$pkgver" + +build() { + cd "$builddir" + python3 setup.py build +} + +check() { + cd "$builddir" + python3 tests/all_tests.py +} + +package() { + cd "$builddir" + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums="88fe63c1a7a344c564dfd3b4f99735a4159c8a3f5738bab839943ea7fcbf1f5340f67326550b7e66508ea5862897e5bcdf363c2a8d47eccb50890573a2640a98 py3-cparser-2.19.tar.gz" diff --git a/user/strongswan/APKBUILD b/user/strongswan/APKBUILD index a89a10a6c..29390b652 100644 --- a/user/strongswan/APKBUILD +++ b/user/strongswan/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Lee Starnes <lee@canned-death.us> pkgname=strongswan -pkgver=5.7.0 +pkgver=5.7.1 _pkgver=${pkgver//_rc/rc} pkgrel=0 pkgdesc="IPsec-based VPN solution focused on security and ease of use, supporting IKEv1/IKEv2 and MOBIKE" @@ -28,6 +28,10 @@ source="https://download.strongswan.org/$pkgname-$_pkgver.tar.bz2 " builddir="$srcdir/$pkgname-$_pkgver" +# secfixes: +# 5.7.1-r0: +# - CVE-2018-17540 + build() { cd "$builddir" @@ -95,7 +99,7 @@ package() { install -m755 -D "$srcdir/charon.initd" "$pkgdir/etc/init.d/charon" } -sha512sums="811bfa79aa2b17fcf298c45a2b4109cf4235286e90c4def3e09022ed94c7fa481fc25b8d5054529e4ff4e33011ce6f6ba9874595d16c1a8fe13ef924c4ec6395 strongswan-5.7.0.tar.bz2 +sha512sums="43102814434bee7c27a5956be59099cc4ffb9bb5b0d6382ce4c6a80d1d82ed6639f698f5f5544b9ca563554a344638c953525b0e2d39bc6b71b19055c80e07fc strongswan-5.7.1.tar.bz2 193d845e2751c23d98cdf84134c7803f2e412197669c6d6c1c9974041608d154b85594ed3d9ffb923ca22a4d5926c7f2373787ddc7da47b52019e284a1d13211 0205-ike-Adhere-to-IKE_SA-limit-when-checking-out-by-conf.patch 21db8f153f535ef13cc7c9c011f9b90b8c794e0072bd93fda6a0a56dc00d32d04e186b1a72a87a85613b7e511eed5cb96623abf0721c67dd5c96446db969a185 1001-charon-add-optional-source-and-remote-overrides-for-.patch f7d98fb99b4855e8bfbb7369292c170536b1987e717feeda71f64ab71b35538e7d462609a773c6a6ed08c8e6ee7a186df12e1ea7d64b9dac0b17d4c7af17dab3 1002-vici-send-certificates-for-ike-sa-events.patch diff --git a/user/the_silver_searcher/APKBUILD b/user/the_silver_searcher/APKBUILD new file mode 100644 index 000000000..c9f324a69 --- /dev/null +++ b/user/the_silver_searcher/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=the_silver_searcher +pkgver=2.2.0 +pkgrel=0 +pkgdesc="Tool for very fast searching of text in documents and code" +url="https://geoff.greer.fm/ag/" +arch="all" +options="!check" # Tests are not shipped in the release tarball... +license="Apache-2.0" +depends="" +makedepends="pcre-dev xz-dev zlib-dev" +checkdepends="cram" +subpackages="$pkgname-doc" +source="https://geoff.greer.fm/ag/releases/the_silver_searcher-$pkgver.tar.gz" +builddir="$srcdir/the_silver_searcher-$pkgver" + +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install +} + +sha512sums="89d4e4f7f34c0d57aa880e7c3466f0373b961744a89ad30541e89e2d614322ab46c8044ec458406a117f74b0fea14cd3063fa4e0624a96526aa23eaccd6f1141 the_silver_searcher-2.2.0.tar.gz" diff --git a/user/valgrind/APKBUILD b/user/valgrind/APKBUILD index fcbd838d2..d79ba75c4 100644 --- a/user/valgrind/APKBUILD +++ b/user/valgrind/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=valgrind pkgver=3.13.0 -pkgrel=3 +pkgrel=4 pkgdesc="A tool to help find memory-management problems in programs" url="http://valgrind.org/" arch="all" @@ -18,8 +18,8 @@ source="ftp://sourceware.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2 uclibc.patch arm.patch 0001-Ensure-ELFv2-is-supported-on-PPC64.patch + suppressions.patch " -# musl-fixes.patch prepare() { default_prepare @@ -67,4 +67,5 @@ package() { sha512sums="34e1013cd3815d30a459b86220e871bb0a6209cc9e87af968f347083693779f022e986f211bdf1a5184ad7370cde12ff2cfca8099967ff94732970bd04a97009 valgrind-3.13.0.tar.bz2 d59a10db9037e120df2ee94a103402ca95a79abee9d8be63e4e1bca29c82dca775cc402a79b854ec11a2160a4d2da202c237369418e221d1925267ea2613fd5d uclibc.patch 9ee297d1b2b86891584443ad0caadc4977e1447979611ccf1cc55dbee61911b0b063bc4ad936d86c451cedae410cb3219b5a088b2ad0aa17df182d564fe36cfe arm.patch -71afb12748f69f0976a299c65572818b70cbce5d04f230a49a50f114351d8083c59a9e197cefbcb9145806797ff4d1d54488f50342b680c9a2b76e4a7f7cf305 0001-Ensure-ELFv2-is-supported-on-PPC64.patch" +71afb12748f69f0976a299c65572818b70cbce5d04f230a49a50f114351d8083c59a9e197cefbcb9145806797ff4d1d54488f50342b680c9a2b76e4a7f7cf305 0001-Ensure-ELFv2-is-supported-on-PPC64.patch +d011b2769d35ca3206967e6dac9f3fb24a6496e5bbfdc73342382245c89375b09d6948b10ba3cf8aa0050c79c0dd13b75764aec0ec5c6ac479fa930941067747 suppressions.patch" diff --git a/user/valgrind/suppressions.patch b/user/valgrind/suppressions.patch new file mode 100644 index 000000000..a91b93fdf --- /dev/null +++ b/user/valgrind/suppressions.patch @@ -0,0 +1,24 @@ +--- valgrind-3.13.0/configure.ac.old 2017-06-15 13:37:01.000000000 +0000 ++++ valgrind-3.13.0/configure.ac 2018-10-02 21:46:48.710000000 +0000 +@@ -1034,7 +1034,7 @@ + musl) + AC_MSG_RESULT(Musl) + AC_DEFINE([MUSL_LIBC], 1, [Define to 1 if you're using Musl libc]) +- # no DEFAULT_SUPP file yet for musl libc. ++ DEFAULT_SUPP="musl.supp ${DEFAULT_SUPP}" + ;; + 2.0|2.1|*) + AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}]) +--- /dev/null 2018-07-03 06:46:12.010000000 +0000 ++++ valgrind-3.13.0/musl.supp 2018-10-02 21:44:57.240000000 +0000 +@@ -0,0 +1,10 @@ ++# musl does not free `dso` structs allocated during linking on exit. ++{ ++ musl:dynlinker ++ Memcheck:Leak ++ match-leak-kinds: reachable ++ fun:calloc ++ ... ++ fun:__dls3 ++ obj:/lib/ld-musl-* ++} |