mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
Merge branch 'master' into openelec-next
This commit is contained in:
commit
fdce20b9f3
18
Makefile
18
Makefile
@ -1,18 +1,24 @@
|
||||
BUILD_DIRS="build.*"
|
||||
|
||||
all: system
|
||||
all: squashfs
|
||||
|
||||
system:
|
||||
./scripts/install image system
|
||||
./scripts/image
|
||||
|
||||
release:
|
||||
./scripts/install image release
|
||||
./scripts/image_release
|
||||
|
||||
addons:
|
||||
./scripts/install image addons
|
||||
squashfs:
|
||||
./scripts/image_squashfs
|
||||
|
||||
qemu:
|
||||
./scripts/install image qemu
|
||||
./scripts/image_qemu
|
||||
|
||||
vmware:
|
||||
./scripts/image_vmware
|
||||
|
||||
addons:
|
||||
./scripts/image_addons
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIRS)
|
||||
|
55
README
Normal file
55
README
Normal file
@ -0,0 +1,55 @@
|
||||
http://www.OpenELEC.tv
|
||||
|
||||
The Open Embedded Linux Enterainment Center – OpenELEC.tv
|
||||
|
||||
OpenELEC.tv runs XBMC, a complete media center solution (xbmc.org).
|
||||
The base system has been designed and built from the ground up to be as
|
||||
efficient as possible – consuming only a tiny footprint, cutting edge
|
||||
hardware support and a set-top box experience.
|
||||
|
||||
Source code:
|
||||
- https://github.com/OpenELEC/OpenELEC.tv
|
||||
|
||||
Installation:
|
||||
- Please read INSTALL for instructions how to install.
|
||||
|
||||
Known issues:
|
||||
- Testing snapshot
|
||||
|
||||
Features:
|
||||
- System size ~ 90MB
|
||||
- Minimal hardware requirements
|
||||
- Simple configuration
|
||||
|
||||
Software:
|
||||
- xbmc HTPC software – View/Manage all your media.
|
||||
- samba server – File transfer from any PC client
|
||||
- Transmission – bittorrent client
|
||||
- IR/Bluetooth Remote Control
|
||||
|
||||
Notes:
|
||||
- Login details for SSH are user: “root” password: “openelec”
|
||||
SSH allows command line access to your openelec.tv machine for configuration
|
||||
and file transfer. Linux/mac clients can natively use SSH, windows users
|
||||
might want to try PuTTY for their terminal access.
|
||||
- $HOME is mounted on /storage (the second ext4 partition on the drive). All
|
||||
data that you transfer to the machine will go here, the rest of the system is
|
||||
read-only with the exception of /var (which contains runtime configuration
|
||||
data).
|
||||
- Manual update/downgrade procedure is as follows:
|
||||
Extract the snapshot and navigate to the 'target' directory
|
||||
Copy KERNEL and SYSTEM to the 'Update' network share (or /storage/.update) on
|
||||
your openelec machine.
|
||||
Your system will automatically upgrade during the next reboot.
|
||||
- Automatic mounting of filesystems is supported. Devices such as USB Flash
|
||||
Sticks can be plugged into a running machine and will be mounted to /media,
|
||||
showing up in xbmc’s GUI.
|
||||
- Comments and questions are more than welcome, help is even better and patches
|
||||
are absolutely perfect!!
|
||||
|
||||
Please visit http://www.openelec.tv or log onto our IRC chatroom #openelec on
|
||||
freenode.
|
||||
|
||||
Happy XBMC'ing
|
||||
|
||||
OpenELEC.tv Development Team
|
153
config/functions
Normal file
153
config/functions
Normal file
@ -0,0 +1,153 @@
|
||||
setup_toolchain() {
|
||||
if [ "$1" = "--optimize" ]; then
|
||||
OPTIMIZE=yes
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "$1" = target ]; then
|
||||
export DESTIMAGE="target"
|
||||
|
||||
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 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"
|
||||
|
||||
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() {
|
||||
ls -d $ROOT/$BUILD/linux-[0-9]*
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
xorg_drv_configure_prepend() {
|
||||
incdir=${SYSROOT_PREFIX}/usr/include/xorg
|
||||
for f in dri.h sarea.h dristruct.h exa.h damage.h xf86Module.h; do
|
||||
incfile="$incdir/$f"
|
||||
if [ -f "$incfile" ]; then
|
||||
p=`echo "$incfile" | sed 'y%*+%pp%;s%[^_[:alnum:]]%_%g'`
|
||||
eval "export ac_cv_file_$p=yes"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
add_user() {
|
||||
# Usage: add_user "username" "password" "userid" "groupid" "description" "home" "shell"
|
||||
mkdir -p ${INSTALL}/etc
|
||||
touch ${INSTALL}/etc/passwd
|
||||
if [ -z "`grep "$1:" ${INSTALL}/etc/passwd`" ]; then
|
||||
echo "$1:$2:$3:$4:$5:$6:$7" >> ${INSTALL}/etc/passwd
|
||||
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
|
||||
}
|
||||
|
||||
get_version() {
|
||||
if [ "$OPENELEC_VERSION" = devel -o "$OPENELEC_VERSION" = debug ]; then
|
||||
BUILD_DATE=`date +%Y%m%d`
|
||||
GIT_BUILD=`git log --pretty=format:'' | wc -l`
|
||||
OPENELEC_VERSION=$OPENELEC_VERSION-$BUILD_DATE-r$GIT_BUILD
|
||||
fi
|
||||
|
||||
TARGET_VERSION="$PROJECT.$TARGET_ARCH-$OPENELEC_VERSION"
|
||||
}
|
||||
|
||||
do_autoreconf() {
|
||||
if [ -e $ROOT/$TOOLCHAIN/bin/autoreconf ] &&
|
||||
[ -e $ROOT/$TOOLCHAIN/bin/autoconf ] &&
|
||||
[ -e $ROOT/$TOOLCHAIN/bin/automake ] &&
|
||||
[ -e $ROOT/$TOOLCHAIN/bin/libtoolize ] &&
|
||||
[ -e $ROOT/$TOOLCHAIN/bin/intltoolize ]; then
|
||||
export LIBTOOL=$ROOT/$TOOLCHAIN/bin/libtool
|
||||
export LIBTOOLIZE=$ROOT/$TOOLCHAIN/bin/libtoolize
|
||||
export AUTOMAKE=$ROOT/$TOOLCHAIN/bin/automake
|
||||
export ACLOCAL_DIR=$SYSROOT_PREFIX/usr/share/aclocal
|
||||
export ACLOCAL="$ROOT/$TOOLCHAIN/bin/aclocal -I $ACLOCAL_DIR"
|
||||
export AUTOCONF=$ROOT/$TOOLCHAIN/bin/autoconf
|
||||
export AUTOHEADER=$ROOT/$TOOLCHAIN/bin/autoheader
|
||||
export AUTORECONF="$ROOT/$TOOLCHAIN/bin/autoreconf -v -f -i -I $ACLOCAL_DIR"
|
||||
|
||||
mkdir -p $ACLOCAL_DIR
|
||||
autoreconf --verbose --force --install -I $ACLOCAL_DIR $@
|
||||
fi
|
||||
}
|
||||
|
||||
strip_lto() {
|
||||
# strip out LTO optimization from *FLAGS
|
||||
CFLAGS=`echo $CFLAGS | sed -e "s|-flto||"`
|
||||
CXXFLAGS=`echo $CXXFLAGS | sed -e "s|-flto||"`
|
||||
LDFLAGS=`echo $LDFLAGS | sed -e "s|-flto||"`
|
||||
}
|
||||
|
||||
strip_gold() {
|
||||
# strip out usage from GOLD linker
|
||||
LDFLAGS=`echo $LDFLAGS | sed -e "s|-fuse-ld=gold||" -e "s|-fuse-linker-plugin||"`
|
||||
}
|
||||
|
||||
strip_linker_plugin() {
|
||||
# strip out usage from linker plugin
|
||||
LDFLAGS=`echo $LDFLAGS | sed -e "s|-fuse-linker-plugin||"`
|
||||
}
|
@ -1 +1 @@
|
||||
Welcome to OpenELEC - the powerfull Mediacenter4you
|
||||
Welcome to OpenELEC - the powerful Mediacenter4you
|
||||
|
28
config/optimize
Normal file
28
config/optimize
Normal file
@ -0,0 +1,28 @@
|
||||
if [ "$OPTIMIZATIONS" = speed ];then
|
||||
GCC_OPTIM="-O4"
|
||||
LD_OPTIM=""
|
||||
fi
|
||||
|
||||
if [ "$OPTIMIZATIONS" = normal ];then
|
||||
GCC_OPTIM="-O2"
|
||||
LD_OPTIM=""
|
||||
fi
|
||||
|
||||
if [ "$OPTIMIZATIONS" = size ];then
|
||||
GCC_OPTIM="-Os"
|
||||
LD_OPTIM=""
|
||||
fi
|
||||
|
||||
GCC_OPTIM="$GCC_OPTIM -ffast-math"
|
||||
GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-interchange"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-strip-mine"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-block"
|
||||
GCC_OPTIM="$GCC_OPTIM -fgraphite-identity"
|
||||
GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast"
|
||||
GCC_OPTIM="$GCC_OPTIM -flto"
|
||||
|
||||
LD_OPTIM="$LD_OPTIM -fuse-linker-plugin"
|
||||
LD_OPTIM="$LD_OPTIM -fuse-ld=gold"
|
||||
LD_OPTIM="$LD_OPTIM -Wl,--as-needed"
|
||||
|
@ -57,6 +57,9 @@ fi
|
||||
# multi-processor computer (like hyperthreading SMP CPU)
|
||||
CONCURRENCY_MAKE_LEVEL=`cat /proc/cpuinfo | grep -c '^processor[[:cntrl:]]*:'`
|
||||
|
||||
# forcing install of all packages (yes/no)
|
||||
FORCE_INSTALL=no
|
||||
|
||||
# set jpeg library depending on ARCH
|
||||
if [ "$TARGET_ARCH" = "i386" -o "$TARGET_ARCH" = "x86_64" ]; then
|
||||
LIBJPEG="libjpeg-turbo"
|
||||
@ -67,7 +70,7 @@ fi
|
||||
|
||||
get_graphicdrivers() {
|
||||
if [ "$GRAPHIC_DRIVERS" = all ]; then
|
||||
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 radeon nvidia"
|
||||
GRAPHIC_DRIVERS="i915 i965 r200 r300 r600 radeon nvidia vmware"
|
||||
fi
|
||||
|
||||
for drv in $GRAPHIC_DRIVERS; do
|
||||
@ -81,23 +84,24 @@ get_graphicdrivers() {
|
||||
|
||||
if [ $drv = i915 -o $drv = i965 ]; then
|
||||
XORG_DRIVERS="$XORG_DRIVERS intel"
|
||||
DRM_DRIVERS="$DRM_DRIVERS intel"
|
||||
fi
|
||||
|
||||
if [ $drv = r200 -o $drv = r300 -o $drv = r600 -o $drv = radeon ]; then
|
||||
XORG_DRIVERS="$XORG_DRIVERS ati"
|
||||
DRM_DRIVERS="$DRM_DRIVERS radeon"
|
||||
fi
|
||||
|
||||
if [ $drv = nouveau ]; then
|
||||
XORG_DRIVERS="$XORG_DRIVERS nouveau"
|
||||
DRM_DRIVERS="$DRM_DRIVERS nouveau"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $drv = nvidia ]; then
|
||||
XORG_DRIVERS="$XORG_DRIVERS nvidia"
|
||||
XINERAMA_SUPPORT="yes"
|
||||
fi
|
||||
|
||||
if [ $drv = vmware ]; then
|
||||
XINERAMA_SUPPORT="yes"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
225
config/path
225
config/path
@ -1,7 +1,5 @@
|
||||
set -e
|
||||
|
||||
test -f config/target-$TARGET_PLATFORM && . config/target-$TARGET_PLATFORM
|
||||
|
||||
# determine architecture's family
|
||||
case $TARGET_ARCH in
|
||||
i386)
|
||||
@ -26,24 +24,26 @@ if [ -z "$TARGET_CPU" ]; then
|
||||
esac
|
||||
fi
|
||||
|
||||
# setup initial directorys
|
||||
CONFIG=config
|
||||
SCRIPTS=scripts
|
||||
PACKAGES=packages
|
||||
SOURCES=sources
|
||||
BUILD_BASE=build
|
||||
TARGET=target
|
||||
ADDONS=addons
|
||||
|
||||
HOST_NAME=`$SCRIPTS/configtools/config.guess`
|
||||
TARGET_NAME=$TARGET_FAMILY-openelec-linux-gnu
|
||||
|
||||
OPENELEC_SRC=http://sources.openelec.tv/src/$OPENELEC_VERSION
|
||||
CONFIG=config
|
||||
SCRIPTS=scripts
|
||||
PACKAGES=packages
|
||||
SOURCES=sources
|
||||
BUILD_BASE=build
|
||||
TARGET=target
|
||||
ADDONS=addons
|
||||
BUILD=$BUILD_BASE.OpenELEC-$PROJECT.$TARGET_ARCH.$OPENELEC_VERSION
|
||||
[ -n "$TARGET_PLATFORM" ] && BUILD=$BUILD.$TARGET_PLATFORM
|
||||
TARGET_IMG=$ROOT/$TARGET
|
||||
TARGET_ADDONS="$TARGET_IMG/$ADDONS/$ADDON_PATH"
|
||||
ADDON_BUILD="$BUILD/$ADDONS/$1"
|
||||
STAMPS_NOARCH=.stamps
|
||||
STAMPS=$BUILD/.stamps
|
||||
INSTALLSTAMPS=$BUILD/.install
|
||||
STAMPS_INSTALL=$BUILD/image/.stamps
|
||||
DOCS=DOCS
|
||||
TOOLCHAIN=$BUILD/toolchain
|
||||
SYSROOT_PREFIX=$ROOT/$TOOLCHAIN/$TARGET_NAME/sysroot
|
||||
@ -60,13 +60,6 @@ elif [ "$OPENELEC_VERSION" = debug ]; then
|
||||
DEVTOOLS=yes
|
||||
fi
|
||||
|
||||
HOST_NAME_CACHE=$BUILD/configtools/host_name
|
||||
if [ -f $HOST_NAME_CACHE ]; then
|
||||
HOST_NAME=`cat $HOST_NAME_CACHE`
|
||||
elif [ -x $BUILD/configtools/config.guess ]; then
|
||||
HOST_NAME=`$BUILD/configtools/config.guess`
|
||||
fi
|
||||
|
||||
MAKE="$ROOT/$TOOLCHAIN/bin/make"
|
||||
MAKEINSTALL="$ROOT/$TOOLCHAIN/bin/make -j1 DESTDIR=$SYSROOT_PREFIX install"
|
||||
SED="sed -i"
|
||||
@ -92,11 +85,8 @@ SED="sed -i"
|
||||
[ -r $PKG_DIR/meta ] && . $PKG_DIR/meta
|
||||
[ "$PKG_IS_ADDON" = "yes" ] && PKG_ADDON_ID="addon.$PKG_SECTION.$PKG_NAME"
|
||||
|
||||
if [ -r $PKG_DIR/meta ]; then
|
||||
PKG_BUILD=$BUILD/${PKG_NAME}\[-_]${PKG_VERSION}
|
||||
else
|
||||
PKG_BUILD=$BUILD/$1\[-_][0-9]*
|
||||
fi
|
||||
[ -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION}`
|
||||
[ -d $BUILD/${PKG_NAME}${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}${PKG_VERSION}`
|
||||
|
||||
XORG_PATH_ENCODINGS=/usr/share/X11/encodings
|
||||
XORG_PATH_FONTS=/usr/share/X11/fonts
|
||||
@ -111,21 +101,7 @@ XORG_PATH_DRIVERS=/usr/lib/xorg/modules/drivers
|
||||
TOOLCHAIN_LANGUAGES=c
|
||||
[ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++
|
||||
|
||||
if [ "$OPTIMIZATIONS" = speed ];then
|
||||
GCC_OPTIM="-O3 -ffast-math $PROJECT_CFLAGS"
|
||||
GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-interchange"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-strip-mine"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-block"
|
||||
GCC_OPTIM="$GCC_OPTIM -fgraphite-identity"
|
||||
else
|
||||
GCC_OPTIM="-Os -ffast-math $PROJECT_CFLAGS"
|
||||
GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-interchange"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-strip-mine"
|
||||
GCC_OPTIM="$GCC_OPTIM -floop-block"
|
||||
GCC_OPTIM="$GCC_OPTIM -fgraphite-identity"
|
||||
fi
|
||||
. config/optimize
|
||||
|
||||
TARGET_CC=${TARGET_PREFIX}gcc
|
||||
TARGET_CXX=${TARGET_PREFIX}g++
|
||||
@ -136,33 +112,37 @@ TARGET_NM=${TARGET_PREFIX}nm
|
||||
TARGET_RANLIB=${TARGET_PREFIX}ranlib
|
||||
TARGET_OBJCOPY=${TARGET_PREFIX}objcopy
|
||||
TARGET_STRIP=${TARGET_PREFIX}strip
|
||||
|
||||
TARGET_CPPFLAGS=
|
||||
TARGET_CFLAGS="$GCC_OPTIM -Wall -pipe"
|
||||
TARGET_CFLAGS="-Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS"
|
||||
TARGET_CXXFLAGS="$TARGET_CFLAGS"
|
||||
TARGET_LDFLAGS=""
|
||||
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"
|
||||
TARGET_LDFLAGS="$GCC_OPTIM $LD_OPTIM"
|
||||
|
||||
case $TARGET_ARCH in
|
||||
i386)
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -march=$TARGET_CPU -m32 -fexcess-precision=fast"
|
||||
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -march=$TARGET_CPU -m32 -fexcess-precision=fast"
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -march=$TARGET_CPU -m32"
|
||||
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -march=$TARGET_CPU -m32"
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -march=$TARGET_CPU -m32"
|
||||
;;
|
||||
x86_64)
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fPIC -march=$TARGET_CPU -m64 -fexcess-precision=fast"
|
||||
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fPIC -march=$TARGET_CPU -m64 -fexcess-precision=fast"
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fPIC -march=$TARGET_CPU -m64"
|
||||
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fPIC -march=$TARGET_CPU -m64"
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -fPIC -march=$TARGET_CPU -m64"
|
||||
;;
|
||||
esac
|
||||
|
||||
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"
|
||||
|
||||
if [ "$DEBUG" = yes ]; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -ggdb"
|
||||
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb"
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb"
|
||||
else
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -s -fomit-frame-pointer"
|
||||
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -s -fomit-frame-pointer"
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -s -Wl,--as-needed"
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -fomit-frame-pointer"
|
||||
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fomit-frame-pointer"
|
||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -s"
|
||||
fi
|
||||
|
||||
HOST_AWK=gawk
|
||||
@ -175,22 +155,25 @@ HOST_NM=nm
|
||||
HOST_RANLIB=ranlib
|
||||
HOST_OBJCOPY=objcopy
|
||||
HOST_STRIP=strip
|
||||
|
||||
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_PKG_CONFIG_PATH=""
|
||||
HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig"
|
||||
HOST_PKG_CONFIG_SYSROOT_DIR=""
|
||||
|
||||
# use -fPIC when necessary
|
||||
case "`uname -m`" in
|
||||
x86_64|ppc64|arm|armeb|armel)
|
||||
HOST_CFLAGS="$HOST_CFLAGS -fPIC"
|
||||
HOST_CXXFLAGS="$HOST_CXXFLAGS -fPIC"
|
||||
HOST_LDFLAGS="$HOST_LDFLAGS -fPIC"
|
||||
;;
|
||||
esac
|
||||
|
||||
HOST_PKG_CONFIG_PATH=""
|
||||
HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig"
|
||||
HOST_PKG_CONFIG_SYSROOT_DIR=""
|
||||
|
||||
export CCACHE_DIR=$ROOT/$BUILD/.ccache
|
||||
export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL
|
||||
export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config
|
||||
@ -199,74 +182,10 @@ if [ -z "$PATH" -o "$PATH" = "${PATH#$ROOT/$TOOLCHAIN/bin:}" ]; then
|
||||
export PATH="$ROOT/$TOOLCHAIN/bin:$PATH"
|
||||
fi
|
||||
|
||||
if [ -f $ROOT/$TOOLCHAIN/bin/libtool ]; then
|
||||
export LIBTOOL=$ROOT/$TOOLCHAIN/bin/libtool
|
||||
export LIBTOOLIZE=$ROOT/$TOOLCHAIN/bin/libtoolize
|
||||
fi
|
||||
VERSION_SUFFIX=$TARGET_ARCH
|
||||
|
||||
if [ -f $ROOT/$TOOLCHAIN/bin/automake ]; then
|
||||
export AUTOMAKE=$ROOT/$TOOLCHAIN/bin/automake
|
||||
export ACLOCAL_DIR=$SYSROOT_PREFIX/usr/share/aclocal
|
||||
export ACLOCAL="$ROOT/$TOOLCHAIN/bin/aclocal -I $ACLOCAL_DIR"
|
||||
fi
|
||||
. config/functions
|
||||
|
||||
if [ -f $ROOT/$TOOLCHAIN/bin/autoconf ]; then
|
||||
export AUTOCONF=$ROOT/$TOOLCHAIN/bin/autoconf
|
||||
export AUTOHEADER=$ROOT/$TOOLCHAIN/bin/autoheader
|
||||
export AUTORECONF="$ROOT/$TOOLCHAIN/bin/autoreconf -v -f -i -I $ACLOCAL_DIR"
|
||||
fi
|
||||
|
||||
setup_toolchain() {
|
||||
if [ "$1" = "--optimize" ]; then
|
||||
OPTIMIZE=yes
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "$1" = target ]; then
|
||||
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 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 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
|
||||
}
|
||||
setup_toolchain target
|
||||
|
||||
SILENT_OUT=3
|
||||
@ -280,71 +199,3 @@ else
|
||||
fi
|
||||
INDENT_SIZE=4
|
||||
|
||||
VERSION_SUFFIX=$TARGET_ARCH
|
||||
[ -n "$TARGET_PLATFORM" ] && VERSION_SUFFIX=$TARGET_PLATFORM
|
||||
|
||||
# read generic personal options if available
|
||||
if [ -f ~/.openelec/options ]; then
|
||||
. ~/.openelec/options
|
||||
fi
|
||||
|
||||
# read project based personal options if available
|
||||
if [ -f ~/.openelec/$PROJECT/options ]; then
|
||||
. ~/.openelec/$PROJECT/options
|
||||
fi
|
||||
|
||||
PACKAGE_URL="$PKG_DIR/url"
|
||||
[ -r "$PACKAGE_URL.$TARGET_ARCH" ] && PACKAGE_URL="$PACKAGE_URL.$TARGET_ARCH"
|
||||
[ -n "$TARGET_PLATFORM" -a -r "$PACKAGE_URL.$TARGET_PLATFORM" ] && \
|
||||
PACKAGE_URL="$PACKAGE_URL.$TARGET_PLATFORM"
|
||||
|
||||
kernel_path() {
|
||||
ls -d $ROOT/$BUILD/linux-[0-9]*
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
xorg_drv_configure_prepend() {
|
||||
incdir=${SYSROOT_PREFIX}/usr/include/xorg
|
||||
for f in dri.h sarea.h dristruct.h exa.h damage.h xf86Module.h; do
|
||||
incfile="$incdir/$f"
|
||||
if [ -f "$incfile" ]; then
|
||||
p=`echo "$incfile" | sed 'y%*+%pp%;s%[^_[:alnum:]]%_%g'`
|
||||
eval "export ac_cv_file_$p=yes"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
add_user() {
|
||||
# Usage: add_user "username" "password" "userid" "groupid" "description" "home" "shell"
|
||||
mkdir -p ${INSTALL}/etc
|
||||
touch ${INSTALL}/etc/passwd
|
||||
if [ -z "`grep "$1:" ${INSTALL}/etc/passwd`" ]; then
|
||||
echo "$1:$2:$3:$4:$5:$6:$7" >> ${INSTALL}/etc/passwd
|
||||
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
|
||||
}
|
||||
|
1
config/release/3rdparty/md5sum/README
vendored
Normal file
1
config/release/3rdparty/md5sum/README
vendored
Normal file
@ -0,0 +1 @@
|
||||
http://www.etree.org/md5com.html
|
BIN
config/release/3rdparty/md5sum/md5sum.exe
vendored
Normal file
BIN
config/release/3rdparty/md5sum/md5sum.exe
vendored
Normal file
Binary file not shown.
@ -1,18 +0,0 @@
|
||||
This is an embedded Linux distribution based on the OpenELEC.tv Project.
|
||||
(http://www.openelec.tv).
|
||||
|
||||
The goal of this tarball is the testing of XBMC with the OpenELEC.tv
|
||||
distribution. More information about OpenELEC.tv you can find on
|
||||
http://www.openelec.tv.
|
||||
|
||||
Sourcecode:
|
||||
Sourcecode you can find on https://code.launchpad.net/~sraue/openelec/devel.
|
||||
|
||||
Installation:
|
||||
Please read INSTALL for instructions how to install.
|
||||
|
||||
Known issues:
|
||||
- find issue in this release
|
||||
|
||||
ToDo:
|
||||
- test this release
|
@ -56,6 +56,25 @@ echo "# Please read the instructions and use very carefully.. #"
|
||||
echo "# #"
|
||||
echo "#########################################################"
|
||||
|
||||
# check MD5 sums
|
||||
echo "checking MD5 sum..."
|
||||
md5sum -c target/KERNEL.md5
|
||||
MD5_ERROR=$?
|
||||
md5sum -c target/SYSTEM.md5
|
||||
MD5_ERROR=$?
|
||||
|
||||
if [ $MD5_ERROR = 1 ]; then
|
||||
echo "#########################################################"
|
||||
echo "# #"
|
||||
echo "# OpenELEC.tv 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
|
||||
|
||||
# (TODO) umount anything
|
||||
umount $PART
|
||||
|
||||
@ -92,7 +111,9 @@ echo "#########################################################"
|
||||
# copy files
|
||||
echo "copy files to $PART..."
|
||||
cp target/KERNEL /tmp/usb_install
|
||||
cp target/KERNEL.md5 /tmp/usb_install
|
||||
cp target/SYSTEM /tmp/usb_install
|
||||
cp target/SYSTEM.md5 /tmp/usb_install
|
||||
cp sample.conf/syslinux_installer.cfg /tmp/usb_install/syslinux.cfg
|
||||
|
||||
# syncing disk
|
||||
|
@ -49,6 +49,10 @@ cmd /k "start %CD%\3rdparty\syslinux\win32"
|
||||
GOTO END
|
||||
|
||||
:INSTALL
|
||||
3rdparty\md5sum\md5sum.exe -c --status %CD%\target\SYSTEM.md5
|
||||
IF ERRORLEVEL 1 GOTO BADMD5
|
||||
3rdparty\md5sum\md5sum.exe -c --status %CD%\target\KERNEL.md5
|
||||
IF ERRORLEVEL 1 GOTO BADMD5
|
||||
CLS
|
||||
ECHO.
|
||||
ECHO OpenELEC.tv USB Installer
|
||||
@ -72,8 +76,22 @@ format %DRIVE% /V:INSTALL /Q /FS:FAT32
|
||||
3rdparty\syslinux\win32\syslinux.exe -f -m -a %DRIVE%
|
||||
copy target\* %DRIVE%
|
||||
copy sample.conf\syslinux_installer.cfg %DRIVE%\syslinux.cfg
|
||||
SET DRIVE=
|
||||
GOTO END
|
||||
|
||||
:BADMD5
|
||||
CLS
|
||||
ECHO.
|
||||
ECHO.
|
||||
ECHO ***** OpenELEC.tv failed md5 check - Installation will quit *****
|
||||
ECHO.
|
||||
ECHO.
|
||||
ECHO.
|
||||
ECHO Your original download was probably corrupt.
|
||||
ECHO Please visit www.openelec.tv and get another copy
|
||||
ECHO.
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
:END
|
||||
SET DRIVE=
|
||||
SET OS=
|
@ -3,10 +3,4 @@ PROMPT 0
|
||||
|
||||
LABEL linux
|
||||
KERNEL /KERNEL
|
||||
APPEND boot=/dev/sda1 disk=/dev/sdb2 quiet
|
||||
LABEL text
|
||||
KERNEL /KERNEL
|
||||
APPEND boot=/dev/sda1 disk=/dev/sdb2 quiet textmode
|
||||
LABEL debug
|
||||
KERNEL /KERNEL
|
||||
APPEND boot=/dev/sda1 disk=/dev/sdb2 quiet textmode debugging
|
||||
APPEND boot=LABEL=BOOT disk=LABEL=STORAGE quiet
|
||||
|
@ -4,12 +4,4 @@ hiddenmenu
|
||||
|
||||
title OpenELEC.tv
|
||||
root (hd0,0)
|
||||
kernel /KERNEL boot=/dev/sda1 disk=/dev/sda2 quiet
|
||||
|
||||
title OpenELEC.tv (Textmode)
|
||||
root (hd0,0)
|
||||
kernel /KERNEL boot=/dev/sda1 disk=/dev/sda2 textmode quiet
|
||||
|
||||
title OpenELEC.tv (Debugmode)
|
||||
root (hd0,0)
|
||||
kernel /KERNEL boot=/dev/sda1 disk=/dev/sda2 debugging textmode quiet
|
||||
kernel /KERNEL boot=LABEL=BOOT disk=LABEL=STORAGE quiet
|
||||
|
@ -3,10 +3,4 @@ PROMPT 0
|
||||
|
||||
LABEL linux
|
||||
KERNEL /KERNEL
|
||||
APPEND boot=/dev/sda1 disk=/dev/sdb2 quiet
|
||||
LABEL text
|
||||
KERNEL /KERNEL
|
||||
APPEND boot=/dev/sda1 disk=/dev/sdb2 quiet textmode
|
||||
LABEL debug
|
||||
KERNEL /KERNEL
|
||||
APPEND boot=/dev/sda1 disk=/dev/sdb2 quiet textmode debugging
|
||||
APPEND boot=LABEL=BOOT disk=LABEL=STORAGE quiet
|
||||
|
BIN
config/vmware/OpenELEC.nvram
Normal file
BIN
config/vmware/OpenELEC.nvram
Normal file
Binary file not shown.
55
config/vmware/OpenELEC.vmx
Executable file
55
config/vmware/OpenELEC.vmx
Executable file
@ -0,0 +1,55 @@
|
||||
.encoding = "UTF-8"
|
||||
config.version = "8"
|
||||
virtualHW.version = "7"
|
||||
|
||||
displayName = "OpenELEC.tv - VMWare build"
|
||||
guestOS = "other26xlinux"
|
||||
nvram = "OpenELEC.nvram"
|
||||
numvcpus = "2"
|
||||
memsize = "1024"
|
||||
mks.enable3d = "TRUE"
|
||||
virtualHW.productCompatibility = "hosted"
|
||||
|
||||
ide0:0.present = "TRUE"
|
||||
ide0:0.fileName = "OpenELEC.flash"
|
||||
ide0:1.present = "TRUE"
|
||||
ide0:1.fileName = "OpenELEC.storage"
|
||||
ide1:0.present = "TRUE"
|
||||
ide1:0.autodetect = "TRUE"
|
||||
ide1:0.startConnected = "FALSE"
|
||||
ide1:0.deviceType = "cdrom-raw"
|
||||
ide1:1.present = "FALSE"
|
||||
scsi0.present = "FALSE"
|
||||
floppy0.present = "FALSE"
|
||||
|
||||
ethernet0.present = "TRUE"
|
||||
ethernet0.connectionType = "nat"
|
||||
ethernet0.wakeOnPcktRcv = "FALSE"
|
||||
ethernet0.addressType = "generated"
|
||||
|
||||
usb.present = "TRUE"
|
||||
ehci.present = "TRUE"
|
||||
|
||||
sound.present = "TRUE"
|
||||
sound.startConnected = "TRUE"
|
||||
sound.fileName = "-1"
|
||||
sound.autodetect = "TRUE"
|
||||
|
||||
extendedConfigFile = "OpenELEC.vmxf"
|
||||
ethernet0.generatedAddress = "00:0c:29:39:05:27"
|
||||
uuid.location = "56 4d 6b b5 e7 5c 8d 13-cc 60 70 2d 4f 39 05 27"
|
||||
uuid.bios = "56 4d 6b b5 e7 5c 8d 13-cc 60 70 2d 4f 39 05 27"
|
||||
cleanShutdown = "TRUE"
|
||||
replay.supported = "FALSE"
|
||||
replay.filename = ""
|
||||
ide0:0.redo = ""
|
||||
ide0:1.redo = ""
|
||||
usb.pciSlotNumber = "16"
|
||||
ethernet0.pciSlotNumber = "17"
|
||||
sound.pciSlotNumber = "18"
|
||||
ehci.pciSlotNumber = "19"
|
||||
vmotion.checkpointFBSize = "134217728"
|
||||
ethernet0.generatedAddressOffset = "0"
|
||||
debugStub.linuxOffsets = "0x0,0xffffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0"
|
||||
tools.remindInstall = "TRUE"
|
||||
ide1:0.fileName = "auto detect"
|
@ -4,7 +4,7 @@ PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://library.gnome.org/devel/atk/"
|
||||
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/$PKG_NAME/1.30/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/$PKG_NAME/1.32/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="glib"
|
||||
PKG_BUILD_DEPENDS="toolchain glib"
|
||||
PKG_PRIORITY="optional"
|
||||
@ -12,3 +12,5 @@ PKG_SECTION="accessibility"
|
||||
PKG_SHORTDESC="ATK - Accessibility Toolkit"
|
||||
PKG_LONGDESC="ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications. Using the ATK interfaces, accessibility tools have full access to view and control running applications."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
@ -1,9 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $ADDON_BUILD/mkimage
|
||||
cp $PKG_DIR/config/mame.ini $ADDON_BUILD/mkimage
|
||||
|
||||
mkdir -p $ADDON_BUILD/mkimage/bin
|
||||
cp $PKG_BUILD/mame $ADDON_BUILD/mkimage/bin
|
@ -1,55 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. config/options $1
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
# some hacks to build hosttools
|
||||
setup_toolchain host
|
||||
|
||||
mkdir -p obj/sdl/mame/build \
|
||||
obj/sdl/mame/osd/sdl \
|
||||
obj/sdl/mame/lib/util \
|
||||
obj/sdl/mame/lib/zlib \
|
||||
obj/sdl/mame/emu/cpu/m68000 \
|
||||
obj/sdl/mame/emu/cpu/tms57002
|
||||
|
||||
make BUILD_EXPAT=1 SDL_INSTALL_ROOT="/usr" obj/sdl/mame/build/file2str
|
||||
make BUILD_EXPAT=1 SDL_INSTALL_ROOT="/usr" obj/sdl/mame/build/png2bdc
|
||||
make BUILD_EXPAT=1 SDL_INSTALL_ROOT="/usr" obj/sdl/mame/build/m68kmake
|
||||
make BUILD_EXPAT=1 SDL_INSTALL_ROOT="/usr" obj/sdl/mame/build/tmsmake
|
||||
|
||||
cp obj/sdl/mame/build/file2str $ROOT/$TOOLCHAIN/bin/mame-file2str
|
||||
cp obj/sdl/mame/build/png2bdc $ROOT/$TOOLCHAIN/bin/mame-png2bdc
|
||||
cp obj/sdl/mame/build/m68kmake $ROOT/$TOOLCHAIN/bin/mame-m68kmake
|
||||
cp obj/sdl/mame/build/tmsmake $ROOT/$TOOLCHAIN/bin/mame-tmsmake
|
||||
|
||||
make clean
|
||||
|
||||
# now build
|
||||
setup_toolchain target
|
||||
|
||||
if [ "$TARGET_ARCH" = x86_64 ]; then
|
||||
ARCH_OPTS="PTR64=1"
|
||||
else
|
||||
ARCH_OPTS="PTR64=0"
|
||||
fi
|
||||
|
||||
if [ "$DEBUG" = yes ]; then
|
||||
DEBUG_OPTS="OPTIMIZE=0 DEBUG=1 SYMBOLS=1 PROFILER=1 PROFILE=1"
|
||||
else
|
||||
DEBUG_OPTS="OPTIMIZE=3"
|
||||
fi
|
||||
|
||||
make CC="$TARGET_CC" \
|
||||
AR="$TARGET_AR" \
|
||||
LD="$TARGET_CXX" \
|
||||
ARCHOPTS="$TARGET_CFLAGS" \
|
||||
OPT_FLAGS='-DINI_PATH="\".\""' \
|
||||
NO_DEBUGGER=1 \
|
||||
NOWERROR=1 \
|
||||
BUILD_EXPAT=0 \
|
||||
BUILD_ZLIB=0 \
|
||||
SUFFIX64="" \
|
||||
$ARCH_OPTS \
|
||||
$DEBUG_OPTS
|
@ -1,5 +0,0 @@
|
||||
0.90.2
|
||||
- update to MAME 0.139s
|
||||
|
||||
0.90.1
|
||||
- initial version MAME 0.138s
|
@ -1,266 +0,0 @@
|
||||
<UNADORNED0>
|
||||
|
||||
#
|
||||
# CORE CONFIGURATION OPTIONS
|
||||
#
|
||||
readconfig 1
|
||||
|
||||
#
|
||||
# CORE SEARCH PATH OPTIONS
|
||||
#
|
||||
rompath $HOME/emulators/mame/roms
|
||||
samplepath $HOME/emulators/mame/samples
|
||||
artpath $HOME/emulators/mame/artwork
|
||||
ctrlrpath $HOME/emulators/mame/ctrlr
|
||||
inipath /etc/mame;$HOME/.config
|
||||
fontpath $HOME/emulators/mame/fonts
|
||||
cheatpath $HOME/emulators/mame/cheat
|
||||
crosshairpath $HOME/emulators/mame/crosshair
|
||||
|
||||
#
|
||||
# CORE OUTPUT DIRECTORY OPTIONS
|
||||
#
|
||||
cfg_directory $HOME/emulators/mame/cfg
|
||||
nvram_directory $HOME/emulators/mame/nvram
|
||||
memcard_directory $HOME/emulators/mame/memcard
|
||||
input_directory $HOME/emulators/mame/inp
|
||||
state_directory $HOME/emulators/mame/sta
|
||||
snapshot_directory $HOME/emulators/mame/snap
|
||||
diff_directory $HOME/emulators/mame/diff
|
||||
comment_directory $HOME/emulators/mame/comments
|
||||
|
||||
#
|
||||
# CORE STATE/PLAYBACK OPTIONS
|
||||
#
|
||||
state
|
||||
autosave 1
|
||||
playback
|
||||
record
|
||||
mngwrite
|
||||
aviwrite
|
||||
wavwrite
|
||||
snapname %g/%i
|
||||
snapsize auto
|
||||
snapview internal
|
||||
burnin 0
|
||||
|
||||
#
|
||||
# CORE PERFORMANCE OPTIONS
|
||||
#
|
||||
autoframeskip 0
|
||||
frameskip 0
|
||||
seconds_to_run 0
|
||||
throttle 1
|
||||
sleep 1
|
||||
speed 1.0
|
||||
refreshspeed 0
|
||||
|
||||
#
|
||||
# CORE ROTATION OPTIONS
|
||||
#
|
||||
rotate 1
|
||||
ror 0
|
||||
rol 0
|
||||
autoror 0
|
||||
autorol 0
|
||||
flipx 0
|
||||
flipy 0
|
||||
|
||||
#
|
||||
# CORE ARTWORK OPTIONS
|
||||
#
|
||||
artwork_crop 0
|
||||
use_backdrops 1
|
||||
use_overlays 1
|
||||
use_bezels 1
|
||||
|
||||
#
|
||||
# CORE SCREEN OPTIONS
|
||||
#
|
||||
brightness 1.0
|
||||
contrast 1.0
|
||||
gamma 1.0
|
||||
pause_brightness 0.65
|
||||
|
||||
#
|
||||
# CORE VECTOR OPTIONS
|
||||
#
|
||||
antialias 1
|
||||
beam 1.0
|
||||
flicker 0
|
||||
|
||||
#
|
||||
# CORE SOUND OPTIONS
|
||||
#
|
||||
sound 1
|
||||
samplerate 48000
|
||||
samples 1
|
||||
volume 0
|
||||
|
||||
#
|
||||
# CORE INPUT OPTIONS
|
||||
#
|
||||
coin_lockout 1
|
||||
ctrlr
|
||||
mouse 0
|
||||
joystick 1
|
||||
lightgun 0
|
||||
multikeyboard 0
|
||||
multimouse 0
|
||||
steadykey 0
|
||||
offscreen_reload 0
|
||||
joystick_map auto
|
||||
joystick_deadzone 0.3
|
||||
joystick_saturation 0.85
|
||||
natural 0
|
||||
uimodekey auto
|
||||
|
||||
#
|
||||
# CORE INPUT AUTOMATIC ENABLE OPTIONS
|
||||
#
|
||||
paddle_device keyboard
|
||||
adstick_device keyboard
|
||||
pedal_device keyboard
|
||||
dial_device keyboard
|
||||
trackball_device keyboard
|
||||
lightgun_device keyboard
|
||||
positional_device keyboard
|
||||
mouse_device mouse
|
||||
|
||||
#
|
||||
# CORE DEBUGGING OPTIONS
|
||||
#
|
||||
log 0
|
||||
verbose 0
|
||||
update_in_pause 0
|
||||
debug 0
|
||||
debugscript
|
||||
debug_internal 0
|
||||
|
||||
#
|
||||
# CORE MISC OPTIONS
|
||||
#
|
||||
bios
|
||||
cheat 0
|
||||
skip_gameinfo 0
|
||||
|
||||
#
|
||||
# DEBUGGING OPTIONS
|
||||
#
|
||||
oslog 0
|
||||
|
||||
#
|
||||
# PERFORMANCE OPTIONS
|
||||
#
|
||||
multithreading 1
|
||||
numprocessors auto
|
||||
sdlvideofps 0
|
||||
|
||||
#
|
||||
# VIDEO OPTIONS
|
||||
#
|
||||
video opengl
|
||||
numscreens 1
|
||||
window 0
|
||||
maximize 1
|
||||
keepaspect 1
|
||||
unevenstretch 1
|
||||
effect none
|
||||
centerh 1
|
||||
centerv 1
|
||||
waitvsync 0
|
||||
scalemode none
|
||||
|
||||
#
|
||||
# OpenGL-SPECIFIC OPTIONS
|
||||
#
|
||||
filter 1
|
||||
prescale 1
|
||||
gl_forcepow2texture 0
|
||||
gl_notexturerect 0
|
||||
gl_vbo 1
|
||||
gl_pbo 1
|
||||
gl_glsl 0
|
||||
gl_glsl_filter 1
|
||||
glsl_shader_mame0 none
|
||||
glsl_shader_mame1 none
|
||||
glsl_shader_mame2 none
|
||||
glsl_shader_mame3 none
|
||||
glsl_shader_mame4 none
|
||||
glsl_shader_mame5 none
|
||||
glsl_shader_mame6 none
|
||||
glsl_shader_mame7 none
|
||||
glsl_shader_mame8 none
|
||||
glsl_shader_mame9 none
|
||||
glsl_shader_screen0 none
|
||||
glsl_shader_screen1 none
|
||||
glsl_shader_screen2 none
|
||||
glsl_shader_screen3 none
|
||||
glsl_shader_screen4 none
|
||||
glsl_shader_screen5 none
|
||||
glsl_shader_screen6 none
|
||||
glsl_shader_screen7 none
|
||||
glsl_shader_screen8 none
|
||||
glsl_shader_screen9 none
|
||||
gl_glsl_vid_attr 1
|
||||
|
||||
#
|
||||
# PER-WINDOW VIDEO OPTIONS
|
||||
#
|
||||
screen auto
|
||||
aspect auto
|
||||
resolution auto
|
||||
view auto
|
||||
screen0 auto
|
||||
aspect0 auto
|
||||
resolution0 auto
|
||||
view0 auto
|
||||
screen1 auto
|
||||
aspect1 auto
|
||||
resolution1 auto
|
||||
view1 auto
|
||||
screen2 auto
|
||||
aspect2 auto
|
||||
resolution2 auto
|
||||
view2 auto
|
||||
screen3 auto
|
||||
aspect3 auto
|
||||
resolution3 auto
|
||||
view3 auto
|
||||
|
||||
#
|
||||
# FULL SCREEN OPTIONS
|
||||
#
|
||||
switchres 0
|
||||
useallheads 0
|
||||
|
||||
#
|
||||
# SOUND OPTIONS
|
||||
#
|
||||
audio_latency 3
|
||||
|
||||
#
|
||||
# SDL KEYBOARD MAPPING
|
||||
#
|
||||
keymap 0
|
||||
keymap_file keymap.dat
|
||||
|
||||
#
|
||||
# SDL JOYSTICK MAPPING
|
||||
#
|
||||
joy_idx1 auto
|
||||
joy_idx2 auto
|
||||
joy_idx3 auto
|
||||
joy_idx4 auto
|
||||
joy_idx5 auto
|
||||
joy_idx6 auto
|
||||
joy_idx7 auto
|
||||
joy_idx8 auto
|
||||
sixaxis 0
|
||||
|
||||
#
|
||||
# SDL LOWLEVEL DRIVER OPTIONS
|
||||
#
|
||||
videodriver auto
|
||||
audiodriver auto
|
||||
gl_lib auto
|
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
@ -1,14 +0,0 @@
|
||||
PKG_NAME="mame"
|
||||
PKG_VERSION="0139s"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="free"
|
||||
PKG_SITE="http://www.mame.org"
|
||||
PKG_URL="http://sources.openelec.tv/svn/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="libX11 libXinerama SDL expat zlib"
|
||||
PKG_BUILD_DEPENDS="toolchain libX11 libXinerama SDL expat zlib"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="emulators"
|
||||
PKG_SHORTDESC="(Emulator) MAME: Multiple Arcade Machine Emulator"
|
||||
PKG_LONGDESC="MAME stands for Multiple Arcade Machine Emulator. When used in conjunction with images of the original arcade game's ROM and disk data, MAME attempts to reproduce that game as faithfully as possible on a more modern general-purpose computer. MAME can currently emulate several thousand different classic arcade video games from the late 1970s through the modern era."
|
||||
PKG_IS_ADDON="yes"
|
@ -1,84 +0,0 @@
|
||||
diff -Naur mame-0138s/makefile mame-0138s.patch/makefile
|
||||
--- mame-0138s/makefile 2010-05-13 11:12:54.000000000 +0200
|
||||
+++ mame-0138s.patch/makefile 2010-07-13 01:04:52.722999679 +0200
|
||||
@@ -206,10 +206,10 @@
|
||||
# BIGENDIAN = 1
|
||||
|
||||
# uncomment next line to build expat as part of MAME build
|
||||
-BUILD_EXPAT = 1
|
||||
+# BUILD_EXPAT = 1
|
||||
|
||||
# uncomment next line to build zlib as part of MAME build
|
||||
-BUILD_ZLIB = 1
|
||||
+# BUILD_ZLIB = 1
|
||||
|
||||
# uncomment next line to include the symbols
|
||||
# SYMBOLS = 1
|
||||
@@ -439,7 +439,7 @@
|
||||
ifneq ($(OPTIMIZE),0)
|
||||
ifneq ($(TARGETOS),os2)
|
||||
ifndef NOWERROR
|
||||
-CCOMFLAGS += -Werror -fno-strict-aliasing $(ARCHOPTS)
|
||||
+CCOMFLAGS += -fno-strict-aliasing $(ARCHOPTS)
|
||||
else
|
||||
CCOMFLAGS += -fno-strict-aliasing $(ARCHOPTS)
|
||||
endif
|
||||
@@ -706,12 +706,12 @@
|
||||
|
||||
$(OBJ)/%.lh: $(SRC)/%.lay $(FILE2STR)
|
||||
@echo Converting $<...
|
||||
- @$(FILE2STR) $< $@ layout_$(basename $(notdir $<))
|
||||
+ @mame-file2str $< $@ layout_$(basename $(notdir $<))
|
||||
|
||||
$(OBJ)/%.fh: $(SRC)/%.png $(PNG2BDC) $(FILE2STR)
|
||||
@echo Converting $<...
|
||||
- @$(PNG2BDC) $< $(OBJ)/temp.bdc
|
||||
- @$(FILE2STR) $(OBJ)/temp.bdc $@ font_$(basename $(notdir $<)) UINT8
|
||||
+ @mame-png2bdc $< $(OBJ)/temp.bdc
|
||||
+ @mame-file2str $(OBJ)/temp.bdc $@ font_$(basename $(notdir $<)) UINT8
|
||||
|
||||
$(OBJ)/%.a:
|
||||
@echo Archiving $@...
|
||||
diff -Naur mame-0138s/src/emu/cpu/cpu.mak mame-0138s.patch/src/emu/cpu/cpu.mak
|
||||
--- mame-0138s/src/emu/cpu/cpu.mak 2010-02-03 22:20:20.000000000 +0100
|
||||
+++ mame-0138s.patch/src/emu/cpu/cpu.mak 2010-07-12 23:04:03.416999399 +0200
|
||||
@@ -1019,7 +1019,7 @@
|
||||
# rule to generate the C files
|
||||
$(CPUOBJ)/m68000/m68kops.c: $(M68KMAKE) $(CPUSRC)/m68000/m68k_in.c
|
||||
@echo Generating M68K source files...
|
||||
- $(M68KMAKE) $(CPUOBJ)/m68000 $(CPUSRC)/m68000/m68k_in.c
|
||||
+ mame-m68kmake$(EXE) $(CPUOBJ)/m68000 $(CPUSRC)/m68000/m68k_in.c
|
||||
|
||||
# rule to build the generator
|
||||
ifneq ($(CROSS_BUILD),1)
|
||||
@@ -1548,7 +1548,7 @@
|
||||
# rule to generate the C file
|
||||
$(CPUOBJ)/tms57002/tms57002.inc: $(TMSMAKE) $(CPUSRC)/tms57002/tmsinstr.lst
|
||||
@echo Generating TMS57002 source file...
|
||||
- $(TMSMAKE) $(CPUSRC)/tms57002/tmsinstr.lst $@
|
||||
+ mame-tmsmake$(EXE) $(CPUSRC)/tms57002/tmsinstr.lst $@
|
||||
|
||||
# rule to build the generator
|
||||
ifneq ($(CROSS_BUILD),1)
|
||||
diff -Naur mame-0138s/src/osd/sdl/sdl.mak mame-0138s.patch/src/osd/sdl/sdl.mak
|
||||
--- mame-0138s/src/osd/sdl/sdl.mak 2010-02-14 04:47:30.000000000 +0100
|
||||
+++ mame-0138s.patch/src/osd/sdl/sdl.mak 2010-07-13 01:07:47.158999892 +0200
|
||||
@@ -454,14 +454,14 @@
|
||||
|
||||
# the new debugger relies on GTK+ in addition to the base SDLMAME needs
|
||||
# Non-X11 builds can not use the debugger
|
||||
-CCOMFLAGS += `pkg-config --cflags gtk+-2.0` `pkg-config --cflags gconf-2.0`
|
||||
-LIBS += `pkg-config --libs gtk+-2.0` `pkg-config --libs gconf-2.0`
|
||||
+#CCOMFLAGS += `pkg-config --cflags gtk+-2.0` `pkg-config --cflags gconf-2.0`
|
||||
+#LIBS += `pkg-config --libs gtk+-2.0` `pkg-config --libs gconf-2.0`
|
||||
#CCOMFLAGS += -DGTK_DISABLE_DEPRECATED
|
||||
|
||||
# some systems still put important things in a different prefix
|
||||
-LIBS += -L/usr/X11/lib -L/usr/X11R6/lib -L/usr/openwin/lib
|
||||
+#LIBS += -L/usr/X11/lib -L/usr/X11R6/lib -L/usr/openwin/lib
|
||||
# make sure we can find X headers
|
||||
-CCOMFLAGS += -I/usr/X11/include -I/usr/X11R6/include -I/usr/openwin/include
|
||||
+# CCOMFLAGS += -I/usr/X11/include -I/usr/X11R6/include -I/usr/openwin/include
|
||||
endif # NO_X11
|
||||
|
||||
#-------------------------------------------------
|
@ -1,6 +1,6 @@
|
||||
PKG_NAME="megaglest-data"
|
||||
PKG_VERSION="3.3.5"
|
||||
PKG_REV="1"
|
||||
PKG_VERSION="3.3.7.2"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.glest.org"
|
||||
@ -12,3 +12,5 @@ PKG_SECTION="games"
|
||||
PKG_SHORTDESC="(Game) MegaGlest: a free 3D real-time strategy game"
|
||||
PKG_LONGDESC="Glest is a free 3D real-time strategy game, where you control the armies of two different factions: Tech, which is mainly composed of warriors and mechanical devices, and Magic, that prefers mages and summoned creatures in the battlefield."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
@ -1,14 +1,16 @@
|
||||
PKG_NAME="megaglest-source"
|
||||
PKG_VERSION="3.3.5"
|
||||
PKG_REV="1"
|
||||
PKG_VERSION="3.3.7.2"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.glest.org"
|
||||
PKG_URL="http://downloads.sourceforge.net/project/megaglest/current_release/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="curl xerces-c $LIBJPEG libpng libvorbis libogg SDL openal-soft libX11 $MESA"
|
||||
PKG_BUILD_DEPENDS="toolchain lua curl xerces-c $LIBJPEG libpng libvorbis libogg SDL openal-soft libX11 $MESA"
|
||||
PKG_DEPENDS="curl xerces-c $LIBJPEG libpng libvorbis libogg SDL openal-soft libX11 Mesa"
|
||||
PKG_BUILD_DEPENDS="toolchain lua curl xerces-c $LIBJPEG libpng libvorbis libogg SDL openal-soft libX11 Mesa"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="games"
|
||||
PKG_SHORTDESC="(Game) MegaGlest: a free 3D real-time strategy game"
|
||||
PKG_LONGDESC="Glest is a free 3D real-time strategy game, where you control the armies of two different factions: Tech, which is mainly composed of warriors and mechanical devices, and Magic, that prefers mages and summoned creatures in the battlefield."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,2 +1,5 @@
|
||||
0.90.2
|
||||
- update to MegaGlest-3.3.7.2
|
||||
|
||||
0.90.1
|
||||
- initial version MegaGlest-3.3.5
|
||||
- initial version MegaGlest-3.3.5
|
||||
|
@ -1,6 +1,6 @@
|
||||
PKG_NAME="megaglest"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="1"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.glest.org"
|
||||
@ -12,3 +12,5 @@ PKG_SECTION="games"
|
||||
PKG_SHORTDESC="(Game) MegaGlest: a free 3D real-time strategy game"
|
||||
PKG_LONGDESC="Glest is a free 3D real-time strategy game, where you control the armies of two different factions: Tech, which is mainly composed of warriors and mechanical devices, and Magic, that prefers mages and summoned creatures in the battlefield."
|
||||
PKG_IS_ADDON="yes"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
@ -1,2 +1,5 @@
|
||||
0.90.2
|
||||
- update to sauerbraten-2010_07_28
|
||||
|
||||
0.90.1
|
||||
- initial version sauerbraten-2009.05.04
|
||||
- initial version sauerbraten-2009.05.04
|
||||
|
@ -1,14 +1,16 @@
|
||||
PKG_NAME="sauerbraten"
|
||||
PKG_VERSION="2009_05_04"
|
||||
PKG_REV="1"
|
||||
PKG_VERSION="2010_07_28"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://sauerbraten.org/"
|
||||
PKG_URL="http://downloads.sourceforge.net/project/sauerbraten/sauerbraten/$PKG_VERSION/${PKG_NAME}_${PKG_VERSION}_trooper_edition_linux.tar.bz2"
|
||||
PKG_DEPENDS="zlib libpng $LIBJPEG libX11 SDL SDL_image SDL_mixer $MESA"
|
||||
PKG_BUILD_DEPENDS="toolchain zlib libpng $LIBJPEG libX11 SDL SDL_image SDL_mixer $MESA"
|
||||
PKG_URL="http://downloads.sourceforge.net/project/sauerbraten/sauerbraten/2010_07_19/${PKG_NAME}_${PKG_VERSION}_justice_edition_linux.tar.bz2"
|
||||
PKG_DEPENDS="zlib libpng $LIBJPEG libX11 SDL SDL_image SDL_mixer Mesa"
|
||||
PKG_BUILD_DEPENDS="toolchain zlib libpng $LIBJPEG libX11 SDL SDL_image SDL_mixer Mesa"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="games"
|
||||
PKG_SHORTDESC="(Game) Cube 2: Sauerbraten"
|
||||
PKG_LONGDESC="Sauerbraten is a free multiplayer/singleplayer first person shooter, built as a major redesign of the Cube FPS. Much like the original Cube, the aim of this game is not necessarily to produce the most features and eyecandy possible, but rather to allow map/geometry editing to be done dynamically in-game, to create fun gameplay and an elegant engine."
|
||||
PKG_IS_ADDON="yes"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
@ -1,14 +1,14 @@
|
||||
diff -Naur sauerbraten/src/Makefile sauerbraten.patch/src/Makefile
|
||||
--- sauerbraten/src/Makefile 2009-04-22 19:47:44.000000000 +0200
|
||||
+++ sauerbraten.patch/src/Makefile 2010-07-18 20:21:19.321805286 +0200
|
||||
@@ -18,8 +18,8 @@
|
||||
--- sauerbraten/src/Makefile 2010-05-13 20:30:28.000000000 +0200
|
||||
+++ sauerbraten.patch/src/Makefile 2010-11-04 01:03:27.636654907 +0100
|
||||
@@ -20,8 +20,8 @@
|
||||
CLIENT_INCLUDES= $(INCLUDES) -Iinclude
|
||||
CLIENT_LIBS= -mwindows -Llib -lSDL -lSDL_image -lSDL_mixer -lzdll -lopengl32 -lenet -lws2_32 -lwinmm
|
||||
else
|
||||
-CLIENT_INCLUDES= $(INCLUDES) -I/usr/X11R6/include `sdl-config --cflags`
|
||||
-CLIENT_LIBS= -Lenet -lenet -L/usr/X11R6/lib `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
|
||||
-CLIENT_LIBS= -Lenet/.libs -lenet -L/usr/X11R6/lib `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
|
||||
+CLIENT_INCLUDES= $(INCLUDES) `sdl-config --cflags`
|
||||
+CLIENT_LIBS= -Lenet -lenet `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
|
||||
+CLIENT_LIBS= -Lenet/.libs -lenet `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
|
||||
endif
|
||||
ifeq ($(PLATFORM),Linux)
|
||||
CLIENT_LIBS+= -lrt
|
@ -1,2 +1,5 @@
|
||||
0.90.2
|
||||
- update to wesnoth-1.9.1
|
||||
|
||||
0.90.1
|
||||
- initial version wesnoth-1.8.3
|
@ -1,10 +1,10 @@
|
||||
PKG_NAME="wesnoth"
|
||||
PKG_VERSION="1.8.3"
|
||||
PKG_REV="1"
|
||||
PKG_VERSION="1.9.1"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.glest.org"
|
||||
PKG_URL="http://sourceforge.net/projects/wesnoth/files/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_SITE="http://www.wesnoth.org/"
|
||||
PKG_URL="http://downloads.sourceforge.net/project/wesnoth/wesnoth/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="boost zlib libX11 pango fontconfig SDL SDL_image SDL_mixer SDL_net SDL_ttf"
|
||||
PKG_BUILD_DEPENDS="toolchain boost lua zlib libX11 pango fontconfig SDL SDL_image SDL_mixer SDL_net SDL_ttf"
|
||||
PKG_PRIORITY="optional"
|
||||
@ -13,4 +13,4 @@ PKG_SHORTDESC="(Game) The Battle for Wesnoth"
|
||||
PKG_LONGDESC="The Battle for Wesnoth is a turn-based strategy game with a fantasy theme. Build up a great army, gradually turning raw recruits into hardened veterans. In later games, recall your toughest warriors and form a deadly host against whom none can stand! Choose units from a large pool of specialists, and hand-pick a force with the right strengths to fight well on different terrains against all manner of opposition. Wesnoth has many different sagas waiting to be played out. Fight to regain the throne of Wesnoth, of which you are the legitimate heir... step into the boots of a young officer sent to guard a not-so-sleepy frontier outpost... vanquish a horde of undead warriors unleashed by a foul necromancer, who also happens tohave taken your brother hostage... guide a band of elvish survivors in an epic quest to find a new home. 200+ unit types. 16 races. 6 major factions. Hundreds of years of history. The world of Wesnoth is absolutely huge and limited only by your creativity - make your own custom units, compose your own maps, and write your own scenarios or even full-blown campaigns. You can also challenge up to 8 friends - or strangers - and fight in epic multi-player fantasy battles."
|
||||
PKG_IS_ADDON="yes"
|
||||
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
@ -25,3 +25,6 @@ $MAKE
|
||||
$MAKE -C include DESTDIR=$SYSROOT_PREFIX install-data
|
||||
$MAKE -C src DESTDIR=$SYSROOT_PREFIX install-exec
|
||||
$MAKE -C utils DESTDIR=$SYSROOT_PREFIX install-pkgconfigDATA
|
||||
|
||||
mkdir -p $SYSROOT_PREFIX/usr/share/aclocal
|
||||
cp utils/alsa.m4 $SYSROOT_PREFIX/usr/share/aclocal
|
@ -12,3 +12,5 @@ PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="alsa-lib: Advanced Linux Sound Architecture library"
|
||||
PKG_LONGDESC="ALSA (Advanced Linux Sound Architecture) is the next generation Linux Sound API. It provides much finer (->better) access to the sound hardware, has a unbeatable mixer API and supports stuff like multi channel hardware, digital outs and ins, uninterleaved sound data access, and an oss emulation layer (for the old applications). It is the prefered API for professional sound apps under Linux."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
@ -2,12 +2,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
if [ "$PULSEAUDIO_SUPPORT" = yes ]; then
|
||||
ALSAPLUGINS_PULSEAUDIO="--enable-pulseaudio"
|
||||
else
|
||||
ALSAPLUGINS_PULSEAUDIO="--disable-pulseaudio"
|
||||
fi
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
./configure --host=$TARGET_NAME \
|
||||
@ -21,7 +15,7 @@ cd $PKG_BUILD
|
||||
--disable-jack \
|
||||
--disable-samplerate \
|
||||
--disable-avcodec \
|
||||
$ALSAPLUGINS_PULSEAUDIO \
|
||||
--disable-pulseaudio \
|
||||
--with-speex=lib \
|
||||
|
||||
$MAKE
|
||||
|
@ -13,8 +13,4 @@ PKG_SHORTDESC="alsa-plugins: Advanced Linux Sound Architecture Plugins"
|
||||
PKG_LONGDESC="ALSA (Advanced Linux Sound Architecture) is the next generation Linux Sound API. It provides much finer (->better) access to the sound hardware, has a unbeatable mixer API and supports stuff like multi channel hardware, digital outs and ins, uninterleaved sound data access, and an oss emulation layer (for the old applications). It is the prefered API for professional sound apps under Linux."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
|
||||
if [ "$PULSEAUDIO_SUPPORT" = yes ]; then
|
||||
PKG_DEPENDS="$PKG_DEPENDS pulseaudio"
|
||||
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS pulseaudio"
|
||||
fi
|
||||
PKG_AUTORECONF="yes"
|
||||
|
@ -12,3 +12,5 @@ PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="alsa-utils: Advanced Linux Sound Architecture utilities"
|
||||
PKG_LONGDESC="This package includes the utilities for ALSA, like alsamixer, aplay, arecord, alsactl, iecset and speaker-test."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
@ -122,11 +122,15 @@ else
|
||||
mixer 1 IEC958,2 on
|
||||
mixer 1 IEC958,3 on
|
||||
|
||||
|
||||
# ASRock ION 330 has Master Front set to 0
|
||||
mixer 0 'Master Front' 100%
|
||||
|
||||
# Shuttle XS35GT needs this too
|
||||
mixer 0 Master,0 100%
|
||||
|
||||
|
||||
fi
|
||||
|
||||
exit 0
|
||||
)&
|
||||
|
||||
|
@ -12,3 +12,5 @@ PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="alsa: Matapackage to install all alsa components"
|
||||
PKG_LONGDESC="ALSA (Advanced Linux Sound Architecture) is the next generation Linux Sound API. It provides much finer (->better) access to the sound hardware, has a unbeatable mixer API and supports stuff like multi channel hardware, digital outs and ins, uninterleaved sound data access, and an oss emulation layer (for the old applications). It is the prefered API for professional sound apps under Linux."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
|
@ -3,4 +3,4 @@
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/libfaac/.libs/*.so* $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/libfaac/.libs/*.so* $INSTALL/usr/lib
|
||||
|
16
packages/audio/faac/meta
Normal file
16
packages/audio/faac/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="faac"
|
||||
PKG_VERSION="1.28"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://www.audiocoding.com/"
|
||||
PKG_URL="http://heanet.dl.sourceforge.net/sourceforge/faac/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="faac: An MPEG-4 AAC encoder"
|
||||
PKG_LONGDESC="The FAAC project includes the AAC encoder supporting several MPEG-4 object types (LC, Main, LTP, HE AAC, PS) and file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless encoding as well as MP4 metadata tags. The codecs are compatible with standard-compliant audio applications using one or more of these profiles."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1 +0,0 @@
|
||||
http://heanet.dl.sourceforge.net/sourceforge/faac/faac-1.28.tar.gz
|
@ -2,11 +2,7 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
$AUTORECONF
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
|
@ -3,4 +3,4 @@
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/libfaad/.libs/*.so* $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/libfaad/.libs/*.so* $INSTALL/usr/lib
|
||||
|
16
packages/audio/faad2/meta
Normal file
16
packages/audio/faad2/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="faad2"
|
||||
PKG_VERSION="2.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.audiocoding.com/"
|
||||
PKG_URL="http://sunet.dl.sourceforge.net/project/faac/faad2-src/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="faad: An MPEG-4 AAC decoder"
|
||||
PKG_LONGDESC="The FAAD project includes the AAC decoder FAAD2. It supports several MPEG-4 object types (LC, Main, LTP, HE AAC, PS) and file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless decoding as well as MP4 metadata tags. The codecs are compatible with standard-compliant audio applications using one or more of these profiles."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. config/options $1
|
||||
|
||||
cp $BUILD/configtools/config.guess $BUILD/$1*
|
||||
cp $BUILD/configtools/config.sub $BUILD/$1*
|
||||
chmod a+x $BUILD/$1*/configure
|
@ -1 +0,0 @@
|
||||
http://sunet.dl.sourceforge.net/project/faac/faad2-src/faad2-2.7/faad2-2.7.tar.gz
|
@ -2,10 +2,8 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
$SCRIPTS/build libogg
|
||||
|
||||
cd $PKG_BUILD
|
||||
do_autoreconf -I m4
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
|
@ -2,7 +2,5 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/install libogg
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/src/libFLAC/.libs/libFLAC.so* $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/src/libFLAC/.libs/libFLAC.so* $INSTALL/usr/lib
|
||||
|
16
packages/audio/flac/meta
Normal file
16
packages/audio/flac/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="flac"
|
||||
PKG_VERSION="1.2.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://flac.sourceforge.net/"
|
||||
PKG_URL="http://downloads.sourceforge.net/flac/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS="libogg"
|
||||
PKG_BUILD_DEPENDS="toolchain libogg libiconv"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="flac: An Free Lossless Audio Codec"
|
||||
PKG_LONGDESC="Grossly oversimplified, FLAC is similar to MP3, but lossless, meaning that audio is compressed in FLAC without throwing away any information. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
@ -1 +0,0 @@
|
||||
http://downloads.sourceforge.net/flac/flac-1.2.1.tar.gz
|
@ -2,8 +2,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
|
16
packages/audio/libcdio/meta
Normal file
16
packages/audio/libcdio/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="libcdio"
|
||||
PKG_VERSION="0.82"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/libcdio/"
|
||||
PKG_URL="http://ftp.gnu.org/gnu/libcdio/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libcdio: A CD-ROM reading and control library"
|
||||
PKG_LONGDESC="This library is to encapsulate CD-ROM reading and control. Applications wishing to be oblivious of the OS- and device-dependant properties of a CD-ROM can use this library. Some support for disk image types like BIN/CUE and NRG is available, so applications that use this library also have the ability to read disc images as though they were CD's."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1 +0,0 @@
|
||||
http://ftp.gnu.org/gnu/libcdio/libcdio-0.82.tar.bz2
|
@ -2,9 +2,12 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
# some fixes for autoreconf
|
||||
touch NEWS AUTHORS ChangeLog
|
||||
do_autoreconf
|
||||
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
|
@ -3,4 +3,4 @@
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/.libs/*.so* $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/.libs/*.so* $INSTALL/usr/lib
|
||||
|
16
packages/audio/libmad/meta
Normal file
16
packages/audio/libmad/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="libmad"
|
||||
PKG_VERSION="0.15.1b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.mars.org/home/rob/proj/mpeg/"
|
||||
PKG_URL="http://downloads.sourceforge.net/mad/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libmad: MPEG Audio Decoder"
|
||||
PKG_LONGDESC="MAD is a high-quality MPEG audio decoder. It currently supports MPEG-1 and the MPEG-2 extension to Lower Sampling Frequencies, as well as the so-called MPEG 2.5 format. All three audio layers (Layer I, Layer II, and Layer III a.k.a. MP3) are fully implemented."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
@ -1 +0,0 @@
|
||||
http://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz
|
@ -2,9 +2,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
$SCRIPTS/build glib
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
|
@ -2,8 +2,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/install glib
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/src/.libs/*.so* $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/src/.libs/*.so* $INSTALL/usr/lib
|
||||
|
||||
|
16
packages/audio/libmms/meta
Normal file
16
packages/audio/libmms/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="libmms"
|
||||
PKG_VERSION="0.5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://launchpad.net/libmms"
|
||||
PKG_URL="http://launchpad.net/libmms/trunk/$PKG_VERSION/+download/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS="glib"
|
||||
PKG_BUILD_DEPENDS="toolchain glib"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libmms: a common library for parsing mms:// and mmsh:// type network streams."
|
||||
PKG_LONGDESC="LibMMS is a common library for parsing mms:// and mmsh:// type network streams. These are commonly used to stream Windows Media Video content over the web. LibMMS itself is only for receiving MMS stream, it doesn't handle sending at all."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1 +0,0 @@
|
||||
http://launchpad.net/libmms/trunk/0.5/+download/libmms-0.5.tar.gz
|
@ -2,7 +2,7 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
strip_lto # libmodplug fails to build with LTO optimization
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
|
@ -3,4 +3,4 @@
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/src/.libs/*.so* $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/src/.libs/*.so* $INSTALL/usr/lib
|
||||
|
16
packages/audio/libmodplug/meta
Normal file
16
packages/audio/libmodplug/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="libmodplug"
|
||||
PKG_VERSION="0.8.8.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://modplug-xmms.sourceforge.net/"
|
||||
PKG_URL="http://ignum.dl.sourceforge.net/project/modplug-xmms/libmodplug/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libmodplug: renders mod music files as raw audio data, for playing or conversion."
|
||||
PKG_LONGDESC="libmodplug renders mod music files as raw audio data, for playing or conversion. libmodplug is based on the fast and high quality mod playing code written and released to the public domain by Olivier Lapicque. mod, .s3m, .it, .xm, and a number of lesser-known formats are supported. Optional features include high-quality resampling, bass expansion, surround and reverb."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1 +0,0 @@
|
||||
http://ignum.dl.sourceforge.net/project/modplug-xmms/libmodplug/0.8.8/libmodplug-0.8.8.tar.gz
|
@ -2,8 +2,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
@ -12,6 +10,6 @@ cd $PKG_BUILD
|
||||
--disable-static \
|
||||
--enable-shared \
|
||||
|
||||
$MAKE
|
||||
make
|
||||
|
||||
$MAKEINSTALL
|
@ -3,4 +3,4 @@
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/src/.libs/libogg*.so* $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/src/.libs/libogg*.so* $INSTALL/usr/lib
|
||||
|
16
packages/audio/libogg/meta
Normal file
16
packages/audio/libogg/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="libogg"
|
||||
PKG_VERSION="1.2.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://www.xiph.org/ogg/"
|
||||
PKG_URL="http://downloads.xiph.org/releases/ogg/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libogg: Open source bitstream container format"
|
||||
PKG_LONGDESC="Libogg contains necessary functionality to create, decode, and work with Ogg bitstreams."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -1 +0,0 @@
|
||||
http://downloads.xiph.org/releases/ogg/libogg-1.2.0.tar.gz
|
@ -2,8 +2,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
@ -14,7 +12,7 @@ cd $PKG_BUILD
|
||||
--disable-static \
|
||||
--datadir=/usr/share \
|
||||
--disable-fftw \
|
||||
--disable-sndfile
|
||||
--disable-sndfile \
|
||||
|
||||
make
|
||||
|
||||
|
@ -3,5 +3,5 @@
|
||||
. config/options $1
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/src/.libs/*.so* $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/src/.libs/*.so* $INSTALL/usr/lib
|
||||
|
||||
|
16
packages/audio/libsamplerate/meta
Normal file
16
packages/audio/libsamplerate/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="libsamplerate"
|
||||
PKG_VERSION="0.1.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.mega-nerd.com/SRC/"
|
||||
PKG_URL="http://www.mega-nerd.com/SRC/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS=""
|
||||
PKG_BUILD_DEPENDS="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libsamplerate: A Sample Rate Converter library for audio"
|
||||
PKG_LONGDESC="Libsamplerate is a Sample Rate Converter for audio. One example of where such a thing would be useful is converting audio from the CD sample rate of 44.1kHz to the 48kHz sample rate used by DAT players."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no" # ToDo
|
@ -1 +0,0 @@
|
||||
http://www.mega-nerd.com/SRC/libsamplerate-0.1.7.tar.gz
|
@ -12,3 +12,5 @@ PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libsndfile: A library for accessing various audio file formats"
|
||||
PKG_LONGDESC="libsndfile is a C library for reading and writing sound files such as AIFF, AU, WAV, and others through one standard interface. It can currently read/write 8, 16, 24 and 32-bit PCM files as well as 32 and 64-bit floating point WAV files and a number of compressed formats. It compiles and runs on *nix, MacOS, and Win32."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
||||
|
@ -2,9 +2,6 @@
|
||||
|
||||
. config/options $1
|
||||
|
||||
$SCRIPTS/build toolchain
|
||||
$SCRIPTS/build libogg
|
||||
|
||||
cd $PKG_BUILD
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
@ -14,6 +11,6 @@ cd $PKG_BUILD
|
||||
--enable-shared \
|
||||
--with-ogg=$SYSROOT_PREFIX/usr
|
||||
|
||||
$MAKE
|
||||
make
|
||||
|
||||
$MAKEINSTALL
|
||||
|
@ -1,7 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
. config/options $1
|
||||
$SCRIPTS/install libogg
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -PR $PKG_BUILD/lib/.libs/libvorbis*.so*[.0-9] $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/lib/.libs/libvorbis*.so*[.0-9] $INSTALL/usr/lib
|
||||
|
16
packages/audio/libvorbis/meta
Normal file
16
packages/audio/libvorbis/meta
Normal file
@ -0,0 +1,16 @@
|
||||
PKG_NAME="libvorbis"
|
||||
PKG_VERSION="1.3.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://www.vorbis.com/"
|
||||
PKG_URL="http://downloads.xiph.org/releases/vorbis/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS="libogg"
|
||||
PKG_BUILD_DEPENDS="toolchain libogg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libvorbis: Lossless audio compression tools using the ogg-vorbis algorithms"
|
||||
PKG_LONGDESC="Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to 128 kbps/channel. This places Vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="yes"
|
@ -0,0 +1,31 @@
|
||||
diff -Naur libvorbis-1.3.2-old/configure.ac libvorbis-1.3.2-new/configure.ac
|
||||
--- libvorbis-1.3.2-old/configure.ac 2010-11-01 12:27:12.000000000 -0700
|
||||
+++ libvorbis-1.3.2-new/configure.ac 2010-11-01 14:50:03.000000000 -0700
|
||||
@@ -8,6 +8,7 @@
|
||||
AC_INIT([libvorbis],[1.3.2],[vorbis-dev@xiph.org])
|
||||
|
||||
AC_CONFIG_SRCDIR([lib/mdct.c])
|
||||
+AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
AC_CANONICAL_TARGET([])
|
||||
|
||||
@@ -16,7 +17,6 @@
|
||||
AM_CONFIG_HEADER([config.h])
|
||||
|
||||
dnl Add parameters for aclocal
|
||||
-AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
|
||||
|
||||
dnl Library versioning
|
||||
dnl - library source changed -> increment REVISION
|
||||
diff -Naur libvorbis-1.3.2-old/Makefile.am libvorbis-1.3.2-new/Makefile.am
|
||||
--- libvorbis-1.3.2-old/Makefile.am 2010-03-25 18:56:25.000000000 -0700
|
||||
+++ libvorbis-1.3.2-new/Makefile.am 2010-11-01 14:50:03.000000000 -0700
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.7 foreign dist-zip dist-bzip2
|
||||
|
||||
+ACLOCAL_AMFLAGS = -I m4
|
||||
+
|
||||
SUBDIRS = m4 include vq lib test doc
|
||||
|
||||
if BUILD_EXAMPLES
|
@ -1 +0,0 @@
|
||||
http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.1.tar.bz2
|
@ -1,58 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. config/options $1
|
||||
|
||||
# ensure we dont use as-needed optimization.
|
||||
LDFLAGS=`echo $LDFLAGS | sed -e "s|-Wl,--as-needed||"`
|
||||
|
||||
if [ "$AVAHI_DAEMON" = yes ]; then
|
||||
PULSEAUDIO_AVAHI="--enable-avahi"
|
||||
else
|
||||
PULSEAUDIO_AVAHI="--disable-avahi"
|
||||
fi
|
||||
|
||||
cd $PKG_BUILD
|
||||
|
||||
$AUTORECONF
|
||||
|
||||
./configure --host=$TARGET_NAME \
|
||||
--build=$HOST_NAME \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--localstatedir=/var \
|
||||
--disable-static \
|
||||
--enable-shared \
|
||||
--disable-x11 \
|
||||
--disable-samplerate \
|
||||
--disable-oss-output \
|
||||
--disable-oss-wrapper \
|
||||
--enable-alsa \
|
||||
--disable-solaris \
|
||||
--disable-glib2 \
|
||||
--disable-gtk2 \
|
||||
--disable-gconf \
|
||||
$PULSEAUDIO_AVAHI \
|
||||
--disable-jack \
|
||||
--disable-lirc \
|
||||
--disable-hal \
|
||||
--enable-udev \
|
||||
--disable-hal-compat \
|
||||
--disable-bluez \
|
||||
--enable-dbus \
|
||||
--disable-ipv6 \
|
||||
--enable-openssl \
|
||||
--disable-manpages \
|
||||
--disable-per-user-esound-socket \
|
||||
--disable-legacy-runtime-dir \
|
||||
--with-system-user=root \
|
||||
--with-system-group=root \
|
||||
--with-access-group=root \
|
||||
--with-module-dir="/usr/lib/pulse" \
|
||||
|
||||
# --with-system-user=pulse \
|
||||
# --with-system-group=pulse \
|
||||
# --with-access-group=pulse-access \
|
||||
|
||||
make
|
||||
|
||||
$MAKEINSTALL
|
@ -1,140 +0,0 @@
|
||||
#!/usr/bin/pulseaudio -nF
|
||||
#
|
||||
# This file is part of PulseAudio.
|
||||
#
|
||||
# PulseAudio 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 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# PulseAudio 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 Lesser General Public License
|
||||
# along with PulseAudio; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
# This startup script is used only if PulseAudio is started per-user
|
||||
# (i.e. not in system mode)
|
||||
|
||||
.nofail
|
||||
|
||||
### Load something into the sample cache
|
||||
#load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav
|
||||
#load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav
|
||||
#load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav
|
||||
#load-sample-lazy pulse-access /usr/share/sounds/generic.wav
|
||||
|
||||
.fail
|
||||
|
||||
### Automatically restore the volume of streams and devices
|
||||
load-module module-device-restore
|
||||
#load-module module-stream-restore
|
||||
|
||||
#geexbox-special: enable device switching, forget about the cache
|
||||
load-module module-stream-restore restore_device=false
|
||||
load-module module-card-restore
|
||||
|
||||
### Automatically augment property information from .desktop files
|
||||
### stored in /usr/share/application
|
||||
#disabled for geexbox: load-module module-augment-properties
|
||||
|
||||
### Load audio drivers statically (it's probably better to not load
|
||||
### these drivers manually, but instead use module-hal-detect --
|
||||
### see below -- for doing this automatically)
|
||||
#load-module module-alsa-sink
|
||||
#load-module module-alsa-source device=hw:1,0
|
||||
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
|
||||
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
|
||||
#load-module module-null-sink
|
||||
#load-module module-pipe-sink
|
||||
|
||||
### Automatically load driver modules depending on the hardware available
|
||||
#disabled for geexbox: .ifexists module-udev-detect.so
|
||||
load-module module-udev-detect
|
||||
#disabled for geexbox: .else
|
||||
### Alternatively use the static hardware detection module (for systems that
|
||||
### lack udev support)
|
||||
#disabled for geexbox: load-module module-detect
|
||||
#disabled for geexbox: .endif
|
||||
|
||||
### Automatically load driver modules for Bluetooth hardware
|
||||
#disabled for geexbox: .ifexists module-bluetooth-discover.so
|
||||
#disabled for geexbox: load-module module-bluetooth-discover
|
||||
#disabled for geexbox: .endif
|
||||
|
||||
### Load several protocols
|
||||
#disabled for geexbox: .ifexists module-esound-protocol-unix.so
|
||||
#disabled for geexbox: load-module module-esound-protocol-unix
|
||||
#disabled for geexbox: .endif
|
||||
load-module module-native-protocol-unix
|
||||
|
||||
### Network access (may be configured with paprefs, so leave this commented
|
||||
### here if you plan to use paprefs)
|
||||
#load-module module-esound-protocol-tcp
|
||||
#load-module module-native-protocol-tcp
|
||||
#load-module module-zeroconf-publish
|
||||
|
||||
### Load the RTP reciever module (also configured via paprefs, see above)
|
||||
#load-module module-rtp-recv
|
||||
|
||||
### Load the RTP sender module (also configured via paprefs, see above)
|
||||
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink"
|
||||
#load-module module-rtp-send source=rtp.monitor
|
||||
|
||||
### Load additional modules from GConf settings. This can be configured with the paprefs tool.
|
||||
### Please keep in mind that the modules configured by paprefs might conflict with manually
|
||||
### loaded modules.
|
||||
#disabled for geexbox: .ifexists module-gconf.so
|
||||
#disabled for geexbox: .nofail
|
||||
#disabled for geexbox: load-module module-gconf
|
||||
#disabled for geexbox: .fail
|
||||
#disabled for geexbox: .endif
|
||||
|
||||
### Automatically restore the default sink/source when changed by the user during runtime
|
||||
load-module module-default-device-restore
|
||||
|
||||
### Automatically move streams to the default sink if the sink they are
|
||||
### connected to dies, similar for sources
|
||||
load-module module-rescue-streams
|
||||
|
||||
### Make sure we always have a sink around, even if it is a null sink.
|
||||
load-module module-always-sink
|
||||
|
||||
### Honour intended role device property
|
||||
#disabled for geexbox: load-module module-intended-roles
|
||||
|
||||
### Automatically suspend sinks/sources that become idle for too long
|
||||
load-module module-suspend-on-idle
|
||||
|
||||
### If autoexit on idle is enabled we want to make sure we only quit
|
||||
### when no local session needs us anymore.
|
||||
#disabled for geexbox: load-module module-console-kit
|
||||
|
||||
### Enable positioned event sounds
|
||||
load-module module-position-event-sounds
|
||||
|
||||
### Cork music streams when a phone stream is active
|
||||
#disabled for geexbox: load-module module-cork-music-on-phone
|
||||
|
||||
# X11 modules should not be started from default.pa so that one daemon
|
||||
# can be shared by multiple sessions.
|
||||
|
||||
### Load X11 bell module
|
||||
#load-module module-x11-bell sample=bell-windowing-system
|
||||
|
||||
### Register ourselves in the X11 session manager
|
||||
#load-module module-x11-xsmp
|
||||
|
||||
### Publish connection data in the X11 root window
|
||||
#.ifexists module-x11-publish.so
|
||||
#.nofail
|
||||
#load-module module-x11-publish
|
||||
#.fail
|
||||
#.endif
|
||||
|
||||
### Make some devices default
|
||||
#set-default-sink output
|
||||
#set-default-source input
|
@ -1,57 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. config/options $1
|
||||
|
||||
# add_user pulse x 493 483 "PulseAudio System Daemon" "/var/run/pulse" "/bin/sh"
|
||||
# add_group pulse 483
|
||||
# add_group pulse-access 482
|
||||
|
||||
mkdir -p $INSTALL/etc/dbus-1/system.d
|
||||
cp $PKG_BUILD/src/daemon/pulseaudio-system.conf $INSTALL/etc/dbus-1/system.d
|
||||
sed -e 's%user="pulse"%user="root"%g' -i $INSTALL/etc/dbus-1/system.d/pulseaudio-system.conf
|
||||
|
||||
mkdir -p $INSTALL/etc/pulse
|
||||
cp $PKG_BUILD/src/client.conf $INSTALL/etc/pulse
|
||||
cp $PKG_BUILD/src/daemon.conf $INSTALL/etc/pulse
|
||||
# cp $PKG_BUILD/src/default.pa $INSTALL/etc/pulse
|
||||
cp $PKG_DIR/config/default.pa $INSTALL/etc/pulse
|
||||
cp $PKG_BUILD/src/system.pa $INSTALL/etc/pulse
|
||||
|
||||
mkdir -p $INSTALL/lib/udev/rules.d
|
||||
cp $PKG_BUILD/src/modules/alsa/mixer/profile-sets/90-pulseaudio.rules $INSTALL/lib/udev/rules.d
|
||||
|
||||
mkdir -p $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/src/.libs/pabrowse $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/src/.libs/pacat $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/src/.libs/pacmd $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/src/.libs/pactl $INSTALL/usr/bin
|
||||
ln -sf pactl $INSTALL/usr/bin/pamon
|
||||
ln -sf pactl $INSTALL/usr/bin/paplay
|
||||
ln -sf pactl $INSTALL/usr/bin/parec
|
||||
ln -sf pactl $INSTALL/usr/bin/parecord
|
||||
cp $PKG_BUILD/src/.libs/pasuspender $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/src/.libs/pulseaudio $INSTALL/usr/bin
|
||||
cp $PKG_BUILD/src/start-pulseaudio-x11 $INSTALL/usr/bin
|
||||
|
||||
mkdir -p $INSTALL/usr/lib
|
||||
cp -P $PKG_BUILD/src/.libs/libpulse*.so* $INSTALL/usr/lib
|
||||
rm -rf $INSTALL/usr/lib/libpulse*.so*T
|
||||
|
||||
mkdir -p $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libalsa-util.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libavahi-wrap.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libcli.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libprotocol-cli.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libprotocol-esound.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libprotocol-http.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libprotocol-native.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libprotocol-simple.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/libraop.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/librtp.so $INSTALL/usr/lib/pulse
|
||||
cp -P $PKG_BUILD/src/.libs/module-*.so $INSTALL/usr/lib/pulse
|
||||
|
||||
mkdir -p $INSTALL/usr/share/pulseaudio/alsa-mixer/paths
|
||||
cp $PKG_BUILD/src/modules/alsa/mixer/paths/* $INSTALL/usr/share/pulseaudio/alsa-mixer/paths
|
||||
|
||||
mkdir -p $INSTALL/usr/share/pulseaudio/alsa-mixer/profile-sets
|
||||
cp $PKG_BUILD/src/modules/alsa/mixer/profile-sets/*.conf $INSTALL/usr/share/pulseaudio/alsa-mixer/profile-sets
|
@ -1,19 +0,0 @@
|
||||
PKG_NAME="pulseaudio"
|
||||
PKG_VERSION="0.9.21"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://pulseaudio.org/"
|
||||
PKG_URL="http://0pointer.de/lennart/projects/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS="libtool alsa-lib libsndfile speex dbus udev openssl alsa-plugins"
|
||||
PKG_BUILD_DEPENDS="toolchain libtool alsa-lib libsndfile speex dbus udev openssl"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="pulseaudio: Yet another sound server for Unix"
|
||||
PKG_LONGDESC="PulseAudio is a sound server for Linux and other Unix-like operating systems. It is intended to be an improved drop-in replacement for the Enlightened Sound Daemon (esound or esd). In addition to the features esound provides, PulseAudio has an extensible plugin architecture, support for more than one sink per source, better low-latency behavior, the ability to be embedded into other software, a completely asynchronous C API, a simple command line interface for reconfiguring the daemon while running, flexible and implicit sample type conversion and resampling, and a "Zero-Copy" architecture."
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
if [ "$AVAHI_DAEMON" = yes ]; then
|
||||
PKG_DEPENDS="$PKG_DEPENDS avahi"
|
||||
PKG_BUILD_DEPENDS="$PKG_BUILD_DEPENDS avahi"
|
||||
fi
|
@ -1,289 +0,0 @@
|
||||
From c41ee00893b6b0d5cc48ee041b8e4835eac548f0 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 8 Jan 2010 20:06:21 +0100
|
||||
Subject: [PATCH 01/62] dbus: remove filter functions only if they were actually set before
|
||||
|
||||
This fixes an assert when destructing modules that have not been fully
|
||||
initialized.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=548525
|
||||
---
|
||||
src/modules/bluetooth/bluetooth-util.c | 5 +++-
|
||||
src/modules/bluetooth/module-bluetooth-device.c | 7 ++++-
|
||||
src/modules/bluetooth/module-bluetooth-proximity.c | 11 ++++----
|
||||
src/modules/module-console-kit.c | 9 +++++-
|
||||
src/modules/module-hal-detect.c | 10 ++++----
|
||||
src/pulse/context.c | 25 ++++---------------
|
||||
src/pulse/internal.h | 1 +
|
||||
7 files changed, 34 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c
|
||||
index 47d6200..795d510 100644
|
||||
--- a/src/modules/bluetooth/bluetooth-util.c
|
||||
+++ b/src/modules/bluetooth/bluetooth-util.c
|
||||
@@ -37,6 +37,7 @@ struct pa_bluetooth_discovery {
|
||||
PA_LLIST_HEAD(pa_dbus_pending, pending);
|
||||
pa_hashmap *devices;
|
||||
pa_hook hook;
|
||||
+ pa_bool_t filter_added;
|
||||
};
|
||||
|
||||
static void get_properties_reply(DBusPendingCall *pending, void *userdata);
|
||||
@@ -788,6 +789,7 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_get(pa_core *c) {
|
||||
pa_log_error("Failed to add filter function");
|
||||
goto fail;
|
||||
}
|
||||
+ y->filter_added = TRUE;
|
||||
|
||||
if (pa_dbus_add_matches(
|
||||
pa_dbus_connection_get(y->connection), &err,
|
||||
@@ -856,7 +858,8 @@ void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *y) {
|
||||
"type='signal',sender='org.bluez',interface='org.bluez.AudioSink',member='PropertyChanged'",
|
||||
"type='signal',sender='org.bluez',interface='org.bluez.AudioSource',member='PropertyChanged'", NULL);
|
||||
|
||||
- dbus_connection_remove_filter(pa_dbus_connection_get(y->connection), filter_cb, y);
|
||||
+ if (y->filter_added)
|
||||
+ dbus_connection_remove_filter(pa_dbus_connection_get(y->connection), filter_cb, y);
|
||||
|
||||
pa_dbus_connection_unref(y->connection);
|
||||
}
|
||||
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
|
||||
index 0ba1421..19676df 100644
|
||||
--- a/src/modules/bluetooth/module-bluetooth-device.c
|
||||
+++ b/src/modules/bluetooth/module-bluetooth-device.c
|
||||
@@ -179,6 +179,8 @@ struct userdata {
|
||||
|
||||
int stream_write_type;
|
||||
int service_write_type, service_read_type;
|
||||
+
|
||||
+ pa_bool_t filter_added;
|
||||
};
|
||||
|
||||
#define FIXED_LATENCY_PLAYBACK_A2DP (25*PA_USEC_PER_MSEC)
|
||||
@@ -2405,6 +2407,7 @@ int pa__init(pa_module* m) {
|
||||
pa_log_error("Failed to add filter function");
|
||||
goto fail;
|
||||
}
|
||||
+ u->filter_added = TRUE;
|
||||
|
||||
speaker = pa_sprintf_malloc("type='signal',sender='org.bluez',interface='org.bluez.Headset',member='SpeakerGainChanged',path='%s'", u->path);
|
||||
mike = pa_sprintf_malloc("type='signal',sender='org.bluez',interface='org.bluez.Headset',member='MicrophoneGainChanged',path='%s'", u->path);
|
||||
@@ -2494,7 +2497,9 @@ void pa__done(pa_module *m) {
|
||||
pa_xfree(mike);
|
||||
}
|
||||
|
||||
- dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u);
|
||||
+ if (u->filter_added)
|
||||
+ dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u);
|
||||
+
|
||||
pa_dbus_connection_unref(u->connection);
|
||||
}
|
||||
|
||||
diff --git a/src/modules/bluetooth/module-bluetooth-proximity.c b/src/modules/bluetooth/module-bluetooth-proximity.c
|
||||
index c4cfd73..3eed9ce 100644
|
||||
--- a/src/modules/bluetooth/module-bluetooth-proximity.c
|
||||
+++ b/src/modules/bluetooth/module-bluetooth-proximity.c
|
||||
@@ -92,7 +92,8 @@ struct userdata {
|
||||
unsigned n_found;
|
||||
unsigned n_unknown;
|
||||
|
||||
- pa_bool_t muted;
|
||||
+ pa_bool_t muted:1;
|
||||
+ pa_bool_t filter_added:1;
|
||||
};
|
||||
|
||||
static void update_volume(struct userdata *u) {
|
||||
@@ -358,9 +359,10 @@ static int add_matches(struct userdata *u, pa_bool_t add) {
|
||||
} else
|
||||
dbus_bus_remove_match(pa_dbus_connection_get(u->dbus_connection), filter2, &e);
|
||||
|
||||
- if (add)
|
||||
+ if (add) {
|
||||
pa_assert_se(dbus_connection_add_filter(pa_dbus_connection_get(u->dbus_connection), filter_func, u, NULL));
|
||||
- else
|
||||
+ u->filter_added = TRUE;
|
||||
+ } else if (u->filter_added)
|
||||
dbus_connection_remove_filter(pa_dbus_connection_get(u->dbus_connection), filter_func, u);
|
||||
|
||||
r = 0;
|
||||
@@ -393,9 +395,6 @@ int pa__init(pa_module*m) {
|
||||
u->sink_name = pa_xstrdup(pa_modargs_get_value(ma, "sink", NULL));
|
||||
u->hci = pa_xstrdup(pa_modargs_get_value(ma, "hci", DEFAULT_HCI));
|
||||
u->hci_path = pa_sprintf_malloc("/org/bluez/%s", u->hci);
|
||||
- u->n_found = u->n_unknown = 0;
|
||||
- u->muted = FALSE;
|
||||
-
|
||||
u->bondings = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
|
||||
|
||||
if (!(u->dbus_connection = pa_dbus_bus_get(m->core, DBUS_BUS_SYSTEM, &e))) {
|
||||
diff --git a/src/modules/module-console-kit.c b/src/modules/module-console-kit.c
|
||||
index 103f5c4..875852f 100644
|
||||
--- a/src/modules/module-console-kit.c
|
||||
+++ b/src/modules/module-console-kit.c
|
||||
@@ -67,6 +67,7 @@ struct userdata {
|
||||
pa_core *core;
|
||||
pa_dbus_connection *connection;
|
||||
pa_hashmap *sessions;
|
||||
+ pa_bool_t filter_added;
|
||||
};
|
||||
|
||||
static void add_session(struct userdata *u, const char *id) {
|
||||
@@ -300,7 +301,7 @@ int pa__init(pa_module*m) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
- m->userdata = u = pa_xnew(struct userdata, 1);
|
||||
+ m->userdata = u = pa_xnew0(struct userdata, 1);
|
||||
u->core = m->core;
|
||||
u->module = m;
|
||||
u->connection = connection;
|
||||
@@ -311,6 +312,8 @@ int pa__init(pa_module*m) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
+ u->filter_added = TRUE;
|
||||
+
|
||||
if (pa_dbus_add_matches(
|
||||
pa_dbus_connection_get(connection), &error,
|
||||
"type='signal',sender='org.freedesktop.ConsoleKit',interface='org.freedesktop.ConsoleKit.Seat',member='SessionAdded'",
|
||||
@@ -359,7 +362,9 @@ void pa__done(pa_module *m) {
|
||||
"type='signal',sender='org.freedesktop.ConsoleKit',interface='org.freedesktop.ConsoleKit.Seat',member='SessionAdded'",
|
||||
"type='signal',sender='org.freedesktop.ConsoleKit',interface='org.freedesktop.ConsoleKit.Seat',member='SessionRemoved'", NULL);
|
||||
|
||||
- dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u);
|
||||
+ if (u->filter_added)
|
||||
+ dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u);
|
||||
+
|
||||
pa_dbus_connection_unref(u->connection);
|
||||
}
|
||||
|
||||
diff --git a/src/modules/module-hal-detect.c b/src/modules/module-hal-detect.c
|
||||
index 1851913..23d4010 100644
|
||||
--- a/src/modules/module-hal-detect.c
|
||||
+++ b/src/modules/module-hal-detect.c
|
||||
@@ -87,6 +87,7 @@ struct userdata {
|
||||
#ifdef HAVE_OSS_OUTPUT
|
||||
pa_bool_t init_subdevs;
|
||||
#endif
|
||||
+ pa_bool_t filter_added:1;
|
||||
};
|
||||
|
||||
#define CAPABILITY_ALSA "alsa"
|
||||
@@ -733,12 +734,9 @@ int pa__init(pa_module*m) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
- m->userdata = u = pa_xnew(struct userdata, 1);
|
||||
+ m->userdata = u = pa_xnew0(struct userdata, 1);
|
||||
u->core = m->core;
|
||||
- u->context = NULL;
|
||||
- u->connection = NULL;
|
||||
u->devices = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
|
||||
- u->capability = NULL;
|
||||
|
||||
#ifdef HAVE_ALSA
|
||||
u->use_tsched = TRUE;
|
||||
@@ -800,6 +798,7 @@ int pa__init(pa_module*m) {
|
||||
pa_log_error("Failed to add filter function");
|
||||
goto fail;
|
||||
}
|
||||
+ u->filter_added = TRUE;
|
||||
|
||||
if (pa_dbus_add_matches(
|
||||
pa_dbus_connection_get(u->connection), &error,
|
||||
@@ -856,7 +855,8 @@ void pa__done(pa_module *m) {
|
||||
"type='signal',sender='org.freedesktop.Hal',interface='org.freedesktop.Hal.Device.AccessControl',member='ACLRemoved'",
|
||||
"type='signal',interface='org.pulseaudio.Server',member='DirtyGiveUpMessage'", NULL);
|
||||
|
||||
- dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u);
|
||||
+ if (u->filter_added)
|
||||
+ dbus_connection_remove_filter(pa_dbus_connection_get(u->connection), filter_cb, u);
|
||||
pa_dbus_connection_unref(u->connection);
|
||||
}
|
||||
|
||||
diff --git a/src/pulse/context.c b/src/pulse/context.c
|
||||
index 7468d0a..c83230d 100644
|
||||
--- a/src/pulse/context.c
|
||||
+++ b/src/pulse/context.c
|
||||
@@ -145,7 +145,7 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char *
|
||||
|
||||
pa_init_i18n();
|
||||
|
||||
- c = pa_xnew(pa_context, 1);
|
||||
+ c = pa_xnew0(pa_context, 1);
|
||||
PA_REFCNT_INIT(c);
|
||||
|
||||
c->proplist = p ? pa_proplist_copy(p) : pa_proplist_new();
|
||||
@@ -157,9 +157,6 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char *
|
||||
c->system_bus = c->session_bus = NULL;
|
||||
#endif
|
||||
c->mainloop = mainloop;
|
||||
- c->client = NULL;
|
||||
- c->pstream = NULL;
|
||||
- c->pdispatch = NULL;
|
||||
c->playback_streams = pa_dynarray_new();
|
||||
c->record_streams = pa_dynarray_new();
|
||||
c->client_index = PA_INVALID_INDEX;
|
||||
@@ -170,22 +167,9 @@ pa_context *pa_context_new_with_proplist(pa_mainloop_api *mainloop, const char *
|
||||
|
||||
c->error = PA_OK;
|
||||
c->state = PA_CONTEXT_UNCONNECTED;
|
||||
- c->ctag = 0;
|
||||
- c->csyncid = 0;
|
||||
|
||||
reset_callbacks(c);
|
||||
|
||||
- c->is_local = FALSE;
|
||||
- c->server_list = NULL;
|
||||
- c->server = NULL;
|
||||
-
|
||||
- c->do_shm = FALSE;
|
||||
-
|
||||
- c->server_specified = FALSE;
|
||||
- c->no_fail = FALSE;
|
||||
- c->do_autospawn = FALSE;
|
||||
- memset(&c->spawn_api, 0, sizeof(c->spawn_api));
|
||||
-
|
||||
#ifndef MSG_NOSIGNAL
|
||||
#ifdef SIGPIPE
|
||||
pa_check_signal_is_blocked(SIGPIPE);
|
||||
@@ -255,12 +239,14 @@ static void context_free(pa_context *c) {
|
||||
|
||||
#ifdef HAVE_DBUS
|
||||
if (c->system_bus) {
|
||||
- dbus_connection_remove_filter(pa_dbus_wrap_connection_get(c->system_bus), filter_cb, c);
|
||||
+ if (c->filter_added)
|
||||
+ dbus_connection_remove_filter(pa_dbus_wrap_connection_get(c->system_bus), filter_cb, c);
|
||||
pa_dbus_wrap_connection_free(c->system_bus);
|
||||
}
|
||||
|
||||
if (c->session_bus) {
|
||||
- dbus_connection_remove_filter(pa_dbus_wrap_connection_get(c->session_bus), filter_cb, c);
|
||||
+ if (c->filter_added)
|
||||
+ dbus_connection_remove_filter(pa_dbus_wrap_connection_get(c->session_bus), filter_cb, c);
|
||||
pa_dbus_wrap_connection_free(c->session_bus);
|
||||
}
|
||||
#endif
|
||||
@@ -794,6 +780,7 @@ static void track_pulseaudio_on_dbus(pa_context *c, DBusBusType type, pa_dbus_wr
|
||||
pa_log_warn("Failed to add filter function");
|
||||
goto fail;
|
||||
}
|
||||
+ c->filter_added = TRUE;
|
||||
|
||||
if (pa_dbus_add_matches(
|
||||
pa_dbus_wrap_connection_get(*conn), &error,
|
||||
diff --git a/src/pulse/internal.h b/src/pulse/internal.h
|
||||
index b371bfc..c3ebf74 100644
|
||||
--- a/src/pulse/internal.h
|
||||
+++ b/src/pulse/internal.h
|
||||
@@ -91,6 +91,7 @@ struct pa_context {
|
||||
pa_bool_t no_fail:1;
|
||||
pa_bool_t do_autospawn:1;
|
||||
pa_bool_t use_rtclock:1;
|
||||
+ pa_bool_t filter_added:1;
|
||||
pa_spawn_api spawn_api;
|
||||
|
||||
pa_strlist *server_list;
|
||||
--
|
||||
1.7.0
|
||||
|
@ -1,275 +0,0 @@
|
||||
From 8d356659e69556fa25d0579a66084f820683e2b8 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 8 Jan 2010 20:07:34 +0100
|
||||
Subject: [PATCH 02/62] native: fix request counter miscalculations
|
||||
|
||||
Do not subtract bytes the client sends us beyond what we requested from
|
||||
our missing bytes counter.
|
||||
|
||||
This was mostly a thinko that caused servers asking for too little data
|
||||
when the client initially sent more data than requested, because that
|
||||
data sent too much was accounted for twice.
|
||||
|
||||
This commit fixes this miscalculation.
|
||||
|
||||
http://bugzilla.redhat.com/show_bug.cgi?id=534130
|
||||
---
|
||||
src/pulse/stream.c | 4 ++
|
||||
src/pulsecore/memblockq.c | 101 ++++++++++++++++++---------------------
|
||||
src/pulsecore/protocol-native.c | 7 ++-
|
||||
3 files changed, 55 insertions(+), 57 deletions(-)
|
||||
|
||||
diff --git a/src/pulse/stream.c b/src/pulse/stream.c
|
||||
index d01985b..793277a 100644
|
||||
--- a/src/pulse/stream.c
|
||||
+++ b/src/pulse/stream.c
|
||||
@@ -741,6 +741,8 @@ void pa_command_request(pa_pdispatch *pd, uint32_t command, uint32_t tag, pa_tag
|
||||
|
||||
s->requested_bytes += bytes;
|
||||
|
||||
+ /* pa_log("got request for %lli, now at %lli", (long long) bytes, (long long) s->requested_bytes); */
|
||||
+
|
||||
if (s->requested_bytes > 0 && s->write_callback)
|
||||
s->write_callback(s, (size_t) s->requested_bytes, s->write_userdata);
|
||||
|
||||
@@ -1354,6 +1356,8 @@ int pa_stream_write(
|
||||
* that's OK, the server side applies the same error */
|
||||
s->requested_bytes -= (seek == PA_SEEK_RELATIVE ? offset : 0) + (int64_t) length;
|
||||
|
||||
+ /* pa_log("wrote %lli, now at %lli", (long long) length, (long long) s->requested_bytes); */
|
||||
+
|
||||
if (s->direction == PA_STREAM_PLAYBACK) {
|
||||
|
||||
/* Update latency request correction */
|
||||
diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c
|
||||
index 32758be..4641801 100644
|
||||
--- a/src/pulsecore/memblockq.c
|
||||
+++ b/src/pulsecore/memblockq.c
|
||||
@@ -55,8 +55,7 @@ struct pa_memblockq {
|
||||
pa_bool_t in_prebuf;
|
||||
pa_memchunk silence;
|
||||
pa_mcalign *mcalign;
|
||||
- int64_t missing;
|
||||
- size_t requested;
|
||||
+ int64_t missing, requested;
|
||||
};
|
||||
|
||||
pa_memblockq* pa_memblockq_new(
|
||||
@@ -84,8 +83,8 @@ pa_memblockq* pa_memblockq_new(
|
||||
pa_log_debug("memblockq requested: maxlength=%lu, tlength=%lu, base=%lu, prebuf=%lu, minreq=%lu maxrewind=%lu",
|
||||
(unsigned long) maxlength, (unsigned long) tlength, (unsigned long) base, (unsigned long) prebuf, (unsigned long) minreq, (unsigned long) maxrewind);
|
||||
|
||||
- bq->missing = 0;
|
||||
- bq->requested = bq->maxlength = bq->tlength = bq->prebuf = bq->minreq = bq->maxrewind = 0;
|
||||
+ bq->missing = bq->requested = 0;
|
||||
+ bq->maxlength = bq->tlength = bq->prebuf = bq->minreq = bq->maxrewind = 0;
|
||||
bq->in_prebuf = TRUE;
|
||||
|
||||
pa_memblockq_set_maxlength(bq, maxlength);
|
||||
@@ -246,10 +245,34 @@ static pa_bool_t can_push(pa_memblockq *bq, size_t l) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+static void write_index_changed(pa_memblockq *bq, int64_t old_write_index, pa_bool_t account) {
|
||||
+ int64_t delta;
|
||||
+
|
||||
+ pa_assert(bq);
|
||||
+
|
||||
+ delta = bq->write_index - old_write_index;
|
||||
+
|
||||
+ if (account)
|
||||
+ bq->requested -= delta;
|
||||
+
|
||||
+ /* pa_log("pushed/seeked %lli: requested counter at %lli, account=%i", (long long) delta, (long long) bq->requested, account); */
|
||||
+}
|
||||
+
|
||||
+static void read_index_changed(pa_memblockq *bq, int64_t old_read_index) {
|
||||
+ int64_t delta;
|
||||
+
|
||||
+ pa_assert(bq);
|
||||
+
|
||||
+ delta = bq->read_index - old_read_index;
|
||||
+ bq->missing += delta;
|
||||
+
|
||||
+ /* pa_log("popped %lli: missing counter at %lli", (long long) delta, (long long) bq->missing); */
|
||||
+}
|
||||
+
|
||||
int pa_memblockq_push(pa_memblockq* bq, const pa_memchunk *uchunk) {
|
||||
struct list_item *q, *n;
|
||||
pa_memchunk chunk;
|
||||
- int64_t old, delta;
|
||||
+ int64_t old;
|
||||
|
||||
pa_assert(bq);
|
||||
pa_assert(uchunk);
|
||||
@@ -409,18 +432,7 @@ int pa_memblockq_push(pa_memblockq* bq, const pa_memchunk *uchunk) {
|
||||
|
||||
finish:
|
||||
|
||||
- delta = bq->write_index - old;
|
||||
-
|
||||
- if (delta >= (int64_t) bq->requested) {
|
||||
- delta -= (int64_t) bq->requested;
|
||||
- bq->requested = 0;
|
||||
- } else {
|
||||
- bq->requested -= (size_t) delta;
|
||||
- delta = 0;
|
||||
- }
|
||||
-
|
||||
- bq->missing -= delta;
|
||||
-
|
||||
+ write_index_changed(bq, old, TRUE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -514,7 +526,7 @@ int pa_memblockq_peek(pa_memblockq* bq, pa_memchunk *chunk) {
|
||||
}
|
||||
|
||||
void pa_memblockq_drop(pa_memblockq *bq, size_t length) {
|
||||
- int64_t old, delta;
|
||||
+ int64_t old;
|
||||
pa_assert(bq);
|
||||
pa_assert(length % bq->base == 0);
|
||||
|
||||
@@ -553,19 +565,21 @@ void pa_memblockq_drop(pa_memblockq *bq, size_t length) {
|
||||
}
|
||||
|
||||
drop_backlog(bq);
|
||||
-
|
||||
- delta = bq->read_index - old;
|
||||
- bq->missing += delta;
|
||||
+ read_index_changed(bq, old);
|
||||
}
|
||||
|
||||
void pa_memblockq_rewind(pa_memblockq *bq, size_t length) {
|
||||
+ int64_t old;
|
||||
pa_assert(bq);
|
||||
pa_assert(length % bq->base == 0);
|
||||
|
||||
+ old = bq->read_index;
|
||||
+
|
||||
/* This is kind of the inverse of pa_memblockq_drop() */
|
||||
|
||||
bq->read_index -= (int64_t) length;
|
||||
- bq->missing -= (int64_t) length;
|
||||
+
|
||||
+ read_index_changed(bq, old);
|
||||
}
|
||||
|
||||
pa_bool_t pa_memblockq_is_readable(pa_memblockq *bq) {
|
||||
@@ -602,7 +616,7 @@ size_t pa_memblockq_missing(pa_memblockq *bq) {
|
||||
}
|
||||
|
||||
void pa_memblockq_seek(pa_memblockq *bq, int64_t offset, pa_seek_mode_t seek, pa_bool_t account) {
|
||||
- int64_t old, delta;
|
||||
+ int64_t old;
|
||||
pa_assert(bq);
|
||||
|
||||
old = bq->write_index;
|
||||
@@ -625,24 +639,11 @@ void pa_memblockq_seek(pa_memblockq *bq, int64_t offset, pa_seek_mode_t seek, pa
|
||||
}
|
||||
|
||||
drop_backlog(bq);
|
||||
-
|
||||
- delta = bq->write_index - old;
|
||||
-
|
||||
- if (account) {
|
||||
- if (delta >= (int64_t) bq->requested) {
|
||||
- delta -= (int64_t) bq->requested;
|
||||
- bq->requested = 0;
|
||||
- } else if (delta >= 0) {
|
||||
- bq->requested -= (size_t) delta;
|
||||
- delta = 0;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- bq->missing -= delta;
|
||||
+ write_index_changed(bq, old, account);
|
||||
}
|
||||
|
||||
void pa_memblockq_flush_write(pa_memblockq *bq) {
|
||||
- int64_t old, delta;
|
||||
+ int64_t old;
|
||||
pa_assert(bq);
|
||||
|
||||
pa_memblockq_silence(bq);
|
||||
@@ -651,22 +652,11 @@ void pa_memblockq_flush_write(pa_memblockq *bq) {
|
||||
bq->write_index = bq->read_index;
|
||||
|
||||
pa_memblockq_prebuf_force(bq);
|
||||
-
|
||||
- delta = bq->write_index - old;
|
||||
-
|
||||
- if (delta >= (int64_t) bq->requested) {
|
||||
- delta -= (int64_t) bq->requested;
|
||||
- bq->requested = 0;
|
||||
- } else if (delta >= 0) {
|
||||
- bq->requested -= (size_t) delta;
|
||||
- delta = 0;
|
||||
- }
|
||||
-
|
||||
- bq->missing -= delta;
|
||||
+ write_index_changed(bq, old, TRUE);
|
||||
}
|
||||
|
||||
void pa_memblockq_flush_read(pa_memblockq *bq) {
|
||||
- int64_t old, delta;
|
||||
+ int64_t old;
|
||||
pa_assert(bq);
|
||||
|
||||
pa_memblockq_silence(bq);
|
||||
@@ -675,9 +665,7 @@ void pa_memblockq_flush_read(pa_memblockq *bq) {
|
||||
bq->read_index = bq->write_index;
|
||||
|
||||
pa_memblockq_prebuf_force(bq);
|
||||
-
|
||||
- delta = bq->read_index - old;
|
||||
- bq->missing += delta;
|
||||
+ read_index_changed(bq, old);
|
||||
}
|
||||
|
||||
size_t pa_memblockq_get_tlength(pa_memblockq *bq) {
|
||||
@@ -774,8 +762,11 @@ size_t pa_memblockq_pop_missing(pa_memblockq *bq) {
|
||||
return 0;
|
||||
|
||||
l = (size_t) bq->missing;
|
||||
+
|
||||
+ bq->requested += bq->missing;
|
||||
bq->missing = 0;
|
||||
- bq->requested += l;
|
||||
+
|
||||
+ /* pa_log("sent %lli: request counter is at %lli", (long long) l, (long long) bq->requested); */
|
||||
|
||||
return l;
|
||||
}
|
||||
diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c
|
||||
index 6e35762..b7b3f59 100644
|
||||
--- a/src/pulsecore/protocol-native.c
|
||||
+++ b/src/pulsecore/protocol-native.c
|
||||
@@ -1113,6 +1113,8 @@ static playback_stream* playback_stream_new(
|
||||
|
||||
*missing = (uint32_t) pa_memblockq_pop_missing(s->memblockq);
|
||||
|
||||
+ /* pa_log("missing original: %li", (long int) *missing); */
|
||||
+
|
||||
*ss = s->sink_input->sample_spec;
|
||||
*map = s->sink_input->channel_map;
|
||||
|
||||
@@ -1137,11 +1139,12 @@ static void playback_stream_request_bytes(playback_stream *s) {
|
||||
|
||||
m = pa_memblockq_pop_missing(s->memblockq);
|
||||
|
||||
- /* pa_log("request_bytes(%lu) (tlength=%lu minreq=%lu length=%lu)", */
|
||||
+ /* pa_log("request_bytes(%lu) (tlength=%lu minreq=%lu length=%lu really missing=%lli)", */
|
||||
/* (unsigned long) m, */
|
||||
/* pa_memblockq_get_tlength(s->memblockq), */
|
||||
/* pa_memblockq_get_minreq(s->memblockq), */
|
||||
- /* pa_memblockq_get_length(s->memblockq)); */
|
||||
+ /* pa_memblockq_get_length(s->memblockq), */
|
||||
+ /* (long long) pa_memblockq_get_tlength(s->memblockq) - (long long) pa_memblockq_get_length(s->memblockq)); */
|
||||
|
||||
if (m <= 0)
|
||||
return;
|
||||
--
|
||||
1.7.0
|
||||
|
@ -1,161 +0,0 @@
|
||||
From 3eed219a50c943251b41814e779cc37daf47e8f4 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 8 Jan 2010 21:51:30 +0100
|
||||
Subject: [PATCH 03/62] core: make sure we always return a valid memblock in sink_input_pop() callbacks
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=553607
|
||||
---
|
||||
src/modules/module-combine.c | 2 +-
|
||||
src/modules/module-ladspa-sink.c | 6 +++++-
|
||||
src/pulsecore/play-memchunk.c | 6 +++++-
|
||||
src/pulsecore/protocol-esound.c | 5 ++++-
|
||||
src/pulsecore/protocol-simple.c | 6 +++++-
|
||||
src/pulsecore/sound-file-stream.c | 5 ++++-
|
||||
6 files changed, 24 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/modules/module-combine.c b/src/modules/module-combine.c
|
||||
index a186c89..62e6267 100644
|
||||
--- a/src/modules/module-combine.c
|
||||
+++ b/src/modules/module-combine.c
|
||||
@@ -890,7 +890,7 @@ static struct output *output_new(struct userdata *u, pa_sink *sink) {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
- NULL);
|
||||
+ &u->sink->silence);
|
||||
|
||||
pa_assert_se(pa_idxset_put(u->outputs, o, NULL) == 0);
|
||||
update_description(u);
|
||||
diff --git a/src/modules/module-ladspa-sink.c b/src/modules/module-ladspa-sink.c
|
||||
index 994c778..185871b 100644
|
||||
--- a/src/modules/module-ladspa-sink.c
|
||||
+++ b/src/modules/module-ladspa-sink.c
|
||||
@@ -476,6 +476,7 @@ int pa__init(pa_module*m) {
|
||||
unsigned long input_port, output_port, p, j, n_control;
|
||||
unsigned c;
|
||||
pa_bool_t *use_default = NULL;
|
||||
+ pa_memchunk silence;
|
||||
|
||||
pa_assert(m);
|
||||
|
||||
@@ -514,7 +515,10 @@ int pa__init(pa_module*m) {
|
||||
u = pa_xnew0(struct userdata, 1);
|
||||
u->module = m;
|
||||
m->userdata = u;
|
||||
- u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL);
|
||||
+
|
||||
+ pa_silence_memchunk_get(&m->core->silence_cache, m->core->mempool, &silence, &ss, 0);
|
||||
+ u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, &silence);
|
||||
+ pa_memblock_unref(silence.memblock);
|
||||
|
||||
if (!(e = getenv("LADSPA_PATH")))
|
||||
e = LADSPA_PATH;
|
||||
diff --git a/src/pulsecore/play-memchunk.c b/src/pulsecore/play-memchunk.c
|
||||
index f127d7a..1a3bd5b 100644
|
||||
--- a/src/pulsecore/play-memchunk.c
|
||||
+++ b/src/pulsecore/play-memchunk.c
|
||||
@@ -47,12 +47,16 @@ int pa_play_memchunk(
|
||||
|
||||
pa_memblockq *q;
|
||||
int r;
|
||||
+ pa_memchunk silence;
|
||||
|
||||
pa_assert(sink);
|
||||
pa_assert(ss);
|
||||
pa_assert(chunk);
|
||||
|
||||
- q = pa_memblockq_new(0, chunk->length, 0, pa_frame_size(ss), 1, 1, 0, NULL);
|
||||
+ pa_silence_memchunk_get(&sink->core->silence_cache, sink->core->mempool, &silence, ss, 0);
|
||||
+ q = pa_memblockq_new(0, chunk->length, 0, pa_frame_size(ss), 1, 1, 0, &silence);
|
||||
+ pa_memblock_unref(silence.memblock);
|
||||
+
|
||||
pa_assert_se(pa_memblockq_push(q, chunk) >= 0);
|
||||
|
||||
if ((r = pa_play_memblockq(sink, ss, map, q, volume, p, sink_input_index)) < 0) {
|
||||
diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c
|
||||
index 2326eb3..a89f327 100644
|
||||
--- a/src/pulsecore/protocol-esound.c
|
||||
+++ b/src/pulsecore/protocol-esound.c
|
||||
@@ -389,6 +389,7 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void
|
||||
size_t l;
|
||||
pa_sink *sink = NULL;
|
||||
pa_sink_input_new_data sdata;
|
||||
+ pa_memchunk silence;
|
||||
|
||||
connection_assert_ref(c);
|
||||
pa_assert(data);
|
||||
@@ -435,6 +436,7 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void
|
||||
CHECK_VALIDITY(c->sink_input, "Failed to create sink input.");
|
||||
|
||||
l = (size_t) ((double) pa_bytes_per_second(&ss)*PLAYBACK_BUFFER_SECONDS);
|
||||
+ pa_sink_input_get_silence(c->sink_input, &silence);
|
||||
c->input_memblockq = pa_memblockq_new(
|
||||
0,
|
||||
l,
|
||||
@@ -443,7 +445,8 @@ static int esd_proto_stream_play(connection *c, esd_proto_t request, const void
|
||||
(size_t) -1,
|
||||
l/PLAYBACK_BUFFER_FRAGMENTS,
|
||||
0,
|
||||
- NULL);
|
||||
+ &silence);
|
||||
+ pa_memblock_unref(silence.memblock);
|
||||
pa_iochannel_socket_set_rcvbuf(c->io, l);
|
||||
|
||||
c->sink_input->parent.process_msg = sink_input_process_msg;
|
||||
diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c
|
||||
index a9f7389..fb2e564 100644
|
||||
--- a/src/pulsecore/protocol-simple.c
|
||||
+++ b/src/pulsecore/protocol-simple.c
|
||||
@@ -525,6 +525,7 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp
|
||||
|
||||
if (o->playback) {
|
||||
pa_sink_input_new_data data;
|
||||
+ pa_memchunk silence;
|
||||
size_t l;
|
||||
pa_sink *sink;
|
||||
|
||||
@@ -559,6 +560,7 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp
|
||||
pa_sink_input_set_requested_latency(c->sink_input, DEFAULT_SINK_LATENCY);
|
||||
|
||||
l = (size_t) ((double) pa_bytes_per_second(&o->sample_spec)*PLAYBACK_BUFFER_SECONDS);
|
||||
+ pa_sink_input_get_silence(c->sink_input, &silence);
|
||||
c->input_memblockq = pa_memblockq_new(
|
||||
0,
|
||||
l,
|
||||
@@ -567,7 +569,9 @@ void pa_simple_protocol_connect(pa_simple_protocol *p, pa_iochannel *io, pa_simp
|
||||
(size_t) -1,
|
||||
l/PLAYBACK_BUFFER_FRAGMENTS,
|
||||
0,
|
||||
- NULL);
|
||||
+ &silence);
|
||||
+ pa_memblock_unref(silence.memblock);
|
||||
+
|
||||
pa_iochannel_socket_set_rcvbuf(io, l);
|
||||
|
||||
pa_atomic_store(&c->playback.missing, (int) pa_memblockq_missing(c->input_memblockq));
|
||||
diff --git a/src/pulsecore/sound-file-stream.c b/src/pulsecore/sound-file-stream.c
|
||||
index 16de492..2025c2a 100644
|
||||
--- a/src/pulsecore/sound-file-stream.c
|
||||
+++ b/src/pulsecore/sound-file-stream.c
|
||||
@@ -239,6 +239,7 @@ int pa_play_file(
|
||||
pa_sink_input_new_data data;
|
||||
int fd;
|
||||
SF_INFO sfi;
|
||||
+ pa_memchunk silence;
|
||||
|
||||
pa_assert(sink);
|
||||
pa_assert(fname);
|
||||
@@ -324,7 +325,9 @@ int pa_play_file(
|
||||
u->sink_input->state_change = sink_input_state_change_cb;
|
||||
u->sink_input->userdata = u;
|
||||
|
||||
- u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL);
|
||||
+ pa_sink_input_get_silence(u->sink_input, &silence);
|
||||
+ u->memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, &silence);
|
||||
+ pa_memblock_unref(silence.memblock);
|
||||
|
||||
pa_sink_input_put(u->sink_input);
|
||||
|
||||
--
|
||||
1.7.0
|
||||
|
@ -1,56 +0,0 @@
|
||||
From 11688eca4b2beb7aa1adcd4aa9a3ee933f7385fb Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 8 Jan 2010 22:18:15 +0100
|
||||
Subject: [PATCH 04/62] bluetooth: destruct stream only if it is not already destructed
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=551842
|
||||
---
|
||||
src/modules/bluetooth/module-bluetooth-device.c | 28 ++++++++++++----------
|
||||
1 files changed, 15 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
|
||||
index 19676df..2bbae41 100644
|
||||
--- a/src/modules/bluetooth/module-bluetooth-device.c
|
||||
+++ b/src/modules/bluetooth/module-bluetooth-device.c
|
||||
@@ -823,23 +823,25 @@ static int stop_stream_fd(struct userdata *u) {
|
||||
|
||||
pa_assert(u);
|
||||
pa_assert(u->rtpoll);
|
||||
- pa_assert(u->rtpoll_item);
|
||||
- pa_assert(u->stream_fd >= 0);
|
||||
|
||||
- pa_rtpoll_item_free(u->rtpoll_item);
|
||||
- u->rtpoll_item = NULL;
|
||||
+ if (u->rtpoll_item) {
|
||||
+ pa_rtpoll_item_free(u->rtpoll_item);
|
||||
+ u->rtpoll_item = NULL;
|
||||
+ }
|
||||
|
||||
- memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
|
||||
- msg.start_req.h.type = BT_REQUEST;
|
||||
- msg.start_req.h.name = BT_STOP_STREAM;
|
||||
- msg.start_req.h.length = sizeof(msg.start_req);
|
||||
+ if (u->stream_fd >= 0) {
|
||||
+ memset(msg.buf, 0, BT_SUGGESTED_BUFFER_SIZE);
|
||||
+ msg.start_req.h.type = BT_REQUEST;
|
||||
+ msg.start_req.h.name = BT_STOP_STREAM;
|
||||
+ msg.start_req.h.length = sizeof(msg.start_req);
|
||||
|
||||
- if (service_send(u, &msg.start_req.h) < 0 ||
|
||||
- service_expect(u, &msg.rsp, sizeof(msg), BT_STOP_STREAM, sizeof(msg.start_rsp)) < 0)
|
||||
- r = -1;
|
||||
+ if (service_send(u, &msg.start_req.h) < 0 ||
|
||||
+ service_expect(u, &msg.rsp, sizeof(msg), BT_STOP_STREAM, sizeof(msg.start_rsp)) < 0)
|
||||
+ r = -1;
|
||||
|
||||
- pa_close(u->stream_fd);
|
||||
- u->stream_fd = -1;
|
||||
+ pa_close(u->stream_fd);
|
||||
+ u->stream_fd = -1;
|
||||
+ }
|
||||
|
||||
if (u->read_smoother) {
|
||||
pa_smoother_free(u->read_smoother);
|
||||
--
|
||||
1.7.0
|
||||
|
@ -1,35 +0,0 @@
|
||||
From e7d9f891e2a8e6b670098b80315ca1f0010c35ca Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 8 Jan 2010 23:44:42 +0100
|
||||
Subject: [PATCH 05/62] bluetooth: don't hit an assert if latency is queried for a stooped recording stream
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=537422
|
||||
---
|
||||
src/modules/bluetooth/module-bluetooth-device.c | 10 +++++++---
|
||||
1 files changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
|
||||
index 2bbae41..d6868b8 100644
|
||||
--- a/src/modules/bluetooth/module-bluetooth-device.c
|
||||
+++ b/src/modules/bluetooth/module-bluetooth-device.c
|
||||
@@ -972,10 +972,14 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off
|
||||
case PA_SOURCE_MESSAGE_GET_LATENCY: {
|
||||
pa_usec_t wi, ri;
|
||||
|
||||
- wi = pa_smoother_get(u->read_smoother, pa_rtclock_now());
|
||||
- ri = pa_bytes_to_usec(u->read_index, &u->sample_spec);
|
||||
+ if (u->read_smoother) {
|
||||
+ wi = pa_smoother_get(u->read_smoother, pa_rtclock_now());
|
||||
+ ri = pa_bytes_to_usec(u->read_index, &u->sample_spec);
|
||||
+
|
||||
+ *((pa_usec_t*) data) = (wi > ri ? wi - ri : 0) + u->source->thread_info.fixed_latency;
|
||||
+ } else
|
||||
+ *((pa_usec_t*) data) = 0;
|
||||
|
||||
- *((pa_usec_t*) data) = (wi > ri ? wi - ri : 0) + u->source->thread_info.fixed_latency;
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.0
|
||||
|
@ -1,87 +0,0 @@
|
||||
From bf50dc42306857e361267d2ad39b737ad05b8604 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Tue, 12 Jan 2010 03:01:14 +0100
|
||||
Subject: [PATCH 06/62] client: detect forking in sample cache API, too
|
||||
|
||||
---
|
||||
src/pulse/scache.c | 9 +++++++--
|
||||
src/pulse/stream.c | 1 +
|
||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/pulse/scache.c b/src/pulse/scache.c
|
||||
index 27da688..2a7602f 100644
|
||||
--- a/src/pulse/scache.c
|
||||
+++ b/src/pulse/scache.c
|
||||
@@ -28,15 +28,15 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <pulse/utf8.h>
|
||||
+#include <pulse/scache.h>
|
||||
|
||||
#include <pulsecore/pstream-util.h>
|
||||
#include <pulsecore/macro.h>
|
||||
#include <pulsecore/proplist-util.h>
|
||||
|
||||
+#include "fork-detect.h"
|
||||
#include "internal.h"
|
||||
|
||||
-#include "scache.h"
|
||||
-
|
||||
int pa_stream_connect_upload(pa_stream *s, size_t length) {
|
||||
pa_tagstruct *t;
|
||||
uint32_t tag;
|
||||
@@ -45,6 +45,7 @@ int pa_stream_connect_upload(pa_stream *s, size_t length) {
|
||||
pa_assert(s);
|
||||
pa_assert(PA_REFCNT_VALUE(s) >= 1);
|
||||
|
||||
+ PA_CHECK_VALIDITY(s->context, !pa_detect_fork(), PA_ERR_FORKED);
|
||||
PA_CHECK_VALIDITY(s->context, s->state == PA_STREAM_UNCONNECTED, PA_ERR_BADSTATE);
|
||||
PA_CHECK_VALIDITY(s->context, length > 0, PA_ERR_INVALID);
|
||||
PA_CHECK_VALIDITY(s->context, length == (size_t) (uint32_t) length, PA_ERR_INVALID);
|
||||
@@ -85,6 +86,7 @@ int pa_stream_finish_upload(pa_stream *s) {
|
||||
pa_assert(s);
|
||||
pa_assert(PA_REFCNT_VALUE(s) >= 1);
|
||||
|
||||
+ PA_CHECK_VALIDITY(s->context, !pa_detect_fork(), PA_ERR_FORKED);
|
||||
PA_CHECK_VALIDITY(s->context, s->channel_valid, PA_ERR_BADSTATE);
|
||||
PA_CHECK_VALIDITY(s->context, s->context->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
|
||||
@@ -174,6 +176,7 @@ pa_operation *pa_context_play_sample(pa_context *c, const char *name, const char
|
||||
pa_assert(c);
|
||||
pa_assert(PA_REFCNT_VALUE(c) >= 1);
|
||||
|
||||
+ PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED);
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID);
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, !dev || *dev, PA_ERR_INVALID);
|
||||
@@ -213,6 +216,7 @@ pa_operation *pa_context_play_sample_with_proplist(pa_context *c, const char *na
|
||||
pa_assert(c);
|
||||
pa_assert(PA_REFCNT_VALUE(c) >= 1);
|
||||
|
||||
+ PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED);
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID);
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, !dev || *dev, PA_ERR_INVALID);
|
||||
@@ -255,6 +259,7 @@ pa_operation* pa_context_remove_sample(pa_context *c, const char *name, pa_conte
|
||||
pa_assert(c);
|
||||
pa_assert(PA_REFCNT_VALUE(c) >= 1);
|
||||
|
||||
+ PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED);
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, c->state == PA_CONTEXT_READY, PA_ERR_BADSTATE);
|
||||
PA_CHECK_VALIDITY_RETURN_NULL(c, name && *name, PA_ERR_INVALID);
|
||||
|
||||
diff --git a/src/pulse/stream.c b/src/pulse/stream.c
|
||||
index 793277a..79b2868 100644
|
||||
--- a/src/pulse/stream.c
|
||||
+++ b/src/pulse/stream.c
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <pulse/def.h>
|
||||
+#include <pulse/stream.h>
|
||||
#include <pulse/timeval.h>
|
||||
#include <pulse/rtclock.h>
|
||||
#include <pulse/xmalloc.h>
|
||||
--
|
||||
1.7.0
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user