Skip to content

Instantly share code, notes, and snippets.

@metasta
Created January 3, 2012 18:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save metasta/1556177 to your computer and use it in GitHub Desktop.
Save metasta/1556177 to your computer and use it in GitHub Desktop.
patch & install forked-daapd
#!/bin/sh -
############################################
#
# build_daapd.sh
#
# functions for install & upgrading forked_daapd.
#
# requires:
# sudo, aptitude
# audoconf, automake, gettext
# git-core, checkinstall
#
############################################
# working dir (is equivalent to script dir)
basedir=$(cd $(dirname "$0");pwd)
create_artwork_patch()
{
cat > "$basedir/artwork.patch" <<'___EOF___'
--- src/artwork.c.orig 2011-12-30 21:14:22.597629478 +0900
+++ src/artwork.c 2011-12-30 21:40:51.581559588 +0900
@@ -44,7 +44,7 @@
static const char *cover_basename[] =
{
- "artwork", "cover",
+ "folder", "artwork", "cover",
};
static const char *cover_extension[] =
___EOF___
return $?
}
create_configure_patch()
{
cat > "$basedir/configure.patch" <<'___EOF___'
--- configure.orig 2011-12-30 23:23:14.733289306 +0900
+++ configure 2011-12-30 22:51:41.697372580 +0900
@@ -14891,7 +14891,7 @@
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_avcodec_av_lockmgr_register" >&5
$as_echo "$ac_cv_lib_avcodec_av_lockmgr_register" >&6; }
-if test "x$ac_cv_lib_avcodec_av_lockmgr_register" = xyes; then :
+if true; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBAVCODEC 1
_ACEOF
___EOF___
return $?
}
try_patch() # filename.patch
{
test $# -eq 1 || return $?
cd "$basedir/forked-daapd" \
&& if patch --dry-run -p0 -N < "$1"
then
patch -p0 < "$1" ; return $?
else
patch --dry-run -p0 -NR < "$1" ; return $?
fi
return $?
}
download_daapd()
{
cd "$basedir" && git clone git://git.debian.org/users/jblache/forked-daapd.git
return $?
}
update_daapd()
{
cd "$basedir/forked-daapd" && git pull
return $?
}
make_daapd()
{
trap "rm $basedir/artwork.patch $basedir/configure.patch" EXIT
create_artwork_patch && create_configure_patch || return $?
cd "$basedir/forked-daapd" \
&& autoreconf -i \
&& try_patch ../artwork.patch \
&& try_patch ../configure.patch \
&& ./configure --enable-static --prefix=/usr \
--sysconfdir=/etc --localstatedir=/var \
&& make \
&& sudo checkinstall --pkgname=forked-daapd \
--pkgversion="$(awk -F'[(), ]' \
'/AUTOMAKE/{print $4}' < configure.in )" \
--requires=libavahi-client-dev,libunistring-dev,libantlr3c-dev,\
libconfuse-dev,libasound2-dev,libsqlite3-dev,libmp3lame-dev,libgcrypt-dev,\
libdispatch-dev,libmxml-dev,libfaac-dev,libavl-dev,libtre-dev,zlib1g-dev \
--backup=no --default --deldoc=yes
return $?
}
create_user()
{
id daapd || sudo adduser --system --home=/var/cache/forked-daapd daapd
return $?
}
create_initscript()
{
cat <<'___EOF___' | sudo tee /etc/init/forked-daapd.conf
start on started avahi-daemon
stop on stopping avahi-daemon
respawn
exec forked-daapd -f
___EOF___
return $?
}
setup_daapd()
{
create_user && create_initscript
return $?
}
purge_conflicts_daapd()
{
sudo aptitude purge forked-daapd
return $?
}
install_depends_daapd()
{
sudo aptitude install libtool clang gperf antlr3 \
zlib1g-dev libtre-dev libavl-dev libmxml-dev \
libantlr3c-dev libgcrypt-dev libdispatch-dev \
libconfuse-dev libsqlite3-dev libasound2-dev \
libunistring-dev libavahi-client-dev
return $?
}
install_daapd()
{
if test -d "$basedir/forked-daapd/.git"
then
update_daapd || return $?
else
download_daapd || return $?
fi
purge_conflicts_daapd && install_depends_daapd && make_daapd && setup_daapd
return $?
}
main()
{
install_daapd
return $?
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment