Repositories=[
dict(Name='tizen-unified',
Url='http://download.tizen.org/live/devel:/Tizen:/Unified/standard/',
+ #Url='file://home/shinchulwoo/Repo/Unified',
Options='--ssl_verify=no'),
dict(Name='tizen-base',
Url='http://download.tizen.org/snapshots/tizen/base/latest/repos/arm/packages/',
+ #Url='file://home/shinchulwoo/Repo/Base',
Options='--ssl_verify=no')
],
Partitions=[
pkg_info['id'] = pkg_id
pkg_info['name'] = pkg_name
pkg_info['arch'] = pkg.findtext(tag_dic['arch'])
+ pkg_info['summary'] = pkg.findtext(tag_dic['summary'])
pkg_info['selfChecked'] = False # for web-ui tree
# Parsing meta-pkg using meta naming rule
meta_match = META_PATTERN.search(pkg_info['name'])
if meta_match is not None:
- #print(meta_match.group(0), ', ', meta_match.group('meta'), ', ', meta_match.group('pkgname'))
if meta_match.group('meta') == 'root':
- meta_info['root'].append([pkg_info['name']])
+ meta_info['root'].append([pkg_info['name'], pkg_info['summary']])
pkg_info['meta'] = 'root'
elif meta_match.group('meta') == 'sub1':
sub1_match = META_SUB1_PATTERN.search(meta_match.group('pkgname'))
- meta_info['sub1'].append([pkg_info['name'],
- ''.join([META_PREFIX_ROOT, sub1_match.group('root')])])
+ meta_info['sub1'].append([pkg_info['name'],
+ ''.join([META_PREFIX_ROOT, sub1_match.group('root')]),
+ pkg_info['summary']])
pkg_info['meta'] = 'sub1'
elif meta_match.group('meta') == 'sub2':
sub2_match = META_SUB2_PATTERN.search(meta_match.group('pkgname'))
meta_info['sub2'].append([pkg_info['name'],
''.join([META_PREFIX_ROOT, sub2_match.group('root')]),
- ''.join([META_PREFIX_SUB1, sub2_match.group('root'),'-', sub2_match.group('sub1')])])
+ ''.join([META_PREFIX_SUB1, sub2_match.group('root'),'-', sub2_match.group('sub1')]),
+ pkg_info['summary']])
pkg_info['meta'] = 'sub2'
# check profile pkg
'ver':ver_tag.attrib['ver'],
'rel':ver_tag.attrib['rel']}
pkg_info['checksum'] = pkg.findtext(tag_dic['checksum'])
- pkg_info['summary'] = pkg.findtext(tag_dic['summary'])
pkg_info['description'] = pkg.findtext(tag_dic['description'])
pkg_info['location'] = pkg.find(tag_dic['location']).attrib['href']
size_tag = pkg.find(tag_dic['size'])
tag_dic = self._get_tagname(xml_list[0])
# TODO: temporary code (should be deleted)
- # meta_string='<?xml version="1.0" encoding="UTF-8"?><metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="1467"><package type="rpm"><name>building-blocks-root-chooseonlyone_Kernel</name><arch>armv7l</arch><version epoch="0" ver="2.0.4" rel="4.2" vcs="platform/upstream/SDL#5f9405ba696ad79a0e05150430fe69e874f8280d" /><checksum type="sha256" pkgid="YES">6f74666eb89e1addc4ce75e25f3e639bbfdd8798fc848a6b7027501070567dcf</checksum><summary>Linux Kernel</summary><description>Include Linux Kernel in the Platform Image</description><packager /><url>http://tizen.org</url><time file="1487645040" build="1487645034" /><size package="2088" installed="0" archive="124" /><location href="armv7l/building-blocks-root-Kernel-0.0.1-1.1.armv7l.rpm" /><format><rpm:license>Apache-2</rpm:license><rpm:vendor>tizen</rpm:vendor><rpm:group>Meta</rpm:group><rpm:buildhost>w08</rpm:buildhost><rpm:sourcerpm>building-blocks-0.0.1-1.1.src.rpm</rpm:sourcerpm><rpm:header-range start="280" end="1964" /><rpm:requires><rpm:entry name="linux-kernel" flags="GE" epoch="0" ver="3.10" /></rpm:requires></format></package></metadata>'
+ # meta_string='<?xml version="1.0" encoding="UTF-8"?><metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="1467"><package type="rpm"><name>building-blocks-root-metapkg</name><arch>armv7l</arch><version epoch="0" ver="2.0.4" rel="4.2" vcs="platform/upstream/SDL#5f9405ba696ad79a0e05150430fe69e874f8280d" /><checksum type="sha256" pkgid="YES">6f74666eb89e1addc4ce75e25f3e639bbfdd8798fc848a6b7027501070567dcf</checksum><summary>Simple DirectMedia Layer</summary><description>This is the Simple DirectMedia Layer, a generic API that provides low level access to audio, keyboard, mouse, and display framebuffer across multiple platforms.</description><packager /><url>http://www.libsdl.org/</url><time file="1476718677" build="1476718668" /><size package="264245" installed="956696" archive="957124" /><location href="armv7l/SDL2-2.0.4-4.2.armv7l.rpm" /><format><rpm:license>Zlib and SGI-B-2.0</rpm:license><rpm:vendor>tizen</rpm:vendor><rpm:group>System Environment/Libraries</rpm:group><rpm:buildhost>w36</rpm:buildhost><rpm:sourcerpm>SDL2-2.0.4-4.2.src.rpm</rpm:sourcerpm><rpm:header-range start="280" end="5958" /><rpm:requires><rpm:entry name="building-blocks-sub1-metapkg-extsub1" /><rpm:entry name="building-blocks-sub1-metapkg-extsub2" /></rpm:requires></format></package><package type="rpm"><name>building-blocks-sub1-metapkg-extsub1</name><arch>armv7l</arch><version epoch="0" ver="2.0.4" rel="4.2" vcs="platform/upstream/SDL#5f9405ba696ad79a0e05150430fe69e874f8280d" /><checksum type="sha256" pkgid="YES">6f74666eb89e1addc4ce75e25f3e639bbfdd8798fc848a6b7027501070567dcf</checksum><summary>sub1-extension</summary><description>This is the Simple DirectMedia Layer, a generic API that provides low level access to audio, keyboard, mouse, and display framebuffer across multiple platforms.</description><packager /><url>http://www.libsdl.org/</url><time file="1476718677" build="1476718668" /><size package="264245" installed="956696" archive="957124" /><location href="armv7l/SDL2-2.0.4-4.2.armv7l.rpm" /><format><rpm:license>Zlib and SGI-B-2.0</rpm:license><rpm:vendor>tizen</rpm:vendor><rpm:group>System Environment/Libraries</rpm:group><rpm:buildhost>w36</rpm:buildhost><rpm:sourcerpm>SDL2-2.0.4-4.2.src.rpm</rpm:sourcerpm><rpm:header-range start="280" end="5958" /><rpm:requires><rpm:entry name="building-blocks-sub2-metapkg-extsub1-exts1sub1" /></rpm:requires></format></package><package type="rpm"><name>building-blocks-sub2-metapkg-extsub1-exts1sub1</name><arch>armv7l</arch><version epoch="0" ver="2.0.4" rel="4.2" vcs="platform/upstream/SDL#5f9405ba696ad79a0e05150430fe69e874f8280d" /><checksum type="sha256" pkgid="YES">6f74666eb89e1addc4ce75e25f3e639bbfdd8798fc848a6b7027501070567dcf</checksum><summary>sub2-extension</summary><description>This is the Simple DirectMedia Layer, a generic API that provides low level access to audio, keyboard, mouse, and display framebuffer across multiple platforms.</description><packager /><url>http://www.libsdl.org/</url><time file="1476718677" build="1476718668" /><size package="264245" installed="956696" archive="957124" /><location href="armv7l/SDL2-2.0.4-4.2.armv7l.rpm" /><format><rpm:license>Zlib and SGI-B-2.0</rpm:license><rpm:vendor>tizen</rpm:vendor><rpm:group>System Environment/Libraries</rpm:group><rpm:buildhost>w36</rpm:buildhost><rpm:sourcerpm>SDL2-2.0.4-4.2.src.rpm</rpm:sourcerpm><rpm:header-range start="280" end="5958" /><rpm:conflicts><rpm:entry name="building-blocks-sub2-metapkg-extsub1-exts1sub2" /></rpm:conflicts></format></package><package type="rpm"><name>building-blocks-sub2-metapkg-extsub1-exts1sub2</name><arch>armv7l</arch><version epoch="0" ver="2.0.4" rel="4.2" vcs="platform/upstream/SDL#5f9405ba696ad79a0e05150430fe69e874f8280d" /><checksum type="sha256" pkgid="YES">6f74666eb89e1addc4ce75e25f3e639bbfdd8798fc848a6b7027501070567dcf</checksum><summary>sub2-extension</summary><description>This is the Simple DirectMedia Layer, a generic API that provides low level access to audio, keyboard, mouse, and display framebuffer across multiple platforms.</description><packager /><url>http://www.libsdl.org/</url><time file="1476718677" build="1476718668" /><size package="264245" installed="956696" archive="957124" /><location href="armv7l/SDL2-2.0.4-4.2.armv7l.rpm" /><format><rpm:license>Zlib and SGI-B-2.0</rpm:license><rpm:vendor>tizen</rpm:vendor><rpm:group>System Environment/Libraries</rpm:group><rpm:buildhost>w36</rpm:buildhost><rpm:sourcerpm>SDL2-2.0.4-4.2.src.rpm</rpm:sourcerpm><rpm:header-range start="280" end="5958" /><rpm:conflicts><rpm:entry name="building-blocks-sub2-metapkg-extsub1-exts1sub1" /></rpm:conflicts></format></package><package type="rpm"><name>building-blocks-sub1-metapkg-extsub2</name><arch>armv7l</arch><version epoch="0" ver="2.0.4" rel="4.2" vcs="platform/upstream/SDL#5f9405ba696ad79a0e05150430fe69e874f8280d" /><checksum type="sha256" pkgid="YES">6f74666eb89e1addc4ce75e25f3e639bbfdd8798fc848a6b7027501070567dcf</checksum><summary>sub1-extension</summary><description>This is the Simple DirectMedia Layer, a generic API that provides low level access to audio, keyboard, mouse, and display framebuffer across multiple platforms.</description><packager /><url>http://www.libsdl.org/</url><time file="1476718677" build="1476718668" /><size package="264245" installed="956696" archive="957124" /><location href="armv7l/SDL2-2.0.4-4.2.armv7l.rpm" /><format><rpm:license>Zlib and SGI-B-2.0</rpm:license><rpm:vendor>tizen</rpm:vendor><rpm:group>System Environment/Libraries</rpm:group><rpm:buildhost>w36</rpm:buildhost><rpm:sourcerpm>SDL2-2.0.4-4.2.src.rpm</rpm:sourcerpm><rpm:header-range start="280" end="5958" /><rpm:requires><rpm:entry name="building-blocks-sub2-metapkg-extsub2-exts2sub1" /><rpm:entry name="SDL2" /></rpm:requires></format></package><package type="rpm"><name>building-blocks-sub2-metapkg-extsub2-exts2sub1</name><arch>armv7l</arch><version epoch="0" ver="2.0.4" rel="4.2" vcs="platform/upstream/SDL#5f9405ba696ad79a0e05150430fe69e874f8280d" /><checksum type="sha256" pkgid="YES">6f74666eb89e1addc4ce75e25f3e639bbfdd8798fc848a6b7027501070567dcf</checksum><summary>sub2-extension</summary><description>This is the Simple DirectMedia Layer, a generic API that provides low level access to audio, keyboard, mouse, and display framebuffer across multiple platforms.</description><packager /><url>http://www.libsdl.org/</url><time file="1476718677" build="1476718668" /><size package="264245" installed="956696" archive="957124" /><location href="armv7l/SDL2-2.0.4-4.2.armv7l.rpm" /><format><rpm:license>Zlib and SGI-B-2.0</rpm:license><rpm:vendor>tizen</rpm:vendor><rpm:group>System Environment/Libraries</rpm:group><rpm:buildhost>w36</rpm:buildhost><rpm:sourcerpm>SDL2-2.0.4-4.2.src.rpm</rpm:sourcerpm><rpm:header-range start="280" end="5958" /></format></package><package type="rpm"><name>building-blocks-sub2-metapkg-extsub2-exts2sub2</name><arch>armv7l</arch><version epoch="0" ver="2.0.4" rel="4.2" vcs="platform/upstream/SDL#5f9405ba696ad79a0e05150430fe69e874f8280d" /><checksum type="sha256" pkgid="YES">6f74666eb89e1addc4ce75e25f3e639bbfdd8798fc848a6b7027501070567dcf</checksum><summary>sub2-extension</summary><description>This is the Simple DirectMedia Layer, a generic API that provides low level access to audio, keyboard, mouse, and display framebuffer across multiple platforms.</description><packager /><url>http://www.libsdl.org/</url><time file="1476718677" build="1476718668" /><size package="264245" installed="956696" archive="957124" /><location href="armv7l/SDL2-2.0.4-4.2.armv7l.rpm" /><format><rpm:license>Zlib and SGI-B-2.0</rpm:license><rpm:vendor>tizen</rpm:vendor><rpm:group>System Environment/Libraries</rpm:group><rpm:buildhost>w36</rpm:buildhost><rpm:sourcerpm>SDL2-2.0.4-4.2.src.rpm</rpm:sourcerpm><rpm:header-range start="280" end="5958" /><rpm:requires><rpm:entry name="SDL2" /></rpm:requires></format></package></metadata>'
# xml_list.append(etree.fromstring(meta_string))
filter_data = self._filtering_data_based_arch(xml_list, tag_dic)
import logging
+from tic.utils import misc
from operator import itemgetter
from tic.utils.rpmmisc import meetRequireVersion
def set_meta_require(meta_info):
meta_nodes = meta_info.get('nodes')
for child_meta in meta_nodes:
- refer_count[child_meta['id']] += 1
set_meta_require(child_meta)
- pkg_info = pkg_dict[meta_info['text']]
+ pkg_info = pkg_dict[meta_info['metaname']]
for dep_tag in ['requires', 'recommends']:
if pkg_info.get(dep_tag):
for req in pkg_info.get(dep_tag):
if req['name'] in provides:
targets = _select_provide_rpm(provides[req['name']], req)
elif req['name'] in files:
- targets.append(pkg_dict.get(files[req['name']][0]))
+ for fname in files[req['name']]:
+ targets.append(pkg_dict.get(fname))
elif req['name'] in pkg_dict:
targets.append(pkg_dict.get(req['name']))
else:
meta_nodes.append(make_node(pkg))
def make_node(pkg_info):
- return dict(id=pkg_info['id'], text=pkg_info['name'], nodes=[])
-
+ #return dict(id=pkg_info['id'], text=pkg_info['name'], nodes=[])
+ return dict(text=pkg_info['name'], nodes=[])
+ def make_meta_node(pkgname, viewtext):
+ return dict(text=viewtext, metaname=pkgname, nodes=[])
+
# view_data for tree view on web-ui
view_data = []
# temporary dictionary for referencing meta
files = pkg_group['files']
refer_count = [0] * len(pkg_dict)
- # sort by pkg_name ([0]:name, [1]:root, [2]:sub1)
+ # sort by summary
meta_info = pkg_group.get('meta_info')
- meta_info['root'] = sorted(meta_info['root'], key=itemgetter(0))
- meta_info['sub1'] = sorted(meta_info['sub1'], key=itemgetter(0))
- meta_info['sub2'] = sorted(meta_info['sub2'], key=itemgetter(0))
+ meta_info['root'] = sorted(meta_info['root'], key=itemgetter(1))
+ meta_info['sub1'] = sorted(meta_info['sub1'], key=itemgetter(2))
+ meta_info['sub2'] = sorted(meta_info['sub2'], key=itemgetter(3))
# make tree of meta
for root in meta_info['root']:
- root_node = make_node(pkg_dict[root[0]])
+ root_node = make_meta_node(root[0], root[1])
view_ref[root[0]] = root_node
view_data.append(root_node)
for sub1 in meta_info['sub1']:
- sub1_node = make_node(pkg_dict[sub1[0]])
+ sub1_node = make_meta_node(sub1[0], sub1[2])
view_ref[sub1[0]] = sub1_node
# search root
if sub1[1] in view_ref:
view_data.append(sub1_node)
for sub2 in meta_info['sub2']:
- sub2_node = make_node(pkg_dict[sub2[0]])
+ sub2_node = make_meta_node(sub2[0], sub2[3])
view_ref[sub2[0]] = sub2_node
# search sub1
if sub2[2] in view_ref:
# configure meta dependency tree (requires)
for meta_pkg in view_data:
- refer_count[meta_pkg['id']] += 1
set_meta_require(meta_pkg)
#The remaining rpms are grouped into a MISC tree
misc_info['nodes'] = []
for k, v in pkg_dict.iteritems():
# Pkg is not referenced from Meta-pkg
- if refer_count[v['id']] == 0:
+ if not v.get('meta') and refer_count[v['id']] == 0:
misc_info['nodes'].append(make_node(v))
-
+
logger.info('meta: %d, misc: %d', len(view_ref), len(misc_info['nodes']))
-
view_data.append(misc_info)
-
- return view_data
-
+ return view_data
\ No newline at end of file
if url.startswith("file:/"):
filepath = "/%s" % url.replace("file:", "").lstrip('/')
if not os.path.exists(filepath):
- logger.info('URLGrabber error: cannot find file %s' % url)
- raise TICError("URLGrabber error: can't find file %s" % url)
+ raise TICError(configmgr.message['repo_not_found'] % url)
if url.endswith('.rpm'):
return filepath
else:
- copyfile(filepath, filename)
+ copyfile(filepath, os.path.dirname(filename))
logger.info('copy file ' + filepath)
else:
try: