Compare commits

..

No commits in common. "packages/mozilla-firefox-sync-server" and "main" have entirely different histories.

109 changed files with 3905 additions and 163 deletions

View file

@ -1,31 +0,0 @@
pkgbase = mozilla-firefox-sync-server
pkgdesc = Mozilla Sync Server for built-in Firefox Sync
pkgver = 1.9.1
pkgrel = 1
url = https://mozilla-services.readthedocs.io/en/latest/howtos/run-sync-1.5.html
install = mozilla-firefox-sync-server.install
arch = i686
arch = x86_64
arch = arm
arch = armv6h
arch = armv7h
arch = aarch64
license = MPL2
depends = python2
depends = python2-virtualenv
optdepends = uwsgi-plugin-python2: Serve the webapp using uwsgi
optdepends = mozilla-firefox-account-server: Run your own firefox account server
options = !debug
backup = opt/mozilla-firefox-sync-server/syncserver.ini
source = https://github.com/mozilla-services/syncserver/archive/1.9.1.tar.gz
source = ffsync.service
source = ffsync.tmpfiles
sha256sums = dd12e7b4d97052ab5227151886a92ecbc368a987c4ad5fef7a9b759197a86c1f
sha256sums = 8664ad8361d6751aad47e86900270d2efd8b65d520248cd1c164432baba42212
sha256sums = 462bfdccc672339a03622dbe0a76a2df1b4293de8b240e82fe127a6befaa1a89
sha384sums = 8dfe5784a013c4b8af16bc9af4b1c1c7d36261c62d16e6b5afb986b473195e051f8b1d392db96c562c06095da0596c6f
sha384sums = a7384b5b55b2377ee4445e45bfd0545435c2a6a19730ff4219340e3c6e8a3b51fcb46e4215093df860f9fa99a0b471ab
sha384sums = 236b285f7e390d31cd13a0ac78c524acfbc8a7325d7b0b114b39f69a5963535d5f1f73bdef575728b2f6e81860c4ea16
pkgname = mozilla-firefox-sync-server

8
.editorconfig Normal file
View file

@ -0,0 +1,8 @@
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = tab
tab_width = 4

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
* text=auto eol=lf
*.install linguist-language=Shell

25
.gitignore vendored Normal file
View file

@ -0,0 +1,25 @@
# package src/pkg archives, downloaded sources
*.tar*
*.tgz
*.zip
# signed sources
*.asc
*.sig
# log files from makepkg --log (or extra-x86_64-build)
*.log
# subfolders, e.g. source or built package trees, vcs
*/**/
# backup files
*~
*.bak
# mkpkg status files, from soyuz.archlinux.org
.mkpkg_check
# staged packages and build chroot
/staged
/chroot

View file

@ -1,81 +0,0 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Jonas Heinrich <onny@project-insanity.org>
# Contributor: Timothée Ravier <tim@siosm.fr>
pkgname=mozilla-firefox-sync-server
pkgver=1.9.1
pkgrel=1
pkgdesc='Mozilla Sync Server for built-in Firefox Sync'
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
url='https://mozilla-services.readthedocs.io/en/latest/howtos/run-sync-1.5.html'
license=('MPL2')
depends=('python2' 'python2-virtualenv')
options=(!debug)
install="${pkgname}.install"
source=("https://github.com/mozilla-services/syncserver/archive/${pkgver}.tar.gz"
'ffsync.service'
'ffsync.tmpfiles')
sha256sums=('dd12e7b4d97052ab5227151886a92ecbc368a987c4ad5fef7a9b759197a86c1f'
'8664ad8361d6751aad47e86900270d2efd8b65d520248cd1c164432baba42212'
'462bfdccc672339a03622dbe0a76a2df1b4293de8b240e82fe127a6befaa1a89')
sha384sums=('8dfe5784a013c4b8af16bc9af4b1c1c7d36261c62d16e6b5afb986b473195e051f8b1d392db96c562c06095da0596c6f'
'a7384b5b55b2377ee4445e45bfd0545435c2a6a19730ff4219340e3c6e8a3b51fcb46e4215093df860f9fa99a0b471ab'
'236b285f7e390d31cd13a0ac78c524acfbc8a7325d7b0b114b39f69a5963535d5f1f73bdef575728b2f6e81860c4ea16')
backup=('opt/mozilla-firefox-sync-server/syncserver.ini')
optdepends=('uwsgi-plugin-python2: Serve the webapp using uwsgi'
'mozilla-firefox-account-server: Run your own firefox account server')
prepare() {
cd "syncserver-${pkgver}"
# Change default sqlite database location
sed -i "s|/tmp/syncserver.db|/var/lib/ffsync/sync_storage.db|g" syncserver.ini
sed -i "0,/^\#sqluri/s//sqluri/" syncserver.ini
# Remove obsolete parameter
sed -i "s| --no-site-packages||g" Makefile
}
build() {
cd "syncserver-${pkgver}"
make build
# MySQL support (should already be included)
#local/bin/pip install PyMySQL
# PostgreSQL support
#local/bin/pip install psycopg2
# There is no install target in the Makefile, so let's do some cleaning
rm -rf .git .gitignore Dockerfile Makefile MANIFEST.in README.rst setup.py \
local/bin/pep8 local/bin/build* local/bin/easy_install* local/bin/pip* \
local/COMPLETE
# Remove compiled python files as they may cause issues
find . -name '*.pyc' -delete
# Manually fix install path
find . -type f -exec sed -i "s|${srcdir}/syncserver-${pkgver}|/opt/${pkgname}|g" {} \;
}
check() {
cd "syncserver-${pkgver}"
#make test
}
package() {
cd "syncserver-${pkgver}"
# There is no install target in the Makefile, installing manually
install -dm 755 "${pkgdir}"/opt/${pkgname} "${pkgdir}"/var/lib/ffsync
cp -a * "${pkgdir}"/opt/${pkgname}
# Manually fix permissions
cd "${pkgdir}"/opt/${pkgname}
find . -exec chmod go-w {} \;
find . -type f -exec chmod a+r {} \;
install -Dm 644 "${srcdir}"/ffsync.service "${pkgdir}"/usr/lib/systemd/system/ffsync.service
install -Dm 644 "${srcdir}"/ffsync.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/ffsync.conf
}

5
README.md Normal file
View file

@ -0,0 +1,5 @@
# Arch Linux packages
These are PKGBUILDs for packages I maintain, used to maintain or do plan on uploading or just keep here for preservation.
I may also use these for an automated build system soon™ that pushes these packages automatically to a pacman repo I maintain.

24
UNLICENSE Normal file
View file

@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org/>

29
amdvlk-2023q3.3/.SRCINFO Normal file
View file

@ -0,0 +1,29 @@
pkgbase = amdvlk-2023q3.3
pkgdesc = AMD's standalone Vulkan driver for Pre-GFX10 GPUs (Vega, Polaris)
pkgver = 2023.Q3.3
pkgrel = 2
url = https://github.com/GPUOpen-Drivers
arch = x86_64
license = MIT
makedepends = perl-xml-xpath
makedepends = python
makedepends = wayland
makedepends = libxrandr
makedepends = xorg-server-devel
makedepends = directx-shader-compiler
makedepends = glslang
makedepends = cmake
makedepends = ninja
makedepends = git
provides = amdvlk
provides = vulkan-driver
conflicts = amdvlk
options = !lto
source = https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-2023.Q3.3.tar.gz
sha512sums = 19e799030daee33d516f1276e08cd598a8ea7f8341b3955bda31b8576459486dbd3401d33670bfabb1872341025716e9610a8e9c4072a07a206eac90bd0f6ace
pkgname = amdvlk-2023q3.3
depends = glibc
depends = gcc-libs
depends = zlib
depends = zstd

64
amdvlk-2023q3.3/PKGBUILD Normal file
View file

