Merge pull request #5469 from gouchi/master

Adding snap package
This commit is contained in:
Twinaphex 2017-09-25 03:55:52 +02:00 committed by GitHub
commit ac20e971c5
4 changed files with 312 additions and 0 deletions

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.0
Name=RetroArch
GenericName=Libretro Frontend
Type=Application
Comment=Multi-Engine Platform
Icon=${SNAP}/meta/gui/retroarch.svg
Terminal=false
StartupNotify=false
Keywords=multi;engine;emulator;xmb;
Categories=Game;Emulator;

View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="128.19"
height="128.19"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="retroarch.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="-0.71358335"
inkscape:cy="80.21972"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:window-width="1301"
inkscape:window-height="744"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
originx="-635.53125px"
originy="-706.75561px" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-317.03125,-547.56)">
<path
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 354.25,577.50561 8.125,10 -16.25,0 -3.75,15 -10,0 3.75,-15 -10,0 -7.5,30 10,0 2.5,0 7.5,0 -2.5,10 17.5,0 -13.125,15 14.6875,0 12.1875,-15 27.5,0 12.1875,15 14.6875,0 -13.125,-15 17.5,0 -2.5,-10 7.5,0 2.5,0 10,0 -7.5,-30 -10,0 3.75,15 -10,0 -3.75,-15 -16.25,0 8.125,-10 -10.625,0 -8.75,10 -15,0 -8.75,-10 z m 1.25,20 10,0 0,10.00045 -10,0 z m 41.277,0 10,0 0,10.00045 -10,-4.5e-4 z"
id="path4317-5-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

63
pkg/snap/retroarch.wrapper Executable file
View File

@ -0,0 +1,63 @@
#!/bin/sh
set -e
case "$SNAP_ARCH" in
"amd64") ARCH='x86_64-linux-gnu'
;;
"i386") ARCH='i386-linux-gnu'
;;
"armhf") ARCH='arm-linux-gnueabihf'
;;
*)
echo "Unsupported architecture for this app build"
exit 1
;;
esac
export LD_LIBRARY_PATH="$SNAP/usr/lib/$ARCH/dri:$SNAP/usr/lib/$ARCH/alsa-lib:$LD_LIBRARY_PATH"
export XDG_DATA_HOME="$SNAP/usr/share"
export FONTCONFIG_PATH="$SNAP/etc/fonts/config.d"
export FONTCONFIG_FILE="$SNAP/etc/fonts/fonts.conf"
export XKB_CONFIG_ROOT="$SNAP/usr/share/X11/xkb"
# Mesa Libs
export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH/mesa:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$SNAP/usr/lib/$ARCH/mesa-egl:$LD_LIBRARY_PATH
# Tell libGL where to find the drivers
export LIBGL_DRIVERS_PATH=$SNAP/usr/lib/$ARCH/dri
# ensure that our HW/opengl libs are before the snap specific libs
export LD_LIBRARY_PATH=$SNAP_LIBRARY_PATH:$LD_LIBRARY_PATH
# Otherwise XOpenIM failed
export XLOCALEDIR=$SNAP/usr/share/X11/locale
#Create RetroArch user configuration directory if doesn't exist
[ ! -d "$SNAP_USER_DATA/.config/retroarch" ] && mkdir -p "$SNAP_USER_DATA/.config/retroarch"
#Copy assets if doesn't exist
[ ! -d "$SNAP_USER_DATA/.config/retroarch/assets" ] && cp -R "$SNAP/.config/assets" "$SNAP_USER_DATA/.config/retroarch"
#Copy joypad autoconfig files if doesn't exist
[ ! -d "$SNAP_USER_DATA/.config/retroarch/autoconfig" ] && cp -R "$SNAP/.config/autoconfig" "$SNAP_USER_DATA/.config/retroarch"
#Copy cheats files if doesn't exist
[ ! -d "$SNAP_USER_DATA/.config/retroarch/cheats" ] && cp -R "$SNAP/.config/cheats" "$SNAP_USER_DATA/.config/retroarch"
#Copy database files if doesn't exist
[ ! -d "$SNAP_USER_DATA/.config/retroarch/database" ] && cp -R "$SNAP/.config/database" "$SNAP_USER_DATA/.config/retroarch"
#Copy info files if doesn't exist
[ ! -d "$SNAP_USER_DATA/.config/retroarch/cores" ] && cp -R "$SNAP/.config/cores" "$SNAP_USER_DATA/.config/retroarch"
#Copy overlay if doesn't exist
[ ! -d "$SNAP_USER_DATA/.config/retroarch/overlay" ] && cp -R "$SNAP/.config/overlay" "$SNAP_USER_DATA/.config/retroarch"
#Copy shaders if doesn't exist
[ ! -d "$SNAP_USER_DATA/.config/retroarch/shaders" ] && cp -R "$SNAP/.config/shaders" "$SNAP_USER_DATA/.config/retroarch"
$SNAP/usr/local/bin/retroarch $*

