mirror of
https://github.com/moparisthebest/arch-ppa
synced 2024-11-21 08:15:01 -05:00
add/update packages
This commit is contained in:
parent
095fd4f44a
commit
4771d6bdc6
2
src/anbox-git/99-anbox.rules
Normal file
2
src/anbox-git/99-anbox.rules
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
KERNEL=="binder", MODE="0666"
|
||||||
|
KERNEL=="ashmem", MODE="0666"
|
75
src/anbox-git/PKGBUILD
Normal file
75
src/anbox-git/PKGBUILD
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# Maintainer: Iwan Timmer <irtimmer@gmail.com>
|
||||||
|
|
||||||
|
pkgname=anbox-git
|
||||||
|
_pkgname=anbox
|
||||||
|
pkgver=r1317.3fa48f9
|
||||||
|
pkgrel=1
|
||||||
|
epoch=1
|
||||||
|
arch=('x86_64')
|
||||||
|
url="http://anbox.io/"
|
||||||
|
license=('GPL3')
|
||||||
|
pkgdesc="Running Android in a container"
|
||||||
|
depends=('lxc' 'sdl2_image' 'protobuf' 'anbox-image' 'libsystemd' 'boost-libs')
|
||||||
|
makedepends=('cmake' 'git' 'glm' 'lxc' 'sdl2_image' 'protobuf' 'boost' 'properties-cpp' 'gtest' 'python')
|
||||||
|
source=("git+https://github.com/anbox/anbox.git"
|
||||||
|
"git+https://github.com/google/cpu_features.git"
|
||||||
|
"git+https://github.com/Kistler-Group/sdbus-cpp.git"
|
||||||
|
'anbox-container-manager.service'
|
||||||
|
'anbox-session-manager.service'
|
||||||
|
'99-anbox.rules'
|
||||||
|
'anbox.conf'
|
||||||
|
'anbox.desktop'
|
||||||
|
'anbox-bridge.network'
|
||||||
|
'anbox-bridge.netdev')
|
||||||
|
sha256sums=('SKIP'
|
||||||
|
'SKIP'
|
||||||
|
'SKIP'
|
||||||
|
'5be94b63dc30d141f15ca7d1be6e3e81f26ef33f844614975537562f5d08236c'
|
||||||
|
'1f22dbb5a3ca6925bbf62899cd0f0bbaa0b77c879adcdd12ff9d43adfa61b1d8'
|
||||||
|
'210eb93342228168f7bb632c8b93d9bfda6f53f62459a6b74987fa1e17530475'
|
||||||
|
'3e07dc524a827c1651857cce28a06c1565bc5188101c140ed213bbafedc5abff'
|
||||||
|
'7332d09865be553a259a53819cebddd21f661c7a251d78c2f46acd75c66676b6'
|
||||||
|
'44899328725667041e6e84912da81c1d0147b708006eb2c2bb6503f271629ff0'
|
||||||
|
'559190df4d6d595480b30d8b13b862081fc4aac52790e33eb24cf7fbcb8003b8')
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "$srcdir/$_pkgname"
|
||||||
|
( set -o pipefail
|
||||||
|
git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' ||
|
||||||
|
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "$srcdir/${_pkgname}"
|
||||||
|
|
||||||
|
# Don't build tests
|
||||||
|
truncate -s 0 cmake/FindGMock.cmake
|
||||||
|
truncate -s 0 tests/CMakeLists.txt
|
||||||
|
|
||||||
|
git submodule init
|
||||||
|
git config submodule.external/cpu_features.url $srcdir/cpu_features
|
||||||
|
git config submodule.external/sdbus-cpp.url $srcdir/sdbus-cpp
|
||||||
|
git submodule update
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
mkdir -p "$srcdir/${_pkgname}/build"
|
||||||
|
cd "$srcdir/${_pkgname}/build"
|
||||||
|
|
||||||
|
cmake .. -DCMAKE_INSTALL_LIBDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS="-Wno-error=implicit-fallthrough -Wno-error=missing-field-initializers" -DCMAKE_BUILD_TYPE=Release
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/${_pkgname}"
|
||||||
|
make -C build DESTDIR="$pkgdir" install
|
||||||
|
|
||||||
|
install -Dm 644 -t $pkgdir/usr/lib/systemd/system $srcdir/anbox-container-manager.service
|
||||||
|
install -Dm 644 -t $pkgdir/usr/lib/systemd/user $srcdir/anbox-session-manager.service
|
||||||
|
install -Dm 644 $srcdir/anbox-bridge.network $pkgdir/usr/lib/systemd/network/80-anbox-bridge.network
|
||||||
|
install -Dm 644 $srcdir/anbox-bridge.netdev $pkgdir/usr/lib/systemd/network/80-anbox-bridge.netdev
|
||||||
|
install -Dm 644 -t $pkgdir/usr/lib/udev/rules.d $srcdir/99-anbox.rules
|
||||||
|
install -Dm 644 -t $pkgdir/usr/share/applications $srcdir/anbox.desktop
|
||||||
|
install -Dm 644 snap/gui/icon.png $pkgdir/usr/share/pixmaps/anbox.png
|
||||||
|
}
|
3
src/anbox-git/anbox-bridge.netdev
Normal file
3
src/anbox-git/anbox-bridge.netdev
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[NetDev]
|
||||||
|
Name=anbox0
|
||||||
|
Kind=bridge
|
7
src/anbox-git/anbox-bridge.network
Normal file
7
src/anbox-git/anbox-bridge.network
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[Match]
|
||||||
|
Name=anbox0
|
||||||
|
Driver=bridge
|
||||||
|
|
||||||
|
[Network]
|
||||||
|
Address=192.168.250.1/24
|
||||||
|
IPMasquerade=yes
|
8
src/anbox-git/anbox-container-manager.service
Normal file
8
src/anbox-git/anbox-container-manager.service
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Anbox Container Manager
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
8
src/anbox-git/anbox-session-manager.service
Normal file
8
src/anbox-git/anbox-session-manager.service
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Anbox Session Manager
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/anbox session-manager
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
2
src/anbox-git/anbox.conf
Normal file
2
src/anbox-git/anbox.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ashmem_linux
|
||||||
|
binder_linux
|
8
src/anbox-git/anbox.desktop
Normal file
8
src/anbox-git/anbox.desktop
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Anbox
|
||||||
|
GenericName=Android in a box
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Icon=anbox
|
||||||
|
Exec=anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
|
||||||
|
Terminal=false
|
2
src/anbox-image-gapps/.gitignore
vendored
Normal file
2
src/anbox-image-gapps/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
.*
|
129
src/anbox-image-gapps/PKGBUILD
Normal file
129
src/anbox-image-gapps/PKGBUILD
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
# Maintainer: Jack Chen <redchenjs at live dot com>
|
||||||
|
# Contributor: Mark Wagie <mark dot wagie at tutanota dot com>
|
||||||
|
# Contributor: Robosky <fangyuhao0612 at gmail dot com>
|
||||||
|
|
||||||
|
pkgname=anbox-image-gapps
|
||||||
|
pkgver=2018.07.19
|
||||||
|
pkgrel=15
|
||||||
|
pkgdesc="Android image for running in Anbox, with OpenGApps and Houdini"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://anbox.io"
|
||||||
|
license=('custom')
|
||||||
|
makedepends=('curl' 'lzip' 'squashfs-tools' 'unzip')
|
||||||
|
provides=('anbox-image')
|
||||||
|
conflicts=('anbox-image')
|
||||||
|
|
||||||
|
_gapps_rel="$(curl -s -L https://api.opengapps.org/list | sed -r 's/.*-x86_64-7.1-pico-([0-9]+).zip".*/\1/')"
|
||||||
|
_gapps_src="https://downloads.sourceforge.net/project/opengapps/x86_64/$_gapps_rel/open_gapps-x86_64-7.1-pico-$_gapps_rel.zip"
|
||||||
|
_gapps_md5="$(curl -s -L $_gapps_src.md5 | sed -r 's/^([0-9a-z]+).*/\1/')"
|
||||||
|
_gapps_list=(
|
||||||
|
'gsfcore-all'
|
||||||
|
'gsflogin-all'
|
||||||
|
'gmscore-x86_64'
|
||||||
|
'vending-x86_64'
|
||||||
|
)
|
||||||
|
source=(
|
||||||
|
"https://build.anbox.io/android-images/${pkgver//./\/}/android_amd64.img"
|
||||||
|
"https://github.com/redchenjs/aur-packages/raw/master/anbox-image/houdini_y.sfs"
|
||||||
|
"https://github.com/redchenjs/aur-packages/raw/master/anbox-image/houdini_z.sfs"
|
||||||
|
"media_codecs.xml"
|
||||||
|
"media_codecs_google_video.xml"
|
||||||
|
"media_codecs_google_audio.xml"
|
||||||
|
"media_codecs_google_telephony.xml"
|
||||||
|
"$_gapps_src"
|
||||||
|
)
|
||||||
|
md5sums=(
|
||||||
|
'26874452a6521ec2e37400670d438e33'
|
||||||
|
'7ebf618b1af94a02322d9f2d2610090b'
|
||||||
|
'5ca37e1629edb7d13b18751b72dc98ad'
|
||||||
|
'a638728bc2413d908f5eb44a9f09e947'
|
||||||
|
'599598e70060eb74c119cf7dac0ce466'
|
||||||
|
'43193761081a04ca18a28d4a6e039950'
|
||||||
|
'91f5f3e5c31f8e221ae8f318527dcb83'
|
||||||
|
"$_gapps_md5"
|
||||||
|
)
|
||||||
|
|
||||||
|
build () {
|
||||||
|
cd "$srcdir"
|
||||||
|
|
||||||
|
# unpack anbox image
|
||||||
|
mkdir -p squashfs-root
|
||||||
|
rm -rf ./squashfs-root/*
|
||||||
|
unsquashfs -f -d ./squashfs-root ./android_amd64.img
|
||||||
|
|
||||||
|
# load houdini_y
|
||||||
|
mkdir -p houdini_y
|
||||||
|
rm -rf ./houdini_y/*
|
||||||
|
unsquashfs -f -d ./houdini_y ./houdini_y.sfs
|
||||||
|
|
||||||
|
mkdir -p ./squashfs-root/system/lib/arm
|
||||||
|
cp -r ./houdini_y/* ./squashfs-root/system/lib/arm
|
||||||
|
mv ./squashfs-root/system/lib/arm/libhoudini.so ./squashfs-root/system/lib/libhoudini.so
|
||||||
|
|
||||||
|
# load houdini_z
|
||||||
|
mkdir -p houdini_z
|
||||||
|
rm -rf ./houdini_z/*
|
||||||
|
unsquashfs -f -d ./houdini_z ./houdini_z.sfs
|
||||||
|
|
||||||
|
mkdir -p ./squashfs-root/system/lib64/arm64
|
||||||
|
cp -r ./houdini_z/* ./squashfs-root/system/lib64/arm64
|
||||||
|
mv ./squashfs-root/system/lib64/arm64/libhoudini.so ./squashfs-root/system/lib64/libhoudini.so
|
||||||
|
|
||||||
|
# add houdini parser
|
||||||
|
mkdir -p ./squashfs-root/system/etc/binfmt_misc
|
||||||
|
echo ':arm_exe:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28::/system/lib/arm/houdini:P' >> ./squashfs-root/system/etc/binfmt_misc/arm_exe
|
||||||
|
echo ':arm_dyn:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x28::/system/lib/arm/houdini:P' >> ./squashfs-root/system/etc/binfmt_misc/arm_dyn
|
||||||
|
echo ':arm64_exe:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7::/system/lib64/arm64/houdini64:P' >> ./squashfs-root/system/etc/binfmt_misc/arm64_exe
|
||||||
|
echo ':arm64_dyn:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7::/system/lib64/arm64/houdini64:P' >> ./squashfs-root/system/etc/binfmt_misc/arm64_dyn
|
||||||
|
|
||||||
|
# add features
|
||||||
|
sed -i '/<\/permissions>/d' ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
sed -i '/<unavailable-feature name=\"android.hardware.wifi\" \/>/d' ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
sed -i '/<unavailable-feature name=\"android.hardware.bluetooth\" \/>/d' ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
|
||||||
|
echo ' <feature name="android.hardware.touchscreen" />
|
||||||
|
<feature name="android.hardware.audio.output" />
|
||||||
|
<feature name="android.hardware.camera" />
|
||||||
|
<feature name="android.hardware.camera.any" />
|
||||||
|
<feature name="android.hardware.location" />
|
||||||
|
<feature name="android.hardware.location.gps" />
|
||||||
|
<feature name="android.hardware.location.network" />
|
||||||
|
<feature name="android.hardware.microphone" />
|
||||||
|
<feature name="android.hardware.screen.portrait" />
|
||||||
|
<feature name="android.hardware.screen.landscape" />
|
||||||
|
<feature name="android.hardware.wifi" />
|
||||||
|
<feature name="android.hardware.bluetooth" />' >> ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
echo '</permissions>' >> ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
|
||||||
|
# set processors
|
||||||
|
sed -i '/^ro.product.cpu.abilist=x86_64,x86/ s/$/,arm64-v8a,armeabi-v7a,armeabi/' ./squashfs-root/system/build.prop
|
||||||
|
sed -i '/^ro.product.cpu.abilist32=x86/ s/$/,armeabi-v7a,armeabi/' ./squashfs-root/system/build.prop
|
||||||
|
sed -i '/^ro.product.cpu.abilist64=x86_64/ s/$/,arm64-v8a/' ./squashfs-root/system/build.prop
|
||||||
|
|
||||||
|
# enable nativebridge
|
||||||
|
echo 'persist.sys.nativebridge=1' >> ./squashfs-root/system/build.prop
|
||||||
|
sed -i 's/ro.dalvik.vm.native.bridge=0/ro.dalvik.vm.native.bridge=libhoudini.so/' ./squashfs-root/default.prop
|
||||||
|
|
||||||
|
# enable opengles
|
||||||
|
echo 'ro.opengles.version=131072' >> ./squashfs-root/system/build.prop
|
||||||
|
|
||||||
|
# install media codecs
|
||||||
|
cp media_codec*.xml ./squashfs-root/system/etc/
|
||||||
|
|
||||||
|
# install gapps
|
||||||
|
for i in ${_gapps_list[*]}; do
|
||||||
|
mkdir -p $i
|
||||||
|
rm -rf ./$i/*
|
||||||
|
tar --lzip -xvf ./Core/$i.tar.lz
|
||||||
|
cp -r ./$i/nodpi/priv-app/* ./squashfs-root/system/priv-app/
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir"
|
||||||
|
|
||||||
|
# repack image
|
||||||
|
mksquashfs ./squashfs-root ./android.img -noappend -b 131072 -comp xz -Xbcj x86
|
||||||
|
|
||||||
|
install -Dm 644 ./android.img "$pkgdir/var/lib/anbox/android.img"
|
||||||
|
}
|
89
src/anbox-image-gapps/media_codecs.xml
Normal file
89
src/anbox-image-gapps/media_codecs.xml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2012 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<!DOCTYPE MediaCodecs [
|
||||||
|
<!ELEMENT Include EMPTY>
|
||||||
|
<!ATTLIST Include href CDATA #REQUIRED>
|
||||||
|
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
|
||||||
|
<!ELEMENT Decoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT Encoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
|
||||||
|
<!ATTLIST MediaCodec name CDATA #REQUIRED>
|
||||||
|
<!ATTLIST MediaCodec type CDATA>
|
||||||
|
<!ELEMENT Type EMPTY>
|
||||||
|
<!ATTLIST Type name CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Quirk EMPTY>
|
||||||
|
<!ATTLIST Quirk name CDATA #REQUIRED>
|
||||||
|
]>
|
||||||
|
|
||||||
|
There's a simple and a complex syntax to declare the availability of a
|
||||||
|
media codec:
|
||||||
|
|
||||||
|
A codec that properly follows the OpenMax spec and therefore doesn't have any
|
||||||
|
quirks and that only supports a single content type can be declared like so:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
|
||||||
|
|
||||||
|
If a codec has quirks OR supports multiple content types, the following syntax
|
||||||
|
can be used:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" >
|
||||||
|
<Type name="something/interesting" />
|
||||||
|
<Type name="something/else" />
|
||||||
|
...
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="output-buffers-are-unreadable" />
|
||||||
|
</MediaCodec>
|
||||||
|
|
||||||
|
Only the three quirks included above are recognized at this point:
|
||||||
|
|
||||||
|
"requires-allocate-on-input-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of input buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"requires-allocate-on-output-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of output buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"output-buffers-are-unreadable"
|
||||||
|
must be advertised if the emitted output buffers of a decoder component
|
||||||
|
are not readable, i.e. use a custom format even though abusing one of
|
||||||
|
the official OMX colorspace constants.
|
||||||
|
Clients of such decoders will not be able to access the decoded data,
|
||||||
|
naturally making the component much less useful. The only use for
|
||||||
|
a component with this quirk is to render the output to the screen.
|
||||||
|
Audio decoders MUST NOT advertise this quirk.
|
||||||
|
Video decoders that advertise this quirk must be accompanied by a
|
||||||
|
corresponding color space converter for thumbnail extraction,
|
||||||
|
matching surfaceflinger support that can render the custom format to
|
||||||
|
a texture and possibly other code, so just DON'T USE THIS QUIRK.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Settings>
|
||||||
|
<Setting name="supports-multiple-secure-codecs" value="true" />
|
||||||
|
<Setting name="supports-secure-with-non-secure-codec" value="true" />
|
||||||
|
<Setting name="max-video-encoder-input-buffers" value="9" />
|
||||||
|
</Settings>
|
||||||
|
<Include href="media_codecs_google_video.xml" />
|
||||||
|
<Include href="media_codecs_google_audio.xml" />
|
||||||
|
<Include href="media_codecs_google_telephony.xml" />
|
||||||
|
</MediaCodecs>
|
97
src/anbox-image-gapps/media_codecs_google_audio.xml
Normal file
97
src/anbox-image-gapps/media_codecs_google_audio.xml
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg">
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<Limit name="bitrate" range="8000-320000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="4750-12200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="16000" />
|
||||||
|
<Limit name="bitrate" range="6600-23850" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<Limit name="bitrate" range="8000-960000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-48000" />
|
||||||
|
<Limit name="bitrate" range="64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-48000" />
|
||||||
|
<Limit name="bitrate" range="64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-96000" />
|
||||||
|
<Limit name="bitrate" range="32000-500000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.opus.decoder" type="audio/opus">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="48000" />
|
||||||
|
<Limit name="bitrate" range="6000-510000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.raw.decoder" type="audio/raw">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-96000" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.flac.decoder" type="audio/flac">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="1-655350" />
|
||||||
|
<Limit name="bitrate" range="1-21000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm">
|
||||||
|
<Limit name="channel-count" max="6" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<!-- also may support 64000, 88200 and 96000 Hz -->
|
||||||
|
<Limit name="bitrate" range="8000-960000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="4750-12200" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="16000" />
|
||||||
|
<Limit name="bitrate" range="6600-23850" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.flac.encoder" type="audio/flac">
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="1-655350" />
|
||||||
|
<Limit name="bitrate" range="1-21000000" />
|
||||||
|
<Limit name="complexity" range="0-8" default="5" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
25
src/anbox-image-gapps/media_codecs_google_telephony.xml
Normal file
25
src/anbox-image-gapps/media_codecs_google_telephony.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="13000" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
</Included>
|
122
src/anbox-image-gapps/media_codecs_google_video.xml
Normal file
122
src/anbox-image-gapps/media_codecs_google_video.xml
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es">
|
||||||
|
<!-- profiles and levels: ProfileSimple : Level3 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-11880" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45
|
||||||
|
ProfileISWV2 : Level30, ProfileISWV2 : Level45 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.decoder" type="video/avc">
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level52 -->
|
||||||
|
<Limit name="size" min="2x2" max="4080x4080" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-32768" /> <!-- max 4096x2048 equivalent -->
|
||||||
|
<Limit name="blocks-per-second" range="1-1966080" />
|
||||||
|
<Limit name="bitrate" range="1-48000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="4096x4096" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-196608" /> <!-- max 4096x3072 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-2000000" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-1000000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-500000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level45 -->
|
||||||
|
<Limit name="size" min="176x144" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="bitrate" range="1-128000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.encoder" type="video/avc">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level41 -->
|
||||||
|
<Limit name="size" min="16x16" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-8192" /> <!-- max 2048x1024 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-245760" />
|
||||||
|
<Limit name="bitrate" range="1-12000000" />
|
||||||
|
<Feature name="intra-refresh" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es">
|
||||||
|
<!-- profiles and levels: ProfileCore : Level2 -->
|
||||||
|
<Limit name="size" min="16x16" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-1485" />
|
||||||
|
<Limit name="bitrate" range="1-64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<!-- 2016 devices can encode at about 10fps at this block count -->
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.encoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<!-- 2016 devices can encode at about 8fps at this block count -->
|
||||||
|
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
2
src/anbox-image-houdini/.gitignore
vendored
Normal file
2
src/anbox-image-houdini/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
.*
|
113
src/anbox-image-houdini/PKGBUILD
Normal file
113
src/anbox-image-houdini/PKGBUILD
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
# Maintainer: Jack Chen <redchenjs@live.com>
|
||||||
|
|
||||||
|
pkgname=anbox-image-houdini
|
||||||
|
pkgver=2018.07.19
|
||||||
|
pkgrel=5
|
||||||
|
pkgdesc="Android image for running in Anbox with Houdini"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://anbox.io/"
|
||||||
|
license=('custom')
|
||||||
|
makedepends=(
|
||||||
|
'squashfs-tools'
|
||||||
|
)
|
||||||
|
provides=(
|
||||||
|
'anbox-image'
|
||||||
|
)
|
||||||
|
conflicts=(
|
||||||
|
'anbox-image'
|
||||||
|
)
|
||||||
|
source=(
|
||||||
|
"https://build.anbox.io/android-images/${pkgver//./\/}/android_amd64.img"
|
||||||
|
"https://github.com/redchenjs/aur-packages/raw/master/anbox-image/houdini_y.sfs"
|
||||||
|
"https://github.com/redchenjs/aur-packages/raw/master/anbox-image/houdini_z.sfs"
|
||||||
|
"media_codecs.xml"
|
||||||
|
"media_codecs_google_video.xml"
|
||||||
|
"media_codecs_google_audio.xml"
|
||||||
|
"media_codecs_google_telephony.xml"
|
||||||
|
)
|
||||||
|
md5sums=(
|
||||||
|
'26874452a6521ec2e37400670d438e33'
|
||||||
|
'7ebf618b1af94a02322d9f2d2610090b'
|
||||||
|
'5ca37e1629edb7d13b18751b72dc98ad'
|
||||||
|
'a638728bc2413d908f5eb44a9f09e947'
|
||||||
|
'599598e70060eb74c119cf7dac0ce466'
|
||||||
|
'43193761081a04ca18a28d4a6e039950'
|
||||||
|
'91f5f3e5c31f8e221ae8f318527dcb83'
|
||||||
|
)
|
||||||
|
|
||||||
|
build () {
|
||||||
|
cd "$srcdir"
|
||||||
|
|
||||||
|
# unpack anbox image
|
||||||
|
mkdir -p squashfs-root
|
||||||
|
rm -rf ./squashfs-root/*
|
||||||
|
unsquashfs -f -d ./squashfs-root ./android_amd64.img
|
||||||
|
|
||||||
|
# load houdini_y
|
||||||
|
mkdir -p houdini_y
|
||||||
|
rm -rf ./houdini_y/*
|
||||||
|
unsquashfs -f -d ./houdini_y ./houdini_y.sfs
|
||||||
|
|
||||||
|
mkdir -p ./squashfs-root/system/lib/arm
|
||||||
|
cp -r ./houdini_y/* ./squashfs-root/system/lib/arm
|
||||||
|
mv ./squashfs-root/system/lib/arm/libhoudini.so ./squashfs-root/system/lib/libhoudini.so
|
||||||
|
|
||||||
|
# load houdini_z
|
||||||
|
mkdir -p houdini_z
|
||||||
|
rm -rf ./houdini_z/*
|
||||||
|
unsquashfs -f -d ./houdini_z ./houdini_z.sfs
|
||||||
|
|
||||||
|
mkdir -p ./squashfs-root/system/lib64/arm64
|
||||||
|
cp -r ./houdini_z/* ./squashfs-root/system/lib64/arm64
|
||||||
|
mv ./squashfs-root/system/lib64/arm64/libhoudini.so ./squashfs-root/system/lib64/libhoudini.so
|
||||||
|
|
||||||
|
# add houdini parser
|
||||||
|
mkdir -p ./squashfs-root/system/etc/binfmt_misc
|
||||||
|
echo ':arm_exe:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28::/system/lib/arm/houdini:P' >> ./squashfs-root/system/etc/binfmt_misc/arm_exe
|
||||||
|
echo ':arm_dyn:M::\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x28::/system/lib/arm/houdini:P' >> ./squashfs-root/system/etc/binfmt_misc/arm_dyn
|
||||||
|
echo ':arm64_exe:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7::/system/lib64/arm64/houdini64:P' >> ./squashfs-root/system/etc/binfmt_misc/arm64_exe
|
||||||
|
echo ':arm64_dyn:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7::/system/lib64/arm64/houdini64:P' >> ./squashfs-root/system/etc/binfmt_misc/arm64_dyn
|
||||||
|
|
||||||
|
# add features
|
||||||
|
sed -i '/<\/permissions>/d' ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
sed -i '/<unavailable-feature name=\"android.hardware.wifi\" \/>/d' ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
sed -i '/<unavailable-feature name=\"android.hardware.bluetooth\" \/>/d' ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
|
||||||
|
echo ' <feature name="android.hardware.touchscreen" />
|
||||||
|
<feature name="android.hardware.audio.output" />
|
||||||
|
<feature name="android.hardware.camera" />
|
||||||
|
<feature name="android.hardware.camera.any" />
|
||||||
|
<feature name="android.hardware.location" />
|
||||||
|
<feature name="android.hardware.location.gps" />
|
||||||
|
<feature name="android.hardware.location.network" />
|
||||||
|
<feature name="android.hardware.microphone" />
|
||||||
|
<feature name="android.hardware.screen.portrait" />
|
||||||
|
<feature name="android.hardware.screen.landscape" />
|
||||||
|
<feature name="android.hardware.wifi" />
|
||||||
|
<feature name="android.hardware.bluetooth" />' >> ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
echo '</permissions>' >> ./squashfs-root/system/etc/permissions/anbox.xml
|
||||||
|
|
||||||
|
# set processors
|
||||||
|
sed -i '/^ro.product.cpu.abilist=x86_64,x86/ s/$/,arm64-v8a,armeabi-v7a,armeabi/' ./squashfs-root/system/build.prop
|
||||||
|
sed -i '/^ro.product.cpu.abilist32=x86/ s/$/,armeabi-v7a,armeabi/' ./squashfs-root/system/build.prop
|
||||||
|
sed -i '/^ro.product.cpu.abilist64=x86_64/ s/$/,arm64-v8a/' ./squashfs-root/system/build.prop
|
||||||
|
|
||||||
|
# enable nativebridge
|
||||||
|
echo 'persist.sys.nativebridge=1' >> ./squashfs-root/system/build.prop
|
||||||
|
sed -i 's/ro.dalvik.vm.native.bridge=0/ro.dalvik.vm.native.bridge=libhoudini.so/' ./squashfs-root/default.prop
|
||||||
|
|
||||||
|
# enable opengles
|
||||||
|
echo 'ro.opengles.version=131072' >> ./squashfs-root/system/build.prop
|
||||||
|
|
||||||
|
# install media codecs
|
||||||
|
cp media_codec*.xml ./squashfs-root/system/etc/
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir"
|
||||||
|
|
||||||
|
# repack image
|
||||||
|
mksquashfs ./squashfs-root ./android.img -noappend -b 131072 -comp xz -Xbcj x86
|
||||||
|
|
||||||
|
install -Dm 644 ./android.img "$pkgdir/var/lib/anbox/android.img"
|
||||||
|
}
|
89
src/anbox-image-houdini/media_codecs.xml
Normal file
89
src/anbox-image-houdini/media_codecs.xml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2012 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<!DOCTYPE MediaCodecs [
|
||||||
|
<!ELEMENT Include EMPTY>
|
||||||
|
<!ATTLIST Include href CDATA #REQUIRED>
|
||||||
|
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
|
||||||
|
<!ELEMENT Decoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT Encoders (MediaCodec|Include)*>
|
||||||
|
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
|
||||||
|
<!ATTLIST MediaCodec name CDATA #REQUIRED>
|
||||||
|
<!ATTLIST MediaCodec type CDATA>
|
||||||
|
<!ELEMENT Type EMPTY>
|
||||||
|
<!ATTLIST Type name CDATA #REQUIRED>
|
||||||
|
<!ELEMENT Quirk EMPTY>
|
||||||
|
<!ATTLIST Quirk name CDATA #REQUIRED>
|
||||||
|
]>
|
||||||
|
|
||||||
|
There's a simple and a complex syntax to declare the availability of a
|
||||||
|
media codec:
|
||||||
|
|
||||||
|
A codec that properly follows the OpenMax spec and therefore doesn't have any
|
||||||
|
quirks and that only supports a single content type can be declared like so:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
|
||||||
|
|
||||||
|
If a codec has quirks OR supports multiple content types, the following syntax
|
||||||
|
can be used:
|
||||||
|
|
||||||
|
<MediaCodec name="OMX.foo.bar" >
|
||||||
|
<Type name="something/interesting" />
|
||||||
|
<Type name="something/else" />
|
||||||
|
...
|
||||||
|
<Quirk name="requires-allocate-on-input-ports" />
|
||||||
|
<Quirk name="requires-allocate-on-output-ports" />
|
||||||
|
<Quirk name="output-buffers-are-unreadable" />
|
||||||
|
</MediaCodec>
|
||||||
|
|
||||||
|
Only the three quirks included above are recognized at this point:
|
||||||
|
|
||||||
|
"requires-allocate-on-input-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of input buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"requires-allocate-on-output-ports"
|
||||||
|
must be advertised if the component does not properly support specification
|
||||||
|
of output buffers using the OMX_UseBuffer(...) API but instead requires
|
||||||
|
OMX_AllocateBuffer to be used.
|
||||||
|
|
||||||
|
"output-buffers-are-unreadable"
|
||||||
|
must be advertised if the emitted output buffers of a decoder component
|
||||||
|
are not readable, i.e. use a custom format even though abusing one of
|
||||||
|
the official OMX colorspace constants.
|
||||||
|
Clients of such decoders will not be able to access the decoded data,
|
||||||
|
naturally making the component much less useful. The only use for
|
||||||
|
a component with this quirk is to render the output to the screen.
|
||||||
|
Audio decoders MUST NOT advertise this quirk.
|
||||||
|
Video decoders that advertise this quirk must be accompanied by a
|
||||||
|
corresponding color space converter for thumbnail extraction,
|
||||||
|
matching surfaceflinger support that can render the custom format to
|
||||||
|
a texture and possibly other code, so just DON'T USE THIS QUIRK.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<MediaCodecs>
|
||||||
|
<Settings>
|
||||||
|
<Setting name="supports-multiple-secure-codecs" value="true" />
|
||||||
|
<Setting name="supports-secure-with-non-secure-codec" value="true" />
|
||||||
|
<Setting name="max-video-encoder-input-buffers" value="9" />
|
||||||
|
</Settings>
|
||||||
|
<Include href="media_codecs_google_video.xml" />
|
||||||
|
<Include href="media_codecs_google_audio.xml" />
|
||||||
|
<Include href="media_codecs_google_telephony.xml" />
|
||||||
|
</MediaCodecs>
|
97
src/anbox-image-houdini/media_codecs_google_audio.xml
Normal file
97
src/anbox-image-houdini/media_codecs_google_audio.xml
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg">
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<Limit name="bitrate" range="8000-320000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="4750-12200" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="16000" />
|
||||||
|
<Limit name="bitrate" range="6600-23850" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<Limit name="bitrate" range="8000-960000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-48000" />
|
||||||
|
<Limit name="bitrate" range="64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-48000" />
|
||||||
|
<Limit name="bitrate" range="64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-96000" />
|
||||||
|
<Limit name="bitrate" range="32000-500000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.opus.decoder" type="audio/opus">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="48000" />
|
||||||
|
<Limit name="bitrate" range="6000-510000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.raw.decoder" type="audio/raw">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="8000-96000" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.flac.decoder" type="audio/flac">
|
||||||
|
<Limit name="channel-count" max="8" />
|
||||||
|
<Limit name="sample-rate" ranges="1-655350" />
|
||||||
|
<Limit name="bitrate" range="1-21000000" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm">
|
||||||
|
<Limit name="channel-count" max="6" />
|
||||||
|
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
|
||||||
|
<!-- also may support 64000, 88200 and 96000 Hz -->
|
||||||
|
<Limit name="bitrate" range="8000-960000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="4750-12200" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="16000" />
|
||||||
|
<Limit name="bitrate" range="6600-23850" />
|
||||||
|
<Feature name="bitrate-modes" value="CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.flac.encoder" type="audio/flac">
|
||||||
|
<Limit name="channel-count" max="2" />
|
||||||
|
<Limit name="sample-rate" ranges="1-655350" />
|
||||||
|
<Limit name="bitrate" range="1-21000000" />
|
||||||
|
<Limit name="complexity" range="0-8" default="5" />
|
||||||
|
<Feature name="bitrate-modes" value="CQ" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
25
src/anbox-image-houdini/media_codecs_google_telephony.xml
Normal file
25
src/anbox-image-houdini/media_codecs_google_telephony.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm">
|
||||||
|
<Limit name="channel-count" max="1" />
|
||||||
|
<Limit name="sample-rate" ranges="8000" />
|
||||||
|
<Limit name="bitrate" range="13000" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
</Included>
|
122
src/anbox-image-houdini/media_codecs_google_video.xml
Normal file
122
src/anbox-image-houdini/media_codecs_google_video.xml
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Included>
|
||||||
|
<Decoders>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es">
|
||||||
|
<!-- profiles and levels: ProfileSimple : Level3 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-11880" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45
|
||||||
|
ProfileISWV2 : Level30, ProfileISWV2 : Level45 -->
|
||||||
|
<Limit name="size" min="2x2" max="352x288" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="bitrate" range="1-384000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.decoder" type="video/avc">
|
||||||
|
<!-- profiles and levels: ProfileHigh : Level52 -->
|
||||||
|
<Limit name="size" min="2x2" max="4080x4080" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-32768" /> <!-- max 4096x2048 equivalent -->
|
||||||
|
<Limit name="blocks-per-second" range="1-1966080" />
|
||||||
|
<Limit name="bitrate" range="1-48000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc">
|
||||||
|
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
|
||||||
|
<Limit name="size" min="2x2" max="4096x4096" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="8x8" />
|
||||||
|
<Limit name="block-count" range="1-196608" /> <!-- max 4096x3072 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-2000000" />
|
||||||
|
<Limit name="bitrate" range="1-10000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-1000000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="blocks-per-second" range="1-500000" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="adaptive-playback" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Decoders>
|
||||||
|
|
||||||
|
<Encoders>
|
||||||
|
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level45 -->
|
||||||
|
<Limit name="size" min="176x144" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="bitrate" range="1-128000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.h264.encoder" type="video/avc">
|
||||||
|
<!-- profiles and levels: ProfileBaseline : Level41 -->
|
||||||
|
<Limit name="size" min="16x16" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="block-count" range="1-8192" /> <!-- max 2048x1024 -->
|
||||||
|
<Limit name="blocks-per-second" range="1-245760" />
|
||||||
|
<Limit name="bitrate" range="1-12000000" />
|
||||||
|
<Feature name="intra-refresh" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es">
|
||||||
|
<!-- profiles and levels: ProfileCore : Level2 -->
|
||||||
|
<Limit name="size" min="16x16" max="176x144" />
|
||||||
|
<Limit name="alignment" value="16x16" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<Limit name="blocks-per-second" range="12-1485" />
|
||||||
|
<Limit name="bitrate" range="1-64000" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8">
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<!-- 2016 devices can encode at about 10fps at this block count -->
|
||||||
|
<Limit name="block-count" range="1-16384" />
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
<MediaCodec name="OMX.google.vp9.encoder" type="video/x-vnd.on2.vp9">
|
||||||
|
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
|
||||||
|
<Limit name="size" min="2x2" max="2048x2048" />
|
||||||
|
<Limit name="alignment" value="2x2" />
|
||||||
|
<Limit name="block-size" value="16x16" />
|
||||||
|
<!-- 2016 devices can encode at about 8fps at this block count -->
|
||||||
|
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
|
||||||
|
<Limit name="bitrate" range="1-40000000" />
|
||||||
|
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||||
|
</MediaCodec>
|
||||||
|
</Encoders>
|
||||||
|
</Included>
|
16
src/anbox-image/PKGBUILD
Normal file
16
src/anbox-image/PKGBUILD
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Maintainer: Iwan Timmer <irtimmer@gmail.com>
|
||||||
|
|
||||||
|
pkgname=anbox-image
|
||||||
|
pkgver=2018.07.19
|
||||||
|
pkgrel=1
|
||||||
|
epoch=1
|
||||||
|
pkgdesc="Android image for running in Anbox"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="http://anbox.io/"
|
||||||
|
license=('custom')
|
||||||
|
source=("http://build.anbox.io/android-images/${pkgver//./\/}/android_amd64.img")
|
||||||
|
sha256sums=('6b04cd33d157814deaf92dccf8a23da4dc00b05ca6ce982a03830381896a8cca')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm 644 $srcdir/android_amd64.img $pkgdir/var/lib/anbox/android.img
|
||||||
|
}
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
pkgbase=intellij-idea-ultimate-edition
|
pkgbase=intellij-idea-ultimate-edition
|
||||||
pkgname=(intellij-idea-ultimate-edition intellij-idea-ultimate-edition-jre)
|
pkgname=(intellij-idea-ultimate-edition intellij-idea-ultimate-edition-jre)
|
||||||
pkgver=2020.1.1
|
pkgver=2020.2.3
|
||||||
_buildver=201.7223.91
|
_buildver=202.7660.26
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
arch=('any')
|
arch=('any')
|
||||||
pkgdesc="An intelligent IDE for Java, Groovy and other programming languages with advanced refactoring features intensely focused on developer productivity."
|
pkgdesc="An intelligent IDE for Java, Groovy and other programming languages with advanced refactoring features intensely focused on developer productivity."
|
||||||
@ -12,7 +12,7 @@ license=('Commercial')
|
|||||||
options=(!strip)
|
options=(!strip)
|
||||||
source=("https://download.jetbrains.com/idea/ideaIU-$pkgver.tar.gz"
|
source=("https://download.jetbrains.com/idea/ideaIU-$pkgver.tar.gz"
|
||||||
"jetbrains-idea.desktop")
|
"jetbrains-idea.desktop")
|
||||||
sha256sums=('ca485decf8b91549a1c8e20309a7a7b6a7e032ff96e10fde2ff5dbae9e0108e3'
|
sha256sums=('ca2c9ea47b18f49541020f2d0076066240a5cc6c98ddbcce2a643f47fdf7c260'
|
||||||
'83af2ba8f9f14275a6684e79d6d4bd9b48cd852c047dacfc81324588fa2ff92b')
|
'83af2ba8f9f14275a6684e79d6d4bd9b48cd852c047dacfc81324588fa2ff92b')
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
|
28
src/libhdhomerun/PKGBUILD
Normal file
28
src/libhdhomerun/PKGBUILD
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Maintainer: Louis Tim Larsen <louis(a)louis.dk>, Alex Mekkering <amekkering at gmail dot com>
|
||||||
|
# Contributor: Grey Christoforo <first name [at] last name [dot] net>
|
||||||
|
|
||||||
|
pkgname=libhdhomerun
|
||||||
|
pkgver=20200907
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Library and command line utility for interfacing with HDHomeRun device"
|
||||||
|
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
|
||||||
|
url="http://www.silicondust.com/downloads"
|
||||||
|
license=('LGPL')
|
||||||
|
optdepends=('hdhomerun-firmware-bin: firmware for hdhomerun devices'
|
||||||
|
'hdhomerun_config_gui: hdhomerun configuration gui')
|
||||||
|
|
||||||
|
source=("http://download.silicondust.com/hdhomerun/${pkgname}_${pkgver}.tgz")
|
||||||
|
sha512sums=('872364cc054b77c24ce813d68285ffcbfb31c8ff4f796085a886dc437506e2a86c199615a1ec68818f9e9ed106204a60fd91567ac14f6d82c09f55063dfdabed')
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$srcdir/$pkgname"
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/$pkgname"
|
||||||
|
|
||||||
|
install -D -m 644 *.h -t $pkgdir/usr/include/libhdhomerun/
|
||||||
|
install -D -m 755 libhdhomerun.so $pkgdir/usr/lib/libhdhomerun.so
|
||||||
|
install -D -m 755 hdhomerun_config $pkgdir/usr/bin/hdhomerun_config
|
||||||
|
}
|
@ -1,7 +1,8 @@
|
|||||||
# Maintainer: Olaf Bauer <hydro@freenet.de>
|
# Maintainer: Marcel Korpel <marcel[dot]korpel[at]gmail>
|
||||||
|
# Contributor: Olaf Bauer <hydro@freenet.de>
|
||||||
|
|
||||||
pkgname=makemkv
|
pkgname=makemkv
|
||||||
pkgver=1.15.2
|
pkgver=1.15.3
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="DVD and Blu-ray to MKV converter and network streamer"
|
pkgdesc="DVD and Blu-ray to MKV converter and network streamer"
|
||||||
arch=('i686' 'x86_64')
|
arch=('i686' 'x86_64')
|
||||||
@ -18,11 +19,11 @@ source=(${url}/download/${pkgname}-bin-${pkgver}.tar.gz
|
|||||||
makemkv.1
|
makemkv.1
|
||||||
makemkvcon.1
|
makemkvcon.1
|
||||||
mmdtsdec.1)
|
mmdtsdec.1)
|
||||||
md5sums=('17dd19b4d92354f9489188c4edd2a285'
|
sha256sums=('636dda7ad9f0a8b19a048809fc03f4a02ae1f0fe63a55adc30982673439efa2f'
|
||||||
'96e7282e421127c85405deacff7a2e13'
|
'42bbaaf5828068d175a43b4e869b4ff7952314bd8d03812e44e478bfa5d91c4c'
|
||||||
'1f9b3a91427a2015434e501542443f4c'
|
'5573b2e4bade10d8cd258a7c235eb46f66ef8c8c97e5d5eb090c38fa0f94389b'
|
||||||
'7f4b112c5178860cc2eb25059ae1af2a'
|
'f12c0facf2f0071a9f728b138986f0a4c2b4ff6ace2dfb2e96364e215e9fda6f'
|
||||||
'9476154228bf1b1f983178ba8565ac44')
|
'2a6237d3d5ce073734c658c7ec5d2141ecd0047e6d3c45d1bd594135c928878f')
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "${srcdir}/${pkgname}-oss-${pkgver}"
|
cd "${srcdir}/${pkgname}-oss-${pkgver}"
|
||||||
|
@ -0,0 +1,111 @@
|
|||||||
|
From a7c1f5fce6303a643fadff7d85d59934bd0cf6b6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Aaron Plattner <aplattner@nvidia.com>
|
||||||
|
Date: Mon, 18 May 2020 15:27:01 -0700
|
||||||
|
Subject: [PATCH] nvidia-settings: Make VDPAUDeviceFunctions static to
|
||||||
|
ctkvdpau.c
|
||||||
|
|
||||||
|
GCC 10 defaults to building with -fno-common, which exposes a bug in
|
||||||
|
nvidia-settings: The VDPAUDeviceFunctions structure is defined as global in
|
||||||
|
ctkvdpau.h, so both ctkvdpau.o and ctkwindow.o have it as a global, non-static
|
||||||
|
"tentative definition" symbol. The GCC 10 man page describes it like this:
|
||||||
|
|
||||||
|
-fcommon
|
||||||
|
In C code, this option controls the placement of global variables
|
||||||
|
defined without an initializer, known as tentative definitions in
|
||||||
|
the C standard. Tentative definitions are distinct from
|
||||||
|
declarations of a variable with the "extern" keyword, which do not
|
||||||
|
allocate storage.
|
||||||
|
|
||||||
|
The default is -fno-common, which specifies that the compiler
|
||||||
|
places uninitialized global variables in the BSS section of the
|
||||||
|
object file. This inhibits the merging of tentative definitions by
|
||||||
|
the linker so you get a multiple-definition error if the same
|
||||||
|
variable is accidentally defined in more than one compilation unit.
|
||||||
|
|
||||||
|
The -fcommon places uninitialized global variables in a common
|
||||||
|
block. This allows the linker to resolve all tentative definitions
|
||||||
|
of the same variable in different compilation units to the same
|
||||||
|
object, or to a non-tentative definition. This behavior is
|
||||||
|
inconsistent with C++, and on many targets implies a speed and code
|
||||||
|
size penalty on global variable references. It is mainly useful to
|
||||||
|
enable legacy code to link without errors.
|
||||||
|
|
||||||
|
Since the copy of VDPAUDeviceFunctions in ctkwindow.o is not used, just remove
|
||||||
|
it by moving the definition of this structure into ctkvdpau.c.
|
||||||
|
---
|
||||||
|
src/gtk+-2.x/ctkvdpau.c | 23 +++++++++++++++++++++++
|
||||||
|
src/gtk+-2.x/ctkvdpau.h | 24 ------------------------
|
||||||
|
2 files changed, 23 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/gtk+-2.x/ctkvdpau.c b/src/gtk+-2.x/ctkvdpau.c
|
||||||
|
index 2f120f0..6149c28 100644
|
||||||
|
--- a/src/gtk+-2.x/ctkvdpau.c
|
||||||
|
+++ b/src/gtk+-2.x/ctkvdpau.c
|
||||||
|
@@ -103,6 +103,29 @@ const gchar* __video_mixer_parameter_help =
|
||||||
|
const gchar* __video_mixer_attribute_help =
|
||||||
|
"This shows the video mixer attributes and any applicable ranges.";
|
||||||
|
|
||||||
|
+static struct VDPAUDeviceImpl {
|
||||||
|
+
|
||||||
|
+ VdpGetErrorString *GetErrorString;
|
||||||
|
+ VdpGetProcAddress *GetProcAddress;
|
||||||
|
+ VdpGetApiVersion *GetApiVersion;
|
||||||
|
+ VdpGetInformationString *GetInformationString;
|
||||||
|
+ VdpVideoSurfaceQueryCapabilities *VideoSurfaceQueryCapabilities;
|
||||||
|
+ VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities
|
||||||
|
+ *VideoSurfaceQueryGetPutBitsYCbCrCapabilities;
|
||||||
|
+ VdpOutputSurfaceQueryCapabilities *OutputSurfaceQueryCapabilities;
|
||||||
|
+ VdpOutputSurfaceQueryGetPutBitsNativeCapabilities
|
||||||
|
+ *OutputSurfaceQueryGetPutBitsNativeCapabilities;
|
||||||
|
+ VdpOutputSurfaceQueryPutBitsYCbCrCapabilities
|
||||||
|
+ *OutputSurfaceQueryPutBitsYCbCrCapabilities;
|
||||||
|
+ VdpBitmapSurfaceQueryCapabilities *BitmapSurfaceQueryCapabilities;
|
||||||
|
+ VdpDecoderQueryCapabilities *DecoderQueryCapabilities;
|
||||||
|
+ VdpVideoMixerQueryFeatureSupport *VideoMixerQueryFeatureSupport;
|
||||||
|
+ VdpVideoMixerQueryParameterSupport *VideoMixerQueryParameterSupport;
|
||||||
|
+ VdpVideoMixerQueryAttributeSupport *VideoMixerQueryAttributeSupport;
|
||||||
|
+ VdpVideoMixerQueryParameterValueRange *VideoMixerQueryParameterValueRange;
|
||||||
|
+ VdpVideoMixerQueryAttributeValueRange *VideoMixerQueryAttributeValueRange;
|
||||||
|
+} VDPAUDeviceFunctions;
|
||||||
|
+
|
||||||
|
static int queryOutputSurface(CtkVDPAU *ctk_vdpau, VdpDevice device,
|
||||||
|
VdpGetProcAddress *getProcAddress);
|
||||||
|
|
||||||
|
diff --git a/src/gtk+-2.x/ctkvdpau.h b/src/gtk+-2.x/ctkvdpau.h
|
||||||
|
index ec58d36..2652f6f 100644
|
||||||
|
--- a/src/gtk+-2.x/ctkvdpau.h
|
||||||
|
+++ b/src/gtk+-2.x/ctkvdpau.h
|
||||||
|
@@ -45,30 +45,6 @@ G_BEGIN_DECLS
|
||||||
|
#define CTK_VDPAU_GET_CLASS(obj) \
|
||||||
|
(G_TYPE_INSTANCE_GET_CLASS ((obj), CTK_TYPE_VDPAU, CtkVDPAUClass))
|
||||||
|
|
||||||
|
-
|
||||||
|
-struct VDPAUDeviceImpl {
|
||||||
|
-
|
||||||
|
- VdpGetErrorString *GetErrorString;
|
||||||
|
- VdpGetProcAddress *GetProcAddress;
|
||||||
|
- VdpGetApiVersion *GetApiVersion;
|
||||||
|
- VdpGetInformationString *GetInformationString;
|
||||||
|
- VdpVideoSurfaceQueryCapabilities *VideoSurfaceQueryCapabilities;
|
||||||
|
- VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities
|
||||||
|
- *VideoSurfaceQueryGetPutBitsYCbCrCapabilities;
|
||||||
|
- VdpOutputSurfaceQueryCapabilities *OutputSurfaceQueryCapabilities;
|
||||||
|
- VdpOutputSurfaceQueryGetPutBitsNativeCapabilities
|
||||||
|
- *OutputSurfaceQueryGetPutBitsNativeCapabilities;
|
||||||
|
- VdpOutputSurfaceQueryPutBitsYCbCrCapabilities
|
||||||
|
- *OutputSurfaceQueryPutBitsYCbCrCapabilities;
|
||||||
|
- VdpBitmapSurfaceQueryCapabilities *BitmapSurfaceQueryCapabilities;
|
||||||
|
- VdpDecoderQueryCapabilities *DecoderQueryCapabilities;
|
||||||
|
- VdpVideoMixerQueryFeatureSupport *VideoMixerQueryFeatureSupport;
|
||||||
|
- VdpVideoMixerQueryParameterSupport *VideoMixerQueryParameterSupport;
|
||||||
|
- VdpVideoMixerQueryAttributeSupport *VideoMixerQueryAttributeSupport;
|
||||||
|
- VdpVideoMixerQueryParameterValueRange *VideoMixerQueryParameterValueRange;
|
||||||
|
- VdpVideoMixerQueryAttributeValueRange *VideoMixerQueryAttributeValueRange;
|
||||||
|
-} VDPAUDeviceFunctions;
|
||||||
|
-
|
||||||
|
/* Generic description structure */
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
70
src/nvidia-390xx-settings/PKGBUILD
Normal file
70
src/nvidia-390xx-settings/PKGBUILD
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
# Maintainer: Alonso Rodriguez <alonsorodi20 (at) gmail (dot) com>
|
||||||
|
# Maintainer: Sven-Hendrik Haase <svenstaro@gmail.com>
|
||||||
|
|
||||||
|
pkgbase=nvidia-390xx-settings
|
||||||
|
pkgname=('nvidia-390xx-settings' 'libxnvctrl-390xx')
|
||||||
|
pkgver=390.138
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc='Tool for configuring the NVIDIA graphics driver, 390xx legacy branch'
|
||||||
|
url='https://github.com/NVIDIA/nvidia-settings'
|
||||||
|
arch=('x86_64')
|
||||||
|
license=('GPL2')
|
||||||
|
makedepends=('git' 'inetutils' 'gtk2' 'jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-390xx-utils' 'libxext')
|
||||||
|
options=('staticlibs')
|
||||||
|
source=(nvidia-settings-${pkgver}.tar.gz::https://github.com/NVIDIA/nvidia-settings/archive/${pkgver}.tar.gz
|
||||||
|
libxnvctrl_so.patch
|
||||||
|
0001-nvidia-settings-Make-VDPAUDeviceFunctions-static-to-.patch)
|
||||||
|
sha512sums=('c27c8dbb858f06982e251bd3bf49650d05ca8811d61eb342b43bf00bc595b8d789b38b7ebd76b9ab5786ec5bee84b1cb44ee3f3fb24c40dee1b1b9d535993eb6'
|
||||||
|
'f69f5dc84fe624579a3c9ce877f4ae4e34c2184877576afbea07b8abdd7ff01e470517f2b77cd11a904518cbcb83fb388ca1d08888006f0ef2854723920c9cf8'
|
||||||
|
'0fd6355a10dfecb3636764f40eb0d4a4625f69e48fb653060f40e2bde8bf51eb04ae08be8751163d94e022c6f595a9756cde9d8404a556a4a83e3b5b74052c53')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd nvidia-settings-${pkgver}
|
||||||
|
patch -p1 < "${srcdir}/libxnvctrl_so.patch"
|
||||||
|
patch -p1 < "${srcdir}/0001-nvidia-settings-Make-VDPAUDeviceFunctions-static-to-.patch"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
# Set env variables
|
||||||
|
export PREFIX=/usr
|
||||||
|
export NV_USE_BUNDLED_LIBJANSSON=0
|
||||||
|
|
||||||
|
cd nvidia-settings-${pkgver}
|
||||||
|
make
|
||||||
|
make -C src/libXNVCtrl
|
||||||
|
}
|
||||||
|
|
||||||
|
package_nvidia-390xx-settings() {
|
||||||
|
depends=('jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidia-390xx-utils' 'libxnvctrl-390xx')
|
||||||
|
conflicts=('nvidia-settings')
|
||||||
|
provides=('nvidia-settings')
|
||||||
|
|
||||||
|
cd nvidia-settings-${pkgver}
|
||||||
|
make DESTDIR="${pkgdir}" install
|
||||||
|
|
||||||
|
install -D -m644 doc/nvidia-settings.desktop "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
|
||||||
|
install -D -m644 doc/nvidia-settings.png "${pkgdir}/usr/share/pixmaps/nvidia-settings.png"
|
||||||
|
sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i "${pkgdir}/usr/share/applications/nvidia-settings.desktop"
|
||||||
|
|
||||||
|
rm "$pkgdir/usr/lib/libnvidia-gtk2.so.$pkgver"
|
||||||
|
}
|
||||||
|
|
||||||
|
package_libxnvctrl-390xx() {
|
||||||
|
depends=('libxext')
|
||||||
|
conflicts=('libxnvctrl')
|
||||||
|
provides=('libxnvctrl')
|
||||||
|
pkgdesc='NVIDIA NV-CONTROL X extension, 390xx legacy branch'
|
||||||
|
|
||||||
|
cd nvidia-settings-${pkgver}
|
||||||
|
install -Dm 644 doc/{NV-CONTROL-API.txt,FRAMELOCK.txt} -t "${pkgdir}/usr/share/doc/${pkgname}"
|
||||||
|
install -Dm 644 samples/{Makefile,README,*.c,*.h,*.mk} -t "${pkgdir}/usr/share/doc/${pkgname}/samples"
|
||||||
|
|
||||||
|
cd src/libXNVCtrl
|
||||||
|
install -Dm 644 *.h -t "${pkgdir}/usr/include/NVCtrl"
|
||||||
|
install -Dm 644 libXNVCtrl.a -t "${pkgdir}/usr/lib"
|
||||||
|
install -Dm 755 libXNVCtrl.so.0.0.0 -t "${pkgdir}/usr/lib"
|
||||||
|
ln -s libXNVCtrl.so.0.0.0 "${pkgdir}/usr/lib/libXNVCtrl.so.0"
|
||||||
|
ln -s libXNVCtrl.so.0 "${pkgdir}/usr/lib/libXNVCtrl.so"
|
||||||
|
}
|
||||||
|
|
||||||
|
# vim: ts=2 sw=2 et:
|
67
src/nvidia-390xx-settings/libxnvctrl_so.patch
Normal file
67
src/nvidia-390xx-settings/libxnvctrl_so.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
--- a/src/Makefile
|
||||||
|
+++ b/src/Makefile
|
||||||
|
@@ -106,6 +106,8 @@
|
||||||
|
XNVCTRL_DIR ?= libXNVCtrl
|
||||||
|
XNVCTRL_MAKEFILE ?= Makefile
|
||||||
|
XNVCTRL_ARCHIVE ?= $(XNVCTRL_DIR)/libXNVCtrl.a
|
||||||
|
+XNVCTRL_SHARED ?= $(XNVCTRL_DIR)/libXNVCtrl.so.0
|
||||||
|
+XNVCTRL_LIB ?= $(XNVCTRL_SHARED)
|
||||||
|
XCONFIG_PARSER_DIR ?= XF86Config-parser
|
||||||
|
COMMON_UTILS_DIR ?= common-utils
|
||||||
|
COMMON_UNIX_DIR ?= common-unix
|
||||||
|
@@ -280,15 +282,18 @@
|
||||||
|
$(MKDIR) $(BINDIR)
|
||||||
|
$(INSTALL) $(INSTALL_BIN_ARGS) $< $(BINDIR)/$(notdir $<)
|
||||||
|
|
||||||
|
+$(XNVCTRL_ARCHIVE) $(XNVCTRL_SHARED):
|
||||||
|
+ $(MAKE) -C $(XNVCTRL_DIR)
|
||||||
|
+
|
||||||
|
$(eval $(call DEBUG_INFO_RULES, $(NVIDIA_SETTINGS)))
|
||||||
|
-$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(XNVCTRL_ARCHIVE)
|
||||||
|
+$(NVIDIA_SETTINGS).unstripped: $(OBJS) $(XNVCTRL_LIB)
|
||||||
|
$(call quiet_cmd,LINK) $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
|
||||||
|
- -rdynamic -o $@ $(OBJS) $(XNVCTRL_ARCHIVE) $(LIBS)
|
||||||
|
+ -rdynamic -o $@ $(OBJS) $(XNVCTRL_LIB) $(LIBS)
|
||||||
|
|
||||||
|
$(eval $(call DEBUG_INFO_RULES, $(GTK2LIB)))
|
||||||
|
$(GTK2LIB).unstripped: $(GTK2_OBJS) $(XCP_OBJS) $(IMAGE_OBJS) $(VERSION_MK)
|
||||||
|
$(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
|
||||||
|
- $(XNVCTRL_ARCHIVE) $(LIBS) $(GTK2_LIBS) \
|
||||||
|
+ $(XNVCTRL_LIB) $(LIBS) $(GTK2_LIBS) \
|
||||||
|
-Wl,--unresolved-symbols=ignore-all -o $@ \
|
||||||
|
-Wl,-soname -Wl,$(GTK2LIB_SONAME) \
|
||||||
|
$(GTK2_OBJS) $(XCP_OBJS)
|
||||||
|
@@ -297,7 +302,7 @@
|
||||||
|
$(eval $(call DEBUG_INFO_RULES, $(GTK3LIB)))
|
||||||
|
$(GTK3LIB).unstripped: $(GTK3_OBJS) $(XCP_OBJS) $(VERSION_MK)
|
||||||
|
$(call quiet_cmd,LINK) -shared $(CFLAGS) $(LDFLAGS) $(BIN_LDFLAGS) \
|
||||||
|
- $(XNVCTRL_ARCHIVE) $(LIBS) $(GTK3_LIBS) \
|
||||||
|
+ $(XNVCTRL_LIB) $(LIBS) $(GTK3_LIBS) \
|
||||||
|
-Wl,--unresolved-symbols=ignore-all -o $@ \
|
||||||
|
-Wl,-soname -Wl,$(GTK3LIB_SONAME) \
|
||||||
|
$(GTK3_OBJS) $(XCP_OBJS)
|
||||||
|
--- a/src/libXNVCtrl/Makefile
|
||||||
|
+++ b/src/libXNVCtrl/Makefile
|
||||||
|
@@ -55,10 +55,17 @@
|
||||||
|
.PHONY: clean
|
||||||
|
|
||||||
|
all: $(LIBXNVCTRL)
|
||||||
|
+all: libXNVCtrl.so
|
||||||
|
|
||||||
|
$(LIBXNVCTRL) : $(OBJS)
|
||||||
|
$(AR) ru $@ $(OBJS)
|
||||||
|
|
||||||
|
+libXNVCtrl.so: $(OBJS)
|
||||||
|
+ $(RM) $@ $@.*
|
||||||
|
+ $(CC) -shared -Wl,-soname=$@.0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11
|
||||||
|
+ ln -s $@.0.0.0 $@.0
|
||||||
|
+ ln -s $@.0 $@
|
||||||
|
+
|
||||||
|
# define the rule to build each object file
|
||||||
|
$(foreach src,$(SRC),$(eval $(call DEFINE_OBJECT_RULE,TARGET,$(src))))
|
||||||
|
|
||||||
|
@@ -68,3 +75,4 @@
|
||||||
|
clean:
|
||||||
|
rm -rf $(LIBXNVCTRL) *~ $(STAMP_C) \
|
||||||
|
$(OUTPUTDIR)/*.o $(OUTPUTDIR)/*.d
|
||||||
|
+ rm -f libXNVCtrl.so libXNVCtrl.so.*
|
171
src/nvidia-390xx-utils/PKGBUILD
Normal file
171
src/nvidia-390xx-utils/PKGBUILD
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
# Maintainer: Alonso Rodriguez <alonsorodi20 (at) gmail (dot) com>
|
||||||
|
# Maintainer: Sven-Hendrik Haase <svenstaro@gmail.com>
|
||||||
|
# Maintainer: Thomas Baechler <thomas@archlinux.org>
|
||||||
|
# Contributor: James Rayner <iphitus@gmail.com>
|
||||||
|
|
||||||
|
pkgbase=nvidia-390xx-utils
|
||||||
|
pkgname=('nvidia-390xx-utils' 'opencl-nvidia-390xx')
|
||||||
|
pkgver=390.138
|
||||||
|
pkgrel=3
|
||||||
|
arch=('x86_64')
|
||||||
|
url="http://www.nvidia.com/"
|
||||||
|
license=('custom')
|
||||||
|
options=('!strip')
|
||||||
|
_pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
|
||||||
|
source=('nvidia-drm-outputclass.conf'
|
||||||
|
'nvidia-390xx-utils.sysusers'
|
||||||
|
'nvidia-390xx-utils.install'
|
||||||
|
"https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run")
|
||||||
|
sha512sums=('de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770'
|
||||||
|
'4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499'
|
||||||
|
'1fde155171701e8dac7e58b3ef8f62b7810a959ec664950ac7b791aca4e6776ff5540cb5819e44ccce46b2d42c087ac43c80ad1182a484e4d75e9b4374516137'
|
||||||
|
'a4e6e63cbd74d25c5bef8efee64828acf45e89a27d1a677eab04a9a10fd10eb77bd28d17aab2009b282ae3db97e810b1c07aab80c257e8d981e6a8512c79f789')
|
||||||
|
|
||||||
|
|
||||||
|
create_links() {
|
||||||
|
# create soname links
|
||||||
|
find "$pkgdir" -type f -name '*.so*' ! -path '*xorg/*' -print0 | while read -d $'\0' _lib; do
|
||||||
|
_soname=$(dirname "${_lib}")/$(readelf -d "${_lib}" | grep -Po 'SONAME.*: \[\K[^]]*' || true)
|
||||||
|
_base=$(echo ${_soname} | sed -r 's/(.*).so.*/\1.so/')
|
||||||
|
[[ -e "${_soname}" ]] || ln -s $(basename "${_lib}") "${_soname}"
|
||||||
|
[[ -e "${_base}" ]] || ln -s $(basename "${_soname}") "${_base}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
sh "${_pkg}.run" --extract-only
|
||||||
|
cd "${_pkg}"
|
||||||
|
bsdtar -xf nvidia-persistenced-init.tar.bz2
|
||||||
|
|
||||||
|
sed -i 's/__NV_VK_ICD__/libGLX_nvidia.so.0/' nvidia_icd.json.template
|
||||||
|
}
|
||||||
|
|
||||||
|
package_opencl-nvidia-390xx() {
|
||||||
|
pkgdesc="OpenCL implemention for NVIDIA"
|
||||||
|
depends=('zlib')
|
||||||
|
optdepends=('opencl-headers: headers necessary for OpenCL development')
|
||||||
|
conflicts=('opencl-nvidia')
|
||||||
|
provides=('opencl-nvidia' 'opencl-driver')
|
||||||
|
cd "${_pkg}"
|
||||||
|
|
||||||
|
# OpenCL
|
||||||
|
install -D -m644 nvidia.icd "${pkgdir}/etc/OpenCL/vendors/nvidia.icd"
|
||||||
|
install -D -m755 "libnvidia-compiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-compiler.so.${pkgver}"
|
||||||
|
install -D -m755 "libnvidia-opencl.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-opencl.so.${pkgver}"
|
||||||
|
|
||||||
|
create_links
|
||||||
|
|
||||||
|
mkdir -p "${pkgdir}/usr/share/licenses"
|
||||||
|
ln -s nvidia "${pkgdir}/usr/share/licenses/opencl-nvidia"
|
||||||
|
}
|
||||||
|
|
||||||
|
package_nvidia-390xx-utils() {
|
||||||
|
pkgdesc="NVIDIA drivers utilities"
|
||||||
|
depends=('xorg-server' 'libglvnd' 'egl-wayland')
|
||||||
|
optdepends=('nvidia-390xx-settings: configuration tool'
|
||||||
|
'xorg-server-devel: nvidia-xconfig'
|
||||||
|
'opencl-nvidia-390xx: OpenCL support')
|
||||||
|
conflicts=('nvidia-390xx-libgl' 'nvidia-utils' 'nvidia-libgl')
|
||||||
|
provides=('vulkan-driver' 'opengl-driver' 'nvidia-utils' 'nvidia-390xx-libgl' 'nvidia-libgl')
|
||||||
|
replaces=('nvidia-390xx-libgl')
|
||||||
|
install="${pkgname}.install"
|
||||||
|
|
||||||
|
cd "${_pkg}"
|
||||||
|
|
||||||
|
# X driver
|
||||||
|
install -D -m755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
|
||||||
|
|
||||||
|
# GLX extension module for X
|
||||||
|
install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.${pkgver}"
|
||||||
|
ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.1" # X doesn't find glx otherwise
|
||||||
|
ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so" # X doesn't find glx otherwise
|
||||||
|
|
||||||
|
install -D -m755 "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_nvidia.so.${pkgver}"
|
||||||
|
# now in mesa driver
|
||||||
|
#ln -s "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_indirect.so.0"
|
||||||
|
|
||||||
|
# OpenGL libraries
|
||||||
|
install -D -m755 "libEGL_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libEGL_nvidia.so.${pkgver}"
|
||||||
|
install -D -m755 "libGLESv1_CM_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM_nvidia.so.${pkgver}"
|
||||||
|
install -D -m755 "libGLESv2_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv2_nvidia.so.${pkgver}"
|
||||||
|
install -D -m644 "10_nvidia.json" "${pkgdir}/usr/share/glvnd/egl_vendor.d/10_nvidia.json"
|
||||||
|
|
||||||
|
# OpenGL core library
|
||||||
|
install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
|
||||||
|
install -D -m755 "libnvidia-eglcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-eglcore.so.${pkgver}"
|
||||||
|
install -D -m755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glsi.so.${pkgver}"
|
||||||
|
|
||||||
|
# misc
|
||||||
|
install -D -m755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ifr.so.${pkgver}"
|
||||||
|
install -D -m755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fbc.so.${pkgver}"
|
||||||
|
install -D -m755 "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-encode.so.${pkgver}"
|
||||||
|
install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}"
|
||||||
|
install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}"
|
||||||
|
|
||||||
|
# Vulkan ICD
|
||||||
|
install -D -m644 "nvidia_icd.json.template" "${pkgdir}/usr/share/vulkan/icd.d/nvidia_icd.json"
|
||||||
|
|
||||||
|
# VDPAU
|
||||||
|
install -D -m755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
|
||||||
|
|
||||||
|
# nvidia-tls library
|
||||||
|
install -D -m755 "libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
|
||||||
|
install -D -m755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/tls/libnvidia-tls.so.${pkgver}"
|
||||||
|
|
||||||
|
# CUDA
|
||||||
|
install -D -m755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
|
||||||
|
install -D -m755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}"
|
||||||
|
|
||||||
|
# PTX JIT Compiler (Parallel Thread Execution (PTX) is a pseudo-assembly language for CUDA)
|
||||||
|
install -D -m755 "libnvidia-ptxjitcompiler.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ptxjitcompiler.so.${pkgver}"
|
||||||
|
|
||||||
|
# Fat (multiarchitecture) binary loader
|
||||||
|
install -D -m755 "libnvidia-fatbinaryloader.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fatbinaryloader.so.${pkgver}"
|
||||||
|
|
||||||
|
# DEBUG
|
||||||
|
install -D -m755 nvidia-debugdump "${pkgdir}/usr/bin/nvidia-debugdump"
|
||||||
|
|
||||||
|
# nvidia-xconfig
|
||||||
|
install -D -m755 nvidia-xconfig "${pkgdir}/usr/bin/nvidia-xconfig"
|
||||||
|
install -D -m644 nvidia-xconfig.1.gz "${pkgdir}/usr/share/man/man1/nvidia-xconfig.1.gz"
|
||||||
|
|
||||||
|
# nvidia-bug-report
|
||||||
|
install -D -m755 nvidia-bug-report.sh "${pkgdir}/usr/bin/nvidia-bug-report.sh"
|
||||||
|
|
||||||
|
# nvidia-smi
|
||||||
|
install -D -m755 nvidia-smi "${pkgdir}/usr/bin/nvidia-smi"
|
||||||
|
install -D -m644 nvidia-smi.1.gz "${pkgdir}/usr/share/man/man1/nvidia-smi.1.gz"
|
||||||
|
|
||||||
|
# nvidia-cuda-mps
|
||||||
|
install -D -m755 nvidia-cuda-mps-server "${pkgdir}/usr/bin/nvidia-cuda-mps-server"
|
||||||
|
install -D -m755 nvidia-cuda-mps-control "${pkgdir}/usr/bin/nvidia-cuda-mps-control"
|
||||||
|
install -D -m644 nvidia-cuda-mps-control.1.gz "${pkgdir}/usr/share/man/man1/nvidia-cuda-mps-control.1.gz"
|
||||||
|
|
||||||
|
# nvidia-modprobe
|
||||||
|
# This should be removed if nvidia fixed their uvm module!
|
||||||
|
install -D -m4755 nvidia-modprobe "${pkgdir}/usr/bin/nvidia-modprobe"
|
||||||
|
install -D -m644 nvidia-modprobe.1.gz "${pkgdir}/usr/share/man/man1/nvidia-modprobe.1.gz"
|
||||||
|
|
||||||
|
# nvidia-persistenced
|
||||||
|
install -D -m755 nvidia-persistenced "${pkgdir}/usr/bin/nvidia-persistenced"
|
||||||
|
install -D -m644 nvidia-persistenced.1.gz "${pkgdir}/usr/share/man/man1/nvidia-persistenced.1.gz"
|
||||||
|
install -D -m644 nvidia-persistenced-init/systemd/nvidia-persistenced.service.template "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service"
|
||||||
|
sed -i 's/__USER__/nvidia-persistenced/' "${pkgdir}/usr/lib/systemd/system/nvidia-persistenced.service"
|
||||||
|
|
||||||
|
# application profiles
|
||||||
|
install -D -m644 nvidia-application-profiles-${pkgver}-rc "${pkgdir}/usr/share/nvidia/nvidia-application-profiles-${pkgver}-rc"
|
||||||
|
install -D -m644 nvidia-application-profiles-${pkgver}-key-documentation "${pkgdir}/usr/share/nvidia/nvidia-application-profiles-${pkgver}-key-documentation"
|
||||||
|
|
||||||
|
install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/nvidia-utils/LICENSE"
|
||||||
|
install -D -m644 README.txt "${pkgdir}/usr/share/doc/nvidia/README"
|
||||||
|
install -D -m644 NVIDIA_Changelog "${pkgdir}/usr/share/doc/nvidia/NVIDIA_Changelog"
|
||||||
|
cp -r html "${pkgdir}/usr/share/doc/nvidia/"
|
||||||
|
ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-utils"
|
||||||
|
|
||||||
|
# distro specific files must be installed in /usr/share/X11/xorg.conf.d
|
||||||
|
install -D -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf"
|
||||||
|
|
||||||
|
install -Dm644 "${srcdir}/nvidia-390xx-utils.sysusers" "${pkgdir}/usr/lib/sysusers.d/$pkgname.conf"
|
||||||
|
|
||||||
|
create_links
|
||||||
|
}
|
7
src/nvidia-390xx-utils/nvidia-390xx-utils.install
Normal file
7
src/nvidia-390xx-utils/nvidia-390xx-utils.install
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
post_upgrade() {
|
||||||
|
echo "If you run into trouble with CUDA not being available, run nvidia-modprobe first."
|
||||||
|
}
|
||||||
|
|
||||||
|
post_install() {
|
||||||
|
post_upgrade
|
||||||
|
}
|
1
src/nvidia-390xx-utils/nvidia-390xx-utils.sysusers
Normal file
1
src/nvidia-390xx-utils/nvidia-390xx-utils.sysusers
Normal file
@ -0,0 +1 @@
|
|||||||
|
u nvidia-persistenced 143 'NVIDIA Persistence Daemon'
|
8
src/nvidia-390xx-utils/nvidia-drm-outputclass.conf
Normal file
8
src/nvidia-390xx-utils/nvidia-drm-outputclass.conf
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Section "OutputClass"
|
||||||
|
Identifier "nvidia"
|
||||||
|
MatchDriver "nvidia-drm"
|
||||||
|
Driver "nvidia"
|
||||||
|
Option "AllowEmptyInitialConfiguration"
|
||||||
|
ModulePath "/usr/lib/nvidia/xorg"
|
||||||
|
ModulePath "/usr/lib/xorg/modules"
|
||||||
|
EndSection
|
104
src/nvidia-390xx/PKGBUILD
Normal file
104
src/nvidia-390xx/PKGBUILD
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
# Maintainer: Alonso Rodriguez <alonsorodi20 (at) gmail (dot) com>
|
||||||
|
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
|
||||||
|
# Maintainer: Felix Yan <felixonmars@archlinux.org>
|
||||||
|
# Contributor: Thomas Baechler <thomas@archlinux.org>
|
||||||
|
|
||||||
|
pkgbase=nvidia-390xx
|
||||||
|
pkgname=(nvidia-390xx nvidia-390xx-dkms)
|
||||||
|
pkgver=390.138
|
||||||
|
pkgrel=5
|
||||||
|
pkgdesc="NVIDIA drivers for linux, 390xx legacy branch"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://www.nvidia.com/"
|
||||||
|
makedepends=("nvidia-390xx-utils=${pkgver}" 'libglvnd' 'linux-headers')
|
||||||
|
conflicts=('nvidia')
|
||||||
|
license=('custom')
|
||||||
|
options=('!strip')
|
||||||
|
_pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
|
||||||
|
source=("https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run"
|
||||||
|
'kernel-4.16.patch'
|
||||||
|
'kernel-5.8.patch')
|
||||||
|
sha256sums=('a34a19b618be0eb06c4699247489833a8f22c59423f246248614e0a59b1508da'
|
||||||
|
'622ac792ec200b2239cb663c0010392118b78c9904973d82cd261165c16d6385'
|
||||||
|
'e3df2945e29a9834d2c1c21eb6871b1672f25bd809b413cd5e0b45d0d2c815a5')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
sh "${_pkg}.run" --extract-only
|
||||||
|
cd "${_pkg}"
|
||||||
|
|
||||||
|
# Restore phys_to_dma support (still needed for 396.18) (and still needed for 390.138)
|
||||||
|
# https://bugs.archlinux.org/task/58074
|
||||||
|
patch -Np1 -i ../kernel-4.16.patch
|
||||||
|
|
||||||
|
# 5.8 Patch
|
||||||
|
patch -Np1 -i ../kernel-5.8.patch
|
||||||
|
|
||||||
|
|
||||||
|
## OLD PATCHES [390.132] ##
|
||||||
|
|
||||||
|
# Patch to avoid screen tearing on Optimus Systems [Geeko]
|
||||||
|
# patch -Np1 -i ../kernel-5.5.patch
|
||||||
|
|
||||||
|
# Patch to make it compile under linux 5.6
|
||||||
|
# patch -Np1 -i ../kernel-5.6.patch
|
||||||
|
|
||||||
|
# Patch to make it compile under linux 5.7 - Courtesy of openglfreak
|
||||||
|
# patch -Np1 -i ../kernel-5.7.patch
|
||||||
|
|
||||||
|
###########################
|
||||||
|
|
||||||
|
cp -a kernel kernel-dkms
|
||||||
|
cd kernel-dkms
|
||||||
|
sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf
|
||||||
|
sed -i 's/__JOBS/`nproc`/' dkms.conf
|
||||||
|
sed -i 's/__DKMS_MODULES//' dkms.conf
|
||||||
|
sed -i '$iBUILT_MODULE_NAME[0]="nvidia"\
|
||||||
|
DEST_MODULE_LOCATION[0]="/kernel/drivers/video"\
|
||||||
|
BUILT_MODULE_NAME[1]="nvidia-uvm"\
|
||||||
|
DEST_MODULE_LOCATION[1]="/kernel/drivers/video"\
|
||||||
|
BUILT_MODULE_NAME[2]="nvidia-modeset"\
|
||||||
|
DEST_MODULE_LOCATION[2]="/kernel/drivers/video"\
|
||||||
|
BUILT_MODULE_NAME[3]="nvidia-drm"\
|
||||||
|
DEST_MODULE_LOCATION[3]="/kernel/drivers/video"' dkms.conf
|
||||||
|
|
||||||
|
# Gift for linux-rt guys
|
||||||
|
sed -i 's/NV_EXCLUDE_BUILD_MODULES/IGNORE_PREEMPT_RT_PRESENCE=1 NV_EXCLUDE_BUILD_MODULES/' dkms.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "${_pkg}"/kernel
|
||||||
|
make SYSSRC=/usr/src/linux module
|
||||||
|
}
|
||||||
|
|
||||||
|
package_nvidia-390xx() {
|
||||||
|
pkgdesc="NVIDIA drivers for linux, 390xx legacy branch"
|
||||||
|
depends=('linux' "nvidia-390xx-utils=${pkgver}" 'libglvnd')
|
||||||
|
|
||||||
|
_extradir="/usr/lib/modules/$(</usr/src/linux/version)/extramodules"
|
||||||
|
install -Dt "${pkgdir}${_extradir}" -m644 \
|
||||||
|
"${srcdir}/${_pkg}/kernel"/nvidia{,-modeset,-drm,-uvm}.ko
|
||||||
|
|
||||||
|
find "${pkgdir}" -name '*.ko' -exec gzip -n {} +
|
||||||
|
|
||||||
|
echo "blacklist nouveau" |
|
||||||
|
install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
|
||||||
|
|
||||||
|
install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 "${srcdir}/${_pkg}/LICENSE"
|
||||||
|
}
|
||||||
|
|
||||||
|
package_nvidia-390xx-dkms() {
|
||||||
|
pkgdesc="NVIDIA driver sources for linux, 390xx legacy branch"
|
||||||
|
depends=('dkms' "nvidia-390xx-utils=$pkgver" 'libglvnd')
|
||||||
|
provides=("nvidia-390xx=$pkgver")
|
||||||
|
conflicts+=('nvidia-390xx')
|
||||||
|
|
||||||
|
cd ${_pkg}
|
||||||
|
|
||||||
|
install -dm 755 "${pkgdir}"/usr/src
|
||||||
|
cp -dr --no-preserve='ownership' kernel-dkms "${pkgdir}/usr/src/nvidia-${pkgver}"
|
||||||
|
|
||||||
|
echo "blacklist nouveau" |
|
||||||
|
install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/${pkgname}.conf"
|
||||||
|
|
||||||
|
install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 "${srcdir}/${_pkg}/LICENSE"
|
||||||
|
}
|
33
src/nvidia-390xx/kernel-4.16.patch
Normal file
33
src/nvidia-390xx/kernel-4.16.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h
|
||||||
|
index 10fc418..22ef968 100644
|
||||||
|
--- a/kernel/common/inc/nv-linux.h
|
||||||
|
+++ b/kernel/common/inc/nv-linux.h
|
||||||
|
@@ -175,7 +175,11 @@ static inline uid_t __kuid_val(kuid_t uid)
|
||||||
|
|
||||||
|
#if defined(NV_VM_INSERT_PAGE_PRESENT)
|
||||||
|
#include <linux/pagemap.h>
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)
|
||||||
|
#include <linux/dma-mapping.h>
|
||||||
|
+#else
|
||||||
|
+#include <linux/dma-direct.h>
|
||||||
|
+#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(CONFIG_SWIOTLB) && defined(NVCPU_AARCH64)
|
||||||
|
diff --git a/kernel/conftest.sh b/kernel/conftest.sh
|
||||||
|
index b23dbb4..42dc576 100755
|
||||||
|
--- a/kernel/conftest.sh
|
||||||
|
+++ b/kernel/conftest.sh
|
||||||
|
@@ -1906,7 +1906,12 @@ compile_test() {
|
||||||
|
# Determine if the phys_to_dma function is present.
|
||||||
|
#
|
||||||
|
CODE="
|
||||||
|
+ #include <linux/version.h>
|
||||||
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 16, 0)
|
||||||
|
#include <linux/dma-mapping.h>
|
||||||
|
+#else
|
||||||
|
+ #include <linux/dma-direct.h>
|
||||||
|
+#endif
|
||||||
|
void conftest_phys_to_dma(void) {
|
||||||
|
phys_to_dma();
|
||||||
|
}"
|
96
src/nvidia-390xx/kernel-5.8.patch
Normal file
96
src/nvidia-390xx/kernel-5.8.patch
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
diff --git a/kernel/common/inc/nv-linux.h b/kernel/common/inc/nv-linux.h
|
||||||
|
index ac5bb95..3d2f0b7 100644
|
||||||
|
--- a/kernel/common/inc/nv-linux.h
|
||||||
|
+++ b/kernel/common/inc/nv-linux.h
|
||||||
|
@@ -531,7 +531,11 @@ extern int nv_pat_mode;
|
||||||
|
|
||||||
|
static inline void *nv_vmalloc(unsigned long size)
|
||||||
|
{
|
||||||
|
+#if defined(NV_VMALLOC_HAS_PGPROT_T_ARG)
|
||||||
|
void *ptr = __vmalloc(size, GFP_KERNEL, PAGE_KERNEL);
|
||||||
|
+#else
|
||||||
|
+ void *ptr = __vmalloc(size, GFP_KERNEL);
|
||||||
|
+#endif
|
||||||
|
if (ptr)
|
||||||
|
NV_MEMDBG_ADD(ptr, size);
|
||||||
|
return ptr;
|
||||||
|
diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h
|
||||||
|
index 1270bf3..d2d7657 100644
|
||||||
|
--- a/kernel/common/inc/nv-mm.h
|
||||||
|
+++ b/kernel/common/inc/nv-mm.h
|
||||||
|
@@ -29,6 +29,10 @@
|
||||||
|
typedef int vm_fault_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if defined(NV_MM_HAS_MMAP_LOCK)
|
||||||
|
+#define mmap_sem mmap_lock
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* get_user_pages
|
||||||
|
*
|
||||||
|
* The 8-argument version of get_user_pages was deprecated by commit
|
||||||
|
diff --git a/kernel/conftest.sh b/kernel/conftest.sh
|
||||||
|
index 7da7505..7793dd6 100755
|
||||||
|
--- a/kernel/conftest.sh
|
||||||
|
+++ b/kernel/conftest.sh
|
||||||
|
@@ -4067,6 +4067,44 @@ compile_test() {
|
||||||
|
compile_check_conftest "$CODE" "NV_KTIME_GET_REAL_TS64_PRESENT" "" "functions"
|
||||||
|
;;
|
||||||
|
|
||||||
|
+ vmalloc_has_pgprot_t_arg)
|
||||||
|
+ #
|
||||||
|
+ # Determine if __vmalloc has the 'pgprot' argument.
|
||||||
|
+ #
|
||||||
|
+ # The third argument to __vmalloc, page protection
|
||||||
|
+ # 'pgprot_t prot', was removed by commit 88dca4ca5a93
|
||||||
|
+ # (mm: remove the pgprot argument to __vmalloc)
|
||||||
|
+ # in v5.8-rc1 (2020-06-01).
|
||||||
|
+ CODE="
|
||||||
|
+ #include <linux/vmalloc.h>
|
||||||
|
+
|
||||||
|
+ void conftest_vmalloc_has_pgprot_t_arg(void) {
|
||||||
|
+ pgprot_t prot;
|
||||||
|
+ (void)__vmalloc(0, 0, prot);
|
||||||
|
+ }"
|
||||||
|
+
|
||||||
|
+ compile_check_conftest "$CODE" "NV_VMALLOC_HAS_PGPROT_T_ARG" "" "types"
|
||||||
|
+
|
||||||
|
+ ;;
|
||||||
|
+
|
||||||
|
+ mm_has_mmap_lock)
|
||||||
|
+ #
|
||||||
|
+ # Determine if the 'mm_struct' structure has a 'mmap_lock' field.
|
||||||
|
+ #
|
||||||
|
+ # Kernel commit da1c55f1b272 ("mmap locking API: rename mmap_sem
|
||||||
|
+ # to mmap_lock") replaced the field 'mmap_sem' by 'mmap_lock'
|
||||||
|
+ # in v5.8-rc1 (2020-06-08).
|
||||||
|
+ CODE="
|
||||||
|
+ #include <linux/mm_types.h>
|
||||||
|
+
|
||||||
|
+ int conftest_mm_has_mmap_lock(void) {
|
||||||
|
+ return offsetof(struct mm_struct, mmap_lock);
|
||||||
|
+ }"
|
||||||
|
+
|
||||||
|
+ compile_check_conftest "$CODE" "NV_MM_HAS_MMAP_LOCK" "" "types"
|
||||||
|
+
|
||||||
|
+ ;;
|
||||||
|
+
|
||||||
|
pci_dev_has_skip_bus_pm)
|
||||||
|
#
|
||||||
|
# Determine if skip_bus_pm flag is present in struct pci_dev.
|
||||||
|
diff --git a/kernel/nvidia/nvidia.Kbuild b/kernel/nvidia/nvidia.Kbuild
|
||||||
|
index 63e369f..656db7b 100644
|
||||||
|
--- a/kernel/nvidia/nvidia.Kbuild
|
||||||
|
+++ b/kernel/nvidia/nvidia.Kbuild
|
||||||
|
@@ -192,7 +192,9 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += iterate_dir
|
||||||
|
NV_CONFTEST_TYPE_COMPILE_TESTS += kstrtoull
|
||||||
|
NV_CONFTEST_TYPE_COMPILE_TESTS += backlight_properties_type
|
||||||
|
NV_CONFTEST_TYPE_COMPILE_TESTS += proc_ops
|
||||||
|
+NV_CONFTEST_TYPE_COMPILE_TESTS += vmalloc_has_pgprot_t_arg
|
||||||
|
NV_CONFTEST_TYPE_COMPILE_TESTS += timeval
|
||||||
|
+NV_CONFTEST_TYPE_COMPILE_TESTS += mm_has_mmap_lock
|
||||||
|
NV_CONFTEST_TYPE_COMPILE_TESTS += kmem_cache_has_kobj_remove_work
|
||||||
|
NV_CONFTEST_TYPE_COMPILE_TESTS += sysfs_slab_unlink
|
||||||
|
NV_CONFTEST_TYPE_COMPILE_TESTS += pci_dev_has_skip_bus_pm
|
||||||
|
--
|
||||||
|
2.25.1
|
34
src/properties-cpp/PKGBUILD
Normal file
34
src/properties-cpp/PKGBUILD
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# Maintainer: Iwan Timmer <irtimmer@gmail.com>
|
||||||
|
|
||||||
|
pkgname=properties-cpp
|
||||||
|
pkgdesc="A very simple convenience library for handling properties and signals in C++11"
|
||||||
|
pkgver=0.0.1
|
||||||
|
_pkgver=0.0.1+14.10.20140730
|
||||||
|
pkgrel=1
|
||||||
|
arch=('any')
|
||||||
|
url="https://launchpad.net/properties-cpp"
|
||||||
|
license=('LGPL3')
|
||||||
|
makedepends=('cmake')
|
||||||
|
source=("https://launchpad.net/ubuntu/+archive/primary/+files/properties-cpp_$_pkgver.orig.tar.gz")
|
||||||
|
md5sums=('449f95cc864ebe38a35848885ca1cb4b')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "$srcdir/${pkgname}-${_pkgver}"
|
||||||
|
|
||||||
|
# Don't build tests
|
||||||
|
truncate -s 0 tests/CMakeLists.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
mkdir -p "$srcdir/${pkgname}-${_pkgver}/build"
|
||||||
|
cd "$srcdir/${pkgname}-${_pkgver}/build"
|
||||||
|
|
||||||
|
cmake .. -DCMAKE_INSTALL_LIBDIR=/usr/lib -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/${pkgname}-${_pkgver}/build"
|
||||||
|
|
||||||
|
make DESTDIR="$pkgdir/" install
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user