@ -0,0 +1,64 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Laurent Carlier <lordheavym@gmail.com>
# Contributor: lod <aur@cyber-anlage.de>
pkgname=amdvlk-2023q3.3
_pkgname=amdvlk
pkgver=2023.Q3.3
pkgrel=2
pkgdesc="AMD's standalone Vulkan driver for Pre-GFX10 GPUs (Vega, Polaris)"
arch=('x86_64')
url="https://github.com/GPUOpen-Drivers"
license=('MIT')
provides=("${_pkgname}" 'vulkan-driver')
conflicts=("${_pkgname}")
makedepends=('perl-xml-xpath' 'python' 'wayland' 'libxrandr' 'xorg-server-devel' 'directx-shader-compiler' 'glslang' 'cmake' 'ninja' 'git')
options=('!lto')
source=("https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-${pkgver}.tar.gz")
sha512sums=('19e799030daee33d516f1276e08cd598a8ea7f8341b3955bda31b8576459486dbd3401d33670bfabb1872341025716e9610a8e9c4072a07a206eac90bd0f6ace')
prepare() {
local nrepos path name revision
nrepos=$(xpath -q -e //project AMDVLK-v-${pkgver}/default.xml | wc -l)
while (($nrepos>0))
do
path=$(xpath -q -e //project[$nrepos]/@path AMDVLK-v-${pkgver}/default.xml | sed 's/ path="drivers\/\(.*\)"/\1/g')
name=$(xpath -q -e //project[$nrepos]/@name AMDVLK-v-${pkgver}/default.xml | sed 's/ name="\(.*\)"/\1/g')
revision=$(xpath -q -e //project[$nrepos]/@revision AMDVLK-v-${pkgver}/default.xml | sed 's/ revision="\(.*\)"/\1/g')
git clone --recurse-submodules https://github.com/GPUOpen-Drivers/$name $path
pushd $path
git checkout $revision
git submodule update
popd
(( nrepos-- ))
done
}
build() {
cd ${srcdir}/xgl
cmake -H. -Bbuilds/Release64 \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_WAYLAND_SUPPORT=On \
-G Ninja
ninja -C builds/Release64
}
package() {
depends=('glibc' 'gcc-libs' 'zlib' 'zstd')
install -m755 -d "${pkgdir}"/usr/lib
install -m755 -d "${pkgdir}"/usr/share/vulkan/icd.d
install -m755 -d "${pkgdir}"/usr/share/vulkan/implicit_layer.d
install -m755 -d "${pkgdir}"/usr/share/licenses/${_pkgname}
install xgl/builds/Release64/icd/amdvlk64.so "${pkgdir}"/usr/lib/
install xgl/builds/Release64/icd/amd_icd64.json "${pkgdir}"/usr/share/vulkan/icd.d/
install xgl/builds/Release64/icd/amd_icd64.json "${pkgdir}"/usr/share/vulkan/implicit_layer.d/
install AMDVLK-v-${pkgver}/LICENSE.txt "${pkgdir}"/usr/share/licenses/${_pkgname}/
sed -i "s#/lib64#/lib#g" "${pkgdir}"/usr/share/vulkan/icd.d/amd_icd64.json
sed -i "s#/lib64#/lib#g" "${pkgdir}"/usr/share/vulkan/implicit_layer.d/amd_icd64.json
}

19
bino/.SRCINFO Normal file
View file

@ -0,0 +1,19 @@
pkgbase = bino
pkgdesc = A video player with focus on 3D and Virtual Reality
pkgver = 2.3
pkgrel = 1
url = https://bino3d.org/
arch = x86_64
license = GPL-3.0-or-later
makedepends = cmake
makedepends = qt6-tools
depends = qt6-multimedia
depends = qt6-svg
depends = qvr
source = https://bino3d.org/releases/bino-2.3.tar.gz
source = https://bino3d.org/releases/bino-2.3.tar.gz.sig
validpgpkeys = 2F61B4828BBA779AECB3F32703A2A4AB1E32FD34
sha512sums = 9750deb7e777237c87d3bd1e7d5411b23b55c4c3bac5361848effb59c3253fb4f9355fddbae62c922026318c349657a7fdfecdf4041cd756a92f0440c1e29f4c
sha512sums = SKIP
pkgname = bino

31
bino/PKGBUILD Normal file
View file

@ -0,0 +1,31 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: gruenfron <https://aur.archlinux.org/account/gruenfron>
# Contributor: Jose Riha <jose1711 gmail com>
# Contributor: archtux <antonio dot arias99999 at gmail dot com>
pkgname=bino
pkgver=2.3
pkgrel=1
pkgdesc='A video player with focus on 3D and Virtual Reality'
arch=('x86_64')
url='https://bino3d.org/'
license=('GPL-3.0-or-later')
depends=('qt6-multimedia' 'qt6-svg' 'qvr')
makedepends=('cmake' 'qt6-tools')
source=(https://bino3d.org/releases/$pkgname-$pkgver.tar.gz{,.sig})
sha512sums=('9750deb7e777237c87d3bd1e7d5411b23b55c4c3bac5361848effb59c3253fb4f9355fddbae62c922026318c349657a7fdfecdf4041cd756a92f0440c1e29f4c'
'SKIP')
validpgpkeys=('2F61B4828BBA779AECB3F32703A2A4AB1E32FD34')
build() {
cmake -B build -S "$pkgname-$pkgver" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}

36
check-gvisor.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/sh
VERSION="$(echo $1 | jq -Rr @html)"
BINARY='runsc'
SHIM='containerd-shim-runsc-v1'
URL_BASE="https://storage.googleapis.com/gvisor/releases/release/"
URL="${URL_BASE}${VERSION}/$(uname -m)/"
URL_X64="${URL_BASE}${VERSION}/x86_64/"
URL_ARM="${URL_BASE}${VERSION}/aarch64/"
STATUS=$(curl -s -o /dev/null -I -w "%{http_code}" "${URL}${BINARY}")
EXIT=0
case $STATUS in
200)
echo "Release: ${VERSION}"
echo ""
echo "x86_64 sha512:"
echo "$(curl -s ${URL_X64}${BINARY}.sha512)"
echo "$(curl -s ${URL_X64}${SHIM}.sha512)"
echo ""
echo "aarch64 sha512:"
echo "$(curl -s ${URL_ARM}${BINARY}.sha512)"
echo "$(curl -s ${URL_ARM}${SHIM}.sha512)"
;;
404)
echo "Release ${VERSION} not found"
EXIT=1
;;
*)
echo "Error occured with status ${STATUS}"
EXIT=2
;;
esac
exit $EXIT

View file

@ -0,0 +1,37 @@
pkgbase = clonezilla-unstable
pkgdesc = ncurses partition and disk imaging/cloning program
pkgver = 5.7.6
pkgrel = 1
url = https://clonezilla.org
arch = any
license = GPL-2.0-or-later
depends = drbl
depends = partclone
depends = ntfs-3g
depends = partimage
depends = pigz
depends = sshfs
depends = parted
depends = gptfdisk
depends = dosfstools
depends = gzip
depends = bzip2
depends = pbzip2
depends = lbzip2
depends = lrzip
depends = xz
depends = pixz
depends = lzop
depends = ecryptfs-utils
depends = screen
depends = perl
depends = cifs-utils
provides = clonezilla
conflicts = clonezilla
backup = etc/drbl/drbl-ocs.conf
source = https://free.nchc.org.tw/drbl-core/src/unstable/clonezilla-5.7.6.tar.xz
source = usrbin.patch
sha512sums = f2dbb53059e1c0ff2ac282c820a3216b8e1a95102bf8443c69453fe201b179e18b80ab6e591bd624a7b5a1173bf7764754bc7f608d3af0a7d625de6632ebe9b9
sha512sums = 39e63eaa18ffaed7fe9a2dde449c8b57d4a3dc313024213881bd620d0011671bb7f8a0346df7c247c2da94f8d82afb669057cb05dd9cefffafb680826544d6ac
pkgname = clonezilla-unstable

View file

@ -0,0 +1,32 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=clonezilla-unstable
_pkgname=clonezilla
pkgver=5.7.6
pkgrel=1
pkgdesc="ncurses partition and disk imaging/cloning program"
arch=('any')
url="https://clonezilla.org"
license=('GPL-2.0-or-later')
depends=('drbl' 'partclone' 'ntfs-3g' 'partimage' 'pigz' 'sshfs' 'parted'
'gptfdisk' 'dosfstools' 'gzip' 'bzip2' 'pbzip2' 'lbzip2' 'lrzip'
'xz' 'pixz' 'lzop' 'ecryptfs-utils' 'screen' 'perl' 'cifs-utils')
backup=('etc/drbl/drbl-ocs.conf')
conflicts=("${_pkgname}")
provides=("${_pkgname}")
source=("https://free.nchc.org.tw/drbl-core/src/unstable/${_pkgname}-${pkgver}.tar.xz"
'usrbin.patch')
sha512sums=('f2dbb53059e1c0ff2ac282c820a3216b8e1a95102bf8443c69453fe201b179e18b80ab6e591bd624a7b5a1173bf7764754bc7f608d3af0a7d625de6632ebe9b9'
'39e63eaa18ffaed7fe9a2dde449c8b57d4a3dc313024213881bd620d0011671bb7f8a0346df7c247c2da94f8d82afb669057cb05dd9cefffafb680826544d6ac')
prepare() {
cd "${_pkgname}-${pkgver}"
patch -Np0 -i "${srcdir}/usrbin.patch"
}
package() {
cd "${_pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" install
}

View file

@ -0,0 +1,13 @@
--- Makefile.orig 2013-05-30 17:42:49.851418658 +0100
+++ Makefile 2013-05-30 17:44:41.157482402 +0100
@@ -18,8 +18,8 @@
install:
# install exec files
- install -d ${DESTDIR}/usr/
- cp -a sbin bin ${DESTDIR}/usr/
+ install -d ${DESTDIR}/usr/bin
+ cp -a sbin/* bin/* ${DESTDIR}/usr/bin/
# install setup dir
install -d $(DESTDIR)/$(SHAREDIR)/

View file

@ -0,0 +1,33 @@
pkgbase = discord-electron-openasar
pkgdesc = Discord packaged with OpenAsar using system provided electron (v33) for increased security and performance
pkgver = 0.0.75+832
pkgrel = 1
url = https://discord.com
install = discord-electron-openasar.install
arch = x86_64
license = custom
makedepends = git
makedepends = asar
makedepends = nodejs
makedepends = curl
depends = electron33
depends = libxss
depends = unzip
optdepends = libpulse: Pulseaudio support
optdepends = libappindicator-gtk3: Systray indicator support
optdepends = xdg-utils: Open files
optdepends = python-pyelftools: Required for Krisp patcher
optdepends = python-capstone: Required for Krisp patcher
provides = discord
conflicts = discord
options = !strip
source = https://dl.discordapp.net/apps/linux/0.0.75/discord-0.0.75.tar.gz
source = discord-launcher.sh
source = krisp-patcher.py
source = git+https://github.com/goosemod/openasar.git#commit=ef4470849624032a8eb7265eabd23158aa5a2356
sha512sums = 3c05f5ca4faebbe4973ffd977a17da6f398a1725fd3be18d9b025faf3ed7b99cb71e7b3219147492e1180b7b341b05886aeeb39f15a85b180b633db56c9821b7
sha512sums = 4497ff3df7e2c1e72eea09d6f36a80cabeabfd43bb03b0966795d45e10a02ea6b4c10407661092d057435e0d69d75e958a3dbb1dc5971a215ce09547ec56f666
sha512sums = 42cef68c1f7d574b4fbe859a4dc616e8994c7d16f62bcae3ff1f88e1edc58ac37b39c238d7defa9c97ceda417fcd6224cf0a0fd2608b8d18d0877e3c1befa59c
sha512sums = 0ae2aacd3939274d32fa4dcd80054c54f3d0571d803f775ec80f4c75ea52f2de90ec51ee46b4622222c8895225416068157f6985c493e39efcdc224c053d7ef0
pkgname = discord-electron-openasar

View file

@ -0,0 +1,93 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=discord-electron-openasar
_pkgname=discord
pkgver=0.0.75+832
_pkgver=${pkgver%%+*}
pkgrel=1
_electronver=33
_electronname="electron${_electronver}"
pkgdesc="Discord packaged with OpenAsar using system provided electron (v${_electronver}) for increased security and performance"
arch=('x86_64')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
url='https://discord.com'
license=('custom')
options=('!strip')
install="$pkgname.install"
depends=("${_electronname}" 'libxss' 'unzip')
makedepends=('git' 'asar' 'nodejs' 'curl')
optdepends=(
'libpulse: Pulseaudio support'
'libappindicator-gtk3: Systray indicator support'
'xdg-utils: Open files'
'python-pyelftools: Required for Krisp patcher'
'python-capstone: Required for Krisp patcher'
)
source=("https://dl.discordapp.net/apps/linux/${_pkgver}/${_pkgname}-${_pkgver}.tar.gz"
'discord-launcher.sh'
'krisp-patcher.py' # original: https://github.com/sersorrel/sys/blob/main/hm/discord/krisp-patcher.py
"git+https://github.com/goosemod/openasar.git#commit=ef4470849624032a8eb7265eabd23158aa5a2356")
sha512sums=('3c05f5ca4faebbe4973ffd977a17da6f398a1725fd3be18d9b025faf3ed7b99cb71e7b3219147492e1180b7b341b05886aeeb39f15a85b180b633db56c9821b7'
'4497ff3df7e2c1e72eea09d6f36a80cabeabfd43bb03b0966795d45e10a02ea6b4c10407661092d057435e0d69d75e958a3dbb1dc5971a215ce09547ec56f666'
'42cef68c1f7d574b4fbe859a4dc616e8994c7d16f62bcae3ff1f88e1edc58ac37b39c238d7defa9c97ceda417fcd6224cf0a0fd2608b8d18d0877e3c1befa59c'
'0ae2aacd3939274d32fa4dcd80054c54f3d0571d803f775ec80f4c75ea52f2de90ec51ee46b4622222c8895225416068157f6985c493e39efcdc224c053d7ef0')
# just in case I get the version wrong
pkgver() {
cd "${srcdir}/openasar"
printf "%s+%s" "$_pkgver" "$(git rev-list --count HEAD)"
}
prepare() {
# prepare launcher script
sed -i -e "s|@PKGNAME@|${_pkgname}|g" \
-e "s|@PKGVER@|${_pkgver}|g" \
-e "s|@ELECTRON@|${_electronname}|g" \
discord-launcher.sh
# fix the .desktop file
sed -i -e "s|Exec=.*|Exec=/usr/bin/${_pkgname}|" ${_pkgname^}/$_pkgname.desktop
# create the license files
curl -o LICENSE.html https://discord.com/terms
curl -o OSS-LICENSES.html https://discord.com/licenses
}
build() {
cd "${srcdir}"/openasar
# pack openasar
sed -i -e "s|nightly|nightly-$(git rev-parse HEAD | cut -c 1-7)|" src/index.js
sed -i -e "/config.setup = true/a\ config.autoupdate = false;" src/config/index.js
sed -i -e "s|process.resourcesPath|'/usr/lib/${_pkgname}/resources'|" src/utils/buildInfo.js
sed -i -e "s|^Exec=\${exec}$|Exec=/usr/bin/${_pkgname}|" \
-e "s|^Name=\${basename(exec)}$|Name=${_pkgname^}|" src/autoStart.js
node scripts/strip.js
asar p src app.asar
}
package() {
# create necessary directories
install -d "${pkgdir}"/usr/lib/$_pkgname
# copy relevant data
cp -r ${_pkgname^}/resources "${pkgdir}"/usr/lib/$_pkgname/
# intall icon and desktop file
install -Dm 644 ${_pkgname^}/$_pkgname.png "${pkgdir}"/usr/share/pixmaps/$_pkgname.png
install -Dm 644 ${_pkgname^}/$_pkgname.desktop "${pkgdir}"/usr/share/applications/$_pkgname.desktop
# overwrite Discord asar
install -Dm 644 openasar/app.asar "${pkgdir}"/usr/lib/$_pkgname/resources/
# install the launch script
install -Dm 755 discord-launcher.sh "${pkgdir}"/usr/bin/$_pkgname
# install krisp patcher
install -Dm 644 krisp-patcher.py "${pkgdir}"/usr/lib/$_pkgname/
# install licenses
install -Dm 644 LICENSE.html "${pkgdir}"/usr/share/licenses/$_pkgname/LICENSE.html
install -Dm 644 OSS-LICENSES.html "${pkgdir}"/usr/share/licenses/$_pkgname/OSS-LICENSES.html
}

View file

@ -0,0 +1,43 @@
post_upgrade() {
# return if old package version is greater than or equal to 0.0.55+827-1...
(( $(vercmp $2 '0.0.55+827-1') >= 0 )) && return
cat <<EOF
==> Instead of using 'rizin' to patch Krisp support a patcher written in Python
is now used. Consider installing the necessary optional dependencies to use
this feature.
EOF
# return if old package version is greater than or equal to 0.0.39+824-2...
(( $(vercmp $2 '0.0.39+824-2') >= 0 )) && return
cat <<EOF
==> In order to patch Krisp noise suppression support set 'PATCH_KRISP=true'
in '~/.config/discord.conf' in addition to having 'rizin' installed.
EOF
# return if old package version is greater than or equal to 0.0.27+809-5...
(( $(vercmp $2 '0.0.27+809-5') >= 0 )) && return
cat <<EOF
==> The launch script will now patch Krisp noise suppression support
if 'rizin' is installed. Restart your Discord client after update
to apply the patch.
EOF
# return if old package version is greater than or equal to 0.0.27+809-2...
(( $(vercmp $2 '0.0.27+809-2') >= 0 )) && return
cat <<EOF
==> You can now set additional Electron flags in '~/.config/discord-flags.conf'.
EOF
}
post_install() {
cat <<EOF
==> For Krisp noise suppression support consider installing the necessary optional
dependencies and setting 'PATCH_KRISP=true' in '~/.config/discord.conf'.
Restart your Discord client afterwards to apply the patch.
==> Additional Electron flags can be set in '~/.config/discord-flags.conf'.
EOF
}

View file

@ -0,0 +1,41 @@
#!/usr/bin/env bash
set -euo pipefail
declare -a flags
declare -l PATCH_KRISP
[[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@.conf" ]] && source "${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@.conf"
flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@-flags.conf"
krisp_bin="${DISCORD_USER_DATA_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@}/@PKGVER@/modules/@PKGNAME@_krisp/@PKGNAME@_krisp.node"
if [[ "${PATCH_KRISP:-}" == true ]] && [[ -w "${krisp_bin}" ]]; then
if hash python &> /dev/null && python -c 'import capstone; import elftools' &> /dev/null; then
# Patch Krisp binary to ignore signature check
echo -n 'Running Krisp patcher... '
python /usr/lib/@PKGNAME@/krisp-patcher.py "${krisp_bin}"
fi
fi
if [[ -r "${flags_file}" ]]; then
# Replacing because old flag does not work
if [[ -w "${flags_file}" ]] && grep -q '\--ignore-gpu-blacklist' "${flags_file}"; then
sed -i 's|--ignore-gpu-blacklist|--ignore-gpu-blocklist|' "${flags_file}"
fi
mapfile -t < "${flags_file}"
fi
for line in "${MAPFILE[@]}"; do
if [[ ! "${line}" =~ ^[[:space:]]*#.* ]] && [[ -n "${line}" ]]; then
flags+=("${line}")
fi
done
unset flags_file krisp_bin
exec /usr/lib/@ELECTRON@/electron \
/usr/lib/@PKGNAME@/resources/app.asar \
--ozone-platform-hint=auto \
"${flags[@]}" "$@"

View file

@ -0,0 +1,85 @@
import sys
import shutil
from elftools.elf.elffile import ELFFile
from capstone import *
from capstone.x86 import *
if len(sys.argv) < 2:
print(f"Usage: {sys.argv[0]} [path to discord_krisp.node]")
# "Unix programs generally use 2 for command line syntax errors and 1 for all other kind of errors."
sys.exit(2)
executable = sys.argv[1]
elf = ELFFile(open(executable, "rb"))
symtab = elf.get_section_by_name('.symtab')
krisp_initialize_address = symtab.get_symbol_by_name("_ZN7discordL17DoKrispInitializeEv")[0].entry.st_value
isSignedByDiscord_address = symtab.get_symbol_by_name("_ZN7discord4util17IsSignedByDiscordERKNSt4__Cr12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE")[0].entry.st_value
text = elf.get_section_by_name('.text')
text_start = text['sh_addr']
text_start_file = text['sh_offset']
# This seems to always be zero (.text starts at the right offset in the file). Do it just in case?
address_to_file = text_start_file - text_start
# Done with the ELF now.
# elf.close()
krisp_initialize_offset = krisp_initialize_address - address_to_file
isSignedByDiscord_offset = krisp_initialize_address - address_to_file
f = open(executable, "rb")
f.seek(krisp_initialize_offset)
krisp_initialize = f.read(96)
f.close()
# States
found_issigned_by_discord_call = False
found_issigned_by_discord_test = False
found_issigned_by_discord_je = False
found_already_patched = False
je_location = None
je_size = 0
# We are looking for a call to IsSignedByDiscord, followed by a test, followed by a je.
# Then we replace the je with nops.
md = Cs(CS_ARCH_X86, CS_MODE_64)
md.detail = True
for i in md.disasm(krisp_initialize, krisp_initialize_address):
if i.id == X86_INS_CALL:
if i.operands[0].type == X86_OP_IMM:
if i.operands[0].imm == isSignedByDiscord_address:
found_issigned_by_discord_call = True
if i.id == X86_INS_TEST:
if found_issigned_by_discord_call:
found_issigned_by_discord_test = True
if i.id == X86_INS_JE:
if found_issigned_by_discord_test:
found_issigned_by_discord_je = True
je_location = i.address
je_size = len(i.bytes)
break
if i.id == X86_INS_NOP:
if found_issigned_by_discord_test:
found_already_patched = True
break
if je_location:
print(f"Found patch location: 0x{je_location:x}")
shutil.copyfile(executable, executable + ".orig")
f = open(executable, 'rb+')
f.seek(je_location - address_to_file)
f.write(b'\x90' * je_size) # je can be larger than 2 bytes given a large enough displacement :(
f.close()
else:
if found_already_patched:
print("Couldn't find patch location - already patched.")
else:
print("Couldn't find patch location - review manually. Sorry.")

View file

@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -euo pipefail
readonly all_off="$(tput sgr0)"
readonly bold="${all_off}$(tput bold)"
readonly white="${bold}$(tput setaf 7)"
readonly blue="${bold}$(tput setaf 4)"
readonly red="${bold}$(tput setaf 1)"
msg() {
printf "${blue}::${white} $1${all_off}\n"
}
error() {
printf "${red}::${white} $1${all_off}\n"
}
msgbegin() {
printf "${blue}::${white} $1"
}
msgend() {
printf "$1${all_off}\n"
}
readonly krisp_zip='discord_krisp-1.zip'
readonly krisp_bin='discord_krisp.node'
# head to directory of this script
cd $(dirname "$0")
# update package to version used in PKGBUILD
source PKGBUILD
msg "Running updpkgsums (Updating checksums)"
updpkgsums
msg "Running mksrcinfo (Updating SRCINFO file)"
makepkg --printsrcinfo > .SRCINFO
msg "Getting Krisp module"
curl -O "https://dl.discordapp.net/apps/linux/${_pkgver:-${pkgver}}/modules/${krisp_zip}"
unzip "${krisp_zip}" "${krisp_bin}"
msg "Checking if Krisp module is patchable (watch output)"
python krisp-patcher.py "${krisp_bin}"
#msg "Updating Krisp module checksum"
#readonly chcksm=$(b2sum "${krisp_bin}.orig" | head -c 128)
#sed -i "s/^_krisp_b2sum='.*'$/_krisp_b2sum='${chcksm}'/" PKGBUILD
msgbegin "Cleaning up... "
rm -f "${krisp_zip}" "${krisp_bin}" "${krisp_bin}.orig"
msgend "Done"

28
discord-electron/.SRCINFO Normal file
View file

@ -0,0 +1,28 @@
pkgbase = discord-electron
pkgdesc = Discord using system provided electron (v33) for increased security and performance
pkgver = 0.0.75
pkgrel = 1
url = https://discord.com
install = discord-electron.install
arch = x86_64
license = custom
makedepends = asar
makedepends = curl
depends = electron33
depends = libxss
optdepends = libpulse: Pulseaudio support
optdepends = libappindicator-gtk3: Systray indicator support
optdepends = xdg-utils: Open files
optdepends = python-pyelftools: Required for Krisp patcher
optdepends = python-capstone: Required for Krisp patcher
provides = discord
conflicts = discord
options = !strip
source = https://dl.discordapp.net/apps/linux/0.0.75/discord-0.0.75.tar.gz
source = discord-launcher.sh
source = krisp-patcher.py
sha512sums = 3c05f5ca4faebbe4973ffd977a17da6f398a1725fd3be18d9b025faf3ed7b99cb71e7b3219147492e1180b7b341b05886aeeb39f15a85b180b633db56c9821b7
sha512sums = 4497ff3df7e2c1e72eea09d6f36a80cabeabfd43bb03b0966795d45e10a02ea6b4c10407661092d057435e0d69d75e958a3dbb1dc5971a215ce09547ec56f666
sha512sums = 42cef68c1f7d574b4fbe859a4dc616e8994c7d16f62bcae3ff1f88e1edc58ac37b39c238d7defa9c97ceda417fcd6224cf0a0fd2608b8d18d0877e3c1befa59c
pkgname = discord-electron

83
discord-electron/PKGBUILD Normal file
View file

@ -0,0 +1,83 @@
pkgname=discord-electron
_pkgname=discord
pkgver=0.0.75
pkgrel=1
_electronver=33
_electronname="electron${_electronver}"
pkgdesc="Discord using system provided electron (v${_electronver}) for increased security and performance"
arch=('x86_64')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
url='https://discord.com'
license=('custom')
options=('!strip')
install="$pkgname.install"
depends=("${_electronname}" 'libxss')
makedepends=('asar' 'curl')
optdepends=(
'libpulse: Pulseaudio support'
'libappindicator-gtk3: Systray indicator support'
'xdg-utils: Open files'
'python-pyelftools: Required for Krisp patcher'
'python-capstone: Required for Krisp patcher'
)
source=("https://dl.discordapp.net/apps/linux/${pkgver}/${_pkgname}-${pkgver}.tar.gz"
'discord-launcher.sh'
'krisp-patcher.py') # original: https://github.com/sersorrel/sys/blob/main/hm/discord/krisp-patcher.py
sha512sums=('3c05f5ca4faebbe4973ffd977a17da6f398a1725fd3be18d9b025faf3ed7b99cb71e7b3219147492e1180b7b341b05886aeeb39f15a85b180b633db56c9821b7'
'4497ff3df7e2c1e72eea09d6f36a80cabeabfd43bb03b0966795d45e10a02ea6b4c10407661092d057435e0d69d75e958a3dbb1dc5971a215ce09547ec56f666'
'42cef68c1f7d574b4fbe859a4dc616e8994c7d16f62bcae3ff1f88e1edc58ac37b39c238d7defa9c97ceda417fcd6224cf0a0fd2608b8d18d0877e3c1befa59c')
prepare() {
# prepare launcher script
sed -i -e "s|@PKGNAME@|${_pkgname}|g" \
-e "s|@PKGVER@|${pkgver}|g" \
-e "s|@ELECTRON@|${_electronname}|g" \
discord-launcher.sh
# fix the .desktop file
sed -i -e "s|Exec=.*|Exec=/usr/bin/${_pkgname}|" ${_pkgname^}/$_pkgname.desktop
# create the license files
curl -o LICENSE.html https://discord.com/terms
curl -o OSS-LICENSES.html https://discord.com/licenses
}
build() {
cd "${srcdir}"/${_pkgname^}
# use system electron
asar e resources/app.asar resources/app
rm resources/app.asar
sed -i -e "/resourcesPath = .*;$/d" -e "s|return resourcesPath|return '/usr/lib/${_pkgname}/resources'|" resources/app/common/paths.js
sed -i -e "s|process.resourcesPath|'/usr/lib/${_pkgname}/resources'|" resources/app/app_bootstrap/buildInfo.js
sed -i -e "/^const appName/d" -e "/^const exePath/d" -e "/^const exeDir/d" -e "/^const iconPath/d" \
-e "s|^Exec=\${exePath}$|Exec=/usr/bin/${_pkgname}|" \
-e "s|^Name=\${appName}$|Name=${_pkgname^}|" \
-e "s|^Icon=\${iconPath}$|Icon=/usr/share/pixmaps/${_pkgname}.png|" \
resources/app/app_bootstrap/autoStart/linux.js
asar p resources/app resources/app.asar
rm -rf resources/app
}
package() {
# create necessary directories
install -d "${pkgdir}"/usr/lib/$_pkgname
# copy relevant data
cp -r ${_pkgname^}/resources "${pkgdir}"/usr/lib/$_pkgname/
# intall icon and desktop file
install -Dm 644 ${_pkgname^}/$_pkgname.png "${pkgdir}"/usr/share/pixmaps/$_pkgname.png
install -Dm 644 ${_pkgname^}/$_pkgname.desktop "${pkgdir}"/usr/share/applications/$_pkgname.desktop
# install the launch script
install -Dm 755 discord-launcher.sh "${pkgdir}"/usr/bin/$_pkgname
# install krisp patcher
install -Dm 644 krisp-patcher.py "${pkgdir}"/usr/lib/$_pkgname/
# install licenses
install -Dm 644 LICENSE.html "${pkgdir}"/usr/share/licenses/$_pkgname/LICENSE.html
install -Dm 644 OSS-LICENSES.html "${pkgdir}"/usr/share/licenses/$_pkgname/OSS-LICENSES.html
}

View file

@ -0,0 +1,44 @@
post_upgrade() {
# return if old package version is greater than or equal to 0.0.55-1...
(( $(vercmp $2 '0.0.55-1') >= 0 )) && return
cat <<EOF
==> Instead of using 'rizin' to patch Krisp support a patcher written in Python
is now used. Consider installing the necessary optional dependencies to use
this feature.
EOF
# return if old package version is greater than or equal to 0.0.39-2...
(( $(vercmp $2 '0.0.39-2') >= 0 )) && return
cat <<EOF
==> In order to patch Krisp noise suppression support set 'PATCH_KRISP=true'
in '~/.config/discord.conf' in addition to having 'rizin' installed.
EOF
# return if old package version is greater than or equal to 0.0.27-5...
(( $(vercmp $2 '0.0.27-5') >= 0 )) && return
cat <<EOF
==> The launch script will now patch Krisp noise suppression support
if 'rizin' is installed. Restart your Discord client after update
to apply the patch.
EOF
# return if old package version is greater than or equal to 0.0.27-2...
(( $(vercmp $2 '0.0.27-2') >= 0 )) && return
cat <<EOF
==> You can now set additional Electron flags in '~/.config/discord-flags.conf'.
EOF
}
post_install() {
cat <<EOF
==> For Krisp noise suppression support consider installing the necessary optional
dependencies and setting 'PATCH_KRISP=true' in '~/.config/discord.conf'.
Restart your Discord client afterwards to apply the patch.
==> In case of performance problems consider setting additional flags
in '~/.config/discord-flags.conf'.
EOF
}

View file

@ -0,0 +1,41 @@
#!/usr/bin/env bash
set -euo pipefail
declare -a flags
declare -l PATCH_KRISP
[[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@.conf" ]] && source "${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@.conf"
flags_file="${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@-flags.conf"
krisp_bin="${DISCORD_USER_DATA_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/@PKGNAME@}/@PKGVER@/modules/@PKGNAME@_krisp/@PKGNAME@_krisp.node"
if [[ "${PATCH_KRISP:-}" == true ]] && [[ -w "${krisp_bin}" ]]; then
if hash python &> /dev/null && python -c 'import capstone; import elftools' &> /dev/null; then
# Patch Krisp binary to ignore signature check
echo -n 'Running Krisp patcher... '
python /usr/lib/@PKGNAME@/krisp-patcher.py "${krisp_bin}"
fi
fi
if [[ -r "${flags_file}" ]]; then
# Replacing because old flag does not work
if [[ -w "${flags_file}" ]] && grep -q '\--ignore-gpu-blacklist' "${flags_file}"; then
sed -i 's|--ignore-gpu-blacklist|--ignore-gpu-blocklist|' "${flags_file}"
fi
mapfile -t < "${flags_file}"
fi
for line in "${MAPFILE[@]}"; do
if [[ ! "${line}" =~ ^[[:space:]]*#.* ]] && [[ -n "${line}" ]]; then
flags+=("${line}")
fi
done
unset flags_file krisp_bin
exec /usr/lib/@ELECTRON@/electron \
/usr/lib/@PKGNAME@/resources/app.asar \
--ozone-platform-hint=auto \
"${flags[@]}" "$@"

View file

@ -0,0 +1,85 @@
import sys
import shutil
from elftools.elf.elffile import ELFFile
from capstone import *
from capstone.x86 import *
if len(sys.argv) < 2:
print(f"Usage: {sys.argv[0]} [path to discord_krisp.node]")
# "Unix programs generally use 2 for command line syntax errors and 1 for all other kind of errors."
sys.exit(2)
executable = sys.argv[1]
elf = ELFFile(open(executable, "rb"))
symtab = elf.get_section_by_name('.symtab')
krisp_initialize_address = symtab.get_symbol_by_name("_ZN7discordL17DoKrispInitializeEv")[0].entry.st_value
isSignedByDiscord_address = symtab.get_symbol_by_name("_ZN7discord4util17IsSignedByDiscordERKNSt4__Cr12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE")[0].entry.st_value
text = elf.get_section_by_name('.text')
text_start = text['sh_addr']
text_start_file = text['sh_offset']
# This seems to always be zero (.text starts at the right offset in the file). Do it just in case?
address_to_file = text_start_file - text_start
# Done with the ELF now.
# elf.close()
krisp_initialize_offset = krisp_initialize_address - address_to_file
isSignedByDiscord_offset = krisp_initialize_address - address_to_file
f = open(executable, "rb")
f.seek(krisp_initialize_offset)
krisp_initialize = f.read(96)
f.close()
# States
found_issigned_by_discord_call = False
found_issigned_by_discord_test = False
found_issigned_by_discord_je = False
found_already_patched = False
je_location = None
je_size = 0
# We are looking for a call to IsSignedByDiscord, followed by a test, followed by a je.
# Then we replace the je with nops.
md = Cs(CS_ARCH_X86, CS_MODE_64)
md.detail = True
for i in md.disasm(krisp_initialize, krisp_initialize_address):
if i.id == X86_INS_CALL:
if i.operands[0].type == X86_OP_IMM:
if i.operands[0].imm == isSignedByDiscord_address:
found_issigned_by_discord_call = True
if i.id == X86_INS_TEST:
if found_issigned_by_discord_call:
found_issigned_by_discord_test = True
if i.id == X86_INS_JE:
if found_issigned_by_discord_test:
found_issigned_by_discord_je = True
je_location = i.address
je_size = len(i.bytes)
break
if i.id == X86_INS_NOP:
if found_issigned_by_discord_test:
found_already_patched = True
break
if je_location:
print(f"Found patch location: 0x{je_location:x}")
shutil.copyfile(executable, executable + ".orig")
f = open(executable, 'rb+')
f.seek(je_location - address_to_file)
f.write(b'\x90' * je_size) # je can be larger than 2 bytes given a large enough displacement :(
f.close()
else:
if found_already_patched:
print("Couldn't find patch location - already patched.")
else:
print("Couldn't find patch location - review manually. Sorry.")

View file

@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -euo pipefail
readonly all_off="$(tput sgr0)"
readonly bold="${all_off}$(tput bold)"
readonly white="${bold}$(tput setaf 7)"
readonly blue="${bold}$(tput setaf 4)"
readonly red="${bold}$(tput setaf 1)"
msg() {
printf "${blue}::${white} $1${all_off}\n"
}
error() {
printf "${red}::${white} $1${all_off}\n"
}
msgbegin() {
printf "${blue}::${white} $1"
}
msgend() {
printf "$1${all_off}\n"
}
readonly krisp_zip='discord_krisp-1.zip'
readonly krisp_bin='discord_krisp.node'
# head to directory of this script
cd $(dirname "$0")
# update package to version used in PKGBUILD
source PKGBUILD
msg "Running updpkgsums (Updating checksums)"
updpkgsums
msg "Running mksrcinfo (Updating SRCINFO file)"
makepkg --printsrcinfo > .SRCINFO
msg "Getting Krisp module"
curl -O "https://dl.discordapp.net/apps/linux/${_pkgver:-${pkgver}}/modules/${krisp_zip}"
unzip "${krisp_zip}" "${krisp_bin}"
msg "Checking if Krisp module is patchable (watch output)"
python krisp-patcher.py "${krisp_bin}"
#msg "Updating Krisp module checksum"
#readonly chcksm=$(b2sum "${krisp_bin}.orig" | head -c 128)
#sed -i "s/^_krisp_b2sum='.*'$/_krisp_b2sum='${chcksm}'/" PKGBUILD
msgbegin "Cleaning up... "
rm -f "${krisp_zip}" "${krisp_bin}" "${krisp_bin}.orig"
msgend "Done"

19
ect/.SRCINFO Normal file
View file

@ -0,0 +1,19 @@
pkgbase = ect
pkgdesc = File compressor, supports postcompression of PNG, JPEG, GZIP and ZIP files
pkgver = 0.9.5
pkgrel = 2
url = https://github.com/fhanau/efficient-compression-tool
arch = x86_64
license = Apache-2.0
makedepends = nasm
makedepends = git
makedepends = cmake
depends = gcc-libs
source = git+https://github.com/fhanau/efficient-compression-tool.git#tag=v0.9.5
source = git+https://github.com/glennrp/libpng.git#commit=f135775ad4e5d4408d2e12ffcc71bb36e6b48551
source = git+https://github.com/fhanau/mozjpeg.git#commit=182457e3e26e1e078d5dbd09137cf04865be2e49
sha512sums = a1d0ad86aa8e6d720575daf7e833c3b787ac51595774b99b6fd4a8ece616150c2e2c174aa97a2bc0b89e16d6cd93ec0c0d657430c1a41bf08b121368af0a4abc
sha512sums = 13e286cf091b284d15888a959a8be5a90977bed92d861fd72d465199bd6112641b47d74a525d4100868d528a25921958e9ab579643b705befe48e5756ffa301f
sha512sums = 1bdd9efa8d9c49a16cf5f2135ed29dc120bc1b31eec7130802d22b3d09bf10fe337f734b39b38e422bbe6e1719aca6744d49e2b435c2cb94cbf401d89086947a
pkgname = ect

41
ect/PKGBUILD Normal file
View file

@ -0,0 +1,41 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
# Contributor: William J. Bowman <aur@williamjbowman.com>
pkgname=ect
_pkgname=efficient-compression-tool
pkgver=0.9.5
pkgrel=2
pkgdesc='File compressor, supports postcompression of PNG, JPEG, GZIP and ZIP files'
url="https://github.com/fhanau/$_pkgname"
arch=('x86_64')
license=('Apache-2.0')
depends=('gcc-libs')
makedepends=('nasm' 'git' 'cmake')
source=("git+$url.git#tag=v$pkgver"
'git+https://github.com/glennrp/libpng.git#commit=f135775ad4e5d4408d2e12ffcc71bb36e6b48551'
'git+https://github.com/fhanau/mozjpeg.git#commit=182457e3e26e1e078d5dbd09137cf04865be2e49')
sha512sums=('a1d0ad86aa8e6d720575daf7e833c3b787ac51595774b99b6fd4a8ece616150c2e2c174aa97a2bc0b89e16d6cd93ec0c0d657430c1a41bf08b121368af0a4abc'
'13e286cf091b284d15888a959a8be5a90977bed92d861fd72d465199bd6112641b47d74a525d4100868d528a25921958e9ab579643b705befe48e5756ffa301f'
'1bdd9efa8d9c49a16cf5f2135ed29dc120bc1b31eec7130802d22b3d09bf10fe337f734b39b38e422bbe6e1719aca6744d49e2b435c2cb94cbf401d89086947a')
prepare() {
cd "$_pkgname"
git submodule init
git config submodule.src/libpng.url "$srcdir"/libpng
git config submodule.src/mozjpeg.url "$srcdir"/mozjpeg
git -c protocol.file.allow=always submodule update
}
build() {
cmake -B build -S "$_pkgname"/src \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
# Some things expect this to be an all-caps name
ln -s ect "$pkgdir"/usr/bin/ECT
}

View file

@ -1,29 +0,0 @@
[Unit]
Description=Gunicorn server running Mozilla's Firefox Sync Server - Version 1.5
After=network.target
[Service]
Type=simple
ExecStart=/opt/mozilla-firefox-sync-server/local/bin/gunicorn --paste /opt/mozilla-firefox-sync-server/syncserver.ini
Restart=on-abort
User=ffsync
Group=http
UMask=007
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=full
ProtectHome=yes
SystemCallArchitectures=native
SystemCallFilter=~@clock @cpu-emulation @debug @keyring @module @mount @obsolete @raw-io
CapabilityBoundingSet=
AmbientCapabilities=
[Install]
WantedBy=multi-user.target

View file

@ -1 +0,0 @@
D /run/ffsync 0750 ffsync http

View file

@ -0,0 +1,29 @@
pkgbase = firefox-syncstorage
pkgdesc = Sync storage server with built-in token server for running a self-hosted firefox sync server
pkgver = 0.17.15
pkgrel = 1
url = https://github.com/mozilla-services/syncstorage-rs
install = firefox-syncstorage.install
arch = i686
arch = x86_64
arch = arm
arch = armv6h
arch = armv7h
arch = aarch64
license = MPL-2.0
makedepends = rust
makedepends = cmake
makedepends = pkgconf
makedepends = mariadb-libs
depends = openssl
depends = python-fxa
depends = python-tokenlib
optdepends = mysql: for use with a local database server
options = !lto
backup = etc/firefox-syncstorage.toml
source = https://github.com/mozilla-services/syncstorage-rs/archive/0.17.15/syncstorage-rs-0.17.15.tar.gz
source = firefox-syncstorage.service
sha512sums = 349e736da7edd2170c6f2c88d2d394a9a8ac1b1e359326a573baed614492c684b14cb3c38c0d56df17136569e66e33f568d9ba984d8e0b40300213041f433e60
sha512sums = 4c5fbb99160613ba3fb0fedce97f04f63b92699fe79c6edd899d4ec5f297c5a98c0c211df3eb9a6579c12c57f4c63513747ed8944a60fc76e32f1e0c0f5e3a95
pkgname = firefox-syncstorage

View file

@ -0,0 +1,37 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: jewelux <jewelux.aur@prejo.de>
# Based off the firefox-syncstorage-git PKGBUILD from jewelux
pkgname=firefox-syncstorage
_pkgname=syncstorage-rs
pkgver=0.17.15
pkgrel=1
pkgdesc='Sync storage server with built-in token server for running a self-hosted firefox sync server'
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
url="https://github.com/mozilla-services/${_pkgname}"
license=('MPL-2.0')
depends=('openssl' 'python-fxa' 'python-tokenlib')
makedepends=('rust' 'cmake' 'pkgconf' 'mariadb-libs')
optdepends=('mysql: for use with a local database server')
options=('!lto')
install="${pkgname}.install"
source=("https://github.com/mozilla-services/${_pkgname}/archive/${pkgver}/${_pkgname}-${pkgver}.tar.gz"
"${pkgname}.service")
sha512sums=('349e736da7edd2170c6f2c88d2d394a9a8ac1b1e359326a573baed614492c684b14cb3c38c0d56df17136569e66e33f568d9ba984d8e0b40300213041f433e60'
'4c5fbb99160613ba3fb0fedce97f04f63b92699fe79c6edd899d4ec5f297c5a98c0c211df3eb9a6579c12c57f4c63513747ed8944a60fc76e32f1e0c0f5e3a95')
backup=("etc/${pkgname}.toml")
build() {
cd "${_pkgname}-${pkgver}"
cargo build --release
}
package() {
cd "${_pkgname}-${pkgver}"
# Installing manually
install -Dm 755 target/release/syncserver "${pkgdir}"/usr/bin/"${pkgname}"
install -Dm 644 config/local.example.toml "${pkgdir}"/etc/"${pkgname}".toml
install -Dm 644 "${srcdir}/${pkgname}".service "${pkgdir}"/usr/lib/systemd/system/"${pkgname}".service
}

View file

@ -0,0 +1,11 @@
post_install() {
getent group syncstorage &>/dev/null || groupadd -r syncstorage >/dev/null
getent passwd syncstorage &>/dev/null || useradd -r -s /usr/bin/false \
-g syncstorage -G syncstorage syncstorage >/dev/null
}
pre_remove() {
getent passwd syncstorage &>/dev/null && userdel syncstorage >/dev/null
getent group syncstorage &>/dev/null && groupdel syncstorage >/dev/null
true
}

View file

@ -0,0 +1,24 @@
[Unit]
Description=Actix web server running Mozilla Firefox Sync Storage
Wants=mysql.service
After=network.target mysql.service
[Service]
ExecStart=/usr/bin/firefox-syncstorage --config=/etc/firefox-syncstorage.toml
Restart=on-abort
User=syncstorage
Group=syncstorage
UMask=007
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
[Install]
WantedBy=multi-user.target

19
florence/.SRCINFO Normal file
View file

@ -0,0 +1,19 @@
pkgbase = florence
pkgdesc = A configurable on-screen virtual keyboard
pkgver = 0.6.3
pkgrel = 3
url = http://sourceforge.net/projects/florence/
arch = i686
arch = x86_64
license = GPL-2.0-or-later
makedepends = intltool>=0.23
depends = gtk3
depends = libxml2
depends = librsvg
depends = libxtst
depends = gettext
depends = gstreamer>=1.0
source = http://sourceforge.net/projects/florence/files/florence/0.6.3/florence-0.6.3.tar.bz2
sha512sums = c527e8c40c9a594106420a6187945d79dfa7ddb4f628805cd188c8a37f79f42cbc1f74b80e21186f104a79c4d5e90c7a9d93cbe35bf1c6ebfe874db047fbef3c
pkgname = florence

36
florence/PKGBUILD Normal file
View file

@ -0,0 +1,36 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: UshakovVasilii <UshakovVasilii@yahoo.com>
# Contributor: Charon77 <evans.jahja@yahoo.com>
# Contributor: debdj <debd92@gmail.com>
pkgname=florence
pkgver=0.6.3
pkgrel=3
pkgdesc='A configurable on-screen virtual keyboard'
arch=('i686' 'x86_64')
url="http://sourceforge.net/projects/${pkgname}/"
license=('GPL-2.0-or-later')
depends=('gtk3' 'libxml2' 'librsvg' 'libxtst' 'gettext' 'gstreamer>=1.0') # http://florence.sourceforge.net/english/install.html
makedepends=('intltool>=0.23')
source=("http://sourceforge.net/projects/${pkgname}/files/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2")
sha512sums=('c527e8c40c9a594106420a6187945d79dfa7ddb4f628805cd188c8a37f79f42cbc1f74b80e21186f104a79c4d5e90c7a9d93cbe35bf1c6ebfe874db047fbef3c')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
./configure --prefix=/usr \
--without-notification \
--without-at-spi \
--with-panelapplet \
--with-xtst \
--with-docs \
--disable-static \
--without-docs
make -j1
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}"
make -j1 DESTDIR="${pkgdir}" install
}

21
gvisor-bin/.SRCINFO Normal file
View file

@ -0,0 +1,21 @@
pkgbase = gvisor-bin
pkgdesc = OCI container sandbox runtime focused on security, efficiency, and ease of use
pkgver = 20241104.0
pkgrel = 1
url = https://gvisor.dev
arch = x86_64
arch = aarch64
license = Apache-2.0
optdepends = docker: for Docker runtime support
provides = gvisor
conflicts = gvisor
source_x86_64 = runsc-x86_64-20241104.0::https://storage.googleapis.com/gvisor/releases/release/20241104.0/x86_64/runsc
source_x86_64 = containerd-shim-runsc-v1-x86_64-20241104.0::https://storage.googleapis.com/gvisor/releases/release/20241104.0/x86_64/containerd-shim-runsc-v1
sha512sums_x86_64 = cc7377e0edc89e1dc11b6c4b678ebc3df4f356baa6a0bf73b78fbb1483694b378592b731b7b27900cc0035ed747d6b35449cdce25bfb7e3a5be3bb11806cf5f7
sha512sums_x86_64 = 955254fba6c8199d6ee20aac2b7c0fde3aa97a752a827a7ef26d34f2e3ea5cdf27cb78648413dbc03e4278a5828c7a43240c6a5b2656029c62778fbee9e7c22c
source_aarch64 = runsc-aarch64-20241104.0::https://storage.googleapis.com/gvisor/releases/release/20241104.0/aarch64/runsc
source_aarch64 = containerd-shim-runsc-v1-aarch64-20241104.0::https://storage.googleapis.com/gvisor/releases/release/20241104.0/aarch64/containerd-shim-runsc-v1
sha512sums_aarch64 = 89cc1914b390e206cfd60ece8987338f501e35b771e9d55f775a392508c1c371119a937f0bd6c76857a60f73010b29f4baf124b1047d57e0a8bdbfb046cfba45
sha512sums_aarch64 = c24f4ba4a08eb8025d204cf83cb0bbdb72913ac63a5e91f600e66c3fcdb7f97817056e8c9045a3d47187da88f59e27bf417e92fbb12b593d42c633e1f895fb24
pkgname = gvisor-bin

2
gvisor-bin/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/runsc-*
/containerd-shim-runsc-v1-*

36
gvisor-bin/PKGBUILD Normal file
View file

@ -0,0 +1,36 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Brad Erhart <tocusso underscore malty at aleeas dot com>
pkgname='gvisor-bin'
_pkgbin='runsc'
_pkgshim='containerd-shim-runsc-v1'
pkgver=20241104.0
pkgrel=1
pkgdesc='OCI container sandbox runtime focused on security, efficiency, and ease of use'
arch=('x86_64' 'aarch64')
url='https://gvisor.dev'
license=('Apache-2.0')
optdepends=('docker: for Docker runtime support')
provides=(
"${pkgname%-bin}"
)
conflicts=(
"${pkgname%-bin}"
)
source_x86_64=(
"$_pkgbin-x86_64-$pkgver::https://storage.googleapis.com/${pkgname%-bin}/releases/release/$pkgver/x86_64/$_pkgbin"
"$_pkgshim-x86_64-$pkgver::https://storage.googleapis.com/${pkgname%-bin}/releases/release/$pkgver/x86_64/$_pkgshim"
)
source_aarch64=(
"$_pkgbin-aarch64-$pkgver::https://storage.googleapis.com/${pkgname%-bin}/releases/release/$pkgver/aarch64/$_pkgbin"
"$_pkgshim-aarch64-$pkgver::https://storage.googleapis.com/${pkgname%-bin}/releases/release/$pkgver/aarch64/$_pkgshim"
)
sha512sums_x86_64=('cc7377e0edc89e1dc11b6c4b678ebc3df4f356baa6a0bf73b78fbb1483694b378592b731b7b27900cc0035ed747d6b35449cdce25bfb7e3a5be3bb11806cf5f7'
'955254fba6c8199d6ee20aac2b7c0fde3aa97a752a827a7ef26d34f2e3ea5cdf27cb78648413dbc03e4278a5828c7a43240c6a5b2656029c62778fbee9e7c22c')
sha512sums_aarch64=('89cc1914b390e206cfd60ece8987338f501e35b771e9d55f775a392508c1c371119a937f0bd6c76857a60f73010b29f4baf124b1047d57e0a8bdbfb046cfba45'
'c24f4ba4a08eb8025d204cf83cb0bbdb72913ac63a5e91f600e66c3fcdb7f97817056e8c9045a3d47187da88f59e27bf417e92fbb12b593d42c633e1f895fb24')
package() {
install -Dm 755 "$_pkgbin-$CARCH-$pkgver" "$pkgdir/usr/bin/$_pkgbin"
install -Dm 755 "$_pkgshim-$CARCH-$pkgver" "$pkgdir/usr/bin/$_pkgshim"
}

17
gvisor-git/.SRCINFO Normal file
View file

@ -0,0 +1,17 @@
pkgbase = gvisor-git
pkgdesc = OCI container sandbox runtime focused on security, efficiency, and ease of use
pkgver = 20241104.0
pkgrel = 1
url = https://gvisor.dev
arch = x86_64
arch = aarch64
license = Apache-2.0
makedepends = git
makedepends = go
optdepends = docker: for Docker runtime support
provides = gvisor
conflicts = gvisor
source = git+https://github.com/google/gvisor#branch=go
sha512sums = SKIP
pkgname = gvisor-git

45
gvisor-git/PKGBUILD Normal file
View file

@ -0,0 +1,45 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Vincent Kobel (v@kobl.one)
pkgname='gvisor-git'
_pkgbin='runsc'
_pkgshim='containerd-shim-runsc-v1'
pkgver=20241104.0
pkgrel=1
pkgdesc='OCI container sandbox runtime focused on security, efficiency, and ease of use'
arch=('x86_64' 'aarch64')
url='https://gvisor.dev'
license=('Apache-2.0')
makedepends=('git' 'go')
optdepends=('docker: for Docker runtime support')
provides=(
"${pkgname%-git}"
)
conflicts=(
"${pkgname%-git}"
)
source=("git+https://github.com/google/${pkgname%-git}#branch=go")
sha512sums=('SKIP')
pkgver() {
cd "${pkgname%-git}"
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/release-//g;s/-/./g'
}
build() {
cd "${pkgname%-git}"
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOPATH="${srcdir}"
export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
go build -v -o "bin/$_pkgbin" -ldflags "-linkmode=external -compressdwarf=false -X gvisor.dev/gvisor/runsc/version.version=${pkgver}" gvisor.dev/gvisor/runsc
go build -v -o "bin/$_pkgshim" -ldflags "-linkmode=external -compressdwarf=false" gvisor.dev/gvisor/shim
}
package() {
cd "${pkgname%-git}"
install -Dm 755 "bin/$_pkgbin" "$pkgdir/usr/bin/$_pkgbin"
install -Dm 755 "bin/$_pkgshim" "$pkgdir/usr/bin/$_pkgshim"
}

View file

@ -0,0 +1,28 @@
pkgbase = lib32-amdvlk-2023q3.3
pkgdesc = AMD's standalone Vulkan driver for Pre-GFX10 GPUs (Vega, Polaris)
pkgver = 2023.Q3.3
pkgrel = 2
url = https://github.com/GPUOpen-Drivers
arch = x86_64
license = MIT
makedepends = perl-xml-xpath
makedepends = python
makedepends = lib32-wayland
makedepends = lib32-libxrandr
makedepends = xorg-server-devel
makedepends = cmake
makedepends = ninja
makedepends = git
depends = lib32-zstd
provides = lib32-amdvlk
provides = lib32-vulkan-driver
conflicts = lib32-amdvlk
options = !lto
source = https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-2023.Q3.3.tar.gz
sha512sums = 19e799030daee33d516f1276e08cd598a8ea7f8341b3955bda31b8576459486dbd3401d33670bfabb1872341025716e9610a8e9c4072a07a206eac90bd0f6ace
pkgname = lib32-amdvlk-2023q3.3
depends = lib32-glibc
depends = lib32-gcc-libs
depends = lib32-zlib
depends = lib32-zstd

View file

@ -0,0 +1,72 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Laurent Carlier <lordheavym@gmail.com>
# Contributor: lod <aur@cyber-anlage.de>
pkgname=lib32-amdvlk-2023q3.3
_pkgname=lib32-amdvlk
pkgver=2023.Q3.3
pkgrel=2
pkgdesc="AMD's standalone Vulkan driver for Pre-GFX10 GPUs (Vega, Polaris)"
arch=('x86_64')
url="https://github.com/GPUOpen-Drivers"
license=('MIT')
provides=("${_pkgname}" 'lib32-vulkan-driver')
conflicts=("${_pkgname}")
depends=('lib32-zstd')
makedepends=('perl-xml-xpath' 'python' 'lib32-wayland' 'lib32-libxrandr' 'xorg-server-devel' 'cmake' 'ninja' 'git')
options=('!lto')
source=("https://github.com/GPUOpen-Drivers/AMDVLK/archive/v-${pkgver}.tar.gz")
sha512sums=('19e799030daee33d516f1276e08cd598a8ea7f8341b3955bda31b8576459486dbd3401d33670bfabb1872341025716e9610a8e9c4072a07a206eac90bd0f6ace')
prepare() {
local nrepos path name revision
nrepos=$(xpath -q -e //project AMDVLK-v-${pkgver}/default.xml | wc -l)
while (($nrepos>0))
do
path=$(xpath -q -e //project[$nrepos]/@path AMDVLK-v-${pkgver}/default.xml | sed 's/ path="drivers\/\(.*\)"/\1/g')
name=$(xpath -q -e //project[$nrepos]/@name AMDVLK-v-${pkgver}/default.xml | sed 's/ name="\(.*\)"/\1/g')
revision=$(xpath -q -e //project[$nrepos]/@revision AMDVLK-v-${pkgver}/default.xml | sed 's/ revision="\(.*\)"/\1/g')
git clone --recurse-submodules https://github.com/GPUOpen-Drivers/$name $path
pushd $path
git checkout $revision
git submodule update
popd
(( nrepos-- ))
done
}
build() {
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
cd ${srcdir}/xgl
cmake -H. -Bbuilds/Release \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS=-m32 \
-DCMAKE_CXX_FLAGS=-m32 \
-DLLVM_TARGET_ARCH:STRING=i686 \
-DLLVM_DEFAULT_TARGET_TRIPLE="i686-pc-linux-gnu" \
-DBUILD_WAYLAND_SUPPORT=On \
-DVKI_RAY_TRACING=Off \
-G Ninja
ninja -C builds/Release
}
package() {
depends=('lib32-glibc' 'lib32-gcc-libs' 'lib32-zlib' 'lib32-zstd')
install -m755 -d "${pkgdir}"/usr/lib32
install -m755 -d "${pkgdir}"/usr/share/vulkan/icd.d
install -m755 -d "${pkgdir}"/usr/share/vulkan/implicit_layer.d
install -m755 -d "${pkgdir}"/usr/share/licenses/${_pkgname}
install xgl/builds/Release/icd/amdvlk32.so "${pkgdir}"/usr/lib32/
install xgl/builds/Release/icd/amd_icd32.json "${pkgdir}"/usr/share/vulkan/icd.d/
install xgl/builds/Release/icd/amd_icd32.json "${pkgdir}"/usr/share/vulkan/implicit_layer.d/
install AMDVLK-v-${pkgver}/LICENSE.txt "${pkgdir}"/usr/share/licenses/${_pkgname}/
sed -i "s/\/lib/\/lib32/g" "${pkgdir}"/usr/share/vulkan/icd.d/amd_icd32.json
sed -i "s/\/lib/\/lib32/g" "${pkgdir}"/usr/share/vulkan/implicit_layer.d/amd_icd32.json
}

27
libqxt/.SRCINFO Normal file
View file

@ -0,0 +1,27 @@
pkgbase = libqxt
pkgdesc = Provides a suite of cross-platform utility classes to add functionality not readily available in the Qt toolkit
pkgver = 0.6.2
pkgrel = 5
url = http://www.libqxt.org
arch = i686
arch = x86_64
license = CPL-1.0 OR LGPL-2.1-only
makedepends = avahi
makedepends = libxrandr
depends = qt4
depends = openssl
depends = db
optdepends = avahi: Zeroconf support
options = !emptydirs
source = http://bitbucket.org/libqxt/libqxt/get/v0.6.2.tar.bz2
source = libqxt-linking.patch
source = libqxt-media-keys.patch
source = libqxt-header-fix.patch
source = libqxt-gcc6.patch
sha512sums = 13bc6d33694b43b07a1f40c27641389e21c5b172d75ee2f5cca1b818dc6c89e5f7d458cc6085b00079ae0b6dc63bca20fb2522125d293845e24612124e8d2592
sha512sums = 6694fdea69fb0a84f4e8fc48c004f75599689624ca3a2b4cb60dd30115c8a2e3cd4e54a5a4e105050888d390610671f2e6087603135ccee9b899d1df24e982b9
sha512sums = 35c5374d86f5a16a2e1bf002a4e02e2f33aa819db0ec568a73822daf5174a23b6496d96977ca319b0c3d2f312f2e31d75cd6b9983a87c8cd1b20520d20d504a3
sha512sums = 01497cccc20ae7c39209cdb37260267e756d8e7bb276685019001f4288bff900b2aed0dcfefd5e2afdf411258bec078c4c0803a99eb218ceb230eed5f54ce958
sha512sums = 0f508074218c50aa004896038b6834b98a7a9a5f790b21db673d5c71536f7598be86fae0c0b674dc428fb102d987bedd752c6f5689b8062b9581cb92615f48c0
pkgname = libqxt

50
libqxt/PKGBUILD Normal file
View file

@ -0,0 +1,50 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: (epsilom) Xavier Corredor <xavier.corredor.llano (a) gmail.com>
# Contributor: Roberto Alsina <ralsina@kde.org>
# Contributor: Tim Besard <tim.besard@gmail.com>
pkgname=libqxt
pkgver=0.6.2
pkgrel=5
_pkgsuffix=dadc327c2a6a
pkgdesc='Provides a suite of cross-platform utility classes to add functionality not readily available in the Qt toolkit'
arch=('i686' 'x86_64')
url='http://www.libqxt.org'
license=('CPL-1.0 OR LGPL-2.1-only')
depends=('qt4' 'openssl' 'db')
makedepends=('avahi' 'libxrandr')
optdepends=('avahi: Zeroconf support')
options=('!emptydirs')
source=("http://bitbucket.org/${pkgname}/${pkgname}/get/v${pkgver}.tar.bz2"
'libqxt-linking.patch'
'libqxt-media-keys.patch'
'libqxt-header-fix.patch'
'libqxt-gcc6.patch')
sha512sums=('13bc6d33694b43b07a1f40c27641389e21c5b172d75ee2f5cca1b818dc6c89e5f7d458cc6085b00079ae0b6dc63bca20fb2522125d293845e24612124e8d2592'
'6694fdea69fb0a84f4e8fc48c004f75599689624ca3a2b4cb60dd30115c8a2e3cd4e54a5a4e105050888d390610671f2e6087603135ccee9b899d1df24e982b9'
'35c5374d86f5a16a2e1bf002a4e02e2f33aa819db0ec568a73822daf5174a23b6496d96977ca319b0c3d2f312f2e31d75cd6b9983a87c8cd1b20520d20d504a3'
'01497cccc20ae7c39209cdb37260267e756d8e7bb276685019001f4288bff900b2aed0dcfefd5e2afdf411258bec078c4c0803a99eb218ceb230eed5f54ce958'
'0f508074218c50aa004896038b6834b98a7a9a5f790b21db673d5c71536f7598be86fae0c0b674dc428fb102d987bedd752c6f5689b8062b9581cb92615f48c0')
prepare() {
cd "${srcdir}/${pkgname}-${pkgname}-${_pkgsuffix}"
patch -p1 -i '../libqxt-linking.patch'
patch -p1 -i '../libqxt-media-keys.patch'
patch -p1 -i '../libqxt-header-fix.patch'
patch -p1 -i '../libqxt-gcc6.patch'
}
build() {
cd "${srcdir}/${pkgname}-${pkgname}-${_pkgsuffix}"
./configure -qmake-bin '/usr/bin/qmake-qt4' \
-prefix '/usr' \
-libdir '/usr/lib' \
-docdir '/usr/share/doc'
make
#make docs
}
package() {
cd "${srcdir}/${pkgname}-${pkgname}-${_pkgsuffix}"
make INSTALL_ROOT="${pkgdir}" install
}

11
libqxt/libqxt-gcc6.patch Normal file
View file

@ -0,0 +1,11 @@
--- a/src/core/qxtslotjob.cpp 2011-11-24 16:10:32.000000000 -0600
+++ b/src/core/qxtslotjob.cpp 2016-03-07 16:20:32.758268253 -0600
@@ -174,7 +174,7 @@ This uses QxtSignalWaiter so it will _no
QVariant QxtFuture::delayedResult(int msec)
{
- if (!waiter->wait(msec, false))
+ if (!waiter->wait(msec, NULL))
return QVariant();
return job->result();
}

View file

@ -0,0 +1,19 @@
diff -rupN libqxt.old/src/network/qxtnetwork.h libqxt/src/network/qxtnetwork.h
--- libqxt.old/src/network/qxtnetwork.h 2010-11-07 09:18:41.000000000 -0500
+++ libqxt/src/network/qxtnetwork.h 2011-08-25 19:18:47.000000000 -0400
@@ -26,13 +26,13 @@
#define QXTNETWORK_H_INCLUDED
#include "qxtjsonrpcclient.h"
-#include "qxtjsonrpcresponse.h"
+#include "qxtjsonrpccall.h"
#include "qxtmailmessage.h"
#include "qxtmailattachment.h"
#include "qxtsmtp.h"
#include "qxtrpcpeer.h"
#include "qxttcpconnectionmanager.h"
#include "qxtxmlrpcclient.h"
-#include "qxtxmlrpcresponse.h"
+#include "qxtxmlrpccall.h"
#endif // QXTNETWORK_H_INCLUDED

View file

@ -0,0 +1,8 @@
diff -rupN libqxt.old/config.tests/xrandr/xrandr.pro libqxt/config.tests/xrandr/xrandr.pro
--- libqxt.old/config.tests/xrandr/xrandr.pro 2010-11-07 09:18:41.000000000 -0500
+++ libqxt/config.tests/xrandr/xrandr.pro 2010-11-25 05:28:29.000000000 -0500
@@ -5,3 +5,4 @@ DEPENDPATH += .
INCLUDEPATH += .
SOURCES += main.cpp
!win32:LIBS+=-lXrandr
+LIBS+=-lX11

View file

@ -0,0 +1,407 @@
diff -rupN libqxt.old/src/gui/keymapper_x11.h libqxt/src/gui/keymapper_x11.h
--- libqxt.old/src/gui/keymapper_x11.h 1969-12-31 19:00:00.000000000 -0500
+++ libqxt/src/gui/keymapper_x11.h 2010-07-18 15:37:16.000000000 -0400
@@ -0,0 +1,364 @@
+#ifndef KEYMAPPER_X11_H
+#define KEYMAPPER_X11_H
+
+// (davidsansome) Nicked from qkeymapper_x11.cpp
+
+#include <Qt>
+
+#define XK_MISCELLANY
+#define XK_LATIN1
+#define XK_KOREAN
+#define XK_XKB_KEYS
+#include <X11/keysymdef.h>
+
+//
+// Keyboard event translation
+//
+
+#ifndef XK_ISO_Left_Tab
+#define XK_ISO_Left_Tab 0xFE20
+#endif
+
+#ifndef XK_dead_hook
+#define XK_dead_hook 0xFE61
+#endif
+
+#ifndef XK_dead_horn
+#define XK_dead_horn 0xFE62
+#endif
+
+#ifndef XK_Codeinput
+#define XK_Codeinput 0xFF37
+#endif
+
+#ifndef XK_Kanji_Bangou
+#define XK_Kanji_Bangou 0xFF37 /* same as codeinput */
+#endif
+
+// Fix old X libraries
+#ifndef XK_KP_Home
+#define XK_KP_Home 0xFF95
+#endif
+#ifndef XK_KP_Left
+#define XK_KP_Left 0xFF96
+#endif
+#ifndef XK_KP_Up
+#define XK_KP_Up 0xFF97
+#endif
+#ifndef XK_KP_Right
+#define XK_KP_Right 0xFF98
+#endif
+#ifndef XK_KP_Down
+#define XK_KP_Down 0xFF99
+#endif
+#ifndef XK_KP_Prior
+#define XK_KP_Prior 0xFF9A
+#endif
+#ifndef XK_KP_Next
+#define XK_KP_Next 0xFF9B
+#endif
+#ifndef XK_KP_End
+#define XK_KP_End 0xFF9C
+#endif
+#ifndef XK_KP_Insert
+#define XK_KP_Insert 0xFF9E
+#endif
+#ifndef XK_KP_Delete
+#define XK_KP_Delete 0xFF9F
+#endif
+
+// the next lines are taken from XFree > 4.0 (X11/XF86keysyms.h), defining some special
+// multimedia keys. They are included here as not every system has them.
+#define XF86XK_Standby 0x1008FF10
+#define XF86XK_AudioLowerVolume 0x1008FF11
+#define XF86XK_AudioMute 0x1008FF12
+#define XF86XK_AudioRaiseVolume 0x1008FF13
+#define XF86XK_AudioPlay 0x1008FF14
+#define XF86XK_AudioStop 0x1008FF15
+#define XF86XK_AudioPrev 0x1008FF16
+#define XF86XK_AudioNext 0x1008FF17
+#define XF86XK_HomePage 0x1008FF18
+#define XF86XK_Calculator 0x1008FF1D
+#define XF86XK_Mail 0x1008FF19
+#define XF86XK_Start 0x1008FF1A
+#define XF86XK_Search 0x1008FF1B
+#define XF86XK_AudioRecord 0x1008FF1C
+#define XF86XK_Back 0x1008FF26
+#define XF86XK_Forward 0x1008FF27
+#define XF86XK_Stop 0x1008FF28
+#define XF86XK_Refresh 0x1008FF29
+#define XF86XK_Favorites 0x1008FF30
+#define XF86XK_AudioPause 0x1008FF31
+#define XF86XK_AudioMedia 0x1008FF32
+#define XF86XK_MyComputer 0x1008FF33
+#define XF86XK_OpenURL 0x1008FF38
+#define XF86XK_Launch0 0x1008FF40
+#define XF86XK_Launch1 0x1008FF41
+#define XF86XK_Launch2 0x1008FF42
+#define XF86XK_Launch3 0x1008FF43
+#define XF86XK_Launch4 0x1008FF44
+#define XF86XK_Launch5 0x1008FF45
+#define XF86XK_Launch6 0x1008FF46
+#define XF86XK_Launch7 0x1008FF47
+#define XF86XK_Launch8 0x1008FF48
+#define XF86XK_Launch9 0x1008FF49
+#define XF86XK_LaunchA 0x1008FF4A
+#define XF86XK_LaunchB 0x1008FF4B
+#define XF86XK_LaunchC 0x1008FF4C
+#define XF86XK_LaunchD 0x1008FF4D
+#define XF86XK_LaunchE 0x1008FF4E
+#define XF86XK_LaunchF 0x1008FF4F
+// end of XF86keysyms.h
+
+// Special keys used by Qtopia, mapped into the X11 private keypad range.
+#define QTOPIAXK_Select 0x11000601
+#define QTOPIAXK_Yes 0x11000602
+#define QTOPIAXK_No 0x11000603
+#define QTOPIAXK_Cancel 0x11000604
+#define QTOPIAXK_Printer 0x11000605
+#define QTOPIAXK_Execute 0x11000606
+#define QTOPIAXK_Sleep 0x11000607
+#define QTOPIAXK_Play 0x11000608
+#define QTOPIAXK_Zoom 0x11000609
+#define QTOPIAXK_Context1 0x1100060A
+#define QTOPIAXK_Context2 0x1100060B
+#define QTOPIAXK_Context3 0x1100060C
+#define QTOPIAXK_Context4 0x1100060D
+#define QTOPIAXK_Call 0x1100060E
+#define QTOPIAXK_Hangup 0x1100060F
+#define QTOPIAXK_Flip 0x11000610
+
+// keyboard mapping table
+static const unsigned int KeyTbl[] = {
+
+ // misc keys
+
+ XK_Escape, Qt::Key_Escape,
+ XK_Tab, Qt::Key_Tab,
+ XK_ISO_Left_Tab, Qt::Key_Backtab,
+ XK_BackSpace, Qt::Key_Backspace,
+ XK_Return, Qt::Key_Return,
+ XK_Insert, Qt::Key_Insert,
+ XK_Delete, Qt::Key_Delete,
+ XK_Clear, Qt::Key_Delete,
+ XK_Pause, Qt::Key_Pause,
+ XK_Print, Qt::Key_Print,
+ 0x1005FF60, Qt::Key_SysReq, // hardcoded Sun SysReq
+ 0x1007ff00, Qt::Key_SysReq, // hardcoded X386 SysReq
+
+ // cursor movement
+
+ XK_Home, Qt::Key_Home,
+ XK_End, Qt::Key_End,
+ XK_Left, Qt::Key_Left,
+ XK_Up, Qt::Key_Up,
+ XK_Right, Qt::Key_Right,
+ XK_Down, Qt::Key_Down,
+ XK_Prior, Qt::Key_PageUp,
+ XK_Next, Qt::Key_PageDown,
+
+ // modifiers
+
+ XK_Shift_L, Qt::Key_Shift,
+ XK_Shift_R, Qt::Key_Shift,
+ XK_Shift_Lock, Qt::Key_Shift,
+ XK_Control_L, Qt::Key_Control,
+ XK_Control_R, Qt::Key_Control,
+ XK_Meta_L, Qt::Key_Meta,
+ XK_Meta_R, Qt::Key_Meta,
+ XK_Alt_L, Qt::Key_Alt,
+ XK_Alt_R, Qt::Key_Alt,
+ XK_Caps_Lock, Qt::Key_CapsLock,
+ XK_Num_Lock, Qt::Key_NumLock,
+ XK_Scroll_Lock, Qt::Key_ScrollLock,
+ XK_Super_L, Qt::Key_Super_L,
+ XK_Super_R, Qt::Key_Super_R,
+ XK_Menu, Qt::Key_Menu,
+ XK_Hyper_L, Qt::Key_Hyper_L,
+ XK_Hyper_R, Qt::Key_Hyper_R,
+ XK_Help, Qt::Key_Help,
+ 0x1000FF74, Qt::Key_Backtab, // hardcoded HP backtab
+ 0x1005FF10, Qt::Key_F11, // hardcoded Sun F36 (labeled F11)
+ 0x1005FF11, Qt::Key_F12, // hardcoded Sun F37 (labeled F12)
+
+ // numeric and function keypad keys
+
+ XK_KP_Space, Qt::Key_Space,
+ XK_KP_Tab, Qt::Key_Tab,
+ XK_KP_Enter, Qt::Key_Enter,
+ //XK_KP_F1, Qt::Key_F1,
+ //XK_KP_F2, Qt::Key_F2,
+ //XK_KP_F3, Qt::Key_F3,
+ //XK_KP_F4, Qt::Key_F4,
+ XK_KP_Home, Qt::Key_Home,
+ XK_KP_Left, Qt::Key_Left,
+ XK_KP_Up, Qt::Key_Up,
+ XK_KP_Right, Qt::Key_Right,
+ XK_KP_Down, Qt::Key_Down,
+ XK_KP_Prior, Qt::Key_PageUp,
+ XK_KP_Next, Qt::Key_PageDown,
+ XK_KP_End, Qt::Key_End,
+ XK_KP_Begin, Qt::Key_Clear,
+ XK_KP_Insert, Qt::Key_Insert,
+ XK_KP_Delete, Qt::Key_Delete,
+ XK_KP_Equal, Qt::Key_Equal,
+ XK_KP_Multiply, Qt::Key_Asterisk,
+ XK_KP_Add, Qt::Key_Plus,
+ XK_KP_Separator, Qt::Key_Comma,
+ XK_KP_Subtract, Qt::Key_Minus,
+ XK_KP_Decimal, Qt::Key_Period,
+ XK_KP_Divide, Qt::Key_Slash,
+
+ // International input method support keys
+
+ // International & multi-key character composition
+ XK_ISO_Level3_Shift, Qt::Key_AltGr,
+ XK_Multi_key, Qt::Key_Multi_key,
+ XK_Codeinput, Qt::Key_Codeinput,
+ XK_SingleCandidate, Qt::Key_SingleCandidate,
+ XK_MultipleCandidate, Qt::Key_MultipleCandidate,
+ XK_PreviousCandidate, Qt::Key_PreviousCandidate,
+
+ // Misc Functions
+ XK_Mode_switch, Qt::Key_Mode_switch,
+ XK_script_switch, Qt::Key_Mode_switch,
+
+ // Japanese keyboard support
+ XK_Kanji, Qt::Key_Kanji,
+ XK_Muhenkan, Qt::Key_Muhenkan,
+ //XK_Henkan_Mode, Qt::Key_Henkan_Mode,
+ XK_Henkan_Mode, Qt::Key_Henkan,
+ XK_Henkan, Qt::Key_Henkan,
+ XK_Romaji, Qt::Key_Romaji,
+ XK_Hiragana, Qt::Key_Hiragana,
+ XK_Katakana, Qt::Key_Katakana,
+ XK_Hiragana_Katakana, Qt::Key_Hiragana_Katakana,
+ XK_Zenkaku, Qt::Key_Zenkaku,
+ XK_Hankaku, Qt::Key_Hankaku,
+ XK_Zenkaku_Hankaku, Qt::Key_Zenkaku_Hankaku,
+ XK_Touroku, Qt::Key_Touroku,
+ XK_Massyo, Qt::Key_Massyo,
+ XK_Kana_Lock, Qt::Key_Kana_Lock,
+ XK_Kana_Shift, Qt::Key_Kana_Shift,
+ XK_Eisu_Shift, Qt::Key_Eisu_Shift,
+ XK_Eisu_toggle, Qt::Key_Eisu_toggle,
+ //XK_Kanji_Bangou, Qt::Key_Kanji_Bangou,
+ //XK_Zen_Koho, Qt::Key_Zen_Koho,
+ //XK_Mae_Koho, Qt::Key_Mae_Koho,
+ XK_Kanji_Bangou, Qt::Key_Codeinput,
+ XK_Zen_Koho, Qt::Key_MultipleCandidate,
+ XK_Mae_Koho, Qt::Key_PreviousCandidate,
+
+#ifdef XK_KOREAN
+ // Korean keyboard support
+ XK_Hangul, Qt::Key_Hangul,
+ XK_Hangul_Start, Qt::Key_Hangul_Start,
+ XK_Hangul_End, Qt::Key_Hangul_End,
+ XK_Hangul_Hanja, Qt::Key_Hangul_Hanja,
+ XK_Hangul_Jamo, Qt::Key_Hangul_Jamo,
+ XK_Hangul_Romaja, Qt::Key_Hangul_Romaja,
+ //XK_Hangul_Codeinput, Qt::Key_Hangul_Codeinput,
+ XK_Hangul_Codeinput, Qt::Key_Codeinput,
+ XK_Hangul_Jeonja, Qt::Key_Hangul_Jeonja,
+ XK_Hangul_Banja, Qt::Key_Hangul_Banja,
+ XK_Hangul_PreHanja, Qt::Key_Hangul_PreHanja,
+ XK_Hangul_PostHanja, Qt::Key_Hangul_PostHanja,
+ //XK_Hangul_SingleCandidate,Qt::Key_Hangul_SingleCandidate,
+ //XK_Hangul_MultipleCandidate,Qt::Key_Hangul_MultipleCandidate,
+ //XK_Hangul_PreviousCandidate,Qt::Key_Hangul_PreviousCandidate,
+ XK_Hangul_SingleCandidate, Qt::Key_SingleCandidate,
+ XK_Hangul_MultipleCandidate,Qt::Key_MultipleCandidate,
+ XK_Hangul_PreviousCandidate,Qt::Key_PreviousCandidate,
+ XK_Hangul_Special, Qt::Key_Hangul_Special,
+ //XK_Hangul_switch, Qt::Key_Hangul_switch,
+ XK_Hangul_switch, Qt::Key_Mode_switch,
+#endif // XK_KOREAN
+
+ // dead keys
+ XK_dead_grave, Qt::Key_Dead_Grave,
+ XK_dead_acute, Qt::Key_Dead_Acute,
+ XK_dead_circumflex, Qt::Key_Dead_Circumflex,
+ XK_dead_tilde, Qt::Key_Dead_Tilde,
+ XK_dead_macron, Qt::Key_Dead_Macron,
+ XK_dead_breve, Qt::Key_Dead_Breve,
+ XK_dead_abovedot, Qt::Key_Dead_Abovedot,
+ XK_dead_diaeresis, Qt::Key_Dead_Diaeresis,
+ XK_dead_abovering, Qt::Key_Dead_Abovering,
+ XK_dead_doubleacute, Qt::Key_Dead_Doubleacute,
+ XK_dead_caron, Qt::Key_Dead_Caron,
+ XK_dead_cedilla, Qt::Key_Dead_Cedilla,
+ XK_dead_ogonek, Qt::Key_Dead_Ogonek,
+ XK_dead_iota, Qt::Key_Dead_Iota,
+ XK_dead_voiced_sound, Qt::Key_Dead_Voiced_Sound,
+ XK_dead_semivoiced_sound, Qt::Key_Dead_Semivoiced_Sound,
+ XK_dead_belowdot, Qt::Key_Dead_Belowdot,
+ XK_dead_hook, Qt::Key_Dead_Hook,
+ XK_dead_horn, Qt::Key_Dead_Horn,
+
+ // Special multimedia keys
+ // currently only tested with MS internet keyboard
+
+ // browsing keys
+ XF86XK_Back, Qt::Key_Back,
+ XF86XK_Forward, Qt::Key_Forward,
+ XF86XK_Stop, Qt::Key_Stop,
+ XF86XK_Refresh, Qt::Key_Refresh,
+ XF86XK_Favorites, Qt::Key_Favorites,
+ XF86XK_AudioMedia, Qt::Key_LaunchMedia,
+ XF86XK_OpenURL, Qt::Key_OpenUrl,
+ XF86XK_HomePage, Qt::Key_HomePage,
+ XF86XK_Search, Qt::Key_Search,
+
+ // media keys
+ XF86XK_AudioLowerVolume, Qt::Key_VolumeDown,
+ XF86XK_AudioMute, Qt::Key_VolumeMute,
+ XF86XK_AudioRaiseVolume, Qt::Key_VolumeUp,
+ XF86XK_AudioPlay, Qt::Key_MediaPlay,
+ XF86XK_AudioStop, Qt::Key_MediaStop,
+ XF86XK_AudioPrev, Qt::Key_MediaPrevious,
+ XF86XK_AudioNext, Qt::Key_MediaNext,
+ XF86XK_AudioRecord, Qt::Key_MediaRecord,
+
+ // launch keys
+ XF86XK_Mail, Qt::Key_LaunchMail,
+ XF86XK_MyComputer, Qt::Key_Launch0,
+ XF86XK_Calculator, Qt::Key_Launch1,
+ XF86XK_Standby, Qt::Key_Standby,
+
+ XF86XK_Launch0, Qt::Key_Launch2,
+ XF86XK_Launch1, Qt::Key_Launch3,
+ XF86XK_Launch2, Qt::Key_Launch4,
+ XF86XK_Launch3, Qt::Key_Launch5,
+ XF86XK_Launch4, Qt::Key_Launch6,
+ XF86XK_Launch5, Qt::Key_Launch7,
+ XF86XK_Launch6, Qt::Key_Launch8,
+ XF86XK_Launch7, Qt::Key_Launch9,
+ XF86XK_Launch8, Qt::Key_LaunchA,
+ XF86XK_Launch9, Qt::Key_LaunchB,
+ XF86XK_LaunchA, Qt::Key_LaunchC,
+ XF86XK_LaunchB, Qt::Key_LaunchD,
+ XF86XK_LaunchC, Qt::Key_LaunchE,
+ XF86XK_LaunchD, Qt::Key_LaunchF,
+
+ // Qtopia keys
+ QTOPIAXK_Select, Qt::Key_Select,
+ QTOPIAXK_Yes, Qt::Key_Yes,
+ QTOPIAXK_No, Qt::Key_No,
+ QTOPIAXK_Cancel, Qt::Key_Cancel,
+ QTOPIAXK_Printer, Qt::Key_Printer,
+ QTOPIAXK_Execute, Qt::Key_Execute,
+ QTOPIAXK_Sleep, Qt::Key_Sleep,
+ QTOPIAXK_Play, Qt::Key_Play,
+ QTOPIAXK_Zoom, Qt::Key_Zoom,
+ QTOPIAXK_Context1, Qt::Key_Context1,
+ QTOPIAXK_Context2, Qt::Key_Context2,
+ QTOPIAXK_Context3, Qt::Key_Context3,
+ QTOPIAXK_Context4, Qt::Key_Context4,
+ QTOPIAXK_Call, Qt::Key_Call,
+ QTOPIAXK_Hangup, Qt::Key_Hangup,
+ QTOPIAXK_Flip, Qt::Key_Flip,
+
+ 0, 0
+};
+
+#endif // KEYMAPPER_X11_H
diff -rupN libqxt.old/src/gui/qxtglobalshortcut_x11.cpp libqxt/src/gui/qxtglobalshortcut_x11.cpp
--- libqxt.old/src/gui/qxtglobalshortcut_x11.cpp 2010-07-18 15:32:53.000000000 -0400
+++ libqxt/src/gui/qxtglobalshortcut_x11.cpp 2010-07-18 15:41:25.000000000 -0400
@@ -26,6 +26,8 @@
#include <QX11Info>
#include <X11/Xlib.h>
+#include "keymapper_x11.h"
+
static int (*original_x_errhandler)(Display* display, XErrorEvent* event);
static int qxt_x_errhandler(Display* display, XErrorEvent *event)
@@ -83,8 +85,25 @@ quint32 QxtGlobalShortcutPrivate::native
quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key)
{
+ // (davidsansome) Try the table from QKeyMapper first - this seems to be
+ // the only way to get Keysyms for the media keys.
+ unsigned int keysym = 0;
+ int i = 0;
+ while (KeyTbl[i]) {
+ if (KeyTbl[i+1] == static_cast<uint>(key)) {
+ keysym = KeyTbl[i];
+ break;
+ }
+ i += 2;
+ }
+
+ // If that didn't work then fall back on XStringToKeysym
+ if (!keysym) {
+ keysym = XStringToKeysym(QKeySequence(key).toString().toLatin1().data());
+ }
+
Display* display = QX11Info::display();
- return XKeysymToKeycode(display, XStringToKeysym(QKeySequence(key).toString().toLatin1().data()));
+ return XKeysymToKeycode(display, keysym);
}
bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods)

17
linpack/.SRCINFO Normal file
View file

@ -0,0 +1,17 @@
pkgbase = linpack
pkgdesc = Benchmark that measures a system's floating-point rate of execution by solving dense linear equations
pkgver = 2025.0.0
pkgrel = 1
url = https://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download
arch = x86_64
license = LicenseRef-Intel-SmpL-2022
options = !strip
backup = etc/linpack.conf
source = https://downloadmirror.intel.com/837792/l_onemklbench_p_2025.0.0_777.tgz
source = linpack.conf
source = linpack_runme_xeon64
sha512sums = b8d44e945c928f6128aab3474d1a8ff3d3fc6caf1d13df5726382c3f2f6e598633f47e4e29293f3540a11e4d24896b2b1ab016d5abbe4d8b6fdcdcc8c5974ca0
sha512sums = 69b049a3a1c0b674e471bc61e1f88f729db1dd454eb0bfc9adde7c3a4876bb396a91f57f19d5e1add906ee4282068d8cd0fa5f1a59bf8a96784846a3c9f63ab1
sha512sums = 3e880d4e0af8154ac1d591177e08ceda28f5ff5fbf698e47f99de8621e37137ecf26024048bd0ee81fc7af73ca8ae0deeb0a309325970a701ac5f13b571bdb60
pkgname = linpack

