Compare commits
No commits in common. "forgejo" and "master" have entirely different histories.
167 changed files with 462 additions and 2964 deletions
|
@ -1,33 +0,0 @@
|
|||
on:
|
||||
push:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
arch:
|
||||
- aarch64
|
||||
- armhf
|
||||
- armv7
|
||||
- ppc64le
|
||||
- riscv64
|
||||
- s390x
|
||||
- x86_64
|
||||
- x86
|
||||
container: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/${{ matrix.arch }}:latest
|
||||
steps:
|
||||
- uses: https://code.forgejo.org/actions/checkout@v4
|
||||
- uses: https://code.forgejo.org/actions/cache@v4
|
||||
with:
|
||||
path: ~/repodest
|
||||
key: ${{ matrix.arch }}-ptrcports
|
||||
|
||||
- name: Set up secrets
|
||||
run: |
|
||||
echo "${{ secrets.SSH_KEY }}" | base64 -d > /tmp/ssh_key
|
||||
echo "${{ secrets.PACKAGER_PRIVKEY }}" | base64 -d > /tmp/packager_key
|
||||
- name: Do the build
|
||||
env:
|
||||
PRIVATE_KEY: /tmp/ssh_key
|
||||
PACKAGER_PRIVKEY: /tmp/packager_key
|
||||
run: do-the-build ptrcports "$GITHUB_REF_NAME"
|
|
@ -1,93 +0,0 @@
|
|||
build-x86_64: &build
|
||||
image: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/x86_64:latest
|
||||
tags: [x86_64]
|
||||
cache:
|
||||
key: repodest-x86_64
|
||||
paths: [repodest/ptrcports/x86_64]
|
||||
when: always
|
||||
stage: build
|
||||
script:
|
||||
- CARCH=$(apk --print-arch)
|
||||
- doas apk upgrade -Ua
|
||||
- setup-ssh-key "$PRIVATE_KEY"
|
||||
- setup-abuild-key "$PACKAGER_PRIVKEY" "alpine@ptrcnull.me-60610fa4.rsa"
|
||||
- mkdir -p repodest/ptrcports/$CARCH
|
||||
- rsync --archive --update --hard-links --delete --delete-after --delay-updates --itemize-changes --no-o --no-g
|
||||
buildozer@repo.ptrc.gay:repodest/ptrcports/$CARCH/
|
||||
repodest/ptrcports/$CARCH/
|
||||
- buildrepo
|
||||
--aports $PWD/..
|
||||
--destdir $PWD/repodest
|
||||
--purge
|
||||
ptrcports
|
||||
- |-
|
||||
if [ "$CI_COMMIT_BRANCH" = "master" ]; then
|
||||
rsync --archive --update --hard-links --delete --delete-after --delay-updates --itemize-changes --no-o --no-g \
|
||||
repodest/ptrcports/$CARCH/ \
|
||||
buildozer@repo.ptrc.gay:repodest/ptrcports/$CARCH/
|
||||
else
|
||||
echo "Current branch: $CI_COMMIT_BRANCH"
|
||||
fi
|
||||
|
||||
build-aarch64:
|
||||
<<: *build
|
||||
tags: [aarch64]
|
||||
cache:
|
||||
key: repodest-aarch64
|
||||
paths: [repodest/ptrcports/aarch64]
|
||||
when: always
|
||||
image: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/arm64v8:latest
|
||||
|
||||
build-armhf:
|
||||
<<: *build
|
||||
tags: [armhf]
|
||||
cache:
|
||||
key: repodest-armhf
|
||||
paths: [repodest/ptrcports/armhf]
|
||||
when: always
|
||||
image: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/arm32v6:latest
|
||||
|
||||
build-armv7:
|
||||
<<: *build
|
||||
tags: [armv7]
|
||||
cache:
|
||||
key: repodest-armv7
|
||||
paths: [repodest/ptrcports/armv7]
|
||||
when: always
|
||||
image: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/arm32v7:latest
|
||||
|
||||
build-ppc64le:
|
||||
<<: *build
|
||||
tags: [ppc64le]
|
||||
cache:
|
||||
key: repodest-ppc64le
|
||||
paths: [repodest/ptrcports/ppc64le]
|
||||
when: always
|
||||
image: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/ppc64le:latest
|
||||
|
||||
build-riscv64:
|
||||
<<: *build
|
||||
tags: [riscv64]
|
||||
cache:
|
||||
key: repodest-riscv64
|
||||
paths: [repodest/ptrcports/riscv64]
|
||||
when: always
|
||||
image: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/riscv64:latest
|
||||
|
||||
build-s390x:
|
||||
<<: *build
|
||||
tags: [s390x]
|
||||
cache:
|
||||
key: repodest-s390x
|
||||
paths: [repodest/ptrcports/s390x]
|
||||
when: always
|
||||
image: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/s390x:latest
|
||||
|
||||
build-x86:
|
||||
<<: *build
|
||||
tags: [x86]
|
||||
cache:
|
||||
key: repodest-x86
|
||||
paths: [repodest/ptrcports/x86]
|
||||
when: always
|
||||
image: registry.git.ptrc.gay/ptrcnull/ptrcports-builder/i386:latest
|
5
README
5
README
|
@ -3,9 +3,8 @@ Hi!
|
|||
This is an Alpine Linux repository of random packages I find useful, but
|
||||
not quite fitting into the official aports repo.
|
||||
|
||||
All the stuff here is built from https://git.ptrc.gay/ptrcnull/ptrcports,
|
||||
currently the main supported architectures are x86_64 and aarch64,
|
||||
but most packages are being built for all Alpine edge architectures.
|
||||
All the stuff here is built from https://git.ddd.rip/ptrcnull/ptrcports,
|
||||
currently the main supported architectures are x86_64 and aarch64.
|
||||
|
||||
Adding into your system (as root):
|
||||
echo "@ptrc https://repo.ptrc.gay/ptrcports" >> /etc/apk/repositories
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=apatch
|
||||
pkgver=1.5.1
|
||||
pkgver=1.4.0
|
||||
pkgrel=0
|
||||
pkgdesc="make aports patches easier"
|
||||
url="https://git.ddd.rip/ptrcnull/apatch"
|
||||
|
@ -17,5 +17,5 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
5b90007c61b47d9a515a325920b816eca12fb5166467c3ed1ddfe1064690e349ad90a8d3d1941ff690560a98db1dcd59a39b7caae12611674f1e2e4372dd61be apatch-v1.5.1.tar.gz
|
||||
70425c1422880fdf45adb4a5a8b7f37b60bcbced9fc2e96c4962d3e94e4f4e5b9ebf8c1aa0f1328822de114b4b66f67ecfba5cdeb6f022995ed0a38204a233b1 apatch-v1.4.0.tar.gz
|
||||
"
|
|
@ -2,7 +2,7 @@
|
|||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=fdcreate
|
||||
pkgver=1.0.0
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
pkgdesc="chainable utility for creating memfds"
|
||||
url="https://git.ddd.rip/ptrcnull/fdcreate"
|
||||
arch="all"
|
|
@ -5,7 +5,7 @@ pkgrel=0
|
|||
_gitrev=c37dc82bbaf18efbe564f0e705bbef192f358d6d
|
||||
pkgdesc="Fixed-width bitmap font forked from Dina and Proggy Tiny"
|
||||
url="https://github.com/bjin/ctrld-font"
|
||||
arch="aarch64 x86_64"
|
||||
arch="noarch"
|
||||
license="none"
|
||||
depends="fontconfig mkfontscale"
|
||||
source="$pkgname-$pkgver.tar.gz::https://github.com/bjin/ctrld-font/archive/$_gitrev.tar.gz"
|
|
@ -5,7 +5,7 @@ pkgver=1
|
|||
pkgrel=0
|
||||
pkgdesc="SF Pro font by Apple"
|
||||
url="https://developer.apple.com/fonts/"
|
||||
arch="aarch64 x86_64"
|
||||
arch="noarch"
|
||||
license="proprietary"
|
||||
makedepends="cpio p7zip"
|
||||
source="https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
|
|
@ -5,7 +5,7 @@ pkgver=1.1.2
|
|||
pkgrel=0
|
||||
pkgdesc="paste"
|
||||
url="https://git.ddd.rip/ptrcnull/gaypaste"
|
||||
arch="aarch64 x86_64"
|
||||
arch="all"
|
||||
license="custom"
|
||||
makedepends="go"
|
||||
subpackages="$pkgname-openrc"
|
|
@ -1,10 +1,10 @@
|
|||
# Maintainer: psykose <alice@ayaya.dev>
|
||||
pkgname=htop-full
|
||||
pkgver=3.2.2
|
||||
pkgver=3.2.1
|
||||
pkgrel=0
|
||||
pkgdesc="Interactive process viewer"
|
||||
url="https://htop.dev/"
|
||||
arch="aarch64 x86_64"
|
||||
arch="all"
|
||||
license="GPL-2.0-or-later"
|
||||
makedepends="
|
||||
autoconf
|
||||
|
@ -44,5 +44,5 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
dd82d5b2f70694e76b3740ef0f6f6d3446fe83b748c2cfe61c783985d62cb6e1d00fcb4b1fe7dc8f1d8c6bc7b29474e1e88eaa01f154198d702b100bcbc135bb htop-full-3.2.2.tar.gz
|
||||
d7b76e28ee870ac572ba1d9606dec6f9475346a00e599ca15838017c97683f1fc1be40417b9c1e76128cacc8a60ff9ba88c6b237be1835d309f98329b25644fc htop-full-3.2.1.tar.gz
|
||||
"
|
|
@ -5,7 +5,7 @@ pkgver=2
|
|||
pkgrel=0
|
||||
pkgdesc="QuickJS-based jq-like data processing tool"
|
||||
url="https://git.ddd.rip/ptrcnull/ptrcports"
|
||||
arch="aarch64 x86_64"
|
||||
arch="all"
|
||||
license="BSD-2-Clause"
|
||||
makedepends="quickjs-dev"
|
||||
source="jsq.js"
|
|
@ -1,22 +1,21 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=kouhai
|
||||
pkgver=0_alpha15
|
||||
_commit=733ef8b1c67226096303dcfdadf7be3903d37c3f
|
||||
pkgver=0_alpha9
|
||||
_commit=5ae1015ff395a9e0474193c65b18b20da8fa95eb
|
||||
pkgrel=0
|
||||
pkgdesc="Your everyday IRC student"
|
||||
url="https://git.sr.ht/~taiite/senpai"
|
||||
arch="aarch64 x86_64"
|
||||
arch="all"
|
||||
license="ISC"
|
||||
makedepends="go scdoc"
|
||||
subpackages="$pkgname-doc"
|
||||
source="$pkgname-$pkgver.tar.gz::https://github.com/ptrcnull/kouhai/archive/$_commit.tar.gz"
|
||||
builddir="$srcdir/kouhai-$_commit"
|
||||
options="net" # go dependencies
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
sed -i "s/senpai dev build/kouhai version $pkgver/" window.go
|
||||
sed -i "s/production/$pkgver/" window.go
|
||||
}
|
||||
|
||||
build() {
|
||||
|
@ -32,5 +31,5 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
d094fdf607e7edd0156d69e840e60bda352ed305783d1759507f74fef06e99fdc9ae1e0ac5e1327491eb36981db5838476c59e3c3f3b9d3e31191a32d739d33f kouhai-0_alpha15.tar.gz
|
||||
7eb702a805668db303b9ce7da48cd8c22a6658a339faadfb00e29b99a2ddf54c77ab6231e6b3328085dbdbe9fff44e217ed8e6ea716c25542466192df115799e kouhai-0_alpha9.tar.gz
|
||||
"
|
41
libdrm-static/APKBUILD
Normal file
41
libdrm-static/APKBUILD
Normal file
|
@ -0,0 +1,41 @@
|
|||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=libdrm-static
|
||||
pkgver=2.4.109
|
||||
pkgrel=0
|
||||
pkgdesc="Userspace interface to kernel DRM services"
|
||||
url="https://dri.freedesktop.org/"
|
||||
arch="x86_64"
|
||||
# Requires a computer with gfx, no X running, build user in 'video' group..
|
||||
options="!check"
|
||||
license="MIT"
|
||||
depends="linux-headers"
|
||||
makedepends="meson libpthread-stubs eudev-dev libpciaccess-dev xmlto"
|
||||
checkdepends="cunit-dev bash"
|
||||
source="https://gitlab.freedesktop.org/mesa/drm/-/archive/libdrm-$pkgver/drm-libdrm-$pkgver.tar.gz"
|
||||
builddir="$srcdir/drm-libdrm-$pkgver"
|
||||
|
||||
build() {
|
||||
abuild-meson \
|
||||
-Dfreedreno=true \
|
||||
-Dtegra=true \
|
||||
-Domap=true \
|
||||
-Dexynos=true \
|
||||
-Dvc4=true \
|
||||
-Detnaviv=true \
|
||||
-Dudev=true \
|
||||
-Ddefault_library=static \
|
||||
. output
|
||||
meson compile ${JOBS:+-j ${JOBS}} -C output
|
||||
}
|
||||
|
||||
check() {
|
||||
meson test -v -C output
|
||||
}
|
||||
|
||||
package() {
|
||||
install -Dm644 "$builddir"/output/libdrm.a "$pkgdir"/usr/lib/libdrm.a
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
77afc048f449de2c3d8588b7ef9136f69fc11b9130a7364872ad30807407aa180ded27d37961e94a738f8b5db9a9b19266c8f00d9a39b3f6b33ecad2ea44bc7b drm-libdrm-2.4.109.tar.gz
|
||||
"
|
18
limine-upgrade-hook/APKBUILD
Normal file
18
limine-upgrade-hook/APKBUILD
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=limine-upgrade-hook
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="Copies new Limine EFI file to /boot/EFI/BOOT/BOOTX64.EFI"
|
||||
url="https://git.ddd.rip/ptrcnull/ptrcports"
|
||||
arch="x86_64"
|
||||
license="BSD-2-Clause"
|
||||
depends="limine-64"
|
||||
triggers="limine-upgrade-hook.trigger=/usr/share/limine"
|
||||
builddir="$srcdir"
|
||||
options="!check"
|
||||
|
||||
package() {
|
||||
mkdir -p "$pkgdir"
|
||||
}
|
||||
|
4
limine-upgrade-hook/limine-upgrade-hook.trigger
Normal file
4
limine-upgrade-hook/limine-upgrade-hook.trigger
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
mkdir -p /boot/EFI/BOOT
|
||||
cp /usr/share/limine/BOOTX64.EFI /boot/EFI/BOOT
|
|
@ -1,8 +1,8 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=linux-smol
|
||||
pkgver=5.15.90
|
||||
pkgrel=1
|
||||
pkgver=5.15.44
|
||||
pkgrel=0
|
||||
pkgdesc="linux kernel but smol"
|
||||
url="https://www.kernel.org"
|
||||
arch="x86_64"
|
||||
|
@ -29,6 +29,6 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
ef0e9e249ace8b9c006377a5169558f68dec4cdf455394809b1c9095081e3b00da53ee9cff13810a93533531736bcbdf335f0118021b6a8e92eae521de5097b7 linux-5.15.90.tar.xz
|
||||
9768b527d08a82c782591199da9a3034de425c20134627f89a52d86647c89357edf5132b1a2b105387bad3a6b6a2b6eecfa05458c4dff944190afaea6afaa63e config
|
||||
79a477dac536355b2a6c6de14ede675311d6ec179917c3f2acdadea16c81e706b1f9686fa3868a4a36a57441c2d25113632534ad8359a3544207e7068d0e177b linux-5.15.44.tar.xz
|
||||
6c594e97e127ac00e385fb6bf139f7bbeccd57f17ab6e30aeb927d46aa4e6b3ca2284234226f540ae52fa8d8936d8f675ad667d4296ccf38f72a6ecf9966f436 config
|
||||
"
|
|
@ -1,21 +1,20 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/x86 5.15.90 Kernel Configuration
|
||||
# Linux/x86 5.15.30 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="gcc (Alpine 12.2.1_git20220924-r8) 12.2.1 20220924"
|
||||
CONFIG_CC_VERSION_TEXT="gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
CONFIG_GCC_VERSION=120201
|
||||
CONFIG_GCC_VERSION=110201
|
||||
CONFIG_CLANG_VERSION=0
|
||||
CONFIG_AS_IS_GNU=y
|
||||
CONFIG_AS_VERSION=24000
|
||||
CONFIG_AS_VERSION=23800
|
||||
CONFIG_LD_IS_BFD=y
|
||||
CONFIG_LD_VERSION=24000
|
||||
CONFIG_LD_VERSION=23800
|
||||
CONFIG_LLD_VERSION=0
|
||||
CONFIG_CC_CAN_LINK=y
|
||||
CONFIG_CC_CAN_LINK_STATIC=y
|
||||
CONFIG_CC_HAS_ASM_GOTO=y
|
||||
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
||||
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
|
||||
CONFIG_CC_HAS_ASM_INLINE=y
|
||||
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
|
@ -86,7 +85,6 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
|
|||
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
|
||||
CONFIG_GENERIC_CMOS_UPDATE=y
|
||||
CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
|
||||
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
|
||||
|
||||
#
|
||||
# Timers subsystem
|
||||
|
@ -215,7 +213,7 @@ CONFIG_MULTIUSER=y
|
|||
CONFIG_SGETMASK_SYSCALL=y
|
||||
# CONFIG_SYSFS_SYSCALL is not set
|
||||
CONFIG_FHANDLE=y
|
||||
CONFIG_POSIX_TIMERS=y
|
||||
# CONFIG_POSIX_TIMERS is not set
|
||||
CONFIG_PRINTK=y
|
||||
# CONFIG_BUG is not set
|
||||
CONFIG_ELF_CORE=y
|
||||
|
@ -307,6 +305,7 @@ CONFIG_X86_FEATURE_NAMES=y
|
|||
CONFIG_X86_X2APIC=y
|
||||
CONFIG_X86_MPPARSE=y
|
||||
# CONFIG_GOLDFISH is not set
|
||||
CONFIG_RETPOLINE=y
|
||||
# CONFIG_X86_CPU_RESCTRL is not set
|
||||
# CONFIG_X86_EXTENDED_PLATFORM is not set
|
||||
CONFIG_SCHED_OMIT_FRAME_POINTER=y
|
||||
|
@ -426,16 +425,6 @@ CONFIG_MODIFY_LDT_SYSCALL=y
|
|||
CONFIG_HAVE_LIVEPATCH=y
|
||||
# end of Processor type and features
|
||||
|
||||
CONFIG_CC_HAS_SLS=y
|
||||
CONFIG_CC_HAS_RETURN_THUNK=y
|
||||
CONFIG_SPECULATION_MITIGATIONS=y
|
||||
# CONFIG_PAGE_TABLE_ISOLATION is not set
|
||||
CONFIG_RETPOLINE=y
|
||||
CONFIG_RETHUNK=y
|
||||
CONFIG_CPU_UNRET_ENTRY=y
|
||||
CONFIG_CPU_IBPB_ENTRY=y
|
||||
CONFIG_CPU_IBRS_ENTRY=y
|
||||
# CONFIG_SLS is not set
|
||||
CONFIG_ARCH_HAS_ADD_PAGES=y
|
||||
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
|
||||
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
|
||||
|
@ -525,7 +514,6 @@ CONFIG_HAVE_KPROBES_ON_FTRACE=y
|
|||
CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
|
||||
CONFIG_HAVE_NMI=y
|
||||
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||
CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
|
||||
CONFIG_HAVE_ARCH_TRACEHOOK=y
|
||||
CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||
|
@ -816,7 +804,6 @@ CONFIG_NET_UDP_TUNNEL=y
|
|||
# CONFIG_INET_AH is not set
|
||||
# CONFIG_INET_ESP is not set
|
||||
# CONFIG_INET_IPCOMP is not set
|
||||
CONFIG_INET_TABLE_PERTURB_ORDER=16
|
||||
# CONFIG_INET_DIAG is not set
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
# CONFIG_TCP_CONG_BIC is not set
|
||||
|
@ -1577,7 +1564,6 @@ CONFIG_PPS=y
|
|||
#
|
||||
# PTP clock support
|
||||
#
|
||||
# CONFIG_PTP_1588_CLOCK is not set
|
||||
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
|
||||
|
||||
#
|
||||
|
@ -2024,6 +2010,7 @@ CONFIG_IO_WQ=y
|
|||
# CONFIG_SECURITY_DMESG_RESTRICT is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITYFS is not set
|
||||
# CONFIG_PAGE_TABLE_ISOLATION is not set
|
||||
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
|
||||
# CONFIG_HARDENED_USERCOPY is not set
|
||||
# CONFIG_FORTIFY_SOURCE is not set
|
||||
|
@ -2038,12 +2025,7 @@ CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,appar
|
|||
#
|
||||
# Memory initialization
|
||||
#
|
||||
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
|
||||
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
|
||||
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
|
||||
CONFIG_INIT_STACK_NONE=y
|
||||
# CONFIG_INIT_STACK_ALL_PATTERN is not set
|
||||
# CONFIG_INIT_STACK_ALL_ZERO is not set
|
||||
# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
|
||||
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
|
||||
CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
|
||||
|
@ -2143,6 +2125,7 @@ CONFIG_CRYPTO_CRC32C=y
|
|||
# CONFIG_CRYPTO_CRC32_PCLMUL is not set
|
||||
# CONFIG_CRYPTO_XXHASH is not set
|
||||
# CONFIG_CRYPTO_BLAKE2B is not set
|
||||
# CONFIG_CRYPTO_BLAKE2S is not set
|
||||
CONFIG_CRYPTO_BLAKE2S_X86=y
|
||||
CONFIG_CRYPTO_CRCT10DIF=y
|
||||
CONFIG_CRYPTO_CRCT10DIF_PCLMUL=y
|
||||
|
@ -2222,6 +2205,26 @@ CONFIG_CRYPTO_JITTERENTROPY=y
|
|||
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
|
||||
# CONFIG_CRYPTO_USER_API_RNG is not set
|
||||
# CONFIG_CRYPTO_USER_API_AEAD is not set
|
||||
|
||||
#
|
||||
# Crypto library routines
|
||||
#
|
||||
CONFIG_CRYPTO_LIB_AES=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y
|
||||
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_CHACHA=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=y
|
||||
CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_CURVE25519=y
|
||||
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y
|
||||
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_POLY1305=y
|
||||
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
|
||||
#
|
||||
|
@ -2247,28 +2250,6 @@ CONFIG_GENERIC_IOMAP=y
|
|||
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
|
||||
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
|
||||
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
|
||||
|
||||
#
|
||||
# Crypto library routines
|
||||
#
|
||||
CONFIG_CRYPTO_LIB_AES=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
|
||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y
|
||||
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_CHACHA=y
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=y
|
||||
CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_CURVE25519=y
|
||||
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
|
||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y
|
||||
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y
|
||||
CONFIG_CRYPTO_LIB_POLY1305=y
|
||||
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y
|
||||
CONFIG_CRYPTO_LIB_SHA256=y
|
||||
# end of Crypto library routines
|
||||
|
||||
CONFIG_LIB_MEMNEQ=y
|
||||
CONFIG_CRC_CCITT=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRC_T10DIF=y
|
||||
|
@ -2346,8 +2327,6 @@ CONFIG_DYNAMIC_DEBUG_CORE=y
|
|||
CONFIG_SYMBOLIC_ERRNAME=y
|
||||
# end of printk and dmesg options
|
||||
|
||||
CONFIG_AS_HAS_NON_CONST_LEB128=y
|
||||
|
||||
#
|
||||
# Compile-time checks and compiler options
|
||||
#
|
||||
|
@ -2524,6 +2503,7 @@ CONFIG_STRICT_DEVMEM=y
|
|||
#
|
||||
# x86 Debugging
|
||||
#
|
||||
CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
|
||||
CONFIG_X86_VERBOSE_BOOTUP=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
# CONFIG_DEBUG_TLBFLUSH is not set
|
|
@ -5,7 +5,7 @@ pkgver=1.1.1
|
|||
pkgrel=0
|
||||
pkgdesc="docker but simpler"
|
||||
url="https://git.ddd.rip/ptrcnull/miniroot"
|
||||
arch="aarch64 x86_64"
|
||||
arch="all"
|
||||
license="MIT"
|
||||
makedepends="go"
|
||||
source="miniroot-v$pkgver.tar.gz::https://git.ddd.rip/ptrcnull/miniroot/archive/v$pkgver.tar.gz"
|
|
@ -1,10 +1,10 @@
|
|||
# Maintainer: psykose <alice@ayaya.dev>
|
||||
pkgname=nginx-current
|
||||
pkgver=1.27.0
|
||||
pkgrel=1
|
||||
pkgver=1.23.3
|
||||
pkgrel=0
|
||||
pkgdesc="HTTP and reverse proxy server (current version)"
|
||||
url="https://www.nginx.org/"
|
||||
arch="aarch64 x86_64"
|
||||
arch="all"
|
||||
license="BSD-2-Clause"
|
||||
depends="!nginx"
|
||||
makedepends="
|
||||
|
@ -15,7 +15,6 @@ makedepends="
|
|||
libxml2-dev
|
||||
libxslt-dev
|
||||
lld
|
||||
llvm
|
||||
linux-headers
|
||||
openssl-dev>3
|
||||
pcre2-dev
|
||||
|
@ -40,18 +39,14 @@ source="https://nginx.org/download/nginx-$pkgver.tar.gz
|
|||
builddir="$srcdir/nginx-$pkgver"
|
||||
options="!check" # no time!
|
||||
|
||||
export AR=llvm-ar
|
||||
export NM=llvm-nm
|
||||
export RANLIB=llvm-ranlib
|
||||
export CC=clang
|
||||
export CFLAGS="$CFLAGS -flto -O3"
|
||||
export CFLAGS="$CFLAGS -flto=thin"
|
||||
# passed below
|
||||
export LDFLAGS="$LDFLAGS -fuse-ld=lld -Wl,--icf=safe,--gc-sections,-z,pack-relative-relocs"
|
||||
export LDFLAGS="$LDFLAGS -flto=thin -fuse-ld=lld -Wl,--icf=safe,--gc-sections"
|
||||
|
||||
_modules_dir="usr/lib/nginx/modules"
|
||||
|
||||
# Built-in dynamic modules
|
||||
# shellcheck disable=2043
|
||||
for _mod in \
|
||||
stream
|
||||
do
|
||||
|
@ -108,7 +103,6 @@ build() {
|
|||
\
|
||||
--with-http_ssl_module \
|
||||
--with-http_v2_module \
|
||||
--with-http_v3_module \
|
||||
--with-http_realip_module \
|
||||
--with-http_addition_module \
|
||||
--with-http_sub_module \
|
||||
|
@ -185,7 +179,7 @@ vim() {
|
|||
}
|
||||
|
||||
_module() {
|
||||
local name="${subpkgname#"$pkgname"-mod-}"; name="${name//-/_}"
|
||||
local name="${subpkgname#$pkgname-mod-}"; name="${name//-/_}"
|
||||
local ver=$(getvar _${name}_ver)
|
||||
|
||||
pkgdesc="Nginx module ${name//_/-}"
|
||||
|
@ -234,7 +228,7 @@ getvar() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
251bfe65c717a8027ef05caae2ab2ea73b9b544577f539a1d419fe6adf0bcc846b73b58f54ea3f102df79aaf340e4fa56793ddadea3cd61bcbbe2364ef94bacb nginx-1.27.0.tar.gz
|
||||
da5f473ac213f8947f40f0a69820bf981157432fe9d29cf71fe30225dadd05f5814309034f0411ea15fb70bece8ceefc0cb0b2588096c1a9496c2a36fa425d9f nginx-1.23.3.tar.gz
|
||||
9c5ee975dffa15b76688ef798371635f38f1e6773b143c738add26297878dddfc20ebf276e3871a60f28b197e8a70496ca17d4816c2136171978c157bb8e591f nginx.conf
|
||||
0907f69dc2d3dc1bad3a04fb6673f741f1a8be964e22b306ef9ae2f8e736e1f5733a8884bfe54f3553fff5132a0e5336716250f54272c3fec2177d6ba16986f3 default.conf
|
||||
f3321a45736697009817db335ad36d3f1d05f60d98ac90a943220cdd4c00c52632f018db6a6076d5431a483525aacc5725b87b765b590e2f63b3ef98c5b16bd8 stream.conf
|
45
nitter/APKBUILD
Normal file
45
nitter/APKBUILD
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Maintainer: psykose <alice@ayaya.dev>
|
||||
pkgname=nitter
|
||||
pkgver=0_git20221127
|
||||
_gitrev=d923c20aa6a87224343562f15b00e72e7780aa3d
|
||||
pkgrel=1
|
||||
pkgdesc="Alternative Twitter front-end "
|
||||
url="https://github.com/zedeus/nitter/"
|
||||
arch="all"
|
||||
license="AGPL-3.0-only"
|
||||
depends="libssl1.1 libcrypto1.1 pcre"
|
||||
makedepends="libsass-dev nimble pcre-dev"
|
||||
pkgusers="nitter"
|
||||
pkggroups="nitter"
|
||||
install="$pkgname.pre-install"
|
||||
subpackages="$pkgname-openrc"
|
||||
source="https://github.com/zedeus/nitter/archive/$_gitrev/nitter-$_gitrev.tar.gz
|
||||
downgrade-zippy.patch
|
||||
nitter.initd
|
||||
"
|
||||
builddir="$srcdir/$pkgname-$_gitrev"
|
||||
options="!check"
|
||||
|
||||
build() {
|
||||
nimble -y build -d:release
|
||||
nimble -y scss
|
||||
nimble -y md
|
||||
}
|
||||
|
||||
package() {
|
||||
depends="$depends redis"
|
||||
|
||||
install -Dm755 nitter -t "$pkgdir"/usr/bin
|
||||
install -Dm755 "$srcdir"/nitter.initd "$pkgdir"/etc/init.d/nitter
|
||||
|
||||
install -Dm640 nitter.example.conf -t"$pkgdir"/var/lib/nitter
|
||||
|
||||
cp -a public "$pkgdir"/var/lib/nitter
|
||||
chown -R nitter:nitter "$pkgdir"/var/lib/nitter
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
74aca0d7a8923b0ebc29fb938e70a094d9a707477e89c320d919bb75869e1532af3ef19144d566d2568f73331a8b380de144c6148a6ddc1016a982e216d7e3f3 nitter-d923c20aa6a87224343562f15b00e72e7780aa3d.tar.gz
|
||||
975ab7e9e89c375729b5623de938583385335b1b8fb0ce09bf470ed66e920cb03cf27505d495d3aeb6d2f1dafdb88fe0a6978255883d2167e0a073e896f3e7e3 downgrade-zippy.patch
|
||||
7382562f40e50d13ba16adf17eb86b58b365474934bb33cbddf9117d4cc7ff12da9186edb01fd3c13b4efd91e35e57f368f056b376d03b4d5c6a191971a07ace nitter.initd
|
||||
"
|
14
nitter/downgrade-zippy.patch
Normal file
14
nitter/downgrade-zippy.patch
Normal file
|
@ -0,0 +1,14 @@
|
|||
the new versions sigill on ud2
|
||||
diff --git a/nitter.nimble b/nitter.nimble
|
||||
index a4d2e87..30c3893 100644
|
||||
--- a/nitter.nimble
|
||||
+++ b/nitter.nimble
|
||||
@@ -20,7 +20,7 @@ requires "packedjson#9e6fbb6"
|
||||
requires "supersnappy#6c94198"
|
||||
requires "redpool#8b7c1db"
|
||||
requires "https://github.com/zedeus/redis#d0a0e6f"
|
||||
-requires "zippy#61922b9"
|
||||
+requires "zippy#0.9.11"
|
||||
requires "flatty#9f885d7"
|
||||
requires "jsony#d0e69bd"
|
||||
|
22
nitter/nitter.initd
Normal file
22
nitter/nitter.initd
Normal file
|
@ -0,0 +1,22 @@
|
|||
#!/sbin/openrc-run
|
||||
|
||||
depend() {
|
||||
use net
|
||||
after firewall
|
||||
need redis
|
||||
}
|
||||
|
||||
supervisor=supervise-daemon
|
||||
name=nitter
|
||||
description="nitter"
|
||||
command=/usr/bin/nitter
|
||||
directory=/var/lib/nitter
|
||||
command_background=true
|
||||
output_log=/var/log/nitter.log
|
||||
error_log=/var/log/nitter.log
|
||||
command_user=nitter:nitter
|
||||
|
||||
start_pre() {
|
||||
checkpath -f -o $command_user /var/log/nitter.log
|
||||
}
|
||||
|
9
nitter/nitter.pre-install
Normal file
9
nitter/nitter.pre-install
Normal file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
user=nitter
|
||||
group=nitter
|
||||
|
||||
addgroup -S $group 2>/dev/null
|
||||
adduser -S -D -h /var/lib/$user -s /sbin/nologin -G $group -g $user $user 2>/dev/null
|
||||
|
||||
exit 0
|
47
node-print/APKBUILD
Normal file
47
node-print/APKBUILD
Normal file
|
@ -0,0 +1,47 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=node-print
|
||||
pkgver=9
|
||||
pkgrel=0
|
||||
pkgdesc="another terrible javascript engine wrapper"
|
||||
url="https://git.ddd.rip/ptrcnull/ptrcports"
|
||||
arch="noarch"
|
||||
license="BSD-2-Clause"
|
||||
depends="nodejs-current"
|
||||
source="np index.js"
|
||||
builddir="$srcdir"
|
||||
|
||||
_assert() {
|
||||
[ "$1" == "$2" ] || { echo "'$1' != '$2'"; return 1; }
|
||||
}
|
||||
|
||||
check() {
|
||||
local out
|
||||
out="$(echo test | node -r . -p "stdin().substring(2).replace('t', 'rc').replace('s', 'pt')")"
|
||||
_assert "$out" "ptrc"
|
||||
|
||||
out="$(echo '{"test":"property"}' | node -r . -p "stdin().test")"
|
||||
_assert "$out" "property"
|
||||
|
||||
out="$(echo '["item"]' | node -r . -p "stdin()[0]")"
|
||||
_assert "$out" "item"
|
||||
|
||||
out="$(echo crtp | node -r . -p "stdin().lines()[0].reverse()")"
|
||||
_assert "$out" "ptrc"
|
||||
|
||||
out="$(node -r . -p "exec('echo', ['1']).stdout.toString()")"
|
||||
_assert "$out" "1"
|
||||
|
||||
out="$(node -r . -p "exec('echo', ['[]']).stdout.length")"
|
||||
_assert "$out" "0"
|
||||
}
|
||||
|
||||
package() {
|
||||
install -Dm755 np "$pkgdir"/usr/bin/np
|
||||
install -Dm644 index.js "$pkgdir"/usr/lib/node/ptrc/index.js
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
b3dfdeb49637be33d2e2718c5abcf35a87dd55023918c99341273c3b38bd6685189d1f786451a742c47c5f3bc3b58555decb58e2a3a018c9b9ee92043f8fac03 np
|
||||
78e8f576fe7d13394c08fc7746817cfaf61ff76fd779f09fb0ace9ac72a5fd7202479624b50f1b4b03375aae86685a8da9d7e7c034dc69ee4b5fb336ee37fdb1 index.js
|
||||
"
|
|
@ -1,7 +1,5 @@
|
|||
const fs = require('fs')
|
||||
const child_process = require('child_process')
|
||||
|
||||
global.stdin = () => {
|
||||
const fs = require('fs')
|
||||
const out = fs.readFileSync(0).toString()
|
||||
return out.tryParseJSON()
|
||||
}
|
||||
|
@ -10,8 +8,6 @@ Object.prototype.map = function(cb) {
|
|||
return cb(this)
|
||||
}
|
||||
|
||||
Object.prototype.apply = Object.prototype.map
|
||||
|
||||
String.prototype.lines = function() {
|
||||
let res = this.split("\n")
|
||||
return res.at(-1) === '' ? res.slice(0, -1) : res
|
||||
|
@ -26,11 +22,6 @@ String.prototype.includesAny = function(strings) {
|
|||
return strings.some(x => this.includes(x))
|
||||
}
|
||||
|
||||
String.prototype.replaceAt = function(idx, str) {
|
||||
if (idx > (this.length - 1) || idx < 0) throw new RangeError('idx must be in bounds of the string')
|
||||
return this.substring(0, idx) + str + this.substring(idx + str.length)
|
||||
}
|
||||
|
||||
String.prototype.tryParseJSON = function() {
|
||||
const str = this.trim()
|
||||
if (
|
||||
|
@ -57,47 +48,29 @@ Buffer.prototype.tryParseJSON = function() {
|
|||
}
|
||||
|
||||
global.exec = (command, args, options) => {
|
||||
const child_process = require('child_process')
|
||||
const res = child_process.spawnSync(command, args, options)
|
||||
res.stdout = res.stdout?.tryParseJSON()
|
||||
res.stderr = res.stderr?.tryParseJSON()
|
||||
res.orFail = function() {
|
||||
if (res.status !== 0) {
|
||||
const cmd = [
|
||||
command,
|
||||
...((args && Array.isArray(args)) ? args : [])
|
||||
].join(' ')
|
||||
throw new Error(`command '${cmd}' exited with code ${res.status}`)
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
global.execnc = (command, args, options) => {
|
||||
if (!options) options = {}
|
||||
if (!options.stdio) options.stdio = 'inherit'
|
||||
return exec(command, args, options)
|
||||
}
|
||||
|
||||
/* wow it's almost like it's my own package and i can include whatever garbage i want :) */
|
||||
/* not writing a test for that tho */
|
||||
global.apkindex = input => {
|
||||
if (!input) input = stdin()
|
||||
|
||||
return input
|
||||
.split("\n\n")
|
||||
.filter(str => str.length)
|
||||
.map(x => Object.fromEntries(x.lines().map(e => [e.at(0), e.slice(2)])))
|
||||
.map(pkg => ({
|
||||
...pkg,
|
||||
S: Number(pkg.S),
|
||||
I: Number(pkg.I),
|
||||
t: new Date(Number(pkg.t) * 1000),
|
||||
i: pkg.i?.split(' '),
|
||||
D: pkg.D?.split(' '),
|
||||
p: pkg.p?.split(' ')
|
||||
}))
|
||||
.map(Object.prune)
|
||||
}
|
||||
global.apkindex = () => stdin()
|
||||
.split("\n\n")
|
||||
.filter(str => str.length)
|
||||
.map(x => Object.fromEntries(x.lines().map(e => [e.at(0), e.slice(2)])))
|
||||
.map(pkg => ({
|
||||
...pkg,
|
||||
S: Number(pkg.S),
|
||||
I: Number(pkg.I),
|
||||
t: new Date(Number(pkg.t) * 1000),
|
||||
i: pkg.i?.split(' '),
|
||||
D: pkg.D?.split(' '),
|
||||
p: pkg.p?.split(' ')
|
||||
}))
|
||||
.map(Object.prune)
|
||||
|
||||
Array.prototype.sum = function(def = 0) {
|
||||
return this.reduce((a, b) => a + b, def)
|
||||
|
@ -107,16 +80,8 @@ Array.prototype.product = function(def = 1) {
|
|||
return this.reduce((a, b) => a * b, def)
|
||||
}
|
||||
|
||||
Array.prototype.min = function() {
|
||||
return this.reduce((a, b) => Math.min(a, b))
|
||||
}
|
||||
|
||||
Array.prototype.max = function() {
|
||||
return this.reduce((a, b) => Math.max(a, b))
|
||||
}
|
||||
|
||||
Array.prototype.sortNum = function(getter = (x => x)) {
|
||||
return this.sort((a, b) => getter(a) - getter(b))
|
||||
Array.prototype.sortNum = function() {
|
||||
return this.sort((a, b) => a - b)
|
||||
}
|
||||
|
||||
Array.prototype.partition = function(compareFn) {
|
||||
|
@ -143,22 +108,6 @@ Array.prototype.transpose = function() {
|
|||
return new Array(this[0].length).fill().map((_, i) => this.map(x => x[i]))
|
||||
}
|
||||
|
||||
Array.prototype.shuffle = function() {
|
||||
// borrowed from https://stackoverflow.com/a/12646864
|
||||
for (let i = this.length - 1; i > 0; i--) {
|
||||
const j = Math.floor(Math.random() * (i + 1));
|
||||
[this[i], this[j]] = [this[j], this[i]];
|
||||
}
|
||||
}
|
||||
|
||||
Array.prototype.uniq = function() {
|
||||
return new Array(...(new Set(this)))
|
||||
}
|
||||
|
||||
Array.prototype.lines = function() {
|
||||
return this.join('\n')
|
||||
}
|
||||
|
||||
Set.prototype.union = function(other) {
|
||||
if (!other || !(other instanceof Set)) throw new TypeError('other must be a Set')
|
||||
return new Set([...this, ...other])
|
||||
|
@ -169,11 +118,6 @@ Set.prototype.intersection = function(other) {
|
|||
return new Set([...this].filter(el => other.has(el)))
|
||||
}
|
||||
|
||||
Set.prototype.difference = function(other) {
|
||||
if (!other || !(other instanceof Set)) throw new TypeError('other must be a Set')
|
||||
return new Set([...this].filter(el => !other.has(el)))
|
||||
}
|
||||
|
||||
Set.prototype.at = function(index) {
|
||||
return [...this].at(index)
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
# Maintainer: psykose <alice@ayaya.dev>
|
||||
pkgname=abr
|
||||
pkgver=17
|
||||
pkgrel=0
|
||||
pkgdesc="abr~!"
|
||||
url="https://git.ddd.rip/ptrcnull/aports"
|
||||
arch="noarch"
|
||||
license="ISC"
|
||||
# chrt, ionice
|
||||
depends="
|
||||
abuild
|
||||
execline
|
||||
jq
|
||||
util-linux-misc
|
||||
"
|
||||
checkdepends="
|
||||
shellcheck
|
||||
shfmt
|
||||
"
|
||||
source="
|
||||
APKBUILD_SHIM
|
||||
abr
|
||||
apkbuild-anitya
|
||||
apkbuild-shellcheck
|
||||
"
|
||||
builddir="$srcdir"
|
||||
options="!check" # manual
|
||||
|
||||
check() {
|
||||
shellcheck -s sh .
|
||||
shfmt \
|
||||
--diff \
|
||||
--simplify \
|
||||
--posix \
|
||||
--indent 3 \
|
||||
--space-redirects \
|
||||
--binary-next-line \
|
||||
.
|
||||
}
|
||||
|
||||
package() {
|
||||
install -Dm755 abr apkbuild-anitya apkbuild-shellcheck \
|
||||
-t "$pkgdir"/usr/bin/
|
||||
install -Dm644 APKBUILD_SHIM \
|
||||
-t "$pkgdir"/usr/share/abuild/
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
c011f82c90acf0de2b16db3b264cda52b182de9640b9edae985fd646c235969f3f5d3f003ec0e5df1035959e567bb55f85018308c989db95e21d93d3cd93742b APKBUILD_SHIM
|
||||
171e161bb7768fa29ddc45598480eafda4077b93186b17b449fae511e5222e8f04f4be0abb858d626ad70e2d90e3c097a424e1d18571c50c23ccb10580334628 abr
|
||||
71d8cb1e5e57ff739915fa4de1f5699afa60ab36e2e5219c4c366af5ceab24dc6ee55e738d29ca2b63dd5e387de7661594fc86bf2183d787932e75b4c03c6a9f apkbuild-anitya
|
||||
482835319d06aab0fc3548e3c217f6e117c3bf812034252539624b6de8d179f9662c3db91df1228fd5d85bea76b679d1e4c4e122223d87d4ea817ec74dac8dcf apkbuild-shellcheck
|
||||
"
|
|
@ -1,113 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
arch=
|
||||
builddir=
|
||||
checkdepends=
|
||||
depends=
|
||||
depends_dev=
|
||||
depends_doc=
|
||||
depends_libs=
|
||||
depends_openrc=
|
||||
depends_static=
|
||||
install=
|
||||
install_if=
|
||||
langdir=
|
||||
ldpath=
|
||||
license=
|
||||
makedepends=
|
||||
makedepends_build=
|
||||
makedepends_host=
|
||||
md5sums=
|
||||
options=
|
||||
patch_args=
|
||||
pkgbasedir=
|
||||
pkgdesc=
|
||||
pkgdir=
|
||||
pkgname=
|
||||
pkgrel=
|
||||
pkgver=
|
||||
pkggroups=
|
||||
pkgusers=
|
||||
provides=
|
||||
provider_priority=
|
||||
replaces=
|
||||
sha256sums=
|
||||
sha512sums=
|
||||
somask=
|
||||
sonameprefix=
|
||||
source=
|
||||
srcdir=
|
||||
startdir=
|
||||
subpackages=
|
||||
subpkgdir=
|
||||
subpkgname=
|
||||
triggers=
|
||||
url=
|
||||
|
||||
# abuild.conf
|
||||
|
||||
CFLAGS=
|
||||
CXXFLAGS=
|
||||
CPPFLAGS=
|
||||
LDFLAGS=
|
||||
JOBS=
|
||||
MAKEFLAGS=
|
||||
CMAKE_CROSSOPTS=
|
||||
|
||||
. ./APKBUILD
|
||||
|
||||
: "$arch"
|
||||
: "$builddir"
|
||||
: "$checkdepends"
|
||||
: "$depends"
|
||||
: "$depends_dev"
|
||||
: "$depends_doc"
|
||||
: "$depends_libs"
|
||||
: "$depends_openrc"
|
||||
: "$depends_static"
|
||||
: "$install"
|
||||
: "$install_if"
|
||||
: "$langdir"
|
||||
: "$ldpath"
|
||||
: "$license"
|
||||
: "$makedepends"
|
||||
: "$makedepends_build"
|
||||
: "$makedepends_host"
|
||||
: "$md5sums"
|
||||
: "$options"
|
||||
: "$patch_args"
|
||||
: "$pkgbasedir"
|
||||
: "$pkgdesc"
|
||||
: "$pkgdir"
|
||||
: "$pkgname"
|
||||
: "$pkgrel"
|
||||
: "$pkgver"
|
||||
: "$pkggroups"
|
||||
: "$pkgusers"
|
||||
: "$provides"
|
||||
: "$provider_priority"
|
||||
: "$replaces"
|
||||
: "$sha256sums"
|
||||
: "$sha512sums"
|
||||
: "$somask"
|
||||
: "$sonameprefix"
|
||||
: "$source"
|
||||
: "$srcdir"
|
||||
: "$startdir"
|
||||
: "$subpackages"
|
||||
: "$subpkgdir"
|
||||
: "$subpkgname"
|
||||
: "$triggers"
|
||||
: "$url"
|
||||
|
||||
# abuild.conf
|
||||
|
||||
: "$CFLAGS"
|
||||
: "$CXXFLAGS"
|
||||
: "$CPPFLAGS"
|
||||
: "$LDFLAGS"
|
||||
: "$JOBS"
|
||||
: "$MAKEFLAGS"
|
||||
: "$CMAKE_CROSSOPTS"
|
|
@ -1,146 +0,0 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
# clean self and do not pass through any environment
|
||||
# except path/home, because it doesn't matter too much for this specific purpose,
|
||||
# and home is required
|
||||
# and a few that are useful to keep some cache paths
|
||||
if [ -z "$_CLEAN" ]; then
|
||||
exec env -i \
|
||||
_CLEAN=1 \
|
||||
HOME="$HOME" \
|
||||
PATH="$PATH" \
|
||||
USER="$USER" \
|
||||
TERM="xterm" \
|
||||
${CARGO_HOME:+CARGO_HOME="$CARGO_HOME"} \
|
||||
${CBUILD:+CBUILD="$CBUILD"} \
|
||||
${GNUPGHOME:+GNUPGHOME="$GNUPGHOME"} \
|
||||
${GOCACHE:+GOCACHE="$GOCACHE"} \
|
||||
${GOMODCACHE:+GOMODCACHE="$GOMODCACHE"} \
|
||||
${GOPATH:+GOPATH="$GOPATH"} \
|
||||
${GOTMPDIR:+GOTMPDIR="$GOTMPDIR"} \
|
||||
${CCACHE_DIR:+CCACHE_DIR="$CCACHE_DIR"} \
|
||||
${SCCACHE_CACHE_SIZE:+SCCACHE_CACHE_SIZE="$SCCACHE_CACHE_SIZE"} \
|
||||
${SSH_AUTH_SOCK:+SSH_AUTH_SOCK="$SSH_AUTH_SOCK"} \
|
||||
${XDG_CACHE_HOME:+XDG_CACHE_HOME="$XDG_CACHE_HOME"} \
|
||||
${XDG_CONFIG_HOME:+XDG_CONFIG_HOME="$XDG_CONFIG_HOME"} \
|
||||
${DISTFILES_MIRROR:+DISTFILES_MIRROR="$DISTFILES_MIRROR"} \
|
||||
${mirror:+mirror="$mirror"} \
|
||||
"$0" "$@"
|
||||
fi
|
||||
|
||||
while getopts "j:fhmnsxN" opt; do
|
||||
case "$opt" in
|
||||
'j')
|
||||
jobs="$OPTARG"
|
||||
export JOBS="$jobs"
|
||||
export MAKEFLAGS="-j$jobs"
|
||||
export SAMUFLAGS="-j$jobs"
|
||||
export CARGO_BUILD_JOBS="$jobs"
|
||||
;;
|
||||
'f')
|
||||
# also run checksum/checkapk
|
||||
full=1
|
||||
;;
|
||||
'h')
|
||||
fsynchack=1
|
||||
;;
|
||||
'm')
|
||||
# don't set LD_PRELOAD for another alloc
|
||||
# since i set this normally, this unexports it.
|
||||
# XXX: funnily, any extra alloc breaks gjs-based testsuites (why?)
|
||||
nomemhack=1
|
||||
unset LD_PRELOAD
|
||||
;;
|
||||
'n')
|
||||
nonice=1
|
||||
;;
|
||||
's')
|
||||
nosccache=1
|
||||
;;
|
||||
'x')
|
||||
# skip checks
|
||||
export ABUILD_BOOTSTRAP=1
|
||||
;;
|
||||
'N')
|
||||
# skip extras
|
||||
nosha512sum=1
|
||||
;;
|
||||
*)
|
||||
echo "invalid argument passed"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift "$((OPTIND - 1))"
|
||||
|
||||
# loop again to check if rootbld
|
||||
for arg; do
|
||||
if eltest "$arg" =~ "rootbld"; then
|
||||
rootbld=1
|
||||
fi
|
||||
done
|
||||
|
||||
# always prevent installing all the firmware for no reason
|
||||
extra="linux-firmware-none"
|
||||
|
||||
if [ -n "$rootbld" ]; then
|
||||
if [ -n "$fsynchack" ]; then
|
||||
# in rootbld, should be safe to skip fsync
|
||||
extra="$extra libeatmydata"
|
||||
export LD_PRELOAD="$LD_PRELOAD /usr/lib/libeatmydata.so"
|
||||
fi
|
||||
else
|
||||
if [ -z "$nosccache" ]; then
|
||||
# not rootbld use sccache
|
||||
# TODO: maybe we can mount something into rootbld without patches
|
||||
extra="$extra sccache"
|
||||
export RUSTC_WRAPPER=sccache
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$nomemhack" ]; then
|
||||
extra="$extra scudo-malloc"
|
||||
export LD_PRELOAD="$LD_PRELOAD /usr/lib/libscudo.so"
|
||||
fi
|
||||
|
||||
if [ -z "$nonice" ]; then
|
||||
# max bg idle
|
||||
# note that there is no nice here,
|
||||
# but nice is mostly useless with modern linux process groups.
|
||||
# (and this is in its' own by virtue of a new terminal)
|
||||
nicewrap="chrt -i 0 ionice -c 2 -n 7"
|
||||
fi
|
||||
|
||||
root="$(git rev-parse --show-toplevel)"
|
||||
|
||||
if [ -n "$root" ]; then
|
||||
# abuild cannot detect the root dir to get .rootbld-repositories
|
||||
# to work, unless the dir has aports in git remotes or is ~/aports
|
||||
# ...
|
||||
export APORTSDIR="$root"
|
||||
fi
|
||||
|
||||
export EXTRADEPENDS_BUILD="$extra pigz xz"
|
||||
|
||||
if [ -z "$nosha512sum" ]; then
|
||||
export EXTRADEPENDS_BUILD="$EXTRADEPENDS_BUILD coreutils-sha512sum"
|
||||
fi
|
||||
|
||||
# ignore user gitconfig always
|
||||
export GIT_CONFIG_GLOBAL="$(mktemp)"
|
||||
|
||||
trap 'rm -f "$GIT_CONFIG_GLOBAL"' EXIT INT TERM HUP
|
||||
|
||||
if [ -n "$full" ]; then
|
||||
abuild checksum
|
||||
fi
|
||||
|
||||
$nicewrap abuild -fr "$@"
|
||||
|
||||
if [ -n "$full" ]; then
|
||||
checkapk
|
||||
abuild validate
|
||||
apkbuild-shellcheck || true
|
||||
apkbuild-anitya || true
|
||||
fi
|
|
@ -1,10 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
. APKBUILD
|
||||
items="$(curl -s "https://release-monitoring.org/api/v2/packages/?name=$pkgname&distribution=Alpine" | jq .total_items)"
|
||||
|
||||
if [ "$items" = 0 ]; then
|
||||
echo "Package $pkgname is not tracked by Anitya."
|
||||
echo "Add it here: https://release-monitoring.org/"
|
||||
exit 1
|
||||
fi
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
shellcheck -s ash \
|
||||
-e SC3043 \
|
||||
-e SC3057 \
|
||||
-e SC3060 \
|
||||
-e SC2016 \
|
||||
-e SC2086 \
|
||||
-e SC2169 \
|
||||
-e SC2155 \
|
||||
-e SC2100 \
|
||||
-e SC2209 \
|
||||
-e SC2030 \
|
||||
-e SC2031 \
|
||||
-e SC1090 \
|
||||
-xa /usr/share/abuild/APKBUILD_SHIM
|
|
@ -1,21 +0,0 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=acme-update
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="uacme stuff"
|
||||
url="https://git.ptrc.gay/ptrcnull/ptrcports"
|
||||
arch="aarch64 x86_64"
|
||||
license="BSD-2-Clause"
|
||||
depends="uacme node-print"
|
||||
source="acme-update uacme-hook"
|
||||
|
||||
package() {
|
||||
install -Dm755 "$srcdir"/acme-update -t "$pkgdir"/usr/bin/
|
||||
install -Dm755 "$srcdir"/uacme-hook -t "$pkgdir"/usr/libexec/
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
d9b6fcc1bf35ff8672062b8dd579d707d3fdbb041aae7713f0e5d57384d5bd92cdb48a0fa5c8a122df3c2954919ef5d7c6aafe0f52dbec438bf93f2f54994cf9 acme-update
|
||||
7386138a0382a8c029185fb966d770e573237579e919f873792d7d4b8d29759dc2fffce1e0aa7368e584bd7ec8e2f4918d4d8d35b74e13701c368c2888c912fa uacme-hook
|
||||
"
|
|
@ -1,65 +0,0 @@
|
|||
#!/bin/sh -eu
|
||||
exec &> >(tee -a /var/log/acme.log) 2>&1
|
||||
echo "[acme-update] starting cert renewal at: $(date)"
|
||||
|
||||
. /etc/uacme/config.sh
|
||||
|
||||
export UACME_CHALLENGE_PATH=/var/www/acme/.well-known/acme-challenge
|
||||
|
||||
expiry_date() {
|
||||
openssl x509 -enddate -noout -in "$1" | cut -d= -f2 | sed 's/ GMT//'
|
||||
}
|
||||
|
||||
actually_did_something=false
|
||||
|
||||
for domain in $domains; do
|
||||
acme_domain="$domain"
|
||||
if [ "${domain:0:1}" = "*" ]; then
|
||||
acme_domain="${domain/\*./} $domain"
|
||||
domain="${domain/\*./}"
|
||||
fi
|
||||
cert="/etc/ssl/uacme/$domain/cert.pem"
|
||||
|
||||
echo
|
||||
if [ -f "$cert" ]; then
|
||||
date_exp=$(date -d "$(expiry_date "$cert")" "+%s" || true)
|
||||
date_now=$(date "+%s")
|
||||
# if more than 1 month
|
||||
if [ "$(( date_exp - date_now ))" -gt 2592000 ]; then
|
||||
echo "[acme-update] cert for $domain expires in more than a month, skipping"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
echo "[acme-update] getting cert for $domain"
|
||||
|
||||
hook=/usr/libexec/uacme-hook
|
||||
|
||||
/usr/bin/uacme -v --hook $hook -b 384 --type EC issue $acme_domain || true
|
||||
cp -fv /etc/ssl/uacme/private/$domain/key.pem /etc/ssl/uacme/$domain/cert.pem.key
|
||||
chown acme:acme /etc/ssl/uacme/$domain/cert.pem.key
|
||||
chmod 440 /etc/ssl/uacme/$domain/cert.pem.key
|
||||
|
||||
cp -fv /etc/ssl/uacme/$domain/cert.pem /etc/ssl/uacme/all/$domain.pem
|
||||
cp -fv /etc/ssl/uacme/$domain/cert.pem.key /etc/ssl/uacme/all/$domain.pem.key
|
||||
|
||||
cert="/etc/ssl/uacme/$domain/cert.pem"
|
||||
if ! [ -e "$cert" ]; then
|
||||
echo "[acme-update] warning: cert $cert does not exist"
|
||||
continue
|
||||
fi
|
||||
expiration="$(expiry_date "$cert")"
|
||||
actually_did_something=true
|
||||
|
||||
echo "[acme-update] certificate expiration for $domain: $expiration"
|
||||
done
|
||||
|
||||
if $actually_did_something; then
|
||||
doas service haproxy reload
|
||||
doas service soju reload
|
||||
doas service maddy restart
|
||||
doas service mosquitto restart
|
||||
fi
|
||||
|
||||
echo info: cert renewal completed successfully at: $(date)
|
||||
|
||||
exit 0
|
|
@ -1,205 +0,0 @@
|
|||
#!/usr/bin/node
|
||||
|
||||
require('ptrc')
|
||||
|
||||
const fs = require('fs')
|
||||
const dns = require('node:dns/promises')
|
||||
|
||||
const ACME_PATH = '/var/www/acme/.well-known/acme-challenge/'
|
||||
|
||||
const config = fs.readFileSync('/etc/uacme/config.json', 'utf8').apply(JSON.parse)
|
||||
const [ , , action, method, domain, token, recordValue ] = process.argv
|
||||
|
||||
function findZone(fullDomain) {
|
||||
let domain = fullDomain
|
||||
while (true) {
|
||||
if (Object.keys(config.domains).includes(domain)) {
|
||||
return domain
|
||||
}
|
||||
|
||||
const newDomain = domain.split('.').slice(1).join('.')
|
||||
if (!newDomain.includes('.')) {
|
||||
throw new Error(`cannot find keys for ${fullDomain}`)
|
||||
}
|
||||
|
||||
domain = newDomain
|
||||
}
|
||||
}
|
||||
|
||||
const recordName = `_acme-challenge.${domain}`
|
||||
const zone = findZone(domain)
|
||||
const shortRecordName = recordName.replaceAll(`.${zone}`, '')
|
||||
|
||||
console.log(`> ${action} ${recordName} [${shortRecordName} at ${zone}] ${token} = '${recordValue}'`)
|
||||
|
||||
class Hetzner {
|
||||
ns = 'hydrogen.ns.hetzner.com'
|
||||
|
||||
async _fetch (url, opts) {
|
||||
if (!opts) {
|
||||
opts = {}
|
||||
}
|
||||
opts.headers ??= {}
|
||||
opts.headers['Auth-API-Token'] = config.secrets.hetzner
|
||||
if (opts.body) {
|
||||
opts.method ??= 'POST'
|
||||
opts.headers['Content-Type'] = 'application/json'
|
||||
}
|
||||
const res = await fetch('https://dns.hetzner.com/api/v1' + url, opts)
|
||||
if (res.status !== 200) {
|
||||
const body = await res.text()
|
||||
throw new Error(`status ${res.status}: ${body}`)
|
||||
}
|
||||
return res.json()
|
||||
}
|
||||
|
||||
async init() {
|
||||
const { zones } = await this._fetch('/zones')
|
||||
this.zoneID = zones.find(x => x.name === zone).id
|
||||
}
|
||||
|
||||
async create () {
|
||||
await this.remove()
|
||||
|
||||
console.log(`>> [hetzner] creating ${shortRecordName}.${zone} (zone ${this.zoneID}) with value ${recordValue}`)
|
||||
await this._fetch('/records', {
|
||||
body: JSON.stringify({
|
||||
value: recordValue,
|
||||
ttl: 300,
|
||||
type: 'TXT',
|
||||
name: shortRecordName,
|
||||
zone_id: this.zoneID
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
async remove () {
|
||||
const { records } = await this._fetch(`/records?zone_id=${this.zoneID}`)
|
||||
for (let record of records) {
|
||||
if (record.name === shortRecordName) {
|
||||
console.log(`>> [hetzner] removing ${recordName} (${record.id})`)
|
||||
try {
|
||||
await this._fetch(`/records/${record.id}`, { method: 'DELETE' })
|
||||
} catch (err) {
|
||||
console.error('>> [hetzner] failed to remove record:', err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Cloudflare {
|
||||
ns = 'aida.ns.cloudflare.com'
|
||||
|
||||
init () {
|
||||
process.env['CF_API_TOKEN'] = config.secrets.cloudflare
|
||||
}
|
||||
|
||||
_exec (args) {
|
||||
const res = exec('flarectl', [ '--json', ...args ])
|
||||
if (res.status !== 0) {
|
||||
throw new Error(`'flarectl --json ${args.join(" ")}' exited with ${res.status}:\n${res.stderr}`)
|
||||
}
|
||||
return res.stdout
|
||||
}
|
||||
|
||||
async create () {
|
||||
await this.remove()
|
||||
|
||||
console.log(`>> [cloudflare] creating ${recordName} with value ${recordValue}`)
|
||||
this._exec([
|
||||
'dns', 'create',
|
||||
'--zone', zone,
|
||||
'--type', 'TXT',
|
||||
'--name', recordName,
|
||||
'--content', recordValue
|
||||
])
|
||||
}
|
||||
|
||||
async remove () {
|
||||
const records = this._exec(['dns', 'list', '--zone', zone])
|
||||
for (let record of records) {
|
||||
if (record.Name === recordName) {
|
||||
console.log(`>> [cloudflare] removing ${recordName} (${record.ID})`)
|
||||
try {
|
||||
this._exec(['dns', 'delete', '--zone', zone, '--id', record.ID])
|
||||
} catch (err) {
|
||||
console.error('>> [cloudflare] failed to remove record:', err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Http {
|
||||
init () {
|
||||
this.path = ACME_PATH + token
|
||||
}
|
||||
|
||||
async create () {
|
||||
console.log(`>> [http] creating ${this.path} with contents ${recordValue}`)
|
||||
fs.writeFileSync(this.path, recordValue, 'utf8')
|
||||
}
|
||||
|
||||
async remove () {
|
||||
console.log(`>> [http] removing ${this.path}`)
|
||||
fs.unlinkSync(this.path)
|
||||
}
|
||||
}
|
||||
|
||||
const handlers = {
|
||||
hetzner: new Hetzner(),
|
||||
cloudflare: new Cloudflare(),
|
||||
http: new Http()
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const handlerName = config.domains[zone]
|
||||
if ((method === 'dns-01') === (handlerName === 'http')) {
|
||||
console.log(`> handler is ${handlerName} for method ${method}, try again`)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
console.log('> using handler:', handlerName)
|
||||
const handler = handlers[handlerName]
|
||||
await handler.init()
|
||||
|
||||
if (action === 'begin') {
|
||||
await handler.create()
|
||||
} else {
|
||||
await handler.remove()
|
||||
}
|
||||
|
||||
if (method === 'dns-01') {
|
||||
const dns4 = await dns.resolve4(handler.ns)
|
||||
const dns6 = await dns.resolve6(handler.ns)
|
||||
dns.setServers(dns4.concat(dns6))
|
||||
let tries = 0
|
||||
while (tries < 5) {
|
||||
console.log(`> checking DNS (attempt ${tries+1}/5)`)
|
||||
let values
|
||||
try {
|
||||
values = (await dns.resolveTxt(recordName)).flat()
|
||||
} catch (err) {
|
||||
if (err.code === 'ENOTFOUND') {
|
||||
console.log('> got ENOTFOUND from DNS')
|
||||
values = []
|
||||
} else {
|
||||
console.error(`> error when querying TXT ${recordName}:`, err)
|
||||
}
|
||||
}
|
||||
console.log('> DNS result:', values)
|
||||
if ((action === 'begin') === values.includes(recordValue)) {
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
await new Promise((resolve, reject) => setTimeout(resolve, 5000))
|
||||
tries++
|
||||
}
|
||||
console.log('> could not ensure the DNS record was created!!')
|
||||
}
|
||||
}
|
||||
main().catch(err => {
|
||||
console.error('> uncaught error:', err.toString().split('\n').join('\n> '))
|
||||
process.exit(1)
|
||||
})
|
|
@ -1,25 +0,0 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=bat-alert
|
||||
pkgver=0.2.0
|
||||
pkgrel=0
|
||||
pkgdesc="battery alerts"
|
||||
url="https://git.ddd.rip/ptrcnull/bat-alert"
|
||||
arch="aarch64 x86_64"
|
||||
license="custom"
|
||||
makedepends="zig"
|
||||
source="$pkgname-$pkgver.tar.gz::https://git.ddd.rip/ptrcnull/bat-alert/archive/v$pkgver.tar.gz"
|
||||
builddir="$srcdir/bat-alert"
|
||||
options="!check" # meow
|
||||
|
||||
build() {
|
||||
zig build -Doptimize=ReleaseSmall
|
||||
}
|
||||
|
||||
package() {
|
||||
install -Dm755 zig-out/bin/bat-alert "$pkgdir"/usr/bin/bat-alert
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
b101e95e222b3ae4083ba543e6fbcd9fc7fcf0b149bb70a83c6ce9f9f412edcf06d175f77ec65b7d1a172b19fba1d1611a06353e9068c45d7ae5bdaa37b35547 bat-alert-0.2.0.tar.gz
|
||||
"
|
|
@ -1,20 +0,0 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=bsdtar-ponyfill
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="symlink to bsdtar in /bin/tar"
|
||||
url="https://git.ptrc.gay/ptrcnull/ptrcports"
|
||||
arch="noarch"
|
||||
license="Unlicense"
|
||||
depends="cmd:bsdtar"
|
||||
options="!check" # is symlink
|
||||
|
||||
replaces="tar"
|
||||
provides="tar"
|
||||
|
||||
package() {
|
||||
mkdir -p "$pkgdir"/bin
|
||||
ln -svf /usr/bin/bsdtar "$pkgdir"/bin/tar
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=font-atb2
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="Banedanmark mittog.dk fonts"
|
||||
url="https://mittog.dk"
|
||||
arch="aarch64 x86_64"
|
||||
license="custom"
|
||||
makedepends="woff2"
|
||||
source="
|
||||
AtB2Screen-Medium.woff2
|
||||
AtB2Screen-Regular.woff2
|
||||
"
|
||||
builddir="$srcdir"
|
||||
options="!check" # is font
|
||||
|
||||
build() {
|
||||
for file in *.woff2; do
|
||||
woff2_decompress "$file"
|
||||
done
|
||||
}
|
||||
|
||||
package() {
|
||||
mkdir -p "$pkgdir"/usr/share/fonts/atb2
|
||||
cp ./*.ttf "$pkgdir"/usr/share/fonts/atb2/
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
6ab2bb8117dbc55c2d18c8381a303b3ab4824733a2ee60c9f2cf21cacc6e1d04e8728193dfe5a9271e8876a5bd06c376cfcbfec492f58a4c2ce491d5b6f5ccb6 AtB2Screen-Medium.woff2
|
||||
a3d18c57aa3fab75838475148f7d5600b8b34aa1e3fc7e74c16e8b8e30336f22b5007166fc3f552daab13da73824722dd2da925588382a2c4c2d8ba03e1b1314 AtB2Screen-Regular.woff2
|
||||
"
|
Binary file not shown.
Binary file not shown.
|
@ -1,57 +0,0 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=font-db-type
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="DB brand fonts"
|
||||
url="https://bahn.de"
|
||||
arch="aarch64 x86_64"
|
||||
license="custom"
|
||||
makedepends="woff2"
|
||||
source="
|
||||
DBHead-Black.woff2
|
||||
DBHead-BlackItalic.woff2
|
||||
DBHead-Light.woff2
|
||||
DBHead-Regular.woff2
|
||||
DBIcons.woff2
|
||||
DBSans-BlackItalic.woff2
|
||||
DBSans-Bold.woff2
|
||||
DBSans-BoldItalic.woff2
|
||||
DBSans-Italic.woff2
|
||||
DBSans-Regular.woff2
|
||||
DBScreenHead-Black.woff2
|
||||
DBScreenHead-Light.woff2
|
||||
DBScreenHead-Regular.woff2
|
||||
DBScreenSans-Bold.woff2
|
||||
DBScreenSans-Regular.woff2
|
||||
"
|
||||
builddir="$srcdir"
|
||||
|
||||
build() {
|
||||
for file in *.woff2; do
|
||||
woff2_decompress "$file"
|
||||
done
|
||||
}
|
||||
|
||||
package() {
|
||||
mkdir -p "$pkgdir"/usr/share/fonts/db
|
||||
cp ./*.ttf "$pkgdir"/usr/share/fonts/db/
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
b1c23c600db2fba2cdb08a19ce8f60012e4621181d7c2fc24fa22acf80eec93d505eb57554e0e067bcafad8c096c9cd5618f9ef9d8079ce18f75f142afd664ec DBHead-Black.woff2
|
||||
090524ecc19454a36390eaee657939b2074a0e67112b614790a2bd1be2118a89119d0777fb6ef2ec5e6e8cb2c699e172d0d05fd329a720d5ee11a2dccbf32ef1 DBHead-BlackItalic.woff2
|
||||
289e0143a745e39ff4c0e83754df4576ccf6d1581488255036daab38ed32648ca0eb08c1ce31713ebe8d849010fa7e9dfa85c4c76141d37adbfcb2748c5d844f DBHead-Light.woff2
|
||||
6a06571bca7afd08637aeb46f552f490210998fde28d639bf4f2a3b1af7a670f313d2d7a1c53fc8df8aed9f7198ea4ec7f73cc13d6a235d3c8261abdb75926a1 DBHead-Regular.woff2
|
||||
2f33a42511c2e76850fe9de85e3a7577b0123671c7f7e92dca71c8388b32003931760f9828fd80e327831dd285b29e95189dc940ca38370b5841a9e4cae1d978 DBIcons.woff2
|
||||
91f4715f80e64818b9ee432c5e57474e23ccdad07e68a98c0588af493567847c8b5c21e2c8b72814cdfe1c040951428a4992e3c61320a3adc02a4232fafe28e9 DBSans-BlackItalic.woff2
|
||||
aaae6536c1e4a0f90c534487635d223d3fb575463863b435369f90036e2b13c7e5d6c549edba223b7986f9c340f2dae5afab357faaf06371c413733b934cb3bc DBSans-Bold.woff2
|
||||
bd1f1d4b82ab955e5974f4770280e2ad0ae97448f00b2b9027781c89f7fc2bf96e0c43d359bc2b583c84e77d29e9694e684032eca47358e056592bd60592129d DBSans-BoldItalic.woff2
|
||||
7ff441d39337d1ddc45be5e0e81288847d28bcc3d28964a375892fec5b25f887539662b117aee9af94b6765b51571303a0ca6661b241ac6da46cd9ca1d28ec56 DBSans-Italic.woff2
|
||||
553a4435cc711a996c6b96fa6bccac48942ddfb81dba9991688e6b4b5a6352e793531f58e00fe349a8243217a4c4cbd00a033188a1ef1a9388bd6469af2d03a9 DBSans-Regular.woff2
|
||||
3f0cfdffe8cc3e906927a1e51d337e92eebd888f591a02b31a4d56317a9d44d685c9589224d75a390a0cc2fd129cf85d969ff3f8ac26b1a275b7018f884f8953 DBScreenHead-Black.woff2
|
||||
78ae1e1be5dcb07f8343738dd6d0ab4ddb98dddce05c1d67c1630e1463eea75be1979c189b096a05802d85d8857efe17e7c30f7433825b6af3c0ab451f34d19b DBScreenHead-Light.woff2
|
||||
b95dcbe00f7f20c660cb99f29ef5b986e1ebeb927b3e01d2d6cc03cb48c67516ca1fdcb6eef4ef48e8c937bf8c0e9397faaf06b1f982f34ebf2322f7e6e9c6c6 DBScreenHead-Regular.woff2
|
||||
7d267e6343a38c362b63ec652afc70eac712144105dfcb4f102e54d641c929ec582e48a2005dde1139c621ca0d632e37b9bb7751d3b10ee1223cadf18c050b0f DBScreenSans-Bold.woff2
|
||||
e15ead86c5063c87c3d3e3ba7db8ddd1cf69e047086714b638c7fd685bed97cfcb527381c41dbe7d8c01305e9f656b4fc668c8c329a98962f979ed5a0c85af35 DBScreenSans-Regular.woff2
|
||||
"
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,32 +0,0 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=font-noto-ikea
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="IKEA marketing fonts"
|
||||
url="https://ikea.com"
|
||||
arch="aarch64 x86_64"
|
||||
license="custom"
|
||||
makedepends="woff2"
|
||||
source="
|
||||
noto-ikea-latin-bold.woff2
|
||||
noto-ikea-latin-regular.woff2
|
||||
"
|
||||
builddir="$srcdir"
|
||||
options="!check" # is font
|
||||
|
||||
build() {
|
||||
for file in *.woff2; do
|
||||
woff2_decompress "$file"
|
||||
done
|
||||
}
|
||||
|
||||
package() {
|
||||
mkdir -p "$pkgdir"/usr/share/fonts/noto-ikea
|
||||
cp ./*.ttf "$pkgdir"/usr/share/fonts/noto-ikea/
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
feb21424972d70b99c5fcf6cca1b11fe4380950e7be6abf7c27f87cd10444c9830ce45192619d4de8128b3b9cfd830ea996e2063736b51044fc5434ef64e880e noto-ikea-latin-bold.woff2
|
||||
8b20fc782f0243cc56a65f24687efb0221297cc582fa94180e3cb96b03a10cc50ae65e01c6e8daec5b0da807943f9e637230da73a999bc2061d40ac553633876 noto-ikea-latin-regular.woff2
|
||||
"
|
Binary file not shown.
Binary file not shown.
|
@ -1,56 +0,0 @@
|
|||
# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=font-radikal
|
||||
pkgver=1
|
||||
pkgrel=0
|
||||
pkgdesc="Radikal web font"
|
||||
url="https://nootype.com/buy-radikal.html"
|
||||
arch="aarch64 x86_64"
|
||||
license="custom"
|
||||
makedepends="woff2"
|
||||
source="
|
||||
RadikalBlack.woff2
|
||||
RadikalBlackItalic.woff2
|
||||
RadikalBold.woff2
|
||||
RadikalBoldItalic.woff2
|
||||
RadikalLight.woff2
|
||||
RadikalLightItalic.woff2
|
||||
RadikalMedium.woff2
|
||||
RadikalMediumItalic.woff2
|
||||
RadikalRegular.woff2
|
||||
RadikalRegularItalic.woff2
|
||||
RadikalThin.woff2
|
||||
RadikalThinItalic.woff2
|
||||
RadikalUltraThin.woff2
|
||||
RadikalUltraThinItalic.woff2
|
||||
"
|
||||
builddir="$srcdir"
|
||||
options="!check" # it's a font.
|
||||
|
||||
build() {
|
||||
for file in *.woff2; do
|
||||
woff2_decompress "$file"
|
||||
done
|
||||
}
|
||||
|
||||
package() {
|
||||
mkdir -p "$pkgdir"/usr/share/fonts/radikal
|
||||
cp ./*.ttf "$pkgdir"/usr/share/fonts/radikal/
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
29b06320033e170971d4802d0a0341404570fc62c0f74629bce390887b9668ce6b79dd54200ac1eaf9e3b1b40697f6dcdb74e2a33fb8012c8bb4fda7dc1c0936 RadikalBlack.woff2
|
||||
c7f68e5cde9a53757ed200dd3faf8231290d287d1f32542b2ffe5dff2644293549a6a996fbb02893f42738cc1d41bda56e7896dced589657a3c492e79f3e4d1c RadikalBlackItalic.woff2
|
||||
39cd10c5a1cbf5d1aa58294739e3fbc30717f3f5d5216789c440f3fff137375cad72fd6dad55b3e2ca8ecab57d803495e1b113ef5111ca4c1af5c0055052836a RadikalBold.woff2
|
||||
2d58f3edebf088a484b0a2181552904a9830ac8faf7d9cf3fcd2cad16c06e9d905707c1297c4b109e856de4e77c9de157ec2b3a5a3ccbc1d5b8505d00e4596fa RadikalBoldItalic.woff2
|
||||
9539e7168a0a3463aac0d32b377ee645e61100a0cea8d8c8fb7e60c194211be0b2f168cdca8b8e86f7cf7bd3e7d79aa642ceacb942d4f7cecbed4a17b2ea8ff6 RadikalLight.woff2
|
||||
bc9cec2624ce4bc224a4e90411fa55796decd5e54d0be25345557f18e580ae02c8b935b01e13e593686daf6dca9d90a2365a5470b9d813a7d9195bf82857326d RadikalLightItalic.woff2
|
||||
f48a553331b2f3c00a4128856250428ebfecea9ceb0bf5aeea26c36c843ed8e57015f91d19fe457363c7760df6cf794b7ae5f124acbc28a99bfc601db6fdc969 RadikalMedium.woff2
|
||||
128d2c0fbb9dc7af374fa48f49ad3d178633aed0ac8b761d3cba46fdef802a85974fb7773c91c4908c6dbbb0242eb8d6512c6e49c6815297a924cfbf4fd16403 RadikalMediumItalic.woff2
|
||||
d0dc03bfbd2bc3bc8df894b043bb0cf2eac85103e6979271003a6fa0a37dde6af3fdbf0a7749557a71f3c821570ea2bb0813e8f7c753075ddf244963ca7d21da RadikalRegular.woff2
|
||||
4f849600d6cafdd1e80719f2b3c596c36e60d94e1c1c3a55f5e732442fadd086e47330230b15b4f196282851d68acb89164d096d399c62e0258f9a72a986e79b RadikalRegularItalic.woff2
|
||||
948068c38cf4709deaa0e1f56cd9fa9278e1ef71007c67f9cf042971d414ffee8324fb3093e195bf80b7e3d5e283db6781216b9bad4b51c1d8fb397f0403d6f7 RadikalThin.woff2
|
||||
a4bdf35a771096a4f7e96973b197f22b0d39ea6d0f85dcd38f3be55201c92a74491000ba9dfa9ad947d914ec62a88c0f685a7711025be05bc5063d9367096241 RadikalThinItalic.woff2
|
||||
0bbaa962145f19c2401de6d15bd802822dca4f6d0173ac91849009fd399675777e666cc97cce69d249f7aafb169c340bcf7d076f170a3b5bc0aea91ca7eddb81 RadikalUltraThin.woff2
|
||||
83912674d6d3af605cd69dcb4d28c920b64d0b1656865f0e8e85f5445966edb74dc91e800c9247ecb14326392e0011067d828f88fc25a2ef1fa7d4d6b8222dfb RadikalUltraThinItalic.woff2
|
||||
"
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue