Compare commits

..
Author SHA1 Message Date
Stefan Saraev 2b2a22dcc2 Merge remote-tracking branch 'upstream/master' into framebuffer-rework 2013-10-10 15:26:49 +03:00
Stefan Saraev f31cb22c98 xorg: fix configure on multi-gpu setups. no more than one
xorg-configure@ should be allowed. so pick the first card

this is still an issue in master branch. depends on  ALL
kernel drm drivers compiled as modules. DO NOT cherry pick
2013-10-09 19:54:58 +03:00
Stefan Saraev 905d9d2e2b Merge remote-tracking branch 'upstream/master' into framebuffer-rework 2013-10-09 19:53:21 +03:00
Stephan Raue 1613aeb691 linux: set default framebuffer resolution for vesafb framebuffer driver
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 14:11:36 +02:00
Stephan Raue d1ff1fa016 remove package 'v86d'
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 14:11:36 +02:00
Stephan Raue b210e86b75 projects/*: cleanup framebuffer drivers, remove uvesafb framebuffer support, add vesafb support if needed
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 14:11:28 +02:00
Stephan Raue 132f0a9b5b bcm2835-driver: run fbset.service timer based
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 10:55:17 +02:00
Stephan Raue 65a1c00226 plymouth-lite: run before basic.target
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 10:54:31 +02:00
Stephan Raue 317c13b247 misc-firmware: update to misc-firmware-0.0.7
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 08:35:14 +02:00
Stephan Raue 0a58785f87 v86d: move out of initramfs
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 08:35:14 +02:00
Stephan Raue 604e84ff3d remove package 'zlib-initramfs'
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 08:35:14 +02:00
Stephan Raue d3bb1c072e plymouth-lite: move out of initramfs and start in the real system, start 'plymouth-lite' via udev, merge 'show-version.service' with 'plymouth-lite'
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 08:35:14 +02:00
Stephan Raue 3be4064429 projects/*/linux: build GPU and DRM drivers as modules, remove 'radeon' firmware from kernel (will be added as as extra package)
Signed-off-by: Stephan Raue <[email protected]>
2013-10-09 08:35:05 +02:00
3222 changed files with 325813 additions and 685356 deletions

No files matched your search

