Compare commits
28 commits
edge
...
electron/t
| Author | SHA1 | Date | |
|---|---|---|---|
|
d773cab1ea |
|||
|
6f83ba28d0 |
|||
| cb9bb05724 | |||
|
eb53b37dce |
|||
| 1d71eb9ab5 | |||
|
0e189159fc |
|||
|
ea7d833521 |
|||
|
466899665e |
|||
| 8cedcc1790 | |||
|
74ff29cd63 |
|||
|
74990b55aa |
|||
|
e48050e78b |
|||
| d7290381bd | |||
|
e24a62da6c |
|||
|
6ade8c6b70 |
|||
|
9cf8931cb8 |
|||
|
dae4200b92 |
|||
|
d9afb2ff02 |
|||
|
21de505ee5 |
|||
| cd0cb9fdc2 | |||
| 12d2c58029 | |||
| 31739f426c | |||
|
8272443d1d |
|||
|
9c90ca5177 |
|||
|
bd5adbd57c |
|||
| c73c8be7ac | |||
| b381ae74d2 | |||
|
4cc3b914c8 |
103 changed files with 10454 additions and 9411 deletions
|
|
@ -10,28 +10,21 @@
|
|||
# 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, place a - in front of package name to not exclude it
|
||||
# add_package: array of additional packages to check
|
||||
# skip_package: array of packages to skip
|
||||
#
|
||||
|
||||
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//[^.]}
|
||||
|
|
@ -41,9 +34,8 @@ is_semantic() {
|
|||
return 1
|
||||
}
|
||||
|
||||
|
||||
echo "Checking $downstream for out of date packages"
|
||||
curl --silent $downstream/$arch/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX
|
||||
curl --silent $downstream/x86_64/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)
|
||||
|
|
@ -53,9 +45,6 @@ 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
|
||||
|
|
@ -63,44 +52,13 @@ for pkg in $owned_by_you; do
|
|||
downstream_version=${downstream_version/-*}
|
||||
|
||||
# skip package if in $skip_package array
|
||||
if [[ "$skip_package" == *all* || "$skip_package" == *$pkg* ]] && [[ "$skip_package" != *-$pkg* ]]; then
|
||||
if [[ "$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}}')
|
||||
|
|
@ -111,11 +69,8 @@ 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' )
|
||||
|
|
@ -126,54 +81,19 @@ for pkg in $owned_by_you; do
|
|||
pkg="$pkg(${upstream_version/.*})"
|
||||
fi
|
||||
;;
|
||||
# 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|-.*||';;
|
||||
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);;
|
||||
*)
|
||||
|
||||
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
|
||||
# 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 ! is_semantic $downstream_version; then
|
||||
echo "$pkg is not semantic, and minor_only is set"
|
||||
echo "$pkg is not semantic, and fix_only or 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* ]] && [[ "$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
|
||||
elif [ "${fix_only}" == "all" ] || [[ "${fix_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.[]' | head -n1)
|
||||
|
|
@ -188,7 +108,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 $upstream_version"
|
||||
echo "$pkg higher downstream"
|
||||
continue
|
||||
elif [ "$upstream_version" != "$downstream_version" ]; then
|
||||
echo "$pkg upstream version $upstream_version does not match downstream version $downstream_version in $release"
|
||||
|
|
|
|||
|
|
@ -16,17 +16,10 @@ does_it_exist() {
|
|||
release=$5
|
||||
|
||||
query="$repo/$name: upgrade to $upstream_version"
|
||||
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')"
|
||||
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"
|
||||
|
||||
result="$(curl -L --silent -X 'GET' \
|
||||
result="$(curl --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"
|
||||
|
|
@ -45,17 +38,10 @@ is_it_old() {
|
|||
release=$5
|
||||
|
||||
query="$repo/$name: upgrade to"
|
||||
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')"
|
||||
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"
|
||||
|
||||
result="$(curl -L --silent -X 'GET' \
|
||||
result="$(curl --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"
|
||||
|
|
@ -80,15 +66,14 @@ update_title() {
|
|||
release=$5
|
||||
id=$6
|
||||
|
||||
title="$repo/$name: upgrade to $upstream_version"
|
||||
if [ "$release" != "edge" ]; then title="[$release] $title"; fi
|
||||
|
||||
result=$(curl -L --silent -X 'PATCH' \
|
||||
result=$(curl --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\": \"$title\"}"
|
||||
-d "{
|
||||
\"title\": \"$repo/$name: upgrade to $upstream_version\"
|
||||
}"
|
||||
)
|
||||
|
||||
return 0
|
||||
|
|
@ -104,7 +89,7 @@ create_issue() {
|
|||
title="$repo/$name: upgrade to $upstream_version"
|
||||
if [ "$release" != "edge" ]; then title="[$release] $title"; fi
|
||||
|
||||
result=$(curl -L --silent -X 'POST' \
|
||||
result=$(curl --silent -X 'POST' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN" \
|
||||
|
|
@ -153,7 +138,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 -L --silent -X 'GET' \
|
||||
result="$(curl --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"
|
||||
|
|
@ -161,7 +146,7 @@ if [ -f not_in_anitya ]; then
|
|||
|
||||
if [ "$result" == "[]" ]; then
|
||||
echo "Creating anitya issue"
|
||||
result=$(curl -L --silent -X 'POST' \
|
||||
result=$(curl --silent -X 'POST' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN" \
|
||||
|
|
@ -177,7 +162,7 @@ if [ -f not_in_anitya ]; then
|
|||
else
|
||||
echo "Updating anitya issue"
|
||||
result_id="$(echo $result | jq -r '.[].number' )"
|
||||
result=$(curl -L --silent -X 'PATCH' \
|
||||
result=$(curl --silent -X 'PATCH' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$result_id" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: token $ISSUE_TOKEN" \
|
||||
|
|
|
|||
|
|
@ -1,54 +0,0 @@
|
|||
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: aarch64
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://ayakael.net/api/packages/forge/alpine/v3.23/backports
|
||||
downstream: https://ayakael.net/api/packages/forge/alpine/v3.22/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: aarch64
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -25,39 +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.23:
|
||||
name: Check community(3.23) repo
|
||||
runs-on: aarch64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/v3.23/community
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 13
|
||||
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
|
||||
- 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.22:
|
||||
name: Check community(3.22) repo
|
||||
runs-on: aarch64
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/v3.22/community
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/3.22/community
|
||||
ISSUE_TOKEN: ${{ secrets.issue_token }}
|
||||
LABEL_NUMBER: 13
|
||||
skip_package: 'all -dotnet8-runtime -dotnet9-runtime'
|
||||
fix_only: all
|
||||
skip_package: dotnet9-stage0 dotnet8-stage0
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
|
||||
|
|
@ -69,48 +47,3 @@ jobs:
|
|||
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: aarch64
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -25,30 +25,9 @@ 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: aarch64
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -69,7 +48,7 @@ jobs:
|
|||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-main-3.21:
|
||||
name: Check main(3.21) repo
|
||||
runs-on: aarch64
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -90,7 +69,7 @@ jobs:
|
|||
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh
|
||||
check-main-3.20:
|
||||
name: Check main(3.20) repo
|
||||
runs-on: aarch64
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
@ -109,4 +88,24 @@ 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
|
||||
|
|
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
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-testing:
|
||||
check-community:
|
||||
name: Check testing repo
|
||||
runs-on: aarch64
|
||||
runs-on: x86_64
|
||||
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-stage0 dotnet6-build
|
||||
skip_package: dotnet6-stage 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: aarch64
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
|
|
|
|||
|
|
@ -1,13 +0,0 @@
|
|||
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')):
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
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.14.0
|
||||
pkgver=8.4.0
|
||||
pkgrel=0
|
||||
pkgdesc="Ebook management application"
|
||||
# qt6-webengine
|
||||
|
|
@ -47,7 +47,6 @@ depends="
|
|||
makedepends="
|
||||
cmake
|
||||
curl
|
||||
ffmpeg-dev
|
||||
hunspell-dev
|
||||
hyphen-dev
|
||||
libmtp-dev
|
||||
|
|
@ -56,12 +55,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
|
||||
|
|
@ -71,15 +70,13 @@ subpackages="
|
|||
"
|
||||
source="https://download.calibre-ebook.com/$pkgver/calibre-$pkgver.tar.xz
|
||||
0001-$pkgname-no-update.patch
|
||||
0002-$pkgname-use-make.patch
|
||||
0003-$pkgname-disable-piper.patch
|
||||
musl-pread.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
|
||||
|
|
@ -116,8 +113,7 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
edb32e47b083e10fbf53088e485737f3b61bb642ce6c4dd444e58a6618979c3b05b77ceffc4b8cb42e35eee7dcc2b94145abc22030ffd8b5de63e45b321fbf72 calibre-8.14.0.tar.xz
|
||||
df998fa31b9e581739872a649669fccf29f34d3ac1b4d0a96c37e08a0b049b1357b56a2af25f2733936e78901dd61b38a24e536e107e7094ada7e60a5c2c56ab calibre-8.4.0.tar.xz
|
||||
eb8e7ce40ff8b8daf6e7e55a5dff8ec4dff06c45744266bb48b3194e92ab1196bc91468203e3c2ca1e5144166a7d6be90e6cf0253513e761b56a4c85be4c2c76 0001-calibre-no-update.patch
|
||||
bbb7253257073ae14840b3b4697943fe129d862b49cabd9388ea24cbd0259e68a1d359870334772164897f0c781db121de55fcdf5bccc841e36c021abe56f1ec 0002-calibre-use-make.patch
|
||||
0efcf35944cd0f42d6f3572839647fc5c8336562db3f71655211d3de682e155b6d6fee4d281f9576201156e0bc828b6a579a8708a27791e4e4d604d456416954 0003-calibre-disable-piper.patch
|
||||
d27d29c434a3d2df1b18125225a4d3762bf6fdba77385b377b18a7f325f29ae0b698974a39263f4f7aed8a368c87d0dc4446f488505b8e38664f8e9ee5b9bd12 musl-pread.patch
|
||||
"
|
||||
|
|
|
|||
11
backports/calibre/musl-pread.patch
Normal file
11
backports/calibre/musl-pread.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- 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=6
|
||||
pkgrel=5
|
||||
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=39.2.7
|
||||
pkgver=38.4.0
|
||||
_gittag=v"${pkgver/_beta/-beta.}"
|
||||
pkgrel=0
|
||||
_chromium=142.0.7444.235
|
||||
_copium_tag=142.0
|
||||
pkgrel=1
|
||||
_chromium=140.0.7339.240
|
||||
_copium_tag=140.2
|
||||
_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=21
|
||||
_llvmver=20
|
||||
makedepends="
|
||||
ada-dev
|
||||
alsa-lib-dev
|
||||
|
|
@ -45,7 +45,6 @@ makedepends="
|
|||
gn
|
||||
gzip
|
||||
harfbuzz-dev
|
||||
highway-dev
|
||||
hdrhistogram-c-dev
|
||||
hunspell-dev
|
||||
http-parser-dev
|
||||
|
|
@ -109,7 +108,7 @@ makedepends="
|
|||
sqlite-dev
|
||||
woff2-dev
|
||||
xcb-proto
|
||||
yarn-berry
|
||||
yarn
|
||||
zlib-dev
|
||||
zstd-dev
|
||||
"
|
||||
|
|
@ -146,8 +145,6 @@ 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
|
||||
|
|
@ -157,9 +154,10 @@ _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
|
||||
cr142-autofill-incomplete-formfielddata.patch
|
||||
cr140-rust-pre1.89.patch
|
||||
"
|
||||
# Avoid conflicting providers
|
||||
sonameprefix="$pkgname:"
|
||||
|
|
@ -179,7 +177,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_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST/}"
|
||||
export CXXFLAGS="${CXXFLAGS/-D_LIBCPP_ENABLE_HARDENED_MODE=1/}"
|
||||
export CPPFLAGS="${CPPFLAGS/-g/} -D__DATE__= -D__TIME__= -D__TIMESTAMP__="
|
||||
case "$CARCH" in
|
||||
aarch64|arm*|riscv64)
|
||||
|
|
@ -236,8 +234,8 @@ snapshot() {
|
|||
--nohooks
|
||||
|
||||
python3 src/build/landmines.py
|
||||
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 -o src/build/util/LASTCHANGE \
|
||||
--revision src/gpu/webgpu/DAWN_VERSION
|
||||
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 \
|
||||
|
|
@ -311,7 +309,7 @@ prepare() {
|
|||
git commit -m "init"
|
||||
git tag "$_gittag"
|
||||
git pack-refs
|
||||
yarn install --immutable --mode=skip-build
|
||||
yarn install --frozen-lockfile --ignore-scripts
|
||||
)
|
||||
|
||||
(
|
||||
|
|
@ -319,14 +317,9 @@ 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
|
||||
|
|
@ -342,7 +335,6 @@ prepare() {
|
|||
fontconfig
|
||||
freetype
|
||||
harfbuzz-ng
|
||||
highway
|
||||
libdrm
|
||||
libjpeg
|
||||
libsecret
|
||||
|
|
@ -491,7 +483,6 @@ _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
|
||||
|
|
@ -565,13 +556,13 @@ lang() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
6dc7161f6df396e2b7569b0a607e264b43a2d7215de65164dc2ca04c019df93ea0a67dec2490071c09c8a03f90605faaf3880f2d843f838bb5d841bba204c298 electron-v39.2.7-142.0.7444.235.tar.zst
|
||||
30b298549804e7753b0b639b72417ba081e964676862b6c7d73ad73cdf806883f20e4a4b36e67a6c375eaf2dd97686cf21b90b062400d3b61fba86da4d239bfa copium-142.0.tar.gz
|
||||
127017c1b96dd3cfb438bd079e3f14338e38c646fa26d8bc0b4dabc31a615b22a88d742cb7ef8dc9c28eaeb9c38198b78b176edaec8ae81287ba3f04388377be electron-v38.4.0-140.0.7339.240.tar.zst
|
||||
472d7879560c4d62cda34b72288a2dda4917e9b5854a02eda22686a5e5cb3aeae0787f0d4e17c2b72c201178b0864a549226af57db79ad70902f3e85289a8ab6 copium-140.2.tar.gz
|
||||
69b45005451ccd69c354b4c2910e92371cb801665f5e300dbecd36f8bc4ce68e77a431b5dac07c0937787debb4e93b7aadefa0a1e76c4ae334d2547ca3ca14ff 0001-hotfix-ignore-a-new-warning-in-rust-1.89.patch
|
||||
dc254dd79e135aeac3e9c03eb055e3bc17980fc213f8c4d8d7921a575be7f9c26b91f110a6dcb01c0a824a7d9375c09f8a61c8858c20c11d79c03f873e2cb3f9 compiler.patch
|
||||
b3eb30c66e80e8273ce180ee40ad746d819e11a18ab17dd88554ae9bd0734bfd7a9b1df2d6bac3b9d143803a3a18fe75bad4526ef8c225e29630a29827d544f0 compiler.patch
|
||||
1bee1448e409fedff635388ee6f1efa6d23c29ae3e6b6fd31452c56974adb40fcd0088c82d1e643d549154663e402942cbab9807dff5aff2d8997a09de6f5655 disable-dns_config_service.patch
|
||||
0ef9168b8b1a4779bc4c8df718735e06d29e459dcfd00f8cbf9a4edaf9fade8089225219e46dead7de81de716bddc8d745dc2069db0ee7f7e5d2f64c5236e2ab disable-failing-tests.patch
|
||||
0050857a9a9553c10fd502fe70606bce48269c9b48fa82ce9e111575637a0c03578e923c82fc639fcb574fc3337aeef50d8a0aea5e512ae4eab83b8c3d732cf6 fc-cache-version.patch
|
||||
872bea229ce2442bfd15eae89ac2559e3b3e0f72d8d6435c941774fa052706362f0d4e524a167136a970a5a8009bcf406ab2bd4d6d2b4b5098f6a7a6368caa45 fc-cache-version.patch
|
||||
87f63d83139562e058f3f649eb1f62bf100dd92c2bb6ee393fdce0c8f7d7c188a7062394647aafe4e82c0a8fbbffeb613edc5c8dd9415dd9dda777827ea371c5 fix-ffmpeg-codec-list.patch
|
||||
c63dee5044353eb306a39ca1526158c0f003ab310ecb03d1c368dc2a979454590c84b8d3c15484517d5e66bb8add9b231da9abbadf2e50850abd72ac1345c4ab fstatat-32bit.patch
|
||||
33ee60863cc438ef57ffef92ba4cf67a856a5ffc16138bce241bcf87e47b15154aa86918e793c26f7ec4dc62a445257ad5673ed7001daf22c4043cf6cc57da7f gdbinit.patch
|
||||
|
|
@ -594,8 +585,6 @@ 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,12 +1,14 @@
|
|||
--- ./build/config/compiler/BUILD.gn.orig
|
||||
+++ ./build/config/compiler/BUILD.gn
|
||||
@@ -658,22 +658,6 @@
|
||||
@@ -662,24 +662,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
- # TODO(crbug.com/40283598): This causes binary size growth and potentially
|
||||
- # other problems.
|
||||
- if (default_toolchain != "//build/toolchain/cros:target") {
|
||||
- # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version.
|
||||
- if (default_toolchain != "//build/toolchain/cros:target" &&
|
||||
- !llvm_android_mainline) {
|
||||
- cflags += [
|
||||
- "-mllvm",
|
||||
- "-split-threshold-for-reg-with-hint=0",
|
||||
|
|
@ -23,7 +25,7 @@
|
|||
# TODO(crbug.com/40192287): Investigate why/if this should be needed.
|
||||
if (is_win) {
|
||||
cflags += [ "/clang:-ffp-contract=off" ]
|
||||
@@ -1273,8 +1257,8 @@
|
||||
@@ -1282,8 +1264,8 @@
|
||||
# simplicity we always explicitly set the architecture.
|
||||
if (current_cpu == "x64") {
|
||||
if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) {
|
||||
|
|
@ -34,7 +36,7 @@
|
|||
} else {
|
||||
cflags += [ "-m64" ]
|
||||
ldflags += [ "-m64" ]
|
||||
@@ -1282,8 +1266,8 @@
|
||||
@@ -1291,8 +1273,8 @@
|
||||
cflags += [ "-msse3" ]
|
||||
} else if (current_cpu == "x86") {
|
||||
if (is_clang && !is_android && !is_chromeos_device) {
|
||||
|
|
@ -45,7 +47,7 @@
|
|||
} else {
|
||||
cflags += [ "-m32" ]
|
||||
ldflags += [ "-m32" ]
|
||||
@@ -1294,8 +1278,8 @@
|
||||
@@ -1303,8 +1285,8 @@
|
||||
]
|
||||
} else if (current_cpu == "arm") {
|
||||
if (is_clang && !is_android && !is_chromeos_device) {
|
||||
|
|
@ -56,7 +58,7 @@
|
|||
}
|
||||
cflags += [
|
||||
"-march=$arm_arch",
|
||||
@@ -1306,8 +1290,8 @@
|
||||
@@ -1315,8 +1297,8 @@
|
||||
}
|
||||
} else if (current_cpu == "arm64") {
|
||||
if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) {
|
||||
|
|
@ -67,7 +69,7 @@
|
|||
}
|
||||
} else if (current_cpu == "mipsel") {
|
||||
ldflags += [ "-Wl,--hash-style=sysv" ]
|
||||
@@ -1551,22 +1535,22 @@
|
||||
@@ -1560,22 +1542,22 @@
|
||||
ldflags += [ "-maix64" ]
|
||||
}
|
||||
} else if (is_clang) {
|
||||
|
|
@ -96,7 +98,7 @@
|
|||
}
|
||||
cflags += [
|
||||
"-mabi=lp64d",
|
||||
@@ -1574,8 +1558,8 @@
|
||||
@@ -1583,8 +1565,8 @@
|
||||
]
|
||||
} else if (current_cpu == "s390x") {
|
||||
if (is_clang) {
|
||||
|
|
@ -107,7 +109,7 @@
|
|||
}
|
||||
cflags += [ "-m64" ]
|
||||
ldflags += [ "-m64" ]
|
||||
@@ -2274,7 +2258,7 @@
|
||||
@@ -2290,7 +2272,7 @@
|
||||
defines = [ "_HAS_NODISCARD" ]
|
||||
}
|
||||
} else {
|
||||
|
|
@ -118,22 +120,24 @@
|
|||
cflags += [ "-Wextra" ]
|
||||
--- ./build/config/rust.gni.orig
|
||||
+++ ./build/config/rust.gni
|
||||
@@ -178,11 +178,11 @@
|
||||
@@ -188,13 +188,13 @@
|
||||
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") {
|
||||
float_suffix = "hf"
|
||||
@@ -200,25 +200,21 @@
|
||||
@@ -213,31 +213,27 @@
|
||||
# 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
|
||||
|
|
@ -143,29 +147,35 @@
|
|||
- 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 + "-alpine-linux-musl"
|
||||
+ rust_abi_target = current_cpu + "-unknown-linux-musl"
|
||||
cargo_target_abi = ""
|
||||
}
|
||||
} 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 @@
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
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-11";
|
||||
- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-reindex1-10";
|
||||
+ auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
|
||||
bool cache_exists = access(cache.c_str(), F_OK) == 0;
|
||||
return !cache_exists;
|
||||
|
|
|
|||
29
backports/electron/gperf-3.2-fix.patch
Normal file
29
backports/electron/gperf-3.2-fix.patch
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
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:
|
||||
17
backports/electron/rust_no_alloc_shim_is_unstable_v2.patch
Normal file
17
backports/electron/rust_no_alloc_shim_is_unstable_v2.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
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.12.3
|
||||
pkgrel=1
|
||||
pkgver=1.11.100
|
||||
pkgrel=4
|
||||
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=39
|
||||
_electronver=35
|
||||
depends="
|
||||
electron~$_electronver
|
||||
font-inconsolata
|
||||
|
|
@ -36,15 +36,14 @@ source="
|
|||
|
||||
add-alpine-targets.patch
|
||||
use-system-headers.patch
|
||||
tasje-fixes.patch
|
||||
tasje-one-hak.patch
|
||||
tasje-no-fuses.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:
|
||||
|
|
@ -95,7 +94,6 @@ prepare() {
|
|||
|
||||
msg "Fetch element-desktop dependencies"
|
||||
yarn install --frozen-lockfile --ignore-scripts
|
||||
patch -p1 -i patches/@types+auto-launch+5.0.5.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
|
|
@ -150,7 +148,7 @@ package() {
|
|||
|
||||
cp -r $resources/app.asar.unpacked "$pkgdir"/usr/lib/element-desktop/app.asar.unpacked
|
||||
|
||||
install -Dm644 $resources/build/icon.png "$pkgdir"/usr/lib/element-desktop/build/icon.png
|
||||
install -Dm644 $resources/img/element.png "$pkgdir"/usr/lib/element-desktop/img/element.png
|
||||
|
||||
install -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname
|
||||
|
||||
|
|
@ -161,11 +159,12 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
f302907165a35f4a4f069f5aec6bc28edeba3d09c75f483c818e3930ceb4e838e5bb91ad9d42019a11a661d6e656da3c1ff25507cbb281c69183aac7d499e882 element-desktop-1.12.3.tar.gz
|
||||
b845ff71ca39d7ae4dca9bb55e821bfdf911b12de5d012ba55d598f3287046fb2b525bce608925a9fa8fa7d39a4ceed9b4213d5d1c1d0c9e6b9b72154c9a35a5 element-web-1.12.3.tar.gz
|
||||
a8ac5180df3b204fb1947ecaa4786c9c5fdd53ffe705f4dfe97a0b051fa371fd9102c41a898e8783cf25f732674da2d987ef315f2facc7b18b20ef214ea0f81d element-desktop-1.11.100.tar.gz
|
||||
e3e50fd867f9b7388eb22778ccb97d6504a480ab4e2aa9eba10fd0f4d0324a1525c2afe6c80181567d8e554f03086a9e0994a6221cfcb0ca29700754c8f31cac element-web-1.11.100.tar.gz
|
||||
4747893ed3e43d3074e9afe1cdd668a6be0de073d439205fe8c38c5e0f4091cc76e3cd15d98818bea5139add29501d8d07e83c58e9da230a4ce5bb538d388f80 add-alpine-targets.patch
|
||||
755b17f7b828eb6920c06a6950ad4e14c32c99d22e9c05fcef7a081b5d2034adb03db3958aa5209c99fb7201f4d888c2383fc9864c5e743dd33f8b5c4925acd7 use-system-headers.patch
|
||||
a5d90dd1ec7aec0dc18b73eb3a6fd51ac1223e381c492d24e7dc0fd2ade955ac727cebbaff6ffa27c7e18d9acf712c709de3f886ee2ddf87ab3b028d3eb461c6 tasje-fixes.patch
|
||||
92e69817fdc71f60c5c7dcbd3c7b13428cc18141cf5f27720326390f6817bec85fb1c60f8016b3a8fa275f601b16f646cda12b5e379a349368eef2f801b4de7a tasje-one-hak.patch
|
||||
a1399662bdbe5e7256d31f7bdc05070e7009d70113699856b025a1d5ab1d9b8bf1020072a08255d4eddab0874044131dec296f98a91ba5c12ca61948b1d18dbe tasje-no-fuses.patch
|
||||
ec635fde026f7fce8e8cc57960b5b9dcec4418416d4867ed47711422d48f068bb58a3c9ceb7715efc9c177beca3788da6b0babc9b689ea8c0724a0395f2b85f8 no-source-maps.patch.web
|
||||
aaf46476bac403aa5204aa265fcf0654fad4c149fd74d0ec4273c051a5549943384cae3cdd62c5b78fdedfed55c11ecceb898b886e44165cbe7e30953a095cf9 use-system-fonts.patch.web
|
||||
afc588311dc3b566a754e3e7fe6b37b99a06d47b8bbce0ed9acca8ef308fdab0bd1d41b406199e5cbdd86bdce695ff847cd8668857a235cbdc292ad8b899c063 element-desktop
|
||||
|
|
|
|||
52
backports/element-desktop/tasje-no-fuses.patch
Normal file
52
backports/element-desktop/tasje-no-fuses.patch
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
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",
|
||||
|
|
@ -5,22 +5,9 @@ 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
|
||||
@@ -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 @@
|
||||
@@ -74,10 +74,6 @@
|
||||
},
|
||||
files: [
|
||||
"package.json",
|
||||
|
|
@ -30,4 +17,4 @@ console.log interferes with tasje, which reads config from node stdout
|
|||
- },
|
||||
"lib/**",
|
||||
],
|
||||
extraResources: ["build/icon.*", "webapp.asar"],
|
||||
extraResources: [
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=freetube
|
||||
pkgver=0.23.12
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
pkgdesc="An open source desktop YouTube player built with privacy in mind."
|
||||
arch="x86_64 aarch64" # blocked by electron
|
||||
license="AGPL-3.0-only"
|
||||
|
|
|
|||
33
backports/git-extras/APKBUILD
Normal file
33
backports/git-extras/APKBUILD
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# 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
|
||||
"
|
||||
45
backports/llhttp/APKBUILD
Normal file
45
backports/llhttp/APKBUILD
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
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
|
||||
"
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
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
|
||||
+}
|
||||
|
|
@ -1,586 +0,0 @@
|
|||
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,72 +0,0 @@
|
|||
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.50.4.0
|
||||
pkgver=3.49.1.0
|
||||
pkgrel=0
|
||||
pkgdesc="Another Python SQLite Wrapper"
|
||||
url="https://github.com/rogerbinns/apsw"
|
||||
|
|
@ -41,6 +41,6 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
71db63b0a7f550c9a5d3f112d47c24953472cc6555f0b57198428997d5cf5acf73629f2da8d5d53a2473067ba19d4b655cce467a5e2267e5bd6e8cf0d9883579 py3-apsw-3.50.4.0.zip
|
||||
faae9cceb462428345fd2815a970dfc80574848f87bade7cceb09aed17127d020fd16402b3d36afe0fbc6bf707a408feea0ce038486c2a68a2ab1077a9b68d0a py3-apsw-3.49.1.0.zip
|
||||
8f3957bd6fecb5660a7cab367043e4ccdacd87d8963bbe41cc3d525265de28f08aa207099658d785be29c5c90b818c1418f766995cd780d02b8e36252a389758 detect-sqlite-config.patch
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
# 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
|
||||
"
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
# 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
|
||||
"
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
--- ./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
|
||||
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
# 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
|
||||
"
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
--- ./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]
|
||||
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
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
|
||||
25
backports/rkdeveloptool/APKBUILD
Normal file
25
backports/rkdeveloptool/APKBUILD
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# 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=6
|
||||
pkgrel=5
|
||||
pkgdesc="A multi-purpose WAVE data processing and reporting utility"
|
||||
url="http://shnutils.freeshell.org/shntool/"
|
||||
arch="all"
|
||||
|
|
@ -13,7 +13,6 @@ 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() {
|
||||
|
|
@ -25,8 +24,7 @@ build() {
|
|||
--sysconfdir=/etc \
|
||||
--mandir=/usr/share/man \
|
||||
--infodir=/usr/share/info \
|
||||
--localstatedir=/var \
|
||||
CFLAGS="--std=gnu17"
|
||||
--localstatedir=/var
|
||||
make
|
||||
}
|
||||
|
||||
|
|
@ -65,5 +63,4 @@ 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
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
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.76.0
|
||||
pkgver=7.71.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=21
|
||||
_llvmver=20
|
||||
depends="
|
||||
electron
|
||||
font-barlow
|
||||
|
|
@ -29,6 +29,7 @@ makedepends="
|
|||
cmake
|
||||
crc32c-dev
|
||||
dav1d-dev
|
||||
double-conversion-dev
|
||||
electron-dev
|
||||
electron-tasje
|
||||
ffmpeg-dev
|
||||
|
|
@ -65,9 +66,9 @@ makedepends="
|
|||
options="net !check"
|
||||
|
||||
# use _check_depends to validate this
|
||||
_libsignalver=0.83.0
|
||||
_ringrtcver=2.59.0
|
||||
_webrtcver=7339c
|
||||
_libsignalver=0.78.3
|
||||
_ringrtcver=2.57.0
|
||||
_webrtcver=7204c
|
||||
_sqlcipherver=2.4.4
|
||||
|
||||
source="
|
||||
|
|
@ -84,14 +85,15 @@ 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
|
||||
"
|
||||
|
|
@ -216,6 +218,7 @@ prepare() {
|
|||
brotli
|
||||
crc32c
|
||||
dav1d
|
||||
double-conversion
|
||||
ffmpeg
|
||||
flatbuffers
|
||||
fontconfig
|
||||
|
|
@ -305,7 +308,7 @@ prepare() {
|
|||
cd "$builddir"/libsignal/node
|
||||
|
||||
# fix target
|
||||
sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' build_node_bridge.py
|
||||
sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' binding.gyp
|
||||
|
||||
msg "Installing libsignal js dependencies"
|
||||
yarn --ignore-scripts --frozen-lockfile
|
||||
|
|
@ -385,7 +388,8 @@ build() {
|
|||
cd "$builddir"/libsignal/node
|
||||
|
||||
msg "Building libsignal"
|
||||
npm_config_nodedir=/usr/include/electron/node_headers python3 build_node_bridge.py
|
||||
node-gyp configure --nodedir=/usr/include/electron/node_headers --build-from-source
|
||||
node-gyp build --nodedir=/usr/include/electron/node_headers --build-from-source
|
||||
|
||||
mkdir -p prebuilds/linux-$chromium_arch
|
||||
mv build/Release/libsignal_client_linux_$chromium_arch.node prebuilds/linux-$chromium_arch/node.napi.node
|
||||
|
|
@ -481,25 +485,26 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
c847d3679df77ca137b4c3345b3b941a08639677efcd5eeea6613572fa90b8ad1b8d1d53e077902d4f47c05c480c408787024906d6917dcbf4a840838bf6d79d Signal-Desktop-7.76.0.tar.gz
|
||||
43271a64f65a4cf0e7855fb84476ff811ef248665cb74fdaa9ce12b02d2039abdf8fca28554e7e884eabaa9bdd77e8f5383e6354e589436671675ddab7194d81 libsignal-0.83.0.tar.gz
|
||||
ba4a1850bd096470a6370a0bf730550f64df4a2349cacca3b4864ef1a3a04713dd200307b9ad7ba47425322573148d6bd2ce85c11c2a49232d41e739ef5e788d ringrtc-2.59.0.tar.gz
|
||||
da16a4759fc8ab55d8c480c4fe79bdee9f8a165ae2c4a9f8df250e8e0ef6aba234c07adeca8b202490a422e41c45b39c1dda0cb22a458583d0dfd488d5ea8c91 Signal-Desktop-7.71.0.tar.gz
|
||||
fc2170bb029628efed5dbae795471026387e501bc2ca7075a5e210df6d81103608361c8163759c7d73f9e82b61e2a5e46d8bf32f40a0c5a19e5fc556a2ff1413 libsignal-0.78.3.tar.gz
|
||||
205da87c64a000cc439b2c7bfddb923eac5ab70a0611dab9858eb2e0c0a71227722e6d13eaba2a458807cf27ff93641b8f549580f5e1fc3781ab3c7fb29d9edb ringrtc-2.57.0.tar.gz
|
||||
79dd21548329b4ee409fa73b013c18ed4e85038aeef7a4cfe196fd6b5113279da8ad287a259fa6a6b546b52a5a6dd6ae2cb1050007043d25f76d7917dbbbc02d node-sqlcipher-2.4.4.tar.gz
|
||||
06ffb4cdb82f818cc419d42ff2de03977d7e94c5f3eb8ac8a401bcb52ec38fa988c5d757f4bd79e5d9968fa83754fc9046180c950961c90a59eeb6130bf5552f webrtc-7339c.tar.zst
|
||||
5dd61ebe525c592020a7246337dd837a8cd5de45b201afdc5b75cf3b25c5afcf6bbbae2bb677677807157697fdfb0be51681c0a8e68839e4f1eee30d3dbcad48 webrtc-7204c.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
|
||||
3dd3bf2f6925e2672a20ef56bbac519099d54e912e5a434a0649ea152db5039dbe1bbade3430b485ae9a6085d747dd88602d4efc5198d5a4dbf1b8359de11f94 signal-rollback-locale-changes.patch
|
||||
aca92e4de6cd005d660d7e8b99607de96ca2d7dc220e3465247d517e915e4d41a4b0eb519e85c5eca1c81cd8bac9821acd03ff57f1603918987829c6ea7757b4 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
|
||||
a9374040dcbc9203c8a3b4ad1cf97d58805cd4755f4f585a988b113697ea97d5900ad68f6a30aa0621f34ab54ae98984a8ce228a2d08186ee1bf3384abf3f364 webrtc-shared-libs.patch
|
||||
8ba740f0552872ddf383545a6bb99bf7bcdd2610cee51c6e69dc667893006facd5d72f62274e25c1a58e1a58c8e8b0b5303b648e4c74a71925639cc9691c72c4 webrtc-compiler.patch
|
||||
d44f62e4ccf2d9094d6ed217b24fa2cde276c7f64f4d6fd26e84dfc021ea667abcb21f9e4666cfd0d88d6ee0a6b1a20b6cc68c8720462711e3b5451e263f6c4a webrtc-use-only-payloadtypesuggester-for-pt-assignement.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
|
||||
ace87a2be03c6965012a87a10918c5923b10d5e74a7169c1e1384c15b34a367d0c47e806764c368cc30dad01a3dce54b50587abea9831130178db3806619abc8 webrtc-fix-declaration-that-change-meaning-inside-class.patch
|
||||
d17ecd89e867b24a21144d267e1bf7d09e3898018a0f9fcd87084b9de8091bc56f904a1cabdc487a8e46ab509c11ddd363c574d75d85a79e3c4d9424a13b2093 webrtc-rtcbase-platform-thread-type-do-not-include-linux-prctl-header.patch
|
||||
8e1de53ec1608fa05972af605213e8423b8f88cfd8d6a1989bdcaf77ed1420871c39efa15c56ffeccb6ff86677acc5bc436020f3554bee4f94930c7d9f4e16b6 signal-desktop.sh
|
||||
87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 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
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
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 lodash from 'lodash';
|
||||
import { merge } 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.js';
|
||||
-import { isLocaleMessageType } from '../util/setupI18nMain';
|
||||
-
|
||||
-async function compact({
|
||||
- sourceDir,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
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) {
|
||||
@@ -1303,8 +1303,8 @@ config("compiler_cpu_abi") {
|
||||
]
|
||||
@@ -1241,8 +1241,8 @@ config("compiler_cpu_abi") {
|
||||
}
|
||||
} else if (current_cpu == "arm") {
|
||||
if (is_clang && !is_android && !is_chromeos_device) {
|
||||
if (is_clang && !is_android && !is_nacl && !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" ]
|
||||
}
|
||||
cflags += [
|
||||
"-march=$arm_arch",
|
||||
@@ -1315,8 +1315,8 @@ config("compiler_cpu_abi") {
|
||||
}
|
||||
if (!is_nacl) {
|
||||
cflags += [
|
||||
@@ -1256,8 +1256,8 @@ config("compiler_cpu_abi") {
|
||||
} else if (current_cpu == "arm64") {
|
||||
if (is_clang && !is_android && !is_fuchsia && !is_chromeos_device) {
|
||||
if (is_clang && !is_android && !is_nacl && !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") {
|
||||
} else if (current_cpu == "mipsel" && !is_nacl) {
|
||||
ldflags += [ "-Wl,--hash-style=sysv" ]
|
||||
@@ -1267,8 +1267,8 @@ config("compiler_cpu_abi") {
|
||||
cflags += [ "--target=mipsel-linux-android" ]
|
||||
|
|
|
|||
31
backports/signal-desktop/webrtc-gcc13.patch
Normal file
31
backports/signal-desktop/webrtc-gcc13.patch
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
--- ./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 {
|
||||
|
||||
|
||||
23
backports/signal-desktop/webrtc-pipewire-1.4.patch
Normal file
23
backports/signal-desktop/webrtc-pipewire-1.4.patch
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
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" ]
|
||||
}
|
||||
136
backports/signal-desktop/webrtc-rollback-red.patch
Normal file
136
backports/signal-desktop/webrtc-rollback-red.patch
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
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) {
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
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",
|
||||
@@ -530,7 +530,6 @@ if (!build_with_chromium) {
|
||||
@@ -472,7 +472,6 @@
|
||||
]
|
||||
|
||||
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
|
||||
@@ -129,7 +128,6 @@ source_set("gtest") {
|
||||
@@ -133,7 +133,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 (!build_with_chromium) {
|
||||
if (is_nacl || !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,17 +62,3 @@ 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,14 +407,16 @@ 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,7 +14,6 @@
|
||||
@@ -14,9 +14,7 @@
|
||||
#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_;
|
||||
};
|
||||
|
|
@ -457,3 +459,11 @@ 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,11 +3,10 @@
|
|||
# Maintainer: Fabricio Silva <hi@fabricio.dev>
|
||||
pkgname=thelounge
|
||||
pkgver=4.4.3
|
||||
pkgrel=0
|
||||
pkgrel=1
|
||||
pkgdesc="Modern, responsive, cross-platform, self-hosted web IRC client"
|
||||
url="https://thelounge.chat"
|
||||
# build broken against node 24
|
||||
#arch="all !riscv64" # riscv64 gets SIGILL
|
||||
arch="all !riscv64" # riscv64 gets SIGILL
|
||||
license="MIT"
|
||||
depends="nodejs"
|
||||
makedepends="yarn py3-setuptools"
|
||||
|
|
@ -18,7 +17,7 @@ source="
|
|||
thelounge.initd
|
||||
thelounge.confd
|
||||
"
|
||||
options="net" # net for npm
|
||||
options="!check net" # net for npm
|
||||
|
||||
case $CARCH in
|
||||
# loongarch64: 2 tests failed on the builder
|
||||
|
|
|
|||
13
backports/thelounge/allow-https-for-connect-src.patch
Normal file
13
backports/thelounge/allow-https-for-connect-src.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
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
|
||||
19
backports/thelounge/no-version-test.patch
Normal file
19
backports/thelounge/no-version-test.patch
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
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]+/);
|
||||
});
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
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
|
||||
"
|
||||
11
pmos/device-pine64-pinenote/50-touchscreen.conf
Normal file
11
pmos/device-pine64-pinenote/50-touchscreen.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
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
|
||||
9
pmos/device-pine64-pinenote/81-libinput-pinenote.rules
Normal file
9
pmos/device-pine64-pinenote/81-libinput-pinenote.rules
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
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"
|
||||
2
pmos/device-pine64-pinenote/82-ebc-rockchip.rules
Normal file
2
pmos/device-pine64-pinenote/82-ebc-rockchip.rules
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
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"
|
||||
77
pmos/device-pine64-pinenote/APKBUILD
Normal file
77
pmos/device-pine64-pinenote/APKBUILD
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# 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
|
||||
"
|
||||
37
pmos/device-pine64-pinenote/deviceinfo
Normal file
37
pmos/device-pine64-pinenote/deviceinfo
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# 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"
|
||||
5
pmos/device-pine64-pinenote/local-overrides.quirks
Normal file
5
pmos/device-pine64-pinenote/local-overrides.quirks
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[PineNote]
|
||||
MatchName=cyttsp5
|
||||
AttrPalmPressureThreshold=28
|
||||
AttrThumbPressureThreshold=27
|
||||
AttrSizeHint=210x157
|
||||
5
pmos/device-pine64-pinenote/modules-initfs
Normal file
5
pmos/device-pine64-pinenote/modules-initfs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
tps65185-regulator
|
||||
rockchip_ebc
|
||||
drm_kms_helper
|
||||
drm_shmem_helper
|
||||
pvi_waveform
|
||||
2
pmos/device-pine64-pinenote/panfrost.conf
Normal file
2
pmos/device-pine64-pinenote/panfrost.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
softdep panfrost pre: rockchip_ebc
|
||||
# blacklist rockchip_ebc
|
||||
6
pmos/device-pine64-pinenote/phoc.ini
Normal file
6
pmos/device-pine64-pinenote/phoc.ini
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
# /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
|
||||
5
pmos/device-pine64-pinenote/rockchip_ebc.conf
Normal file
5
pmos/device-pine64-pinenote/rockchip_ebc.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# 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
|
||||
59
pmos/linux-pine64-pinenote/APKBUILD
Normal file
59
pmos/linux-pine64-pinenote/APKBUILD
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# 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
|
||||
"
|
||||
7666
pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64
Normal file
7666
pmos/linux-pine64-pinenote/config-pine64-pinenote.aarch64
Normal file
File diff suppressed because it is too large
Load diff
34
pmos/pinenote-dbus-service/APKBUILD
Normal file
34
pmos/pinenote-dbus-service/APKBUILD
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# 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
|
||||
"
|
||||
10
pmos/pinenote-dbus-service/pinenote.initd
Normal file
10
pmos/pinenote-dbus-service/pinenote.initd
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#!/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.25
|
||||
pkgrel=0
|
||||
pkgver=0.6.21
|
||||
pkgrel=1
|
||||
pkgdesc="Web app for browsing, reading and downloading eBooks stored in a Calibre database"
|
||||
arch='noarch'
|
||||
url="https://github.com/janeczku/calibre-web"
|
||||
|
|
@ -10,27 +10,26 @@ license='GPL-3.0-only'
|
|||
depends="
|
||||
py3-apscheduler
|
||||
py3-babel
|
||||
py3-bleach
|
||||
py3-backports_abc
|
||||
py3-blinker
|
||||
py3-chardet
|
||||
py3-cryptography
|
||||
py3-flask-babel
|
||||
py3-flask-login
|
||||
py3-flask-limiter
|
||||
py3-flask-principal
|
||||
py3-flask-wtf
|
||||
py3-flask-httpauth
|
||||
py3-goodreads
|
||||
py3-levenshtein
|
||||
py3-iso639
|
||||
py3-lxml
|
||||
py3-magic
|
||||
py3-netifaces
|
||||
py3-pypdf
|
||||
py3-pycountry
|
||||
py3-regex
|
||||
py3-pypdf2
|
||||
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
|
||||
|
|
@ -57,7 +56,7 @@ package() {
|
|||
install -D -m 644 "$srcdir"/calibre-web.conf "$pkgdir"/etc/conf.d/calibre-web
|
||||
}
|
||||
sha512sums="
|
||||
878d057613b7f89e57ad536c415bb4dc346d5f8c4ca2660517b68c70c4eefa5358317fe0e917738d468cb003358a0341411155289d952b1aa6cd4a022a84c8f0 calibre-web-0.6.25.tar.gz
|
||||
d2f07eec0b6c9f65e68ae0b72fddd14444eb8be8b0fee997ec7caaa1feebb8a26603844752347547becde501669af5bce69e9eab466a28fd4b10624b65c9afcf calibre-web-0.6.21.tar.gz
|
||||
4aba825eb12f44eb0912cc6981b46bec9b77ad114627564c9c7585862a099c7d1ff8deec5f15d047319805e2b9a3e2d128b2d1292dd92293a7e72359009a480f calibre-web.conf
|
||||
62859a8a304216dc0dbfb7f2e8144a50d348c6621f5b292c08aa97a872ada67b52d36b567546fd0f4c439dbefe0bbe0e4fb1e1affbe507278b4a8d36ed3fa2a9 calibre-web.initd
|
||||
"
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
# 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
|
||||
"
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
#!/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 +0,0 @@
|
|||
filebrowser.pre-install
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
#!/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
7568
user/filebrowser/frontend-package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,8 +1,9 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=kb
|
||||
pkgver=0.1.8
|
||||
pkgrel=0
|
||||
_pkgreal=kb-manager
|
||||
pkgver=0.1.7
|
||||
pkgrel=2
|
||||
pkgdesc="A command line minimalist knowledge base manager"
|
||||
arch="noarch"
|
||||
url="https://github.com/gnebbia/kb"
|
||||
|
|
@ -10,8 +11,9 @@ 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="$pkgname-$pkgver.tar.gz::https://github.com/gnebbia/kb/archive/refs/tags/v$pkgver.tar.gz"
|
||||
source="https://files.pythonhosted.org/packages/source/k/kb-manager/kb-manager-$pkgver.tar.gz"
|
||||
subpackages="$pkgname-pyc"
|
||||
builddir="$srcdir"/$_pkgreal-$pkgver
|
||||
|
||||
build() {
|
||||
gpep517 build-wheel \
|
||||
|
|
@ -28,5 +30,5 @@ package() {
|
|||
.dist/*.whl
|
||||
}
|
||||
sha512sums="
|
||||
95fab9b5baa728795a6ce1e126fe90dd599528bc13f2274c5484dc43bdbca8fd5807e8ed4ec4e9ffa8382c5ec71662022d792e8ae941bd1629ed47c72d87d7a2 kb-0.1.8.tar.gz
|
||||
f0dff69a5e95339ea22d0a9d1260473f7b0b6ace184936896e164172aecb77672e9e0a228159abc95e50f30de2ec9ca5185ffbd825dce87edfec267bc56c75dc kb-manager-0.1.7.tar.gz
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,82 +0,0 @@
|
|||
# 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
|
||||
"
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
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")
|
||||
|
|
@ -1,54 +1,29 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=openterface-qt
|
||||
pkgver=0.5.7
|
||||
pkgver=0.3.13
|
||||
pkgrel=0
|
||||
pkgdesc="Openterface Mini-KVM Host Application"
|
||||
# armhf: missing qt6-qtmultimedia
|
||||
# riscv64: missing libgtk-3
|
||||
arch="all !armhf !riscv64"
|
||||
arch="all !armhf" # missing qt6-qtmultimedia
|
||||
url="https://openterface.com/"
|
||||
license="AGPL-3.0-only"
|
||||
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
|
||||
"
|
||||
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"
|
||||
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
|
||||
# OPENTERFACE_BUILD_STATIC: do not build vendored dependencies
|
||||
cmake -DOPENTERFACE_BUILD_STATIC=OFF ..
|
||||
qmake6 ..
|
||||
}
|
||||
|
||||
build() {
|
||||
ninja -C build
|
||||
make -C build
|
||||
}
|
||||
|
||||
package() {
|
||||
|
|
@ -58,16 +33,9 @@ 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="
|
||||
996415d6f7d3ed950901c380a0520ddab8c31e8d3c2e2bb3a5f631a5600cace6bcf6bf89871e4e4ef818009eeb08c448fd793e1e4758ecccf1e1a21ff04fd560 openterface-qt-0.5.7.tar.gz
|
||||
7261ce2875b1617d27945de591c72779d2305889b7f53bb6758cb5e1d4dc01c969fef1638726d868f75e995c44a8e2c453cac45c90cfb3d140b8120523c4038d openterface-qt-0.3.13.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
|
||||
"
|
||||
|
|
@ -5,9 +5,7 @@ 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."
|
||||
# blocked by luckperms
|
||||
# armv7: blocked my openjdk21-jdk
|
||||
#arch='noarch !armv7'
|
||||
arch='noarch'
|
||||
url="https://essentialsx.net/"
|
||||
license="GPL-3.0"
|
||||
depends="
|
||||
|
|
|
|||
|
|
@ -5,9 +5,7 @@ pkgver=5.4.151
|
|||
_gittag=0fef481d480737528491fc0b3b8487eb1612f955
|
||||
pkgrel=0
|
||||
pkgdesc="An advanced permissions plugin for Bukkit/Spigot, BungeeCord and Sponge."
|
||||
# dependency not available upstream anymore
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
#arch='noarch !armv7'
|
||||
arch='noarch'
|
||||
url="https://github.com/lucko/LuckPerms"
|
||||
license="MIT"
|
||||
depends="papermc>=1.8.8"
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ pkgname=papermc-plugin-vault
|
|||
pkgver=1.7.3
|
||||
pkgrel=0
|
||||
pkgdesc="Vault of common APIs for Bukkit Plugins"
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
arch='noarch !armv7'
|
||||
arch='noarch'
|
||||
url="https://github.com/MilkBowl/Vault"
|
||||
license="MIT"
|
||||
depends="papermc>=1.8.8"
|
||||
|
|
|
|||
|
|
@ -5,9 +5,7 @@ pkgver=7.3.13
|
|||
_pkgver=$pkgver
|
||||
pkgrel=0
|
||||
pkgdesc="WorldEdit is an easy-to-use in-game Minecraft map editor"
|
||||
# missingupstream dependencies
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
#arch='noarch !armv7'
|
||||
arch='noarch !aarch64'
|
||||
url="https://github.com/EngineHub/WorldEdit"
|
||||
license="GPL-3.0"
|
||||
depends="papermc>=1.13.2"
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ pkgver=7.0.13_beta1
|
|||
_gittag=2f13ae0444409376feb6c7674591142fe854e12e
|
||||
pkgrel=0
|
||||
pkgdesc="WorldGuard lets you and players guard areas of land against griefers and undesirables"
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
arch='noarch !armv7'
|
||||
arch='noarch'
|
||||
url="https://github.com/EngineHub/WorldGuard"
|
||||
license="GPL-3.0"
|
||||
depends="papermc>=1.17.0"
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=papermc
|
||||
pkgver=1.21.7
|
||||
pkgver=1.21.4
|
||||
_gittag=${pkgver/.0}
|
||||
pkgrel=0
|
||||
pkgdesc="Next generation of Minecraft server, compatible with Spigot plugins and offering uncompromising performance"
|
||||
# armv7: blocked by openjdk21-jdk
|
||||
arch='noarch !armv7'
|
||||
arch='noarch'
|
||||
url="https://papermc.io/"
|
||||
license='custom'
|
||||
depends='openjdk21-jdk screen sudo bash gawk sed netcat-openbsd'
|
||||
|
|
@ -44,7 +43,7 @@ package() {
|
|||
chmod g+ws "$pkgdir"/var/lib/$pkgname
|
||||
}
|
||||
sha512sums="
|
||||
90c3017f7e4031816f6d4e30612a88d7b15d9e99cfb4e887b868e3d0d55ec5db0e9e71dc433dd399959da9b099e7fc4fd3768635ccabcce84d1adfc48837309a papermc-1.21.7.tar.zst
|
||||
5e815c4ee4f9d99ecb173d2b81131d0531359f1d2d48dee429476a7b39c37140fe2085d9a657435e347ca1bc5930402bac1a533692cd8387811b2577384c827b papermc-1.21.4.tar.zst
|
||||
c5d1bf85ceb74162aaaf2bcd2d06dc2e3dd2e37c39f0cee2be7c8dbff9970a6aff1e48a43e6d1e83e6a0ac610bd89f62b1279bf27b64afa88d9831a36aebbd3e papermc.initd
|
||||
9b8e267428731ee9255f82a93f1e8674d7e917a0f154bd395cd2280a49aa248a4b8427520b08dbb4b3a74a5471dac0e439eedc8ab94bf2e53bb8d411d2d8a789 papermc.conf
|
||||
943ba0d4c10173246bdc6497dcedd54da0788f966841c8d3381398711d79f8d5eb07a24ce28f519b6f24f59d99fa9e74bc6bb882059f343df4eeda5de3660ac7 papermc.sh
|
||||
|
|
|
|||
|
|
@ -2,13 +2,12 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
|
||||
pkgname=rmfakecloud
|
||||
pkgver=0.0.27
|
||||
pkgver=0.0.24
|
||||
_gittag=v$pkgver
|
||||
pkgrel=0
|
||||
pkgdesc="A selfhosted cloud for the Remarkable Tablet"
|
||||
url="https://github.com/ddvk/rmfakecloud"
|
||||
# armv7: oom
|
||||
arch="all !armv7"
|
||||
arch="all"
|
||||
license="AGPL-3.0-only"
|
||||
makedepends="go yarn"
|
||||
options="chmod-clean net"
|
||||
|
|
@ -38,7 +37,7 @@ package() {
|
|||
install -Dm755 "$srcdir"/rmfakecloud.openrc "$pkgdir"/etc/init.d/rmfakecloud
|
||||
}
|
||||
sha512sums="
|
||||
b215295c8779f9820e9751e5cbfb8804d6cdeb0d71ffaa60d46fd803760e63227352f55a8b5a2e75d990b20a6a19c43a4ffaa03a1857e6fb37990a8b191a3ea2 rmfakecloud-0.0.27.tar.gz
|
||||
c0c96cb9168b8152da3842fac095a6bd33e74b5f7a5cefe72e44853f4059c966336e98cd4c62235f7a2fe625acdd93452f718c19a1bf65f5dd7dbd8bb5cd1f8c rmfakecloud-0.0.24.tar.gz
|
||||
d5677cef282085cd6642a034dd258ffa294862aeb0ce81d6485a524a15564849bc4eb90a9d1fa4dbcf4eab69dcd893302aa06493fc8fad74d69200c2bdf246c0 rmfakecloud.conf
|
||||
891d0945886796132f951293e081046334857563b4ebae28a3aa5b6bc37768767c49ce102de645ed8340af2518de606be8bf6ecafeb6d189dd937970aa3e6498 rmfakecloud.openrc
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
|
||||
pkgname=scanservjs
|
||||
pkgver=3.0.4
|
||||
pkgver=3.0.3
|
||||
pkgrel=0
|
||||
pkgdesc="SANE scanner nodejs web ui"
|
||||
arch="noarch"
|
||||
|
|
@ -62,7 +63,7 @@ package() {
|
|||
install -Dm 644 "$srcdir"/scanservjs.conf "$pkgdir"/etc/conf.d/scanservjs
|
||||
}
|
||||
sha512sums="
|
||||
f19b1bd5acb01f82fa98bc79f9d401f1b6c19aa9e4319d75efd4b82a6db44a348784953ae1542d362d3b8e328a1a469e9320fd7c937e6aa102a19a36cd8ce9e8 scanservjs-3.0.4.tar.gz
|
||||
e3746cfab118b08b75fe5a862e1b06d35bce3fafe7b5cf482ddfd28aad8ac9879981eef5bdadc35a783607aac49eef95b966ff1d2ddf431eaf6e2d7e335623fb scanservjs-3.0.3.tar.gz
|
||||
f58dd5e1c4936d7e25065a295f5d01e64189cdefe92ba54fc875348a59a30b2055c93464d510a52820e66b42a69d0626d3513c93ab60b0768e1e8d5b3538bb13 scanservjs.initd
|
||||
9d4fdab3803a598c729bf703369d8594b383163b05045f31e516f184a87d8deef8c8b40942d324e04bdf751ac9d63f7de25b13364f9f30888eba2af873369b36 scanservjs.conf
|
||||
"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
|
||||
pkgname=scantopl
|
||||
pkgver=1.0.1
|
||||
pkgver=1.0.0
|
||||
pkgrel=0
|
||||
pkgdesc="Automatically send scanservjs scanned document to paperless-ng"
|
||||
_gittag="v$pkgver"
|
||||
|
|
@ -30,7 +31,7 @@ package() {
|
|||
install -Dm644 "$srcdir"/scantopl.conf "$pkgdir"/etc/conf.d/scantopl
|
||||
}
|
||||
sha512sums="
|
||||
e5238c4f8e727e80c5c66441e8de5eeb775fdfe05ee85509c942c2516e8996243cd1b72c7c87c8bbee2e0475cc0075244aa28164a746f6e7eded253bcb707ba7 scantopl-1.0.1.tar.gz
|
||||
d4eca1adc326f1e730ae195bd44f1cf05d404488ce20fd612467c572ea7fa718034bb7b16d3e007976349f6852e83569aa17727dcc61f9e7ab1934995b3bc3e6 scantopl-1.0.0.tar.gz
|
||||
8238411fe8881be6690a583a6bfc71e52f3131320f5d92bb36f8af61802980265a8cf5250eb699d9214f7c6c168d14c39867a09587fb07841a8504a6a28db74b scantopl.initd
|
||||
ee2e631901b1d88c0dede6587318e44884255a7c82e090371f017dbb91563c16f0567c0d45b3183d0a8abb3ee4b71a33f3d79258ad2b2f6d8930a5bc7625070a scantopl.conf
|
||||
"
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ pkgname=tandoor-recipes
|
|||
pkgver=1.5.12
|
||||
pkgrel=1
|
||||
pkgdesc="Application for managing recipes, planning meals, building shopping lists, etc."
|
||||
# armv7: oom
|
||||
arch="noarch !armv7"
|
||||
arch="noarch"
|
||||
url="https://github.com/TandoorRecipes/recipes"
|
||||
license="AGPL-3.0-only"
|
||||
depends="
|
||||
|
|
|
|||
1194
user/uvicorn/2540_add-websocketssansioprotocol.patch
Normal file
1194
user/uvicorn/2540_add-websocketssansioprotocol.patch
Normal file
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