TAG = "HEAD"
endif
-all:
- python scripts/merge-patterns.py -a ${ARCH}
- xsltproc xsl/comps.xsl patterns.xml > group.xml
-
-meta:
- python scripts/merge-patterns.py -a ${ARCH} -s
+all:
install:
+ install -d ${DESTDIR}/usr/bin
+ install -m 755 scripts/merge-patterns.py ${DESTDIR}/usr/bin/merge-patterns
install -d ${DESTDIR}/usr/share/package-groups
- install -m 644 patterns.xml ${DESTDIR}/usr/share/package-groups
- install -m 644 group.xml ${DESTDIR}/usr/share/package-groups
+ install -d ${DESTDIR}/usr/share/package-groups/stylesheets
+ install -d ${DESTDIR}/usr/share/package-groups/patterns
+ install -m 644 patterns/*yaml ${DESTDIR}/usr/share/package-groups/patterns
+ install -m 644 xsl/comps.xsl ${DESTDIR}/usr/share/package-groups/stylesheets
tag:
git tag -a $(VERSION) -m "$(VERSION)"
+++ /dev/null
-Package Groups
-
-Currently groups and packages are maintained in the patterns directory
-in pattern files. All changes need to be done only to the pattern files.
-Other files are autogenerated.
-
-- Edit pattern files and make the desired changes
-- Verfiy integrity of the changes using a syntax checker such as xmllint
-
-
-To update the package:
-- change the pattern files (yaml)
-- Verify your changes
-- Bump the version in the VERSION file
-- commit and push
-- Do not change the ChangeLog file, this is generated using a script
- run 'python scripts/gitlog2changelog.py'
-- commit and push
-- run 'make tag'
-- run 'make dist'
-- Submit the newly generated tar
-
-
-
-
-* Thu Apr 4 21:55:13 UTC 2013 - tracy.graydon@intel.com
-- Add gst-plugins-ext0.10 to common.yaml
+* Tue Jun 4 00:41:51 UTC 2013 - tracy.graydon@intel.com
+- Change package-groups to use the new format and update BuildRequires for meta-ivi
-* Mon Apr 1 17:53:52 UTC 2013 - tracy.graydon@intel.com
-- Add GhostCluster to common.yaml
-
-* Fri Mar 29 20:59:10 UTC 2013 - dbowen@localhost
-- Added mmfw-sysconf-simulator to package groups for Jira Bug Tizen IVI TIVI-615
-
-* Thu Mar 28 23:36:06 UTC 2013 - tracy.graydon@intel.com
-- Drop the nfc-plugin-nxp package that conflicts with neard-plugin
-
-* Thu Mar 28 23:23:59 UTC 2013 - tracy.graydon@intel.com
-- TIVI-569: add lemolo
-
-* Thu Mar 28 23:19:27 UTC 2013 - tracy.graydon@intel.com
-- TIVI-577, 575, 574: neard-* additions, vaapi-intel-driver, dleyna, rygel stuff.
-
-* Thu Mar 28 21:10:55 UTC 2013 - tracy.graydon@intel.com
-- TIVI-578: remove unneeded org.tizen.call and org.tizen.phone apps
-- fix the weird entry in the changelog cuz it bugs me.
-- Add ofono to common.yaml
-
-* Thu Mar 28 2013 Rusty Lynch <rusty.lynch@intel.com> submit/2.0/20130325.182246@8d28fda
-- TIVI-521: Disable lockscreen on IVI by not installing the screensaver and pwlock apps
-
-* Mon Mar 25 18:20:49 UTC 2013 - tracy.graydon@intel.com
-- TIVI-558: automotive-message-broker-plugins needs to be added to patterns.
-
-* Fri Mar 22 23:38:55 UTC 2013 - tracy.graydon@intel.com
-- Add org.tizen.clock back in. Fixed now
-
-* Thu Jan 17 22:36:31 UTC 2013 - tracy.graydon@intel.com
-- Add the awol tizen-release package to common.yaml
-
-* Wed Jan 9 22:23:03 UTC 2013 - tracy.graydon@intel.com
-- TIVI-459: openssh-clients is now openssh-client
-
-* Tue Oct 2 19:11:39 UTC 2012 - tracy.graydon@intel.com
-- Clean up for Tizen IVI 2.0
+* Tue Dec 11 2012 Anas Nashif <anas.nashif@intel.com> submit/trunk/20121212.030528@55466e2
+- make this 'base' specific
+++ /dev/null
-<manifest>
- <request>
- <domain name="_"/>
- </request>
-</manifest>
-Summary: Tizen 2.0 Package Groups for IVI
+%bcond_with tizen_profile
+
+Summary: Tizen IVI Package Groups
Name: package-groups
-Version: 2
+Version: 102
Release: 1
License: GPLv2
Group: System/Base
URL: http://www.tizen.org
Source: %{name}-%{version}.tar.bz2
-Source1001: packaging/package-groups.manifest
-BuildRequires: libxslt
-BuildRequires: python-yaml
-BuildRequires: python-lxml
+BuildRequires: meta-common
+BuildRequires: meta-ivi
+BuildRequires: pattern-tools
+BuildRequires: python
+BuildRequires: xsltproc
%description
%setup -q
%build
-cp %{SOURCE1001} .
%ifarch %{arm}
-make ARCH=arm
+%define __arch arm
%else
-make ARCH=i586
+%define __arch i586
%endif
-%install
-%make_install
+mkdir -p input output
+for pp in common base; do
+ test -d %{_datadir}/package-groups/$pp && cp %{_datadir}/package-groups/$pp/*.yaml input
+done
+
+merge-patterns -a %__arch --pattern-dir=input/ --output-dir=output/
+xsltproc /usr/share/package-groups/stylesheets/comps.xsl output/patterns.xml > output/group.xml
+%install
+install -d %{buildroot}/usr/share/package-groups
+install -m 644 output/patterns.xml %{buildroot}/usr/share/package-groups
+install -m 644 output/group.xml %{buildroot}/usr/share/package-groups
+
%files
-%manifest package-groups.manifest
-/usr/share/package-groups/*xml
+%{_datadir}/package-groups/*.xml
+++ /dev/null
-Description: Hardware adaptation packages for Intel Automotive
-Name: adaptation-automotive-intel
-Packages:
-- device-manager-plugin-ivi
-- linux-firmware-ivi
-- mesa-dri-i915-driver
-- mesa-dri-i965-driver
-- mesa-dri-swrast-driver
-- mesa-libEGL
-- mesa-libGLESv2
-- system-plugin-ia-generic-ivi
-- xorg-x11-drv-intel
-- xorg-x11-server-misc-ndis
-Summary: Hardware adaptation packages for Intel Automotive
+++ /dev/null
-Description: Common Applications
-Name: appscommon
-Packages:
-- apps.Internet
-- org.tizen.app-selector
-- org.tizen.bluetooth-share-ui
-- org.tizen.bt-syspopup
-- org.tizen.crash-popup
-- org.tizen.download-manager
-- org.tizen.indicator
-- org.tizen.lowmem-syspopup
-- org.tizen.menu-screen
-- org.tizen.poweroff-syspopup
-- org.tizen.quickpanel
-- org.tizen.setting
-- org.tizen.smartsearch
-- org.tizen.taskmgr
-- org.tizen.tickernoti-syspopup
-- org.tizen.usb-syspopup
-- org.tizen.volume
-- org.tizen.wifi-direct-popup
-- org.tizen.wifi-direct-ugapp
-- ug-gallery-efl
-Summary: Common Applications
+++ /dev/null
-Description: Applications for Reference target
-Name: appstargetsdk
-Packages:
-- libug-phone-efl
-- libug-calendar-efl
-- org.tizen.calculator
-- org.tizen.camera-app
-- org.tizen.calendar
-- org.tizen.calendar-viewer
-- org.tizen.clock
-- org.tizen.contacts
-- org.tizen.contacts-viewer
-- org.tizen.email
-- org.tizen.gallery
-- org.tizen.image-viewer
-- org.tizen.memo
-- org.tizen.message
-- org.tizen.music-player
-- org.tizen.myfile
-- org.tizen.video-player
-Summary: Applications for Reference target
+++ /dev/null
-Description: platform commonp packages
-Name: common
-Packages:
-- ail
-- alarm-server
-- alsa-lib
-- alsa-scenario
-- alsa-utils
-- app2sd
-- app-checker
-- app-checker-server
-- appcore-agent
-- app-core-common
-- app-core-efl
-- app-svc
-- attr
-- audio-session-manager
-- aul
-- automotive-message-broker
-- automotive-message-broker-plugins
-- avahi
-- avahi-data
-- avahi-libs
-- avsystem
-- badge
-- bash
-- binutils
-- bluetooth-agent
-- bluetooth-frwk
-- bluetooth-frwk-core
-- bluetooth-frwk-service
-- bluez
-- boost
-- boost-program-options
-- boost-thread
-- boot-animation
-- bundle
-- busybox
-- busybox-symlinks-busybox
-- busybox-symlinks-dnsutils
-- busybox-symlinks-ifupdown
-- busybox-symlinks-iputils-ping
-- busybox-symlinks-klogd
-- busybox-symlinks-openbsd-inetd
-- busybox-symlinks-sysklogd
-- busybox-symlinks-telnetd
-- busybox-symlinks-udhcpc
-- busybox-symlinks-udhcpd
-- bzip2
-- bzip2-libs
-- ca-certificates
-- cairo
-- call-setting
-- capi-appfw-package-manager
-- capi-media-video-util
-- capi-system-usb-accessory
-- cbhm
-- cert-svc
-- cert-svc-ui
-- connman
-- cpio
-- crash-worker-sdk
-- cups
-- cups-data
-- cups-filters
-- cups-libs
-- curl
-- data-router
-- dbus
-- dbus-glib
-- dbus-libs
-- dbus-python
-- default-fonts-fc-sdk
-- default-fonts-sdk
-- diffutils
-- dleyna
-- dlogutil
-- dnsmasq
-- dos2unix
-- dosfstools
-- download-provider
-- drm-client
-- drm-service-core-intel
-- e17
-- e17-data
-- e17-extra-config-modules
-- e17-extra-modules
-- e2fsprogs
-- ecore
-- ecore-con
-- ecore-evas
-- ecore-fb
-- ecore-file
-- ecore-imf
-- ecore-imf-evas
-- ecore-input
-- ecore-input-evas
-- ecore-ipc
-- ecore-tools
-- ecore-x
-- edbus
-- edje
-- edje-tools
-- eet
-- eet-tools
-- efl-theme-tizen-hd
-- efreet
-- eglibc
-- eglibc-common
-- eina
-- elementary
-- elementary-tools
-- elfutils
-- elfutils-libelf
-- elfutils-libs
-- elm-misc
-- email-service
-- embryo
-- emotion
-- emotion-gstreamer
-- enchant
-- epson-laser-printer-escpage
-- ethumb
-- evas
-- expat
-- face-engine
-- file
-- filesystem
-- findutils
-- fontconfig
-- freealut
-- freetype
-- fribidi
-- fsync
-- gawk
-- gcd
-- gconf-dbus
-- gconf-dbus-utils
-- gdb
-- gdb-server
-- geoclue
-- geoclue-nominatim
-- gettext-runtime
-- GhostCluster
-- giflib
-- glib-networking
-- gps-manager
-- grep
-- gssdp
-- gst-ffmpeg
-- gst-plugins-base
-- gst-plugins-base-tools
-- gst-plugins-ext0.10
-- gst-plugins-good
-- gst-plugins-ugly
-- gstreamer
-- gstreamer-tools
-- gstreamer-vaapi
-- gstreamer-vaapi-devel
-- gupnp
-- gupnp-av
-- gupnp-dlna
-- gzip
-- heynoti
-- icu
-- icu
-- iniparser
-- initscripts
-- iptables
-- iptables-ipv6
-- ise-default
-- ise-engine-default
-- ise-engine-hangul
-- isf
-- json-glib
-- kmod
-- lemolo
-- less
-- libaccounts-svc
-- libalarm
-- libarchive
-- libasound
-- libattr
-- libavcodec
-- libavformat
-- libavutil
-- libblkid
-- libbluetooth3
-- libcamsrcjpegenc
-- libcamsrcjpegenc-sw-libjpeg
-- libcryptsvc
-- libcupsfilters1
-- libcurl
-- libdaemon
-- libdevman
-- libdlog
-- libdmx
-- libdri2
-- libdrm
-- libdrm-slp1
-- libexif
-- libface-engine
-- libfile
-- libfontenc
-- libgcc
-- libgcrypt
-- libgeoclue
-- libgomp
-- libgpg-error
-- libgphoto2
-- libgphoto2-port
-- libgudev1
-- libhangul
-- libhangul-data
-- libICE
-- libicu
-- libijs
-- libiri
-- libjpeg-turbo
-- libkms
-- liblcms2
-- libleveldb
-- libmedia-service
-- libmedia-thumbnail
-- libmedia-utils
-- libmm-camcorder
-- libmm-common
-- libmm-fileinfo
-- libmm-imgp-gstcs
-- libmm-player
-- libmm-radio
-- libmm-session
-- libmm-sound
-- libmm-sound-tool
-- libmm-ta
-- libmm-transcode
-- libmm-utility
-- libmount
-- libnet-client
-- libogg
-- liboil
-- libpci3
-- libpciaccess
-- libpng
-- libpoppler25
-- libpoppler-glib8
-- libprivilege-control
-- libprivilege-control-conf
-- libpush
-- libpython
-- librua
-- libsecurity-server-client
-- libsf-common
-- libshortcut
-- libslp-alarm
-- libslp-db-util
-- libslp-lbsplugin-replay
-- libslp-location
-- libslp-memo
-- libslp-pm
-- libslp-tapi
-- libslp-utilx
-- libSM
-- libsndfile
-- libsoup2.4
-- libsqlfs
-- libss-client
-- libsvi
-- libswscale
-- libtcore
-- libtheora
-- libtiff
-- libttssmt
-- libudev
-- libug-setting-wifidirect-efl
-- libug-worldclock-efl
-- libusb
-- libusb-compat
-- libuuid
-- libuw-imap-toolkit
-- libvorbis
-- libwbxml2
-- libwbxml2-utils
-- libwifi-direct
-- libX11
-- libXau
-- libXaw
-- libxcb
-- libxcb-devel
-- libXcomposite
-- libXcursor
-- libXdamage
-- libXdmcp
-- libXext
-- libXfixes
-- libXfont
-- libXft
-- libXgesture
-- libXi
-- libXinerama
-- libxkbfile
-- libXmu
-- libXpm
-- libXpm-devel
-- libXrandr
-- libXrender
-- libXres
-- libXt
-- libXtst
-- libXv
-- libXxf86dga
-- libXxf86vm
-- location-geoclue-nominatim
-- location-gps-manager
-- lsb
-- ltrace
-- lua
-- lzo
-- lzo-minilzo
-- media-data-sdk
-- media-server
-- media-thumbnail-server
-- mingetty
-- minizip
-- mms-plugin
-- mmfw-sysconf-simulator
-- module-init-tools
-- murphy
-- msg-service
-- msg-service-tools
-- neard-plugin
-- neard-tizen
-- neard-tizen-test
-- neardal-tizen
-- neardal-tizen-ncl
-- net-config
-- net-tools
-- org.tizen.net-popup
-- nettle
-- nfc-common-lib
-- nfc-manager
-- notification
-- ofono
-- openal-soft
-- opencore-amr
-- openssh-client
-- openssh-server
-- pam-modules-extra
-- pciutils
-- pcre
-- pims-ipc
-- pkgmgr
-- pkgmgr-client
-- pkgmgr-info
-- pkgmgr-info-parser
-- pkgmgr-installer
-- pkgmgr-server
-- poppler-tools
-- power-manager
-- prelink
-- psmisc
-- pulseaudio
-- pulseaudio-libs
-- pulseaudio-locale
-- pulseaudio-module-bluetooth
-- pulseaudio-module-murphy-ivi
-- pulseaudio-utils
-- push-bin
-- push-tool
-- python-base
-- python-xml
-- qpdf
-- ragel
-- readline
-- rpm
-- rpm-installer
-- rpm-libs
-- rygel
-- rygel-gst-0-10-fullscreen-renderer
-- rygel-gst-0-10-media-engine
-- rygel-gst-0-10-media-plugins
-- sdbd
-- security-server
-- sed
-- sensor
-- sensor-framework
-- shadow-utils
-- shared-mime-info
-- sharutils
-- smack
-- smack-utils
-- smartcard-plugin-nfc
-- smartcard-plugin-uicc
-- smartcard-service
-- smartcard-service-common
-- smartcard-service-server
-- sms-plugin
-- speex
-- speex-tools
-- sqlite
-- ss-server
-- starter
-- strace
-- stt
-- svi-data-sdk
-- sys-assert
-- syslinux
-- syslinux-extlinux
-- sysman
-- syspopup
-- syspopup-caller
-- sys-string
-- systemd
-- systemd-bootmode
-- systemd-console-ttySAC2
-- system-plugin-ia-generic-ivi
-- system-popup
-- system-server
-- sysvinit
-- sysvinit-utils
-- tar
-- telephony-daemon
-- tel-plugin-database
-- tel-plugin-dbus_tapi
-- tel-plugin-packetservice
-- tel-plugin-vconf
-- texinfo
-- tizen-coreutils
-- tizen-mobile-session
-- tizen-release
-- tts
-- udev
-- ug-camera-efl
-- ug-image-viewer-efl
-- ug-memo-efl
-- ug-myfile-efl
-- ug-nfc-efl
-- ug-setting-gallery-efl
-- ug-setting-location-efl
-- ug-setting-manage-applications-efl
-- ug-share-nfc-efl
-- ui-gadget-1
-- unzip
-- usb-server
-- usbutils
-- usleep
-- util-linux
-- uuidd
-- vaapi-intel-driver
-- vconf
-- vconfig
-- vim-common
-- vim-minimal
-- web-ui-fw
-- web-ui-fw-theme-default
-- web-ui-fw-theme-tizen-white
-- which
-- wifi-direct-manager
-- wifi-direct-plugin-wpasupplicant
-- wrt
-- wrt-commons
-- wrt-installer
-- wrt-plugins-common
-- wrt-plugins-tizen
-- wrt-setting
-- xcb-util-devel
-- xdgmime
-- xkb-data
-- xkeyboard-config
-- xmlsec1
-- xmlsec1-openssl
-- xorg-launch-helper
-- xorg-x11-apps
-- xorg-x11-drv-evdev
-- xorg-x11-drv-evdev-multitouch
-- xorg-x11-drv-gesture
-- xorg-x11-font-utils
-- xorg-x11-server-common
-- xorg-x11-server-utils
-- xorg-x11-server-Xorg
-- xorg-x11-utils
-- xorg-x11-xbitmaps
-- xorg-x11-xinit
-- xorg-x11-xinput
-- xorg-x11-xkb-utils
-- xorg-x11-xtrans-devel
-- xrestop
-- xz
-- xz-libs
-- zeromq
-- zless
-- zlib
-- zypper
-- anthy
-- ise-engine-anthy
-- ise-engine-sunpinyin
-- ise-engine-tables
-- ise-engine-tables-zh
-Summary: SLP Platform System
+++ /dev/null
-Description: IVI QA Tools
-Name: ivi-qa
-Packages:
-- python-xml
-- ofono-test
-- eet-tools
-- gdb
-- zypper
-- dbus-python
-- openssh-client
-- openssh-server
-- connman-test
-- neard-test
-- wget
-- bluez-test
-Summary: IVI QA Tools
+++ /dev/null
-Description: Tizen C++ Framework
-Name: osp
-Packages:
-- chromium
-- osp-app-controls
-- osp-app-service
-- osp-appfw
-- osp-bluetooth
-- osp-channel-service
-- osp-compat
-- osp-connectivity-service
-- osp-content
-- osp-env-config
-- osp-face
-- osp-image
-- osp-image-core
-- osp-ime
-- osp-installer
-- osp-json
-- osp-loader
-- osp-locations
-- osp-media
-- osp-messaging
-- osp-net
-- osp-nfc
-- osp-security-service
-- osp-shell
-- osp-social
-- osp-speech
-- osp-telephony
-- osp-uifw
-- osp-uix
-- osp-web
-Summary: Tizen C++ Framework
+++ /dev/null
-Description: trats
-Name: trats
-Packages:
-- alsa-scenario-scn-data-0-mc1n2
-- bluetooth-share
-- bluetooth-tools
-- e17-misc
-- libbluetooth-share
-- mobileap-agent
-- net.wifi-qs
-- obexd
-- pango
-- pixman
-- rfkill
-- ug-bluetooth-efl
-- ug-setting-mobileap-efl
-- wifi-efl-ug
-- wpasupplicant
-Summary: trats
+++ /dev/null
-#!/usr/bin/python
-
-import yaml
-import sys, os
-import optparse
-
-
-def sort_pkgs(patterns_dir='patterns'):
- for f in os.listdir(patterns_dir):
- if not f.endswith('.yaml'):
- continue
- print f
- stream = file("%s/%s" %(patterns_dir,f), 'r+')
- y = yaml.load(stream)
- if y.has_key('Packages'):
- y['Packages'] = sorted(y['Packages'])
- yf = yaml.dump(y, default_flow_style=False)
- stream.seek(0)
- stream.write(yf)
- stream.close()
-
-
-
-if __name__ == '__main__':
- parser = optparse.OptionParser()
-
- parser.add_option("-s", "--sort", action="store_true", default=False,
- help="sort packages")
-
- (options, args) = parser.parse_args()
-
- if options.sort:
- sort_pkgs()
-
+++ /dev/null
-#!/usr/bin/python
-
-import xml.etree.ElementTree as ET
-import sys
-import yaml
-import os
-
-
-
-for f in os.listdir("patterns"):
- if '.xml' not in f:
- continue
- tree = ET.parse("patterns/%s" %f)
-
- p = {}
- namespace="http://linux.duke.edu/metadata/rpm"
- pns = 'http://novell.com/package/metadata/suse/pattern'
- n = tree.find('{%s}name' %pns).text
- if n.startswith("meego-"):
- n = n[6:]
- p['Name'] = n
- s = tree.find('{%s}summary' %pns).text
- if s.startswith("MeeGo"):
- s = s[5:].lstrip()
- p['Summary'] = s
- p['Description'] = tree.find('{%s}description' %pns).text
- req = tree.findall('.//{%s}entry' % namespace)
- pkgs = []
- for r in req:
- pkgs.append(r.attrib.get("name"))
-
- p['Packages'] = pkgs
- yf = yaml.dump(p, default_flow_style=False)
-
- yfn = os.path.basename(f).rpartition(".")[0] + ".yaml"
- if yfn.startswith("meego-"):
- yfn = yfn[6:]
- fp = open("new/%s" %yfn, 'w')
- fp.write(yf)
- fp.close()
-
+++ /dev/null
-#!/usr/bin/python
-
-import xml.etree.ElementTree as ET
-import sys
-
-tree1 = ET.parse(sys.argv[1])
-tree2= ET.parse(sys.argv[2])
-
-namespace="http://linux.duke.edu/metadata/rpm"
-req1 = tree1.findall('.//{%s}entry' % namespace)
-req2 = tree2.findall('.//{%s}entry' % namespace)
-l2 = []
-l1 = []
-for r in req1:
- l1.append(r.attrib.get("name"))
-for r in req2:
- l2.append(r.attrib.get("name"))
-
-s1 = set(sorted(l1))
-s2 = set(sorted(l2))
-intersection = s1 & s2
-for i in intersection:
- print i
+++ /dev/null
-#!/usr/bin/python
-# Copyright 2008 Marcus D. Hanwell <marcus@cryos.org>
-# Distributed under the terms of the GNU General Public License v2 or later
-
-import string, re, os
-
-# Execute git log with the desired command line options.
-fin = os.popen('git log --summary --stat --no-merges --date=short', 'r')
-# Create a ChangeLog file in the current directory.
-fout = open('ChangeLog', 'w')
-
-# Set up the loop variables in order to locate the blocks we want
-authorFound = False
-dateFound = False
-messageFound = False
-filesFound = False
-message = ""
-messageNL = False
-files = ""
-prevAuthorLine = ""
-
-# The main part of the loop
-for line in fin:
- # The commit line marks the start of a new commit object.
- if string.find(line, 'commit') >= 0:
- # Start all over again...
- authorFound = False
- dateFound = False
- messageFound = False
- messageNL = False
- message = ""
- filesFound = False
- files = ""
- continue
- # Match the author line and extract the part we want
- elif re.match('Author:', line) >=0:
- authorList = re.split(': ', line, 1)
- author = authorList[1]
- author = author[0:len(author)-1]
- authorFound = True
- # Match the date line
- elif re.match('Date:', line) >= 0:
- dateList = re.split(': ', line, 1)
- date = dateList[1]
- date = date[0:len(date)-1]
- dateFound = True
- # The svn-id lines are ignored
- elif re.match(' git-svn-id:', line) >= 0:
- continue
- # The sign off line is ignored too
- elif re.search('Signed-off-by', line) >= 0:
- continue
- # Extract the actual commit message for this commit
- elif authorFound & dateFound & messageFound == False:
- # Find the commit message if we can
- if len(line) == 1:
- if messageNL:
- messageFound = True
- else:
- messageNL = True
- elif len(line) == 4:
- messageFound = True
- else:
- if len(message) == 0:
- message = message + line.strip()
- else:
- message = message + " " + line.strip()
- # If this line is hit all of the files have been stored for this commit
- elif re.search('files changed', line) >= 0:
- filesFound = True
- continue
- # Collect the files for this commit. FIXME: Still need to add +/- to files
- elif authorFound & dateFound & messageFound:
- fileList = re.split(' \| ', line, 2)
- if len(fileList) > 1:
- if len(files) > 0:
- files = files + ", " + fileList[0].strip()
- else:
- files = fileList[0].strip()
- # All of the parts of the commit have been found - write out the entry
- if authorFound & dateFound & messageFound & filesFound:
- # First the author line, only outputted if it is the first for that
- # author on this day
- authorLine = date + " " + author
- if len(prevAuthorLine) == 0:
- fout.write(authorLine + "\n")
- elif authorLine == prevAuthorLine:
- pass
- else:
- fout.write("\n" + authorLine + "\n")
-
- # Assemble the actual commit message line(s) and limit the line length
- # to 80 characters.
- commitLine = "* " + files + ": " + message
- i = 0
- commit = ""
- while i < len(commitLine):
- if len(commitLine) < i + 78:
- commit = commit + "\n " + commitLine[i:len(commitLine)]
- break
- index = commitLine.rfind(' ', i, i+78)
- if index > i:
- commit = commit + "\n " + commitLine[i:index]
- i = index+1
- else:
- commit = commit + "\n " + commitLine[i:78]
- i = i+79
-
- # Write out the commit line
- fout.write(commit + "\n")
-
- #Now reset all the variables ready for a new commit block.
- authorFound = False
- dateFound = False
- messageFound = False
- messageNL = False
- message = ""
- filesFound = False
- files = ""
- prevAuthorLine = authorLine
-
-# Close the input and output lines now that we are finished.
-fin.close()
-fout.close()
+++ /dev/null
-#!/usr/bin/python
-
-import yaml
-import sys, os
-import optparse
-from lxml import etree
-
-
-
-
-def create_patterns(arch='i586', split=False, patterns_dir='patterns'):
-
- rpm_ns="http://linux.duke.edu/metadata/rpm"
- pattern_ns="http://novell.com/package/metadata/suse/pattern"
- PATTERN = "{%s}" % pattern_ns
- if not split:
- xmlroot = etree.Element("patterns")
- NSMAP = {None : pattern_ns, "rpm": rpm_ns, "patterns": pattern_ns}
- else:
- NSMAP = {None : pattern_ns, "rpm": rpm_ns}
-
- count = 0
- for f in os.listdir(patterns_dir):
- if not f.endswith('.yaml'):
- continue
- print "Working on %s" %f
- count = count + 1
- stream = file("%s/%s" %(patterns_dir,f), 'r')
- y = yaml.load(stream)
- if y.has_key('Arch') and y['Arch'] != arch:
- print "Skipping pattern '%s' because architecture doesn't match ('%s' vs '%s')." % (y['Name'], y['Arch'], arch)
- continue
- if split:
- proot = etree.Element("pattern", nsmap=NSMAP)
- else:
- proot = etree.SubElement(xmlroot, "pattern", nsmap=NSMAP)
-
- etree.SubElement(proot, "name").text = y['Name']
- etree.SubElement(proot, "summary").text = y['Summary']
- etree.SubElement(proot, "description").text = y['Description']
- etree.SubElement(proot, "uservisible")
- cat = etree.SubElement(proot, "category")
- cat.text = "Base Group"
- cat.set("lang", "en")
- req = etree.SubElement(proot, "{%s}requires" %rpm_ns)
- if y.has_key('Patterns'):
- collect = []
- for pat in y['Patterns']:
- if os.path.exists("%s/%s.yaml" %(patterns_dir, pat)):
- pf = file("%s/%s.yaml" %(patterns_dir, pat), 'r')
- pfy = yaml.load(pf)
- if pfy.has_key('Packages'):
- collect += pfy['Packages']
- elif y.has_key('Packages'):
- collect = y['Packages']
-
- for p in collect:
- if type(p).__name__=='dict':
- a = p.values()[0]
- if a == arch:
- entry = etree.SubElement(req, "{%s}entry" %rpm_ns)
- entry.set("name", p.keys()[0])
- entry.set("arch", arch)
- else:
- entry = etree.SubElement(req, "{%s}entry" %rpm_ns)
- entry.set("name", p)
- if split:
- tree = etree.ElementTree(proot)
- tree.write("%s.xml" %y['Name'], pretty_print=True)
-
- if not split:
- xmlroot.set('count', "%d" %count)
- tree = etree.ElementTree(xmlroot)
- tree.write("patterns.xml")
-
-
-if __name__ == '__main__':
- parser = optparse.OptionParser()
-
- parser.add_option("-a", "--arch", type="string", dest="arch",
- help="architecture")
- parser.add_option("-s", "--split", action="store_true", dest="split", default=False,
- help="split patterns into single files")
-
- (options, args) = parser.parse_args()
-
- if options.arch and options.arch in ['i586', 'arm']:
- create_patterns(arch=options.arch, split=options.split)
-
+++ /dev/null
-#!/bin/bash
-
-if [ -z "$1" ]; then
- echo "Merge request number needed"
- exit 1
-fi
-
-# Check out a new branch for integration
-git checkout -b merge-requests/$1
-
-# Fetch the merge request into this branch
-git pull git://gitorious.org/meego-os-base/package-groups.git refs/merge-requests/$1
-
-# Show the commits, assess they are okay
-git log --pretty=oneline --abbrev-commit master..merge-requests/$1
-
-# To apply the changes to your branch:
-git checkout master
-git merge merge-requests/$1
-git push origin master
+++ /dev/null
-#!/usr/bin/python
-
-import os, sys
-
-group_template = '''<?xml version="1.0" encoding="UTF-8"?>
-<pattern xmlns:rpm="http://linux.duke.edu/metadata/rpm"
- xmlns="http://novell.com/package/metadata/suse/pattern">
- <name>@GROUPNAME@</name>
- <summary>@GROUPNAME@</summary>
- <description>@GROUPNAME@</description>
- <uservisible/>
- <category lang="en">@GROUPNAME@</category>
- <rpm:requires>
-@PKGS@
- </rpm:requires>
-</pattern>
-'''
-
-entry_template = ''' <rpm:entry name="@PKGNAME@"/>'''
-
-def main():
- if not len(sys.argv) == 2:
- exit()
- data_file = open(sys.argv[1], 'r')
- group_table = data_file.readlines()
- data_file.close()
-
- pkg_group_info = []
-
- for record_index in range(len(group_table)):
- record = group_table[record_index].replace('\n', '')
- if record_index == 0:
- group_names = record.split(',')
- else:
- pkg_info = record.split(',')
- pkgname = pkg_info[0]
- groupnum = 0
- for index in range(len(pkg_info)):
- if pkg_info[index] is not None and pkg_info[index] == "x":
- groupnum = index
- break
- if groupnum == 0:
- print('package not involved : ' + pkgname)
- else:
- pkg_group_info.append([pkgname, groupnum])
-
- for group_index in range(len(group_names)):
- if group_index == 0:
- continue
- group_file = open(os.getcwd() + '/patterns/' + group_names[group_index] + '.xml', 'w')
- group_content = group_template.replace('@GROUPNAME@', group_names[group_index])
- pkgs = None
- for item in pkg_group_info:
- if item[1] == group_index:
- if pkgs is None:
- pkgs = entry_template.replace('@PKGNAME@', item[0])
- else:
- pkgs = pkgs + '\n' + entry_template.replace('@PKGNAME@', item[0])
-
- group_content = group_content.replace('@PKGS@', pkgs)
- group_file.write(group_content)
- group_file.close()
-
-
-if __name__ == "__main__":
- main()
-
+++ /dev/null
-#!/usr/bin/python
-
-import os, sys
-
-group_template = '''<?xml version="1.0" encoding="UTF-8"?>
-<pattern xmlns:rpm="http://linux.duke.edu/metadata/rpm"
- xmlns="http://novell.com/package/metadata/suse/pattern">
- <name>@GROUPNAME@</name>
- <summary>@GROUPNAME@</summary>
- <description>@GROUPNAME@</description>
- <uservisible/>
- <category lang="en">@GROUPNAME@</category>
- <rpm:requires>
-@PKGS@
- </rpm:requires>
-</pattern>
-'''
-
-entry_template = ''' <rpm:entry name="@PKGNAME@"/>'''
-
-def main():
- if not len(sys.argv) == 3:
- exit()
- data_file = open(sys.argv[1], 'r')
- group_table = data_file.readlines()
- data_file.close()
-
- pkg_group_info = []
-
- pkgs = None
-
- group_file = open(os.getcwd() + '/patterns/' + sys.argv[2] + '.xml', 'w')
- group_content = group_template.replace('@GROUPNAME@', sys.argv[2])
-
- for record_index in range(len(group_table)):
- record = group_table[record_index].replace('\n', '')
- if pkgs is None:
- pkgs = entry_template.replace('@PKGNAME@', record)
- else:
- pkgs = pkgs + '\n' + entry_template.replace('@PKGNAME@', record)
-
- group_content = group_content.replace('@PKGS@', pkgs)
- group_file.write(group_content)
- group_file.close()
-
-
-if __name__ == "__main__":
- main()
-
+++ /dev/null
-#!/bin/sh
-
-if [ -z "$1" ]; then
- echo "You need to provide a pattern name as an argument"
- exit 1
-fi
-PATTERN=$@
-TMPDIR=`mktemp -d`
-mkdir -p $TMPDIR
-CMD="zypper --gpg-auto-import-keys -R $TMPDIR "
-$CMD ar http://download.meego.com/snapshots/1.1.90.3.20110216.81/oss/repos/ia32/packages/ oss
-$CMD ar http://download.meego.com/snapshots/1.1.90.3.20110216.81/non-oss/repos/ia32/packages/ non-oss
-$CMD in --dry-run --type pattern $PATTERN
-
-rm -rf $TMPDIR
+++ /dev/null
-#!/bin/bash
-
-ARCH=$1
-mkdir new
-for i in `ls -1 patterns/*.xml`; do
- base=`basename $i`
- xsltproc --stringparam arch $ARCH xsl/filter.xsl $i > new/$base
-done
-echo "<index>" > INDEX.xml;
-for i in `ls -1 new/*.xml`; do echo "<file>$i</file>" >> INDEX.xml; done;
-echo "</index>" >> INDEX.xml
-xsltproc xsl/merge.xsl INDEX.xml > patterns.xml
-xsltproc xsl/comps.xsl patterns.xml > group.xml
-rm -rf new
+++ /dev/null
-#!/bin/sh
-
-
-TMPDIR=`mktemp -d`
-mkdir -p $TMPDIR
-CMD="zypper -v --no-gpg-checks --non-interactive --gpg-auto-import-keys -R $TMPDIR "
-
-function setup_repos() {
- test -d "download.tz.otcshare.org" || (
- wget -m -I "live/Tizen:/Base/standard/repodata" --no-parent https://download.tz.otcshare.org/live/Tizen:/Base/standard/repodata
- wget -m -I "live/Tizen:/Main/standard/repodata" --no-parent https://download.tz.otcshare.org/live/Tizen:/Main/standard/repodata
- )
- $CMD ar file://$PWD/download.tz.otcshare.org/live/Tizen:/Main/standard/ staging
- $CMD ar file://$PWD/download.tz.otcshare.org/live/Tizen:/Base/standard/ base
-}
-function show()
-{
- setup_repos
- $CMD pt
-}
-function patterns()
-{
- setup_repos
- PATTERNS=$(echo $1 | sed 's/,/ /g')
- $CMD in --dry-run --type pattern $PATTERNS
-
-}
-while getopts ":sp:n:c" opt; do
- case $opt in
- n)
- echo "Using new pattern file $OPTARG"
- NEW_PATTERN_FILE=$OPTARG
- ;;
- p)
- echo "$OPTARG" >&2
- PATTERNS=$OPTARG
- ;;
- s)
- SHOW_PATTERNS=1
- ;;
- c)
- CLEAN=1
- ;;
- \?)
- echo "Invalid option: -$OPTARG" >&2
- exit 1
- ;;
- esac
-done
-
-if [ -z "$1" ]; then
- echo "You need to provide a pattern name as an argument"
- exit 1
-fi
-
-
-if [ -n "$CLEAN" ]; then
- rm -rf download.tz.otcshare.org
-fi
-
-if [ -n "$NEW_PATTERN_FILE" ]; then
- echo "Modifying repos with new pattern $NEW_PATTERN_FILE"
- test -f $NEW_PATTERN_FILE && modifyrepo $NEW_PATTERN_FILE download.tz.otcshare.org/live/Tizen:/Main/standard/repodata
-fi
-if [ -n "$SHOW_PATTERNS" ]; then
- show
-fi
-if [ -n "$PATTERNS" ]; then
- patterns $PATTERNS
-fi
-
-rm -rf $TMPDIR
+++ /dev/null
-<?xml version="1.0" ?>
-<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
-<xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:rpm="http://linux.duke.edu/metadata/rpm"
- xmlns:patterns="http://novell.com/package/metadata/suse/pattern"
- version="1.0">
-
- <xsl:output method="xml" indent="yes" name="xml"/>
-
- <xsl:template match="patterns">
- <comps>
- <xsl:for-each select="patterns:pattern">
- <group>
- <id><xsl:value-of select="patterns:name"/></id>
- <name><xsl:value-of select="patterns:summary"/></name>
- <description><xsl:value-of select="patterns:description"/></description>
- <uservisible>true</uservisible>
- <packagelist>
- <xsl:for-each select="rpm:requires/rpm:entry">
- <packagereq type="default"><xsl:value-of select="@name"/></packagereq>
- </xsl:for-each>
- </packagelist>
- </group>
- </xsl:for-each>
- </comps>
- </xsl:template>
-
-
-</xsl:stylesheet>
+++ /dev/null
-<?xml version="1.0" ?>
-<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
-<xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:rpm="http://linux.duke.edu/metadata/rpm"
- xmlns:patterns="http://novell.com/package/metadata/suse/pattern"
- xmlns="http://novell.com/package/metadata/suse/pattern"
- version="1.0">
-
- <xsl:output method="xml" indent="yes" name="xml"/>
- <xsl:param name="arch"/>
-
- <xsl:template match="/">
- <pattern>
- <xsl:apply-templates/>
- </pattern>
- </xsl:template>
-
- <xsl:template match="*">
- <name><xsl:value-of select="patterns:name"/></name>
- <summary><xsl:value-of select="patterns:summary"/></summary>
- <description><xsl:value-of select="patterns:description"/></description>
- <uservisible/>
- <category lang="en"><xsl:value-of select="patterns:category"/></category>
- <rpm:requires>
- <xsl:for-each select="rpm:requires/rpm:entry">
- <xsl:if test="@arch = $arch or not(@arch)">
- <rpm:entry>
- <xsl:attribute name="name">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- </rpm:entry>
- </xsl:if>
- </xsl:for-each>
- </rpm:requires>
- </xsl:template>
-
-
-</xsl:stylesheet>
+++ /dev/null
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:template match="/">
- <patterns>
- <xsl:attribute name="count">
- <xsl:value-of select="count(/index/file)"/>
- </xsl:attribute>
- <xsl:for-each select="/index/file">
- <xsl:copy-of select="document(.)"/>
- </xsl:for-each>
- </patterns>
- </xsl:template>
-</xsl:stylesheet>