diff options
38 files changed, 1278 insertions, 21 deletions
diff --git a/system/musl/APKBUILD b/system/musl/APKBUILD index 08f4342dd..dbbfe640c 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=4 +pkgrel=5 pkgdesc="System library (libc) implementation" url="http://www.musl-libc.org/" arch="all" @@ -11,7 +11,7 @@ license="MIT" depends="" depends_dev="!uclibc-dev" makedepends="$depends_dev" -subpackages="$pkgname-dev $pkgname-dbg" +subpackages="$pkgname-dev" case "$BOOTSTRAP" in nocc) pkgname="musl-dev" subpackages="" @@ -32,6 +32,7 @@ source="http://www.musl-libc.org/releases/musl-$pkgver.tar.gz dcngettext-null-deref.patch getaddrinfo-regression.patch ppc64-atomic.patch + dynamic-binary-stack-size.patch ldconfig getent.c @@ -127,6 +128,7 @@ b967339d9048161583523e847be91779adb0e16cc225d6ff85ef51748269b2dab08a0b8e558ad014 a08d1b170356beea333ace1da12f8a8399ca80c5d9c32ff2fcd8562537a670214f566e4b1219a11b32129078e22fbf7009bb277b7de8550a89352a64b3b5090d dcngettext-null-deref.patch e3953a3a73ef11696dd3eb216e18b152ae35198d8bff686d157e27bc90fb558f9a0be518025a90534e9afd6ea1bf731ffdb6fcb202bb9368f2c8eec7ca886141 getaddrinfo-regression.patch aae9110eccb8cd7dcd3c957fcb01ed524598f79f7fa1a16b9993af40793545d1ec211e7e6aeabe7af7715d94cc26a473ea0acf6d6e66019bf65f03d4b8e24a4b ppc64-atomic.patch +654f76c96ed0e69e19b1a20569e83751bb207a8c181b26742f505638095dde3f4dd3f785deb92c49a603bd15cd8d4932129f567de8cd2edffdd8551c4dfd6976 dynamic-binary-stack-size.patch cce2f1eeb61e55674469c26871a573cce61d739c3defe9c8f56f2b774f6ba5435849ad542a6714120efddc98c297098e9c98a1a424ac593df2243d4aa479f9a9 ldconfig 378d70e65bcc65bb4e1415354cecfa54b0c1146dfb24474b69e418cdbf7ad730472cd09f6f103e1c99ba6c324c9560bccdf287f5889bbc3ef0bdf0e08da47413 getent.c 9d42d66fb1facce2b85dad919be5be819ee290bd26ca2db00982b2f8e055a0196290a008711cbe2b18ec9eee8d2270e3b3a4692c5a1b807013baa5c2b70a2bbf iconv.c" diff --git a/system/musl/dynamic-binary-stack-size.patch b/system/musl/dynamic-binary-stack-size.patch new file mode 100644 index 000000000..e2e3f12d3 --- /dev/null +++ b/system/musl/dynamic-binary-stack-size.patch @@ -0,0 +1,97 @@ +From 7b3348a98c139b4b4238384e52d4b0eb237e4833 Mon Sep 17 00:00:00 2001 +From: Rich Felker <dalias@aerifal.cx> +Date: Tue, 18 Sep 2018 23:54:18 -0400 +Subject: support setting of default thread stack size via PT_GNU_STACK header + +this facilitates building software that assumes a large default stack +size without any patching to call pthread_setattr_default_np or +pthread_attr_setstacksize at each thread creation site, using just +LDFLAGS. + +normally the PT_GNU_STACK header is used only to reflect whether +executable stack is desired, but with GNU ld at least, passing +-Wl,-z,stack-size=N will set a size on the program header. with this +patch, that size will be incorporated into the default stack size +(subject to increase-only rule and DEFAULT_STACK_MAX limit). + +both static and dynamic linking honor the program header. for dynamic +linking, all libraries loaded at program start, including preloaded +ones, are considered. dlopened libraries are not considered, for +several reasons. extra logic would be needed to defer processing until +the load of the new library is commited, synchronization woud be +needed since other threads may be running concurrently, and the +effectiveness woud be limited since the larger size would not apply to +threads that already existed at the time of dlopen. programs that will +dlopen code expecting a large stack need to declare the requirement +themselves, or pthread_setattr_default_np can be used. +--- + ldso/dynlink.c | 12 ++++++++++++ + src/env/__init_tls.c | 5 +++++ + 2 files changed, 17 insertions(+) + +diff --git a/ldso/dynlink.c b/ldso/dynlink.c +index e4829c3a..3ecbddfa 100644 +--- a/ldso/dynlink.c ++++ b/ldso/dynlink.c +@@ -22,6 +22,7 @@ + #include "dynlink.h" + + static void error(const char *, ...); ++extern size_t __default_stacksize; + + #define MAXP2(a,b) (-(-(a)&-(b))) + #define ALIGN(x,y) ((x)+(y)-1 & -(y)) +@@ -609,6 +610,12 @@ static void *map_library(int fd, struct dso *dso) + } else if (ph->p_type == PT_GNU_RELRO) { + dso->relro_start = ph->p_vaddr & -PAGE_SIZE; + dso->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE; ++ } else if (ph->p_type == PT_GNU_STACK) { ++ if (!runtime && ph->p_memsz > __default_stacksize) { ++ __default_stacksize = ++ ph->p_memsz < (8<<20) ? ++ ph->p_memsz : (8<<20); ++ } + } + if (ph->p_type != PT_LOAD) continue; + nsegs++; +@@ -1238,6 +1245,12 @@ static void kernel_mapped_dso(struct dso *p) + } else if (ph->p_type == PT_GNU_RELRO) { + p->relro_start = ph->p_vaddr & -PAGE_SIZE; + p->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE; ++ } else if (ph->p_type == PT_GNU_STACK) { ++ if (!runtime && ph->p_memsz > __default_stacksize) { ++ __default_stacksize = ++ ph->p_memsz < (8<<20) ? ++ ph->p_memsz : (8<<20); ++ } + } + if (ph->p_type != PT_LOAD) continue; + if (ph->p_vaddr < min_addr) +diff --git a/src/env/__init_tls.c b/src/env/__init_tls.c +index e0224243..96d0e284 100644 +--- a/src/env/__init_tls.c ++++ b/src/env/__init_tls.c +@@ -8,6 +8,8 @@ + #include "atomic.h" + #include "syscall.h" + ++extern size_t __default_stacksize; ++ + int __init_tp(void *p) + { + pthread_t td = p; +@@ -90,6 +91,11 @@ static void static_init_tls(size_t *aux) + base = (size_t)_DYNAMIC - phdr->p_vaddr; + if (phdr->p_type == PT_TLS) + tls_phdr = phdr; ++ if (phdr->p_type == PT_GNU_STACK && ++ phdr->p_memsz > __default_stacksize) ++ __default_stacksize = ++ phdr->p_memsz < (8<<20) ? ++ phdr->p_memsz : (8<<20); + } + + if (tls_phdr) { +-- +cgit v1.2.1 + diff --git a/system/perl-cpanel-json-xs/APKBUILD b/system/perl-cpanel-json-xs/APKBUILD index cd896f89b..76e9a74a9 100644 --- a/system/perl-cpanel-json-xs/APKBUILD +++ b/system/perl-cpanel-json-xs/APKBUILD @@ -3,7 +3,7 @@ # Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> pkgname=perl-cpanel-json-xs _pkgreal=Cpanel-JSON-XS -pkgver=4.07 +pkgver=4.08 pkgrel=0 pkgdesc="cPanel's fork of JSON::XS, fast and correct serialising" url="https://metacpan.org/release/Cpanel-JSON-XS" @@ -40,4 +40,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="f8136702c7da4c04d210025ee6c9e5095c07f67012f1ad2f35e8dcce204bd826569c036f87e50e34b30c461a149cba4f4da66ee60e30c9f7e5f402fadf529a57 Cpanel-JSON-XS-4.07.tar.gz" +sha512sums="7236923791b244e022cea00f3c8697905a8187edddaf0b197ee6f8a4afe958c42ea37f655e0db8e4c66a07427b7888e68ae1dc08849ef7cbb518155b2d9c65f5 Cpanel-JSON-XS-4.08.tar.gz" diff --git a/system/vim/APKBUILD b/system/vim/APKBUILD index 7bc2766c2..1eef8db0c 100644 --- a/system/vim/APKBUILD +++ b/system/vim/APKBUILD @@ -4,7 +4,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=vim -pkgver=8.1.0490 +pkgver=8.1.0551 pkgrel=0 pkgdesc="advanced text editor" url="http://www.vim.org" @@ -80,5 +80,5 @@ vimdiff() { mv "$pkgdir"/usr/bin/vimdiff "$subpkgdir"/usr/bin } -sha512sums="1237ad835f65699ca095fbae4ac1039807638d4de7cc00ec83a56ba975ba224103740f6d6ee9e15b0135bc444eef747a5e15b88346e32f7ae4d436f183a44935 vim-8.1.0490.tar.gz +sha512sums="a05cfb3d7d640d551a4c3c1622110cd2aed01fe20f2b3e4e78161346eb957c4a56e64d8d8e43bea7dfd0af4160faa78f2f48d4d2bd77e694706ce2cdfe7632e6 vim-8.1.0551.tar.gz 3a6c9bc187a6f45fd78e91dcc44d4d661c1ae1f2655e3a66bb36245ad1dc41e8d0e6061ec3aee6d323f96058b4a5501a87e3327e539cfd026f68cf81d455d721 vimrc" diff --git a/user/bash-completion/APKBUILD b/user/bash-completion/APKBUILD new file mode 100644 index 000000000..42575f687 --- /dev/null +++ b/user/bash-completion/APKBUILD @@ -0,0 +1,69 @@ +# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net> +# Contributor: Kiyoshi Aman <kiyoshi.aman@gmail.com> +# Maintainer: zlg <zlg+adelie@zlg.space> +pkgname=bash-completion +pkgver=2.8 +pkgrel=0 +pkgdesc="Command-line tab-completion for bash" +url="https://github.com/scop/bash-completion" +arch="noarch" +license="GPL-2.0-or-later" +depends="bash" +makedepends="" +subpackages="$pkgname-doc" +source="https://github.com/scop/${pkgname}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.xz" + +# Provided with util-linux and networkmanager: +_conflicting=" + cal + chsh + dmesg + eject + hd + hexdump + hwclock + ionice + look + ncal + newgrp + renice + rfkill + rtcwake + su + nmcli + umount + mount + " + +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +check() { + cd "$builddir" + make check +} + +package() { + cd "$builddir" + make -j1 DESTDIR="$pkgdir" install + + mkdir -p "$pkgdir"/usr/share/doc/$pkgname/ + install -m644 AUTHORS CHANGES CONTRIBUTING.md README.md \ + "$pkgdir"/usr/share/doc/$pkgname/ + + cd "$pkgdir"/usr/share/bash-completion/completions + for c in $_conflicting; do + rm -f $c + done +} + +sha512sums="d839ef5a98811a2aade7ebdc0bc84c84a41c74db384f89913b06f3c25add1ba22528ac25392b19d27280685d258c74dcdc11247cbaae5b8d82f2c0b546abc268 bash-completion-2.8.tar.xz" diff --git a/user/gvim/APKBUILD b/user/gvim/APKBUILD index 605f4de3e..d423ae5c9 100644 --- a/user/gvim/APKBUILD +++ b/user/gvim/APKBUILD @@ -5,7 +5,7 @@ # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=gvim _pkgreal=vim -pkgver=8.1.0490 +pkgver=8.1.0551 pkgrel=0 pkgdesc="advanced text editor" url="http://www.vim.org" @@ -74,4 +74,4 @@ package() { ln -s gvim rgvim } -sha512sums="1237ad835f65699ca095fbae4ac1039807638d4de7cc00ec83a56ba975ba224103740f6d6ee9e15b0135bc444eef747a5e15b88346e32f7ae4d436f183a44935 vim-8.1.0490.tar.gz" +sha512sums="a05cfb3d7d640d551a4c3c1622110cd2aed01fe20f2b3e4e78161346eb957c4a56e64d8d8e43bea7dfd0af4160faa78f2f48d4d2bd77e694706ce2cdfe7632e6 vim-8.1.0551.tar.gz" diff --git a/user/kcachegrind/APKBUILD b/user/kcachegrind/APKBUILD new file mode 100644 index 000000000..68dc6519c --- /dev/null +++ b/user/kcachegrind/APKBUILD @@ -0,0 +1,43 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=kcachegrind +pkgver=18.08.3 +pkgrel=0 +pkgdesc="Profile data visualisation tool and call graph viewer" +url="https://kcachegrind.github.io/html/Home.html" +arch="all" +license="GPL-2.0-only" +depends="binutils graphviz" +makedepends="cmake extra-cmake-modules qt5-qtbase-dev qt5-qttools-dev + karchive-dev kconfig-dev kcoreaddons-dev kdoctools-dev ki18n-dev kio-dev + kwidgetsaddons-dev kxmlgui-dev" +subpackages="$pkgname-doc $pkgname-lang" +source="https://download.kde.org/stable/applications/$pkgver/src/kcachegrind-$pkgver.tar.xz" + +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="abbbf7ba539da1fa71d31e4603d1b8a76178a48bf503c735ebce9bbc9887e9ec64b2338ce77de2f38114faa27dee51e19af61cf4d3e9fbbe942a417edf2558c1 kcachegrind-18.08.3.tar.xz" diff --git a/user/lxqt-desktop/APKBUILD b/user/lxqt-desktop/APKBUILD index 7b21a9c87..177ab98e3 100644 --- a/user/lxqt-desktop/APKBUILD +++ b/user/lxqt-desktop/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=lxqt-desktop pkgver=0.13.0 -pkgrel=0 +pkgrel=1 arch="noarch" pkgdesc="Complete LXQt desktop" url="https://lxqt.org" diff --git a/user/lxqt-desktop/startlxqt b/user/lxqt-desktop/startlxqt index 09b73f337..a11a37ae9 100755 --- a/user/lxqt-desktop/startlxqt +++ b/user/lxqt-desktop/startlxqt @@ -24,7 +24,7 @@ fi export XDG_DATA_DIRS if [ -z "$XDG_CONFIG_DIRS" ]; then - export XDG_CONFIG_DIRS="/etc/xdg" + export XDG_CONFIG_DIRS="/etc/xdg:/usr/share" else if ! contains "$XDG_CONFIG_DIRS" '/etc/xdg'; then XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS:/etc/xdg" diff --git a/user/nextcloud/APKBUILD b/user/nextcloud/APKBUILD new file mode 100644 index 000000000..6f86863ac --- /dev/null +++ b/user/nextcloud/APKBUILD @@ -0,0 +1,257 @@ +# Contributor: Jakub Jirutka <jakub@jirutka.cz> +# Contributor: Leonardo Arena <rnalrd@alpinelinux.org> +# Maintainer: Max Rees <maxcrees@me.com> +pkgname=nextcloud +pkgver=14.0.3 +pkgrel=0 +pkgdesc="Self-hosted file sync and groupware server" +url="https://nextcloud.com" +arch="noarch" +options="!check" # No test suite. +license="AGPL-3.0+ AND AGPL-3.0-only AND MIT AND Apache-2.0 AND (MIT OR GPL-2.0-only) AND BSD-3-Clause AND (Apache-2.0 OR GPL-2.0-only) AND GPL-3.0+ AND BSD-2-Clause AND PHP-3.0 AND (Apache-2.0 OR MPL-2.0)" +depends=" + ca-certificates + php7 + php7-ctype + php7-curl + php7-dom + php7-fileinfo + php7-gd + php7-iconv + php7-intl + php7-json + php7-mbstring + php7-openssl + php7-pcntl + php7-pdo + php7-posix + php7-session + php7-simplexml + php7-xml + php7-xmlreader + php7-xmlwriter + php7-zip + $pkgname-sqlite +" +makedepends="libxml2-utils" +provides=" + $pkgname-accessibility=$pkgver-r$pkgrel + $pkgname-dav=$pkgver-r$pkgrel + $pkgname-federatedfilesharing=$pkgver-r$pkgrel + $pkgname-files=$pkgver-r$pkgrel + $pkgname-provisioning_api=$pkgver-r$pkgrel + $pkgname-support=$pkgver-r$pkgrel +" +install="$pkgname.pre-install $pkgname.post-upgrade + $pkgname-initscript.post-install" +pkgusers="nextcloud" +pkggroups="www-data" +subpackages="$pkgname-doc $pkgname-initscript $pkgname-mysql $pkgname-pgsql + $pkgname-sqlite $pkgname-default-apps:_default_apps" +source="https://download.nextcloud.com/server/releases/$pkgname-$pkgver.zip + nextcloud14-dont-chmod.patch + dont-update-htaccess.patch + disable-integrity-check-as-default.patch + iconv-ascii-translit-not-supported.patch + use-external-docs-if-local-not-avail.patch + + $pkgname-config.php + $pkgname.logrotate + $pkgname.confd + $pkgname.cron + fpm-pool.conf + occ +" +builddir="$srcdir/$pkgname" + +# List of bundled apps to separate into subpackages. Keep it in sync! +# Note: Don't add "files", "dav", and "provisioning_api" here, these should +# be always installed. +_apps="activity + admin_audit + comments + encryption + federation + files_external + files_pdfviewer + files_sharing + files_texteditor + files_trashbin + files_versions + files_videoplayer + firstrunwizard + gallery + logreader + lookup_server_connector + nextcloud_announcements + notifications + oauth2 + password_policy + serverinfo + sharebymail + survey_client + systemtags + theming + twofactor_backupcodes + user_external + user_ldap + workflowengine +" +for _i in $_apps; do + subpackages="$subpackages $pkgname-$_i:_package_app" +done + +# Directory for apps shipped with Nextcloud. +_appsdir="usr/share/webapps/$pkgname/apps" + +build() { + cd "$builddir" +} + +package() { + local basedir="var/lib/$pkgname" + local datadir="$basedir/data" + local wwwdir="usr/share/webapps/$pkgname" + local confdir="etc/$pkgname" + + mkdir -p "$pkgdir/${wwwdir%/*}" + cp -a "$builddir" "$pkgdir/$wwwdir" + + chmod +x "$pkgdir/$wwwdir/occ" + chmod 664 "$pkgdir/$wwwdir/.htaccess" "$pkgdir/$wwwdir/.user.ini" + + # Let's not ship upstream's 'updatenotification' app and updater, which + # has zero chance of working and a big chance of blowing things up. + rm -r "$pkgdir/$wwwdir/apps/updatenotification" \ + "$pkgdir/$wwwdir/lib/private/Updater" + + # Replace bundled CA bundle with ours. + ln -sf /etc/ssl/certs/ca-certificates.crt \ + "$pkgdir/$wwwdir/resources/config/ca-bundle.crt" + + install -dm 770 -o nextcloud -g www-data \ + "$pkgdir/$confdir" "$pkgdir/$datadir" "$pkgdir/$basedir/appstore" + install -dm 775 -o nextcloud -g www-data "$pkgdir/var/log/$pkgname" + + # Create symlink from web root to site-apps, so web server can find + # assets w/o explicit configuration for this layout. + ln -s "/$basedir/appstore" "$pkgdir/$wwwdir/appstore" + + mv $pkgdir/$wwwdir/config/* "$pkgdir/$confdir/" + rm -r "$pkgdir/$wwwdir/config" + ln -s "/$confdir" "$pkgdir/$wwwdir/config" + + mkdir -p "$pkgdir/usr/share/doc/$pkgname" + mv "$pkgdir/$wwwdir/core/doc" "$pkgdir/usr/share/doc/$pkgname/core" + + install -m 660 -o nextcloud -g www-data \ + "$srcdir/$pkgname-config.php" "$pkgdir/$confdir/config.php" + + install -Dm 644 "$srcdir/$pkgname.logrotate" "$pkgdir/etc/logrotate.d/$pkgname" + install -Dm 755 "$srcdir/occ" "$pkgdir/usr/bin/occ" + + install -dm 700 -o nextcloud "$pkgdir/var/log/nextcloud" + + # Clean some unnecessary files. + find "$pkgdir" -name '.gitignore' -delete \ + -o -name '.bower.json' -delete \ + -o -name 'README*' -delete \ + -o -name 'CHANGELOG*' -delete \ + -o -name 'CONTRIBUTING*' -delete + find . -name '.github' -type d -prune -exec rm -r {} \; +} + +doc() { + default_doc + + local target="$subpkgdir/usr/share/webapps/$pkgname/core/doc" + mkdir -p "${target%/*}" + ln -s "/usr/share/doc/$pkgname/core" "$target" +} + +initscript() { + pkgdesc="Init script that runs Nextcloud with php-fpm" + depends="$pkgname php7-fpm" + + install -Dm 644 "$srcdir/fpm-pool.conf" "$subpkgdir/etc/php/php-fpm.d/$pkgname.conf" + install -Dm 644 "$srcdir/$pkgname.confd" "$subpkgdir/etc/conf.d/$pkgname" + install -Dm 755 "$srcdir/$pkgname.cron" "$subpkgdir/etc/periodic/15min/$pkgname" + + mkdir -p "$subpkgdir/etc/init.d" + ln -s php-fpm "$subpkgdir/etc/init.d/$pkgname" + + install -dm 700 -o nextcloud "$subpkgdir/var/tmp/$pkgname" +} + +pgsql() { + pkgdesc="Nextcloud PostgreSQL support" + depends="$pkgname php7-pgsql php7-pdo_pgsql" + mkdir -p "$subpkgdir" +} + +sqlite() { + pkgdesc="Nextcloud SQLite support" + depends="$pkgname php7-sqlite3 php7-pdo_sqlite" + mkdir -p "$subpkgdir" +} + +mysql() { + pkgdesc="Nextcloud MySQL support" + depends="$pkgname php7-pdo_mysql" + mkdir -p "$subpkgdir" +} + +_default_apps() { + pkgdesc="Nextcloud default apps" + depends="$pkgname" + + local path; for path in $pkgdir/$_appsdir/*; do + if grep -q '<default_enable\s*/>' "$path/appinfo/info.xml"; then + depends="$depends $pkgname-${path##*/}" + fi + done + + mkdir -p "$subpkgdir" +} + +_package_app() { + local appname="${subpkgname#$pkgname-}" + local appinfo="$pkgdir/$_appsdir/$appname/appinfo/info.xml" + + local name="$(xmllint --xpath '//info/name/text()' "$appinfo" 2>/dev/null)" + pkgdesc="Nextcloud ${name:-$appname} app" + + case "$appname" in + encryption) php_deps="php7-openssl";; + files_external) php_deps="php7-ftp";; + # TODO: add php7-imap, php7-smbclient + user_external) php_deps="php7-ftp";; + user_ldap) php_deps="php7-ldap";; + esac + + case "$appname" in + files_sharing) app_deps="$pkgname-federatedfilesharing";; + # Announcements are delivered via the notifications pane + nextcloud_announcements) app_deps="$pkgname-notifications";; + # workflowengine provides admin panel to manage systemtags + systemtags) app_deps="$pkgname-workflowengine";; + esac + + depends="$pkgname $php_deps $app_deps" + + mkdir -p "$subpkgdir/$_appsdir" + mv "$pkgdir/$_appsdir/$appname" "$subpkgdir/$_appsdir/" +} + +sha512sums="f3b8bf22f4c17e038352a9f6c202d79220b5d9a19a2148c486cf22558d626095ab5c35f02ddf64292165e34572e199c72a44318b5c19a6dd5113f0ee0f6e937f nextcloud-14.0.3.zip +63690b8d8ffe6d4896c5b666aa9d493b501aa3e171c6557e7a003599049f0d36f266a2a257a9535dea055bca1e84208b219c6cd5e4ecd70dd064e1dd1007203a nextcloud14-dont-chmod.patch +aef3c92497d738d6968e0f0b0d415b4953500db24ae14af41ef972665cf7eff00cb6c53dc953845fdbb389c3c965a75b8b14b9247513c05cf4130fe1cfc61731 dont-update-htaccess.patch +d2100a837fef1eeae5f706650ab4c985d9e00f61efa5526ef76c7c1f5811c3906eb6c3c13c151eff9677a0c303faab64411a5a84d6792728bc520d2c618d7d5b disable-integrity-check-as-default.patch +de1b433c2fb2582b599cb25e718e454fc4b93543a5a60eee39a03bcccf35d281594611395bdebe02319bedd9a894507eef97010ebdfca381e0f1a09df283d375 iconv-ascii-translit-not-supported.patch +478f5cd7c5d30380ea619d3e8ec623217a06a09b27534266f00297545c7d276b068c5d984673eebc5676e8bac7f45112549498944ce3fa678ac8a69541d7c430 use-external-docs-if-local-not-avail.patch +4d01c89d5fd86190fb3bd6a5ca97bc623ec55d92cbf030c18c5811d711cea557485d334a6588e458eea4e0b3ad82f4defd7cb5a9d4f393ce4d5b32abf45db596 nextcloud-config.php +7388458a9e8b7afd3d3269718306410ffa59c3c23da4bef367a4d7f6d2570136fae9dd421b19c1441e7ffb15a5405e18bb5da67b1a15f9f45e8b98d3fda532ba nextcloud.logrotate +dcc57735d7d4af4a7ebbdd1186d301e51d2ae4675022aea6bf1111222dfa188a3a490ebd6e7c8a7ac30046cb7d93f81cec72a51acbc60d0c10b7fb64630c637a nextcloud.confd +921b0e5f087f24e705dce62c078dea4d2f524c40a746ed7b19f1cff3405b9ea489c10a6dbcea87be6068f575be565b77b02c9f2c3ae6a7fb85367dbe3b7300c5 nextcloud.cron +b829ed942916660065dd1030f9f35fa2f8c45a36dc791417108761c15b081777c302f305fd6490ea47d0ae41b8589c8d62e01e0f163105bd6b29fd3bed36ddcd fpm-pool.conf +959852e34f010e635470829d66713f3e22c47717ec2c6487759eed2b6aeff9fd1421fe0271d494a02781bd1c98beb2823583623ee2cf03057cd5db794627d6c2 occ" diff --git a/user/nextcloud/disable-integrity-check-as-default.patch b/user/nextcloud/disable-integrity-check-as-default.patch new file mode 100644 index 000000000..54ea7a51e --- /dev/null +++ b/user/nextcloud/disable-integrity-check-as-default.patch @@ -0,0 +1,15 @@ +We patch some files and Nextcloud's integrity check doesn't like it... +APK ensures integrity of all installed files, so this Nextcloud's integrity +check doesn't add any value. + +--- a/lib/private/IntegrityCheck/Checker.php ++++ b/lib/private/IntegrityCheck/Checker.php +@@ -111,7 +111,7 @@ + */ + $isIntegrityCheckDisabled = false; + if ($this->config !== null) { +- $isIntegrityCheckDisabled = $this->config->getSystemValue('integrity.check.disabled', false); ++ $isIntegrityCheckDisabled = $this->config->getSystemValue('integrity.check.disabled', true); + } + if ($isIntegrityCheckDisabled === true) { + return false; diff --git a/user/nextcloud/dont-update-htaccess.patch b/user/nextcloud/dont-update-htaccess.patch new file mode 100644 index 000000000..aecaebc71 --- /dev/null +++ b/user/nextcloud/dont-update-htaccess.patch @@ -0,0 +1,32 @@ +Don't mess with .htaccess files. + +Patch ported from https://src.fedoraproject.org/cgit/rpms/nextcloud.git/tree/nextcloud-9.1.0-dont_update_htacess.patch + +--- a/core/register_command.php ++++ b/core/register_command.php +@@ -135,7 +135,6 @@ + $application->add(new OC\Core\Command\Maintenance\Mimetype\UpdateDB(\OC::$server->getMimeTypeDetector(), \OC::$server->getMimeTypeLoader())); + $application->add(new OC\Core\Command\Maintenance\Mimetype\UpdateJS(\OC::$server->getMimeTypeDetector())); + $application->add(new OC\Core\Command\Maintenance\Mode(\OC::$server->getConfig())); +- $application->add(new OC\Core\Command\Maintenance\UpdateHtaccess()); + $application->add(new OC\Core\Command\Maintenance\UpdateTheme(\OC::$server->getMimeTypeDetector(), \OC::$server->getMemCacheFactory())); + + $application->add(new OC\Core\Command\Upgrade(\OC::$server->getConfig(), \OC::$server->getLogger(), \OC::$server->query(\OC\Installer::class))); + +--- a/lib/private/Updater.php ++++ b/lib/private/Updater.php +@@ -233,14 +233,6 @@ + throw new \Exception('Updates between multiple major versions and downgrades are unsupported.'); + } + +- // Update .htaccess files +- try { +- Setup::updateHtaccess(); +- Setup::protectDataDirectory(); +- } catch (\Exception $e) { +- throw new \Exception($e->getMessage()); +- } +- + // create empty file in data dir, so we can later find + // out that this is indeed an ownCloud data directory + // (in case it didn't exist before) diff --git a/user/nextcloud/fpm-pool.conf b/user/nextcloud/fpm-pool.conf new file mode 100644 index 000000000..189962928 --- /dev/null +++ b/user/nextcloud/fpm-pool.conf @@ -0,0 +1,198 @@ +; vi: ft=dosini +[global] +; Error log file +; Default Value: log/php-fpm.log +error_log = /var/log/nextcloud/php-fpm.log + +; Log level +; Possible Values: alert, error, warning, notice, debug +; Default Value: notice +log_level = warning + +; If this number of child processes exit with SIGSEGV or SIGBUS within the time +; interval set by emergency_restart_interval then FPM will restart. A value +; of '0' means 'Off'. +; Default Value: 0 +emergency_restart_threshold = 10 + +; Interval of time used by emergency_restart_interval to determine when +; a graceful restart will be initiated. This can be useful to work around +; accidental corruptions in an accelerator's shared memory. +; Available Units: s(econds), m(inutes), h(ours), or d(ays) +; Default Unit: seconds +; Default Value: 0 +emergency_restart_interval = 1m + +; Time limit for child processes to wait for a reaction on signals from master. +; Available units: s(econds), m(inutes), h(ours), or d(ays) +; Default Unit: seconds +; Default Value: 0 +process_control_timeout = 10s + + +[nextcloud] +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses on a +; specific port; +; '/path/to/unix/socket' - to listen on a unix socket (the path is *not* +; relative to chroot!) +; Note: This value is mandatory. +listen = /run/nextcloud/fastcgi.sock + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. +; Default Values: user and group are set as the running user +; mode is set to 0666 +listen.mode = 0660 + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static ... a fixed number of child processes. +; dynamic ... the number of child processes are set dynamically. +; ondemand ... no children are created at startup; children will be forked +; when new requests will connect. +; Note: This value is mandatory. +pm = ondemand + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 10 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +pm.process_idle_timeout = 120s + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +pm.status_path = + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +ping.path = /ping + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_terminate_timeout = 0 + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +; Note: the path is *not* relative to chroot. +;slowlog = /var/log/nextcloud/php-fpm.slow.log + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /tmp +env[TMPDIR] = /tmp +env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. +; +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. +; +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr/lib/php7.x) + +; Allow HTTP file uploads. +php_admin_flag[file_uploads] = true + +; Maximal size of a file that can be uploaded via web interface. +php_admin_value[memory_limit] = 512M +php_admin_value[post_max_size] = 513M +php_admin_value[upload_max_filesize] = 513M + +; Where to store temporary files. +php_admin_value[session.save_path] = /var/tmp/nextcloud +php_admin_value[sys_temp_dir] = /var/tmp/nextcloud +php_admin_value[upload_tmp_dir] = /var/tmp/nextcloud + +; Log errors to specified file. +php_admin_flag[log_errors] = on +php_admin_value[error_log] = /var/log/nextcloud/php.error.log + +; OPcache error_log file name. Empty string assumes "stderr" +php_admin_value[opcache.error_log] = /var/log/nextcloud/php.error.log + +; Output buffering is a mechanism for controlling how much output data +; (excluding headers and cookies) PHP should keep internally before pushing that +; data to the client. If your application's output exceeds this setting, PHP +; will send that data in chunks of roughly the size you specify. +; This must be disabled for ownCloud. +php_admin_flag[output_buffering] = false + +; Overload(replace) single byte functions by mbstring functions. +; This must be disabled for ownCloud. +php_admin_flag[mbstring.func_overload] = false + +; Never populate the $HTTP_RAW_POST_DATA variable. +; http://php.net/always-populate-raw-post-data +php_admin_value[always_populate_raw_post_data] = -1 + +; Disable certain functions for security reasons. +; http://php.net/disable-functions +php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,curl_multi_exec,show_source + +; Set recommended settings for OpCache. +; https://docs.nextcloud.com/server/13/admin_manual/configuration_server/server_tuning.html#enable-php-opcache +php_admin_flag[opcache.enable] = true +php_admin_flag[opcache.enable_cli] = true +php_admin_flag[opcache.save_comments] = true +php_admin_value[opcache.interned_strings_buffer] = 8 +php_admin_value[opcache.max_accelerated_files] = 10000 +php_admin_value[opcache.memory_consumption] = 128 +php_admin_value[opcache.revalidate_freq] = 1 diff --git a/user/nextcloud/iconv-ascii-translit-not-supported.patch b/user/nextcloud/iconv-ascii-translit-not-supported.patch new file mode 100644 index 000000000..bb13a9514 --- /dev/null +++ b/user/nextcloud/iconv-ascii-translit-not-supported.patch @@ -0,0 +1,13 @@ +iconv on Alpine does not support conversion to ASCII//TRANSLIT + +--- a/apps/user_ldap/lib/Access.php ++++ b/apps/user_ldap/lib/Access.php +@@ -1318,7 +1318,7 @@ + } + + // Transliteration to ASCII +- $transliterated = @iconv('UTF-8', 'ASCII//TRANSLIT', $name); ++ $transliterated = @iconv('UTF-8', 'ASCII', $name); + if($transliterated !== false) { + // depending on system config iconv can work or not + $name = $transliterated; diff --git a/user/nextcloud/nextcloud-config.php b/user/nextcloud/nextcloud-config.php new file mode 100644 index 000000000..83b1400e6 --- /dev/null +++ b/user/nextcloud/nextcloud-config.php @@ -0,0 +1,45 @@ +<?php +$CONFIG = array ( + 'datadirectory' => '/var/lib/nextcloud/data', + 'logfile' => '/var/log/nextcloud/nextcloud.log', + 'apps_paths' => array ( + // Read-only location for apps shipped with Nextcloud and installed by apk. + 0 => array ( + 'path' => '/usr/share/webapps/nextcloud/apps', + 'url' => '/apps', + 'writable' => false, + ), + // Writable location for apps installed from AppStore. + 1 => array ( + 'path' => '/var/lib/nextcloud/appstore', + 'url' => '/appstore', + 'writable' => true, + ), + ), + 'updatechecker' => false, + + // Uncomment to enable pretty URLs: + //'overwrite.cli.url' => 'http://localhost/nextcloud/', + //'htaccess.RewriteBase' => '/nextcloud/', + + // Addtionally, for nginx and lighttpd pretty URLs: + //'check_for_working_htaccess' => false, + // Additionally, for lighttpd pretty URLs: + //'htaccess.IgnoreFrontController' => true, + + // Uncomment to enable Zend APCu memcache: + //'memcache.local' => '\OC\Memcache\APCu', + + // Uncomment this and add user nextcloud to the redis group to enable Redis + // cache for file locking. This is highly recommended, see + // https://github.com/nextcloud/server/issues/9305. + //'memcache.locking' => '\OC\Memcache\Redis', + //'redis' => array( + // 'host' => '/run/redis/redis.sock', + // 'port' => 0, + // 'dbindex' => 0, + // 'timeout' => 1.5, + //), + + 'installed' => false, +); diff --git a/user/nextcloud/nextcloud-initscript.post-install b/user/nextcloud/nextcloud-initscript.post-install new file mode 100644 index 000000000..6b7fdf671 --- /dev/null +++ b/user/nextcloud/nextcloud-initscript.post-install @@ -0,0 +1,24 @@ +#!/bin/sh + +# It's not needed to be writable for www-data group when running with php-fpm. +for dir in /etc/nextcloud \ + /etc/nextcloud/config.php \ + /var/lib/nextcloud/data \ + /var/lib/nextcloud/appstore +do + chmod g-w $dir +done +chgrp root /etc/nextcloud/config.php + +# This must be writable (only) by nextcloud user. +chmod 750 /var/log/nextcloud + +cat <<"EOF" +* +* Point your web server to /run/nextcloud/fastcgi.sock and start +* Nextcloud with `service nextcloud start`. You can modify php-fpm +* settings in /etc/php7/fpm.d/nextcloud.conf. +* +EOF + +exit 0 diff --git a/user/nextcloud/nextcloud.confd b/user/nextcloud/nextcloud.confd new file mode 100644 index 000000000..b24f26d7f --- /dev/null +++ b/user/nextcloud/nextcloud.confd @@ -0,0 +1,8 @@ +# Config file for /etc/init.d/nextcloud + +name="Nextcloud" +user="nextcloud" +group="www-data" + +# Uncomment if you use Nextcloud with Redis for caching. +#rc_need="redis" diff --git a/user/nextcloud/nextcloud.cron b/user/nextcloud/nextcloud.cron new file mode 100644 index 000000000..21a5b566a --- /dev/null +++ b/user/nextcloud/nextcloud.cron @@ -0,0 +1,6 @@ +#!/bin/sh + +# Run only when nextcloud service is started. +if rc-service nextcloud -q status >/dev/null 2>&1; then + su nextcloud -s /bin/sh -c 'php -f /usr/share/webapps/nextcloud/cron.php' +fi diff --git a/user/nextcloud/nextcloud.logrotate b/user/nextcloud/nextcloud.logrotate new file mode 100644 index 000000000..19e17fdf4 --- /dev/null +++ b/user/nextcloud/nextcloud.logrotate @@ -0,0 +1,6 @@ +/var/log/nextcloud/*.log { + daily + compress + copytruncate + su nextcloud www-data +} diff --git a/user/nextcloud/nextcloud.post-upgrade b/user/nextcloud/nextcloud.post-upgrade new file mode 100644 index 000000000..e4ad291ac --- /dev/null +++ b/user/nextcloud/nextcloud.post-upgrade @@ -0,0 +1,8 @@ +#!/bin/sh + +ver_new="$1" +ver_old="$2" + +if [ "${ver_new%-r*}" != "${ver_old%-r*}" ]; then + echo '* Run "occ upgrade" to finish upgrade of your NextCloud instance!' >&2 +fi diff --git a/user/nextcloud/nextcloud.pre-install b/user/nextcloud/nextcloud.pre-install new file mode 100644 index 000000000..e9cf53919 --- /dev/null +++ b/user/nextcloud/nextcloud.pre-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S -g 82 www-data 2>/dev/null +adduser -S -D -H -h /var/lib/nextcloud -s /sbin/nologin -G www-data -g Nextcloud nextcloud 2>/dev/null + +exit 0 diff --git a/user/nextcloud/nextcloud14-dont-chmod.patch b/user/nextcloud/nextcloud14-dont-chmod.patch new file mode 100644 index 000000000..13b5e3efb --- /dev/null +++ b/user/nextcloud/nextcloud14-dont-chmod.patch @@ -0,0 +1,44 @@ +--- a/lib/private/Config.php ++++ b/lib/private/Config.php +@@ -240,9 +240,6 @@ + touch ($this->configFilePath); + $filePointer = fopen($this->configFilePath, 'r+'); + +- // Prevent others not to read the config +- chmod($this->configFilePath, 0640); +- + // File does not exist, this can happen when doing a fresh install + if(!is_resource ($filePointer)) { + // TODO fix this via DI once it is very clear that this doesn't cause side effects due to initialization order +--- a/lib/private/Log/File.php ++++ b/lib/private/Log/File.php +@@ -134,9 +134,6 @@ + } + $entry = json_encode($entry, JSON_PARTIAL_OUTPUT_ON_ERROR); + $handle = @fopen($this->logFile, 'a'); +- if ((fileperms($this->logFile) & 0777) != 0640) { +- @chmod($this->logFile, 0640); +- } + if ($handle) { + fwrite($handle, $entry."\n"); + fclose($handle); +--- a/lib/private/TempManager.php ++++ b/lib/private/TempManager.php +@@ -95,7 +95,6 @@ + if($postFix !== '') { + $fileNameWithPostfix = $this->buildFileNameWithSuffix($file, $postFix); + touch($fileNameWithPostfix); +- chmod($fileNameWithPostfix, 0600); + $this->current[] = $fileNameWithPostfix; + return $fileNameWithPostfix; + } +--- a/lib/private/legacy/util.php ++++ b/lib/private/legacy/util.php +@@ -1008,7 +1008,6 @@ + . ' cannot be listed by other users.'); + $perms = substr(decoct(@fileperms($dataDirectory)), -3); + if (substr($perms, -1) !== '0') { +- chmod($dataDirectory, 0770); + clearstatcache(); + $perms = substr(decoct(@fileperms($dataDirectory)), -3); + if ($perms[2] !== '0') { diff --git a/user/nextcloud/occ b/user/nextcloud/occ new file mode 100644 index 000000000..1e3c095ad --- /dev/null +++ b/user/nextcloud/occ @@ -0,0 +1,10 @@ +#!/bin/sh + +NEXTCLOUD_DIR='/usr/share/webapps/nextcloud' +: ${NEXTCLOUD_USER:="nextcloud"} + +if [ "$(id -un)" != "$NEXTCLOUD_USER" ]; then + exec su -s /bin/sh "$NEXTCLOUD_USER" -c '$0 "$@"' -- $NEXTCLOUD_DIR/occ "$@" +else + exec $NEXTCLOUD_DIR/occ "$@" +fi diff --git a/user/nextcloud/use-external-docs-if-local-not-avail.patch b/user/nextcloud/use-external-docs-if-local-not-avail.patch new file mode 100644 index 000000000..19145b5ce --- /dev/null +++ b/user/nextcloud/use-external-docs-if-local-not-avail.patch @@ -0,0 +1,65 @@ +From: Jakub Jirutka <jakub@jirutka.cz> +Date: Tue, 27 Jun 2017 02:07:00 +0200 +Subject: [PATCH] Show link to external docs if local is not installed + +--- a/settings/help.php ++++ b/settings/help.php +@@ -34,22 +34,36 @@ + OC_Util::addStyle( "settings", "settings" ); + \OC::$server->getNavigationManager()->setActiveEntry('help'); + ++$localDocs = true; + + if(isset($_GET['mode']) and $_GET['mode'] === 'admin') { +- $url=\OCP\Util::linkToAbsolute( 'core', 'doc/admin/index.html' ); ++ if (file_exists(\OC::$SERVERROOT . '/core/doc/admin/index.html')) { ++ $url=\OCP\Util::linkToAbsolute( 'core', 'doc/admin/index.html' ); ++ } else { ++ $url=\OC::$server->query(\OCP\Defaults::class)->buildDocLinkToKey('admin-manual'); ++ $localDocs=false; ++ } + $style1=''; + $style2=' active'; + }else{ + $url=\OCP\Util::linkToAbsolute( 'core', 'doc/user/index.html' ); ++ if (file_exists( \OC::$SERVERROOT . '/core/doc/user/index.html' )) { ++ $url=\OCP\Util::linkToAbsolute( 'core', 'doc/user/index.html' ); ++ } else { ++ $url=\OC::$server->query(\OCP\Defaults::class)->buildDocLinkToKey('user-manual'); ++ $localDocs=false; ++ } + $style1=' active'; + $style2=''; + } + ++ + $url1=\OC::$server->getURLGenerator()->linkToRoute('settings_help').'?mode=user'; + $url2=\OC::$server->getURLGenerator()->linkToRoute('settings_help').'?mode=admin'; + + $tmpl = new OC_Template( "settings", "help", "user" ); + $tmpl->assign( "admin", OC_User::isAdminUser(OC_User::getUser())); ++$tmpl->assign( "localDocs", $localDocs ); + $tmpl->assign( "url", $url ); + $tmpl->assign( "url1", $url1 ); + $tmpl->assign( "url2", $url2 ); + +--- a/settings/templates/help.php ++++ b/settings/templates/help.php +@@ -42,6 +42,17 @@ + </div> + + <div id="app-content" class="help-includes"> ++<?php if ($_['localDocs']) { ?> + <iframe src="<?php print_unescaped($_['url']); ?>" class="help-iframe"> + </iframe> ++<?php } else { ?> ++ <div class="section"> ++ <h2>Local documentation is not installed</h2> ++ <p>Please use ++ <a href="<?php print_unescaped($_['url']); ?>" target="_blank" rel="noreferrer"> ++ <?php p($l->t('online documentation')); ?> ↗ ++ </a> ++ </p> ++ </div> ++<?php } ?> + </div> diff --git a/user/perl-perl-tidy/APKBUILD b/user/perl-perl-tidy/APKBUILD index 84361f161..0c905e7ce 100644 --- a/user/perl-perl-tidy/APKBUILD +++ b/user/perl-perl-tidy/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org> pkgname=perl-perl-tidy -pkgver=20180220 +pkgver=20181120 pkgrel=0 pkgdesc="Indent and reformat Perl scripts" url="https://metacpan.org/release/Perl-Tidy" @@ -30,4 +30,4 @@ package() { find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete } -sha512sums="93bdf2c18efdd9d62d5bb666ded9d9502a722370049a2a51f9d41107d7fa67acd91dfdd184a11eaab287f11a901ad686585e959f09407b0493719d19ce5d842e Perl-Tidy-20180220.tar.gz" +sha512sums="5b75178f9fd874fa173a562d765091c66a8fc56b1efc16ace9cf0f6215688d7a334b7d68255aad20aa9da87bf79f9cc72604a52c56398952157512f01e53b5ca Perl-Tidy-20181120.tar.gz" diff --git a/user/py3-markdown/APKBUILD b/user/py3-markdown/APKBUILD new file mode 100644 index 000000000..ef362e1f9 --- /dev/null +++ b/user/py3-markdown/APKBUILD @@ -0,0 +1,28 @@ +# Contributor: Fabian Affolter <fabian@affolter-engineering.ch> +# Maintainer: zlg <zlg+adelie@zlg.space> +pkgname=py3-markdown +_pkgname=Markdown +pkgver=3.0.1 +pkgrel=0 +pkgdesc="A Python implementation of Markdown" +url="https://python-markdown.github.io/" +arch="noarch" +options="!check" # needs flake8 +license="BSD-3-Clause" +depends="python3" +makedepends="python3-dev" +subpackages="" +source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz" +builddir="$srcdir/$_pkgname-$pkgver" + +build() { + cd "$builddir" + python3 setup.py build +} + +package() { + cd "$builddir" + python3 setup.py install --root="$pkgdir" +} + +sha512sums="c648c1b8ecb3c907ff2bd636ec6c08b4b629967fb916913f77db641f6d61b83d16929af2f15f5695c8cdb9614031606110e02a7e0bbb3aab0be38a8e285f12f1 Markdown-3.0.1.tar.gz" diff --git a/user/py3-pygments/APKBUILD b/user/py3-pygments/APKBUILD new file mode 100644 index 000000000..59055ed48 --- /dev/null +++ b/user/py3-pygments/APKBUILD @@ -0,0 +1,41 @@ +# Contributor: Peter Bui <pnutzh4x0r@gmail.com> +# Contributor: Matt Smith <mcs@darkregion.net> +# Maintainer: zlg <zlg+packages@zlg.space> +pkgname=py3-pygments +_pkgname=Pygments +pkgver=2.2.0 +pkgrel=0 +pkgdesc="A syntax highlighting package written in Python." +url="http://pygments.org/" +arch="noarch" +options="!check" # needs nose, flake8 +license="BSD-2-Clause" +depends="python3" +makedepends="python3-dev" +subpackages="" +source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz" +builddir="$srcdir/$_pkgname-$pkgver" + +build() { + cd "$builddir" + python3 setup.py build +} + +# Reactivate once nose and flake8 are packaged +check() { + cd "$builddir" + sed -i -e 's:python:python3:' Makefile + make test +} + +package() { + cd "$builddir" + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +doc() { + cd "$builddir" + install -m 644 -D doc/pygmentize.1 "$pkgdir"/usr/share/man/man1/pygmentize.1 +} + +sha512sums="cc0a4f73e19fa6cbf46314de2e809460c807c631e39ba05cbe5edb5f40db1a687aafcd9715585a0ed45f791710eb6038305e273f282f8682df76f30e63710b29 Pygments-2.2.0.tar.gz" diff --git a/user/py3-pygobject/APKBUILD b/user/py3-pygobject/APKBUILD index 2859cdb51..add93b15b 100644 --- a/user/py3-pygobject/APKBUILD +++ b/user/py3-pygobject/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=py3-pygobject -pkgver=3.30.2 +pkgver=3.30.3 pkgrel=0 pkgdesc="Python bindings for GObject libraries" url="https://pygobject.readthedocs.io/" @@ -28,4 +28,4 @@ package() { python3 setup.py install --prefix=/usr --root="$pkgdir" } -sha512sums="a643b800fbaf659957879ca8b4fa4cc3556a8e6bb4d061ffe205204d7ea197baf77d8836a733562552fa9ee56c7831359313c2403062cc46b5d72d5d7fd3030e pygobject-3.30.2.tar.bz2" +sha512sums="f3e18d375ca915c894e2c17c5b2c98f9027449bdf00c3591589f3f236bec7fe235a879ddf2b249da19cf74f63f994ced002b169450cb88d22fef6ca6be8ae66b pygobject-3.30.3.tar.bz2" diff --git a/user/tellico/APKBUILD b/user/tellico/APKBUILD new file mode 100644 index 000000000..a38fa7618 --- /dev/null +++ b/user/tellico/APKBUILD @@ -0,0 +1,55 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=tellico +pkgver=3.1.3 +pkgrel=0 +pkgdesc="Collection manager" +url="http://tellico-project.org/" +arch="all" +license="GPL-2.0-only OR GPL-3.0-only" +depends="" +makedepends="cmake extra-cmake-modules qt5-qtbase-dev libxml2-dev libxslt-dev + karchive-dev kcodecs-dev kconfig-dev kconfigwidgets-dev kcoreaddons-dev + kcrash-dev kdoctools-dev kguiaddons-dev khtml-dev ki18n-dev + kiconthemes-dev kio-dev kitemmodels-dev kjobwidgets-dev kwallet-dev + kwidgetsaddons-dev kwindowsystem-dev kxmlgui-dev solid-dev + + kfilemetadata-dev knewstuff-dev libcdio-dev libksane-dev poppler-dev + poppler-qt5-dev taglib-dev" +subpackages="$pkgname-doc $pkgname-lang" +source="http://tellico-project.org/files/tellico-$pkgver.tar.xz + btparse-strcasecmp.patch + " + +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 -std=gnu99" \ + ${CMAKE_CROSSOPTS} + make +} + +check() { + cd "$builddir" + # imagejob: needs running X11 + # htmlexporter: needs plasma desktop + # filelisting: needs dbus + # tellicoread: needs network + CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E '(filelisting|imagejob|htmlexporter|tellicoread)test' +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install +} + +sha512sums="9024f423f0685e834ed46e7038c5b95fab5b684aaac00d6298e23493fb4290daeda994faf36a0f04973093a477be5506591e6b0e7f57ef5591fb10953ad8ec5e tellico-3.1.3.tar.xz +4627e717d67340de6d88f7a21604a66ba236c651a0ae38d9d3569b76ad58c79f046cfd5686dd688de86d6acafc17ba3959902babdc7f00ab8e9d65717c4fab4a btparse-strcasecmp.patch" diff --git a/user/tellico/btparse-strcasecmp.patch b/user/tellico/btparse-strcasecmp.patch new file mode 100644 index 000000000..2afd4dec3 --- /dev/null +++ b/user/tellico/btparse-strcasecmp.patch @@ -0,0 +1,20 @@ +--- tellico-3.1.3/src/3rdparty/btparse/lex_auxiliary.c.old 2018-09-03 00:35:39.883417043 +0000 ++++ tellico-3.1.3/src/3rdparty/btparse/lex_auxiliary.c 2018-11-25 06:07:20.260000000 +0000 +@@ -32,6 +32,7 @@ + #include "bt_debug.h" + #include <stdlib.h> + #include <string.h> ++#include <strings.h> + #include <ctype.h> + #include <stdarg.h> + #include <assert.h> +--- tellico-3.1.3/src/3rdparty/btparse/sym.c.old 2018-09-03 00:35:39.887417131 +0000 ++++ tellico-3.1.3/src/3rdparty/btparse/sym.c 2018-11-25 06:07:11.570000000 +0000 +@@ -110,6 +110,7 @@ + /*#include "bt_config.h"*/ + #include <stdio.h> + #include <string.h> ++#include <strings.h> + #include <stdlib.h> + #ifdef MEMCHK + #include "trax.h" diff --git a/user/thunar-volman/APKBUILD b/user/thunar-volman/APKBUILD index 7475e17a0..38c088160 100644 --- a/user/thunar-volman/APKBUILD +++ b/user/thunar-volman/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=thunar-volman -pkgver=0.9.0 +pkgver=0.9.1 pkgrel=0 pkgdesc="Volume manager for Thunar" url="https://xfce.org" @@ -11,7 +11,6 @@ makedepends="intltool libxfce4ui-dev thunar-dev exo-dev libgudev-dev libnotify-d subpackages="$pkgname-lang" langdir="/usr/lib/locale" source="http://archive.xfce.org/src/xfce/thunar-volman/0.9/thunar-volman-$pkgver.tar.bz2" -sha512sums="d753e2aeded921e5652e6ace164845997dc3cdfbfd92561e2af822bffdf910a06850658a9f662198e4f7c485a3dc1226f97b573d28fb66e5ba490aa08f56a8f5 thunar-volman-0.9.0.tar.bz2" build() { cd "$builddir" @@ -35,3 +34,4 @@ package() { make DESTDIR="$pkgdir" install } +sha512sums="73d9884dc667e4f8554d2b06f7116bbe25fa4e113300f0cd32bc2229c22001cc709333d5ac5618f7d5c8a35e58fb7a61e48ecafa634c7e239e9af329dc4149bc thunar-volman-0.9.1.tar.bz2" diff --git a/user/tmux-bash-completion/APKBUILD b/user/tmux-bash-completion/APKBUILD new file mode 100644 index 000000000..e34f15ea5 --- /dev/null +++ b/user/tmux-bash-completion/APKBUILD @@ -0,0 +1,23 @@ +# Contributor: zlg <zlg+adelie@zlg.space> +# Maintainer: zlg <zlg+adelie@zlg.space> +pkgname=tmux-bash-completion +pkgver=1.0.0_git20170805 +_commit=847eda60c4664bfca833a086a3e2167957c26be0 +pkgrel=0 +pkgdesc="bash-completion files for tmux" +url="https://github.com/imomaliev/tmux-bash-completion" +arch="noarch" +options="!check" # no tests +license="GPL-2.0-only" +depends="bash-completion tmux" +makedepends="" +subpackages="" +source="$pkgname-$pkgver.tar.gz::https://github.com/imomaliev/tmux-bash-completion/archive/$_commit.tar.gz" +builddir="$srcdir/$pkgname-$_commit" + +package() { + cd "$builddir" + install -Dm644 ./completions/tmux "$pkgdir"/usr/share/bash-completion/completions/tmux +} + +sha512sums="6c4c761aa152d1352a575c91e2c375d3f19ad01263b603b9e0cde4bdd95ce478c93bb55bfcd9fa5332cde12399e1e1e1c062e6be2ed7403b96e808275401effa tmux-bash-completion-1.0.0_git20170805.tar.gz" diff --git a/user/weechat/APKBUILD b/user/weechat/APKBUILD index 3cca9f41a..6f8bb3701 100644 --- a/user/weechat/APKBUILD +++ b/user/weechat/APKBUILD @@ -1,8 +1,9 @@ # Contributor: Leonardo Arena <rnalrd@alpinelinux.org> +# Contributor: zlg <zlg+adelie@zlg.space> # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=weechat pkgver=2.3 -pkgrel=0 +pkgrel=1 pkgdesc="Fast, light, extensible ncurses-based chat client" url="https://www.weechat.org" arch="all" @@ -16,6 +17,7 @@ subpackages="$pkgname-dev $pkgname-aspell:_plugin $pkgname-lua:_plugin $pkgname-perl:_plugin $pkgname-python:_plugin $pkgname-lang" source="https://www.weechat.org/files/src/$pkgname-$pkgver.tar.gz fix-python-linking.patch + fix-unsigned-char.patch libintl-fix.patch " @@ -63,4 +65,5 @@ check() { sha512sums="3315eb672d099dec041a6ece268e3efac9f766fe8273b13810c9ed6bc9129ed0db9730a027db6cdf157338472caf99d60aaf3de9b096a3c395fdf889b106aaea weechat-2.3.tar.gz 95f6d1405141421fae70288ec560a6d61f0bde1ce0bfa6e522e24a9673e699099594e83511b39e413aff28010ea1f7f1672af051ac370b152c732d6ca36a9056 fix-python-linking.patch +e9dddc914f08660c49fd3331ebdca73a3df7e165b284d8b19e0487974ec2d8d75d03cd6d07da6ba9783015ddb19d6c118b697a830dcbea13f078ca7826223370 fix-unsigned-char.patch 59841bc343b1d10a542631eb01380789f96cac896380dbb3b159444c4806bd6367952e457b9ffd42fb87c1e19fc77eba78c38fd2178ef202ab9f7f1a543417ca libintl-fix.patch" diff --git a/user/weechat/fix-unsigned-char.patch b/user/weechat/fix-unsigned-char.patch new file mode 100644 index 000000000..d4acd1986 --- /dev/null +++ b/user/weechat/fix-unsigned-char.patch @@ -0,0 +1,37 @@ +This patch is backported from the upcoming 2.4 release. It corrects +highlighting behavior for plugins such as urlserver.py. + +See-Also: https://github.com/weechat/weechat/issues/1277 +Patch-Author: Sébastien Helleu <flashcode@flashtux.org> + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0ae69ea0f..1d7738af5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -27,8 +27,8 @@ project(weechat C) + set(CMAKE_VERBOSE_MAKEFILE OFF) + set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) + set(CMAKE_SKIP_RPATH ON) +-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror-implicit-function-declaration") +-set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror-implicit-function-declaration") ++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsigned-char -Wall -Wextra -Werror-implicit-function-declaration") ++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -Wall -Wextra -Werror-implicit-function-declaration") + + # version + execute_process(COMMAND ${CMAKE_SOURCE_DIR}/version.sh devel-major OUTPUT_VARIABLE VERSION_MAJOR) +diff --git a/configure.ac b/configure.ac +index d267ca10f..a0bf00078 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1330,7 +1330,7 @@ AC_DEFINE_UNQUOTED(WEECHAT_SHAREDIR, "$WEECHAT_SHAREDIR") + weechat_libdir=${libdir}/weechat + AC_SUBST(weechat_libdir) + +-COMMON_CFLAGS="-Wall -Wextra -Werror-implicit-function-declaration" ++COMMON_CFLAGS="-fsigned-char -Wall -Wextra -Werror-implicit-function-declaration" + AC_MSG_CHECKING([whether we have GNU assembler]) + GAS=`as --version < /dev/null 2>/dev/null | grep GNU` + if test "$GAS"; then +-- +2.19.1 + diff --git a/user/xf86-video-fbdev/APKBUILD b/user/xf86-video-fbdev/APKBUILD new file mode 100644 index 000000000..628551019 --- /dev/null +++ b/user/xf86-video-fbdev/APKBUILD @@ -0,0 +1,34 @@ +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=xf86-video-fbdev +pkgver=0.5.0 +pkgrel=0 +pkgdesc="X.Org driver for video over framebuffers" +url="https://www.X.Org/" +arch="all" +license="MIT" +subpackages="$pkgname-doc" +depends="" +makedepends="libxi-dev util-macros xorgproto-dev xorg-server-dev" +source="https://www.X.org/releases/individual/driver/$pkgname-$pkgver.tar.bz2" + +build() { + cd "$builddir" + export LDFLAGS="$LDFLAGS -Wl,-z,lazy" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr + make +} + +check() { + cd "$builddir" + make check +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING +} +sha512sums="c1217b943bbe3301b3c2a8649ed1004c3c67b02607bd56bbc14f6dfa05e7f0184332c81a6a19595514745501ed88526aee932e555779b7c3a8233646b0979448 xf86-video-fbdev-0.5.0.tar.bz2" diff --git a/user/xfce4-dict/APKBUILD b/user/xfce4-dict/APKBUILD index cee0a0c01..c85e672d3 100644 --- a/user/xfce4-dict/APKBUILD +++ b/user/xfce4-dict/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=xfce4-dict -pkgver=0.8.1 +pkgver=0.8.2 pkgrel=0 pkgdesc="Dictionary application for the XFCE desktop environment" url="https://xfce.org" @@ -10,7 +10,6 @@ license="GPL-2.0+" makedepends="intltool glib-dev gtk+3.0-dev libxfce4ui-dev xfce4-panel-dev" subpackages="$pkgname-doc" source="http://archive.xfce.org/src/apps/xfce4-dict/0.8/xfce4-dict-$pkgver.tar.bz2" -sha512sums="6cadc479afe5bede536915f8094f4c3ae80139cd11f4b594ee17d28373e5ee3f60a918193b0eefb2e247dfd8780d632e8b508538fd101b4064e36260fc30c67e xfce4-dict-0.8.1.tar.bz2" build() { cd "$builddir" @@ -34,3 +33,4 @@ package() { make DESTDIR="$pkgdir" install } +sha512sums="b22edae6adc9e965d8d59156d7b241e6454be9af1c7cd2b6264987dfe9411293987065b179a362651ccfc1f0423a41672803467e6df5307b998c5c359e487b5b xfce4-dict-0.8.2.tar.bz2" diff --git a/user/xfce4-systemload-plugin/APKBUILD b/user/xfce4-systemload-plugin/APKBUILD index 7cfcf6656..7545e3a0a 100644 --- a/user/xfce4-systemload-plugin/APKBUILD +++ b/user/xfce4-systemload-plugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=xfce4-systemload-plugin -pkgver=1.2.1 +pkgver=1.2.2 pkgrel=0 pkgdesc="System load monitor plugin for the XFCE panel" url="https://xfce.org" @@ -34,4 +34,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="01e57d799731a5860f043339ff0e90e0967ac1bda91d9f500d657ea14f3a52f31d9dd68ef5293f7941ef93e26e48af72de22aef976d0ccd497c62096e1aaf0b9 xfce4-systemload-plugin-1.2.1.tar.bz2" +sha512sums="92930431383c128e449545b15a6d50aa6e236685619cc1abf0b60979f8a25010eb82ac4428f3e0e7eaac1468c3b101d6a0ef5d39e556346e74f4dddfffaa446b xfce4-systemload-plugin-1.2.2.tar.bz2" diff --git a/user/youtube-dl/APKBUILD b/user/youtube-dl/APKBUILD new file mode 100644 index 000000000..af5d02712 --- /dev/null +++ b/user/youtube-dl/APKBUILD @@ -0,0 +1,68 @@ +# Contributor: Peter Bui <pnutzh4x0r@gmail.com> +# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net> +# Contributor: Timo Teräs <timo.teras@iki.fi> +# Maintainer: Max Rees <maxcrees@me.com> +pkgname=youtube-dl +pkgver=2018.11.23 +pkgrel=0 +pkgdesc="Command-line program to download videos from YouTube and many other sites" +url="https://youtube-dl.org" +arch="noarch" +options="!check" # Takes way too long, and uses network +license="Unlicense AND Public-Domain" +depends="ffmpeg python3" +subpackages="$pkgname-doc + $pkgname-zsh-completion:zshcomp + $pkgname-bash-completion:bashcomp + $pkgname-fish-completion:fishcomp" +source="https://github.com/rg3/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.gz" +builddir="$srcdir/$pkgname" + +prepare() { + default_prepare + sed -i \ + -e 's|etc/bash_completion.d|share/bash-completion/completions|' \ + -e 's|etc/fish/completions|share/fish/completions|' \ + "$builddir/setup.py" +} + +check() { + cd "$builddir" + python3 -m unittest discover +} + +package() { + cd "$builddir" + python3 setup.py install --root="$pkgdir/" --optimize=1 +} + +zshcomp() { + pkgdesc="Zsh completions for $pkgname" + depends="" + install_if="$pkgname=$pkgver-r$pkgrel zsh" + + install -Dm644 "$builddir/$pkgname.zsh" \ + "$subpkgdir/usr/share/zsh/site-functions/_$pkgname" +} + +bashcomp() { + pkgdesc="Bash completions for $pkgname" + depends="" + install_if="$pkgname=$pkgver-r$pkgrel bash-completion" + + mkdir -p "$subpkgdir/usr/share/bash-completion/completions/" + mv "$pkgdir/usr/share/bash-completion/completions/$pkgname.bash-completion" \ + "$subpkgdir/usr/share/bash-completion/completions/$pkgname" +} + +fishcomp() { + pkgdesc="Fish completions for $pkgname" + depends="" + install_if="$pkgname=$pkgver-r$pkgrel fish" + + mkdir -p "$subpkgdir/usr/share/fish/completions/" + mv "$pkgdir/usr/share/fish/completions/$pkgname.fish" \ + "$subpkgdir/usr/share/fish/completions/" +} + +sha512sums="d4d2813657972c37d3493743a44055d7a776aeb5c5a97902e07caa317a3b2db30332507c37b56b3d8554e0bdc2a0ec6a9862977b449b363343a4de2df12bf059 youtube-dl-2018.11.23.tar.gz" |