Compare commits
44 commits
Author | SHA1 | Date | |
---|---|---|---|
8d2350f5f4 | |||
87ab391f09 | |||
5cd6147d3a | |||
73cb204fc8 | |||
bcb8f4a8ed | |||
1246c83c96 | |||
583e4c78d5 | |||
2fe9942076 | |||
521f420b21 | |||
7f268c3aaf | |||
2de862f68a | |||
f890ad4479 | |||
a3e0cf8b4f | |||
363dd4d7bf | |||
bf854b7178 | |||
2d514ba200 | |||
a7d22ff9e5 | |||
394c3e514b | |||
38835d8697 | |||
b059719a92 | |||
18e87b0f9b | |||
9cda465dc0 | |||
4a6a864264 | |||
c80c39ddb0 | |||
a7ec354240 | |||
b7d9bea36e | |||
5c8d8ccd4e | |||
aef6eb387e | |||
c96ea5cc38 | |||
4da665ff3a | |||
7e2d4d3676 | |||
35ef17bf96 | |||
b3f75d6ca0 | |||
6b902e8e1a | |||
39194a3036 | |||
341632fd16 | |||
0d290bee25 | |||
71db2e35c9 | |||
bcd2ed707d | |||
c198ae525b | |||
33f1541e0d | |||
a04086bcb5 | |||
da9843e44f | |||
5bdf21e125 |
570 changed files with 27847 additions and 6535 deletions
|
@ -1,260 +0,0 @@
|
|||
#!/bin/sh
|
||||
# shellcheck disable=SC3043
|
||||
|
||||
. /usr/local/lib/functions.sh
|
||||
|
||||
# shellcheck disable=SC3040
|
||||
set -eu -o pipefail
|
||||
|
||||
readonly APORTSDIR=$CI_PROJECT_DIR
|
||||
readonly REPOS="backports user"
|
||||
readonly ALPINE_REPOS="main community testing"
|
||||
readonly ARCH=$(apk --print-arch)
|
||||
# gitlab variables
|
||||
readonly BASEBRANCH=$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||
|
||||
: "${REPODEST:=$HOME/packages}"
|
||||
: "${MIRROR:=https://ayakael.net/api/packages/forge/alpine}"
|
||||
: "${ALPINE_MIRROR:=http://dl-cdn.alpinelinux.org/alpine}"
|
||||
: "${MAX_ARTIFACT_SIZE:=300000000}" #300M
|
||||
: "${CI_DEBUG_BUILD:=}"
|
||||
|
||||
: "${CI_ALPINE_BUILD_OFFSET:=0}"
|
||||
: "${CI_ALPINE_BUILD_LIMIT:=9999}"
|
||||
|
||||
msg() {
|
||||
local color=${2:-green}
|
||||
case "$color" in
|
||||
red) color="31";;
|
||||
green) color="32";;
|
||||
yellow) color="33";;
|
||||
blue) color="34";;
|
||||
*) color="32";;
|
||||
esac
|
||||
printf "\033[1;%sm>>>\033[1;0m %s\n" "$color" "$1" | xargs >&2
|
||||
}
|
||||
|
||||
verbose() {
|
||||
echo "> " "$@"
|
||||
# shellcheck disable=SC2068
|
||||
$@
|
||||
}
|
||||
|
||||
debugging() {
|
||||
[ -n "$CI_DEBUG_BUILD" ]
|
||||
}
|
||||
|
||||
debug() {
|
||||
if debugging; then
|
||||
verbose "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
die() {
|
||||
msg "$1" red
|
||||
exit 1
|
||||
}
|
||||
|
||||
capture_stderr() {
|
||||
"$@" 2>&1
|
||||
}
|
||||
|
||||
report() {
|
||||
report=$1
|
||||
|
||||
reportsdir=$APORTSDIR/logs/
|
||||
mkdir -p "$reportsdir"
|
||||
|
||||
tee -a "$reportsdir/$report.log"
|
||||
}
|
||||
|
||||
get_release() {
|
||||
case $BASEBRANCH in
|
||||
v*) echo "$BASEBRANCH";;
|
||||
edge) echo edge;;
|
||||
*) die "Branch \"$BASEBRANCH\" not supported!"
|
||||
esac
|
||||
}
|
||||
|
||||
build_aport() {
|
||||
local repo="$1" aport="$2"
|
||||
cd "$APORTSDIR/$repo/$aport"
|
||||
if abuild -r 2>&1 | report "build-$aport"; then
|
||||
checkapk 2>&1 | report "checkapk-$aport" || true
|
||||
aport_ok="$aport_ok $repo/$aport"
|
||||
else
|
||||
aport_ng="$aport_ng $repo/$aport"
|
||||
fi
|
||||
}
|
||||
|
||||
check_aport() {
|
||||
local repo="$1" aport="$2"
|
||||
cd "$APORTSDIR/$repo/$aport"
|
||||
if ! abuild check_arch 2>/dev/null; then
|
||||
aport_na="$aport_na $repo/$aport"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
set_repositories_for() {
|
||||
local target_repo="$1" repos='' repo=''
|
||||
local release
|
||||
|
||||
release=$(get_release)
|
||||
for repo in $REPOS; do
|
||||
[ "$repo" = "non-free" ] && continue
|
||||
[ "$release" == "edge" ] && [ "$repo" == "backports" ] && continue
|
||||
repos="$repos $MIRROR/$release/$repo $REPODEST/$repo"
|
||||
[ "$repo" = "$target_repo" ] && break
|
||||
done
|
||||
doas sh -c "printf '%s\n' $repos >> /etc/apk/repositories"
|
||||
doas apk update
|
||||
}
|
||||
|
||||
apply_offset_limit() {
|
||||
start=$1
|
||||
limit=$2
|
||||
end=$((start+limit))
|
||||
|
||||
sed -n "$((start+1)),${end}p"
|
||||
}
|
||||
|
||||
setup_system() {
|
||||
local repos='' repo=''
|
||||
local release
|
||||
|
||||
release=$(get_release)
|
||||
for repo in $ALPINE_REPOS; do
|
||||
[ "$release" != "edge" ] && [ "$repo" == "testing" ] && continue
|
||||
repos="$repos $ALPINE_MIRROR/$release/$repo"
|
||||
done
|
||||
doas sh -c "printf '%s\n' $repos > /etc/apk/repositories"
|
||||
doas apk -U upgrade -a || apk fix || die "Failed to up/downgrade system"
|
||||
abuild-keygen -ain
|
||||
doas sed -i -E 's/export JOBS=[0-9]+$/export JOBS=$(nproc)/' /etc/abuild.conf
|
||||
( . /etc/abuild.conf && echo "Building with $JOBS jobs" )
|
||||
mkdir -p "$REPODEST"
|
||||
git config --global init.defaultBranch master
|
||||
}
|
||||
|
||||
sysinfo() {
|
||||
printf ">>> Host system information (arch: %s, release: %s) <<<\n" "$ARCH" "$(get_release)"
|
||||
printf "- Number of Cores: %s\n" "$(nproc)"
|
||||
printf "- Memory: %s Gb\n" "$(awk '/^MemTotal/ {print ($2/1024/1024)}' /proc/meminfo)"
|
||||
printf "- Free space: %s\n" "$(df -hP / | awk '/\/$/ {print $4}')"
|
||||
}
|
||||
|
||||
copy_artifacts() {
|
||||
cd "$APORTSDIR"
|
||||
|
||||
packages_size="$(du -sk "$REPODEST" | awk '{print $1 * 1024}')"
|
||||
if [ -z "$packages_size" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Artifact size: $packages_size bytes"
|
||||
|
||||
mkdir -p keys/ packages/
|
||||
|
||||
if [ "$packages_size" -lt $MAX_ARTIFACT_SIZE ]; then
|
||||
msg "Copying packages for artifact upload"
|
||||
cp -ar "$REPODEST"/* packages/ 2>/dev/null
|
||||
cp ~/.abuild/*.rsa.pub keys/
|
||||
else
|
||||
msg "Artifact size $packages_size larger than max ($MAX_ARTIFACT_SIZE), skipping uploading them" yellow
|
||||
fi
|
||||
}
|
||||
|
||||
section_start setup "Setting up the system" collapse
|
||||
|
||||
if debugging; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
aport_ok=
|
||||
aport_na=
|
||||
aport_ng=
|
||||
failed=
|
||||
|
||||
sysinfo || true
|
||||
setup_system || die "Failed to setup system"
|
||||
|
||||
# git no longer allows to execute in repositories owned by different users
|
||||
doas chown -R buildozer: .
|
||||
|
||||
fetch_flags="-qn"
|
||||
debugging && fetch_flags="-v"
|
||||
|
||||
git fetch $fetch_flags "$CI_MERGE_REQUEST_PROJECT_URL" \
|
||||
"+refs/heads/$BASEBRANCH:refs/heads/$BASEBRANCH"
|
||||
|
||||
if debugging; then
|
||||
merge_base=$(git merge-base "$BASEBRANCH" HEAD) || echo "Could not determine merge-base"
|
||||
echo "Merge base: $merge_base"
|
||||
git --version
|
||||
git config -l
|
||||
[ -n "$merge_base" ] && git tag -f merge-base "$merge_base"
|
||||
git --no-pager log -200 --oneline --graph --decorate --all
|
||||
fi
|
||||
|
||||
section_end setup
|
||||
|
||||
build_start=$CI_ALPINE_BUILD_OFFSET
|
||||
build_limit=$CI_ALPINE_BUILD_LIMIT
|
||||
|
||||
for repo in $(changed_repos); do
|
||||
set_repositories_for "$repo"
|
||||
built_aports=0
|
||||
changed_aports_in_repo=$(changed_aports "$repo")
|
||||
changed_aports_in_repo_count=$(echo "$changed_aports_in_repo" | wc -l)
|
||||
changed_aports_to_build=$(echo "$changed_aports_in_repo" | apply_offset_limit "$build_start" "$build_limit")
|
||||
|
||||
msg "Changed aports in $repo:"
|
||||
# shellcheck disable=SC2086 # Splitting is expected here
|
||||
printf " - %s\n" $changed_aports_to_build
|
||||
for pkgname in $changed_aports_to_build; do
|
||||
section_start "build_$pkgname" "Building package $pkgname"
|
||||
built_aports=$((built_aports+1))
|
||||
if check_aport "$repo" "$pkgname"; then
|
||||
build_aport "$repo" "$pkgname"
|
||||
fi
|
||||
section_end "build_$pkgname"
|
||||
done
|
||||
|
||||
build_start=$((build_start-(changed_aports_in_repo_count-built_aports)))
|
||||
build_limit=$((build_limit-built_aports))
|
||||
|
||||
if [ $build_limit -le 0 ]; then
|
||||
msg "Limit reached, breaking"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
section_start artifacts "Handeling artifacts" collapse
|
||||
copy_artifacts || true
|
||||
section_end artifacts
|
||||
|
||||
section_start summary "Build summary"
|
||||
|
||||
echo "### Build summary ###"
|
||||
|
||||
for ok in $aport_ok; do
|
||||
msg "$ok: build succesfully"
|
||||
done
|
||||
|
||||
for na in $aport_na; do
|
||||
msg "$na: disabled for $ARCH" yellow
|
||||
done
|
||||
|
||||
for ng in $aport_ng; do
|
||||
msg "$ng: build failed" red
|
||||
failed=true
|
||||
done
|
||||
section_end summary
|
||||
|
||||
if [ "$failed" = true ]; then
|
||||
exit 1
|
||||
elif [ -z "$aport_ok" ]; then
|
||||
msg "No packages found to be built." yellow
|
||||
fi
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# expects the following env variables:
|
||||
# downstream: downstream repo
|
||||
|
||||
repo=${downstream/*\/}
|
||||
|
||||
curl --silent $downstream/x86_64/APKINDEX.tar.gz | tar -O -zx APKINDEX > APKINDEX
|
||||
|
||||
owned_by_you=$(awk -v RS= -v ORS="\n\n" '/m:Antoine Martin \(ayakael\) <dev@ayakael.net>/' APKINDEX | awk -F ':' '{if($1=="o"){print $2}}' | sort | uniq)
|
||||
|
||||
echo "Found $(printf '%s\n' $owned_by_you | wc -l ) packages owned by you"
|
||||
|
||||
rm -f out_of_date not_in_anitya
|
||||
|
||||
for pkg in $owned_by_you; do
|
||||
upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Alpine" | jq -r '.items.[].stable_version')
|
||||
downstream_version=$(sed -n "/^P:$pkg$/,/^$/p" APKINDEX | awk -F ':' '{if($1=="V"){print $2}}' | sort -V | tail -n 1)
|
||||
downstream_version=${downstream_version/-*}
|
||||
|
||||
if [ -z "$upstream_version" ]; then
|
||||
echo "$pkg not in anitya"
|
||||
echo "$pkg" >> not_in_anitya
|
||||
elif [ "$downstream_version" != "$(printf '%s\n' $upstream_version $downstream_version | sort -V | head -n 1)" ]; then
|
||||
echo "$pkg higher downstream"
|
||||
continue
|
||||
elif [ "$upstream_version" != "$downstream_version" ]; then
|
||||
echo "$pkg upstream version $upstream_version does not match downstream version $downstream_version"
|
||||
echo "$pkg $downstream_version $upstream_version $repo" >> out_of_date
|
||||
fi
|
||||
done
|
|
@ -1,165 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# expects:
|
||||
# env variable FORGEJO_TOKEN
|
||||
# file out_of_date
|
||||
|
||||
IFS='
|
||||
'
|
||||
repo=${downstream/*\/}
|
||||
|
||||
does_it_exist() {
|
||||
name=$1
|
||||
downstream_version=$2
|
||||
upstream_version=$3
|
||||
repo=$4
|
||||
|
||||
query="$repo/$name: upgrade to $upstream_version"
|
||||
query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' )"
|
||||
|
||||
result="$(curl --silent -X 'GET' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: Basic $FORGEJO_TOKEN"
|
||||
)"
|
||||
|
||||
if [ "$result" == "[]" ]; then
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
is_it_old() {
|
||||
name=$1
|
||||
downstream_version=$2
|
||||
upstream_version=$3
|
||||
repo=$4
|
||||
|
||||
query="$repo/$name: upgrade to"
|
||||
query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' )"
|
||||
|
||||
result="$(curl --silent -X 'GET' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: Basic $FORGEJO_TOKEN"
|
||||
)"
|
||||
|
||||
result_title="$(echo $result | jq -r '.[].title' )"
|
||||
result_id="$(echo $result | jq -r '.[].number' )"
|
||||
result_upstream_version="$(echo $result_title | awk '{print $4}')"
|
||||
|
||||
if [ "$upstream_version" != "$result_upstream_version" ]; then
|
||||
echo $result_id
|
||||
else
|
||||
echo 0
|
||||
fi
|
||||
}
|
||||
|
||||
update_title() {
|
||||
name=$1
|
||||
downstream_version=$2
|
||||
upstream_version=$3
|
||||
repo=$4
|
||||
id=$5
|
||||
|
||||
result=$(curl --silent -X 'PATCH' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$id" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: Basic $FORGEJO_TOKEN" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{
|
||||
\"title\": \"$repo/$name: upgrade to $upstream_version\"
|
||||
}"
|
||||
)
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
create_issue() {
|
||||
name=$1
|
||||
downstream_version=$2
|
||||
upstream_version=$3
|
||||
repo=$4
|
||||
|
||||
result=$(curl --silent -X 'POST' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: Basic $FORGEJO_TOKEN" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{
|
||||
\"title\": \"$repo/$name: upgrade to $upstream_version\",
|
||||
\"labels\": [
|
||||
$LABEL_NUMBER
|
||||
]
|
||||
}")
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
if [ -f out_of_date ]; then
|
||||
out_of_date="$(cat out_of_date)"
|
||||
|
||||
echo "Detected $(wc -l out_of_date) out-of-date packages, creating issues"
|
||||
|
||||
for pkg in $out_of_date; do
|
||||
name="$(echo $pkg | awk '{print $1}')"
|
||||
downstream_version="$(echo $pkg | awk '{print $2}')"
|
||||
upstream_version="$(echo $pkg | awk '{print $3}')"
|
||||
repo="$(echo $pkg | awk '{print $4}')"
|
||||
|
||||
if does_it_exist $name $downstream_version $upstream_version $repo; then
|
||||
echo "Issue for $repo/$name already exists"
|
||||
continue
|
||||
fi
|
||||
|
||||
id=$(is_it_old $name $downstream_version $upstream_version $repo)
|
||||
|
||||
if [ "$id" != "0" ] && [ -n "$id" ]; then
|
||||
echo "Issue for $repo/$name needs updating"
|
||||
update_title $name $downstream_version $upstream_version $repo $id
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "Creating issue for $repo/$name"
|
||||
create_issue $name $downstream_version $upstream_version $repo
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -f not_in_anitya ]; then
|
||||
query="Add missing $repo packages to anitya"
|
||||
query="$(echo $query | sed 's| |%20|g')"
|
||||
|
||||
result="$(curl --silent -X 'GET' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: Basic $FORGEJO_TOKEN"
|
||||
)"
|
||||
|
||||
if [ "$result" == "[]" ]; then
|
||||
echo "Creating anitya issue"
|
||||
result=$(curl --silent -X 'POST' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: Basic $FORGEJO_TOKEN" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{
|
||||
\"title\": \"Add missing $repo packages to anitya\",
|
||||
\"body\": \"- [ ] $(sed '{:q;N;s/\n/\\n- [ ] /g;t q}' not_in_anitya)\",
|
||||
\"labels\": [
|
||||
$LABEL_NUMBER
|
||||
]
|
||||
}")
|
||||
|
||||
else
|
||||
echo "Updating anitya issue"
|
||||
result_id="$(echo $result | jq -r '.[].number' )"
|
||||
result=$(curl --silent -X 'PATCH' \
|
||||
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$result_id" \
|
||||
-H 'accept: application/json' \
|
||||
-H "authorization: Basic $FORGEJO_TOKEN" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{
|
||||
\"body\": \"- [ ] $(sed '{:q;N;s/\n/\\n- [ ] /g;t q}' not_in_anitya)\"
|
||||
}"
|
||||
)
|
||||
fi
|
||||
fi
|
66
.forgejo/patches/build.patch
Normal file
66
.forgejo/patches/build.patch
Normal file
|
@ -0,0 +1,66 @@
|
|||
diff --git a/usr/local/bin/build.sh.orig b/usr/local/bin/build.sh
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index c3b8f7a..f609018
|
||||
--- a/usr/local/bin/build.sh.orig
|
||||
+++ b/usr/local/bin/build.sh
|
||||
@@ -7,13 +7,15 @@
|
||||
set -eu -o pipefail
|
||||
|
||||
readonly APORTSDIR=$CI_PROJECT_DIR
|
||||
-readonly REPOS="main community testing non-free"
|
||||
+readonly REPOS="backports user"
|
||||
+readonly ALPINE_REPOS="main community testing"
|
||||
readonly ARCH=$(apk --print-arch)
|
||||
# gitlab variables
|
||||
readonly BASEBRANCH=$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||
|
||||
: "${REPODEST:=$HOME/packages}"
|
||||
-: "${MIRROR:=https://dl-cdn.alpinelinux.org/alpine}"
|
||||
+: "${MIRROR:=https://ayakael.net/api/packages/forge/alpine}"
|
||||
+: "${ALPINE_MIRROR:=http://dl-cdn.alpinelinux.org/alpine}"
|
||||
: "${MAX_ARTIFACT_SIZE:=300000000}" #300M
|
||||
: "${CI_DEBUG_BUILD:=}"
|
||||
|
||||
@@ -68,8 +70,8 @@ report() {
|
||||
|
||||
get_release() {
|
||||
case $BASEBRANCH in
|
||||
- *-stable) echo v"${BASEBRANCH%-*}";;
|
||||
- master) echo edge;;
|
||||
+ v*) echo v"${BASEBRANCH%-*}";;
|
||||
+ edge) echo edge;;
|
||||
*) die "Branch \"$BASEBRANCH\" not supported!"
|
||||
esac
|
||||
}
|
||||
@@ -101,11 +103,11 @@ set_repositories_for() {
|
||||
release=$(get_release)
|
||||
for repo in $REPOS; do
|
||||
[ "$repo" = "non-free" ] && continue
|
||||
- [ "$release" != "edge" ] && [ "$repo" == "testing" ] && continue
|
||||
+ [ "$release" == "edge" ] && [ "$repo" == "backports" ] && continue
|
||||
repos="$repos $MIRROR/$release/$repo $REPODEST/$repo"
|
||||
[ "$repo" = "$target_repo" ] && break
|
||||
done
|
||||
- doas sh -c "printf '%s\n' $repos > /etc/apk/repositories"
|
||||
+ doas sh -c "printf '%s\n' $repos >> /etc/apk/repositories"
|
||||
doas apk update
|
||||
}
|
||||
|
||||
@@ -118,7 +120,15 @@ apply_offset_limit() {
|
||||
}
|
||||
|
||||
setup_system() {
|
||||
- doas sh -c "echo $MIRROR/$(get_release)/main > /etc/apk/repositories"
|
||||
+ local repos='' repo=''
|
||||
+ local release
|
||||
+
|
||||
+ release=$(get_release)
|
||||
+ for repo in $ALPINE_REPOS; do
|
||||
+ [ "$release" != "edge" ] && [ "$repo" == "testing" ] && continue
|
||||
+ repos="$repos $ALPINE_MIRROR/$release/$repo"
|
||||
+ done
|
||||
+ doas sh -c "printf '%s\n' $repos > /etc/apk/repositories"
|
||||
doas apk -U upgrade -a || apk fix || die "Failed to up/downgrade system"
|
||||
abuild-keygen -ain
|
||||
doas sed -i -E 's/export JOBS=[0-9]+$/export JOBS=$(nproc)/' /etc/abuild.conf
|
|
@ -24,8 +24,8 @@ jobs:
|
|||
fetch-depth: 500
|
||||
- name: Package build
|
||||
run: |
|
||||
${{ github.workspace }}/.forgejo/bin/build.sh
|
||||
touch packages/dummy
|
||||
doas patch -d / -p1 -i ${{ github.workspace }}/.forgejo/patches/build.patch
|
||||
build.sh
|
||||
- name: Package upload
|
||||
uses: forgejo/upload-artifact@v3
|
||||
with:
|
||||
|
|
|
@ -24,8 +24,8 @@ jobs:
|
|||
fetch-depth: 500
|
||||
- name: Package build
|
||||
run: |
|
||||
${{ github.workspace }}/.forgejo/bin/build.sh
|
||||
touch packages/dummy
|
||||
doas patch -d / -p1 -i ${{ github.workspace }}/.forgejo/patches/build.patch
|
||||
build.sh
|
||||
- name: Package upload
|
||||
uses: forgejo/upload-artifact@v3
|
||||
with:
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
schedule:
|
||||
- cron: '0 5 * * *'
|
||||
|
||||
jobs:
|
||||
check-community:
|
||||
name: Check community repo
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/edge/community
|
||||
FORGEJO_TOKEN: ${{ secrets.forgejo_token }}
|
||||
LABEL_NUMBER: 4
|
||||
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,27 +0,0 @@
|
|||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
schedule:
|
||||
- cron: '0 5 * * *'
|
||||
|
||||
jobs:
|
||||
check-community:
|
||||
name: Check testing repo
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://dl-cdn.alpinelinux.org/alpine/edge/testing
|
||||
FORGEJO_TOKEN: ${{ secrets.forgejo_token }}
|
||||
LABEL_NUMBER: 4
|
||||
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,27 +0,0 @@
|
|||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
schedule:
|
||||
- cron: '0 5 * * *'
|
||||
|
||||
jobs:
|
||||
check-user:
|
||||
name: Check user repo
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
env:
|
||||
downstream: https://ayakael.net/api/packages/forge/alpine/edge/user
|
||||
FORGEJO_TOKEN: ${{ secrets.forgejo_token }}
|
||||
LABEL_NUMBER: 4
|
||||
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
|
|
@ -18,14 +18,14 @@ Affixed to each repository description is the appropriate link for use in
|
|||
|
||||
#### Backports
|
||||
```
|
||||
https://ayakael.net/api/packages/forge/alpine/edge/backports
|
||||
https://lab.ilot.io/ayakael/apk/-/raw/v3.18/backports
|
||||
```
|
||||
|
||||
Aports from the official Alpine repositories backported from edge.
|
||||
|
||||
#### User
|
||||
```
|
||||
https://ayakael.net/api/packages/forge/alpine/edge/user
|
||||
https://lab.ilot.io/ayakael/apk/-/raw/v3.18/user
|
||||
```
|
||||
|
||||
Aports that have yet to be (or may never be) upstreamed to the official
|
||||
|
@ -37,7 +37,7 @@ Add security key of the apk repository to your /etc/apk/keys:
|
|||
|
||||
```shell
|
||||
cd /etc/apk/keys
|
||||
curl -JO https://ayakael.net/api/packages/forge/alpine/key
|
||||
wget https://lab.ilot.io/ayakael/apk/-/raw/v3.18/antoine.martin@protonmail.com-5b3109ad.rsa.pub
|
||||
```
|
||||
Add repositories that you want to use (see above) to `/etc/apk/repositories`.
|
||||
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
diff --color -Nur calibre-6.17.0.orig/src/calibre/gui2/update.py calibre-6.17.0/src/calibre/gui2/update.py
|
||||
--- calibre-6.17.0.orig/src/calibre/gui2/update.py 2023-05-06 11:36:35.678461036 -0700
|
||||
+++ calibre-6.17.0/src/calibre/gui2/update.py 2023-05-06 11:39:10.365134930 -0700
|
||||
@@ -82,20 +82,6 @@
|
||||
while not self.shutdown_event.is_set():
|
||||
calibre_update_version = NO_CALIBRE_UPDATE
|
||||
plugins_update_found = 0
|
||||
- try:
|
||||
- version = get_newest_version()
|
||||
- if version[:2] > numeric_version[:2]:
|
||||
- calibre_update_version = version
|
||||
- except Exception as e:
|
||||
- prints('Failed to check for calibre update:', as_unicode(e))
|
||||
- try:
|
||||
- update_plugins = get_plugin_updates_available(raise_error=True)
|
||||
- if update_plugins is not None:
|
||||
- plugins_update_found = len(update_plugins)
|
||||
- except Exception as e:
|
||||
- prints('Failed to check for plugin update:', as_unicode(e))
|
||||
- if calibre_update_version != NO_CALIBRE_UPDATE or plugins_update_found > 0:
|
||||
- self.signal.update_found.emit(calibre_update_version, plugins_update_found)
|
||||
self.shutdown_event.wait(self.INTERVAL)
|
||||
|
||||
def shutdown(self):
|
||||
|
|
@ -1,116 +0,0 @@
|
|||
# Maintainer: Cowington Post <cowingtonpost@gmail.com>
|
||||
pkgname=calibre
|
||||
pkgver=7.12.0
|
||||
pkgrel=0
|
||||
pkgdesc="Ebook management application"
|
||||
# qt6-webengine
|
||||
arch="x86_64 aarch64"
|
||||
url="https://calibre-ebook.com"
|
||||
license="GPL-3.0-or-later"
|
||||
depends="
|
||||
font-liberation
|
||||
libwmf
|
||||
mtdev
|
||||
optipng
|
||||
poppler
|
||||
py3-apsw
|
||||
py3-beautifulsoup4
|
||||
py3-css-parser
|
||||
py3-cssselect
|
||||
py3-dateutil
|
||||
py3-dnspython
|
||||
py3-feedparser
|
||||
py3-fonttools
|
||||
py3-html2text
|
||||
py3-html5-parser
|
||||
py3-html5lib
|
||||
py3-jeepney
|
||||
py3-lxml
|
||||
py3-markdown
|
||||
py3-mechanize
|
||||
py3-msgpack
|
||||
py3-netifaces
|
||||
py3-pillow
|
||||
py3-psutil
|
||||
py3-pycryptodome
|
||||
py3-pygments
|
||||
py3-pyqt6-webengine
|
||||
py3-regex
|
||||
py3-xxhash
|
||||
py3-zeroconf
|
||||
qt6-qtimageformats
|
||||
qt6-qtsvg
|
||||
qt6-qtwebengine
|
||||
udisks2
|
||||
"
|
||||
makedepends="
|
||||
cmake
|
||||
curl
|
||||
hunspell-dev
|
||||
hyphen-dev
|
||||
libmtp-dev
|
||||
libstemmer-dev
|
||||
libusb-dev
|
||||
podofo-dev
|
||||
py3-pyqt-builder
|
||||
py3-pyqt6-sip
|
||||
py3-sip
|
||||
python3-dev
|
||||
qt6-qtbase-dev
|
||||
uchardet-dev
|
||||
xdg-utils
|
||||
"
|
||||
subpackages="
|
||||
$pkgname-pyc
|
||||
$pkgname-doc
|
||||
$pkgname-bash-completion
|
||||
$pkgname-zsh-completion
|
||||
"
|
||||
source="https://download.calibre-ebook.com/$pkgver/calibre-$pkgver.tar.xz
|
||||
0001-$pkgname-no-update.patch
|
||||
"
|
||||
# net: downloads iso-codes
|
||||
# !check: no tests ran
|
||||
options="net !check"
|
||||
|
||||
export LANG="en_US.UTF-8"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
rm -f resources/calibre-portable.*
|
||||
}
|
||||
|
||||
build() {
|
||||
python3 setup.py build
|
||||
python3 setup.py iso639
|
||||
python3 setup.py iso3166
|
||||
python3 setup.py liberation_fonts --system-liberation_fonts --path-to-liberation_fonts /usr/share/fonts/liberation
|
||||
python3 setup.py mathjax
|
||||
python3 setup.py gui
|
||||
}
|
||||
|
||||
check() {
|
||||
python3 -m unittest discover
|
||||
}
|
||||
|
||||
package() {
|
||||
# needed for zsh
|
||||
mkdir -p "$pkgdir"/usr/share/zsh/site-functions
|
||||
|
||||
python3 setup.py install \
|
||||
--staging-root="$pkgdir"/usr \
|
||||
--no-compile \
|
||||
--system-plugins-location=/usr/share/calibre/system-plugins
|
||||
|
||||
cp -a man-pages/ "$pkgdir"/usr/share/man
|
||||
|
||||
rm -r "$pkgdir"/usr/share/calibre/rapydscript/
|
||||
|
||||
python3 -m compileall -fq "$pkgdir"/usr
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
ee654260d7047f0579a659b8907439a407fb561affcef84141126840452e7b98d10bb5e0a69e0cc809d9ba68729570900a0e7251f18b2056a94b0213880f1363 calibre-7.12.0.tar.xz
|
||||
eb8e7ce40ff8b8daf6e7e55a5dff8ec4dff06c45744266bb48b3194e92ab1196bc91468203e3c2ca1e5144166a7d6be90e6cf0253513e761b56a4c85be4c2c76 0001-calibre-no-update.patch
|
||||
"
|
|
@ -1,2 +0,0 @@
|
|||
#!/bin/sh
|
||||
/usr/bin/electron "/usr/lib/caprine"
|
42
backports/cargo-auditable/APKBUILD
Normal file
42
backports/cargo-auditable/APKBUILD
Normal file
|
@ -0,0 +1,42 @@
|
|||
# Maintainer: psykose <alice@ayaya.dev>
|
||||
pkgname=cargo-auditable
|
||||
pkgver=0.6.1
|
||||
pkgrel=1
|
||||
pkgdesc="Cargo wrapper for embedding auditing data"
|
||||
url="https://github.com/rust-secure-code/cargo-auditable"
|
||||
arch="all"
|
||||
license="MIT OR Apache-2.0"
|
||||
makedepends="cargo"
|
||||
subpackages="$pkgname-doc"
|
||||
source="$pkgname-$pkgver.tar.gz::https://github.com/rust-secure-code/cargo-auditable/archive/refs/tags/v$pkgver.tar.gz
|
||||
lock.patch
|
||||
"
|
||||
options="net"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
cargo fetch --target="$CTARGET" --locked
|
||||
}
|
||||
|
||||
build() {
|
||||
msg "building cargo auditable"
|
||||
cargo build --release --frozen
|
||||
msg "rebuilding with cargo-auditable itself"
|
||||
PATH="$PATH:$PWD/target/release" \
|
||||
cargo auditable build --release --frozen
|
||||
}
|
||||
|
||||
check() {
|
||||
cargo test --frozen
|
||||
}
|
||||
|
||||
package() {
|
||||
install -Dm755 target/release/cargo-auditable -t "$pkgdir"/usr/bin/
|
||||
install -Dm644 cargo-auditable/cargo-auditable.1 -t "$pkgdir"/usr/share/man/man1/
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
191b6ef15436bd3c6a9b4666e80de5a085afe00f8ee3793040fc5e5f78eecc25d45e556fe8279b600f362b46cbecae6c6f7e21060ea0d2344f459817749f4616 cargo-auditable-0.6.1.tar.gz
|
||||
9fa1b61897559fd9d4da8c43fa69b76b04f9a4dfedeb1973b096948e7684b16c2142bada7f7d2e8f9aa80e483b40aa662c45f6eaa87d3fa213d1e53816e9aaad lock.patch
|
||||
"
|
13
backports/cargo-auditable/lock.patch
Normal file
13
backports/cargo-auditable/lock.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index 00969c9..5caabbd 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -72,7 +72,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "cargo-auditable"
|
||||
-version = "0.6.0"
|
||||
+version = "0.6.1"
|
||||
dependencies = [
|
||||
"auditable-info",
|
||||
"auditable-serde",
|
39
backports/catch2-3/APKBUILD
Normal file
39
backports/catch2-3/APKBUILD
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Contributor: Bart Ribbers <bribbers@disroot.org>
|
||||
# Maintainer: psykose <alice@ayaya.dev>
|
||||
pkgname=catch2-3
|
||||
pkgver=3.3.2
|
||||
pkgrel=0
|
||||
arch="all"
|
||||
url="https://github.com/catchorg/Catch2"
|
||||
pkgdesc="A modern, C++-native, header-only, test framework for unit-tests (v3)"
|
||||
license="BSL-1.0"
|
||||
makedepends="
|
||||
cmake
|
||||
python3
|
||||
samurai
|
||||
"
|
||||
source="https://github.com/catchorg/Catch2/archive/v$pkgver/catch2-v$pkgver.tar.gz"
|
||||
subpackages="$pkgname-doc"
|
||||
builddir="$srcdir/Catch2-$pkgver"
|
||||
|
||||
build() {
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
check() {
|
||||
cd build
|
||||
# ApprovalTests is broken https://github.com/catchorg/Catch2/issues/1780
|
||||
CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E "ApprovalTests"
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
3d0c5666509a19be54ea0c48a3c8e1c4a951a2d991a7c9f7fe6d326661464538f1ab9dc573b1b2647f49fb6bef45bbd866142a4ce0fba38545ad182b8d55f61f catch2-v3.3.2.tar.gz
|
||||
"
|
58
backports/celery/APKBUILD
Normal file
58
backports/celery/APKBUILD
Normal file
|
@ -0,0 +1,58 @@
|
|||
# Maintainer: Drew DeVault <sir@cmpwn.com>
|
||||
pkgname=celery
|
||||
pkgver=5.2.7
|
||||
pkgrel=3
|
||||
pkgdesc="An asynchronous task queue/job queue based on distributed message passing"
|
||||
url="http://www.celeryproject.org/"
|
||||
arch="noarch !s390x" # lmited by py3-kombu
|
||||
license="Apache-2.0"
|
||||
depends="
|
||||
py3-billiard
|
||||
py3-click
|
||||
py3-click-didyoumean
|
||||
py3-click-plugins
|
||||
py3-click-repl
|
||||
py3-kombu
|
||||
py3-tz
|
||||
py3-vine
|
||||
python3
|
||||
"
|
||||
makedepends="python3-dev py3-setuptools py3-gpep517 py3-wheel"
|
||||
install="$pkgname.pre-install"
|
||||
source="https://files.pythonhosted.org/packages/source/c/celery/celery-$pkgver.tar.gz
|
||||
celery.confd
|
||||
celery.initd"
|
||||
pkgusers="celery"
|
||||
pkggroups="celery"
|
||||
subpackages="$pkgname-openrc $pkgname-pyc"
|
||||
provides="py3-celery=$pkgver-r$pkgrel"
|
||||
|
||||
# TODO: requires many many many dependencies
|
||||
options="!check"
|
||||
|
||||
build() {
|
||||
gpep517 build-wheel \
|
||||
--wheel-dir dist \
|
||||
--output-fd 3 3>&1 >&2
|
||||
}
|
||||
|
||||
package() {
|
||||
# install scripts
|
||||
install -m755 -D "$srcdir"/$pkgname.initd \
|
||||
"$pkgdir"/etc/init.d/$pkgname
|
||||
install -m644 -D "$srcdir"/$pkgname.confd \
|
||||
"$pkgdir"/etc/conf.d/$pkgname
|
||||
|
||||
python3 -m installer -d "$pkgdir" \
|
||||
dist/*.whl
|
||||
}
|
||||
|
||||
check() {
|
||||
python3 setup.py test
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
68e3bb082f97ebe20391293cc8fa96c41c8f5ac5e8c24b2b7bd66eb104ec459bdfa49741e47486676e5daa88d7a71e3eb0d9432851aeafc74b0d4352e567e853 celery-5.2.7.tar.gz
|
||||
c283956f8fe386ef39cb3e165a20d1cc7ff6398fbf5a922bec6b61fe4a71188519baed9feafc4e0e5b6864851545edaba54b89ba3613b2cf2ddd6426a6bf8fc2 celery.confd
|
||||
3e5e2c6a55672bc0a02fca93ad334c694066c636ed62f2b55cb8f27b9301c429d68ce53667ec744b9b152ec786de7aea90cc05a143d6942cf5d2f34e51ca4089 celery.initd
|
||||
"
|
4
backports/celery/celery.confd
Normal file
4
backports/celery/celery.confd
Normal file
|
@ -0,0 +1,4 @@
|
|||
CELERY_USER=celery
|
||||
CELERY_LOG=/var/log/celery.log
|
||||
CELERY_REDIR="1>/dev/null 2>> ${CELERY_LOG}"
|
||||
CELERY_OPTS="-A celeryapp $CELERY_REDIR"
|
16
backports/celery/celery.initd
Normal file
16
backports/celery/celery.initd
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/sbin/openrc-run
|
||||
supervisor=supervise-daemon
|
||||
|
||||
description="celery queue worker"
|
||||
|
||||
: ${CELERY_USER:="celery"}
|
||||
: ${CELERY_GROUP:="$(id -gn $CELERY_USER)"}
|
||||
|
||||
pidfile="/run/$RC_SVCNAME.sd.pid"
|
||||
supervise_daemon_args="-u $CELERY_USER -g $CELERY_GROUP"
|
||||
command=/usr/bin/celery
|
||||
command_args="${CELERY_OPTS}"
|
||||
|
||||
depends() {
|
||||
use net
|
||||
}
|
7
backports/celery/celery.pre-install
Normal file
7
backports/celery/celery.pre-install
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
addgroup -S celery 2>/dev/null
|
||||
adduser -S -D -H -h /usr/share/celery -s /sbin/nologin -G celery -g celery celery 2>/dev/null
|
||||
|
||||
exit 0
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
|
||||
pkgname=coin
|
||||
pkgver=4.0.0
|
||||
pkgrel=6
|
||||
pkgrel=5
|
||||
pkgdesc="OpenGL OpenInventor compatible graphics library"
|
||||
url="https://github.com/coin3d/coin"
|
||||
license="BSD-3-Clause"
|
||||
|
|
68
backports/crc32c/10-third-party.patch
Normal file
68
backports/crc32c/10-third-party.patch
Normal file
|
@ -0,0 +1,68 @@
|
|||
Author: Holger Jaekel <holger.jaekel@gmx.de>
|
||||
Summary: ignore googletest, glog, and benchmark from the third-party folder
|
||||
----
|
||||
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -16,7 +16,7 @@
|
||||
# C++ standard can be overridden when this is used as a sub-project.
|
||||
if(NOT CMAKE_CXX_STANDARD)
|
||||
# This project requires C++11.
|
||||
- set(CMAKE_CXX_STANDARD 11)
|
||||
+ set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
endif(NOT CMAKE_CXX_STANDARD)
|
||||
@@ -187,26 +187,8 @@
|
||||
# CPU cycles on the CI.
|
||||
set(BUILD_TESTING_SAVED "${BUILD_TESTING}")
|
||||
set(BUILD_TESTING OFF CACHE BOOL "" FORCE)
|
||||
- add_subdirectory("third_party/glog" EXCLUDE_FROM_ALL)
|
||||
set(BUILD_TESTING "${BUILD_TESTING_SAVED}" CACHE BOOL "" FORCE)
|
||||
|
||||
- # glog triggers deprecation warnings on OSX.
|
||||
- # https://github.com/google/glog/issues/185
|
||||
- if(CRC32C_HAVE_NO_DEPRECATED)
|
||||
- set_property(TARGET glog APPEND PROPERTY COMPILE_OPTIONS -Wno-deprecated)
|
||||
- endif(CRC32C_HAVE_NO_DEPRECATED)
|
||||
-
|
||||
- # glog triggers sign comparison warnings on gcc.
|
||||
- if(CRC32C_HAVE_NO_SIGN_COMPARE)
|
||||
- set_property(TARGET glog APPEND PROPERTY COMPILE_OPTIONS -Wno-sign-compare)
|
||||
- endif(CRC32C_HAVE_NO_SIGN_COMPARE)
|
||||
-
|
||||
- # glog triggers unused parameter warnings on clang.
|
||||
- if(CRC32C_HAVE_NO_UNUSED_PARAMETER)
|
||||
- set_property(TARGET glog
|
||||
- APPEND PROPERTY COMPILE_OPTIONS -Wno-unused-parameter)
|
||||
- endif(CRC32C_HAVE_NO_UNUSED_PARAMETER)
|
||||
-
|
||||
set(CRC32C_TESTS_BUILT_WITH_GLOG 1)
|
||||
endif(CRC32C_USE_GLOG)
|
||||
|
||||
@@ -314,17 +296,6 @@
|
||||
set(install_gtest OFF)
|
||||
set(install_gmock OFF)
|
||||
|
||||
- # This project is tested using GoogleTest.
|
||||
- add_subdirectory("third_party/googletest")
|
||||
-
|
||||
- # GoogleTest triggers a missing field initializers warning.
|
||||
- if(CRC32C_HAVE_NO_MISSING_FIELD_INITIALIZERS)
|
||||
- set_property(TARGET gtest
|
||||
- APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
|
||||
- set_property(TARGET gmock
|
||||
- APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
|
||||
- endif(CRC32C_HAVE_NO_MISSING_FIELD_INITIALIZERS)
|
||||
-
|
||||
add_executable(crc32c_tests "")
|
||||
target_sources(crc32c_tests
|
||||
PRIVATE
|
||||
@@ -385,7 +356,6 @@
|
||||
# This project uses Google benchmark for benchmarking.
|
||||
set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
|
||||
set(BENCHMARK_ENABLE_EXCEPTIONS OFF CACHE BOOL "" FORCE)
|
||||
- add_subdirectory("third_party/benchmark")
|
||||
target_link_libraries(crc32c_bench benchmark)
|
||||
|
||||
if(CRC32C_USE_GLOG)
|
45
backports/crc32c/APKBUILD
Normal file
45
backports/crc32c/APKBUILD
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
|
||||
# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
|
||||
pkgname=crc32c
|
||||
pkgver=1.1.2
|
||||
pkgrel=0
|
||||
pkgdesc="CRC32C implementation with support for CPU-specific acceleration instructions"
|
||||
url="https://github.com/google/crc32c"
|
||||
arch="all"
|
||||
license="BSD-3-Clause"
|
||||
makedepends="cmake samurai"
|
||||
checkdepends="benchmark-dev glog-dev gtest-dev"
|
||||
subpackages="$pkgname-dev"
|
||||
source="crc32c-$pkgver.tar.gz::https://github.com/google/crc32c/archive/$pkgver.tar.gz
|
||||
10-third-party.patch"
|
||||
|
||||
build() {
|
||||
if [ "$CBUILD" != "$CHOST" ]; then
|
||||
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
|
||||
fi
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
-DBUILD_SHARED_LIBS=True \
|
||||
-DCMAKE_BUILD_TYPE=None \
|
||||
-DCRC32C_BUILD_TESTS="$(want_check && echo ON || echo OFF)" \
|
||||
-DCRC32C_BUILD_BENCHMARKS="$(want_check && echo ON || echo OFF)" \
|
||||
-DCRC32C_USE_GLOG="$(want_check && echo ON || echo OFF)" \
|
||||
-DCRC32C_INSTALL=ON \
|
||||
$CMAKE_CROSSOPTS .
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
check() {
|
||||
cd build
|
||||
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
|
||||
./crc32c_bench
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
}
|
||||
sha512sums="
|
||||
6325c52b5a6850b9f90086e0c0c86798c008af36e7cfd3a0216184a2d37b3bf7323481ddc6bfe4cbd5b31288b3ee6c69772d03085a13094cf95d00a9756a7196 crc32c-1.1.2.tar.gz
|
||||
1f83e03d53271ee65a21e04c57392313003227a71a8c6de1fcf6c5d9041eaeb3cd08a9d4b86a610b80c06589cd06d36ae5e224d109256300b05fa65d638beddb 10-third-party.patch
|
||||
"
|
|
@ -4,7 +4,7 @@ pkgname=cura
|
|||
# uranium and curaengine packages must be updated in sync with this verion number
|
||||
# py3-pynest2d and fdm-materials should be checked as well, but their versions are not always in sync
|
||||
pkgver=5.2.2
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
pkgdesc="3D printer / slicing GUI built on top of the Uranium framework"
|
||||
url="https://ultimaker.com/software/ultimaker-cura"
|
||||
arch="noarch !ppc64le !x86 !armhf !riscv64 !s390x !armv7" # ppc64le: no py3-keyring
|
||||
|
@ -42,10 +42,8 @@ builddir="$srcdir/Cura-$pkgver"
|
|||
options="!check" # tests broken after v5.x
|
||||
|
||||
build() {
|
||||
local pyver="$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
|
||||
cmake -B build -G Ninja \
|
||||
-DCURA_VERSION=$pkgver \
|
||||
-DPython_VERSION=$pyver \
|
||||
-DURANIUM_DIR=/usr/share/uranium \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Maintainer: Anjandev Momi <anjan@momi.ca>
|
||||
pkgname=dex
|
||||
pkgver=0.9.0
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
pkgdesc="program to generate and execute DesktopEntry files of the Application type"
|
||||
url="https://github.com/jceb/dex"
|
||||
arch="all"
|
||||
|
@ -18,7 +18,7 @@ build() {
|
|||
}
|
||||
|
||||
package() {
|
||||
make install PREFIX=/usr MANPREFIX=/usr/share/man DESTDIR="$pkgdir"
|
||||
make install PREFIX=/usr DESTDIR="$pkgdir"
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
|
||||
# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
|
||||
# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
|
||||
# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
|
||||
pkgname=electron-tasje
|
||||
pkgver=0.7.1
|
||||
pkgver=0.5.7
|
||||
pkgrel=0
|
||||
pkgdesc="Tiny replacement for electron-builder"
|
||||
url="https://codeberg.org/selfisekai/electron_tasje/"
|
||||
arch="aarch64 x86_64" # only useful on platforms with electron
|
||||
license="Apache-2.0 OR MIT"
|
||||
makedepends="cargo cargo-auditable"
|
||||
source="electron_tasje-${_rev:-"$pkgver"}.tar.gz::https://codeberg.org/selfisekai/electron_tasje/archive/${_rev:-"v$pkgver"}.tar.gz"
|
||||
license="Apache-2.0"
|
||||
makedepends="cargo"
|
||||
source="electron_tasje-$pkgver.tar.gz::https://codeberg.org/selfisekai/electron_tasje/archive/v$pkgver.tar.gz"
|
||||
builddir="$srcdir/electron_tasje"
|
||||
|
||||
export CARGO_REGISTRIES_CRATES_IO_PROTOCOL="sparse"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
@ -19,7 +20,7 @@ prepare() {
|
|||
}
|
||||
|
||||
build() {
|
||||
cargo auditable build --frozen --release
|
||||
cargo build --frozen --release
|
||||
}
|
||||
|
||||
check() {
|
||||
|
@ -31,5 +32,5 @@ package() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
665ccbd6cb357c25d55daed4ad3b3ce008da258054951d9d069a5b12e72dd5812d534f906868e6b18e78949f058069a961c394c6f21ab3b3fab5393c330445e5 electron_tasje-0.7.1.tar.gz
|
||||
0fc47c25294a284ffcc9fc2440ac383c1b0796c75db9ee12902fc2614271bbb9a4abb9e42d2fa8d1ac5ff804acd251378b35d1b9aa4a00e2e9b927fa5c12c50c electron_tasje-0.5.7.tar.gz
|
||||
"
|
||||
|
|
|
@ -1,21 +1,17 @@
|
|||
# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
|
||||
# Maintainer: psykose <alice@ayaya.dev>
|
||||
pkgname=electron
|
||||
pkgver=30.0.9
|
||||
_semver="${pkgver/_beta/-beta.}"
|
||||
pkgver=24.2.0
|
||||
pkgrel=0
|
||||
_chromium=124.0.6367.233
|
||||
_copium_tag=124.5
|
||||
_depot_tools=495b23b39aaba2ca3b55dd27cadc523f1cb17ee6
|
||||
_chromium=112.0.5615.165
|
||||
_depot_tools=dbcecc90179a25159dc62f6ed00ae244360297e8
|
||||
pkgdesc="Electron cross-platform desktop toolkit"
|
||||
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"
|
||||
makedepends="
|
||||
ada-dev
|
||||
alsa-lib-dev
|
||||
aom-dev
|
||||
base64-dev
|
||||
bash
|
||||
brotli-dev
|
||||
bsd-compat-headers
|
||||
|
@ -25,17 +21,14 @@ makedepends="
|
|||
clang-dev
|
||||
clang-extra-tools
|
||||
compiler-rt
|
||||
crc32c-dev
|
||||
cups-dev
|
||||
curl-dev
|
||||
dav1d-dev
|
||||
dbus-glib-dev
|
||||
double-conversion-dev
|
||||
eudev-dev
|
||||
ffmpeg-dev
|
||||
findutils
|
||||
flac-dev
|
||||
flatbuffers-dev
|
||||
flex
|
||||
freetype-dev
|
||||
gperf
|
||||
|
@ -43,26 +36,23 @@ makedepends="
|
|||
gn
|
||||
gzip
|
||||
harfbuzz-dev
|
||||
hdrhistogram-c-dev
|
||||
highway-dev
|
||||
hunspell-dev
|
||||
http-parser-dev
|
||||
hwdata-dev
|
||||
hwids-usb
|
||||
java-jdk
|
||||
jpeg-dev
|
||||
jsoncpp-dev
|
||||
krb5-dev
|
||||
lcms2-dev
|
||||
libarchive-tools
|
||||
libavif-dev
|
||||
libbsd-dev
|
||||
libcap-dev
|
||||
libdrm-dev
|
||||
libevent-dev
|
||||
libexif-dev
|
||||
libgcrypt-dev
|
||||
libjpeg-turbo-dev
|
||||
libnotify-dev
|
||||
libsecret-dev
|
||||
libusb-dev
|
||||
libva-dev
|
||||
libwebp-dev
|
||||
|
@ -82,107 +72,62 @@ makedepends="
|
|||
nodejs
|
||||
npm
|
||||
nss-dev
|
||||
openh264-dev
|
||||
opus-dev
|
||||
pciutils-dev
|
||||
perl
|
||||
pipewire-dev
|
||||
pulseaudio-dev
|
||||
py3-httplib2
|
||||
py3-jinja2
|
||||
py3-parsing
|
||||
py3-setuptools
|
||||
py3-six
|
||||
python3
|
||||
qt5-qtbase-dev
|
||||
re2-dev
|
||||
rsync
|
||||
rust
|
||||
samurai
|
||||
snappy-dev
|
||||
speex-dev
|
||||
sqlite-dev
|
||||
woff2-dev
|
||||
xcb-proto
|
||||
yarn
|
||||
zlib-dev
|
||||
zstd-dev
|
||||
zstd
|
||||
"
|
||||
subpackages="$pkgname-lang $pkgname-dev"
|
||||
# the lower patches are specific to electron, the top ones are from the equivalent chromium version
|
||||
source="https://ab-sn.lnl.gay/electron-$_semver-$_chromium.tar.zst
|
||||
copium-$_copium_tag.tar.gz::https://codeberg.org/selfisekai/copium/archive/$_copium_tag.tar.gz
|
||||
source="$pkgname-$pkgver-2.tar.zst::https://dev.alpinelinux.org/archive/electron/electron-$pkgver.tar.zst
|
||||
chromium-VirtualCursor-standard-layout.patch
|
||||
chromium-revert-drop-of-system-java.patch
|
||||
compiler.patch
|
||||
disable-dns_config_service.patch
|
||||
disable-failing-tests.patch
|
||||
fc-cache-version.patch
|
||||
chromium-use-alpine-target.patch
|
||||
fix-missing-cstdint-include-musl.patch
|
||||
fix-opus.patch
|
||||
fstatat-32bit.patch
|
||||
gdbinit.patch
|
||||
generic-sensor-include.patch
|
||||
import-version.patch
|
||||
libstdc++13.patch
|
||||
libcxx-muslmode.patch
|
||||
mman.patch
|
||||
musl-auxv.patch
|
||||
musl-sandbox.patch
|
||||
musl-tid-caching.patch
|
||||
musl-v8-monotonic-pthread-cont_timedwait.patch
|
||||
no-execinfo.patch
|
||||
no-mallinfo.patch
|
||||
no-res-ninit-nclose.patch
|
||||
no-sandbox-settls.patch
|
||||
partalloc-no-tagging-arm64.patch
|
||||
perfetto-libstdc++.patch
|
||||
pvalloc.patch
|
||||
random-fixes.patch
|
||||
quiche-array.patch
|
||||
system-zstd.patch
|
||||
quiche-arena-size.patch
|
||||
scoped-file-no-close.patch
|
||||
temp-failure-retry.patch
|
||||
yes-musl.patch
|
||||
|
||||
icon.patch
|
||||
python-jinja-3.10.patch
|
||||
webpack-hash.patch
|
||||
unbundle-node.patch
|
||||
|
||||
default.conf
|
||||
electron.desktop
|
||||
electron-launcher.sh
|
||||
"
|
||||
_copium_patches="
|
||||
cr124-iwyu-sys-select-dawn-terminal.patch
|
||||
cr124-libwebp-shim-sharpyuv.patch
|
||||
"
|
||||
# chromium sandbox is suid
|
||||
# tests are todo for some base checks
|
||||
options="!check net suid"
|
||||
builddir="$srcdir/electron-$_semver-$_chromium"
|
||||
|
||||
export PATH="$PATH:/usr/lib/qt5/bin"
|
||||
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
|
||||
# required to find the tools
|
||||
export AR=llvm-ar
|
||||
export NM=llvm-nm
|
||||
export LD=clang++
|
||||
|
||||
# less log spam, reproducible
|
||||
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"
|
||||
export CPPFLAGS="${CPPFLAGS/-g/} -D__DATE__= -D__TIME__= -D__TIMESTAMP__="
|
||||
case "$CARCH" in
|
||||
aarch64|arm*|riscv64)
|
||||
# not supported by clang here
|
||||
export CFLAGS="${CFLAGS/-fstack-clash-protection}"
|
||||
export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}"
|
||||
;;
|
||||
esac
|
||||
|
||||
# breaks chromium-based stuff
|
||||
export CXXFLAGS="${CXXFLAGS/-D_GLIBCXX_ASSERTIONS=1}"
|
||||
|
||||
# creates a dist tarball that does not need to git clone everything at build time.
|
||||
_distbucket="sakamoto/lnl-aports-snapshots/"
|
||||
snapshot() {
|
||||
deps
|
||||
# vpython3 execs system python3 with this set
|
||||
|
@ -190,33 +135,36 @@ snapshot() {
|
|||
export CHROMIUM_BUILDTOOLS_PATH="$srcdir/src/buildtools"
|
||||
mkdir -p "$srcdir"
|
||||
cd "$srcdir"
|
||||
git clone --branch=$_chromium --depth=1 \
|
||||
https://chromium.googlesource.com/chromium/src.git
|
||||
|
||||
if ! [ -d depot_tools ]; then
|
||||
(
|
||||
git clone --depth 1 -b main https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
||||
cd depot_tools
|
||||
git fetch --depth 1 origin $_depot_tools
|
||||
git checkout $_depot_tools
|
||||
)
|
||||
fi
|
||||
git clone https://github.com/electron/electron.git
|
||||
|
||||
(
|
||||
git clone --depth 1 -b main https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
||||
cd depot_tools
|
||||
git fetch --depth 1 origin $_depot_tools
|
||||
git checkout $_depot_tools
|
||||
)
|
||||
|
||||
export PATH="$PATH:$srcdir/depot_tools"
|
||||
|
||||
echo "solutions = [
|
||||
{
|
||||
\"name\": \"src/electron\",
|
||||
\"url\": \"https://github.com/electron/electron.git@v$_semver\",
|
||||
\"url\": \"file://$srcdir/electron@v$pkgver\",
|
||||
\"deps_file\": \"DEPS\",
|
||||
\"managed\": False,
|
||||
\"custom_deps\": {
|
||||
\"src\": \"https://chromium.googlesource.com/chromium/src.git@$_chromium\",
|
||||
\"src\": None,
|
||||
},
|
||||
\"custom_vars\": {},
|
||||
},
|
||||
]" > .gclient
|
||||
|
||||
python3 depot_tools/gclient.py sync \
|
||||
--no-history \
|
||||
--with_branch_heads \
|
||||
--with_tags \
|
||||
--nohooks
|
||||
|
||||
python3 src/build/landmines.py
|
||||
|
@ -228,21 +176,32 @@ snapshot() {
|
|||
python3 src/build/util/lastchange.py -m SKIA_COMMIT_HASH \
|
||||
-s src/third_party/skia --header src/skia/ext/skia_commit_hash.h
|
||||
|
||||
# rolled newer chromium with it included
|
||||
sed -i '/reland_mojom_ts_generator_handle_empty_module_path_identically_to.patch/d' src/electron/patches/chromium/.patches
|
||||
# why?
|
||||
cp -r electron/patches/ffmpeg src/electron/patches/
|
||||
|
||||
python3 src/electron/script/apply_all_patches.py \
|
||||
src/electron/patches/config.json
|
||||
python3 electron/script/apply_all_patches.py \
|
||||
electron/patches/config.json
|
||||
|
||||
mv src $pkgname-$_semver-$_chromium
|
||||
python3 src/tools/update_pgo_profiles.py \
|
||||
--target=linux \
|
||||
update \
|
||||
--gs-url-base=chromium-optimization-profiles/pgo_profiles
|
||||
|
||||
python3 src/tools/download_optimization_profile.py \
|
||||
--newest_state=src/chrome/android/profiles/newest.txt \
|
||||
--local_state=src/chrome/android/profiles/local.txt \
|
||||
--output_name=src/chrome/android/profiles/afdo.prof \
|
||||
--gs_url_base=chromeos-prebuilt/afdo-job/llvm
|
||||
|
||||
mv src $pkgname-$pkgver
|
||||
|
||||
# extra binaries are most likely things we don't want, so nuke them all
|
||||
for elf in $(scanelf -RA -F "%F" $pkgname-$_semver-$_chromium); do
|
||||
for elf in $(scanelf -RA -F "%F" $pkgname-$pkgver); do
|
||||
rm -f "$elf"
|
||||
done
|
||||
|
||||
msg "generating tarball.. (this takes a while)"
|
||||
tar -cf $pkgname-$_semver-$_chromium.tar \
|
||||
tar -cf $pkgname-$pkgver.tar \
|
||||
--exclude="ChangeLog*" \
|
||||
--exclude="testdata/*" \
|
||||
--exclude="test_data/*" \
|
||||
|
@ -250,32 +209,15 @@ snapshot() {
|
|||
--exclude-backups \
|
||||
--exclude-caches-all \
|
||||
--exclude-vcs \
|
||||
$pkgname-$_semver-$_chromium
|
||||
$pkgname-$pkgver
|
||||
|
||||
zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv $pkgname-$_semver-$_chromium.tar -o "$SRCDEST"/$pkgname-$_semver-$_chromium.tar.zst
|
||||
mcli cp "$SRCDEST"/$pkgname-$_semver-$_chromium.tar.zst "$_distbucket"
|
||||
zstd --ultra --long -22 -T0 -vv $pkgname-$pkgver.tar
|
||||
}
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
for i in $_copium_patches; do
|
||||
case "$i" in
|
||||
*.patch)
|
||||
msg "${i%::*}"
|
||||
patch -p1 -i "$srcdir/copium/$i" || failed="$failed $i"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ ! -z "$failed" ]; then
|
||||
error "The following patches failed to apply:"
|
||||
for i in $failed; do
|
||||
printf " %s\n" "$i" >&2
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git init -q .
|
||||
git init .
|
||||
|
||||
# link to system tools
|
||||
ln -sfv /usr/bin/clang-format buildtools/linux64/clang-format
|
||||
|
@ -285,14 +227,14 @@ prepare() {
|
|||
|
||||
(
|
||||
cd electron
|
||||
git init -q .
|
||||
git init .
|
||||
git config user.email "example@example.com"
|
||||
git config user.name "example"
|
||||
git config commit.gpgsign false
|
||||
git add LICENSE
|
||||
git commit -m "init"
|
||||
git tag "v$_semver"
|
||||
git pack-refs
|
||||
git tag "v$pkgver"
|
||||
# jesus christ what the fuck is wrong with you?
|
||||
touch .git/packed-refs
|
||||
yarn install --frozen-lockfile --no-scripts
|
||||
)
|
||||
|
||||
|
@ -301,39 +243,38 @@ prepare() {
|
|||
./update_npm_deps
|
||||
)
|
||||
|
||||
# reusable system library settings
|
||||
# flatbuffers - tensorflow has a few static_asserts for a specific patch version
|
||||
# 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
|
||||
# jsoncpp, re2, snappy, swiftshader, vulkan, woff2 - needs use_custom_libcxx=false
|
||||
local chromium_use_system="
|
||||
# these are normally unbundled, but they can't be with custom_libcxx.
|
||||
# we use custom_libcxx as there are a few libstdc++ incompatibilities
|
||||
# that now cause segfaults with the wayland ozone platform since electron 22.
|
||||
# obviously, this is a FIXME.
|
||||
# ---
|
||||
# jsoncpp
|
||||
# re2
|
||||
# woff2
|
||||
# ---
|
||||
# libavif - https://github.com/AOMediaCodec/libavif/commit/4d2776a3
|
||||
local use_system="
|
||||
brotli
|
||||
crc32c
|
||||
dav1d
|
||||
double-conversion
|
||||
ffmpeg
|
||||
flac
|
||||
fontconfig
|
||||
freetype
|
||||
harfbuzz-ng
|
||||
highway
|
||||
icu
|
||||
libaom
|
||||
libdrm
|
||||
libevent
|
||||
libjpeg
|
||||
libsecret
|
||||
libusb
|
||||
libwebp
|
||||
libxml
|
||||
libxslt
|
||||
openh264
|
||||
opus
|
||||
snappy
|
||||
zlib
|
||||
zstd
|
||||
"
|
||||
|
||||
for _lib in $chromium_use_system jinja2 libjpeg_turbo; do
|
||||
for _lib in $use_system libjpeg_turbo; do
|
||||
msg "Removing buildscripts for system provided $_lib"
|
||||
find . -type f -path "*third_party/$_lib/*" \
|
||||
\! -path "*third_party/$_lib/chromium/*" \
|
||||
|
@ -343,39 +284,10 @@ prepare() {
|
|||
\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
|
||||
\! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
|
||||
\! -path './third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h' \
|
||||
\! -regex '.*\.\(gn\|gni\|gyp\|gypi\|isolate\|py\)' \
|
||||
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
|
||||
-delete
|
||||
done
|
||||
|
||||
# llhttp - 9.x needed, 8.x in repo (2023-12-17)
|
||||
# ada - needs use_custom_libcxx=false
|
||||
local node_use_system="
|
||||
base64
|
||||
brotli
|
||||
cares
|
||||
corepack
|
||||
histogram
|
||||
nghttp2
|
||||
nghttp3
|
||||
ngtcp2
|
||||
zlib
|
||||
"
|
||||
# some of these are provided by system, e.g. brotli. some are from chromium,
|
||||
# e.g. boringssl (as openssl). some are not in use at all (corepack)
|
||||
for _lib in $node_use_system openssl; do
|
||||
msg "Removing buildscripts for $_lib"
|
||||
find . -type f -path "*third_party/electron_node/deps/$_lib/*" \
|
||||
\! -path "*third_party/electron_node/deps/$_lib/chromium/*" \
|
||||
\! -path "*third_party/electron_node/deps/$_lib/google/*" \
|
||||
\! -regex '.*\.\(gn\|gni\|gyp\|gypi\|isolate\|py\)' \
|
||||
-delete
|
||||
done
|
||||
# XXX: hack. unbundle-node.patch uses this list to switch things
|
||||
# in config.gypi. https://github.com/electron/electron/issues/40836
|
||||
echo $node_use_system > third_party/electron_node/use_system.txt
|
||||
|
||||
rm -rf third_party/electron_node/tools/inspector_protocol/jinja2
|
||||
|
||||
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion
|
||||
touch chrome/test/data/webui/i18n_process_css_test.html
|
||||
# Use the file at run time instead of effectively compiling it in
|
||||
|
@ -384,7 +296,7 @@ prepare() {
|
|||
|
||||
msg "Running debundle script"
|
||||
python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
|
||||
$chromium_use_system
|
||||
$use_system
|
||||
python3 third_party/libaddressinput/chromium/tools/update-strings.py
|
||||
|
||||
# prevent annoying errors when regenerating gni
|
||||
|
@ -409,77 +321,78 @@ _configure() {
|
|||
cd "$builddir"
|
||||
msg "Configuring build"
|
||||
|
||||
local clang_ver="$(clang -dumpversion)"
|
||||
export PATH="$PATH:/usr/lib/qt5/bin"
|
||||
|
||||
case "$USE_CCACHE" in
|
||||
1)
|
||||
local cc_wrapper="ccache"
|
||||
;;
|
||||
*)
|
||||
local cc_wrapper=""
|
||||
;;
|
||||
esac
|
||||
# clang uses much less memory (and this doesn't support gcc)
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
|
||||
local maglev=true
|
||||
local symbol_level=0
|
||||
local vaapi=true
|
||||
# required to find the tools
|
||||
export AR=llvm-ar
|
||||
export NM=llvm-nm
|
||||
export LD=clang++
|
||||
|
||||
# less log spam, reproducible
|
||||
export CFLAGS="${CFLAGS/-g/} -O2 -Wno-unknown-warning-option -Wno-builtin-macro-redefined -Wno-deprecated-declarations"
|
||||
export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-unknown-warning-option -Wno-builtin-macro-redefined -Wno-deprecated-declarations"
|
||||
export CPPFLAGS="${CPPFLAGS/-g/} -D__DATE__= -D__TIME__= -D__TIMESTAMP__="
|
||||
|
||||
# shellcheck disable=2089
|
||||
local gn_config="
|
||||
clang_base_path=\"/usr\"
|
||||
custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
|
||||
host_toolchain=\"//build/toolchain/linux/unbundle:default\"
|
||||
import(\"//electron/build/args/release.gn\")
|
||||
|
||||
blink_enable_generated_code_formatting=false
|
||||
cc_wrapper=\"$cc_wrapper\"
|
||||
chrome_pgo_phase=0
|
||||
clang_base_path=\"/usr\"
|
||||
clang_use_chrome_plugins=false
|
||||
clang_version=\"${clang_ver%%.*}\"
|
||||
custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
|
||||
disable_fieldtrial_testing_config=true
|
||||
enable_hangout_services_extension=true
|
||||
enable_nacl=false
|
||||
enable_nocompile_tests=false
|
||||
enable_stripping=false
|
||||
enable_rust=true
|
||||
enable_vr=false
|
||||
fatal_linker_warnings=false
|
||||
ffmpeg_branding=\"Chrome\"
|
||||
host_toolchain=\"//build/toolchain/linux/unbundle:default\"
|
||||
icu_use_data_file=false
|
||||
icu_use_data_file=true
|
||||
is_cfi=false
|
||||
is_clang=true
|
||||
is_component_ffmpeg=true
|
||||
is_debug=false
|
||||
is_official_build=true
|
||||
symbol_level=0
|
||||
treat_warnings_as_errors=false
|
||||
|
||||
angle_enable_gl_null=false
|
||||
build_tflite_with_xnnpack=false
|
||||
build_with_tflite_lib=false
|
||||
disable_fieldtrial_testing_config=true
|
||||
enable_hangout_services_extension=true
|
||||
enable_library_cdms=false
|
||||
enable_media_remoting=false
|
||||
enable_nacl=false
|
||||
enable_paint_preview=false
|
||||
enable_reading_list=false
|
||||
enable_remoting=false
|
||||
enable_reporting=false
|
||||
enable_screen_ai_service=false
|
||||
enable_service_discovery=false
|
||||
enable_stripping=false
|
||||
enable_vr=false
|
||||
ozone_platform_headless=false
|
||||
|
||||
link_pulseaudio=true
|
||||
proprietary_codecs=true
|
||||
regenerate_x11_protos=true
|
||||
rtc_link_pipewire=true
|
||||
rtc_use_pipewire=true
|
||||
rustc_version=\"yes\"
|
||||
rust_sysroot_absolute=\"/usr\"
|
||||
symbol_level=$symbol_level
|
||||
treat_warnings_as_errors=false
|
||||
use_custom_libcxx=true
|
||||
use_lld=true
|
||||
use_pulseaudio=true
|
||||
use_safe_libstdcxx=false
|
||||
use_system_libffi=true
|
||||
use_sysroot=false
|
||||
use_thin_lto=false
|
||||
use_vaapi=$vaapi
|
||||
v8_enable_maglev=$maglev
|
||||
|
||||
skia_use_dawn=false
|
||||
use_dawn=false
|
||||
use_system_ada=false
|
||||
use_system_base64=true
|
||||
use_gnome_keyring=false
|
||||
use_pulseaudio=true
|
||||
use_sysroot=false
|
||||
use_system_cares=true
|
||||
use_system_histogram=true
|
||||
use_system_freetype=true
|
||||
use_system_harfbuzz=true
|
||||
use_system_lcms2=true
|
||||
use_system_libdrm=true
|
||||
use_system_libffi=true
|
||||
use_system_llhttp=false
|
||||
use_system_libjpeg=true
|
||||
use_system_nghttp2=true
|
||||
use_system_zlib=true
|
||||
use_vaapi=true
|
||||
"
|
||||
|
||||
# shellcheck disable=2086,2090,2116
|
||||
|
@ -490,15 +403,11 @@ _configure() {
|
|||
build() {
|
||||
export PATH="$PATH:/usr/lib/qt5/bin"
|
||||
|
||||
# ~1 GB per concurrent job is not enough with gcc
|
||||
_njobs="${NJOBS:-"$(python3 -c 'import os; print(max((os.cpu_count() - (10 if os.uname().machine == "aarch64" else 8), 1)))')"}"
|
||||
|
||||
ninja -C out/Release -j$_njobs \
|
||||
ninja -C out/Release \
|
||||
electron_dist_zip \
|
||||
node_gypi_headers \
|
||||
node_version_header
|
||||
|
||||
cp -vf out/Release/gen/node_headers/include/node/config.gypi third_party/electron_node/config.gypi
|
||||
node_version_header \
|
||||
tar_headers
|
||||
}
|
||||
|
||||
package() {
|
||||
|
@ -513,12 +422,7 @@ package() {
|
|||
|
||||
mkdir -p "$pkgdir"/usr/include/electron
|
||||
|
||||
(
|
||||
cd third_party/electron_node/
|
||||
HEADERS_ONLY=1 python3 ./tools/install.py install "$pkgdir" "/usr/include/electron/node_headers"
|
||||
)
|
||||
# required overrides
|
||||
install -Dm644 out/Release/gen/node_headers/include/node/* -t "$pkgdir"/usr/include/electron/node_headers/include/node
|
||||
mv -v "$builddir"/out/Release/gen/node_headers "$pkgdir"/usr/include/electron
|
||||
ln -sv /usr/include/electron/node_headers/include/node "$pkgdir"/usr/include/electron/node
|
||||
|
||||
mkdir -p "$pkgdir"/usr/include/electron/node_headers/include/nan
|
||||
|
@ -544,42 +448,28 @@ lang() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
97024407a16fb41ec56fcc6df5552165ce4eea34fc51b17ecbf30a7e35406baccf8a3001a795a06d1e92d32e134d9d7a18d59fa74eda1b1bc23b59bc4947929b electron-30.0.9-124.0.6367.233.tar.zst
|
||||
13c647dc2024e27ae8a4d7e8f1202037a342f4a7054477226665c332029e1b6f1d8b99004c2b2809bcf1e6c19b1359ef5e1c971552d7ced59c5b43d5a836af88 copium-124.5.tar.gz
|
||||
208cbaa48cd929c242dce6d7e4291655a625b84f44f7d5d3ef6b40d55f7ab2269457496afa8fff73bc6c5aa01be6d26e4bdf63371a407f1f888061fbfc778a6d electron-24.2.0-2.tar.zst
|
||||
f88adc643dacf7e7be1b9bb77ff2c172cd04de2a988d3cdca77313122ba3ea93e6781ee675f3d7daf337a2542c0cbf31ffb08413e9f85c287b3a5e950d7d8a31 chromium-VirtualCursor-standard-layout.patch
|
||||
29bb685e03356a77df5fd347cdf55194cc8b3265c421cc76e54d64edefc329dbcb052deb26b22e8f587ce68456876c071de1b7d258dd0fcc6ee66c875ec4a020 chromium-revert-drop-of-system-java.patch
|
||||
54eb147c0af2ba096d1df375a289b339ee855ab1a9114e7c747753f0274a6bafb7212c1859b7885454c4529d9a5e3bd9559fc14e8e006f23ccd381895fa68d15 compiler.patch
|
||||
4057cc78f10bfd64092bc35a373869abb1d68b880cdbca70422f39ffd78a929c19c7728d4d4c40709aaba25581148a93ae5343e724849fd35323062ed68753fa disable-dns_config_service.patch
|
||||
111bc22fb704d97759988268a40d6b356c51b0bd7a8119a694e905ffe21850ff64e91566cd0dd0c9d62fcb46dca8acc821436c34eb0ba78be872ee4f7ec88a7b disable-failing-tests.patch
|
||||
5fc5c012c1db6cf1ba82f38c6f3f4f5ca3a209e47ac708a74de379b018e0649b7694877c9571ef79002dde875ffc07b458a3355425f1c01867f362c66c2bc1bf fc-cache-version.patch
|
||||
fa291e941076146d0edd5b96c088240a44a6e0aca3dfc744929655607182d2dc47e6c35ecb419f7c623fcf7f26dc3c4dd924dbf5ed10c3b986283f5ef2f72573 chromium-use-alpine-target.patch
|
||||
9200f78bad70e95c648a5e8392d50642190600f655c6baa366ff6467ebad52d3b3f305dad58f3610da67136f4b723557653b174ec5c25be8d8737ee04d9ee09f fix-missing-cstdint-include-musl.patch
|
||||
b24563e9a738c00fce7ff2fbdee3d7c024d9125d7c74d9ab90af6bdb16f7ec8419f2c8aa78c0640f6d5d81c17dc2c673a194401d354f466749672729b48ed068 fix-opus.patch
|
||||
c63dee5044353eb306a39ca1526158c0f003ab310ecb03d1c368dc2a979454590c84b8d3c15484517d5e66bb8add9b231da9abbadf2e50850abd72ac1345c4ab fstatat-32bit.patch
|
||||
33ee60863cc438ef57ffef92ba4cf67a856a5ffc16138bce241bcf87e47b15154aa86918e793c26f7ec4dc62a445257ad5673ed7001daf22c4043cf6cc57da7f gdbinit.patch
|
||||
36a764fa73443b47d38050b52dbe6ad2fa8d67201ff4ccdbad13b52308ef165ca046aac6f9609fe35890a6485f0f3e672e78cc41e3e44f3cdc7f145e540524e8 generic-sensor-include.patch
|
||||
8de65109ece27ea63bd469f2220c56b8c752ba0a50fdf390082a2d5ae74b8e010199126175569f6d5084270dd4e0571e68aec32c0bca8211a6699925b3a09124 import-version.patch
|
||||
c49a1b06e061faa430d66dd5b404ef6c843e4d8a6e9012e963009a161b4726f8eb92c4da8fa710f8861f6e4daa8be5f68abee41a7d9fc02f2a0eb61ce53b5fdd libstdc++13.patch
|
||||
e75f57ae34c97ca1caf15fa4b4106c6c1e79c31ed66869cf92ed9ea0c449886c9511e455047c17c1e9ad8b9a46ad4948511a4f2995a4b6030fb4d1c7ae21d038 mman.patch
|
||||
99bcc7dd485b404a90c606a96addab1d900852128d44fb8cea8acc7303189ef87c89a7b0e749fd0e10c5ef5f6bf1fadeb5c16a34503cab6a59938ce2653d887e musl-auxv.patch
|
||||
1bb1b31ee3057fb626a2d5eb44698946484e45017310d55026347f18f774453828802438ba14691d81edaad6c96c5df25c4aca772a30674a04feca3df11fccfb libcxx-muslmode.patch
|
||||
0e991842e23a4b9133898125eeb39e45e3f86f886eef5d2f0d9a72ee143a3e124b3b4f60be94edd57ce4185bcd69704edb51f76d08fdb6207f5559a08dd41ab0 mman.patch
|
||||
50c274a420bb8a7f14fcb56e40920dac8f708792a4520789b4987facea459bef88113d5a2b60fa8c57bee6e92bff3617d6b73fa305c8c44614c638971cffd440 musl-sandbox.patch
|
||||
e7163ac5810ac85366cef2447412287c856e3d67c6b77f219a6e5a418b1965b98e449c409424ad0704a5bded9355dd0aec3dc4585918ce5a2ab36c079707afe2 musl-tid-caching.patch
|
||||
92eb002718026611f5542362ad69b67f0a398ff71b3fca5c05d55cb5c6f9f29334e5e127bb4860cfaa3fba0f0d4c901e2b98808217e7dc02e254a64a5c9521aa musl-v8-monotonic-pthread-cont_timedwait.patch
|
||||
73bca6c6f9873f2f11cef04f3f41f71e0ae86e7e2d77e14db4298675fec390744c5081f6fdb14052e5ee2b5885be1198c3aa6068eb2b656d1a665c0c3f36e708 no-execinfo.patch
|
||||
8e17101d69e23b456a9c03dc2fe95bcd56846389707ba6f4720192a9e9168406d20d9168dbebbb3a47d921ec92e478f0e390f46e6b9bb43a34dda217c6e6448b no-mallinfo.patch
|
||||
8cc774e8d84e434960222c0497ad8193ae35c0732f98d3282d5fd4b4930f914809eec97832c199517ca89ca6b9d1d011db5ce533c40c68ce5fa464609d131a23 no-execinfo.patch
|
||||
b5479874d125ee95a311295f227f8881a83023ec34fded7a6160b3ae32ea3ba0f2b833a9fb264c57f3d22746b6d8b00bdc8eb2ff86c43c412d6d3b55ae15b16b no-mallinfo.patch
|
||||
e4c4e5bc6f828f9c883dd418c0ba01887949c29c311f76206a1ec29f620b0c0ba0452949dc2778a9c46ea066405857536964a36436a68eecf7da7952736333cf no-res-ninit-nclose.patch
|
||||
6dc4d8dc92e685dace62265a1ddb3aebc558aed54d20ff6d36b030be0c48d7e84662326c31363612492574d9a03c62653cdc21a60995b97dee1d75cae86a9f9b no-sandbox-settls.patch
|
||||
d4ac7f350806b4410ccb1df3b0ad7e90a7b6d724a16919761aa2d47a6f21008c7374da528b05b754ee712b85d23adfb113c7f7b9ca2ed5b47644fe3ea0cb9119 partalloc-no-tagging-arm64.patch
|
||||
8e1aca983890c78d81a6f888b2cf1aa42878d1f8523e87d63b800e1e468cbfd33e5ff6a0975775ca222fe82f30c6497da95505da01b091c8776a44c98ac86f0f perfetto-libstdc++.patch
|
||||
2eb434b4fc6aee77026492644cd86772a543d9845f112a75cd4c3e1f25c9435cc31f8454c1c73223451fc9be69b86e822ff68821978f67f2fc8bcba50296d8e0 pvalloc.patch
|
||||
803b8117c65132f76bec42054a4b2257a078b15b07fd08645fec2dfd51aa4e0075a9015300cd579d4ae0d757d9850b9988e080cfc2eea093f6684fdf82c4722c random-fixes.patch
|
||||
86f612dd2b39602984a75b1b11c2ab8bc8cc6b4e78fae998570a777a6901ae45fdcdb22e46dd006dab703a0674e64c72cf8120af2dc5b9e78004f402c7e65358 quiche-array.patch
|
||||
b3beb98b539fe160fbc493ba410ae0f68540cc4b6834f1f8ce9a22c3f4f59ef5d583ad48793e10549fd02a701f833a3969791ef4524322cd1e715ca5bf226bc8 system-zstd.patch
|
||||
2bc334352cdf0e523003c882e1a29623896bf3f3543469b23a532cb5ff32a75e7f23dc94abfaed4a97e24d26bdc51b780728583f1e7e7860f00c49e4d91edfa9 quiche-arena-size.patch
|
||||
8c33808ede31dd3b8eb951991e034751949756c4e6c2cd0e19823e95fddf5f9d94424bbd73ffe6dd965df2b0887fc5c42ab8a97c64b553d47662e90651b84f13 scoped-file-no-close.patch
|
||||
e48693e6b7aeebf69a5acbf80d9a35defe4c23835121dfeb58b051ac7c527e758a41004f4d193274fe1b01c0bfb1dbc77b09cb6a404a3fdee507a2918afb0edb temp-failure-retry.patch
|
||||
914ccf649d7771f19f209ab97f99c481aebc6f66174d68e8b539f6ad4a70bc8cb0fae2df6dadbf0415958ffb3574c420fe029079dcce45f5e5add4db2e903566 yes-musl.patch
|
||||
465107da7818b237e3c144a318ab80c3c9343b51ed38b8971ef204692d13346929becbe94cefad4c153788d3a200642143584d5ca070f6304e768ba2139c19ec icon.patch
|
||||
905565c10f5e5600e7d4db965c892cc45009a258e9995da958974d838ace469e1db1019195307e8807860d5b55ba6bfeea478b1f39a9b99e82c619b2816a1a22 icon.patch
|
||||
e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e1005b644550331f6b8500177aa7e79bcb3750d3c1ceb76c3 python-jinja-3.10.patch
|
||||
2aa340854316f1284217c0ca17cbf44953684ad6c7da90815117df30928612eb9fb9ffb734b948dfc309cd25d1a67cd57f77aac2d052a3dd9aca07a3a58cbb30 webpack-hash.patch
|
||||
ebb18a0e2eba4b4606e900fa82f4b57fe91dcbdc943e17544bccb3c9a011a49b4331cdbee59629e44b80184bad4ea54ec887c0bfcd00cda8d5686060dbf365e3 unbundle-node.patch
|
||||
e8ea87c547546011c4c8fc2de30e4f443b85cd4cfcff92808e2521d2f9ada03feefb8e1b0cf0f6b460919c146e56ef8d5ad4bb5e2461cc5247c30d92eb4d068e default.conf
|
||||
08460b15037511a4e5469ceac6ae5dd4db4c8cb87c129aaaf40ba58b16c60b8a307ffdd85805efead235758abed09ec31db1ef4cf9159f7b9acdcee3031bc96c default.conf
|
||||
191559fc7aa1ea0353c6fb0cc321ee1d5803a0e44848c8be941cfab96277b0de6a59962d373e2a2a1686c8f9be2bcf2d2f33706759a339a959e297d3f7fda463 electron.desktop
|
||||
5f7ba5ad005f196facec1c0f26108356b64cafb1e5cfa462ff714a33b8a4c757ac00bfcb080da09eb5b65032f8eb245d9676a61ec554515d125ed63912708648 electron-launcher.sh
|
||||
03750694e5e0b66f084c6e43135e60be15abb059e23486346ee4352dcc236984f2f35467b47f2b2ad46c98c22091cc2b978de8e73680febadba169d960f13f9f electron-launcher.sh
|
||||
"
|
||||
|
|
219
backports/electron/chromium-VirtualCursor-standard-layout.patch
Normal file
219
backports/electron/chromium-VirtualCursor-standard-layout.patch
Normal file
|
@ -0,0 +1,219 @@
|
|||
needed for libstdc++11 + clang only
|
||||
crbug: https://bugs.chromium.org/p/chromium/issues/detail?id=1189788
|
||||
--
|
||||
diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
|
||||
index 9ecaafe..839318a 100644
|
||||
--- a/sql/recover_module/btree.cc
|
||||
+++ b/sql/recover_module/btree.cc
|
||||
@@ -135,16 +135,25 @@
|
||||
"Move the destructor to the .cc file if it's non-trival");
|
||||
#endif // !DCHECK_IS_ON()
|
||||
|
||||
-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
|
||||
- : page_id_(db_reader->page_id()),
|
||||
- db_reader_(db_reader),
|
||||
- cell_count_(ComputeCellCount(db_reader)),
|
||||
- next_read_index_(0),
|
||||
- last_record_size_(0) {
|
||||
+void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
|
||||
+ DCHECK(db_reader);
|
||||
DCHECK(IsOnValidPage(db_reader));
|
||||
+ page_id_ = db_reader->page_id();
|
||||
+ db_reader_ = db_reader;
|
||||
+ cell_count_ = ComputeCellCount(db_reader);
|
||||
+ next_read_index_ = 0;
|
||||
+ last_record_size_ = 0;
|
||||
DCHECK(DatabasePageReader::IsValidPageId(page_id_));
|
||||
}
|
||||
|
||||
+void LeafPageDecoder::Reset() {
|
||||
+ db_reader_ = nullptr;
|
||||
+ page_id_ = 0;
|
||||
+ cell_count_ = 0;
|
||||
+ next_read_index_ = 0;
|
||||
+ last_record_size_ = 0;
|
||||
+}
|
||||
+
|
||||
bool LeafPageDecoder::TryAdvance() {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
DCHECK(CanAdvance());
|
||||
diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
|
||||
index d76d076..33114b0 100644
|
||||
--- a/sql/recover_module/btree.h
|
||||
+++ b/sql/recover_module/btree.h
|
||||
@@ -102,7 +102,7 @@
|
||||
//
|
||||
// |db_reader| must have been used to read an inner page of a table B-tree.
|
||||
// |db_reader| must outlive this instance.
|
||||
- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
|
||||
+ explicit LeafPageDecoder() noexcept = default;
|
||||
~LeafPageDecoder() noexcept = default;
|
||||
|
||||
LeafPageDecoder(const LeafPageDecoder&) = delete;
|
||||
@@ -150,6 +150,15 @@
|
||||
// read as long as CanAdvance() returns true.
|
||||
bool TryAdvance();
|
||||
|
||||
+ // Initialize with DatabasePageReader
|
||||
+ void Initialize(DatabasePageReader* db_reader);
|
||||
+
|
||||
+ // Reset internal DatabasePageReader
|
||||
+ void Reset();
|
||||
+
|
||||
+ // True if DatabasePageReader is valid
|
||||
+ bool IsValid() { return (db_reader_ != nullptr); }
|
||||
+
|
||||
// True if the given reader may point to an inner page in a table B-tree.
|
||||
//
|
||||
// The last ReadPage() call on |db_reader| must have succeeded.
|
||||
@@ -163,14 +172,14 @@
|
||||
static int ComputeCellCount(DatabasePageReader* db_reader);
|
||||
|
||||
// The number of the B-tree page this reader is reading.
|
||||
- const int64_t page_id_;
|
||||
+ int64_t page_id_;
|
||||
// Used to read the tree page.
|
||||
//
|
||||
// Raw pointer usage is acceptable because this instance's owner is expected
|
||||
// to ensure that the DatabasePageReader outlives this.
|
||||
- DatabasePageReader* const db_reader_;
|
||||
+ DatabasePageReader* db_reader_;
|
||||
// Caches the ComputeCellCount() value for this reader's page.
|
||||
- const int cell_count_ = ComputeCellCount(db_reader_);
|
||||
+ int cell_count_;
|
||||
|
||||
// The reader's cursor state.
|
||||
//
|
||||
diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
|
||||
index 0029ff9..42548bc 100644
|
||||
--- a/sql/recover_module/cursor.cc
|
||||
+++ b/sql/recover_module/cursor.cc
|
||||
@@ -26,7 +26,7 @@
|
||||
int VirtualCursor::First() {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
inner_decoders_.clear();
|
||||
- leaf_decoder_ = nullptr;
|
||||
+ leaf_decoder_.Reset();
|
||||
|
||||
AppendPageDecoder(table_->root_page_id());
|
||||
return Next();
|
||||
@@ -36,18 +36,18 @@
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
record_reader_.Reset();
|
||||
|
||||
- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
|
||||
- if (leaf_decoder_.get()) {
|
||||
- if (!leaf_decoder_->CanAdvance()) {
|
||||
+ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
|
||||
+ if (leaf_decoder_.IsValid()) {
|
||||
+ if (!leaf_decoder_.CanAdvance()) {
|
||||
// The leaf has been exhausted. Remove it from the DFS stack.
|
||||
- leaf_decoder_ = nullptr;
|
||||
+ leaf_decoder_.Reset();
|
||||
continue;
|
||||
}
|
||||
- if (!leaf_decoder_->TryAdvance())
|
||||
+ if (!leaf_decoder_.TryAdvance())
|
||||
continue;
|
||||
|
||||
- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
|
||||
- leaf_decoder_->last_record_offset())) {
|
||||
+ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
|
||||
+ leaf_decoder_.last_record_offset())) {
|
||||
continue;
|
||||
}
|
||||
if (!record_reader_.Initialize())
|
||||
@@ -99,13 +99,13 @@
|
||||
int64_t VirtualCursor::RowId() {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
DCHECK(record_reader_.IsInitialized());
|
||||
- DCHECK(leaf_decoder_.get());
|
||||
- return leaf_decoder_->last_record_rowid();
|
||||
+ DCHECK(leaf_decoder_.IsValid());
|
||||
+ return leaf_decoder_.last_record_rowid();
|
||||
}
|
||||
|
||||
void VirtualCursor::AppendPageDecoder(int page_id) {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
- DCHECK(leaf_decoder_.get() == nullptr)
|
||||
+ DCHECK(!leaf_decoder_.IsValid())
|
||||
<< __func__
|
||||
<< " must only be called when the current path has no leaf decoder";
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
return;
|
||||
|
||||
if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
|
||||
- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
|
||||
+ leaf_decoder_.Initialize(&db_reader_);
|
||||
return;
|
||||
}
|
||||
|
||||
diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
|
||||
index afcd690..b15c31d 100644
|
||||
--- a/sql/recover_module/cursor.h
|
||||
+++ b/sql/recover_module/cursor.h
|
||||
@@ -129,7 +129,7 @@
|
||||
std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
|
||||
|
||||
// Decodes the leaf page containing records.
|
||||
- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
|
||||
+ LeafPageDecoder leaf_decoder_;
|
||||
|
||||
SEQUENCE_CHECKER(sequence_checker_);
|
||||
};
|
||||
diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
|
||||
index 58e75de..5fe9620 100644
|
||||
--- a/sql/recover_module/pager.cc
|
||||
+++ b/sql/recover_module/pager.cc
|
||||
@@ -23,8 +23,7 @@
|
||||
"ints are not appropriate for representing page IDs");
|
||||
|
||||
DatabasePageReader::DatabasePageReader(VirtualTable* table)
|
||||
- : page_data_(std::make_unique<uint8_t[]>(table->page_size())),
|
||||
- table_(table) {
|
||||
+ : page_data_(), table_(table) {
|
||||
DCHECK(table != nullptr);
|
||||
DCHECK(IsValidPageSize(table->page_size()));
|
||||
}
|
||||
@@ -57,8 +56,8 @@
|
||||
std::numeric_limits<int64_t>::max(),
|
||||
"The |read_offset| computation above may overflow");
|
||||
|
||||
- int sqlite_status =
|
||||
- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
|
||||
+ int sqlite_status = RawRead(sqlite_file, read_size, read_offset,
|
||||
+ const_cast<uint8_t*>(page_data_.data()));
|
||||
|
||||
// |page_id_| needs to be set to kInvalidPageId if the read failed.
|
||||
// Otherwise, future ReadPage() calls with the previous |page_id_| value
|
||||
diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
|
||||
index 0e388ddc..99314e3 100644
|
||||
--- a/sql/recover_module/pager.h
|
||||
+++ b/sql/recover_module/pager.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef SQL_RECOVER_MODULE_PAGER_H_
|
||||
#define SQL_RECOVER_MODULE_PAGER_H_
|
||||
|
||||
+#include <array>
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
@@ -70,7 +71,7 @@
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
DCHECK_NE(page_id_, kInvalidPageId)
|
||||
<< "Successful ReadPage() required before accessing pager state";
|
||||
- return page_data_.get();
|
||||
+ return page_data_.data();
|
||||
}
|
||||
|
||||
// The number of bytes in the page read by the last ReadPage() call.
|
||||
@@ -137,7 +138,7 @@
|
||||
int page_id_ = kInvalidPageId;
|
||||
// Stores the bytes of the last page successfully read by ReadPage().
|
||||
// The content is undefined if the last call to ReadPage() did not succeed.
|
||||
- const std::unique_ptr<uint8_t[]> page_data_;
|
||||
+ const std::array<uint8_t, kMaxPageSize> page_data_;
|
||||
// Raw pointer usage is acceptable because this instance's owner is expected
|
||||
// to ensure that the VirtualTable outlives this.
|
||||
VirtualTable* const table_;
|
30
backports/electron/chromium-use-alpine-target.patch
Normal file
30
backports/electron/chromium-use-alpine-target.patch
Normal file
|
@ -0,0 +1,30 @@
|
|||
building for arm targets by default passes --target to clang, because it
|
||||
assumes it's cross compiling (so passes --target as if the host is different,
|
||||
instead of assuming default)
|
||||
|
||||
probably also works: removing this entirely. but to be safe, pass the alpine clang host triple
|
||||
--
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -915,8 +915,8 @@ config("compiler_cpu_abi") {
|
||||
} else if (current_cpu == "arm") {
|
||||
if (is_clang && !is_android && !is_nacl &&
|
||||
!(is_chromeos_lacros && is_chromeos_device)) {
|
||||
- cflags += [ "--target=arm-linux-gnueabihf" ]
|
||||
- ldflags += [ "--target=arm-linux-gnueabihf" ]
|
||||
+ cflags += [ "--target=armv7-alpine-linux-musleabihf" ]
|
||||
+ ldflags += [ "--target=armv7-alpine-linux-musleabihf" ]
|
||||
}
|
||||
if (!is_nacl) {
|
||||
cflags += [
|
||||
@@ -930,8 +930,8 @@ config("compiler_cpu_abi") {
|
||||
} else if (current_cpu == "arm64") {
|
||||
if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
|
||||
!(is_chromeos_lacros && is_chromeos_device)) {
|
||||
- cflags += [ "--target=aarch64-linux-gnu" ]
|
||||
- ldflags += [ "--target=aarch64-linux-gnu" ]
|
||||
+ cflags += [ "--target=aarch64-alpine-linux-musl" ]
|
||||
+ ldflags += [ "--target=aarch64-alpine-linux-musl" ]
|
||||
}
|
||||
if (is_android) {
|
||||
# Outline atomics crash on Exynos 9810. http://crbug.com/1272795
|
|
@ -1,132 +0,0 @@
|
|||
--- ./build/config/compiler/BUILD.gn.orig
|
||||
+++ ./build/config/compiler/BUILD.gn
|
||||
@@ -613,24 +613,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
- # TODO(crbug.com/1488374): This causes binary size growth and potentially
|
||||
- # other problems.
|
||||
- # TODO(crbug.com/1491036): 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",
|
||||
- ]
|
||||
- if (use_thin_lto && is_a_target_toolchain) {
|
||||
- if (is_win) {
|
||||
- ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
|
||||
- } else {
|
||||
- ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
# TODO(crbug.com/1235145): Investigate why/if this should be needed.
|
||||
if (is_win) {
|
||||
cflags += [ "/clang:-ffp-contract=off" ]
|
||||
@@ -1005,17 +987,6 @@
|
||||
# `-nodefaultlibs` from the linker invocation from Rust, which would be used
|
||||
# to compile dylibs on Android, such as for constructing unit test APKs.
|
||||
"-Cdefault-linker-libraries",
|
||||
-
|
||||
- # To make Rust .d files compatible with ninja
|
||||
- "-Zdep-info-omit-d-target",
|
||||
-
|
||||
- # If a macro panics during compilation, show which macro and where it is
|
||||
- # defined.
|
||||
- "-Zmacro-backtrace",
|
||||
-
|
||||
- # For deterministic builds, keep the local machine's current working
|
||||
- # directory from appearing in build outputs.
|
||||
- "-Zremap-cwd-prefix=.",
|
||||
]
|
||||
|
||||
if (!is_win || force_rustc_color_output) {
|
||||
@@ -1182,8 +1153,8 @@
|
||||
} else if (current_cpu == "arm") {
|
||||
if (is_clang && !is_android && !is_nacl &&
|
||||
!(is_chromeos_lacros && is_chromeos_device)) {
|
||||
- cflags += [ "--target=arm-linux-gnueabihf" ]
|
||||
- ldflags += [ "--target=arm-linux-gnueabihf" ]
|
||||
+ cflags += [ "--target=armv7-alpine-linux-musleabihf" ]
|
||||
+ ldflags += [ "--target=armv7-alpine-linux-musleabihf" ]
|
||||
}
|
||||
if (!is_nacl) {
|
||||
cflags += [
|
||||
@@ -1197,8 +1168,8 @@
|
||||
} else if (current_cpu == "arm64") {
|
||||
if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
|
||||
!(is_chromeos_lacros && is_chromeos_device)) {
|
||||
- cflags += [ "--target=aarch64-linux-gnu" ]
|
||||
- ldflags += [ "--target=aarch64-linux-gnu" ]
|
||||
+ cflags += [ "--target=aarch64-alpine-linux-musl" ]
|
||||
+ ldflags += [ "--target=aarch64-alpine-linux-musl" ]
|
||||
}
|
||||
} else if (current_cpu == "mipsel" && !is_nacl) {
|
||||
ldflags += [ "-Wl,--hash-style=sysv" ]
|
||||
@@ -1983,7 +1954,7 @@
|
||||
defines = [ "_HAS_NODISCARD" ]
|
||||
}
|
||||
} else {
|
||||
- cflags = [ "-Wall" ]
|
||||
+ cflags = []
|
||||
if (is_clang) {
|
||||
# Enable extra warnings for chromium_code when we control the compiler.
|
||||
cflags += [ "-Wextra" ]
|
||||
--- ./build/config/rust.gni.orig
|
||||
+++ ./build/config/rust.gni
|
||||
@@ -186,11 +186,11 @@
|
||||
rust_abi_target = ""
|
||||
if (is_linux || is_chromeos) {
|
||||
if (current_cpu == "arm64") {
|
||||
- rust_abi_target = "aarch64-unknown-linux-gnu"
|
||||
+ rust_abi_target = "aarch64-alpine-linux-musl"
|
||||
} else if (current_cpu == "x86") {
|
||||
- rust_abi_target = "i686-unknown-linux-gnu"
|
||||
+ rust_abi_target = "i586-alpine-linux-musl"
|
||||
} else if (current_cpu == "x64") {
|
||||
- rust_abi_target = "x86_64-unknown-linux-gnu"
|
||||
+ rust_abi_target = "x86_64-alpine-linux-musl"
|
||||
} else if (current_cpu == "arm") {
|
||||
if (arm_float_abi == "hard") {
|
||||
float_suffix = "hf"
|
||||
@@ -199,13 +199,13 @@
|
||||
}
|
||||
if (arm_arch == "armv7-a" || arm_arch == "armv7") {
|
||||
# No way to inform Rust about the -a suffix.
|
||||
- rust_abi_target = "armv7-unknown-linux-gnueabi" + float_suffix
|
||||
+ rust_abi_target = "armv7-alpine-linux-musleabi" + float_suffix
|
||||
} else {
|
||||
- rust_abi_target = "arm-unknown-linux-gnueabi" + float_suffix
|
||||
+ rust_abi_target = "armv6-alpine-linux-musleabi" + float_suffix
|
||||
}
|
||||
} else {
|
||||
# Best guess for other future platforms.
|
||||
- rust_abi_target = current_cpu + "-unknown-linux-gnu"
|
||||
+ rust_abi_target = current_cpu + "-alpine-linux-musl"
|
||||
}
|
||||
} else if (is_android) {
|
||||
import("//build/config/android/abi.gni")
|
||||
--- ./build/config/clang/BUILD.gn.orig
|
||||
+++ ./build/config/clang/BUILD.gn
|
||||
@@ -128,14 +128,15 @@
|
||||
} else if (is_apple) {
|
||||
_dir = "darwin"
|
||||
} else if (is_linux || is_chromeos) {
|
||||
+ _dir = "linux"
|
||||
if (current_cpu == "x64") {
|
||||
- _dir = "x86_64-unknown-linux-gnu"
|
||||
+ _suffix = "-x86_64"
|
||||
} else if (current_cpu == "x86") {
|
||||
- _dir = "i386-unknown-linux-gnu"
|
||||
+ _suffix = "-i386"
|
||||
} else if (current_cpu == "arm") {
|
||||
- _dir = "armv7-unknown-linux-gnueabihf"
|
||||
+ _suffix = "-armhf"
|
||||
} else if (current_cpu == "arm64") {
|
||||
- _dir = "aarch64-unknown-linux-gnu"
|
||||
+ _suffix = "-aarch64"
|
||||
} else {
|
||||
assert(false) # Unhandled cpu type
|
||||
}
|
372
backports/electron/crbug-1407202-mediarouter-crash.patch
Normal file
372
backports/electron/crbug-1407202-mediarouter-crash.patch
Normal file
|
@ -0,0 +1,372 @@
|
|||
From d0c1f5ee1f56c165bdf550c9e3be0d7313587b80 Mon Sep 17 00:00:00 2001
|
||||
From: Elly Fong-Jones <ellyjones@chromium.org>
|
||||
Date: Wed, 18 Jan 2023 22:33:11 +0000
|
||||
Subject: [PATCH] media: untangle MediaRouterUI lifetimes
|
||||
|
||||
Currently, MediaRouterUI is owned by MediaItemUIDeviceSelectorView.
|
||||
There is an observer method named "OnControllerInvalidated" which
|
||||
MediaItemUIDeviceSelectorView reacts to by deleting the MediaRouterUI it
|
||||
owns. However, OnControllerInvalidated can actually be called in two
|
||||
different situations:
|
||||
|
||||
* From MediaRouterUI::TakeMediaRouteStarter(), in which case the
|
||||
MediaRouterUI object is *not* being destroyed, but should be, because
|
||||
it can't be safely used after TakeMediaRouteStarter() ends;
|
||||
* From MediaRouterUI::~MediaRouterUI(), in which case the MediaRouterUI
|
||||
object *is* being destroyed already and should not be.
|
||||
|
||||
In the second case, only the fact that libc++ nulls out unique_ptr
|
||||
before destroying the pointed-to object saves us from a use-after-free;
|
||||
under libstdc++, we UaF immediately by re-entering the destructor. Even
|
||||
under libc++ though this is still very dangerous, because any observers
|
||||
that happened to be registered after MediaItemUIDeviceSelectorView will
|
||||
be invoked after the destruction of the object they're observing. Right
|
||||
now there are no such other observers, but the fact remains that this
|
||||
interface is basically a UaF timebomb.
|
||||
|
||||
This change separates "this object is about to be destroyed" (an
|
||||
observable state) from "please destroy this object, it is no longer
|
||||
useful" (a callback that is made to the object's owner) by:
|
||||
|
||||
1. Renaming OnControllerInvalidated to OnControllerDestroying, to make
|
||||
it very clear what is happening to the object, and
|
||||
2. Adding a RegisterDestructor method to CastDialogController, which
|
||||
allows MediaItemUIDeviceSelectorView to pass a callback into
|
||||
MediaRouterUI which MediaRouterUI can use to arrange for its own
|
||||
destruction.
|
||||
|
||||
This is still a bit tangled and ungainly, but it's safe. A fuller
|
||||
writeup is on the linked bug.
|
||||
|
||||
Fixed: 1407202
|
||||
Change-Id: Id9410de1fbf2cb42f13957dde316b7c9259f192f
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4165967
|
||||
Reviewed-by: Peter Kasting <pkasting@chromium.org>
|
||||
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
|
||||
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1094110}
|
||||
---
|
||||
|
||||
diff --git a/chrome/browser/ui/media_router/cast_dialog_controller.h b/chrome/browser/ui/media_router/cast_dialog_controller.h
|
||||
index 2a8de976..c3c0553 100644
|
||||
--- a/chrome/browser/ui/media_router/cast_dialog_controller.h
|
||||
+++ b/chrome/browser/ui/media_router/cast_dialog_controller.h
|
||||
@@ -24,10 +24,12 @@
|
||||
public:
|
||||
virtual ~Observer() = default;
|
||||
|
||||
- virtual void OnModelUpdated(const CastDialogModel& model) = 0;
|
||||
+ virtual void OnModelUpdated(const CastDialogModel& model) {}
|
||||
|
||||
- // Observer should drop its reference to the controller when this is called.
|
||||
- virtual void OnControllerInvalidated() = 0;
|
||||
+ // Notifies observers that the observed object is being destroyed. Observers
|
||||
+ // MUST NOT try to destroy the observed object in response - to manage the
|
||||
+ // lifetime of a CastDialogController, use RegisterDestructor() below.
|
||||
+ virtual void OnControllerDestroying() {}
|
||||
};
|
||||
|
||||
virtual ~CastDialogController() = default;
|
||||
@@ -55,6 +57,16 @@
|
||||
// intended that this API should only be used to transfer ownership to some
|
||||
// new component that will want to start casting on this dialog box's behalf.
|
||||
virtual std::unique_ptr<MediaRouteStarter> TakeMediaRouteStarter() = 0;
|
||||
+
|
||||
+ // Registers a callback for when the CastDialogController has given up
|
||||
+ // ownership of its MediaRouteStarter and is no longer safe to use. The
|
||||
+ // provided closure must destroy |this| or otherwise ensure it is never used
|
||||
+ // again. This method can only be called once.
|
||||
+ //
|
||||
+ // TODO(https://crbug.com/1408494): It's awkward that CastDialogController has
|
||||
+ // a state where it exists but is unsafe to use, and doubly awkward that we
|
||||
+ // have to paper over that with this callback. Can that be fixed?
|
||||
+ virtual void RegisterDestructor(base::OnceClosure destructor) = 0;
|
||||
};
|
||||
|
||||
} // namespace media_router
|
||||
diff --git a/chrome/browser/ui/media_router/media_router_ui.cc b/chrome/browser/ui/media_router/media_router_ui.cc
|
||||
index 1865115f..644d131 100644
|
||||
--- a/chrome/browser/ui/media_router/media_router_ui.cc
|
||||
+++ b/chrome/browser/ui/media_router/media_router_ui.cc
|
||||
@@ -83,6 +83,9 @@
|
||||
MediaRouterUI::~MediaRouterUI() {
|
||||
if (media_route_starter_)
|
||||
DetachFromMediaRouteStarter();
|
||||
+ for (CastDialogController::Observer& observer : observers_) {
|
||||
+ observer.OnControllerDestroying();
|
||||
+ }
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -145,9 +148,6 @@
|
||||
}
|
||||
|
||||
void MediaRouterUI::DetachFromMediaRouteStarter() {
|
||||
- for (CastDialogController::Observer& observer : observers_)
|
||||
- observer.OnControllerInvalidated();
|
||||
-
|
||||
media_route_starter()->RemovePresentationRequestSourceObserver(this);
|
||||
media_route_starter()->RemoveMediaSinkWithCastModesObserver(this);
|
||||
}
|
||||
@@ -181,8 +181,16 @@
|
||||
|
||||
std::unique_ptr<MediaRouteStarter> MediaRouterUI::TakeMediaRouteStarter() {
|
||||
DCHECK(media_route_starter_) << "MediaRouteStarter already taken!";
|
||||
- DetachFromMediaRouteStarter();
|
||||
- return std::move(media_route_starter_);
|
||||
+ auto starter = std::move(media_route_starter_);
|
||||
+ if (destructor_) {
|
||||
+ std::move(destructor_).Run(); // May destroy `this`.
|
||||
+ }
|
||||
+ return starter;
|
||||
+}
|
||||
+
|
||||
+void MediaRouterUI::RegisterDestructor(base::OnceClosure destructor) {
|
||||
+ DCHECK(!destructor_);
|
||||
+ destructor_ = std::move(destructor);
|
||||
}
|
||||
|
||||
bool MediaRouterUI::CreateRoute(const MediaSink::Id& sink_id,
|
||||
diff --git a/chrome/browser/ui/media_router/media_router_ui.h b/chrome/browser/ui/media_router/media_router_ui.h
|
||||
index 5c2f14e..7afe775 100644
|
||||
--- a/chrome/browser/ui/media_router/media_router_ui.h
|
||||
+++ b/chrome/browser/ui/media_router/media_router_ui.h
|
||||
@@ -100,8 +100,10 @@
|
||||
void StopCasting(const std::string& route_id) override;
|
||||
void ClearIssue(const Issue::Id& issue_id) override;
|
||||
// Note that |MediaRouterUI| should not be used after |TakeMediaRouteStarter|
|
||||
- // is called.
|
||||
+ // is called. To enforce that, |TakeMediaRouteStarter| calls the destructor
|
||||
+ // callback given to |RegisterDestructor| to destroy itself.
|
||||
std::unique_ptr<MediaRouteStarter> TakeMediaRouteStarter() override;
|
||||
+ void RegisterDestructor(base::OnceClosure destructor) override;
|
||||
|
||||
// Requests a route be created from the source mapped to
|
||||
// |cast_mode|, to the sink given by |sink_id|.
|
||||
@@ -337,6 +339,8 @@
|
||||
raw_ptr<MediaRouter> router_;
|
||||
raw_ptr<LoggerImpl> logger_;
|
||||
|
||||
+ base::OnceClosure destructor_;
|
||||
+
|
||||
// NOTE: Weak pointers must be invalidated before all other member variables.
|
||||
// Therefore |weak_factory_| must be placed at the end.
|
||||
base::WeakPtrFactory<MediaRouterUI> weak_factory_{this};
|
||||
diff --git a/chrome/browser/ui/media_router/media_router_ui_unittest.cc b/chrome/browser/ui/media_router/media_router_ui_unittest.cc
|
||||
index 2cc243d1..c33437b 100644
|
||||
--- a/chrome/browser/ui/media_router/media_router_ui_unittest.cc
|
||||
+++ b/chrome/browser/ui/media_router/media_router_ui_unittest.cc
|
||||
@@ -80,11 +80,11 @@
|
||||
}
|
||||
|
||||
MOCK_METHOD1(OnModelUpdated, void(const CastDialogModel& model));
|
||||
- void OnControllerInvalidated() override {
|
||||
+ void OnControllerDestroying() override {
|
||||
controller_ = nullptr;
|
||||
- OnControllerInvalidatedInternal();
|
||||
+ OnControllerDestroyingInternal();
|
||||
}
|
||||
- MOCK_METHOD0(OnControllerInvalidatedInternal, void());
|
||||
+ MOCK_METHOD0(OnControllerDestroyingInternal, void());
|
||||
|
||||
private:
|
||||
raw_ptr<CastDialogController> controller_ = nullptr;
|
||||
@@ -295,7 +295,7 @@
|
||||
})));
|
||||
NotifyUiOnRoutesUpdated({route});
|
||||
|
||||
- EXPECT_CALL(observer, OnControllerInvalidatedInternal());
|
||||
+ EXPECT_CALL(observer, OnControllerDestroyingInternal());
|
||||
ui_.reset();
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.cc b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.cc
|
||||
index 34dad46..d843bba 100644
|
||||
--- a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.cc
|
||||
+++ b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.cc
|
||||
@@ -222,6 +222,11 @@
|
||||
if (cast_controller) {
|
||||
cast_controller_ = std::move(cast_controller);
|
||||
cast_controller_->AddObserver(this);
|
||||
+ cast_controller_->RegisterDestructor(
|
||||
+ base::BindOnce(&MediaItemUIDeviceSelectorView::DestroyCastController,
|
||||
+ // Unretained is safe: this callback is held by
|
||||
+ // cast_controller_, which is owned by this object.
|
||||
+ base::Unretained(this)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -499,10 +504,6 @@
|
||||
observer.OnMediaItemUIDeviceSelectorUpdated(device_entry_ui_map_);
|
||||
}
|
||||
|
||||
-void MediaItemUIDeviceSelectorView::OnControllerInvalidated() {
|
||||
- cast_controller_.reset();
|
||||
-}
|
||||
-
|
||||
void MediaItemUIDeviceSelectorView::OnDeviceSelected(int tag) {
|
||||
auto it = device_entry_ui_map_.find(tag);
|
||||
DCHECK(it != device_entry_ui_map_.end());
|
||||
@@ -658,5 +659,9 @@
|
||||
weak_ptr_factory_.GetWeakPtr()));
|
||||
}
|
||||
|
||||
+void MediaItemUIDeviceSelectorView::DestroyCastController() {
|
||||
+ cast_controller_.reset();
|
||||
+}
|
||||
+
|
||||
BEGIN_METADATA(MediaItemUIDeviceSelectorView, views::View)
|
||||
END_METADATA
|
||||
diff --git a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.h b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.h
|
||||
index e950565..222fc20 100644
|
||||
--- a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.h
|
||||
+++ b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view.h
|
||||
@@ -81,7 +81,6 @@
|
||||
|
||||
// media_router::CastDialogController::Observer
|
||||
void OnModelUpdated(const media_router::CastDialogModel& model) override;
|
||||
- void OnControllerInvalidated() override;
|
||||
|
||||
// MediaItemUIFooterView::Delegate
|
||||
void OnDeviceSelected(int tag) override;
|
||||
@@ -121,6 +120,7 @@
|
||||
void RecordCastDeviceCount();
|
||||
DeviceEntryUI* GetDeviceEntryUI(views::View* view) const;
|
||||
void RegisterAudioDeviceCallbacks();
|
||||
+ void DestroyCastController();
|
||||
|
||||
bool has_expand_button_been_shown_ = false;
|
||||
bool have_devices_been_shown_ = false;
|
||||
diff --git a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view_unittest.cc b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view_unittest.cc
|
||||
index c3bcc6cc..6ae3dde8 100644
|
||||
--- a/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view_unittest.cc
|
||||
+++ b/chrome/browser/ui/views/global_media_controls/media_item_ui_device_selector_view_unittest.cc
|
||||
@@ -156,6 +156,7 @@
|
||||
MOCK_METHOD1(ClearIssue, void(const media_router::Issue::Id& issue_id));
|
||||
MOCK_METHOD0(TakeMediaRouteStarter,
|
||||
std::unique_ptr<media_router::MediaRouteStarter>());
|
||||
+ MOCK_METHOD1(RegisterDestructor, void(base::OnceClosure));
|
||||
};
|
||||
|
||||
} // anonymous namespace
|
||||
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_coordinator_unittest.cc b/chrome/browser/ui/views/media_router/cast_dialog_coordinator_unittest.cc
|
||||
index f6c80d6a..2dedc7e 100644
|
||||
--- a/chrome/browser/ui/views/media_router/cast_dialog_coordinator_unittest.cc
|
||||
+++ b/chrome/browser/ui/views/media_router/cast_dialog_coordinator_unittest.cc
|
||||
@@ -40,6 +40,7 @@
|
||||
MOCK_METHOD(void, StopCasting, (const std::string& route_id));
|
||||
MOCK_METHOD(void, ClearIssue, (const Issue::Id& issue_id));
|
||||
MOCK_METHOD(std::unique_ptr<MediaRouteStarter>, TakeMediaRouteStarter, ());
|
||||
+ MOCK_METHOD(void, RegisterDestructor, (base::OnceClosure));
|
||||
};
|
||||
|
||||
class CastDialogCoordinatorTest : public TestWithBrowserView {
|
||||
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view.cc b/chrome/browser/ui/views/media_router/cast_dialog_view.cc
|
||||
index e3c7dadb..711d081 100644
|
||||
--- a/chrome/browser/ui/views/media_router/cast_dialog_view.cc
|
||||
+++ b/chrome/browser/ui/views/media_router/cast_dialog_view.cc
|
||||
@@ -125,9 +125,9 @@
|
||||
observer.OnDialogModelUpdated(this);
|
||||
}
|
||||
|
||||
-void CastDialogView::OnControllerInvalidated() {
|
||||
+void CastDialogView::OnControllerDestroying() {
|
||||
controller_ = nullptr;
|
||||
- // We don't destroy the dialog here because if the invalidation was caused by
|
||||
+ // We don't destroy the dialog here because if the destruction was caused by
|
||||
// activating the toolbar icon in order to close the dialog, then it would
|
||||
// cause the dialog to immediately open again.
|
||||
}
|
||||
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view.h b/chrome/browser/ui/views/media_router/cast_dialog_view.h
|
||||
index d87fdda..d44d4e0 100644
|
||||
--- a/chrome/browser/ui/views/media_router/cast_dialog_view.h
|
||||
+++ b/chrome/browser/ui/views/media_router/cast_dialog_view.h
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
// CastDialogController::Observer:
|
||||
void OnModelUpdated(const CastDialogModel& model) override;
|
||||
- void OnControllerInvalidated() override;
|
||||
+ void OnControllerDestroying() override;
|
||||
|
||||
// views::BubbleDialogDelegateView:
|
||||
void OnPaint(gfx::Canvas* canvas) override;
|
||||
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view_browsertest.cc b/chrome/browser/ui/views/media_router/cast_dialog_view_browsertest.cc
|
||||
index 1c584120..a7af3c8 100644
|
||||
--- a/chrome/browser/ui/views/media_router/cast_dialog_view_browsertest.cc
|
||||
+++ b/chrome/browser/ui/views/media_router/cast_dialog_view_browsertest.cc
|
||||
@@ -70,6 +70,7 @@
|
||||
override {
|
||||
return nullptr;
|
||||
}
|
||||
+ void RegisterDestructor(base::OnceClosure destructor) override {}
|
||||
};
|
||||
|
||||
} // namespace
|
||||
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view_unittest.cc b/chrome/browser/ui/views/media_router/cast_dialog_view_unittest.cc
|
||||
index 5326467..988cb07a 100644
|
||||
--- a/chrome/browser/ui/views/media_router/cast_dialog_view_unittest.cc
|
||||
+++ b/chrome/browser/ui/views/media_router/cast_dialog_view_unittest.cc
|
||||
@@ -91,6 +91,7 @@
|
||||
MOCK_METHOD1(StopCasting, void(const std::string& route_id));
|
||||
MOCK_METHOD1(ClearIssue, void(const Issue::Id& issue_id));
|
||||
MOCK_METHOD0(TakeMediaRouteStarter, std::unique_ptr<MediaRouteStarter>());
|
||||
+ MOCK_METHOD1(RegisterDestructor, void(base::OnceClosure));
|
||||
};
|
||||
|
||||
class CastDialogViewTest : public ChromeViewsTestBase {
|
||||
diff --git a/chrome/browser/ui/views/media_router/media_router_dialog_controller_views.cc b/chrome/browser/ui/views/media_router/media_router_dialog_controller_views.cc
|
||||
index ad379b2..244d523 100644
|
||||
--- a/chrome/browser/ui/views/media_router/media_router_dialog_controller_views.cc
|
||||
+++ b/chrome/browser/ui/views/media_router/media_router_dialog_controller_views.cc
|
||||
@@ -51,7 +51,7 @@
|
||||
std::move(context));
|
||||
}
|
||||
|
||||
- ShowGlobalMeidaControlsDialog(std::move(context));
|
||||
+ ShowGlobalMediaControlsDialog(std::move(context));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -155,9 +155,20 @@
|
||||
initiator(), std::move(start_presentation_context_))
|
||||
: MediaRouterUI::CreateWithDefaultMediaSourceAndMirroring(
|
||||
initiator());
|
||||
+ ui_->RegisterDestructor(
|
||||
+ base::BindOnce(&MediaRouterDialogControllerViews::DestroyMediaRouterUI,
|
||||
+ // Safe to use base::Unretained here: the callback being
|
||||
+ // bound is held by the MediaRouterUI we are creating and
|
||||
+ // owning, and ownership of |ui_| is never transferred
|
||||
+ // away from this object.
|
||||
+ base::Unretained(this)));
|
||||
}
|
||||
|
||||
-void MediaRouterDialogControllerViews::ShowGlobalMeidaControlsDialog(
|
||||
+void MediaRouterDialogControllerViews::DestroyMediaRouterUI() {
|
||||
+ ui_.reset();
|
||||
+}
|
||||
+
|
||||
+void MediaRouterDialogControllerViews::ShowGlobalMediaControlsDialog(
|
||||
std::unique_ptr<StartPresentationContext> context) {
|
||||
// Show the WebContents requesting a dialog.
|
||||
initiator()->GetDelegate()->ActivateContents(initiator());
|
||||
diff --git a/chrome/browser/ui/views/media_router/media_router_dialog_controller_views.h b/chrome/browser/ui/views/media_router/media_router_dialog_controller_views.h
|
||||
index 0a5fdb1..7c97211 100644
|
||||
--- a/chrome/browser/ui/views/media_router/media_router_dialog_controller_views.h
|
||||
+++ b/chrome/browser/ui/views/media_router/media_router_dialog_controller_views.h
|
||||
@@ -69,13 +69,14 @@
|
||||
// MediaRouterUIService::Observer:
|
||||
void OnServiceDisabled() override;
|
||||
|
||||
- // Initializes |ui_|.
|
||||
+ // Initializes and destroys |ui_| respectively.
|
||||
void InitializeMediaRouterUI();
|
||||
+ void DestroyMediaRouterUI();
|
||||
|
||||
// If there exists a media button, show the GMC dialog anchored to the media
|
||||
// button. Otherwise, show the dialog anchored to the top center of the web
|
||||
// contents.
|
||||
- void ShowGlobalMeidaControlsDialog(
|
||||
+ void ShowGlobalMediaControlsDialog(
|
||||
std::unique_ptr<StartPresentationContext> context);
|
||||
|
||||
// Returns the media button from the browser that initiates the request to
|
|
@ -2,8 +2,4 @@
|
|||
# the electron launcher.
|
||||
|
||||
# Options to pass to electron.
|
||||
ELECTRON_FLAGS="--enable-features=WebRTCPipeWireCapturer"
|
||||
|
||||
# This can be 'x11', 'wayland', or 'auto'. Overriding default to 'auto',
|
||||
# but respecting the variable content if any
|
||||
ELECTRON_OZONE_PLATFORM_HINT="${ELECTRON_OZONE_PLATFORM_HINT:-auto}"
|
||||
ELECTRON_FLAGS="--ozone-platform-hint=auto"
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn
|
||||
index f36bf68..805d9a6 100644
|
||||
--- a/net/dns/BUILD.gn
|
||||
+++ b/net/dns/BUILD.gn
|
||||
@@ -130,8 +130,8 @@ source_set("dns") {
|
||||
]
|
||||
} else if (is_linux) {
|
||||
sources += [
|
||||
- "dns_config_service_linux.cc",
|
||||
- "dns_config_service_linux.h",
|
||||
+ "dns_config_service_fuchsia.cc",
|
||||
+ "dns_config_service_fuchsia.h",
|
||||
]
|
||||
} else if (is_posix) {
|
||||
sources += [
|
|
@ -1,361 +0,0 @@
|
|||
safesprintf emitnull:
|
||||
error: conversion from 'std::nullptr_t' to 'const internal::Arg' is ambiguous
|
||||
const internal::Arg arg_array[] = { args... };
|
||||
|
||||
flatmap incompletetype:
|
||||
error: static assertion failed due to requirement 'std::__is_complete_or_unbounded(std::__type_identity<std::pair<A, A>>{})': template argument must be a complete class or an unbounded array
|
||||
static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
|
||||
|
||||
i18n, time:
|
||||
various icu failures (new icu time formatting? internal api difference?)
|
||||
a ton of these fail:
|
||||
|
||||
Expected equality of these values:
|
||||
u"Monday 16 May – Saturday 28 May"
|
||||
Which is: u"Monday 16 May \x2013 Saturday 28 May"
|
||||
DateIntervalFormat(begin_time, end_time, DATE_FORMAT_MONTH_WEEKDAY_DAY)
|
||||
Which is: u"Monday 16\x2009\x2013\x2009Saturday 28 May"
|
||||
|
||||
../../base/i18n/time_formatting_unittest.cc:84: Failure
|
||||
Expected equality of these values:
|
||||
clock12h_pm
|
||||
Which is: u"3:42 PM"
|
||||
TimeFormatTimeOfDay(time)
|
||||
Which is: u"3:42\x202FPM"
|
||||
|
||||
.. and so on
|
||||
|
||||
fileutiltest filetofile:
|
||||
../../base/files/file_util_unittest.cc:2692: Failure
|
||||
Value of: stream
|
||||
Actual: true
|
||||
Expected: false
|
||||
|
||||
stacktracetest: crashes (this doesn't seem to use execinfo so probably relies on glibc internal layout for tracing here)
|
||||
|
||||
platformthreadtest canchangethreadtype:
|
||||
../../base/threading/platform_thread_unittest.cc:445: Failure
|
||||
Expected equality of these values:
|
||||
PlatformThread::CanChangeThreadType(ThreadType::kBackground, ThreadType::kResourceEfficient)
|
||||
Which is: true
|
||||
kCanIncreasePriority
|
||||
Which is: false
|
||||
|
||||
scopedfdownershiptrackingtest crashonunownedclose: fails due to scoped-file-no-close.patch
|
||||
|
||||
stackcontainer customallocator:
|
||||
../../base/containers/stack_container_unittest.cc:211: Failure
|
||||
Expected equality of these values:
|
||||
1
|
||||
Allocator::deallocated
|
||||
Which is: 0
|
||||
|
||||
nativelibrarytest loadlibrarypreferownsymbols: crashes (probably musl dlopen does not play nice here)
|
||||
|
||||
spantest empty: crashes (this looks fishy)
|
||||
|
||||
readelfbuildid: crashes (this looks like glibc dynamic linker semantics)
|
||||
|
||||
nss db unittest: various nss failures: e.g.:
|
||||
../../net/cert/nss_cert_database_unittest.cc:209: Failure
|
||||
Expected equality of these values:
|
||||
OK
|
||||
Which is: 0
|
||||
cert_db_->ImportFromPKCS12(GetPublicSlot(), pkcs12_data, u"12345", true, nullptr)
|
||||
Which is: -702
|
||||
|
||||
processutiltest cloneflags: fails in CI (ulimit? too many threads?)
|
||||
../../base/process/process_util_unittest.cc:1434: Failure
|
||||
Value of: process.IsValid()
|
||||
Actual: false
|
||||
Expected: true
|
||||
|
||||
addresstrackerlinuxnetlinktest:
|
||||
../../net/base/address_tracker_linux_unittest.cc:886: Failure
|
||||
Value of: child.process.IsValid()
|
||||
Actual: false
|
||||
Expected: true
|
||||
|
||||
ToAddressDoesNotDereference: ; Expected `get_for_extraction_cnt` to be 1 but got 0;
|
||||
|
||||
DataCapturedManyThreads: flaky
|
||||
|
||||
ProcessAlternativeServicesTest.Process*: crashed ?
|
||||
|
||||
--- a/base/strings/safe_sprintf_unittest.cc
|
||||
+++ b/base/strings/safe_sprintf_unittest.cc
|
||||
@@ -740,6 +740,7 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
+#if 0
|
||||
TEST(SafeSPrintfTest, EmitNULL) {
|
||||
char buf[40];
|
||||
#if defined(__GNUC__)
|
||||
@@ -756,6 +757,7 @@
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
}
|
||||
+#endif
|
||||
|
||||
TEST(SafeSPrintfTest, PointerSize) {
|
||||
// The internal data representation is a 64bit value, independent of the
|
||||
--- a/base/containers/flat_map_unittest.cc
|
||||
+++ b/base/containers/flat_map_unittest.cc
|
||||
@@ -52,6 +52,7 @@
|
||||
|
||||
} // namespace
|
||||
|
||||
+#if 0
|
||||
TEST(FlatMap, IncompleteType) {
|
||||
struct A {
|
||||
using Map = flat_map<A, A>;
|
||||
@@ -65,6 +66,7 @@
|
||||
|
||||
A a;
|
||||
}
|
||||
+#endif
|
||||
|
||||
TEST(FlatMap, RangeConstructor) {
|
||||
flat_map<int, int>::value_type input_vals[] = {
|
||||
--- a/base/BUILD.gn
|
||||
+++ b/base/BUILD.gn
|
||||
@@ -3194,21 +3194,6 @@
|
||||
"hash/md5_constexpr_unittest.cc",
|
||||
"hash/md5_unittest.cc",
|
||||
"hash/sha1_unittest.cc",
|
||||
- "i18n/break_iterator_unittest.cc",
|
||||
- "i18n/case_conversion_unittest.cc",
|
||||
- "i18n/char_iterator_unittest.cc",
|
||||
- "i18n/character_encoding_unittest.cc",
|
||||
- "i18n/file_util_icu_unittest.cc",
|
||||
- "i18n/icu_string_conversions_unittest.cc",
|
||||
- "i18n/icu_util_unittest.cc",
|
||||
- "i18n/message_formatter_unittest.cc",
|
||||
- "i18n/number_formatting_unittest.cc",
|
||||
- "i18n/rtl_unittest.cc",
|
||||
- "i18n/streaming_utf8_validator_unittest.cc",
|
||||
- "i18n/string_search_unittest.cc",
|
||||
- "i18n/time_formatting_unittest.cc",
|
||||
- "i18n/timezone_unittest.cc",
|
||||
- "i18n/transliterator_unittest.cc",
|
||||
"immediate_crash_unittest.cc",
|
||||
"json/json_parser_unittest.cc",
|
||||
"json/json_reader_unittest.cc",
|
||||
--- a/base/files/file_util_unittest.cc
|
||||
+++ b/base/files/file_util_unittest.cc
|
||||
@@ -2686,6 +2686,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#if 0
|
||||
TEST_F(FileUtilTest, FileToFILE) {
|
||||
File file;
|
||||
FILE* stream = FileToFILE(std::move(file), "w");
|
||||
@@ -2700,6 +2701,7 @@
|
||||
EXPECT_FALSE(file.IsValid());
|
||||
EXPECT_TRUE(CloseFile(stream));
|
||||
}
|
||||
+#endif
|
||||
|
||||
TEST_F(FileUtilTest, FILEToFile) {
|
||||
ScopedFILE stream;
|
||||
--- a/base/debug/stack_trace_unittest.cc
|
||||
+++ b/base/debug/stack_trace_unittest.cc
|
||||
@@ -345,6 +345,7 @@
|
||||
// sometimes we read fp / pc from the place that previously held
|
||||
// uninitialized value.
|
||||
// TODO(crbug.com/1132511): Enable this test on Fuchsia.
|
||||
+#if 0
|
||||
#if defined(MEMORY_SANITIZER) || BUILDFLAG(IS_FUCHSIA)
|
||||
#define MAYBE_TraceStackFramePointersFromBuffer \
|
||||
DISABLED_TraceStackFramePointersFromBuffer
|
||||
@@ -357,6 +358,7 @@
|
||||
const void* frames[kDepth];
|
||||
ExpectStackFramePointers<kDepth>(frames, kDepth, /*copy_stack=*/true);
|
||||
}
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE)
|
||||
#define MAYBE_StackEnd StackEnd
|
||||
--- a/base/threading/platform_thread_unittest.cc
|
||||
+++ b/base/threading/platform_thread_unittest.cc
|
||||
@@ -416,6 +416,7 @@
|
||||
// platforms for all priorities. This not being the case. This test documents
|
||||
// and hardcodes what we know. Please inform scheduler-dev@chromium.org if this
|
||||
// proprerty changes for a given platform.
|
||||
+#if 0
|
||||
TEST(PlatformThreadTest, CanChangeThreadType) {
|
||||
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
||||
// On Ubuntu, RLIMIT_NICE and RLIMIT_RTPRIO are 0 by default, so we won't be
|
||||
@@ -472,6 +473,7 @@
|
||||
ThreadType::kBackground));
|
||||
#endif
|
||||
}
|
||||
+#endif
|
||||
|
||||
TEST(PlatformThreadTest, SetCurrentThreadTypeTest) {
|
||||
TestPriorityResultingFromThreadType(ThreadType::kBackground,
|
||||
--- a/base/files/scoped_file_linux_unittest.cc
|
||||
+++ b/base/files/scoped_file_linux_unittest.cc
|
||||
@@ -42,11 +42,13 @@
|
||||
EXPECT_DEATH(ScopedFD(fd.get()), "");
|
||||
}
|
||||
|
||||
+#if 0
|
||||
TEST_F(ScopedFDOwnershipTrackingTest, CrashOnUnownedClose) {
|
||||
ScopedFD fd = OpenFD();
|
||||
subtle::EnableFDOwnershipEnforcement(true);
|
||||
EXPECT_DEATH(close(fd.get()), "");
|
||||
}
|
||||
+#endif
|
||||
|
||||
#endif // defined(GTEST_HAS_DEATH_TEST)
|
||||
|
||||
--- a/base/native_library_unittest.cc
|
||||
+++ b/base/native_library_unittest.cc
|
||||
@@ -139,6 +139,7 @@
|
||||
// Verifies that the |prefer_own_symbols| option satisfies its guarantee that
|
||||
// a loaded library will always prefer local symbol resolution before
|
||||
// considering global symbols.
|
||||
+#if 0
|
||||
TEST(NativeLibraryTest, LoadLibraryPreferOwnSymbols) {
|
||||
NativeLibraryOptions options;
|
||||
options.prefer_own_symbols = true;
|
||||
@@ -171,6 +172,7 @@
|
||||
EXPECT_EQ(2, NativeLibraryTestIncrement());
|
||||
EXPECT_EQ(3, NativeLibraryTestIncrement());
|
||||
}
|
||||
+#endif
|
||||
|
||||
#endif // !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \
|
||||
// !defined(MEMORY_SANITIZER)
|
||||
--- a/base/containers/span_unittest.cc
|
||||
+++ b/base/containers/span_unittest.cc
|
||||
@@ -995,6 +995,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#if 0
|
||||
TEST(SpanTest, Empty) {
|
||||
{
|
||||
span<int> span;
|
||||
@@ -1014,6 +1015,7 @@
|
||||
EXPECT_TRUE(span_of_checked_iterators.empty());
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
TEST(SpanTest, OperatorAt) {
|
||||
static constexpr int kArray[] = {1, 6, 1, 8, 0};
|
||||
--- a/base/debug/elf_reader_unittest.cc
|
||||
+++ b/base/debug/elf_reader_unittest.cc
|
||||
@@ -194,6 +194,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#if 0
|
||||
TEST(ElfReaderTestWithCurrentImage, ReadElfBuildId) {
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
// On Android the library loader memory maps the full so file.
|
||||
@@ -229,6 +230,7 @@
|
||||
UnloadNativeLibrary(library);
|
||||
#endif
|
||||
}
|
||||
+#endif
|
||||
|
||||
} // namespace debug
|
||||
} // namespace base
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -4826,7 +4826,6 @@
|
||||
sources += [
|
||||
"cert/internal/system_trust_store_nss_unittest.cc",
|
||||
"cert/internal/trust_store_nss_unittest.cc",
|
||||
- "cert/nss_cert_database_unittest.cc",
|
||||
"cert/x509_util_nss_unittest.cc",
|
||||
]
|
||||
if (!is_castos) {
|
||||
--- a/base/process/process_util_unittest.cc
|
||||
+++ b/base/process/process_util_unittest.cc
|
||||
@@ -1419,7 +1419,7 @@
|
||||
return kSuccess;
|
||||
}
|
||||
|
||||
-#if defined(CLONE_NEWUSER) && defined(CLONE_NEWPID)
|
||||
+#if 0 && defined(CLONE_NEWUSER) && defined(CLONE_NEWPID)
|
||||
TEST_F(ProcessUtilTest, CloneFlags) {
|
||||
if (!PathExists(FilePath("/proc/self/ns/user")) ||
|
||||
!PathExists(FilePath("/proc/self/ns/pid"))) {
|
||||
--- a/net/base/address_tracker_linux_unittest.cc
|
||||
+++ b/net/base/address_tracker_linux_unittest.cc
|
||||
@@ -831,6 +831,7 @@
|
||||
//
|
||||
// This test creates multiple concurrent `AddressTrackerLinux` instances in
|
||||
// separate processes, each in their own PID namespaces.
|
||||
+#if 0
|
||||
TEST(AddressTrackerLinuxNetlinkTest, TestInitializeTwoTrackersInPidNamespaces) {
|
||||
// This test initializes `kNumChildren` instances of `AddressTrackerLinux` in
|
||||
// tracking mode, each in their own child process running in a PID namespace.
|
||||
@@ -901,6 +902,7 @@
|
||||
ASSERT_EQ(exit_code, 0);
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
MULTIPROCESS_TEST_MAIN(ChildProcessInitializeTrackerForTesting) {
|
||||
base::test::TaskEnvironment task_env(
|
||||
--- a/base/trace_event/trace_event_unittest.cc
|
||||
+++ b/base/trace_event/trace_event_unittest.cc
|
||||
@@ -1368,6 +1368,7 @@
|
||||
}
|
||||
|
||||
// Test that data sent from multiple threads is gathered
|
||||
+#if 0
|
||||
TEST_F(TraceEventTestFixture, DataCapturedManyThreads) {
|
||||
BeginTrace();
|
||||
|
||||
@@ -1408,6 +1409,7 @@
|
||||
delete task_complete_events[i];
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
// Test that thread and process names show up in the trace.
|
||||
// In SDK build, thread names are not tracked inside //base. Instead, there's
|
||||
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc
|
||||
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc
|
||||
@@ -1481,6 +1481,7 @@
|
||||
// `base::to_address()` will use the dereference operator. This is not
|
||||
// what we want; this test enforces extraction semantics for
|
||||
// `to_address()`.
|
||||
+#if 0
|
||||
TEST_F(RawPtrTest, ToAddressDoesNotDereference) {
|
||||
CountingRawPtr<int> ptr = nullptr;
|
||||
int* raw = base::to_address(ptr);
|
||||
@@ -1492,6 +1493,7 @@
|
||||
.get_for_duplication_cnt = 0}),
|
||||
CountersMatch());
|
||||
}
|
||||
+#endif
|
||||
|
||||
TEST_F(RawPtrTest, ToAddressGivesBackRawAddress) {
|
||||
int* raw = nullptr;
|
||||
--- a/net/http/http_stream_factory_unittest.cc
|
||||
+++ b/net/http/http_stream_factory_unittest.cc
|
||||
@@ -3477,6 +3477,7 @@
|
||||
DefaultCTPolicyEnforcer ct_policy_enforcer_;
|
||||
};
|
||||
|
||||
+#if 0
|
||||
TEST_F(ProcessAlternativeServicesTest, ProcessEmptyAltSvc) {
|
||||
session_ =
|
||||
std::make_unique<HttpNetworkSession>(session_params_, session_context_);
|
||||
@@ -3585,6 +3586,7 @@
|
||||
alternatives[0].host_port_pair());
|
||||
EXPECT_EQ(0u, alternatives[0].advertised_versions().size());
|
||||
}
|
||||
+#endif
|
||||
|
||||
} // namespace
|
||||
|
|
@ -9,12 +9,6 @@ done
|
|||
|
||||
# Prefer user defined ELECTRON_USER_FLAGS (from env) over system
|
||||
# default ELECTRON_FLAGS (from /etc/electron/default.conf).
|
||||
export ELECTRON_FLAGS="$ELECTRON_FLAGS ${ELECTRON_USER_FLAGS:-"$ELECTRON_USER_FLAGS"}"
|
||||
# Re-export, for it to be accessible by the process
|
||||
export ELECTRON_OZONE_PLATFORM_HINT="${ELECTRON_OZONE_PLATFORM_HINT}"
|
||||
|
||||
if [ "$ELECTRON_RUN_AS_NODE" == "1" ] && [ "$ELECTRON_STILL_PASS_THE_DEFAULT_FLAGS" != "1" ]; then
|
||||
exec "/usr/lib/electron/electron" "$@"
|
||||
fi
|
||||
ELECTRON_FLAGS=${ELECTRON_USER_FLAGS:-"$ELECTRON_FLAGS"}
|
||||
|
||||
exec "/usr/lib/electron/electron" "$@" ${ELECTRON_FLAGS}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
instead of hardcoding the version, use the defined macro.
|
||||
--
|
||||
--- a/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
|
||||
+++ b/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
|
||||
@@ -56,7 +56,7 @@
|
||||
FcFini();
|
||||
|
||||
// Check existence of intended fontconfig cache file.
|
||||
- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9";
|
||||
+ auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
|
||||
bool cache_exists = access(cache.c_str(), F_OK) == 0;
|
||||
return !cache_exists;
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
--- a/media/filters/ffmpeg_glue.cc
|
||||
+++ b/media/filters/ffmpeg_glue.cc
|
||||
@@ -142,7 +142,7 @@ const char* FFmpegGlue::GetAllowedAudioDecoders() {
|
||||
static const base::NoDestructor<std::string> kAllowedAudioCodecs([]() {
|
||||
// This should match the configured lists in //third_party/ffmpeg.
|
||||
std::string allowed_decoders(
|
||||
- "vorbis,libopus,flac,pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,"
|
||||
+ "vorbis,opus,libopus,flac,pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,"
|
||||
"mp3,pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw");
|
||||
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
|
||||
allowed_decoders += ",aac";
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
fstatat64 is macrod to fstatat in sys/stat.h in musl- but then that fstatat is
|
||||
used in the _syscall4 macro mapping to __NR_$name, and __NR_fstatat is not
|
||||
defined anywhere here, as it wants the 64 name.
|
||||
|
||||
so, just let it keep the name with an undef of the stat.h macro, then the macro
|
||||
expansion below evaluates correctly.
|
||||
--- a/third_party/lss/linux_syscall_support.h
|
||||
+++ b/third_party/lss/linux_syscall_support.h
|
||||
@@ -4947,7 +4947,8 @@
|
||||
# endif
|
||||
#endif
|
||||
#if defined(__NR_fstatat64)
|
||||
+ #undef fstatat64
|
||||
LSS_INLINE _syscall4(int, fstatat64, int, d,
|
||||
const char *, p,
|
||||
struct kernel_stat64 *, b, int, f)
|
||||
#endif
|
|
@ -1,11 +0,0 @@
|
|||
--- a/services/device/public/cpp/generic_sensor/sensor_reading.h
|
||||
+++ b/services/device/public/cpp/generic_sensor/sensor_reading.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
|
||||
#define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
|
||||
|
||||
+#include <cstddef>
|
||||
+#include <cstdint>
|
||||
#include <type_traits>
|
||||
|
||||
namespace device {
|
|
@ -1,11 +1,11 @@
|
|||
--- a/electron/default_app/default_app.ts
|
||||
+++ b/electron/default_app/default_app.ts
|
||||
@@ -61,7 +61,7 @@
|
||||
@@ -60,7 +60,7 @@
|
||||
};
|
||||
|
||||
if (process.platform === 'linux') {
|
||||
- options.icon = url.fileURLToPath(new URL('icon.png', import.meta.url));
|
||||
+ options.icon = 'file:///usr/share/icons/hicolor/1024x1024/apps/electron.png';
|
||||
- options.icon = path.join(__dirname, 'icon.png');
|
||||
+ options.icon = '/usr/share/icons/hicolor/1024x1024/apps/electron.png';
|
||||
}
|
||||
|
||||
mainWindow = new BrowserWindow(options);
|
||||
|
|
39
backports/electron/jsoncpp.patch
Normal file
39
backports/electron/jsoncpp.patch
Normal file
|
@ -0,0 +1,39 @@
|
|||
Patch-Source: https://github.com/archlinux/svntogit-packages/blob/bf2401407df5bcc938382eb03748fbef41e41c89/trunk/unbundle-jsoncpp-avoid-CFI-faults-with-is_cfi-true.patch
|
||||
From ed8d931e35f81d8566835a579caf7d61368f85b7 Mon Sep 17 00:00:00 2001
|
||||
From: Evangelos Foutras <evangelos@foutrelis.com>
|
||||
Date: Tue, 27 Sep 2022 22:20:41 +0000
|
||||
Subject: [PATCH] unbundle/jsoncpp: avoid CFI faults with is_cfi=true
|
||||
|
||||
Ensure jsoncpp symbols have public visibility and are thus excluded from
|
||||
CFI checks and whole-program optimization. This is achieved by defining
|
||||
JSON_DLL_BUILD which in turn causes json/config.h to define JSON_API as
|
||||
__attribute__((visibility("default"))). The latter macro is used to tag
|
||||
jsoncpp classes and namespace functions throughout jsoncpp's headers.
|
||||
|
||||
BUG=1365218
|
||||
|
||||
Change-Id: I56277737b7d9ecaeb5e17c8d21a2e55f3d5d5bc9
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3919652
|
||||
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/main@{#1052077}
|
||||
---
|
||||
build/linux/unbundle/jsoncpp.gn | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/build/linux/unbundle/jsoncpp.gn b/build/linux/unbundle/jsoncpp.gn
|
||||
index 544f9d13c9..e84a0ef27a 100644
|
||||
--- a/build/linux/unbundle/jsoncpp.gn
|
||||
+++ b/build/linux/unbundle/jsoncpp.gn
|
||||
@@ -3,6 +3,11 @@ import("//build/shim_headers.gni")
|
||||
|
||||
pkg_config("jsoncpp_config") {
|
||||
packages = [ "jsoncpp" ]
|
||||
+
|
||||
+ # Defining JSON_DLL_BUILD applies public visibility to jsoncpp classes
|
||||
+ # thus deactivating CFI checks for them. This avoids CFI violations in
|
||||
+ # virtual calls to system jsoncpp library (https://crbug.com/1365218).
|
||||
+ defines = [ "JSON_DLL_BUILD" ]
|
||||
}
|
||||
|
||||
shim_headers("jsoncpp_shim") {
|
7
backports/electron/libcxx-muslmode.patch
Normal file
7
backports/electron/libcxx-muslmode.patch
Normal file
|
@ -0,0 +1,7 @@
|
|||
--- a/buildtools/third_party/libc++/__config_site
|
||||
+++ b/buildtools/third_party/libc++/__config_site
|
||||
@@ -49,3 +49,4 @@
|
||||
#define _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
|
||||
|
||||
+#define _LIBCPP_HAS_MUSL_LIBC
|
||||
#endif // _LIBCPP_CONFIG_SITE
|
|
@ -1,269 +0,0 @@
|
|||
missing libstdc++13 includes
|
||||
--
|
||||
--- a/third_party/openscreen/src/platform/base/error.h
|
||||
+++ b/third_party/openscreen/src/platform/base/error.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define PLATFORM_BASE_ERROR_H_
|
||||
|
||||
#include <cassert>
|
||||
+#include <cstdint>
|
||||
#include <ostream>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
--- a/ui/base/prediction/kalman_filter.h
|
||||
+++ b/ui/base/prediction/kalman_filter.h
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "base/component_export.h"
|
||||
#include "ui/gfx/geometry/matrix3_f.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace ui {
|
||||
|
||||
// This Kalman filter is used to predict state in one axles.
|
||||
--- a/ui/events/types/scroll_types.h
|
||||
+++ b/ui/events/types/scroll_types.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef UI_EVENTS_TYPES_SCROLL_TYPES_H_
|
||||
#define UI_EVENTS_TYPES_SCROLL_TYPES_H_
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace ui {
|
||||
|
||||
enum class ScrollGranularity : uint8_t {
|
||||
--- a/third_party/webrtc/rtc_base/system/file_wrapper.h
|
||||
+++ b/third_party/webrtc/rtc_base/system/file_wrapper.h
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
--- a/third_party/pdfium/constants/annotation_flags.h
|
||||
+++ b/third_party/pdfium/constants/annotation_flags.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef CONSTANTS_ANNOTATION_FLAGS_H_
|
||||
#define CONSTANTS_ANNOTATION_FLAGS_H_
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace pdfium {
|
||||
namespace annotation_flags {
|
||||
|
||||
--- a/third_party/s2cellid/src/s2/util/math/mathutil.h
|
||||
+++ b/third_party/s2cellid/src/s2/util/math/mathutil.h
|
||||
@@ -21,6 +21,7 @@
|
||||
#ifndef S2_UTIL_MATH_MATHUTIL_H_
|
||||
#define S2_UTIL_MATH_MATHUTIL_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <type_traits>
|
||||
|
||||
class MathUtil {
|
||||
--- a/third_party/s2cellid/src/s2/s1angle.h
|
||||
+++ b/third_party/s2cellid/src/s2/s1angle.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#define S2_S1ANGLE_H_
|
||||
|
||||
#include <math.h>
|
||||
+#include <cstdint>
|
||||
#include <limits>
|
||||
#include <ostream>
|
||||
#include <type_traits>
|
||||
--- a/third_party/maldoca/src/maldoca/ole/header.h
|
||||
+++ b/third_party/maldoca/src/maldoca/ole/header.h
|
||||
@@ -45,6 +45,8 @@
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace maldoca {
|
||||
|
||||
class OLEHeader {
|
||||
--- a/components/password_manager/core/browser/generation/password_generator.h
|
||||
+++ b/components/password_manager/core/browser/generation/password_generator.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
|
||||
#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
|
||||
--- a/base/debug/profiler.h
|
||||
+++ b/base/debug/profiler.h
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include "base/base_export.h"
|
||||
--- a/components/dom_distiller/core/url_utils.h
|
||||
+++ b/components/dom_distiller/core/url_utils.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef COMPONENTS_DOM_DISTILLER_CORE_URL_UTILS_H_
|
||||
#define COMPONENTS_DOM_DISTILLER_CORE_URL_UTILS_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include "base/strings/string_piece_forward.h"
|
||||
--- a/components/feature_engagement/internal/event_storage_validator.h
|
||||
+++ b/components/feature_engagement/internal/event_storage_validator.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
|
||||
#define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace feature_engagement {
|
||||
--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
|
||||
+++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
#include <queue>
|
||||
+#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
--- a/cc/trees/target_property.cc
|
||||
+++ b/cc/trees/target_property.cc
|
||||
@@ -2,6 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
#include "cc/trees/target_property.h"
|
||||
|
||||
#include "ui/gfx/animation/keyframe/target_property.h"
|
||||
--- a/gpu/config/gpu_feature_info.h
|
||||
+++ b/gpu/config/gpu_feature_info.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef GPU_CONFIG_GPU_FEATURE_INFO_H_
|
||||
#define GPU_CONFIG_GPU_FEATURE_INFO_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
--- a/gpu/config/gpu_driver_bug_workarounds.h
|
||||
+++ b/gpu/config/gpu_driver_bug_workarounds.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
|
||||
#define GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <vector>
|
||||
|
||||
#include "build/build_config.h"
|
||||
--- a/third_party/blink/public/common/page_state/page_state.h
|
||||
+++ b/third_party/blink/public/common/page_state/page_state.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_STATE_PAGE_STATE_H_
|
||||
#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_STATE_PAGE_STATE_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
--- a/pdf/document_attachment_info.h
|
||||
+++ b/pdf/document_attachment_info.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef PDF_DOCUMENT_ATTACHMENT_INFO_H_
|
||||
#define PDF_DOCUMENT_ATTACHMENT_INFO_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
|
||||
--- a/components/payments/content/utility/fingerprint_parser.h
|
||||
+++ b/components/payments/content/utility/fingerprint_parser.h
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
--- a/media/base/video_transformation.h
|
||||
+++ b/media/base/video_transformation.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef MEDIA_BASE_VIDEO_TRANSFORMATION_H_
|
||||
#define MEDIA_BASE_VIDEO_TRANSFORMATION_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
#include "base/numerics/math_constants.h"
|
||||
--- a/components/omnibox/browser/on_device_head_model.h
|
||||
+++ b/components/omnibox/browser/on_device_head_model.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
|
||||
#define COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
--- a/components/autofill/core/browser/autofill_ablation_study.h
|
||||
+++ b/components/autofill/core/browser/autofill_ablation_study.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
|
||||
#define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
|
||||
class GURL;
|
||||
--- a/components/autofill/core/browser/strike_databases/strike_database_base.h
|
||||
+++ b/components/autofill/core/browser/strike_databases/strike_database_base.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_STRIKE_DATABASES_STRIKE_DATABASE_BASE_H_
|
||||
#define COMPONENTS_AUTOFILL_CORE_BROWSER_STRIKE_DATABASES_STRIKE_DATABASE_BASE_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
--- a/chrome/browser/resource_coordinator/decision_details.h
|
||||
+++ b/chrome/browser/resource_coordinator/decision_details.h
|
||||
@@ -5,6 +5,7 @@
|
||||
#ifndef CHROME_BROWSER_RESOURCE_COORDINATOR_DECISION_DETAILS_H_
|
||||
#define CHROME_BROWSER_RESOURCE_COORDINATOR_DECISION_DETAILS_H_
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
--- a/net/third_party/quiche/src/quiche/quic/core/qpack/qpack_stream_sender_delegate.h
|
||||
+++ b/net/third_party/quiche/src/quiche/quic/core/qpack/qpack_stream_sender_delegate.h
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "quiche/quic/platform/api/quic_export.h"
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
namespace quic {
|
||||
|
||||
// This interface writes encoder/decoder data to peer.
|
||||
--- a/third_party/perfetto/include/perfetto/base/export.h
|
||||
+++ b/third_party/perfetto/include/perfetto/base/export.h
|
||||
@@ -17,6 +17,8 @@
|
||||
#ifndef INCLUDE_PERFETTO_BASE_EXPORT_H_
|
||||
#define INCLUDE_PERFETTO_BASE_EXPORT_H_
|
||||
|
||||
+#include <cstdint>
|
||||
+
|
||||
#include "perfetto/base/build_config.h"
|
||||
#include "perfetto/public/abi/export.h"
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
needed for PKEY_DISABLE_WRITE. these are documented as also being from sys/
|
||||
mman.h with GNU_SOURCE, but musl doesn't do that, so these are strictly from
|
||||
kernel headers
|
||||
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
|
||||
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
|
||||
--- a/base/allocator/partition_allocator/partition_alloc_unittest.cc
|
||||
+++ b/base/allocator/partition_allocator/partition_alloc_unittest.cc
|
||||
@@ -60,6 +60,7 @@
|
||||
#include <sys/mman.h>
|
||||
#include <sys/resource.h>
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- ./v8/src/base/cpu.cc.orig
|
||||
+++ ./v8/src/base/cpu.cc
|
||||
@@ -14,7 +14,7 @@
|
||||
#if V8_OS_LINUX
|
||||
#include <linux/auxvec.h> // AT_HWCAP
|
||||
#endif
|
||||
-#if V8_GLIBC_PREREQ(2, 16) || V8_OS_ANDROID
|
||||
+#if 1
|
||||
#include <sys/auxv.h> // getauxval()
|
||||
#endif
|
||||
#if V8_OS_QNX
|
|
@ -37,24 +37,25 @@ for discussion about this, see https://www.openwall.com/lists/musl/2021/07/16/1
|
|||
#define HAVE_FCNTL_H 1
|
||||
--- a/base/debug/stack_trace.cc
|
||||
+++ b/base/debug/stack_trace.cc
|
||||
@@ -291,7 +291,7 @@
|
||||
@@ -251,7 +253,9 @@
|
||||
}
|
||||
|
||||
void StackTrace::OutputToStream(std::ostream* os) const {
|
||||
+#if defined(__GLIBC__) && !defined(_AIX)
|
||||
OutputToStreamWithPrefix(os, nullptr);
|
||||
+#endif
|
||||
}
|
||||
|
||||
std::string StackTrace::ToString() const {
|
||||
@@ -281,7 +281,7 @@
|
||||
}
|
||||
std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
|
||||
std::stringstream stream;
|
||||
-#if !defined(__UCLIBC__) && !defined(_AIX)
|
||||
+#if defined(__GLIBC__) && !defined(_AIX)
|
||||
if (ShouldSuppressOutput()) {
|
||||
return "Backtrace suppressed.";
|
||||
}
|
||||
@@ -301,7 +301,7 @@
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, const StackTrace& s) {
|
||||
-#if !defined(__UCLIBC__) && !defined(_AIX)
|
||||
+#if defined(__GLIBC__) && !defined(_AIX)
|
||||
s.OutputToStream(&os);
|
||||
#else
|
||||
os << "StackTrace::OutputToStream not implemented.";
|
||||
OutputToStreamWithPrefix(&stream, prefix_string);
|
||||
#endif
|
||||
return stream.str();
|
||||
--- a/base/debug/stack_trace_unittest.cc
|
||||
+++ b/base/debug/stack_trace_unittest.cc
|
||||
@@ -33,7 +33,7 @@
|
||||
|
@ -66,3 +67,12 @@ for discussion about this, see https://www.openwall.com/lists/musl/2021/07/16/1
|
|||
// StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
|
||||
// See https://crbug.com/706728
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
|
||||
#endif // !defined(__UCLIBC__) && !defined(_AIX)
|
||||
|
||||
-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
|
||||
+#if (BUILDFLAG(IS_POSIX) && defined(__GLIBC__)) && !BUILDFLAG(IS_ANDROID)
|
||||
#if !BUILDFLAG(IS_IOS)
|
||||
static char* newArray() {
|
||||
// Clang warns about the mismatched new[]/delete if they occur in the same
|
||||
|
|
|
@ -100,8 +100,8 @@ musl does not implement mallinfo()/mallinfo2()
|
|||
|
||||
/* Define to 1 if you have the <malloc.h> header file. */
|
||||
#define HAVE_MALLOC_H 1
|
||||
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
|
||||
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
|
||||
--- a/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
|
||||
+++ b/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
|
||||
@@ -717,7 +717,7 @@
|
||||
|
||||
#endif // !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_ANDROID)
|
||||
|
@ -111,8 +111,8 @@ musl does not implement mallinfo()/mallinfo2()
|
|||
SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW {
|
||||
base::SimplePartitionStatsDumper allocator_dumper;
|
||||
Allocator()->DumpStats("malloc", true, &allocator_dumper);
|
||||
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
|
||||
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
|
||||
--- a/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
|
||||
+++ b/base/allocator/partition_allocator/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
|
||||
@@ -24,7 +24,7 @@
|
||||
#if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
|
||||
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
this optimisation of CLONE_SETTLS is not valid used like this, and future musl
|
||||
clone(3) will EINVAL on this use
|
||||
--
|
||||
--- a/sandbox/linux/services/credentials.cc
|
||||
+++ b/sandbox/linux/services/credentials.cc
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
int clone_flags = CLONE_FS | LINUX_SIGCHLD;
|
||||
void* tls = nullptr;
|
||||
-#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
|
||||
+#if 0 && (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
|
||||
!defined(MEMORY_SANITIZER)
|
||||
// Use CLONE_VM | CLONE_VFORK as an optimization to avoid copying page tables.
|
||||
// Since clone writes to the new child's TLS before returning, we must set a
|
|
@ -1,14 +0,0 @@
|
|||
Hard-disable memory tagging on ARM64 - it does exist there but musl is
|
||||
missing some required interface headers for it, and it's not clear how
|
||||
to make the partalloc support code for it work.
|
||||
--- ./base/allocator/partition_allocator/partition_alloc.gni.orig
|
||||
+++ ./base/allocator/partition_allocator/partition_alloc.gni
|
||||
@@ -30,7 +30,7 @@
|
||||
}
|
||||
|
||||
has_memory_tagging =
|
||||
- current_cpu == "arm64" && is_clang && !is_asan && (is_linux || is_android)
|
||||
+ false
|
||||
|
||||
declare_args() {
|
||||
# Causes all the allocations to be routed via allocator_shim.cc. Usually,
|
|
@ -1,20 +0,0 @@
|
|||
--- a/third_party/perfetto/src/trace_processor/perfetto_sql/engine/created_function.cc
|
||||
+++ b/third_party/perfetto/src/trace_processor/perfetto_sql/engine/created_function.cc
|
||||
@@ -107,7 +107,7 @@
|
||||
// the destructors run correctly for non-trivial members of the
|
||||
// union.
|
||||
using Data =
|
||||
- std::variant<int64_t, double, OwnedString, OwnedBytes, nullptr_t>;
|
||||
+ std::variant<int64_t, double, OwnedString, OwnedBytes, std::nullptr_t>;
|
||||
|
||||
StoredSqlValue(SqlValue value) {
|
||||
switch (value.type) {
|
||||
@@ -132,7 +132,7 @@
|
||||
}
|
||||
|
||||
SqlValue AsSqlValue() {
|
||||
- if (std::holds_alternative<nullptr_t>(data)) {
|
||||
+ if (std::holds_alternative<std::nullptr_t>(data)) {
|
||||
return SqlValue();
|
||||
} else if (std::holds_alternative<int64_t>(data)) {
|
||||
return SqlValue::Long(std::get<int64_t>(data));
|
|
@ -1,33 +0,0 @@
|
|||
the pvalloc/valloc symbols are obsolete and not implemented in musl
|
||||
--
|
||||
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc
|
||||
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc
|
||||
@@ -375,7 +375,7 @@
|
||||
ASSERT_GE(aligned_allocs_intercepted_by_alignment[128], 1u);
|
||||
ASSERT_GE(aligned_allocs_intercepted_by_size[53], 1u);
|
||||
|
||||
-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
|
||||
+#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && defined(__GLIBC__)
|
||||
void* pvalloc_ptr = pvalloc(67);
|
||||
ASSERT_NE(nullptr, pvalloc_ptr);
|
||||
ASSERT_EQ(0u, reinterpret_cast<uintptr_t>(pvalloc_ptr) % kPageSize);
|
||||
@@ -414,7 +414,7 @@
|
||||
free(memalign_ptr);
|
||||
ASSERT_GE(frees_intercepted_by_addr[Hash(memalign_ptr)], 1u);
|
||||
|
||||
-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
|
||||
+#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && defined(__GLIBC__)
|
||||
free(pvalloc_ptr);
|
||||
ASSERT_GE(frees_intercepted_by_addr[Hash(pvalloc_ptr)], 1u);
|
||||
#endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
|
||||
--- a/base/process/memory_unittest.cc
|
||||
+++ b/base/process/memory_unittest.cc
|
||||
@@ -359,7 +359,7 @@
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
#endif // !BUILDFLAG(IS_MAC)
|
||||
|
||||
-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
|
||||
+#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
TEST_F(OutOfMemoryDeathTest, Valloc) {
|
||||
ASSERT_OOM_DEATH({
|
14
backports/electron/quiche-arena-size.patch
Normal file
14
backports/electron/quiche-arena-size.patch
Normal file
|
@ -0,0 +1,14 @@
|
|||
back in the day when net_unittests were ran, the block arena size was not big
|
||||
enough for some reason. should look at this again
|
||||
--
|
||||
--- a/net/third_party/quiche/src/quiche/quic/core/quic_one_block_arena.h
|
||||
+++ b/net/third_party/quiche/src/quiche/quic/core/quic_one_block_arena.h
|
||||
@@ -69,7 +69,7 @@
|
||||
|
||||
// QuicConnections currently use around 1KB of polymorphic types which would
|
||||
// ordinarily be on the heap. Instead, store them inline in an arena.
|
||||
-using QuicConnectionArena = QuicOneBlockArena<1280>;
|
||||
+using QuicConnectionArena = QuicOneBlockArena<1504>;
|
||||
|
||||
} // namespace quic
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
needed for push_back on array
|
||||
--
|
||||
--- a/net/third_party/quiche/src/quiche/common/quiche_endian.h
|
||||
+++ b/net/third_party/quiche/src/quiche/common/quiche_endian.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define QUICHE_COMMON_QUICHE_ENDIAN_H_
|
||||
|
||||
#include <algorithm>
|
||||
+#include <array>
|
||||
#include <cstdint>
|
||||
#include <type_traits>
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
Patch-Source: https://gitlab.archlinux.org/archlinux/packaging/packages/chromium/-/blob/c073b0c20935d7eb452732e0f3b2860a96c3db21/random-build-fixes.patch
|
||||
--
|
||||
diff --git a/chrome/browser/download/bubble/download_bubble_update_service.cc b/chrome/browser/download/bubble/download_bubble_update_service.cc
|
||||
index 41b647f7b44..8940c6bb7fc 100644
|
||||
--- a/chrome/browser/download/bubble/download_bubble_update_service.cc
|
||||
+++ b/chrome/browser/download/bubble/download_bubble_update_service.cc
|
||||
@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item) {
|
||||
// Helper to get an iterator to the last element in the cache. The cache
|
||||
// must not be empty.
|
||||
template <typename Item>
|
||||
-SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
|
||||
+typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
|
||||
CHECK(!cache.empty());
|
||||
auto it = cache.end();
|
||||
return std::prev(it);
|
||||
@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheImpl(
|
||||
}
|
||||
|
||||
template <typename Id, typename Item>
|
||||
-SortedItems<Item>::iterator
|
||||
+typename SortedItems<Item>::iterator
|
||||
DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
|
||||
- SortedItems<Item>::iterator iter,
|
||||
+ typename SortedItems<Item>::iterator iter,
|
||||
SortedItems<Item>& cache,
|
||||
IterMap<Id, Item>& iter_map) {
|
||||
CHECK(iter != cache.end());
|
||||
diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc
|
||||
index c0708681ebd..98b8494d170 100644
|
||||
--- a/chrome/test/chromedriver/capabilities.cc
|
||||
+++ b/chrome/test/chromedriver/capabilities.cc
|
||||
@@ -355,7 +355,7 @@ Status ParseMobileEmulation(const base::Value& option,
|
||||
"'version' field of type string");
|
||||
}
|
||||
|
||||
- brands.emplace_back(*brand, *version);
|
||||
+ brands.emplace_back(BrandVersion{*brand, *version});
|
||||
}
|
||||
|
||||
client_hints.brands = std::move(brands);
|
||||
@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base::Value& option,
|
||||
"a 'version' field of type string");
|
||||
}
|
||||
|
||||
- full_version_list.emplace_back(*brand, *version);
|
||||
+ full_version_list.emplace_back(BrandVersion{*brand, *version});
|
||||
}
|
||||
|
||||
client_hints.full_version_list = std::move(full_version_list);
|
||||
diff --git a/components/optimization_guide/core/tflite_model_executor.h b/components/optimization_guide/core/tflite_model_executor.h
|
||||
index c4f750f4684..b5635f4108b 100644
|
||||
--- a/components/optimization_guide/core/tflite_model_executor.h
|
||||
+++ b/components/optimization_guide/core/tflite_model_executor.h
|
||||
@@ -189,7 +189,7 @@ class TFLiteModelExecutor : public ModelExecutor<OutputType, InputType> {
|
||||
void SendForBatchExecution(
|
||||
BatchExecutionCallback callback_on_complete,
|
||||
base::TimeTicks start_time,
|
||||
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
|
||||
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
|
||||
override {
|
||||
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc b/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
|
||||
index 2dc0b304092..a82f255090b 100644
|
||||
--- a/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
|
||||
+++ b/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
|
||||
@@ -169,7 +169,7 @@ class HTMLFastPathParser {
|
||||
using Span = base::span<const Char>;
|
||||
using USpan = base::span<const UChar>;
|
||||
// 32 matches that used by HTMLToken::Attribute.
|
||||
- typedef std::conditional<std::is_same_v<Char, UChar>,
|
||||
+ typedef typename std::conditional<std::is_same_v<Char, UChar>,
|
||||
UCharLiteralBuffer<32>,
|
||||
LCharLiteralBuffer<32>>::type LiteralBufferType;
|
||||
typedef UCharLiteralBuffer<32> UCharLiteralBufferType;
|
||||
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
|
||||
index f0b49139147..a308fb67982 100644
|
||||
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
|
||||
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
|
||||
@@ -91,12 +91,12 @@ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
|
||||
case kGradient:
|
||||
GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
|
||||
ImageDrawOptions());
|
||||
- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
|
||||
+ flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
|
||||
break;
|
||||
case kImagePattern:
|
||||
GetCanvasPattern()->GetPattern()->ApplyToFlags(
|
||||
flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
|
||||
- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
|
||||
+ flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
|
||||
break;
|
||||
default:
|
||||
NOTREACHED();
|
10
backports/electron/remove-broken-patch.patch
Normal file
10
backports/electron/remove-broken-patch.patch
Normal file
|
@ -0,0 +1,10 @@
|
|||
--- a/third_party/node/update_npm_deps
|
||||
+++ b/third_party/node/update_npm_deps
|
||||
@@ -20,7 +20,6 @@
|
||||
|
||||
patch -d node_modules/@types/d3/ -p1 < chromium_d3_types_index.patch
|
||||
patch -d node_modules/html-minifier/ -p1 < html_minifier.patch
|
||||
-patch -p1 < typescript.patch
|
||||
|
||||
rsync -c --delete -r -q --include-from="npm_include.txt" --exclude-from="npm_exclude.txt" \
|
||||
--prune-empty-dirs "node_modules/" "node_modules_filtered/"
|
25
backports/electron/scoped-file-no-close.patch
Normal file
25
backports/electron/scoped-file-no-close.patch
Normal file
|
@ -0,0 +1,25 @@
|
|||
for some reason this breaks and the fd returned after close() after a few
|
||||
cycles is still in the lock array.
|
||||
|
||||
so, just don't enforce or wrap anything.
|
||||
|
||||
note when testing this again: __close does not exist as a symbol in musl, so a
|
||||
manual dlsym workaround has to be performed to use this codepath.
|
||||
--- a/base/files/scoped_file_linux.cc
|
||||
+++ b/base/files/scoped_file_linux.cc
|
||||
@@ -77,15 +77,3 @@
|
||||
}
|
||||
|
||||
} // namespace base
|
||||
-
|
||||
-extern "C" {
|
||||
-
|
||||
-int __close(int);
|
||||
-
|
||||
-__attribute__((visibility("default"), noinline)) int close(int fd) {
|
||||
- if (base::IsFDOwned(fd) && g_is_ownership_enforced)
|
||||
- CrashOnFdOwnershipViolation();
|
||||
- return __close(fd);
|
||||
-}
|
||||
-
|
||||
-} // extern "C"
|
|
@ -1,46 +0,0 @@
|
|||
From ae3ae3711784865bdc38bf119a6182a7b8dae91c Mon Sep 17 00:00:00 2001
|
||||
From: Matt Jolly <Matt.Jolly@footclan.ninja>
|
||||
Date: Sun, 17 Sep 2023 16:51:42 +1000
|
||||
Subject: [PATCH] Add system-zstd
|
||||
|
||||
--- a/build/linux/unbundle/replace_gn_files.py
|
||||
+++ b/build/linux/unbundle/replace_gn_files.py
|
||||
@@ -74,6 +74,7 @@ REPLACEMENTS = {
|
||||
#
|
||||
'woff2': 'third_party/woff2/BUILD.gn',
|
||||
'zlib': 'third_party/zlib/BUILD.gn',
|
||||
+ 'zstd': 'third_party/zstd/BUILD.gn',
|
||||
}
|
||||
|
||||
|
||||
--- /dev/null
|
||||
+++ b/build/linux/unbundle/zstd.gn
|
||||
@@ -0,0 +1,25 @@
|
||||
+import("//build/config/linux/pkg_config.gni")
|
||||
+import("//build/shim_headers.gni")
|
||||
+
|
||||
+pkg_config("system_zstd") {
|
||||
+ packages = [ "libzstd" ]
|
||||
+}
|
||||
+
|
||||
+shim_headers("zstd_shim") {
|
||||
+ root_path = "src/lib"
|
||||
+ headers = [
|
||||
+ "zdict.h",
|
||||
+ "zstd.h",
|
||||
+ "zstd_errors.h",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+source_set("zstd") {
|
||||
+ deps = [ ":zstd_shim" ]
|
||||
+ public_configs = [ ":system_zstd" ]
|
||||
+}
|
||||
+
|
||||
+source_set("decompress") {
|
||||
+ deps = [ ":zstd_shim" ]
|
||||
+ public_configs = [ ":system_zstd" ]
|
||||
+}
|
||||
--
|
||||
2.42.0
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
--- ./third_party/electron_node/BUILD.gn.orig
|
||||
+++ ./third_party/electron_node/BUILD.gn
|
||||
@@ -40,6 +40,8 @@
|
||||
node_release_urlbase = ""
|
||||
|
||||
# Allows downstream packagers (eg. Linux distributions) to build Electron against system shared libraries.
|
||||
+ use_system_ada = false
|
||||
+ use_system_base64 = false
|
||||
use_system_cares = false
|
||||
use_system_nghttp2 = false
|
||||
use_system_llhttp = false
|
||||
@@ -48,6 +50,16 @@
|
||||
|
||||
if (is_linux) {
|
||||
import("//build/config/linux/pkg_config.gni")
|
||||
+ if (use_system_ada) {
|
||||
+ config("ada") {
|
||||
+ libs = [ "ada" ]
|
||||
+ }
|
||||
+ }
|
||||
+ if (use_system_base64) {
|
||||
+ pkg_config("base64") {
|
||||
+ packages = [ "base64" ]
|
||||
+ }
|
||||
+ }
|
||||
if (use_system_cares) {
|
||||
pkg_config("cares") {
|
||||
packages = [ "libcares" ]
|
||||
@@ -258,8 +270,6 @@
|
||||
deps = [
|
||||
":node_js2c_exec",
|
||||
"deps/googletest:gtest",
|
||||
- "deps/ada",
|
||||
- "deps/base64",
|
||||
"deps/simdutf",
|
||||
"deps/uvwasi",
|
||||
"//third_party/zlib",
|
||||
@@ -267,6 +277,16 @@
|
||||
"//third_party/brotli:enc",
|
||||
"//v8:v8_libplatform",
|
||||
]
|
||||
+ if (use_system_ada) {
|
||||
+ configs += [ ":ada" ]
|
||||
+ } else {
|
||||
+ deps += [ "deps/ada" ]
|
||||
+ }
|
||||
+ if (use_system_base64) {
|
||||
+ configs += [ ":base64" ]
|
||||
+ } else {
|
||||
+ deps += [ "deps/base64" ]
|
||||
+ }
|
||||
if (use_system_cares) {
|
||||
configs += [ ":cares" ]
|
||||
} else {
|
||||
--- ./electron/script/generate-config-gypi.py.orig
|
||||
+++ ./electron/script/generate-config-gypi.py
|
||||
@@ -62,6 +62,11 @@
|
||||
# Used by certain versions of node-gyp.
|
||||
v['build_v8_with_gn'] = 'false'
|
||||
|
||||
+ with open(os.path.join(NODE_DIR, 'use_system.txt')) as f:
|
||||
+ for dep in f.read().strip().split(' '):
|
||||
+ if v.get(f'node_shared_{dep}') is not None:
|
||||
+ v[f'node_shared_{dep}'] = 'true'
|
||||
+
|
||||
with open(target_file, 'w+') as f:
|
||||
f.write(pprint.pformat(config, indent=2))
|
||||
|
113
backports/electron/vector-const.patch
Normal file
113
backports/electron/vector-const.patch
Normal file
|
@ -0,0 +1,113 @@
|
|||
--- a/chrome/browser/process_singleton_posix.cc
|
||||
+++ b/chrome/browser/process_singleton_posix.cc
|
||||
@@ -607,7 +607,7 @@
|
||||
// |reader| is for sending back ACK message.
|
||||
void HandleMessage(const std::string& current_dir,
|
||||
const std::vector<std::string>& argv,
|
||||
- const std::vector<const uint8_t> additional_data,
|
||||
+ const std::vector<uint8_t> additional_data,
|
||||
SocketReader* reader);
|
||||
|
||||
private:
|
||||
@@ -664,7 +664,7 @@
|
||||
void ProcessSingleton::LinuxWatcher::HandleMessage(
|
||||
const std::string& current_dir,
|
||||
const std::vector<std::string>& argv,
|
||||
- const std::vector<const uint8_t> additional_data,
|
||||
+ const std::vector<uint8_t> additional_data,
|
||||
SocketReader* reader) {
|
||||
DCHECK(ui_task_runner_->BelongsToCurrentThread());
|
||||
DCHECK(reader);
|
||||
@@ -754,7 +754,7 @@
|
||||
base::StringToSizeT(tokens[0], &num_args);
|
||||
std::vector<std::string> command_line(tokens.begin() + 1, tokens.begin() + 1 + num_args);
|
||||
|
||||
- std::vector<const uint8_t> additional_data;
|
||||
+ std::vector<uint8_t> additional_data;
|
||||
if (tokens.size() >= 3 + num_args) {
|
||||
size_t additional_data_size;
|
||||
base::StringToSizeT(tokens[1 + num_args], &additional_data_size);
|
||||
@@ -763,7 +763,7 @@
|
||||
std::string(1, kTokenDelimiter));
|
||||
const uint8_t* additional_data_bits =
|
||||
reinterpret_cast<const uint8_t*>(remaining_args.c_str());
|
||||
- additional_data = std::vector<const uint8_t>(
|
||||
+ additional_data = std::vector<uint8_t>(
|
||||
additional_data_bits, additional_data_bits + additional_data_size);
|
||||
}
|
||||
|
||||
--- a/chrome/browser/process_singleton.h
|
||||
+++ b/chrome/browser/process_singleton.h
|
||||
@@ -102,7 +102,7 @@
|
||||
using NotificationCallback =
|
||||
base::RepeatingCallback<bool(const base::CommandLine& command_line,
|
||||
const base::FilePath& current_directory,
|
||||
- const std::vector<const uint8_t> additional_data)>;
|
||||
+ const std::vector<uint8_t> additional_data)>;
|
||||
|
||||
#if BUILDFLAG(IS_WIN)
|
||||
ProcessSingleton(const std::string& program_name,
|
||||
--- a/chrome/browser/process_singleton_win.cc
|
||||
+++ b/chrome/browser/process_singleton_win.cc
|
||||
@@ -81,7 +81,7 @@
|
||||
bool ParseCommandLine(const COPYDATASTRUCT* cds,
|
||||
base::CommandLine* parsed_command_line,
|
||||
base::FilePath* current_directory,
|
||||
- std::vector<const uint8_t>* parsed_additional_data) {
|
||||
+ std::vector<uint8_t>* parsed_additional_data) {
|
||||
// We should have enough room for the shortest command (min_message_size)
|
||||
// and also be a multiple of wchar_t bytes. The shortest command
|
||||
// possible is L"START\0\0" (empty command line, current directory,
|
||||
@@ -163,7 +163,7 @@
|
||||
msg.substr(fourth_null + 1, fifth_null - fourth_null);
|
||||
const uint8_t* additional_data_bytes =
|
||||
reinterpret_cast<const uint8_t*>(additional_data.c_str());
|
||||
- *parsed_additional_data = std::vector<const uint8_t>(additional_data_bytes,
|
||||
+ *parsed_additional_data = std::vector<uint8_t>(additional_data_bytes,
|
||||
additional_data_bytes + additional_data_length);
|
||||
|
||||
return true;
|
||||
@@ -187,7 +187,7 @@
|
||||
|
||||
base::CommandLine parsed_command_line(base::CommandLine::NO_PROGRAM);
|
||||
base::FilePath current_directory;
|
||||
- std::vector<const uint8_t> additional_data;
|
||||
+ std::vector<uint8_t> additional_data;
|
||||
if (!ParseCommandLine(cds, &parsed_command_line, ¤t_directory, &additional_data)) {
|
||||
*result = TRUE;
|
||||
return true;
|
||||
--- a/electron/shell/browser/api/electron_api_app.cc
|
||||
+++ b/electron/shell/browser/api/electron_api_app.cc
|
||||
@@ -519,10 +519,10 @@
|
||||
const base::RepeatingCallback<
|
||||
void(const base::CommandLine& command_line,
|
||||
const base::FilePath& current_directory,
|
||||
- const std::vector<const uint8_t> additional_data)>& callback,
|
||||
+ const std::vector<uint8_t> additional_data)>& callback,
|
||||
const base::CommandLine& cmd,
|
||||
const base::FilePath& cwd,
|
||||
- const std::vector<const uint8_t> additional_data) {
|
||||
+ const std::vector<uint8_t> additional_data) {
|
||||
// Make sure the callback is called after app gets ready.
|
||||
if (Browser::Get()->is_ready()) {
|
||||
callback.Run(cmd, cwd, std::move(additional_data));
|
||||
@@ -1082,7 +1082,7 @@
|
||||
|
||||
void App::OnSecondInstance(const base::CommandLine& cmd,
|
||||
const base::FilePath& cwd,
|
||||
- const std::vector<const uint8_t> additional_data) {
|
||||
+ const std::vector<uint8_t> additional_data) {
|
||||
v8::Isolate* isolate = JavascriptEnvironment::GetIsolate();
|
||||
v8::Locker locker(isolate);
|
||||
v8::HandleScope handle_scope(isolate);
|
||||
--- a/electron/shell/browser/api/electron_api_app.h
|
||||
+++ b/electron/shell/browser/api/electron_api_app.h
|
||||
@@ -195,7 +195,7 @@
|
||||
std::string GetLocaleCountryCode();
|
||||
void OnSecondInstance(const base::CommandLine& cmd,
|
||||
const base::FilePath& cwd,
|
||||
- const std::vector<const uint8_t> additional_data);
|
||||
+ const std::vector<uint8_t> additional_data);
|
||||
bool HasSingleInstanceLock() const;
|
||||
bool RequestSingleInstanceLock(gin::Arguments* args);
|
||||
void ReleaseSingleInstanceLock();
|
|
@ -1,11 +0,0 @@
|
|||
--- ./buildtools/third_party/libc++/__config_site.orig
|
||||
+++ ./buildtools/third_party/libc++/__config_site
|
||||
@@ -18,7 +18,7 @@
|
||||
/* #undef _LIBCPP_ABI_FORCE_MICROSOFT */
|
||||
/* #undef _LIBCPP_HAS_NO_THREADS */
|
||||
/* #undef _LIBCPP_HAS_NO_MONOTONIC_CLOCK */
|
||||
-/* #undef _LIBCPP_HAS_MUSL_LIBC */
|
||||
+#define _LIBCPP_HAS_MUSL_LIBC 1
|
||||
/* #undef _LIBCPP_HAS_THREAD_API_PTHREAD */
|
||||
/* #undef _LIBCPP_HAS_THREAD_API_EXTERNAL */
|
||||
/* #undef _LIBCPP_HAS_THREAD_API_WIN32 */
|
20
backports/font-parisienne/APKBUILD
Normal file
20
backports/font-parisienne/APKBUILD
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
|
||||
# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
|
||||
pkgname=font-parisienne
|
||||
pkgver=1
|
||||
pkgrel=1
|
||||
pkgdesc="Parisienne is a casual connecting script inspired by a 1960s Bra advertisement"
|
||||
url="https://fonts.google.com/specimen/Parisienne"
|
||||
arch="noarch"
|
||||
license="OFL-1.1"
|
||||
source="Parisienne-$pkgver.zip::https://fonts.google.com/download?family=Parisienne"
|
||||
options="!check" # No code to test
|
||||
builddir="$srcdir/"
|
||||
|
||||
package() {
|
||||
install -Dm644 ./Parisienne-Regular.ttf -t "$pkgdir"/usr/share/fonts/parisienne
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
a5099b4952b26c31bc1aa363318b4a13a3c156712e58b601534a6530780bc1938420970a50a3a22cbf3f4dff647660b3cafdc4d05a4c86b86a8d21a7bb5efab0 Parisienne-1.zip
|
||||
"
|
|
@ -2,12 +2,11 @@
|
|||
# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
|
||||
pkgname=freecad
|
||||
pkgver=0.20.2
|
||||
pkgrel=5
|
||||
pkgrel=4
|
||||
pkgdesc="Free and open source 3D parametric modeler"
|
||||
url="https://freecadweb.org/"
|
||||
license="LGPL-2.0-or-later"
|
||||
arch="" # removed dependency py3-pyside2
|
||||
#arch="x86_64" # dependency OpenCascade is only x86_64
|
||||
arch="x86_64" # dependency OpenCascade is only x86_64
|
||||
depends="
|
||||
graphviz
|
||||
hdf5
|
||||
|
@ -32,7 +31,7 @@ makedepends="
|
|||
hdf5-dev
|
||||
libmedc-dev
|
||||
libshiboken2-dev
|
||||
onetbb-dev
|
||||
libtbb-dev
|
||||
opencascade-dev
|
||||
py3-pyside2-dev
|
||||
python3-dev
|
||||
|
@ -53,8 +52,6 @@ source="https://github.com/FreeCAD/FreeCAD/archive/$pkgver/freecad-$pkgver.tar.g
|
|||
no-workaround-spnav.patch
|
||||
resourceDirectory.patch
|
||||
tests.patch
|
||||
opencascade-7.8.0.patch
|
||||
missing-include-cstdint.patch
|
||||
"
|
||||
builddir="$srcdir/FreeCAD-$pkgver"
|
||||
|
||||
|
@ -103,6 +100,4 @@ c3acd77dd2bb9a2a23ac354da3b6102effb89c95d675e91421d65486414dfe8cc0188a7212245e0d
|
|||
15696bdaaf77482f1b5d3806535a8004c8cec7d598d62092d9f0394b4ca9e2ad6cedd77c4b86a83a06324d16678c1c6bbf3a390b807729717a2f513e858afd50 no-workaround-spnav.patch
|
||||
8ba13b17bad66316757d180c1b9e9e72a24382627eac7c43a2264b3b5101e6e8f701775f2b805ed733f500fbcd8b0e8e422ec58a9ab3d948d613b666157d4c52 resourceDirectory.patch
|
||||
5db19e0aa2ca1fd21f4c56afc9db54390a799262aaa0a741704c2c304b0068fd6ca1dcc086465e12e9c0cfe06aac750aaf9b8f5f4db324539af4dd3394803ff9 tests.patch
|
||||
f933680dea8744e147f38abce389cb7fd0ec3fb3566454fdd5e6ea07b2faaac5fe61aabe1df3bda9f0d7b4fca16055aa2ad700e9cce10d2604ae37b761b68ade opencascade-7.8.0.patch
|
||||
fec515cc63830f0e715527c7890173705b24e7d99d225821ec4300104cf3affdee49243bbd4d0a331a902cf04db756a1b8f18f0a17cc71f5757f8b5c73c78ede missing-include-cstdint.patch
|
||||
"
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
diff --color -rupN a/src/3rdParty/libE57Format/include/E57Format.h b/src/3rdParty/libE57Format/include/E57Format.h
|
||||
--- a/src/3rdParty/libE57Format/include/E57Format.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/3rdParty/libE57Format/include/E57Format.h 2024-02-27 14:06:29.308892531 +0100
|
||||
@@ -32,6 +32,7 @@
|
||||
//! @file E57Format.h header file for the E57 API
|
||||
|
||||
#include <cfloat>
|
||||
+#include <cstdint>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
|
@ -1,877 +0,0 @@
|
|||
Fix compilation with opencascase 7.8.0
|
||||
|
||||
Base on https://github.com/FreeCAD/FreeCAD/pull/11909
|
||||
|
||||
diff --color -rupN a/cMake/FindOCC.cmake b/cMake/FindOCC.cmake
|
||||
--- a/cMake/FindOCC.cmake 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/cMake/FindOCC.cmake 2024-02-27 15:00:48.248873883 +0100
|
||||
@@ -127,8 +127,6 @@ if(OCC_FOUND)
|
||||
TKG2d
|
||||
TKG3d
|
||||
TKMath
|
||||
- TKIGES
|
||||
- TKSTL
|
||||
TKShHealing
|
||||
TKXSBase
|
||||
TKBool
|
||||
@@ -139,10 +137,6 @@ if(OCC_FOUND)
|
||||
TKGeomBase
|
||||
TKOffset
|
||||
TKPrim
|
||||
- TKSTEPBase
|
||||
- TKSTEPAttr
|
||||
- TKSTEP209
|
||||
- TKSTEP
|
||||
TKHLR
|
||||
TKFeat
|
||||
)
|
||||
@@ -154,17 +148,19 @@ if(OCC_FOUND)
|
||||
TKLCAF
|
||||
TKVCAF
|
||||
TKCDF
|
||||
- TKXDESTEP
|
||||
- TKXDEIGES
|
||||
TKMeshVS
|
||||
TKService
|
||||
TKV3d
|
||||
)
|
||||
- if(OCC_VERSION_STRING VERSION_LESS 6.7.3)
|
||||
- list(APPEND OCC_OCAF_LIBRARIES TKAdvTools)
|
||||
- elseif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
|
||||
+ if(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
|
||||
list(APPEND OCC_OCAF_LIBRARIES TKRWMesh)
|
||||
- endif(OCC_VERSION_STRING VERSION_LESS 6.7.3)
|
||||
+ endif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
|
||||
+ if(OCC_VERSION_STRING VERSION_LESS 7.8.0)
|
||||
+ list(APPEND OCC_LIBRARIES TKIGES TKSTL TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP)
|
||||
+ list(APPEND OCC_OCAF_LIBRARIES TKXDESTEP TKXDEIGES)
|
||||
+ else(OCC_VERSION_STRING VERSION_LESS 7.8.0)
|
||||
+ list(APPEND OCC_LIBRARIES TKDESTEP TKDEIGES TKDEGLTF TKDESTL)
|
||||
+ endif(OCC_VERSION_STRING VERSION_LESS 7.8.0)
|
||||
message(STATUS "-- Found OCE/OpenCASCADE version: ${OCC_VERSION_STRING}")
|
||||
message(STATUS "-- OCE/OpenCASCADE include directory: ${OCC_INCLUDE_DIR}")
|
||||
message(STATUS "-- OCE/OpenCASCADE shared libraries directory: ${OCC_LIBRARY_DIR}")
|
||||
diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx b/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx
|
||||
--- a/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx 2024-02-27 15:00:48.248873883 +0100
|
||||
@@ -29,22 +29,35 @@
|
||||
|
||||
#include <TopoDS_Shape.hxx>
|
||||
|
||||
+#include <Standard_Version.hxx>
|
||||
+
|
||||
/*
|
||||
* This method needed for instance NCollection_DataMap with TopoDS_Shape as key
|
||||
*/
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
struct SMESHDS_Hasher
|
||||
{
|
||||
- static inline Standard_Boolean IsEqual(const TopoDS_Shape& S1,
|
||||
- const TopoDS_Shape& S2)
|
||||
- {
|
||||
- return S1.IsSame(S2);
|
||||
+ size_t operator()(const TopoDS_Shape& S) const noexcept {
|
||||
+ return std::hash<TopoDS_Shape>{}(S);
|
||||
}
|
||||
- static inline Standard_Integer HashCode(const TopoDS_Shape& S,
|
||||
- const Standard_Integer Upper)
|
||||
- {
|
||||
- return ::HashCode( S, Upper);
|
||||
+ size_t operator()(const TopoDS_Shape& S1, const TopoDS_Shape& S2) const noexcept {
|
||||
+ return S1.IsSame(S2);
|
||||
}
|
||||
};
|
||||
-
|
||||
+#else
|
||||
+struct SMESHDS_Hasher
|
||||
+{
|
||||
+static inline Standard_Boolean IsEqual(const TopoDS_Shape& S1,
|
||||
+ const TopoDS_Shape& S2)
|
||||
+{
|
||||
+ return S1.IsSame(S2);
|
||||
+}
|
||||
+static inline Standard_Integer HashCode(const TopoDS_Shape& S,
|
||||
+ const Standard_Integer Upper)
|
||||
+{
|
||||
+ return ::HashCode( S, Upper);
|
||||
+}
|
||||
+};
|
||||
+#endif
|
||||
|
||||
#endif
|
||||
diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx
|
||||
--- a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx 2024-02-27 15:00:48.248873883 +0100
|
||||
@@ -57,9 +57,6 @@
|
||||
#ifndef _MeshVS_EntityType_HeaderFile
|
||||
#include <MeshVS_EntityType.hxx>
|
||||
#endif
|
||||
-#ifndef _Standard_Address_HeaderFile
|
||||
-#include <Standard_Address.hxx>
|
||||
-#endif
|
||||
#ifndef _TColStd_HArray1OfInteger_HeaderFile
|
||||
#include <TColStd_HArray1OfInteger.hxx>
|
||||
#endif
|
||||
diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx b/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx
|
||||
--- a/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx 2024-02-27 15:00:48.248873883 +0100
|
||||
@@ -37,4 +37,5 @@
|
||||
#define SMESH_EXPORT
|
||||
#endif
|
||||
|
||||
+#include <Standard_Version.hxx>
|
||||
#endif
|
||||
diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx b/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx
|
||||
--- a/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -28,10 +28,11 @@
|
||||
|
||||
#include "SMESH_SMESH.hxx"
|
||||
|
||||
-#include <NCollection_DefineSequence.hxx>
|
||||
#if OCC_VERSION_HEX >= 0x060703
|
||||
#include <NCollection_IncAllocator.hxx>
|
||||
#include <NCollection_Sequence.hxx>
|
||||
+#else
|
||||
+#include <NCollection_DefineSequence.hxx>
|
||||
#endif
|
||||
|
||||
typedef const SMDS_MeshNode* SMDS_MeshNodePtr;
|
||||
diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx b/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx
|
||||
--- a/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -185,11 +185,18 @@ typedef std::vector< UVPtStruct > UVPtSt
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// class SMESH_SequenceOfElemPtr
|
||||
+#include <Standard_Version.hxx>
|
||||
+#if OCC_VERSION_HEX >= 0x060703
|
||||
+#include <NCollection_Sequence.hxx>
|
||||
+#else
|
||||
#include <NCollection_DefineSequence.hxx>
|
||||
+#endif
|
||||
|
||||
class SMDS_MeshElement;
|
||||
|
||||
typedef const SMDS_MeshElement* SMDS_MeshElementPtr;
|
||||
+#define DEFINE_SEQUENCE(_ClassName_, _BaseCollection_, TheItemType) \
|
||||
+typedef NCollection_Sequence<TheItemType > _ClassName_;
|
||||
|
||||
DEFINE_SEQUENCE (SMESH_SequenceOfElemPtr, SMESH_BaseCollectionElemPtr, SMDS_MeshElementPtr)
|
||||
|
||||
diff --color -rupN a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp
|
||||
--- a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -33,10 +33,33 @@
|
||||
#include "SMDS_MeshNode.hxx"
|
||||
#include "SMESH_File.hxx"
|
||||
|
||||
+#include <Standard_Version.hxx>
|
||||
+
|
||||
namespace
|
||||
{
|
||||
struct Hasher
|
||||
{
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ size_t operator()(const gp_Pnt& point) const noexcept
|
||||
+ {
|
||||
+ union
|
||||
+ {
|
||||
+ Standard_Real R[3];
|
||||
+ Standard_Integer I[6];
|
||||
+ } U;
|
||||
+
|
||||
+ point.Coord( U.R[0], U.R[1], U.R[2] );
|
||||
+ return std::hash<Standard_Integer>{}(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7);
|
||||
+ }
|
||||
+
|
||||
+ size_t operator()(const gp_Pnt& point1, const gp_Pnt& point2) const noexcept
|
||||
+ {
|
||||
+ static Standard_Real tab1[3], tab2[3];
|
||||
+ point1.Coord(tab1[0],tab1[1],tab1[2]);
|
||||
+ point2.Coord(tab2[0],tab2[1],tab2[2]);
|
||||
+ return (memcmp(tab1,tab2,sizeof(tab1)) == 0);
|
||||
+ }
|
||||
+#else
|
||||
//=======================================================================
|
||||
//function : HashCode
|
||||
//purpose :
|
||||
@@ -51,9 +74,9 @@ namespace
|
||||
} U;
|
||||
|
||||
point.Coord( U.R[0], U.R[1], U.R[2] );
|
||||
-
|
||||
- return ::HashCode(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7,Upper);
|
||||
+ return std::hash<Standard_Integer>{}(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7);
|
||||
}
|
||||
+
|
||||
//=======================================================================
|
||||
//function : IsEqual
|
||||
//purpose :
|
||||
@@ -66,7 +89,9 @@ namespace
|
||||
point2.Coord(tab2[0],tab2[1],tab2[2]);
|
||||
return (memcmp(tab1,tab2,sizeof(tab1)) == 0);
|
||||
}
|
||||
+#endif
|
||||
};
|
||||
+
|
||||
typedef NCollection_DataMap<gp_Pnt,SMDS_MeshNode*,Hasher> TDataMapOfPntNodePtr;
|
||||
|
||||
const int HEADER_SIZE = 84;
|
||||
diff --color -rupN a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp
|
||||
--- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -48,7 +48,6 @@
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <GeomAPI_ProjectPointOnSurf.hxx>
|
||||
#include <Geom_Surface.hxx>
|
||||
-#include <NCollection_DefineArray2.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TColStd_SequenceOfInteger.hxx>
|
||||
diff --color -rupN a/src/Mod/Drawing/App/PreCompiled.h b/src/Mod/Drawing/App/PreCompiled.h
|
||||
--- a/src/Mod/Drawing/App/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Drawing/App/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -70,7 +70,6 @@
|
||||
#include <Standard_LicenseError.hxx>
|
||||
#include <Standard_LicenseNotFound.hxx>
|
||||
#include <Standard_Macro.hxx>
|
||||
-#include <Standard_math.hxx>
|
||||
#include <Standard_MultiplyDefined.hxx>
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <Standard_NoMoreObject.hxx>
|
||||
diff --color -rupN a/src/Mod/Drawing/Gui/TaskDialog.cpp b/src/Mod/Drawing/Gui/TaskDialog.cpp
|
||||
--- a/src/Mod/Drawing/Gui/TaskDialog.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Drawing/Gui/TaskDialog.cpp 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -29,7 +29,6 @@
|
||||
#endif
|
||||
|
||||
|
||||
-#include <Standard_math.hxx>
|
||||
#include "TaskDialog.h"
|
||||
#include <Gui/Application.h>
|
||||
#include <Gui/Command.h>
|
||||
diff --color -rupN a/src/Mod/Fem/Gui/PreCompiled.h b/src/Mod/Fem/Gui/PreCompiled.h
|
||||
--- a/src/Mod/Fem/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Fem/Gui/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -63,7 +63,6 @@
|
||||
#endif
|
||||
|
||||
// OCC
|
||||
-#include <Standard_math.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
diff --color -rupN a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp
|
||||
--- a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -28,7 +28,6 @@
|
||||
|
||||
# include <SMESH_Mesh.hxx>
|
||||
# include <SMESHDS_Mesh.hxx>
|
||||
-# include <Standard_math.hxx>
|
||||
#endif
|
||||
|
||||
#include <Base/Console.h>
|
||||
diff --color -rupN a/src/Mod/Import/App/ImportOCAF.cpp b/src/Mod/Import/App/ImportOCAF.cpp
|
||||
--- a/src/Mod/Import/App/ImportOCAF.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Import/App/ImportOCAF.cpp 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -165,7 +165,11 @@ void ImportOCAF::loadShapes(const TDF_La
|
||||
std::vector<App::DocumentObject *> localValue;
|
||||
|
||||
if (aShapeTool->GetShape(label,aShape)) {
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ hash = std::hash<TopoDS_Shape>{}(aShape);
|
||||
+#else
|
||||
hash = aShape.HashCode(HashUpper);
|
||||
+#endif
|
||||
}
|
||||
|
||||
Handle(TDataStd_Name) name;
|
||||
@@ -235,7 +239,11 @@ void ImportOCAF::loadShapes(const TDF_La
|
||||
if (isRef || myRefShapes.find(hash) == myRefShapes.end()) {
|
||||
TopoDS_Shape aShape;
|
||||
if (isRef && aShapeTool->GetShape(label, aShape))
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ myRefShapes.insert(std::hash<TopoDS_Shape>{}(aShape));
|
||||
+#else
|
||||
myRefShapes.insert(aShape.HashCode(HashUpper));
|
||||
+#endif
|
||||
|
||||
if (aShapeTool->IsSimpleShape(label) && (isRef || aShapeTool->IsFree(label))) {
|
||||
if (!asm_name.empty())
|
||||
@@ -565,7 +573,11 @@ void ImportXCAF::createShape(const TopoD
|
||||
part->Label.setValue(default_name);
|
||||
part->Shape.setValue(shape);
|
||||
std::map<Standard_Integer, Quantity_ColorRGBA>::const_iterator jt;
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ jt = myColorMap.find(std::hash<TopoDS_Shape>{}(shape));
|
||||
+#else
|
||||
jt = myColorMap.find(shape.HashCode(INT_MAX));
|
||||
+#endif
|
||||
|
||||
App::Color partColor(0.8f,0.8f,0.8f);
|
||||
#if 0//TODO
|
||||
@@ -586,7 +598,11 @@ void ImportXCAF::createShape(const TopoD
|
||||
// set label name if defined
|
||||
if (setname && !myNameMap.empty()) {
|
||||
std::map<Standard_Integer, std::string>::const_iterator jt;
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ jt = myNameMap.find(std::hash<TopoDS_Shape>{}(shape));
|
||||
+#else
|
||||
jt = myNameMap.find(shape.HashCode(INT_MAX));
|
||||
+#endif
|
||||
if (jt != myNameMap.end()) {
|
||||
part->Label.setValue(jt->second);
|
||||
}
|
||||
@@ -606,7 +622,11 @@ void ImportXCAF::createShape(const TopoD
|
||||
faceColors.resize(faces.Extent(), partColor);
|
||||
xp.Init(shape,TopAbs_FACE);
|
||||
while (xp.More()) {
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ jt = myColorMap.find(std::hash<TopoDS_Shape>{}(xp.Current()));
|
||||
+#else
|
||||
jt = myColorMap.find(xp.Current().HashCode(INT_MAX));
|
||||
+#endif
|
||||
if (jt != myColorMap.end()) {
|
||||
int index = faces.FindIndex(xp.Current());
|
||||
faceColors[index-1] = convertColor(jt->second);
|
||||
@@ -641,23 +661,51 @@ void ImportXCAF::loadShapes(const TDF_La
|
||||
// add the shapes
|
||||
TopExp_Explorer xp;
|
||||
for (xp.Init(aShape, TopAbs_SOLID); xp.More(); xp.Next(), ctSolids++)
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ this->mySolids[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
|
||||
+#else
|
||||
this->mySolids[xp.Current().HashCode(INT_MAX)] = (xp.Current());
|
||||
+#endif
|
||||
for (xp.Init(aShape, TopAbs_SHELL, TopAbs_SOLID); xp.More(); xp.Next(), ctShells++)
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ this->myShells[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
|
||||
+#else
|
||||
this->myShells[xp.Current().HashCode(INT_MAX)] = (xp.Current());
|
||||
+#endif
|
||||
// if no solids and no shells were found then go for compounds
|
||||
if (ctSolids == 0 && ctShells == 0) {
|
||||
for (xp.Init(aShape, TopAbs_COMPOUND); xp.More(); xp.Next(), ctComps++)
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ this->myCompds[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
|
||||
+#else
|
||||
this->myCompds[xp.Current().HashCode(INT_MAX)] = (xp.Current());
|
||||
+#endif
|
||||
}
|
||||
if (ctComps == 0) {
|
||||
for (xp.Init(aShape, TopAbs_FACE, TopAbs_SHELL); xp.More(); xp.Next())
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ this->myShapes[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
|
||||
+#else
|
||||
this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
|
||||
+#endif
|
||||
for (xp.Init(aShape, TopAbs_WIRE, TopAbs_FACE); xp.More(); xp.Next())
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ this->myShapes[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
|
||||
+#else
|
||||
this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
|
||||
+#endif
|
||||
for (xp.Init(aShape, TopAbs_EDGE, TopAbs_WIRE); xp.More(); xp.Next())
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ this->myShapes[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
|
||||
+#else
|
||||
this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
|
||||
+#endif
|
||||
for (xp.Init(aShape, TopAbs_VERTEX, TopAbs_EDGE); xp.More(); xp.Next())
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ this->myShapes[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
|
||||
+#else
|
||||
this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -667,7 +715,11 @@ void ImportXCAF::loadShapes(const TDF_La
|
||||
hColors->GetColor(label, XCAFDoc_ColorSurf, col) ||
|
||||
hColors->GetColor(label, XCAFDoc_ColorCurv, col)) {
|
||||
// add defined color
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ myColorMap[std::hash<TopoDS_Shape>{}(aShape)] = col;
|
||||
+#else
|
||||
myColorMap[aShape.HashCode(INT_MAX)] = col;
|
||||
+#endif
|
||||
}
|
||||
else {
|
||||
// http://www.opencascade.org/org/forum/thread_17107/
|
||||
@@ -677,7 +729,11 @@ void ImportXCAF::loadShapes(const TDF_La
|
||||
hColors->GetColor(it.Value(), XCAFDoc_ColorSurf, col) ||
|
||||
hColors->GetColor(it.Value(), XCAFDoc_ColorCurv, col)) {
|
||||
// add defined color
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ myColorMap[std::hash<TopoDS_Shape>{}(it.Value())] = col;
|
||||
+#else
|
||||
myColorMap[it.Value().HashCode(INT_MAX)] = col;
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -690,7 +746,11 @@ void ImportXCAF::loadShapes(const TDF_La
|
||||
extstr.ToUTF8CString(str);
|
||||
std::string labelName(str);
|
||||
if (!labelName.empty())
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ myNameMap[std::hash<TopoDS_Shape>{}(aShape)] = labelName;
|
||||
+#else
|
||||
myNameMap[aShape.HashCode(INT_MAX)] = labelName;
|
||||
+#endif
|
||||
delete [] str;
|
||||
}
|
||||
|
||||
diff --color -rupN a/src/Mod/Import/App/ImportOCAF.h b/src/Mod/Import/App/ImportOCAF.h
|
||||
--- a/src/Mod/Import/App/ImportOCAF.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Import/App/ImportOCAF.h 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -29,7 +29,6 @@
|
||||
#include <XCAFDoc_ShapeTool.hxx>
|
||||
#include <Quantity_ColorRGBA.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
-#include <TDF_LabelMapHasher.hxx>
|
||||
#include <climits>
|
||||
#include <string>
|
||||
#include <set>
|
||||
diff --color -rupN a/src/Mod/Import/App/ImportOCAF2.h b/src/Mod/Import/App/ImportOCAF2.h
|
||||
--- a/src/Mod/Import/App/ImportOCAF2.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Import/App/ImportOCAF2.h 2024-02-27 15:06:12.358890276 +0100
|
||||
@@ -27,7 +27,6 @@
|
||||
#include <XCAFDoc_ColorTool.hxx>
|
||||
#include <XCAFDoc_ShapeTool.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
-#include <TDF_LabelMapHasher.hxx>
|
||||
#include <climits>
|
||||
#include <string>
|
||||
#include <set>
|
||||
@@ -57,13 +56,21 @@ namespace Import {
|
||||
|
||||
struct ShapeHasher {
|
||||
std::size_t operator()(const TopoDS_Shape &s) const {
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ return std::hash<TopoDS_Shape>{}(s);
|
||||
+#else
|
||||
return s.HashCode(INT_MAX);
|
||||
+#endif
|
||||
}
|
||||
};
|
||||
|
||||
struct LabelHasher {
|
||||
std::size_t operator()(const TDF_Label &l) const {
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ return std::hash<TDF_Label> {}(l);
|
||||
+#else
|
||||
return TDF_LabelMapHasher::HashCode(l,INT_MAX);
|
||||
+#endif
|
||||
}
|
||||
};
|
||||
|
||||
diff --color -rupN a/src/Mod/MeshPart/App/CurveProjector.h b/src/Mod/MeshPart/App/CurveProjector.h
|
||||
--- a/src/Mod/MeshPart/App/CurveProjector.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/MeshPart/App/CurveProjector.h 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -20,6 +20,7 @@
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
+#include <Standard_Version.hxx>
|
||||
|
||||
#ifndef _CurveProjector_h_
|
||||
#define _CurveProjector_h_
|
||||
@@ -64,8 +65,13 @@ public:
|
||||
|
||||
template<class T>
|
||||
struct TopoDSLess {
|
||||
- bool operator()(const T& x, const T& y) const {
|
||||
- return x.HashCode(INT_MAX-1) < y.HashCode(INT_MAX-1);
|
||||
+ bool operator()(const T& x, const T& y) const {
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ std::hash<T> hasher;
|
||||
+ return hasher(x) < hasher(y);
|
||||
+#else
|
||||
+ return x.HashCode(INT_MAX-1) < y.HashCode(INT_MAX-1);
|
||||
+#endif
|
||||
}
|
||||
};
|
||||
|
||||
diff --color -rupN a/src/Mod/MeshPart/App/PreCompiled.h b/src/Mod/MeshPart/App/PreCompiled.h
|
||||
--- a/src/Mod/MeshPart/App/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/MeshPart/App/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -76,7 +76,6 @@
|
||||
#include <Standard_LicenseError.hxx>
|
||||
#include <Standard_LicenseNotFound.hxx>
|
||||
#include <Standard_Macro.hxx>
|
||||
-#include <Standard_math.hxx>
|
||||
#include <Standard_MultiplyDefined.hxx>
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <Standard_NoMoreObject.hxx>
|
||||
diff --color -rupN a/src/Mod/MeshPart/Gui/CrossSections.cpp b/src/Mod/MeshPart/Gui/CrossSections.cpp
|
||||
--- a/src/Mod/MeshPart/Gui/CrossSections.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/MeshPart/Gui/CrossSections.cpp 2024-02-27 15:00:48.252207183 +0100
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
# include <sstream>
|
||||
-# include <Standard_math.hxx>
|
||||
# include <BRep_Builder.hxx>
|
||||
# include <BRepBuilderAPI_MakePolygon.hxx>
|
||||
# include <TopoDS.hxx>
|
||||
diff --color -rupN a/src/Mod/Part/App/ImportStep.cpp b/src/Mod/Part/App/ImportStep.cpp
|
||||
--- a/src/Mod/Part/App/ImportStep.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/App/ImportStep.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -167,7 +167,12 @@ int Part::ImportStepParts(App::Document
|
||||
// This is a trick to access the GUI via Python and set the color property
|
||||
// of the associated view provider. If no GUI is up an exception is thrown
|
||||
// and cleared immediately
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ std::hash<TopoDS_Solid> hasher;
|
||||
+ std::map<int, Quantity_Color>::iterator it = hash_col.find(hasher(aSolid));
|
||||
+#else
|
||||
std::map<int, Quantity_Color>::iterator it = hash_col.find(aSolid.HashCode(INT_MAX));
|
||||
+#endif
|
||||
if (it != hash_col.end()) {
|
||||
try {
|
||||
Py::Object obj(pcFeature->getPyObject(), true);
|
||||
diff --color -rupN a/src/Mod/Part/App/OCCError.h b/src/Mod/Part/App/OCCError.h
|
||||
--- a/src/Mod/Part/App/OCCError.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/App/OCCError.h 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -50,7 +50,6 @@
|
||||
# include <Standard_Overflow.hxx>
|
||||
# include <Standard_ProgramError.hxx>
|
||||
# include <Standard_RangeError.hxx>
|
||||
-# include <Standard_TooManyUsers.hxx>
|
||||
# include <Standard_TypeMismatch.hxx>
|
||||
# include <Standard_Underflow.hxx>
|
||||
|
||||
diff --color -rupN a/src/Mod/Part/App/OpenCascadeAll.h b/src/Mod/Part/App/OpenCascadeAll.h
|
||||
--- a/src/Mod/Part/App/OpenCascadeAll.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/App/OpenCascadeAll.h 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -49,7 +49,6 @@
|
||||
#include <Standard_LicenseError.hxx>
|
||||
#include <Standard_LicenseNotFound.hxx>
|
||||
#include <Standard_Macro.hxx>
|
||||
-#include <Standard_math.hxx>
|
||||
#include <Standard_MultiplyDefined.hxx>
|
||||
#include <Standard_NegativeValue.hxx>
|
||||
#include <Standard_NoMoreObject.hxx>
|
||||
diff --color -rupN a/src/Mod/Part/App/TopoShapePyImp.cpp b/src/Mod/Part/App/TopoShapePyImp.cpp
|
||||
--- a/src/Mod/Part/App/TopoShapePyImp.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/App/TopoShapePyImp.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -1321,7 +1321,11 @@ PyObject* TopoShapePy::ancestorsOfType(
|
||||
TopTools_ListIteratorOfListOfShape it(ancestors);
|
||||
for (; it.More(); it.Next()) {
|
||||
// make sure to avoid duplicates
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ const size_t code = std::hash<TopoDS_Shape>{}(static_cast<TopoDS_Shape>(it.Value()));
|
||||
+#else
|
||||
Standard_Integer code = it.Value().HashCode(INT_MAX);
|
||||
+#endif
|
||||
if (hashes.find(code) == hashes.end()) {
|
||||
list.append(shape2pyshape(it.Value()));
|
||||
hashes.insert(code);
|
||||
@@ -1943,7 +1947,11 @@ PyObject* TopoShapePy::hashCode(PyObject
|
||||
if (!PyArg_ParseTuple(args, "|i",&upper))
|
||||
return nullptr;
|
||||
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ int hc = std::hash<TopoDS_Shape>{}(getTopoShapePtr()->getShape());
|
||||
+#else
|
||||
int hc = getTopoShapePtr()->getShape().HashCode(upper);
|
||||
+#endif
|
||||
return Py_BuildValue("i", hc);
|
||||
}
|
||||
|
||||
diff --color -rupN a/src/Mod/Part/Gui/AppPartGui.cpp b/src/Mod/Part/Gui/AppPartGui.cpp
|
||||
--- a/src/Mod/Part/Gui/AppPartGui.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/AppPartGui.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -11,9 +11,6 @@
|
||||
|
||||
|
||||
#include "PreCompiled.h"
|
||||
-#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
-#endif
|
||||
|
||||
#include <Base/Console.h>
|
||||
#include <Base/Interpreter.h>
|
||||
diff --color -rupN a/src/Mod/Part/Gui/Command.cpp b/src/Mod/Part/Gui/Command.cpp
|
||||
--- a/src/Mod/Part/Gui/Command.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/Command.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -26,7 +26,6 @@
|
||||
# include <QFileInfo>
|
||||
# include <QPointer>
|
||||
# include <QString>
|
||||
-# include <Standard_math.hxx>
|
||||
# include <Standard_Version.hxx>
|
||||
# include <TopExp_Explorer.hxx>
|
||||
# include <TopoDS_Shape.hxx>
|
||||
diff --color -rupN a/src/Mod/Part/Gui/CommandSimple.cpp b/src/Mod/Part/Gui/CommandSimple.cpp
|
||||
--- a/src/Mod/Part/Gui/CommandSimple.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/CommandSimple.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -22,9 +22,6 @@
|
||||
|
||||
|
||||
#include "PreCompiled.h"
|
||||
-#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
-#endif
|
||||
|
||||
#include <App/Document.h>
|
||||
#include <App/DocumentObject.h>
|
||||
diff --color -rupN a/src/Mod/Part/Gui/CrossSections.cpp b/src/Mod/Part/Gui/CrossSections.cpp
|
||||
--- a/src/Mod/Part/Gui/CrossSections.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/CrossSections.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
# include <BRep_Builder.hxx>
|
||||
# include <BRepAlgoAPI_Section.hxx>
|
||||
# include <BRepBuilderAPI_MakeWire.hxx>
|
||||
diff --color -rupN a/src/Mod/Part/Gui/ViewProvider2DObject.cpp b/src/Mod/Part/Gui/ViewProvider2DObject.cpp
|
||||
--- a/src/Mod/Part/Gui/ViewProvider2DObject.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/ViewProvider2DObject.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -26,8 +26,6 @@
|
||||
#ifndef _PreComp_
|
||||
# include <cfloat>
|
||||
|
||||
-# include <Standard_math.hxx>
|
||||
-
|
||||
# include <Inventor/nodes/SoAnnotation.h>
|
||||
# include <Inventor/nodes/SoBaseColor.h>
|
||||
# include <Inventor/nodes/SoDepthBuffer.h>
|
||||
diff --color -rupN a/src/Mod/Part/Gui/ViewProviderExt.cpp b/src/Mod/Part/Gui/ViewProviderExt.cpp
|
||||
--- a/src/Mod/Part/Gui/ViewProviderExt.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/ViewProviderExt.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -978,7 +978,11 @@ void ViewProviderPartExt::updateVisual()
|
||||
|
||||
TopExp_Explorer xp;
|
||||
for (xp.Init(faceMap(i),TopAbs_EDGE);xp.More();xp.Next())
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ faceEdges.insert(std::hash<TopoDS_Shape>{}(xp.Current()));
|
||||
+#else
|
||||
faceEdges.insert(xp.Current().HashCode(INT_MAX));
|
||||
+#endif
|
||||
numFaces++;
|
||||
}
|
||||
|
||||
@@ -1006,7 +1010,11 @@ void ViewProviderPartExt::updateVisual()
|
||||
// So, we have to store the hashes of the edges associated to a face.
|
||||
// If the hash of a given edge is not in this list we know it's really
|
||||
// a free edge.
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ int hash = std::hash<TopoDS_Shape>{}(aEdge);
|
||||
+#else
|
||||
int hash = aEdge.HashCode(INT_MAX);
|
||||
+#endif
|
||||
if (faceEdges.find(hash) == faceEdges.end()) {
|
||||
Handle(Poly_Polygon3D) aPoly = Part::Tools::polygonOfEdge(aEdge, aLoc);
|
||||
if (!aPoly.IsNull()) {
|
||||
@@ -1205,7 +1213,11 @@ void ViewProviderPartExt::updateVisual()
|
||||
TopLoc_Location aLoc;
|
||||
|
||||
// handling of the free edge that are not associated to a face
|
||||
+#if OCC_VERSION_HEX >= 0x070800
|
||||
+ int hash = std::hash<TopoDS_Shape>{}(aEdge);
|
||||
+#else
|
||||
int hash = aEdge.HashCode(INT_MAX);
|
||||
+#endif
|
||||
if (faceEdges.find(hash) == faceEdges.end()) {
|
||||
Handle(Poly_Polygon3D) aPoly = Part::Tools::polygonOfEdge(aEdge, aLoc);
|
||||
if (!aPoly.IsNull()) {
|
||||
diff --color -rupN a/src/Mod/Part/Gui/ViewProviderExt.h b/src/Mod/Part/Gui/ViewProviderExt.h
|
||||
--- a/src/Mod/Part/Gui/ViewProviderExt.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/ViewProviderExt.h 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -24,7 +24,6 @@
|
||||
#ifndef PARTGUI_VIEWPROVIDERPARTEXT_H
|
||||
#define PARTGUI_VIEWPROVIDERPARTEXT_H
|
||||
|
||||
-#include <Standard_math.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
diff --color -rupN a/src/Mod/Part/Gui/ViewProviderMirror.cpp b/src/Mod/Part/Gui/ViewProviderMirror.cpp
|
||||
--- a/src/Mod/Part/Gui/ViewProviderMirror.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/ViewProviderMirror.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -27,7 +27,6 @@
|
||||
# include <QAction>
|
||||
# include <QMenu>
|
||||
# include <QTimer>
|
||||
-# include <Standard_math.hxx>
|
||||
# include <TopExp.hxx>
|
||||
# include <TopTools_IndexedMapOfShape.hxx>
|
||||
# include <TopTools_ListOfShape.hxx>
|
||||
diff --color -rupN a/src/Mod/Part/Gui/ViewProviderPython.cpp b/src/Mod/Part/Gui/ViewProviderPython.cpp
|
||||
--- a/src/Mod/Part/Gui/ViewProviderPython.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/ViewProviderPython.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
-#include <Standard_math.hxx>
|
||||
#ifndef _PreComp_
|
||||
# include <Inventor/nodes/SoSeparator.h>
|
||||
#endif
|
||||
diff --color -rupN a/src/Mod/Part/Gui/ViewProviderReference.h b/src/Mod/Part/Gui/ViewProviderReference.h
|
||||
--- a/src/Mod/Part/Gui/ViewProviderReference.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Part/Gui/ViewProviderReference.h 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -24,7 +24,6 @@
|
||||
#ifndef PARTGUI_ViewProviderPartReference_H
|
||||
#define PARTGUI_ViewProviderPartReference_H
|
||||
|
||||
-#include <Standard_math.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <Gui/ViewProviderGeometryObject.h>
|
||||
diff --color -rupN a/src/Mod/PartDesign/Gui/PreCompiled.h b/src/Mod/PartDesign/Gui/PreCompiled.h
|
||||
--- a/src/Mod/PartDesign/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/PartDesign/Gui/PreCompiled.h 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -44,7 +44,6 @@
|
||||
#include <boost/bind/bind.hpp>
|
||||
|
||||
// OCC
|
||||
-#include <Standard_math.hxx>
|
||||
#include <Standard_Version.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <BRepBndLib.hxx>
|
||||
diff --color -rupN a/src/Mod/Path/App/Voronoi.cpp b/src/Mod/Path/App/Voronoi.cpp
|
||||
--- a/src/Mod/Path/App/Voronoi.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Path/App/Voronoi.cpp 2024-02-27 15:00:48.255540482 +0100
|
||||
@@ -23,10 +23,6 @@
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
-#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
-#endif
|
||||
-
|
||||
#include <Base/Vector3D.h>
|
||||
|
||||
#include "Voronoi.h"
|
||||
diff --color -rupN a/src/Mod/Path/Gui/PreCompiled.h b/src/Mod/Path/Gui/PreCompiled.h
|
||||
--- a/src/Mod/Path/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Path/Gui/PreCompiled.h 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -38,8 +38,6 @@
|
||||
# define PathGuiExport
|
||||
#endif
|
||||
|
||||
-#include <Standard_math.hxx>
|
||||
-
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning( disable : 4273 )
|
||||
#endif
|
||||
diff --color -rupN a/src/Mod/Robot/Gui/PreCompiled.h b/src/Mod/Robot/Gui/PreCompiled.h
|
||||
--- a/src/Mod/Robot/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Robot/Gui/PreCompiled.h 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -39,8 +39,6 @@
|
||||
# define RobotGuiExport
|
||||
#endif
|
||||
|
||||
-#include <Standard_math.hxx>
|
||||
-
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable : 4005)
|
||||
# pragma warning(disable : 4273)
|
||||
diff --color -rupN a/src/Mod/Sandbox/Gui/AppSandboxGui.cpp b/src/Mod/Sandbox/Gui/AppSandboxGui.cpp
|
||||
--- a/src/Mod/Sandbox/Gui/AppSandboxGui.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Sandbox/Gui/AppSandboxGui.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
# include <Python.h>
|
||||
-# include <Standard_math.hxx>
|
||||
# include <Inventor/nodes/SoLineSet.h>
|
||||
# include <Inventor/nodes/SoBaseColor.h>
|
||||
# include <Inventor/nodes/SoSeparator.h>
|
||||
diff --color -rupN a/src/Mod/Sketcher/App/SketchAnalysis.cpp b/src/Mod/Sketcher/App/SketchAnalysis.cpp
|
||||
--- a/src/Mod/Sketcher/App/SketchAnalysis.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Sketcher/App/SketchAnalysis.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -25,7 +25,6 @@
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
# include <BRep_Tool.hxx>
|
||||
# include <gp_Pnt.hxx>
|
||||
# include <Precision.hxx>
|
||||
diff --color -rupN a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp
|
||||
--- a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
# include <Inventor/nodes/SoTranslation.h>
|
||||
# include <Inventor/nodes/SoText2.h>
|
||||
# include <Inventor/nodes/SoFont.h>
|
||||
diff --color -rupN a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp
|
||||
--- a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
/// Qt Include Files
|
||||
# include <QApplication>
|
||||
# include <QDialog>
|
||||
diff --color -rupN a/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp b/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp
|
||||
--- a/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
# include <QDoubleValidator>
|
||||
# include <QLocale>
|
||||
# include <QMessageBox>
|
||||
diff --color -rupN a/src/Mod/Sketcher/Gui/ViewProviderPython.cpp b/src/Mod/Sketcher/Gui/ViewProviderPython.cpp
|
||||
--- a/src/Mod/Sketcher/Gui/ViewProviderPython.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Sketcher/Gui/ViewProviderPython.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -23,7 +23,6 @@
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
-#include <Standard_math.hxx>
|
||||
#ifndef _PreComp_
|
||||
# include <Inventor/nodes/SoSeparator.h>
|
||||
#endif
|
||||
diff --color -rupN a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp
|
||||
--- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
-# include <Standard_math.hxx>
|
||||
|
||||
# include <Inventor/actions/SoGetBoundingBoxAction.h>
|
||||
# include <Inventor/SbBox3f.h>
|
||||
diff --color -rupN a/src/Mod/Surface/Gui/Command.cpp b/src/Mod/Surface/Gui/Command.cpp
|
||||
--- a/src/Mod/Surface/Gui/Command.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/Surface/Gui/Command.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <QLineEdit>
|
||||
#include <QMessageBox>
|
||||
#include <QPointer>
|
||||
-#include <Standard_math.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <Geom_BezierCurve.hxx>
|
||||
diff --color -rupN a/src/Mod/TechDraw/Gui/TaskProjection.cpp b/src/Mod/TechDraw/Gui/TaskProjection.cpp
|
||||
--- a/src/Mod/TechDraw/Gui/TaskProjection.cpp 2022-12-07 03:35:37.000000000 +0100
|
||||
+++ b/src/Mod/TechDraw/Gui/TaskProjection.cpp 2024-02-27 15:00:48.258873781 +0100
|
||||
@@ -29,9 +29,6 @@
|
||||
# include <QMessageBox>
|
||||
#endif
|
||||
|
||||
-
|
||||
-#include <Standard_math.hxx>
|
||||
-
|
||||
#include <Gui/Application.h>
|
||||
#include <Gui/BitmapFactory.h>
|
||||
#include <Gui/Command.h>
|
|
@ -1,56 +0,0 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
pkgname=freetube
|
||||
pkgver=0.21.3
|
||||
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"
|
||||
depends="
|
||||
electron
|
||||
font-roboto
|
||||
"
|
||||
makedepends="
|
||||
electron-tasje
|
||||
nodejs
|
||||
yarn
|
||||
"
|
||||
url="https://freetubeapp.io"
|
||||
source="
|
||||
$pkgname-$pkgver.tar.gz::https://github.com/FreeTubeApp/FreeTube/archive/v$pkgver-beta.tar.gz
|
||||
freetube.sh
|
||||
tasje-dotdash.patch
|
||||
"
|
||||
options="net !check" # No testsuite
|
||||
builddir="$srcdir"/FreeTube-$pkgver-beta
|
||||
|
||||
export npm_config_nodedir=/usr/include/electron/node_headers
|
||||
export npm_config_build_from_source=true
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
yarn --cache-folder "$srcdir"/yarn-cache install --frozen-lockfile --ignore-scripts
|
||||
}
|
||||
|
||||
build() {
|
||||
yarn --cache-folder "$srcdir"/yarn-cache run pack
|
||||
|
||||
tasje --config _scripts/ebuilder.config.js pack
|
||||
}
|
||||
|
||||
package() {
|
||||
# directory creation + program copy
|
||||
install -Dm755 build/resources/app.asar -t "$pkgdir"/usr/lib/$pkgname/
|
||||
|
||||
# link binaries + other items
|
||||
install -Dm755 "$srcdir"/freetube.sh "$pkgdir"/usr/bin/$pkgname
|
||||
install -Dm644 "$builddir"/_icons/icon.svg "$pkgdir"/usr/share/icons/hicolor/scalable/$pkgname.svg
|
||||
install -Dm644 build/freetube.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
22e5ab677cd442d50237b2d62534698d8ad73a37e1731003dc23c4ea3da992b3cae936f0bb3a0a86cd4b7fba731c9fa53276cb0a6cd5bab213ff2a6c9006cb05 freetube-0.21.3.tar.gz
|
||||
2ce2effc794bb663789cefe968b5899122127983dbfa1b240aa33a2be383720b18204e6d01b4a550df72956f02b6636b79c93a58f470a970b09b770f5b8f2fc4 freetube.sh
|
||||
d27cb896b65a7e8d52ffe86e5f74eed72b6cf976b28e1a13012d34c7eceba5ff6f20298017738dfa93c0336ffa52b8ee4da7e06b02747062898db7e678819526 tasje-dotdash.patch
|
||||
"
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
exec electron /usr/lib/freetube/app.asar "$@"
|
|
@ -1,12 +0,0 @@
|
|||
https://codeberg.org/selfisekai/electron_tasje/issues/27
|
||||
--- ./_scripts/ebuilder.config.js.orig
|
||||
+++ ./_scripts/ebuilder.config.js
|
||||
@@ -20,7 +20,7 @@
|
||||
files: [
|
||||
'_icons/iconColor.*',
|
||||
'icon.svg',
|
||||
- './dist/**/*',
|
||||
+ 'dist/**/*',
|
||||
'!dist/web/*',
|
||||
'!node_modules/**/*',
|
||||
],
|
373
backports/git/APKBUILD
Normal file
373
backports/git/APKBUILD
Normal file
|
@ -0,0 +1,373 @@
|
|||
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
|
||||
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
||||
#
|
||||
# secfixes:
|
||||
# 2.40.1-r0:
|
||||
# - CVE-2023-25652
|
||||
# - CVE-2023-25815
|
||||
# - CVE-2023-29007
|
||||
# 2.39.2-r0:
|
||||
# - CVE-2023-22490
|
||||
# - CVE-2023-23946
|
||||
# 2.39.1-r0:
|
||||
# - CVE-2022-41903
|
||||
# - CVE-2022-23521
|
||||
# 2.38.1-r0:
|
||||
# - CVE-2022-39253
|
||||
# - CVE-2022-39260
|
||||
# 2.37.1-r0:
|
||||
# - CVE-2022-29187
|
||||
# 2.35.2-r0:
|
||||
# - CVE-2022-24765
|
||||
# 2.30.2-r0:
|
||||
# - CVE-2021-21300
|
||||
# 2.26.2-r0:
|
||||
# - CVE-2020-11008
|
||||
# 2.26.1-r0:
|
||||
# - CVE-2020-5260
|
||||
# 2.24.1-r0:
|
||||
# - CVE-2019-1348
|
||||
# - CVE-2019-1349
|
||||
# - CVE-2019-1350
|
||||
# - CVE-2019-1351
|
||||
# - CVE-2019-1352
|
||||
# - CVE-2019-1353
|
||||
# - CVE-2019-1354
|
||||
# - CVE-2019-1387
|
||||
# - CVE-2019-19604
|
||||
# 2.19.1-r0:
|
||||
# - CVE-2018-17456
|
||||
# 2.17.1-r0:
|
||||
# - CVE-2018-11233
|
||||
# - CVE-2018-11235
|
||||
# 2.14.1-r0:
|
||||
# - CVE-2017-1000117
|
||||
# 0:
|
||||
# - CVE-2021-29468
|
||||
# - CVE-2021-46101
|
||||
|
||||
pkgname=git
|
||||
pkgver=2.41.0
|
||||
pkgrel=2
|
||||
pkgdesc="Distributed version control system"
|
||||
url="https://www.git-scm.com/"
|
||||
arch="all"
|
||||
license="GPL-2.0-only"
|
||||
makedepends="
|
||||
curl-dev
|
||||
expat-dev
|
||||
file
|
||||
openssl-dev>3
|
||||
pcre2-dev
|
||||
perl-dev
|
||||
perl-error
|
||||
xmlto
|
||||
zlib-dev
|
||||
"
|
||||
# note that order matters
|
||||
subpackages="
|
||||
$pkgname-dbg
|
||||
$pkgname-bash-completion
|
||||
$pkgname-prompt::noarch
|
||||
perl-$pkgname-svn:_perl_git_svn:noarch
|
||||
perl-$pkgname:_perl_git:noarch
|
||||
$pkgname-svn::noarch
|
||||
$pkgname-email
|
||||
$pkgname-fast-import:_fast_import:noarch
|
||||
$pkgname-cvs::noarch
|
||||
$pkgname-daemon
|
||||
$pkgname-daemon-openrc:daemon_openrc
|
||||
$pkgname-scalar
|
||||
$pkgname-gitweb::noarch
|
||||
$pkgname-subtree::noarch
|
||||
$pkgname-diff-highlight:diff_highlight:noarch
|
||||
$pkgname-perl:_git_perl:noarch
|
||||
"
|
||||
source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz
|
||||
git-daemon.initd
|
||||
git-daemon.confd
|
||||
fix-t4219-with-sticky-bit.patch
|
||||
"
|
||||
options="$options !check" # a few need updated for perl 5.38
|
||||
|
||||
_gitcoredir=/usr/libexec/git-core
|
||||
|
||||
if [ -z "$BOOTSTRAP" ]; then
|
||||
# we need tcl and tk to be built before git due to git-gui and gitk
|
||||
makedepends="$makedepends asciidoc python3-dev tcl tk libsecret-dev glib-dev"
|
||||
subpackages="$subpackages
|
||||
$pkgname-doc
|
||||
$pkgname-p4::noarch
|
||||
$pkgname-gui::noarch
|
||||
$pkgname-gitk::noarch
|
||||
$pkgname-subtree-doc:subtree_doc:noarch
|
||||
$pkgname-credential-libsecret:credential_libsecret
|
||||
"
|
||||
fi
|
||||
|
||||
case "$CARCH" in
|
||||
s390x)
|
||||
# todo: they fail with strange between-test email mismatches
|
||||
options="$options !check"
|
||||
;;
|
||||
esac
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
cat >> config.mak <<-EOF
|
||||
NO_GETTEXT=YesPlease
|
||||
NO_SVN_TESTS=YesPlease
|
||||
NO_REGEX=YesPlease
|
||||
NO_SYS_POLL_H=1
|
||||
ICONV_OMITS_BOM=Yes
|
||||
INSTALL_SYMLINKS=1
|
||||
CC=${CC:-cc}
|
||||
CXX=${CC:-c++}
|
||||
CFLAGS=$CFLAGS -flto=auto
|
||||
LDFLAGS=$LDFLAGS -flto=auto
|
||||
USE_LIBPCRE2=YesPlease
|
||||
PYTHON_PATH=/usr/bin/python3
|
||||
EOF
|
||||
|
||||
if [ -n "$BOOTSTRAP" ]; then
|
||||
cat >> config.mak <<-EOF
|
||||
NO_PYTHON=YesPlease
|
||||
NO_TCLTK=YesPlease
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
build() {
|
||||
make prefix=/usr \
|
||||
DESTDIR="$pkgdir" \
|
||||
perllibdir="$(_perl_config vendorlib)" \
|
||||
all
|
||||
|
||||
make -C contrib/subtree prefix=/usr DESTDIR="$pkgdir"
|
||||
make -C contrib/diff-highlight prefix=/usr DESTDIR="$pkgdir"
|
||||
|
||||
if [ -z "$BOOTSTRAP" ]; then
|
||||
# generate manpages outside of package()
|
||||
make prefix=/usr man
|
||||
|
||||
make prefix=/usr -C contrib/credential/libsecret
|
||||
fi
|
||||
}
|
||||
|
||||
check() {
|
||||
make -C t prefix=/usr DESTDIR="$pkgdir" \
|
||||
perlibdir="$(_perl_config vendorlib)" \
|
||||
all
|
||||
}
|
||||
|
||||
package() {
|
||||
if [ -z "$BOOTSTRAP" ]; then
|
||||
local install_man=install-man
|
||||
fi
|
||||
|
||||
make prefix=/usr \
|
||||
DESTDIR="$pkgdir" \
|
||||
INSTALLDIRS=vendor \
|
||||
perllibdir="$(_perl_config vendorlib)" \
|
||||
install \
|
||||
$install_man
|
||||
|
||||
make -C contrib/subtree install prefix=/usr DESTDIR="$pkgdir"
|
||||
|
||||
mkdir -p "$pkgdir"/var/git
|
||||
|
||||
install -Dm755 "$srcdir"/git-daemon.initd "$pkgdir"/etc/init.d/git-daemon
|
||||
install -Dm644 "$srcdir"/git-daemon.confd "$pkgdir"/etc/conf.d/git-daemon
|
||||
|
||||
install -Dm755 contrib/diff-highlight/diff-highlight -t "$pkgdir"/usr/bin/
|
||||
|
||||
install -Dm644 contrib/completion/git-completion.bash \
|
||||
"$pkgdir"/usr/share/bash-completion/completions/git
|
||||
|
||||
install -Dm644 contrib/completion/git-prompt.sh \
|
||||
"$pkgdir"/usr/share/git-core/git-prompt.sh
|
||||
|
||||
if [ -z "$BOOTSTRAP" ]; then
|
||||
install -Dm755 contrib/credential/libsecret/git-credential-libsecret "$pkgdir"/usr/libexec/git-core
|
||||
fi
|
||||
}
|
||||
|
||||
prompt() {
|
||||
pkgdesc="bash and zsh prompt integration for Git"
|
||||
depends="git=$pkgver-r$pkgrel"
|
||||
|
||||
amove usr/share/git-core/git-prompt.sh
|
||||
}
|
||||
|
||||
_perl_git_svn() {
|
||||
pkgdesc="Perl interface to Git::SVN"
|
||||
depends="git=$pkgver-r$pkgrel perl-git=$pkgver-r$pkgrel"
|
||||
|
||||
local vendorlib=$(_perl_config vendorlib)
|
||||
|
||||
amove $vendorlib/Git/SVN*
|
||||
}
|
||||
|
||||
_perl_git() {
|
||||
pkgdesc="Perl interface to Git"
|
||||
depends="git=$pkgver-r$pkgrel perl-error"
|
||||
|
||||
local i
|
||||
for i in "$(_perl_config vendorlib)" "$(_perl_config vendorarch)"; do
|
||||
[ -d "$pkgdir/$i" ] || continue
|
||||
amove $i
|
||||
done
|
||||
}
|
||||
|
||||
email() {
|
||||
pkgdesc="Git tools for sending email"
|
||||
depends="perl perl-git=$pkgver-r$pkgrel perl-net-smtp-ssl perl-authen-sasl"
|
||||
|
||||
amove $_gitcoredir/*email*
|
||||
amove $_gitcoredir/*imap*
|
||||
}
|
||||
|
||||
svn() {
|
||||
pkgdesc="Subversion support for git"
|
||||
depends="
|
||||
perl
|
||||
perl-git-svn=$pkgver-r$pkgrel
|
||||
perl-subversion
|
||||
perl-term-readkey
|
||||
"
|
||||
|
||||
amove $_gitcoredir/git-svn
|
||||
}
|
||||
|
||||
cvs() {
|
||||
pkgdesc="Git tools for importing CVS repositories"
|
||||
depends="perl perl-git=$pkgver-r$pkgrel cvs perl-dbd-sqlite"
|
||||
|
||||
amove usr/bin/git-cvs*
|
||||
amove $_gitcoredir/*cvs*
|
||||
}
|
||||
|
||||
_fast_import() {
|
||||
pkgdesc="Git backend for fast Git data importers"
|
||||
depends="git=$pkgver-r$pkgrel"
|
||||
|
||||
amove $_gitcoredir/git-fast-import
|
||||
}
|
||||
|
||||
p4() {
|
||||
pkgdesc="Git tools for working with Perforce depots"
|
||||
depends="git=$pkgver-r$pkgrel git-fast-import=$pkgver-r$pkgrel"
|
||||
|
||||
amove $_gitcoredir/*p4*
|
||||
amove $_gitcoredir/mergetools/*p4*
|
||||
}
|
||||
|
||||
daemon() {
|
||||
pkgdesc="Git protocol daemon"
|
||||
depends="git=$pkgver-r$pkgrel"
|
||||
|
||||
amove $_gitcoredir/git-daemon
|
||||
amove $_gitcoredir/git-http-backend
|
||||
amove $_gitcoredir/git-shell
|
||||
}
|
||||
|
||||
daemon_openrc() {
|
||||
pkgdesc="Git protocol daemon"
|
||||
|
||||
default_openrc
|
||||
|
||||
depends="git-daemon=$pkgver-r$pkgrel $depends_openrc"
|
||||
install_if="openrc $pkgname-daemon=$pkgver-r$pkgrel"
|
||||
}
|
||||
|
||||
gitweb() {
|
||||
pkgdesc="Simple web interface to git repositories"
|
||||
depends="git=$pkgver-r$pkgrel perl"
|
||||
|
||||
amove $_gitcoredir/git-instaweb
|
||||
amove usr/share/gitweb
|
||||
}
|
||||
|
||||
subtree() {
|
||||
depends="git=$pkgver-r$pkgrel"
|
||||
pkgdesc="Split git repository into subtrees"
|
||||
|
||||
amove $_gitcoredir/git-subtree
|
||||
}
|
||||
|
||||
subtree_doc() {
|
||||
pkgdesc="Split git repository into subtrees (documentation)"
|
||||
depends=""
|
||||
install_if="docs git-subtree=$pkgver-r$pkgrel"
|
||||
|
||||
cd "$builddir"/contrib/subtree
|
||||
make install-man prefix=/usr DESTDIR="$subpkgdir"
|
||||
gzip -9 "$subpkgdir"/usr/share/man/man1/git-subtree.1
|
||||
}
|
||||
|
||||
gui() {
|
||||
pkgdesc="GUI interface for git"
|
||||
depends="git=$pkgver-r$pkgrel tcl tk"
|
||||
|
||||
amove usr/share/git-gui
|
||||
amove $_gitcoredir/git-citool
|
||||
amove $_gitcoredir/git-gui
|
||||
amove $_gitcoredir/git-gui--askpass
|
||||
}
|
||||
|
||||
gitk() {
|
||||
pkgdesc="Gitk interface for git"
|
||||
depends="git=$pkgver-r$pkgrel tcl tk"
|
||||
|
||||
amove usr/share/gitk
|
||||
amove usr/bin/gitk
|
||||
}
|
||||
|
||||
diff_highlight() {
|
||||
pkgdesc="diff highlight for git"
|
||||
depends="git=$pkgver-r$pkgrel perl"
|
||||
|
||||
amove usr/bin/diff-highlight
|
||||
}
|
||||
|
||||
credential_libsecret() {
|
||||
pkgdesc="libsecret-based credential helper"
|
||||
depends="git=$pkgver-r$pkgrel"
|
||||
|
||||
amove usr/libexec/git-core/git-credential-libsecret
|
||||
}
|
||||
|
||||
scalar() {
|
||||
pkgdesc="Git scalar monorepo tool"
|
||||
depends="git=$pkgver-r$pkgrel"
|
||||
|
||||
amove usr/bin/scalar
|
||||
amove usr/libexec/git-core/scalar
|
||||
}
|
||||
|
||||
# catch-the-rest of stuff that needs perl
|
||||
_git_perl() {
|
||||
pkgdesc="Additional Git commands that requires perl"
|
||||
depends="git=$pkgver-r$pkgrel perl-git=$pkgver-r$pkgrel perl"
|
||||
install_if="git=$pkgver-r$pkgrel perl"
|
||||
|
||||
mkdir -p "$subpkgdir"/usr/lib
|
||||
cd "$pkgdir"
|
||||
find . -type f -print0 | xargs -0 file --mime-type | grep perl | cut -d: -f1 | while read -r f; do
|
||||
amove "$f"
|
||||
done
|
||||
find "$subpkgdir" -name perllocal.pod -delete
|
||||
}
|
||||
|
||||
# Prints values of the Config.pm variable $1.
|
||||
_perl_config() {
|
||||
perl -e "use Config; print \$Config{$1};"
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
a215bc6d89afbddd56adac901c24ea2b7f98a37bf6a6a2756893947012ffaa850e76247a3445a5ab13ab5a462f39986fec33eed086148aba5eb554dc1799fee0 git-2.41.0.tar.xz
|
||||
89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd
|
||||
fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd
|
||||
be5d568fc5b8b84c9afb97b31e471e41f32ccfe188eba0588ea0ef98b2d96c2ce4b2c1a3d70e88205aa4f6667f850b3f32c13bbb149ecddbf670344c162a4e25 fix-t4219-with-sticky-bit.patch
|
||||
"
|
48
backports/git/fix-t4219-with-sticky-bit.patch
Normal file
48
backports/git/fix-t4219-with-sticky-bit.patch
Normal file
|
@ -0,0 +1,48 @@
|
|||
The last test of t4129 creates a directory and expects its setgid bit
|
||||
(g+s) to be off. But this makes the test fail when the parent directory
|
||||
has the bit set, as setgid's state is inherited by newly created
|
||||
subdirectories. Make the test more robust by accepting the presence of
|
||||
the setgid bit on the created directory. We only allow 'S' (setgid on
|
||||
but no executable permission) and not 's' (setgid on with executable
|
||||
permission) because the previous 'umask 0077' shouldn't allow the second
|
||||
scenario to happen.
|
||||
|
||||
Note that only subdirectories inherit this bit, so we don't have to make
|
||||
the same change for the regular file that is also created by this test.
|
||||
But checking the permissions using grep instead of test_cmp makes the
|
||||
test a little simpler, so let's use it for the regular file as well.
|
||||
|
||||
Also note that the sticky bit (+t) and the setuid bit (u+s) are not
|
||||
inherited, so we don't have to worry about those.
|
||||
|
||||
Reported-by: Kevin Daudt <me@ikke.info>
|
||||
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
|
||||
---
|
||||
t/t4129-apply-samemode.sh | 10 ++++------
|
||||
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/t/t4129-apply-samemode.sh b/t/t4129-apply-samemode.sh
|
||||
index 41818d8315..3818398ca9 100755
|
||||
--- a/t/t4129-apply-samemode.sh
|
||||
+++ b/t/t4129-apply-samemode.sh
|
||||
@@ -90,12 +90,10 @@ test_expect_success POSIXPERM 'do not use core.sharedRepository for working tree
|
||||
rm -rf d f1 &&
|
||||
git apply patch-f1-and-f2.txt &&
|
||||
|
||||
- echo "-rw-------" >f1_mode.expected &&
|
||||
- echo "drwx------" >d_mode.expected &&
|
||||
- test_modebits f1 >f1_mode.actual &&
|
||||
- test_modebits d >d_mode.actual &&
|
||||
- test_cmp f1_mode.expected f1_mode.actual &&
|
||||
- test_cmp d_mode.expected d_mode.actual
|
||||
+ test_modebits f1 >f1_mode &&
|
||||
+ test_modebits d >d_mode &&
|
||||
+ grep "^-rw-------$" f1_mode &&
|
||||
+ grep "^drwx--[-S]---$" d_mode
|
||||
)
|
||||
'
|
||||
|
||||
--
|
||||
2.29.2
|
||||
|
||||
|
19
backports/git/git-daemon.confd
Normal file
19
backports/git/git-daemon.confd
Normal file
|
@ -0,0 +1,19 @@
|
|||
# conf.d file for git-daemon
|
||||
#
|
||||
# Please check man 1 git-daemon for more information about the options
|
||||
# git-daemon accepts. You MUST edit this to include your repositories you wish
|
||||
# to serve.
|
||||
#
|
||||
# Some of the meaningful options are:
|
||||
# --syslog --- Enables syslog logging
|
||||
# --verbose --- Enables verbose logging
|
||||
# --export-all --- Exports all repositories
|
||||
# --port=XXXX --- Starts in port XXXX instead of 9418
|
||||
#
|
||||
GITDAEMON_OPTS="--syslog --base-path=/var/git"
|
||||
|
||||
# To run an anonymous git safely, the following user should be able to only
|
||||
# read your Git repositories. It should not be able to write to anywhere on
|
||||
# your system, esp. not the repositories.
|
||||
GIT_USER="nobody"
|
||||
GIT_GROUP="nobody"
|
13
backports/git/git-daemon.initd
Normal file
13
backports/git/git-daemon.initd
Normal file
|
@ -0,0 +1,13 @@
|
|||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Id$
|
||||
|
||||
pidfile="/var/run/git-daemon.pid"
|
||||
command="/usr/bin/git"
|
||||
command_args="daemon ${GITDAEMON_OPTS}"
|
||||
start_stop_daemon_args="-e HOME= -e XDG_CONFIG_HOME= -b -m -p ${pidfile} -u ${GIT_USER:-nobody}:${GIT_GROUP:-nobody}"
|
||||
|
||||
depend() {
|
||||
use logger
|
||||
}
|
74
backports/kicad/APKBUILD
Normal file
74
backports/kicad/APKBUILD
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
||||
# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
||||
pkgname=kicad
|
||||
pkgver=7.0.2
|
||||
pkgrel=0
|
||||
pkgdesc="A Cross Platform and Open Source Electronics Design Automation Suite"
|
||||
url="https://www.kicad.org/"
|
||||
# No support for s390x/riscv64 in libcontext (shipped with kicad)
|
||||
# 32-bit arm: memory alignment access error in tests
|
||||
arch="all !armhf !armv7 !riscv64 !s390x"
|
||||
license="GPL-3.0-or-later"
|
||||
makedepends="
|
||||
boost-dev
|
||||
cairo-dev
|
||||
chrpath
|
||||
cmake
|
||||
curl-dev
|
||||
glew-dev
|
||||
glm-dev
|
||||
ngspice-dev
|
||||
opencascade-dev
|
||||
py3-wxpython
|
||||
python3-dev
|
||||
samurai
|
||||
swig
|
||||
unixodbc-dev
|
||||
wxwidgets-dev
|
||||
zlib-dev
|
||||
"
|
||||
depends="python3"
|
||||
subpackages="$pkgname-doc"
|
||||
source="
|
||||
https://gitlab.com/kicad/code/kicad/-/archive/$pkgver/kicad-$pkgver.tar.gz
|
||||
"
|
||||
|
||||
provides="$pkgname-opencascade=$pkgver-r$pkgrel"
|
||||
replaces="$pkgname-opencascade"
|
||||
|
||||
build() {
|
||||
CFLAGS="$CFLAGS -O2" \
|
||||
CXXFLAGS="$CXXFLAGS -O2" \
|
||||
cmake -B build -G Ninja -Wno-dev \
|
||||
-DCMAKE_BUILD_TYPE=None \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
-DKICAD_USE_EGL=ON \
|
||||
-DKICAD_SCRIPTING_WXPYTHON=ON \
|
||||
-DKICAD_USE_BUNDLED_GLEW=ON
|
||||
# build order workaround
|
||||
cmake --build build --target common/pcb_lexer.h
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
check() {
|
||||
ctest --test-dir build --output-on-failure \
|
||||
-E qa_eeschema
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
|
||||
local sitedir=$(python3 -c "import site; print(site.getsitepackages()[0])")
|
||||
chrpath -d "$pkgdir/$sitedir"/_pcbnew.so
|
||||
}
|
||||
|
||||
doc() {
|
||||
default_doc
|
||||
|
||||
amove usr/share/kicad/demos
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
8ad091d23b21f6b4cadede345a65799f83b995eb96ad0a66a85c5360002650634e5cbfc899e3e73b068cc0494445f940557eb280d8ec298f71519596e1350728 kicad-7.0.2.tar.gz
|
||||
"
|
46
backports/lib3mf/APKBUILD
Normal file
46
backports/lib3mf/APKBUILD
Normal file
|
@ -0,0 +1,46 @@
|
|||
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
||||
pkgname=lib3mf
|
||||
pkgver=2.2.0
|
||||
pkgrel=0
|
||||
pkgdesc="A C++ implementation of the 3D Manufacturing Format file standard"
|
||||
url="https://github.com/3MFConsortium/lib3mf"
|
||||
# "Generating hourglass API bindings and implementation stub" fail on ARM, s390x, and ppc64le
|
||||
arch="all !armv7 !armhf !aarch64 !s390x !ppc64le"
|
||||
license="BSD-2-Clause"
|
||||
subpackages="$pkgname-dev"
|
||||
makedepends="
|
||||
cmake
|
||||
libzip-dev
|
||||
ninja
|
||||
util-linux-dev
|
||||
zlib-dev
|
||||
"
|
||||
source="$pkgname-$pkgver.tar.gz::https://github.com/3MFConsortium/lib3mf/archive/v$pkgver.tar.gz"
|
||||
options="!check" # Unit tests requires source code of googletest, which is git submodule but not included in the release
|
||||
|
||||
build() {
|
||||
cmake -B build \
|
||||
-G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=include/lib3mf \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
-DUSE_INCLUDED_ZLIB=OFF \
|
||||
-DUSE_INCLUDED_LIBZIP=OFF \
|
||||
-DLIB3MF_TESTS=FALSE
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
# fix Cflags in lib3mf.pc
|
||||
sed -e 's!Cflags: -I${includedir}!Cflags: -I${includedir} -I${includedir}/Bindings/C -I${includedir}/Bindings/Cpp!' \
|
||||
-i "$pkgdir"/usr/lib/pkgconfig/lib3mf.pc
|
||||
|
||||
# some packages expect lib3MF.pc instead of lib3mf.pc
|
||||
ln -s lib3mf.pc "$pkgdir"/usr/lib/pkgconfig/lib3MF.pc
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
2a9ee92312396b8966967a7ed696c58c69a77438f94432ad071659adc8c9d12fba34a3cf3d8c8d3ad3b26c12c9a89f4d8645e6f396987dc05b04952b004a1f07 lib3mf-2.2.0.tar.gz
|
||||
"
|
|
@ -2,7 +2,7 @@
|
|||
# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
|
||||
pkgname=libmedc
|
||||
pkgver=4.1.1
|
||||
pkgrel=3
|
||||
pkgrel=0
|
||||
pkgdesc="Open source library for numerical simulation"
|
||||
url="https://www.salome-platform.org/"
|
||||
arch="all"
|
||||
|
@ -11,11 +11,11 @@ makedepends="cmake hdf5-dev swig python3-dev samurai"
|
|||
options="!check" #test suite is nonfunctional with python bindings
|
||||
subpackages="$pkgname-dev $pkgname-doc $pkgname-python-pyc $pkgname-python:_py"
|
||||
source="
|
||||
https://files.salome-platform.org/Salome/medfile/med-$pkgver.tar.gz
|
||||
https://ftp.kaist.ac.kr/macports/distfiles/libmed/med-$pkgver.tar.gz
|
||||
hdf5.patch
|
||||
cmake-config-dir.patch
|
||||
"
|
||||
builddir="$srcdir/med-$pkgver"
|
||||
builddir="$srcdir/med-${pkgver}_SRC"
|
||||
|
||||
build() {
|
||||
cmake -B build -G Ninja \
|
||||
|
@ -37,7 +37,7 @@ _py() {
|
|||
}
|
||||
|
||||
sha512sums="
|
||||
f211fa82750a7cc935baa3a50a55d16e40117a0f2254b482492ba8396d82781ca84960995da7a16b2b5be0b93ce76368bf4b311bb8af0e5f0243e7051c9c554c med-4.1.1.tar.gz
|
||||
8917e7ecfe30e1259b0927c8e1c3d6efd86ed2386813f6d90217bd95589199478e587f0815031ab65cacf7901a30b77a6307414f9073caffe6e7f013e710d768 med-4.1.1.tar.gz
|
||||
68d9291e73a68d674081314028c0fce7bbd4a7b78b93b7e5078117ce62f2d07318bc33ec95091ce677148ec3926c1ce653d0760c34e74b29257a7be59210f040 hdf5.patch
|
||||
8d0f58cd67d205fbacaff0e6da76e2ee5473457b478ede13a551ebe5853c0716c7406b74c3792e1ace33a34d352fccca8dd2940f063a7c060a12529d060a991a cmake-config-dir.patch
|
||||
"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Maintainer: Anjandev Momi <anjan@momi.ca>
|
||||
pkgname=libnest2d
|
||||
pkgver=0.4
|
||||
pkgrel=6
|
||||
pkgrel=5
|
||||
pkgdesc="2D irregular bin packaging and nesting library written in modern C++"
|
||||
url="https://github.com/tamasmeszaros/libnest2d"
|
||||
arch="noarch"
|
||||
|
|
4
backports/libspatialindex/APKBUILD
Normal file → Executable file
4
backports/libspatialindex/APKBUILD
Normal file → Executable file
|
@ -3,7 +3,7 @@
|
|||
pkgname=libspatialindex
|
||||
pkgver=0_git20210205
|
||||
_commit=8ee223632f95c81f49f5eb2d547ad973475c4601
|
||||
pkgrel=1
|
||||
pkgrel=0
|
||||
pkgdesc="extensible framework for robust spatial indexing methods"
|
||||
url="https://libspatialindex.org/"
|
||||
arch="all"
|
||||
|
@ -15,7 +15,7 @@ builddir="$srcdir/$pkgname-$_commit"
|
|||
|
||||
build() {
|
||||
cmake -B build \
|
||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||
-DCMAKE_BUILD_TYPE=None \
|
||||
-DCMAKE_PREFIX_PATH=/usr \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DBUILD_TESTING=ON
|
||||
|
|
44
backports/libspnav/APKBUILD
Normal file
44
backports/libspnav/APKBUILD
Normal file
|
@ -0,0 +1,44 @@
|
|||
# Contributor: guddaff <guddaff@protonmail.com>
|
||||
# Maintainer: guddaff <guddaff@protonmail.com>
|
||||
pkgname=libspnav
|
||||
pkgver=1.1
|
||||
pkgrel=0
|
||||
pkgdesc="library for communicating with spacenavd or 3dxsrv"
|
||||
url="https://spacenav.sourceforge.net/"
|
||||
arch="all"
|
||||
license="BSD-3-Clause"
|
||||
options="!check" #no checks
|
||||
makedepends="libx11-dev"
|
||||
subpackages="$pkgname-static $pkgname-dev"
|
||||
source="https://github.com/FreeSpacenav/libspnav/releases/download/v$pkgver/libspnav-$pkgver.tar.gz
|
||||
configure.patch
|
||||
"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
sed -i "s/@PKGVERSION@/$pkgver/" "$builddir"/configure
|
||||
}
|
||||
|
||||
build() {
|
||||
./configure \
|
||||
--build=$CBUILD \
|
||||
--host=$CHOST \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--mandir=/usr/share/man \
|
||||
--localstatedir=/var
|
||||
make
|
||||
}
|
||||
|
||||
check() {
|
||||
make check
|
||||
}
|
||||
|
||||
package() {
|
||||
make DESTDIR="$pkgdir" install
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
94770d9449dd02ade041d3589bcae7664fa990c4a4feca7b2b1e6542b65aa7073305595310b9e639f10716cf15aaad913e57496fb79bdd4dba5bf703ec8299ab libspnav-1.1.tar.gz
|
||||
1536a172843459c1f26806ad774194afddf93baca0421d0803337eb90b6dd4bcc9dc9b6ebcb1a4e7de0c6f52b16da51538d302a07d57f0625a3a3311a14327f9 configure.patch
|
||||
"
|
22
backports/libspnav/configure.patch
Normal file
22
backports/libspnav/configure.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6,18 +6,8 @@
|
||||
OPT=yes
|
||||
DBG=yes
|
||||
X11=yes
|
||||
-VER=`git describe --tags 2>/dev/null`
|
||||
+VER="@PKGVERSION@"
|
||||
|
||||
-if [ -z "$VER" ]; then
|
||||
- VER=`git rev-parse --short HEAD 2>/dev/null`
|
||||
- if [ -z "$VER" ]; then
|
||||
- VER=v`pwd | grep 'libspnav-[0-9]\+\.' | sed 's/.*libspnav-\(\([0-9]\+\.\)\+[0-9]\+\).*$/\1/'`
|
||||
- if [ $VER = v ]; then
|
||||
- VER='<unknown version>'
|
||||
- fi
|
||||
- fi
|
||||
-fi
|
||||
-
|
||||
echo "configuring libspnav - $VER"
|
||||
|
||||
srcdir="`dirname "$0"`"
|
|
@ -1,93 +0,0 @@
|
|||
# Contributor: Rogério da Silva Yokomizo <me@ro.ger.io>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Maintainer: Rogério da Silva Yokomizo <me@ro.ger.io>
|
||||
pkgname=looking-glass
|
||||
_gittag=b7_git20240607
|
||||
pkgver=7b_git20240607
|
||||
pkgrel=0
|
||||
pkgdesc="Allows the use of a KVM configured for VGA PCI Pass-through without an attached physical monitor, keyboard or mouse"
|
||||
url="https://looking-glass.io/"
|
||||
arch="x86_64"
|
||||
license="GPL-2.0-or-later"
|
||||
makedepends="
|
||||
cmake
|
||||
fontconfig-dev
|
||||
libsamplerate-dev
|
||||
libx11-dev
|
||||
libxcursor-dev
|
||||
libxfixes-dev
|
||||
libxi-dev
|
||||
libxinerama-dev
|
||||
libxkbcommon-dev
|
||||
libxpresent-dev
|
||||
libxscrnsaver-dev
|
||||
nettle-dev
|
||||
obs-studio-dev
|
||||
pipewire-dev
|
||||
pulseaudio-dev
|
||||
samurai
|
||||
spice-dev
|
||||
wayland-dev
|
||||
wayland-protocols
|
||||
"
|
||||
source="$pkgname-$_gittag.tar.gz::https://lab.ilot.io/mirrors/looking-glass/-/releases/$_gittag/downloads/tarball/looking-glass-$_gittag.tar.gz
|
||||
missing-includes.patch
|
||||
obs-plugins-lib.patch
|
||||
werror.patch
|
||||
"
|
||||
subpackages="$pkgname-obs $pkgname-module"
|
||||
builddir="$srcdir/$pkgname-$_gittag"
|
||||
options="!check" # There are no tests nor --version.
|
||||
|
||||
build() {
|
||||
cmake -S client -B build-client -G Ninja \
|
||||
-DENABLE_BACKTRACE=OFF \
|
||||
-DOPTIMIZE_FOR_NATIVE=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr
|
||||
|
||||
cmake -S obs -B build-obs -G Ninja \
|
||||
-DENABLE_BACKTRACE=OFF \
|
||||
-DOPTIMIZE_FOR_NATIVE=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr
|
||||
|
||||
cmake --build build-client
|
||||
cmake --build build-obs
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build-client
|
||||
DESTDIR="$pkgdir" cmake --install build-obs
|
||||
}
|
||||
|
||||
module() {
|
||||
pkgdesc="Looking Glass kernel module (AKMS)"
|
||||
depends="akms"
|
||||
install_if="looking-glass=$pkgver-r$pkgrel"
|
||||
_modver=$(awk -F "=" '{if($1=="PACKAGE_VERSION"){print $2}}' src/looking-glass-B6/module/dkms.conf | tr -d '"')
|
||||
|
||||
install -Dm644 "$builddir"/module/Makefile "$subpkgdir"/usr/src/looking-glass/Makefile
|
||||
install -Dm644 "$builddir"/module/kvmfr* "$subpkgdir"/usr/src/looking-glass/.
|
||||
|
||||
cat ->> "$subpkgdir"/usr/src/looking-glass/AKMBUILD <<EOF
|
||||
modname=kvmfr
|
||||
modver=$pkgver
|
||||
built_modules='kvmfr.ko'
|
||||
EOF
|
||||
|
||||
chmod -R u=rwX,go=rX-w "$subpkgdir"/usr/src/looking-glass
|
||||
mkdir -p "$subpkgdir"/etc/udev/rules.d
|
||||
echo 'SUBSYSTEM=="kvmfr", OWNER="root", GROUP="kvm", MODE="0660"' > "$subpkgdir"/etc/udev/rules.d/99-kvmfr.rules
|
||||
|
||||
}
|
||||
|
||||
obs() {
|
||||
pkgdesc="$pkgdesc (obs plugin)"
|
||||
amove usr/lib/obs-plugins
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
959f49c91dc7bb06dfae890547bfbd1c02bd4154f4ba1c898a12d15a3579658d65fcb9fc4b951c04180e17fc9151e551858e0fb60f20e3f1a72d19b86c7dc3db looking-glass-b7_git20240607.tar.gz
|
||||
6d2449764a8316dd3c1b5cc0aa552671068f89ed2f95297f3c5256af8529b93e5ec7af8f979bd2e744fd09b11063e8a93f3ed26284f0e49294e467ca10f6e772 missing-includes.patch
|
||||
33c5463412a16691f47d7833ebf81d7cf20c560a077dca141dcc9f02a5d6dfb676e483835f39a06012b114be9f509dda4614fe253bb1c72a0142e82dc265a5ca obs-plugins-lib.patch
|
||||
b952d1fd284aed15bcfe7990f160dec3a4565fb5833ce339920f62de6bb46fbc09265a0a79fe80d212eecc6a1813614e1e193a8846c37e2afd18431dc3a89ca4 werror.patch
|
||||
"
|
|
@ -1,2 +0,0 @@
|
|||
#!/bin/sh
|
||||
exec /usr/sbin/akms uninstall kvmfr
|
|
@ -1,92 +0,0 @@
|
|||
--- a/repos/PureSpice/src/agent.c
|
||||
+++ b/repos/PureSpice/src/agent.c
|
||||
@@ -31,6 +31,7 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
--- a/repos/PureSpice/src/channel_cursor.c
|
||||
+++ b/repos/PureSpice/src/channel_cursor.c
|
||||
@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
#include "channel_cursor.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#include "messages.h"
|
||||
|
||||
--- a/repos/PureSpice/src/channel_display.c
|
||||
+++ b/repos/PureSpice/src/channel_display.c
|
||||
@@ -19,6 +19,7 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
|
||||
#include "purespice.h"
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
#include "ps.h"
|
||||
#include "log.h"
|
||||
--- a/repos/PureSpice/src/channel_inputs.c
|
||||
+++ b/repos/PureSpice/src/channel_inputs.c
|
||||
@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
#include "messages.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
const SpiceLinkHeader * channelInputs_getConnectPacket(void)
|
||||
{
|
||||
--- a/repos/PureSpice/src/channel_main.c
|
||||
+++ b/repos/PureSpice/src/channel_main.c
|
||||
@@ -24,6 +24,7 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
#include "messages.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
|
||||
struct ChannelMain
|
||||
{
|
||||
--- a/repos/PureSpice/src/channel_playback.c
|
||||
+++ b/repos/PureSpice/src/channel_playback.c
|
||||
@@ -26,6 +26,8 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
|
||||
#include "messages.h"
|
||||
|
||||
+#include <string.h>
|
||||
+
|
||||
const SpiceLinkHeader * channelPlayback_getConnectPacket(void)
|
||||
{
|
||||
typedef struct
|
||||
--- a/repos/PureSpice/src/channel_record.c
|
||||
+++ b/repos/PureSpice/src/channel_record.c
|
||||
@@ -26,6 +26,8 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
|
||||
#include "messages.h"
|
||||
|
||||
+#include <string.h>
|
||||
+
|
||||
const SpiceLinkHeader * channelRecord_getConnectPacket(void)
|
||||
{
|
||||
typedef struct
|
||||
--- a/repos/PureSpice/src/log.c
|
||||
+++ b/repos/PureSpice/src/log.c
|
||||
@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
+#include <string.h>
|
||||
|
||||
static void log_stdout(const char * file, unsigned int line,
|
||||
const char * function, const char * format, ...)
|
||||
--- a/repos/PureSpice/src/ps.c
|
||||
+++ b/repos/PureSpice/src/ps.c
|
||||
@@ -37,6 +37,7 @@ Place, Suite 330, Boston, MA 02111-1307
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From e32b292cc1ba089db6ed28e4d5eb0fc8cc4c2235 Mon Sep 17 00:00:00 2001
|
||||
From: esi <git@esibun.net>
|
||||
Date: Fri, 12 May 2023 16:28:01 -0400
|
||||
Subject: [PATCH] [module] Fix build on Linux 6.4 (fixes #1075)
|
||||
|
||||
---
|
||||
module/dkms.conf | 2 +-
|
||||
module/kvmfr.c | 4 ++++
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/module/kvmfr.c b/module/kvmfr.c
|
||||
index ca0cca685..c711e000e 100644
|
||||
--- a/module/kvmfr.c
|
||||
+++ b/module/kvmfr.c
|
||||
@@ -539,7 +539,11 @@ static int __init kvmfr_module_init(void)
|
||||
if (kvmfr->major < 0)
|
||||
goto out_free;
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)
|
||||
kvmfr->pClass = class_create(THIS_MODULE, KVMFR_DEV_NAME);
|
||||
+#else
|
||||
+ kvmfr->pClass = class_create(KVMFR_DEV_NAME);
|
||||
+#endif
|
||||
if (IS_ERR(kvmfr->pClass))
|
||||
goto out_unreg;
|
|
@ -1,23 +0,0 @@
|
|||
From 7305ce36af211220419eeab302ff28793d515df2 Mon Sep 17 00:00:00 2001
|
||||
From: Geoffrey McRae <geoff@hostfission.com>
|
||||
Date: Fri, 7 Jun 2024 19:01:38 +1000
|
||||
Subject: [PATCH] [module] fix build on linux 6.10
|
||||
|
||||
Fixes #1124 - Thanks @pongo1231
|
||||
---
|
||||
module/dkms.conf | 2 +-
|
||||
module/kvmfr.c | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/module/kvmfr.c b/module/kvmfr.c
|
||||
index b5acd18de..c99a5d79c 100644
|
||||
--- a/module/kvmfr.c
|
||||
+++ b/module/kvmfr.c
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <linux/highmem.h>
|
||||
#include <linux/memremap.h>
|
||||
#include <linux/version.h>
|
||||
+#include <linux/vmalloc.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
--- a/obs/CMakeLists.txt
|
||||
+++ b/obs/CMakeLists.txt
|
||||
@@ -84,7 +84,8 @@ target_link_libraries(looking-glass-obs
|
||||
)
|
||||
|
||||
install(TARGETS looking-glass-obs
|
||||
- LIBRARY DESTINATION ${OBS_PLUGIN_PREFIX}/${CMAKE_PROJECT_NAME}/bin/${OBS_PLUGIN_DIR}
|
||||
+ # LIBRARY DESTINATION ${OBS_PLUGIN_PREFIX}/${CMAKE_PROJECT_NAME}/bin/${OBS_PLUGIN_DIR}
|
||||
+ LIBRARY DESTINATION /usr/lib/obs-plugins
|
||||
)
|
||||
|
||||
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
|
|
@ -1,24 +0,0 @@
|
|||
diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
|
||||
index 836f814..7047365 100644
|
||||
--- a/client/CMakeLists.txt
|
||||
+++ b/client/CMakeLists.txt
|
||||
@@ -68,7 +68,6 @@ add_compile_options(
|
||||
"-Wno-unused-parameter"
|
||||
"$<$<COMPILE_LANGUAGE:C>:-Wstrict-prototypes>"
|
||||
"$<$<C_COMPILER_ID:GNU>:-Wimplicit-fallthrough=2>"
|
||||
- "-Werror"
|
||||
"-Wfatal-errors"
|
||||
"-ffast-math"
|
||||
"-fdata-sections"
|
||||
diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt
|
||||
index 0491e65..60b37ff 100644
|
||||
--- a/obs/CMakeLists.txt
|
||||
+++ b/obs/CMakeLists.txt
|
||||
@@ -18,7 +18,6 @@ add_feature_info(ENABLE_BACKTRACE ENABLE_BACKTRACE "Backtrace support.")
|
||||
|
||||
add_compile_options(
|
||||
"-Wall"
|
||||
- "-Werror"
|
||||
"-Wfatal-errors"
|
||||
"-ffast-math"
|
||||
"-fdata-sections"
|
|
@ -1,45 +0,0 @@
|
|||
# Contributor: Quillith <tag.quill@protonmail.com>
|
||||
# Maintainer: Quillith <tag.quill@protonmail.com>
|
||||
pkgname=nb
|
||||
pkgver=7.12.1
|
||||
pkgrel=0
|
||||
pkgdesc="Command line note-taking, bookmarking, archiving, and knowledge base application"
|
||||
url="https://github.com/xwmx/nb"
|
||||
arch="noarch"
|
||||
license="AGPL-3.0-or-later"
|
||||
depends="bash git"
|
||||
subpackages="
|
||||
$pkgname-doc
|
||||
$pkgname-full
|
||||
$pkgname-bash-completion
|
||||
$pkgname-fish-completion
|
||||
$pkgname-zsh-completion
|
||||
"
|
||||
source="$pkgname-$pkgver.tar.gz::https://github.com/xwmx/nb/archive/$pkgver.tar.gz"
|
||||
options="!check" # no tests
|
||||
|
||||
package() {
|
||||
install -Dm755 nb "$pkgdir/usr/bin/nb"
|
||||
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/nb/LICENSE"
|
||||
install -Dm644 README.md "$pkgdir/usr/share/doc/nb/README.md"
|
||||
# Completions
|
||||
install -Dm644 etc/nb-completion.bash "$pkgdir/usr/share/bash-completion/completions/nb"
|
||||
install -Dm644 etc/nb-completion.fish "$pkgdir/usr/share/fish/vendor_completions.d/nb.fish"
|
||||
install -Dm644 etc/nb-completion.zsh "$pkgdir/usr/share/zsh/site-functions/_nb"
|
||||
# Plugins
|
||||
install -Dm644 -t "$pkgdir/usr/share/nb/plugins/" plugins/*
|
||||
# Extras (prefixed with "nb-")
|
||||
for extra in bookmark notes; do
|
||||
install -Dm0755 "bin/$extra" "$pkgdir/usr/bin/nb-$extra"
|
||||
done
|
||||
}
|
||||
|
||||
full() {
|
||||
pkgdesc="More utilities that integrate with nb"
|
||||
depends="$pkgname=$pkgver-r$pkgrel bat nmap-ncat pandoc ripgrep tig w3m"
|
||||
mkdir -p "$subpkgdir"
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
ed3d41a809e39a19711c6c97c38216f17f144b8b474eb94aec4134f9756da03440073f3f6557acf8f7959d3d9fba6392d1d5f59e8b94d5269b7336b11353457e nb-7.12.1.tar.gz
|
||||
"
|
70
backports/ngspice/APKBUILD
Normal file
70
backports/ngspice/APKBUILD
Normal file
|
@ -0,0 +1,70 @@
|
|||
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
||||
pkgname=ngspice
|
||||
pkgver=37
|
||||
pkgrel=0
|
||||
pkgdesc="open source spice simulator for electric and electronic circuits"
|
||||
url="https://ngspice.sourceforge.net/"
|
||||
arch="all"
|
||||
license="BSD-3-Clause"
|
||||
makedepends="libxaw-dev libedit-dev readline-dev"
|
||||
depends="python3"
|
||||
subpackages="$pkgname-doc $pkgname-dev"
|
||||
source="
|
||||
https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/old-releases/$pkgver/ngspice-$pkgver.tar.gz
|
||||
$pkgname.pc
|
||||
"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
sed -e "s/@PKGVER@/$pkgver/" -i "$srcdir"/$pkgname.pc
|
||||
|
||||
# a lot of tests fail because of unexpected "No compatibility mode selected!"
|
||||
# this replaces them with no-op makefiles
|
||||
echo -e "check: ;\nall: ;\ninstall: ;" > tests/regression/Makefile.in
|
||||
echo -e "check: ;\nall: ;\ninstall: ;" > tests/xspice/Makefile.in
|
||||
}
|
||||
|
||||
build() {
|
||||
./configure \
|
||||
--prefix=/usr \
|
||||
--mandir=/usr/share/man \
|
||||
--infodir=/usr/share/info \
|
||||
--with-readline=yes \
|
||||
--enable-xspice \
|
||||
--enable-cider \
|
||||
--enable-openmp \
|
||||
--with-ngshared
|
||||
|
||||
make
|
||||
|
||||
# build the binary ngspice, which is only build without --with-ngshared
|
||||
|
||||
./configure \
|
||||
--prefix=/usr \
|
||||
--mandir=/usr/share/man \
|
||||
--infodir=/usr/share/info \
|
||||
--with-readline=yes \
|
||||
--enable-xspice \
|
||||
--enable-cider \
|
||||
--enable-openmp
|
||||
|
||||
make
|
||||
}
|
||||
|
||||
check() {
|
||||
make check
|
||||
}
|
||||
|
||||
package() {
|
||||
make DESTDIR="$pkgdir" install
|
||||
install -Dm755 src/.libs/libngspice.so.0.0.4 "$pkgdir"/usr/lib/libngspice.so.0.0.4
|
||||
install -Dm644 src/include/ngspice/sharedspice.h "$pkgdir"/usr/include/ngspice/sharedspice.h
|
||||
ln -s "libngspice.so.0.0.4" "$pkgdir/usr/lib/libngspice.so.0"
|
||||
ln -s "libngspice.so.0.0.4" "$pkgdir/usr/lib/libngspice.so"
|
||||
install -Dm644 "$srcdir"/ngspice.pc "$pkgdir"/usr/lib/pkgconfig/ngspice.pc
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
d49f7e78d3dd17ac8ea03d79dfbe8a9cf57c012395285cc0c0cf379e0c0c81f11cad68d5366dc2d2478959ed197e4d43380fbc15baf44f987f20ad00f1ee04ca ngspice-37.tar.gz
|
||||
211321d3c56f06a58ce500807284657294beef1e712c2ce3e9b2253e622c6882cf1f1233fa18427902cac5bd9d31f48c7be64a03bc6e2705d3f10f4752c41b7c ngspice.pc
|
||||
"
|
12
backports/ngspice/ngspice.pc
Normal file
12
backports/ngspice/ngspice.pc
Normal file
|
@ -0,0 +1,12 @@
|
|||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/lib
|
||||
includedir=${prefix}/include/ngspice
|
||||
modules=1
|
||||
|
||||
Name: ngspice
|
||||
Version: @PKGVER@
|
||||
Description: Open Source Spice Simulator for Electric and Electronic Circuits.
|
||||
Requires:
|
||||
Libs: -L${libdir} -lngspice
|
||||
Cflags: -I${includedir}
|
70
backports/opencascade/APKBUILD
Normal file
70
backports/opencascade/APKBUILD
Normal file
|
@ -0,0 +1,70 @@
|
|||
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
||||
# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
||||
pkgname=opencascade
|
||||
pkgver=7.6.3
|
||||
pkgrel=1
|
||||
pkgdesc="An SDK for development of applications dealing with 3D CAD data"
|
||||
url="https://dev.opencascade.org/"
|
||||
# s390x blocked by vtk -> netcdf
|
||||
arch="all !s390x"
|
||||
license="LGPL-2.1-only"
|
||||
makedepends="
|
||||
cmake
|
||||
doxygen
|
||||
freeimage-dev
|
||||
freetype-dev
|
||||
libtbb
|
||||
libtbb-dev
|
||||
libxi-dev
|
||||
libxmu-dev
|
||||
mesa-dev
|
||||
ninja
|
||||
tk
|
||||
tk-dev
|
||||
vtk-dev
|
||||
"
|
||||
subpackages="$pkgname-doc $pkgname-dev"
|
||||
# remove updatecache on next update
|
||||
source="$pkgname-$pkgver-updatecache.tar.gz::https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V${pkgver//./_}.tar.gz
|
||||
no_mallinfo.patch
|
||||
no_feenableexcept.patch
|
||||
cmake_fix_install_dir.patch
|
||||
cmake_add_buildtype_none.patch
|
||||
no_backtrace.patch
|
||||
fix-tbb-2021.patch
|
||||
x11vtkconflict.patch
|
||||
"
|
||||
builddir="$srcdir/OCCT-${pkgver//./_}"
|
||||
options="!check" # No tests provided :-/
|
||||
|
||||
build() {
|
||||
# Disabling ffmpeg for now, as VTK already uses ffmpeg in version 5, while OCC only
|
||||
# builds with ffmpeg4 right now. vtk-dev depends on ffmpeg-dev which conflics with
|
||||
# ffmpeg4-dev. Once patched to build with ffmpeg-dev (not ffmpeg4-dev), ffmpeg support
|
||||
# should be re-enabled.
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DUSE_GL2PS=OFF \
|
||||
-DUSE_FREEIMAGE=ON \
|
||||
-DUSE_FFMPEG=OFF \
|
||||
-DUSE_VTK=ON \
|
||||
-DUSE_TBB=ON \
|
||||
-D3RDPARTY_VTK_INCLUDE_DIR=/usr/include/vtk-9.2/
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
bdcdc79ce5bf1df4d7a4b90a4ce33fabf5fefeb75f33d58c571014c5cff9e4e2d444a518b741002654e29f0b50babad852b10636c3c888afb49628e1752abca7 opencascade-7.6.3-updatecache.tar.gz
|
||||
e04cb898ec16c57ea5f2e9e79f6616153b7f6e4ddcad815f5d28898a692e26e1054a8f3321e6ee8616a915b10d45927f5e596c4f096c5333be910eaea751cce3 no_mallinfo.patch
|
||||
b039b8fce696bfd0f53309a72adab4065780bf1755da6208040157e9383deb0061ad8927a6f160730f431cbebe3fdd1eaa7967b38da4a245a8d9306042d97629 no_feenableexcept.patch
|
||||
10481f153adf1db55111d68da49dae1885a50e745d3a978f6316b5b13a3f2d7de6a2ed6a3c60c20ef967ea65c16b372da03bf2665ffe4493ad6fe329a3abf368 cmake_fix_install_dir.patch
|
||||
4bdedc8f0e011530115777cddeeb898750242999725347c3392d8858e5cc9543c791814aa41e1543c575a6a79b0b32fd72970bb83c8948fe42f33993244db1cf cmake_add_buildtype_none.patch
|
||||
86dceb6e8309e18f5ea72ce2e3524ff08dc761ffe76557d62a1a4f2824ca0e2f9dfc194cae22164aaaf5ad9a15a6ec0f1fef443241aa2ccb0a2140de217c8a90 no_backtrace.patch
|
||||
80a5fdfec8159bfcfa2dce8f6635c8567eef64b0b142046ed2b7fc7a77849d14ae9b588b04daf5b5789d18130cbc40c5396af22787f38d8cd425f9f53d1fff9c fix-tbb-2021.patch
|
||||
8f5abf58f4a1b84aee99c75bbaeb2267655f306b6a3e12600a4db34201106dd380c7e30e37d4db81841be8ba9455604a10bfaa6e50e73801097ce141840f3d8e x11vtkconflict.patch
|
||||
"
|
13
backports/opencascade/cmake_add_buildtype_none.patch
Normal file
13
backports/opencascade/cmake_add_buildtype_none.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 1c6a41b..ff973e8 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -4,7 +4,7 @@ set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/adm/cmake")
|
||||
|
||||
set (CMAKE_SUPPRESS_REGENERATION TRUE)
|
||||
|
||||
-set (CMAKE_CONFIGURATION_TYPES Release Debug RelWithDebInfo CACHE INTERNAL "" FORCE)
|
||||
+set (CMAKE_CONFIGURATION_TYPES Release Debug RelWithDebInfo None CACHE INTERNAL "" FORCE)
|
||||
|
||||
# macro: include patched file if it exists
|
||||
macro (OCCT_INCLUDE_CMAKE_FILE BEING_INCLUDED_FILE)
|
30
backports/opencascade/cmake_fix_install_dir.patch
Normal file
30
backports/opencascade/cmake_fix_install_dir.patch
Normal file
|
@ -0,0 +1,30 @@
|
|||
Fixes:
|
||||
> CMake Error at cmake_install.cmake:8340 (configure_file):
|
||||
> configure_file Problem configuring file
|
||||
First posted on Arch Linux
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 0b445de..1c6a41b 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1122,7 +1122,7 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONFIGURATION_TYPES})
|
||||
endforeach()
|
||||
# install OpenCASCADE config file with compile definitions and C/C++ flags ONLY for current configuration
|
||||
install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWER)")
|
||||
-install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
|
||||
+install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"\$ENV{DESTDIR}${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
|
||||
|
||||
foreach (OCCT_MODULE ${OCCT_MODULES})
|
||||
if (BUILD_MODULE_${OCCT_MODULE})
|
||||
diff --git a/adm/cmake/occt_macros.cmake b/adm/cmake/occt_macros.cmake
|
||||
index 8220ecd..d1ceea6 100644
|
||||
--- a/adm/cmake/occt_macros.cmake
|
||||
+++ b/adm/cmake/occt_macros.cmake
|
||||
@@ -598,7 +598,7 @@ macro (OCCT_UPDATE_TARGET_FILE)
|
||||
"cmake_policy(PUSH)
|
||||
cmake_policy(SET CMP0007 NEW)
|
||||
string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWERCASE)
|
||||
- file (GLOB ALL_OCCT_TARGET_FILES \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\")
|
||||
+ file (GLOB ALL_OCCT_TARGET_FILES \"\$ENV{DESTDIR}${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\")
|
||||
foreach(TARGET_FILENAME \${ALL_OCCT_TARGET_FILES})
|
||||
file (STRINGS \"\${TARGET_FILENAME}\" TARGET_FILE_CONTENT)
|
||||
file (REMOVE \"\${TARGET_FILENAME}\")
|
45
backports/opencascade/fix-tbb-2021.patch
Normal file
45
backports/opencascade/fix-tbb-2021.patch
Normal file
|
@ -0,0 +1,45 @@
|
|||
X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=src%2FOSD%2FOSD_Parallel_TBB.cxx;h=0b9022b57630b98a47ed090eff8233c5d15148bb;hp=2344a6ca2df9c2d01c8a73579060c9cb44d3d789;hb=740833a6a88e481f474783c426b6f6311ed586d3;hpb=20095306111bc6e035c001e719231a894bdd6882
|
||||
|
||||
diff --git a/src/OSD/OSD_Parallel_TBB.cxx b/src/OSD/OSD_Parallel_TBB.cxx
|
||||
index 2344a6ca2d..0b9022b576 100644
|
||||
--- a/src/OSD/OSD_Parallel_TBB.cxx
|
||||
+++ b/src/OSD/OSD_Parallel_TBB.cxx
|
||||
@@ -25,7 +25,9 @@ Standard_DISABLE_DEPRECATION_WARNINGS
|
||||
#include <tbb/parallel_for.h>
|
||||
#include <tbb/parallel_for_each.h>
|
||||
#include <tbb/blocked_range.h>
|
||||
-#include <tbb/task_scheduler_init.h>
|
||||
+#if TBB_VERSION_MAJOR < 2021
|
||||
+ #include <tbb/task_scheduler_init.h>
|
||||
+#endif
|
||||
Standard_ENABLE_DEPRECATION_WARNINGS
|
||||
|
||||
//=======================================================================
|
||||
@@ -38,12 +40,16 @@ void OSD_Parallel::forEachExternal (UniversalIterator& theBegin,
|
||||
const FunctorInterface& theFunctor,
|
||||
Standard_Integer theNbItems)
|
||||
{
|
||||
+#if TBB_VERSION_MAJOR >= 2021
|
||||
+ // task_scheduler_init is removed,
|
||||
+ // exceptions are captured without proxy tbb::captured_exception object
|
||||
+ (void )theNbItems;
|
||||
+ tbb::parallel_for_each (theBegin, theEnd, theFunctor);
|
||||
+#else
|
||||
try
|
||||
{
|
||||
const Handle(OSD_ThreadPool)& aThreadPool = OSD_ThreadPool::DefaultPool();
|
||||
- const Standard_Integer aNbThreads = theNbItems > 0 ?
|
||||
- aThreadPool->NbDefaultThreadsToLaunch() : -1;
|
||||
-
|
||||
+ const Standard_Integer aNbThreads = theNbItems > 0 ? aThreadPool->NbDefaultThreadsToLaunch() : -1;
|
||||
tbb::task_scheduler_init aScheduler (aNbThreads);
|
||||
tbb::parallel_for_each (theBegin, theEnd, theFunctor);
|
||||
}
|
||||
@@ -51,6 +57,7 @@ void OSD_Parallel::forEachExternal (UniversalIterator& theBegin,
|
||||
{
|
||||
throw Standard_ProgramError (anException.what());
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
#endif /* HAVE_TBB */
|
63
backports/opencascade/no_backtrace.patch
Normal file
63
backports/opencascade/no_backtrace.patch
Normal file
|
@ -0,0 +1,63 @@
|
|||
--- ./src/Standard/Standard_StackTrace.cxx
|
||||
+++ ./src/Standard/Standard_StackTrace.cxx
|
||||
@@ -30,7 +30,6 @@
|
||||
#elif defined(__QNX__)
|
||||
//#include <backtrace.h> // requires linking to libbacktrace
|
||||
#elif !defined(_WIN32) && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
|
||||
- #include <execinfo.h>
|
||||
#elif defined(_WIN32) && !defined(OCCT_UWP)
|
||||
|
||||
#include <Standard_WarningsDisable.hxx>
|
||||
@@ -314,51 +313,6 @@
|
||||
return false;
|
||||
#endif
|
||||
#else
|
||||
- const int aTopSkip = theNbTopSkip + 1; // skip this function call and specified extra number
|
||||
- int aNbTraces = theNbTraces + aTopSkip;
|
||||
- void** aStackArr = (void** )alloca (sizeof(void*) * aNbTraces);
|
||||
- if (aStackArr == NULL)
|
||||
- {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- aNbTraces = ::backtrace (aStackArr, aNbTraces);
|
||||
- if (aNbTraces <= 1)
|
||||
- {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- aNbTraces -= aTopSkip;
|
||||
- char** aStrings = ::backtrace_symbols (aStackArr + aTopSkip, aNbTraces);
|
||||
- if (aStrings == NULL)
|
||||
- {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- const size_t aLenInit = strlen (theBuffer);
|
||||
- size_t aLimit = (size_t) theBufferSize - aLenInit - 1;
|
||||
- if (aLimit > 14)
|
||||
- {
|
||||
- strcat (theBuffer, "\n==Backtrace==");
|
||||
- aLimit -= 14;
|
||||
- }
|
||||
- for (int aLineIter = 0; aLineIter < aNbTraces; ++aLineIter)
|
||||
- {
|
||||
- const size_t aLen = strlen (aStrings[aLineIter]);
|
||||
- if (aLen + 1 >= aLimit)
|
||||
- {
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- strcat (theBuffer, "\n");
|
||||
- strcat (theBuffer, aStrings[aLineIter]);
|
||||
- aLimit -= aLen + 1;
|
||||
- }
|
||||
- free (aStrings);
|
||||
- if (aLimit > 14)
|
||||
- {
|
||||
- strcat (theBuffer, "\n=============");
|
||||
- }
|
||||
- return true;
|
||||
+ return false;
|
||||
#endif
|
||||
}
|
41
backports/opencascade/no_feenableexcept.patch
Normal file
41
backports/opencascade/no_feenableexcept.patch
Normal file
|
@ -0,0 +1,41 @@
|
|||
musl does not provice feenableexcept and fedisableexcept. Those calls have
|
||||
only been used on linux so far. This patch extends the #ifdef logic to only use
|
||||
them on Linux if additionally glibc is used.
|
||||
--- occt-V7_4_0-org/src/OSD/OSD_signal.cxx
|
||||
+++ occt-V7_4_0/src/OSD/OSD_signal.cxx
|
||||
@@ -678,7 +678,7 @@
|
||||
// POSIX threads
|
||||
#include <pthread.h>
|
||||
|
||||
-#ifdef __linux__
|
||||
+#ifdef __linux__ && defined(__GLIBC__)
|
||||
#include <cfenv>
|
||||
//#include <fenv.h>
|
||||
#endif
|
||||
@@ -793,7 +793,7 @@
|
||||
case SIGFPE:
|
||||
sigaddset(&set, SIGFPE);
|
||||
sigprocmask(SIG_UNBLOCK, &set, NULL) ;
|
||||
-#ifdef __linux__
|
||||
+#ifdef __linux__ && defined(__GLIBC__)
|
||||
OSD::SetFloatingSignal (Standard_True);
|
||||
#endif
|
||||
#if (!defined (__sun)) && (!defined(SOLARIS))
|
||||
@@ -914,7 +914,7 @@
|
||||
//=======================================================================
|
||||
void OSD::SetFloatingSignal (Standard_Boolean theFloatingSignal)
|
||||
{
|
||||
-#if defined (__linux__)
|
||||
+#if defined (__linux__) && defined(__GLIBC__)
|
||||
feclearexcept (FE_ALL_EXCEPT);
|
||||
if (theFloatingSignal)
|
||||
{
|
||||
@@ -947,7 +947,7 @@
|
||||
//=======================================================================
|
||||
Standard_Boolean OSD::ToCatchFloatingSignals()
|
||||
{
|
||||
-#if defined (__linux__)
|
||||
+#if defined (__linux__) && defined(__GLIBC__)
|
||||
return (fegetexcept() & _OSD_FPX) != 0;
|
||||
#else
|
||||
return Standard_False;
|
61
backports/opencascade/no_mallinfo.patch
Normal file
61
backports/opencascade/no_mallinfo.patch
Normal file
|
@ -0,0 +1,61 @@
|
|||
--- ./src/OSD/OSD_MemInfo.cxx.old
|
||||
+++ ./src/OSD/OSD_MemInfo.cxx
|
||||
@@ -35,6 +35,9 @@
|
||||
#include <sstream>
|
||||
#include <fstream>
|
||||
|
||||
+#include <sys/time.h>
|
||||
+#include <sys/resource.h>
|
||||
+
|
||||
#include <OSD_MemInfo.hxx>
|
||||
|
||||
#if defined(__EMSCRIPTEN__)
|
||||
@@ -161,18 +164,22 @@
|
||||
|| IsActive (MemWorkingSetPeak))
|
||||
{
|
||||
// /proc/%d/status is not emulated - get more info from mallinfo()
|
||||
- const struct mallinfo aMI = mallinfo();
|
||||
+ // mallinfo() not available with musl. We use getrusage to approximate it
|
||||
+ // with the maximum resident set size
|
||||
+ struct rusage ru = { .ru_maxrss = 0 };
|
||||
+ getrusage(RUSAGE_SELF, &ru);
|
||||
if (IsActive (MemHeapUsage))
|
||||
{
|
||||
- myCounters[MemHeapUsage] = aMI.uordblks;
|
||||
+ myCounters[MemHeapUsage] = ru.ru_maxrss;
|
||||
}
|
||||
if (IsActive (MemWorkingSet))
|
||||
{
|
||||
- myCounters[MemWorkingSet] = aMI.uordblks;
|
||||
+ myCounters[MemWorkingSet] = ru.ru_maxrss;
|
||||
}
|
||||
if (IsActive (MemWorkingSetPeak))
|
||||
{
|
||||
- myCounters[MemWorkingSetPeak] = aMI.usmblks;
|
||||
+ //usmblks is always 0
|
||||
+ myCounters[MemWorkingSetPeak] = 0;
|
||||
}
|
||||
}
|
||||
if (IsActive (MemVirtual))
|
||||
@@ -182,18 +189,9 @@
|
||||
#elif (defined(__linux__) || defined(__linux))
|
||||
if (IsActive (MemHeapUsage))
|
||||
{
|
||||
- #if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
|
||||
- #if __GLIBC_PREREQ(2,33)
|
||||
- #define HAS_MALLINFO2
|
||||
- #endif
|
||||
- #endif
|
||||
-
|
||||
- #ifdef HAS_MALLINFO2
|
||||
- const struct mallinfo2 aMI = mallinfo2();
|
||||
- #else
|
||||
- const struct mallinfo aMI = mallinfo();
|
||||
- #endif
|
||||
- myCounters[MemHeapUsage] = aMI.uordblks;
|
||||
+ struct rusage ru = { .ru_maxrss = 0 };
|
||||
+ getrusage(RUSAGE_SELF, &ru);
|
||||
+ myCounters[MemHeapUsage] = ru.ru_maxrss;
|
||||
}
|
||||
|
||||
if (!IsActive (MemVirtual)
|
19
backports/opencascade/x11vtkconflict.patch
Normal file
19
backports/opencascade/x11vtkconflict.patch
Normal file
|
@ -0,0 +1,19 @@
|
|||
--- ./src/IVtkDraw/IVtkDraw_Interactor.cxx.orig
|
||||
+++ ./src/IVtkDraw/IVtkDraw_Interactor.cxx
|
||||
@@ -27,6 +27,16 @@
|
||||
#undef AllValues
|
||||
#endif
|
||||
|
||||
+// Prevent naming collisions between X11
|
||||
+// and VTK versions 9.2.0 and above.
|
||||
+// X11 is included through glx
|
||||
+#ifdef Status
|
||||
+#undef Status
|
||||
+#endif
|
||||
+#ifdef Success
|
||||
+#undef Success
|
||||
+#endif
|
||||
+
|
||||
#include <vtkXRenderWindowInteractor.h>
|
||||
#include <vtkXOpenGLRenderWindow.h>
|
||||
#endif
|
34
backports/opencsg/APKBUILD
Normal file
34
backports/opencsg/APKBUILD
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
|
||||
pkgname=opencsg
|
||||
pkgver=1.4.2
|
||||
pkgrel=2
|
||||
pkgdesc="A library that does image-based CSG rendering using OpenGL"
|
||||
url="http://www.opencsg.org/"
|
||||
arch="all"
|
||||
license="GPL-2.0-only"
|
||||
subpackages="$pkgname-dev $pkgname-example"
|
||||
makedepends="glew-dev freeglut-dev"
|
||||
source="http://www.opencsg.org/OpenCSG-$pkgver.tar.gz"
|
||||
builddir="$srcdir/OpenCSG-$pkgver"
|
||||
|
||||
build() {
|
||||
make -j1
|
||||
}
|
||||
|
||||
check() {
|
||||
make check
|
||||
}
|
||||
|
||||
package() {
|
||||
for folder in src example; do
|
||||
sed -e 's/\/usr\/local\//\/usr\//g' -i $folder/Makefile
|
||||
make INSTALL_ROOT="$pkgdir" install -j 1 -C $folder
|
||||
done
|
||||
}
|
||||
|
||||
example() {
|
||||
mkdir -p "$subpkgdir"/usr/
|
||||
mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
|
||||
}
|
||||
|
||||
sha512sums="fbe6f925982717ecca7bd0eacc4fc5b362c80c7663b1ff0d9a228f2b5e1d3625d3e6d324d9e634665c74e9c0fc37d10290ece293e59a3eba67035b6b700b7778 OpenCSG-1.4.2.tar.gz"
|
76
backports/openscad/0001-fix-CVE-2022-0496.patch
Normal file
76
backports/openscad/0001-fix-CVE-2022-0496.patch
Normal file
|
@ -0,0 +1,76 @@
|
|||
From 00a4692989c4e2f191525f73f24ad8727bacdf41 Mon Sep 17 00:00:00 2001
|
||||
From: Torsten Paul <Torsten.Paul@gmx.de>
|
||||
Date: Sat, 5 Feb 2022 18:38:31 +0100
|
||||
Subject: [PATCH] CVE-2022-0496 Out-of-bounds memory access in DXF loader.
|
||||
|
||||
Public issue:
|
||||
https://github.com/openscad/openscad/issues/4037
|
||||
|
||||
Fix in master branch:
|
||||
https://github.com/openscad/openscad/pull/4090
|
||||
---
|
||||
src/dxfdata.cc | 27 +++++++++++++++++++++++----
|
||||
1 file changed, 23 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/dxfdata.cc b/src/dxfdata.cc
|
||||
index 2bb7236746..aa6b6f3976 100644
|
||||
--- a/src/dxfdata.cc
|
||||
+++ b/src/dxfdata.cc
|
||||
@@ -441,6 +441,11 @@ DxfData::DxfData(double fn, double fs, double fa,
|
||||
auto lv = grid.data(this->points[lines[idx].idx[j]][0], this->points[lines[idx].idx[j]][1]);
|
||||
for (size_t ki = 0; ki < lv.size(); ++ki) {
|
||||
int k = lv.at(ki);
|
||||
+ if (k < 0 || k >= lines.size()) {
|
||||
+ LOG(message_group::Warning,Location::NONE,"",
|
||||
+ "Bad DXF line index in %1$s.",QuotedString(boostfs_uncomplete(filename, fs::current_path()).generic_string()));
|
||||
+ continue;
|
||||
+ }
|
||||
if (k == idx || lines[k].disabled) continue;
|
||||
goto next_open_path_j;
|
||||
}
|
||||
@@ -466,13 +471,20 @@ DxfData::DxfData(double fn, double fs, double fa,
|
||||
auto lv = grid.data(ref_point[0], ref_point[1]);
|
||||
for (size_t ki = 0; ki < lv.size(); ++ki) {
|
||||
int k = lv.at(ki);
|
||||
+ if (k < 0 || k >= lines.size()) {
|
||||
+ LOG(message_group::Warning,Location::NONE,"",
|
||||
+ "Bad DXF line index in %1$s.",QuotedString(boostfs_uncomplete(filename, fs::current_path()).generic_string()));
|
||||
+ continue;
|
||||
+ }
|
||||
if (lines[k].disabled) continue;
|
||||
- if (grid.eq(ref_point[0], ref_point[1], this->points[lines[k].idx[0]][0], this->points[lines[k].idx[0]][1])) {
|
||||
+ auto idk0 = lines[k].idx[0]; // make it easier to read and debug
|
||||
+ auto idk1 = lines[k].idx[1];
|
||||
+ if (grid.eq(ref_point[0], ref_point[1], this->points[idk0][0], this->points[idk0][1])) {
|
||||
current_line = k;
|
||||
current_point = 0;
|
||||
goto found_next_line_in_open_path;
|
||||
}
|
||||
- if (grid.eq(ref_point[0], ref_point[1], this->points[lines[k].idx[1]][0], this->points[lines[k].idx[1]][1])) {
|
||||
+ if (grid.eq(ref_point[0], ref_point[1], this->points[idk1][0], this->points[idk1][1])) {
|
||||
current_line = k;
|
||||
current_point = 1;
|
||||
goto found_next_line_in_open_path;
|
||||
@@ -501,13 +513,20 @@ DxfData::DxfData(double fn, double fs, double fa,
|
||||
auto lv = grid.data(ref_point[0], ref_point[1]);
|
||||
for (size_t ki = 0; ki < lv.size(); ++ki) {
|
||||
int k = lv.at(ki);
|
||||
+ if (k < 0 || k >= lines.size()) {
|
||||
+ LOG(message_group::Warning,Location::NONE,"",
|
||||
+ "Bad DXF line index in %1$s.",QuotedString(boostfs_uncomplete(filename, fs::current_path()).generic_string()));
|
||||
+ continue;
|
||||
+ }
|
||||
if (lines[k].disabled) continue;
|
||||
- if (grid.eq(ref_point[0], ref_point[1], this->points[lines[k].idx[0]][0], this->points[lines[k].idx[0]][1])) {
|
||||
+ auto idk0 = lines[k].idx[0]; // make it easier to read and debug
|
||||
+ auto idk1 = lines[k].idx[1];
|
||||
+ if (grid.eq(ref_point[0], ref_point[1], this->points[idk0][0], this->points[idk0][1])) {
|
||||
current_line = k;
|
||||
current_point = 0;
|
||||
goto found_next_line_in_closed_path;
|
||||
}
|
||||
- if (grid.eq(ref_point[0], ref_point[1], this->points[lines[k].idx[1]][0], this->points[lines[k].idx[1]][1])) {
|
||||
+ if (grid.eq(ref_point[0], ref_point[1], this->points[idk1][0], this->points[idk1][1])) {
|
||||
current_line = k;
|
||||
current_point = 1;
|
||||
goto found_next_line_in_closed_path;
|
27
backports/openscad/0002-fix-CVE-2022-0497.patch
Normal file
27
backports/openscad/0002-fix-CVE-2022-0497.patch
Normal file
|
@ -0,0 +1,27 @@
|
|||
From 84addf3c1efbd51d8ff424b7da276400bbfa1a4b Mon Sep 17 00:00:00 2001
|
||||
From: Torsten Paul <Torsten.Paul@gmx.de>
|
||||
Date: Sat, 5 Feb 2022 18:45:29 +0100
|
||||
Subject: [PATCH] CVE-2022-0497 Out-of-bounds memory access in comment parser.
|
||||
|
||||
Public issue:
|
||||
https://github.com/openscad/openscad/issues/4043
|
||||
|
||||
Fix in master branch:
|
||||
https://github.com/openscad/openscad/pull/4044
|
||||
---
|
||||
src/comment.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/comment.cpp b/src/comment.cpp
|
||||
index f02ad2c5f6..1ce3ab547b 100644
|
||||
--- a/src/comment.cpp
|
||||
+++ b/src/comment.cpp
|
||||
@@ -92,7 +92,7 @@ static std::string getComment(const std::string &fulltext, int line)
|
||||
}
|
||||
|
||||
int end = start + 1;
|
||||
- while (fulltext[end] != '\n') end++;
|
||||
+ while (end < fulltext.size() && fulltext[end] != '\n') end++;
|
||||
|
||||
std::string comment = fulltext.substr(start, end - start);
|
||||
|
47
backports/openscad/0003-fix-build-with-cgal-5.3.patch
Normal file
47
backports/openscad/0003-fix-build-with-cgal-5.3.patch
Normal file
|
@ -0,0 +1,47 @@
|
|||
From 9aa0d7e9f2914fe5f547bdde69202161d1c6064d Mon Sep 17 00:00:00 2001
|
||||
From: Jordan Brown <github@jordan.maileater.net>
|
||||
Date: Sun, 18 Jul 2021 21:01:46 -0700
|
||||
Subject: [PATCH] Fix build failure with "generic_print_polyhedron" on
|
||||
CGAL-5.3.
|
||||
|
||||
---
|
||||
src/cgalutils-polyhedron.cc | 13 -------------
|
||||
src/cgalutils.h | 1 -
|
||||
2 files changed, 14 deletions(-)
|
||||
|
||||
diff --git a/src/cgalutils-polyhedron.cc b/src/cgalutils-polyhedron.cc
|
||||
index 9f4f98f623..41cca4b3f2 100644
|
||||
--- a/src/cgalutils-polyhedron.cc
|
||||
+++ b/src/cgalutils-polyhedron.cc
|
||||
@@ -337,19 +337,6 @@ namespace CGALUtils {
|
||||
}
|
||||
};
|
||||
|
||||
- template <typename Polyhedron>
|
||||
- std::string printPolyhedron(const Polyhedron &p) {
|
||||
- std::ostringstream sstream;
|
||||
- sstream.precision(20);
|
||||
-
|
||||
- Polyhedron_writer writer;
|
||||
- generic_print_polyhedron(sstream, p, writer);
|
||||
-
|
||||
- return sstream.str();
|
||||
- }
|
||||
-
|
||||
- template std::string printPolyhedron(const CGAL_Polyhedron &p);
|
||||
-
|
||||
}; // namespace CGALUtils
|
||||
|
||||
#endif /* ENABLE_CGAL */
|
||||
diff --git a/src/cgalutils.h b/src/cgalutils.h
|
||||
index 21a01cdba6..c08a3aa7df 100644
|
||||
--- a/src/cgalutils.h
|
||||
+++ b/src/cgalutils.h
|
||||
@@ -45,7 +45,6 @@ namespace CGALUtils {
|
||||
bool is_approximately_convex(const PolySet &ps);
|
||||
Geometry const* applyMinkowski(const Geometry::Geometries &children);
|
||||
|
||||
- template <typename Polyhedron> std::string printPolyhedron(const Polyhedron &p);
|
||||
template <typename Polyhedron> bool createPolySetFromPolyhedron(const Polyhedron &p, PolySet &ps);
|
||||
template <typename Polyhedron> bool createPolyhedronFromPolySet(const PolySet &ps, Polyhedron &p);
|
||||
template <class Polyhedron_A, class Polyhedron_B>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue