Initial commit

This commit is contained in:
Alex D. 2020-10-16 16:40:36 +02:00
commit f04e6a532d
Signed by: caskd
GPG Key ID: F92BA85F61F4C173
50 changed files with 2183 additions and 0 deletions

View File

@ -0,0 +1,134 @@
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=qt5-qtwebengine
pkgver=5.15.1
pkgrel=1
pkgdesc="Qt5 - QtWebEngine components"
url="https://www.qt.io/developers/"
# ppc64le and s390x are not supported
# mips is also not supported
# armhf blocked by qt5-qtdeclarative
arch="aarch64 armv7 x86 x86_64"
license="LGPL-2.1-only AND LGPL-3.0-only AND GPL-3.0-only AND Qt-GPL-exception-1.0"
depends_dev="
ffmpeg-dev
glib-dev
gst-plugins-base-dev
gstreamer-dev
icu-dev
libxcomposite-dev
libxext-dev
libxkbcommon-dev
libxrender-dev
libxslt-dev
mesa-dev
ninja
"
makedepends="$depends_dev
alsa-lib-dev
pulseaudio-dev
bison
bsd-compat-headers
flex
fontconfig-dev
gperf
gzip
harfbuzz-dev
jsoncpp-dev
libevent-dev
libjpeg-turbo-dev
libpng-dev
libsrtp-dev
libvpx-dev
libwebp-dev
libxcursor-dev
libxi-dev
libxml2
libxrandr-dev
libxslt
libxtst-dev
linux-headers
nss-dev
opus-dev
pcre-dev
protobuf-dev
qt5-qtbase-dev
qt5-qtdeclarative-dev
qt5-qtwebchannel-dev
re2-dev
ruby
snappy-dev
sqlite-dev
yasm-dev
zlib-dev
python2
"
subpackages="$pkgname-dev $pkgname-dbg"
case $pkgver in
*_beta*|*_rc*) _rel=development_releases;;
*) _rel=official_releases;;
esac
source="https://download.qt.io/$_rel/qt/${pkgver%.*}/$pkgver/submodules/qtwebengine-everywhere-src-$pkgver.tar.xz
qt-musl-dispatch_to_musl.patch
qt-musl-execinfo.patch
qt-musl-mallinfo.patch
qt-musl-off_t.patch
qt-musl-pvalloc.patch
qt-musl-resolve.patch
qt-musl-siginfo_t.patch
qt-musl-fpstate.patch
qt-musl-pread-pwrite.patch
qt-musl-sysreg-for__WORDSIZE.patch
qt-musl-stackstart.patch
qt-musl-thread-stacksize.patch
qt-musl-elf-arm.patch
qt-musl-crashpad.patch
musl-sandbox.patch
yasm-nls.patch
nasm.patch
musl-hacks.patch
sandbox-sched_getparam.patch
remove-glibc-check.patch
"
builddir="$srcdir/qtwebengine-everywhere-src-$pkgver"
build() {
qmake-qt5 QMAKE_EXTRA_ARGS+="-system-ffmpeg -system-opus -system-webp"
make -j$JOBS
}
package() {
make install INSTALL_ROOT="$pkgdir"
sed -i -e 's:-L/home[^ ]\+::g' "$pkgdir"/usr/lib/pkgconfig/*.pc
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$pkgdir/usr/lib" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/$pkgname
}
sha512sums="651520fcf89681b06c57f1992223f06ecbe3750a88ffae7a94a339503957e09d327ee1ae7e4bce88bfb09131b3b9c9abfc44f7bccb9c50d286181eaf306991a4 qtwebengine-everywhere-src-5.15.1.tar.xz
5ecbf435062b8565322dd1cbd0cbdb44f3daef264ab677fe22fe8cb400d4bb22281cc607ea419c7362c483312482632ed41bd67130413188425ef6e0ae184f07 qt-musl-dispatch_to_musl.patch
7084a07386fb9f66fbfeadac53869c0f386cea98dbb29787f030635bc8cd116b7459acafbe06540f1aef79d8a69817520ad18bcb9ac24954dd70773ef083537e qt-musl-execinfo.patch
7f580b37907aeba8327c4eb1e46fd261ad78d93f1dd32991dfb373a7f75fb4dceb3d9302e3781c62f447e72c4edab0f7a7f4223d12dd98ec5e87e49f3f38a38a qt-musl-mallinfo.patch
7eba28eb015f1a7e5cf70e9354fcd647b69f4e7c061b889a8c0d55f4a94a033f95d0252f9baebf13c3d501438074a05d547eef2c8cf898dc2c87cec3b60e76e0 qt-musl-off_t.patch
ac563e0c444a6d3214ff7465cad2c701692cfa90408c57243d3ae9459937c36e88acd57335bb90da85157e03865faaf17d61a767483b00ed8f3580ebf8a2fbb5 qt-musl-pvalloc.patch
8d95e4fcb463b5d2053c9538e66150ec9a3acddd7815cc34c8cd6fa115e49f1d602c4f1fc73f5e507a932c918e36c9c3d1386476dca91c5fc422906d0d88f610 qt-musl-resolve.patch
2fead16e7d7379b622da0e3172905444d9d72d1a53ff080327a3d59f60541c5c076d9b58f110b039da8c9ebc3b5efec53af118e1172efd01886ff9ac2b730d5f qt-musl-siginfo_t.patch
059f22a594a046d552a33b17d811c50b645c4be11a49ed3b29a32ce38d501fd07c1e15a4e1075c46f984c850bf88aecb357e4310a62b30494ea25297055f05c8 qt-musl-fpstate.patch
b1f7823d0bdd14dbcb4dbd72ab2d16460d343722d2601921a50f8912ce580a632e0d7b01d7fea6f27ff5014a1f21595c6d8d4500b995bcc6db38cbd10ac4aa96 qt-musl-pread-pwrite.patch
987b9b35d04317e22ae2cce382e776f3309fc7fd4588e408cd6bed846f47620d01e2b9958cb60c84b8f6f496de6544a21ba399ba8b8f107b73df179794740092 qt-musl-sysreg-for__WORDSIZE.patch
7dc3e9995596adef65cd96f650eb7ee13d52cabfe6353f04eeb5b8a5776e7e0585ffc2a0a31deea6924352ee9a5a8e03ac37432b558c6a46f3dc457b4283392a qt-musl-stackstart.patch
b37fbc4df03c82123f94982039defa12d9bb8c885c9dcf8fff556b5f9cc58182fa471f970cc3a5e2d5dbe964855f591b474366b6a8926d94ae6a78e883811c1a qt-musl-thread-stacksize.patch
d38e73a0424a104682c8cd94de32e506abf38f0ace34935eb33d66c732af30e6b22c0faec8cf698424a4391d965338ed6646325c9b9862a0c0be2faeaa169071 qt-musl-elf-arm.patch
173c401e1a0daa7a1471880807e4fb0a74fc338a0f306dc067147878c29e7bb94cae43c37fe2bf21dd7a7ffd2d739697fd21d10c059ce647df01d8236612cc68 qt-musl-crashpad.patch
dec69ea8dd9cfa2973264ec405092d364513bbd47303a94c128d873a3de7294760340f3ad31753e6bddd42e98c547312e070b49a062f693b2e19aa01d772063a musl-sandbox.patch
f6b1941e40f44b675ab554166e3cd8d3272b23f48571b4949b3af7b8e1c642ee84fe0ee26dd2457fc3bf20e9924cddb411e293b7a8a103029ee196587371a1e2 yasm-nls.patch
9add958caa0d6acb2866d3927aadfa6b378c92d62463f1b3d65ae1e5400915d89388ac54beb30c4d4d42d2901ee28f404d8574b771854556f6a75698301870eb nasm.patch
b99eaa4a0b06ab1cb461fc4bfc7416c779ba1e847614b96f08de97a137a09577ea642813e5e3235167ccc5180c6ffcc06ebf2a61e3b4c210de9dee765e0e7404 musl-hacks.patch
dbe606be93377f094c6a1ab0358ae042f3e7aff95c635b07ebc04aa3173f7221a478fd544e8347152a4ca125a837d6da774929423868d5c9d5bd6165bdd1ba6d sandbox-sched_getparam.patch
7153ce7372fed73dccb676079bc5af37f56be113f42ee64ed48cd7997dc2a4aa287523f36f0b8d3c717f1c4ad7f796843850b86a2dce50de5f0ade6a47785bee remove-glibc-check.patch"

View File

@ -0,0 +1,13 @@
diff --git a/src/3rdparty/chromium/net/socket/udp_socket_posix.cc b/src/3rdparty/chromium/net/socket/udp_socket_posix.cc
index dbc8c5aaf..077bbde33 100644
--- a/src/3rdparty/chromium/net/socket/udp_socket_posix.cc
+++ b/src/3rdparty/chromium/net/socket/udp_socket_posix.cc
@@ -1191,7 +1191,7 @@ SendResult UDPSocketPosixSender::InternalSendmmsgBuffers(
msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()});
msgvec->reserve(buffers.size());
for (size_t j = 0; j < buffers.size(); j++)
- msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0});
+ msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, 0, 0, 0}, 0});
int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0));
SendResult send_result(0, 0, std::move(buffers));
if (result < 0) {

View File

@ -0,0 +1,162 @@
diff --git a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
index 348ab6e8c..2eac6ef82 100644
--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
@@ -139,21 +139,11 @@ namespace sandbox {
// present (as in newer versions of posix_spawn).
ResultExpr RestrictCloneToThreadsAndEPERMFork() {
const Arg<unsigned long> flags(0);
-
- // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
- const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
- CLONE_SIGHAND | CLONE_THREAD |
- CLONE_SYSVSEM;
- const uint64_t kObsoleteAndroidCloneMask = kAndroidCloneMask | CLONE_DETACHED;
-
- const uint64_t kGlibcPthreadFlags =
- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD |
- CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID;
- const BoolExpr glibc_test = flags == kGlibcPthreadFlags;
-
- const BoolExpr android_test =
- AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
- flags == kGlibcPthreadFlags);
+ const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
+ CLONE_THREAD | CLONE_SYSVSEM;
+ const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID |
+ CLONE_DETACHED;
+ const BoolExpr thread_clone_ok = (flags&~safe)==required;
// The following two flags are the two important flags in any vfork-emulating
// clone call. EPERM any clone call that contains both of them.
@@ -163,7 +153,7 @@ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
(flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
- return If(IsAndroid() ? android_test : glibc_test, Allow())
+ return If(thread_clone_ok, Allow())
.ElseIf(is_fork_or_clone_vfork, Error(EPERM))
.Else(CrashSIGSYSClone());
}
diff --git a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
index 6e2bd4fee..9f9e4ad8a 100644
--- a/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+++ b/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
@@ -392,6 +392,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
#if defined(__i386__)
case __NR_waitpid:
#endif
+ case __NR_set_tid_address:
return true;
case __NR_clone: // Should be parameter-restricted.
case __NR_setns: // Privileged.
@@ -404,7 +405,6 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
case __NR_set_thread_area:
#endif
- case __NR_set_tid_address:
case __NR_unshare:
#if !defined(__mips__) && !defined(__aarch64__)
case __NR_vfork:
@@ -514,6 +514,8 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
case __NR_mlock:
case __NR_munlock:
case __NR_munmap:
+ case __NR_mremap:
+ case __NR_membarrier:
return true;
case __NR_madvise:
case __NR_mincore:
@@ -531,7 +533,6 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
case __NR_modify_ldt:
#endif
case __NR_mprotect:
- case __NR_mremap:
case __NR_msync:
case __NR_munlockall:
case __NR_readahead:
diff --git a/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h b/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
index 59d0eab8e..7ae700213 100644
--- a/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
+++ b/src/3rdparty/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
@@ -1063,4 +1063,8 @@
#define __NR_memfd_create 279
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 283
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
diff --git a/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h b/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
index 1addd5384..d8811ce87 100644
--- a/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
+++ b/src/3rdparty/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
@@ -1385,6 +1385,11 @@
#define __NR_memfd_create (__NR_SYSCALL_BASE+385)
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier (__NR_SYSCALL_BASE+389)
+#endif
+
+
// ARM private syscalls.
#if !defined(__ARM_NR_BASE)
#define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
diff --git a/src/3rdparty/chromium/sandbox/linux/system_headers/mips64_linux_syscalls.h b/src/3rdparty/chromium/sandbox/linux/system_headers/mips64_linux_syscalls.h
index ec75815a8..612fcfaa9 100644
--- a/src/3rdparty/chromium/sandbox/linux/system_headers/mips64_linux_syscalls.h
+++ b/src/3rdparty/chromium/sandbox/linux/system_headers/mips64_linux_syscalls.h
@@ -1271,4 +1271,8 @@
#define __NR_memfd_create (__NR_Linux + 314)
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier (__NR_Linux + 318)
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_MIPS64_LINUX_SYSCALLS_H_
diff --git a/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h b/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h
index ddbf97f3d..1742acd4c 100644
--- a/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h
+++ b/src/3rdparty/chromium/sandbox/linux/system_headers/mips_linux_syscalls.h
@@ -1433,4 +1433,8 @@
#define __NR_memfd_create (__NR_Linux + 354)
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier (__NR_Linux + 358)
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_MIPS_LINUX_SYSCALLS_H_
diff --git a/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h b/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
index a6afc62d9..6ab7740de 100644
--- a/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
+++ b/src/3rdparty/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
@@ -1422,5 +1422,10 @@
#define __NR_memfd_create 356
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 375
+#endif
+
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
diff --git a/src/3rdparty/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h b/src/3rdparty/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
index 349504aee..6a6d4756f 100644
--- a/src/3rdparty/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
+++ b/src/3rdparty/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
@@ -1290,5 +1290,10 @@
#define __NR_memfd_create 319
#endif
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 324
+#endif
+
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_

View File

@ -0,0 +1,13 @@
diff --git a/src/3rdparty/chromium/third_party/nasm/config/config-linux.h b/src/3rdparty/chromium/third_party/nasm/config/config-linux.h
index 7eb7c20ff..3bdc2eb39 100644
--- a/src/3rdparty/chromium/third_party/nasm/config/config-linux.h
+++ b/src/3rdparty/chromium/third_party/nasm/config/config-linux.h
@@ -117,7 +117,7 @@
#define HAVE_ACCESS 1
/* Define to 1 if you have the `canonicalize_file_name' function. */
-#define HAVE_CANONICALIZE_FILE_NAME 1
+// #define HAVE_CANONICALIZE_FILE_NAME 1
/* Define to 1 if you have the `cpu_to_le16' intrinsic function. */
/* #undef HAVE_CPU_TO_LE16 */

View File

@ -0,0 +1,13 @@
diff --git a/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h b/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
index 5b55c24..08cec52 100644
--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
+++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h
@@ -273,7 +273,7 @@ union FloatContext {
"Size mismatch");
#elif defined(ARCH_CPU_ARMEL)
static_assert(sizeof(f32_t::fpregs) == sizeof(user_fpregs), "Size mismatch");
-#if !defined(__GLIBC__)
+#if defined(OS_ANDROID)
static_assert(sizeof(f32_t::vfp) == sizeof(user_vfp), "Size mismatch");
#endif
#elif defined(ARCH_CPU_ARM64)

View File

@ -0,0 +1,103 @@
--- qtwebengine/src/3rdparty/chromium/base/allocator/allocator_shim_default_dispatch_to_glibc.cc
+++ qtwebengine/src/3rdparty/chromium/base/allocator/allocator_shim_default_dispatch_to_glibc.cc
@@ -6,6 +6,7 @@
#include <malloc.h>
+#if defined(__GLIBC__)
// This translation unit defines a default dispatch for the allocator shim which
// routes allocations to libc functions.
// The code here is strongly inspired from tcmalloc's libc_override_glibc.h.
@@ -73,3 +74,92 @@ const AllocatorDispatch AllocatorDispatch::default_dispatch = {
nullptr, /* free_definite_size_function */
nullptr, /* next */
};
+
+#else // defined(__GLIBC__)
+
+#include <dlfcn.h>
+
+extern "C" {
+// Declare function pointers to the memory functions
+typedef void* (*t_libc_malloc)(size_t size);
+typedef void* (*t_libc_calloc)(size_t n, size_t size);
+typedef void* (*t_libc_realloc)(void* address, size_t size);
+typedef void* (*t_libc_memalign)(size_t alignment, size_t size);
+typedef void (*t_libc_free)(void* ptr);
+typedef size_t (*t_libc_malloc_usable_size)(void* ptr);
+
+// Static instances of pointers to libc.so dl symbols
+static t_libc_malloc libc_malloc = NULL;
+static t_libc_calloc libc_calloc = NULL;
+static t_libc_realloc libc_realloc = NULL;
+static t_libc_memalign libc_memalign = NULL;
+static t_libc_free libc_free = NULL;
+static t_libc_malloc_usable_size libc_malloc_usable_size = NULL;
+
+// resolve the symbols in libc.so
+void musl_libc_memory_init(void)
+{
+ libc_malloc = (t_libc_malloc) dlsym(RTLD_NEXT, "malloc");
+ libc_calloc = (t_libc_calloc) dlsym(RTLD_NEXT, "calloc");
+ libc_realloc = (t_libc_realloc) dlsym(RTLD_NEXT, "realloc");
+ libc_memalign = (t_libc_memalign) dlsym(RTLD_NEXT, "memalign");
+ libc_free = (t_libc_free) dlsym(RTLD_NEXT, "free");
+ libc_malloc_usable_size = (t_libc_malloc_usable_size) dlsym(RTLD_NEXT, "malloc_usable_size");
+}
+} // extern "C"
+
+namespace {
+
+using base::allocator::AllocatorDispatch;
+
+void* MuslMalloc(const AllocatorDispatch*, size_t size, void* context) {
+ if (!libc_malloc)
+ musl_libc_memory_init();
+ return (*libc_malloc)(size);
+}
+
+void* MuslCalloc(const AllocatorDispatch*, size_t n, size_t size, void* context) {
+ if (!libc_calloc)
+ musl_libc_memory_init();
+ return (*libc_calloc)(n, size);
+}
+
+void* MuslRealloc(const AllocatorDispatch*, void* address, size_t size, void* context) {
+ if (!libc_realloc)
+ musl_libc_memory_init();
+ return (*libc_realloc)(address, size);
+}
+
+void* MuslMemalign(const AllocatorDispatch*, size_t alignment, size_t size, void* context) {
+ if (!libc_memalign)
+ musl_libc_memory_init();
+ return (*libc_memalign)(alignment, size);
+}
+
+void MuslFree(const AllocatorDispatch*, void* address, void* context) {
+ if (!libc_free)
+ musl_libc_memory_init();
+ (*libc_free)(address);
+}
+
+size_t MuslGetSizeEstimate(const AllocatorDispatch*, void* address, void* context) {
+ // TODO(siggi, primiano): malloc_usable_size may need redirection in the
+ // presence of interposing shims that divert allocations.
+ if (!libc_malloc_usable_size)
+ musl_libc_memory_init();
+ return (*libc_malloc_usable_size)(address);
+}
+
+} // namespace
+
+const AllocatorDispatch AllocatorDispatch::default_dispatch = {
+ &MuslMalloc, /* alloc_function */
+ &MuslCalloc, /* alloc_zero_initialized_function */
+ &MuslMemalign, /* alloc_aligned_function */
+ &MuslRealloc, /* realloc_function */
+ &MuslFree, /* free_function */
+ &MuslGetSizeEstimate, /* get_size_estimate_function */
+ nullptr, /* next */
+};
+
+#endif

View File

@ -0,0 +1,13 @@
diff --git a/src/3rdparty/chromium/v8/src/base/cpu.cc b/src/3rdparty/chromium/v8/src/base/cpu.cc
index 4f4ac2b..c32239b 100644
--- a/src/3rdparty/chromium/v8/src/base/cpu.cc
+++ b/src/3rdparty/chromium/v8/src/base/cpu.cc
@@ -17,7 +17,7 @@ extern "C" char** environ;
#if V8_OS_QNX
#include <sys/syspage.h> // cpuinfo
#endif
-#if (V8_OS_LINUX && V8_HOST_ARCH_PPC) || V8_OS_ANDROID
+#if (V8_OS_LINUX && (V8_HOST_ARCH_PPC || V8_HOST_ARCH_ARM)) || V8_OS_ANDROID
#include <elf.h>
#endif
#if V8_OS_AIX

View File

@ -0,0 +1,108 @@
diff --git a/src/3rdparty/chromium/base/debug/stack_trace.cc b/src/3rdparty/chromium/base/debug/stack_trace.cc
index d8ca822d9..f6f3d9c69 100644
--- a/src/3rdparty/chromium/base/debug/stack_trace.cc
+++ b/src/3rdparty/chromium/base/debug/stack_trace.cc
@@ -233,14 +233,14 @@ std::string StackTrace::ToString() const {
}
std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
std::stringstream stream;
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
OutputToStreamWithPrefix(&stream, prefix_string);
#endif
return stream.str();
}
std::ostream& operator<<(std::ostream& os, const StackTrace& s) {
-#if !defined(__UCLIBC__) & !defined(_AIX)
+#if defined(__GLIBC__) & !defined(_AIX)
s.OutputToStream(&os);
#else
os << "StackTrace::OutputToStream not implemented.";
diff --git a/src/3rdparty/chromium/base/debug/stack_trace_posix.cc b/src/3rdparty/chromium/base/debug/stack_trace_posix.cc
index f4ddf9c1e..aef993613 100644
--- a/src/3rdparty/chromium/base/debug/stack_trace_posix.cc
+++ b/src/3rdparty/chromium/base/debug/stack_trace_posix.cc
@@ -27,7 +27,7 @@
#if !defined(USE_SYMBOLIZE)
#include <cxxabi.h>
#endif
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
#include <execinfo.h>
#endif
@@ -88,7 +88,7 @@ void DemangleSymbols(std::string* text) {
// Note: code in this function is NOT async-signal safe (std::string uses
// malloc internally).
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
std::string::size_type search_from = 0;
while (search_from < text->size()) {
// Look for the start of a mangled symbol, from search_from.
@@ -123,7 +123,7 @@ void DemangleSymbols(std::string* text) {
search_from = mangled_start + 2;
}
}
-#endif // !defined(__UCLIBC__) && !defined(_AIX)
+#endif // defined(__GLIBC__) && !defined(_AIX)
}
#endif // !defined(USE_SYMBOLIZE)
@@ -135,7 +135,7 @@ class BacktraceOutputHandler {
virtual ~BacktraceOutputHandler() = default;
};
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
// This should be more than enough to store a 64-bit number in hex:
// 16 hex digits + 1 for null-terminator.
@@ -218,7 +218,7 @@ void ProcessBacktrace(void* const* trace,
}
#endif // defined(USE_SYMBOLIZE)
}
-#endif // !defined(__UCLIBC__) && !defined(_AIX)
+#endif // defined(__GLIBC__) && !defined(_AIX)
void PrintToStderr(const char* output) {
// NOTE: This code MUST be async-signal safe (it's used by in-process
@@ -834,7 +834,7 @@ size_t CollectStackTrace(void** trace, size_t count) {
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
// Though the backtrace API man page does not list any possible negative
// return values, we take no chance.
return base::saturated_cast<size_t>(backtrace(trace, count));
@@ -847,13 +847,13 @@ void StackTrace::PrintWithPrefix(const char* prefix_string) const {
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
PrintBacktraceOutputHandler handler;
ProcessBacktrace(trace_, count_, prefix_string, &handler);
#endif
}
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(_AIX)
void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
const char* prefix_string) const {
StreamBacktraceOutputHandler handler(os);
diff --git a/src/3rdparty/chromium/base/logging.cc b/src/3rdparty/chromium/base/logging.cc
index 4c4bfa6af..0ca5c2159 100644
--- a/src/3rdparty/chromium/base/logging.cc
+++ b/src/3rdparty/chromium/base/logging.cc
@@ -618,7 +618,7 @@ LogMessage::LogMessage(const char* file, int line, LogSeverity severity,
LogMessage::~LogMessage() {
size_t stack_start = stream_.tellp();
-#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && !defined(__UCLIBC__) && \
+#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && defined(__GLIBC__) && \
!defined(OS_AIX)
if (severity_ == LOG_FATAL && !base::debug::BeingDebugged()) {
// Include a stack trace on a fatal, unless a debugger is attached.

View File

@ -0,0 +1,48 @@
diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
index 052ce37..95b0fb4 100644
--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
+ const struct _fpstate* fp) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_X86_FULL |
@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
+ const struct _fpstate* fpregs) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_AMD64_FULL;
diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
index f830618..f3dde1f 100644
--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
@@ -50,7 +50,7 @@ struct UContextReader {
// info: the collection of register structures.
#if defined(__i386__) || defined(__x86_64)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
+ const struct _fpstate* fp);
#elif defined(__aarch64__)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
const struct fpsimd_context* fpregs);
diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
index d1dc331..d1cc562 100644
--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
@@ -48,7 +48,7 @@ class ExceptionHandler;
#if defined(__aarch64__)
typedef struct fpsimd_context fpstate_t;
#elif !defined(__ARM_EABI__) && !defined(__mips__)
-typedef struct _libc_fpstate fpstate_t;
+typedef struct _fpstate fpstate_t;
#endif
// These entries store a list of memory regions that the client wants included

View File

@ -0,0 +1,43 @@
diff --git a/src/3rdparty/chromium/base/process/process_metrics_posix.cc b/src/3rdparty/chromium/base/process/process_metrics_posix.cc
index 044bd8d24..0f2526a3d 100644
--- a/src/3rdparty/chromium/base/process/process_metrics_posix.cc
+++ b/src/3rdparty/chromium/base/process/process_metrics_posix.cc
@@ -110,14 +110,14 @@ size_t ProcessMetrics::GetMallocUsage() {
malloc_statistics_t stats = {0};
malloc_zone_statistics(nullptr, &stats);
return stats.size_in_use;
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#elif (defined(OS_LINUX) && defined(__GLIBC__)) || defined(OS_ANDROID)
struct mallinfo minfo = mallinfo();
#if BUILDFLAG(USE_TCMALLOC)
return minfo.uordblks;
#else
return minfo.hblkhd + minfo.arena;
#endif
-#elif defined(OS_FUCHSIA)
+#else //if defined(OS_FUCHSIA) // also musl doesn't do this.
// TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
return 0;
#endif
diff --git a/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc b/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
index 7e42cfc20..5086b5c8a 100644
--- a/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
+++ b/src/3rdparty/chromium/base/trace_event/malloc_dump_provider.cc
@@ -132,7 +132,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
}
#elif defined(OS_FUCHSIA)
// TODO(fuchsia): Port, see https://crbug.com/706592.
-#else
+#elif defined(__GLIBC__)
struct mallinfo info = mallinfo();
#if !defined(ADDRESS_SANITIZER) && !defined(THREAD_SANITIZER)
// Sanitizers override mallinfo.
@@ -147,6 +147,8 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
// Total allocated space is given by |uordblks|.
allocated_objects_size = info.uordblks;
+#else
+ // musl libc does not support mallinfo()
#endif
MemoryAllocatorDump* outer_dump = pmd->CreateAllocatorDump("malloc");

View File

@ -0,0 +1,10 @@
--- qtwebengine/src/3rdparty/chromium/third_party/ots/include/opentype-sanitiser.h 2016-05-26 14:58:54.000000000 +0200
+++ qtwebengine/src/3rdparty/chromium/third_party/ots/include/opentype-sanitiser.h 2016-10-01 14:31:30.885000000 +0200
@@ -21,6 +21,7 @@
#define htons(x) _byteswap_ushort (x)
#else
#include <arpa/inet.h>
+#include <sys/types.h>
#include <stdint.h>
#endif

View File

@ -0,0 +1,20 @@
diff --git a/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h b/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
index 5d9c2e8..e81e7b4 100644
--- a/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
+++ b/src/3rdparty/chromium/third_party/lss/linux_syscall_support.h
@@ -1794,6 +1794,15 @@ struct kernel_statfs {
/* End of s390/s390x definitions */
#endif
+#ifndef __GLIBC__
+ /* For Musl libc pread/pread is the same as pread64/pwrite64 */
+#ifndef __NR_pread
+#define __NR_pread __NR_pread64
+#endif
+#ifndef __NR_pwrite
+#define __NR_pwrite __NR_pwrite64
+#endif
+#endif /* ifndef __GLIBC__ */
/* After forking, we must make sure to only call system calls. */
#if defined(__BOUNDED_POINTERS__)

View File

@ -0,0 +1,14 @@
--- qtwebengine/src/core/api/qtbug-61521.cpp 2017-11-29 09:42:29.000000000 +0100
+++ qtwebengine/src/core/api/qtbug-61521.cpp 2018-01-28 06:49:29.454175725 +0100
@@ -111,7 +111,11 @@
}
SHIM_HIDDEN void* ShimPvalloc(size_t size) {
+#if defined(__GLIBC__)
return pvalloc(size);
+#else
+ return valloc((size+4095)&~4095);
+#endif
}
SHIM_HIDDEN int ShimPosixMemalign(void** r, size_t a, size_t s) {

View File

@ -0,0 +1,61 @@
--- qtwebengine/src/3rdparty/chromium/net/dns/dns_reloader.cc 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine/src/3rdparty/chromium/net/dns/dns_reloader.cc 2016-12-20 03:33:11.749059656 +0100
@@ -9,6 +9,10 @@
#include <resolv.h>
+#if !defined(__GLIBC__)
+#include "resolv_compat.h"
+#endif
+
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/macros.h"
--- qtwebengine/src/3rdparty/chromium/net/dns/dns_config_service_posix.cc 2016-11-07 15:46:18.000000000 +0100
+++ qtwebengine/src/3rdparty/chromium/net/dns/dns_config_service_posix.cc 2016-12-20 03:40:07.671953098 +0100
@@ -6,6 +6,10 @@
#include <string>
+#if !defined(__GLIBC__)
+#include "resolv_compat.h"
+#endif
+
#include "base/bind.h"
#include "base/files/file.h"
#include "base/files/file_path.h"
diff --git a/src/3rdparty/chromium/net/dns/resolv_compat.h b/src/3rdparty/chromium/net/dns/resolv_compat.h
new file mode 100644
index 0000000..4f0e852
--- /dev/null
+++ b/src/3rdparty/chromium/net/dns/resolv_compat.h
@@ -0,0 +1,29 @@
+#if !defined(__GLIBC__)
+/***************************************************************************
+ * resolv_compat.h
+ *
+ * Mimick GLIBC's res_ninit() and res_nclose() for musl libc
+ * Note: res_init() is actually deprecated according to
+ * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html
+ **************************************************************************/
+#include <string.h>
+
+static inline int res_ninit(res_state statp)
+{
+ int rc = res_init();
+ if (statp != &_res) {
+ memcpy(statp, &_res, sizeof(*statp));
+ }
+ return rc;
+}
+
+static inline int res_nclose(res_state statp)
+{
+ if (!statp)
+ return -1;
+ if (statp != &_res) {
+ memset(statp, 0, sizeof(*statp));
+ }
+ return 0;
+}
+#endif

View File

@ -0,0 +1,18 @@
There's a subtle difference in the internal name of siginfo_t fields
between glibc and musl. The structure itself is equivalent, so it
should suffice to add a macro to rename the field.
--- qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf/trap.cc 2015-02-17 05:57:43.000000000 +0100
+++ qtwebengine/src/3rdparty/chromium/sandbox/linux/seccomp-bpf/trap.cc 2015-06-03 08:20:25.032716427 +0200
@@ -22,6 +22,11 @@
#include "sandbox/linux/services/android_ucontext.h"
#endif
+// musl libc defines siginfo_t __si_fields instead of _sifields
+#if !defined(__GLIBC__)
+#define _sifields __si_fields
+#endif
+
namespace {
const int kCapacityIncrement = 20;

View File

@ -0,0 +1,22 @@
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc b/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc
index 10f1c0d..8e86a2e 100644
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/wtf/stack_util.cc
@@ -28,7 +28,7 @@ size_t GetUnderestimatedStackSize() {
// FIXME: On Mac OSX and Linux, this method cannot estimate stack size
// correctly for the main thread.
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
// pthread_getattr_np() can fail if the thread is not invoked by
// pthread_create() (e.g., the main thread of webkit_unit_tests).
@@ -96,7 +96,7 @@ size_t GetUnderestimatedStackSize() {
}
void* GetStackStart() {
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
pthread_attr_t attr;
int error;

View File

@ -0,0 +1,14 @@
diff --git a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
index d03c7a8..d43fda0 100644
--- a/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
+++ b/src/3rdparty/chromium/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
@@ -36,6 +36,9 @@
#include <elf.h>
#include <link.h>
#include <stddef.h>
+#ifndef __GLIBC__
+#include <sys/reg.h>
+#endif
#include "common/memory_range.h"

View File

@ -0,0 +1,26 @@
diff --git a/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc b/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
index 02bf49b..05ee182 100644
--- a/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
+++ b/src/3rdparty/chromium/ppapi/utility/threading/simple_thread.cc
@@ -13,7 +13,7 @@ namespace pp {
namespace {
// Use 2MB default stack size for Native Client, otherwise use system default.
-#if defined(__native_client__)
+#if defined(__native_client__) || !defined(__GLIBC__)
const size_t kDefaultStackSize = 2 * 1024 * 1024;
#else
const size_t kDefaultStackSize = 0;
diff --git a/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc b/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
index cf7f3ec..e06a5ce 100644
--- a/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
+++ b/src/3rdparty/chromium/v8/src/base/platform/platform-posix.cc
@@ -761,7 +761,7 @@ void Thread::Start() {
#if V8_OS_MACOSX
// Default on Mac OS X is 512kB -- bump up to 1MB
stack_size = 1 * 1024 * 1024;
-#elif V8_OS_AIX
+#elif V8_OS_AIX || !defined(__GLIBC__)
// Default on AIX is 96kB -- bump up to 2MB
stack_size = 2 * 1024 * 1024;
#endif

View File

@ -0,0 +1,18 @@
Qt checks if glibc is available and if not disables large part of Qt5WebEngine and thus cripples functionality.
However these parts work fine with Musl so there is no need to disable them.
Just remove the check so it builds again. Since 5.15.1 is the last version of Qt to be released with this build system it'll be obsolete with Qt6 and there is no real point in fixing this upstream.
diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json
index 1ca6214a..3783c223 100644
--- a/src/buildtools/configure.json
+++ b/src/buildtools/configure.json
@@ -375,8 +375,7 @@
&& features.webengine-python2
&& (!config.sanitizer || features.webengine-sanitizer)
&& (!config.linux || features.pkg-config)
- && (!config.linux || features.webengine-host-pkg-config)
- && (!config.linux || features.webengine-system-glibc)
+ && (!config.linux || features.webengine-host-pkg-config)
&& (!config.linux || features.webengine-system-khr)
&& (!config.linux || features.webengine-system-nss)
&& (!config.linux || features.webengine-system-dbus)

View File

@ -0,0 +1,24 @@
Allow SYS_sched_getparam and SYS_sched_getscheduler
musl uses them for pthread_getschedparam()
source: https://git.alpinelinux.org/aports/commit/community/chromium?id=54af9f8ac24f52d382c5758e2445bf0206eff40e
--- qtwebengine/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_renderer_policy_linux.cc 2019-11-12 20:48:20.013724661 +0100
+++ qtwebengine/src/3rdparty/chromium/services/service_manager/sandbox/linux/bpf_renderer_policy_linux.cc.patched 2019-11-12 20:58:57.330695676 +0100
@@ -93,10 +93,16 @@
case __NR_sysinfo:
case __NR_times:
case __NR_uname:
+#if !defined(__GLIBC__)
+ case __NR_sched_getparam:
+ case __NR_sched_getscheduler:
+#endif
return Allow();
case __NR_sched_getaffinity:
+#if defined(__GLIBC__)
case __NR_sched_getparam:
case __NR_sched_getscheduler:
+#endif
case __NR_sched_setscheduler:
return sandbox::RestrictSchedTarget(GetPolicyPid(), sysno);
case __NR_prlimit64:

View File

@ -0,0 +1,13 @@
diff --git a/src/3rdparty/chromium/third_party/yasm/source/config/linux/config.h b/src/3rdparty/chromium/third_party/yasm/source/config/linux/config.h
index 9e36539..f588083 100644
--- a/src/3rdparty/chromium/third_party/yasm/source/config/linux/config.h
+++ b/src/3rdparty/chromium/third_party/yasm/source/config/linux/config.h
@@ -5,7 +5,7 @@
#define CPP_PROG "gcc -E"
/* */
-#define ENABLE_NLS 1
+/* #undef ENABLE_NLS 1 */
/* Define to 1 if you have the `abort' function. */
#define HAVE_ABORT 1

View File

@ -0,0 +1,108 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Johannes Matheis <jomat+alpinebuild@jmt.gr>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr>
pkgname=mumble
pkgver=1.3.2
pkgrel=1
pkgdesc="Low-latency, high quality voice chat software"
url="https://wiki.mumble.info/"
arch="all"
license="BSD-3-Clause"
options="!check"
depends="qt5-qtbase-sqlite"
makedepends="qt5-qtbase-dev libsndfile-dev boost-dev protobuf-dev
libxi-dev speex-dev speexdsp-dev libcap-dev alsa-lib-dev qt5-qtsvg-dev
qt5-qttools-dev opus-dev pulseaudio-dev
"
install="murmur.pre-install"
pkgusers="murmur"
pkggroups="murmur"
subpackages="$pkgname-doc murmur murmur-doc:murmur_doc:noarch"
source="https://github.com/mumble-voip/mumble/releases/download/$pkgver/mumble-$pkgver.tar.gz
murmur.initd"
# secfixes:
# 1.2.19-r9:
# - CVE-2018-20743
build() {
qmake-qt5 -recursive main.pro \
CONFIG+="no-speechd no-g15 no-update optimize no-ice bundled-celt no-embed-qt-translations no-bundled-speex no-bundled-opus no-plugins no-oss no-bonjour" \
DEFINES+="PLUGIN_PATH=/usr/lib/mumble"
make release
}
package() {
# Binaries.
local _ver=${pkgver%_rc*}
local _maj=$( echo "$_ver" | cut -d. -f1)
local _min=$( echo "$_ver" | cut -d. -f2)
install -Dm755 ./release/mumble \
"$pkgdir"/usr/bin/mumble
install -Dm755 ./scripts/mumble-overlay \
"$pkgdir"/usr/bin/mumble-overlay
# Libraries.
install -Dm755 ./release/libmumble.so.$_ver \
"$pkgdir"/usr/lib/mumble/libmumble.so.$_ver
for lib in libmumble.so libmumble.so.$_maj libmumble.so.$_maj.$_min; do
ln -s libmumble.so.$_ver \
"$pkgdir"/usr/lib/mumble/$lib
done
install -Dm755 ./release/libcelt* \
"$pkgdir"/usr/lib/mumble/
# Misc.
install -Dm644 ./LICENSE \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE
install -Dm644 ./scripts/mumble.desktop \
"$pkgdir"/usr/share/applications/mumble.desktop
install -Dm644 ./icons/mumble.svg \
"$pkgdir"/usr/share/icons/hicolor/scalable/apps/mumble.svg
# Man pages.
mkdir -p "$pkgdir"/usr/share/man/man1/
install -m644 ./man/mum* "$pkgdir"/usr/share/man/man1/
}
murmur() {
pkgdesc="Murmur is the server component of Mumble"
cd "$builddir"
install -o murmur -g murmur -dm755 \
"$subpkgdir"/var/lib/murmur
install -Dm755 ./release/murmurd \
"$subpkgdir"/usr/bin/murmurd
install -Dm644 ./scripts/murmur.ini \
"$subpkgdir"/etc/murmur.ini
sed 's/^database=$/database=\/var\/lib\/murmur\/murmur.sqlite/;\
s/^;uname=$/uname=murmur/;\
s/^;logfile=murmur.log$/logfile=\/var\/log\/murmur.log/;\
s/^;pidfile=$/pidfile=\/var\/run\/murmur\/murmur.pid/'\
-i "$subpkgdir"/etc/murmur.ini
install -Dm644 ./scripts/murmur.conf \
"$subpkgdir"/etc/dbus-1/system.d/murmurd.conf
sed "s/mumble-server/murmur/" \
-i "$subpkgdir"/etc/dbus-1/system.d/murmurd.conf
install -Dm755 "$srcdir"/murmur.initd \
"$subpkgdir"/etc/init.d/murmur
}
murmur_doc() {
pkgdesc="Murmur is the server component of Mumble"
cd "$builddir"
install -Dm644 ./man/murmurd.1 \
"$subpkgdir"/usr/share/man/man1/murmurd.1
install -Dm644 ./LICENSE \
"$subpkgdir"/usr/share/licenses/murmur/LICENSE
default_doc
}
sha512sums="3f5e3b586efbe9b49c7f14119072f4842bbd885f9c5145cdaa129a87c7fc85107d0735a3107f5a2789cec9fdadda1200ab4a6d76c3caee409d3e38406a8ba27f mumble-1.3.2.tar.gz
c74ade232146a180448cb0027503f59642000bee50613a1fb99162cdc4bc81089ab4e84e51b0bbdac5c176eb52b76e6bd2b3ec790a9148135a1fc050569921c3 murmur.initd"

View File

@ -0,0 +1,18 @@
#!/sbin/openrc-run
depends() {
needs localmount
}
description="Mumble VoIP Server"
command="/usr/bin/murmurd"
command_args="-ini /etc/murmur.ini"
pidfile="/var/run/murmur/murmur.pid"
start_pre() {
checkpath --owner murmur:murmur --directory ${pidfile%/*}
}
# uses the openrc templates for start()/stop()

View File

@ -0,0 +1,6 @@
#!/bin/sh
addgroup -S murmur 2>/dev/null
adduser -S -D -H -h /var/lib/murmur -s /sbin/nologin -G murmur -g "Mumble daemon" murmur 2>/dev/null
exit 0

View File

@ -0,0 +1,43 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=neomutt
pkgver=20200925
pkgrel=0
pkgdesc="Mutt with miscellaneous fixes and feature patches"
url="https://neomutt.org/"
arch="all"
options="!check" # Readline randomly fails and permissions test might not be cleaned up
license="GPL-2.0-or-later"
makedepends="cyrus-sasl-dev gdbm-dev gettext-dev gpgme-dev libidn-dev
ncurses-dev openssl-dev notmuch-dev bsd-compat-headers libxslt tcl
docbook-xsl perl w3m"
subpackages="$pkgname-doc $pkgname-lang"
source="neomutt-$pkgver.tar.gz::https://github.com/neomutt/neomutt/archive/$pkgver.tar.gz
neomutt-test-files-master.zip::https://github.com/neomutt/neomutt-test-files/archive/master.zip"
build() {
./configure \
--notmuch \
--gpgme \
--gdbm \
--ssl \
--sasl
make
}
check() {
export NEOMUTT_TEST_DIR="$srcdir/neomutt-test-files-master"
(cd $NEOMUTT_TEST_DIR && ./setup.sh)
make test
(cd $NEOMUTT_TEST_DIR && ./restore.sh)
}
package() {
make DESTDIR="$pkgdir" install
install -Dm644 contrib/gpg.rc \
"$pkgdir"/usr/share/doc/$pkgname/examples/Muttrc.gpg
}
sha512sums="1ee89ee1b3581fe2b7dafd091e315fcf4d6f7b0644c15b08af8eb2720e83f07ae526b5659abb44430309821f48013fc85af0dd6f140729b2e52e5f874cf3bc50 neomutt-20200925.tar.gz
8f6d06c89665e6a9ecdffe34583b771340df330f38762ce7b408ec9a818f7210263656c63dced200784b4dcb55f7f17fc43fa706ae2944349fcb2e45eb0ace1d neomutt-test-files-master.zip"

View File

@ -0,0 +1,81 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer:
pkgname=telegram-desktop
pkgver=2.4.3
pkgrel=0
pkgdesc="Telegram Desktop messaging app"
options="!check" # Requires Catch2 to be packaged.
url="https://desktop.telegram.org/"
arch="all !s390x !mips !mips64" # Need support on lib_base
license="GPL-3.0-or-later WITH OpenSSL"
depends="qt5-qtimageformats ttf-opensans"
makedepends="
cmake
samurai
zlib-dev
opus-dev
libva-dev
libvdpau-dev
ffmpeg-dev
portaudio-dev
openal-soft-dev
openssl-dev
libxkbcommon-dev
qt5-qtbase-dev
qt5-qtwayland-dev
libexif-dev
xz-dev
minizip-dev
alsa-lib-dev
libexecinfo-dev
lz4-dev
qtchooser
pulseaudio-dev
libdbusmenu-glib-dev
xxhash-dev
enchant2-dev
range-v3-dev
python3
libdbusmenu-qt-dev
tl-expected
hunspell-dev
gtk+3.0-dev
"
source="
https://github.com/telegramdesktop/tdesktop/releases/download/v$pkgver/tdesktop-$pkgver-full.tar.gz
small-sizes.patch
remove-glibc.patch
"
builddir="$srcdir/tdesktop-$pkgver-full"
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
-DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON \
-DDESKTOP_APP_DISABLE_SPELLCHECK=OFF \
-DDESKTOP_APP_DISABLE_AUTOUPDATE=ON \
-DDESKTOP_APP_DISABLE_WEBRTC_INTEGRATION=ON \
-DDESKTOP_APP_LOTTIE_USE_CACHE=ON \
-DDESKTOP_APP_USE_GLIBC_WRAPS=OFF \
-DDESKTOP_APP_USE_PACKAGED=ON \
-DTDESKTOP_API_ID=17349 \
-DTDESKTOP_API_HASH=344583e45741c457fe1862106095a5eb \
-DTDESKTOP_LAUNCHER_BASENAME=telegram-desktop \
-DDESKTOP_APP_USE_PACKAGED_FONTS=ON \
$CMAKE_CROSSOPTS .
ninja -C build
}
package() {
DESTDIR="$pkgdir" ninja -C build install
}
sha512sums="066a04ee4ba0c28ea8c6f7b4badcbc814cfc131508ca08a34b6365a8c79106a579efffb4e9dd1a7856cad39505dc864cc8e8e417b8a4e06e8fd0d15752d44ac2 tdesktop-2.4.3-full.tar.gz
3d1b8e6f870fc780f9ae8bc6a67eb676a5c5f686dc79e84cd6d64cb3cfafb1be626d0cc3960ffc67cecca21568764a0137c7303a89045fa59f91ba4eb5d8caed small-sizes.patch
b6e16c02f7dafa5e00c9b2ce16df18ccd57d380877d009596261f2e1f631cb0f38088a0d8c48d8e321559cacea64ff9e79fe2d7719382d45e27a339888dc2823 remove-glibc.patch"

View File

@ -0,0 +1,51 @@
Upstream: Unsuitable (requires re-work into something that doesn't break libc)
Reason: This is Glibc specific and treating Linux == glibc is harmful
diff --git a/Telegram/lib_base/base/platform/linux/base_info_linux.cpp b/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
index ea9ab61..bbef601 100644
--- a/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
+++ b/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
@@ -13,7 +13,6 @@
#include <QtCore/QVersionNumber>
#include <QtCore/QDate>
#include <QtGui/QGuiApplication>
-#include <gnu/libc-version.h>
namespace Platform {
namespace {
@@ -84,8 +74,7 @@ QString SystemVersionPretty() {
return "Linux "
+ (list.isEmpty() ? QString() : list[0] + ' ')
+ (IsWayland() ? "Wayland " : "X11 ")
- + "glibc "
- + GetGlibCVersion();
+ + "musl";
}
QString SystemCountry() {
@@ -103,10 +92,6 @@ QString SystemLanguage() {
QDate WhenSystemBecomesOutdated() {
if (IsLinux32Bit()) {
return QDate(2020, 9, 1);
- } else if (const auto version = GetGlibCVersion(); !version.isEmpty()) {
- if (QVersionNumber::fromString(version) < QVersionNumber(2, 23)) {
- return QDate(2020, 9, 1); // Older than Ubuntu 16.04.
- }
}
return QDate();
}
@@ -129,14 +114,6 @@ QString AutoUpdateKey() {
}
}
-QString GetGlibCVersion() {
- static const auto result = [&] {
- const auto version = QString::fromLatin1(gnu_get_libc_version());
- return QVersionNumber::fromString(version).isNull() ? QString() : version;
- }();
- return result;
-}
-
bool IsWayland() {
return QGuiApplication::platformName().startsWith("wayland", Qt::CaseInsensitive);
}

View File

@ -0,0 +1,48 @@
From 675b5d645221bae9d9ad2cc7dd62d30a3b0f95c3 Mon Sep 17 00:00:00 2001
From: Julian Sparber <julian@sparber.net>
Date: Thu, 14 Nov 2019 17:36:33 +0100
Subject: [PATCH] Make it work on small sizes
---
Telegram/SourceFiles/settings/settings_main.cpp | 2 +-
Telegram/SourceFiles/window/window.style | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Telegram/SourceFiles/settings/settings_main.cpp b/Telegram/SourceFiles/settings/settings_main.cpp
index 18552902b..c2d8e7a4d 100644
--- a/Telegram/SourceFiles/settings/settings_main.cpp
+++ b/Telegram/SourceFiles/settings/settings_main.cpp
@@ -100,7 +100,7 @@ void SetupSections(
}
bool HasInterfaceScale() {
- return true;
+ return false;
}
void SetupInterfaceScale(
diff --git a/Telegram/SourceFiles/window/window.style b/Telegram/SourceFiles/window/window.style
index b3cd3ae83..29bf8bc3c 100644
--- a/Telegram/SourceFiles/window/window.style
+++ b/Telegram/SourceFiles/window/window.style
@@ -10,7 +10,7 @@ using "basic.style";
using "ui/widgets/widgets.style";
using "history/history.style";
-windowMinWidth: 380px;
+windowMinWidth: 360px;
windowMinHeight: 480px;
windowDefaultWidth: 800px;
windowDefaultHeight: 600px;
@@ -19,7 +19,7 @@ windowShadowShift: 1px;
columnMinimalWidthLeft: 260px;
columnMaximalWidthLeft: 540px;
-columnMinimalWidthMain: 380px;
+columnMinimalWidthMain: 360px;
columnDesiredWidthMain: 512px;
columnMinimalWidthThird: 292px;
columnMaximalWidthThird: 392px;
--
2.24.1

View File

@ -0,0 +1,41 @@
# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=youtube-dlc
pkgver=2020.10.09
pkgrel=0
pkgdesc="Command-line program to download videos from YouTube"
url="https://youtube-dl.org/"
arch="noarch"
license="Unlicense"
depends="python3 py3-setuptools"
checkdepends="py3-flake8 py3-nose"
subpackages="$pkgname-doc
$pkgname-bash-completion
$pkgname-fish-completion"
source="$pkgname-$pkgver.tar.gz::https://github.com/blackjack4494/youtube-dlc/archive/$pkgver.tar.gz"
builddir="$srcdir/$pkgname-$pkgver"
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
}
build() {
python3 setup.py build
}
check() {
PYTHON=/usr/bin/python3 make offlinetest
}
package() {
python3 setup.py install --prefix=/usr --root="$pkgdir"
}
sha512sums="5d8df9e8b95bec63351c998dcd3ac61562b02a570d0b2aa03f7244354c8db1c9d0ab1c089df4cc621908d213f2bdd8933879b76a822bcdb5396c6db65c25c71e youtube-dlc-2020.10.09.tar.gz"

View File

@ -0,0 +1,11 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -216,7 +216,7 @@
set(LIBRARY_DEST_DIR ${MultiMC_LIBRARY_DEST_DIR})
MESSAGE(STATUS "Compiling for linux system with ${MultiMC_SHARE_DEST_DIR} and MULTIMC_LINUX_DATADIR")
+ SET(MultiMC_APP_BINARY_DEFS "-DMULTIMC_JARS_LOCATION=/usr/${JARS_DEST_DIR}" "-DMULTIMC_LINUX_DATADIR")
- SET(MultiMC_APP_BINARY_DEFS "-DMULTIMC_JARS_LOCATION=${CMAKE_INSTALL_PREFIX}/${JARS_DEST_DIR}" "-DMULTIMC_LINUX_DATADIR")
# install as bundle with no dependencies included
set(INSTALL_BUNDLE "nodeps")

57
games/multimc/APKBUILD Normal file
View File

@ -0,0 +1,57 @@
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=multimc
pkgver=0.6.11
pkgrel=0
pkgdesc="A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once."
url="https://github.com/MultiMC/MultiMC5"
arch="x86 x86_64" # Officially supported
license="MIT AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-or-later AND BSD-3-Clause-Clear AND OFL-1.0-RFN AND GPL-2.0 WITH Classpath-exception-2.0 AND Apache-2.0"
depends="qt5-qtbase qt5-qtx11extras qt5-qtsvg openjdk8-jre"
makedepends="
cmake
qt5-qtbase-dev
qt5-qtx11extras-dev
zlib-dev
openjdk8
"
_libnbtpluscommit="dc72a20b7efd304d12af2025223fad07b4b78464"
_quazipcommit="3691d57d3af13f49b2be2b62accddefee3c26b9c"
source="
$pkgname-$pkgver.zip::https://github.com/MultiMC/MultiMC5/archive/$pkgver.zip
libnbtplus-$_libnbtpluscommit.zip::https://github.com/MultiMC/libnbtplusplus/archive/$_libnbtpluscommit.zip
quazip-$_quazipcommit.zip::https://github.com/MultiMC/quazip/archive/$_quazipcommit.zip
01-patch-jar-path.patch
"
builddir="$srcdir/MultiMC5-$pkgver"
build() {
export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
mv ../libnbtplusplus-"$_libnbtpluscommit"/* libraries/libnbtplusplus
mv ../quazip-"$_quazipcommit"/* libraries/quazip
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
cmake -B build \
-DCMAKE_INSTALL_PREFIX="$pkgdir"/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
-DMultiMC_LAYOUT=lin-system \
${CMAKE_CROSSOPTS} .
make -C build
}
check() {
make test -C build
}
package() {
install -D application/resources/multimc/scalable/multimc.svg "$pkgdir"/usr/share/pixmaps/multimc.svg
install -D application/package/linux/multimc.desktop "$pkgdir"/usr/share/applications/multimc.desktop
make install -C build
}
sha512sums="4f9d54233dd6559f6ff786d35a0cb409761d50ec5bbb239b058f103b8a540c0cd5095d1324e8f42a7f011faecd6d658aff28faecb959201f73d9183fa69303b0 multimc-0.6.11.zip
225f18b7cd7b56fbc9914b3e7db652ff98d8af44879cc82ad3ad511ee95d0d05b2b9efd572dea33bcbd8638d0dd80c8bf80c965a3580bc2de2b08cb6db783fd1 libnbtplus-dc72a20b7efd304d12af2025223fad07b4b78464.zip
a00c120fd0e8ad5d72ab261170bc84dc6f2a0eb656af1645ba5aa9087d13d45e623c08cc578afc6f30e6d701524653da0ab619a095e0414949fb2e1fcbcd1413 quazip-3691d57d3af13f49b2be2b62accddefee3c26b9c.zip
50fd5ad070d332e046aed9fbbd61ce3727b473a73ea66238befa9c0faf481a737fb969391f93375a6e9f5a35c9165e54e20db72e298a15277996df9d2950200e 01-patch-jar-path.patch"

View File

@ -0,0 +1,55 @@
From ab11be0becb90542f10d5713659b559842c53af2 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Tue, 29 Mar 2016 15:15:17 +0200
Subject: [PATCH] libavutil: clean up unused FF_SYMVER macro
There is nothing using it since commit d63443b9 (lavc: drop the
av_fast_{re,m}alloc compatibility wrappers).
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
libavutil/internal.h | 28 ----------------------------
1 file changed, 28 deletions(-)
diff --git a/libavutil/internal.h b/libavutil/internal.h
index 61784b5..69d63d5 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -187,34 +187,6 @@
#endif
/**
- * Define a function with only the non-default version specified.
- *
- * On systems with ELF shared libraries, all symbols exported from
- * FFmpeg libraries are tagged with the name and major version of the
- * library to which they belong. If a function is moved from one
- * library to another, a wrapper must be retained in the original
- * location to preserve binary compatibility.
- *
- * Functions defined with this macro will never be used to resolve
- * symbols by the build-time linker.
- *
- * @param type return type of function
- * @param name name of function
- * @param args argument list of function
- * @param ver version tag to assign function
- */
-#if HAVE_SYMVER_ASM_LABEL
-# define FF_SYMVER(type, name, args, ver) \
- type ff_##name args __asm__ (EXTERN_PREFIX #name "@" ver); \
- type ff_##name args
-#elif HAVE_SYMVER_GNU_ASM
-# define FF_SYMVER(type, name, args, ver) \
- __asm__ (".symver ff_" #name "," EXTERN_PREFIX #name "@" ver); \
- type ff_##name args; \
- type ff_##name args
-#endif
-
-/**
* Return NULL if a threading library has not been enabled.
* Used to disable threading functions in AVCodec definitions
* when not needed.
--
2.7.4

View File

@ -0,0 +1,83 @@
Upstream: Yes, https://github.com/FFmpeg/FFmpeg/commit/3e098cca6e51db0f19928c12d0348deaa17137b3
From 3e098cca6e51db0f19928c12d0348deaa17137b3 Mon Sep 17 00:00:00 2001
From: Lynne <dev@lynne.ee>
Date: Tue, 7 Jul 2020 16:01:58 +0100
Subject: [PATCH] aarch64/yuv2rgb_neon: fix return value
We return 0 for this particular architecture but should instead be
returning the number of lines.
Fixes users who check the return value matches what they expect.
---
libswscale/aarch64/swscale_unscaled.c | 31 ++++++++++++---------------
libswscale/aarch64/yuv2rgb_neon.S | 2 ++
2 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/libswscale/aarch64/swscale_unscaled.c b/libswscale/aarch64/swscale_unscaled.c
index 551daad9e353..c7a2a1037df8 100644
--- a/libswscale/aarch64/swscale_unscaled.c
+++ b/libswscale/aarch64/swscale_unscaled.c
@@ -42,15 +42,14 @@ static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[],
uint8_t *dst[], int dstStride[]) { \
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
\
- ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
- dst[0] + srcSliceY * dstStride[0], dstStride[0], \
- src[0], srcStride[0], \
- src[1], srcStride[1], \
- src[2], srcStride[2], \
- yuv2rgb_table, \
- c->yuv2rgb_y_offset >> 6, \
- c->yuv2rgb_y_coeff); \
- return 0; \
+ return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
+ dst[0] + srcSliceY * dstStride[0], dstStride[0], \
+ src[0], srcStride[0], \
+ src[1], srcStride[1], \
+ src[2], srcStride[2], \
+ yuv2rgb_table, \
+ c->yuv2rgb_y_offset >> 6, \
+ c->yuv2rgb_y_coeff); \
} \
#define DECLARE_FF_YUVX_TO_ALL_RGBX_FUNCS(yuvx) \
@@ -76,14 +75,12 @@ static int ifmt##_to_##ofmt##_neon_wrapper(SwsContext *c, const uint8_t *src[],
uint8_t *dst[], int dstStride[]) { \
const int16_t yuv2rgb_table[] = { YUV_TO_RGB_TABLE }; \
\
- ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
- dst[0] + srcSliceY * dstStride[0], dstStride[0], \
- src[0], srcStride[0], src[1], srcStride[1], \
- yuv2rgb_table, \
- c->yuv2rgb_y_offset >> 6, \
- c->yuv2rgb_y_coeff); \
- \
- return 0; \
+ return ff_##ifmt##_to_##ofmt##_neon(c->srcW, srcSliceH, \
+ dst[0] + srcSliceY * dstStride[0], dstStride[0], \
+ src[0], srcStride[0], src[1], srcStride[1], \
+ yuv2rgb_table, \
+ c->yuv2rgb_y_offset >> 6, \
+ c->yuv2rgb_y_coeff); \
} \
#define DECLARE_FF_NVX_TO_ALL_RGBX_FUNCS(nvx) \
diff --git a/libswscale/aarch64/yuv2rgb_neon.S b/libswscale/aarch64/yuv2rgb_neon.S
index b7446aa10511..f4b220fb608e 100644
--- a/libswscale/aarch64/yuv2rgb_neon.S
+++ b/libswscale/aarch64/yuv2rgb_neon.S
@@ -142,6 +142,7 @@
.macro declare_func ifmt ofmt
function ff_\ifmt\()_to_\ofmt\()_neon, export=1
load_args_\ifmt
+ mov w9, w1
1:
mov w8, w0 // w8 = width
2:
@@ -193,6 +194,7 @@ function ff_\ifmt\()_to_\ofmt\()_neon, export=1
increment_\ifmt
subs w1, w1, #1 // height -= 1
b.gt 1b
+ mov w0, w9
ret
endfunc
.endm

194
media/ffmpeg/APKBUILD Normal file
View File

@ -0,0 +1,194 @@
# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Jakub Skrzypnik <j.skrzypnik@openmailbox.org>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ffmpeg
pkgver=4.3.1
pkgrel=0
pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
url="https://ffmpeg.org/"
arch="all"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
options="!check" # tests/data/hls-lists.append.m3u8 fails
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
makedepends="
alsa-lib-dev
coreutils
bzip2-dev
gnutls-dev
imlib2-dev
lame-dev
libass-dev
libssh-dev
libtheora-dev
libva-dev
libvdpau-dev
libvorbis-dev
libvpx-dev
libxfixes-dev
opus-dev
perl-dev
pulseaudio-dev
sdl2-dev
v4l-utils-dev
x264-dev
x265-dev
xvidcore-dev
yasm
zlib-dev
dav1d-dev
vidstab-dev
vulkan-loader-dev
"
checkdepends="rsync"
source="https://ffmpeg.org/releases/ffmpeg-$pkgver.tar.xz
0001-libavutil-clean-up-unused-FF_SYMVER-macro.patch
3e098cca6e51db0f19928c12d0348deaa17137b3.patch
"
# secfixes:
# 4.3.1-r0:
# - CVE-2020-14212
# 4.3-r0:
# - CVE-2020-13904
# - CVE-2020-12284
# 4.2.1-r0:
# - CVE-2019-15942
# 4.2-r0:
# - CVE-2019-17539
# - CVE-2019-17542
# 4.1.4-r0:
# - CVE-2019-12730
# 4.1.3-r0:
# - CVE-2019-9718
# - CVE-2019-9721
# - CVE-2019-11338
# - CVE-2019-11339
# 4.1.1-r0:
# - CVE-2019-1000016
# 4.1-r0:
# - CVE-2018-13305
# - CVE-2018-15822
# 4.0.2-r0:
# - CVE-2018-13301
# - CVE-2018-13303
# - CVE-2018-13304
# - CVE-2018-1999010
# - CVE-2018-1999011
# - CVE-2018-1999012
# - CVE-2018-1999013
# - CVE-2018-1999014
# - CVE-2018-1999015
# 4.0.1-r0:
# - CVE-2018-12459
# - CVE-2018-12460
# 4.0.0-r0:
# - CVE-2018-6912
# - CVE-2018-7757
# - CVE-2018-9841
# 3.4.4-r0:
# - CVE-2018-14395
# 3.4.3-r0:
# - CVE-2018-7557
# - CVE-2018-7751
# - CVE-2018-10001
# - CVE-2018-12458
# - CVE-2018-13300
# - CVE-2018-13302
# - CVE-2018-14394
# 3.3.4-r0:
# - CVE-2017-14054
# - CVE-2017-14055
# - CVE-2017-14056
# - CVE-2017-14057
# - CVE-2017-14058
# - CVE-2017-14059
# - CVE-2017-14169
# - CVE-2017-14170
# - CVE-2017-14171
# - CVE-2017-14222
# - CVE-2017-14223
# - CVE-2017-14225
# add support for AV1 codec for all archies except armhf and armv7
# as aom is not available on them
_aom="";
case "$CARCH" in
x86|x86_64|aarch64|ppc64le|s390x )
_aom="--enable-libaom"; makedepends="$makedepends aom-dev" ;;
esac
build() {
local _dbg="--disable-debug"
local _asm=""
[ -n "$DEBUG" ] && _dbg="--enable-debug"
case "$CARCH" in
x86) _asm="--disable-asm" ;;
mips*) _asm="--disable-asm --disable-inline-asm --disable-mipsdsp --disable-mipsdspr2 --disable-msa --disable-msa2 --disable-mipsfpu --disable-mips64r6 --disable-mips64r2" ;;
esac
./configure \
--prefix=/usr \
--enable-avresample \
--enable-avfilter \
--enable-gnutls \
--enable-gpl \
--enable-libass \
--enable-libmp3lame \
--enable-libvorbis \
--enable-libvpx \
--enable-libxvid \
--enable-libx264 \
--enable-libx265 \
--enable-libtheora \
--enable-libv4l2 \
--enable-libdav1d \
--enable-postproc \
--enable-pic \
--enable-pthreads \
--enable-shared \
--enable-libxcb \
--enable-libssh \
--enable-libpulse \
--enable-libvidstab \
--disable-stripping \
--disable-static \
--disable-librtmp \
--enable-vaapi \
--enable-vdpau \
--enable-libopus \
--enable-vulkan \
$_asm $_aom $_dbg
make
${CC:-gcc} -o tools/qt-faststart $CFLAGS tools/qt-faststart.c
make doc/ffmpeg.1 doc/ffplay.1
}
# https://ffmpeg.org/fate.html
check() {
./configure \
--samples=fate-suite/
make fate-rsync
make fate-list
make fate
}
package() {
make DESTDIR="$pkgdir" install install-man
install -D -m755 tools/qt-faststart "$pkgdir/usr/bin/qt-faststart"
# strip --strip-debug "$pkgdir"/usr/lib/*.a
}
libs() {
pkgdesc="Libraries for ffmpeg"
replaces="ffmpeg"
mkdir -p "$subpkgdir"/usr
mv "$pkgdir"/usr/lib "$subpkgdir"/usr
}
sha512sums="64e1052c45145e27726e43d4fe49c9a92058e55562d34fd3b3adf54d3506e6bd680f016b748828215e1bfc8ce19aa85b6f7e4eb05fafe21479118a4ad528a81f ffmpeg-4.3.1.tar.xz
1047a23eda51b576ac200d5106a1cd318d1d5291643b3a69e025c0a7b6f3dbc9f6eb0e1e6faa231b7e38c8dd4e49a54f7431f87a93664da35825cc2e9e8aedf4 0001-libavutil-clean-up-unused-FF_SYMVER-macro.patch
7151e98829c215619b82e27fdff98b9a0d6a778f499170f3688e111a8bf7b2cc8895f09aa49bcb812ba5b5f06dd0243ebc79c31af246420f7d0869859b4a0241 3e098cca6e51db0f19928c12d0348deaa17137b3.patch"

View File

@ -0,0 +1,83 @@
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gst-plugins-good
pkgver=1.16.2
pkgrel=5
pkgdesc="GStreamer streaming media framework good plug-ins"
url="https://gstreamer.freedesktop.org"
arch="all"
license="GPL-2.0-or-later LGPL-2.0-or-later"
subpackages="$pkgname-lang $pkgname-gtk"
replaces="gst-plugins-good1"
makedepends="cairo-dev flac-dev gdk-pixbuf-dev glib-dev gst-plugins-base-dev
gstreamer-dev gtk+3.0-dev jack-dev lame-dev libavc1394-dev libcaca-dev
libdv-dev libgudev-dev libice-dev libiec61883-dev libjpeg-turbo-dev
libogg-dev libpng-dev libshout-dev libsm-dev libsoup-dev libvpx-dev
libxdamage-dev libxext-dev libxv-dev linux-headers meson mpg123-dev
orc-compiler orc-dev taglib-dev v4l-utils-dev wavpack-dev zlib-dev
pulseaudio-dev"
ldpath="/usr/lib/gstreamer-1.0"
source="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-$pkgver.tar.xz"
options="!check" # elements/souphttpsrc fails
case "$CARCH" in
armhf) ;;
*)
makedepends="$makedepends qt5-qtdeclarative-dev qt5-qtx11extras-dev"
subpackages="$subpackages $pkgname-qt"
;;
esac
# secfixes:
# 1.10.4-r0:
# - CVE-2017-5840
# - CVE-2017-5841
# - CVE-2017-5845
# - CVE-2016-9634
# - CVE-2016-9635
# - CVE-2016-9636
# - CVE-2016-9808
# - CVE-2016-10198
# - CVE-2016-10199
build() {
abuild-meson \
-Dpackage-origin="https://alpinelinux.org" \
-Dpackage-name="GStreamer good plug-ins (Alpine Linux)" \
. output
meson compile ${JOBS:+-j ${JOBS}} -C output
}
check() {
make check
}
package() {
export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
_mv() {
mkdir -p "$subpkgdir"/"$ldpath"
mv "$1" "$subpkgdir"/"$ldpath"
}
qt() {
pkgdesc="Gstreamer Qt plug-in"
find "$pkgdir" -type f | while read -r i; do
if ldd $i 2>/dev/null | grep -q "libQt"; then
_mv "$i"
fi
done
}
gtk() {
pkgdesc="Gstreamer gtk-3 plug-in"
find "$pkgdir" -type f | while read -r i; do
if ldd $i 2>/dev/null | grep -q "libgtk-3"; then
_mv "$i"
fi
done
}
sha512sums="ab0dfd51af3ea345db466618547c35c78b5f08e725096b66074a5a7e0a83ca25ac51d2d915b7a8c07b70f8e4c9fc65d51c1851f147a5a5a71fbca58e1eb5ffd4 gst-plugins-good-1.16.2.tar.xz"

View File

@ -0,0 +1,41 @@
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=qt5-qtmultimedia
pkgver=5.15.1
pkgrel=0
pkgdesc="Qt5 - Multimedia support"
url="https://www.qt.io/developers/"
arch="all !armhf" # armhf blocked by qt5-qtdeclarative
license="LGPL-2.1-only AND LGPL-3.0-only AND GPL-3.0-only AND Qt-GPL-exception-1.0"
makedepends="qt5-qtbase-dev qt5-qtdeclarative-dev libxv-dev pulseaudio-dev
gstreamer-dev gst-plugins-base-dev gst-plugins-bad-dev"
subpackages="$pkgname-dev"
builddir="$srcdir/qtmultimedia-everywhere-src-$pkgver"
case $pkgver in
*_beta*|*_rc*) _rel=development_releases;;
*) _rel=official_releases;;
esac
source="https://download.qt.io/$_rel/qt/${pkgver%.*}/$pkgver/submodules/qtmultimedia-everywhere-src-$pkgver.tar.xz"
build() {
qmake-qt5
make
}
check() {
make check
}
package() {
make INSTALL_ROOT="$pkgdir" install
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$pkgdir/usr/lib" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/$pkgname
}
sha512sums="9c063dc481c91a94ba151fa96166d04a83e1cdcdb66c5fa80c038bd973c87b928c3d90d1c8add7c3ec29c4dc7dceff9e8cf288ce980f95d199f37e90593104d9 qtmultimedia-everywhere-src-5.15.1.tar.xz"

View File

@ -0,0 +1,46 @@
From 59204d36985de5ba2444d5f3e0d50a119287ec51 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sat, 25 Jan 2020 12:04:32 +0100
Subject: [PATCH] mkinitfs: add optional support for pigz
pigz(1) is a parallel gzip implementation. As such, it significantly
faster than gzip(1). This patch uses pigz(1) instead of gzip(1),
if it is installed, otherwise it just falls back to gzip(1). This is
similar to the current pigz support in abuild.
Without this patch:
$ time mkinitfs
==> initramfs: creating /boot/initramfs-lts
real 0m 38.19s
user 0m 35.47s
sys 0m 0.49s
With this patch applied and pigz installed:
==> initramfs: creating /boot/initramfs-lts
real 0m 13.24s
user 0m 38.30s
sys 0m 0.56s
This change was discussed on IRC with _ikke_ and mps.
---
mkinitfs.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mkinitfs.in b/mkinitfs.in
index 9bd95f9..9676fce 100755
--- a/mkinitfs.in
+++ b/mkinitfs.in
@@ -278,7 +278,7 @@ if [ -z "$list_sources" ] && [ -z "$quiet" ]; then
fi
case "$initfscomp" in
- gzip) comp="gzip -9" ;;
+ gzip) comp="$(command -v pigz 2>/dev/null || echo gzip) -9" ;;
xz) cmd_exists xz; comp="xz -C crc32 -T 0" ;;
*) echo "Initramfs compression \"$initfscomp\" not supported!"; exit 1 ;;
esac
--
2.26.2

View File

@ -0,0 +1,28 @@
diff --git a/mkinitfs.in b/mkinitfs.in
index 9676fce..318c2f9 100755
--- a/mkinitfs.in
+++ b/mkinitfs.in
@@ -147,6 +147,15 @@ initfs_apk_keys() {
cp "${basedir}etc/apk/keys/"* "$tmpdir"/etc/apk/keys/
}
+initfs_custom_files() {
+ for file in "$custom_files"; do
+ if [ -f "$basedir"/$file ]; then
+ mkdir -p "$tmpdir"/${file%/*}
+ cp "$basedir"/$file "$tmpdir"/$file
+ fi
+ done
+}
+
initfs_cpio() {
if [ -n "$list_sources" ]; then
(cd "$tmpdir" && find . | sort)
@@ -287,6 +296,7 @@ initfs_base \
&& initfs_kmods \
&& initfs_firmware \
&& initfs_apk_keys \
+ && initfs_custom_files \
&& initfs_cpio
rc=$?

View File

@ -0,0 +1,7 @@
diff --git a/features.d/cryptsetup.files b/features.d/cryptsetup.files
index 902ce33..6ab9c19 100644
--- a/features.d/cryptsetup.files
+++ b/features.d/cryptsetup.files
@@ -1 +1,2 @@
/sbin/cryptsetup
+/usr/lib/libgcc_s.so.1

View File

@ -0,0 +1,34 @@
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mkinitfs
pkgver=3.4.5
_ver=${pkgver%_git*}
pkgrel=3
pkgdesc="Tool to generate initramfs images for Alpine"
url="https://git.alpinelinux.org/cgit/mkinitfs"
arch="all"
license="GPL-2.0-only"
# currently we do not ship any testsuite
options="!check"
makedepends_host="busybox kmod-dev util-linux-dev cryptsetup-dev linux-headers"
makedepends="$makedepends_host"
depends="busybox>=1.28.2-r1 apk-tools>=2.9.1 lddtree>=1.25 kmod"
subpackages="$pkgname-doc"
install="$pkgname.pre-upgrade $pkgname.post-install $pkgname.post-upgrade"
triggers="$pkgname.trigger=/usr/share/kernel/*"
source="https://dev.alpinelinux.org/archive/mkinitfs/mkinitfs-$_ver.tar.xz
0001-mkinitfs-add-optional-support-for-pigz.patch
0002-file-embed.patch
"
build() {
make VERSION=$pkgver-r$pkgrel
}
package() {
make install DESTDIR="$pkgdir"
}
sha512sums="e12f603dd9a51c0afbafeca7b4a061733514c4cf509b1dd61cc37c94e6102e5b3439d7a0379e1e4179aeaff13a382dab985c9737812e52803f038c1b2bb97cf8 mkinitfs-3.4.5.tar.xz
50411c3cddbfc49837d750620c57393dc8dfa7beb91f02816345fd66c8068b12d9aef266e50fd7cdc2b3b5fa81f477cbfaed00a2b264055cfd34b61ceb03e63a 0001-mkinitfs-add-optional-support-for-pigz.patch
83f6b283866da668b407d22e6fb7cceffec265e44daf5099e6cf83258176a9458265376d4dcc5d83f6f00992eceacd0284a8ad10f7651835749a603553d00810 0002-file-embed.patch"

View File

@ -0,0 +1,8 @@
#!/bin/sh
# safety. if nlplug-findfs is missing in the initramfs image we may end up
# with an unbootable system.
if ! grep -q -w /sbin/nlplug-findfs /etc/mkinitfs/features.d/base.files; then
echo "/sbin/nlplug-findfs" >> /etc/mkinitfs/features.d/base.files
fi

View File

@ -0,0 +1 @@
mkinitfs.post-install

View File

@ -0,0 +1,13 @@
#!/bin/sh
mkdir -p /etc/mkinitfs/features.d
for i in files modules; do
for j in /etc/mkinitfs/$i.d/*; do
[ -e "$j" ] || continue
case "$j" in
*.apk-new) continue;;
esac
mv $j /etc/mkinitfs/features.d/${j##*/}.$i
done
done
exit 0

View File

@ -0,0 +1,33 @@
#!/bin/sh
for i in "$@"; do
# get last element in path
flavor=${i##*/}
if ! [ -f "$i"/kernel.release ]; then
# kernel was uninstalled
rm -f $( readlink -f /boot/initramfs-$flavor ) \
/boot/initramfs-$flavor /boot/vmlinuz-$flavor \
/boot/$flavor /boot/$flavor.gz /$flavor /$flavor.gz
continue
fi
abi_release=$(cat "$i"/kernel.release)
initfs=initramfs-$flavor
mkinitfs -o /boot/$initfs $abi_release
done
# extlinux will use path relative partition, so if /boot is on a
# separate partition we want /boot/<kernel> resolve to /<kernel>
if ! [ -e /boot/boot ]; then
ln -sf . /boot/boot 2>/dev/null # silence error in case of FAT
fi
# cleanup unused initramfs
for i in /boot/initramfs-[0-9]*; do
[ -f $i ] || continue
if ! [ -f /boot/vmlinuz-${i#/boot/initramfs-} ]; then
rm "$i"
fi
done
sync
exit 0

34
suckless/dmenu/APKBUILD Normal file
View File

@ -0,0 +1,34 @@
# Contributor: Eivind Uggedal <eu@eju.no>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=dmenu
pkgver=5.0
pkgrel=0
pkgdesc="Dynamic menu for X"
url="https://tools.suckless.org/dmenu/"
arch="all"
license="MIT"
makedepends="libx11-dev libxinerama-dev libxft-dev"
options="!check"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://git.redxen.eu/caskd/$pkgname/archive/master.tar.gz"
builddir="$srcdir/$pkgname"
prepare() {
default_prepare
sed -i -e '/CFLAGS/{s/-Os//;s/=/+=/}' \
-e '/LDFLAGS/{s/=/+=/}' \
config.mk
}
build() {
make X11INC=/usr/include/X11 \
X11LIB=/usr/lib/X11 \
FREETYPEINC=/usr/include/freetype2
}
package() {
make DESTDIR=$pkgdir PREFIX=/usr install
}
sha512sums="c673147668ca6580dfd4cdf817d67480b32c7b1cbc47340f8d931fd439ac47e94b9c30cd40354b5092fe8c72ca2a3bf9a19988a3436e2d9ae1d764ab302ad208 dmenu-5.0.tar.gz"

37
suckless/dwm/APKBUILD Normal file
View File

@ -0,0 +1,37 @@
# Contributor: Gaber Ayoubi <gaber.ayoubi@gmail.com>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=dwm
pkgver=6.2
pkgrel=0
pkgdesc="dwm - dynamic window manager"
url="https://dwm.suckless.org"
arch="all"
options="!check"
license="MIT/X"
depends="dmenu st"
makedepends="libxft-dev libx11-dev libxinerama-dev"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://git.redxen.eu/caskd/$pkgname/archive/desktop.tar.gz"
builddir="$srcdir/$pkgname"
prepare() {
default_prepare
sed -i -e '/CFLAGS/{s/-Os//;s/=/+=/}' \
-e '/LDFLAGS/{s/=/+=/}' \
"$builddir"/config.mk
}
build() {
make X11INC=/usr/include/X11 \
X11LIB=/usr/lib/X11 \
FREETYPEINC=/usr/include/freetype2 \
-C "$builddir"
}
package() {
make PREFIX=/usr DESTDIR="$pkgdir" \
-C "$builddir" install
}
sha512sums="aa2ae91b894dc0d4242a1fbe2ed385db93acf5c3509019f5b1ddf373484c56907d1d902377cec2fd49326becb7f525de4b89823b8a56fdbca6288122b5c3e54c dwm-6.2.tar.gz"

32
suckless/slock/APKBUILD Normal file
View File

@ -0,0 +1,32 @@
# Contributor: Eivind Uggedal <eu@eju.no>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=slock
pkgver=1.4
pkgrel=0
pkgdesc="simple screen locker utility for X"
url="https://tools.suckless.org/slock/"
arch="all"
license="MIT"
makedepends="libx11-dev libxrandr-dev libxext-dev"
options="!check suid"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://git.redxen.eu/caskd/$pkgname/archive/master.tar.gz"
builddir="$srcdir/$pkgname"
prepare() {
default_prepare
sed -i -e '/CFLAGS/{s/-Os//;s/=/+=/}' \
-e '/LDFLAGS/{s/=/+=/}' \
config.mk
}
build() {
make X11INC=/usr/include/X11 \
X11LIB=/usr/lib/X11
}
package() {
make DESTDIR=$pkgdir PREFIX=/usr install
}
sha512sums="5722b27ba045f5f99309a1efafaa0e475538a0a5a6554e3da89407218faff8b3ad90a7cd5fbf9ded2670fb20ce8770ae2460e81a93df258ab96bad3fb5ed602b slock-1.4.tar.gz"

View File

@ -0,0 +1,33 @@
# Contributor: Eivind Uggedal <eu@eju.no>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=slstatus
pkgver=0
pkgrel=0
pkgdesc="slstatus is a suckless status monitor for window managers that use WM_NAME (e.g. dwm) or stdin to fill the status bar"
url="https://tools.suckless.org/slstatus/"
arch="all"
license="MIT"
makedepends="libx11-dev"
options="!check"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://git.redxen.eu/caskd/$pkgname/archive/master.tar.gz"
builddir="$srcdir/$pkgname"
prepare() {
default_prepare
sed -i -e '/CFLAGS/{s/-Os//;s/=/+=/}' \
-e '/LDFLAGS/{s/=/+=/}' \
config.mk
}
build() {
make X11INC=/usr/include/X11 \
X11LIB=/usr/lib/X11
}
package() {
make DESTDIR=$pkgdir PREFIX=/usr install
}
sha512sums="5f08b98c2ef4ffaf2b0733f88a9e11628d0d1a08ac42915365d196e753640ea85bad76caacd563190ab22385b51440122dd9ddf529b88ac0e735cc83595a9011 slstatus-0.tar.gz"

42
suckless/st/APKBUILD Normal file
View File

@ -0,0 +1,42 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=st
pkgver=0.8.4
pkgrel=0
pkgdesc="Simple terminal emulator for X"
url="https://st.suckless.org"
arch="all"
license="MIT"
depends="ncurses-terminfo-base"
makedepends="fontconfig-dev freetype-dev libx11-dev libxext-dev libxft-dev libxrender-dev"
subpackages="$pkgname-doc $pkgname-dbg"
source="$pkgname-$pkgver.tar.gz::https://git.redxen.eu/caskd/$pkgname/archive/master.tar.gz"
builddir="$srcdir/$pkgname"
prepare() {
default_prepare
sed -i '/tic/d' Makefile
}
build() {
make
}
package() {
make install PREFIX=/usr DESTDIR="$pkgdir"
mkdir -p "$pkgdir"/usr/share/applications
cat > "$pkgdir"/usr/share/applications/st.desktop <<-EOF
[Desktop Entry]
Name=st
Comment=st is a simple virtual terminal emulator for X which sucks less
Exec=st
Terminal=false
Type=Application
Icon=gnome-xterm
Categories=System;TerminalEmulator;
EOF
}
sha512sums="9aa4cbd39e1f25e73aad08f75c6ec1cee31e5e97266436fc42b9bd36a86f350c70843846feb76e49bb11fb1100c348cce7cdb534123f8e728ce330d1fb0bc429 st-0.8.4.tar.gz"

25
suckless/svkbd/APKBUILD Normal file
View File

@ -0,0 +1,25 @@
# Contributor: Alex Denes <caskd@redxen.eu>
# Maintainer: Alex Denes <caskd@redxen.eu>
pkgname=svkbd
pkgver=0.2.1
pkgrel=0
_branch=master
pkgdesc="Simple virtual keyboard for X, ships with an international mobile-optimised layout"
url="https://tools.suckless.org/x/svkbd/"
arch="all"
license="MIT"
subpackages="$pkgname-doc"
options="!check" # has no tests
makedepends="fontconfig-dev freetype-dev libx11-dev libxtst-dev libxft-dev libxinerama-dev"
source="$pkgname.tar.gz::https://git.redxen.eu/pinephone-mods/$pkgname/archive/$_branch.tar.gz"
builddir="$srcdir/$pkgname"
build() {
make
}
package() {
make PREFIX=/usr DESTDIR="$pkgdir" install
}
sha512sums="176dac99974a368d729916d26a2bd607c166fcee1304e18aab51d34d00cb9eb177111d80255bed362037fff0286cd3624d6fd5e95b306cb020c3907be84121d3 svkbd.tar.gz"