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
|
||||
pkgname=(intellij-idea-ultimate-edition intellij-idea-ultimate-edition-jre)
|
||||
pkgver=2020.1.1
|
||||
_buildver=201.7223.91
|
||||
pkgver=2020.2.3
|
||||
_buildver=202.7660.26
|
||||
pkgrel=1
|
||||
arch=('any')
|
||||
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)
|
||||
source=("https://download.jetbrains.com/idea/ideaIU-$pkgver.tar.gz"
|
||||
"jetbrains-idea.desktop")
|
||||
sha256sums=('ca485decf8b91549a1c8e20309a7a7b6a7e032ff96e10fde2ff5dbae9e0108e3'
|
||||
sha256sums=('ca2c9ea47b18f49541020f2d0076066240a5cc6c98ddbcce2a643f47fdf7c260'
|
||||
'83af2ba8f9f14275a6684e79d6d4bd9b48cd852c047dacfc81324588fa2ff92b')
|
||||
|
||||
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
|
||||
pkgver=1.15.2
|
||||
pkgver=1.15.3
|
||||
pkgrel=1
|
||||
pkgdesc="DVD and Blu-ray to MKV converter and network streamer"
|
||||
arch=('i686' 'x86_64')
|
||||
@ -18,11 +19,11 @@ source=(${url}/download/${pkgname}-bin-${pkgver}.tar.gz
|
||||
makemkv.1
|
||||
makemkvcon.1
|
||||
mmdtsdec.1)
|
||||
md5sums=('17dd19b4d92354f9489188c4edd2a285'
|
||||
'96e7282e421127c85405deacff7a2e13'
|
||||
'1f9b3a91427a2015434e501542443f4c'
|
||||
'7f4b112c5178860cc2eb25059ae1af2a'
|
||||
'9476154228bf1b1f983178ba8565ac44')
|
||||
sha256sums=('636dda7ad9f0a8b19a048809fc03f4a02ae1f0fe63a55adc30982673439efa2f'
|
||||
'42bbaaf5828068d175a43b4e869b4ff7952314bd8d03812e44e478bfa5d91c4c'
|
||||
'5573b2e4bade10d8cd258a7c235eb46f66ef8c8c97e5d5eb090c38fa0f94389b'
|
||||
'f12c0facf2f0071a9f728b138986f0a4c2b4ff6ace2dfb2e96364e215e9fda6f'
|
||||
'2a6237d3d5ce073734c658c7ec5d2141ecd0047e6d3c45d1bd594135c928878f')
|
||||
|
||||
build() {
|
||||
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