161
pkg/snap/snapcraft.yaml Normal file
View File

@ -0,0 +1,161 @@
name: retroarch
version: "1.6.7"
summary: RetroArch
description: RetroArch is the official reference frontend for the libretro API.
confinement: strict
grade: stable
apps:
retroarch:
command: usr/local/bin/retroarch.wrapper
plugs: [network, network-bind, x11, opengl, home, alsa, pulseaudio, bluez]
parts:
retroarch:
plugin: autotools
source-type: tar
source: https://github.com/libretro/RetroArch/archive/v1.6.7.tar.gz
configflags:
- --enable-kms
- --enable-xvideo
- --enable-ffmpeg
- --enable-ssa
- --disable-coreaudio
- --disable-jack
- --disable-python
- --enable-pulse
- --disable-roar
- --disable-rsound
- --disable-sdl
- --disable-sdl2
- --disable-vg
- --disable-v4l2
- --disable-xinerama
stage-packages:
- fonts-dejavu-core
- libasound2
- libavcodec-ffmpeg56
- libavformat-ffmpeg56
- libavutil-ffmpeg54
- libc6
- libdrm2
- libegl1-mesa
- libfreetype6
- libgbm1
- libgl1-mesa-dri
- libgl1-mesa-glx
- libgles2-mesa
- libminizip1
- libopenal1
- libpulse0
- libswresample-ffmpeg1
- libswscale-ffmpeg3
- libudev1
- libusb-1.0-0
- libwayland-client0
- libwayland-egl1-mesa
- libx11-6
- libxext6
- libxinerama1
- libxkbcommon0
- libxv1
- libxxf86vm1
- pulseaudio
- zlib1g
build-packages:
- gcc
- make
- libasound2-dev
- libass-dev
- libavcodec-dev
- libavdevice-dev
- libavformat-dev
- libdrm-dev
- libegl1-mesa-dev
- libfreetype6-dev
- libgbm-dev
- libgl1-mesa-dev
- libpulse-dev
- libswscale-dev
- libusb-1.0-0-dev
- libudev-dev
- libxml2-dev
- libxv-dev
- mesa-common-dev
- xserver-xorg-input-all
- zlib1g-dev
retroarch-wrapper:
plugin: dump
source: .
organize:
retroarch.wrapper: usr/local/bin/retroarch.wrapper
stage:
- usr/local/bin/retroarch.wrapper
retroarch-assets:
plugin: dump
source: https://github.com/libretro/retroarch-assets/archive/master.tar.gz
source-type: tar
organize:
xmb: .config/assets/xmb
glui: .config/assets/glui
filesets:
assets: [.config/assets/xmb/*, -.config/assets/xmb/*/src, .config/assets/glui/*.png, .config/assets/glui/*.ttf]
stage:
- -configure
- -Makefile
- $assets
prime:
- $assets
retroarch-autoconfig:
plugin: dump
source: https://github.com/libretro/retroarch-joypad-autoconfig/archive/master.tar.gz
source-type: tar
organize:
udev: .config/autoconfig/udev
linuxraw: .config/autoconfig/linuxraw
hid: .config/autoconfig/hid
x: .config/autoconfig/x
filesets:
autoconfig: [ .config/autoconfig/udev, .config/autoconfig/linuxraw, .config/autoconfig/hid, .config/autoconfig/x]
stage:
- $autoconfig
prime:
- $autoconfig
retroarch-database:
plugin: dump
source: https://github.com/libretro/libretro-database/archive/master.tar.gz
source-type : tar
organize:
rdb: .config/database/rdb
cursors: .config/database/cursors
cht: .config/cheats
stage:
- .config/database
- .config/cheats
retroarch-info:
plugin: dump
source: https://github.com/libretro/libretro-super/archive/master.tar.gz
source-type : tar
organize:
dist/info: .config/cores
stage:
- .config/cores
retroarch-overlays:
plugin: dump
source: https://github.com/libretro/common-overlays/archive/master.tar.gz
source-type : tar
organize:
"*": .config/overlay
stage:
- .config/overlay
retroarch-shaders:
plugin: dump
source: https://github.com/libretro/glsl-shaders/archive/master.tar.gz
source-type : tar
organize:
"*": .config/shaders/shaders_glsl
stage:
- -configure
- -Makefile
- .config/shaders