-2
View File
@@ -26,5 +26,3 @@ mkpkg-temp
# backup files
*.orig
# crap
.DS_Store
+15 -8
View File
@@ -1,13 +1,20 @@
Lakka CHANGELOG
===============
OpenELEC (Version 2.1)
To view recent changes/commits to the project (master branch) please visit:
Changelog OpenELEC-2.0 to OpenELEC-2.1
https://github.com/lakkatv/Lakka/commits/master
Added packages:
- add package 'ppp'
- add package 'pptp'
To compare commits between versions use a formatted URL like:
Package updates:
- update linux to linux-3.5
- update dialog to dialog-1.1-20120215
- update connman to connman-1.4
https://github.com/lakkatv/Lakka/compare/3.2.3...3.2.4
Added functions:
- sshd can be enabled via OpenELEC Settings addon
- add PPTP support
If you have questions on differences between releases please ask them in the
IRC support channel.
Changed functions:
Removed functions:
-13
View File
@@ -35,19 +35,6 @@ Feature requests are great, but they usually end up lying around the issue
tracker indefinitely. Sending a pull request is a much better way of getting a
particular feature into OpenELEC.
Please dont ask us to add 3rdparty drivers unless you are the maintainer/developer of the driver,
we have no manpower to support a non-mainlined kernel driver for your hardware.
However, OpenELEC comes with minimal set of kernel drivers enabled, if you are sure that your hardware
is supported in mainline kernel, feel free to send us a Pull Request to enable it in our
kernel defconfigs. We are always happy to support known-working hardware.
### Reporting build failures
As buildsystem / core packages (toolchain) / random libraries change from time to time, it is required
that you always do a clean build (make clean) before reporting build failures. Also make sure that you
have a clean, unmodified git clone, we can't fix bugs caused by you failed to merge / rebase on
your own fork.
### Pull Requests
- **Create topic branches**. Don't ask us to pull from your master branch.
+2 -5
View File
@@ -1,6 +1,6 @@
BUILD_DIRS=build.*
all: release
all: system
system:
./scripts/image
@@ -9,10 +9,7 @@ release:
./scripts/image release
image:
./scripts/image mkimage
image-efi:
./scripts/image mkimage efi
BUILD_IMAGE=yes ./scripts/image release
noobs:
./scripts/image noobs
+82 -13
View File
@@ -1,19 +1,88 @@
# Lakka - The DIY retro emulation console
[OpenELEC](http://www.openelec.tv)
Lakka is a lightweight Linux distribution that transforms a small computer into a full blown emulation console.
# OpenELEC - Open Embedded Linux Entertainment Center
* **Powerful** - Built on top of the famous RetroArch emulator, Lakka is able to emulate a large range of hardware and has some usefull features such as Braid-like rewinding, joypad hotplug and video streaming.
* **User friendly** - Lakka is easy to setup and use. Once installed to your SD card, you just have to put your rom on the card, plug your joypad and enjoy your favorite old games.
* **Low cost** - The hardware required to run Lakka cost only $35. We also support PS3 and XBox360 controllers so you don't have to buy new ones. The power can be supplied by any micro USB adapter like the one of your smartphone.
* **Open source** - Our code is free as in freedom and hosted on Github. We accept external contributions, and we do our best to integrate our own patches into upstream projects.
OpenELEC runs [XBMC](http://xbmc.org), an award-winning free and open source (GPL) software media
player and entertainment hub for digital media. For more info see http://xbmc.org .
The base system has been designed and built from the ground up to be as
efficient as possible – consuming only tiny disk and memory footprints and
providing cutting edge hardware support to deliver a set-top box experience.
## Installation instructions
**Source code**
Please refer to our website http://www.lakka.tv/get on how to setup Lakka.
* https://github.com/OpenELEC/OpenELEC.tv
## Support
**Installation**
* [FAQ](https://github.com/lakkatv/Lakka/wiki/FAQ)
* #lakkatv on irc.freenode.org
* [Forums](http://libretro.com/forums/forumdisplay.php?f=26)
* contact@lakka.tv
* Please read the instructions in our wiki (http://wiki.openelec.tv/index.php?title=Installation) on how to install.
**Known issues**
* Testing snapshot
**License**
* OpenELEC is released under [GPLv2](http://www.gnu.org/licenses/gpl-2.0.html). Please refer to the "licenses" folder and
source code for clarification on upstream licensing.
**Copyright**
* Since OpenELEC includes code from many up stream projects it includes many
copyright owners. OpenELEC makes NO claim of copyright on any upstream code.
However all OpenELEC authored code is copyright openelec.tv.
For a complete copyright list checkout the source code to examine the headers.
Unless expressly stated otherwise all code submitted DIRECTLY to the OpenELEC
project (in any form) is licensed under [GPLv2](http://www.gnu.org/licenses/gpl-2.0.html) and the Copyright is donated to
openelec.tv.
This allows the project to stay manageable in the long term by giving us the
freedom to maintain the code as part of the whole without the management
overhead of preserving contact with every submitter ever e.g. move to GPLv3.
You are absolutely free to retain copyright. To retain copyright simply add a
copyright header to every submitted code page.
If you are submitting code that is not your own work it is the submitters
responsibility to place a header stating the copyright.
**Features**
* System size ~ 90 - 130MB
* Minimal hardware requirements
* Ultra fast boot
* Optimized builds for platforms such as ION, Intel, Fusion
* Simple configuration via XBMC itself
* Plug and Play external storage
**Software**
* XBMC HTPC software – View/Manage all your media.
* Samba server – File transfer from any PC client
* SSH server – Remote console access for debugging
* IR/Bluetooth Remote Control
**Notes**
* SSH login details are user: “root” password: “openelec”.
SSH allows command line access to your openelec.tv machine for configuration
and file transfer. Linux/Mac clients can natively use SSH, while Windows
users might want to try PuTTY for their terminal access.
Starting with OpenELEC 2.0, SSH is disabled by default but all that is needed
is an empty “ssh_enable” file to exist in /storage/.config to enable it.
* $HOME is mounted on /storage (the second ext4 partition on the drive).
All data transfered to the machine will go here, the rest of the system is
read-only with the exception of /var (containing runtime configuration data).
* Manual update/downgrade procedure is as follows:
Extract the snapshot and navigate to the 'target' directory.
Copy KERNEL and SYSTEM along with KERNEL.md5 and SYSTEM.md5 to the 'Update' network share (or /storage/.update) on
your openelec machine. Your system will automatically upgrade during the
next reboot.
* Automatic mounting of filesystems is supported. Devices such as USB Flash
sticks can be plugged into a running machine and will be mounted to /media,
showing up in xbmc’s GUI.
* Comments and questions are more than welcome, help is even better and patches
are absolutely perfect!!
**Questions/Support**
* Forums on [http://openelec.tv](http://openelec.tv)
* IRC chatroom **#openelec** on Freenode
**Happy OpenELEC'ing**
+21
View File
@@ -0,0 +1,21 @@
ncurses-5.8/5.9:
- segfaults in nano and dialog -> using ncurses-5.7
intel-gpu-tools:
- remove this package after gotham.
not needed anymore as xbmc has "use limited
color space" option
timezone-data:
- fix tzdata-setup for gotham. now there is no
<timezone> in guisettings.xml or ping Montellese
systemd:
- fix graphical.target/xorg deps mess
irserver:
- rework irserver/init.d for systemd
RTL8192CU:
- add CONFIG_RTL8192CU to all kernel configs
and test removing this package
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="@PKG_ADDON_ID@"
name="@PKG_NAME@"
version="@ADDON_VERSION@"
provider-name="@PROVIDER_NAME@">
<requires>
<import addon="os.openelec.tv" version="@OS_VERSION@"/>
<import addon="xbmc.python" version="2.0"/>
@REQUIRES@
</requires>
<extension point="@PKG_ADDON_TYPE@"
library="default.py">
<provides>executable</provides>
</extension>
<extension point="xbmc.addon.metadata">
<summary>@PKG_SHORTDESC@</summary>
<description>
@PKG_LONGDESC@
</description>
<disclaimer>
@PKG_DISCLAIMER@
</disclaimer>
<platform>all</platform>
</extension>
</addon>
-23
View File
@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="@PKG_ADDON_ID@"
name="@ADDON_NAME@"
version="@ADDON_VERSION@"
provider-name="@PROVIDER_NAME@">
<requires>
<import addon="os.openelec.tv" version="@OS_VERSION@"/>
<import addon="xbmc.python" version="2.1.0"/>
@REQUIRES@
</requires>
<extension point="xbmc.python.module" library="lib/">
</extension>
<extension point="xbmc.addon.metadata">
<summary>@PKG_SHORTDESC@</summary>
<description>
@PKG_LONGDESC@
</description>
<disclaimer>
@PKG_DISCLAIMER@
</disclaimer>
<platform>all</platform>
</extension>
</addon>
-24
View File
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="@PKG_ADDON_ID@"
name="@ADDON_NAME@"
version="@ADDON_VERSION@"
provider-name="@PROVIDER_NAME@">
<requires>
<import addon="os.openelec.tv" version="@OS_VERSION@"/>
<import addon="xbmc.python" version="2.1.0"/>
@REQUIRES@
</requires>
<extension point="xbmc.python.script" library="default.py">
<provides>executable</provides>
</extension>
<extension point="xbmc.addon.metadata">
<summary>@PKG_SHORTDESC@</summary>
<description>
@PKG_LONGDESC@
</description>
<disclaimer>
@PKG_DISCLAIMER@
</disclaimer>
<platform>all</platform>
</extension>
</addon>
-24
View File
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="@PKG_ADDON_ID@"
name="@ADDON_NAME@"
version="@ADDON_VERSION@"
provider-name="@PROVIDER_NAME@">
<requires>
<import addon="os.openelec.tv" version="@OS_VERSION@"/>
<import addon="xbmc.python" version="2.1.0"/>
@REQUIRES@
</requires>
<extension point="xbmc.service" library="default.py">
<provides>executable</provides>
</extension>
<extension point="xbmc.addon.metadata">
<summary>@PKG_SHORTDESC@</summary>
<description>
@PKG_LONGDESC@
</description>
<disclaimer>
@PKG_DISCLAIMER@
</disclaimer>
<platform>all</platform>
</extension>
</addon>
-29
View File
@@ -1,29 +0,0 @@
# determines TARGET_CPU, if not forced by user
if [ -z "$TARGET_CPU" ]; then
TARGET_CPU=cortex-a53
fi
# TARGET_CPU:
# generic cortex-a35 cortex-a53 cortex-a57 cortex-a72
# exynos-m1 qdf24xx thunderx xgene1 cortex-a57.cortex-a53
# cortex-a72.cortex-a53
# determine architecture's family
case $TARGET_CPU in
generic|cortex-a35|cortex-a53|cortex-a57|cortex-a72|exynos-m1|qdf24xx|thunderx|xgene1|cortex-a57.cortex-a53|cortex-a72.cortex-a53)
TARGET_SUBARCH=aarch64
TARGET_VARIANT=armv8-a
TARGET_ABI=eabi
TARGET_CPU_FLAGS="+crc+crypto"
TARGET_EXTRA_FLAGS="-mcpu=${TARGET_CPU}${TARGET_CPU_FLAGS}"
SIMD_SUPPORT="yes"
;;
esac
TARGET_GCC_ARCH=${TARGET_SUBARCH/-}
TARGET_KERNEL_ARCH=arm64
# setup ARCH specific *FLAGS
TARGET_CFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mabi=lp64 -Wno-psabi $TARGET_EXTRA_FLAGS"
TARGET_LDFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mtune=$TARGET_CPU"
GCC_OPTS="--with-abi=lp64 --with-arch=$TARGET_VARIANT"
+7 -7
View File
@@ -27,28 +27,28 @@
arm1176jzf-s)
TARGET_SUBARCH=armv6zk
TARGET_ABI=eabi
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU"
TARGET_EXTRA_FLAGS="-Wno-psabi -Wa,-mno-warn-deprecated"
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
SIMD_SUPPORT="no"
;;
cortex-a7|cortex-a15|cortex-a15.cortex-a7)
TARGET_SUBARCH=armv7ve
cortex-a8)
TARGET_SUBARCH=armv7-a
TARGET_ABI=eabi
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU"
TARGET_EXTRA_FLAGS="-Wno-psabi -Wa,-mno-warn-deprecated"
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
SIMD_SUPPORT="yes"
;;
cortex-a5|cortex-a8|cortex-a9)
cortex-a9)
TARGET_SUBARCH=armv7-a
TARGET_ABI=eabi
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU"
TARGET_EXTRA_FLAGS="-Wno-psabi -Wa,-mno-warn-deprecated"
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
SIMD_SUPPORT="yes"
;;
esac
# setup ARCH specific *FLAGS
TARGET_CFLAGS="-march=$TARGET_SUBARCH -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated $TARGET_EXTRA_FLAGS"
TARGET_CFLAGS="-march=$TARGET_SUBARCH -mcpu=$TARGET_CPU -mabi=aapcs-linux $TARGET_EXTRA_FLAGS"
[ -n "$TARGET_FPU" ] && TARGET_CFLAGS="$TARGET_CFLAGS $TARGET_FPU_FLAGS"
TARGET_LDFLAGS="-march=$TARGET_SUBARCH -mtune=$TARGET_CPU"
GCC_OPTS="--with-abi=aapcs-linux --with-arch=$TARGET_SUBARCH --with-float=$TARGET_FLOAT --with-fpu=$TARGET_FPU"
+66 -102
View File
@@ -1,9 +1,12 @@
setup_toolchain() {
if [ "$1" = "--optimize" ]; then
OPTIMIZE=yes
shift
fi
if [ "$1" = target ]; then
export DESTIMAGE="target"
unset CPP
export CC=$TARGET_CC
export CXX=$TARGET_CXX
export LD=$TARGET_LD
@@ -28,8 +31,6 @@ setup_toolchain() {
elif [ "$1" = host ]; then
export DESTIMAGE="host"
unset CPP
export AWK=$HOST_AWK
export CC=$HOST_CC
export CXX=$HOST_CXX
@@ -55,45 +56,7 @@ setup_toolchain() {
}
kernel_path() {
if [ -e $ROOT/projects/$PROJECT/packages/linux/package.mk ]; then
. $ROOT/projects/$PROJECT/packages/linux/package.mk
else
. $ROOT/packages/linux/package.mk
fi
echo $ROOT/$BUILD/${PKG_NAME}-${PKG_VERSION}
}
kernel_version() {
if [ -e $ROOT/projects/$PROJECT/packages/linux/package.mk ]; then
. $ROOT/projects/$PROJECT/packages/linux/package.mk
else
. $ROOT/packages/linux/package.mk
fi
echo ${PKG_VERSION}
}
# get kernel module dir
get_module_dir() {
basename $(ls -d $(get_build_dir linux)/.install_pkg/lib/modules/*)
}
# get package's build dir
get_build_dir() {
if [ ! -z $1 ] ; then
local _PKG_DIR=$(find $ROOT/projects/$PROJECT/packages -name $1 2>/dev/null)
if [ -d "$_PKG_DIR" -a -f $_PKG_DIR/package.mk ] ; then
. $_PKG_DIR/package.mk
else
local _PKG_DIR=$(find $ROOT/packages -name $1 2>/dev/null)
if [ -d "$_PKG_DIR" -a -f $_PKG_DIR/package.mk ] ; then
. $_PKG_DIR/package.mk
fi
fi
echo $ROOT/$BUILD/${PKG_NAME}-${PKG_VERSION}
fi
ls -d $ROOT/$BUILD/linux-*
}
tolower(){
@@ -114,6 +77,17 @@ require_cxx() {
fi
}
xorg_drv_configure_prepend() {
incdir=${SYSROOT_PREFIX}/usr/include/xorg
for f in dri.h sarea.h dristruct.h exa.h damage.h xf86Module.h; do
incfile="$incdir/$f"
if [ -f "$incfile" ]; then
p=`echo "$incfile" | sed 'y%*+%pp%;s%[^_[:alnum:]]%_%g'`
eval "export ac_cv_file_$p=yes"
fi
done
}
add_user() {
# Usage: add_user "username" "password" "userid" "groupid" "description" "home" "shell"
mkdir -p ${INSTALL}/etc
@@ -185,13 +159,14 @@ do_autoreconf() {
strip_lto() {
# strip out LTO optimization from *FLAGS
if [ -n "$GCC_OPTIM_LTO" ] ; then
CFLAGS=`echo $CFLAGS | sed -e "s|$GCC_OPTIM_LTO||g"`
CXXFLAGS=`echo $CXXFLAGS | sed -e "s|$GCC_OPTIM_LTO||g"`
fi
if [ -n "$LD_OPTIM_LTO" ] ; then
LDFLAGS=`echo $LDFLAGS | sed -e "s|$LD_OPTIM_LTO||g"`
fi
CFLAGS=`echo $CFLAGS | sed -e "s|-flto||g"`
CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-flto||g"`
LDFLAGS=`echo $LDFLAGS | sed -e "s|-flto||g"`
}
strip_linker_plugin() {
# strip out usage from linker plugin
LDFLAGS=`echo $LDFLAGS | sed -e "s|-fuse-linker-plugin||g"`
}
strip_gold() {
@@ -219,7 +194,7 @@ fix_module_depends() {
# Usage: enable_service <unit> [target]
enable_service () {
local unit="$1"
local unit_dir="/usr/lib/systemd/system"
local unit_dir="/lib/systemd/system"
local target="$2"
local target_dir=$INSTALL
@@ -277,9 +252,6 @@ dashes="==========================="
}
show_config() {
# load graphic configuration
get_graphicdrivers
dashes="==========================="
config_message="$config_message\n $dashes$dashes$dashes"
config_message="$config_message\n Configuration for $DISTRONAME ($([ "$OFFICIAL" = "yes" ] && echo "official" || echo "unofficial"))"
@@ -307,24 +279,24 @@ show_config() {
config_message="$config_message\n\n Graphic configuration:"
config_message="$config_message\n $dashes$dashes"
if [ "$DISPLAYSERVER" = "x11" ] ; then
config_message="$config_message\n - Xorg Graphic Drivers:\t\t $GRAPHIC_DRIVERS"
config_message="$config_message\n - XORG Composite support:\t\t $COMPOSITE_SUPPORT"
config_message="$config_message\n - WindowManager:\t\t\t $WINDOWMANAGER"
fi
config_message="$config_message\n - XORG support:\t\t\t $XORG_SUPPORT"
config_message="$config_message\n - XORG Composite support:\t\t $COMPOSITE_SUPPORT"
config_message="$config_message\n - XORG Xinerama support:\t\t $XINERAMA_SUPPORT"
config_message="$config_message\n - SDL support:\t\t\t\t $SDL_SUPPORT"
config_message="$config_message\n - OpenGL (GLX) support (provider):\t $OPENGL_SUPPORT ($OPENGL)"
config_message="$config_message\n - OpenGLES support (provider):\t\t $OPENGLES_SUPPORT ($OPENGLES)"
config_message="$config_message\n - uvesafb support:\t\t\t $UVESAFB_SUPPORT"
config_message="$config_message\n - WindowManager:\t\t\t $WINDOWMANAGER"
config_message="$config_message\n - Xorg Graphic Drivers:\t\t $GRAPHIC_DRIVERS"
# Hardware decoder support
config_message="$config_message\n\n Hardware decoder configuration:"
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - Kodi Player driver:\t\t\t $KODIPLAYER_DRIVER"
config_message="$config_message\n - VAAPI Support:\t\t\t $VAAPI_SUPPORT"
config_message="$config_message\n - VDPAU Support:\t\t\t $VDPAU_SUPPORT"
config_message="$config_message\n - Broadcom CrystalHD Decoder:\t\t $CRYSTALHD"
config_message="$config_message\n - XBMC Player driver:\t\t\t $XBMCPLAYER_DRIVER"
config_message="$config_message\n - VAAPI Support:\t\t\t $VAAPI"
config_message="$config_message\n - VDPAU Support:\t\t\t $VDPAU"
# Input device configuration
@@ -335,7 +307,7 @@ show_config() {
config_message="$config_message\n - ATV Remote support:\t\t\t $ATVCLIENT_SUPPORT"
config_message="$config_message\n - CEC Adapter support:\t\t\t $CEC_SUPPORT"
config_message="$config_message\n - IRTrans support:\t\t\t $IRSERVER_SUPPORT"
config_message="$config_message\n - Kodi Joystick support:\t\t $JOYSTICK_SUPPORT"
config_message="$config_message\n - XBMC Joystick support:\t\t $JOYSTICK_SUPPORT"
# Misc. hardware configuration
@@ -343,7 +315,10 @@ show_config() {
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - ALSA support:\t\t\t $ALSA_SUPPORT"
config_message="$config_message\n - Pulseaudio support:\t\t\t $PULSEAUDIO_SUPPORT"
config_message="$config_message\n - Blu-Ray support:\t\t\t $BLURAY_SUPPORT"
config_message="$config_message\n - Bluetooth support:\t\t\t $BLUETOOTH_SUPPORT"
config_message="$config_message\n - Hardware Sensors support:\t\t $SENSOR_SUPPORT"
config_message="$config_message\n - LCD drivers:\t\t\t\t $LCD_DRIVER"
for config_driver in $ADDITIONAL_DRIVERS; do
@@ -354,20 +329,22 @@ show_config() {
config_message="$config_message\n - Include firmware:\t\t\t $config_firmware"
done
for config_modules in $INITRAMFS_MODULES; do
config_message="$config_message\n - Initramfs modules:\t\t\t $config_modules"
done
# Network service configuration
config_message="$config_message\n\n Network service configuration:"
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - Avahi (Zeroconf) support:\t\t $AVAHI_DAEMON"
config_message="$config_message\n - NFS mounting support:\t\t $NFS_SUPPORT"
config_message="$config_message\n - SAMBA mounting support:\t\t $SAMBA_SUPPORT"
config_message="$config_message\n - SAMBA server support:\t\t $SAMBA_SERVER"
config_message="$config_message\n - SFTP server support:\t\t\t $SFTP_SERVER"
config_message="$config_message\n - PPTP support:\t\t\t $PPTP_SUPPORT"
config_message="$config_message\n - OpenVPN support:\t\t\t $OPENVPN_SUPPORT"
config_message="$config_message\n - XBMC Airplay support:\t\t $AIRPLAY_SUPPORT"
config_message="$config_message\n - XBMC Airtunes support:\t\t $AIRTUNES_SUPPORT"
config_message="$config_message\n - XBMC AFP support:\t\t\t $AFP_SUPPORT"
config_message="$config_message\n - XBMC NFS support:\t\t\t $NFS_SUPPORT"
config_message="$config_message\n - XBMC SAMBA client support:\t\t $SAMBA_SUPPORT"
config_message="$config_message\n - XBMC Webserver support:\t\t $WEBSERVER"
# OS configuration
@@ -375,13 +352,15 @@ show_config() {
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - OEM Support:\t\t\t\t $OEM_SUPPORT"
config_message="$config_message\n - Default Hostname:\t\t\t $HOSTNAME"
config_message="$config_message\n - Default ROOT Password:\t\t $ROOT_PASSWORD"
config_message="$config_message\n - Bootloader:\t\t\t\t $BOOTLOADER"
if [ "$BOOTLOADER" = "u-boot" ]; then
config_message="$config_message\n - U-Boot configuration:\t\t $UBOOT_CONFIG"
config_message="$config_message\n - U-Boot config file:\t\t $UBOOT_CONFIGFILE"
fi
if [ "$BOOTLOADER" = "u-boot" ]; then
config_message="$config_message\n - U-Boot configuration:\t\t $UBOOT_CONFIG"
config_message="$config_message\n - U-Boot config file:\t\t\t $UBOOT_CONFIGFILE"
fi
config_message="$config_message\n - UDevil support:\t\t\t $UDEVIL"
config_message="$config_message\n - Parted support:\t\t\t $PARTED"
config_message="$config_message\n - Installer support:\t\t\t $INSTALLER_SUPPORT"
# Misc. Filesystems
@@ -390,46 +369,31 @@ show_config() {
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - Swap Support:\t\t\t $SWAP_SUPPORT"
if [ "$SWAP_SUPPORT" = "yes" ]; then
config_message="$config_message\n - Swapfile default size:\t\t $SWAPFILESIZE"
fi
if [ "$SWAP_SUPPORT" = "yes" ]; then
config_message="$config_message\n - Swapfile default size:\t\t $SWAPFILESIZE"
fi
config_message="$config_message\n - exFAT Support (via Fuse):\t\t $EXFAT"
config_message="$config_message\n - NTFS Support (via Fuse):\t\t $NTFS3G"
config_message="$config_message\n - Install HFS Tools:\t\t\t $HFSTOOLS"
# Kodi configuration
# XBMC configuration
config_message="$config_message\n\n Kodi configuration:"
config_message="$config_message\n\n XBMC configuration:"
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - Kodi version:\t\t\t $MEDIACENTER"
config_message="$config_message\n - Kodi nonfree support:\t\t $KODI_NONFREE_SUPPORT"
config_message="$config_message\n - Kodi Blu-Ray support:\t\t $KODI_BLURAY_SUPPORT"
if [ "$KODI_BLURAY_SUPPORT" = "yes" ] ; then
config_message="$config_message\n - Bluray BD+ support:\t\t $BLURAY_BDPLUS_SUPPORT"
config_message="$config_message\n - Bluray AACS support:\t\t $BLURAY_AACS_SUPPORT"
fi
config_message="$config_message\n - Kodi DVDCSS support:\t\t\t $KODI_DVDCSS_SUPPORT"
config_message="$config_message\n - Kodi Airplay support:\t\t $KODI_AIRPLAY_SUPPORT"
config_message="$config_message\n - Kodi Airtunes support:\t\t $KODI_AIRTUNES_SUPPORT"
config_message="$config_message\n - Kodi NFS support:\t\t\t $KODI_NFS_SUPPORT"
config_message="$config_message\n - Kodi MySQL support:\t\t\t $KODI_MYSQL_SUPPORT"
config_message="$config_message\n - Kodi Optical Drive support:\t\t $KODI_OPTICAL_SUPPORT"
config_message="$config_message\n - Kodi SAMBA client support:\t\t $KODI_SAMBA_SUPPORT"
config_message="$config_message\n - Kodi SSH client support:\t\t $KODI_SSHLIB_SUPPORT"
config_message="$config_message\n - Kodi UPNP support:\t\t\t $KODI_UPNP_SUPPORT"
config_message="$config_message\n - Kodi Webserver support:\t\t $KODI_WEBSERVER_SUPPORT"
config_message="$config_message\n - XBMC version:\t\t\t $MEDIACENTER"
config_message="$config_message\n - XBMC nonfree support:\t\t $NONFREE_SUPPORT"
config_message="$config_message\n - XBMC DVDCSS support:\t\t\t $DVDCSS_SUPPORT"
for config_skin in $SKINS; do
config_message="$config_message\n - Include Skin:\t\t\t $config_skin"
done
config_message="$config_message\n - Default Skin:\t\t\t $SKIN_DEFAULT"
config_message="$config_message\n - Include extra fonts:\t\t\t $KODI_EXTRA_FONTS"
config_message="$config_message\n - Include RSXS Screensaver:\t\t $KODI_SCR_RSXS"
config_message="$config_message\n - Include ProjectM Visualization:\t $KODI_VIS_PROJECTM"
config_message="$config_message\n - Include Goom Visualization:\t\t $KODI_VIS_GOOM"
config_message="$config_message\n - Include extra fonts:\t\t\t $XBMC_EXTRA_FONTS"
config_message="$config_message\n - Include RSXS Screensaver:\t\t $XBMC_SCR_RSXS"
config_message="$config_message\n - Include ProjectM Visualization:\t $XBMC_VIS_PROJECTM"
config_message="$config_message\n - Include Goom Visualization:\t\t $XBMC_VIS_GOOM"
config_message="$config_message\n"
config_message="$config_message\n $dashes$dashes$dashes"
@@ -437,5 +401,5 @@ show_config() {
config_message="$config_message\n $dashes$dashes$dashes"
config_message="$config_message\n\n\n"
echo -e "$config_message"
echo -e $config_message
}
+34 -22
View File
@@ -1,4 +1,4 @@
if [ "$DISPLAYSERVER" = "x11" ]; then
if [ "$DISPLAYSERVER" = "xorg-server" ]; then
SDL_SUPPORT="yes"
else
SDL_SUPPORT="no"
@@ -21,49 +21,63 @@ if [ "$SDL_SUPPORT" = no ]; then
fi
if [ "$OPENGL_SUPPORT" = no ]; then
KODI_SCR_RSXS="no"
KODI_VIS_PROJECTM="no"
KODI_VIS_GOOM="no"
XBMC_SCR_RSXS="no"
XBMC_VIS_PROJECTM="no"
XBMC_VIS_GOOM="no"
fi
get_graphicdrivers() {
if [ "$GRAPHIC_DRIVERS" = "all" ]; then
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 nvidia"
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 nvidia vmware virtualbox"
fi
for drv in $GRAPHIC_DRIVERS; do
if [ "$drv" = "dove" ]; then
XORG_DRIVERS="$XORG_DRIVERS dove"
fi
if [ "$drv" = "i915" ]; then
DRI_DRIVERS="$DRI_DRIVERS,i915"
# GALLIUM_DRIVERS="$GALLIUM_DRIVERS,i915"
XORG_DRIVERS="$XORG_DRIVERS intel"
COMPOSITE_SUPPORT="yes"
VAAPI_SUPPORT="yes"
# LLVM_SUPPORT="yes"
fi
if [ "$drv" = "i965" ]; then
DRI_DRIVERS="$DRI_DRIVERS,i965"
XORG_DRIVERS="$XORG_DRIVERS intel"
COMPOSITE_SUPPORT="yes"
VAAPI_SUPPORT="yes"
fi
if [ "$drv" = "nouveau" ]; then
# DRI_DRIVERS are only used for NV04 - NV20 (which we dont want to support anymore)
DRI_DRIVERS="$DRI_DRIVERS"
# GALLIUM_DRIVERS are used for all cards from NV30 to nvc0
# see also http://nouveau.freedesktop.org/wiki/MesaDrivers/
# DRI_DRIVERS="$DRI_DRIVERS,nouveau"
GALLIUM_DRIVERS="$GALLIUM_DRIVERS,nouveau"
XORG_DRIVERS="$XORG_DRIVERS nouveau"
COMPOSITE_SUPPORT="yes"
# LLVM_SUPPORT="yes"
fi
if [ "$drv" = "nvidia" ]; then
XORG_DRIVERS="$XORG_DRIVERS nvidia"
VDPAU_SUPPORT="yes"
XINERAMA_SUPPORT="yes"
fi
if [ "$drv" = "nvidia-legacy" ]; then
XORG_DRIVERS="$XORG_DRIVERS nvidia-legacy"
VDPAU_SUPPORT="yes"
XINERAMA_SUPPORT="yes"
fi
if [ "$drv" = "virtualbox" ]; then
DRI_DRIVERS="$DRI_DRIVERS,swrast"
XORG_DRIVERS="$XORG_DRIVERS virtualbox"
XINERAMA_SUPPORT="yes"
fi
if [ "$drv" = "omapfb" ]; then
DRI_DRIVERS="$DRI_DRIVERS,swrast"
# GALLIUM_DRIVERS="$GALLIUM_DRIVERS,swrast"
XORG_DRIVERS="$XORG_DRIVERS ompafb"
# LLVM_SUPPORT="yes"
fi
if [ "$drv" = "r200" ]; then
@@ -77,7 +91,6 @@ get_graphicdrivers() {
XORG_DRIVERS="$XORG_DRIVERS ati"
LLVM_SUPPORT="yes"
COMPOSITE_SUPPORT="yes"
VDPAU_SUPPORT="yes"
fi
if [ "$drv" = "r600" ]; then
@@ -85,15 +98,14 @@ get_graphicdrivers() {
XORG_DRIVERS="$XORG_DRIVERS ati"
LLVM_SUPPORT="yes"
COMPOSITE_SUPPORT="yes"
VDPAU_SUPPORT="yes"
fi
if [ "$drv" = "radeonsi" ]; then
GALLIUM_DRIVERS="$GALLIUM_DRIVERS,radeonsi"
XORG_DRIVERS="$XORG_DRIVERS ati amdgpu"
LLVM_SUPPORT="yes"
COMPOSITE_SUPPORT="yes"
VDPAU_SUPPORT="yes"
if [ "$drv" = "vmware" ]; then
DRI_DRIVERS="$DRI_DRIVERS,swrast"
GALLIUM_DRIVERS="$GALLIUM_DRIVERS,svga"
XORG_DRIVERS="$XORG_DRIVERS vmware"
XINERAMA_SUPPORT="yes"
# LLVM_SUPPORT="yes"
fi
done
+1 -1
View File
@@ -1 +1 @@
Lakka - The DIY retro emulation console
Welcome to OpenELEC - the powerful Mediacenter4you
File renamed without changes.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

+2 -5
View File
@@ -1,10 +1,7 @@
{
"name": "@DISTRONAME@_@PROJECT@",
"name": "@DISTRONAME@",
"version": "@OPENELEC_VERSION@",
"release_date": "@RELEASE_DATE@",
"kernel": "@KERNEL_VERSION@",
"description": "@DESCRIPTION@",
"username": "root",
"password": "@ROOT_PASSWORD@",
"supported_hex_revisions": "@NOOBS_HEX@"
"description": "@DESCRIPTION@"
}
+4 -4
View File
@@ -1,15 +1,15 @@
{
"partitions": [
{
"label": "@DISTRONAME@_@PROJECT@_System",
"label": "System",
"filesystem_type": "FAT",
"partition_size_nominal": 200,
"partition_size_nominal": 128,
"want_maximised": false,
"uncompressed_tarball_size": 170,
"uncompressed_tarball_size": 110,
"mkfs_options": ""
},
{
"label": "@DISTRONAME@_@PROJECT@_Storage",
"label": "Storage",
"filesystem_type": "ext4",
"partition_size_nominal": 864,
"want_maximised": true,
Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 52 KiB

-461
View File
@@ -1,461 +0,0 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1024"
height="600"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="A.svg"
inkscape:export-filename="/home/kivutar/A.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#1abc9c"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="458.88015"
inkscape:cy="298.13625"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1440"
inkscape:window-height="837"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="4"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</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="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-452.36218)">
<image
y="540.36218"
x="448"
id="image2995"
xlink:href="data:image/png;base64,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
"
height="128"
width="128" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="780.36218"
id="text2998"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3000"
x="512"
y="780.36218">Lakka is a retro emulation system</tspan><tspan
sodipodi:role="line"
x="512"
y="830.36218"
id="tspan3012">based on the famous RetroArch platform.</tspan><tspan
sodipodi:role="line"
x="512"
y="880.36218"
id="tspan3002" /></text>
<flowRoot
xml:space="preserve"
id="flowRoot3004"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
id="flowRegion3006"><rect
id="rect3008"
width="85.714287"
height="47.142857"
x="31.428572"
y="397.14285" /></flowRegion><flowPara
id="flowPara3010"></flowPara></flowRoot> <text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="908.36218"
id="text2998-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="908.36218"
id="tspan3012-4">The system boots directly to RetroArch</tspan><tspan
sodipodi:role="line"
x="512"
y="958.36218"
id="tspan3043">to provide a game console experience.</tspan><tspan
sodipodi:role="line"
x="512"
y="1008.3622"
id="tspan3002-0" /></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 29 KiB

-461
View File
@@ -1,461 +0,0 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1024"
height="600"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="B.svg"
inkscape:export-filename="/home/kivutar/B.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#1abc9c"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="458.88015"
inkscape:cy="298.13625"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1440"
inkscape:window-height="837"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="4"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</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="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-452.36218)">
<image
y="540.36218"
x="448"
id="image2995"
xlink:href="data:image/png;base64,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
"
height="128"
width="128" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="780.36218"
id="text2998"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="780.36218"
id="tspan3012">RetroArch is able to auto configure</tspan><tspan
sodipodi:role="line"
x="512"
y="830.36218"
id="tspan3066">joypads when plugged.</tspan><tspan
sodipodi:role="line"
x="512"
y="880.36218"
id="tspan3002" /></text>
<flowRoot
xml:space="preserve"
id="flowRoot3004"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
id="flowRegion3006"><rect
id="rect3008"
width="85.714287"
height="47.142857"
x="31.428572"
y="397.14285" /></flowRegion><flowPara
id="flowPara3010"></flowPara></flowRoot> <text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="908.36218"
id="text2998-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="908.36218"
id="tspan3043">Lakka includes configurations for common</tspan><tspan
sodipodi:role="line"
x="512"
y="958.36218"
id="tspan3070">joypads like the one of XBox360 and PS3.</tspan><tspan
sodipodi:role="line"
x="512"
y="1008.3622"
id="tspan3002-0" /></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 29 KiB

-461
View File
@@ -1,461 +0,0 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1024"
height="600"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="B.svg"
inkscape:export-filename="/home/kivutar/B.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#1abc9c"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="507.32632"
inkscape:cy="286.36745"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1440"
inkscape:window-height="837"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="4"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</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="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-452.36218)">
<image
y="540.36218"
x="448"
id="image2995"
xlink:href="data:image/png;base64,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
"
height="128"
width="128" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="780.36218"
id="text2998"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="780.36218"
id="tspan3066">RetroArch can virtually emulate</tspan><tspan
sodipodi:role="line"
x="512"
y="830.36218"
id="tspan3093">every console and game engine.</tspan><tspan
sodipodi:role="line"
x="512"
y="880.36218"
id="tspan3002" /></text>
<flowRoot
xml:space="preserve"
id="flowRoot3004"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
id="flowRegion3006"><rect
id="rect3008"
width="85.714287"
height="47.142857"
x="31.428572"
y="397.14285" /></flowRegion><flowPara
id="flowPara3010"></flowPara></flowRoot> <text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="908.36218"
id="text2998-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="908.36218"
id="tspan3097">Lakka for Raspberry Pi supports the most</tspan><tspan
sodipodi:role="line"
x="512"
y="958.36218"
id="tspan3101">famous consoles of the 8bit ~ 16bit era.</tspan><tspan
sodipodi:role="line"
x="512"
y="1008.3622"
id="tspan3002-0" /></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 29 KiB

-465
View File
@@ -1,465 +0,0 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1024"
height="600"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="C.svg"
inkscape:export-filename="/home/kivutar/C.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#1abc9c"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="449.6059"
inkscape:cy="276.42816"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1440"
inkscape:window-height="837"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="4"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</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="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-452.36218)">
<image
y="540.36218"
x="448"
id="image2995"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABHNCSVQICAgIfAhkiAAAIABJREFU
eJzs3XecXVW99/HPPm3KmZJJmZkkpCeUBBIIkIBURSmK4r1gQdEH8YLAtXdFH/WqXK9elQcbFhAF
LIAKiqAoLRAhJLSQhJqE9MwkQ5LpZ057/thJSJlyyt5n7fJ9v17n5b0hs/c3M3PO77fXXnstCxHx
ugjQDIwDxgJjgNFAEzAKaAQagHqgDqjd/aoBqoEqIAHEgRgQ3X1Ma/fx80AOyAIZIA0MACmgH+gD
ene/uoEuoBPYBewEdgCvAh3AdmAb0L77mCLiUdbIf0VEXNQATAEmA5OAQ4CJwASgdfer2Vi68rQD
W3e/NgObgI3ABmA9sA67kRARA9QAiLivBTgUmAXMBGYA03a/xhrM5QXbgbW7X6uBl4GXgBeBNoO5
RAJPDYCIcyYCRwJzgNnA4btfY0yG8rEO4Pndr1XASmAF9kiCiJRJDYBIaY4EjgGOBuYBR+HfoXq/
aQeeBZ4Bngaewm4MRKQIagBERjYDWAAcDxy7+5U0mkgO1AM8sfu1FHgc+5aCiAxBDYDIwU4CXgec
CCzEnpAn/rMZWAI8CvwLWGw2joi3qAGQsIsCpwGnAqdgF/8qo4nELSnsJuBhYBHwEPajjyKhpAZA
wugE4A3A67GLf9xsHDEkjd0EPADcDzxmNo5IZakBkDCYBJwJvAk4Az16J4PbDtwH/AO4F3u9ApHA
UgMgQXUScA5wFnCc4SziT8uAvwP3oPkDEkBqACQoIsBbgXOBN6OJe+KszcDdwF3AX9AyxxIAagDE
z2qAtwPnYRf/WrNxJCR6sZuAO4E7sPdKEPEdNQDiNwngfODfsYt/zGwcCbkMdhPwR+AP2JsoifiC
GgDxi/OAd2AX/2rDWUQG04/dBNyGPTog4mlqAMTLTgLeDbwTLbMr/tIO3Ar8Dk0gFI9SAyBeMwl4
L3AhMNdwFhEnLAd+C9yCHi0UETnI+dj3UvN66RXg1x3Yv+sixmkEQEyaCVwMvB/7yl8kLDYAvwZu
BF42G0VEpHLehq729dJrz+sO7PeESEVpBEAqpQG4FPggcIThLCJe9BxwPfBzoNNwFgkBNQDitiOB
D2EXf+2yJzKyFHYT8FNgheEsIiJFexP24iimh1f10svPrz9iv5dEHKcRAHHahcCVwMmmg4gEyCPA
j7EfJxRxhBoAccrlwIeBOaaDiATYSuCHwHWmg4j/qQGQckSAjwMfBaYYziISJuuAa4Fr0M6EUiI1
AFKKOPBJ7OLfajiLSJhtxW4CvgekDWcRn1EDIMWIAp/GLv5am1/EO9qxm4D/BbKGs4hPqAGQQn0S
u/iPNx1ERIa0BbsJ+J7pIOJ9agBkJJcDnwWmmQ4iIgVbC3wbTRaUYagBkKFcCHwe7cgn4mfLgW+h
xwdlEGoA5EBvAr4InG44h4g450HgauAfhnOIiAcdCfwe8yuf6aWXXu69fo/9XhchajqAGNeAfWVw
E1rERyTo5mCv1NkAPIa974CElBqAcPsw9lrjZ5gOIiIVdSL2Bl19wOOGs4ghagDC6UzgZuAyoNZw
FhExoxZ4M3A2sAFYbTaOVJomAYbLROAbwMWGc4iI99wIfAnYZDiHVIhGAMLjE8CfgONNBxERTzoa
e92PPuz5ARJwagCC71TgFuz7fXHDWUTE2+LAWdiPA7+MvemQBJQagOBKYC8J+lNgsuEsIuIvk4EP
AKOAB9D+AoGkBiCYLgDuAM4xHUREfO0E4L3AZmCV4SziME0CDJax2Ff9/8d0EBEJnF9hbwi23XQQ
cYZGAILjfcCdwEmmg4hIIB2N/QRRG/YeA+JzGgHwv3HA97GH6UREKuEW7CeLtpkOIqXTCIC/XYh9
1X+i6SAiEipzgfdjrxmwwnAWKZFGAPypBrgW+A/TQUQk9H4BfBR7/QDxEY0A+M/ZwJ+xn9MVETFt
PvBO4CXstQPEJ9QA+Ms3sZ/rH2M6iIjIPsYAF2GvP3K/4SxSIDUA/jAbuBV7pr+IiFedApwOLEUT
BD1PDYD3XYI95D/TdBARkQJMxZ6ftBl4ymwUGY4mAXrbdcCHTIcQESnRT7E3GBIPUgPgTfOx3zjH
mQ4iIlKmZdgXMk+aDiL7UwPgPR8EfgZETAcREXFIDrgMuN50EHmN5gB4y7XYM/3VmIlIkFjA27Cf
FrjHcBbZTYXGG6YBN2DPnhURCbIHsSc3rzWcI/TUAJj3Fuzi32w6iIhIhbRjNwF/NR0kzHQLwKxP
ATcCScM5REQqKQm8B+gGHjWcJbTUAJjzU+ALpkOIiBh0JjABuMt0kDDSLYDKmwDcBLzBdBAREY+4
H3ul082mg4SJGoDKOgm7+E8zHURExGPWYjcBi00HCQs1AJXzHuBm9D0XERlKHntTod+YDhIGmgNQ
GZ8DfoKKv4jIcCzgfKAfjQS4Tg2A+64FrjIdQkTER96IFg1yna5I3RMBfg9cYDqIiIhP3Q68C3sp
YXGYGgB3tGIX/1NNBxER8blF2E3AVtNBgkYNgPOOBG4FjjAdREQkIJ4D3gmsMB0kSNQAOOtU4Da0
rK+IiNPagXdgjwiIA9QAOOdt2Per4qaDiIgEVBp7XtWfTQcJAu0574yLgDtR8RcRcVMc+7P2ItNB
gkCPAZbvcuB60yFERELk34E2YJnpIH6mBqA8n8R+zl9ERCrrXKAL7SZYMjUApfsi8D+mQ4iIhNhZ
2PMCHjYdxI/UAJTmq8B/mQ4hIiKcgT2h/UHDOXxHDUDxvgF82XQIERHZ63TsCYL3G87hK2oAinM1
9tC/iIh4y6lAFXCf6SB+oQagcFcDXzAdQkREhnQKagIKpgagMN9AV/4iIn5wCrodUBA1ACP7Krrn
LyLiJ6eiiYEjUgMwvC+i2f4iIn50OnpEcFhqAIb2SfScv4iIn52BFgsakhqAwV2OVvgTEQmCs9Cy
wYNSA3Cwi9Da/iIiQXIusBpYbjqIl2g74P29DXunKRERCZ7z0FbCe6kBeM2pwD/Rlr4iIkGVBt4I
LDIdxAvUANiOxF44otl0EBERcVU79uTAFaaDmKYGAFqxF4w4wnQQERGpiOeANwBbTQcxKewNQAR4
AHv4X0REwmMR8HogZzqIKRHTAQz7PSr+IiJhdCp2DQitMD8GeC3wAdMhRETEmNnAGOAe00FMCGsD
8DngKtMhRETEuIVAP7DYdJBKC2MD8B7gJ6ZDiIiIZ7wReAl41nSQSgrbJMCTsDeGCNu/W0REhpfH
3ko4NCMBYSqEE4BHgGmmg4iIiCetBU4GNpsOUglhegrgJlT8RURkaNOwa0UohGUOwE+BC0yHEBER
z5uGPWJ8l+kgbgtDA/Ap4AumQ4iIiG8cC3QDj5oO4qagzwF4CyHo4kRExBXnAn81HcItQW4ApgGP
oQ1+RESkNO3ACdiTAwMnyJMAb0DFX0RESteMXUsCKahzAK4F3mU6hIiI+N5UArpccBAbgA8C3zQd
QkREAmMhsBF4ynQQJwVtDsB8YCnBvrUhIiKVlwOOB540HcQpQWsAlgLHmQ4hIiKBtAy7CQiEIN0C
uA54m+kQIiISWBOA8QTk8fKgNACXAP9lOoSIiATeccAGAjAfIAi3AGZj35OpMh1ERERCIYU952yV
6SDlCMJkuR+h4i8iIpVThV17fM3vtwC+CbzPdAgREQmdqUACuN9wjpL5+RbA2QRwYQYREfGVc4C/
mQ5RCr82ADXAM8As00FERCTUXgLmAX2mgxTLr7cAfgK8yXQIEREJvTFAC/AX00GK5ccG4EK01K+I
iHjHfOBFYIXpIMXw2y2AccCz2N2WiAyiPmkxc1KEWZMjzJocZdrECI11FvVJqK+1qE9a1NVa1Nfa
b/+u3jzdvXm6evJ09ebp6oFd3XnWbsrx0vosL63P8fKGHF09ecP/MhFPawOOAraZDlIovzUANwPv
NR1CxCtqqy1OnBfl1PkxjpsdZebkKK1j3Hlbb+3I8/L6LMtWZVn0ZIZHn8nS26+mQGQftwAXmQ5R
KD81AO8Dfm06hIhJiTicMDfGafNjnDI/xvwjosRjZrKkM/Dkc1kefjLDQ09meGx5hoG0mSwiHvJ+
4CbTIQrhlwZgLLASaDYdRMSE4+dEeffZCc4/I05Tgzfftjs68/zhvjS/+9sAS1dmTccRMaUdmANs
Nx1kJN78JDnYjcD/MR1CpJImtUZ491lx3n12gpmT/LVo58sbcvzubwP87u9pNmzNmY4jUmm/Ai42
HWIkfmgALgBuMx1CpFKOOTzKp95fxbmnxLH88A4dRj4Pdz2c5ru/TvHU8xoVkFB5B3C76RDD8frH
SwJ4DphuOoiI2143L8an31/FGQsN3dR32X1LMvzvr1P865mM6SgilbAGOAIYMB1kKF5vAL4PfNx0
CBE3nXZsjM9fUsXr5gWz8B/oX89k+NYNKR56Qo2ABN41wCdMhxiKlxuAU4GHTIcQccuE5gjf+kg1
570+bjqKEXc+kObzP+hnc7vmCEignQYsMh1iMF5uAB4BTjIdQsRpsShc8Y4qvvDBKpI1Xn4Luq+n
L89/X5/iJ7elyGiKgATTYuBk0yEG49WlgD8BXGo6hIjTTpwb4/ffruVdZyVIxMNd/AEScYs3LIjx
1tPirFqdY2ObRgMkcCYDncBjpoMcyIufQBOx11SuNR1ExCnRCHzp0mo+cVGV72f2uyWfh+/fnOIb
P+8nqz5AgqUXOBTYZDrIvrw4AnAtcLzpECJOmdAc4dZv1/LOMxMq/sOwLDhxXoxTj41x/9Ks9h6Q
IIkDo4E7TQfZl9c+js4E/m46hIhTzjwxxk+/VMvoRq+91bzt1V15PvSNXu59VE8KSKCcBdxrOsQe
XhsBuBk4xHQIkXJZFnztimq++8kaaqtV/ItVU23xjjclqKm29LigBMks4HrTIfbwUgPwYeAy0yFE
ypWIw8+/XMslb9eQfzksy974aNbkKPcsTmtegATBIUAH8LjpIOCdWwANwGrsTX9EfCtZY3HL1bW8
/vhwLOpTKQ8szfDeL/bS06d5AeJ724EZ2E8GGOWVEYCrgTNMhxApx9hRFndek+TEkKzoV0nTJkZ4
w4IYdy1K09tvOo1IWWqBKjwwF8ALIwBHAs+aDiFSjkNaItx5TdJ3u/b5zcsbcpz38R6tFyBBcBSw
wmQAL3xafdl0AJFy7LnyV/F338xJdqM1dpQXrl1EymK89pl+F70JDwyDiJQqWWPx1x8kOeZwr9xN
C4enns/ylo/0aE6A+N2ZwD9Mndz0p9b1wFTDGURKkojD776le/4mjB8bYf4RUf54v54OEF+bBPzK
1MlNNgAXAp8yeH6RklmW/ajfm08J505+XjBtYoQZh0T580Np01FESjUVe+l7I3MBTDYAtwAtBs8v
UrKvXVHNJW9PmI4RerOnR6musnhwmRYLEt+aBVxn4sSmGoDLgQ8aOrdIWc48McZ3P1mjRX48YuFR
MZ58PsvqjboXIL7UArQByyp9YlMfYWuAaYbOLVKyCc0RFv+yTmv7e8yru/Kc9IFuNrerCRBfWgtM
r/RJTTy39ElU/MWHohG44as1Kv4eNLrR4oav1hDVk5jiT9Owa2NFVfoWQBS4Haiv8HlFyvZ/L6vm
nWfqvr9XTWqJEI9p8yDxrbnANUDFnm2tdAPwWeDfKnxOkbKdODfGD7+g+/5ed8LcGA89kdVKgeJH
9UAvsLhSJ6zkx1kc2Ag0V/CcImWLReHhX9Yxe7rpZTOkEKvWZDnlA91ksqaTiBStHXvHwIo821rJ
T7TPAOdV8HwijvjPd1XxrrM09O8X45oidPXA4yvUAYjvJIEeKjQKUKkRgAiwCWit0PlEHDGhOcKy
W+pI1mjs3096+vIc9149FSC+tBWYCLj+y1upObMfR8VffOhbH6lW8fehZI3Ftz5SbTqGSClasWum
6yrVAHy0QucRccxpx8Y47/Va6tevznt9nNOO1T4N4ksVqZmVaAAuB6ZU4Dwijvr8JVWmI0iZ9DMU
n5qCXTtdVYkG4MMVOIeIo143L8brtMuf7+nnKD7meu10uwG4EJjj8jlEHPfp9+vKMSj0sxSfmoNd
Q13jdgNwpcvHF3HcMYdHOWOhrhqD4oyFMY45XGs4iC+5WkPdbADeBJzs4vFFXPEpXTEGjn6m4lMn
Y9dSV7jZAFzh4rFFXDGpNcK5p2jmf9Cce0qcSa3aKUh8ybVa6tY74ki05r/40LvPimu9/wCyLPtn
K+JD/4ZdUx3nVgPwIZeOK+Kqd5+tJX+DSj9b8TFXaqobDUADcKkLxxVx1fFzosycpGHioJo5KcLx
czQZUHzpUuza6ig3Pu0uBTTjRnznQl0hBp5+xuJTVbhwYe3G3c5VwBEuHFfENYk4vHhnA00NmgAQ
ZDs68xx6XicDFdlsVcRRzwGznTyg0yMAb0PFX3zohLkxFf8QaGqwOGGu1ngQXzoCu8Y6xukG4BKH
jydSEafOV1EIC/2sxcccrbFONgAzgfMcPJ5IxagohId+1uJj52HXWkc4+U642MFjiZSsLg5T6mBq
PUyrh0lJqE9AMgbJONTFoDZm/z2AXiyO1Ozw0FgwJ8rKz02mLmb/zLtSOboH8nSncnSncnSlcnSm
crzyaprVHfZrTUearlTOcHIRwK61X3LiQE7e9FwPTHLweCIjqonB/DGwoBmOGm0X/XHVxR2jekqM
5n9LuhNQPKn/iQayHcUtDNTWnWX19gGe3pzikbV9PL6+n9503qWEIkPaAEx24kBONQDnA7c7dCyR
IcUjMH8sLBhnF/0jmyBW5o2sUSdX03CcnlwNk/QrNQy8WFveMXJ5ntmUYvEr/Sx+pY8l6/tJZ9UQ
SEVcAPyh3IM41QDcge7/i4vmjoa3ToFzJkGjw49yN1+QpPoQ3RcOk+yrcfqXObuuys6+HHes7OYP
y7t4YmPK0WOLHOBO4O3lHsSJBmAS9vC/iKMm1NpF/62TYUq9e+eZeGkD0aQeAQyTfCpC70NNrh1/
TUea25d3c/vyLjbuyrh2Hgm1ydi3A0rmxMynK4E3OnAcEQDmNMFVx8CXj4WFzTDKxdH5SMJi1ElF
ThoQ37NieTLraiDnTuPXVBvlpGk1/McJjcxpSbBuR4a2rqwr55LQagceKecATvz2PwPMdeA4EnLz
x8JlR8BJLZU7Z6IlSuuFdZU7oXhG32ON5Dord+vnwdV9/L+Hd7BkfX/FzimBthyYV84Bym0ATqLM
DkRkYTNcOdtuACoteXicMWeXNxlM/Cn1bB2ZLZWf/LlkfT/ffWgHj6ztq/i5JXBOBhaX+sXl3gL4
LLCgzGNISLXUwH8dB584CsYbqsG1sxKaABhS+Z4o2VeLexTQCYc0xnjHvHoOG5dg2cYU3VpfQErX
C9xT6heXOwLQBjSXeQwJmagFF82yr/prDdfeMWfXkjy88kVAzMtsqSL1rNnbPz0DOb770A5+saST
TE6PEErR2oGSb5qWMwJwHvDBMr5eQmj+WPjRyXDuZPuZftPq5iSIN3kgiFRcPhU1cgtgX4moxWkz
ajnn8CTPtQ+wSU8MSHGSwNPAC6V8cTmffO8o42slZCIWfOxIuPF0mOns49dliWj9n/CKeWfo/fDm
BH+6eAJfeMNoonoiVYpTci0u9VctAewC9PyUjKilBr690Mwkv5G0vreOxDjtAxBGua4YfY82mo5x
kMfX93PFH9vZ0qnRAClIP9AIDBT7haWOAJyPir8U4JRWuP1N3iz+AJEqXW6FleWhEYB9LZhczT8/
NJEzZunpFClINXZNLlqpDcC/l/h1EhIW9uz+H50MoxxeutdJkbgagNCKeXfSXVNNlF9f2MpVZ4x2
dMc2CaySanIpDUANDqxBLMEVj8D/LIRLDnN2u0k3WAmvJxS3WFHvNgBgv3f+86RR/Pj8ZuKaGCDD
ezt2bS5KKQ3A2wE9OC2Dqo3Bj06yN+0RkfKdN6eOmy5sJZnQ0yoypBglXJiX8hulXf9kUE1VcMNp
cGIFl/ItV37A21eB4p581j9X1adOr+H2949nTK0mrMqQiq7NxTYAEeCtxZ5Egm98Ldx0ur2Rj5/k
0moAQivjnwYAYN6EKu78wAQmNmoAVgb1Voqs6cU2AG8FNDVV9tNUBT8/xd0te92SS6kBCKt8xn9D
6tPHxPn9RRoJkEHVUuQFerHvgHOL/PsScLUx+MnJ/iz+AHmNAIRW3qe7804fE+fm92hOgAyqqBpd
7G/Qm4v8+xJg8Qhcc6L/hv33lUuZTiDG+HAEYI95E6q4/p0tejpADlRUjS7mHXASMKG4LBJUFvDN
4/014W8wugUQXvm0v4vnqdNruPbt4zz/qK1U1ATsWl2QYhqAc4rPIkH18aOC8ahfZpc3V4MT9+X7
/DsCsMd5c+r44hmjTccQbym4VhfzDjirhCASQKe0wgcOM53CGZkdPr0RLGXL9QRjIt2VJ43SssGy
r4JrdaENwCTguNKySJC01MDVC7y/wl+h0js0AhBWQWkALODat49jfIMeDxTArtUFjc8W2gCcWXoW
CYqIZe/q5+W1/YuVUQMQWvneYDQAYO8d8JN/b9ZWwrJHQTW70AbgTWUEkYD4yBzv7upXqtxAnmyP
JgKGTT4VIe+zhYBGsmByNZ99veYDCFBgzS60ATijjCASAPPHwgcPN53CHWnNAwidoAz/H+jDJ49i
wWTt1C6F1exCGoATgIBd90kxohZ8eX5w7vsfaGCrGoCwyXUG8365BXzrzWOJRYL6bpUCjcWu3cMq
pAF4Q/lZxM8umgUzG0yncE//hozpCFJh2Y646QiuObw5wX8sDPAbVgo1Yu0upAF4vQNBxKdaauDK
2aZTuCu1OUtecwHDIw/ZncEcAdjjU6c16akAGbF2j9QARIHTnMkifvTZefZ6/0GWT+cZaNNtgLDI
7oqBj7YCLkUyEeFrZ44xHUPMOg27hg9ppAbgNCC4Y2UyrIXNcOYhplNUhm4DhEfu1XB8pJ07O8nJ
02pMxxBz4oxwAT9SA3Cqc1nEb4I+9L+vlBqA0MiGpAEA+1aAhNqwNXykBuAUB4OIj8wfG7xn/oeT
2pwh16/1AIIun7bI7gxPA7BwcjUL9VhgmA1bw0dqAAreVUiC5bIjTCeorHwWel9Mm44hLstsrYKQ
Tfj82CkaBQixYWv4cA3ASUCVs1nED+Y0wUk+3+a3FD3PDZiOIC7LbA7fR9rpM2qYNyF8/24B7Bo+
ZBMwXAPwOueziB9cGtAV/0aS2pLV3gABluuNktsV8EdahvDRk0eZjiDmDFnLh2sATnQhiHjchFp4
w0TTKczRKEBwhfHqf4+zD09ySGM4mx8ZupYP1wAsdCGIeNxbpwR3yd9C9DyveQBBldkS3gbAAi6Y
W286hpgxZC0fqgGYAUxwJ4t42Vsnm05gVqYzR+/LagKCJtueIN9X6N5nwXTB3DrTEcSMCdg1/SBD
vSMWuJdFvGruaJiiiwQ6l6ZMRxCHDazRgjjTx8Q59pDwjoKE3KA1fagG4HgXg4hHvW2K6QTeMNCW
pX+dFgYKimxHPLC7/xVLtwFCa9CaPlQDcKyLQcSD4hE4e5LpFN6x63GNAgRFWlf/e503p454NMyz
fEJr0JquBkAAe9W/xoTpFN6R2pQhtUmjAH6X3REnuyM8K/+NZFRNRCsDhlPBDcCRQNLdLOI1x48z
ncB7dj2mUQC/S6/W1f+BXjdVDUAIJbFr+34GawCOcT+LeM3CZtMJvKd/Q4bel/REgF9l2hKh2vin
UCdPVVMUUgfV9sEagKMrEEQ8pCYGR2q58EHteKiffFqbBPlNPmsx8IIGMgczb2IVtXHNAwihg2r7
YA3AvAoEEQ+ZPwZi4X5EekjZ7pxuBfhQenUN+X79Ug8mHrFYoHkAYXRQbR/sHXJUBYKIhyzQ8P+w
Op9Kke7Imo4hBcp1R0mv0zD3cE6epu9PCB1U2w9sACYCKgchc9Ro0wk8Lgev3tdvOoUUaGBVHeiu
zbCO1u6AYdSMXeP3OrABOGiWoATfVK0NMqLU5oxWCPSB9Noasju16M9IZozVM78htV+NP7ABmFPB
IOIBdXEYp9uBBdn5r35Sm7U2gFdld8YYeLnWdAxfaKmLUl+lORIhtF+NP/A3YHYFg4gHTNH+IIXL
w/a7+8j1a3zZa/Jpi9Tyeg39F2H6GD0iGUL71fgDG4DDKxhEPEDD/8XJdufo+Huv6RhygNSzdZr1
X6QZagDCaL8arwYg5KapASha39oMncs0H8Ar0mtryG7XPe1iqQEIpSEbgBZgTGWziGmTtFZKSXY+
0k/vC1ol0LTM1ioGXtJ9/1JMHa0GIITGYNd6YP8G4NDKZxHT6nXhVLKOe3vpX69JgaZkO+KkVmgS
S6kaNAkwrPbW+n1/A2YZCCKGJfXEVMnyWdj2l14G2rRIUKXlOmOknq6HnOkk/qWnAEJrb63f9zdg
poEgYlhSo4BlyafztN/RQ2aHKlGl5Hqj9D9ZTz6r9ezLUacGIKz21vp9fwNmGAgihtVpBKBsub48
7X9UE1AJud4o/csayA+oeJVLDUBo7a31+/4GTDMQRAyrVQPgiExXjq23dut2gItynTH6H2/Q434O
qUtoBCWk9tZ6NQAhV6dbAI7J9eVpu71HEwNdkO2I079UV/5O0hyA0DqoAWgAxprJIhIcVg6sjRGs
Tl1dOcXqtLA2RjThT8QZY7Fr/t4GYIq5LGJStx5ld0w0YdGyoJ6a0XGszRGsDjUB5bI6LKzNEWJV
GWpaurEiWuvXKV0pdVQhNgVeawAmGwwiBvVqtNoRseoIrQsbqGp8bVKFtS1iX7lqWkDxsrtHUra9
NkwdTWSpbe0iElPhckL3gJqpEJsMrzUAkwwGEYO61QCULZqwaDm+nngyetB/s7otImuj0KfRgIL1
2d8zq/vg71kklqOmWSMBTujWCECYTYLXGoBDDAYRg3p0C6AskahF87GDF/+9MhBZp1sChbA6LCLr
IjBMY7q3CbDUBJRDDUCoHQKvNQATDQYRg3o0AlAyKwLj5tftN+w/7N8CqKk8AAAgAElEQVTfFrGL
W0qNwEFSduHfd8h/ONFElupxPaBvZck0ByDUJsJrDcAEg0HEoK4B0wn8a+xRddQUu6Nan0XklQhW
u2a1A5ADqz1C5JVI0bdJYtUZasZoa+ZSdaoBCLMJAHsuXVoNBhGDNvSYTuBPTYfWkhxf4k5KebBe
tbA6o+RbcuTrwzmUbXVZWG3DD/ePJFY7QNUoi9TOGueChcQrr+r+X4i1ghqA0FvbZTqB/9SMi9M4
vbr8A2XA2hSBZJ78mDzUhqQR6LXsx/t6nBm/TzSkyKZiZPq0qlUxVneoAQixvQ1ABGg2m0VMeUUN
QFFi1RHGzXV2C1qrZ3cxrLUbgXwymI2A1WMXfnqdv3FfPaaXni315LNa3a5QagBCrRmIxFDxD7V1
3aYT+IgFY+fVEYm7NPOs18LqtbCqdzcCAbk1YHXtLvz97s3YsyJ5asb20tvmbHMWZGvUAIRdcwwY
ZzqFmNOdhm39MM6BEe2ga5pVQ3VTBXZP6rewNllYccg35Mk35qDE6QbGDIC1a/eSyBWqM9GqDFWj
+knt1C/zSNq6s3oKQMbF0B4AofdKlxqAkVQ3xWicXuGJZundS+F2RKEmbzcDDXkYZskBo7K71+3v
tIwtfJRo6CfTFyOb0jaXw1m9XY//CGNjwBjTKcSsZ1+F4zUONCTLgtFzkmZD9FlYfRZWO+Rr8vbE
wVqgOm/uWfg89mhFL9Bj58MDdy2qR/fRs6XedAxPe3pzynQEMW9MDBhtOoWY9Xg7XHKY6RTeVT+l
mkSdRy6782D12hPpLIDI7oagNg81kE/kX3u2x2kZsAYs6MM+f5/lybUMIvEsiYYUA51VpqN41iNr
+0xHEPNGx4Am0ynErCc7IJODmCZQHyRWHWHULA8/Y56zZ9ez+5G6PU0BiTz5hP2/JOw/y0d3/7dI
fvf/vnYM+2UXdCu7+/8fAAYsrN3/68ViP5REYz/pnrieChhEOpfn8fX9pmOIeU0xYJTpFGJWXwZW
7ICjdTPoIE2H1xKJ+my92Rz20Hw/7Ht/wGf/irJYVp7qpj76thu+deNBz2xK0Zv2wL0aMW1UBGg0
nULMW9JuOoH3VI+Jk2z12/R72SNWmyZarc0uDvTIKxr+FwAaI0CD6RRi3tJtphN4z6iZHh76l4JU
NWqo+0D/ekXfEwGgIQJouqzw5HbYpSeD9qpuilXmmX9xVbQqQ7RKowB77OzLsUT3/8VWHwG0dJaQ
zsHfNphO4R2NM3T1HxQJjQLsdefKbtJZ3f8XAOoiQK3pFOINf15nOoE3VDXGqBmrjWWCIladIZrI
mo7hCbcv1+YfsletGgDZa/mrsE6fD87s9CeekmjQKMCajjRPbNQCQLJXbQTQWKfs9Zf1phOYFauJ
UNuimf9BE6tNE4n5aCEDF9y+XDt/yX5qIoAud2Svv6zzxGquxtRN0OpxQRVLhneWax4N/8tBqiOA
PvFkr829cP8m0ynMSU7Q1X9QxUPcAPzt+R427tLTELKfqgj+22hUXPbz500nMKNqVIx40iNr/ovj
IrFcaB8JvPaRnaYjiPckIoCmO8t+Vu6AxW2mU1Sehv+DL55Mm45QcQ+u7uMZ7f4nB4tHcG/vMPGx
nz1nOkFlWRFIjtdgWNDFagfCtSkC8P8e3mE6gnhTLAJozFMO8uR2+xUWVU1xIvGQVYYQsiL5UN0G
WLK+Xyv/yVCi+24KKrKfH68ynaByqkdrICwsYiFqAL77kK7+ZUiRCKEbEJNCLWmHezeaTlEZNWM0
FSYswrJD4F2renhkrXb+kyFZuvqXYX37GegN+OelFbVINGoEICyiiQyWFezVLnoGcnzl3g7TMcTj
IoR73RcZQVtf8G8FVDfFsDQOFh4WRKuCvTfAdx/awZbOgHfuUq58BAj3+pgyoptfgpc7TadwT7WG
/0MnWh3cxwGfbx/gF0sC/IYVp+QiQLBbYSlbNg9ffzK4Q0VVjXoQJmyCujtgHvj83dvJ5IL6bhUH
ZSOAxolkRE9uh+sDukKgVv8Ln0g8mAOfP3xkJ4/rsT8pTCYCBHcsTBz1g5XBWxsgErOIVmkubNhY
0RxWJFhXyY+v7+fbD7xqOob4RzoChHeHDClKLg+fXQI7A/Qbo6v/8ArS9sA7+rJc8cd2ssHqacRd
AxFAi0RLwdr64IuPB2c+QCypq/+wisSDMQ8gD3z0jm2a9S/FSkUA3TCSojy8FX75gukUztAIQHgF
ZQTgx4t3ct9LvaZjiP/0RwAtFSVFu+ZZuGeD6RTli9eqAQgrKwANwJ0ru7n6Pt33l5L0RQC1jlK0
PHDVUnjU59sGR2JaASis/D4JcNGaPj56x7bA3I6TiutVAyAlS+fg44/CSh/vN2KpAQgtPzcAz2xO
8cFb20hr1p+UrjcCdJtOIf7Vm4ErHoF1XaaTlEYjAOHl1/0A1nSkueg3W+kZ8P8tDDGqOwL49KNb
vGJHCi592J9NgBqAEPPhCMCajjTvunkLHb3BeIJBjOqKAFo0Wsq2pRfe96D/bgdYUTUAYeW3WwDP
bE5x3i83s2mXHvcTR3RGgF2mU0gw7EjBJQ/Bo9v8U1Q1AhBefroFsGhtPxf8Wlf+4qhdEWCn6RQS
HP2JOP97wXk8esRhpqOIBMJDEyfylYUL6YvpkVVx1M4oMAd4q+kk4n+xphqm/+h8auYfwtLDZxHP
ZDl042a8fI3dMKWaiG4DhFI+bzHQWW06xpDywG0zZ/HDefOIHjKK+oVT6HzwZXL9ugUgjrgtCkwD
3mk6ifhbvLWeGT97B9Uzx+79sxVTJ7NmfCvz1r5CIuPND62GydVE4moAwiifjZDuqjIdY1CdiQTf
PO54/jpt2t4/i4+ro+H0GXQ+tJpcd4A25BBTfh0BOkynEH+LNdUw/cfnUzW56aD/9vSMaXzhkvfx
wiETDSQbWS7jn/vA4rCcNxu/laPHcOVpp7O0peWg/1Y1uYnpPz6fWFONgWQSMB1RoB64wnQS8adI
bZzpPzp/vyv/A/VVJXj4qNnEcjkO3bjJU7cEkhOqiNVoQ6AwymWipHsSpmPslQdunTWL78yfT088
PuTfizXWUHfcJHb+/Xnyaa0FICX7bhSIAJ82nUT8x4pHmfa9t5E8ZuSr+7xlsXLqZFZOncyMLVtp
6PXGFhTJ1oQ2BAqpXDpKptcbDcAr9Q18Y8Hx3Dt5Cnlr5BY5Pq6O2tkt7PzHi/Y+3SLF+y8LuwHQ
syVSHAsmf/PNjDqz+Nn+0VyOs5Y9xfmPPEr1QNqFcIUbN6+O5HhvFAGprHRPgv6OWqMZ+mIxbj7s
MO6YPoNsAYX/QDvvfYH1V90dnP25pZKiUexfnSuBpOEw4iPjP3IyY86fW9LX5i2LlyZO4JEjZzO2
q4uJ283tZpZoiFI9eujhVgmubF+cbCpm7PwPT5jAVxYs5InmloKu+gdTPWMskaoY3Y+vdzidBFw7
8J09Y5/vAw6ecSIyiPqTpjHxc2dQ7s38vqoESw4/lBcOmUjzrk7GdlZ+LeFodYRki0YAwijdkyCX
rvztnxVjxvC9Y47htpmz6B3mXn+hkvMm0ruqjYENWtJFCrYauG7PR/jfgTMNhhGfiDfXcehv30e0
0fnnpw/bsIm3/2sJc9euc/zYQ6lqjDH+xIaKnU+8o3drPdmByjUATzQ389tZh7JizBjHj53d1c+L
F95Eul17u0lB7gXO2vPbfwZwtMEw4gNWxGLqNW+naupoV47f0djA4iOP4OmZ02no7WN8x6uuPzGQ
z+ZpnK5HqsIotbMG8u7+huWBR8eP5zvzj+W2mbNor3VnzkGkOkbtnFZ23rVK8wGkEA8Dd+5pAI4H
TjUYRnyg9cqTaDrnCNfPs6OujseOOIxFR82hu7aG0V3d1Pf1u3KufA7qJ1VpT4CQyWcjrq4CuKmu
jj9Nn8H3jjmGu6dMpaPa/RUHE60NWLEI3Us3uH4u8b2/AvfvmQGz0WQS8b7k0RNpvnhBRc+5vbGB
O163kDtet5CZm7dw8ornOHHVC9T1O9sMpHuyRKu0FkCY5NLO/7y7EgkemjCRf06axPNNBy+KVQnN
Fy+ga/Er9Dy9ycj5xTc2wmvTuN4C3GUui3iZFY0w6zcXUT3D+XuXxYplsxy2cTOz121g9roNzNiy
lWiuvMVQmg6rpXGad9eEF+cNdFbZtwDKkIlEeHHUKJ4ZO5Znxo5jxejRZCLmG8n+1R289J6byWe1
SJAM6Vzgr3tGAPQMiQxp7IXHeKL4A2SiUVZOmcTKKZMAqEqnOWzjZuasW8+MzVsZ/+oORnX3FHXM
/o60GoCQyfYXP/v+1epqNtbV8cKoJp4eO5aVY8bQH/XeIlLVM8Yw9sJj2HbzE6ajiHeth9dGABqA
XeayiFfFm+s47PaLidT651n5mtQA43fsYHzHDsa/+iotO3ZRm0pRkxqgZsB+Ve/+vwFSNQlmn1RD
iY9ii8/ksdjSNpaatL3+WW8stvsVpy8WozceozseZ0ttko11dXtfvTFzawYUK9eb5oULbtRTATKU
RqBz34+8bcDQC7pLKE35n3NpPGOW6Riuu+6leziqp910DKmAZ5PNXD7rHNMxXLfrvpdY9znd2ZWD
bAfGgb0M8B5rzWQRr6pbMDkUxR/gibpW0xGkQsLys248YxZ1CyabjiHes7fWqwGQIbVceoLpCBXz
ZH04ioKE62cdpvewFGzQBmC1gSDiUcljJha0y19QLE+20BmtMh1DXNYZrWJ5MjyrnoftfSwF2Vvr
920AXjYQRDyq+ZKFpiNUVNqKcF/TVNMxxGX3NU0lbZl/VK+SwvZelhHtrfX7vhNeMhBEPKhmdgv1
J04xHaPi7mmaYTqCuCyMP+P6E6dQMzs8ox4yor21ft8G4EUDQcSDmj9Q2RX/vGJlchwbqrQxUFBt
qGpgZXKc6RhGhPU9LYPaW+v3bQDagI7KZxEvSYxvoPH0maZjGPO30eG7QgyLMP9sG0+fSWK8mluh
A7vWA/s3AADPVzaLeM2oNx+B61vwedjfmqZrM7UAymP/bEPL2v3elrDbr8arAZD9NL0l3B8SWxN1
LGrUs9NBs6hxMlsTdaZjGBX297YAIzQAqyoYRDym9qjxVE02s4uZl/y6Za7pCOIw/UyhanITtUeN
Nx1DzNqvxh/YAKysYBDxGF0h2J6vHcOS+gmmY4hDltRP4Plab2xmZZre46G3X40/sAFYUcEg4iFW
PMqoMw8zHcMzftWqK8ag0M/yNaPOPAwr7r0dDKVi9qvxBzYAmwDtiBJCyaMnEG3Qlrh7PJNs4ZkQ
rRgXVPo57i/aUE3yaI1uhVQ7do3fa7AlsZ6tTBbxkrrjJpmO4Dk3tM4zHUHKpJ/hwfReD62Davtg
DcAzFQgiHlN3vD4UDrSsfjwPjArfiohB8cCoKSyr16S3A+m9HloH1fbBGoCnKxBEPCRSE6dmdnh2
SCvGtRMX0BeJmY4hReqLxLh2ola/G0zN7FYiNXHTMaTyDqrtgzUAT1UgiHhI8ugJWLFwbZBSqPZ4
Lde3Hm06hhTp+tajaY/Xmo7hSVYsonkA4XRQbR/sU38F0ON+FvGKuuO18M1wbh03mzXVo0zHkAKt
qR7FreNmm47haXrPh04PgzzlN9Rl3xPuZhEvqZmj4f/hZC2L70w6UUsE+0Ae+M6kE8laIV7PugB6
z4fOoDVdDYBQNUWr/41kebKZm1uOMh1DRnBzy1EsTzabjuF5es+HTlENwFIXg4iHRJMJ4mOTpmP4
ws9aj1Fx8bDlyWZ+1nqM6Ri+EB+bJJpMmI4hlTNoTR+qAXjcxSDiIQldCRQsZ1l8Zepp7IpVmY4i
B9gVq+IrU08jp6H/gum9HyqD1vShGoDVwGb3sohXaCiwOO3xWr4++WTNB/CQPPD1ySdr1n+R9N4P
jc3YNf0gwz37tcSdLOIlVVNGm47gO482HMItzUeajiG73dJ8JI82HGI6hu/ovR8aQ9by4RqAR10I
Ih5TdUij6Qi+dN2EY/ln0zTTMULvn03TuG7CsaZj+JLe+6ExZC0frgH4lwtBxGOi9bqfXYo88I3J
J7NU2wYbs7R+At/Q7ZiS6b0fGkPW8uEagMVAyvks4iURzQQuWdqK8IVpr9de8wY8XzuGL0x7PWlL
K1iWSu/9UEhh1/JBjfTuGfILJRiitfoQKEdfJManpr+RDVUNpqOExoaqBj41/Y3ao6FMeu+HwrA1
fKQG4GEHg4gHRer0IVCunbFqPjbjTDUBFbChqoGPzTiTnbFq01F8T+/9UBi2ho/UACxyMIh4UERX
AY5oSyS5fNY5uh3goudrx3D5rHNoS2jhKifovR8Kw9bwkRqAh4C0c1nEa7QamHN2xqr58MyzNTHQ
BUvrJ/DhmWfryt9Beu8HXhq7hg9ppAYgO9IBxN+seNR0hEDpi8T4zPQz9Iigg/7ZNI3PTD9D9/wd
pvd+4D2EXcOHVMgU2gecySISDmkrwlennMrNzUfqEbUy5IGbm4/kq1NO1Wx/keKNWLsLaanvdyCI
SKjkgZ9MOJan61r48vpHaMzoidpi7IpV8fXJJ2uFP5HSjVi7C2mrHwO2l59FJHwebTiEiw97m3YR
LMLyZDMXH/Y2FX+R0m3Hrt3DKnRc7b7ysoiEV3u8lv+ceTY3tRylWwLDyAM3tRzFf848Wxv7iJSn
oJpdaAPwjzKCiIRezrK4bvx8rpx1DmuqR5mO4zlrqkdx5axzuG78fG3pK1K+gmp2odNq7y0jiIjs
tmd4+53bVvHBrU9Tk8uYjmRUXyTG9a1Hc+u42WRV+EWcUlDNLnQEYAOwrPQsIrJH1rL4bfMc3nPE
v/HAqCmm4xjzwKgpvOeIf+O3zXNU/EWcswy7Zo+omAdr/w4cV1IcETlIe7yWL009neO6tnDJ1meY
19NmOlJFPJNs4YbWeSyrH286ikgQ/b3Qv1hMA3APcFXxWURkOMvqx7Osfjzzetr4P1uXs7Brs+lI
rlhSP4Fftc7lmWSL6SgiQXZPoX+xmAZgMbAZ0DqnIi54JtnCJ2e8icN7O3h/23JO3bUevw+M54FF
jZP5dctc7ZMg4r7NFLGLb7Fra94N/EeRXyMiRXi+dgxfnPZ6Wge6OXvHGs5+dTWTUp2mYxVlQ1UD
fxs9g781TWdros50HJGwuLuYv1xsA3AXagBEKmJroo4bW+ZyY8tc5vRs4+wdq3njjldoyHpzVcHO
aBX/bJrK35pmsDI5znQckTC6q5i/XOwIYwToArRKR0DMXfYJ0xGkCPF8jrk9bRzbtZX53Vs5onc7
sXzOSJaMFeG52rE8WdfKE/WtLE+2aM1+n1l+3PdNRxDn9AL1QMEfCMWOAOSAvwDvKvLrRMQBaSvC
E3XjeaLOnkFfncswr6edY7u2MLt3O5NTuxiT7nPl3B3xGtZXNbKqdixP1I/nmWQz/dqhT8Qr/kIR
xR+KbwAA7kQNgIgn9EdiLKmfwJL61+bmJrNpJqU6mZzaxeRUJxNTXdRnB0hmB6jNZUhmB6hJD5DM
24sQ9Vgx+uIJeqIJeiMxeqIJuqIJNlXVs76qgfVVjWyoaqAnGjf1zxSRkd1Z7BeU0gDcAWRK/FoR
cVlPNM7ztWOGnHWfS2VIt3Xt92fxlnoiVXpLi/hUBrs2F6WUG3Z9pZxIRLwhnzp4+eHB/kxEfOMO
7NpclFJn7PyxxK8TEcNy/emC/kxEfKOkmlxqA/AHoL/ErxURU3J5coNc7edSGchps2IRH+rHrslF
K7UBGCj1hCJiTrZ3wF6e70D53f9NRPzmD9g1uWjlPLR7WxlfKyIG5HqG/pwY7r+JiGeVXIvLaQDu
BNrL+HoRqaB8Jjvo8P8euVSGfCZbwUQiUqZ2Snj8b49yl+26tcyvF5EKyRZwhV/I3xERzyirBpfb
APyuzK8XkQopZIhftwFEfKWsGlxuA7AYWF7mMUTEZbneNPnMyKuE5jM5cr16JFDEB5ZTxNa/g3Fi
547fOnAMEXFRprPwNUKK+bsiYkzZtdeJBuAWB44hIi7J9afJDxQ+uS8/kNXCQCLeV3btdaIB2EAZ
sxBFxF3ZXcWv2VXK14hIxdyJXXvL4tTm3Tc5dBwRcVAulRn20T+nv05EKsKRmutUA/AHHOhGRMRZ
2V2l388v52tFxDUbcGglXqcaAIBfO3gsESlTrneAXH/pV/G5/gw5LQ8s4jWO1VonG4AbHTyWiJQj
nyezo/wr+MyOPshrkyARD7nRqQM52QC8jCYDinhCZlc/+ezIz/2PJJ/NkdGEQBGvuBO71jrCyQYA
4AaHjyciRcqns2Q7nSva2c5+8mntESDiAY7WWKcbgD8Dzzl8TBEpQubVXl8cU0SK8hx2jXWM0w0A
wPUuHFNECpDt7Hfl8b1cKuPoqIKIFM3x2upGA/BzIOXCcUVkGLlUhsxO9x7dy+zs09oAImaksGur
o9xoADpxIaiIDC2fy5PZ3uP6eTLbe8jn9FSASIX9HLu2OsqNBgDgpy4dV0QGkenocWTW/0jy2RyZ
DvcbDRHZjys11a0GYAXwJ5eOLSL7yHb2k+ur3OY9ub605gOIVM6fsGuq49xqAAB+4uKxRQR7tT83
7/sPJbOzT6sEilSGa7XUzQbgH8AjLh5fJNS6l6wjbXA4Pt3RQ/eSdcbOLxICj2DXUle42QAA/Njl
44uEUt+qNl75zF/A5Hy8PLzymb/Qt6rNYAiRQHO1hrrdAPwWWOnyOURCJbV+B2s/9idyvZW77z+U
XG+atR/7E6n1O0xHEQmaldg11DVuNwAAP6zAOURCIbV+B2uu/IMjG/04JbOjjzVX/kFNgIizXK+d
lWgArgN0o1CkTH2r2lj9wd+T3tplOspB0lu7WP3B3+t2gIgz1mHXTldVogEAuLZC5xEJpO4l61h9
+W2euvI/UGZHH6svv00TA0XKV5GaWakG4Bpga4XOJRIoO+99gbUfv9MT9/xHkutNs/bjd7Lz3hdM
RxHxq63YNdN1lWoAclToHyQSGHnY9qulrL/qbl9tx5tPZ1l/1d1s+9VSs08piPjTNdg103WVagAA
vge0V/B8Ir6V3dXP2o/fwZYfPOLPIpqHLT94hLUfv4PsLq0aKFKgduxaWRGVbADSVPAfJuJXPU9v
4sULb6Jr8VrTUcrWtXgtL154Ez1PbzIdRcQPvoddKyuikg0AwP8CWyp8ThF/yEP7Lx9nzWW3kW7v
Np3GMen2btZcdhvtv3zcn6MZIpWxBbtGVkylG4AsFf4HivhB/+oOVl96K1t/tDiQ2+3mc3m2/mgx
qy+9lf7VHabjiHjR/2LXyIqpdAMA9hCH/8c2RRyQ602z5ZpFvPSem0MxTN7z9CZees/NbLlmkS+e
ahCpkLUYuEVuogEA+Lah84p4xq77XuKFC25k281PkM9WZNKvJ+SzObbd/AQvXHAju+57yXQcES8w
UhNjJk6KvcLRFcBcQ+cXMabnqU20/fwxuh9fbzqKUen2btZ97i7qFkym5dITSB4z0XQkEROWU4FV
/wZjqgEA+BbwG4PnF6morkfX0X7DEnqeCv5QfzG6H19P9+PrSR4zkeZLFlJ/4hTTkUQq6VumTmyy
AfgtcBlwusEMIu7Kw64HX6b9l49rnfwR9Dy1ibUf+SM1s1to/sACGk+fCZbpVCKuehCXd/wbjskG
AOBq1ABIAKXW72DHX59j593PMbCl03QcX+lb1ca6z/yFxPgGRr35CJrecgRVk5tMxxJxw9UmT266
AfgHcCvwTsM5RMqW7exn599fYMfdz9H7rJa7KNfAlk7ar19C+/VLqD1qPE1vPoJRZx1GtKHadDQR
J9yKXQONMd0AAHwdNQDiQ/lMjr5VW+letoHupRvoeXqzr9bs95PeZ7fQ++wWNn/vIZJHT6Du+EnU
HTeJmtmtWDFTDzOJlOXrpgN4oQFYgf384ydNBxEZTnp7D6l1O+hbuZXupevpeXozuT49y15J+XSW
7qV2wwUQqYnvbggmUzOnlaopTcTHJg2nFBnR97Brn1FeaAAAvga8HxhrOoiESz6dJdszQK53gFz3
ANneAXI9A2S7UqQ27iK17lVS63YwsG4H2Z4B03HlALm+NF2PrqPr0XV7/yyaTJCY0kTVlCaqpoym
6pBGovVVRJIJorUJInUJIrUJoskEVjxqML2E1HbsmmecVxqATuxvyA9MBwmb5cd933QEEUdlewbo
W9Wmpy7Eq76GXfOM89LNsx8Cj5kOISIi4pLHsGudJ3ipAQD4iukAIiIiLvFUjfNaA3AvcKPpECIi
Ig67EbvGeYbXGgCALwG9pkOIiIg4pBe7tnmKFxuATXjwGyUiIlKiL2HXNk/xYgMA8H1gsekQIiIi
ZVqMXdM8x6sNAMAXTQcQEREpk2drmZcbgEXANaZDiIiIlOga7FrmSV5uAAA+B6wxHUJERKRIa7Br
mGd5vQEYwOPfQBERkUF8DruGeZbXGwCA24FfmQ4hIiJSoF9h1y5P80MDAPBpoN10CBERkRG0Y9cs
z/NLA7Adn3xDRUQk1D6NXbM8zy8NAMBNwC2mQ4iIiAzhFuxa5Qt+agAAPgFoj08REfGaNuwa5Rt+
awC24bNvsIiIhMInsGuUb/itAQD4LfAL0yFERER2+wV2bfIVPzYAAB8FXjIdQkREQu8l7JrkO35t
APrw6TdcREQC5aPYNcl3/NoAAPwNuNp0CBERCa2rsWuRL/m5AQC4CnjQdAgREQmdB7FrkG/5vQEA
+E8gZTqEiIiERgq79vhaEBqAVcCVpkOIiEhoXIlde3wtCA0AwA3AT02HEBGRwPspds3xvaA0AACX
A8tMhxARkcBahl1rAiFIDQDAh4Cc6RAiIhI4OewaExhBawCeBC4zHUJERALnMuwaExhBawAArgd+
YDqEiIgExg+wa0ugBLEBAHtlpgdNhxAREd97kICuPBvUBgDgEqDddAgREfGtduxaEkhBbgDWEuAf
nIiIuO4S7FoSSEFuAAD+CnzadAgREfGdT2PXkMAKegMA8F3gZ5RBJRYAAArJSURBVKZDiIiIb/wM
u3YEWhgaALCf3bzfdAgREfG8+wnY8/5DCUsDAPA+AnwvR0REyrYWu1aEQpgagM3YP9i86SAiIuI5
eewasdl0kEoJUwMAsBi4yHQIERHxnIuwa0RohK0BAPgN8HnTIURExDM+j10bQiWMDQDA/6DlgkVE
xK4F/2M6hAlhbQDAXtrxdtMhRETEmNsJ6DK/hQhzAwDwLmCR6RAiIlJxi7BrQGiFvQHIYf8CPGc6
iIiIVMxz2J/9OdNBTAp7AwCwFXgn2jhIRCQM2rE/87eaDmKaGgDbCuAdQNp0EBERcU0a+7N+hekg
XqAG4DWLgAtMhxAREddcgOZ97aUGYH9/JkTLQIqIhMj7sD/jZTc1AAe7GbjCdAgREXHMFdif7bIP
NQCDuw74lOkQIiPJ7Ogzdu5sV8rYuUWK8Cnsz3Q5gBqAoX0PuMp0CJHh9L+83di5BzbtMnZukQJd
hf1ZLoNQAzC8q4GvmQ4hMpT+1WoARIbwNezPcBmCGoCRfRX4pukQIoPpf7nD2LkHNqsBEM/6JvZn
twxDDUBhvgT8t+kQIgcyOgKwUQ2AeNJ/Y39mywjUABTui6gJEI/J7uons72n4udNt3XT8/Tmip9X
ZAT/jf1ZLQWImg7gM/cBceBU00FE9oiPq6Pm0HEVPWfbdf8itW5HRc8pMoJvoonbRVEDULz7AQs4
3XAOEQD6VrVR/7qpROurKnO+59vZduPSipxLpEBfA/6v6RB+owagNA9iryl9huEcIuSzOfpf3Ebj
G2ZiRSyXTwabv/MAmVd73T2PSOGuAr5uOoQfqQEo3cNAF3CW6SAimVd7wYLaI8e7ep7ORavZec/z
rp5DpAifAr5tOoRfqQEoz6NAG3Cu6SAifc+1kzx6IvExSVeOn27rYsv3F5Hr06aZ4glXAD8wHcLP
1ACUbxmwGvh300Ek5PLQt7KNuoWTidYmHD1099INbPz6P8h29jt6XJESvQ+4wXQIv1MD4IzlwFPY
W03qeyrGZLtT7PrHi0TiUWpmjQOrzDkBuTzbf/MUbT9/jPxA1pmQIqVLY19s3WY6SBC4PGModE7F
/sVsNh1EpGraaFqvfB3VM8aW9PXZXf1s/t5D9D67xeFkIiVpB94BLDIdJCjUADjvSOBW4AjTQUSw
LJrefDhj3zOfSE18xL+ez+ZIre6gd+VWdvz1Oc32F694DngnsMJ0kCBRA+COVuD3aMEg8QgrFiE+
voHEhAYSExtfe7XWk97aRe/KrfSu2Erfc+3k+jXJTzxlEfAuYKvpIEGjBsA9Eewm4ALTQUREfOp2
7OKfMx0kiDRhzT157PkAY4CFhrOIiPjND4BLsD9LxQVqANx3D9APvNF0EBERn/g82tHPdboFUDnv
AW5G33MRkaHkgYuA35gOEgbaDrhyfgOcAqw1HURExIPWYn9GqvhXiK5GK28CcBPwBtNBREQ84n7s
1f02mw4SJpoDUHldwK+xG4FjDWcRETHtZ9gL/HSZDhI2agDMuQvoBs40HURExJBPA180HSKsdAvA
vLdgb2qh5YNFJCzasR/x+6vpIGGmBsAbpmE3AacbziEi4rYHsYu/JkQbplsA3rAT+BVaNEhEgu0H
wLuxP/PEMDUA3nIPsBE4F43OiEhw5IBLgatNB5HXqAHwnqewJwgei/2kgIiIny0D3gbcbTqI7E8N
gDdtAX4OjAeOM5xFRKRUPwXOw/5ME49RA+BtdwEbgLOBmOEsIiKFSgEfAr5uOogMTQ2A9z0F/BGY
A0w1G0VEZEQPYl/132s4h4xADYA/bMN+SiCBvVa2iIgXXQ28H/szSzxODYC/3A8swX5UcIzhLCIi
e7yEvYvfz0wHkcKpAfCfl4FfAC3AfMNZRER+gT3k/7zpIFIcNQD+lAH+ArwInAzUmY0jIiHUBlyG
PeyfMZxFSqAGwN9WYM8NmADMNZxFRMLjFuyr/iWmg0jpIqYDSNm2Yd97ez/2BhsiIm5px/6suQhN
9PM9jQAEx3LgRuy5AUebjSIiAfQr4O3AY6aDiDM0AhAs24GLgXcAa8xGEZGAWIP9mXIx9meMBIRG
AIJpFXAdUA+cYDiLiPjXNdhX/c+aDiLOUwMQXFng78ADwKHAZLNxRMRHFgPvw36uP2s4i7jk/7d3
tz9fTgEcwD9SIYTKs7SmDGWYx+TZYgx5GMtsZmummZk1w/wFZtYLM5s1ZsZYptUYo3kMJQzJw6hZ
HpKUh6IkyYtzb4bU7Xbf9/n9ftf3s5333xf3dZ/v71zXOScFoPMtxwNYq5wiOKhunIhoYetxq7K9
b3nlLNHHUgCaY6HyEc8w+UgwIv7pQVwiZ/g3RgpAs6zDXCzAWBxUN05EtICFmIoZyv+IaIgUgGZa
hvuxBidgSN04EVHBamW5/zrlf0I0TApAsy3CfdgJEypniYj+MwOXYn7tIFFPCkBsVN75PYERGFc3
TkT0oVmYgoeVZz8abIfaAaLlTMLtOKNyjojoPS8pl/bMq5wjWkgKQPybK3GbXDIU0c4W4w48WjtI
tJ4UgNieabgFo2sHiYhu+wx3KieCRmxVCkB013TcjP1rB4mIf/U17lI+8ovYphSA+C92VErAdOxT
OUtE/GmVMunfJUf3RjelAERPDFJKwE3Yr3KWiCZbqVzYMwObKmeJNpMCEP/HAKUE3IhRlbNENMly
3K1M/r9XzhJtKgUgess03CDnCET0pQ9wj3zcF70gBSB625W4HqfUDhLRQV7FvbKdLyLawCTMxpaM
jIwej9nKsxTR67ICEH1tvHLZyLXKnQMRsW0bMVO5p2NJ5SzRwVIAor8MVUrAVBxeOUtEK/pIuaVz
JtZWzhIR0Scuwhz1l1czMlphzFGeiYh+lRWAqGkMrsHVGFk3SkS/+gIP4UEsrRslIqKuy2RVIKPz
xxzlbz2iuqwARKsZiauU7YS5iTA6wWJl+94jyi//iJaQAhCtbCKm4Aq5eyDayyrMwmN4rXKWiK1K
AYh2MRmXK8unO1fOErE1v+AJPI65lbNEbFcKQLSbwUoJuBQXY2DdONFwvynv9Wcrk/+vdeNEdF8K
QLSzXZQSMBkXYkjdONEQ6/Gk8it/DjbUjRPRMykA0SkGKCXgApyPA+rGiQ6zAk/jKWXyzw180fZS
AKJTTcR5OBfHVc4S7ektPItn5EO+6EApANEEI3GOcqnK2RhRN060qNV4HvPwnGzZiw6XAhBNdBLO
wpk4HYPqxolKNuFlvIgXsLBunIj+lQIQTbejUgJOw6nKq4PcWtiZNipL+fPxijL5b66aKKKiFICI
f5qIkzEBJ8oHhe1qBd7AArwu7/Ej/iIFIGL7DsEJOB7Hdo1dqyaKv/sZb3eNN7EIy6omimhxKQAR
PTMex+BoHIUj5bji/rIK7+M9vIt3sKRqoog2lAIQ0XsOVIrBOByBw7rG8Jqh2tgafNw1PsQHykT/
Vc1QEZ0iBSCi7+2LQzEWY5RXCqO7RtO3JK7GZ11jGZbiU3yCbyrmiuh4KQARdQ3FKBysnFdwkLKS
cAD26xrt+mphFVZ2jRXKL/cvlf31n2M51lZLF9FwKQARrW+AUgL2VlYMhmMY9sKe2EMpErtjN+VO
hCHKXQk7K9saByvnHQxUtj4O8Ofzv0U52nazcrnNJuVSm43KDXcblPPv1+MnrFMm7h/xA77Hd8qS
/Wp8q0z+OS43ooX9AS2merkh6QFsAAAAAElFTkSuQmCC
"
height="128"
width="128" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="780.36218"
id="text2998"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="780.36218"
id="tspan3124">You can add your ROMs and games</tspan><tspan
sodipodi:role="line"
x="512"
y="830.36218"
id="tspan3128">to the “roms” folder of the “Storage” partition.</tspan><tspan
sodipodi:role="line"
x="512"
y="880.36218"
id="tspan3002" /></text>
<flowRoot
xml:space="preserve"
id="flowRoot3004"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
id="flowRegion3006"><rect
id="rect3008"
width="85.714287"
height="47.142857"
x="31.428572"
y="397.14285" /></flowRegion><flowPara
id="flowPara3010"></flowPara></flowRoot> <text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="908.36218"
id="text2998-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="908.36218"
id="tspan3136">If you plug an ethernet wire,</tspan><tspan
sodipodi:role="line"
x="512"
y="958.36218"
id="tspan3140">Lakka will appear in your home network</tspan><tspan
sodipodi:role="line"
x="512"
y="1008.3622"
id="tspan3146">and let you add games this way.</tspan><tspan
sodipodi:role="line"
x="512"
y="1058.3622"
id="tspan3002-0" /></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 30 KiB

-123
View File
@@ -1,123 +0,0 @@
<?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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1024"
height="600"
id="svg2"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="E.svg"
inkscape:export-filename="/home/kivutar/E.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#1abc9c"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="451.62621"
inkscape:cy="276.42816"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1440"
inkscape:window-height="837"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid2985"
empspacing="4"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-452.36218)">
<image
y="540.36218"
x="448"
id="image2995"
xlink:href="data:image/png;base64,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 XhsBuBk4xHQIkXJZFnztimq++8kaaqLine truncated
height="128"
width="128" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="780.36218"
id="text2998"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="780.36218"
id="tspan3128">Thank you for using Lakka,</tspan><tspan
sodipodi:role="line"
x="512"
y="830.36218"
id="tspan3169">we hope you'll enjoy it!</tspan><tspan
sodipodi:role="line"
x="512"
y="880.36218"
id="tspan3002" /></text>
<flowRoot
xml:space="preserve"
id="flowRoot3004"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
id="flowRegion3006"><rect
id="rect3008"
width="85.714287"
height="47.142857"
x="31.428572"
y="397.14285" /></flowRegion><flowPara
id="flowPara3010" /></flowRoot> <text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
x="512"
y="908.36218"
id="text2998-2"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="512"
y="908.36218"
id="tspan3146">If you need help, please join our irc chan</tspan><tspan
sodipodi:role="line"
x="512"
y="958.36218"
id="tspan3175">#lakkatv @ irc.freenode.org</tspan><tspan
sodipodi:role="line"
x="512"
y="1008.3622"
id="tspan3002-0" /></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

+23 -12
View File
@@ -1,20 +1,36 @@
if [ "$OPTIMIZATIONS" = fast ];then
GCC_OPTIM="-Ofast"
GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast"
LD_OPTIM="-Wl,--as-needed"
fi
if [ "$OPTIMIZATIONS" = speed ];then
GCC_OPTIM="$GCC_OPTIM -O3"
GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast"
GCC_OPTIM="$GCC_OPTIM -ffast-math"
LD_OPTIM="-Wl,--as-needed"
fi
if [ "$OPTIMIZATIONS" = normal ];then
GCC_OPTIM="-O2"
GCC_OPTIM="$GCC_OPTIM -O2"
LD_OPTIM=""
fi
if [ "$OPTIMIZATIONS" = size ];then
GCC_OPTIM="-Os -fexcess-precision=fast"
GCC_OPTIM="$GCC_OPTIM -Os"
GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast"
GCC_OPTIM="$GCC_OPTIM -ffast-math"
LD_OPTIM="-Wl,--as-needed"
fi
if [ "$LTO_SUPPORT" = yes ];then
GCC_OPTIM_LTO="-flto -ffat-lto-objects"
LD_OPTIM_LTO="-fuse-linker-plugin -flto"
GCC_OPTIM="$GCC_OPTIM -flto"
LD_OPTIM="$LD_OPTIM -fuse-linker-plugin"
LD_OPTIM="$LD_OPTIM -flto"
fi
if [ "$GOLD_SUPPORT" = yes ];then
LD_OPTIM_GOLD="-fuse-ld=gold"
LD_OPTIM="$LD_OPTIM -fuse-ld=gold"
fi
if [ "$DEBUG" = yes ]; then
@@ -28,9 +44,9 @@ else
fi
TARGET_CPPFLAGS=
TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $GCC_OPTIM_LTO $PROJECT_CFLAGS"
TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS"
TARGET_CXXFLAGS="$TARGET_CFLAGS"
TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM $LD_OPTIM_GOLD $LD_OPTIM_LTO"
TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM $GCC_OPTIM"
TARGET_LIBDIR="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib"
TARGET_INCDIR="$SYSROOT_PREFIX/include $SYSROOT_PREFIX/usr/include"
@@ -40,11 +56,6 @@ HOST_CXXFLAGS="$HOST_CFLAGS"
HOST_LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib -L$ROOT/$TOOLCHAIN/lib"
HOST_LIBDIR="$ROOT/$TOOLCHAIN/lib"
# work around Ubuntu default C*FLAGS
# see https://wiki.ubuntu.com/ToolChain/CompilerFlags#A-Wformat_-Wformat-security
HOST_CFLAGS="$HOST_CFLAGS -Wno-format-security"
HOST_CXXFLAGS="$HOST_CXXFLAGS -Wno-format-security"
# add distro specific library dirs
# ubuntu/debian specific "multiarch support"
FAMILY_TRIPLET=$(echo $HOST_NAME | sed -e "s,$(uname -m),$(uname -i),")
+7 -28
View File
@@ -1,14 +1,6 @@
# set default language for buildsystem
export LC_ALL=C
# determines DISTRO, if not forced by user
# default is OpenELEC
if [ -z "$DISTRO" ]; then
DISTRO="OpenELEC"
else
DISTRO="$DISTRO"
fi
# determines PROJECT, if not forced by user
# default is Generic
if [ -z "$PROJECT" ]; then
@@ -26,28 +18,22 @@ else
fi
ROOT=`pwd`
DISTRO_DIR="$ROOT/distributions"
PROJECT_DIR="$ROOT/projects"
LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $ROOT/packages/linux/package.mk"
# include versioning
. config/version
# read distro versioning if available
if [ -f "$DISTRO_DIR/$DISTRO/version" ]; then
. $DISTRO_DIR/$DISTRO/version
fi
# read distro options if available
if [ -f "$DISTRO_DIR/$DISTRO/options" ]; then
. $DISTRO_DIR/$DISTRO/options
fi
# read project options if available
if [ -f "$PROJECT_DIR/$PROJECT/options" ]; then
. $PROJECT_DIR/$PROJECT/options
fi
# Target system library C (eglibc)
TARGET_LIBC="eglibc"
# Library strip
LIBSTRIP="yes"
# Need to point to your actual cc
# If you have ccache installed, take care that LOCAL_CC don't point to it
LOCAL_CC=`which gcc`
@@ -65,9 +51,7 @@ LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $ROOT/package
# Concurrency make level (-j option)
# Try value 1 (default) to 4 on single CPU computer, or more on
# multi-processor computer (like hyperthreading SMP CPU)
if test -z "${CONCURRENCY_MAKE_LEVEL}"; then
CONCURRENCY_MAKE_LEVEL=`cat /proc/cpuinfo | grep -c '^processor[[:cntrl:]]*:'`
fi
CONCURRENCY_MAKE_LEVEL=`cat /proc/cpuinfo | grep -c '^processor[[:cntrl:]]*:'`
# cache size for ccache
# Set the maximum size of the files stored in the cache. You can specify a
@@ -92,10 +76,5 @@ LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $ROOT/package
. $HOME/.openelec/$PROJECT/options
fi
# read distro options from $HOME if available
if [ -f "$HOME/.openelec/options.$DISTRO" ]; then
. $HOME/.openelec/options.$DISTRO
fi
. config/graphic
. config/path $1
+30 -73
View File
@@ -1,7 +1,5 @@
set -e
. config/functions
# setup initial directorys (relative to root)
CONFIG=config
SCRIPTS=scripts
@@ -20,10 +18,6 @@ HOST_NAME=`$LOCAL_CC -dumpmachine`
TARGET_NAME=$(echo $TARGET_SUBARCH | sed -e "s,-,,")-openelec-linux-gnu${TARGET_ABI}
BUILD=$BUILD_BASE.$DISTRONAME-$PROJECT.$TARGET_ARCH-$OPENELEC_VERSION
if [ -n "$BUILD_SUFFIX" ]; then
BUILD=$BUILD-$BUILD_SUFFIX
fi
TARGET_IMG=$ROOT/$TARGET
TARGET_ADDONS="$TARGET_IMG/$ADDONS/$ADDON_PATH"
ADDON_BUILD="$BUILD/$ADDONS/$1"
@@ -41,7 +35,6 @@ FAKEROOT_SCRIPT=$ROOT/.fakeroot.$PROJECT.$TARGET_ARCH
if [ -z "$INSTALL" ]; then
INSTALL=$BUILD/image/system
fi
INSTALL_INIT=$BUILD/image/initramfs/root-image
. config/sources
@@ -57,10 +50,8 @@ SED="sed -i"
PKG_LICENSE="unknown"
PKG_SITE=""
PKG_URL=""
PKG_DEPENDS_TARGET=""
PKG_DEPENDS_HOST=""
PKG_DEPENDS_INIT=""
PKG_DEPENDS_BOOTSTRAP=""
PKG_DEPENDS=""
PKG_BUILD_DEPENDS=""
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="$1 (autogenerated)"
@@ -68,57 +59,49 @@ SED="sed -i"
PKG_IS_ADDON="no"
if [ -n "$1" ]; then
_PKG_ROOT_NAME=$(echo $1 | cut -d: -f1)
_ALL_DIRS=""
_FOUND=0
PKG_DIR=""
# first check project folder for a package
for DIR in $(find $ROOT/projects/$PROJECT/packages -type d -name $_PKG_ROOT_NAME 2>/dev/null); do
if [ -r "$DIR/package.mk" ]; then
# found first, set $PKG_DIR
FOUND=0
for DIR in $ROOT/`find $PACKAGES -type d -name $(echo $1| awk -F : '{print $1}') ! -wholename \*\/source\/\* 2>/dev/null` ; do
# keep track of dirs with meta for debugging
if [ -z "$ALL_DIRS" ] ; then
ALL_DIRS="$DIR"
else
ALL_DIRS="$ALL_DIRS\\n$DIR"
fi
if [ -f "$DIR/package.mk" -o -f "$DIR/meta" -o -f "$DIR/install" -o -f "$DIR/build" ] ; then
FOUND=$((FOUND+1))
# found first. set $PKG_DIR
PKG_DIR="$DIR"
# keep track of dirs with package.mk for detecting multiple folders
_ALL_DIRS="${_ALL_DIRS}${DIR}\\n"
_FOUND=$((_FOUND+1))
if [ $_FOUND -gt 1 ]; then
# _FOUND more ? fail
if [ $FOUND -gt 1 ] ; then
# found more ? fail
echo "Error - multiple package folders:"
echo -e "$_ALL_DIRS"
echo -e "$ALL_DIRS"
exit 1
fi
fi
done
# then check packages folder if not found already
if [ $_FOUND -eq 0 ]; then
for DIR in $(find $ROOT/$PACKAGES -type d -name $_PKG_ROOT_NAME 2>/dev/null); do
if [ -r "$DIR/package.mk" ]; then
# found first, set $PKG_DIR
PKG_DIR="$DIR"
# keep track of dirs with package.mk for detecting multiple folders
_ALL_DIRS="${_ALL_DIRS}${DIR}\\n"
_FOUND=$((_FOUND+1))
if [ $_FOUND -gt 1 ]; then
# found more ? fail
echo "Error - multiple package folders:"
echo -e "$_ALL_DIRS"
exit 1
fi
fi
done
fi
fi
if [ -r $PKG_DIR/package.mk ]; then
. $PKG_DIR/package.mk
elif [ -r $PKG_DIR/meta ]; then
. $PKG_DIR/meta
fi
if [ "$PKG_IS_ADDON" = "yes" ] ; then
[ -z $PKG_SECTION ] && PKG_ADDON_ID="$PKG_NAME" || PKG_ADDON_ID="`echo $PKG_SECTION | sed 's,/,.,g'`.$PKG_NAME"
fi
PKG_BUILD="$BUILD/${PKG_NAME}-${PKG_VERSION}"
if [ -d "$BUILD/${PKG_NAME}-${PKG_VERSION}" ]; then
PKG_BUILD="$BUILD/${PKG_NAME}-${PKG_VERSION}"
elif [ -d "$BUILD/${PKG_NAME}_${PKG_VERSION}" ]; then
PKG_BUILD="$BUILD/${PKG_NAME}_${PKG_VERSION}"
elif [ -d "$BUILD/${PKG_NAME}.${PKG_VERSION}" ]; then
PKG_BUILD="$BUILD/${PKG_NAME}.${PKG_VERSION}"
elif [ -d "$BUILD/${PKG_NAME}${PKG_VERSION}" ]; then
PKG_BUILD="$BUILD/${PKG_NAME}${PKG_VERSION}"
elif [ -d "$BUILD/${PKG_NAME}" ]; then
PKG_BUILD="$BUILD/${PKG_NAME}"
fi
XORG_PATH_DRI=/usr/lib/dri
XORG_PATH_XKB=/usr/share/X11/xkb
@@ -132,8 +115,6 @@ SSL_CERTIFICATES="/etc/pki/tls"
TOOLCHAIN_LANGUAGES=c
[ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++
unset TARGET_CPP
TARGET_CC=${TARGET_PREFIX}gcc
TARGET_CXX=${TARGET_PREFIX}g++
TARGET_LD=${TARGET_PREFIX}ld
@@ -151,8 +132,6 @@ TARGET_PKG_CONFIG_PATH=""
TARGET_PKG_CONFIG_LIBDIR="$SYSROOT_PREFIX/usr/lib/pkgconfig:$SYSROOT_PREFIX/usr/share/pkgconfig"
TARGET_PKG_CONFIG_SYSROOT_DIR="$SYSROOT_PREFIX"
unset HOST_CPP
HOST_AWK=gawk
HOST_CC=$ROOT/$TOOLCHAIN/bin/host-gcc
HOST_CXX=$ROOT/$TOOLCHAIN/bin/host-g++
@@ -183,6 +162,7 @@ if [ -z "$LD_LIBRARY_PATH" -o "$LD_LIBRARY_PATH" = "${LD_LIBRARY_PATH#$ROOT/$TOO
fi
VERSION_SUFFIX=$TARGET_ARCH
. config/functions
check_path
check_config
@@ -200,28 +180,5 @@ else
fi
BUILD_INDENT_SIZE=4
# define colors
black="\e[0;30m"
boldblack="\e[1;30m"
red="\e[0;31m"
boldred="\e[1;31m"
green="\e[0;32m"
boldgreen="\e[1;32m"
yellow="\e[0;33m"
boldyellow="\e[1;33m"
blue="\e[0;34m"
boldblue="\e[1;34m"
magenta="\e[0;35m"
boldmagenta="\e[1;35m"
cyan="\e[0;36m"
boldcyan="\e[1;36m"
white="\e[0;37m"
boldwhite="\e[1;37m"
endcolor="\e[0m"
# multilib? nah
unset CONFIG_SITE
# meh suse
unset PYTHONSTARTUP
unset PYTHONPATH
+1 -1
View File
@@ -1,2 +1,2 @@
[autorun]
icon=lakka.ico
icon=openelec.ico
Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

+2 -2
View File
@@ -2,8 +2,8 @@
OPENELEC_VERSION="devel"
# OS_VERSION: OS Version
OS_VERSION="5.0"
OS_VERSION="3.2"
# ADDON_VERSION: Addon version
ADDON_VERSION="4.3"
ADDON_VERSION="3.1"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

-338
View File
@@ -1,338 +0,0 @@
# Name of the Distro to build (full name, without special characters)
DISTRONAME="EMU"
# short project description
DESCRIPTION="The DIY retro emulation console"
# Welcome Message for e.g. SSH Server (up to 5 Lines)
GREETING0="###########################################"
GREETING1="# Lakka - The DIY retro emulation console #"
GREETING2="# ...... visit http://www.lakka.tv ...... #"
GREETING3="###########################################"
GREETING4=""
# Root password to integrate in the target system
ROOT_PASSWORD="root"
# Mediacenter to use (kodi / no)
MEDIACENTER="no"
# Skins to install (Confluence)
# Space separated list is supported,
# e.g. SKINS="Confluence"
SKINS="Confluence"
# Default Skin (Confluence)
SKIN_DEFAULT="Confluence"
# install extra subtitle Fonts for KODI (yes / no)
KODI_EXTRA_FONTS="yes"
# build and install 'RSXS' Screensaver (yes / no)
KODI_SCR_RSXS="yes"
# build and install 'ProjectM' Visualization (yes / no)
KODI_VIS_PROJECTM="yes"
# build and install 'GOOM' Visualization (yes / no)
KODI_VIS_GOOM="yes"
# build and install 'Waveform' Visualization (yes / no)
KODI_VIS_WAVEFORM="yes"
# build and install 'Spectrum' Visualization (yes / no)
KODI_VIS_SPECTRUM="yes"
# build and install 'FishBMC' Visualization (yes / no)
# does not work on RPi
KODI_VIS_FISHBMC="yes"
# build and install PulseAudio support (yes / no)
PULSEAUDIO_SUPPORT="no"
# build and install espeak support (yes / no)
ESPEAK_SUPPORT="yes"
# build and install with non-free support
# (RAR compression support in KODI) (yes / no)
KODI_NONFREE_SUPPORT="yes"
# build and install with BluRay support (yes / no)
KODI_BLURAY_SUPPORT="yes"
# build and install with BD+ support
# (BD+ decryption support in KODI) (yes / no)
BLURAY_BDPLUS_SUPPORT="yes"
# build and install with AACS support
# (BD decryption support in KODI) (yes / no)
BLURAY_AACS_SUPPORT="yes"
# build and install with DVDCSS support
# (DVD decryption support in KODI) (yes / no)
KODI_DVDCSS_SUPPORT="yes"
# additional drivers to install:
# for a list of additinoal drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8192EU RTL8188EU RTL8812AU"
# build and install bluetooth support (yes / no)
BLUETOOTH_SUPPORT="yes"
# build and install with KODI webfrontend (yes / no)
KODI_WEBSERVER_SUPPORT="yes"
# build and install Avahi (Zeroconf) daemon (yes / no)
AVAHI_DAEMON="yes"
# build with UPnP support (yes / no)
KODI_UPNP_SUPPORT="yes"
# build with MySQL support (yes / no)
KODI_MYSQL_SUPPORT="yes"
# build xbmc with sshlib support (yes / no)
KODI_SSHLIB_SUPPORT="yes"
# build xbmc with optical drive support (yes / no)
KODI_OPTICAL_SUPPORT="yes"
# KODI Audio encoders for usage with optical drive support
# Space separated list is supported,
# e.g. KODI_AUDIOENCODER_ADDONS="ENCODER1 ENCODER2"
KODI_AUDIOENCODER_ADDONS="flac lame vorbis wav"
# build with AirPlay support (stream videos from iDevices to KODI) (yes / no)
KODI_AIRPLAY_SUPPORT="yes"
# build with AirTunes support (stream music from iDevices to KODI) (yes / no)
KODI_AIRTUNES_SUPPORT="yes"
# build with libnfs support (mounting nfs shares with KODI) (yes / no)
KODI_NFS_SUPPORT="yes"
# build with afpfs-ng support (mounting AFP shares with KODI) (yes / no)
KODI_AFP_SUPPORT="no"
# build with Samba Client support (mounting SAMBA shares with KODI) (yes / no)
KODI_SAMBA_SUPPORT="yes"
# build with NFS support (mounting nfs shares via the OS) (yes / no)
NFS_SUPPORT="yes"
# build with Samba Client support (mounting samba shares via the OS) (yes / no)
SAMBA_SUPPORT="yes"
# build and install Samba Server (yes / no)
SAMBA_SERVER="yes"
# build and install SFTP Server (yes / no)
SFTP_SERVER="yes"
# build and install PPP support (yes / no)
PPTP_SUPPORT="yes"
# build and install OpenVPN support (yes / no)
OPENVPN_SUPPORT="yes"
# build and install diskmounter support (udevil)
# this service provide auto mounting support for external drives in the
# mediacenter also automount internally drives at boottime via udev (yes / no)
UDEVIL="yes"
# build and install exFAT fuse support (yes / no)
EXFAT="yes"
# build and install NTFS-3G fuse support (yes / no)
NTFS3G="yes"
# build and install hfs filesystem utilities (yes / no)
HFSTOOLS="yes"
# Windowmanager to use (ratpoison / fluxbox / none)
WINDOWMANAGER="none"
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
if [ "$TARGET_ARCH" = "i386" ]; then
# TODO: create Legacy build with OpenELEC-4.2
# install legacy drivers to i386 ARCH
GRAPHIC_DRIVERS="r200 r300 r600 i915 i965 nouveau"
elif [ "$TARGET_ARCH" = "x86_64" ]; then
GRAPHIC_DRIVERS="r300 r600 radeonsi i915 i965 nouveau"
fi
# build and install remote support (yes / no)
REMOTE_SUPPORT="no"
# build and install ATV IR remote support (yes / no)
ATVCLIENT_SUPPORT="no"
# build and install IRServer IR/LCD support (yes / no)
IRSERVER_SUPPORT="no"
# build and install Joystick support (yes / no)
JOYSTICK_SUPPORT="yes"
# build and install CEC adapter support (yes / no)
CEC_SUPPORT="yes"
# build and install iSCSI support - iscsistart (yes / no)
ISCSI_SUPPORT="yes"
# LCD driver to Use - Possible drivers are ( Comma seperated:
# bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,dm140,
# ea65,EyeboxOne,g15,glcdlib,glk,hd44780,i2500vfd,
# icp_a106,imon,imonlcd,IOWarrior,irman,irtrans,
# joy,lb216,lcdm001,lcterm,lirc,lis,MD8800,mdm166a,
# ms6931,mtc_s16209x,MtxOrb,mx5000,NoritakeVFD,
# picolcd,pyramid,sed1330,sed1520,serialPOS,
# serialVFD,shuttleVFD,sli,stv5730,SureElec,svga,vlsys_m428
# 'all' compiles all drivers;
# 'all,!xxx,!yyy' de-selects previously selected drivers
# "none" for disable LCD support
LCD_DRIVER="irtrans,imon,imonlcd,mdm166a,MtxOrb,lis,dm140,hd44780,CFontz,SureElec,vlsys_m428,serialVFD,shuttleVFD"
# Support for partitioning and formating disks in initramfs (yes / no)
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
INITRAMFS_PARTED_SUPPORT="no"
# build with swap support (yes / no)
SWAP_SUPPORT="no"
# swap support enabled per default (yes / no)
SWAP_ENABLED_DEFAULT="no"
# swapfile size if SWAP_SUPPORT=yes in MB
SWAPFILESIZE="256"
# build with installer (yes / no)
INSTALLER_SUPPORT="yes"
# Testpackages for development (yes / no)
TESTING="no"
# OEM packages for OEM's (yes / no)
OEM_SUPPORT="yes"
# build and install nano text editor (yes / no)
NANO_EDITOR="yes"
# cron support (yes / no)
CRON_SUPPORT="yes"
# Perf support in development builds (yes / no)
PERF_SUPPORT="yes"
# Distribution Specific source location
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
# Addon Server Url
ADDON_SERVER_URL="http://addons.openelec.tv"
# set the addon dirs
ADDON_PATH="$ADDON_VERSION/$PROJECT/$TARGET_ARCH"
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"
LAKKA_MIRROR="http://sources.lakka.tv"
RA_PLAYLIST_NAMES=""\
"Atari - 2600.lpl;"\
"Atari - 5200.lpl;"\
"Atari - 7800.lpl;"\
"Atari - Jaguar.lpl;"\
"Atari - Lynx.lpl;"\
"Atari - ST.lpl;"\
"Bandai - WonderSwan Color.lpl;"\
"Bandai - WonderSwan.lpl;"\
"Cave Story.lpl;"\
"Coleco - ColecoVision.lpl;"\
"DOOM.lpl;"\
"FB Alpha - Arcade Games.lpl;"\
"GCE - Vectrex.lpl;"\
"Lutro.lpl;"\
"Magnavox - Odyssey2.lpl;"\
"MAME.lpl;"\
"Microsoft - MSX2.lpl;"\
"Microsoft - MSX.lpl;"\
"NEC - PC Engine SuperGrafx.lpl;"\
"NEC - PC Engine - TurboGrafx 16.lpl;"\
"Nintendo - Famicom Disk System.lpl;"\
"Nintendo - Game Boy Advance (e-Cards).lpl;"\
"Nintendo - Game Boy Advance.lpl;"\
"Nintendo - Game Boy Color.lpl;"\
"Nintendo - Game Boy.lpl;"\
"Nintendo - Nintendo 64.lpl;"\
"Nintendo - Nintendo DS Decrypted.lpl;"\
"Nintendo - Nintendo DS (Download Play) (BETA).lpl;"\
"Nintendo - Nintendo DSi Decrypted.lpl;"\
"Nintendo - Nintendo DSi (DLC).lpl;"\
"Nintendo - Nintendo Entertainment System.lpl;"\
"Nintendo - Satellaview.lpl;"\
"Nintendo - Super Nintendo Entertainment System.lpl;"\
"Nintendo - Virtual Boy.lpl;"\
"Quake1.lpl;"\
"ScummVM.lpl;"\
"Sega - 32X.lpl;"\
"Sega - Game Gear.lpl;"\
"Sega - Master System - Mark III.lpl;"\
"Sega - Mega Drive - Genesis.lpl;"\
"Sega - PICO.lpl;"\
"Sega - SG-1000.lpl;"\
"Sinclair - ZX Spectrum +3.lpl;"\
"SNK - Neo Geo Pocket Color.lpl;"\
"SNK - Neo Geo Pocket.lpl;"\
"Sony - PlayStation Portable.lpl;"\
"Sony - PlayStation.lpl"
RA_PLAYLIST_CORES=""\
"/tmp/cores/stella_libretro.so;"\
"DETECT;"\
"/tmp/cores/prosystem_libretro.so;"\
"/tmp/cores/virtualjaguar_libretro.so;"\
"/tmp/cores/handy_libretro.so;"\
"/tmp/cores/hatari_libretro.so;"\
"/tmp/cores/mednafen_wswan_libretro.so;"\
"/tmp/cores/mednafen_wswan_libretro.so;"\
"/tmp/cores/nxengine_libretro.so;"\
"/tmp/cores/bluemsx_libretro.so;"\
"/tmp/cores/prboom_libretro.so;"\
"/tmp/cores/fba_libretro.so;"\
"/tmp/cores/vecx_libretro.so;"\
"/tmp/cores/lutro_libretro.so;"\
"/tmp/cores/o2em_libretro.so;"\
"/tmp/cores/mame_libretro.so;"\
"/tmp/cores/bluemsx_libretro.so;"\
"/tmp/cores/bluemsx_libretro.so;"\
"/tmp/cores/mednafen_supergrafx_libretro.so;"\
"/tmp/cores/mednafen_pce_fast_libretro.so;"\
"/tmp/cores/nestopia_libretro.so;"\
"/tmp/cores/mgba_libretro.so;"\
"/tmp/cores/mgba_libretro.so;"\
"/tmp/cores/gambatte_libretro.so;"\
"/tmp/cores/gambatte_libretro.so;"\
"/tmp/cores/mupen64plus_libretro.so;"\
"/tmp/cores/desmume_libretro.so;"\
"/tmp/cores/desmume_libretro.so;"\
"/tmp/cores/desmume_libretro.so;"\
"/tmp/cores/desmume_libretro.so;"\
"/tmp/cores/nestopia_libretro.so;"\
"/tmp/cores/snes9x_next_libretro.so;"\
"/tmp/cores/snes9x_next_libretro.so;"\
"/tmp/cores/mednafen_vb_libretro.so;"\
"/tmp/cores/tyrquake_libretro.so;"\
"/tmp/cores/scummvm_libretro.so;"\
"/tmp/cores/picodrive_libretro.so;"\
"/tmp/cores/genesis_plus_gx_libretro.so;"\
"/tmp/cores/genesis_plus_gx_libretro.so;"\
"/tmp/cores/genesis_plus_gx_libretro.so;"\
"/tmp/cores/picodrive_libretro.so;"\
"/tmp/cores/genesis_plus_gx_libretro.so;"\
"/tmp/cores/fuse_libretro.so;"\
"/tmp/cores/mednafen_ngp_libretro.so;"\
"/tmp/cores/mednafen_ngp_libretro.so;"\
"/tmp/cores/ppsspp_libretro.so;"\
"/tmp/cores/pcsx_rearmed_libretro.so"
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -1,46 +0,0 @@
# httpd.conf has the following format:
#
# H:/serverroot # define the server root. It will override -h
# A:172.20. # Allow address from 172.20.0.0/16
# A:10.0.0.0/25 # Allow any address from 10.0.0.0-10.0.0.127
# A:10.0.0.0/255.255.255.128 # Allow any address that previous set
# A:127.0.0.1 # Allow local loopback connections
# D:* # Deny from other IP connections
# E404:/path/e404.html # /path/e404.html is the 404 (not found) error page
# I:index.html # Show index.html when a directory is requested
#
# P:/url:[http://]hostname[:port]/new/path
# # When /urlXXXXXX is requested, reverse proxy
# # it to http://hostname[:port]/new/pathXXXXXX
#
# /cgi-bin:foo:bar # Require user foo, pwd bar on urls starting with /cgi-bin/
# /adm:admin:setup # Require user admin, pwd setup on urls starting with /adm/
# /adm:toor:PaSsWd # or user toor, pwd PaSsWd on urls starting with /adm/
# .au:audio/basic # additional mime type for audio.au files
# *.php:/path/php # run xxx.php through an interpreter
#
# A/D may be as a/d or allow/deny - only first char matters.
# Deny/Allow IP logic:
# - Default is to allow all (Allow all (A:*) is a no-op).
# - Deny rules take precedence over allow rules.
# - "Deny all" rule (D:*) is applied last.
#
# Example:
# 1. Allow only specified addresses
# A:172.20 # Allow any address that begins with 172.20.
# A:10.10. # Allow any address that begins with 10.10.
# A:127.0.0.1 # Allow local loopback connections
# D:* # Deny from other IP connections
#
# 2. Only deny specified addresses
# D:1.2.3. # deny from 1.2.3.0 - 1.2.3.255
# D:2.3.4. # deny from 2.3.4.0 - 2.3.4.255
# A:* # (optional line added for clarity)
#
H:/usr/www # define the server root. It will override -h
A:* # Allow address from all ip's
E404:/usr/www/error/404.html # /path/e404.html is the 404 (not found) error page
I:index.html # Show index.html when a directory is requested
*.php:/usr/bin/php-cgi
@@ -1,66 +0,0 @@
# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.
# Be 8 bit clean.
set input-meta on
set output-meta on
# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.
# set convert-meta off
# try to enable the application keypad when it is called. Some systems
# need this to enable the arrow keys.
# set enable-keypad on
# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
# do not bell on tab-completion
# set bell-style none
# set bell-style visible
# some defaults / modifications for the emacs mode
$if mode=emacs
# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert
# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history
# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
$if term=rxvt
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif
# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line
# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line
$endif
@@ -1,49 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
# parse command line arguments
for arg in $(cat /proc/cmdline); do
case $arg in
debugging)
export DEBUG=yes
;;
progress)
PROGRESS=yes
;;
esac
done
if [ -e /storage/.cache/debug.openelec ] ; then
export DEBUG=yes
fi
# functions
progress() {
if test "$PROGRESS" = yes; then
logger -s -t Boot "### $1 ###"
else
logger -t Boot "### $1 ###"
fi
}
# read config files
for config in /etc/profile.d/*; do
if [ -f "$config" ] ; then
. $config
fi
done
@@ -1 +0,0 @@
SUSPEND_MODULES="jme asix anysee rtl8192se imon r8712u cx23885 cdc_acm ddbridge brcmfmac"
@@ -1,5 +0,0 @@
# transmission with uTP support
# please comment out the follow line to activate this values:
# net.core.wmem_max=1048576
# net.core.rmem_max=4194304
Whitespace-only changes.
@@ -1,256 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="busybox"
PKG_VERSION="1.23.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.busybox.net"
PKG_URL="http://busybox.net/downloads/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS_HOST=""
PKG_DEPENDS_TARGET="toolchain busybox:host hdparm dosfstools e2fsprogs zip unzip pciutils usbutils parted"
PKG_DEPENDS_INIT="toolchain"
PKG_PRIORITY="required"
PKG_SECTION="system"
PKG_SHORTDESC="BusyBox: The Swiss Army Knife of Embedded Linux"
PKG_LONGDESC="BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
PKG_MAKE_OPTS_HOST="ARCH=$TARGET_ARCH CROSS_COMPILE= KBUILD_VERBOSE=1 install"
PKG_MAKE_OPTS_TARGET="ARCH=$TARGET_ARCH \
HOSTCC=$HOST_CC \
CROSS_COMPILE=$TARGET_PREFIX \
KBUILD_VERBOSE=1 \
install"
PKG_MAKE_OPTS_INIT="ARCH=$TARGET_ARCH \
HOSTCC=$HOST_CC \
CROSS_COMPILE=$TARGET_PREFIX \
KBUILD_VERBOSE=1 \
install"
# nano text editor
if [ "$NANO_EDITOR" = "yes" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET nano"
fi
# nfs support
if [ "$NFS_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET rpcbind"
fi
if [ -f $PROJECT_DIR/$PROJECT/busybox/busybox-target.conf ]; then
BUSYBOX_CFG_FILE_TARGET=$PROJECT_DIR/$PROJECT/busybox/busybox-target.conf
else
BUSYBOX_CFG_FILE_TARGET=$PKG_DIR/config/busybox-target.conf
fi
if [ -f $PROJECT_DIR/$PROJECT/busybox/busybox-init.conf ]; then
BUSYBOX_CFG_FILE_INIT=$PROJECT_DIR/$PROJECT/busybox/busybox-init.conf
else
BUSYBOX_CFG_FILE_INIT=$PKG_DIR/config/busybox-init.conf
fi
pre_build_target() {
mkdir -p $PKG_BUILD/.$TARGET_NAME
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME
}
pre_build_host() {
mkdir -p $PKG_BUILD/.$HOST_NAME
cp -RP $PKG_BUILD/* $PKG_BUILD/.$HOST_NAME
}
pre_build_init() {
mkdir -p $PKG_BUILD/.$TARGET_NAME-init
cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME-init
}
configure_host() {
cd $ROOT/$PKG_BUILD/.$HOST_NAME
cp $PKG_DIR/config/busybox-host.conf .config
# set install dir
sed -i -e "s|^CONFIG_PREFIX=.*$|CONFIG_PREFIX=\"$ROOT/$PKG_BUILD/.install_host\"|" .config
make oldconfig
}
configure_target() {
cd $ROOT/$PKG_BUILD/.$TARGET_NAME
cp $BUSYBOX_CFG_FILE_TARGET .config
# set install dir
sed -i -e "s|^CONFIG_PREFIX=.*$|CONFIG_PREFIX=\"$INSTALL\"|" .config
if [ ! "$DEVTOOLS" = yes ]; then
sed -i -e "s|^CONFIG_DEVMEM=.*$|# CONFIG_DEVMEM is not set|" .config
fi
if [ ! "$CRON_SUPPORT" = "yes" ] ; then
sed -i -e "s|^CONFIG_CROND=.*$|# CONFIG_CROND is not set|" .config
sed -i -e "s|^CONFIG_FEATURE_CROND_D=.*$|# CONFIG_FEATURE_CROND_D is not set|" .config
sed -i -e "s|^CONFIG_CRONTAB=.*$|# CONFIG_CRONTAB is not set|" .config
fi
if [ ! "$NFS_SUPPORT" = yes ]; then
sed -i -e "s|^CONFIG_FEATURE_MOUNT_NFS=.*$|# CONFIG_FEATURE_MOUNT_NFS is not set|" .config
fi
if [ ! "$SAMBA_SUPPORT" = yes ]; then
sed -i -e "s|^CONFIG_FEATURE_MOUNT_CIFS=.*$|# CONFIG_FEATURE_MOUNT_CIFS is not set|" .config
fi
# optimize for size
CFLAGS=`echo $CFLAGS | sed -e "s|-Ofast|-Os|"`
CFLAGS=`echo $CFLAGS | sed -e "s|-O.|-Os|"`
# busybox fails to build with GOLD support enabled with binutils-2.25
strip_gold
LDFLAGS="$LDFLAGS -fwhole-program"
make oldconfig
}
configure_init() {
cd $ROOT/$PKG_BUILD/.$TARGET_NAME-init
cp $BUSYBOX_CFG_FILE_INIT .config
# set install dir
sed -i -e "s|^CONFIG_PREFIX=.*$|CONFIG_PREFIX=\"$INSTALL\"|" .config
# optimize for size
CFLAGS=`echo $CFLAGS | sed -e "s|-Ofast|-Os|"`
CFLAGS=`echo $CFLAGS | sed -e "s|-O.|-Os|"`
# busybox fails to build with GOLD support enabled with binutils-2.25
strip_gold
LDFLAGS="$LDFLAGS -fwhole-program"
make oldconfig
}
makeinstall_host() {
mkdir -p $ROOT/$TOOLCHAIN/bin
cp -R $ROOT/$PKG_BUILD/.install_host/bin/* $ROOT/$TOOLCHAIN/bin
}
makeinstall_target() {
mkdir -p $INSTALL/usr/bin
cp $PKG_DIR/scripts/createlog $INSTALL/usr/bin/
cp $PKG_DIR/scripts/lsb_release $INSTALL/usr/bin/
cp $PKG_DIR/scripts/apt-get $INSTALL/usr/bin/
cp $PKG_DIR/scripts/passwd $INSTALL/usr/bin/
cp $PKG_DIR/scripts/sudo $INSTALL/usr/bin/
ln -sf /bin/busybox $INSTALL/usr/bin/env #/usr/bin/env is needed for most python scripts
cp $PKG_DIR/scripts/pastebinit $INSTALL/usr/bin/
ln -sf pastebinit $INSTALL/usr/bin/paste
mkdir -p $INSTALL/usr/lib/openelec
cp $PKG_DIR/scripts/fs-resize $INSTALL/usr/lib/openelec
mkdir -p $INSTALL/etc
cp $PKG_DIR/config/profile $INSTALL/etc
cp $PKG_DIR/config/inputrc $INSTALL/etc
cp $PKG_DIR/config/httpd.conf $INSTALL/etc
cp $PKG_DIR/config/suspend-modules.conf $INSTALL/etc
mkdir -p $INSTALL/usr/config/sysctl.d
cp $PKG_DIR/config/transmission.conf $INSTALL/usr/config/sysctl.d
# /etc/fstab is needed by...
touch $INSTALL/etc/fstab
# /etc/machine-id, needed by systemd and dbus
ln -sf /run/machine-id $INSTALL/etc/machine-id
# /etc/hosts must be writeable
ln -sf /var/cache/hosts $INSTALL/etc/hosts
# /etc/mtab is needed by udisks etc...
ln -sf /proc/self/mounts $INSTALL/etc/mtab
# create /etc/hostname
ln -sf /proc/sys/kernel/hostname $INSTALL/etc/hostname
# systemd wants /usr/bin/mkdir
mkdir -p $INSTALL/usr/bin
ln -sf /bin/busybox $INSTALL/usr/bin/mkdir
# add webroot
mkdir -p $INSTALL/usr/www
echo "It works" > $INSTALL/usr/www/index.html
mkdir -p $INSTALL/usr/www/error
echo "404" > $INSTALL/usr/www/error/404.html
}
post_install() {
ROOT_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $ROOT_PASSWORD`"
echo "chmod 4755 $INSTALL/bin/busybox" >> $FAKEROOT_SCRIPT
echo "chmod 000 $INSTALL/etc/shadow" >> $FAKEROOT_SCRIPT
add_user root "$ROOT_PWD" 0 0 "Root User" "/storage" "/bin/sh"
add_group root 0
add_group users 100
add_user nobody x 65534 65534 "Nobody" "/" "/bin/sh"
add_group nogroup 65534
enable_service debug-shell.service
enable_service shell.service
enable_service connman-ncurses.service
enable_service show-version.service
enable_service var.mount
enable_service var-log-debug.service
enable_service fs-resize.service
# cron support
if [ "$CRON_SUPPORT" = "yes" ] ; then
mkdir -p $INSTALL/usr/lib/systemd/system
cp $PKG_DIR/system.d.opt/cron.service $INSTALL/usr/lib/systemd/system
enable_service cron.service
mkdir -p $INSTALL/usr/share/services
cp -P $PKG_DIR/default.d/*.conf $INSTALL/usr/share/services
cp $PKG_DIR/system.d.opt/cron-defaults.service $INSTALL/usr/lib/systemd/system
enable_service cron-defaults.service
fi
}
makeinstall_init() {
mkdir -p $INSTALL/bin
ln -sf busybox $INSTALL/bin/sh
chmod 4755 $INSTALL/bin/busybox
mkdir -p $INSTALL/etc
touch $INSTALL/etc/fstab
ln -sf /proc/self/mounts $INSTALL/etc/mtab
if [ -f $PROJECT_DIR/$PROJECT/initramfs/platform_init ]; then
cp $PROJECT_DIR/$PROJECT/initramfs/platform_init $INSTALL
chmod 755 $INSTALL/platform_init
fi
cp $PKG_DIR/scripts/init $INSTALL
chmod 755 $INSTALL/init
}
@@ -1,12 +0,0 @@
diff -Naur busybox-1.13.2/init/halt.c busybox-1.13.2a/init/halt.c
--- busybox-1.13.2/init/halt.c 2008-11-09 18:28:19.000000000 +0100
+++ busybox-1.13.2a/init/halt.c 2009-02-01 16:38:37.000000000 +0100
@@ -79,7 +79,7 @@
/* Perform action. */
rc = 1;
- if (!(flags & 4)) { /* no -f */
+ if (ENABLE_INIT && !(flags & 4)) { /* no -f */
//TODO: I tend to think that signalling linuxrc is wrong
// pity original author didn't comment on it...
if (ENABLE_FEATURE_INITRD) {
@@ -1,12 +0,0 @@
diff -Naur busybox-1.17.3-old/scripts/trylink busybox-1.17.3-new/scripts/trylink
--- busybox-1.17.3-old/scripts/trylink 2010-09-16 16:05:35.000000000 -0700
+++ busybox-1.17.3-new/scripts/trylink 2010-10-10 07:38:03.000000000 -0700
@@ -49,7 +49,7 @@
local tempname="/tmp/temp.$$.$RANDOM"
# Can use "-o /dev/null", but older gcc tend to *unlink it* on failure! :(
# "-xc": C language. "/dev/null" is an empty source file.
- if $CC $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then
+ if $CC $CFLAGS $LDFLAGS $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then
echo "$1";
else
echo "$2";
@@ -1,20 +0,0 @@
From 5f4085ddb16c206b1dc36d481c2aa6684ba392ee Mon Sep 17 00:00:00 2001
From: Stefan Saraev <[email protected]>
Date: Thu, 18 Jul 2013 19:26:21 +0300
Subject: [PATCH] silence crond startup logging
---
miscutils/crond.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff -Naur busybox-1.23.0/miscutils/crond.c busybox-1.23.0.patch/miscutils/crond.c
--- busybox-1.23.0/miscutils/crond.c 2014-10-04 22:35:59.000000000 +0200
+++ busybox-1.23.0.patch/miscutils/crond.c 2014-12-26 23:07:53.386118290 +0100
@@ -945,7 +945,6 @@
reopen_logfile_to_stderr();
xchdir(G.crontab_dir_name);
- log8("crond (busybox "BB_VER") started, log level %d", G.log_level);
rescan_crontab_dir();
write_pidfile(CONFIG_PID_FILE_PATH "/crond.pid");
@@ -1,26 +0,0 @@
#
# stolen from OpenWRT
#
# https://dev.openwrt.org/attachment/ticket/7993/701-make_unicode_printable.patch
#
--- a/libbb/printable_string.c 2013-01-13 20:06:04.210089516 +0800
+++ b/libbb/printable_string.c 2013-01-13 20:00:27.917211167 +0800
@@ -31,8 +31,6 @@
}
if (c < ' ')
break;
- if (c >= 0x7f)
- break;
s++;
}
@@ -45,7 +43,7 @@
unsigned char c = *d;
if (c == '\0')
break;
- if (c < ' ' || c >= 0x7f)
+ if (c < ' ')
*d = '?';
d++;
}
@@ -1,34 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
export HOME="/storage"
export PATH="/bin:/sbin:/usr/bin:/usr/sbin"
export LD_LIBRARY_PATH="/usr/lib:/lib"
export HOSTNAME=`cat /etc/hostname`
export PS1="\[\e[1;32m\]\h\[\e[1;32m\]:\[\e[1;34m\]\w \[\e[0m\]\\$ "
# TODO: k0p: remove this and/or force TERM=xterm ? ping dag-
case "$TERM" in
linux|nxterm|screen|xterm|xterm-color)
;;
"")
export TERM="linux"
;;
*)
export TERM="xterm"
;;
esac
@@ -1,40 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
message="$message\n There is no working 'apt-get'."
message="$message\n "
message="$message\n 'apt-get' is a command to install, update and remove software which"
message="$message\n is stored in a non local repo. 'apt-get' does nothing then connecting to such"
message="$message\n repo, downloads the software, unpacks the software, updates a big"
message="$message\n local database with all filepaths and other informations about the"
message="$message\n installed software or removes or updates installed Software."
message="$message\n "
message="$message\n With OpenELEC it is not possible to change the system for security and"
message="$message\n stability reasons so even 'apt-get' would not be able to do this."
message="$message\n We also dont have and want to maintain such a repo for various other"
message="$message\n great reasons."
message="$message\n "
message="$message\n Also Ubuntu or Debian packages are often outdated and not compatible"
message="$message\n with OpenELEC"
message="$message\n "
message="$message\n TIP: use XBMC's addon browser to enhance your OpenELEC system"
echo -e $message
exit 1
@@ -1,146 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
# create logfile
DATE=`date -u +%Y-%m-%d-%H.%M.%S`
BASEDIR="/tmp"
LOGDIR="log-$DATE"
RELEASE="`cat /etc/release`"
GIT="`cat /etc/issue |grep git`"
getlog_cmd() {
if which $1 >/dev/null; then
echo "################################################################################" >> $BASEDIR/$LOGDIR/$LOGFILE
echo "# ... output of $@" >> $BASEDIR/$LOGDIR/$LOGFILE
echo "# OpenELEC release: $RELEASE" >> $BASEDIR/$LOGDIR/$LOGFILE
echo "# $GIT" >> $BASEDIR/$LOGDIR/$LOGFILE
echo "################################################################################" >> $BASEDIR/$LOGDIR/$LOGFILE
$@ >> $BASEDIR/$LOGDIR/$LOGFILE 2>/dev/null
echo "" >> $BASEDIR/$LOGDIR/$LOGFILE
fi
}
rm -rf $BASEDIR/$LOGDIR
mkdir -p $BASEDIR/$LOGDIR
# kodi.log
LOGFILE="01_KODI.log"
for i in `find /storage/.kodi/temp/ -type f -name "*.log"`; do
getlog_cmd cat $i
done
# System.log
LOGFILE="02_System.log"
getlog_cmd dmesg
getlog_cmd lsmod
getlog_cmd ps xa
for i in /storage/.config/hwdb.d/*.hwdb \
/storage/.config/modprobe.d/*.conf \
/storage/.config/modules-load.d/*.conf \
/storage/.config/sleep.d/*.power \
/storage/.config/sysctl.d/*.conf \
/storage/.config/udev.rules.d/.rules \
; do
if [ -f "$i" ] ; then
getlog_cmd cat $i
fi
done
if [ -f "/storage/.config/autostart.sh" ] ; then
getlog_cmd cat /storage/.config/autostart.sh
fi
if [ -f "/storage/.config/shutdown.sh" ] ; then
getlog_cmd cat /storage/.config/shutdown.sh
fi
getlog_cmd ls -laR /storage/.config/system.d
# note: we dont add .mount units here as they may contan
# login credentials
for i in /storage/.config/system.d/*.service ; do
if [ -f "$i" -a ! -L "$i" ] ; then
getlog_cmd cat $i
fi
done
# Hardware.log
LOGFILE="03_Hardware.log"
getlog_cmd lspci -vvvvnn
getlog_cmd lsusb -vvv
getlog_cmd lsusb -t
getlog_cmd cat /proc/cpuinfo
getlog_cmd cat /proc/meminfo
# Audio.log
LOGFILE="04_Audio.log"
getlog_cmd aplay -l
getlog_cmd aplay -L
getlog_cmd amixer
# Network.log
LOGFILE="05_Network.log"
getlog_cmd ifconfig -a
getlog_cmd netstat -rn
getlog_cmd netstat -nalp
getlog_cmd connmanctl services
getlog_cmd cat /etc/resolv.conf
# varlog.log
LOGFILE="06_varlog.log"
for i in `find /var/log -type f`; do
getlog_cmd cat $i
done
# Input.log
LOGFILE="07_input.log"
getlog_cmd cat /proc/bus/input/devices
# make RPi users happy
if [ -e /proc/acpi/wakeup ] ; then
getlog_cmd cat /proc/acpi/wakeup
fi
# Filesystem.log
LOGFILE="08_Filesystem.log"
getlog_cmd cat /proc/mounts
getlog_cmd df -h
getlog_cmd blkid
# Journal (current)
LOGFILE="09_Journal-cur.log"
getlog_cmd journalctl --no-pager -b -0
# Journal (prev)
LOGFILE="10_Journal-prev.log"
getlog_cmd journalctl --no-pager -b -1
# addons
LOGFILE="11_Addons.log"
for i in /storage/.kodi/userdata/addon_data/*/*.log \
/storage/.kodi/userdata/addon_data/*/log/* \
; do
if [ -f "$i" ] ; then
getlog_cmd cat $i
fi
done
# pack logfiles
mkdir -p /storage/logfiles
zip -jq /storage/logfiles/log-$DATE.zip $BASEDIR/$LOGDIR/*
# remove logdir
rm -rf $BASEDIR/$LOGDIR
@@ -1,70 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
if [ -e /storage/.please_resize_me ] ; then
# this sh** was never intended to be used
# on already installed and runing system
if [ -d /storage/.kodi -o -d /storage/.config -o -d /storage/.cache ] ; then
rm -f /storage/.please_resize_me
sync
echo "resizing not allowed. rebooting in 15s"
sleep 15
reboot -f
fi
# get the disk. /storage on 2nd partition
PART=$(grep "/storage " /proc/mounts | cut -d" " -f1 | grep '2$')
# get disk: /dev/sdx2 -> /dev/sdx, /dev/mmcblkxp2 -> /dev/mmcblkx
case $PART in
"/dev/mmcblk"*)
DISK=$(echo $PART | sed s/p2$//g)
;;
*)
DISK=$(echo $PART | sed s/2$//g)
;;
esac
rm -f /storage/.please_resize_me
sync
# just in case
if [ ! -z "$DISK" -a ! -z "$PART" ] ; then
# get storage partition start
PART_START=$(parted -s -m $DISK unit b print |grep -v ^/dev |grep -v BYT | grep ^2: | cut -f2 -d ":")
# failed to get partition start offset ?
if [ ! -z "$PART_START" ] ; then
umount $PART
# TODO: clean up debug
echo "resizing /storage..."
echo "this may take a while. please do not reboot or turn off your computer"
echo "... parted -s -m $DISK rm 2"
parted -s -m $DISK rm 2 &>/dev/null
echo "... parted -s -m $DISK unit b mkpart primary $PART_START 100%"
parted -s -m $DISK unit b mkpart primary $PART_START 100% &>/dev/null
echo "... e2fsck -f -p $PART"
e2fsck -f -p $PART &>/dev/null
echo "... resize2fs $PART"
resize2fs $PART &>/dev/null
echo "...done. rebooting in 15s"
sleep 15
fi
fi
fi
reboot -f
@@ -1,732 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
# Copyright (C) 2010-2011 Roman Weber ([email protected])
# Copyright (C) 2012 Yann Cézard ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
# create directories
/bin/busybox mkdir -p /dev
/bin/busybox mkdir -p /proc
/bin/busybox mkdir -p /sys
/bin/busybox mkdir -p /flash
/bin/busybox mkdir -p /sysroot
/bin/busybox mkdir -p /storage
# mount all needed special filesystems
/bin/busybox mount -t devtmpfs devtmpfs /dev
/bin/busybox mount -t proc proc /proc
/bin/busybox mount -t sysfs sysfs /sys
# set needed variables
MODULE_DIR=/lib/modules
UPDATE_DIR=/storage/.update
UPDATE_KERNEL="KERNEL"
UPDATE_SYSTEM="SYSTEM"
IMAGE_KERNEL="KERNEL"
IMAGE_SYSTEM="SYSTEM"
BOOT_STEP="start"
MD5_FAILED="0"
MD5_NOCHECK="0"
SIZE_FAILED="0"
RUN_FSCK="yes"
RUN_FSCK_DISKS=""
NBD_DEVS="0"
FLASH_FREE_MIN="5"
INSTALLED_MEMORY=`cat /proc/meminfo | grep 'MemTotal:' | awk '{print $2}'`
SYSTEM_TORAM_LIMIT=1024000
# hide kernel log messages on console
echo '1 4 1 7' > /proc/sys/kernel/printk
# run platform_init script if exists
if [ -f "./platform_init" ]; then
./platform_init
fi
# clear screen and hide cursor
clear
if [ -f /sys/devices/virtual/graphics/fbcon/cursor_blink ] ; then
echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink
fi
# parse command line arguments
for arg in $(cat /proc/cmdline); do
case $arg in
BOOT_IMAGE=*)
IMAGE_KERNEL="${arg#*=}"
;;
SYSTEM_IMAGE=*)
IMAGE_SYSTEM="${arg#*=}"
;;
boot=*)
boot="${arg#*=}"
case $boot in
ISCSI=*|NBD=*|NFS=*)
UPDATE_DISABLED=yes
FLASH_NETBOOT=yes
;;
/dev/*|LABEL=*|UUID=*)
RUN_FSCK_DISKS="$RUN_FSCK_DISKS $boot"
;;
esac
;;
disk=*)
disk="${arg#*=}"
case $disk in
ISCSI=*|NBD=*|NFS=*)
STORAGE_NETBOOT=yes
;;
/dev/*|LABEL=*|UUID=*)
RUN_FSCK_DISKS="$RUN_FSCK_DISKS $disk"
;;
esac
;;
wol_mac=*)
wol_mac="${arg#*=}"
;;
wol_wait=*)
wol_wait="${arg#*=}"
;;
textmode)
INIT_UNIT="--unit=textmode.target"
;;
installer)
INIT_UNIT="--unit=installer.target"
;;
debugging)
DEBUG=yes
;;
progress)
PROGRESS=yes
INIT_ARGS="$INIT_ARGS --show-status=1"
;;
nofsck)
RUN_FSCK=no
;;
nosplash)
SPLASH=no
;;
noram)
SYSTEM_TORAM=no
;;
overlay)
OVERLAY=yes
;;
break=*)
BREAK="${arg#*=}"
;;
esac
done
if test "$DEBUG" = "yes"; then
exec 3>&1
else
exec 3>/dev/null
fi
SILENT_OUT=3
progress() {
if test "$PROGRESS" = "yes"; then
echo "### $1 ###"
fi
}
debug_shell() {
echo "### Starting debugging shell... type exit to quit ###"
# show cursor
echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink
sh </dev/tty1 >/dev/tty1 2>&1
}
error() {
# Display fatal error message
# $1:action which caused error, $2:message
echo "*** Error in $BOOT_STEP: $1: $2 ***"
debug_shell
}
break_after() {
# Start debug shell after boot step $1
case $BREAK in
all|*$1*)
debug_shell
;;
esac
}
# Mount handlers
# All handlers take the following parameters:
# $1:target, $2:mountpoint, $3:mount options, [$4:fs type]
mount_common() {
# Common mount handler, handles block devices and filesystem images
MOUNT_OPTIONS="-o $3"
[ -n "$4" ] && MOUNT_OPTIONS="-t $4 $MOUNT_OPTIONS"
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
ERR_ENV=1
mount $MOUNT_OPTIONS $1 $2 >&$SILENT_OUT 2>&1
[ "$?" -eq "0" ] && ERR_ENV=0 && break
usleep 1000000
done
[ "$ERR_ENV" -ne "0" ] && error "mount_common" "Could not mount $1"
}
get_iscsistart_options() {
# Convert kernel commandline ISCSI= options to iscsistart options
IFS_SAVE="$IFS"
IFS=,
for arg in $1; do
val="${arg#*=}"
case "$arg" in
iscsi_initiator=*)
option="-i"
;;
iscsi_target_name=*)
option="-t"
;;
iscsi_target_ip=*)
option="-a"
;;
iscsi_target_port=*)
option="-p"
;;
iscsi_target_group=*)
option="-g"
;;
iscsi_username=*)
option="-u"
;;
iscsi_password=*)
option="-w"
;;
iscsi_in_username=*)
option="-U"
;;
iscsi_in_password=*)
option="-W"
;;
esac
echo "$option $val"
done
IFS="$IFS_SAVE"
}
mount_iscsi() {
# Mount iSCSI target
ISCSI_DEV="${1##*,}"
ISCSI_OPTIONS="${1%,*}"
if [ ! -f "/sbin/iscsistart" ]; then
error "iscsistart" "iSCSI support not available"
fi
if [ "$ISCSI_OPTIONS" = "auto" ]; then
progress "Network configuration based on iBFT"
/sbin/iscsistart -N >&$SILENT_OUT 2>&1 || \
error "iscsistart" "Unable to configure network"
progress "iSCSI auto connect based on iBFT"
/sbin/iscsistart -b >&$SILENT_OUT 2>&1 || \
error "iscsistart" "Unable to auto connect"
else
/sbin/iscsistart $(get_iscsistart_options "$ISCSI_OPTIONS") >&$SILENT_OUT 2>&1 || \
error "iscsistart" "Unable to connect to ISCSI target"
fi
mount_common "$ISCSI_DEV" "$2" "$3" "$4"
}
mount_nbd() {
# Mount NBD device
NBD_SERVER="${1%%:*}"
NBD_PORT="${1#*:}"
NBD_DEV="/dev/nbd$NBD_DEVS"
nbd-client $NBD_SERVER $NBD_PORT $NBD_DEV >&$SILENT_OUT 2>&1 || \
error "nbd-client" "Could not connect to NBD server $1"
mount_common "$NBD_DEV" "$2" "$3" "$4"
NBD_DEVS=$(( ${NBD_DEVS} + 1 ))
}
mount_nfs() {
# Mount NFS export
NFS_EXPORT="${1%%,*}"
NFS_OPTIONS="${1#*,}"
[ "$NFS_OPTIONS" = "$1" ] && NFS_OPTIONS=
mount_common "$NFS_EXPORT" "$2" "$3,nolock,soft,timeo=3,retrans=2,rsize=32768,wsize=32768,$NFS_OPTIONS" "nfs"
}
mount_part() {
# Mount a local or network filesystem
# $1:[TYPE=]target, $2:mountpoint, $3:mount options, [$4:fs type]
progress "mount filesystem $1 ..."
MOUNT_TARGET="${1#*=}"
case $1 in
LABEL=*|UUID=*|/*)
MOUNT_CMD="mount_common"
MOUNT_TARGET="$1"
;;
ISCSI=*)
MOUNT_CMD="mount_iscsi"
;;
NBD=*)
MOUNT_CMD="mount_nbd"
;;
NFS=*)
MOUNT_CMD="mount_nfs"
;;
*)
error "mount_part" "Unknown filesystem $1"
;;
esac
$MOUNT_CMD "$MOUNT_TARGET" "$2" "$3" "$4"
}
update_file() {
if [ -f "$UPDATE_DIR/$2" -a -f "$3" ]; then
echo "updating $1..."
mount -o remount,rw /flash
mv $UPDATE_DIR/$2 $3 2>/dev/null
# loopback file needs writable /flash all the time
if [ "${disk%%=*}" != "FILE" ]; then
mount -o remount,ro /flash
fi
sync
fi
}
update_partition() {
if [ -f "$UPDATE_DIR/$2" -a -b "$3" ]; then
echo "updating $1..."
dd if="$UPDATE_DIR/$2" of="$3"
fi
}
update_bootloader() {
export BOOT_ROOT="/flash"
export SYSTEM_ROOT="/sysroot"
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
if [ -f $SYSTEM_ROOT/usr/share/bootloader/update.sh ]; then
echo "updating Bootloader..."
sh $SYSTEM_ROOT/usr/share/bootloader/update.sh
sync
fi
umount /sysroot
}
load_modules() {
progress "Loading kernel modules"
[ ! -f "/etc/modules" ] && return
for module in $(cat /etc/modules); do
progress "Loading kernel module $module"
insmod "$MODULE_DIR/$module.ko" || \
progress "... Failed to load kernel module $module, skipping"
done
}
load_splash() {
if [ ! "$SPLASH" = "no" ]; then
progress "Loading bootsplash"
SPLASHIMAGE="/splash/splash-full.png"
# load uvesafb module if needed
if [ -f "$MODULE_DIR/uvesafb.ko" -a ! -e /dev/fb0 ]; then
progress "Loading kernel module uvesafb.ko"
insmod "$MODULE_DIR/uvesafb.ko" || \
progress "... Failed to load kernel module uvesafb, skipping"
# set framebuffer to a default resolution (1024x768-32)
if [ ! "$SWITCH_FRAMEBUFFER" = "no" ]; then
fbset -g 1024 768 1024 768 32
SPLASHIMAGE="/splash/splash-1024.png"
fi
fi
if [ -e /dev/fb0 ]; then
# load splash
if [ -f /flash/oemsplash.png ]; then
SPLASHIMAGE="/flash/oemsplash.png"
elif [ -f /splash/splash.conf ]; then
. /splash/splash.conf
fi
ply-image $SPLASHIMAGE > /dev/null 2>&1
fi
fi
}
do_reboot() {
echo "System reboots now..."
# syncing filesystem
sync
# unmount filesystems
if /bin/busybox mountpoint -q /flash ; then
/bin/busybox umount /flash
fi
if /bin/busybox mountpoint -q /storage ; then
/bin/busybox umount /storage
fi
usleep 2000000
/bin/busybox reboot
}
force_fsck() {
echo "Filesystem corruption has been detected"
echo "To prevent an automatic repair attempt continuing"
echo "press any key or power off your system within the next 120 seconds"
echo ""
read -t120 -n1
# The exit status is 0 if input is available
# The exit status is greater than 128 if the timeout is exceeded
if [ "$?" -ne "0" -o "$?" -gt "128" ] ; then
echo "repairing filesystem.."
echo ""
/sbin/fsck -T -M -y $RUN_FSCK_DISKS
FSCK_RET="$?"
if [ "$(( $FSCK_RET & 8 ))" = 8 ] ; then
# fubar
echo "Forced fsck failed. Your system is broken beyond repair"
echo "Please re-install OpenELEC"
echo ""
echo "Press enter to shutdown now"
echo ""
read fubar
poweroff
fi
do_reboot
else
echo "shutting down..."
sleep 5
sync
poweroff
fi
}
check_disks() {
if [ "$RUN_FSCK" = "yes" -a -n "$RUN_FSCK_DISKS" ]; then
progress "Checking disk(s): $RUN_FSCK_DISKS"
/sbin/fsck -T -M -p -a $RUN_FSCK_DISKS > /dev/null 2>&1
FSCK_RET="$?"
# FSCK_RET is the bit-wise OR of the exit codes for each filesystem that is checked.
if [ "$(( $FSCK_RET & 4 ))" = 4 ] ; then
# errors left
force_fsck
elif [ "$(( $FSCK_RET & 2 ))" = 2 ] ; then
# reboot needed
echo "filesystem repaired, reboot needed..."
do_reboot
elif [ "$(( $FSCK_RET & 1 ))" = 1 ] ; then
# filesystem errors corrected
progress "filesystem errors corrected , continuing..."
elif [ "$(( $FSCK_RET & 0 ))" = 0 ] ; then
# no errors found
progress "no filesystem errors found, continuing..."
fi
fi
}
wakeonlan() {
if [ "$STORAGE_NETBOOT" = "yes" ]; then
wol_ip=${disk%:*}
wol_ip=${wol_ip#*=}
elif [ "$FLASH_NETBOOT" = "yes" ]; then
wol_ip=${boot%:*}
wol_ip=${wol_ip#*=}
else
return 0
fi
if [ -n "$wol_ip" -a -n "$wol_mac" -a -n "$wol_wait" ]; then
progress "Sending Magic Packet (WOL) if needed"
if ! ping -q -c 2 "$wol_ip" &>/dev/null; then
ether-wake "$wol_mac"
sleep "$wol_wait"
fi
fi
}
mount_flash() {
progress "Mounting flash"
wakeonlan
mount_part "$boot" "/flash" "ro,noatime"
}
mount_storage() {
progress "Mounting storage"
wakeonlan
if [ -n "$disk" ]; then
if [ -n "$OVERLAY" ]; then
OVERLAY_DIR=`cat /sys/class/net/eth0/address | tr -d :`
mount_part "$disk" "/storage" "rw,noatime"
mkdir -p /storage/$OVERLAY_DIR
umount /storage
# split $disk into $target,$options so we can append $OVERLAY_DIR
options="${disk#*,}"
target="${disk%%,*}"
if [ "$options" = "$disk" ]; then
disk="$target/$OVERLAY_DIR"
else
disk="$target/$OVERLAY_DIR,$options"
fi
fi
mount_part "$disk" "/storage" "rw,noatime"
fi
}
check_update() {
progress "Checking for updates"
UPDATE_TAR=`ls -1 "$UPDATE_DIR"/*.tar 2>/dev/null | head -n 1`
if [ -f "$UPDATE_DIR/$UPDATE_KERNEL" -a -f "$UPDATE_DIR/$UPDATE_SYSTEM" -o -f "$UPDATE_TAR" ] ; then
if [ "$UPDATE_DISABLED" = "yes" ] ; then
rm -rf $UPDATE_DIR/[0-9a-zA-Z]* &>/dev/null
echo "Updating not supported on netboot. normal startup in 10s..."
sync
usleep 10000000
return 0
fi
# check for .tar
if [ -f "$UPDATE_TAR" ] ; then
echo "Found new .tar archive. extracting..."
mkdir -p $UPDATE_DIR/.tmp &>/dev/null
tar -xf "$UPDATE_TAR" -C $UPDATE_DIR/.tmp &>/dev/null
mv $UPDATE_DIR/.tmp/*/target/* $UPDATE_DIR &>/dev/null
rm -f "$UPDATE_TAR" &>/dev/null
rm -rf $UPDATE_DIR/.tmp &>/dev/null
sync
if [ ! -f "$UPDATE_DIR/$UPDATE_KERNEL" -o ! -f "$UPDATE_DIR/$UPDATE_SYSTEM" ] ; then
echo "missing ${UPDATE_KERNEL} or ${UPDATE_SYSTEM}... normal startup in 10s"
sync
usleep 10000000
return 0
fi
fi
if [ -f "$UPDATE_DIR/.nocheck" ] ; then
MD5_NOCHECK="1"
fi
# check md5 sums if .nocheck doesn't exist
if [ "$MD5_NOCHECK" -eq "0" ] ; then
if [ -f "$UPDATE_DIR/${UPDATE_KERNEL}.md5" -a -f "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" ] ; then
# *.md5 size-check
if [ ! -s "$UPDATE_DIR/${UPDATE_KERNEL}.md5" -o ! -s "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" ] ; then
echo "zero-sized .md5 file..."
MD5_FAILED="1"
else
sed -i 's#target#/storage/.update#g' "$UPDATE_DIR/${UPDATE_KERNEL}.md5"
sed -i 's#target#/storage/.update#g' "$UPDATE_DIR/${UPDATE_SYSTEM}.md5"
echo "Checking ${UPDATE_KERNEL}.md5..."
md5sum -c "$UPDATE_DIR/${UPDATE_KERNEL}.md5" || MD5_FAILED="1"
echo "Checking ${UPDATE_SYSTEM}.md5..."
md5sum -c "$UPDATE_DIR/${UPDATE_SYSTEM}.md5" || MD5_FAILED="1"
fi
else
echo "missing ${UPDATE_KERNEL}.md5 or ${UPDATE_SYSTEM}.md5..."
MD5_FAILED="1"
fi
fi
# get sizes
FLASH_FREE=$(df /flash/ | awk '/[0-9]%/{print $4}')
FLASH_FREE=$(( $FLASH_FREE * 1024 ))
OLD_KERNEL="0"
if [ ! -b $IMAGE_KERNEL ]; then
OLD_KERNEL=$(stat -t "/flash/$IMAGE_KERNEL" | awk '{print $2}')
fi
OLD_SYSTEM=$(stat -t "/flash/$IMAGE_SYSTEM" | awk '{print $2}')
NEW_KERNEL=$(stat -t "$UPDATE_DIR/$UPDATE_KERNEL" | awk '{print $2}')
NEW_SYSTEM=$(stat -t "$UPDATE_DIR/$UPDATE_SYSTEM" | awk '{print $2}')
# old KERNEL+SYSTEM+free space - new KERNEL+SYSTEM must be higher then 5MB
# at least 5MB free after update
TMP_SIZE=$(($OLD_KERNEL+$OLD_SYSTEM+$FLASH_FREE-$NEW_KERNEL-$NEW_SYSTEM))
FLASH_FREE_MIN=$(($FLASH_FREE_MIN*1024*1024))
if [ $TMP_SIZE -ge $FLASH_FREE_MIN ]; then
echo "Checking size: OK"
else
echo "Checking size: FAILED"
SIZE_FAILED="1"
fi
# update if size check is ok
if [ "$SIZE_FAILED" -eq "0" ] ; then
# update if md5 check is ok or .nocheck exists
if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then
if [ -b $IMAGE_KERNEL ]; then
update_partition "Kernel" "$UPDATE_KERNEL" "$IMAGE_KERNEL"
else
update_file "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL"
fi
update_file "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM"
update_bootloader
rm -rf $UPDATE_DIR/[0-9a-zA-Z]* &>/dev/null
do_reboot
else
rm -rf $UPDATE_DIR/[0-9a-zA-Z]* &>/dev/null
echo "md5 check failed. normal startup in 30s..."
sync
usleep 30000000
fi
else
rm -rf $UPDATE_DIR/[0-9a-zA-Z]* &>/dev/null
echo "size check failed. normal startup in 30s..."
sync
usleep 30000000
fi
fi
}
prepare_sysroot() {
progress "Preparing system"
if [ "$SYSTEM_TORAM" = "no" -o "$INSTALLED_MEMORY" -lt "$SYSTEM_TORAM_LIMIT" ]; then
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
else
cp /flash/$IMAGE_SYSTEM /dev/$IMAGE_SYSTEM
mount_part "/dev/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
fi
mount --move /flash /sysroot/flash
if [ -n "$disk" ]; then
mount --move /storage /sysroot/storage
fi
if [ ! -d "/sysroot/lib/modules/$(uname -r)/" -a -f "/sysroot/usr/lib/systemd/systemd" ]; then
echo ""
echo "NEVER TOUCH boot= in extlinux.conf / cmdline.txt"
echo "if you dont know what you are doing"
echo ""
echo "your installation is now broken"
echo ""
echo "normal boot in 60s..."
usleep 60000000
fi
[ -f "/sysroot/usr/lib/systemd/systemd" ] || error "final_check" "Could not find system."
}
if [ "${boot%%=*}" = "FILE" ]; then
error "check arguments" "boot argument can't be FILE type..."
fi
# main boot sequence
for BOOT_STEP in \
load_modules \
check_disks \
mount_flash \
load_splash \
mount_storage \
check_update \
prepare_sysroot; do
$BOOT_STEP
[ -n "$DEBUG" ] && break_after $BOOT_STEP
done
BOOT_STEP=final
# log if booting from usb / removable storage
STORAGE=$(cat /proc/mounts | grep " /sysroot/storage " | awk '{print $1}' | awk -F '/' '{print $3}')
FLASH=$(cat /proc/mounts | grep " /sysroot/flash " | awk '{print $1}' | awk -F '/' '{print $3}')
for i in $STORAGE $FLASH ; do
if [ -n "$i" ] ; then
removable="/sys/class/block/*/$i/../removable"
if [ -e $removable ] ; then
if [ "$(cat $removable 2>/dev/null)" = "1" ] ; then
echo "### BIG FAT WARNING" > /dev/kmsg
echo "### $i is removable. suspend/resume may not work" > /dev/kmsg
fi
fi
fi
done
# move some special filesystems
/bin/busybox mount --move /dev /sysroot/dev
/bin/busybox mount --move /proc /sysroot/proc
/bin/busybox mount --move /sys /sysroot/sys
# tell OE settings addon to disable updates
if [ "$UPDATE_DISABLED" = "yes" ] ; then
echo "" > /sysroot/dev/.update_disabled
fi
# swap can not be used over nfs.(see scripts/mount-swap)
if [ "$STORAGE_NETBOOT" = "yes" ] ; then
echo "" > /sysroot/dev/.storage_netboot
fi
if [ -f /sysroot/storage/.please_connect_me ] ; then
INIT_UNIT="--unit=connman-ncurses.target"
fi
if [ -f /sysroot/storage/.please_resize_me ] ; then
INIT_UNIT="--unit=fs-resize.target"
fi
BACKUP_FILE=`ls -1 /sysroot/storage/.restore/??????????????.tar 2>/dev/null | head -n 1`
if [ -f "$BACKUP_FILE" ] ; then
INIT_UNIT="--unit=backup-restore.target"
fi
if [ -f /sysroot/storage/.cache/reset_oe -o -f /sysroot/storage/.cache/reset_xbmc ] ; then
INIT_UNIT="--unit=factory-reset.target"
fi
# switch to new sysroot and start real init
exec /bin/busybox switch_root /sysroot /usr/lib/systemd/systemd $INIT_ARGS $INIT_UNIT
error "switch_root" "Error in initramfs. Could not switch to new root"
@@ -1,23 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
# show release information
. /etc/os-release
echo "$PRETTY_NAME"
@@ -1,34 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
message="$message\n There is no working 'passwd'."
message="$message\n"
message="$message\n The 'passwd' command changes passwords for user accounts."
message="$message\n"
message="$message\n With OpenELEC it is not possible to change the system password"
message="$message\n"
message="$message\n SSH is included only as a last support resort. SSH is off by default."
message="$message\n Most users never need SSH and need help using it so we need a default"
message="$message\n password. If you need to keep SSH always on then this is unsupported"
message="$message\n but can be secured with certificates."
message="$message\n"
message="$message\n TIP: disable password authentication in ssh and use public key authentication."
echo -e $message
@@ -1,26 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
#
# wrapper for curl, posting to the sprunge.us pastebin
# reads from stdin if called without an argument
#
cat "$@" | curl -F 'sprunge=<-' http://sprunge.us
@@ -1,32 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
message="$message\n There is no working 'sudo'."
message="$message\n "
message="$message\n On debian/ubuntu/all general purpose linux distributions 'sudo'"
message="$message\n allows a permitted user to execute a command as the superuser"
message="$message\n or another user, as specified by the security policy"
message="$message\n "
message="$message\n With OpenELEC you have root access by default, so you dont need 'sudo'"
message="$message\n "
echo -e $message
exit 1
@@ -1,97 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. /etc/suspend-modules.conf
modunload()
{
local MOD D C USED MODS I
local UNL="$(echo $1 |tr - _)" RET=1
while read MOD D C USED D; do
[ "$MOD" = "$UNL" ] || continue
if [ "$USED" = "-" ]; then
# no dependent modules, just try to remove this one.
_rmmod "$MOD" $C
RET=$?
else
# modules depend on this one. try to remove them first.
MODS=",${USED%,}"
while [ -n "${MODS}" ]; do
# try to unload the last one first
MOD="${MODS##*,}"
modunload $MOD && RET=0
# prune the last one from the list
MODS="${MODS%,*}"
done
# if we unloaded at least one module, then let's
# try again!
[ $RET -eq 0 ] && modunload $MOD
RET=$?
fi
return $RET
done < /proc/modules
# if we came this far, there was nothing to do,
# the module is no longer loaded.
return 0
}
_rmmod()
{
if modprobe -r "$1"; then
touch "/run/openelec/suspend/module:$1"
return 0
else
logger -t suspend-modules "# could not unload '$1', usage count was $2"
return 1
fi
}
resume_modules()
{
for x in /run/openelec/suspend/module:* ; do
[ -O "${x}" ] || continue
modprobe "${x##*:}" &>/dev/null && \
logger -t resume-modules "Reloaded module ${x##*:}." || \
logger -t resume-modules "Could not reload module ${x##*:}."
done
}
suspend_modules()
{
[ -z "$SUSPEND_MODULES" ] && return 0
# clean up
rm -rf /run/openelec/suspend
mkdir -p /run/openelec/suspend
for x in $SUSPEND_MODULES ; do
modunload $x && \
logger -t suspend-modules "Unloading kernel module $x: Done" || \
logger -t suspend-modules "Unloading kernel module $x: Failed"
done
return 0
}
case $1 in
pre)
suspend_modules
;;
post)
resume_modules
;;
esac
@@ -1 +0,0 @@
kernel.core_pattern=/storage/.cache/cores/core.%E.%t.%p
@@ -1,2 +0,0 @@
dev.cdrom.lock=0
dev.cdrom.autoclose=0
@@ -1 +0,0 @@
vm.min_free_kbytes=16384
@@ -1,11 +0,0 @@
[Unit]
Description=Cron defaults
After=local-fs.target
ConditionPathExists=!/storage/.cache/services/crond.conf
ConditionPathExists=!/storage/.cache/services/crond.disabled
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'cp /usr/share/services/crond.conf /storage/.cache/services/'
RemainAfterExit=yes
@@ -1,16 +0,0 @@
[Unit]
Description=Cron daemon
After=cron-defaults.service
Requires=cron-defaults.service
ConditionPathExists=/storage/.cache/services/crond.conf
[Service]
ExecStartPre=/bin/mkdir -p /storage/.cache/cron/crontabs
ExecStart=/sbin/crond -f -S
KillMode=process
TimeoutStopSec=1s
[Install]
WantedBy=multi-user.target
@@ -1,22 +0,0 @@
[Unit]
Description=Wifi Menu
After=multi-user.target
[Service]
Environment=TTY=1
WorkingDirectory=/storage
ExecStart=/bin/sh -c 'clear; echo fufuu; . /etc/profile; exec /usr/bin/connman-ncurses'
Restart=always
RestartSec=0
StandardInput=tty
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
# bash ignores SIGTERM
KillSignal=SIGHUP
[Install]
WantedBy=connman-ncurses.target
@@ -1,6 +0,0 @@
[Unit]
Description=Wifi Menu
Requires=multi-user.target
After=multi-user.target
Conflicts=rescue.target
AllowIsolate=yes
@@ -1,25 +0,0 @@
[Unit]
Description=Debug Shell
DefaultDependencies=no
ConditionKernelCommandLine=|tty
ConditionKernelCommandLine=|debugging
ConditionPathExists=|/storage/.cache/debug.openelec
[Service]
Environment=TTY=3
WorkingDirectory=/storage
ExecStart=/bin/sh -c '. /etc/profile; exec /bin/sh'
Restart=always
RestartSec=0
StandardInput=tty
TTYPath=/dev/tty3
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
# bash ignores SIGTERM
KillSignal=SIGHUP
[Install]
WantedBy=sysinit.target
@@ -1,10 +0,0 @@
[Unit]
Description=FS Resize
DefaultDependencies=no
[Service]
Type=idle
ExecStart=/usr/lib/openelec/fs-resize
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit
@@ -1,5 +0,0 @@
[Unit]
Description=FS Resize target
Requires=fs-resize.service
After=fs-resize.service
AllowIsolate=yes
@@ -1,22 +0,0 @@
[Unit]
Description=Textmode Shell
After=multi-user.target
[Service]
Environment=TTY=1
WorkingDirectory=/storage
ExecStart=/bin/sh -c 'clear; lsb_release; . /etc/profile; exec /bin/sh'
Restart=always
RestartSec=0
StandardInput=tty
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
# bash ignores SIGTERM
KillSignal=SIGHUP
[Install]
WantedBy=textmode.target
@@ -1,13 +0,0 @@
[Unit]
Description=Show Version
DefaultDependencies=false
ConditionKernelCommandLine=!morequiet
[Service]
Type=oneshot
ExecStart=/usr/bin/lsb_release
RemainAfterExit=yes
#StandardOutput=tty
[Install]
WantedBy=basic.target
@@ -1,6 +0,0 @@
[Unit]
Description=Textmode
Requires=multi-user.target
After=multi-user.target
Conflicts=rescue.target
AllowIsolate=yes
@@ -1,18 +0,0 @@
[Unit]
Description=Debug /var/log relink
DefaultDependencies=false
After=var.mount
Before=systemd-journal-flush.service
ConditionKernelCommandLine=!installer
ConditionKernelCommandLine=|debugging
ConditionPathExists=|/storage/.cache/debug.openelec
[Service]
Type=oneshot
ExecStartPre=/bin/rm -rf /var/log
ExecStartPre=-/bin/mkdir -p /storage/log/journal
ExecStart=-/bin/ln -sf /storage/log /var/log
RemainAfterExit=yes
[Install]
WantedBy=sysinit.target
@@ -1,22 +0,0 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Variable Directory
Documentation=man:hier(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
[Mount]
What=tmpfs
Where=/var
Type=tmpfs
[Install]
WantedBy=local-fs.target
@@ -1,26 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
d /var/lock 0755 root root - -
d /var/media 0755 root root - -
f /var/run/utmp 1777 root root - -
d /storage/.update 0755 root root - -
d /storage/.cache/cores 0755 root root - -
d /storage/.cache/services 0755 root root - -
d /storage/.config 0755 root root - -
@@ -1,48 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="connman-ncurses"
PKG_VERSION="e2ad506"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/eurogiciel-oss/connman-json-client"
PKG_URL="$LAKKA_MIRROR/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain ncurses json-c"
PKG_PRIORITY="optional"
PKG_SECTION="network"
PKG_SHORTDESC="A ncurses UI for connman"
PKG_LONGDESC="A ncurses UI for connman"
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--disable-optimization --enable-debug"
pre_configure_target() {
if [ -f ../configure ]; then
sed -i "s|/usr/include/ncurses|$SYSROOT_PREFIX/usr/include/ncurses|g" ../configure
fi
}
makeinstall_target() {
mkdir -p $INSTALL/usr/bin
cp connman_ncurses $INSTALL/usr/bin/connman-ncurses
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

-338
View File
@@ -1,338 +0,0 @@
# Name of the Distro to build (full name, without special characters)
DISTRONAME="Lakka"
# short project description
DESCRIPTION="The DIY retro emulation console"
# Welcome Message for e.g. SSH Server (up to 5 Lines)
GREETING0="###########################################"
GREETING1="# Lakka - The DIY retro emulation console #"
GREETING2="# ...... visit http://www.lakka.tv ...... #"
GREETING3="###########################################"
GREETING4=""
# Root password to integrate in the target system
ROOT_PASSWORD="root"
# Mediacenter to use (kodi / no)
MEDIACENTER="no"
# Skins to install (Confluence)
# Space separated list is supported,
# e.g. SKINS="Confluence"
SKINS="Confluence"
# Default Skin (Confluence)
SKIN_DEFAULT="Confluence"
# install extra subtitle Fonts for KODI (yes / no)
KODI_EXTRA_FONTS="yes"
# build and install 'RSXS' Screensaver (yes / no)
KODI_SCR_RSXS="yes"
# build and install 'ProjectM' Visualization (yes / no)
KODI_VIS_PROJECTM="yes"
# build and install 'GOOM' Visualization (yes / no)
KODI_VIS_GOOM="yes"
# build and install 'Waveform' Visualization (yes / no)
KODI_VIS_WAVEFORM="yes"
# build and install 'Spectrum' Visualization (yes / no)
KODI_VIS_SPECTRUM="yes"
# build and install 'FishBMC' Visualization (yes / no)
# does not work on RPi
KODI_VIS_FISHBMC="yes"
# build and install PulseAudio support (yes / no)
PULSEAUDIO_SUPPORT="no"
# build and install espeak support (yes / no)
ESPEAK_SUPPORT="yes"
# build and install with non-free support
# (RAR compression support in KODI) (yes / no)
KODI_NONFREE_SUPPORT="yes"
# build and install with BluRay support (yes / no)
KODI_BLURAY_SUPPORT="yes"
# build and install with BD+ support
# (BD+ decryption support in KODI) (yes / no)
BLURAY_BDPLUS_SUPPORT="yes"
# build and install with AACS support
# (BD decryption support in KODI) (yes / no)
BLURAY_AACS_SUPPORT="yes"
# build and install with DVDCSS support
# (DVD decryption support in KODI) (yes / no)
KODI_DVDCSS_SUPPORT="yes"
# additional drivers to install:
# for a list of additinoal drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8192EU RTL8188EU RTL8812AU"
# build and install bluetooth support (yes / no)
BLUETOOTH_SUPPORT="yes"
# build and install with KODI webfrontend (yes / no)
KODI_WEBSERVER_SUPPORT="yes"
# build and install Avahi (Zeroconf) daemon (yes / no)
AVAHI_DAEMON="yes"
# build with UPnP support (yes / no)
KODI_UPNP_SUPPORT="yes"
# build with MySQL support (yes / no)
KODI_MYSQL_SUPPORT="yes"
# build xbmc with sshlib support (yes / no)
KODI_SSHLIB_SUPPORT="yes"
# build xbmc with optical drive support (yes / no)
KODI_OPTICAL_SUPPORT="yes"
# KODI Audio encoders for usage with optical drive support
# Space separated list is supported,
# e.g. KODI_AUDIOENCODER_ADDONS="ENCODER1 ENCODER2"
KODI_AUDIOENCODER_ADDONS="flac lame vorbis wav"
# build with AirPlay support (stream videos from iDevices to KODI) (yes / no)
KODI_AIRPLAY_SUPPORT="yes"
# build with AirTunes support (stream music from iDevices to KODI) (yes / no)
KODI_AIRTUNES_SUPPORT="yes"
# build with libnfs support (mounting nfs shares with KODI) (yes / no)
KODI_NFS_SUPPORT="yes"
# build with afpfs-ng support (mounting AFP shares with KODI) (yes / no)
KODI_AFP_SUPPORT="no"
# build with Samba Client support (mounting SAMBA shares with KODI) (yes / no)
KODI_SAMBA_SUPPORT="yes"
# build with NFS support (mounting nfs shares via the OS) (yes / no)
NFS_SUPPORT="yes"
# build with Samba Client support (mounting samba shares via the OS) (yes / no)
SAMBA_SUPPORT="yes"
# build and install Samba Server (yes / no)
SAMBA_SERVER="yes"
# build and install SFTP Server (yes / no)
SFTP_SERVER="yes"
# build and install PPP support (yes / no)
PPTP_SUPPORT="yes"
# build and install OpenVPN support (yes / no)
OPENVPN_SUPPORT="yes"
# build and install diskmounter support (udevil)
# this service provide auto mounting support for external drives in the
# mediacenter also automount internally drives at boottime via udev (yes / no)
UDEVIL="yes"
# build and install exFAT fuse support (yes / no)
EXFAT="yes"
# build and install NTFS-3G fuse support (yes / no)
NTFS3G="yes"
# build and install hfs filesystem utilities (yes / no)
HFSTOOLS="yes"
# Windowmanager to use (ratpoison / fluxbox / none)
WINDOWMANAGER="none"
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
if [ "$TARGET_ARCH" = "i386" ]; then
# TODO: create Legacy build with OpenELEC-4.2
# install legacy drivers to i386 ARCH
GRAPHIC_DRIVERS="r200 r300 r600 i915 i965 nouveau"
elif [ "$TARGET_ARCH" = "x86_64" ]; then
GRAPHIC_DRIVERS="r300 r600 radeonsi i915 i965 nouveau"
fi
# build and install remote support (yes / no)
REMOTE_SUPPORT="no"
# build and install ATV IR remote support (yes / no)
ATVCLIENT_SUPPORT="no"
# build and install IRServer IR/LCD support (yes / no)
IRSERVER_SUPPORT="no"
# build and install Joystick support (yes / no)
JOYSTICK_SUPPORT="yes"
# build and install CEC adapter support (yes / no)
CEC_SUPPORT="yes"
# build and install iSCSI support - iscsistart (yes / no)
ISCSI_SUPPORT="yes"
# LCD driver to Use - Possible drivers are ( Comma seperated:
# bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,dm140,
# ea65,EyeboxOne,g15,glcdlib,glk,hd44780,i2500vfd,
# icp_a106,imon,imonlcd,IOWarrior,irman,irtrans,
# joy,lb216,lcdm001,lcterm,lirc,lis,MD8800,mdm166a,
# ms6931,mtc_s16209x,MtxOrb,mx5000,NoritakeVFD,
# picolcd,pyramid,sed1330,sed1520,serialPOS,
# serialVFD,shuttleVFD,sli,stv5730,SureElec,svga,vlsys_m428
# 'all' compiles all drivers;
# 'all,!xxx,!yyy' de-selects previously selected drivers
# "none" for disable LCD support
LCD_DRIVER="irtrans,imon,imonlcd,mdm166a,MtxOrb,lis,dm140,hd44780,CFontz,SureElec,vlsys_m428,serialVFD,shuttleVFD"
# Support for partitioning and formating disks in initramfs (yes / no)
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
INITRAMFS_PARTED_SUPPORT="no"
# build with swap support (yes / no)
SWAP_SUPPORT="no"
# swap support enabled per default (yes / no)
SWAP_ENABLED_DEFAULT="no"
# swapfile size if SWAP_SUPPORT=yes in MB
SWAPFILESIZE="256"
# build with installer (yes / no)
INSTALLER_SUPPORT="yes"
# Testpackages for development (yes / no)
TESTING="no"
# OEM packages for OEM's (yes / no)
OEM_SUPPORT="yes"
# build and install nano text editor (yes / no)
NANO_EDITOR="yes"
# cron support (yes / no)
CRON_SUPPORT="yes"
# Perf support in development builds (yes / no)
PERF_SUPPORT="yes"
# Distribution Specific source location
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
# Addon Server Url
ADDON_SERVER_URL="http://addons.openelec.tv"
# set the addon dirs
ADDON_PATH="$ADDON_VERSION/$PROJECT/$TARGET_ARCH"
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"
LAKKA_MIRROR="http://sources.lakka.tv"
RA_PLAYLIST_NAMES=""\
"Atari - 2600.lpl;"\
"Atari - 5200.lpl;"\
"Atari - 7800.lpl;"\
"Atari - Jaguar.lpl;"\
"Atari - Lynx.lpl;"\
"Atari - ST.lpl;"\
"Bandai - WonderSwan Color.lpl;"\
"Bandai - WonderSwan.lpl;"\
"Cave Story.lpl;"\
"Coleco - ColecoVision.lpl;"\
"DOOM.lpl;"\
"FB Alpha - Arcade Games.lpl;"\
"GCE - Vectrex.lpl;"\
"Lutro.lpl;"\
"Magnavox - Odyssey2.lpl;"\
"MAME.lpl;"\
"Microsoft - MSX2.lpl;"\
"Microsoft - MSX.lpl;"\
"NEC - PC Engine SuperGrafx.lpl;"\
"NEC - PC Engine - TurboGrafx 16.lpl;"\
"Nintendo - Famicom Disk System.lpl;"\
"Nintendo - Game Boy Advance (e-Cards).lpl;"\
"Nintendo - Game Boy Advance.lpl;"\
"Nintendo - Game Boy Color.lpl;"\
"Nintendo - Game Boy.lpl;"\
"Nintendo - Nintendo 64.lpl;"\
"Nintendo - Nintendo DS Decrypted.lpl;"\
"Nintendo - Nintendo DS (Download Play) (BETA).lpl;"\
"Nintendo - Nintendo DSi Decrypted.lpl;"\
"Nintendo - Nintendo DSi (DLC).lpl;"\
"Nintendo - Nintendo Entertainment System.lpl;"\
"Nintendo - Satellaview.lpl;"\
"Nintendo - Super Nintendo Entertainment System.lpl;"\
"Nintendo - Virtual Boy.lpl;"\
"Quake1.lpl;"\
"ScummVM.lpl;"\
"Sega - 32X.lpl;"\
"Sega - Game Gear.lpl;"\
"Sega - Master System - Mark III.lpl;"\
"Sega - Mega Drive - Genesis.lpl;"\
"Sega - PICO.lpl;"\
"Sega - SG-1000.lpl;"\
"Sinclair - ZX Spectrum +3.lpl;"\
"SNK - Neo Geo Pocket Color.lpl;"\
"SNK - Neo Geo Pocket.lpl;"\
"Sony - PlayStation Portable.lpl;"\
"Sony - PlayStation.lpl"
RA_PLAYLIST_CORES=""\
"/tmp/cores/stella_libretro.so;"\
"DETECT;"\
"/tmp/cores/prosystem_libretro.so;"\
"/tmp/cores/virtualjaguar_libretro.so;"\
"/tmp/cores/handy_libretro.so;"\
"/tmp/cores/hatari_libretro.so;"\
"/tmp/cores/mednafen_wswan_libretro.so;"\
"/tmp/cores/mednafen_wswan_libretro.so;"\
"/tmp/cores/nxengine_libretro.so;"\
"/tmp/cores/bluemsx_libretro.so;"\
"/tmp/cores/prboom_libretro.so;"\
"/tmp/cores/fba_libretro.so;"\
"/tmp/cores/vecx_libretro.so;"\
"/tmp/cores/lutro_libretro.so;"\
"/tmp/cores/o2em_libretro.so;"\
"/tmp/cores/mame_libretro.so;"\
"/tmp/cores/bluemsx_libretro.so;"\
"/tmp/cores/bluemsx_libretro.so;"\
"/tmp/cores/mednafen_supergrafx_libretro.so;"\
"/tmp/cores/mednafen_pce_fast_libretro.so;"\
"/tmp/cores/nestopia_libretro.so;"\
"/tmp/cores/mgba_libretro.so;"\
"/tmp/cores/mgba_libretro.so;"\
"/tmp/cores/gambatte_libretro.so;"\
"/tmp/cores/gambatte_libretro.so;"\
"/tmp/cores/mupen64plus_libretro.so;"\
"/tmp/cores/desmume_libretro.so;"\
"/tmp/cores/desmume_libretro.so;"\
"/tmp/cores/desmume_libretro.so;"\
"/tmp/cores/desmume_libretro.so;"\
"/tmp/cores/nestopia_libretro.so;"\
"/tmp/cores/snes9x_next_libretro.so;"\
"/tmp/cores/snes9x_next_libretro.so;"\
"/tmp/cores/mednafen_vb_libretro.so;"\
"/tmp/cores/tyrquake_libretro.so;"\
"/tmp/cores/scummvm_libretro.so;"\
"/tmp/cores/picodrive_libretro.so;"\
"/tmp/cores/genesis_plus_gx_libretro.so;"\
"/tmp/cores/genesis_plus_gx_libretro.so;"\
"/tmp/cores/genesis_plus_gx_libretro.so;"\
"/tmp/cores/picodrive_libretro.so;"\
"/tmp/cores/genesis_plus_gx_libretro.so;"\
"/tmp/cores/fuse_libretro.so;"\
"/tmp/cores/mednafen_ngp_libretro.so;"\
"/tmp/cores/mednafen_ngp_libretro.so;"\
"/tmp/cores/ppsspp_libretro.so;"\
"/tmp/cores/pcsx_rearmed_libretro.so"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

-224
View File
@@ -1,224 +0,0 @@
# Name of the Distro to build (full name, without special characters)
DISTRONAME="OpenELEC"
# short project description
DESCRIPTION="OpenELEC is a fast and userfriendly Kodi Entertainment Center distribution."
# Welcome Message for e.g. SSH Server (up to 5 Lines)
GREETING0="##############################################"
GREETING1="# OpenELEC - The living room PC for everyone #"
GREETING2="# ...... visit http://www.openelec.tv ...... #"
GREETING3="##############################################"
GREETING4=""
# Root password to integrate in the target system
ROOT_PASSWORD="openelec"
# Mediacenter to use (kodi / no)
MEDIACENTER="kodi"
# Skins to install (Confluence)
# Space separated list is supported,
# e.g. SKINS="Confluence"
SKINS="Confluence"
# Default Skin (Confluence)
SKIN_DEFAULT="Confluence"
# install extra subtitle Fonts for KODI (yes / no)
KODI_EXTRA_FONTS="yes"
# build and install 'RSXS' Screensaver (yes / no)
KODI_SCR_RSXS="yes"
# build and install 'ProjectM' Visualization (yes / no)
KODI_VIS_PROJECTM="yes"
# build and install 'GOOM' Visualization (yes / no)
KODI_VIS_GOOM="yes"
# build and install 'Waveform' Visualization (yes / no)
KODI_VIS_WAVEFORM="yes"
# build and install 'Spectrum' Visualization (yes / no)
KODI_VIS_SPECTRUM="yes"
# build and install 'FishBMC' Visualization (yes / no)
# does not work on RPi
KODI_VIS_FISHBMC="yes"
# build and install espeak support (yes / no)
ESPEAK_SUPPORT="yes"
# build and install with non-free support
# (RAR compression support in KODI) (yes / no)
KODI_NONFREE_SUPPORT="yes"
# build and install with BluRay support (yes / no)
KODI_BLURAY_SUPPORT="yes"
# build and install with BD+ support
# (BD+ decryption support in KODI) (yes / no)
BLURAY_BDPLUS_SUPPORT="yes"
# build and install with AACS support
# (BD decryption support in KODI) (yes / no)
BLURAY_AACS_SUPPORT="yes"
# build and install with DVDCSS support
# (DVD decryption support in KODI) (yes / no)
KODI_DVDCSS_SUPPORT="yes"
# additional drivers to install:
# for a list of additinoal drivers see packages/linux-drivers
# Space separated list is supported,
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8188EU RTL8812AU dvbhdhomerun"
# build and install bluetooth support (yes / no)
BLUETOOTH_SUPPORT="yes"
# build and install with KODI webfrontend (yes / no)
KODI_WEBSERVER_SUPPORT="yes"
# build and install Avahi (Zeroconf) daemon (yes / no)
AVAHI_DAEMON="yes"
# build with UPnP support (yes / no)
KODI_UPNP_SUPPORT="yes"
# build with MySQL support (yes / no)
KODI_MYSQL_SUPPORT="yes"
# build xbmc with sshlib support (yes / no)
KODI_SSHLIB_SUPPORT="yes"
# build xbmc with optical drive support (yes / no)
KODI_OPTICAL_SUPPORT="yes"
# KODI Audio encoders for usage with optical drive support
# Space separated list is supported,
# e.g. KODI_AUDIOENCODER_ADDONS="ENCODER1 ENCODER2"
KODI_AUDIOENCODER_ADDONS="flac lame vorbis wav"
# build with AirPlay support (stream videos from iDevices to KODI) (yes / no)
KODI_AIRPLAY_SUPPORT="yes"
# build with AirTunes support (stream music from iDevices to KODI) (yes / no)
KODI_AIRTUNES_SUPPORT="yes"
# build with libnfs support (mounting nfs shares with KODI) (yes / no)
KODI_NFS_SUPPORT="yes"
# build with Samba Client support (mounting SAMBA shares with KODI) (yes / no)
KODI_SAMBA_SUPPORT="yes"
# build with NFS support (mounting nfs shares via the OS) (yes / no)
NFS_SUPPORT="yes"
# build with Samba Client support (mounting samba shares via the OS) (yes / no)
SAMBA_SUPPORT="yes"
# build and install Samba Server (yes / no)
SAMBA_SERVER="yes"
# build and install SFTP Server (yes / no)
SFTP_SERVER="yes"
# build and install diskmounter support (udevil)
# this service provide auto mounting support for external drives in the
# mediacenter also automount internally drives at boottime via udev (yes / no)
UDEVIL="yes"
# build and install exFAT fuse support (yes / no)
EXFAT="yes"
# build and install NTFS-3G fuse support (yes / no)
NTFS3G="yes"
# build and install hfs filesystem utilities (yes / no)
HFSTOOLS="yes"
# Windowmanager to use (ratpoison / fluxbox / none)
WINDOWMANAGER="fluxbox"
# Xorg Graphic drivers to use (all / i915,i965,r200,r300,r600,nvidia,nouveau)
# Space separated list is supported,
# e.g. GRAPHIC_DRIVERS="i915 i965 r300 r600 radeonsi nvidia nouveau"
if [ "$TARGET_ARCH" = "i386" ]; then
# TODO: create Legacy build with OpenELEC-4.2
# install legacy drivers to i386 ARCH
GRAPHIC_DRIVERS="r200 r300 r600 i915 i965 nvidia-legacy"
elif [ "$TARGET_ARCH" = "x86_64" ]; then
GRAPHIC_DRIVERS="r300 r600 radeonsi i915 i965 nvidia"
fi
# build and install remote support (yes / no)
REMOTE_SUPPORT="yes"
# build and install ATV IR remote support (yes / no)
ATVCLIENT_SUPPORT="yes"
# build and install IRServer IR/LCD support (yes / no)
IRSERVER_SUPPORT="yes"
# build and install Joystick support (yes / no)
JOYSTICK_SUPPORT="yes"
# build and install CEC adapter support (yes / no)
CEC_SUPPORT="yes"
# build and install iSCSI support - iscsistart (yes / no)
ISCSI_SUPPORT="yes"
# LCD driver to Use - Possible drivers are ( Comma seperated:
# bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,dm140,
# ea65,EyeboxOne,g15,glcdlib,glk,hd44780,i2500vfd,
# icp_a106,imon,imonlcd,IOWarrior,irman,irtrans,
# joy,lb216,lcdm001,lcterm,lirc,lis,MD8800,mdm166a,
# ms6931,mtc_s16209x,MtxOrb,mx5000,NoritakeVFD,
# picolcd,pyramid,sed1330,sed1520,serialPOS,
# serialVFD,shuttleVFD,sli,stv5730,SureElec,svga,vlsys_m428
# 'all' compiles all drivers;
# 'all,!xxx,!yyy' de-selects previously selected drivers
# "none" for disable LCD support
LCD_DRIVER="irtrans,imon,imonlcd,mdm166a,MtxOrb,lis,dm140,hd44780,CFontz,SureElec,vlsys_m428,serialVFD,shuttleVFD"
# Support for partitioning and formating disks in initramfs (yes / no)
# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage
INITRAMFS_PARTED_SUPPORT="no"
# build with swap support (yes / no)
SWAP_SUPPORT="no"
# swap support enabled per default (yes / no)
SWAP_ENABLED_DEFAULT="no"
# swapfile size if SWAP_SUPPORT=yes in MB
SWAPFILESIZE="256"
# build with installer (yes / no)
INSTALLER_SUPPORT="yes"
# Testpackages for development (yes / no)
TESTING="no"
# OEM packages for OEM's (yes / no)
OEM_SUPPORT="no"
# build and install nano text editor (yes / no)
NANO_EDITOR="yes"
# cron support (yes / no)
CRON_SUPPORT="yes"
# Distribution Specific source location
DISTRO_MIRROR="http://sources.openelec.tv/mirror"
DISTRO_SRC="http://sources.openelec.tv/$OPENELEC_VERSION"
# Addon Server Url
ADDON_SERVER_URL="http://addons.openelec.tv"
# set the addon dirs
ADDON_PATH="$ADDON_VERSION/$PROJECT/$TARGET_ARCH"
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 KiB

-55
View File
@@ -1,55 +0,0 @@
#!/bin/bash
rm -rf target/
>&2 echo "Generic.x86_64"
DISTRO=Lakka PROJECT=Generic ARCH=x86_64 make image -j9
>&2 echo "Generic.i386"
DISTRO=Lakka PROJECT=Generic ARCH=i386 make image -j9
>&2 echo "Generic.x86_64 UEFI"
DISTRO=Lakka PROJECT=Generic ARCH=x86_64 UEFI="yes" make image -j9
>&2 echo "Generic.i386 UEFI"
DISTRO=Lakka PROJECT=Generic ARCH=i386 UEFI="yes" make image -j9
>&2 echo "RPi.arm"
DISTRO=Lakka PROJECT=RPi ARCH=arm make image -j9
>&2 echo "RPi.arm noobs"
DISTRO=Lakka PROJECT=RPi ARCH=arm make noobs -j9
>&2 echo "RPi2.arm"
DISTRO=Lakka PROJECT=RPi2 ARCH=arm make image -j9
>&2 echo "RPi2.arm noobs"
DISTRO=Lakka PROJECT=RPi2 ARCH=arm make noobs -j9
>&2 echo "imx6.cuboxi.arm"
DISTRO=Lakka PROJECT=imx6 SYSTEM=cuboxi ARCH=arm make image -j9
>&2 echo "imx6.udoo.arm"
DISTRO=Lakka PROJECT=imx6 SYSTEM=udoo ARCH=arm scripts/clean retroarch
DISTRO=Lakka PROJECT=imx6 SYSTEM=udoo ARCH=arm make image -j9
>&2 echo "a20.arm"
DISTRO=Lakka PROJECT=a20 ARCH=arm make image -j9
>&2 echo "a10.arm"
DISTRO=Lakka PROJECT=a10 ARCH=arm make image -j9
>&2 echo "Bananapi.arm"
DISTRO=Lakka PROJECT=Bananapi ARCH=arm make image -j9
>&2 echo "OdroidC1.arm"
DISTRO=Lakka PROJECT=OdroidC1 ARCH=arm make image -j9
>&2 echo "OdroidXU3.arm"
DISTRO=Lakka PROJECT=OdroidXU3 ARCH=arm make image -j9
>&2 echo "WeTek_Play.arm"
DISTRO=Lakka PROJECT=WeTek_Play ARCH=arm make image -j9
>&2 echo "WeTek_Core.arm"
DISTRO=Lakka PROJECT=WeTek_Core ARCH=arm make image -j9
rm target/*.kernel
rm target/*.system
for f in target/*; do
md5sum $f > $f.md5
sha256sum $f > $f.sha256
done
for f in target/*; do
dir=`echo $f | sed -e 's/target\/Lakka-\(.*\)-devel-\(.*\)/\1/'`
mkdir -p target/$dir
mv $f target/$dir/
done
#scp -r target/* [email protected]:sources/nightly/
+34
View File
@@ -0,0 +1,34 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
ac_cv_lib_z_zlibVersion=yes \
./configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--sysconfdir=/etc \
--disable-static \
--enable-shared
make
+35
View File
@@ -0,0 +1,35 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="libpng"
PKG_VERSION="1.2.50"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://www.libpng.org/"
PKG_URL="$SOURCEFORGE_SRC/libpng/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS="zlib"
PKG_BUILD_DEPENDS="toolchain zlib"
PKG_PRIORITY="optional"
PKG_SECTION="graphics"
PKG_SHORTDESC="libpng: Portable Network Graphics (PNG) Reference Library - old 1.2 version"
PKG_LONGDESC="PNG (Portable Network Graphics) is an extensible file format for the lossless, portable, well-compressed storage of raster images. PNG provides a patent-free replacement for GIF and can also replace many common uses of TIFF. Indexed-color, grayscale, and truecolor images are supported, plus an optional alpha channel. Sample depths range from 1 to 16 bits. Old 1.2 version."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
+27
View File
@@ -0,0 +1,27 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
TGZ_PKG="`echo $PKG_URL | sed 's%.*/\(.*\)$%\1%'`"
tar xJf $SOURCES/$1/$TGZ_PKG -C $BUILD >/dev/null 2>&1
+62
View File
@@ -0,0 +1,62 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
cd $PKG_BUILD
setup_toolchain host
mkdir -p .build-host && cd .build-host
../configure --host=$HOST_NAME \
--build=$HOST_NAME \
--prefix=$ROOT/$TOOLCHAIN \
--disable-static \
--enable-shared \
--disable-demos \
--with-atomictype=pthread \
--disable-unittest
make
make install
cd ..
setup_toolchain target
CFLAGS="$CFLAGS -fPIC"
CXXFLAGS="$CXXFLAGS -fPIC"
LDFLAGS="$LDFLAGS -fPIC"
mkdir -p .build-target && cd .build-target
../configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--sysconfdir=/etc \
--enable-static \
--disable-shared \
--disable-demos \
--with-atomictype=pthread \
--disable-unittest
$MAKEINSTALL
+36
View File
@@ -0,0 +1,36 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue ([email protected])
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="cxxtools"
PKG_VERSION="2.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL-2"
PKG_SITE="http://www.tntnet.org/cxxtools.html"
PKG_URL="http://www.tntnet.org/download/${PKG_NAME}-${PKG_VERSION}.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="python/web"
PKG_SHORTDESC="cxxtools: a collection of general-purpose C++ classes"
PKG_LONGDESC="Cxxtools is a collection of general-purpose C++ classes"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
-53
View File
@@ -1,53 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue ([email protected])
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="cxxtools"
PKG_VERSION="2.2.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL-2"
PKG_SITE="http://www.tntnet.org/cxxtools.html"
PKG_URL="http://www.tntnet.org/download/${PKG_NAME}-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_HOST=""
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="python/web"
PKG_SHORTDESC="cxxtools: a collection of general-purpose C++ classes"
PKG_LONGDESC="Cxxtools is a collection of general-purpose C++ classes"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
PKG_CONFIGURE_OPTS_HOST="--disable-demos --with-atomictype=pthread --disable-unittest"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared --disable-demos --with-atomictype=pthread --disable-unittest"
pre_configure_target() {
CFLAGS="$CFLAGS -fPIC"
CXXFLAGS="$CXXFLAGS -fPIC"
LDFLAGS="$LDFLAGS -fPIC"
}
post_makeinstall_host() {
rm -rf $TOOLCHAIN/bin/cxxtools-config
}
post_makeinstall_target() {
rm -rf $SYSROOT_PREFIX/usr/bin/cxxtools-config
rm -rf $INSTALL/usr/bin
}
@@ -1,28 +0,0 @@
diff -Naur cxxtools-2.2/configure cxxtools-2.2.patch/configure
--- cxxtools-2.2/configure 2013-04-21 21:13:11.000000000 +0200
+++ cxxtools-2.2.patch/configure 2014-01-03 20:34:53.404660480 +0100
@@ -17316,8 +17316,8 @@
-CXXTOOLS_CXXFLAGS='-I${includedir}'
-CXXTOOLS_LDFLAGS='-L${libdir} -lcxxtools'
+CXXTOOLS_CXXFLAGS=''
+CXXTOOLS_LDFLAGS='-lcxxtools'
diff -Naur cxxtools-2.2/configure.in cxxtools-2.2.patch/configure.in
--- cxxtools-2.2/configure.in 2013-04-20 23:31:50.000000000 +0200
+++ cxxtools-2.2.patch/configure.in 2014-01-03 20:26:32.064005192 +0100
@@ -106,8 +106,8 @@
AC_PROG_LIBTOOL
-CXXTOOLS_CXXFLAGS='-I${includedir}'
-CXXTOOLS_LDFLAGS='-L${libdir} -lcxxtools'
+CXXTOOLS_CXXFLAGS=''
+CXXTOOLS_LDFLAGS='-lcxxtools'
AC_SUBST(CXXTOOLS_CXXFLAGS)
AC_SUBST(CXXTOOLS_LDFLAGS)
Loaded 100 of 3222 files, more files were not shown because too many files have changed in this diff. Show more