summaryrefslogtreecommitdiffstats
path: root/abs/extra-testing/community/xbmc-svn/PKGBUILD
blob: e58360025c9f4501e928dc60d6cbbfe44efa2d5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Contributors : Richard Atkinson atkinsonr-at-gmail 
#                Ralf Barth <archlinux dot org at haggy dot org>
#
# Original credits go to Edgar Hucek <gimli at dark-green dot com>
# for his xbmc-vdpau-vdr PKGBUILD at https://archvdr.svn.sourceforge.net/svnroot/archvdr/trunk/archvdr/xbmc-vdpau-vdr/PKGBUILD

pkgname=xbmc-svn
pkgver=20449
pkgrel=1
pkgdesc="XBMC Media Center from SVN (linuxport branch)"
provides=('xbmc')
conflicts=('xbmc' 'xbmc-smoothvideo' 'xbmc-vdpau')
arch=('i686' 'x86_64')
url="http://xbmc.org"
license=('GPL' 'LGPL')
depends=('alsa-lib' 'curl' 'enca' 'faac' 'freetype2' 'fribidi' 'gawk' 'glew' \
         'hal' 'jasper' 'libgl' 'libjpeg>=6b-5' 'libmad' 'libmysqlclient' \
         'libxinerama' 'libxrandr' 'lzo2' 'sdl_image' 'sdl_mixer' 'sqlite3' \
         'tre' 'unzip' 'libcdio' 'libsamplerate' 'python')
makedepends=('subversion' 'autoconf' 'automake' 'boost' 'cmake' 'gcc' 'gperf' 
             'libtool>=2.2.6a-1' 'make' 'nasm' 'patch' 'pkgconfig' 'zip' 'flex' 'bison')
optdepends=('lirc: remote controller support'
            'pmount: mount removable devices as normal user'
            'smbclient: access windows shares'
            'unrar: access compressed files without unpacking them')
install=("${pkgname}.install")
source=('libcurl-not-in-lib64.patch' \
        'libfaad2-enable-AC_PROG_CXX.patch' \
        'xbmc-safe-fullscreen.patch'
	'Lircmap.xml')
noextract=('libcurl-not-in-lib64.patch' \
           'libfaad2-enable-AC_PROG_CXX.patch' \
           'xbmc-safe-fullscreen.patch')

md5sums=('96636ee964e37b78ca62235eb10d29c1'
         '6864778d6adc3ccc79130c294f2fffd9'
         'c4d53522773846d8670884cc38f94aa0'
	 '3f93186f1ea4aad73011d00754c7265a')

options=(!makeflags)

build() {
	
    _svntrunk=http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC
    _svnmod=XBMC
    _prefix=/usr

    cd ${srcdir}/
    if [ -d $_svnmod/.svn ]; then
        msg "SVN tree found, reverting changes and updating to -r$pkgver"
        (cd $_svnmod && svn revert -R . && svn up -r $pkgver) || return 1
    else
        msg "Checking out SVN tree of -r$pkgver"
        svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod || return 1
    fi
    msg "Done. Starting make..."

    # Apply patches
    cd "$srcdir/$_svnmod"

    # Experimental safe fullscreen patch from the forums (by motd2k)
    msg "Patching with xbmc-safe-fullscreen.patch"
    patch --quiet -p0 < "$srcdir/xbmc-safe-fullscreen.patch" || return 1

    # Arch's libcurl lives in /usr/lib, not /usr/lib64 - fix the path:
    msg "Patching with libcurl-not-in-lib64.patch" 
    patch --quiet -p0 < "$srcdir/libcurl-not-in-lib64.patch" || return 1

    # libfaad2 complains about a missing AC_PROG_CXX - add it and bootstrap:
    msg "Patching with libfaad2-enable-AC_PROG_CXX.patch" 
    patch --quiet -p0 < "$srcdir/libfaad2-enable-AC_PROG_CXX.patch" || return 1
    autoreconf -vif xbmc/cores/dvdplayer/Codecs/libfaad2

    # libass needs a bootstrap due to newer autotools in Arch Linux
    autoreconf -vif xbmc/lib/libass

    # Another autotools mismatch between Arch and Ubuntu (xbmc-linuxport is developed against Ubuntu)
    autoreconf -vif "$srcdir/$_svnmod/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdcss"

    # Goom also needs a fixup due to newer autotools
    cd "$srcdir/$_svnmod/xbmc/visualizations/Goom/goom2k4-0"
    aclocal
    libtoolize --copy --force
    ./autogen.sh --enable-static --with-pic
    
    # Configure XBMC
    cd "$srcdir/$_svnmod"
    make distclean
    ./configure --prefix=${_prefix} \
                --disable-debug || return 1
    
    # Fix false negative detections of realloc that happens some times
    if grep -q 'HAVE_REALLOC 0' config.h; then
      sed -e 's|#define HAVE_REALLOC 0|#define HAVE_REALLOC 1|' \
          -e 's|#define realloc rpl_realloc|/* #define realloc rpl_realloc */|' \
          -i config.h || return 1
    fi

    # XBMCTex will segfault on systems with nvidia installed if linked to OpenGL
    sed -e 's/-lGLU -lGLEW -lGL//' \
        -i ${srcdir}/$_svnmod/tools/XBMCTex/Makefile

    # Now (finally) build
    make || return 1
    make prefix=${pkgdir}${_prefix} install || return 1

    # Install 
    install -Dm755 ${srcdir}/$_svnmod/xbmc-xrandr \
                   ${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr || return 1

    install -Dm644 ${srcdir}/$_svnmod/tools/Linux/xbmc.desktop \
                   ${pkgdir}${_prefix}/share/applications/xbmc.desktop || return 1

    install -Dm644 ${srcdir}/$_svnmod/tools/Linux/xbmc.png \
                   ${pkgdir}${_prefix}/share/pixmaps/xbmc.png || return 1

    install -Dm755 ${srcdir}/$_svnmod/tools/XBMCTex/XBMCTex \
                   ${pkgdir}${_prefix}/share/xbmc/tools/xbmctex || return 1

    # Skins often use build.sh that looks for /usr/bin/XBMCTex
    ln -s "${_prefix}/share/xbmc/tools/xbmctex" "$pkgdir/usr/bin/XBMCTex"

    install -dm755 ${pkgdir}${_prefix}/share/licenses/${pkgname}
    for licensef in LICENSE.GPL README.linux copying.txt; do
        mv ${pkgdir}${_prefix}/share/xbmc/${licensef} \
           ${pkgdir}${_prefix}/share/licenses/${pkgname} || return 1
    done

    # Use custom Lircmap to support StreamZap remote
    cp $srcdir/Lircmap.xml ${pkgdir}${_prefix}/share/xbmc/system/Lircmap.xml
}