Compare commits

..
1 Commits
Author SHA1 Message Date
Stephan Raue 0723c05d13 github generated gh-pages branch 2011-04-27 19:34:10 -07:00
2264 changed files with 77 additions and 782842 deletions

No files matched your search

-30
View File
@@ -1,30 +0,0 @@
# build directorys
/build.*/
/.fakeroot.*
# automatically downloaded source files
/sources/
/.stamps/
# prebuild target binarys to provide
/target/
# scripts for getting and packing source packages
/tools/mkpkg/*
!/tools/mkpkg/mkpkg_*
# mkpkg temp
mkpkg-temp
# private working directory
/.work/
# symlinks...
/sources
/.work
# backup files
*.orig
# crap
.DS_Store
-3
View File
@@ -1,3 +0,0 @@
[submodule "packages/unofficial"]
path = packages/unofficial
url = https://github.com/OpenELEC/unofficial-addons.git
-13
View File
@@ -1,13 +0,0 @@
Lakka CHANGELOG
===============
To view recent changes/commits to the project (master branch) please visit:
https://github.com/lakkatv/Lakka/commits/master
To compare commits between versions use a formatted URL like:
https://github.com/lakkatv/Lakka/compare/3.2.3...3.2.4
If you have questions on differences between releases please ask them in the
IRC support channel.
-111
View File
@@ -1,111 +0,0 @@
### Questions about OpenELEC?
To get your questions answered, please ask in the OpenELEC [Forum], on IRC:
\#openelec on freenode.net, or [webchat].
Do not open an issue.
### Issue Reports
**BEFORE you report a bug make sure you got the latest testing version of
OpenELEC. Your bug might be already fixed.**
If you are at all unsure whether it's a bug in OpenELEC or a problem with
something else, post in the OpenELEC [Forum] instead. If it turns out that it is
a bug, an issue can always be opened later.
If you are sure that it's a bug in OpenELEC and you have not found a [similar issue], open a new [issue]
and try to answer the following questions:
- What did you do?
- What did you expect to happen?
- What happened instead?
**It is also importent to provide logs for debugging.
A zip file can be found in the [logfiles] samba share, this will contain all the logs needed.**
Make sure to specify which version of OpenELEC you are using.
- OpenELEC version
- OpenELEC build
- OpenELEC arch
Please don't paste log messages in the issue reports or issue comments - use
[sprunge.us](http://sprunge.us) instead.
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.
- **One pull request per feature**. If you want to do more than one thing, send
multiple pull requests.
- **Send coherent history**. Make sure each individual commit in your pull
request is meaningful. If you had to make multiple intermediate commits while
developing, please squash them before sending them to us.
Please follow this process; it's the best way to get your work included in the project:
- [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork,
and configure the remotes:
```bash
# clone your fork of the repo into the current directory in terminal
git clone [email protected]:<your username>/OpenELEC.tv.git
# navigate to the newly cloned directory
cd OpenELEC.tv
# assign the original repo to a remote called "upstream"
git remote add upstream https://github.com/OpenELEC/OpenELEC.tv.git
```
- If you cloned a while ago, get the latest changes from upstream:
```bash
# fetch upstream changes
git fetch upstream
# make sure you are on your 'master' branch
git checkout master
# merge upstream changes
git merge upstream/master
```
- Create a new topic branch to contain your feature, change, or fix:
```bash
git checkout -b <topic-branch-name>
```
- Commit your changes in logical chunks. or your pull request is unlikely
be merged into the main project. Use git's
[interactive rebase](https://help.github.com/articles/interactive-rebase)
feature to tidy up your commits before making them public.
- Push your topic branch up to your fork:
```bash
git push origin <topic-branch-name>
```
- [Open a Pull Request](https://help.github.com/articles/using-pull-requests) with a
clear title and description.
[Forum]: http://openelec.tv/forum
[issue]: https://github.com/OpenELEC/OpenELEC.tv/issues
[webchat]: http://openelec.tv/support/chat
[logfiles]: http://wiki.openelec.tv/index.php?title=OpenELEC_FAQ#Support_Logs
[similar issue]: https://github.com/OpenELEC/OpenELEC.tv/search?&ref=cmdform&type=Issues
-24
View File
@@ -1,24 +0,0 @@
BUILD_DIRS=build.*
all: release
system:
./scripts/image
release:
./scripts/image release
image:
./scripts/image mkimage
image-efi:
./scripts/image mkimage efi
noobs:
./scripts/image noobs
clean:
rm -rf $(BUILD_DIRS)/* $(BUILD_DIRS)/.stamps
src-pkg:
tar cvjf sources.tar.bz2 sources .stamps
-19
View File
@@ -1,19 +0,0 @@
# Lakka - The DIY retro emulation console
Lakka is a lightweight Linux distribution that transforms a small computer into a full blown emulation console.
* **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.
## Installation instructions
Please refer to our website http://www.lakka.tv/get on how to setup Lakka.
## Support
* [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
-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"
-54
View File
@@ -1,54 +0,0 @@
# determines TARGET_CPU, if not forced by user
if [ -z "$TARGET_CPU" ]; then
TARGET_CPU=cortex-a8
fi
# TARGET_CPU:
# arm2 arm250 arm3 arm6 arm60 arm600 arm610 arm620 arm7 arm7m arm7d
# arm7dm arm7di arm7dmi arm70 arm700 arm700i arm710 arm710c
# arm7100 arm720 arm7500 arm7500fe arm7tdmi arm7tdmi-s arm710t
# arm720t arm740t strongarm strongarm110 strongarm1100
# strongarm1110 arm8 arm810 arm9 arm9e arm920 arm920t arm922t
# arm946e-s arm966e-s arm968e-s arm926ej-s arm940t arm9tdmi
# arm10tdmi arm1020t arm1026ej-s arm10e arm1020e arm1022e
# arm1136j-s arm1136jf-s mpcore mpcorenovfp arm1156t2-s
# arm1176jz-s arm1176jzf-s cortex-a8 cortex-a9 cortex-r4
# cortex-r4f cortex-m3 cortex-m1 xscale iwmmxt iwmmxt2 ep9312.
# TARGET_FPU:
# This specifies what floating point hardware (or hardware emulation) is
# available on the target. Permissible names are:
# fpa fpe2 fpe3 maverick vfp vfpv3 vfpv3-fp16 vfpv3-d16 vfpv3-d16-fp16
# vfpv3xd vfpv3xd-fp16 neon neon-fp16 vfpv4 vfpv4-d16 fpv4-sp-d16
# neon-vfpv4.
# determine architecture's family
case $TARGET_CPU in
arm1176jzf-s)
TARGET_SUBARCH=armv6zk
TARGET_ABI=eabi
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU"
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
SIMD_SUPPORT="no"
;;
cortex-a7|cortex-a15|cortex-a15.cortex-a7)
TARGET_SUBARCH=armv7ve
TARGET_ABI=eabi
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU"
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
SIMD_SUPPORT="yes"
;;
cortex-a5|cortex-a8|cortex-a9)
TARGET_SUBARCH=armv7-a
TARGET_ABI=eabi
TARGET_EXTRA_FLAGS="-mcpu=$TARGET_CPU"
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"
[ -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"
-14
View File
@@ -1,14 +0,0 @@
# determines TARGET_CPU, if not forced by user
if [ -z "$TARGET_CPU" ]; then
TARGET_CPU=i686
fi
# determine architecture's family
TARGET_SUBARCH=i686
# setup ARCH specific *FLAGS
TARGET_CFLAGS="-march=$TARGET_CPU -m32"
TARGET_LDFLAGS="-march=$TARGET_CPU -m32"
# build with SIMD support ( yes / no )
SIMD_SUPPORT="yes"
-14
View File
@@ -1,14 +0,0 @@
# determines TARGET_CPU, if not forced by user
if [ -z "$TARGET_CPU" ]; then
TARGET_CPU=core2
fi
# determine architecture's family
TARGET_SUBARCH=x86_64
# setup ARCH specific *FLAGS
TARGET_CFLAGS="-march=$TARGET_CPU -m64"
TARGET_LDFLAGS="-march=$TARGET_CPU -m64"
# build with SIMD support ( yes / no )
SIMD_SUPPORT="yes"
-441
View File
@@ -1,441 +0,0 @@
setup_toolchain() {
if [ "$1" = target ]; then
export DESTIMAGE="target"
unset CPP
export CC=$TARGET_CC
export CXX=$TARGET_CXX
export LD=$TARGET_LD
export AS=$TARGET_AS
export AR=$TARGET_AR
export NM=$TARGET_NM
export RANLIB=$TARGET_RANLIB
export OBJCOPY=$TARGET_OBJCOPY
export OBJDUMP=$TARGET_OBJDUMP
export STRIP=$TARGET_STRIP
export CPPFLAGS="$TARGET_CPPFLAGS"
export CFLAGS="$TARGET_CFLAGS"
export CXXFLAGS="$TARGET_CXXFLAGS"
export LDFLAGS="$TARGET_LDFLAGS"
export PKG_CONFIG_PATH="$TARGET_PKG_CONFIG_PATH"
export PKG_CONFIG_LIBDIR="$TARGET_PKG_CONFIG_LIBDIR"
export PKG_CONFIG_SYSROOT_DIR="$TARGET_PKG_CONFIG_SYSROOT_DIR"
# set CMAKE configfile for target
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$TARGET_NAME.conf
elif [ "$1" = host ]; then
export DESTIMAGE="host"
unset CPP
export AWK=$HOST_AWK
export CC=$HOST_CC
export CXX=$HOST_CXX
export LD=$HOST_LD
export AS=$HOST_AS
export AR=$HOST_AR
export NM=$HOST_NM
export RANLIB=$HOST_RANLIB
export OBJCOPY=$HOST_OBJCOPY
export STRIP=$HOST_STRIP
export CPPFLAGS="$HOST_CPPFLAGS"
export CFLAGS="$HOST_CFLAGS"
export CXXFLAGS="$HOST_CXXFLAGS"
export LDFLAGS="$HOST_LDFLAGS"
export PKG_CONFIG_PATH="$HOST_PKG_CONFIG_PATH"
export PKG_CONFIG_LIBDIR="$HOST_PKG_CONFIG_LIBDIR"
export PKG_CONFIG_SYSROOT_DIR="$HOST_PKG_CONFIG_SYSROOT_DIR"
# set CMAKE configfile for host
export CMAKE_CONF=$ROOT/$TOOLCHAIN/etc/cmake-$HOST_NAME.conf
fi
}
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
}
tolower(){
echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
}
require_eglibc() {
if [ "$TARGET_LIBC" != eglibc ]; then
echo "$1 requires eglibc, aborting."
exit 1
fi
}
require_cxx() {
if [ "$TOOLCHAIN_CXX" != yes ]; then
echo "$1 requires C++ toolchain support, aborting."
exit 1
fi
}
add_user() {
# Usage: add_user "username" "password" "userid" "groupid" "description" "home" "shell"
mkdir -p ${INSTALL}/etc
touch ${INSTALL}/etc/passwd
if [ -z "`grep "$1:" ${INSTALL}/etc/passwd`" ]; then
echo "$1:x:$3:$4:$5:$6:$7" >> ${INSTALL}/etc/passwd
fi
touch ${INSTALL}/etc/shadow
PASSWORD="$2"
if [ "$PASSWORD" = "x" ]; then
PASSWORD="*"
fi
if [ -z "`grep "$1:" ${INSTALL}/etc/shadow`" ]; then
echo "$1:$PASSWORD:::::::" >> ${INSTALL}/etc/shadow
fi
}
add_group() {
# Usage: add_group "groupname" "groupid" ("members")
mkdir -p ${INSTALL}/etc
touch ${INSTALL}/etc/group
if [ -z "`grep "$1:" ${INSTALL}/etc/group`" ]; then
echo "$1:x:$2:$3" >> ${INSTALL}/etc/group
fi
}
do_autoreconf() {
export ACLOCAL_DIR=$SYSROOT_PREFIX/usr/share/aclocal
if [ -e "$ROOT/$TOOLCHAIN/bin/autoconf" ]; then
export AUTOCONF=$ROOT/$TOOLCHAIN/bin/autoconf
fi
if [ -e "$ROOT/$TOOLCHAIN/bin/automake" ]; then
export AUTOMAKE=$ROOT/$TOOLCHAIN/bin/automake
fi
if [ -e "$ROOT/$TOOLCHAIN/bin/autopoint" ]; then
export AUTOPOINT=$ROOT/$TOOLCHAIN/bin/autopoint
fi
if [ -e "$ROOT/$TOOLCHAIN/bin/libtoolize" ]; then
export LIBTOOLIZE=$ROOT/$TOOLCHAIN/bin/libtoolize
fi
if [ -e "$ROOT/$TOOLCHAIN/bin/intltoolize" ]; then
export INTLTOOLIZE=$ROOT/$TOOLCHAIN/bin/intltoolize
fi
if [ -e "$ROOT/$TOOLCHAIN/bin/aclocal" ]; then
export ACLOCAL="$ROOT/$TOOLCHAIN/bin/aclocal -I $ACLOCAL_DIR"
fi
if [ -e "$ROOT/$TOOLCHAIN/bin/autoheader" ]; then
export AUTOHEADER=$ROOT/$TOOLCHAIN/bin/autoheader
fi
if [ -e "$ROOT/$TOOLCHAIN/bin/libtool" ]; then
export LIBTOOL=$ROOT/$TOOLCHAIN/bin/libtool
fi
if [ -e "$ROOT/$TOOLCHAIN/bin/autoreconf" -a -e "$INTLTOOLIZE" ]; then
mkdir -p $ACLOCAL_DIR
export AUTORECONF="$ROOT/$TOOLCHAIN/bin/autoreconf --verbose --force --install -I $ACLOCAL_DIR"
$AUTORECONF $@
fi
}
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
}
strip_gold() {
# strip out usage from GOLD linker
LDFLAGS=`echo $LDFLAGS | sed -e "s|-fuse-ld=gold||g"`
}
fix_module_depends() {
# modify .modinfo section in kernel module to depends on other required modules
local MODULE="$1"
local DEPENDS="$2"
local OLD_DEPENDS=""
cp ${MODULE} ${MODULE}_orig
$OBJDUMP -s -j .modinfo ${MODULE}_orig | awk 'BEGIN{v=0;} /Contents/ {v=1; next;} {if (v==1) print $0;}' >new.modinfo1
cat new.modinfo1 | cut -c7-41 | awk '{printf($0);}' | sed 's/ //g;s/../\\\x&/g;' >new.modinfo2
/bin/echo -ne `cat new.modinfo2` | tr '\000' '\n' >new.modinfo3
cat new.modinfo3 | awk '/^depends=/ {next;} {print $0;}' | tr '\n' '\000' >new.modinfo
OLD_DEPENDS=$(awk '{FS="="} /depends=/ {print $2}' new.modinfo3)
[ -n "$OLD_DEPENDS" ] && DEPENDS="$OLD_DEPENDS,$DEPENDS"
/bin/echo -ne "depends=$DEPENDS\0" >>new.modinfo
$OBJCOPY --remove-section=.modinfo --add-section=.modinfo=new.modinfo --set-section-flags .modinfo=contents,alloc,load,readonly,data ${MODULE}_orig ${MODULE}
rm new.modinfo*
}
# Usage: enable_service <unit> [target]
enable_service () {
local unit="$1"
local unit_dir="/usr/lib/systemd/system"
local target="$2"
local target_dir=$INSTALL
[ -f "$target_dir/$unit_dir/$unit" ] || exit 1
[ -z "$target" ] && target=`grep '^WantedBy' $target_dir/$unit_dir/$unit | cut -f2 -d=`
if [ -n "$target" ]; then
mkdir -p ${target_dir}/$unit_dir/${target}.wants
ln -sf ../${unit} ${target_dir}/$unit_dir/${target}.wants/
fi
}
check_path() {
dashes="==========================="
if [ "${PWD##/usr}" != "${PWD}" ]; then
check_pathmessage="$check_pathmessage\n $dashes$dashes$dashes"
check_pathmessage="$check_pathmessage\n ERROR: You try to build inside /usr"
check_pathmessage="$check_pathmessage\n $dashes$dashes$dashes"
check_pathmessage="$check_pathmessage\n This is not supported with our buildsystem."
check_pathmessage="$check_pathmessage\n Please use another dir (for example your \$HOME) to build $DISTRONAME"
echo -e $check_pathmessage
exit 1
fi
}
check_config() {
dashes="==========================="
if [ ! -d $PROJECT_DIR/$PROJECT ]; then
check_project="$check_project\n $dashes$dashes$dashes"
check_project="$check_project\n ERROR: Project not found, use a valid project or create a new config"
check_project="$check_project\n $dashes$dashes$dashes"
check_project="$check_project\n\n Valid projects:"
for projects in $PROJECT_DIR/*; do
check_project="$check_project\n - $(basename $projects)"
done
echo -e $check_project
exit 1
fi
if [ ! -f $PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf ]; then
check_arch="$check_arch\n $dashes$dashes$dashes"
check_arch="$check_arch\n ERROR: Architecture not found, use a valid Architecture"
check_arch="$check_arch\n for your project or create a new config"
check_arch="$check_arch\n $dashes$dashes$dashes"
check_arch="$check_arch\n\n Valid Architectures for your project: $PROJECT"
for arch in $PROJECT_DIR/$PROJECT/linux/*.conf; do
check_arch="$check_arch\n - $(basename $arch | cut -f2 -d".")"
done
echo -e $check_arch
exit 1
fi
}
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"))"
config_message="$config_message\n $dashes$dashes$dashes"
# Build options
config_message="$config_message\n\n Buildoptions:"
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - CPU (ARCH):\t\t\t\t $TARGET_CPU ($TARGET_ARCH)"
config_message="$config_message\n - FLOAT:\t\t\t\t $TARGET_FLOAT"
config_message="$config_message\n - FPU:\t\t\t\t\t $TARGET_FPU"
config_message="$config_message\n - SIMD support:\t\t\t $SIMD_SUPPORT"
config_message="$config_message\n - Optimizations:\t\t\t $OPTIMIZATIONS"
config_message="$config_message\n - LTO (Link Time Optimization) support: $LTO_SUPPORT"
config_message="$config_message\n - GOLD (Google Linker) Support:\t $GOLD_SUPPORT"
config_message="$config_message\n - LLVM support:\t\t\t $LLVM_SUPPORT"
# config_message="$config_message\n - CFLAGS:\t $TARGET_CFLAGS"
# config_message="$config_message\n - LDFLAGS:\t $TARGET_LDFLAGS"
# Graphic configuration
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 - 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"
# 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"
# Input device configuration
config_message="$config_message\n\n Input device configuration:"
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - Remote support:\t\t\t $REMOTE_SUPPORT"
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"
# Misc. hardware configuration
config_message="$config_message\n\n Misc. hardware configuration:"
config_message="$config_message\n $dashes$dashes"
config_message="$config_message\n - ALSA support:\t\t\t $ALSA_SUPPORT"
config_message="$config_message\n - Bluetooth support:\t\t\t $BLUETOOTH_SUPPORT"
config_message="$config_message\n - LCD drivers:\t\t\t\t $LCD_DRIVER"
for config_driver in $ADDITIONAL_DRIVERS; do
config_message="$config_message\n - Include driver:\t\t\t $config_driver"
done
for config_firmware in $FIRMWARE; do
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"
# OS configuration
config_message="$config_message\n\n OS configuration:"
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 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
config_message="$config_message\n - UDevil support:\t\t\t $UDEVIL"
config_message="$config_message\n - Installer support:\t\t\t $INSTALLER_SUPPORT"
# Misc. Filesystems
config_message="$config_message\n\n Misc. Filesystems:"
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
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
config_message="$config_message\n\n Kodi 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"
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"
config_message="$config_message\n $dashes$dashes$dashes"
config_message="$config_message\n End Configuration for $DISTRONAME"
config_message="$config_message\n $dashes$dashes$dashes"
config_message="$config_message\n\n\n"
echo -e "$config_message"
}
-100
View File
@@ -1,100 +0,0 @@
if [ "$DISPLAYSERVER" = "x11" ]; then
SDL_SUPPORT="yes"
else
SDL_SUPPORT="no"
fi
if [ "$OPENGL" = no ]; then
OPENGL_SUPPORT="no"
else
OPENGL_SUPPORT="yes"
fi
if [ "$OPENGLES" = no ]; then
OPENGLES_SUPPORT="no"
else
OPENGLES_SUPPORT="yes"
fi
if [ "$SDL_SUPPORT" = no ]; then
JOYSTICK_SUPPORT="no"
fi
if [ "$OPENGL_SUPPORT" = no ]; then
KODI_SCR_RSXS="no"
KODI_VIS_PROJECTM="no"
KODI_VIS_GOOM="no"
fi
get_graphicdrivers() {
if [ "$GRAPHIC_DRIVERS" = "all" ]; then
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 nvidia"
fi
for drv in $GRAPHIC_DRIVERS; do
if [ "$drv" = "i915" ]; then
DRI_DRIVERS="$DRI_DRIVERS,i915"
XORG_DRIVERS="$XORG_DRIVERS intel"
COMPOSITE_SUPPORT="yes"
VAAPI_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/
GALLIUM_DRIVERS="$GALLIUM_DRIVERS,nouveau"
XORG_DRIVERS="$XORG_DRIVERS nouveau"
COMPOSITE_SUPPORT="yes"
fi
if [ "$drv" = "nvidia" ]; then
XORG_DRIVERS="$XORG_DRIVERS nvidia"
VDPAU_SUPPORT="yes"
fi
if [ "$drv" = "nvidia-legacy" ]; then
XORG_DRIVERS="$XORG_DRIVERS nvidia-legacy"
VDPAU_SUPPORT="yes"
fi
if [ "$drv" = "r200" ]; then
DRI_DRIVERS="$DRI_DRIVERS,r200"
XORG_DRIVERS="$XORG_DRIVERS ati"
COMPOSITE_SUPPORT="yes"
fi
if [ "$drv" = "r300" ]; then
GALLIUM_DRIVERS="$GALLIUM_DRIVERS,r300"
XORG_DRIVERS="$XORG_DRIVERS ati"
LLVM_SUPPORT="yes"
COMPOSITE_SUPPORT="yes"
VDPAU_SUPPORT="yes"
fi
if [ "$drv" = "r600" ]; then
GALLIUM_DRIVERS="$GALLIUM_DRIVERS,r600"
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"
fi
done
}
-1
View File
@@ -1 +0,0 @@
Lakka - The DIY retro emulation console
-10
View File
@@ -1,10 +0,0 @@
{
"name": "@DISTRONAME@_@PROJECT@",
"version": "@OPENELEC_VERSION@",
"release_date": "@RELEASE_DATE@",
"kernel": "@KERNEL_VERSION@",
"description": "@DESCRIPTION@",
"username": "root",
"password": "@ROOT_PASSWORD@",
"supported_hex_revisions": "@NOOBS_HEX@"
}
-69
View File
@@ -1,69 +0,0 @@
#!/bin/sh -x
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2013 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
################################################################################
MOUNTPOINT="/tmp/OpenELEC-System"
md5sumCheck() {
( cd $MOUNTPOINT
echo "checking MD5: $1"
md5sum -c $1.md5
if [ "$?" = "1" ]; then
echo "######################################################"
echo "# #"
echo "# OpenELEC failed md5 check - Installation will quit #"
echo "# #"
echo "# Your original download was probably corrupt. #"
echo "# Please visit www.openelec.tv and get another copy #"
echo "# #"
echo "######################################################"
exit 1
fi
rm -rf $1.md5
)
}
if [ -z $part1 -o -z $part2 -o -z $id1 -o -z $id2]; then
echo "error: part1, part2, id1 or id2 not specified"
echo "actual values:"
echo "part1:" $part1
echo "part2:" $part2
echo "id1 :" $id1
echo "id2 :" $id2
exit 1
fi
# create mountpoint
mkdir -p $MOUNTPOINT
# mount needed partition
mount $part1 $MOUNTPOINT
# check md5sum
md5sumCheck kernel.img
md5sumCheck SYSTEM
# create bootloader configuration
echo "creating bootloader configuration..."
echo "boot=$id1 disk=$id2 quiet" > $MOUNTPOINT/cmdline.txt
# cleanup mountpoint
umount $MOUNTPOINT
rmdir $MOUNTPOINT
-20
View File
@@ -1,20 +0,0 @@
{
"partitions": [
{
"label": "@DISTRONAME@_@PROJECT@_System",
"filesystem_type": "FAT",
"partition_size_nominal": 200,
"want_maximised": false,
"uncompressed_tarball_size": 170,
"mkfs_options": ""
},
{
"label": "@DISTRONAME@_@PROJECT@_Storage",
"filesystem_type": "ext4",
"partition_size_nominal": 864,
"want_maximised": true,
"uncompressed_tarball_size": 10,
"mkfs_options": ""
}
]
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 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,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"
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,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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="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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

-80
View File
@@ -1,80 +0,0 @@
if [ "$OPTIMIZATIONS" = normal ];then
GCC_OPTIM="-O2"
LD_OPTIM=""
fi
if [ "$OPTIMIZATIONS" = size ];then
GCC_OPTIM="-Os -fexcess-precision=fast"
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"
fi
if [ "$GOLD_SUPPORT" = yes ];then
LD_OPTIM_GOLD="-fuse-ld=gold"
fi
if [ "$DEBUG" = yes ]; then
TARGET_CFLAGS="$TARGET_CFLAGS -ggdb"
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb"
TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb"
else
TARGET_CFLAGS="$TARGET_CFLAGS -fomit-frame-pointer"
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fomit-frame-pointer"
TARGET_LDFLAGS="$TARGET_LDFLAGS -s"
fi
TARGET_CPPFLAGS=
TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $GCC_OPTIM_LTO $PROJECT_CFLAGS"
TARGET_CXXFLAGS="$TARGET_CFLAGS"
TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM $LD_OPTIM_GOLD $LD_OPTIM_LTO"
TARGET_LIBDIR="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib"
TARGET_INCDIR="$SYSROOT_PREFIX/include $SYSROOT_PREFIX/usr/include"
HOST_CPPFLAGS=""
HOST_CFLAGS="-O2 -Wall -pipe -I$ROOT/$TOOLCHAIN/include"
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),")
if [ -d /lib/$FAMILY_TRIPLET ]; then
HOST_LIBDIR="$HOST_LIBDIR /lib/$FAMILY_TRIPLET"
fi
if [ -d /usr/lib/$FAMILY_TRIPLET ]; then
HOST_LIBDIR="$HOST_LIBDIR /usr/lib/$FAMILY_TRIPLET"
fi
# default multiarch support
case "`uname -m`" in
i*86)
if [ -d /lib32 ]; then
HOST_LIBDIR="$HOST_LIBDIR /lib32"
fi
if [ -d /usr/lib32 ]; then
HOST_LIBDIR="$HOST_LIBDIR /usr/lib32"
fi
;;
x86_64)
if [ -d /lib64 ]; then
HOST_LIBDIR="$HOST_LIBDIR /lib64"
fi
if [ -d /usr/lib64 ]; then
HOST_LIBDIR="$HOST_LIBDIR /usr/lib64"
fi
;;
esac
# default dirs
HOST_LIBDIR="$HOST_LIBDIR /lib /usr/lib"
HOST_INCDIR="$ROOT/$TOOLCHAIN/include /usr/include"
-101
View File
@@ -1,101 +0,0 @@
# 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
PROJECT="Generic"
else
PROJECT="$PROJECT"
fi
# determines TARGET_ARCH, if not forced by user (i386 / x86_64 / arm)
# default is i386
if [ -z "$ARCH" ]; then
TARGET_ARCH="i386"
else
TARGET_ARCH="$ARCH"
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
# 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`
# Need to point to your actual g++
# If you have ccache installed, take care that LOCAL_CXX don't point to it
LOCAL_CXX=`which g++`
# Support C++ in toolchain
TOOLCHAIN_CXX="yes"
# verbose compilation mode (yes/no)
VERBOSE="yes"
# 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
# cache size for ccache
# Set the maximum size of the files stored in the cache. You can specify a
# value in gigabytes, megabytes or kilobytes by appending a G, M or K to the
# value. The default is gigabytes. The actual value stored is rounded down to
# the nearest multiple of 16 kilobytes.
CCACHE_CACHE_SIZE="30G"
# forcing install of all packages (yes/no)
FORCE_INSTALL="no"
# install devtools on development builds
if [ "$OPENELEC_VERSION" = "devel" ]; then
DEVTOOLS=yes
fi
# read options from $HOME if available
if [ -f "$HOME/.openelec/options" ]; then
. $HOME/.openelec/options
fi
if [ -f "$HOME/.openelec/$PROJECT/options" ]; then
. $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
-227
View File
@@ -1,227 +0,0 @@
set -e
. config/functions
# setup initial directorys (relative to root)
CONFIG=config
SCRIPTS=scripts
PACKAGES=packages
SOURCES=sources
BUILD_BASE=build
TARGET=target
ADDONS=addons
# include ARCH specific options
if [ -f config/arch.$TARGET_ARCH ]; then
. config/arch.$TARGET_ARCH
fi
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"
STAMPS_NOARCH=.stamps
STAMPS=$BUILD/.stamps
STAMPS_INSTALL=$BUILD/image/.stamps
DOCS=DOCS
TOOLCHAIN=$BUILD/toolchain
SYSROOT_PREFIX=$ROOT/$TOOLCHAIN/$TARGET_NAME/sysroot
LIB_PREFIX=$SYSROOT_PREFIX/usr
TARGET_PREFIX=$ROOT/$TOOLCHAIN/bin/$TARGET_NAME-
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
MAKE="$ROOT/$TOOLCHAIN/bin/make"
MAKEINSTALL="$ROOT/$TOOLCHAIN/bin/make -j1 DESTDIR=$SYSROOT_PREFIX install"
SED="sed -i"
# set package metadata
PKG_NAME="$1"
PKG_VERSION="0.0invalid"
PKG_REV="0"
PKG_ARCH="any"
PKG_LICENSE="unknown"
PKG_SITE=""
PKG_URL=""
PKG_DEPENDS_TARGET=""
PKG_DEPENDS_HOST=""
PKG_DEPENDS_INIT=""
PKG_DEPENDS_BOOTSTRAP=""
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="$1 (autogenerated)"
PKG_LONGDESC=""
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
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
# 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
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}"
XORG_PATH_DRI=/usr/lib/dri
XORG_PATH_XKB=/usr/share/X11/xkb
XORG_PATH_XKB_OUTPUT=/var/lib/xkb
XORG_PATH_RGB=/usr/lib/X11/rgb
XORG_PATH_MODULES=/usr/lib/xorg/modules
XORG_PATH_DRIVERS=/usr/lib/xorg/modules/drivers
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
TARGET_AS=${TARGET_PREFIX}as
TARGET_AR=${TARGET_PREFIX}ar
TARGET_NM=${TARGET_PREFIX}nm
TARGET_RANLIB=${TARGET_PREFIX}ranlib
TARGET_OBJCOPY=${TARGET_PREFIX}objcopy
TARGET_OBJDUMP=${TARGET_PREFIX}objdump
TARGET_STRIP=${TARGET_PREFIX}strip
. config/optimize
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++
HOST_LD=ld
HOST_AS=as
HOST_AR=ar
HOST_NM=nm
HOST_RANLIB=ranlib
HOST_OBJCOPY=objcopy
HOST_STRIP=strip
HOST_PKG_CONFIG_PATH=""
HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig"
HOST_PKG_CONFIG_SYSROOT_DIR=""
if [ -z "$CCACHE_DIR" ]; then
export CCACHE_DIR=$HOME/.ccache-openelec
fi
export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL
export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config
if [ -z "$PATH" -o "$PATH" = "${PATH#$ROOT/$TOOLCHAIN/bin:}" ]; then
export PATH="$ROOT/$TOOLCHAIN/bin:$ROOT/$TOOLCHAIN/sbin:$PATH"
fi
if [ -z "$LD_LIBRARY_PATH" -o "$LD_LIBRARY_PATH" = "${LD_LIBRARY_PATH#$ROOT/$TOOLCHAIN/lib:}" ]; then
export LD_LIBRARY_PATH="$ROOT/$TOOLCHAIN/lib:$LD_LIBRARY_PATH"
fi
VERSION_SUFFIX=$TARGET_ARCH
check_path
check_config
setup_toolchain target
SILENT_OUT=3
VERBOSE_OUT=4
if [ "$VERBOSE" = yes ]; then
exec 3>&1
exec 4>&2
else
exec 3>&2
exec 4>/dev/null
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
-2
View File
@@ -1,2 +0,0 @@
[autorun]
icon=lakka.ico
Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

-2
View File
@@ -1,2 +0,0 @@
# Sourceforge download site
SOURCEFORGE_SRC="http://prdownloads.sourceforge.net"
-9
View File
@@ -1,9 +0,0 @@
# VERSION: set full version, use "devel" for development version
OPENELEC_VERSION="devel"
# OS_VERSION: OS Version
OS_VERSION="5.0"
# ADDON_VERSION: Addon version
ADDON_VERSION="4.3"
-3
View File
@@ -1,3 +0,0 @@
#!/bin/sh
git archive --format=tar --prefix=OpenELEC-source-$1/ tags/$1 | bzip2 > OpenELEC-source-$1.tar.bz2
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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 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

+77
View File
@@ -0,0 +1,77 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>OpenELEC/OpenELEC.tv @ GitHub</title>
<style type="text/css">
body {
margin-top: 1.0em;
background-color: #e43f2f;
font-family: Helvetica, Arial, FreeSans, san-serif;
color: #ffffff;
}
#container {
margin: 0 auto;
width: 700px;
}
h1 { font-size: 3.8em; color: #1bc0d0; margin-bottom: 3px; }
h1 .small { font-size: 0.4em; }
h1 a { text-decoration: none }
h2 { font-size: 1.5em; color: #1bc0d0; }
h3 { text-align: center; color: #1bc0d0; }
a { color: #1bc0d0; }
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
.download { float: right; }
pre { background: #000; color: #fff; padding: 15px;}
hr { border: 0; width: 80%; border-bottom: 1px solid #aaa}
.footer { text-align:center; padding-top:30px; font-style: italic; }
</style>
</head>
<body>
<a href="http://github.com/OpenELEC/OpenELEC.tv"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
<div id="container">
<div class="download">
<a href="http://github.com/OpenELEC/OpenELEC.tv/zipball/master">
<img border="0" width="90" src="http://github.com/images/modules/download/zip.png"></a>
<a href="http://github.com/OpenELEC/OpenELEC.tv/tarball/master">
<img border="0" width="90" src="http://github.com/images/modules/download/tar.png"></a>
</div>
<h1><a href="http://github.com/OpenELEC/OpenELEC.tv">OpenELEC.tv</a>
<span class="small">by <a href="http://github.com/OpenELEC">OpenELEC</a></span></h1>
<div class="description">
OpenELEC - The living room PC for everyone
</div>
<h2>Authors</h2>
<p>Birger J. Nordølum ([email protected])␍<br/>Colossus ([email protected])␍<br/>Andras Kutrovics ([email protected])␍<br/>Gujs ([email protected])␍<br/>Raul E Rangel ([email protected])␍<br/>Lars Op den Kamp ([email protected])␍<br/>Martin Mrvka ([email protected])␍<br/>Anthony Nash ([email protected])␍<br/>newphreak ([email protected])␍<br/>Wintemrute ([email protected])␍<br/>root ([email protected])␍<br/>Stephan Raue ([email protected])␍<br/>therio ([email protected])␍<br/>␍<br/> </p>
<h2>Contact</h2>
<p> ([email protected])␍<br/> </p>
<h2>Download</h2>
<p>
You can download this project in either
<a href="http://github.com/OpenELEC/OpenELEC.tv/zipball/master">zip</a> or
<a href="http://github.com/OpenELEC/OpenELEC.tv/tarball/master">tar</a> formats.
</p>
<p>You can also clone the project with <a href="http://git-scm.com">Git</a>
by running:
<pre>$ git clone git://github.com/OpenELEC/OpenELEC.tv</pre>
</p>
<div class="footer">
get the source code on GitHub : <a href="http://github.com/OpenELEC/OpenELEC.tv">OpenELEC/OpenELEC.tv</a>
</div>
</div>
</body>
</html>
-339
View File
@@ -1,339 +0,0 @@
APPLE PUBLIC SOURCE LICENSE
Version 2.0 - August 6, 2003
Please read this License carefully before downloading this software. By
downloading or using this software, you are agreeing to be bound by the terms
of this License. If you do not or cannot agree to the terms of this License,
please do not download or use the software.
Apple Note: In January 2007, Apple changed its corporate name from "Apple
Computer, Inc." to "Apple Inc." This change has been reflected below and
copyright years updated, but no other changes have been made to the APSL 2.0.
1. General; Definitions. This License applies to any program or other
work which Apple Inc. ("Apple") makes publicly available and which contains a
notice placed by Apple identifying such program or work as "Original Code" and
stating that it is subject to the terms of this Apple Public Source License
version 2.0 ("License"). As used in this License:
1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the
grantor of rights, (i) claims of patents that are now or hereafter acquired,
owned by or assigned to Apple and (ii) that cover subject matter contained in
the Original Code, but only to the extent necessary to use, reproduce and/or
distribute the Original Code without infringement; and (b) in the case where
You are the grantor of rights, (i) claims of patents that are now or hereafter
acquired, owned by or assigned to You and (ii) that cover subject matter in
Your Modifications, taken alone or in combination with Original Code.
1.2 "Contributor" means any person or entity that creates or contributes
to the creation of Modifications.
1.3 "Covered Code" means the Original Code, Modifications, the
combination of Original Code and any Modifications, and/or any respective
portions thereof.
1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise
make Covered Code available, directly or indirectly, to anyone other than You;
and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way
to provide a service, including but not limited to delivery of content,
through electronic communication with a client other than You.
1.5 "Larger Work" means a work which combines Covered Code or portions
thereof with code not governed by the terms of this License.
1.6 "Modifications" mean any addition to, deletion from, and/or change to,
the substance and/or structure of the Original Code, any previous
Modifications, the combination of Original Code and any previous
Modifications, and/or any respective portions thereof. When code is released
as a series of files, a Modification is: (a) any addition to or deletion from
the contents of a file containing Covered Code; and/or (b) any new file or
other representation of computer program statements that contains any part of
Covered Code.
1.7 "Original Code" means (a) the Source Code of a program or other work
as originally made available by Apple under this License, including the Source
Code of any updates or upgrades to such programs or works made available by
Apple under this License, and that has been expressly identified by Apple as
such in the header file(s) of such work; and (b) the object code compiled from
such Source Code and originally made available by Apple under this License
1.8 "Source Code" means the human readable form of a program or other work
that is suitable for making modifications to it, including all modules it
contains, plus any associated interface definition files, scripts used to
control compilation and installation of an executable (object code).
1.9 "You" or "Your" means an individual or a legal entity exercising
rights under this License. For legal entities, "You" or "Your" includes any
entity which controls, is controlled by, or is under common control with, You,
where "control" means (a) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or otherwise, or
(b) ownership of fifty percent (50%) or more of the outstanding shares or
beneficial ownership of such entity.
2. Permitted Uses; Conditions & Restrictions. Subject to the terms and
conditions of this License, Apple hereby grants You, effective on the date You
accept this License and download the Original Code, a world-wide,
royalty-free, non-exclusive license, to the extent of Apple's Applicable
Patent Rights and copyrights covering the Original Code, to do the following:
2.1 Unmodified Code. You may use, reproduce, display, perform, internally
distribute within Your organization, and Externally Deploy verbatim,
unmodified copies of the Original Code, for commercial or non-commercial
purposes, provided that in each instance:
(a) You must retain and reproduce in all copies of Original Code the
copyright and other proprietary notices and disclaimers of Apple as they
appear in the Original Code, and keep intact all notices in the Original Code
that refer to this License; and
(b) You must include a copy of this License with every copy of Source Code
of Covered Code and documentation You distribute or Externally Deploy, and You
may not offer or impose any terms on such Source Code that alter or restrict
this License or the recipients' rights hereunder, except as permitted under
Section 6.
2.2 Modified Code. You may modify Covered Code and use, reproduce,
display, perform, internally distribute within Your organization, and
Externally Deploy Your Modifications and Covered Code, for commercial or
non-commercial purposes, provided that in each instance You also meet all of
these conditions:
(a) You must satisfy all the conditions of Section 2.1 with respect to the
Source Code of the Covered Code;
(b) You must duplicate, to the extent it does not already exist, the
notice in Exhibit A in each file of the Source Code of all Your Modifications,
and cause the modified files to carry prominent notices stating that You
changed the files and the date of any change; and
(c) If You Externally Deploy Your Modifications, You must make Source Code
of all Your Externally Deployed Modifications either available to those to
whom You have Externally Deployed Your Modifications, or publicly available.
Source Code of Your Externally Deployed Modifications must be released under
the terms set forth in this License, including the license grants set forth in
Section 3 below, for as long as you Externally Deploy the Covered Code or
twelve (12) months from the date of initial External Deployment, whichever is
longer. You should preferably distribute the Source Code of Your Externally
Deployed Modifications electronically (e.g. download from a web site).
2.3 Distribution of Executable Versions. In addition, if You Externally
Deploy Covered Code (Original Code and/or Modifications) in object code,
executable form only, You must include a prominent notice, in the code itself
as well as in related documentation, stating that Source Code of the Covered
Code is available under the terms of this License with information on how and
where to obtain such Source Code.
2.4 Third Party Rights. You expressly acknowledge and agree that although
Apple and each Contributor grants the licenses to their respective portions of
the Covered Code set forth herein, no assurances are provided by Apple or any
Contributor that the Covered Code does not infringe the patent or other
intellectual property rights of any other entity. Apple and each Contributor
disclaim any liability to You for claims brought by any other entity based on
infringement of intellectual property rights or otherwise. As a condition to
exercising the rights and licenses granted hereunder, You hereby assume sole
responsibility to secure any other intellectual property rights needed, if
any. For example, if a third party patent license is required to allow You to
distribute the Covered Code, it is Your responsibility to acquire that license
before distributing the Covered Code.
3. Your Grants. In consideration of, and as a condition to, the licenses
granted to You under this License, You hereby grant to any person or entity
receiving or distributing Covered Code under this License a non-exclusive,
royalty-free, perpetual, irrevocable license, under Your Applicable Patent
Rights and other intellectual property rights (other than patent) owned or
controlled by You, to use, reproduce, display, perform, modify, sublicense,
distribute and Externally Deploy Your Modifications of the same scope and
extent as Apple's licenses under Sections 2.1 and 2.2 above.
4. Larger Works. You may create a Larger Work by combining Covered Code
with other code not governed by the terms of this License and distribute the
Larger Work as a single product. In each such instance, You must make sure
the requirements of this License are fulfilled for the Covered Code or any
portion thereof.
5. Limitations on Patent License. Except as expressly stated in Section
2, no other patent rights, express or implied, are granted by Apple herein.
Modifications and/or Larger Works may require additional patent licenses from
Apple which Apple may grant in its sole discretion.
6. Additional Terms. You may choose to offer, and to charge a fee for,
warranty, support, indemnity or liability obligations and/or other rights
consistent with the scope of the license granted herein ("Additional Terms")
to one or more recipients of Covered Code. However, You may do so only on Your
own behalf and as Your sole responsibility, and not on behalf of Apple or any
Contributor. You must obtain the recipient's agreement that any such
Additional Terms are offered by You alone, and You hereby agree to indemnify,
defend and hold Apple and every Contributor harmless for any liability
incurred by or claims asserted against Apple or such Contributor by reason of
any such Additional Terms.
7. Versions of the License. Apple may publish revised and/or new
versions of this License from time to time. Each version will be given a
distinguishing version number. Once Original Code has been published under a
particular version of this License, You may continue to use it under the terms
of that version. You may also choose to use such Original Code under the terms
of any subsequent version of this License published by Apple. No one other
than Apple has the right to modify the terms applicable to Covered Code
created under this License.
8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in
part pre-release, untested, or not fully tested works. The Covered Code may
contain errors that could cause failures or loss of data, and may be
incomplete or contain inaccuracies. You expressly acknowledge and agree that
use of the Covered Code, or any portion thereof, is at Your sole and entire
risk. THE COVERED CODE IS PROVIDED "AS IS" AND WITHOUT WARRANTY, UPGRADES OR
SUPPORT OF ANY KIND AND APPLE AND APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED
TO AS "APPLE" FOR THE PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS
EXPRESSLY DISCLAIM ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF
MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE,
OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR
ENJOYMENT OF THE COVERED CODE, THAT THE FUNCTIONS CONTAINED IN THE COVERED
CODE WILL MEET YOUR REQUIREMENTS, THAT THE OPERATION OF THE COVERED CODE WILL
BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE
CORRECTED. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE
AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY. You
acknowledge that the Covered Code is not intended for use in the operation of
nuclear facilities, aircraft navigation, communication systems, or air traffic
control machines in which case the failure of the Covered Code could lead to
death, personal injury, or severe physical or environmental damage.
9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO
EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE
OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR ANY PORTION THEREOF,
WHETHER UNDER A THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE),
PRODUCTS LIABILITY OR OTHERWISE, EVEN IF APPLE OR SUCH CONTRIBUTOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND NOTWITHSTANDING THE FAILURE OF
ESSENTIAL PURPOSE OF ANY REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE
LIMITATION OF LIABILITY OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
LIMITATION MAY NOT APPLY TO YOU. In no event shall Apple's total liability to
You for all damages (other than as may be required by applicable law) under
this License exceed the amount of fifty dollars ($50.00).
10. Trademarks. This License does not grant any rights to use the
trademarks or trade names "Apple", "Mac", "Mac OS", "QuickTime", "QuickTime
Streaming Server" or any other trademarks, service marks, logos or trade names
belonging to Apple (collectively "Apple Marks") or to any trademark, service
mark, logo or trade name belonging to any Contributor. You agree not to use
any Apple Marks in or as part of the name of products derived from the
Original Code or to endorse or promote products derived from the Original Code
other than as expressly permitted by and in strict compliance at all times
with Apple's third party trademark usage guidelines which are posted at
http://www.apple.com/legal/guidelinesfor3rdparties.html.
11. Ownership. Subject to the licenses granted under this License, each
Contributor retains all rights, title and interest in and to any Modifications
made by such Contributor. Apple retains all rights, title and interest in and
to the Original Code and any Modifications made by or on behalf of Apple
("Apple Modifications"), and such Apple Modifications will not be
automatically subject to this License. Apple may, at its sole discretion,
choose to license such Apple Modifications under this License, or on different
terms from those contained in this License or may choose not to license them
at all.
12. Termination.
12.1 Termination. This License and the rights granted hereunder will
terminate:
(a) automatically without notice from Apple if You fail to comply with any
term(s) of this License and fail to cure such breach within 30 days of
becoming aware of such breach;
(b) immediately in the event of the circumstances described in Section
13.5(b); or
(c) automatically without notice from Apple if You, at any time during the
term of this License, commence an action for patent infringement against
Apple; provided that Apple did not first commence an action for patent
infringement against You in that instance.
12.2 Effect of Termination. Upon termination, You agree to immediately
stop any further use, reproduction, modification, sublicensing and
distribution of the Covered Code. All sublicenses to the Covered Code which
have been properly granted prior to termination shall survive any termination
of this License. Provisions which, by their nature, should remain in effect
beyond the termination of this License shall survive, including but not
limited to Sections 3, 5, 8, 9, 10, 11, 12.2 and 13. No party will be liable
to any other for compensation, indemnity or damages of any sort solely as a
result of terminating this License in accordance with its terms, and
termination of this License will be without prejudice to any other right or
remedy of any party.
13. Miscellaneous.
13.1 Government End Users. The Covered Code is a "commercial item" as
defined in FAR 2.101. Government software and technical data rights in the
Covered Code include only those rights customarily provided to the public as
defined in this License. This customary commercial license in technical data
and software is provided in accordance with FAR 12.211 (Technical Data) and
12.212 (Computer Software) and, for Department of Defense purchases, DFAR
252.227-7015 (Technical Data -- Commercial Items) and 227.7202-3 (Rights in
Commercial Computer Software or Computer Software Documentation).
Accordingly, all U.S. Government End Users acquire Covered Code with only
those rights set forth herein.
13.2 Relationship of Parties. This License will not be construed as
creating an agency, partnership, joint venture or any other form of legal
association between or among You, Apple or any Contributor, and You will not
represent to the contrary, whether expressly, by implication, appearance or
otherwise.
13.3 Independent Development. Nothing in this License will impair Apple's
right to acquire, license, develop, have others develop for it, market and/or
distribute technology or products that perform the same or similar functions
as, or otherwise compete with, Modifications, Larger Works, technology or
products that You may develop, produce, market or distribute.
13.4 Waiver; Construction. Failure by Apple or any Contributor to enforce
any provision of this License will not be deemed a waiver of future
enforcement of that or any other provision. Any law or regulation which
provides that the language of a contract shall be construed against the
drafter will not apply to this License.
13.5 Severability. (a) If for any reason a court of competent jurisdiction
finds any provision of this License, or portion thereof, to be unenforceable,
that provision of the License will be enforced to the maximum extent
permissible so as to effect the economic benefits and intent of the parties,
and the remainder of this License will continue in full force and effect. (b)
Notwithstanding the foregoing, if applicable law prohibits or restricts You
from fully and/or specifically complying with Sections 2 and/or 3 or prevents
the enforceability of either of those Sections, this License will immediately
terminate and You must immediately discontinue any use of the Covered Code and
destroy all copies of it that are in your possession or control.
13.6 Dispute Resolution. Any litigation or other dispute resolution
between You and Apple relating to this License shall take place in the
Northern District of California, and You and Apple hereby consent to the
personal jurisdiction of, and venue in, the state and federal courts within
that District with respect to this License. The application of the United
Nations Convention on Contracts for the International Sale of Goods is
expressly excluded.
13.7 Entire Agreement; Governing Law. This License constitutes the entire
agreement between the parties with respect to the subject matter hereof. This
License shall be governed by the laws of the United States and the State of
California, except that body of California law concerning conflicts of law.
Where You are located in the province of Quebec, Canada, the following clause
applies: The parties hereby confirm that they have requested that this
License and all related documents be drafted in English. Les parties ont
exigé que le présent contrat et tous les documents connexes soient rédigés
en anglais.
EXHIBIT A.
"Portions Copyright (c) 1999-2007 Apple Inc. All Rights Reserved.
This file contains Original Code and/or Modifications of Original Code as
defined in and that are subject to the Apple Public Source License Version 2.0
(the 'License'). You may not use this file except in compliance with the
License. Please obtain a copy of the License at
http://www.opensource.apple.com/apsl/ and read it before using this file.
The Original Code and all software distributed under the License are
distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
specific language governing rights and limitations under the License."
-188
View File
@@ -1,188 +0,0 @@
AMD Software End User License Agreement
PLEASE READ THIS LICENSE CAREFULLY BEFORE USING THE SOFTWARE. BY
DOWNLOADING, INSTALLING, COPYING OR USING THE SOFTWARE, YOU ARE AGREEING TO
BE BOUND BY THE TERMS OF THIS LICENSE. IF YOU ARE ACCESSING THE SOFTWARE
ELECTRONICALLY, SIGNIFY YOUR AGREEMENT BY CLICKING THE "AGREE/ACCEPT"
BUTTON. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, PROMPTLY RETURN
THE SOFTWARE TO THE PLACE WHERE YOU OBTAINED IT AND (IF APPLICABLE) YOUR
MONEY WILL BE REFUNDED OR IF THE SOFTWARE WAS ACCESSED ELECTRONICALLY CLICK
"DISAGREE/DECLINE".
1. License. Advanced Micro Devices, Inc., on behalf of itself, its
subsidiaries and licensors (referred collectively as "AMD") grants to you
the following non-exclusive, right to use the software accompanying
this License (hereinafter "Software") subject to the following terms and
limitations:
(a) Regardless of the media upon which it is distributed, the Software is
licensed to you for use solely in conjunction with AMD hardware products to
which the Software relates ("AMD Hardware").
(b) You own the medium on which the Software is recorded, but AMD and, if
applicable, its licensors retain title to the Software and related
documentation.
(c) You may:
i) use the Software solely in connection with the AMD Hardware on a
single computer;
ii) make one copy of the Software in machine-readable form for backup
purposes only. You must reproduce on such copy AMD's copyright notice and
any other proprietary legends that were on the original copy of the
Software;
iii) transfer all your license rights in the Software provided you must
also transfer a copy of this License, the backup copy of the Software,
the AMD Hardware and the related documentation and provided the other
party reads and agrees to accept the terms and conditions of this
License. Upon such transfer your license rights are then terminated.
(d) In addition to the license terms above, with respect to portions of
the Software in source code or binary form designed exclusively for use
with the Linux operating system ("AMD Linux Code"), you may use, display,
modify, copy, distribute, allow others to re-distribute, package and re-
package such AMD Linux Code for commercial and non-commercial purposes,
provided that:
i) all binary components of the AMD Linux Code are not modified in any
way;
ii) the AMD Linux Code is only used as part of the Software and in
connection with AMD Hardware;
iii) all copyright notices of AMD are reproduced and you refer to these
license terms;
iv) you may not offer or impose any terms on the use of AMD Linux
Code that alter or restrict this License; and
v) if you have modified the AMD Linux Code, such modifications will be
made publicly available and are licensed under the same terms provided
herein to AMD or any other third party without further restriction,
royalty or any other license requirement;
vi) to the extent there is any AMD sample or control panel source
code included in the AMD Linux Code, no rights are granted to modify such
code except for portions thereof that may be subject to third party
license terms that grant such rights;
vii) no rights are granted to distribute the binary form of the AMD Linux
Kernel Module made by linking the AMD Proprietary Kernel Library and the
AMD Kernel Compatibility Layer binary compiled using Linux kernel
headers;
viii) AMD is not obligated to provide any maintenance or technical
support for any code resulting from AMD Linux Code.
2. Restrictions. The Software contains copyrighted and patented material,
trade secrets and other proprietary material. In order to protect them,
and except as permitted by this license or applicable legislation, you may
not:
a) decompile, reverse engineer, disassemble or otherwise reduce the
Software to a human-perceivable form;
b) modify, network, rent, lend, loan, distribute or create derivative
works based upon the Software in whole or in part; or
c) electronically transmit the Software from one computer to another or
over a network or otherwise transfer the Software except as permitted by
this License.
3. Termination. This License is effective until terminated. You may
terminate this License at any time by destroying the Software, related
documentation and all copies thereof. This License will terminate
immediately without notice from AMD if you fail to comply with any
provision of this License. Upon termination you must destroy the Software,
related documentation and all copies thereof.
4. Government End Users. If you are acquiring the Software on behalf of
any unit or agency of the United States Government, the following
provisions apply. The Government agrees the Software and documentation
were developed at private expense and are provided with "RESTRICTED
RIGHTS". Use, duplication, or disclosure by the Government is subject to
restrictions as set forth in DFARS 227.7202-1(a) and 227.7202-3(a) (1995),
DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR 12.212(a)(1995), FAR 52.227-
19, (June 1987) or FAR 52.227-14(ALT III) (June 1987),as amended from time
to time. In the event that this License, or any part thereof, is deemed
inconsistent with the minimum rights identified in the Restricted Rights
provisions, the minimum rights shall prevail.
5. No Other License. No rights or licenses are granted by AMD under this
License, expressly or by implication, with respect to any proprietary
information or patent, copyright, trade secret or other intellectual
property right owned or controlled by AMD, except as expressly provided in
this License.
6. Additional Licenses. DISTRIBUTION OR USE OF THE SOFTWARE WITH AN
OPERATING SYSTEM MAY REQUIRE ADDITIONAL LICENSES FROM THE OPERATING SYSTEM
VENDOR.
7. Disclaimer of Warranty on Software. You expressly acknowledge and
agree that use of the Software is at your sole risk. The Software and
related documentation are provided "AS IS" and without warranty of any kind
and AMD EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FORA PARTICULAR PURPOSE, OF QUALITY, OF QUIET ENJOYMENT AND OF NON-
INFRINGEMENT OF THIRD PARTY RIGHTS. AMD DOES NOT WARRANT THAT THE
FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT
THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT
DEFECTS IN THE SOFTWARE WILL BE CORRECTED. THE ENTIRE RISK AS TO THE
RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. FURTHERMORE,
AMD DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE ORTHE
RESULTS OF THE USE OF THE SOFTWARE OR RELATED DOCUMENTATION IN TERMS OF
THEIR CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE. NO
ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY AMD OR AMD'S AUTHORIZED
REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF
THIS WARRANTY. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU (AND NOT AMD OR
AMD'S AUTHORIZED REPRESENTATIVE) ASSUME THE ENTIRE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION. THE SOFTWARE IS NOT INTENDED FOR USE IN
MEDICAL, LIFE SAVING OR LIFE SUSTAINING APPLICATIONS. SOME JURISDICTIONS
DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION
MAY NOT APPLY TO YOU.
8. Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY LAW, UNDER
NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL AMD, OR ITS DIRECTORS,
OFFICERS, EMPLOYEES OR AGENTS, BE LIABLE TO YOU FOR ANY INCIDENTAL,
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF
BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND
THE LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE SOFTWARE
OR RELATED DOCUMENTATION, BREACH OR DEFAULT, INCLUDING THOSE ARISING FROM
INFRINGEMENT OR ALLEGED INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT OR
OTHER INTELLECTUAL PROPERTY RIGHT, BY AMD, EVEN IF AMD OR AMD'S AUTHORIZED
REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME
JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR
INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION
MAY NOT APPLY TO YOU. AMD will not be liable for 1) loss of, or damage to,
your records or data or 2) any damages claimed by you based on any third
party claim. In no event shall AMD's total liability to you for all
damages, losses, and causes of action (whether in contract, tort (including
negligence) or otherwise) exceed the amount paid by you for the Software.
The foregoing limitations will apply even if the above stated limitation
fails of its essential purpose.
9. Controlling Law and Severability. This License shall be governed by
and construed under the laws of the Province of Ontario, Canada without
reference to its conflict of law principles. Any dispute related hereto
will be brought only in the courts in Toronto, Ontario, Canada and such
courts are agreed to be the convenient forum. In the event of any
conflicts between foreign law, rules, and regulations, and Canadian law,
rules, and regulations, Canadian law, rules and regulations shall prevail
and govern. The United Nations Convention on Contracts for the
International Sale of Goods shall not apply to this License. If for any
reason a court of competent jurisdiction finds any provision of this
License or portion thereof, to be unenforceable, that provision of the
License shall be enforced to the maximum extent permissible so as to effect
the intent of the parties, and the remainder of this License shall continue
in full force and effect.
10. Complete Agreement. This License constitutes the entire agreement
between the parties with respect to the use of the Software and the related
documentation, and supersedes all prior or contemporaneous understandings
or agreements, written or oral, regarding such subject matter. No
amendment to or modification of this License will be binding unless in
writing and signed by a duly authorized representative of AMD.
-131
View File
@@ -1,131 +0,0 @@
The "Artistic License"
Preamble
The intent of this document is to state the conditions under which a
Package may be copied, such that the Copyright Holder maintains some
semblance of artistic control over the development of the package,
while giving the users of the package the right to use and distribute
the Package in a more-or-less customary fashion, plus the right to make
reasonable modifications.
Definitions:
"Package" refers to the collection of files distributed by the
Copyright Holder, and derivatives of that collection of files
created through textual modification.
"Standard Version" refers to such a Package if it has not been
modified, or has been modified in accordance with the wishes
of the Copyright Holder as specified below.
"Copyright Holder" is whoever is named in the copyright or
copyrights for the package.
"You" is you, if you're thinking about copying or distributing
this Package.
"Reasonable copying fee" is whatever you can justify on the
basis of media cost, duplication charges, time of people involved,
and so on. (You will not be required to justify it to the
Copyright Holder, but only to the computing community at large
as a market that must bear the fee.)
"Freely Available" means that no fee is charged for the item
itself, though there may be fees involved in handling the item.
It also means that recipients of the item may redistribute it
under the same conditions they received it.
1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
duplicate all of the original copyright notices and associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications
derived from the Public Domain or from the Copyright Holder. A Package
modified in such a way shall still be considered the Standard Version.
3. You may otherwise modify your copy of this Package in any way, provided
that you insert a prominent notice in each changed file stating how and
when you changed that file, and provided that you do at least ONE of the
following:
a) place your modifications in the Public Domain or otherwise make them
Freely Available, such as by posting said modifications to Usenet or
an equivalent medium, or placing the modifications on a major archive
site such as uunet.uu.net, or by allowing the Copyright Holder to include
your modifications in the Standard Version of the Package.
b) use the modified Package only within your corporation or organization.
c) rename any non-standard executables so the names do not conflict
with standard executables, which must also be provided, and provide
a separate manual page for each non-standard executable that clearly
documents how it differs from the Standard Version.
d) make other distribution arrangements with the Copyright Holder.
4. You may distribute the programs of this Package in object code or
executable form, provided that you do at least ONE of the following:
a) distribute a Standard Version of the executables and library files,
together with instructions (in the manual page or equivalent) on where
to get the Standard Version.
b) accompany the distribution with the machine-readable source of
the Package with your modifications.
c) give non-standard executables non-standard names, and clearly
document the differences in manual pages (or equivalent), together
with instructions on where to get the Standard Version.
d) make other distribution arrangements with the Copyright Holder.
5. You may charge a reasonable copying fee for any distribution of this
Package. You may charge any fee you choose for support of this
Package. You may not charge a fee for this Package itself. However,
you may distribute this Package in aggregate with other (possibly
commercial) programs as part of a larger (possibly commercial) software
distribution provided that you do not advertise this Package as a
product of your own. You may embed this Package's interpreter within
an executable of yours (by linking); this shall be construed as a mere
form of aggregation, provided that the complete Standard Version of the
interpreter is so embedded.
6. The scripts and library files supplied as input to or produced as
output from the programs of this Package do not automatically fall
under the copyright of this Package, but belong to whoever generated
them, and may be sold commercially, and may be aggregated with this
Package. If such scripts or library files are aggregated with this
Package via the so-called "undump" or "unexec" methods of producing a
binary executable image, then distribution of such an image shall
neither be construed as a distribution of this Package nor shall it
fall under the restrictions of Paragraphs 3 and 4, provided that you do
not represent such an executable image as a Standard Version of this
Package.
7. C subroutines (or comparably compiled subroutines in other
languages) supplied by you and linked into this Package in order to
emulate subroutines and variables of the language defined by this
Package shall not be considered part of this Package, but are the
equivalent of input as in Paragraph 6, provided these subroutines do
not change the language in any way that would cause it to fail the
regression tests for the language.
8. Aggregation of this Package with a commercial distribution is always
permitted provided that the use of this Package is embedded; that is,
when no overt attempt is made to make this Package's interfaces visible
to the end user of the commercial distribution. Such use shall not be
construed as a distribution of this Package.
9. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written permission.
10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The End
-31
View File
@@ -1,31 +0,0 @@
/*-
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
Loaded 100 of 2264 files, more files were not shown because too many files have changed in this diff. Show more