enigma2-hbbtv-plugin: add partial (~90%) support for HBBTV 1.5
[opendreambox.git] / meta-opendreambox / recipes-dreambox / enigma2 / enigma2-skins_4.3.0.bb
1 SUMMARY = "Skins for Enigma2"
2 LICENSE = "CLOSED"
3 SRCREV = "${@opendreambox_srcrev('a84ca719a20a44bc61d0151ce161a5e0652f53ea', d)}"
4
5 inherit allarch autotools-brokensep opendreambox-github
6
7 PACKAGES_DYNAMIC = "^enigma2-skin-.*"
8 PACKAGES += "${PN}-meta"
9
10 FILES_${PN} = ""
11 FILES_${PN}-meta = "${datadir}/meta"
12
13 python enigma2_skins_split_packages() {
14     output_pattern = 'enigma2-skin-%s'
15     enigma2_skindir = os.path.join(d.getVar('datadir', True), 'enigma2')
16     do_split_packages(d, enigma2_skindir, '(.*?)/.*', output_pattern, 'Enigma2 Skin: %s', recursive=True, extra_depends='enigma2', match_path=True)
17
18     def parseControlFile(package, dir):
19         filename = os.path.join(dir, 'CONTROL/control')
20         if os.path.exists(filename):
21             with open(filename) as f:
22                 for line in f.read().splitlines():
23                     try:
24                         name, value = line.strip().split(': ', 1)
25                         if name == 'Description':
26                             d.setVar('DESCRIPTION_%s' % package, value)
27                         elif name in ('Breaks', 'Conflicts', 'Depends', 'Provides', 'Recommends', 'Replaces', 'Suggests'):
28                             d.appendVar('R%s_%s' % (name.upper(), package), ' ' + ' '.join(value.split(', ')))
29                     except:
30                         bb.fatal("Error parsing control file for package %s" % package)
31
32     srcdir = os.path.join(d.getVar('S', True), 'skins')
33     packages = d.getVar('PACKAGES', True).split()
34     for subdir in next(os.walk(srcdir))[1]:
35         package = output_pattern % legitimize_package_name(subdir)
36         if package in packages:
37             parseControlFile(package, os.path.join(srcdir, subdir))
38 }
39
40 PACKAGESPLITFUNCS_prepend = "enigma2_skins_split_packages "
41
42 # This list of packages is compiled from all 'Depends' fields in all control
43 # files found in the enigma2-skins repository. If a dependency gets added
44 # there, add it here, too. This allows to keep build dependencies minimal
45 # while making sure that all runtime dependencies are available.
46 # As ${PN} doesn't contain any files and ALLOW_EMPTY isn't set, this list
47 # actually has no impact on any generated packages.
48 RDEPENDS_${PN} = " \
49     enigma2 \
50     enigma2-plugin-skincomponents-channelselectionshorttitle \
51     enigma2-plugin-skincomponents-eventlist \
52     enigma2-plugin-skincomponents-eventposition \
53     enigma2-plugin-skincomponents-reftopiconname \
54 "