Compare commits
89 commits
electron/t
...
edge
| Author | SHA1 | Date | |
|---|---|---|---|
|
f98506d3bb |
|||
| 6a81c77cf8 | |||
|
797de7c2a9 |
|||
|
206336bdd1 |
|||
|
dfd1702835 |
|||
|
e14a8dc1e6 |
|||
|
|
88d7b4e8c7 |
||
|
|
839fa112c7 |
||
|
|
5a29004820 |
||
|
|
7a023d0024 | ||
|
|
094222021c |
||
|
|
946a011b61 |
||
|
|
3d599aff17 | ||
|
|
a7a531a637 | ||
|
|
7ef8cfa070 | ||
|
|
2e181afd19 | ||
|
|
ac2f1855db | ||
|
|
35e7f126ce |
||
|
|
ed788403aa |
||
|
|
55135b73b1 |
||
|
273730b1b9 |
|||
|
7be7e19fc9 |
|||
|
8791fcb06c |
|||
|
cacd6ba22b |
|||
|
16a4ebc1e4 |
|||
|
7ce80a2dd7 |
|||
|
6fceb42254 |
|||
|
8e2f15f244 |
|||
|
ba29f2b000 |
|||
|
2865b8f524 |
|||
|
8792a8c06a |
|||
|
df11191c86 |
|||
|
fd29f9c77b |
|||
|
a1898dab2d |
|||
|
fe3b86d53a |
|||
|
e5734af93e |
|||
|
061cc8069c |
|||
|
1300d81709 |
|||
|
a993aebd4d |
|||
|
2825fbb4f5 |
|||
|
ee0ce13773 |
|||
|
d6eed040f2 |
|||
|
23bcbc7513 |
|||
|
c25b332251 |
|||
|
73ebcb7fcc |
|||
|
f45c1e54db |
|||
|
749f413ab8 |
|||
|
6770f6babb |
|||
| 42d2681350 | |||
| 16d5ce552f | |||
| df65efacf1 | |||
|
869d5c3845 |
|||
|
03b4f6425d |
|||
|
8658e947c7 |
|||
|
b3d03dc817 |
|||
|
223efcc89f |
|||
|
bd1a71e8a2 |
|||
|
d3043bab85 |
|||
|
2eeb660610 |
|||
|
8c1da51a60 |
|||
|
4de45ea910 |
|||
|
d0dfb021eb |
|||
|
953627f48d |
|||
|
8789a20256 |
|||
|
7332be7561 |
|||
|
4adb8575d1 |
|||
|
4a5617805a |
|||
|
9c137f0b9d |
|||
|
b621ae6716 |
|||
|
d0b5791120 |
|||
|
c600b841b3 |
|||
|
2fa99e56c7 |
|||
|
22a33dd83d |
|||
|
a48dd2cc70 |
|||
|
5ea7fbce20 |
|||
|
f7e711f9a1 |
|||
|
923797f1b9 |
|||
|
7c780b5d0f |
|||
|
edac436331 |
|||
|
eea9bc1537 |
|||
|
d746dda5cb |
|||
|
7a2ebe9cfe |
|||
|
3da0a268ee |
|||
|
3611b942ed |
|||
|
f2ad704226 |
|||
|
7b106bae0c |
|||
|
3f1fd192e5 |
|||
|
bff91156de |
|||
|
97a6234e8e |
103 changed files with 9414 additions and 10457 deletions
|
|
@ -10,21 +10,28 @@
|
|||
# fix_only: array of packages that should only track bug fix releases (seperated by space)
|
||||
# default: none
|
||||
# all packages: all
|
||||
#
|
||||
#
|
||||
# If either minor_only or fix_only is set, only packages with semantic versioning schemes
|
||||
# will be tracked.
|
||||
#
|
||||
# If a package is both minor_only and fix_only, the minor releases will be tracked
|
||||
#
|
||||
# If a - is placed in front of package name, it'll be excluded from the update rule
|
||||
#
|
||||
# optional env variables
|
||||
# ALL_PACKAGES: when true, ignore is package is owned by me
|
||||
# skip_package: array of packages to skip
|
||||
# skip_package: array of packages to skip, place a - in front of package name to not exclude it
|
||||
# add_package: array of additional packages to check
|
||||
#
|
||||
|
||||
repo=${downstream/*\/}
|
||||
release=${downstream/\/$repo/}
|
||||
release=${release/*\/}
|
||||
release=${release/v}
|
||||
arch=$(apk --print-arch)
|
||||
# add special case for postmarketos
|
||||
[ "$release" == "postmarketos" ] && { release=$repo; repo="pmos"; arch="aarch64"; }
|
||||
[ "$release" == "master" ] && release=edge
|
||||
|
||||
is_semantic() {
|
||||
local downstream_version_dot=${1//[^.]}
|
||||
|
|
@ -34,8 +41,9 @@ is_semantic() {
|
|||
return 1
|
||||
}
|
||||
|
||||
|
||||
echo "Checking $downstream for out of date packages"
|
||||
curl --silent $downstream/x86_64/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX
|
||||
curl --silent $downstream/$arch/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX
|
||||
|
||||
if [ "$ALL_PACKAGES" == "true" ]; then
|
||||
owned_by_you=$(awk -F ':' '{if($1=="o"){print $2}}' APKINDEX | sort | uniq)
|
||||
|
|
@ -45,6 +53,9 @@ else
|
|||
echo "Found $(printf '%s\n' $owned_by_you | wc -l ) packages owned by you"
|
||||
fi
|
||||
|
||||
# add additionnal packages
|
||||
owned_by_you="$owned_by_you $add_package"
|
||||
|
||||
rm -f out_of_date not_in_anitya
|
||||
|
||||
for pkg in $owned_by_you; do
|
||||
|
|
@ -52,13 +63,44 @@ for pkg in $owned_by_you; do
|
|||
downstream_version=${downstream_version/-*}
|
||||
|
||||
# skip package if in $skip_package array
|
||||
if [[ "$skip_package" == *$pkg* ]]; then
|
||||
if [[ "$skip_package" == *all* || "$skip_package" == *$pkg* ]] && [[ "$skip_package" != *-$pkg* ]]; then
|
||||
echo "$pkg skipped"
|
||||
continue
|
||||
fi
|
||||
|
||||
# special cases where package is not semantic
|
||||
case $pkg in
|
||||
# track u-boot-pine64-pinenote against mainline u-boot, and track upstream rockchip blobs
|
||||
u-boot-pine64-pinenote)
|
||||
upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/u-boot" | jq -r '.stable_versions.[]' | head -n1)"
|
||||
|
||||
# some reason the commit now not in APKINDEX, using master instead
|
||||
#commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}')
|
||||
#commit=${commit/-dirty/}
|
||||
commit=master
|
||||
|
||||
# fetches upstream version for blobs using ini file
|
||||
upstream_trust="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKTRUST/RK3566TRUST_ULTRA.ini' | grep bl31 | awk -F '=' '{if($1"="PATH){print $2}}' | grep -o -P '(?<=_v).*(?=.elf)')"
|
||||
upstream_ddr="$(curl --fail -s 'https://raw.githubusercontent.com/rockchip-linux/rkbin/master/RKBOOT/RK3566MINIALL_ULTRA.ini' | grep ddr | awk -F '=' '{if($1"="PATH){print $2}}' | head -n 1 | grep -o -P '(?<=_v).*(?=.bin)')"
|
||||
|
||||
# extracts downstream version via _trust_ver and _ddr_ver variable
|
||||
downstream_trust=$(curl --fail -X GET -s "https://gitlab.postmarketos.org/postmarketOS/pmaports/-/raw/$commit/device/testing/u-boot-pine64-pinenote/APKBUILD" | awk -F '=' '{if($1=="_trust_ver"){print $2}}')
|
||||
downstream_ddr=$(curl --fail -X GET -s "https://gitlab.postmarketos.org/postmarketOS/pmaports/-/raw/$commit/device/testing/u-boot-pine64-pinenote/APKBUILD" | awk -F '=' '{if($1=="_ddr_ver"){print $2}}')
|
||||
|
||||
# compares versions and creates newline in out_of_date if problematic
|
||||
if [ "$upstream_trust" != "$downstream_trust" ]; then
|
||||
echo "$pkg new Trust blob $upstream_trust version available"
|
||||
echo "$pkg(trust) $downstream_trust $upstream_trust $repo $release" >> out_of_date
|
||||
fi
|
||||
if [ "$upstream_ddr" != "$downstream_ddr" ]; then
|
||||
echo "$pkg new ddr blob $upstream_ddr version available"
|
||||
echo "$pkg(ddr) $downstream_ddr $upstream_ddr $repo $release" >> out_of_date
|
||||
fi
|
||||
|
||||
;;
|
||||
# release-monitoring omits the extra B, while we keep it but put it after the version no.
|
||||
looking-glass) upstream_version="$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1)b";;
|
||||
# we want to track both Firefox security upgrades + Zotero upgrades
|
||||
zotero)
|
||||
commit=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="c"){print $2}}')
|
||||
downstream_fx_ver=$(curl --fail -X GET -s "https://gitlab.alpinelinux.org/alpine/aports/-/raw/$commit/community/zotero/APKBUILD" | awk -F '=' '{if($1=="_fxver"){print $2}}')
|
||||
|
|
@ -69,8 +111,11 @@ for pkg in $owned_by_you; do
|
|||
fi
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1)
|
||||
;;
|
||||
# aports omits the -beta part of the version
|
||||
freetube) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].version' | sed "s|-beta||");;
|
||||
# we only track x.x.1xx feature branches of SDK and stage0
|
||||
dotnet*sdk|dotnet*stage0) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version::-2}.*\").string" | sed 's|-.*||' | head -n1);;
|
||||
# we want to track both current major version and upstream latest
|
||||
electron)
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/projects/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_versions' | jq -r ".[] | match(\"${downstream_version/.*}.*\").string" | head -n 1)
|
||||
latest_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_version' )
|
||||
|
|
@ -81,19 +126,54 @@ for pkg in $owned_by_you; do
|
|||
pkg="$pkg(${upstream_version/.*})"
|
||||
fi
|
||||
;;
|
||||
arm-trusted-firmware) upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version::-2}.*\").string" | head -n1);;
|
||||
# we want to track LTS (even releases) rather than latest
|
||||
arm-trusted-firmware)
|
||||
if [[ "$fix_only" == *all* || "$fix_only" == *$pkg* ]] || [[ "$minor_only" == *all* || "$minor_only" == *$pkg* ]]; then
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1)
|
||||
else
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[] | select(test("^[0-9]+\\.[0-9]+\\.[0-9]+$")) | select(split(".") | .[1] | tonumber | . % 2 == 0)' | head -n1)
|
||||
fi
|
||||
;;
|
||||
# track linux-pine64-pinenote against latest
|
||||
linux-pine64-pinenote)
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1)
|
||||
latest_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/315000" | jq -r ".stable_versions.[]" | head -n1)
|
||||
|
||||
# append version number to signal that this is not latest major version
|
||||
if [ "${upstream_version/.*.*}" != "${latest_version/.*.*}" ]; then
|
||||
echo "$pkg(${latest_version/.*.*}) major version available"
|
||||
echo "$pkg(${latest_version/.*.*}) $downstream_version $latest_version $repo $release" >> out_of_date
|
||||
pkg="$pkg(${upstream_version%.*})"
|
||||
fi
|
||||
;;
|
||||
# track linux-radxa against BSP kernel (usually got awful late
|
||||
linux-radxa)
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1)
|
||||
upstream_version=${upstream_version/-*}
|
||||
;;
|
||||
dotnet*-sdk|dotnet*-stage0)
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/141853" | jq -r ".stable_versions.[] | match(\"${downstream_version::-2}.*\").string" | head -n 1)
|
||||
;;
|
||||
dotnet*-runtime)
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/220385" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n 1)
|
||||
;;
|
||||
# removes last bit in github tag from usbboot release, as not needed
|
||||
raspberrypi-usbboot) curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1 | sed 's|-.*||';;
|
||||
*)
|
||||
# continues when package version scheme is not semantic, but minor_only or fix_only is set
|
||||
if [ -n "${minor_only}" ] || [ -n "${fix_only}" ]; then
|
||||
|
||||
if [[ "$minor_only" == *all* || "$minor_only" == *$pkg* ]] && [[ "$minor_only" != *-$pkg* ]]; then
|
||||
# continues when package version scheme is not semantic, but minor_only or fix_only is set
|
||||
if ! is_semantic $downstream_version; then
|
||||
echo "$pkg is not semantic, and fix_only or minor_only is set"
|
||||
echo "$pkg is not semantic, and minor_only is set"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${minor_only}" == "all" ] || [[ "${minor_only}" == *$pkg* ]]; then
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*.*}.*\").string" | head -n1)
|
||||
elif [ "${fix_only}" == "all" ] || [[ "${fix_only}" == *$pkg* ]]; then
|
||||
elif [[ "$fix_only" == *all* || "$fix_only" == *$pkg* ]] && [[ "$fix_only" != *-$pkg* ]]; then
|
||||
# continues when package version scheme is not semantic, but minor_only or fix_only is set
|
||||
if ! is_semantic $downstream_version; then
|
||||
echo "$pkg is not semantic, and fix_only is set"
|
||||
continue
|
||||
fi
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r ".stable_versions.[] | match(\"${downstream_version%.*}.*\").string" | head -n1)
|
||||
else
|
||||
upstream_version=$(curl --fail -X GET -s -H 'Content-Type: application/json' "https://release-monitoring.org/api/project/Alpine/$pkg" | jq -r '.stable_versions.[]' | head -n1)
|
||||
|
|
@ -108,7 +188,7 @@ for pkg in $owned_by_you; do
|
|||
echo "$pkg" >> not_in_anitya
|
||||
fi
|
||||
elif [ "$downstream_version" != "$(printf '%s\n' $upstream_version $downstream_version | sort -V | head -n 1)" ]; then
|
||||
echo "$pkg higher downstream"
|
||||
echo "$pkg higher downstream $upstream_version"
|
||||
continue
|
||||
elif [ "$upstream_version" != "$downstream_version" ]; then
|
||||
echo "$pkg upstream version $upstream_version does not match downstream version $downstream_version in $release"
|
||||
|
|
|
|||
|
|
@ -16,10 +16,17 @@ does_it_exist() {
|
|||
release=$5
|
||||
|
||||
query="$repo/$name: upgrade to $upstream_version"
|
||||
if [ "$release" != "edge" ]; then query="[$release] $query"; fi
|
||||
query="%22$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')%22"
|
||||
if [ "$release" != "edge" ]; then
|
||||
query="%22[$release] $query%22"
|
||||
elif [ "$repo" != "pmos" ] && [ "$repo" != "user" ]; then
|
||||
# workaround to this query matching both stable and edge branch
|
||||
query="%22$query%22&labels=Edge"
|
||||
else
|
||||
query="%22$query%22"
|
||||
fi
|
||||
query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')"
|
||||
|
||||
result="$(curl --silent -X 'GET' \
|
||||
result="$(curl -L --silent -X 'GET' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \
|
||||
-H 'accept: application/json' \
|
||||
-H "Authorization: token $ISSUE_TOKEN"
|
||||
|
|
@ -38,10 +45,17 @@ is_it_old() {
|
|||
release=$5
|
||||
|
||||
query="$repo/$name: upgrade to"
|
||||
if [ "$release" != "edge" ]; then query="[$release] $query"; fi
|
||||
query="%22$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')%22"
|
||||
if [ "$release" != "edge" ]; then
|
||||
query="%22[$release] $query%22"
|
||||
elif [ "$repo" != "pmos" ] && [ "$repo" != "user" ]; then
|
||||
# workaround to this query matching both stable and edge branch
|
||||
query="%22$query%22&labels=Edge"
|
||||
else
|
||||
query="%22$query%22"
|
||||
fi
|
||||
query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' | sed 's|\[|%5B|g' | sed 's|\]|%5D|g')"
|
||||
|
||||
result="$(curl --silent -X 'GET' \
|
||||
result="$(curl -L --silent -X 'GET' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN"
|
||||
|
|
@ -66,14 +80,15 @@ update_title() {
|
|||
release=$5
|
||||
id=$6
|
||||
|
||||
result=$(curl --silent -X 'PATCH' \
|
||||
title="$repo/$name: upgrade to $upstream_version"
|
||||
if [ "$release" != "edge" ]; then title="[$release] $title"; fi
|
||||
|
||||
result=$(curl -L --silent -X 'PATCH' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$id" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{
|
||||
\"title\": \"$repo/$name: upgrade to $upstream_version\"
|
||||
}"
|
||||
-d "{\"title\": \"$title\"}"
|
||||
)
|
||||
|
||||
return 0
|
||||
|
|
@ -89,7 +104,7 @@ create_issue() {
|
|||
title="$repo/$name: upgrade to $upstream_version"
|
||||
if [ "$release" != "edge" ]; then title="[$release] $title"; fi
|
||||
|
||||
result=$(curl --silent -X 'POST' \
|
||||
result=$(curl -L --silent -X 'POST' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN" \
|
||||
|
|
@ -138,7 +153,7 @@ if [ -f not_in_anitya ]; then
|
|||
query="Add missing $repo packages to anitya"
|
||||
query="%22$(echo $query | sed 's| |%20|g')%22"
|
||||
|
||||
result="$(curl --silent -X 'GET' \
|
||||
result="$(curl -L --silent -X 'GET' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues&sort=latest" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN"
|
||||
|
|
@ -146,7 +161,7 @@ if [ -f not_in_anitya ]; then
|
|||
|
||||
if [ "$result" == "[]" ]; then
|
||||
echo "Creating anitya issue"
|
||||
result=$(curl --silent -X 'POST' \
|
||||
result=$(curl -L --silent -X 'POST' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN" \
|
||||
|
|
@ -162,7 +177,7 @@ if [ -f not_in_anitya ]; then
|
|||
else
|
||||
echo "Updating anitya issue"
|
||||
result_id="$(echo $result | jq -r '.[].number' )"
|
||||
result=$(curl --silent -X 'PATCH' \
|
||||
result=$(curl -L --silent -X 'PATCH' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$result_id" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN" \
|
||||
|
|
|
|||
54
.forgejo/workflows/build-armv7.yaml
Normal file
54
.forgejo/workflows/build-armv7.yaml
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
on:
|
||||
pull_request:
|
||||
types: [ assigned, opened, synchronize, reopened ]
|
||||
|
||||
jobs:
|
||||
build-armv7:
|
||||
runs-on: armv7
|
||||
container:
|
||||
image: alpinelinux/alpine-gitlab-ci:latest
|
||||
env:
|
||||
CI_PROJECT_DIR: ${{ github.workspace }}
|
||||
CI_DEBUG_BUILD: ${{ runner.debug }}
|
||||
CI_MERGE_REQUEST_PROJECT_URL: ${{ github.server_url }}/${{ github.repository }}
|
||||
CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.base_ref }}
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: |
|
||||
doas apk upgrade -a
|
||||
doas apk add nodejs git patch curl
|
||||
cd /etc/apk/keys
|
||||
doas curl -JO https://ayakael.net/api/packages/forge/alpine/key
|
||||
- name: Repo pull
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 500
|
||||
- name: Package build
|
||||
run: |
|
||||
${{ github.workspace }}/.forgejo/bin/build.sh
|
||||
touch packages/dummy
|
||||
- name: Package upload
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: package
|
||||
path: packages
|
||||
|
||||
deploy-armv7:
|
||||
needs: [build-armv7]
|
||||
runs-on: armv7
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
CI_ALPINE_REPO: 'https://ayakael.net/api/packages/forge/alpine'
|
||||
CI_MERGE_REQUEST_TARGET_BRANCH_NAME: ${{ github.base_ref }}
|
||||
FORGE_REPO_TOKEN: ${{ secrets.FORGE_REPO_TOKEN }}
|
||||
FORGE_REPO_USER: ${{ vars.FORGE_REPO_USER }}
|
||||
steps:
|
||||
- name: Setting up environment
|
||||
run: apk add nodejs curl findutils git gawk
|
||||
- name: Repo pull
|
||||
uses: actions/checkout@v4
|
||||
- name: Package download
|
||||
uses: actions/download-artifact@v3
|
||||
- name: Package deployment
|
||||
run: ${{ github.workspace }}/.forgejo/bin/deploy.sh
|
||||
|
|
@ -7,11 +7,11 @@ on:
|
|||
jobs:
|
||||
check-backports:
|
||||
name: Check backports repo
|
||||
runs-on: x86_64
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://ayakael.net/api/packages/forge/alpine/v3.22/backports
|
||||
downstream: https://ayakael.net/api/packages/forge/alpine/v3.23/backports
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 1
|
||||
ALL_PACKAGES: true
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ on:
|
|||
jobs:
|
||||
check-community-edge:
|
||||
name: Check community(edge) repo
|
||||
runs-on: x86_64
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -25,17 +25,17 @@ jobs:
|
|||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-community-3.22:
|
||||
name: Check community(3.22) repo
|
||||
runs-on: x86_64
|
||||
check-community-3.23:
|
||||
name: Check community(3.23) repo
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/3.22/community
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/v3.23/community
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 13
|
||||
fix_only: all
|
||||
skip_package: dotnet9-stage0 dotnet8-stage0
|
||||
fix_only: all -git-annex
|
||||
skip_package: dotnet9-stage0 dotnet8-stage0 py3-boto3 py3-botocore dotnet10-stage0
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
|
|
@ -47,3 +47,70 @@ jobs:
|
|||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-community-3.22:
|
||||
name: Check community(3.22) repo
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/community
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 13
|
||||
skip_package: 'all -dotnet8-runtime -dotnet9-runtime'
|
||||
fix_only: all
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
- name: Get scripts
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Check out-of-date packages
|
||||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-community-3.21:
|
||||
name: Check community(3.21) repo
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/v3.21/community
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 13
|
||||
skip_package: 'all -dotnet8-runtime -dotnet9-runtime'
|
||||
fix_only: all
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
- name: Get scripts
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Check out-of-date packages
|
||||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-community-3.20:
|
||||
name: Check community(3.20) repo
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/v3.20/community
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 13
|
||||
skip_package: 'all -dotnet8-runtime'
|
||||
fix_only: all
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
- name: Get scripts
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Check out-of-date packages
|
||||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ on:
|
|||
jobs:
|
||||
check-main-edge:
|
||||
name: Check main(edge) repo
|
||||
runs-on: x86_64
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -25,9 +25,30 @@ jobs:
|
|||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-main-3.23:
|
||||
name: Check main(3.23) repo
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/v3.23/main
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 13
|
||||
fix_only: all
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
- name: Get scripts
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Check out-of-date packages
|
||||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-main-3.22:
|
||||
name: Check main(3.22) repo
|
||||
runs-on: x86_64
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -48,7 +69,7 @@ jobs:
|
|||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-main-3.21:
|
||||
name: Check main(3.21) repo
|
||||
runs-on: x86_64
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -69,7 +90,7 @@ jobs:
|
|||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-main-3.20:
|
||||
name: Check main(3.20) repo
|
||||
runs-on: x86_64
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -88,24 +109,4 @@ jobs:
|
|||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-main-3.19:
|
||||
name: Check main(3.19) repo
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/v3.19/main
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 13
|
||||
fix_only: all
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
- name: Get scripts
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Check out-of-date packages
|
||||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
|
||||
|
|
|
|||
50
.forgejo/workflows/check-pmos.yml
Normal file
50
.forgejo/workflows/check-pmos.yml
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
schedule:
|
||||
- cron: '0 5 * * *'
|
||||
|
||||
jobs:
|
||||
check-pmos-edge:
|
||||
name: Check pmos(edge) repo
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: http://mirror.postmarketos.org/postmarketos/master
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 14
|
||||
skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote u-boot-radxa-cm5
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
- name: Get scripts
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Check out-of-date packages
|
||||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-pmos-latest:
|
||||
name: Check pmos(v25.12) repo
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: http://mirror.postmarketos.org/postmarketos/v25.12
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 14
|
||||
fix_only: all
|
||||
skip_package: device-clockworkpi-uconsole-radxa-cm5 device-pine64-pinenote u-boot-radxa-cm5
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
- name: Get scripts
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Check out-of-date packages
|
||||
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
|
||||
- name: Create issues
|
||||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
|
|
@ -5,16 +5,16 @@ on:
|
|||
- cron: '0 5 * * *'
|
||||
|
||||
jobs:
|
||||
check-community:
|
||||
check-testing:
|
||||
name: Check testing repo
|
||||
runs-on: x86_64
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/edge/testing
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 4
|
||||
skip_package: dotnet6-stage dotnet6-build
|
||||
skip_package: dotnet6-stage0 dotnet6-build
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ on:
|
|||
jobs:
|
||||
check-user:
|
||||
name: Check user repo
|
||||
runs-on: x86_64
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
|
|||
13
backports/calibre/0002-calibre-use-make.patch
Normal file
13
backports/calibre/0002-calibre-use-make.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/setup/build.py b/setup/build.py
|
||||
index 956ad7504f..aa9d7ea028 100644
|
||||
--- a/setup/build.py
|
||||
+++ b/setup/build.py
|
||||
@@ -662,7 +662,7 @@ def build_headless(self):
|
||||
f.seek(0), f.truncate()
|
||||
f.write(raw)
|
||||
bdir = os.path.join(bdir, 'build')
|
||||
- cmd = [CMAKE]
|
||||
+ cmd = [CMAKE, '-GUnix Makefiles']
|
||||
if is_macos_universal_build:
|
||||
cmd += ['-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64']
|
||||
if sw and os.path.exists(os.path.join(sw, 'qt')):
|
||||
46
backports/calibre/0003-calibre-disable-piper.patch
Normal file
46
backports/calibre/0003-calibre-disable-piper.patch
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
piper uses a function in espeak-ng that is upstreamed but not in a
|
||||
release.
|
||||
|
||||
diff --git a/setup/extensions.json b/setup/extensions.json
|
||||
index b39ce6d..c105031 100644
|
||||
--- a/setup/extensions.json
|
||||
+++ b/setup/extensions.json
|
||||
@@ -134,14 +134,6 @@
|
||||
"error": "!podofo_error",
|
||||
"needs_c++": "17"
|
||||
},
|
||||
- {
|
||||
- "name": "piper",
|
||||
- "sources": "calibre/utils/tts/piper.cpp",
|
||||
- "needs_c++": "17",
|
||||
- "libraries": "!piper_libs",
|
||||
- "lib_dirs": "!piper_lib_dirs",
|
||||
- "inc_dirs": "!piper_inc_dirs"
|
||||
- },
|
||||
{
|
||||
"name": "html_as_json",
|
||||
"sources": "calibre/srv/html_as_json.cpp",
|
||||
diff --git a/src/calibre/constants.py b/src/calibre/constants.py
|
||||
index fa4b211459..7b27768953 100644
|
||||
--- a/src/calibre/constants.py
|
||||
+++ b/src/calibre/constants.py
|
||||
@@ -258,7 +258,6 @@ def __init__(self):
|
||||
'rcc_backend',
|
||||
'icu',
|
||||
'speedup',
|
||||
- 'piper',
|
||||
'html_as_json',
|
||||
'fast_css_transform',
|
||||
'fast_html_entities',
|
||||
diff --git a/src/calibre/utils/run_tests.py b/src/calibre/utils/run_tests.py
|
||||
index ffd0f95c04..c80a35f83d 100644
|
||||
--- a/src/calibre/utils/run_tests.py
|
||||
+++ b/src/calibre/utils/run_tests.py
|
||||
@@ -192,6 +192,7 @@ def test_import_of_all_python_modules(self):
|
||||
}
|
||||
if 'SKIP_SPEECH_TESTS' in os.environ:
|
||||
exclude_packages.add('calibre.gui2.tts')
|
||||
+ exclude_modules.add('calibre.utils.tts.piper')
|
||||
if not isbsd:
|
||||
exclude_modules.add('calibre.devices.usbms.hal')
|
||||
d = os.path.dirname
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Maintainer: Cowington Post <cowingtonpost@gmail.com>
|
||||
pkgname=calibre
|
||||
pkgver=8.4.0
|
||||
pkgver=8.14.0
|
||||
pkgrel=0
|
||||
pkgdesc="Ebook management application"
|
||||
# qt6-webengine
|
||||
|
|
@ -47,6 +47,7 @@ depends="
|
|||
makedepends="
|
||||
cmake
|
||||
curl
|
||||
ffmpeg-dev
|
||||
hunspell-dev
|
||||
hyphen-dev
|
||||
libmtp-dev
|
||||
|
|
@ -55,12 +56,12 @@ makedepends="
|
|||
podofo-dev
|
||||
py3-pyqt-builder
|
||||
py3-pyqt6-sip
|
||||
py3-qt6
|
||||
py3-sip
|
||||
python3-dev
|
||||
qt6-qtbase-dev
|
||||
uchardet-dev
|
||||
xdg-utils
|
||||
ffmpeg-dev
|
||||
"
|
||||
subpackages="
|
||||
$pkgname-pyc
|
||||
|
|
@ -70,13 +71,15 @@ subpackages="
|
|||
"
|
||||
source="https://download.calibre-ebook.com/$pkgver/calibre-$pkgver.tar.xz
|
||||
0001-$pkgname-no-update.patch
|
||||
musl-pread.patch
|
||||
0002-$pkgname-use-make.patch
|
||||
0003-$pkgname-disable-piper.patch
|
||||
"
|
||||
# net: downloads iso-codes
|
||||
# !check: no tests ran
|
||||
options="net !check"
|
||||
|
||||
export LANG="en_US.UTF-8"
|
||||
export PATH="$PATH:/usr/lib/qt6/bin"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
|
@ -113,7 +116,8 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
df998fa31b9e581739872a649669fccf29f34d3ac1b4d0a96c37e08a0b049b1357b56a2af25f2733936e78901dd61b38a24e536e107e7094ada7e60a5c2c56ab calibre-8.4.0.tar.xz
|
||||
edb32e47b083e10fbf53088e485737f3b61bb642ce6c4dd444e58a6618979c3b05b77ceffc4b8cb42e35eee7dcc2b94145abc22030ffd8b5de63e45b321fbf72 calibre-8.14.0.tar.xz
|
||||
eb8e7ce40ff8b8daf6e7e55a5dff8ec4dff06c45744266bb48b3194e92ab1196bc91468203e3c2ca1e5144166a7d6be90e6cf0253513e761b56a4c85be4c2c76 0001-calibre-no-update.patch
|
||||
d27d29c434a3d2df1b18125225a4d3762bf6fdba77385b377b18a7f325f29ae0b698974a39263f4f7aed8a368c87d0dc4446f488505b8e38664f8e9ee5b9bd12 musl-pread.patch
|
||||
bbb7253257073ae14840b3b4697943fe129d862b49cabd9388ea24cbd0259e68a1d359870334772164897f0c781db121de55fcdf5bccc841e36c021abe56f1ec 0002-calibre-use-make.patch
|
||||
0efcf35944cd0f42d6f3572839647fc5c8336562db3f71655211d3de682e155b6d6fee4d281f9576201156e0bc828b6a579a8708a27791e4e4d604d456416954 0003-calibre-disable-piper.patch
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
--- a/src/calibre/utils/speedup.c
|
||||
+++ b/src/calibre/utils/speedup.c
|
||||
@@ -748,7 +748,7 @@
|
||||
break;
|
||||
}
|
||||
#else
|
||||
-#ifdef __linux__
|
||||
+#ifdef __GLIBC__
|
||||
ssize_t nr = pread64(fd, buf + pos, n - pos, offset);
|
||||
#else
|
||||
ssize_t nr = pread(fd, buf + pos, n - pos, offset);
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=caprine
|
||||
pkgver=2.60.3
|
||||
pkgrel=5
|
||||
pkgrel=6
|
||||
pkgdesc="Elegant Facebook Messenger desktop app"
|
||||
arch="x86_64 aarch64" # blocked by electron
|
||||
url="https://github.com/sindresorhus/caprine"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=electron
|
||||
pkgver=38.4.0
|
||||
pkgver=39.2.7
|
||||
_gittag=v"${pkgver/_beta/-beta.}"
|
||||
pkgrel=1
|
||||
_chromium=140.0.7339.240
|
||||
_copium_tag=140.2
|
||||
pkgrel=0
|
||||
_chromium=142.0.7444.235
|
||||
_copium_tag=142.0
|
||||
_depot_tools=495b23b39aaba2ca3b55dd27cadc523f1cb17ee6
|
||||
pkgdesc="Electron cross-platform desktop toolkit"
|
||||
url="https://github.com/electron/electron"
|
||||
|
|
@ -13,7 +13,7 @@ url="https://github.com/electron/electron"
|
|||
arch="aarch64 x86_64" # same as chromium
|
||||
license="MIT"
|
||||
depends="gtk+3.0 so:libudev.so.1 xdg-utils"
|
||||
_llvmver=20
|
||||
_llvmver=21
|
||||
makedepends="
|
||||
ada-dev
|
||||
alsa-lib-dev
|
||||
|
|
@ -45,6 +45,7 @@ makedepends="
|
|||
gn
|
||||
gzip
|
||||
harfbuzz-dev
|
||||
highway-dev
|
||||
hdrhistogram-c-dev
|
||||
hunspell-dev
|
||||
http-parser-dev
|
||||
|
|
@ -108,7 +109,7 @@ makedepends="
|
|||
sqlite-dev
|
||||
woff2-dev
|
||||
xcb-proto
|
||||
yarn
|
||||
yarn-berry
|
||||
zlib-dev
|
||||
zstd-dev
|
||||
"
|
||||
|
|
@ -145,6 +146,8 @@ source="
|
|||
electron_unbundle-node.patch
|
||||
electron_system-zlib-headers.patch
|
||||
electron_do-not-strip-binaries.patch
|
||||
electron_shell-file-dialog-drop-glibc.patch
|
||||
electron_use-system-yarn.patch
|
||||
|
||||
default.conf
|
||||
electron.desktop
|
||||
|
|
@ -154,10 +157,9 @@ _copium_patches="
|
|||
cr131-v8-non4k-pages.patch
|
||||
cr133-ffmpeg-no-noh264parse.patch
|
||||
cr133-is-musl-libcxx.patch
|
||||
cr135-mv2-still-not-dead.patch
|
||||
cr138-node-version-check.patch
|
||||
cr140-musl-prctl.patch
|
||||
cr140-rust-pre1.89.patch
|
||||
cr142-autofill-incomplete-formfielddata.patch
|
||||
"
|
||||
# Avoid conflicting providers
|
||||
sonameprefix="$pkgname:"
|
||||
|
|
@ -177,7 +179,7 @@ export LD="/usr/lib/llvm$_llvmver/bin/clang++"
|
|||
export CFLAGS="${CFLAGS/-g/} -O2 -Wno-builtin-macro-redefined -Wno-deprecated-declarations -Wno-shift-count-overflow -Wno-ignored-attributes"
|
||||
export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-builtin-macro-redefined -Wno-deprecated-declarations -Wno-invalid-constexpr"
|
||||
# _LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE is set by project
|
||||
export CXXFLAGS="${CXXFLAGS/-D_LIBCPP_ENABLE_HARDENED_MODE=1/}"
|
||||
export CXXFLAGS="${CXXFLAGS/-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST/}"
|
||||
export CPPFLAGS="${CPPFLAGS/-g/} -D__DATE__= -D__TIME__= -D__TIMESTAMP__="
|
||||
case "$CARCH" in
|
||||
aarch64|arm*|riscv64)
|
||||
|
|
@ -234,8 +236,8 @@ snapshot() {
|
|||
--nohooks
|
||||
|
||||
python3 src/build/landmines.py
|
||||
python3 src/build/util/lastchange.py -o src/build/util/LASTCHANGE \
|
||||
--revision src/gpu/webgpu/DAWN_VERSION
|
||||
python3 src/build/util/lastchange.py -m DAWN_COMMIT_HASH -s src/third_party/dawn \
|
||||
--revision src/gpu/webgpu/DAWN_VERSION --header src/gpu/webgpu/dawn_commit_hash.h
|
||||
python3 src/build/util/lastchange.py -m GPU_LISTS_VERSION \
|
||||
--revision-id-only --header src/gpu/config/gpu_lists_version.h
|
||||
python3 src/build/util/lastchange.py -m SKIA_COMMIT_HASH \
|
||||
|
|
@ -309,7 +311,7 @@ prepare() {
|
|||
git commit -m "init"
|
||||
git tag "$_gittag"
|
||||
git pack-refs
|
||||
yarn install --frozen-lockfile --ignore-scripts
|
||||
yarn install --immutable --mode=skip-build
|
||||
)
|
||||
|
||||
(
|
||||
|
|
@ -317,9 +319,14 @@ prepare() {
|
|||
./update_npm_deps
|
||||
)
|
||||
|
||||
# generate dawn_commit_hash
|
||||
# TODO: remove on next update as it'll be generated after
|
||||
# https://ayakael.net/mirrors/electron/commit/7623f4a14ab44fa4f4343e47d9d681c9b4aa984c
|
||||
python3 build/util/lastchange.py -m DAWN_COMMIT_HASH -s third_party/dawn \
|
||||
--revision gpu/webgpu/DAWN_VERSION --header gpu/webgpu/dawn_commit_hash.h
|
||||
|
||||
# reusable system library settings
|
||||
# flatbuffers - tensorflow has a few static_asserts for a specific patch version
|
||||
# highway - requires highway>=1.1.0 (arm failures)
|
||||
# libavif - https://github.com/AOMediaCodec/libavif/commit/50a541469c98009016af8dcc9f83a1be79f3a7d9
|
||||
# libaom - https://aomedia.googlesource.com/aom/+/706ee36dcc82%5E%21/
|
||||
# but watch this space: https://aomedia-review.googlesource.com/c/aom/+/188606
|
||||
|
|
@ -335,6 +342,7 @@ prepare() {
|
|||
fontconfig
|
||||
freetype
|
||||
harfbuzz-ng
|
||||
highway
|
||||
libdrm
|
||||
libjpeg
|
||||
libsecret
|
||||
|
|
@ -483,6 +491,7 @@ _configure() {
|
|||
safe_browsing_use_unrar=false
|
||||
symbol_level=$symbol_level
|
||||
treat_warnings_as_errors=false
|
||||
use_clang_modules=false
|
||||
use_custom_libcxx=true
|
||||
use_lld=true
|
||||
use_pulseaudio=true
|
||||
|
|
@ -556,13 +565,13 @@ lang() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
127017c1b96dd3cfb438bd079e3f14338e38c646fa26d8bc0b4dabc31a615b22a88d742cb7ef8dc9c28eaeb9c38198b78b176edaec8ae81287ba3f04388377be electron-v38.4.0-140.0.7339.240.tar.zst
|
||||
472d7879560c4d62cda34b72288a2dda4917e9b5854a02eda22686a5e5cb3aeae0787f0d4e17c2b72c201178b0864a549226af57db79ad70902f3e85289a8ab6 copium-140.2.tar.gz
|
||||
6dc7161f6df396e2b7569b0a607e264b43a2d7215de65164dc2ca04c019df93ea0a67dec2490071c09c8a03f90605faaf3880f2d843f838bb5d841bba204c298 electron-v39.2.7-142.0.7444.235.tar.zst
|
||||
30b298549804e7753b0b639b72417ba081e964676862b6c7d73ad73cdf806883f20e4a4b36e67a6c375eaf2dd97686cf21b90b062400d3b61fba86da4d239bfa copium-142.0.tar.gz
|
||||
69b45005451ccd69c354b4c2910e92371cb801665f5e300dbecd36f8bc4ce68e77a431b5dac07c0937787debb4e93b7aadefa0a1e76c4ae334d2547ca3ca14ff 0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch
|
||||
b3eb30c66e80e8273ce180ee40ad746d819e11a18ab17dd88554ae9bd0734bfd7a9b1df2d6bac3b9d143803a3a18fe75bad4526ef8c225e29630a29827d544f0 compiler.patch
|
||||
dc254dd79e135aeac3e9c03eb055e3bc17980fc213f8c4d8d7921a575be7f9c26b91f110a6dcb01c0a824a7d9375c09f8a61c8858c20c11d79c03f873e2cb3f9 compiler.patch
|
||||
1bee1448e409fedff635388ee6f1efa6d23c29ae3e6b6fd31452c56974adb40fcd0088c82d1e643d549154663e402942cbab9807dff5aff2d8997a09de6f5655 disable-dns_config_service.patch
|
||||
0ef9168b8b1a4779bc4c8df718735e06d29e459dcfd00f8cbf9a4edaf9fade8089225219e46dead7de81de716bddc8d745dc2069db0ee7f7e5d2f64c5236e2ab disable-failing-tests.patch
|
||||
872bea229ce2442bfd15eae89ac2559e3b3e0f72d8d6435c941774fa052706362f0d4e524a167136a970a5a8009bcf406ab2bd4d6d2b4b5098f6a7a6368caa45 fc-cache-version.patch
|
||||
0050857a9a9553c10fd502fe70606bce48269c9b48fa82ce9e111575637a0c03578e923c82fc639fcb574fc3337aeef50d8a0aea5e512ae4eab83b8c3d732cf6 fc-cache-version.patch
|
||||
87f63d83139562e058f3f649eb1f62bf100dd92c2bb6ee393fdce0c8f7d7c188a7062394647aafe4e82c0a8fbbffeb613edc5c8dd9415dd9dda777827ea371c5 fix-ffmpeg-codec-list.patch
|
||||
c63dee5044353eb306a39ca1526158c0f003ab310ecb03d1c368dc2a979454590c84b8d3c15484517d5e66bb8add9b231da9abbadf2e50850abd72ac1345c4ab fstatat-32bit.patch
|
||||
33ee60863cc438ef57ffef92ba4cf67a856a5ffc16138bce241bcf87e47b15154aa86918e793c26f7ec4dc62a445257ad5673ed7001daf22c4043cf6cc57da7f gdbinit.patch
|
||||
|
|
@ -585,6 +594,8 @@ e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e
|
|||
c7f57929943a86f9e5f333da9d5691da88038770eeb46dd0a0719962c934deb2879f0e7a1ed714e9383e38ee4d68eb754501f362c4d7cdee76cfc2e980b21272 electron_unbundle-node.patch
|
||||
4d9287d4cdfe27fbfb7be3d4b26c0c40edbd6a0c3ff926d60f2093ca09c15bcb58e20c2ccc8c0606aafd66c6d25a54225bc329cb056d8c5b297db4c6d0e768e6 electron_system-zlib-headers.patch
|
||||
7031ddb61a858e95d83366185a53b5a2e4be9abe0aa4957543e0621cad57175ffef31bd87b8be25255184bb4cb30ec4fbced055407c6c8c7940c9e240b25d498 electron_do-not-strip-binaries.patch
|
||||
0f8f36c21cc50c80e378691265845ff10fa53953d6cd5352fe71efcba489f956e50d374d8f634dadc3569c4901a81a1f308a3e69140c0f9136e0777022b9520f electron_shell-file-dialog-drop-glibc.patch
|
||||
3fd20144ed171cf9706899a1481141c7fa3e98b17d600cdc5a3a68ba39059cebd9e5ccb5534af3e262f689df381bc3cb630ac24e46dd6f6c72eac4f4b6b14b35 electron_use-system-yarn.patch
|
||||
e8ea87c547546011c4c8fc2de30e4f443b85cd4cfcff92808e2521d2f9ada03feefb8e1b0cf0f6b460919c146e56ef8d5ad4bb5e2461cc5247c30d92eb4d068e default.conf
|
||||
191559fc7aa1ea0353c6fb0cc321ee1d5803a0e44848c8be941cfab96277b0de6a59962d373e2a2a1686c8f9be2bcf2d2f33706759a339a959e297d3f7fda463 electron.desktop
|
||||
5f7ba5ad005f196facec1c0f26108356b64cafb1e5cfa462ff714a33b8a4c757ac00bfcb080da09eb5b65032f8eb245d9676a61ec554515d125ed63912708648 electron-launcher.sh
|
||||
|
|
|
|||
|
|
@ -1,14 +1,12 @@
|
|||
--- ./build/config/compiler/BUILD.gn.orig
|
||||
+++ ./build/config/compiler/BUILD.gn
|
||||
@@ -662,24 +662,6 @@
|
||||
@@ -658,22 +658,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
- # TODO(crbug.com/40283598): This causes binary size growth and potentially
|
||||
- # other problems.
|
||||
- # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version.
|
||||
- if (default_toolchain != "//build/toolchain/cros:target" &&
|
||||
- !llvm_android_mainline) {
|
||||
- if (default_toolchain != "//build/toolchain/cros:target") {
|
||||
- cflags += [
|
||||
- "-mllvm",
|
||||
- "-split-threshold-for-reg-with-hint=0",
|
||||
|
|
@ -25,7 +23,7 @@
|
|||
# TODO(crbug.com/40192287): Investigate why/if this should be needed.
|
||||
if (is_win) {
|
||||
cflags += [ "/clang:-ffp-contract=off" ]
|
||||
@@ -1282,8 +1264,8 @@
|
||||
@@ -1273,8 +1257,8 @@
|
||||
# simplicity we always explicitly set the architecture.
|
||||
if (current_cpu == "x64") {
|
||||
if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) {
|
||||
|
|
@ -36,7 +34,7 @@
|
|||
} else {
|
||||
cflags += [ "-m64" ]
|
||||
ldflags += [ "-m64" ]
|
||||
@@ -1291,8 +1273,8 @@
|
||||
@@ -1282,8 +1266,8 @@
|
||||
cflags += [ "-msse3" ]
|
||||
} else if (current_cpu == "x86") {
|
||||
if (is_clang && !is_android && !is_chromeos_device) {
|
||||
|
|
@ -47,7 +45,7 @@
|
|||
} else {
|
||||
cflags += [ "-m32" ]
|
||||
ldflags += [ "-m32" ]
|
||||
@@ -1303,8 +1285,8 @@
|
||||
@@ -1294,8 +1278,8 @@
|
||||
]
|
||||
} else if (current_cpu == "arm") {
|
||||
if (is_clang && !is_android && !is_chromeos_device) {
|
||||
|
|
@ -58,7 +56,7 @@
|
|||
}
|
||||
cflags += [
|
||||
"-march=$arm_arch",
|
||||
@@ -1315,8 +1297,8 @@
|
||||
@@ -1306,8 +1290,8 @@
|
||||
}
|
||||
} else if (current_cpu == "arm64") {
|
||||
if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) {
|
||||
|
|
@ -69,7 +67,7 @@
|
|||
}
|
||||
} else if (current_cpu == "mipsel") {
|
||||
ldflags += [ "-Wl,--hash-style=sysv" ]
|
||||
@@ -1560,22 +1542,22 @@
|
||||
@@ -1551,22 +1535,22 @@
|
||||
ldflags += [ "-maix64" ]
|
||||
}
|
||||
} else if (is_clang) {
|
||||
|
|
@ -98,7 +96,7 @@
|
|||
}
|
||||
cflags += [
|
||||
"-mabi=lp64d",
|
||||
@@ -1583,8 +1565,8 @@
|
||||
@@ -1574,8 +1558,8 @@
|
||||
]
|
||||
} else if (current_cpu == "s390x") {
|
||||
if (is_clang) {
|
||||
|
|
@ -109,7 +107,7 @@
|
|||
}
|
||||
cflags += [ "-m64" ]
|
||||
ldflags += [ "-m64" ]
|
||||
@@ -2290,7 +2272,7 @@
|
||||
@@ -2274,7 +2258,7 @@
|
||||
defines = [ "_HAS_NODISCARD" ]
|
||||
}
|
||||
} else {
|
||||
|
|
@ -120,24 +118,22 @@
|
|||
cflags += [ "-Wextra" ]
|
||||
--- ./build/config/rust.gni.orig
|
||||
+++ ./build/config/rust.gni
|
||||
@@ -188,13 +188,13 @@
|
||||
@@ -178,11 +178,11 @@
|
||||
rust_abi_target = ""
|
||||
if (is_linux || is_chromeos) {
|
||||
if (current_cpu == "arm64") {
|
||||
- rust_abi_target = "aarch64-unknown-linux-gnu"
|
||||
+ rust_abi_target = "aarch64-alpine-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
} else if (current_cpu == "x86") {
|
||||
- rust_abi_target = "i686-unknown-linux-gnu"
|
||||
+ rust_abi_target = "i586-alpine-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
} else if (current_cpu == "x64") {
|
||||
- rust_abi_target = "x86_64-unknown-linux-gnu"
|
||||
+ rust_abi_target = "x86_64-alpine-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
} else if (current_cpu == "arm") {
|
||||
if (arm_float_abi == "hard") {
|
||||
@@ -213,31 +213,27 @@
|
||||
float_suffix = "hf"
|
||||
@@ -200,25 +200,21 @@
|
||||
# The thumbv7 vs. armv7 distinction is for legacy reasons and both
|
||||
# targets in fact target Thumb, see:
|
||||
# https://github.com/rust-lang/rust/issues/44722
|
||||
|
|
@ -147,35 +143,29 @@
|
|||
- rust_abi_target = "armv7-unknown-linux-gnueabi" + float_suffix
|
||||
- }
|
||||
+ rust_abi_target = "armv7-alpine-linux-musleabi" + float_suffix
|
||||
cargo_target_abi = "eabi" + float_suffix
|
||||
} else {
|
||||
- rust_abi_target = "arm-unknown-linux-gnueabi" + float_suffix
|
||||
+ rust_abi_target = "armv6-alpine-linux-musleabi" + float_suffix
|
||||
cargo_target_abi = "eabi" + float_suffix
|
||||
}
|
||||
} else if (current_cpu == "riscv64") {
|
||||
- rust_abi_target = "riscv64gc-unknown-linux-gnu"
|
||||
+ rust_abi_target = "riscv64-alpine-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
} else if (current_cpu == "ppc64") {
|
||||
- rust_abi_target = "powerpc64le-unknown-linux-gnu"
|
||||
+ rust_abi_target = "powerpc64le-alpine-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
} else if (current_cpu == "s390x") {
|
||||
- rust_abi_target = "s390x-unknown-linux-gnu"
|
||||
+ rust_abi_target = "s390x-alpine-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
} else if (current_cpu == "loong64") {
|
||||
- rust_abi_target = "loongarch64-unknown-linux-gnu"
|
||||
+ rust_abi_target = "loongarch64-alpine-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
} else {
|
||||
# Best guess for other future platforms.
|
||||
- rust_abi_target = current_cpu + "-unknown-linux-gnu"
|
||||
+ rust_abi_target = current_cpu + "-unknown-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
+ rust_abi_target = current_cpu + "-alpine-linux-musl"
|
||||
}
|
||||
} else if (is_android) {
|
||||
import("//build/config/android/abi.gni")
|
||||
--- ./build/config/clang/BUILD.gn.orig
|
||||
+++ ./build/config/clang/BUILD.gn
|
||||
@@ -207,22 +207,23 @@
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/./electron/shell/browser/ui/file_dialog.h.orig b/./electron/shell/browser/ui/file_dialog.h
|
||||
index 6cdfc7b..f7757da 100644
|
||||
--- a/./electron/shell/browser/ui/file_dialog.h.orig
|
||||
+++ b/./electron/shell/browser/ui/file_dialog.h
|
||||
@@ -13,10 +13,6 @@
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/memory/raw_ptr_exclusion.h"
|
||||
|
||||
-#if BUILDFLAG(IS_LINUX)
|
||||
-#include <bits/stdint-uintn.h>
|
||||
-#endif
|
||||
-
|
||||
namespace electron {
|
||||
class NativeWindow;
|
||||
}
|
||||
|
||||
17
backports/electron/electron_use-system-yarn.patch
Normal file
17
backports/electron/electron_use-system-yarn.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
diff --git a/electron/.yarnrc.yml.orig b/electron/.yarnrc.yml
|
||||
index ca0a580..a388ff9 100644
|
||||
--- a/electron/.yarnrc.yml.orig
|
||||
+++ b/electron/.yarnrc.yml
|
||||
@@ -1,12 +1,3 @@
|
||||
enableScripts: false
|
||||
|
||||
-nmHoistingLimits: workspaces
|
||||
-
|
||||
nodeLinker: node-modules
|
||||
-
|
||||
-npmMinimalAgeGate: 10080
|
||||
-
|
||||
-npmPreapprovedPackages:
|
||||
- - "@electron/*"
|
||||
-
|
||||
-yarnPath: .yarn/releases/yarn-4.12.0.cjs
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
FcFini();
|
||||
|
||||
// Check existence of intended fontconfig cache file.
|
||||
- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-reindex1-10";
|
||||
- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-11";
|
||||
+ auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
|
||||
bool cache_exists = access(cache.c_str(), F_OK) == 0;
|
||||
return !cache_exists;
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
diff --git a/third_party/blink/renderer/build/scripts/gperf.py.orig b/third_party/blink/renderer/build/scripts/gperf.py
|
||||
index 42630d3..d909aee 100644
|
||||
--- a/third_party/blink/renderer/build/scripts/gperf.py.orig
|
||||
+++ b/third_party/blink/renderer/build/scripts/gperf.py
|
||||
@@ -28,24 +28,6 @@ def generate_gperf(gperf_path, gperf_input, gperf_args):
|
||||
stdout=subprocess.PIPE,
|
||||
universal_newlines=True)
|
||||
gperf_output = gperf.communicate(gperf_input)[0]
|
||||
- # Massage gperf output to be more palatable for modern compilers.
|
||||
- # TODO(thakis): Upstream these to gperf so we don't need massaging.
|
||||
- # `register` is deprecated in C++11 and removed in C++17, so remove
|
||||
- # it from gperf's output.
|
||||
- # https://savannah.gnu.org/bugs/index.php?53028
|
||||
- gperf_output = re.sub(r'\bregister ', '', gperf_output)
|
||||
- # -Wimplicit-fallthrough needs an explicit fallthrough statement,
|
||||
- # so replace gperf's /*FALLTHROUGH*/ comment with the statement.
|
||||
- # https://savannah.gnu.org/bugs/index.php?53029
|
||||
- gperf_output = gperf_output.replace('/*FALLTHROUGH*/',
|
||||
- ' [[fallthrough]];')
|
||||
- # -Wpointer-to-int-cast warns about casting pointers to smaller ints
|
||||
- # Replace {(int)(long)&(foo), bar} with
|
||||
- # {static_cast<int>(reinterpret_cast<uintptr_t>(&(foo)), bar}
|
||||
- gperf_output = re.sub(
|
||||
- r'\(int\)\(long\)(.*?),',
|
||||
- r'static_cast<int>(reinterpret_cast<uintptr_t>(\1)),',
|
||||
- gperf_output)
|
||||
script = 'third_party/blink/renderer/build/scripts/gperf.py'
|
||||
return '// Generated by %s\n' % script + gperf_output
|
||||
except OSError:
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
diff --git a/build/rust/allocator/lib.rs b/build/rust/allocator/lib.rs
|
||||
index c49d424..142c6e60 100644
|
||||
--- a/build/rust/allocator/lib.rs
|
||||
+++ b/build/rust/allocator/lib.rs
|
||||
@@ -86,6 +86,12 @@
|
||||
/// As part of rustc's contract for using `#[global_allocator]` without
|
||||
/// rustc-generated shims we must define this symbol, since we are opting in
|
||||
/// to unstable functionality. See https://github.com/rust-lang/rust/issues/123015
|
||||
+ #[rustc_std_internal_symbol]
|
||||
+ #[linkage = "weak"]
|
||||
+ fn __rust_no_alloc_shim_is_unstable_v2() {}
|
||||
+
|
||||
+ // TODO(crbug.com/422538133) Remove after rolling past
|
||||
+ // https://github.com/rust-lang/rust/pull/141061
|
||||
#[no_mangle]
|
||||
#[linkage = "weak"]
|
||||
static __rust_no_alloc_shim_is_unstable: u8 = 0;
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
|
||||
maintainer="lauren n. liberda <lauren@selfisekai.rocks>"
|
||||
pkgname=element-desktop
|
||||
pkgver=1.11.100
|
||||
pkgrel=4
|
||||
pkgver=1.12.3
|
||||
pkgrel=1
|
||||
pkgdesc="Secure and independent communication, connected via Matrix"
|
||||
url="https://element.io/"
|
||||
arch="aarch64 x86_64" # same as electron
|
||||
license="GPL-3.0-only"
|
||||
_electronver=35
|
||||
_electronver=39
|
||||
depends="
|
||||
electron~$_electronver
|
||||
font-inconsolata
|
||||
|
|
@ -36,14 +36,15 @@ source="
|
|||
|
||||
add-alpine-targets.patch
|
||||
use-system-headers.patch
|
||||
tasje-one-hak.patch
|
||||
tasje-no-fuses.patch
|
||||
tasje-fixes.patch
|
||||
no-source-maps.patch.web
|
||||
use-system-fonts.patch.web
|
||||
|
||||
element-desktop
|
||||
"
|
||||
options="net !check" # broken
|
||||
# Avoid conflicting providers
|
||||
sonameprefix="$pkgname:"
|
||||
|
||||
# secfixes:
|
||||
# 1.11.30-r0:
|
||||
|
|
@ -94,6 +95,7 @@ prepare() {
|
|||
|
||||
msg "Fetch element-desktop dependencies"
|
||||
yarn install --frozen-lockfile --ignore-scripts
|
||||
patch -p1 -i patches/@types+auto-launch+5.0.5.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
|
|
@ -148,7 +150,7 @@ package() {
|
|||
|
||||
cp -r $resources/app.asar.unpacked "$pkgdir"/usr/lib/element-desktop/app.asar.unpacked
|
||||
|
||||
install -Dm644 $resources/img/element.png "$pkgdir"/usr/lib/element-desktop/img/element.png
|
||||
install -Dm644 $resources/build/icon.png "$pkgdir"/usr/lib/element-desktop/build/icon.png
|
||||
|
||||
install -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname
|
||||
|
||||
|
|
@ -159,12 +161,11 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
a8ac5180df3b204fb1947ecaa4786c9c5fdd53ffe705f4dfe97a0b051fa371fd9102c41a898e8783cf25f732674da2d987ef315f2facc7b18b20ef214ea0f81d element-desktop-1.11.100.tar.gz
|
||||
e3e50fd867f9b7388eb22778ccb97d6504a480ab4e2aa9eba10fd0f4d0324a1525c2afe6c80181567d8e554f03086a9e0994a6221cfcb0ca29700754c8f31cac element-web-1.11.100.tar.gz
|
||||
f302907165a35f4a4f069f5aec6bc28edeba3d09c75f483c818e3930ceb4e838e5bb91ad9d42019a11a661d6e656da3c1ff25507cbb281c69183aac7d499e882 element-desktop-1.12.3.tar.gz
|
||||
b845ff71ca39d7ae4dca9bb55e821bfdf911b12de5d012ba55d598f3287046fb2b525bce608925a9fa8fa7d39a4ceed9b4213d5d1c1d0c9e6b9b72154c9a35a5 element-web-1.12.3.tar.gz
|
||||
4747893ed3e43d3074e9afe1cdd668a6be0de073d439205fe8c38c5e0f4091cc76e3cd15d98818bea5139add29501d8d07e83c58e9da230a4ce5bb538d388f80 add-alpine-targets.patch
|
||||
755b17f7b828eb6920c06a6950ad4e14c32c99d22e9c05fcef7a081b5d2034adb03db3958aa5209c99fb7201f4d888c2383fc9864c5e743dd33f8b5c4925acd7 use-system-headers.patch
|
||||
92e69817fdc71f60c5c7dcbd3c7b13428cc18141cf5f27720326390f6817bec85fb1c60f8016b3a8fa275f601b16f646cda12b5e379a349368eef2f801b4de7a tasje-one-hak.patch
|
||||
a1399662bdbe5e7256d31f7bdc05070e7009d70113699856b025a1d5ab1d9b8bf1020072a08255d4eddab0874044131dec296f98a91ba5c12ca61948b1d18dbe tasje-no-fuses.patch
|
||||
a5d90dd1ec7aec0dc18b73eb3a6fd51ac1223e381c492d24e7dc0fd2ade955ac727cebbaff6ffa27c7e18d9acf712c709de3f886ee2ddf87ab3b028d3eb461c6 tasje-fixes.patch
|
||||
ec635fde026f7fce8e8cc57960b5b9dcec4418416d4867ed47711422d48f068bb58a3c9ceb7715efc9c177beca3788da6b0babc9b689ea8c0724a0395f2b85f8 no-source-maps.patch.web
|
||||
aaf46476bac403aa5204aa265fcf0654fad4c149fd74d0ec4273c051a5549943384cae3cdd62c5b78fdedfed55c11ecceb898b886e44165cbe7e30953a095cf9 use-system-fonts.patch.web
|
||||
afc588311dc3b566a754e3e7fe6b37b99a06d47b8bbce0ed9acca8ef308fdab0bd1d41b406199e5cbdd86bdce695ff847cd8668857a235cbdc292ad8b899c063 element-desktop
|
||||
|
|
|
|||
|
|
@ -5,9 +5,22 @@ thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value:
|
|||
FileAlreadyWritten("/node_modules/keytar/package.json")', src/main.rs:200:18
|
||||
```
|
||||
|
||||
console.log interferes with tasje, which reads config from node stdout
|
||||
|
||||
--- ./electron-builder.ts.orig
|
||||
+++ ./electron-builder.ts
|
||||
@@ -74,10 +74,6 @@
|
||||
@@ -72,10 +72,6 @@
|
||||
console.warn(`No VARIANT_PATH specified, using default variant configuration '${DEFAULT_VARIANT}':`);
|
||||
}
|
||||
|
||||
-for (const key in variant) {
|
||||
- console.log(`${key}: ${variant[key]}`);
|
||||
-}
|
||||
-
|
||||
interface Configuration extends BaseConfiguration {
|
||||
extraMetadata: Partial<Pick<Pkg, "version">> & ExtraMetadata;
|
||||
linux: BaseConfiguration["linux"];
|
||||
@@ -112,10 +108,6 @@
|
||||
},
|
||||
files: [
|
||||
"package.json",
|
||||
|
|
@ -17,4 +30,4 @@ FileAlreadyWritten("/node_modules/keytar/package.json")', src/main.rs:200:18
|
|||
- },
|
||||
"lib/**",
|
||||
],
|
||||
extraResources: [
|
||||
extraResources: ["build/icon.*", "webapp.asar"],
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
we can't do fuses because we ship one binary in the electron package.
|
||||
and we can't import them here, since they are in devDependencies, which are uninstalled at this stage.
|
||||
|
||||
--- ./electron-builder.ts.orig
|
||||
+++ ./electron-builder.ts
|
||||
@@ -2,8 +2,7 @@
|
||||
import * as fs from "node:fs";
|
||||
import * as path from "node:path";
|
||||
import * as plist from "plist";
|
||||
-import { AfterPackContext, Arch, Configuration as BaseConfiguration, Platform } from "electron-builder";
|
||||
-import { computeData } from "app-builder-lib/out/asar/integrity";
|
||||
+import { Configuration as BaseConfiguration } from "electron-builder";
|
||||
import { readFile, writeFile } from "node:fs/promises";
|
||||
|
||||
/**
|
||||
@@ -46,26 +45,6 @@
|
||||
} & BaseConfiguration["deb"];
|
||||
}
|
||||
|
||||
-async function injectAsarIntegrity(context: AfterPackContext) {
|
||||
- const packager = context.packager;
|
||||
-
|
||||
- // We only need to re-generate asar on universal Mac builds, due to https://github.com/electron/universal/issues/116
|
||||
- if (packager.platform !== Platform.MAC || context.arch !== Arch.universal) return;
|
||||
-
|
||||
- const resourcesPath = packager.getResourcesDir(context.appOutDir);
|
||||
- const asarIntegrity = await computeData({
|
||||
- resourcesPath,
|
||||
- resourcesRelativePath: "Resources",
|
||||
- resourcesDestinationPath: resourcesPath,
|
||||
- extraResourceMatchers: [],
|
||||
- });
|
||||
-
|
||||
- const plistPath = path.join(resourcesPath, "..", "Info.plist");
|
||||
- const data = plist.parse(await readFile(plistPath, "utf8")) as unknown as Writable<plist.PlistObject>;
|
||||
- data["ElectronAsarIntegrity"] = asarIntegrity as unknown as Writable<plist.PlistValue>;
|
||||
- await writeFile(plistPath, plist.build(data));
|
||||
-}
|
||||
-
|
||||
/**
|
||||
* @type {import('electron-builder').Configuration}
|
||||
* @see https://www.electron.build/configuration/configuration
|
||||
@@ -89,9 +68,6 @@
|
||||
|
||||
loadBrowserProcessSpecificV8Snapshot: false,
|
||||
enableEmbeddedAsarIntegrityValidation: true,
|
||||
- },
|
||||
- afterPack: async (context: AfterPackContext) => {
|
||||
- await injectAsarIntegrity(context);
|
||||
},
|
||||
files: [
|
||||
"package.json",
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=freetube
|
||||
pkgver=0.23.12
|
||||
pkgrel=0
|
||||
pkgrel=1
|
||||
pkgdesc="An open source desktop YouTube player built with privacy in mind."
|
||||
arch="x86_64 aarch64" # blocked by electron
|
||||
license="AGPL-3.0-only"
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
||||
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
|
||||
pkgname=git-extras
|
||||
pkgver=7.3.0
|
||||
pkgrel=0
|
||||
pkgdesc="Little git extras"
|
||||
url="https://github.com/tj/git-extras"
|
||||
arch="noarch"
|
||||
license="MIT"
|
||||
depends="bash cmd:column git"
|
||||
subpackages="$pkgname-bash-completion $pkgname-doc"
|
||||
source="https://github.com/tj/git-extras/archive/$pkgver/git-extras-$pkgver.tar.gz"
|
||||
|
||||
package() {
|
||||
# Avoid annoying interactive prompts if an alias is in your gitconfig.
|
||||
GIT_CONFIG=/dev/null \
|
||||
make install DESTDIR="$pkgdir" PREFIX=/usr SYSCONFDIR=/etc install
|
||||
|
||||
rm -Rf "$pkgdir"/etc/bash-completion
|
||||
|
||||
install -D -m644 etc/bash_completion.sh \
|
||||
"$pkgdir"/usr/share/bash-completion/completions/$pkgname
|
||||
|
||||
# ZSH and Fish completions don't work when autoloaded.
|
||||
install -D -m644 etc/git-extras-completion.zsh \
|
||||
"$pkgdir"/usr/share/$pkgname/completions.zsh
|
||||
install -D -m644 etc/git-extras.fish \
|
||||
"$pkgdir"/usr/share/$pkgname/completions.fish
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
14cb5cef986a4aeb12c8c1db332aafed14bc68cf830b17a00eef617dff9f120c3c68244d56300715d8d3ce61420399d5411f23a40ffec44d60332118fe36eb22 git-extras-7.3.0.tar.gz
|
||||
"
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
maintainer="Michał Polański <michal@polanski.me>"
|
||||
pkgname=llhttp
|
||||
pkgver=9.3.0
|
||||
pkgrel=0
|
||||
pkgdesc="Port of http_parser to llparse"
|
||||
url="https://llhttp.org/"
|
||||
license="MIT"
|
||||
arch="all"
|
||||
makedepends="cmake clang samurai npm"
|
||||
subpackages="$pkgname-dev $pkgname-doc"
|
||||
source="https://github.com/nodejs/llhttp/archive/v$pkgver/llhttp-$pkgver.tar.gz"
|
||||
|
||||
# secfixes:
|
||||
# 9.2.1-r0:
|
||||
# - CVE-2024-27982
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
npm ci
|
||||
}
|
||||
|
||||
build() {
|
||||
make release RELEASE="$pkgver"
|
||||
|
||||
cmake -S release -B releasebuild -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
cmake --build releasebuild
|
||||
}
|
||||
|
||||
check() {
|
||||
npm test
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install releasebuild
|
||||
|
||||
install -Dm644 LICENSE -t "$pkgdir"/usr/share/doc/$pkgname
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
ff4166f842f933cbb419221ab401e684c1314072abef2cda455812cc20c28ce4b467ed5f44079b6844eaa627c975247f640a8449b5f512e1a76d6df81790dec5 llhttp-9.3.0.tar.gz
|
||||
"
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
diff --git a/serial/SerialPortManager.cpp.orig b/serial/SerialPortManager.cpp
|
||||
index 22565b5..d444eee 100644
|
||||
--- a/serial/SerialPortManager.cpp.orig
|
||||
+++ b/serial/SerialPortManager.cpp
|
||||
@@ -1945,8 +1945,9 @@ void SerialPortManager::attemptRecovery()
|
||||
}
|
||||
} else {
|
||||
qCWarning(log_core_serial) << "Serial port recovery attempt failed";
|
||||
- if (eventCallback) {
|
||||
- eventCallback->onStatusUpdate(QString("Recovery attempt %1 failed").arg(m_connectionRetryCount));
|
||||
+ if (eventCallback) {
|
||||
+ int crc = m_connectionRetryCount;
|
||||
+ eventCallback->onStatusUpdate(QString("Recovery attempt %1 failed").arg(crc));
|
||||
}
|
||||
|
||||
// Try again if we haven't exceeded max attempts
|
||||
@@ -2034,4 +2035,4 @@ void SerialPortManager::applyCommandBasedBaudrateChange(int baudRate, const QStr
|
||||
} else {
|
||||
qCWarning(log_core_serial) << logPrefix << "Failed to apply user selected baudrate:" << baudRate;
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
|
|
@ -0,0 +1,586 @@
|
|||
From 4478cfb004d3db7797e99fd3bdb23bf880a9c85b Mon Sep 17 00:00:00 2001
|
||||
From: John Lane <1786613+johnlane@users.noreply.github.com>
|
||||
Date: Wed, 3 Dec 2025 21:19:33 +0000
|
||||
Subject: [PATCH 1/2] Remove additional backslashes and add missing cpp and h
|
||||
files
|
||||
|
||||
---
|
||||
openterfaceQT.pro | 28 +++++++++++++++++++---------
|
||||
1 file changed, 19 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/openterfaceQT.pro b/openterfaceQT.pro
|
||||
index 3460dbac..f0d878e8 100644
|
||||
--- a/openterfaceQT.pro
|
||||
+++ b/openterfaceQT.pro
|
||||
@@ -84,16 +84,26 @@ SOURCES += main.cpp \
|
||||
!win32 {
|
||||
SOURCES += host/backend/ffmpegbackendhandler.cpp \
|
||||
host/backend/gstreamerbackendhandler.cpp \
|
||||
- host/backend/gstreamer/sinkselector.cpp \\
|
||||
- host/backend/gstreamer/queueconfigurator.cpp \\
|
||||
- host/backend/gstreamer/videooverlaymanager.cpp \\
|
||||
- host/backend/gstreamer/pipelinebuilder.cpp
|
||||
+ host/backend/gstreamer/pipelinefactory.cpp \
|
||||
+ host/backend/gstreamer/externalgstrunner.cpp \
|
||||
+ host/backend/gstreamer/inprocessgstrunner.cpp \
|
||||
+ host/backend/gstreamer/sinkselector.cpp \
|
||||
+ host/backend/gstreamer/queueconfigurator.cpp \
|
||||
+ host/backend/gstreamer/videooverlaymanager.cpp \
|
||||
+ host/backend/gstreamer/pipelinebuilder.cpp \
|
||||
+ host/backend/gstreamer/recordingmanager.cpp \
|
||||
+ host/backend/gstreamer/gstreamerhelpers.cpp
|
||||
HEADERS += host/backend/ffmpegbackendhandler.h \
|
||||
host/backend/gstreamerbackendhandler.h \
|
||||
- host/backend/gstreamer/sinkselector.h \\
|
||||
- host/backend/gstreamer/queueconfigurator.h \\
|
||||
- host/backend/gstreamer/videooverlaymanager.h \\
|
||||
- host/backend/gstreamer/pipelinebuilder.h
|
||||
+ host/backend/gstreamer/pipelinefactory.h \
|
||||
+ host/backend/gstreamer/externalgstrunner.h \
|
||||
+ host/backend/gstreamer/inprocessgstrunner.h \
|
||||
+ host/backend/gstreamer/sinkselector.h \
|
||||
+ host/backend/gstreamer/queueconfigurator.h \
|
||||
+ host/backend/gstreamer/videooverlaymanager.h \
|
||||
+ host/backend/gstreamer/pipelinebuilder.h \
|
||||
+ host/backend/gstreamer/recordingmanager.h \
|
||||
+ host/backend/gstreamer/gstreamerhelpers.h
|
||||
}
|
||||
|
||||
|
||||
@@ -263,4 +273,4 @@ TRANSLATIONS += config/languages/openterface_en.ts \
|
||||
config/languages/openterface_se.ts \
|
||||
config/languages/openterface_de.ts \
|
||||
config/languages/openterface_zh.ts
|
||||
- # Add more languages here
|
||||
\ No newline at end of file
|
||||
+ # Add more languages here
|
||||
|
||||
From ccd8f51fe510684439edf0d5f8083e4dd1423836 Mon Sep 17 00:00:00 2001
|
||||
From: John Lane <1786613+johnlane@users.noreply.github.com>
|
||||
Date: Wed, 3 Dec 2025 21:26:20 +0000
|
||||
Subject: [PATCH 2/2] De-duplicate logging categories
|
||||
|
||||
---
|
||||
host/backend/gstreamer/gstreamerhelpers.cpp | 22 ++--
|
||||
host/backend/gstreamer/queueconfigurator.cpp | 8 +-
|
||||
.../backend/gstreamer/videooverlaymanager.cpp | 118 +++++++++---------
|
||||
3 files changed, 74 insertions(+), 74 deletions(-)
|
||||
|
||||
diff --git a/host/backend/gstreamer/gstreamerhelpers.cpp b/host/backend/gstreamer/gstreamerhelpers.cpp
|
||||
index 6fc1dd6e..4739da17 100644
|
||||
--- a/host/backend/gstreamer/gstreamerhelpers.cpp
|
||||
+++ b/host/backend/gstreamer/gstreamerhelpers.cpp
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <QDebug>
|
||||
#include <QLoggingCategory>
|
||||
|
||||
-Q_LOGGING_CATEGORY(log_gstreamer_backend, "opf.backend.gstreamer")
|
||||
+Q_LOGGING_CATEGORY(log_gstreamer_gstreamerhelpers, "opf.backend.gstreamerhelpers")
|
||||
|
||||
using namespace Openterface::GStreamer::GstHelpers;
|
||||
|
||||
@@ -16,7 +16,7 @@ bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* eleme
|
||||
{
|
||||
if (!elementPtr) {
|
||||
if (outError) *outError = QStringLiteral("Element pointer is null");
|
||||
- qCWarning(log_gstreamer_backend) << "setPipelineStateWithTimeout: element pointer is null";
|
||||
+ qCWarning(log_gstreamer_gstreamerhelpers) << "setPipelineStateWithTimeout: element pointer is null";
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* eleme
|
||||
|
||||
GstStateChangeReturn ret = gst_element_set_state(element, static_cast<GstState>(targetState));
|
||||
if (ret == GST_STATE_CHANGE_FAILURE) {
|
||||
- qCCritical(log_gstreamer_backend) << "Failed to set element state to" << targetState;
|
||||
+ qCCritical(log_gstreamer_gstreamerhelpers) << "Failed to set element state to" << targetState;
|
||||
// Try to pull any error from the bus for diagnostics
|
||||
// Caller may pass a bus to parseAndLogGstErrorMessage, but we don't have it here.
|
||||
if (outError) *outError = QStringLiteral("Failed to set state (GST_STATE_CHANGE_FAILURE)");
|
||||
@@ -35,13 +35,13 @@ bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* eleme
|
||||
ret = gst_element_get_state(element, &state, &pending, static_cast<GstClockTime>(timeoutMs) * GST_MSECOND);
|
||||
if (ret == GST_STATE_CHANGE_FAILURE) {
|
||||
if (outError) *outError = QStringLiteral("State change failure");
|
||||
- qCCritical(log_gstreamer_backend) << "State change failure waiting for target state";
|
||||
+ qCCritical(log_gstreamer_gstreamerhelpers) << "State change failure waiting for target state";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (state != static_cast<GstState>(targetState)) {
|
||||
if (outError) *outError = QStringLiteral("Element did not reach target state in timeout");
|
||||
- qCCritical(log_gstreamer_backend) << "Element failed to reach state" << targetState << "(current:" << state << ", pending:" << pending << ")";
|
||||
+ qCCritical(log_gstreamer_gstreamerhelpers) << "Element failed to reach state" << targetState << "(current:" << state << ", pending:" << pending << ")";
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -51,14 +51,14 @@ bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* eleme
|
||||
void Openterface::GStreamer::GstHelpers::parseAndLogGstErrorMessage(void* busPtr, const char* context)
|
||||
{
|
||||
if (!busPtr) {
|
||||
- qCWarning(log_gstreamer_backend) << "Bus not available for error details" << (context ? context : "");
|
||||
+ qCWarning(log_gstreamer_gstreamerhelpers) << "Bus not available for error details" << (context ? context : "");
|
||||
return;
|
||||
}
|
||||
|
||||
GstBus* bus = static_cast<GstBus*>(busPtr);
|
||||
GstMessage* msg = gst_bus_pop_filtered(bus, GST_MESSAGE_ERROR);
|
||||
if (!msg) {
|
||||
- qCDebug(log_gstreamer_backend) << "No error message available on bus" << (context ? context : "");
|
||||
+ qCDebug(log_gstreamer_gstreamerhelpers) << "No error message available on bus" << (context ? context : "");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -66,8 +66,8 @@ void Openterface::GStreamer::GstHelpers::parseAndLogGstErrorMessage(void* busPtr
|
||||
gchar* debug_info = nullptr;
|
||||
gst_message_parse_error(msg, &error, &debug_info);
|
||||
|
||||
- qCCritical(log_gstreamer_backend) << "GStreamer Error:" << (error ? error->message : "Unknown") << (context ? context : "");
|
||||
- qCCritical(log_gstreamer_backend) << "Debug info:" << (debug_info ? debug_info : "None");
|
||||
+ qCCritical(log_gstreamer_gstreamerhelpers) << "GStreamer Error:" << (error ? error->message : "Unknown") << (context ? context : "");
|
||||
+ qCCritical(log_gstreamer_gstreamerhelpers) << "Debug info:" << (debug_info ? debug_info : "None");
|
||||
|
||||
if (error) g_error_free(error);
|
||||
if (debug_info) g_free(debug_info);
|
||||
@@ -79,13 +79,13 @@ void Openterface::GStreamer::GstHelpers::parseAndLogGstErrorMessage(void* busPtr
|
||||
bool Openterface::GStreamer::GstHelpers::setPipelineStateWithTimeout(void* /*elementPtr*/, int /*targetState*/, int /*timeoutMs*/, QString* outError)
|
||||
{
|
||||
if (outError) *outError = QStringLiteral("GStreamer not available in this build");
|
||||
- qCWarning(log_gstreamer_backend) << "setPipelineStateWithTimeout called but GStreamer is not compiled in";
|
||||
+ qCWarning(log_gstreamer_gstreamerhelpers) << "setPipelineStateWithTimeout called but GStreamer is not compiled in";
|
||||
return false;
|
||||
}
|
||||
|
||||
void Openterface::GStreamer::GstHelpers::parseAndLogGstErrorMessage(void* /*busPtr*/, const char* context)
|
||||
{
|
||||
- qCDebug(log_gstreamer_backend) << "GStreamer not compiled in - no bus to parse" << (context ? context : "");
|
||||
+ qCDebug(log_gstreamer_gstreamerhelpers) << "GStreamer not compiled in - no bus to parse" << (context ? context : "");
|
||||
}
|
||||
|
||||
#endif // HAVE_GSTREAMER
|
||||
diff --git a/host/backend/gstreamer/queueconfigurator.cpp b/host/backend/gstreamer/queueconfigurator.cpp
|
||||
index b7bea42e..12290193 100644
|
||||
--- a/host/backend/gstreamer/queueconfigurator.cpp
|
||||
+++ b/host/backend/gstreamer/queueconfigurator.cpp
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <gst/gst.h>
|
||||
#endif
|
||||
|
||||
-Q_LOGGING_CATEGORY(log_gstreamer_backend, "opf.backend.gstreamer")
|
||||
+Q_LOGGING_CATEGORY(log_gstreamer_queueconfigurator, "opf.backend.queueconfigurator")
|
||||
|
||||
using namespace Openterface::GStreamer;
|
||||
|
||||
@@ -26,10 +26,10 @@ void QueueConfigurator::configureDisplayQueue(void* pipeline)
|
||||
"max-size-time", G_GUINT64_CONSTANT(100000000), // 100ms
|
||||
"leaky", 2, // GST_QUEUE_LEAK_DOWNSTREAM
|
||||
NULL);
|
||||
- qCDebug(log_gstreamer_backend) << "✓ Configured display queue with higher priority for qtsink";
|
||||
+ qCDebug(log_gstreamer_queueconfigurator) << "✓ Configured display queue with higher priority for qtsink";
|
||||
gst_object_unref(displayQueue);
|
||||
} else {
|
||||
- qCDebug(log_gstreamer_backend) << "Display queue element not found (no named display-queue)";
|
||||
+ qCDebug(log_gstreamer_queueconfigurator) << "Display queue element not found (no named display-queue)";
|
||||
}
|
||||
#else
|
||||
Q_UNUSED(pipeline);
|
||||
@@ -50,7 +50,7 @@ void QueueConfigurator::configureRecordingQueue(void* pipeline)
|
||||
"max-size-time", G_GUINT64_CONSTANT(500000000), // 500ms
|
||||
"leaky", 1, // GST_QUEUE_LEAK_UPSTREAM
|
||||
NULL);
|
||||
- qCDebug(log_gstreamer_backend) << "✓ Configured recording queue with lower priority relative to display";
|
||||
+ qCDebug(log_gstreamer_queueconfigurator) << "✓ Configured recording queue with lower priority relative to display";
|
||||
gst_object_unref(recordingQueue);
|
||||
}
|
||||
#else
|
||||
diff --git a/host/backend/gstreamer/videooverlaymanager.cpp b/host/backend/gstreamer/videooverlaymanager.cpp
|
||||
index d8bf42f3..2dbe3bbf 100644
|
||||
--- a/host/backend/gstreamer/videooverlaymanager.cpp
|
||||
+++ b/host/backend/gstreamer/videooverlaymanager.cpp
|
||||
@@ -22,7 +22,7 @@ static int x11_overlay_error_handler_local(Display* display, XErrorEvent* error)
|
||||
}
|
||||
#endif
|
||||
|
||||
-Q_LOGGING_CATEGORY(log_gstreamer_backend, "opf.backend.gstreamer")
|
||||
+Q_LOGGING_CATEGORY(log_gstreamer_videooverlaymanager, "opf.backend.videooverlaymanager")
|
||||
|
||||
using namespace Openterface::GStreamer;
|
||||
|
||||
@@ -30,36 +30,36 @@ bool VideoOverlayManager::embedVideoInWidget(void* pipeline, QWidget* widget)
|
||||
{
|
||||
#ifdef HAVE_GSTREAMER
|
||||
if (!widget || !pipeline) {
|
||||
- qCWarning(log_gstreamer_backend) << "Cannot embed video: widget or pipeline is null";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Cannot embed video: widget or pipeline is null";
|
||||
return false;
|
||||
}
|
||||
|
||||
GstElement* videoSink = gst_bin_get_by_name(GST_BIN(pipeline), "videosink");
|
||||
if (!videoSink) {
|
||||
- qCWarning(log_gstreamer_backend) << "No video sink element named 'videosink' found in pipeline";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "No video sink element named 'videosink' found in pipeline";
|
||||
videoSink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY);
|
||||
if (!videoSink) {
|
||||
- qCWarning(log_gstreamer_backend) << "No video overlay interface found in pipeline either";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "No video overlay interface found in pipeline either";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
WId winId = widget->winId();
|
||||
if (winId) {
|
||||
- qCDebug(log_gstreamer_backend) << "Embedding video in widget with window ID:" << winId;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Embedding video in widget with window ID:" << winId;
|
||||
gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videoSink), winId);
|
||||
gst_object_unref(videoSink);
|
||||
- qCDebug(log_gstreamer_backend) << "Video embedded in widget successfully";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Video embedded in widget successfully";
|
||||
return true;
|
||||
} else {
|
||||
- qCWarning(log_gstreamer_backend) << "Widget window ID is null, cannot embed video";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Widget window ID is null, cannot embed video";
|
||||
gst_object_unref(videoSink);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
Q_UNUSED(pipeline)
|
||||
Q_UNUSED(widget)
|
||||
- qCDebug(log_gstreamer_backend) << "Using autovideosink for video output (no in-process GStreamer)";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Using autovideosink for video output (no in-process GStreamer)";
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
@@ -68,36 +68,36 @@ bool VideoOverlayManager::embedVideoInGraphicsView(void* pipeline, QGraphicsView
|
||||
{
|
||||
#ifdef HAVE_GSTREAMER
|
||||
if (!view || !pipeline) {
|
||||
- qCWarning(log_gstreamer_backend) << "Cannot embed video: graphics view or pipeline is null";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Cannot embed video: graphics view or pipeline is null";
|
||||
return false;
|
||||
}
|
||||
|
||||
GstElement* videoSink = gst_bin_get_by_name(GST_BIN(pipeline), "videosink");
|
||||
if (!videoSink) {
|
||||
- qCWarning(log_gstreamer_backend) << "No video sink element named 'videosink' found in pipeline";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "No video sink element named 'videosink' found in pipeline";
|
||||
videoSink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY);
|
||||
if (!videoSink) {
|
||||
- qCWarning(log_gstreamer_backend) << "No video overlay interface found in pipeline either";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "No video overlay interface found in pipeline either";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
WId winId = view->winId();
|
||||
if (winId) {
|
||||
- qCDebug(log_gstreamer_backend) << "Embedding video in graphics view with window ID:" << winId;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Embedding video in graphics view with window ID:" << winId;
|
||||
gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videoSink), winId);
|
||||
gst_object_unref(videoSink);
|
||||
- qCDebug(log_gstreamer_backend) << "Video embedded in graphics view successfully";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Video embedded in graphics view successfully";
|
||||
return true;
|
||||
} else {
|
||||
- qCWarning(log_gstreamer_backend) << "Graphics view window ID is null, cannot embed video";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Graphics view window ID is null, cannot embed video";
|
||||
gst_object_unref(videoSink);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
Q_UNUSED(pipeline)
|
||||
Q_UNUSED(view)
|
||||
- qCDebug(log_gstreamer_backend) << "Using autovideosink for video output (no in-process GStreamer)";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Using autovideosink for video output (no in-process GStreamer)";
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
@@ -106,36 +106,36 @@ bool VideoOverlayManager::embedVideoInVideoPane(void* pipeline, ::VideoPane* vid
|
||||
{
|
||||
#ifdef HAVE_GSTREAMER
|
||||
if (!videoPane || !pipeline) {
|
||||
- qCWarning(log_gstreamer_backend) << "Cannot embed video: VideoPane or pipeline is null";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Cannot embed video: VideoPane or pipeline is null";
|
||||
return false;
|
||||
}
|
||||
|
||||
GstElement* videoSink = gst_bin_get_by_name(GST_BIN(pipeline), "videosink");
|
||||
if (!videoSink) {
|
||||
- qCWarning(log_gstreamer_backend) << "No video sink element named 'videosink' found in pipeline";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "No video sink element named 'videosink' found in pipeline";
|
||||
videoSink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY);
|
||||
if (!videoSink) {
|
||||
- qCWarning(log_gstreamer_backend) << "No video overlay interface found in pipeline either";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "No video overlay interface found in pipeline either";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
WId winId = videoPane->getVideoOverlayWindowId();
|
||||
if (winId) {
|
||||
- qCDebug(log_gstreamer_backend) << "Embedding video in VideoPane overlay with window ID:" << winId;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Embedding video in VideoPane overlay with window ID:" << winId;
|
||||
gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videoSink), winId);
|
||||
gst_object_unref(videoSink);
|
||||
- qCDebug(log_gstreamer_backend) << "Video embedded in VideoPane overlay successfully";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Video embedded in VideoPane overlay successfully";
|
||||
return true;
|
||||
} else {
|
||||
- qCWarning(log_gstreamer_backend) << "VideoPane overlay window ID is null, cannot embed video";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "VideoPane overlay window ID is null, cannot embed video";
|
||||
gst_object_unref(videoSink);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
Q_UNUSED(pipeline)
|
||||
Q_UNUSED(videoPane)
|
||||
- qCDebug(log_gstreamer_backend) << "Using autovideosink for video output (no in-process GStreamer)";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Using autovideosink for video output (no in-process GStreamer)";
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
@@ -144,7 +144,7 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW
|
||||
{
|
||||
#ifdef HAVE_GSTREAMER
|
||||
if (!videoSinkPtr || windowId == 0) {
|
||||
- qCWarning(log_gstreamer_backend) << "Invalid parameters for overlay setup: sink=" << videoSinkPtr << "windowId=" << windowId;
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Invalid parameters for overlay setup: sink=" << videoSinkPtr << "windowId=" << windowId;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW
|
||||
|
||||
// Check if the sink supports video overlay interface
|
||||
if (GST_IS_VIDEO_OVERLAY(videoSink)) {
|
||||
- qCDebug(log_gstreamer_backend) << "Sink supports video overlay - setting up overlay with window ID:" << windowId;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Sink supports video overlay - setting up overlay with window ID:" << windowId;
|
||||
|
||||
#ifdef Q_OS_LINUX
|
||||
// Add X11 error handling to prevent segmentation fault
|
||||
@@ -175,12 +175,12 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW
|
||||
if (g_object_class_find_property(G_OBJECT_GET_CLASS(videoSink), "force-aspect-ratio")) {
|
||||
// Allow the sink to stretch to the configured render rectangle so overlay scales to widget size
|
||||
g_object_set(videoSink, "force-aspect-ratio", FALSE, NULL);
|
||||
- qCDebug(log_gstreamer_backend) << "Disabled force-aspect-ratio on video sink to allow fill scaling";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Disabled force-aspect-ratio on video sink to allow fill scaling";
|
||||
}
|
||||
|
||||
if (g_object_class_find_property(G_OBJECT_GET_CLASS(videoSink), "pixel-aspect-ratio")) {
|
||||
g_object_set(videoSink, "pixel-aspect-ratio", "1/1", NULL);
|
||||
- qCDebug(log_gstreamer_backend) << "Set pixel-aspect-ratio to 1:1 on video sink";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Set pixel-aspect-ratio to 1:1 on video sink";
|
||||
}
|
||||
|
||||
// Configure render rectangle based on provided targets
|
||||
@@ -188,13 +188,13 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW
|
||||
QSize widgetSize = videoWidget->size();
|
||||
if (widgetSize.width() > 0 && widgetSize.height() > 0) {
|
||||
gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(videoSink), 0, 0, widgetSize.width(), widgetSize.height());
|
||||
- qCDebug(log_gstreamer_backend) << "Set render rectangle to widget size:" << widgetSize;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Set render rectangle to widget size:" << widgetSize;
|
||||
}
|
||||
} else if (graphicsVideoItem) {
|
||||
QRectF itemRect = graphicsVideoItem->boundingRect();
|
||||
if (itemRect.width() > 0 && itemRect.height() > 0) {
|
||||
gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(videoSink), 0, 0, (gint)itemRect.width(), (gint)itemRect.height());
|
||||
- qCDebug(log_gstreamer_backend) << "Set render rectangle to video item size:" << itemRect.size();
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Set render rectangle to video item size:" << itemRect.size();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,18 +205,18 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW
|
||||
XCloseDisplay(display);
|
||||
|
||||
if (x11_overlay_error_occurred_local) {
|
||||
- qCWarning(log_gstreamer_backend) << "X11 error occurred during overlay setup - continuing without embedding";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "X11 error occurred during overlay setup - continuing without embedding";
|
||||
} else {
|
||||
- qCDebug(log_gstreamer_backend) << "Video overlay setup completed successfully";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Video overlay setup completed successfully";
|
||||
}
|
||||
} else if (!old_handler) {
|
||||
- qCDebug(log_gstreamer_backend) << "Video overlay setup completed (no X11 error handling)";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Video overlay setup completed (no X11 error handling)";
|
||||
}
|
||||
#endif
|
||||
|
||||
- qCDebug(log_gstreamer_backend) << "Overlay setup completed";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Overlay setup completed";
|
||||
} catch (...) {
|
||||
- qCCritical(log_gstreamer_backend) << "Exception during video overlay setup - continuing without embedding";
|
||||
+ qCCritical(log_gstreamer_videooverlaymanager) << "Exception during video overlay setup - continuing without embedding";
|
||||
#ifdef Q_OS_LINUX
|
||||
if (display && old_handler) {
|
||||
XSetErrorHandler(old_handler);
|
||||
@@ -242,17 +242,17 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW
|
||||
if (gst_iterator_next(iter, &item) == GST_ITERATOR_OK) {
|
||||
actualSink = GST_ELEMENT(g_value_get_object(&item));
|
||||
if (actualSink && GST_IS_VIDEO_OVERLAY(actualSink)) {
|
||||
- qCDebug(log_gstreamer_backend) << "Found overlay-capable sink inside autovideosink";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Found overlay-capable sink inside autovideosink";
|
||||
gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(actualSink), windowId);
|
||||
// Use target widget size if available to set explicit render rectangle so scaling works
|
||||
if (videoWidget) {
|
||||
QSize widgetSize = videoWidget->size();
|
||||
if (widgetSize.width() > 0 && widgetSize.height() > 0) {
|
||||
gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(actualSink), 0, 0, widgetSize.width(), widgetSize.height());
|
||||
- qCDebug(log_gstreamer_backend) << "Set render rectangle to widget size for autovideosink child sink:" << widgetSize;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Set render rectangle to widget size for autovideosink child sink:" << widgetSize;
|
||||
if (g_object_class_find_property(G_OBJECT_GET_CLASS(actualSink), "force-aspect-ratio")) {
|
||||
g_object_set(actualSink, "force-aspect-ratio", FALSE, NULL);
|
||||
- qCDebug(log_gstreamer_backend) << "Disabled force-aspect-ratio on autovideosink child sink";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Disabled force-aspect-ratio on autovideosink child sink";
|
||||
}
|
||||
} else {
|
||||
gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(actualSink), 0, 0, -1, -1);
|
||||
@@ -269,18 +269,18 @@ bool VideoOverlayManager::setupVideoOverlay(void* videoSinkPtr, WId windowId, QW
|
||||
}
|
||||
gst_iterator_free(iter);
|
||||
}
|
||||
- qCDebug(log_gstreamer_backend) << "autovideosink selected sink doesn't support overlay - video will display in separate window";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "autovideosink selected sink doesn't support overlay - video will display in separate window";
|
||||
return false;
|
||||
}
|
||||
|
||||
- qCWarning(log_gstreamer_backend) << "Sink does not support video overlay:" << sinkName;
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Sink does not support video overlay:" << sinkName;
|
||||
return false;
|
||||
#else
|
||||
Q_UNUSED(videoSinkPtr)
|
||||
Q_UNUSED(windowId)
|
||||
Q_UNUSED(videoWidget)
|
||||
Q_UNUSED(graphicsVideoItem)
|
||||
- qCDebug(log_gstreamer_backend) << "No in-process GStreamer - overlay unavailable";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "No in-process GStreamer - overlay unavailable";
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
@@ -300,7 +300,7 @@ bool VideoOverlayManager::setupVideoOverlayForPipeline(void* pipeline, WId windo
|
||||
gst_object_unref(videoSink);
|
||||
return ok;
|
||||
}
|
||||
- qCWarning(log_gstreamer_backend) << "No video sink found in pipeline";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "No video sink found in pipeline";
|
||||
return false;
|
||||
#else
|
||||
Q_UNUSED(pipeline)
|
||||
@@ -315,10 +315,10 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline,
|
||||
::VideoPane* videoPane,
|
||||
bool &pendingFlag)
|
||||
{
|
||||
- qCDebug(log_gstreamer_backend) << "VideoOverlayManager: Completing pending overlay setup...";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "VideoOverlayManager: Completing pending overlay setup...";
|
||||
|
||||
if (!pendingFlag || !pipeline) {
|
||||
- qCDebug(log_gstreamer_backend) << "No pending setup or no pipeline";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "No pending setup or no pipeline";
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -326,7 +326,7 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline,
|
||||
const bool isXcb = platform.contains("xcb", Qt::CaseInsensitive);
|
||||
const bool hasXDisplay = !qgetenv("DISPLAY").isEmpty();
|
||||
if (!isXcb || !hasXDisplay) {
|
||||
- qCWarning(log_gstreamer_backend) << "Skipping deferred overlay setup: platform is" << platform << "(DISPLAY set:" << hasXDisplay << ")";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Skipping deferred overlay setup: platform is" << platform << "(DISPLAY set:" << hasXDisplay << ")";
|
||||
pendingFlag = false;
|
||||
return false;
|
||||
}
|
||||
@@ -335,7 +335,7 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline,
|
||||
|
||||
if (videoPane) {
|
||||
windowId = videoPane->getVideoOverlayWindowId();
|
||||
- qCDebug(log_gstreamer_backend) << "Completing overlay setup with VideoPane window ID:" << windowId;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Completing overlay setup with VideoPane window ID:" << windowId;
|
||||
} else if (graphicsVideoItem) {
|
||||
if (graphicsVideoItem->scene()) {
|
||||
QList<QGraphicsView*> views = graphicsVideoItem->scene()->views();
|
||||
@@ -344,21 +344,21 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline,
|
||||
if (auto pane = qobject_cast<VideoPane*>(view)) {
|
||||
if (pane->isDirectGStreamerModeEnabled() && pane->getOverlayWidget()) {
|
||||
windowId = pane->getVideoOverlayWindowId();
|
||||
- qCDebug(log_gstreamer_backend) << "Completing overlay setup with VideoPane overlay widget window ID:" << windowId;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Completing overlay setup with VideoPane overlay widget window ID:" << windowId;
|
||||
} else {
|
||||
- qCDebug(log_gstreamer_backend) << "VideoPane overlay widget still not ready";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "VideoPane overlay widget still not ready";
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
windowId = view->winId();
|
||||
- qCDebug(log_gstreamer_backend) << "Completing overlay setup with graphics view window ID:" << windowId;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Completing overlay setup with graphics view window ID:" << windowId;
|
||||
}
|
||||
} else {
|
||||
- qCWarning(log_gstreamer_backend) << "Graphics video item has no associated view";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Graphics video item has no associated view";
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
- qCWarning(log_gstreamer_backend) << "Graphics video item has no scene";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Graphics video item has no scene";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -367,7 +367,7 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline,
|
||||
GstElement* videoSink = gst_bin_get_by_name(GST_BIN(pipeline), "videosink");
|
||||
if (!videoSink) {
|
||||
videoSink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY);
|
||||
- if (videoSink) qCDebug(log_gstreamer_backend) << "Deferred path: found sink by overlay interface";
|
||||
+ if (videoSink) qCDebug(log_gstreamer_videooverlaymanager) << "Deferred path: found sink by overlay interface";
|
||||
}
|
||||
|
||||
if (videoSink) {
|
||||
@@ -384,14 +384,14 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline,
|
||||
targetWidget = videoWidget;
|
||||
}
|
||||
if (targetWidget) {
|
||||
- qCDebug(log_gstreamer_backend) << "Deferred: binding qt6videosink to QWidget" << targetWidget;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Deferred: binding qt6videosink to QWidget" << targetWidget;
|
||||
g_object_set(G_OBJECT(videoSink), "widget", (gpointer)targetWidget, nullptr);
|
||||
gst_object_unref(videoSink);
|
||||
pendingFlag = false;
|
||||
- qCDebug(log_gstreamer_backend) << "Deferred qt6videosink binding completed";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Deferred qt6videosink binding completed";
|
||||
return true;
|
||||
} else {
|
||||
- qCWarning(log_gstreamer_backend) << "Deferred: no target QWidget available to bind qt6videosink";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Deferred: no target QWidget available to bind qt6videosink";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -399,30 +399,30 @@ bool VideoOverlayManager::completePendingOverlaySetup(void* pipeline,
|
||||
const bool looksLikeXSink = sinkNameBA.contains("xvimage") || sinkNameBA.contains("ximage");
|
||||
|
||||
if (!supportsOverlay) {
|
||||
- qCWarning(log_gstreamer_backend) << "Deferred overlay skipped: sink does not support overlay interface (" << sinkName << ")";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Deferred overlay skipped: sink does not support overlay interface (" << sinkName << ")";
|
||||
gst_object_unref(videoSink);
|
||||
pendingFlag = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!looksLikeXSink) {
|
||||
- qCWarning(log_gstreamer_backend) << "Deferred overlay skipped: sink is not an X sink (" << sinkName << ") on platform" << QGuiApplication::platformName();
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Deferred overlay skipped: sink is not an X sink (" << sinkName << ") on platform" << QGuiApplication::platformName();
|
||||
gst_object_unref(videoSink);
|
||||
pendingFlag = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
- qCDebug(log_gstreamer_backend) << "Setting up deferred video overlay with window ID:" << windowId << "using sink" << sinkName;
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Setting up deferred video overlay with window ID:" << windowId << "using sink" << sinkName;
|
||||
gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(videoSink), windowId);
|
||||
gst_object_unref(videoSink);
|
||||
pendingFlag = false;
|
||||
- qCDebug(log_gstreamer_backend) << "Deferred overlay setup completed successfully";
|
||||
+ qCDebug(log_gstreamer_videooverlaymanager) << "Deferred overlay setup completed successfully";
|
||||
return true;
|
||||
} else {
|
||||
- qCWarning(log_gstreamer_backend) << "Could not find video sink for deferred overlay setup";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Could not find video sink for deferred overlay setup";
|
||||
}
|
||||
} else {
|
||||
- qCWarning(log_gstreamer_backend) << "Still no valid window ID available for deferred overlay setup";
|
||||
+ qCWarning(log_gstreamer_videooverlaymanager) << "Still no valid window ID available for deferred overlay setup";
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -1,29 +1,54 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=openterface-qt
|
||||
pkgver=0.3.13
|
||||
pkgver=0.5.7
|
||||
pkgrel=0
|
||||
pkgdesc="Openterface Mini-KVM Host Application"
|
||||
arch="all !armhf" # missing qt6-qtmultimedia
|
||||
# armhf: missing qt6-qtmultimedia
|
||||
# riscv64: missing libgtk-3
|
||||
arch="all !armhf !riscv64"
|
||||
url="https://openterface.com/"
|
||||
license="AGPL-3.0-only"
|
||||
depends="qt6-qtmultimedia-ffmpeg hicolor-icon-theme"
|
||||
makedepends="qt6-qtbase-dev qt6-qtmultimedia-dev qt6-qtserialport-dev qt6-qtsvg-dev qt6-qtmultimedia-dev libusb-dev"
|
||||
depends="
|
||||
gst-plugins-good-qt
|
||||
hicolor-icon-theme
|
||||
qt6-qtmultimedia-ffmpeg
|
||||
"
|
||||
makedepends="
|
||||
cmake
|
||||
ffmpeg-dev
|
||||
libgudev-dev
|
||||
libjpeg-turbo-dev
|
||||
libusb-dev
|
||||
libx11-dev
|
||||
libxv-dev
|
||||
patchelf
|
||||
qt6-qtbase-dev
|
||||
qt6-qtmultimedia-dev
|
||||
qt6-qtserialport-dev
|
||||
samurai
|
||||
v4l-utils-dev
|
||||
"
|
||||
install="$pkgname.post-install"
|
||||
builddir="$srcdir"/Openterface_QT-$pkgver
|
||||
options="!check" # No testsuite
|
||||
source="
|
||||
$pkgname-$pkgver.tar.gz::https://github.com/TechxArtisanStudio/Openterface_QT/archive/$pkgver.tar.gz
|
||||
openterfaceQT.desktop
|
||||
51-openterface-permissions.rules
|
||||
348_address-use-of-deleted-function.patch
|
||||
423_deduplicate-logging-categories-and-remove-backslashes.patch
|
||||
use-system-libs.patch
|
||||
"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
mkdir build && cd build
|
||||
qmake6 ..
|
||||
# OPENTERFACE_BUILD_STATIC: do not build vendored dependencies
|
||||
cmake -DOPENTERFACE_BUILD_STATIC=OFF ..
|
||||
}
|
||||
|
||||
build() {
|
||||
make -C build
|
||||
ninja -C build
|
||||
}
|
||||
|
||||
package() {
|
||||
|
|
@ -33,9 +58,16 @@ package() {
|
|||
install -Dm644 "$builddir"/images/icon_32.png "$pkgdir"/usr/share/icons/hicolor/32x32/apps/openterfaceQT.png
|
||||
install -Dm644 "$builddir"/images/icon_64.png "$pkgdir"/usr/share/icons/hicolor/64x64/apps/openterfaceQT.png
|
||||
install -Dm644 "$builddir"/images/icon_128.png "$pkgdir"/usr/share/icons/hicolor/128x128/apps/openterfaceQT.png
|
||||
|
||||
# vanilla build does not set rpath, since it usually wants to use vendored libs
|
||||
patchelf --set-rpath '/usr/lib' "$pkgdir"/usr/bin/openterfaceQT
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
7261ce2875b1617d27945de591c72779d2305889b7f53bb6758cb5e1d4dc01c969fef1638726d868f75e995c44a8e2c453cac45c90cfb3d140b8120523c4038d openterface-qt-0.3.13.tar.gz
|
||||
996415d6f7d3ed950901c380a0520ddab8c31e8d3c2e2bb3a5f631a5600cace6bcf6bf89871e4e4ef818009eeb08c448fd793e1e4758ecccf1e1a21ff04fd560 openterface-qt-0.5.7.tar.gz
|
||||
e39cfa04cbcb59e8ba54110a28eff41854f73fa7c4baeeed5433907c79781946f12bd3a731763caa1d591e664eab0650bdbd2a844954baa12bb96a76a17c6e4f openterfaceQT.desktop
|
||||
f50d721a6a2d1e0183c81e99230e91e127ee6c6f3243af1cff3e3cb78e2913ebab3346ec8b461a4710220d1ce2e12a7cc960ded6e0dc2def539375c6e737b647 51-openterface-permissions.rules
|
||||
69b5556ec9e56792e848ea1ff9374e12e6901da821ecd9d6f2f521ea30f48e564c2cd0631fc1360acd6c8c6249cfa718d5baf7ed6929e1e92f63eeaea578bcb3 348_address-use-of-deleted-function.patch
|
||||
47580d07a2d971ad2010e78373d1abbcbc05b3fbd3a7e466faed50dc9a0d632db30c0a7622e7324aeb0eb38d49e3241cb6cebc835f7adeed977b1dd7b48ea5f6 423_deduplicate-logging-categories-and-remove-backslashes.patch
|
||||
22ecac74fe0923f39f538a5d587f8c100d9709631a1584bd20646e09dcf777cd3042670d08195626220f0494e5efa9549a299c5e1fd8c42f991ec5746b42cc86 use-system-libs.patch
|
||||
"
|
||||
72
backports/openterface-qt/use-system-libs.patch
Normal file
72
backports/openterface-qt/use-system-libs.patch
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index e0e8ea1..c861725 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -244,7 +244,7 @@ endif()
|
||||
# Add XCB cursor library for static linking (Linux only) - Legacy support
|
||||
if(UNIX AND NOT APPLE AND XCB_CURSOR_FOUND)
|
||||
# This is redundant now but keeping for compatibility
|
||||
- message(STATUS "XCB cursor already linked via static approach above")
|
||||
+ target_link_libraries(openterfaceQT PRIVATE X11)
|
||||
endif()
|
||||
|
||||
# Add TurboJPEG if available
|
||||
@@ -307,4 +307,4 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-# Qt components already found above
|
||||
\ No newline at end of file
|
||||
+# Qt components already found above
|
||||
diff --git a/cmake/FFmpeg.cmake b/cmake/FFmpeg.cmake
|
||||
index ef0699e..660e765 100644
|
||||
--- a/cmake/FFmpeg.cmake
|
||||
+++ b/cmake/FFmpeg.cmake
|
||||
@@ -19,7 +19,7 @@ if(NOT DEFINED FFMPEG_PREFIX)
|
||||
if(WIN32)
|
||||
set(FFMPEG_PREFIX "C:/ffmpeg-static" CACHE PATH "FFmpeg installation directory")
|
||||
else()
|
||||
- set(FFMPEG_PREFIX "/opt/ffmpeg" CACHE PATH "FFmpeg installation directory")
|
||||
+ set(FFMPEG_PREFIX "/usr" CACHE PATH "FFmpeg installation directory")
|
||||
endif()
|
||||
message(STATUS "Using default FFMPEG_PREFIX: ${FFMPEG_PREFIX}")
|
||||
endif()
|
||||
@@ -116,7 +116,7 @@ if(NOT FFMPEG_FOUND)
|
||||
message(STATUS "FFmpeg search paths: ${FFMPEG_SEARCH_PATHS}")
|
||||
foreach(SEARCH_PATH ${FFMPEG_SEARCH_PATHS})
|
||||
# For static builds, prefer .a files; check common lib directories
|
||||
- set(LIB_EXTENSIONS ".a")
|
||||
+ set(LIB_EXTENSIONS ".so")
|
||||
|
||||
# Platform-specific library paths
|
||||
if(WIN32)
|
||||
diff --git a/cmake/GStreamer.cmake b/cmake/GStreamer.cmake
|
||||
index 220e9f5..576535f 100644
|
||||
--- a/cmake/GStreamer.cmake
|
||||
+++ b/cmake/GStreamer.cmake
|
||||
@@ -316,10 +316,11 @@ else()
|
||||
# Check for Qt6 plugin availability in system
|
||||
message(STATUS "Checking for Qt6 GStreamer plugin in system...")
|
||||
find_file(GSTREAMER_QT6_PLUGIN
|
||||
- NAMES libgstqt6.so
|
||||
+ NAMES libgstqml6.so
|
||||
PATHS
|
||||
/usr/lib/x86_64-linux-gnu/gstreamer-1.0
|
||||
/usr/lib/aarch64-linux-gnu/gstreamer-1.0
|
||||
+ /usr/lib/gstreamer-1.0
|
||||
/usr/local/lib/gstreamer-1.0
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
diff --git a/cmake/Resources.cmake b/cmake/Resources.cmake
|
||||
index 2d28b89..e2009e3 100644
|
||||
--- a/cmake/Resources.cmake
|
||||
+++ b/cmake/Resources.cmake
|
||||
@@ -336,7 +336,7 @@ install(FILES ${CMAKE_SOURCE_DIR}/com.openterface.openterfaceQT.metainfo.xml
|
||||
if(COMMAND qt_generate_deploy_app_script)
|
||||
qt_generate_deploy_app_script(
|
||||
TARGET openterfaceQT
|
||||
- FILENAME_VARIABLE deploy_script
|
||||
+ OUTPUT_SCRIPT deploy_script
|
||||
NO_UNSUPPORTED_PLATFORM_ERROR
|
||||
)
|
||||
install(SCRIPT ${deploy_script})
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
|
||||
pkgname=py3-apsw
|
||||
_pkgname=apsw
|
||||
pkgver=3.49.1.0
|
||||
pkgver=3.50.4.0
|
||||
pkgrel=0
|
||||
pkgdesc="Another Python SQLite Wrapper"
|
||||
url="https://github.com/rogerbinns/apsw"
|
||||
|
|
@ -41,6 +41,6 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
faae9cceb462428345fd2815a970dfc80574848f87bade7cceb09aed17127d020fd16402b3d36afe0fbc6bf707a408feea0ce038486c2a68a2ab1077a9b68d0a py3-apsw-3.49.1.0.zip
|
||||
71db63b0a7f550c9a5d3f112d47c24953472cc6555f0b57198428997d5cf5acf73629f2da8d5d53a2473067ba19d4b655cce467a5e2267e5bd6e8cf0d9883579 py3-apsw-3.50.4.0.zip
|
||||
8f3957bd6fecb5660a7cab367043e4ccdacd87d8963bbe41cc3d525265de28f08aa207099658d785be29c5c90b818c1418f766995cd780d02b8e36252a389758 detect-sqlite-config.patch
|
||||
"
|
||||
|
|
|
|||
39
backports/py3-flask-httpauth/APKBUILD
Normal file
39
backports/py3-flask-httpauth/APKBUILD
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
|
||||
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
|
||||
pkgname=py3-flask-httpauth
|
||||
pkgver=4.8.0
|
||||
pkgrel=3
|
||||
pkgdesc="Basic and Digest HTTP authentication for Flask routes"
|
||||
url="https://pypi.org/project/Flask-HTTPAuth"
|
||||
arch="noarch"
|
||||
license="MIT"
|
||||
depends="py3-flask python3"
|
||||
makedepends="py3-gpep517 py3-setuptools py3-wheel"
|
||||
checkdepends="py3-pytest py3-pytest-asyncio py3-asgiref"
|
||||
subpackages="$pkgname-pyc"
|
||||
source="https://files.pythonhosted.org/packages/source/F/Flask-HTTPAuth/Flask-HTTPAuth-$pkgver.tar.gz"
|
||||
builddir="$srcdir"/Flask-HTTPAuth-$pkgver
|
||||
|
||||
replaces="py-flask-httpauth" # Backwards compatibility
|
||||
provides="py-flask-httpauth=$pkgver-r$pkgrel" # Backwards compatibility
|
||||
|
||||
build() {
|
||||
gpep517 build-wheel \
|
||||
--wheel-dir .dist \
|
||||
--output-fd 3 3>&1 >&2
|
||||
}
|
||||
|
||||
check() {
|
||||
python3 -m venv --clear --without-pip --system-site-packages .testenv
|
||||
.testenv/bin/python3 -m installer .dist/*.whl
|
||||
.testenv/bin/python3 -m pytest
|
||||
}
|
||||
|
||||
package() {
|
||||
python3 -m installer -d "$pkgdir" \
|
||||
.dist/flask_httpauth*.whl
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
15878f45faf6bdde43d7b588539b044d621ba1ba590880e3d0a3bccf4e9bd04b898b3372775e99577b7e7955c4b6d2d7cc80df19ba30415c6b7c1d3183b7e5f4 Flask-HTTPAuth-4.8.0.tar.gz
|
||||
"
|
||||
55
backports/py3-flask-limiter/APKBUILD
Normal file
55
backports/py3-flask-limiter/APKBUILD
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
|
||||
maintainer="lauren n. liberda <lauren@selfisekai.rocks>"
|
||||
pkgname=py3-flask-limiter
|
||||
pkgver=3.10.1
|
||||
pkgrel=0
|
||||
pkgdesc="Rate Limiting extension for Flask"
|
||||
url="https://github.com/alisaifee/flask-limiter"
|
||||
arch="noarch"
|
||||
license="MIT"
|
||||
depends="
|
||||
py3-flask
|
||||
py3-limits
|
||||
py3-ordered-set
|
||||
py3-rich
|
||||
python3
|
||||
"
|
||||
makedepends="py3-setuptools py3-gpep517"
|
||||
checkdepends="
|
||||
py3-flask-restful
|
||||
py3-flask-restx
|
||||
py3-limits-mongodb
|
||||
py3-limits-redis
|
||||
py3-pytest
|
||||
py3-pytest-cov
|
||||
"
|
||||
subpackages="$pkgname-pyc"
|
||||
source="
|
||||
https://github.com/alisaifee/flask-limiter/archive/refs/tags/$pkgver/flask-limiter-$pkgver.tar.gz
|
||||
|
||||
our-std-is-good-enough.patch
|
||||
"
|
||||
builddir="$srcdir/flask-limiter-$pkgver"
|
||||
options="!check" # tests depend on unpackaged modules
|
||||
|
||||
build() {
|
||||
gpep517 build-wheel \
|
||||
--wheel-dir .dist \
|
||||
--output-fd 3 3>&1 >&2
|
||||
}
|
||||
|
||||
check() {
|
||||
python3 -m venv --clear --without-pip --system-site-packages .testenv
|
||||
gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
|
||||
.testenv/bin/python3 -m pytest
|
||||
}
|
||||
|
||||
package() {
|
||||
gpep517 install-wheel --destdir "$pkgdir" \
|
||||
.dist/*.whl
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
a0d3af6f93d4283309d6df46ddb7fed4c358bbc712c2bd9e6897362c6d086c395cb9587c3d9da283ad757b574fd8c09d909f3c4b76d02ae8aade3e61dbea6aa0 flask-limiter-3.10.1.tar.gz
|
||||
1b90e9134076cda249695d5ea741db9d205a2ae452c7d6edfe01eb37a221ce6f64b0e8ddcdbbee9b0e0fb16a28e5eabf14f1c1e41e965c7e3b93ea4f42caf553 our-std-is-good-enough.patch
|
||||
"
|
||||
22
backports/py3-flask-limiter/our-std-is-good-enough.patch
Normal file
22
backports/py3-flask-limiter/our-std-is-good-enough.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
--- ./flask_limiter/typing.py.orig
|
||||
+++ ./flask_limiter/typing.py
|
||||
@@ -11,7 +11,7 @@
|
||||
cast,
|
||||
)
|
||||
|
||||
-from typing_extensions import ParamSpec
|
||||
+from typing import ParamSpec
|
||||
|
||||
R = TypeVar("R")
|
||||
P = ParamSpec("P")
|
||||
--- ./flask_limiter/commands.py.orig
|
||||
+++ ./flask_limiter/commands.py
|
||||
@@ -14,7 +14,7 @@
|
||||
from rich.table import Table
|
||||
from rich.theme import Theme
|
||||
from rich.tree import Tree
|
||||
-from typing_extensions import TypedDict
|
||||
+from typing import TypedDict
|
||||
from werkzeug.exceptions import MethodNotAllowed, NotFound
|
||||
from werkzeug.routing import Rule
|
||||
|
||||
58
backports/py3-limits/APKBUILD
Normal file
58
backports/py3-limits/APKBUILD
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
|
||||
# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
|
||||
pkgname=py3-limits
|
||||
pkgver=3.14.1
|
||||
pkgrel=0
|
||||
pkgdesc="Rate limiting using various strategies and storage backends such as redis & memcached"
|
||||
url="https://github.com/alisaifee/limits"
|
||||
arch="noarch"
|
||||
license="MIT"
|
||||
depends="
|
||||
py3-deprecated
|
||||
python3
|
||||
"
|
||||
makedepends="py3-setuptools py3-gpep517"
|
||||
checkdepends="
|
||||
py3-flaky
|
||||
py3-mongo
|
||||
py3-pytest
|
||||
py3-pytest-asyncio
|
||||
py3-pytest-benchmark
|
||||
py3-pytest-cov
|
||||
py3-pytest-lazy-fixtures
|
||||
py3-pymemcache
|
||||
py3-redis
|
||||
"
|
||||
subpackages="$pkgname-pyc"
|
||||
source="
|
||||
https://github.com/alisaifee/limits/archive/refs/tags/$pkgver/limits-$pkgver.tar.gz
|
||||
|
||||
our-std-is-good-enough.patch
|
||||
tests-drop-etcd3-and-k-argument.patch
|
||||
"
|
||||
builddir="$srcdir/limits-$pkgver"
|
||||
|
||||
build() {
|
||||
gpep517 build-wheel \
|
||||
--wheel-dir .dist \
|
||||
--output-fd 3 3>&1 >&2
|
||||
}
|
||||
|
||||
check() {
|
||||
python3 -m venv --clear --without-pip --system-site-packages .testenv
|
||||
gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
|
||||
.testenv/bin/python3 -m pytest -W ignore::DeprecationWarning \
|
||||
-m 'not benchmark and not etcd and not integration and not memcached' \
|
||||
-k 'not aio and not Storage and not strategy' -v
|
||||
}
|
||||
|
||||
package() {
|
||||
gpep517 install-wheel --destdir "$pkgdir" \
|
||||
.dist/*.whl
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
f30c7ec19c2d1edad9ed77dc590ae35717efa3956a4d97e465793e1923a4af08dc9921d90ee95d3c54ce3364b867ca67a9de62c61d627e07a3f50da20bdabd0f limits-3.14.1.tar.gz
|
||||
271e3b0501f9f144eda8d2e96c93b285714e339b9217385e38cdbce1f4dec88f9c949e9419f8be94885092e7977f7dca29b86b5499e9fead678b42a686c337db our-std-is-good-enough.patch
|
||||
e84f4db49349a6feba0f701b9d4357c5f66d64c4a23f8ce512528b0f44b5bbef55041c02d92aae3a4cc8d5340846f9e909217beb869a5aeb49df166dd29ae9e3 tests-drop-etcd3-and-k-argument.patch
|
||||
"
|
||||
11
backports/py3-limits/our-std-is-good-enough.patch
Normal file
11
backports/py3-limits/our-std-is-good-enough.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- ./limits/typing.py.orig
|
||||
+++ ./limits/typing.py
|
||||
@@ -13,7 +13,7 @@
|
||||
Union,
|
||||
)
|
||||
|
||||
-from typing_extensions import ClassVar, Counter, ParamSpec, Protocol, TypeAlias
|
||||
+from typing import ClassVar, Counter, ParamSpec, Protocol, TypeAlias
|
||||
|
||||
Serializable = Union[int, str, float]
|
||||
|
||||
24
backports/py3-limits/tests-drop-etcd3-and-k-argument.patch
Normal file
24
backports/py3-limits/tests-drop-etcd3-and-k-argument.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
diff --git a/tests/conftest.py.orig b/tests/conftest.py
|
||||
index 2aeb758dda6..a9b2b8b2bd1 100644
|
||||
--- a/tests/conftest.py.orig
|
||||
+++ b/tests/conftest.py
|
||||
@@ -3,7 +3,6 @@ import platform
|
||||
import socket
|
||||
import time
|
||||
|
||||
-import etcd3
|
||||
import pymemcache
|
||||
import pymemcache.client
|
||||
import pymongo
|
||||
diff --git a/pytest.ini.orig b/pytest.ini
|
||||
index 38c40a713d0..8c6659e21c2 100644
|
||||
--- a/pytest.ini.orig
|
||||
+++ b/pytest.ini
|
||||
@@ -17,7 +17,6 @@ addopts =
|
||||
-rfEsxX
|
||||
--cov=limits
|
||||
-m "not benchmark"
|
||||
- -K
|
||||
filterwarnings =
|
||||
error
|
||||
module::ResourceWarning
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
# Maintainer: Martijn Braam <martijn@brixit.nl>
|
||||
pkgname=rkdeveloptool
|
||||
pkgver=1.1.0
|
||||
pkgdesc="opensource client for rockusb devices"
|
||||
pkgrel=1
|
||||
url="https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool"
|
||||
arch="all"
|
||||
license="GPL-2.0-only"
|
||||
source="https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool/-/archive/$pkgver/rkdeveloptool-$pkgver.tar.gz"
|
||||
makedepends="meson libusb-dev eudev-dev scdoc"
|
||||
subpackages="$pkgname-doc"
|
||||
options="!check" # There is no testsuite
|
||||
|
||||
build() {
|
||||
abuild-meson . output
|
||||
meson compile -C output
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" meson install --no-rebuild -C output
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
ff32906924c6bd7027e864d1e417c6e94119a379db2dd6ffdf0c04af666fbb1be787e0a4fad298f87b6ab51696c74ccc51ed9d5a22a59079bbadcc00c0ea4ff1 rkdeveloptool-1.1.0.tar.gz
|
||||
"
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
# Maintainer: Jean-Louis Fuchs <safe.pen2857@rhizoome.ch>
|
||||
pkgname=shntool
|
||||
pkgver=3.0.10
|
||||
pkgrel=5
|
||||
pkgrel=6
|
||||
pkgdesc="A multi-purpose WAVE data processing and reporting utility"
|
||||
url="http://shnutils.freeshell.org/shntool/"
|
||||
arch="all"
|
||||
|
|
@ -13,6 +13,7 @@ source="http://shnutils.freeshell.org/shntool/dist/src/shntool-$pkgver.tar.gz
|
|||
shntool-3.0.10-large-size.patch
|
||||
shntool-3.0.10-large-times.patch
|
||||
24bit.patch
|
||||
no-cdquality-check.patch
|
||||
"
|
||||
|
||||
build() {
|
||||
|
|
@ -24,7 +25,8 @@ build() {
|
|||
--sysconfdir=/etc \
|
||||
--mandir=/usr/share/man \
|
||||
--infodir=/usr/share/info \
|
||||
--localstatedir=/var
|
||||
--localstatedir=/var \
|
||||
CFLAGS="--std=gnu17"
|
||||
make
|
||||
}
|
||||
|
||||
|
|
@ -63,4 +65,5 @@ sha512sums="
|
|||
fc44bca63d79b279db6d275caaacdb73cbebd6b902276a9052f005146fa125f4674e3cf559d46405637a337192f4a38f9bec4836af46e7ae52e4f220352c1ba7 shntool-3.0.10-large-size.patch
|
||||
9780f22d93e20dd01d18067978bdf6cbb0b460bb80f41c4f4752b3322c3d70182b3acf35b789e30fc36ca52af6127e24c00599fb49b916f01448613721a94ebe shntool-3.0.10-large-times.patch
|
||||
3c9cdd7936a6572a3c9dfc7575f5ff9a0981dd557add8e1113454487091c7b161040d25d3266937449295a1bb5317ee3515a84c3d7168360bf84643ed828e202 24bit.patch
|
||||
e5b5fe4894eea92e026eec666900bde2b10ea33d4b0ffbf74a231e443c476e11b50eebc21bc2ff2b844ca48af0a41a7b6af77fdc524d0b1bd33d03f133d99992 no-cdquality-check.patch
|
||||
"
|
||||
|
|
|
|||
21
backports/shntool/no-cdquality-check.patch
Normal file
21
backports/shntool/no-cdquality-check.patch
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
Last-Update: 2014-11-15
|
||||
Forwarded: yes
|
||||
Author: Dmitry Smirnov <onlyjob@member.fsf.org>
|
||||
Bug-Debian: http://bugs.debian.org/769585
|
||||
Description: disable CD-quality check, needed to process 24bit 96kHz files.
|
||||
|
||||
--- a/src/core_mode.c
|
||||
+++ b/src/core_mode.c
|
||||
@@ -344,10 +344,10 @@
|
||||
|
||||
*colon = 0;
|
||||
*dot = 0;
|
||||
|
||||
- if (PROB_NOT_CD(info))
|
||||
- st_error("m:ss.ff format can only be used with CD-quality files");
|
||||
+// if (PROB_NOT_CD(info))
|
||||
+// st_error("m:ss.ff format can only be used with CD-quality files");
|
||||
|
||||
min = atoi((const char *)buf);
|
||||
sec = atoi((const char *)(colon+1));
|
||||
frames = atoi((const char *)(dot+1));
|
||||
|
|
@ -2,14 +2,14 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=signal-desktop
|
||||
pkgver=7.71.0
|
||||
pkgver=7.76.0
|
||||
pkgrel=1
|
||||
pkgdesc="A messaging app for simple private communication with friends"
|
||||
url="https://github.com/signalapp/Signal-Desktop/"
|
||||
# same as electron
|
||||
arch="aarch64 x86_64"
|
||||
license="AGPL-3.0-only"
|
||||
_llvmver=20
|
||||
_llvmver=21
|
||||
depends="
|
||||
electron
|
||||
font-barlow
|
||||
|
|
@ -29,7 +29,6 @@ makedepends="
|
|||
cmake
|
||||
crc32c-dev
|
||||
dav1d-dev
|
||||
double-conversion-dev
|
||||
electron-dev
|
||||
electron-tasje
|
||||
ffmpeg-dev
|
||||
|
|
@ -66,9 +65,9 @@ makedepends="
|
|||
options="net !check"
|
||||
|
||||
# use _check_depends to validate this
|
||||
_libsignalver=0.78.3
|
||||
_ringrtcver=2.57.0
|
||||
_webrtcver=7204c
|
||||
_libsignalver=0.83.0
|
||||
_ringrtcver=2.59.0
|
||||
_webrtcver=7339c
|
||||
_sqlcipherver=2.4.4
|
||||
|
||||
source="
|
||||
|
|
@ -85,15 +84,14 @@ source="
|
|||
signal-show-window-please.patch
|
||||
signal-rollback-locale-changes.patch
|
||||
signal-do-not-package-sqlcipher-deps.patch
|
||||
signal-do-not-package-desktop-entry.patch
|
||||
ringrtc-webrtc-renamed.patch
|
||||
ringrtc-use-sh.patch
|
||||
webrtc-shared-libs.patch
|
||||
webrtc-compiler.patch
|
||||
webrtc-gcc13.patch
|
||||
webrtc-rollback-3rdparty-build-gn.patch
|
||||
webrtc-add-cstdint-include-patch-event.patch
|
||||
webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch
|
||||
webrtc-fix-declaration-that-change-meaning-inside-class.patch
|
||||
webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch
|
||||
|
||||
signal-desktop.sh
|
||||
"
|
||||
|
|
@ -218,7 +216,6 @@ prepare() {
|
|||
brotli
|
||||
crc32c
|
||||
dav1d
|
||||
double-conversion
|
||||
ffmpeg
|
||||
flatbuffers
|
||||
fontconfig
|
||||
|
|
@ -308,7 +305,7 @@ prepare() {
|
|||
cd "$builddir"/libsignal/node
|
||||
|
||||
# fix target
|
||||
sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' binding.gyp
|
||||
sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' build_node_bridge.py
|
||||
|
||||
msg "Installing libsignal js dependencies"
|
||||
yarn --ignore-scripts --frozen-lockfile
|
||||
|
|
@ -388,8 +385,7 @@ build() {
|
|||
cd "$builddir"/libsignal/node
|
||||
|
||||
msg "Building libsignal"
|
||||
node-gyp configure --nodedir=/usr/include/electron/node_headers --build-from-source
|
||||
node-gyp build --nodedir=/usr/include/electron/node_headers --build-from-source
|
||||
npm_config_nodedir=/usr/include/electron/node_headers python3 build_node_bridge.py
|
||||
|
||||
mkdir -p prebuilds/linux-$chromium_arch
|
||||
mv build/Release/libsignal_client_linux_$chromium_arch.node prebuilds/linux-$chromium_arch/node.napi.node
|
||||
|
|
@ -485,26 +481,25 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
da16a4759fc8ab55d8c480c4fe79bdee9f8a165ae2c4a9f8df250e8e0ef6aba234c07adeca8b202490a422e41c45b39c1dda0cb22a458583d0dfd488d5ea8c91 Signal-Desktop-7.71.0.tar.gz
|
||||
fc2170bb029628efed5dbae795471026387e501bc2ca7075a5e210df6d81103608361c8163759c7d73f9e82b61e2a5e46d8bf32f40a0c5a19e5fc556a2ff1413 libsignal-0.78.3.tar.gz
|
||||
205da87c64a000cc439b2c7bfddb923eac5ab70a0611dab9858eb2e0c0a71227722e6d13eaba2a458807cf27ff93641b8f549580f5e1fc3781ab3c7fb29d9edb ringrtc-2.57.0.tar.gz
|
||||
c847d3679df77ca137b4c3345b3b941a08639677efcd5eeea6613572fa90b8ad1b8d1d53e077902d4f47c05c480c408787024906d6917dcbf4a840838bf6d79d Signal-Desktop-7.76.0.tar.gz
|
||||
43271a64f65a4cf0e7855fb84476ff811ef248665cb74fdaa9ce12b02d2039abdf8fca28554e7e884eabaa9bdd77e8f5383e6354e589436671675ddab7194d81 libsignal-0.83.0.tar.gz
|
||||
ba4a1850bd096470a6370a0bf730550f64df4a2349cacca3b4864ef1a3a04713dd200307b9ad7ba47425322573148d6bd2ce85c11c2a49232d41e739ef5e788d ringrtc-2.59.0.tar.gz
|
||||
79dd21548329b4ee409fa73b013c18ed4e85038aeef7a4cfe196fd6b5113279da8ad287a259fa6a6b546b52a5a6dd6ae2cb1050007043d25f76d7917dbbbc02d node-sqlcipher-2.4.4.tar.gz
|
||||
5dd61ebe525c592020a7246337dd837a8cd5de45b201afdc5b75cf3b25c5afcf6bbbae2bb677677807157697fdfb0be51681c0a8e68839e4f1eee30d3dbcad48 webrtc-7204c.tar.zst
|
||||
06ffb4cdb82f818cc419d42ff2de03977d7e94c5f3eb8ac8a401bcb52ec38fa988c5d757f4bd79e5d9968fa83754fc9046180c950961c90a59eeb6130bf5552f webrtc-7339c.tar.zst
|
||||
8d2d2d82c8546c2dd1fef161b61df79918f8c22235a56a46adb375a0beb4acef12c5fe53e67242a4be97f77adc522ff79b47949c352956c742a70d50f4179f7f libsignal-auditable.patch
|
||||
7ee747c8aaa9d6e9149fe0a031e3d4cc9e9c08f22c42076bd05e2acb86952f8170032613d13a53716010edfa3f26ad97b530e82460318eb46a42e28cf5faeb9d signal-use-system-sqlcipher.patch
|
||||
ef3622da416a5bd2d4bea4f2a4fbb21a985f660d4acc17bbe66ce51ac1180ab92c0c843a5414ff56ea1deda87c2b0f611a299ca8ebe4d6a24df53626b36ceea8 signal-disable-updates.patch
|
||||
853de84d636f730694f17bcec63463fa7bfbdd0a7f7a64618a8fc6bc523ce1a9854b4c651753735af735c18101295d3efbe54f83ae0bccbed83c8c1fee3e7049 signal-update-links.patch
|
||||
882d6889b23a3ebc6449c8b6acec8c3853674a7e94f066d65b57bab674ba8c11d582ba2c760825cb67b9202716e6d8b7123001d1e9f9229e49a0b77e9d978265 signal-show-window-please.patch
|
||||
aca92e4de6cd005d660d7e8b99607de96ca2d7dc220e3465247d517e915e4d41a4b0eb519e85c5eca1c81cd8bac9821acd03ff57f1603918987829c6ea7757b4 signal-rollback-locale-changes.patch
|
||||
3dd3bf2f6925e2672a20ef56bbac519099d54e912e5a434a0649ea152db5039dbe1bbade3430b485ae9a6085d747dd88602d4efc5198d5a4dbf1b8359de11f94 signal-rollback-locale-changes.patch
|
||||
961568777b86f8fbcc73360252123686c9d1e16b2650f23d8afbc6d7580d53024f81b62e9e9cbdcd0031b5cf99854bd47c6dd4580197f2b27b8b4cbb51c6c9c9 signal-do-not-package-sqlcipher-deps.patch
|
||||
d8cafd4ae1f7438417f5c414d68a175c3d24b66a14b9f3b8ca9c9acae2b2eaa68985ee81c1df7d754a206ff1c9b02929803440fb0734db38b6ac9ab3e34205b0 signal-do-not-package-desktop-entry.patch
|
||||
02a648bb8541a39c75fec2db39f024a27976afca41908eefa2fe1f2e30b05b5d59f980ccc930021c0b0c09ba8b0cbcae071e9f0dd530543c667adbc4272af552 ringrtc-webrtc-renamed.patch
|
||||
19d2e07bdc0b160ec542fcb0a3d94ae1e37dcb1b3455e57b278cf074f8aac625341b47f4f06a1f7eb5a197cb0f11754de8785ffd10876852972cbfafdc2615db ringrtc-use-sh.patch
|
||||
98a7e4df27c3ed56c5968ebc3ae8e08bfb54362d0c910f9af1d414079a6d5fe0f18aa570ae3c38042f4691af6a130cb3ff689625e26a3987720dd319a5f587b1 webrtc-shared-libs.patch
|
||||
897174fa3b1eaa74a3b2d7d861863a9f60550ddb0d7be700cd590600efdc3bd962f52c21e371276eaf8d5657c98fe8ade9853b0197b61a68d5dce6fa03b5899b webrtc-compiler.patch
|
||||
3f1095861a79862ab5a55c86d7e353d272974617afba39e4d4441024bede8d7b9b8e122da90d56a9c3c0965171803d6b9e29e91d78167a08c6bcc86b3eedab18 webrtc-gcc13.patch
|
||||
f8bd574a0de077a643ced26e8a0e3f162e014bbf91c957bbefd113883a70e2b63e483bf400b7e2da8d09edfe76d4f6a257f194a14124f344f1625c5632d12acb webrtc-rollback-3rdparty-build-gn.patch
|
||||
2a83171eae579a756edbf95c3ded80cbe0cd0fdb4f19b4c73612837f7ea6f573125dde013a17c8e7ce08f101568bb73bfb86a945dc2d10dd91ad45632c69a132 webrtc-add-cstdint-include-patch-event.patch
|
||||
1520ca0993cd9df44401de001d1f49da924b8c9bd818c8f7fb47863af710cc2796306e786ad8522c9729dec6a1191d1f2d9e0e2ba2b678b9b8ea534b7bddc762 webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch
|
||||
a9374040dcbc9203c8a3b4ad1cf97d58805cd4755f4f585a988b113697ea97d5900ad68f6a30aa0621f34ab54ae98984a8ce228a2d08186ee1bf3384abf3f364 webrtc-shared-libs.patch
|
||||
8ba740f0552872ddf383545a6bb99bf7bcdd2610cee51c6e69dc667893006facd5d72f62274e25c1a58e1a58c8e8b0b5303b648e4c74a71925639cc9691c72c4 webrtc-compiler.patch
|
||||
d44f62e4ccf2d9094d6ed217b24fa2cde276c7f64f4d6fd26e84dfc021ea667abcb21f9e4666cfd0d88d6ee0a6b1a20b6cc68c8720462711e3b5451e263f6c4a webrtc-use-only-payloadtypesuggester-for-pt-assignement.patch
|
||||
ace87a2be03c6965012a87a10918c5923b10d5e74a7169c1e1384c15b34a367d0c47e806764c368cc30dad01a3dce54b50587abea9831130178db3806619abc8 webrtc-fix-declaration-that-change-meaning-inside-class.patch
|
||||
87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 signal-desktop.sh
|
||||
d17ecd89e867b24a21144d267e1bf7d09e3898018a0f9fcd87084b9de8091bc56f904a1cabdc487a8e46ab509c11ddd363c574d75d85a79e3c4d9424a13b2093 webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch
|
||||
8e1de53ec1608fa05972af605213e8423b8f88cfd8d6a1989bdcaf77ed1420871c39efa15c56ffeccb6ff86677acc5bc436020f3554bee4f94930c7d9f4e16b6 signal-desktop.sh
|
||||
"
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
# app chooses config (including used endpoints) based on this
|
||||
export NODE_ENV=production
|
||||
|
||||
exec electron /usr/lib/signal-desktop/app.asar
|
||||
exec electron /usr/lib/signal-desktop/app.asar "$@"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/Signal-Desktop/package.json.orig b/Signal-Desktop/package.json
|
||||
index 832035e..e6ac14c 100644
|
||||
--- a/Signal-Desktop/package.json.orig
|
||||
+++ b/Signal-Desktop/package.json
|
||||
@@ -519,11 +519,6 @@
|
||||
},
|
||||
"linux": {
|
||||
"category": "Network;InstantMessaging;Chat",
|
||||
- "desktop": {
|
||||
- "entry": {
|
||||
- "StartupWMClass": "signal"
|
||||
- }
|
||||
- },
|
||||
"target": [
|
||||
"deb"
|
||||
],
|
||||
|
|
@ -42,7 +42,7 @@ index a63eef4079d..2a959da4d0d 100644
|
|||
-import { app } from 'electron';
|
||||
+import { join } from 'path';
|
||||
+import { readFileSync } from 'fs';
|
||||
import { merge } from 'lodash';
|
||||
import lodash from 'lodash';
|
||||
import * as LocaleMatcher from '@formatjs/intl-localematcher';
|
||||
import { z } from 'zod';
|
||||
@@ -16,9 +15,6 @@ import type { LocalizerType } from '../ts/types/Util';
|
||||
|
|
@ -129,7 +129,7 @@ index 7187d287acc..9a17d638f44 100644
|
|||
import { readdir, mkdir, readFile, writeFile } from 'node:fs/promises';
|
||||
import { join, dirname } from 'node:path';
|
||||
-import pMap from 'p-map';
|
||||
-import { isLocaleMessageType } from '../util/setupI18nMain';
|
||||
-import { isLocaleMessageType } from '../util/setupI18nMain.js';
|
||||
-
|
||||
-async function compact({
|
||||
- sourceDir,
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/webrtc/rtc_base/trace_event.h b/webrtc/rtc_base/trace_event.h
|
||||
index 3329abd..9ec7088 100644
|
||||
--- a/webrtc/rtc_base/trace_event.h
|
||||
+++ b/webrtc/rtc_base/trace_event.h
|
||||
@@ -11,6 +11,7 @@
|
||||
#ifndef RTC_BASE_TRACE_EVENT_H_
|
||||
#define RTC_BASE_TRACE_EVENT_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#if defined(RTC_DISABLE_TRACE_EVENTS)
|
||||
#define RTC_TRACE_EVENTS_ENABLED 0
|
||||
#else
|
||||
|
|
@ -29,27 +29,27 @@ index 88109264ea9..192a3f3119e 100644
|
|||
}
|
||||
|
||||
if (!optimize_for_size) {
|
||||
@@ -1241,8 +1241,8 @@ config("compiler_cpu_abi") {
|
||||
}
|
||||
@@ -1303,8 +1303,8 @@ config("compiler_cpu_abi") {
|
||||
]
|
||||
} else if (current_cpu == "arm") {
|
||||
if (is_clang && !is_android && !is_nacl && !is_chromeos_device) {
|
||||
if (is_clang && !is_android && !is_chromeos_device) {
|
||||
- cflags += [ "--target=arm-linux-gnueabihf" ]
|
||||
- ldflags += [ "--target=arm-linux-gnueabihf" ]
|
||||
+ cflags += [ "--target=arm-alpine-linux-gnueabihf" ]
|
||||
+ ldflags += [ "--target=arm-alpine-linux-gnueabihf" ]
|
||||
}
|
||||
if (!is_nacl) {
|
||||
cflags += [
|
||||
@@ -1256,8 +1256,8 @@ config("compiler_cpu_abi") {
|
||||
cflags += [
|
||||
"-march=$arm_arch",
|
||||
@@ -1315,8 +1315,8 @@ config("compiler_cpu_abi") {
|
||||
}
|
||||
} else if (current_cpu == "arm64") {
|
||||
if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
|
||||
!is_chromeos_device) {
|
||||
if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) {
|
||||
- cflags += [ "--target=aarch64-linux-gnu" ]
|
||||
- ldflags += [ "--target=aarch64-linux-gnu" ]
|
||||
+ cflags += [ "--target=aarch64-alpine-linux-gnu" ]
|
||||
+ ldflags += [ "--target=aarch64-alpine-linux-gnu" ]
|
||||
}
|
||||
} else if (current_cpu == "mipsel" && !is_nacl) {
|
||||
} else if (current_cpu == "mipsel") {
|
||||
ldflags += [ "-Wl,--hash-style=sysv" ]
|
||||
@@ -1267,8 +1267,8 @@ config("compiler_cpu_abi") {
|
||||
cflags += [ "--target=mipsel-linux-android" ]
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
--- ./webrtc/rtc_base/system/file_wrapper.h.orig
|
||||
+++ ./webrtc/rtc_base/system/file_wrapper.h
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
+#include <stdint.h>
|
||||
|
||||
#include <string>
|
||||
|
||||
--- ./webrtc/modules/audio_coding/neteq/reorder_optimizer.cc.orig
|
||||
+++ ./webrtc/modules/audio_coding/neteq/reorder_optimizer.cc
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "modules/audio_coding/neteq/reorder_optimizer.h"
|
||||
|
||||
#include <algorithm>
|
||||
+#include <cstdint>
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
|
||||
--- ./webrtc/rtc_base/ssl_stream_adapter.h.orig
|
||||
+++ ./webrtc/rtc_base/ssl_stream_adapter.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "rtc_base/ssl_certificate.h"
|
||||
#include "rtc_base/ssl_identity.h"
|
||||
#include "rtc_base/stream.h"
|
||||
+#include <optional>
|
||||
|
||||
namespace rtc {
|
||||
|
||||
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
Patch-Source: https://webrtc-review.googlesource.com/c/src/+/380500
|
||||
---
|
||||
--- a/webrtc/modules/video_capture/linux/pipewire_session.cc
|
||||
+++ b/webrtc/modules/video_capture/linux/pipewire_session.cc
|
||||
@@ -87,7 +87,7 @@
|
||||
.param = OnNodeParam,
|
||||
};
|
||||
|
||||
- pw_node_add_listener(proxy_, &node_listener_, &node_events, this);
|
||||
+ pw_node_add_listener(reinterpret_cast<pw_node*>(proxy_), &node_listener_, &node_events, this);
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -119,7 +119,7 @@
|
||||
uint32_t id = info->params[i].id;
|
||||
if (id == SPA_PARAM_EnumFormat &&
|
||||
info->params[i].flags & SPA_PARAM_INFO_READ) {
|
||||
- pw_node_enum_params(that->proxy_, 0, id, 0, UINT32_MAX, nullptr);
|
||||
+ pw_node_enum_params(reinterpret_cast<pw_node*>(that->proxy_), 0, id, 0, UINT32_MAX, nullptr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
diff --git a/webrtc/third_party/BUILD.gn b/webrtc/third_party/BUILD.gn
|
||||
index 256fd092e2e..4ce797ebad7 100644
|
||||
--- a/webrtc/third_party/BUILD.gn
|
||||
+++ b/webrtc/third_party/BUILD.gn
|
||||
@@ -55,12 +55,10 @@ group("jpeg_includes") {
|
||||
component("freetype_harfbuzz") {
|
||||
public_configs = []
|
||||
public_deps = []
|
||||
- if (enable_freetype) {
|
||||
- if (use_system_freetype) {
|
||||
- public_configs += [ "//build/linux:freetype_from_pkgconfig" ]
|
||||
- } else {
|
||||
- public_deps += [ "//third_party/freetype:freetype_source" ]
|
||||
- }
|
||||
+ if (use_system_freetype) {
|
||||
+ public_configs += [ "//build/linux:freetype_from_pkgconfig" ]
|
||||
+ } else {
|
||||
+ public_deps += [ "//third_party/freetype:freetype_source" ]
|
||||
}
|
||||
if (use_system_harfbuzz) {
|
||||
public_configs += [ "//third_party/harfbuzz-ng:harfbuzz_from_pkgconfig" ]
|
||||
@@ -71,8 +69,5 @@ component("freetype_harfbuzz") {
|
||||
|
||||
buildflag_header("freetype_buildflags") {
|
||||
header = "freetype_buildflags.h"
|
||||
- flags = [
|
||||
- "USE_SYSTEM_FREETYPE=$use_system_freetype",
|
||||
- "ENABLE_FREETYPE=$enable_freetype",
|
||||
- ]
|
||||
+ flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
|
||||
}
|
||||
|
|
@ -1,136 +0,0 @@
|
|||
diff --git a/webrtc/ringrtc/rffi/src/sdp_observer.cc b/webrtc/ringrtc/rffi/src/sdp_observer.cc
|
||||
index d60f3d5e7ba..d561dedd1d0 100644
|
||||
--- a/webrtc/ringrtc/rffi/src/sdp_observer.cc
|
||||
+++ b/webrtc/ringrtc/rffi/src/sdp_observer.cc
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "rffi/api/sdp_observer_intf.h"
|
||||
#include "rffi/src/ptr.h"
|
||||
#include "rffi/src/sdp_observer.h"
|
||||
-#include "third_party/re2/src/re2/re2.h"
|
||||
+#include <regex>
|
||||
|
||||
namespace webrtc {
|
||||
namespace rffi {
|
||||
@@ -29,8 +29,8 @@ void CreateSessionDescriptionObserverRffi::OnSuccess(SessionDescriptionInterface
|
||||
// TODO tweak the response a little
|
||||
std::string sdp;
|
||||
if (session_description->ToString(&sdp)) {
|
||||
- static LazyRE2 ssrc_re = {".+urn:ietf:params:rtp-hdrext:ssrc-audio-level.*\r?\n"};
|
||||
- RE2::Replace(&sdp, *ssrc_re, "");
|
||||
+ sdp = std::regex_replace(sdp, std::regex("(a=fmtp:111 ((?!cbr=).)*)\r?\n"), "$1;cbr=1\r\n");
|
||||
+ sdp = std::regex_replace(sdp, std::regex(".+urn:ietf:params:rtp-hdrext:ssrc-audio-level.*\r?\n"), "");
|
||||
|
||||
std::unique_ptr<SessionDescriptionInterface> session_description2 = CreateSessionDescription(session_description->GetType(), sdp);
|
||||
delete session_description;
|
||||
diff --git a/webrtc/ringrtc/rffi/BUILD.gn b/webrtc/ringrtc/rffi/BUILD.gn
|
||||
index 4564e734e63..341535b0fc7 100644
|
||||
--- a/webrtc/ringrtc/rffi/BUILD.gn
|
||||
+++ b/webrtc/ringrtc/rffi/BUILD.gn
|
||||
@@ -58,7 +58,6 @@ if (is_android) {
|
||||
"${android_sdk}:libjingle_peerconnection_jni",
|
||||
"${android_sdk}:libjingle_peerconnection_metrics_default_jni",
|
||||
"//pc:libjingle_peerconnection",
|
||||
- "//third_party/re2",
|
||||
]
|
||||
output_extension = "so"
|
||||
}
|
||||
@@ -78,7 +77,6 @@ if (is_ios) {
|
||||
|
||||
deps = [
|
||||
"//third_party/libyuv",
|
||||
- "//third_party/re2",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -94,7 +92,6 @@ if (is_linux || is_mac || is_win) {
|
||||
deps = [
|
||||
"//sdk:media_constraints",
|
||||
"//media:rtc_simulcast_encoder_adapter",
|
||||
- "//third_party/re2",
|
||||
]
|
||||
}
|
||||
}
|
||||
diff --git a/webrtc/ringrtc/rffi/api/peer_connection_intf.h b/webrtc/ringrtc/rffi/api/peer_connection_intf.h
|
||||
index 66958254fed..4cd223beb93 100644
|
||||
--- a/webrtc/ringrtc/rffi/api/peer_connection_intf.h
|
||||
+++ b/webrtc/ringrtc/rffi/api/peer_connection_intf.h
|
||||
@@ -105,6 +105,7 @@ RUSTEXPORT webrtc::SessionDescriptionInterface*
|
||||
Rust_sessionDescriptionFromV4(bool offer,
|
||||
const RffiConnectionParametersV4* v4_borrowed,
|
||||
bool enable_tcc_audio,
|
||||
+ bool enable_red_audio,
|
||||
bool enable_vp9);
|
||||
|
||||
RUSTEXPORT void
|
||||
diff --git a/webrtc/ringrtc/rffi/src/peer_connection.cc b/webrtc/ringrtc/rffi/src/peer_connection.cc
|
||||
index 9db5ed8219d..0714b3589e3 100644
|
||||
--- a/webrtc/ringrtc/rffi/src/peer_connection.cc
|
||||
+++ b/webrtc/ringrtc/rffi/src/peer_connection.cc
|
||||
@@ -42,6 +42,7 @@ int VIDEO_LAYERS_ALLOCATION_EXT_ID = 14;
|
||||
// 101 used by connection.rs
|
||||
int DATA_PT = 101;
|
||||
int OPUS_PT = 102;
|
||||
+int OPUS_RED_PT = 105;
|
||||
int VP8_PT = 108;
|
||||
int VP8_RTX_PT = 118;
|
||||
int VP9_PT = 109;
|
||||
@@ -317,12 +318,14 @@ RUSTEXPORT webrtc::SessionDescriptionInterface*
|
||||
Rust_sessionDescriptionFromV4(bool offer,
|
||||
const RffiConnectionParametersV4* v4_borrowed,
|
||||
bool enable_tcc_audio,
|
||||
+ bool enable_red_audio,
|
||||
bool enable_vp9) {
|
||||
// Major changes from the default WebRTC behavior:
|
||||
// 1. We remove all codecs except Opus, VP8, and VP9
|
||||
// 2. We remove all header extensions except for transport-cc, video orientation,
|
||||
// and abs send time.
|
||||
// 3. Opus CBR and DTX is enabled.
|
||||
+ // 4. RED is enabled for audio.
|
||||
|
||||
// For some reason, WebRTC insists that the video SSRCs for one side don't
|
||||
// overlap with SSRCs from the other side. To avoid potential problems, we'll give the
|
||||
@@ -361,6 +364,15 @@ Rust_sessionDescriptionFromV4(bool offer,
|
||||
auto video = std::make_unique<cricket::VideoContentDescription>();
|
||||
set_rtp_params(video.get());
|
||||
|
||||
+ // Turn on the RED "meta codec" for Opus redundancy.
|
||||
+ auto opus_red = cricket::CreateAudioCodec(OPUS_RED_PT, cricket::kRedCodecName, 48000, 2);
|
||||
+ opus_red.SetParam("", std::to_string(OPUS_PT) + "/" + std::to_string(OPUS_PT));
|
||||
+
|
||||
+ if (enable_red_audio) {
|
||||
+ // Add RED before Opus to use it by default when sending.
|
||||
+ audio->AddCodec(opus_red);
|
||||
+ }
|
||||
+
|
||||
auto opus = cricket::CreateAudioCodec(OPUS_PT, cricket::kOpusCodecName, 48000, 2);
|
||||
// These are the current defaults for WebRTC
|
||||
// We set them explicitly to avoid having the defaults change on us.
|
||||
@@ -378,6 +390,11 @@ Rust_sessionDescriptionFromV4(bool offer,
|
||||
opus.AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty));
|
||||
audio->AddCodec(opus);
|
||||
|
||||
+ if (!enable_red_audio) {
|
||||
+ // Add RED after Opus so that RED packets can at least be decoded properly if received.
|
||||
+ audio->AddCodec(opus_red);
|
||||
+ }
|
||||
+
|
||||
auto add_video_feedback_params = [] (cricket::Codec* video_codec) {
|
||||
video_codec->AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty));
|
||||
video_codec->AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamCcm, cricket::kRtcpFbCcmParamFir));
|
||||
@@ -589,9 +606,16 @@ CreateSessionDescriptionForGroupCall(bool local,
|
||||
opus.SetParam("cbr", "1");
|
||||
opus.AddFeedbackParam(cricket::FeedbackParam(cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty));
|
||||
|
||||
+ // Turn on the RED "meta codec" for Opus redundancy.
|
||||
+ auto opus_red = cricket::CreateAudioCodec(OPUS_RED_PT, cricket::kRedCodecName, 48000, 2);
|
||||
+ opus_red.SetParam("", std::to_string(OPUS_PT) + "/" + std::to_string(OPUS_PT));
|
||||
+
|
||||
+ // Add RED after Opus so that RED packets can at least be decoded properly if received.
|
||||
local_audio->AddCodec(opus);
|
||||
+ local_audio->AddCodec(opus_red);
|
||||
for (auto& remote_audio : remote_audios) {
|
||||
remote_audio->AddCodec(opus);
|
||||
+ remote_audio->AddCodec(opus_red);
|
||||
}
|
||||
|
||||
auto add_video_feedback_params = [] (cricket::Codec* video_codec) {
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
diff --git a/webrtc/rtc_base/platform_thread_types.cc.orig b/webrtc/rtc_base/platform_thread_types.cc
|
||||
index 20bf4af..482b15f 100644
|
||||
--- a/webrtc/rtc_base/platform_thread_types.cc.orig
|
||||
+++ b/webrtc/rtc_base/platform_thread_types.cc
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
// IWYU pragma: begin_keep
|
||||
#if defined(WEBRTC_LINUX)
|
||||
-#include <linux/prctl.h>
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
|
|
@ -18,10 +18,10 @@
|
|||
# Only the root target and the test should depend on this.
|
||||
visibility = [
|
||||
"//:default",
|
||||
@@ -472,7 +472,6 @@
|
||||
]
|
||||
@@ -530,7 +530,6 @@ if (!build_with_chromium) {
|
||||
|
||||
sources = []
|
||||
|
||||
- complete_static_lib = true
|
||||
suppressed_configs += [ "//build/config/compiler:thin_archive" ]
|
||||
defines = []
|
||||
|
|
@ -42,12 +42,12 @@ diff --git a/webrtc/third_party/googletest/BUILD.gn.orig b/webrtc/third_party/go
|
|||
index b7dc621..367f929 100644
|
||||
--- a/webrtc/third_party/googletest/BUILD.gn.orig
|
||||
+++ b/webrtc/third_party/googletest/BUILD.gn
|
||||
@@ -133,7 +133,6 @@ source_set("gtest") {
|
||||
@@ -129,7 +128,6 @@ source_set("gtest") {
|
||||
|
||||
# googletest only needs `absl`, but this makes gn check happier.
|
||||
deps = [ "//third_party/abseil-cpp:absl_full" ]
|
||||
- public_deps = [ "//third_party/re2" ]
|
||||
if (is_nacl || !build_with_chromium) {
|
||||
if (!build_with_chromium) {
|
||||
defines += [ "GTEST_DISABLE_PRINT_STACK_TRACE" ]
|
||||
sources -= [
|
||||
diff --git a/webrtc/third_party/fuzztest/BUILD.gn.orig b/webrtc/third_party/fuzztest/BUILD.gn
|
||||
|
|
@ -62,3 +62,17 @@ index 57ee790..ba1d297 100644
|
|||
|
||||
# For protobuf mutators
|
||||
"$protobuf_target_prefix:protobuf_lite",
|
||||
diff --git a/webrtc/third_party/BUILD.gn b/webrtc/third_party/BUILD.gn
|
||||
index 256fd092e2e..4ce797ebad7 100644
|
||||
--- a/webrtc/third_party/BUILD.gn
|
||||
+++ b/webrtc/third_party/BUILD.gn
|
||||
@@ -71,8 +69,5 @@ component("freetype_harfbuzz") {
|
||||
|
||||
buildflag_header("freetype_buildflags") {
|
||||
header = "freetype_buildflags.h"
|
||||
- flags = [
|
||||
- "USE_SYSTEM_FREETYPE=$use_system_freetype",
|
||||
- "ENABLE_FREETYPE=$enable_freetype",
|
||||
- ]
|
||||
+ flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -407,16 +407,14 @@ diff --git a/webrtc/pc/used_ids.h b/webrtc/pc/used_ids.h
|
|||
index fe80531..f9d825c 100644
|
||||
--- a/webrtc/pc/used_ids.h
|
||||
+++ b/webrtc/pc/used_ids.h
|
||||
@@ -14,9 +14,7 @@
|
||||
@@ -14,7 +14,6 @@
|
||||
#include <vector>
|
||||
|
||||
#include "api/rtp_parameters.h"
|
||||
-#include "media/base/codec.h"
|
||||
#include "rtc_base/checks.h"
|
||||
-#include "rtc_base/logging.h"
|
||||
|
||||
namespace webrtc {
|
||||
template <typename IdStruct>
|
||||
@@ -88,41 +86,6 @@
|
||||
std::set<int> id_set_;
|
||||
};
|
||||
|
|
@ -459,11 +457,3 @@ index fe80531..f9d825c 100644
|
|||
// Helper class used for finding duplicate RTP Header extension ids among
|
||||
// audio and video extensions.
|
||||
class UsedRtpHeaderExtensionIds : public UsedIds<RtpExtension> {
|
||||
@@ -190,7 +153,6 @@
|
||||
#ifdef WEBRTC_ALLOW_DEPRECATED_NAMESPACES
|
||||
namespace cricket {
|
||||
using ::webrtc::UsedIds;
|
||||
-using ::webrtc::UsedPayloadTypes;
|
||||
using ::webrtc::UsedRtpHeaderExtensionIds;
|
||||
} // namespace cricket
|
||||
#endif // WEBRTC_ALLOW_DEPRECATED_NAMESPACES
|
||||
|
|
|
|||
|
|
@ -3,10 +3,11 @@
|
|||
# Maintainer: Fabricio Silva <hi@fabricio.dev>
|
||||
pkgname=thelounge
|
||||
pkgver=4.4.3
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
pkgdesc="Modern, responsive, cross-platform, self-hosted web IRC client"
|
||||
url="https://thelounge.chat"
|
||||
arch="all !riscv64" # riscv64 gets SIGILL
|
||||
# build broken against node 24
|
||||
#arch="all !riscv64" # riscv64 gets SIGILL
|
||||
license="MIT"
|
||||
depends="nodejs"
|
||||
makedepends="yarn py3-setuptools"
|
||||
|
|
@ -17,7 +18,7 @@ source="
|
|||
thelounge.initd
|
||||
thelounge.confd
|
||||
"
|
||||
options="!check net" # net for npm
|
||||
options="net" # net for npm
|
||||
|
||||
case $CARCH in
|
||||
# loongarch64: 2 tests failed on the builder
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/server/server.ts b/server/server.ts.orig
|
||||
index 7a1514e..5ecdea9 100644
|
||||
--- a/server/server.ts
|
||||
+++ b/server/server.ts.orig
|
||||
@@ -377,7 +377,7 @@ function addSecurityHeaders(req: Request, res: Response, next: NextFunction) {
|
||||
"default-src 'none'", // default to nothing
|
||||
"base-uri 'none'", // disallow <base>, has no fallback to default-src
|
||||
"form-action 'self'", // 'self' to fix saving passwords in Firefox, even though login is handled in javascript
|
||||
- "connect-src 'self' ws: wss:", // allow self for polling; websockets
|
||||
+ "connect-src 'self' ws: wss: https:", // allow self for polling; websockets
|
||||
"style-src 'self' https: 'unsafe-inline'", // allow inline due to use in irc hex colors
|
||||
"script-src 'self'", // javascript
|
||||
"worker-src 'self'", // service worker
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
diff --git a/test/src/helperTest.ts b/test/src/helperTest.ts
|
||||
index 2a8ddc8..22f0532 100644
|
||||
--- a/test/src/helperTest.ts
|
||||
+++ b/test/src/helperTest.ts
|
||||
@@ -40,14 +40,6 @@ describe("Helper", function () {
|
||||
describe("#getVersion()", function () {
|
||||
const version = Helper.getVersion();
|
||||
|
||||
- it("should mention it is served from source code", function () {
|
||||
- expect(version).to.include("source");
|
||||
- });
|
||||
-
|
||||
- it("should include a short Git SHA", function () {
|
||||
- expect(version).to.match(/\([0-9a-f]{7,11} /);
|
||||
- });
|
||||
-
|
||||
it("should include a valid semver version", function () {
|
||||
expect(version).to.match(/v[0-9]+\.[0-9]+\.[0-9]+/);
|
||||
});
|
||||
33
backports/yarn-berry/APKBUILD
Normal file
33
backports/yarn-berry/APKBUILD
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
maintainer="Fabricio Silva <hi@fabricio.dev>"
|
||||
pkgname=yarn-berry
|
||||
pkgver=4.9.1
|
||||
pkgrel=0
|
||||
pkgdesc="Fast, reliable, and secure dependency management for Node.js - Active development version"
|
||||
url="https://yarnpkg.com/"
|
||||
license="BSD-2-Clause"
|
||||
arch="noarch"
|
||||
depends="!yarn nodejs" # not backward compatible with yarn classic (v1)
|
||||
source="$pkgname-$pkgver.tgz::https://registry.npmjs.org/@yarnpkg/cli-dist/-/cli-dist-$pkgver.tgz"
|
||||
builddir="$srcdir/package"
|
||||
replaces="yarn"
|
||||
|
||||
check() {
|
||||
./bin/yarn.js --version
|
||||
./bin/yarn.js --help
|
||||
}
|
||||
|
||||
package() {
|
||||
local destdir="usr/share/node_modules/@yarnpkg/cli-dist"
|
||||
|
||||
mkdir -p "$pkgdir"/$destdir/bin
|
||||
install -Dm0644 package.json -t "$pkgdir"/$destdir
|
||||
install -Dm0755 bin/yarn.js -t "$pkgdir"/$destdir/bin
|
||||
|
||||
mkdir -p "$pkgdir"/usr/bin
|
||||
ln -s ../share/node_modules/@yarnpkg/cli-dist/bin/yarn.js "$pkgdir"/usr/bin/yarn
|
||||
ln -s yarn "$pkgdir"/usr/bin/yarnpkg
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
cae0bcb10349af010b472ef7fa1023c33c0afd60a54dc29d18797e6bb771bd6c0d3d06aefa801c56363bcc6ecf6133988d1f943543293e7335ede60618fb28e8 yarn-berry-4.9.1.tgz
|
||||
"
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
Section "InputClass"
|
||||
Identifier "evdev touchscreen"
|
||||
MatchProduct "tt21000"
|
||||
MatchIsTouchscreen "on"
|
||||
Driver "evdev"
|
||||
EndSection
|
||||
Section "InputClass"
|
||||
Identifier "RotateTouch"
|
||||
MatchProduct "w9013"
|
||||
Option "TransformationMatrix" "-1 0 1 0 -1 1 0 0 1"
|
||||
EndSection
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
ACTION=="remove", GOTO="libinput_device_group_end"
|
||||
KERNEL!="event[0-9]*", GOTO="libinput_device_group_end"
|
||||
|
||||
ATTRS{phys}=="?*", ATTRS{name}=="cyttsp5", ENV{LIBINPUT_DEVICE_GROUP}="pinenotetouch"
|
||||
ATTRS{phys}=="?*", ATTRS{name}=="w9013 2D1F:0095 Stylus", ENV{LIBINPUT_DEVICE_GROUP}="pinenotetouch"
|
||||
|
||||
ATTRS{phys}=="?*", ATTRS{name}=="cyttsp5", ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1"
|
||||
|
||||
LABEL="libinput_device_group_end"
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
SUBSYSTEM=="module", KERNEL=="rockchip_ebc", RUN+="/bin/chgrp video /sys/module/%k/parameters/dclk_select /sys/module/%k/parameters/auto_refresh /sys/module/%k/parameters/bw_dither_invert /sys/module/%k/parameters/bw_threshold /sys/module/%k/parameters/bw_mode /sys/module/%k/parameters/diff_mode /sys/module/%k/parameters/direct_mode /sys/module/%k/parameters/limit_fb_blits /sys/module/%k/parameters/panel_reflection /sys/module/%k/parameters/refresh_threshold /sys/module/%k/parameters/refresh_waveform /sys/module/%k/parameters/skip_reset /sys/module/%k/parameters/split_area_limit /sys/module/%k/parameters/default_waveform", RUN+="/bin/chmod g+w /sys/module/%k/parameters/bw_threshold /sys/module/%k/parameters/bw_mode /sys/module/%k/parameters/default_waveform /sys/module/%k/parameters/diff_mode /sys/module/%k/parameters/direct_mode /sys/module/%k/parameters/limit_fb_blits /sys/module/%k/parameters/panel_reflection /sys/module/%k/parameters/refresh_threshold /sys/module/%k/parameters/refresh_waveform /sys/module/%k/parameters/skip_reset /sys/module/%k/parameters/auto_refresh /sys/module/%k/parameters/bw_dither_invert /sys/module/%k/parameters/split_area_limit"
|
||||
DRIVER=="rockchip-ebc", RUN+="/bin/chgrp video /sys/%p/power/control", RUN+="/bin/chmod g+w /sys/%p/power/control"
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
# Maintainer: Petr Hodina <phodina@protonmail.com>
|
||||
pkgname=device-pine64-pinenote
|
||||
pkgdesc="Pine64 PineNote"
|
||||
pkgver=2
|
||||
pkgrel=9
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="aarch64"
|
||||
options="!check !archcheck"
|
||||
depends="
|
||||
u-boot-pine64-pinenote
|
||||
linux-pine64-pinenote
|
||||
postmarketos-base
|
||||
"
|
||||
makedepends="devicepkg-dev"
|
||||
source="
|
||||
deviceinfo
|
||||
modules-initfs
|
||||
phoc.ini
|
||||
local-overrides.quirks
|
||||
50-touchscreen.conf
|
||||
81-libinput-pinenote.rules
|
||||
82-ebc-rockchip.rules
|
||||
panfrost.conf
|
||||
rockchip_ebc.conf
|
||||
"
|
||||
subpackages="
|
||||
$pkgname-nonfree-firmware:nonfree_firmware
|
||||
$pkgname-phosh
|
||||
"
|
||||
|
||||
build() {
|
||||
devicepkg_build $startdir $pkgname
|
||||
}
|
||||
|
||||
package() {
|
||||
devicepkg_package $startdir $pkgname
|
||||
|
||||
install -Dm644 "$srcdir"/local-overrides.quirks \
|
||||
-t "$pkgdir"/etc/libinput/
|
||||
install -Dm644 "$srcdir"/50-touchscreen.conf \
|
||||
-t "$pkgdir"/etc/X11/xorg.conf.d
|
||||
install -Dm644 "$srcdir"/81-libinput-pinenote.rules \
|
||||
-t "$pkgdir"/usr/lib/udev/rules.d
|
||||
install -Dm644 "$srcdir"/82-ebc-rockchip.rules \
|
||||
"$pkgdir"/usr/lib/udev/rules.d
|
||||
install -Dm644 "$srcdir"/panfrost.conf \
|
||||
-t "$pkgdir"/etc/modprobe.d
|
||||
install -Dm644 "$srcdir"/rockchip_ebc.conf \
|
||||
"$pkgdir"/etc/modprobe.d
|
||||
}
|
||||
|
||||
phosh() {
|
||||
install_if="$pkgname=$pkgver-r$pkgrel phosh"
|
||||
depends="postmarketos-theme"
|
||||
|
||||
install -Dm644 "$srcdir"/phoc.ini \
|
||||
-t "$subpkgdir"/etc/phosh
|
||||
}
|
||||
|
||||
nonfree_firmware() {
|
||||
pkgdesc="WiFi, Bluetooth and display firmware"
|
||||
depends="firmware-pine64-pinenote linux-firmware"
|
||||
mkdir "$subpkgdir"
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
5829b9b52206a7520066e4bb3c08c2535d98002a3940664a0239344f5e7522fe7b6a9cb0c0074f9846c7e42c40746f2991f6aeeefeba8efa9140c16630b2893e deviceinfo
|
||||
473accb3497244742dd9fd15f8a02957a13e08fa4d4393fec185ecbb27f1f17726e4b5ece22da861151f9d358d3266206c647def8aa75adb672b6f1f1904c66f modules-initfs
|
||||
4bf5158fbd53274a7429e825bb66225001f2403a4851e2d6803323b77d9095738ee3e5340ac85baf3e86bb4f47d38af8cbd78d8a5055c59a62f5b06e722e19cb phoc.ini
|
||||
1123720962c9c8fec3c50302ca6a3dd56e2907dc9eea361a7b8eb4201b042476633d41a0ee4f6ab61d9c60eeccc894f83491ba9fa309a9bce2f1db0b0341d79d local-overrides.quirks
|
||||
ac433eebbc35a48561837495997aee4e55510b979bc0d8e3bafb761bc1be5b4bdeed2f456369dcbc582688aefd07c63966b0d72b6ffa99e84cfd868e677f02c8 50-touchscreen.conf
|
||||
2bc51f200baefc37abfaaad368a911244999e906bdca4b728ac233f49a8fb3ae7206ee3c95cdb20d7dceae2a31d25a57f4e1da4fd67057fd64724b8232e42aed 81-libinput-pinenote.rules
|
||||
19e922eec89dba419798c4e1dc9b39c040db33986d0969a39a8220c642fa081763f15ff2418115d5a748af4054a1be0784927d1712ea79942c2b237ebab47728 82-ebc-rockchip.rules
|
||||
6ba6638754e00908243de2f73ed6898dac03638a200dcf7b7cd9684757355ee1eb0ac874af0f971ad2e054c1a8c471867bdaea4d9aaf7eea6d3cf81ac7dd73a2 panfrost.conf
|
||||
b52d2e7f0c62d7c313b6db9aeb706cdb2596b6aa637aeddb862abf1e256103377fb6267e38cd4285e25d32112acf8d03bbf32ecff7be3dfbb9176209ea7ae283 rockchip_ebc.conf
|
||||
"
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
# Reference: <https://postmarketos.org/deviceinfo>
|
||||
# Please use double quotes only. You can source this file in shell
|
||||
# scripts.
|
||||
|
||||
deviceinfo_format_version="0"
|
||||
deviceinfo_name="Pine64 PineNote"
|
||||
deviceinfo_manufacturer="Pine64"
|
||||
deviceinfo_codename="pine64-pinenote"
|
||||
deviceinfo_year="2021"
|
||||
deviceinfo_dtb="rockchip/rk3566-pinenote-v1.2"
|
||||
deviceinfo_arch="aarch64"
|
||||
deviceinfo_gpu_accelerated="true"
|
||||
|
||||
# Device related
|
||||
deviceinfo_chassis="tablet"
|
||||
deviceinfo_keyboard="false"
|
||||
deviceinfo_external_storage="false"
|
||||
deviceinfo_screen_width="1404"
|
||||
deviceinfo_screen_height="1872"
|
||||
deviceinfo_getty="ttyS2;1500000"
|
||||
|
||||
# initfs
|
||||
|
||||
# Bootloader related
|
||||
deviceinfo_flash_method="rkdeveloptool"
|
||||
deviceinfo_flash_sparse="true"
|
||||
|
||||
deviceinfo_boot_part_start="65536"
|
||||
|
||||
deviceinfo_sd_embed_firmware="u-boot/pine64-pinenote/u-boot-rockchip.bin:1"
|
||||
deviceinfo_sd_embed_firmware_step_size="32768"
|
||||
|
||||
deviceinfo_flash_rk_partition_kernel="boot"
|
||||
deviceinfo_flash_rk_partition_rootfs="os1"
|
||||
|
||||
deviceinfo_generate_extlinux_config="true"
|
||||
deviceinfo_kernel_cmdline="drm.debug=0x0 vt.color=0xf earlycon console=tty0 console=ttyS2,1500000n8 PMOS_FORCE_PARTITION_RESIZE"
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[PineNote]
|
||||
MatchName=cyttsp5
|
||||
AttrPalmPressureThreshold=28
|
||||
AttrThumbPressureThreshold=27
|
||||
AttrSizeHint=210x157
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
tps65185-regulator
|
||||
rockchip_ebc
|
||||
drm_kms_helper
|
||||
drm_shmem_helper
|
||||
pvi_waveform
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
softdep panfrost pre: rockchip_ebc
|
||||
# blacklist rockchip_ebc
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
# /etc/phosh/phoc.ini
|
||||
# Overwrites values set in /usr/share/phosh/phoc.ini
|
||||
|
||||
# e-ink is an "Unknown" display type for now in mainline
|
||||
[output:Unknown-1]
|
||||
scale = 2.0
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# rockchip-rga will crash the kernel on unload at the moment
|
||||
blacklist rockchip-rga
|
||||
blacklist ws8100_pen
|
||||
|
||||
options rockchip_ebc direct_mode=0 auto_refresh=1 refresh_threshold=60 split_area_limit=0 panel_reflection=1 prepare_prev_before_a2=0 dclk_select=0
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
# Reference: <https://postmarketos.org/vendorkernel>
|
||||
# Kernel config based on: arch/arm64/configs/(CHANGEME!)
|
||||
|
||||
pkgname=linux-pine64-pinenote
|
||||
pkgver=6.12.0
|
||||
pkgrel=0
|
||||
pkgdesc="Pine64 PineNote kernel fork"
|
||||
arch="aarch64"
|
||||
_carch="arm64"
|
||||
_flavor="pine64-pinenote"
|
||||
url="https://kernel.org"
|
||||
license="GPL-2.0-only"
|
||||
options="!strip !check !tracedeps pmb:cross-native"
|
||||
makedepends="
|
||||
bash
|
||||
bc
|
||||
bison
|
||||
devicepkg-dev
|
||||
findutils
|
||||
flex
|
||||
openssl-dev
|
||||
perl
|
||||
"
|
||||
|
||||
# Source
|
||||
_repository="linux"
|
||||
_commit="9d066a65f5cbaa8cd3bfc73a1b54fbac2d0f76ac"
|
||||
_config="config-$_flavor.$arch"
|
||||
source="
|
||||
$pkgname-$_commit.tar.gz::https://github.com/m-weigand/linux/archive/$_commit.tar.gz
|
||||
$_config
|
||||
"
|
||||
builddir="$srcdir/$_repository-$_commit"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
REPLACE_GCCH=0 \
|
||||
. downstreamkernel_prepare
|
||||
}
|
||||
|
||||
build() {
|
||||
unset LDFLAGS
|
||||
make ARCH="$_carch" CC="${CC:-gcc}" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
|
||||
}
|
||||
|
||||
package() {
|
||||
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor"
|
||||
|
||||
make modules_install dtbs_install \
|
||||
ARCH="$_carch" \
|
||||
INSTALL_MOD_PATH="$pkgdir" \
|
||||
INSTALL_DTBS_PATH="$pkgdir/boot/dtbs"
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
d3c2510f9f835a0570fbb812cec2f9e12e402878c1f9f214364ae1918bc4c00f69a1fc5e005cf6b85c0690e6fd5f6ce9e61efd88145a83725ed12b6b8c07b97e linux-pine64-pinenote-9d066a65f5cbaa8cd3bfc73a1b54fbac2d0f76ac.tar.gz
|
||||
99294bd6c53b1cf3832addbc80ea23b9089bb03463e2a9ebe93ab5feb1b2ff9ee38f158032705429230765bae2df23bb3401ec14902134c80d9dd6e58e188be5 config-pine64-pinenote.aarch64
|
||||
"
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,34 +0,0 @@
|
|||
# Maintainer: Petr Hodina <phodina@protonmail.com>
|
||||
pkgname=pinenote-dbus-service
|
||||
pkgver=0.2.2_pre5
|
||||
_gittag=0.2.2-dev5
|
||||
pkgrel=1
|
||||
pkgdesc="Dbus daemon for controlling driver aspects on Pine64 Pinenote"
|
||||
url="https://github.com/m-weigand/pinenote_dbus_service"
|
||||
arch="aarch64"
|
||||
license="MIT"
|
||||
makedepends="cargo"
|
||||
depends="dbus-dev"
|
||||
source="
|
||||
pinenote-dbus-service-$_gittag.tar.gz::https://github.com/m-weigand/pinenote_dbus_service/archive/refs/tags/v$_gittag.tar.gz
|
||||
pinenote.initd
|
||||
"
|
||||
|
||||
builddir="$srcdir/pinenote_dbus_service-$_gittag"
|
||||
|
||||
build() {
|
||||
cargo build --release --locked
|
||||
}
|
||||
|
||||
package() {
|
||||
cargo install --path . --root="$pkgdir/usr"
|
||||
install -Dm644 dbus_security_configuration/pinenote.conf -t "$pkgdir"/usr/share/dbus-1/system.d/
|
||||
install -Dm755 "$srcdir"/pinenote.initd $pkgdir/etc/init.d/pinenote
|
||||
rm "$pkgdir"/usr/.crates.toml
|
||||
rm "$pkgdir"/usr/.crates2.json
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
10cf05f9e1e8affec97b532611a9bffb86928cabe4eb9bd321b66e8dba340e6a7916fa0c8286f81300bfa655d5596bba09f0316abcafa6c55128823c78acb807 pinenote-dbus-service-0.2.2-dev5.tar.gz
|
||||
362c20218610e7a5349eef40d54463a05906e258157e590ad1635591a548ddc60050142cfab41a0423797182e5ae392a7fe6476fc71b9c01cece384351e6f148 pinenote.initd
|
||||
"
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#!/sbin/openrc-run
|
||||
|
||||
description="Launch DBus service for driver aspects"
|
||||
command="/usr/bin/pinenote_dbus_service"
|
||||
command_background=yes
|
||||
pidfile="/run/${RC_SVCNAME}.pid"
|
||||
|
||||
depend() {
|
||||
need dbus
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=calibre-web
|
||||
pkgver=0.6.21
|
||||
pkgrel=1
|
||||
pkgver=0.6.25
|
||||
pkgrel=0
|
||||
pkgdesc="Web app for browsing, reading and downloading eBooks stored in a Calibre database"
|
||||
arch='noarch'
|
||||
url="https://github.com/janeczku/calibre-web"
|
||||
|
|
@ -10,26 +10,27 @@ license='GPL-3.0-only'
|
|||
depends="
|
||||
py3-apscheduler
|
||||
py3-babel
|
||||
py3-backports_abc
|
||||
py3-blinker
|
||||
py3-bleach
|
||||
py3-chardet
|
||||
py3-cryptography
|
||||
py3-flask-babel
|
||||
py3-flask-login
|
||||
py3-flask-limiter
|
||||
py3-flask-principal
|
||||
py3-flask-wtf
|
||||
py3-goodreads
|
||||
py3-levenshtein
|
||||
py3-iso639
|
||||
py3-flask-httpauth
|
||||
py3-lxml
|
||||
py3-pypdf2
|
||||
py3-magic
|
||||
py3-netifaces
|
||||
py3-pypdf
|
||||
py3-pycountry
|
||||
py3-regex
|
||||
py3-requests
|
||||
py3-sqlalchemy
|
||||
py3-tornado
|
||||
py3-tz
|
||||
py3-unidecode
|
||||
py3-urllib3
|
||||
py3-wand
|
||||
py3-werkzeug
|
||||
"
|
||||
source="
|
||||
$pkgname-$pkgver.tar.gz::https://github.com/janeczku/calibre-web/archive/$pkgver.tar.gz
|
||||
|
|
@ -56,7 +57,7 @@ package() {
|
|||
install -D -m 644 "$srcdir"/calibre-web.conf "$pkgdir"/etc/conf.d/calibre-web
|
||||
}
|
||||
sha512sums="
|
||||
d2f07eec0b6c9f65e68ae0b72fddd14444eb8be8b0fee997ec7caaa1feebb8a26603844752347547becde501669af5bce69e9eab466a28fd4b10624b65c9afcf calibre-web-0.6.21.tar.gz
|
||||
878d057613b7f89e57ad536c415bb4dc346d5f8c4ca2660517b68c70c4eefa5358317fe0e917738d468cb003358a0341411155289d952b1aa6cd4a022a84c8f0 calibre-web-0.6.25.tar.gz
|
||||
4aba825eb12f44eb0912cc6981b46bec9b77ad114627564c9c7585862a099c7d1ff8deec5f15d047319805e2b9a3e2d128b2d1292dd92293a7e72359009a480f calibre-web.conf
|
||||
62859a8a304216dc0dbfb7f2e8144a50d348c6621f5b292c08aa97a872ada67b52d36b567546fd0f4c439dbefe0bbe0e4fb1e1affbe507278b4a8d36ed3fa2a9 calibre-web.initd
|
||||
"
|
||||
53
user/filebrowser/APKBUILD
Normal file
53
user/filebrowser/APKBUILD
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=filebrowser
|
||||
pkgver=1.0.3
|
||||
_gittag="v$pkgver-stable"
|
||||
pkgrel=0
|
||||
pkgdesc="Standalone web file manager"
|
||||
arch="all"
|
||||
url="https://github.com/gtsteffaniak/filebrowser"
|
||||
license="Apache-2.0"
|
||||
depends="libcap-setcap"
|
||||
makedepends="go nodejs npm"
|
||||
source="
|
||||
$pkgname-$_gittag.tar.gz::https://github.com/gtsteffaniak/filebrowser/archive/refs/tags/$_gittag.tar.gz
|
||||
frontend-package-lock.json
|
||||
filebrowser.openrc
|
||||
"
|
||||
builddir="$srcdir"/$pkgname-${_gittag/v}
|
||||
options="!check" # TODO: setup test suite
|
||||
subpackages="$pkgname-openrc"
|
||||
install="$pkgname.pre-install $pkgname.post-upgrade"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
(
|
||||
cd "$builddir"/frontend
|
||||
cp "$srcdir"/frontend-package-lock.json package-lock.json
|
||||
npm ci
|
||||
)
|
||||
}
|
||||
|
||||
build() {
|
||||
(
|
||||
cd "$builddir"/frontend
|
||||
npm run build
|
||||
)
|
||||
(
|
||||
cd "$builddir"/backend
|
||||
go build -o filebrowser \
|
||||
--ldflags="-w -s -X 'github.com/gtsteffaniak/filebrowser/backend/common/version.CommitSHA=production' \
|
||||
-X 'github.com/gtsteffaniak/filebrowser/backend/common/version.Version=$pkgver'"
|
||||
)
|
||||
}
|
||||
|
||||
package() {
|
||||
install -Dm755 "$builddir"/backend/filebrowser "$pkgdir"/usr/bin/filebrowser
|
||||
install -Dm755 "$srcdir"/filebrowser.openrc "$pkgdir"/etc/init.d/filebrowser
|
||||
install -Dm644 "$builddir"/frontend/public/config.generated.yaml "$pkgdir"/etc/filebrowser/filebrowser.yaml
|
||||
}
|
||||
sha512sums="
|
||||
7919d391e45c7a88bcbff61f6d63963fe559afe21170c2940ae7895e6b794ce68af0742d4ce81584437b14e603a4ff8b95fb1fb16d72a032a40b76986ed8981b filebrowser-v1.0.3-stable.tar.gz
|
||||
4ffe0c2ae7d6d972950fb38c9c777c20e3f507da6b4562231e09843b3ae618362ffdfbaf6dbb60959b3811c1856eb326d608e9d32e236bac405c65974e6e1e50 frontend-package-lock.json
|
||||
06319bc67b088b5ffdad01a575691d82c5319730b4e46975bfc09ebb7466d6913eaca73e93f8db7b8c8bc374e6b9e35634ff1a69e701d24a5d2eae444de6bdf7 filebrowser.openrc
|
||||
"
|
||||
30
user/filebrowser/filebrowser.openrc
Normal file
30
user/filebrowser/filebrowser.openrc
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
#!/sbin/openrc-run
|
||||
|
||||
description="File browser for ${RC_SVCNAME/*.}"
|
||||
supervisor=supervise-daemon
|
||||
respawn_max=0
|
||||
respawn_delay=10
|
||||
|
||||
|
||||
# Change $directory to path to middleware scripts
|
||||
directory=${directory:-/var/lib/${RC_SVCNAME/.*}/${RC_SVCNAME/*.}}
|
||||
pidfile=${pidfile:-/run/$RC_SVCNAME.pid}
|
||||
|
||||
log_dir="/var/log/${RC_SVCNAME/.*}/"
|
||||
logfile=${logfile:-$log_dir/${RC_SVCNAME/*.}.log}
|
||||
output_log="${output_log:-$logfile}"
|
||||
error_log="${error_log:-$logfile}"
|
||||
|
||||
command=${command:-/usr/bin/filebrowser}
|
||||
command_args="-c /etc/filebrowser/${RC_SVCNAME/*.}.yaml"
|
||||
command_user=${command_user:-filebrowser:filebrowser}
|
||||
command_background=true
|
||||
|
||||
depend() {
|
||||
need net
|
||||
}
|
||||
|
||||
start_pre() {
|
||||
checkpath --owner=$command_user --directory $log_dir /var/lib/filebrowser $directory
|
||||
cd $directory
|
||||
}
|
||||
1
user/filebrowser/filebrowser.post-upgrade
Symbolic link
1
user/filebrowser/filebrowser.post-upgrade
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
filebrowser.pre-install
|
||||
47
user/filebrowser/filebrowser.pre-install
Normal file
47
user/filebrowser/filebrowser.pre-install
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/sh
|
||||
|
||||
setcap 'cap_net_bind_service=+ep' /usr/bin/filebrowser
|
||||
|
||||
if [ "${0##*.}" = 'pre-install' ]; then
|
||||
cat >&2 <<-EOF
|
||||
|
||||
1. Generate filebrowser config file
|
||||
|
||||
cd /etc/filebrowser
|
||||
filebrowser setup
|
||||
|
||||
2. Rename config.yaml to $service.yaml (i.e. movies.yaml) and adjust as desired (see https://filebrowserquantum.com/en/docs/configuration/configuration-overview/ for more information)
|
||||
3. Create symbolic link for service file, enable, and start
|
||||
|
||||
ln -s /etc/init.d/filebrowser /etc/init.d/filebrowser.$service
|
||||
rc-update add filebrowser.$service
|
||||
service filebrowser.$service
|
||||
|
||||
You should now be able to go to http://ip-address:port (default 80)
|
||||
|
||||
For more documentation, go to https://filebrowserquantum.com/en/docs
|
||||
|
||||
EOF
|
||||
|
||||
if ! getent group filebrowser 1>/dev/null; then
|
||||
echo 'Creating group filebrowser' 1>&2
|
||||
|
||||
addgroup -S filebrowser
|
||||
fi
|
||||
|
||||
if ! id filebrowser 2>/dev/null 1>&2; then
|
||||
echo 'Creating user filebrowser' 1>&2
|
||||
|
||||
adduser -DHS -G filebrowser -h "$DATADIR" -s /bin/sh \
|
||||
-g "added by apk for filebrowser" filebrowser
|
||||
passwd -u filebrowser 1>/dev/null # unlock
|
||||
fi
|
||||
|
||||
if ! id -Gn filebrowser | grep -Fq www-data; then
|
||||
echo 'Adding user filebrowser to group www-data' 1>&2
|
||||
|
||||
addgroup filebrowser www-data
|
||||
fi
|
||||
|
||||
exit 0
|
||||
fi
|
||||
7568
user/filebrowser/frontend-package-lock.json
generated
Normal file
7568
user/filebrowser/frontend-package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,9 +1,8 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=kb
|
||||
_pkgreal=kb-manager
|
||||
pkgver=0.1.7
|
||||
pkgrel=2
|
||||
pkgver=0.1.8
|
||||
pkgrel=0
|
||||
pkgdesc="A command line minimalist knowledge base manager"
|
||||
arch="noarch"
|
||||
url="https://github.com/gnebbia/kb"
|
||||
|
|
@ -11,9 +10,8 @@ license="GPL-3.0-only"
|
|||
depends="py3-attrs py3-colored py3-gitpython py3-toml"
|
||||
makedepends="py3-setuptools py3-gpep517 py3-wheel"
|
||||
checkdepends="py3-pytest-cov"
|
||||
source="https://files.pythonhosted.org/packages/source/k/kb-manager/kb-manager-$pkgver.tar.gz"
|
||||
source="$pkgname-$pkgver.tar.gz::https://github.com/gnebbia/kb/archive/refs/tags/v$pkgver.tar.gz"
|
||||
subpackages="$pkgname-pyc"
|
||||
builddir="$srcdir"/$_pkgreal-$pkgver
|
||||
|
||||
build() {
|
||||
gpep517 build-wheel \
|
||||
|
|
@ -30,5 +28,5 @@ package() {
|
|||
.dist/*.whl
|
||||
}
|
||||
sha512sums="
|
||||
f0dff69a5e95339ea22d0a9d1260473f7b0b6ace184936896e164172aecb77672e9e0a228159abc95e50f30de2ec9ca5185ffbd825dce87edfec267bc56c75dc kb-manager-0.1.7.tar.gz
|
||||
95fab9b5baa728795a6ce1e126fe90dd599528bc13f2274c5484dc43bdbca8fd5807e8ed4ec4e9ffa8382c5ec71662022d792e8ae941bd1629ed47c72d87d7a2 kb-0.1.8.tar.gz
|
||||
"
|
||||
|
|
|
|||
82
user/koreader/APKBUILD
Normal file
82
user/koreader/APKBUILD
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=koreader
|
||||
pkgver=2025.10
|
||||
pkgrel=0
|
||||
pkgdesc="An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats"
|
||||
# s390x|riscv64|ppc64le|loongarch64: FTBFS
|
||||
# armhf|armv7|x86: Tests fail, segmentation fault
|
||||
arch="x86_64 aarch64"
|
||||
url="https://github.com/koreader/koreader/"
|
||||
license="AGPL-3.0-only"
|
||||
depends="
|
||||
bash
|
||||
sdl2
|
||||
procps-ng
|
||||
"
|
||||
makedepends="
|
||||
autoconf
|
||||
automake
|
||||
cmake
|
||||
coreutils
|
||||
curl
|
||||
diffutils
|
||||
findutils
|
||||
gettext
|
||||
grep
|
||||
libtool
|
||||
linux-headers
|
||||
meson
|
||||
nasm
|
||||
ninja-build
|
||||
perl
|
||||
pkgconf
|
||||
wget
|
||||
"
|
||||
source="
|
||||
https://ayakael.net/api/packages/mirrors/generic/koreader/v$pkgver/koreader-v$pkgver.tar.gz
|
||||
reader-lua-use-absolute-path-to-luajit.patch
|
||||
"
|
||||
subpackages="$pkgname-doc"
|
||||
builddir="$srcdir"/$pkgname-v$pkgver
|
||||
|
||||
# has vendored copies of system libraries
|
||||
sonameprefix="$pkgname:"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
# no need to test manually set version
|
||||
rm "$builddir"/spec/unit/version_spec.lua
|
||||
}
|
||||
|
||||
build() {
|
||||
# add ninja bin to path
|
||||
export PATH="$PATH":/usr/lib/ninja-build/bin
|
||||
|
||||
# default target is emulator build
|
||||
make TARGET= KODEBUG= VERBOSE=
|
||||
}
|
||||
|
||||
check() {
|
||||
KODEBUG= TARGET= VERBOSE= ./base/utils/fake_tty.py make --assume-old=base testfront
|
||||
}
|
||||
|
||||
package() {
|
||||
install -Dm755 "$builddir"/platform/linux/koreader.sh "$pkgdir"/usr/bin/koreader
|
||||
install -Dm644 "$builddir"/platform/linux/koreader.desktop -t "$pkgdir"/usr/share/applications/
|
||||
install -Dm644 "$builddir"/resources/koreader.png -t "$pkgdir"/usr/share/pixmaps/
|
||||
install -Dm644 "$builddir"/platform/linux/koreader.1 -t "$pkgdir"/usr/share/man/man1/
|
||||
|
||||
mkdir -p "$pkgdir"/usr/lib
|
||||
cp -RL "$builddir"/koreader-emulator-*/koreader "$pkgdir"/usr/lib/koreader
|
||||
|
||||
# delete debug files
|
||||
find "$pkgdir" -name '*.dbg' -delete
|
||||
|
||||
# version information
|
||||
echo "v$pkgver" > "$pkgdir"/usr/lib/koreader/git-rev
|
||||
}
|
||||
sha512sums="
|
||||
3fbbe49ae6134abd810d9932cfb650d031100c95570c8eaa6d6e5d4c6a9a86916961b989696a7d97c149920d63853108905eea34f75f987e58f89e3a49d63948 koreader-v2025.10.tar.gz
|
||||
76dd6f2ea6416b135b76d95f3c8150378f577ddd68d48312eabd6e12adaa111253dc83fc02add3ded07d3e6174fd5f4bd6c9f7b635ef27e3d760d5acced9e6fe reader-lua-use-absolute-path-to-luajit.patch
|
||||
"
|
||||
10
user/koreader/reader-lua-use-absolute-path-to-luajit.patch
Normal file
10
user/koreader/reader-lua-use-absolute-path-to-luajit.patch
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
diff --git a/reader.lua.orig b/reader.lua
|
||||
index 6fe9489..c4cbb2b 100755
|
||||
--- a/reader.lua.orig
|
||||
+++ b/reader.lua
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!./luajit
|
||||
+#!/usr/lib/koreader/luajit
|
||||
|
||||
-- Enforce line-buffering for stdout (this is the default if it points to a tty, but we redirect to a file on most platforms).
|
||||
io.stdout:setvbuf("line")
|
||||
|
|
@ -5,7 +5,9 @@ pkgver=2.21.1
|
|||
_gittag=$pkgver
|
||||
pkgrel=0
|
||||
pkgdesc="EssentialsX is the essential plugin suite for Minecraft servers, with over 130 commands for servers of all size and scale."
|
||||
arch='noarch'
|
||||
# blocked by luckperms
|
||||
# armv7: blocked my openjdk21-jdk
|
||||
#arch='noarch !armv7'
|
||||
url="https://essentialsx.net/"
|
||||
license="GPL-3.0"
|
||||
depends="
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@ pkgver=5.4.151
|
|||
_gittag=0fef481d480737528491fc0b3b8487eb1612f955
|
||||
pkgrel=0
|
||||
pkgdesc="An advanced permissions plugin for Bukkit/Spigot, BungeeCord and Sponge."
|
||||
arch='noarch'
|
||||
# dependency not available upstream anymore
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
#arch='noarch !armv7'
|
||||
url="https://github.com/lucko/LuckPerms"
|
||||
license="MIT"
|
||||
depends="papermc>=1.8.8"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ pkgname=papermc-plugin-vault
|
|||
pkgver=1.7.3
|
||||
pkgrel=0
|
||||
pkgdesc="Vault of common APIs for Bukkit Plugins"
|
||||
arch='noarch'
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
arch='noarch !armv7'
|
||||
url="https://github.com/MilkBowl/Vault"
|
||||
license="MIT"
|
||||
depends="papermc>=1.8.8"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@ pkgver=7.3.13
|
|||
_pkgver=$pkgver
|
||||
pkgrel=0
|
||||
pkgdesc="WorldEdit is an easy-to-use in-game Minecraft map editor"
|
||||
arch='noarch !aarch64'
|
||||
# missingupstream dependencies
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
#arch='noarch !armv7'
|
||||
url="https://github.com/EngineHub/WorldEdit"
|
||||
license="GPL-3.0"
|
||||
depends="papermc>=1.13.2"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@ pkgver=7.0.13_beta1
|
|||
_gittag=2f13ae0444409376feb6c7674591142fe854e12e
|
||||
pkgrel=0
|
||||
pkgdesc="WorldGuard lets you and players guard areas of land against griefers and undesirables"
|
||||
arch='noarch'
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
arch='noarch !armv7'
|
||||
url="https://github.com/EngineHub/WorldGuard"
|
||||
license="GPL-3.0"
|
||||
depends="papermc>=1.17.0"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=papermc
|
||||
pkgver=1.21.4
|
||||
pkgver=1.21.7
|
||||
_gittag=${pkgver/.0}
|
||||
pkgrel=0
|
||||
pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance"
|
||||
arch='noarch'
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
arch='noarch !armv7'
|
||||
url="https://papermc.io/"
|
||||
license='custom'
|
||||
depends='openjdk21-jdk screen sudo bash gawk sed netcat-openbsd'
|
||||
|
|
@ -43,7 +44,7 @@ package() {
|
|||
chmod g+ws "$pkgdir"/var/lib/$pkgname
|
||||
}
|
||||
sha512sums="
|
||||
5e815c4ee4f9d99ecb173d2b81131d0531359f1d2d48dee429476a7b39c37140fe2085d9a657435e347ca1bc5930402bac1a533692cd8387811b2577384c827b papermc-1.21.4.tar.zst
|
||||
90c3017f7e4031816f6d4e30612a88d7b15d9e99cfb4e887b868e3d0d55ec5db0e9e71dc433dd399959da9b099e7fc4fd3768635ccabcce84d1adfc48837309a papermc-1.21.7.tar.zst
|
||||
c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e papermc.initd
|
||||
9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789 papermc.conf
|
||||
943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7 papermc.sh
|
||||
|
|
|
|||
|
|
@ -2,12 +2,13 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
|
||||
pkgname=rmfakecloud
|
||||
pkgver=0.0.24
|
||||
pkgver=0.0.27
|
||||
_gittag=v$pkgver
|
||||
pkgrel=0
|
||||
pkgdesc="A selfhosted cloud for the Remarkable Tablet"
|
||||
url="https://github.com/ddvk/rmfakecloud"
|
||||
arch="all"
|
||||
# armv7: oom
|
||||
arch="all !armv7"
|
||||
license="AGPL-3.0-only"
|
||||
makedepends="go yarn"
|
||||
options="chmod-clean net"
|
||||
|
|
@ -37,7 +38,7 @@ package() {
|
|||
install -Dm755 "$srcdir"/rmfakecloud.openrc "$pkgdir"/etc/init.d/rmfakecloud
|
||||
}
|
||||
sha512sums="
|
||||
c0c96cb9168b8152da3842fac095a6bd33e74b5f7a5cefe72e44853f4059c966336e98cd4c62235f7a2fe625acdd93452f718c19a1bf65f5dd7dbd8bb5cd1f8c rmfakecloud-0.0.24.tar.gz
|
||||
b215295c8779f9820e9751e5cbfb8804d6cdeb0d71ffaa60d46fd803760e63227352f55a8b5a2e75d990b20a6a19c43a4ffaa03a1857e6fb37990a8b191a3ea2 rmfakecloud-0.0.27.tar.gz
|
||||
d5677cef282085cd6642a034dd258ffa294862aeb0ce81d6485a524a15564849bc4eb90a9d1fa4dbcf4eab69dcd893302aa06493fc8fad74d69200c2bdf246c0 rmfakecloud.conf
|
||||
891d0945886796132f951293e081046334857563b4ebae28a3aa5b6bc37768767c49ce102de645ed8340af2518de606be8bf6ecafeb6d189dd937970aa3e6498 rmfakecloud.openrc
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=scanservjs
|
||||
pkgver=3.0.3
|
||||
pkgver=3.0.4
|
||||
pkgrel=0
|
||||
pkgdesc="SANE scanner nodejs web ui"
|
||||
arch="noarch"
|
||||
|
|
@ -63,7 +62,7 @@ package() {
|
|||
install -Dm 644 "$srcdir"/scanservjs.conf "$pkgdir"/etc/conf.d/scanservjs
|
||||
}
|
||||
sha512sums="
|
||||
e3746cfab118b08b75fe5a862e1b06d35bce3fafe7b5cf482ddfd28aad8ac9879981eef5bdadc35a783607aac49eef95b966ff1d2ddf431eaf6e2d7e335623fb scanservjs-3.0.3.tar.gz
|
||||
f19b1bd5acb01f82fa98bc79f9d401f1b6c19aa9e4319d75efd4b82a6db44a348784953ae1542d362d3b8e328a1a469e9320fd7c937e6aa102a19a36cd8ce9e8 scanservjs-3.0.4.tar.gz
|
||||
f58dd5e1c4936d7e25065a295f5d01e64189cdefe92ba54fc875348a59a30b2055c93464d510a52820e66b42a69d0626d3513c93ab60b0768e1e8d5b3538bb13 scanservjs.initd
|
||||
9d4fdab3803a598c729bf703369d8594b383163b05045f31e516f184a87d8deef8c8b40942d324e04bdf751ac9d63f7de25b13364f9f30888eba2af873369b36 scanservjs.conf
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=scantopl
|
||||
pkgver=1.0.0
|
||||
pkgver=1.0.1
|
||||
pkgrel=0
|
||||
pkgdesc="Automatically send scanservjs scanned document to paperless-ng"
|
||||
_gittag="v$pkgver"
|
||||
|
|
@ -31,7 +30,7 @@ package() {
|
|||
install -Dm644 "$srcdir"/scantopl.conf "$pkgdir"/etc/conf.d/scantopl
|
||||
}
|
||||
sha512sums="
|
||||
d4eca1adc326f1e730ae195bd44f1cf05d404488ce20fd612467c572ea7fa718034bb7b16d3e007976349f6852e83569aa17727dcc61f9e7ab1934995b3bc3e6 scantopl-1.0.0.tar.gz
|
||||
e5238c4f8e727e80c5c66441e8de5eeb775fdfe05ee85509c942c2516e8996243cd1b72c7c87c8bbee2e0475cc0075244aa28164a746f6e7eded253bcb707ba7 scantopl-1.0.1.tar.gz
|
||||
8238411fe8881be6690a583a6bfc71e52f3131320f5d92bb36f8af61802980265a8cf5250eb699d9214f7c6c168d14c39867a09587fb07841a8504a6a28db74b scantopl.initd
|
||||
ee2e631901b1d88c0dede6587318e44884255a7c82e090371f017dbb91563c16f0567c0d45b3183d0a8abb3ee4b71a33f3d79258ad2b2f6d8930a5bc7625070a scantopl.conf
|
||||
"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ pkgname=tandoor-recipes
|
|||
pkgver=1.5.12
|
||||
pkgrel=1
|
||||
pkgdesc="Application for managing recipes, planning meals, building shopping lists, etc."
|
||||
arch="noarch"
|
||||
# armv7: oom
|
||||
arch="noarch !armv7"
|
||||
url="https://github.com/TandoorRecipes/recipes"
|
||||
license="AGPL-3.0-only"
|
||||
depends="
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue