Support Quad PiP.
[vuplus_openvuplus_3.0] / meta-openvuplus / recipes-vuplus / enigma2 / enigma2-plugins.bb
1 DESCRIPTION = "Additional plugins for Enigma2"
2 MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
3 LICENSE = "Proprietary"
4 LIC_FILES_CHKSUM = "file://COPYING;md5=8e37f34d0e40d32ea2bc90ee812c9131"
5
6 PACKAGES_DYNAMIC = "enigma2-plugin-*"
7
8 # if you want experimental, use:
9 #SRCREV="87fd2f1120962f553ecb1a88bbee46ed821df975"
10 SRCREV="c8fc96e8e51e1ef71e1709f9dd6f733007f9463e"
11 SRCDATE="20110215"
12 BRANCH="master"
13 PV = "experimental-git${SRCDATE}"
14 PR = "r14"
15
16 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
17
18 SRC_URI="git://code.vuplus.com/git/dvbapp-plugin.git;protocol=git;branch=${BRANCH};tag=${SRCREV}"
19
20 EXTRA_OECONF = " \
21         BUILD_SYS=${BUILD_SYS} \
22         HOST_SYS=${HOST_SYS} \
23         STAGING_INCDIR=${STAGING_INCDIR} \
24         STAGING_LIBDIR=${STAGING_LIBDIR} \
25         --with-gstversion=1.0 \
26 "
27
28 PARALLEL_MAKE = ""
29
30 SRC_URI_append_vuplus = " \
31         file://enigma2_plugins_mytube_tpm.patch \
32         file://enigma2_plugins_20121113.patch \
33         file://enigma2_plugins_webinterface_tpm.patch \
34         file://enigma2_plugins_ac3lipsync_dolby.patch \
35         file://enigma2_plugins_autoresolution_fix.patch \
36         file://enigma2_plugins_fancontrol2.patch \
37         file://enigma2_plugins_gst10_support.patch \
38         file://enigma2_plugins_fix_depends_pkgname.patch \
39         file://dreamboxweb.png \
40         file://dreamboxwebtv.png \
41         file://favicon.ico \
42         file://Makefile.am \
43         file://enigma2_plugins_setqpipmode.patch \
44 "
45
46 FILES_${PN} += " /usr/share/enigma2 /usr/share/fonts "
47 FILES_${PN}-meta = "${datadir}/meta"
48 PACKAGES += "${PN}-meta"
49 PACKAGE_ARCH = "${MACHINE_ARCH}"
50
51 inherit autotools-brokensep pythonnative pkgconfig
52
53 S = "${WORKDIR}/git"
54
55 DEPENDS = " \
56         enigma2 \
57         python-pyopenssl \
58         python-gdata \
59         streamripper \
60         python-mutagen \
61         python-daap \
62         enigma2-plugin-extensions-openwebif \
63         gstreamer1.0-plugins-bad \
64         "
65
66 def modify_po():
67     import os
68     try:
69         os.system("find ./ -name \"*.po\" > ./po_list")
70         os.system("find ./ -name \"*.pot\" >> ./po_list")
71         po_list = []
72         po_list = open('po_list','r+').readlines()
73         for x in po_list:
74             changeword1(x)
75         changeword1('enigma2-plugins/networkwizard/src/networkwizard.xml ')
76         changeword2('enigma2-plugins/webinterface/src/web-data/tpl/default/index.html ')
77         os.system('rm po_list')
78     except:
79         print 'word patch error '
80         return
81
82 def changeword1(file):
83     fn = file[:-1]
84     fnn = file[:-1]+'_n'
85     cmd = "sed s/Dreambox/STB/g "+fn+" > "+fnn
86     os.system(cmd)
87     cmd1 = "mv "+fnn+" "+fn
88     os.system(cmd1)
89
90 def changeword2(file):
91     fn = file[:-1]
92     fnn = file[:-1]+'_n'
93     cmd = "sed s/Dreambox/Vu+/g "+fn+" > "+fnn
94     os.system(cmd)
95     cmd1 = "mv "+fnn+" "+fn
96     os.system(cmd1)
97
98 do_unpack_append(){
99     modify_po()
100 }
101
102 do_configure_prepend_vuplus() {
103         cp -av ${WORKDIR}/Makefile.am ${S}/easymedia/po/
104 }
105
106 do_install_append_vuplus() {
107         install -m 0644 ${WORKDIR}/dreamboxweb.png ${D}/usr/lib/enigma2/python/Plugins/Extensions/WebInterface/web-data/img/
108         install -m 0644 ${WORKDIR}/dreamboxwebtv.png ${D}/usr/lib/enigma2/python/Plugins/Extensions/WebInterface/web-data/tpl/default/streaminterface/img
109         install -m 0644 ${WORKDIR}/favicon.ico ${D}/usr/lib/enigma2/python/Plugins/Extensions/WebInterface/web-data/img/
110         rm -r ${D}/media
111 }
112
113 python populate_packages_prepend() {
114     enigma2_plugindir = bb.data.expand('${libdir}/enigma2/python/Plugins', d)
115     do_split_packages(d, enigma2_plugindir, '^(\w+/\w+)', 'enigma2-plugin-%s', '%s', recursive=True, match_path=True, prepend=True)
116     do_split_packages(d, enigma2_plugindir, '^(\w+/\w+).*/.*\.la$', 'enigma2-plugin-%s-dev', '%s (development)', recursive=True, match_path=True, prepend=True)
117     do_split_packages(d, enigma2_plugindir, '^(\w+/\w+).*/.*\.a$', 'enigma2-plugin-%s-staticdev', '%s (static development)', recursive=True, match_path=True, prepend=True)
118     do_split_packages(d, enigma2_plugindir, '^(\w+/\w+).*/\.debug/', 'enigma2-plugin-%s-dbg', '%s (debug)', recursive=True, match_path=True, prepend=True)
119     def parseControlFile(dir, d, package):
120         import os
121         #ac3lipsync is renamed since 20091121 to audiosync.. but rename in cvs is not possible without lost of revision history..
122         #so the foldername is still ac3lipsync
123         if package == 'audiosync':
124             package = 'ac3lipsync'
125         src = open(dir + "/" + package.split('-')[-1] + "/CONTROL/control").read()
126         for line in src.splitlines():
127             name, value = line.strip().split(': ', 1)
128             if name == 'Description':
129                 d.setVar('DESCRIPTION_' + package, value)
130             elif name == 'Depends':
131                 rdepends = []
132                 for depend in value.split(','):
133                     depend = depend.strip()
134                     if depend.startswith('enigma2') and not depend.startswith('enigma2-'):
135                         rdepends.append('enigma2')
136                     else:
137                         rdepends.append(depend)
138                 d.setVar('RDEPENDS_' + package, ' '.join(rdepends))
139             elif name == 'Replaces':
140                 d.setVar('RREPLACES_' + package, ' '.join(value.split(', ')))
141             elif name == 'Conflicts':
142                 d.setVar('RCONFLICTS_' + package, ' '.join(value.split(', ')))
143     srcdir = d.getVar('S', True)
144     for package in d.getVar('PACKAGES', True).split():
145         if package.startswith('enigma2-plugin-') and not package.endswith('-dev') and not package.endswith('-dbg') and not package.endswith('-staticdev'):
146             parseControlFile(srcdir, d, package)
147 }