31
linpack/PKGBUILD Normal file
View file

@ -0,0 +1,31 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: graysky <graysky AT archlinux dot us>
pkgname='linpack'
_pkgver=2025.0.0_777
_pkgid=837792
pkgver=${_pkgver%%_*}
_math_kernel_lib=${pkgver%%.0}
pkgrel=1
pkgdesc="Benchmark that measures a system's floating-point rate of execution by solving dense linear equations"
arch=('x86_64')
url='https://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download'
license=('LicenseRef-Intel-SmpL-2022')
backup=('etc/linpack.conf')
options=('!strip')
source=("https://downloadmirror.intel.com/${_pkgid}/l_onemklbench_p_${_pkgver}.tgz"
'linpack.conf'
'linpack_runme_xeon64')
sha512sums=('b8d44e945c928f6128aab3474d1a8ff3d3fc6caf1d13df5726382c3f2f6e598633f47e4e29293f3540a11e4d24896b2b1ab016d5abbe4d8b6fdcdcc8c5974ca0'
'69b049a3a1c0b674e471bc61e1f88f729db1dd454eb0bfc9adde7c3a4876bb396a91f57f19d5e1add906ee4282068d8cd0fa5f1a59bf8a96784846a3c9f63ab1'
'3e880d4e0af8154ac1d591177e08ceda28f5ff5fbf698e47f99de8621e37137ecf26024048bd0ee81fc7af73ca8ae0deeb0a309325970a701ac5f13b571bdb60')
package() {
local _base="${srcdir}/benchmarks_${_math_kernel_lib}"
local _test="${_base}/linux/share/mkl/benchmarks/linpack"
install -Dm755 linpack_runme_xeon64 "${pkgdir}/usr/bin/linpack_runme_xeon64"
install -Dm644 linpack.conf "${pkgdir}/usr/share/${pkgname}/linpack.conf"
install -Dm644 "${_base}/license.txt" "${pkgdir}/usr/share/licenses/linpack/license.txt"
install -Dm755 "${_test}/xlinpack_xeon64" "${pkgdir}/usr/bin/xlinpack_xeon64"
}

22
linpack/linpack.conf Normal file
View file

@ -0,0 +1,22 @@
Sample Intel(R) LINPACK data file
Intel(R) LINPACK data
1 # number of tests
12600 # problem sizes
12600 # leading dimensions
100 # times to run a test
4 # alignment values (in KBytes)
# Change the problem sizes and leading dimensions to suite your FREE physical memory
#
# Memory use = 8 x (problem size)^2
# or
# Problem size = sqrt (memory use / 8)
#
# Consider the following as a conservative guide
# For 1 GB use a problem size and leading dimensions of 6300
# For 2 GB use a problem size and leading dimensions of 12600
# For 4 GB use a problem size and leading dimensions of 18900
# For 8 GB use a problem size and leading dimensions of 25200
# For 16 GB use a problem size and leading dimensions of 31500
# For 32 GB use a problem size and leading dimensions of 37800
# For 64 GB use a problem size and leading dimensions of 44100

View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
#
export KMP_AFFINITY=nowarnings,compact
SKEL_CONFIG="/usr/share/linpack"
CONFIG="$SKEL_CONFIG/linpack.conf"
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
[[ -f "$SKEL_CONFIG/linpack.conf" ]] || {
echo "ERROR: Missing $SKEL_CONFIG/linpack.conf - reinstall this package." ; exit 1 ; }
[[ -d $XDG_CONFIG_HOME ]] || mkdir $XDG_CONFIG_HOME
[[ -f "$XDG_CONFIG_HOME/linpack.conf" ]] || cp "$CONFIG" "$XDG_CONFIG_HOME"
echo -e "Edit \E[31m$XDG_CONFIG_HOME/linpack.conf\E[37m to adjust the amount of physical memory to consume."
echo
echo -e "Starting calculation.... hit ctrl+c to stop."
echo -e "Consult \E[31m~/lin_xeon64.txt\E[37m for results as they are caculated."
date
date >> ~/lin_xeon64.txt
/usr/bin/xlinpack_xeon64 $XDG_CONFIG_HOME/linpack.conf >> ~/lin_xeon64.txt
date >> ~/lin_xeon64.txt
echo -n "Done: "
date

174
makepkg.conf Normal file
View file

@ -0,0 +1,174 @@
#!/hint/bash
# shellcheck disable=2034
#
# /etc/makepkg.conf
#
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
# Other common tools:
# /usr/bin/snarf
# /usr/bin/lftpget -c
# /usr/bin/wget
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::breezy'
'fossil::fossil'
'git::git'
'hg::mercurial'
'svn::subversion')
#########################################################################
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"
#-- Compiler and Linker Flags
#CPPFLAGS=""
CFLAGS="-march=x86-64-v3 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mpclmul"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \
-Wl,-z,pack-relative-relocs"
LTOFLAGS="-flto=auto -falign-functions=32"
RUSTFLAGS="-Copt-level=3 -Ctarget-cpu=x86-64-v3 -Clink-arg=-z -Clink-arg=pack-relative-relocs -Ccodegen-units=1"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j $(nproc)"
#-- Debugging flags
DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
#-- color: Colorize output messages
#-- ccache: Use ccache to cache compilation
#-- check: Run the check() function if present in the PKGBUILD
#-- sign: Generate PGP signature file
#
BUILDENV=(!distcc color !ccache check !sign)
#
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
#DISTCC_HOSTS=""
#
#-- Specify a directory for package building.
#BUILDDIR=/tmp/makepkg
#########################################################################
# GLOBAL PACKAGE OPTIONS
# These are default values for the options=() settings
#########################################################################
#
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto !autodeps)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
#-- docs: Save doc directories specified by DOC_DIRS
#-- libtool: Leave libtool (.la) files in packages
#-- staticlibs: Leave static library (.a) files in packages
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- debug: Add debugging flags as specified in DEBUG_* variables
#-- lto: Add compile flags for building with link time optimization
#-- autodeps: Automatically add depends/provides
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge debug lto)
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(sha256)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
STRIP_SHARED="--strip-unneeded"
#-- Options to be used when stripping static libraries. See `man strip' for details.
STRIP_STATIC="--strip-debug"
#-- Manual (man and info) directories to compress (if zipman is specified)
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
#-- Doc directories to remove (if !docs is specified)
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
#-- Prefix and directories for library autodeps
LIB_DIRS=('lib:usr/lib' 'lib32:usr/lib32')
#########################################################################
# PACKAGE OUTPUT
#########################################################################
#
# Default: put built package and cached source in build directory
#
#-- Destination: specify a fixed directory where all packages will be placed
#PKGDEST=/home/packages
#-- Source cache: specify a fixed directory where source files will be cached
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
#-- Log files: specify a fixed directory where all log files will be placed
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
PACKAGER="Manuel Hüsers <aur@huesers.de>"
#-- Specify a key to use for package signing
#GPGKEY=""
#########################################################################
# COMPRESSION DEFAULTS
#########################################################################
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
COMPRESSZST=(zstd -c -T0 -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
COMPRESSLZ4=(lz4 -q)
COMPRESSLZ=(lzip -c -f)
#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
PKGEXT='.pkg.tar.zst'
SRCEXT='.src.tar.gz'
#########################################################################
# OTHER
#########################################################################
#
#-- Command used to run pacman as root, instead of trying sudo and su
#PACMAN_AUTH=()
# vim: set ft=sh ts=2 sw=2 et:
export KCPPFLAGS=" -march=x86-64-v3 -O3"
export FFLAGS=$CFLAGS
export KCFLAGS=" -march=x86-64-v3 -O3"
export FCFLAGS=$CFLAGS
export GOAMD64=v3
export CARGO_PROFILE_RELEASE_LTO=fat

View file

@ -1,21 +0,0 @@
post_install() {
getent group ffsync &>/dev/null || groupadd -r ffsync >/dev/null
getent passwd ffsync &>/dev/null || useradd -r -s /usr/bin/false \
-g ffsync -G ffsync,http -d /var/lib/ffsync ffsync >/dev/null
chown -R ffsync:ffsync /var/lib/ffsync
systemd-tmpfiles --create ffsync.conf
}
post_update() {
chown -R ffsync:ffsync /var/lib/ffsync
chown -R ffsync:http /run/ffsync
echo ">> Documentation: https://wiki.archlinux.org/index.php/Mozilla_Firefox_Sync_Server"
}
pre_remove() {
getent passwd ffsync &>/dev/null && userdel ffsync >/dev/null
getent group ffsync &>/dev/null && groupdel ffsync >/dev/null
true
}

View file

@ -0,0 +1,16 @@
pkgbase = nginx-mod-form-input
pkgdesc = Nginx module that reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded", and parse the arguments in request body into nginx variables.
pkgver = 0.12
pkgrel = 1
url = https://github.com/calio/form-input-nginx-module
arch = x86_64
license = BSD-2-Clause
makedepends = nginx-src
depends = nginx
depends = nginx-mod-ndk
source = https://github.com/vision5/ngx_devel_kit/archive/v0.3.1/ngx_devel_kit-0.3.1.tar.gz
source = https://github.com/calio/form-input-nginx-module/archive/v0.12/form-input-0.12.tar.gz
sha512sums = de1e3349d8dd08e5982279b2219dc8a8006739f0409b8e0f5c50d93434beff1fbafba43e9c5ac85a5fab90afc5c0a7244a340610339c36f82f2cba7233e72de9
sha512sums = 1c5c5ab74156cac09da44a2dcdd84f7c03c9919a23a847e63613e00e3781ecd73d5ad12446174b4fdef9d064257a31570a8dbcccc00d8266f7048e3dcde0362e
pkgname = nginx-mod-form-input

View file

@ -0,0 +1,42 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Manuel Hüsers <aur@huesers.de>
pkgname=nginx-mod-form-input
pkgver=0.12
pkgrel=1
_modname="${pkgname#nginx-mod-}"
_ndkver='0.3.1'
pkgdesc='Nginx module that reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded", and parse the arguments in request body into nginx variables.'
arch=('x86_64')
depends=('nginx' 'nginx-mod-ndk')
makedepends=('nginx-src')
url="https://github.com/calio/$_modname-nginx-module"
license=('BSD-2-Clause')
source=(
https://github.com/vision5/ngx_devel_kit/archive/v$_ndkver/ngx_devel_kit-$_ndkver.tar.gz
https://github.com/calio/$_modname-nginx-module/archive/v$pkgver/$_modname-$pkgver.tar.gz
)
sha512sums=('de1e3349d8dd08e5982279b2219dc8a8006739f0409b8e0f5c50d93434beff1fbafba43e9c5ac85a5fab90afc5c0a7244a340610339c36f82f2cba7233e72de9'
'1c5c5ab74156cac09da44a2dcdd84f7c03c9919a23a847e63613e00e3781ecd73d5ad12446174b4fdef9d064257a31570a8dbcccc00d8266f7048e3dcde0362e')
build() {
cp -r /usr/src/nginx .
cd "$srcdir"/nginx
./configure --with-compat \
--add-module=../ngx_devel_kit-$_ndkver \
--add-dynamic-module=../$_modname-nginx-module-$pkgver
make modules
}
package() {
cd "$srcdir"/nginx/objs
for mod in *.so; do
install -Dm755 $mod "$pkgdir"/usr/lib/nginx/modules/$mod
done
install -Dm644 "$srcdir"/$_modname-nginx-module-$pkgver/README.md \
"$pkgdir"/usr/share/licenses/$pkgname/README.md
}

View file

@ -0,0 +1,19 @@
pkgbase = nginx-mod-traffic-accounting
pkgdesc = Monitor the incoming and outgoing traffic metrics in realtime for NGINX
pkgver = 2.0+18+g46aae3e
pkgrel = 1
url = https://github.com/Lax/traffic-accounting-nginx-module
arch = x86_64
license = BSD-2-Clause
makedepends = nginx-src
depends = nginx
source = https://github.com/Lax/traffic-accounting-nginx-module/archive/v2.0/traffic-accounting-nginx-module-2.0.tar.gz
source = d53a4a6.patch
source = server_addr.patch
source = succ_collect.patch
sha512sums = 0df34c3765e18dc5cc5a053d3a17dbee17a686a1f6e76ad057c262741c4e4465c66bcef86e627a19258f836cad5f14745bf046fd396b00960ad79ed20c2a07bb
sha512sums = c99fea97563bcb9463d5f4ef1880fe336ed8a675d964687cf3d70fdc50e8d2b2b7d83efbe3fe8ba35945cfaa83a17a6b9b432dc5daa5fc3228efff568ac6ff44
sha512sums = 8624b4201e390465ceb0274c8e6241ed9075c9d600661c52ad2d77078f92b19fd011d8fe9878a4453519db465d644f430439eabb438ab7810d126955ee814910
sha512sums = 1d0993d1f3f00f3682d6717192f95836bbf0f1d113e1fdf8b1437dd3f2ec250e36a687ed6238cc17019a829ce6d59baea7bda79bab154b5cba5b088452b0aec8
pkgname = nginx-mod-traffic-accounting

View file

@ -0,0 +1,53 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=nginx-mod-traffic-accounting
pkgver=2.0+18+g46aae3e
pkgrel=1
_modname="traffic-accounting-nginx-module"
pkgdesc='Monitor the incoming and outgoing traffic metrics in realtime for NGINX'
arch=('x86_64')
makedepends=('nginx-src')
depends=('nginx')
url="https://github.com/Lax/${_modname}"
license=('BSD-2-Clause')
source=(
"https://github.com/Lax/${_modname}/archive/v${pkgver%%+*}/${_modname}-${pkgver%%+*}.tar.gz"
"d53a4a6.patch"
"server_addr.patch"
"succ_collect.patch"
)
sha512sums=('0df34c3765e18dc5cc5a053d3a17dbee17a686a1f6e76ad057c262741c4e4465c66bcef86e627a19258f836cad5f14745bf046fd396b00960ad79ed20c2a07bb'
'c99fea97563bcb9463d5f4ef1880fe336ed8a675d964687cf3d70fdc50e8d2b2b7d83efbe3fe8ba35945cfaa83a17a6b9b432dc5daa5fc3228efff568ac6ff44'
'8624b4201e390465ceb0274c8e6241ed9075c9d600661c52ad2d77078f92b19fd011d8fe9878a4453519db465d644f430439eabb438ab7810d126955ee814910'
'1d0993d1f3f00f3682d6717192f95836bbf0f1d113e1fdf8b1437dd3f2ec250e36a687ed6238cc17019a829ce6d59baea7bda79bab154b5cba5b088452b0aec8')
prepare() {
mkdir -p build
cd build
ln -sf /usr/src/nginx/auto
ln -sf /usr/src/nginx/src
cd "../${_modname}-${pkgver%%+*}"
patch -Np1 -i '../d53a4a6.patch'
patch -Np1 -i '../server_addr.patch'
patch -Np1 -i '../succ_collect.patch'
}
build() {
cd build
/usr/src/nginx/configure --with-compat --with-stream --add-dynamic-module="../${_modname}-${pkgver%%+*}"
make modules
}
package() {
install -Dm644 "$srcdir"/"${_modname}-${pkgver%%+*}"/LICENSE \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE
cd build/objs
for mod in ngx_*.so; do
install -Dm755 $mod "$pkgdir"/usr/lib/nginx/modules/$mod
done
}

View file

@ -0,0 +1,235 @@
diff --git a/src/http/ngx_http_accounting_module.c b/src/http/ngx_http_accounting_module.c
index 63eccf0..23a5fc3 100644
--- a/src/http/ngx_http_accounting_module.c
+++ b/src/http/ngx_http_accounting_module.c
@@ -139,7 +139,7 @@ ngx_http_accounting_process_init(ngx_cycle_t *cycle)
}
if (amcf->current == NULL) {
- if (ngx_traffic_accounting_period_create(cycle->pool, amcf) != NGX_OK)
+ if (ngx_traffic_accounting_period_create(amcf) != NGX_OK)
return NGX_ERROR;
}
@@ -206,7 +206,7 @@ worker_process_alarm_handler(ngx_event_t *ev)
amcf = ngx_http_cycle_get_module_main_conf(ngx_cycle, ngx_http_accounting_module);
- ngx_traffic_accounting_period_rotate(amcf->current->pool, amcf);
+ ngx_traffic_accounting_period_rotate(amcf);
ngx_traffic_accounting_period_rbtree_iterate(amcf->previous,
worker_process_export_metrics,
amcf->previous->created_at,
@@ -243,10 +243,10 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
amcf = ngx_http_get_module_main_conf(r, ngx_http_accounting_module);
- metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id);
+ metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
if (metrics == NULL) { return NGX_ERROR; }
- if (ngx_traffic_accounting_metrics_init(metrics, amcf->current->pool, ngx_http_statuses_len) == NGX_ERROR)
+ if (ngx_traffic_accounting_metrics_init(metrics, ngx_http_statuses_len, amcf->log) == NGX_ERROR)
return NGX_ERROR;
amcf->current->updated_at = ngx_timeofday();
diff --git a/src/ngx_traffic_accounting.h b/src/ngx_traffic_accounting.h
index 1812927..462becf 100644
--- a/src/ngx_traffic_accounting.h
+++ b/src/ngx_traffic_accounting.h
@@ -38,21 +38,19 @@ typedef struct {
ngx_rbtree_t rbtree;
ngx_rbtree_node_t sentinel;
- ngx_pool_t *pool;
-
ngx_time_t *created_at;
ngx_time_t *updated_at;
} ngx_traffic_accounting_period_t;
-ngx_int_t ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, ngx_pool_t *pool, size_t len);
+ngx_int_t ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, size_t len, ngx_log_t *log);
ngx_int_t ngx_traffic_accounting_period_init(ngx_traffic_accounting_period_t *period);
-void ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
+void ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log);
void ngx_traffic_accounting_period_insert_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics);
void ngx_traffic_accounting_period_delete(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
void ngx_traffic_accounting_period_delete_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics);
ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_lookup_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
-ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
+ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log);
typedef ngx_int_t (*ngx_traffic_accounting_period_iterate_func)(void *val, void *para1, void *para2);
diff --git a/src/ngx_traffic_accounting_module.c b/src/ngx_traffic_accounting_module.c
index ebc877a..2291db7 100644
--- a/src/ngx_traffic_accounting_module.c
+++ b/src/ngx_traffic_accounting_module.c
@@ -9,15 +9,14 @@
ngx_int_t
-ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf)
+ngx_traffic_accounting_period_create(ngx_traffic_accounting_main_conf_t *amcf)
{
ngx_traffic_accounting_period_t *period;
- period = ngx_pcalloc(pool, sizeof(ngx_traffic_accounting_period_t));
+ period = ngx_calloc(sizeof(ngx_traffic_accounting_period_t), amcf->log);
if (period == NULL)
return NGX_ERROR;
- period->pool = pool;
ngx_traffic_accounting_period_init(period);
period->created_at = ngx_timeofday();
@@ -28,11 +27,11 @@ ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_ma
}
ngx_int_t
-ngx_traffic_accounting_period_rotate(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf)
+ngx_traffic_accounting_period_rotate(ngx_traffic_accounting_main_conf_t *amcf)
{
- ngx_pfree(pool, amcf->previous);
+ ngx_free(amcf->previous);
amcf->previous = amcf->current;
- return ngx_traffic_accounting_period_create(pool, amcf);
+ return ngx_traffic_accounting_period_create(amcf);
}
diff --git a/src/ngx_traffic_accounting_module.h b/src/ngx_traffic_accounting_module.h
index 08881f1..adfccec 100644
--- a/src/ngx_traffic_accounting_module.h
+++ b/src/ngx_traffic_accounting_module.h
@@ -46,8 +46,8 @@ ngx_str_t * ngx_traffic_accounting_get_accounting_id(void *entry, ngx_get_loc_co
ngx_get_indexed_variable_pt get_indexed_variable);
-ngx_int_t ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf);
-ngx_int_t ngx_traffic_accounting_period_rotate(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf);
+ngx_int_t ngx_traffic_accounting_period_create(ngx_traffic_accounting_main_conf_t *amcf);
+ngx_int_t ngx_traffic_accounting_period_rotate(ngx_traffic_accounting_main_conf_t *amcf);
#endif /* _NGX_TRAFFIC_ACCOUNTING_MODULE_H_INCLUDED_ */
diff --git a/src/ngx_traffic_accounting_period_metrics.c b/src/ngx_traffic_accounting_period_metrics.c
index b6b7055..7376ad9 100644
--- a/src/ngx_traffic_accounting_period_metrics.c
+++ b/src/ngx_traffic_accounting_period_metrics.c
@@ -10,17 +10,17 @@
static void ngx_traffic_accounting_period_insert_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
ngx_int_t
-ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, ngx_pool_t *pool, size_t len)
+ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, size_t len, ngx_log_t *log)
{
if (metrics->nr_status == NULL) {
- metrics->nr_status = ngx_pcalloc(pool, sizeof(ngx_uint_t) * len);
+ metrics->nr_status = ngx_calloc(sizeof(ngx_uint_t) * len, log);
if (metrics->nr_status == NULL)
return NGX_ERROR;
}
if (metrics->nr_upstream_status == NULL) {
- metrics->nr_upstream_status = ngx_pcalloc(pool, sizeof(ngx_uint_t) * len);
+ metrics->nr_upstream_status = ngx_calloc(sizeof(ngx_uint_t) * len, log);
if (metrics->nr_upstream_status == NULL)
return NGX_ERROR;
@@ -39,14 +39,14 @@ ngx_traffic_accounting_period_init(ngx_traffic_accounting_period_t *period)
}
void
-ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name)
+ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log)
{
ngx_traffic_accounting_metrics_t *metrics;
- metrics = ngx_pcalloc(period->pool, sizeof(ngx_traffic_accounting_metrics_t));
+ metrics = ngx_calloc(sizeof(ngx_traffic_accounting_metrics_t), log);
void *data;
- data = ngx_pcalloc(period->pool, name->len+1);
+ data = ngx_calloc(name->len+1, log);
ngx_memcpy(data, name->data, name->len);
metrics->name.data = data;
@@ -82,7 +82,7 @@ void
ngx_traffic_accounting_period_delete_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics)
{
ngx_rbtree_delete(&period->rbtree, &metrics->rbnode);
- ngx_pfree(period->pool, metrics);
+ ngx_free(metrics);
}
ngx_traffic_accounting_metrics_t *
@@ -124,7 +124,7 @@ ngx_traffic_accounting_period_lookup_metrics(ngx_traffic_accounting_period_t *pe
}
ngx_traffic_accounting_metrics_t *
-ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name)
+ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log)
{
ngx_traffic_accounting_metrics_t *n;
@@ -132,7 +132,7 @@ ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *per
if (n != NULL)
return n;
- ngx_traffic_accounting_period_insert(period, name);
+ ngx_traffic_accounting_period_insert(period, name, log);
return ngx_traffic_accounting_period_lookup_metrics(period, name);
}
@@ -158,9 +158,10 @@ ngx_traffic_accounting_period_rbtree_iterate(ngx_traffic_accounting_period_t *pe
if (rc == NGX_DONE) {
/* NGX_DONE -> destroy node */
ngx_rbtree_delete(rbtree, node);
- ngx_pfree(period->pool, n->nr_status);
- ngx_pfree(period->pool, n->nr_upstream_status);
- ngx_pfree(period->pool, n);
+ ngx_free(n->nr_status);
+ ngx_free(n->nr_upstream_status);
+ ngx_free(n->name.data);
+ ngx_free(n);
goto done;
}
diff --git a/src/stream/ngx_stream_accounting_module.c b/src/stream/ngx_stream_accounting_module.c
index b1839d1..3db787d 100644
--- a/src/stream/ngx_stream_accounting_module.c
+++ b/src/stream/ngx_stream_accounting_module.c
@@ -136,7 +136,7 @@ ngx_stream_accounting_process_init(ngx_cycle_t *cycle)
}
if (amcf->current == NULL) {
- if (ngx_traffic_accounting_period_create(cycle->pool, amcf) != NGX_OK)
+ if (ngx_traffic_accounting_period_create(amcf) != NGX_OK)
return NGX_ERROR;
}
@@ -203,7 +203,7 @@ worker_process_alarm_handler(ngx_event_t *ev)
amcf = ngx_stream_cycle_get_module_main_conf(ngx_cycle, ngx_stream_accounting_module);
- ngx_traffic_accounting_period_rotate(amcf->current->pool, amcf);
+ ngx_traffic_accounting_period_rotate(amcf);
ngx_traffic_accounting_period_rbtree_iterate(amcf->previous,
worker_process_export_metrics,
amcf->previous->created_at,
@@ -240,10 +240,10 @@ ngx_stream_accounting_session_handler(ngx_stream_session_t *s)
amcf = ngx_stream_get_module_main_conf(s, ngx_stream_accounting_module);
- metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id);
+ metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
if (metrics == NULL) { return NGX_ERROR; }
- if (ngx_traffic_accounting_metrics_init(metrics, amcf->current->pool, ngx_stream_statuses_len) == NGX_ERROR)
+ if (ngx_traffic_accounting_metrics_init(metrics, ngx_stream_statuses_len, amcf->log) == NGX_ERROR)
return NGX_ERROR;
amcf->current->updated_at = ngx_timeofday();

View file

@ -0,0 +1,80 @@
diff --git a/src/http/ngx_http_accounting_module.c b/src/http/ngx_http_accounting_module.c
index 23a5fc3..ecc62d2 100644
--- a/src/http/ngx_http_accounting_module.c
+++ b/src/http/ngx_http_accounting_module.c
@@ -237,7 +237,6 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
ngx_time_t *tp = ngx_timeofday();
ngx_msec_int_t ms = 0;
ngx_http_upstream_state_t *state;
-
accounting_id = ngx_http_accounting_get_accounting_id(r);
if (accounting_id == NULL) { return NGX_ERROR; }
@@ -251,6 +250,27 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
amcf->current->updated_at = ngx_timeofday();
+ if (0 == metrics->server_addr.len) {
+ u_char var_name_buf[256] = {0};
+ ngx_str_t server_addr_var_name = ngx_string("server_addr");
+ ngx_uint_t server_addr_key = ngx_hash_strlow(var_name_buf, server_addr_var_name.data, server_addr_var_name.len);
+ ngx_http_variable_value_t* server_addr_val = ngx_http_get_variable(r, &server_addr_var_name, server_addr_key);
+
+ if (NULL == server_addr_val) {
+ // ngx_log_error(NGXTA_LOG_LEVEL, amcf->log, ngx_errno,
+ // ngx_realpath_n " get server_addr failed");
+ return NGX_ERROR;
+ } else {
+ // ngx_log_error(NGXTA_LOG_LEVEL, amcf->log, 0,
+ // ngx_realpath_n " %s", server_addr_val->data);
+ }
+ metrics->server_addr.data = ngx_calloc(server_addr_val->len + 1, amcf->log);
+ if (NULL == metrics->server_addr.data) {
+ return NGX_ERROR;
+ }
+ memcpy(metrics->server_addr.data, server_addr_val->data, server_addr_val->len);
+ metrics->server_addr.len = server_addr_val->len;
+ }
metrics->nr_entries += 1;
metrics->bytes_in += r->request_length;
metrics->bytes_out += r->connection->sent;
diff --git a/src/ngx_traffic_accounting.h b/src/ngx_traffic_accounting.h
index 462becf..6046d78 100644
--- a/src/ngx_traffic_accounting.h
+++ b/src/ngx_traffic_accounting.h
@@ -24,6 +24,7 @@ typedef struct {
ngx_rbtree_node_t rbnode;
ngx_str_t name;
+ ngx_str_t server_addr;
ngx_uint_t nr_entries;
ngx_uint_t bytes_in;
diff --git a/src/ngx_traffic_accounting_log.c b/src/ngx_traffic_accounting_log.c
index 9b4cd46..652cefb 100644
--- a/src/ngx_traffic_accounting_log.c
+++ b/src/ngx_traffic_accounting_log.c
@@ -35,9 +35,10 @@ ngx_traffic_accounting_log_metrics(void *val, void *para1, void *para2,
last = msg_buf + NGX_MAX_ERROR_STR;
p = ngx_slprintf(p, last,
- "pid:%i|from:%i|to:%i|accounting_id:%V|%s:%ui|bytes_in:%ui|bytes_out:%ui|latency_ms:%ui|upstream_latency_ms:%ui",
+ "pid:%i|from:%i|to:%i|server_addr:%V|accounting_id:%V|%s:%ui|bytes_in:%ui|bytes_out:%ui|latency_ms:%ui|upstream_latency_ms:%ui",
ngx_getpid(),
created_at->sec, updated_at->sec,
+ &metrics->server_addr,
&metrics->name, entry_n,
metrics->nr_entries,
metrics->bytes_in, metrics->bytes_out,
diff --git a/src/ngx_traffic_accounting_period_metrics.c b/src/ngx_traffic_accounting_period_metrics.c
index 7376ad9..d454a3c 100644
--- a/src/ngx_traffic_accounting_period_metrics.c
+++ b/src/ngx_traffic_accounting_period_metrics.c
@@ -161,6 +161,7 @@ ngx_traffic_accounting_period_rbtree_iterate(ngx_traffic_accounting_period_t *pe
ngx_free(n->nr_status);
ngx_free(n->nr_upstream_status);
ngx_free(n->name.data);
+ ngx_free(n->server_addr.data);
ngx_free(n);
goto done;

View file

@ -0,0 +1,96 @@
From 46aae3eccffea884430d72f3d6cfc664a5789853 Mon Sep 17 00:00:00 2001
From: David-Hang-12138 <david.hang@senseguard.ai>
Date: Thu, 15 Sep 2022 21:57:00 +0800
Subject: [PATCH] DEVHUB-73 added option for collecting only successful
requests.
---
src/http/ngx_http_accounting_module.c | 27 +++++++++++++++++-------
src/ngx_traffic_accounting_module.h | 1 +
src/ngx_traffic_accounting_module_conf.c | 2 ++
3 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/src/http/ngx_http_accounting_module.c b/src/http/ngx_http_accounting_module.c
index ecc62d2..a35759c 100644
--- a/src/http/ngx_http_accounting_module.c
+++ b/src/http/ngx_http_accounting_module.c
@@ -62,6 +62,13 @@ static ngx_command_t ngx_http_accounting_commands[] = {
0,
NULL},
+ { ngx_string("accounting_20x"),
+ NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
+ ngx_conf_set_flag_slot,
+ NGX_HTTP_MAIN_CONF_OFFSET,
+ offsetof(ngx_http_accounting_main_conf_t, log_20x),
+ NULL},
+
ngx_null_command
};
@@ -242,6 +249,18 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
amcf = ngx_http_get_module_main_conf(r, ngx_http_accounting_module);
+ if (r->err_status) {
+ status = r->err_status;
+ } else if (r->headers_out.status) {
+ status = r->headers_out.status;
+ } else {
+ status = NGX_HTTP_STATUS_UNSET;
+ }
+
+ if (amcf->log_20x && NGX_HTTP_SPECIAL_RESPONSE <= status) {
+ // Only log successful requests whose response code is 10x or 20x
+ return NGX_DECLINED;
+ }
metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
if (metrics == NULL) { return NGX_ERROR; }
@@ -275,14 +294,6 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
metrics->bytes_in += r->request_length;
metrics->bytes_out += r->connection->sent;
- if (r->err_status) {
- status = r->err_status;
- } else if (r->headers_out.status) {
- status = r->headers_out.status;
- } else {
- status = NGX_HTTP_STATUS_UNSET;
- }
-
metrics->nr_status[ngx_status_bsearch(status, ngx_http_statuses, ngx_http_statuses_len)] += 1;
ms = (ngx_msec_int_t)((tp->sec - r->start_sec) * 1000 + (tp->msec - r->start_msec));
diff --git a/src/ngx_traffic_accounting_module.h b/src/ngx_traffic_accounting_module.h
index adfccec..acc7d0b 100644
--- a/src/ngx_traffic_accounting_module.h
+++ b/src/ngx_traffic_accounting_module.h
@@ -18,6 +18,7 @@ typedef struct {
ngx_log_t *log;
time_t interval;
ngx_flag_t perturb;
+ ngx_flag_t log_20x; // account only 20x success responses
ngx_traffic_accounting_period_t *current;
ngx_traffic_accounting_period_t *previous;
diff --git a/src/ngx_traffic_accounting_module_conf.c b/src/ngx_traffic_accounting_module_conf.c
index ce1da71..d937666 100644
--- a/src/ngx_traffic_accounting_module_conf.c
+++ b/src/ngx_traffic_accounting_module_conf.c
@@ -20,6 +20,7 @@ ngx_traffic_accounting_create_main_conf(ngx_conf_t *cf)
amcf->enable = NGX_CONF_UNSET;
amcf->interval = NGX_CONF_UNSET;
amcf->perturb = NGX_CONF_UNSET;
+ amcf->log_20x = NGX_CONF_UNSET;
return amcf;
}
@@ -32,6 +33,7 @@ ngx_traffic_accounting_init_main_conf(ngx_conf_t *cf, void *conf)
if (amcf->enable == NGX_CONF_UNSET) { amcf->enable = 0; }
if (amcf->interval == NGX_CONF_UNSET) { amcf->interval = 60; }
if (amcf->perturb == NGX_CONF_UNSET) { amcf->perturb = 0; }
+ if (amcf->log_20x == NGX_CONF_UNSET) { amcf->log_20x = 0; }
return NGX_CONF_OK;
}

20
ntfs2btrfs-git/.SRCINFO Normal file
View file

@ -0,0 +1,20 @@
pkgbase = ntfs2btrfs-git
pkgdesc = In-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs
pkgver = 20240115.r0.g1d55788
pkgrel = 1
url = https://github.com/maharmstone/ntfs2btrfs
arch = x86_64
license = GPL-2.0-or-later
makedepends = git
makedepends = cmake
makedepends = pkgconf
depends = fmt
depends = zlib
depends = lzo
depends = zstd
provides = ntfs2btrfs
conflicts = ntfs2btrfs
source = git+https://github.com/maharmstone/ntfs2btrfs.git
sha512sums = SKIP
pkgname = ntfs2btrfs-git

35
ntfs2btrfs-git/PKGBUILD Normal file
View file

@ -0,0 +1,35 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: N Fytilis <n-fit AT live.com>
pkgname=ntfs2btrfs-git
pkgver=20240115.r0.g1d55788
pkgrel=1
pkgdesc="In-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs"
arch=('x86_64')
url="https://github.com/maharmstone/${pkgname%-git}"
license=('GPL-2.0-or-later')
depends=('fmt' 'zlib' 'lzo' 'zstd')
makedepends=('git' 'cmake' 'pkgconf')
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
source=("git+${url}.git")
sha512sums=('SKIP')
pkgver() {
cd "${pkgname%-git}"
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/release-//g;s/-/./g'
}
build() {
cmake -B build -S "${pkgname%-git}" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_SBINDIR=bin \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}

17
ntfs2btrfs/.SRCINFO Normal file
View file

@ -0,0 +1,17 @@
pkgbase = ntfs2btrfs
pkgdesc = In-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs
pkgver = 20240115
pkgrel = 1
url = https://github.com/maharmstone/ntfs2btrfs
arch = x86_64
license = GPL-2.0-or-later
makedepends = cmake
makedepends = pkgconf
depends = fmt
depends = zlib
depends = lzo
depends = zstd
source = https://github.com/maharmstone/ntfs2btrfs/archive/20240115/ntfs2btrfs-20240115.tar.gz
sha512sums = c614e33b83a4dad25b07335f42161223804935bbee19a72a6576fe361a7edf91502773facc14c767e02abff03fd26d902ab2cd0d8f8bcde8ba10c56869d01873
pkgname = ntfs2btrfs

27
ntfs2btrfs/PKGBUILD Normal file
View file

@ -0,0 +1,27 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=ntfs2btrfs
pkgver=20240115
pkgrel=1
pkgdesc="In-place conversion of Microsoft's NTFS filesystem to the open-source filesystem Btrfs"
arch=('x86_64')
url="https://github.com/maharmstone/$pkgname"
license=('GPL-2.0-or-later')
depends=('fmt' 'zlib' 'lzo' 'zstd')
makedepends=('cmake' 'pkgconf')
source=("$url/archive/$pkgver/$pkgname-$pkgver.tar.gz")
sha512sums=('c614e33b83a4dad25b07335f42161223804935bbee19a72a6576fe361a7edf91502773facc14c767e02abff03fd26d902ab2cd0d8f8bcde8ba10c56869d01873')
build() {
cmake -B build -S "$pkgname-$pkgver" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_SBINDIR=bin \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}

28
obs-vkcapture/.SRCINFO Normal file
View file

@ -0,0 +1,28 @@
pkgbase = obs-vkcapture
pkgver = 1.5.1
pkgrel = 1
url = https://github.com/nowrep/obs-vkcapture
arch = x86_64
license = GPL-2.0-or-later
makedepends = gcc
makedepends = cmake
makedepends = vulkan-headers
makedepends = lib32-gcc-libs
makedepends = lib32-vulkan-icd-loader
makedepends = lib32-libgl
makedepends = lib32-libegl
depends = vulkan-icd-loader
depends = libgl
depends = libegl
depends = obs-studio>=27
source = https://github.com/nowrep/obs-vkcapture/archive/v1.5.1/obs-vkcapture-1.5.1.tar.gz
sha512sums = 9477fd738cdf80e09aad46e58ee5e325aa4f5ae72fbe1cb22918d4910fd997ba2a012ce7ca3b24b1b3734983b94e9b7df391f3deca569a79c90c5d115a1a5eed
pkgname = obs-vkcapture
pkgdesc = OBS Linux Vulkan/OpenGL game capture
pkgname = lib32-obs-vkcapture
pkgdesc = OBS Linux Vulkan/OpenGL game capture (32-bit)
depends = lib32-vulkan-icd-loader
depends = lib32-libgl
depends = lib32-libegl

49
obs-vkcapture/PKGBUILD Normal file
View file

@ -0,0 +1,49 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgbase=obs-vkcapture
pkgname=("$pkgbase" "lib32-$pkgbase")
pkgver=1.5.1
pkgrel=1
url="https://github.com/nowrep/$pkgbase"
license=('GPL-2.0-or-later')
arch=('x86_64')
depends=('vulkan-icd-loader' 'libgl' 'libegl' 'obs-studio>=27')
makedepends=('gcc' 'cmake' 'vulkan-headers' 'lib32-gcc-libs' 'lib32-vulkan-icd-loader' 'lib32-libgl' 'lib32-libegl')
source=("https://github.com/nowrep/$pkgbase/archive/v$pkgver/$pkgbase-$pkgver.tar.gz")
sha512sums=('9477fd738cdf80e09aad46e58ee5e325aa4f5ae72fbe1cb22918d4910fd997ba2a012ce7ca3b24b1b3734983b94e9b7df391f3deca569a79c90c5d115a1a5eed')
build() {
cmake -B build -S "$pkgbase-$pkgver" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_DATADIR=/share \
-DCMAKE_BUILD_TYPE=Release
cmake --build build
export CFLAGS="-m32 ${CFLAGS}"
export CXXFLAGS="-m32 ${CXXFLAGS}"
export LDFLAGS="-m32 ${LDFLAGS}"
cmake -B build32 -S "$pkgbase-$pkgver" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib32 \
-DCMAKE_INSTALL_DATADIR=/share \
-DCMAKE_LIBRARY_PATH=/usr/lib32 \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_PLUGIN=OFF
cmake --build build32
}
package_obs-vkcapture() {
pkgdesc='OBS Linux Vulkan/OpenGL game capture'
DESTDIR="$pkgdir" cmake --install build
}
package_lib32-obs-vkcapture() {
pkgdesc='OBS Linux Vulkan/OpenGL game capture (32-bit)'
depends=('lib32-vulkan-icd-loader' 'lib32-libgl' 'lib32-libegl')
DESTDIR="$pkgdir" cmake --install build32
rm -r "$pkgdir/usr/bin"
}

View file

@ -0,0 +1,13 @@
pkgbase = plymouth-theme-arch-logo
pkgdesc = A remake of the ubuntu-logo Plymouth theme, based on the debian-logo theme, but featuring the Arch Linux logo.
pkgver = 1
pkgrel = 2
url = https://www.gnome-look.org/content/show.php/Arch-logo+plymouth?content=141697
install = plymouth-theme-arch-logo.install
arch = any
license = GPL-3.0-or-later
depends = plymouth
source = plymouth-theme-arch-logo.tar.gz
sha512sums = 0c834bccc32d8d2df1a0bf2ae859487eef273ddf8047a7444f3630dffbbf04a9d014242304c5b2bcd9172bea2e04195f329dfe1fe4661bcc5af29ca64104af06
pkgname = plymouth-theme-arch-logo

View file

@ -0,0 +1,26 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Manuel Hüsers <aur@huesers.de>
# Contributor: Guillermo Garcia <ahioros@NO-SPAM.gmail.com>
pkgname=plymouth-theme-arch-logo
pkgver=1
pkgrel=2
pkgdesc='A remake of the ubuntu-logo Plymouth theme, based on the debian-logo theme, but featuring the Arch Linux logo.'
arch=('any')
# Alternative website(s)
#url='http://karlinux.deviantart.com/art/Arch-Logo-Plymouth-Theme-209553250'
url='https://www.gnome-look.org/content/show.php/Arch-logo+plymouth?content=141697'
license=('GPL-3.0-or-later')
depends=('plymouth')
install="${pkgname}.install"
source=(
'plymouth-theme-arch-logo.tar.gz'
)
sha512sums=('0c834bccc32d8d2df1a0bf2ae859487eef273ddf8047a7444f3630dffbbf04a9d014242304c5b2bcd9172bea2e04195f329dfe1fe4661bcc5af29ca64104af06')
package() {
cd "${srcdir}/arch-logo"
rm -fv *~
mkdir -p "${pkgdir}/usr/share/plymouth/themes/arch-logo"
install -Dvm644 * "${pkgdir}/usr/share/plymouth/themes/arch-logo"
}

View file

@ -0,0 +1,12 @@
post_install() {
cat <<EOF
==> To activate the theme, run as root:
==> plymouth-set-default-theme -R arch-logo
EOF
}
post_upgrade() {
post_install $1
}

View file

@ -0,0 +1,16 @@
pkgbase = polkit-explorer-git
pkgdesc = Present PolicyKit information in a human-readable form.
pkgver = 22.3ad139b
pkgrel = 5
url = https://github.com/scarygliders/polkit-explorer
arch = any
license = ISC
makedepends = git
depends = pyside6
depends = python-lxml
provides = polkit-explorer
conflicts = polkit-explorer
source = git+https://github.com/scarygliders/polkit-explorer.git
sha512sums = SKIP
pkgname = polkit-explorer-git

View file

@ -0,0 +1,35 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Alad Wenter <https://wiki.archlinux.org/index.php/Special:EmailUser/Alad>
pkgname=polkit-explorer-git
_pkgname=${pkgname%-git}
pkgver=22.3ad139b
pkgrel=5
pkgdesc='Present PolicyKit information in a human-readable form.'
arch=('any')
url="https://github.com/scarygliders/${_pkgname}"
license=('ISC')
depends=('pyside6' 'python-lxml')
makedepends=('git')
conflicts=('polkit-explorer')
provides=('polkit-explorer')
source=("git+${url}.git")
sha512sums=('SKIP')
pkgver() {
cd "${srcdir}/${_pkgname}"
printf '%s.%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
package() {
cd "${srcdir}/${_pkgname}"
install -d -m755 "${pkgdir}"/{usr/bin,opt/$_pkgname}
install -m644 Ui_*.py "${pkgdir}/opt/${_pkgname}/"
install -m755 'polkitex.py' "${pkgdir}/opt/${_pkgname}/"
ln -s "/opt/${_pkgname}/polkitex.py" "${pkgdir}/usr/bin/polkitex"
install -Dm644 'LICENSE' "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
install -Dm644 "polkitex.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
}

15
prepare-chroot.sh Executable file
View file

@ -0,0 +1,15 @@
#!/bin/sh
[ -z "$CHROOT" ] && echo "CHROOT env var is unset." && exit 1
sudo -v || exit 1
[ ! -d "$CHROOT/root" ] && sudo mkarchroot -M "$(dirname "$0")"/makepkg.conf "$CHROOT/root" base-devel
arch-nspawn "$CHROOT/root" pacman -Syu
mkdir -p -m 0755 "$CHROOT/$USER"
mountpoint -q "$CHROOT/$USER"
test $? -ne 0 && sudo mount -t tmpfs -o defaults,nodev,mode=0755,uid=$(id -u),gid=$(id -g) tmpfs "$CHROOT/$USER"
exit 0

16
qvr/.SRCINFO Normal file
View file

@ -0,0 +1,16 @@
pkgbase = qvr
pkgdesc = A library that makes writing Virtual Reality (VR) applications very easy
pkgver = 4.1.0
pkgrel = 1
url = https://marlam.de/qvr/
arch = x86_64
license = MIT
makedepends = cmake
depends = qt6-base
source = https://marlam.de/qvr/releases/qvr-4.1.0.tar.gz
source = https://marlam.de/qvr/releases/qvr-4.1.0.tar.gz.sig
validpgpkeys = 2F61B4828BBA779AECB3F32703A2A4AB1E32FD34
sha512sums = 609b706f06d21668db85dbdc282a1b86931ba380c0044e2918bbcd11903748ccc83579d9790dcf372ea8ebc7c86daa6810f12a43b8d7fc941b32b17f34c0b716
sha512sums = SKIP
pkgname = qvr

28
qvr/PKGBUILD Normal file
View file

@ -0,0 +1,28 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=qvr
pkgver=4.1.0
pkgrel=1
pkgdesc='A library that makes writing Virtual Reality (VR) applications very easy'
arch=('x86_64')
url='https://marlam.de/qvr/'
license=('MIT')
depends=('qt6-base')
makedepends=('cmake')
source=(https://marlam.de/qvr/releases/$pkgname-$pkgver.tar.gz{,.sig})
sha512sums=('609b706f06d21668db85dbdc282a1b86931ba380c0044e2918bbcd11903748ccc83579d9790dcf372ea8ebc7c86daa6810f12a43b8d7fc941b32b17f34c0b716'
'SKIP')
validpgpkeys=('2F61B4828BBA779AECB3F32703A2A4AB1E32FD34')
build() {
cmake -B build -S "$pkgname-$pkgver/libqvr" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
}

16
rc-local/.SRCINFO Normal file
View file

@ -0,0 +1,16 @@
pkgbase = rc-local
pkgdesc = Support for legacy rc.local scripts
pkgver = 4
pkgrel = 1
url = https://aur.archlinux.org/packages/rc-local/
install = rc-local.install
arch = any
license = LGPL-2.1-or-later
depends = systemd
backup = etc/rc.local
source = rc.local
source = rc-local.service
sha512sums = 4c3f8498957d47cf2c6ed6d755f6d6a6e42a59ac176b5a752ea4cdd23418d009c180bd53609bc34a1b11f720d71e702d71b4014ae4f98008c89f86323dc9afab
sha512sums = 85c7eafe5d79c4829b48c4df867e28bdb0b4464cab3581fd67e288648d416ceb69fe4e6b5193f86517f1e9578ef05fba8f708097625de6b903c6794fbec5078e
pkgname = rc-local

23
rc-local/PKGBUILD Normal file
View file

@ -0,0 +1,23 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: megadriver <megadriver at gmx dot com>
# Contributor: $pooky Hunter <spookyh+arch@gmail.org>
pkgname=rc-local
pkgver=4
pkgrel=1
pkgdesc='Support for legacy rc.local scripts'
url="https://aur.archlinux.org/packages/${pkgname}/"
arch=('any')
license=('LGPL-2.1-or-later')
install="${pkgname}.install"
depends=('systemd')
backup=('etc/rc.local')
source=('rc.local'
'rc-local.service')
sha512sums=('4c3f8498957d47cf2c6ed6d755f6d6a6e42a59ac176b5a752ea4cdd23418d009c180bd53609bc34a1b11f720d71e702d71b4014ae4f98008c89f86323dc9afab'
'85c7eafe5d79c4829b48c4df867e28bdb0b4464cab3581fd67e288648d416ceb69fe4e6b5193f86517f1e9578ef05fba8f708097625de6b903c6794fbec5078e')
package() {
install -Dm755 'rc.local' "${pkgdir}/etc/rc.local"
install -Dm644 'rc-local.service' "${pkgdir}/usr/lib/systemd/system/rc-local.service"
}

View file

@ -0,0 +1,8 @@
post_install() {
cat <<EOF
==> Please activate the rc-local service to execute /etc/rc.local on boot.
==> Run as root: systemctl enable rc-local.service
EOF
}

20
rc-local/rc-local.service Normal file
View file

@ -0,0 +1,20 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

14
rc-local/rc.local Normal file
View file

@ -0,0 +1,14 @@
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0

18
rcedit-bin/.SRCINFO Normal file
View file

@ -0,0 +1,18 @@
pkgbase = rcedit-bin
pkgdesc = Command line tool to edit resources of windows exe files
pkgver = 2.0.0
pkgrel = 4
url = https://github.com/electron/rcedit
arch = any
license = MIT
depends = wine
provides = rcedit
conflicts = rcedit
source = https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-x64.exe
source = https://raw.githubusercontent.com/electron/rcedit/v2.0.0/LICENSE
source = rcedit.sh
sha512sums = c13e7ffd60169c348e16a3ea59a171c1777acdb241f950c11a6e9b69c955a3a4eb3432182aee7f489a87a555d0bd51fde3b597826f7c1e6488f1f5097359ab4d
sha512sums = ca664e9ec12e6e23878c55f2b56e44fac50fc8b88c71499a4794fe3a0e8de18008c7435970628c8386410534dd5cc27af3ea5e7a818d6244f6159bc183969638
sha512sums = ce46f14c4e7c945c69fdfbc48bfd22c8241f653a974f4950d8378bb81943144f5b3ee2e49cb08a26637c46558327184c6504714f7e781f86fbf7b0c64f561bd0
pkgname = rcedit-bin

26
rcedit-bin/PKGBUILD Normal file
View file

@ -0,0 +1,26 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: jdigi78 <jdigiovanni78 at gmail dot com>
pkgname=rcedit-bin
_pkgname=${pkgname%-bin}
pkgver=2.0.0
pkgrel=4
pkgdesc='Command line tool to edit resources of windows exe files'
arch=('any')
url="https://github.com/electron/${_pkgname}"
license=('MIT')
depends=('wine')
provides=("${_pkgname}")
conflicts=("${_pkgname}")
source=("https://github.com/electron/${_pkgname}/releases/download/v${pkgver}/${_pkgname}-x64.exe"
"https://raw.githubusercontent.com/electron/${_pkgname}/v${pkgver}/LICENSE"
"${_pkgname}.sh")
sha512sums=('c13e7ffd60169c348e16a3ea59a171c1777acdb241f950c11a6e9b69c955a3a4eb3432182aee7f489a87a555d0bd51fde3b597826f7c1e6488f1f5097359ab4d'
'ca664e9ec12e6e23878c55f2b56e44fac50fc8b88c71499a4794fe3a0e8de18008c7435970628c8386410534dd5cc27af3ea5e7a818d6244f6159bc183969638'
'ce46f14c4e7c945c69fdfbc48bfd22c8241f653a974f4950d8378bb81943144f5b3ee2e49cb08a26637c46558327184c6504714f7e781f86fbf7b0c64f561bd0')
package() {
install -Dm755 "${_pkgname}-x64.exe" "${pkgdir}/opt/${_pkgname}/${_pkgname}-x64.exe"
install -Dm755 "${_pkgname}.sh" "${pkgdir}/usr/bin/${_pkgname}"
install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${_pkgname}/LICENSE"
}

4
rcedit-bin/rcedit.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
export WINEDEBUG=-all
export DISPLAY=""
exec wine /opt/rcedit/rcedit-x64.exe "$@"

View file

@ -0,0 +1,14 @@
pkgbase = sierra-breeze-enhanced
pkgdesc = A kwin decoration with support for transparency, rounded corners, multiple titlebar button presets and more
pkgver = 2.0.1
pkgrel = 1
url = https://github.com/kupiqu/sierrabreezeenhanced
arch = x86_64
license = GPL-3.0-or-later
makedepends = cmake
makedepends = extra-cmake-modules
depends = kwin
source = https://github.com/kupiqu/sierrabreezeenhanced/archive/V2.0.1/sierra-breeze-enhanced-V2.0.1.tar.gz
sha512sums = 1c7f55e979c854135a4c6e21d9838df8de0b7dd0ee252f100c8b622e72224d19bf8e06318ad43367112f6c3422ac5ac44242b74635cce5e96107c1ea447ce838
pkgname = sierra-breeze-enhanced

View file

@ -0,0 +1,30 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Leo sk <sk.griffinix@gmail.com>
pkgname=sierra-breeze-enhanced
_pkgname=SierraBreezeEnhanced
pkgver=2.0.1
pkgrel=1
pkgdesc="A kwin decoration with support for transparency, rounded corners, multiple titlebar button presets and more"
arch=('x86_64')
url="https://github.com/kupiqu/${_pkgname,,}"
license=('GPL-3.0-or-later')
depends=('kwin')
makedepends=('cmake' 'extra-cmake-modules')
source=("${url}/archive/V${pkgver}/${pkgname}-V${pkgver}.tar.gz")
sha512sums=('1c7f55e979c854135a4c6e21d9838df8de0b7dd0ee252f100c8b622e72224d19bf8e06318ad43367112f6c3422ac5ac44242b74635cce5e96107c1ea447ce838')
build() {
cmake -B build -S "${_pkgname}-${pkgver}" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DKDE_INSTALL_LIBDIR=lib \
-DBUILD_TESTING=OFF \
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
-Wno-dev
}
package() {
#DESTDIR="$pkgdir" cmake --install build
make -C build DESTDIR="$pkgdir" install
}

34
spot-client/.SRCINFO Normal file
View file

@ -0,0 +1,34 @@
pkgbase = spot-client
pkgdesc = Gtk/Rust native Spotify client
pkgver = 0.4.1
pkgrel = 1
url = https://github.com/xou816/spot
arch = x86_64
arch = i686
arch = arm
arch = armv6h
arch = armv7h
arch = aarch64
license = MIT
checkdepends = appstream-glib
makedepends = cargo
makedepends = meson>=0.59.0
makedepends = blueprint-compiler>=0.8.1
depends = alsa-lib
depends = cairo
depends = glib2
depends = glibc
depends = graphene
depends = gtk4
depends = libadwaita
depends = libpulse
depends = openssl
depends = pango
optdepends = org.freedesktop.secrets
options = !lto
source = https://github.com/xou816/spot/archive/0.4.1/spot-0.4.1.tar.gz
source = disable-clippy.patch
sha512sums = 05ee8ce9277230a0f6c25411b41788a508551a61cd436bdd6bb0d8245030b0523232c0e30c7d2f98977382e687ec0f502cb6eb9b95a7dbaae97042ec596f407e
sha512sums = 4e38fff2a5867c46749959ceb0fb16372f12c8f8038b6a33d43e126e741f43e524e1499bb9b514e56b036097aaa0ac5dd149823c2c9eba277ab0ea4f58d5fb55
pkgname = spot-client

51
spot-client/PKGBUILD Normal file
View file

@ -0,0 +1,51 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Daniel Peukert <daniel@peukert.cc>
# Contributor: NicoHood <archlinux {cat} nicohood {dog} de>
_projectname='spot'
pkgname="$_projectname-client"
pkgver='0.4.1'
pkgrel='1'
pkgdesc='Gtk/Rust native Spotify client'
arch=('x86_64' 'i686' 'arm' 'armv6h' 'armv7h' 'aarch64')
url="https://github.com/xou816/$_projectname"
license=('MIT')
depends=('alsa-lib' 'cairo' 'glib2' 'glibc' 'graphene' 'gtk4' 'libadwaita' 'libpulse' 'openssl' 'pango')
optdepends=('org.freedesktop.secrets')
makedepends=('cargo' 'meson>=0.59.0' 'blueprint-compiler>=0.8.1')
checkdepends=('appstream-glib')
options=('!lto') # Build breaks with LTO enabled
source=("https://github.com/xou816/$_projectname/archive/$pkgver/$_projectname-$pkgver.tar.gz"
'disable-clippy.patch')
sha512sums=('05ee8ce9277230a0f6c25411b41788a508551a61cd436bdd6bb0d8245030b0523232c0e30c7d2f98977382e687ec0f502cb6eb9b95a7dbaae97042ec596f407e'
'4e38fff2a5867c46749959ceb0fb16372f12c8f8038b6a33d43e126e741f43e524e1499bb9b514e56b036097aaa0ac5dd149823c2c9eba277ab0ea4f58d5fb55')
validpgpkeys=() # Waiting for https://github.com/xou816/spot/issues/283
_sourcedirectory="$_projectname-$pkgver"
_builddirectory='build'
prepare() {
cd "$srcdir/$_sourcedirectory/"
# Disable failing clippy tests
patch -Np1 < '../disable-clippy.patch'
}
build() {
cd "$srcdir/"
# We're not using arch-meson, because upstream recommends using --buildtype 'release'
# The offline build flag is turned off, as we're not predownloading rust dependencies
meson setup --prefix '/usr' --libexecdir 'lib' --sbindir 'bin' --buildtype 'release' --wrap-mode 'nodownload' \
-Db_lto='true' -Db_pie='true' -Doffline='false' "$_sourcedirectory" "$_builddirectory"
meson compile -C "$_builddirectory"
}
check() {
cd "$srcdir/"
meson test -C "$_builddirectory" --timeout-multiplier -1
}
package() {
cd "$srcdir/"
meson install -C "$_builddirectory" --destdir "$pkgdir"
install -Dm644 "$_sourcedirectory/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

View file

@ -0,0 +1,24 @@
diff --git a/src/meson.build b/src/meson.build
index 900f3fa..e08b062 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -149,19 +149,3 @@ test('Unit tests',
timeout: 180,
env: env
)
-
-test('Clippy',
- cargo,
- args: [
- 'clippy',
- '--manifest-path', cargo_manifest,
- '--target-dir', meson.project_build_root() / 'src',
- '--',
- '-D', 'warnings',
- '-A', 'clippy::module_inception',
- '-A', 'clippy::new_without_default',
- '-A', 'clippy::enum-variant-names'
- ],
- timeout: 180,
- env: env
-)

16
sublime-text-3/.SRCINFO Normal file
View file

@ -0,0 +1,16 @@
pkgbase = sublime-text-3
pkgdesc = Sophisticated text editor for code, html and prose (legacy version)
pkgver = 3.3211
pkgrel = 5
url = https://www.sublimetext.com/3
install = sublime-text-3.install
arch = x86_64
license = custom
depends = libpng
depends = gtk2
source = https://download.sublimetext.com/sublime_text_3_build_3211_x64.tar.bz2
source = sublime-text-3.sh
sha512sums = a6a068119eff95c5360e9ccbe1d845e7a93e4ad13b3659073752a7bd0e87f4691555820185514875649e677a4e8702e2338f74f5584fc80f69c16b323685d6f1
sha512sums = ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9
pkgname = sublime-text-3

46
sublime-text-3/PKGBUILD Normal file
View file

@ -0,0 +1,46 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: marcospb19 <marcospb19@hotmail.com>
pkgname=sublime-text-3
pkgver=3.3211
pkgrel=5
pkgdesc='Sophisticated text editor for code, html and prose (legacy version)'
arch=('x86_64')
url='https://www.sublimetext.com/3'
license=('custom')
depends=('libpng' 'gtk2')
install="${pkgname}.install"
source=("https://download.sublimetext.com/sublime_text_3_build_${pkgver:2}_x64.tar.bz2"
"${pkgname}.sh")
sha512sums=('a6a068119eff95c5360e9ccbe1d845e7a93e4ad13b3659073752a7bd0e87f4691555820185514875649e677a4e8702e2338f74f5584fc80f69c16b323685d6f1'
'ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9')
prepare() {
sed -i -e "s|@ST_PATH@|/opt/sublime_text_3|g" "${pkgname}.sh"
# Adjust naming in desktop entry
sed -i -e 's#Sublime Text#Sublime Text 3#g' 'sublime_text_3/sublime_text.desktop'
sed -i -e 's#sublime-text#sublime-text-3#g' 'sublime_text_3/sublime_text.desktop'
sed -i -e 's#/opt/sublime_text/sublime_text#/usr/bin/subl3#g' 'sublime_text_3/sublime_text.desktop'
sed -i -e '\#^StartupNotify=#a StartupWMClass=subl3' 'sublime_text_3/sublime_text.desktop'
}
package() {
# Install sublime text 3
install -dm755 "${pkgdir}/opt"
cp --preserve=mode -r 'sublime_text_3' "${pkgdir}/opt/sublime_text_3"
rm -f "${pkgdir}/opt/sublime_text_3/sublime_text.desktop"
# Install icons
for res in 128x128 16x16 256x256 32x32 48x48; do
install -dm755 "${pkgdir}/usr/share/icons/hicolor/${res}/apps"
ln -s "/opt/sublime_text_3/Icon/${res}/sublime-text.png" "${pkgdir}/usr/share/icons/hicolor/${res}/apps/sublime-text-3.png"
done
# Install desktop entry and executable
install -dm755 "${pkgdir}/usr/share/applications"
install -Dm644 'sublime_text_3/sublime_text.desktop' "${pkgdir}/usr/share/applications/sublime_text_3.desktop"
install -dm755 "${pkgdir}/usr/bin"
install -Dm755 "${pkgname}.sh" "${pkgdir}/usr/bin/subl3"
}

View file

@ -0,0 +1,18 @@
post_install() {
cat << _EOF
==> sublime-text-3 install note:
------------------------------------------------------------------------------
Since this is the last version of Sublime Text 3, you might want to disable
in-application reminders about new Sublime Text versions (reportedly only
works as a licensed user).
Add the following setting to your User Preferences file:
"update_check": false
_EOF
}
post_upgrade() {
post_install
}

View file

@ -0,0 +1,3 @@
#!/bin/sh
exec @ST_PATH@/sublime_text "$@"

20
sublime-text-4/.SRCINFO Normal file
View file

@ -0,0 +1,20 @@
pkgbase = sublime-text-4
pkgdesc = Sophisticated text editor for code, html and prose - stable build
pkgver = 4.4180
pkgrel = 1
url = https://www.sublimetext.com/download
arch = x86_64
arch = aarch64
license = custom
depends = libpng
depends = gtk3
provides = sublime-text
conflicts = sublime-text
source = sublime-text-4.sh
sha512sums = ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9
source_x86_64 = sublime_text_4_4_4180_1_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_4180_x64.tar.xz
sha512sums_x86_64 = a115a352311a964268a1460710c562a7843b52c14c452745edb8706ac726e97b867931659b1a3286d44cb19b880f42f00af5bffe88aaa7916181a690e8324e1a
source_aarch64 = sublime_text_4_4_4180_1_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_4180_arm64.tar.xz
sha512sums_aarch64 = b127def4ad73cf390fc4fc69cae0bf71b9171b20579a742fbf2b18e3e40d3e0c37e1f8ceff7f7e2d1d8e71bcf3967a6ba282b1a94af5a5bbc88f0f99d89f9b84
pkgname = sublime-text-4

43
sublime-text-4/PKGBUILD Normal file
View file

@ -0,0 +1,43 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
pkgname=sublime-text-4
pkgver=4.4180
pkgrel=1
pkgdesc='Sophisticated text editor for code, html and prose - stable build'
arch=('x86_64' 'aarch64')
url='https://www.sublimetext.com/download'
license=('custom')
depends=('libpng' 'gtk3')
conflicts=('sublime-text')
provides=('sublime-text')
source=("${pkgname}.sh")
source_x86_64=("${pkgname//-/_}_${pkgver/./_}_${pkgrel}_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_${pkgver:2}_x64.tar.xz")
source_aarch64=("${pkgname//-/_}_${pkgver/./_}_${pkgrel}_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_${pkgver:2}_arm64.tar.xz")
sha512sums=('ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9')
sha512sums_x86_64=('a115a352311a964268a1460710c562a7843b52c14c452745edb8706ac726e97b867931659b1a3286d44cb19b880f42f00af5bffe88aaa7916181a690e8324e1a')
sha512sums_aarch64=('b127def4ad73cf390fc4fc69cae0bf71b9171b20579a742fbf2b18e3e40d3e0c37e1f8ceff7f7e2d1d8e71bcf3967a6ba282b1a94af5a5bbc88f0f99d89f9b84')
prepare() {
sed -i -e "s|@ST_PATH@|/opt/sublime_text|g" "${pkgname}.sh"
sed -i -e 's#/opt/sublime_text/sublime_text#/usr/bin/subl#g' 'sublime_text/sublime_text.desktop'
sed -i -e '\#^StartupNotify=#a StartupWMClass=subl' 'sublime_text/sublime_text.desktop'
}
package() {
install -dm755 "${pkgdir}/opt"
cp --preserve=mode -r 'sublime_text' "${pkgdir}/opt/sublime_text"
rm -f "${pkgdir}/opt/sublime_text/sublime_text.desktop"
for res in 128x128 16x16 256x256 32x32 48x48; do
install -dm755 "${pkgdir}/usr/share/icons/hicolor/${res}/apps"
ln -s "/opt/sublime_text/Icon/${res}/sublime-text.png" "${pkgdir}/usr/share/icons/hicolor/${res}/apps/sublime-text.png"
done
install -dm755 "${pkgdir}/usr/share/applications"
install -Dm644 'sublime_text/sublime_text.desktop' "${pkgdir}/usr/share/applications/sublime_text.desktop"
install -dm755 "${pkgdir}/usr/bin"
install -Dm755 "${pkgname}.sh" "${pkgdir}/usr/bin/subl"
}

View file

@ -0,0 +1,3 @@
#!/bin/sh
exec @ST_PATH@/sublime_text "$@"

21
sublime-text-dev/.SRCINFO Normal file
View file

@ -0,0 +1,21 @@
pkgbase = sublime-text-dev
pkgdesc = Sophisticated text editor for code, html and prose - dev build
pkgver = 4.4183
pkgrel = 1
url = https://www.sublimetext.com/dev
install = sublime-text-dev.install
arch = x86_64
arch = aarch64
license = custom
depends = libpng
depends = gtk3
provides = sublime-text
conflicts = sublime-text
source = sublime-text-dev.sh
sha512sums = ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9
source_x86_64 = sublime_text_dev_4_4183_1_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_4183_x64.tar.xz
sha512sums_x86_64 = f7218a7486b22937618e9eaa20fbc4d47d8d58a5bdef1579c1bd68aeca147c3195c34b988675d317c00c2be529e56c5e2ff01b5a9f64f9755e1d6bd89f5b21f0
source_aarch64 = sublime_text_dev_4_4183_1_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_4183_arm64.tar.xz
sha512sums_aarch64 = 329a54202c5837832f5666de8e32de53b80fbb61e3c1fcd424e12de8d793c5ddb7f1179053a0d60f19882895c24445f38c64f758dc2ca953d646e0dc19ea626a
pkgname = sublime-text-dev

46
sublime-text-dev/PKGBUILD Normal file
View file

@ -0,0 +1,46 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Sander Boom <sanderboom@gmail.com>
# Contributor: realitygaps <realitygaps at yahoo dot com>
pkgname=sublime-text-dev
pkgver=4.4183
pkgrel=1
pkgdesc='Sophisticated text editor for code, html and prose - dev build'
arch=('x86_64' 'aarch64')
url='https://www.sublimetext.com/dev'
license=('custom')
depends=('libpng' 'gtk3')
conflicts=('sublime-text')
provides=('sublime-text')
install=${pkgname}.install
source=("${pkgname}.sh")
source_x86_64=("${pkgname//-/_}_${pkgver/./_}_${pkgrel}_x64.tar.xz::https://download.sublimetext.com/sublime_text_build_${pkgver:2}_x64.tar.xz")
source_aarch64=("${pkgname//-/_}_${pkgver/./_}_${pkgrel}_arm64.tar.xz::https://download.sublimetext.com/sublime_text_build_${pkgver:2}_arm64.tar.xz")
sha512sums=('ac56e9b7dddaebb3d222795cfc644109c93cc3f79695b8f9ee56022c74fe04a1134dd54cab07c74ff1f96b783cb3dbc026c16095552f1d2dd83115ea274dc2e9')
sha512sums_x86_64=('f7218a7486b22937618e9eaa20fbc4d47d8d58a5bdef1579c1bd68aeca147c3195c34b988675d317c00c2be529e56c5e2ff01b5a9f64f9755e1d6bd89f5b21f0')
sha512sums_aarch64=('329a54202c5837832f5666de8e32de53b80fbb61e3c1fcd424e12de8d793c5ddb7f1179053a0d60f19882895c24445f38c64f758dc2ca953d646e0dc19ea626a')
prepare() {
sed -i -e "s|@ST_PATH@|/opt/sublime_text|g" "${pkgname}.sh"
sed -i -e 's#/opt/sublime_text/sublime_text#/usr/bin/subl#g' 'sublime_text/sublime_text.desktop'
sed -i -e '\#^StartupNotify=#a StartupWMClass=subl' 'sublime_text/sublime_text.desktop'
}
package() {
install -dm755 "${pkgdir}/opt"
cp --preserve=mode -r 'sublime_text' "${pkgdir}/opt/sublime_text"
rm -f "${pkgdir}/opt/sublime_text/sublime_text.desktop"
for res in 128x128 16x16 256x256 32x32 48x48; do
install -dm755 "${pkgdir}/usr/share/icons/hicolor/${res}/apps"
ln -s "/opt/sublime_text/Icon/${res}/sublime-text.png" "${pkgdir}/usr/share/icons/hicolor/${res}/apps/sublime-text.png"
done
install -dm755 "${pkgdir}/usr/share/applications"
install -Dm644 'sublime_text/sublime_text.desktop' "${pkgdir}/usr/share/applications/sublime_text.desktop"
install -dm755 "${pkgdir}/usr/bin"
install -Dm755 "${pkgname}.sh" "${pkgdir}/usr/bin/subl"
}

View file

@ -0,0 +1,28 @@
post_install() {
cat << _EOF
==> sublime-text-dev install note:
------------------------------------------------------------------------------
This package is used for the actual 'dev' branch of Sublime Text that
requires a license to be purchased from the Sublime Text website.
If you want to keep using the latest stable release you should instead
install 'sublime-text-4' or use the official repos provided by Sublime Text.
To disable in-application reminders about new Sublime Text dev versions,
add the following setting to your User Preferences file:
"update_check": false
_EOF
}
post_upgrade() {
cat << _EOF
==> sublime-text-dev upgrade note:
------------------------------------------------------------------------------
To disable in-application reminders about new Sublime Text dev versions,
add the following setting to your User Preferences file:
"update_check": false
_EOF
}

View file

@ -0,0 +1,3 @@
#!/bin/sh
exec @ST_PATH@/sublime_text "$@"

50
tuned-git/.SRCINFO Normal file
View file

@ -0,0 +1,50 @@
pkgbase = tuned-git
pkgdesc = Daemon that performs monitoring and adaptive configuration of devices in the system
pkgver = 2.24.0.r6.g35eed3c
pkgrel = 2
url = https://github.com/redhat-performance/tuned
arch = any
license = GPL-2.0-or-later
makedepends = desktop-file-utils
makedepends = git
depends = ethtool
depends = gawk
depends = hdparm
depends = polkit
depends = perf
depends = python-configobj
depends = python-dbus
depends = python-gobject
depends = python-linux-procfs
depends = python-pyudev
source = git+https://github.com/redhat-performance/tuned.git
sha512sums = SKIP
pkgname = tuned-git
optdepends = virt-what: Virtual machine detection
optdepends = systemtap: Detailed system monitoring
optdepends = tuned-ppd: power-profiles-daemon api translation
optdepends = wireless_tools: Wireless device power management
optdepends = x86_energy_perf_policy: Energy Performance Bias (EPB) support
provides = tuned
conflicts = tuned
backup = etc/tuned/active_profile
backup = etc/tuned/bootcmdline
backup = etc/tuned/cpu-partitioning-powersave-variables.conf
backup = etc/tuned/cpu-partitioning-variables.conf
backup = etc/tuned/post_loaded_profile
backup = etc/tuned/profile_mode
backup = etc/tuned/realtime-variables.conf
backup = etc/tuned/realtime-virtual-guest-variables.conf
backup = etc/tuned/realtime-virtual-host-variables.conf
backup = etc/tuned/tuned-main.conf
pkgname = tuned-ppd-git
pkgdesc = Daemon that allows applications to easily transition to TuneD from power-profiles-daemon (PPD)
depends = tuned
provides = tuned-ppd
provides = power-profiles-daemon
conflicts = tuned-ppd
conflicts = power-profiles-daemon
options = !emptydirs
backup = etc/tuned/ppd.conf

75
tuned-git/PKGBUILD Normal file
View file

@ -0,0 +1,75 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Wes Jackson <icebal dot 7 at gmail dot com>
# Contributor: Iwan Timmer <irtimmer@gmail.com>
# Contributor: Timothée Ravier <tim at siosm dot fr>
# Contributor: Tom <reztho at archlinux dot org>
_pkgbase=tuned
pkgbase="${_pkgbase}-git"
pkgname=("${_pkgbase}-git" "${_pkgbase}-ppd-git")
pkgver=2.24.0.r6.g35eed3c
pkgrel=2
pkgdesc='Daemon that performs monitoring and adaptive configuration of devices in the system'
arch=('any')
url="https://github.com/redhat-performance/${_pkgbase}"
license=('GPL-2.0-or-later')
depends=('ethtool' 'gawk' 'hdparm' 'polkit' 'perf' 'python-configobj'
'python-dbus' 'python-gobject' 'python-linux-procfs' 'python-pyudev')
makedepends=('desktop-file-utils' 'git')
source=("git+${url}.git")
sha512sums=('SKIP')
pkgver() {
cd "${_pkgbase}"
git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/^v//g;s/-/./g'
}
prepare() {
cd "${_pkgbase}"
mv libexec lib
sed -i 's|/libexec/|/lib/|g' Makefile
sed -i 's|/sbin/|/bin/|g' Makefile tuned.service tuned-gui.py tuned-gui.desktop tuned/ppd/tuned-ppd.service
sed -i 's|install-ppd: install$|install-ppd: install-dirs|' Makefile
}
package_tuned-git() {
optdepends=('virt-what: Virtual machine detection'
'systemtap: Detailed system monitoring'
'tuned-ppd: power-profiles-daemon api translation'
'wireless_tools: Wireless device power management'
'x86_energy_perf_policy: Energy Performance Bias (EPB) support')
provides=("${_pkgbase}")
conflicts=("${_pkgbase}")
backup=('etc/tuned/active_profile'
'etc/tuned/bootcmdline'
'etc/tuned/cpu-partitioning-powersave-variables.conf'
'etc/tuned/cpu-partitioning-variables.conf'
'etc/tuned/post_loaded_profile'
'etc/tuned/profile_mode'
'etc/tuned/realtime-variables.conf'
'etc/tuned/realtime-virtual-guest-variables.conf'
'etc/tuned/realtime-virtual-host-variables.conf'
'etc/tuned/tuned-main.conf')
cd "${_pkgbase}"
make DESTDIR="${pkgdir}" install
rm -rv "${pkgdir}"/{run,var}
python -m compileall -d /usr/lib "${pkgdir}/usr/lib"
python -O -m compileall -d /usr/lib "${pkgdir}/usr/lib"
}
package_tuned-ppd-git() {
pkgdesc='Daemon that allows applications to easily transition to TuneD from power-profiles-daemon (PPD)'
depends=("${_pkgbase}")
provides=("${_pkgbase}-ppd" 'power-profiles-daemon')
conflicts=("${_pkgbase}-ppd" 'power-profiles-daemon')
backup=('etc/tuned/ppd.conf')
options=('!emptydirs')
cd "${_pkgbase}"
make DESTDIR="${pkgdir}" install-ppd
}

View file

@ -0,0 +1,20 @@
pkgbase = waifu2x-ncnn-vulkan
pkgdesc = waifu2x converter ncnn version, runs fast on intel / amd / nvidia GPU with vulkan
pkgver = 20220728
pkgrel = 1
url = https://github.com/nihui/waifu2x-ncnn-vulkan
arch = x86_64
arch = aarch64
license = MIT
makedepends = cmake
makedepends = glslang
makedepends = vulkan-headers
makedepends = ncnn
depends = vulkan-icd-loader
depends = libwebp
source = https://github.com/nihui/waifu2x-ncnn-vulkan/archive/20220728/waifu2x-ncnn-vulkan-20220728.tar.gz
source = model_path.patch
sha512sums = ea17cbbcb7318586793222c6c7139f67395c49c567b601969b829fc426eb517308509b7c1da69171fcbf8e68baa5cec3e52e98159e3c5e6c35ce47a8514dadb7
sha512sums = 1a286730a7168f63c56544b334277234b84415bcc4c2956c8f8f39ef0d864f9de4ecb38cb9491da91c45b43d5ecdba0018931c2926fb6e2aea98edf3ca42657a
pkgname = waifu2x-ncnn-vulkan

View file

@ -0,0 +1,41 @@
pkgname=waifu2x-ncnn-vulkan
pkgver=20220728
pkgrel=1
pkgdesc='waifu2x converter ncnn version, runs fast on intel / amd / nvidia GPU with vulkan'
arch=('x86_64' 'aarch64')
url="https://github.com/nihui/$pkgname"
license=('MIT')
depends=('vulkan-icd-loader' 'libwebp')
makedepends=('cmake' 'glslang' 'vulkan-headers' 'ncnn')
source=("https://github.com/nihui/$pkgname/archive/$pkgver/$pkgname-$pkgver.tar.gz"
'model_path.patch')
sha512sums=('ea17cbbcb7318586793222c6c7139f67395c49c567b601969b829fc426eb517308509b7c1da69171fcbf8e68baa5cec3e52e98159e3c5e6c35ce47a8514dadb7'
'1a286730a7168f63c56544b334277234b84415bcc4c2956c8f8f39ef0d864f9de4ecb38cb9491da91c45b43d5ecdba0018931c2926fb6e2aea98edf3ca42657a')
prepare() {
cd $pkgname-$pkgver
# TODO: Make proper patch
patch -Np1 < '../model_path.patch'
}
build() {
cmake -B build -S "$pkgname-$pkgver/src" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DGLSLANG_TARGET_DIR=/usr/lib/cmake \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_SYSTEM_NCNN=on \
-DUSE_SYSTEM_WEBP=on
cmake --build build
}
package() {
install -Dm755 -t "$pkgdir/usr/bin" build/$pkgname
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" $pkgname-$pkgver/LICENSE
cd $pkgname-$pkgver/models
for f in models-*/*; do
install -Dm644 "$f" "$pkgdir/usr/share/$pkgname/$f"
done
}

View file

@ -0,0 +1,26 @@
diff --git a/src/filesystem_utils.h b/src/filesystem_utils.h
index fdf172c..9706dc9 100644
--- a/src/filesystem_utils.h
+++ b/src/filesystem_utils.h
@@ -169,7 +169,7 @@ static path_t sanitize_filepath(const path_t& path)
if (filepath_is_readable(path))
return path;
- return get_executable_directory() + path;
+ return "/usr/share/waifu2x-ncnn-vulkan/" + path;
}
#endif // FILESYSTEM_UTILS_H
diff --git a/src/main.cpp b/src/main.cpp
index fa10e6f..5590b2f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -470,7 +470,7 @@ int main(int argc, char** argv)
int noise = 0;
int scale = 2;
std::vector<int> tilesize;
- path_t model = PATHSTR("models-cunet");
+ path_t model = PATHSTR("/usr/share/waifu2x-ncnn-vulkan/models-cunet");
std::vector<int> gpuid;
int jobs_load = 1;
std::vector<int> jobs_proc;

12
wxedid/.SRCINFO Normal file
View file

@ -0,0 +1,12 @@
pkgbase = wxedid
pkgdesc = wxWidgets-based EDID (Extended Display Identification Data) editor
pkgver = 0.0.31
pkgrel = 1
url = https://sourceforge.net/projects/wxedid/
arch = x86_64
license = GPL-3.0-or-later
depends = wxwidgets-gtk3
source = https://downloads.sourceforge.net/wxedid/wxedid-0.0.31.tar.gz
sha512sums = 9e83ce46912ef1a43bccfa4e4086697cfec444ef932040e618210d682a6fa4a40bf78aece953e10a959ae7a38671b5782a0a4562cd776f71b5784c3bd1fcda5d
pkgname = wxedid

30
wxedid/PKGBUILD Normal file
View file

@ -0,0 +1,30 @@
# Maintainer: Manuel Hüsers <aur@huesers.de>
# Contributor: Jonathan Liu <net147@gmail.com>
pkgname=wxedid
pkgver=0.0.31
pkgrel=1
pkgdesc='wxWidgets-based EDID (Extended Display Identification Data) editor'
arch=('x86_64')
url="https://sourceforge.net/projects/${pkgname}/"
license=('GPL-3.0-or-later')
depends=('wxwidgets-gtk3')
source=("https://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
sha512sums=('9e83ce46912ef1a43bccfa4e4086697cfec444ef932040e618210d682a6fa4a40bf78aece953e10a959ae7a38671b5782a0a4562cd776f71b5784c3bd1fcda5d')
build() {
cd "${pkgname}-${pkgver}"
autoreconf -f -i
./configure --prefix=/usr
make
}
check() {
cd "${pkgname}-${pkgver}"
make check
}
package() {
cd "${pkgname}-${pkgver}"
make DESTDIR="$pkgdir" install
}