Set up branching for 2.0alpha 2.0alpha_branch
authorGraydon, Tracy <tracy.graydon@intel.com>
Mon, 22 Oct 2012 22:14:40 +0000 (15:14 -0700)
committerGraydon, Tracy <tracy.graydon@intel.com>
Mon, 22 Oct 2012 22:14:40 +0000 (15:14 -0700)
30 files changed:
.gitignore [new file with mode: 0755]
Makefile [new file with mode: 0755]
README [new file with mode: 0755]
VERSION [new file with mode: 0755]
packaging/package-groups.changes [new file with mode: 0755]
packaging/package-groups.spec [new file with mode: 0755]
patterns/appscommon.yaml [new file with mode: 0644]
patterns/appstargetsdk.yaml [new file with mode: 0644]
patterns/common.yaml [new file with mode: 0644]
patterns/emul.yaml [new file with mode: 0644]
patterns/ivi-base.yaml [new file with mode: 0644]
patterns/ivi-base.yaml.bak [new file with mode: 0644]
patterns/ivi-demos-support.yaml [new file with mode: 0644]
patterns/ivi-demos.yaml [new file with mode: 0644]
patterns/pinetrail-support.yaml [new file with mode: 0644]
patterns/trats.yaml [new file with mode: 0644]
scripts/cleanup-patterns.py [new file with mode: 0755]
scripts/convert-to-yaml.py [new file with mode: 0755]
scripts/find-duplicates.py [new file with mode: 0755]
scripts/gitlog2changelog.py [new file with mode: 0755]
scripts/merge-patterns.py [new file with mode: 0755]
scripts/merge-request.sh [new file with mode: 0755]
scripts/mkpatterns.py [new file with mode: 0755]
scripts/mkpatterns_from_list.py [new file with mode: 0755]
scripts/test-patterns.sh [new file with mode: 0755]
scripts/update.sh [new file with mode: 0755]
test/test-patterns.sh [new file with mode: 0755]
xsl/comps.xsl [new file with mode: 0755]
xsl/filter.xsl [new file with mode: 0755]
xsl/merge.xsl [new file with mode: 0755]

diff --git a/.gitignore b/.gitignore
new file mode 100755 (executable)
index 0000000..c7a1576
--- /dev/null
@@ -0,0 +1,3 @@
+group.xml
+patterns.xml
+*~
diff --git a/Makefile b/Makefile
new file mode 100755 (executable)
index 0000000..3a7e55a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,51 @@
+# ex: set tabstop=4 noexpandtab: 
+VERSION = $(shell cat VERSION)
+NAME=package-groups
+TAGVER = $(shell cat VERSION | sed -e "s/\([0-9\.]*\).*/\1/")
+DESTDIR=
+ARCH=i586
+
+ifeq ($(VERSION), $(TAGVER))
+        TAG = $(TAGVER)
+else
+        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
+
+install:
+       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
+
+tag:
+       git tag -a $(VERSION) -m "$(VERSION)"
+       git push --tags
+
+changelog:
+       python ./scripts/gitlog2changelog.py
+
+repackage: dist
+       osc branch -c Tizen:Base $(NAME)
+       rm home\:*\:branches\:Tizen:Base/$(NAME)/*tar.bz2
+       cp $(NAME)-$(VERSION).tar.bz2 home\:*\:branches\:Tizen:Base/$(NAME)
+
+       
+
+dist-bz2:
+       git archive --format=tar --prefix=$(NAME)-$(VERSION)/ $(TAG) | \
+               bzip2  > $(NAME)-$(VERSION).tar.bz2
+
+dist-gz:
+       git archive --format=tar --prefix=$(NAME)-$(VERSION)/ $(TAG) | \
+               gzip  > $(NAME)-$(VERSION).tar.gz
+
+dist: dist-bz2
+
+clean:
+       rm -rf patterns.xml INDEX.xml group.xml *.xml
diff --git a/README b/README
new file mode 100755 (executable)
index 0000000..e5000c5
--- /dev/null
+++ b/README
@@ -0,0 +1,25 @@
+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
+
+
+
+
diff --git a/VERSION b/VERSION
new file mode 100755 (executable)
index 0000000..d00491f
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+1
diff --git a/packaging/package-groups.changes b/packaging/package-groups.changes
new file mode 100755 (executable)
index 0000000..f603dd9
--- /dev/null
@@ -0,0 +1,3 @@
+-------------------------------------------------------------------
+Tue Oct  2 19:11:39 UTC 2012 - tracy.graydon@intel.com
+- Clean up for Tizen IVI 2.0
diff --git a/packaging/package-groups.spec b/packaging/package-groups.spec
new file mode 100755 (executable)
index 0000000..01e6f3a
--- /dev/null
@@ -0,0 +1,33 @@
+Summary:       Tizen 2.0 Package Groups for IVI
+Name:          package-groups
+Version:       1
+Release:       1
+License:       GPLv2
+Group:         System/Base
+URL:           http://www.tizen.org
+Source:                %{name}-%{version}.tar.bz2
+BuildRequires:  libxslt
+BuildRequires: python-yaml
+BuildRequires: python-lxml
+
+
+%description
+Tizen Package Groups
+
+%prep
+%setup -q
+
+%build
+%ifarch %{arm}
+make ARCH=arm
+%else
+make ARCH=i586
+%endif
+
+%install
+%make_install
+
+
+%files
+/usr/share/package-groups/*xml
+
diff --git a/patterns/appscommon.yaml b/patterns/appscommon.yaml
new file mode 100644 (file)
index 0000000..8fc2a77
--- /dev/null
@@ -0,0 +1,20 @@
+Description: Common Applications
+Name: appscommon
+Packages:
+- org.tizen.app-selector
+- org.tizen.browser
+- org.tizen.call
+- org.tizen.download-manager
+- org.tizen.draglock
+- org.tizen.indicator
+- org.tizen.lowbat-syspopup
+- org.tizen.lowmem-syspopup
+- org.tizen.menu-screen
+- org.tizen.poweroff-syspopup
+- org.tizen.quickpanel
+- org.tizen.tickernoti-syspopup
+- org.tizen.usb-syspopup
+- org.tizen.volume
+- org.tizen.wifi-direct-popup
+- org.tizen.wifi-direct-ugapp
+Summary: Common Applications
diff --git a/patterns/appstargetsdk.yaml b/patterns/appstargetsdk.yaml
new file mode 100644 (file)
index 0000000..b5f5973
--- /dev/null
@@ -0,0 +1,26 @@
+Description: Applications for Reference target
+Name: appstargetsdk
+Packages:
+- libug-calendar-efl
+- org.tizen.bluetooth-share-ui
+- org.tizen.bt-syspopup
+- org.tizen.calculator
+- org.tizen.calendar
+- org.tizen.calendar-viewer
+- org.tizen.camera-app
+- 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.phone
+- org.tizen.pwlock
+- org.tizen.smartsearch
+- org.tizen.taskmgr
+- org.tizen.video-player
+- ug-gallery-efl
+Summary: Applications for Reference target
diff --git a/patterns/common.yaml b/patterns/common.yaml
new file mode 100644 (file)
index 0000000..81f73bb
--- /dev/null
@@ -0,0 +1,422 @@
+Description: platform commonp packages
+Name: common
+Packages:
+- ail
+- alarm-server
+- alsa-lib
+- alsa-scenario
+- alsa-utils
+- app-checker
+- app-checker-server
+- appcore-agent
+- app-core-common
+- app-core-efl
+- app-svc
+- attr
+- audio-session-manager
+- aul
+- avahi
+- avahi-data
+- avahi-libs
+- avsystem
+- bash
+- binutils
+- bluetooth-frwk
+- bluetooth-frwk-agent
+- bluez
+- boost
+- boost-program-options
+- boost-thread
+- boot-animation
+- bundle
+- busybox
+- busybox-symlinks-bsdmainutils
+- busybox-symlinks-busybox
+- busybox-symlinks-console-tools
+- busybox-symlinks-dnsutils
+- busybox-symlinks-dosfstools
+- busybox-symlinks-ifupdown
+- busybox-symlinks-iputils-ping
+- busybox-symlinks-klogd
+- busybox-symlinks-net-tools
+- busybox-symlinks-openbsd-inetd
+- busybox-symlinks-passwd
+- busybox-symlinks-sysklogd
+- busybox-symlinks-telnetd
+- busybox-symlinks-tofrodos
+- busybox-symlinks-udhcpc
+- busybox-symlinks-udhcpd
+- busybox-symlinks-unzip
+- busybox-symlinks-vlan
+- bzip2
+- bzip2-libs
+- ca-certificates
+- cairo
+- call-setting
+- capi-appfw-package-manager
+- capi-system-usb-accessory
+- cbhm
+- cert-svc
+- cert-svc-ui
+- connman
+- contacts-service
+- curl
+- data-router
+- dbus
+- dbus-glib
+- dbus-libs
+- default-fonts-fc-sdk
+- default-fonts-sdk
+- dlogutil
+- dnsmasq
+- download-provider
+- drm-client
+- e17
+- e17-data
+- e17-extra-modules
+- e17-extra-private-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-white-hd
+- efreet
+- eglibc
+- eglibc-common
+- eina
+- elementary
+- elementary-tools
+- elfutils
+- elfutils-libelf
+- elfutils-libs
+- elm-misc
+- email-service
+- embryo
+- emotion
+- emotion-gstreamer
+- ethumb
+- evas
+- expat
+- face-engine
+- file
+- filesystem
+- findutils
+- fontconfig
+- freealut
+- freetype
+- fribidi
+- gawk
+- gconf-dbus
+- gconf-dbus-utils
+- gdb
+- gdb-server
+- geoclue
+- geoclue-nominatim
+- gettext-runtime
+- giflib
+- glib-networking
+- gps-manager
+- gst-ffmpeg
+- gst-openmax
+- gst-plugins-base
+- gst-plugins-base-tools
+- gst-plugins-ext0.10
+- gst-plugins-good
+- gst-plugins-ugly
+- gstreamer
+- gstreamer-tools
+- heynoti
+- icu
+- icu
+- iniparser
+- initscripts
+- iptables
+- iptables-ipv6
+- ise-default
+- ise-engine-default
+- ise-engine-hangul
+- isf
+- json-glib
+- libaccounts-svc
+- libalarm
+- libarchive
+- libasound
+- libattr
+- libavcodec
+- libavformat
+- libavutil
+- libbluetooth3
+- libcamsrcjpegenc
+- libcamsrcjpegenc-sw-libjpeg
+- libcurl
+- libdaemon
+- libdecarta
+- libdevman
+- libdlog
+- libdownload-agent
+- 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
+- libjpeg-turbo
+- libkms
+- 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-utility
+- libnet-client
+- libogg
+- liboil
+- libpci3
+- libpciaccess
+- libpng
+- libprivilege-control
+- libprivilege-control-conf
+- libpush
+- librua
+- libsecurity-server-client
+- libsf-common
+- libshortcut
+- libslp-alarm
+- libslp-db-util
+- libslp-lbs-plugin-replay
+- libslp-location
+- libslp-memo
+- libslp-pm
+- libslp-tapi
+- libslp-utilx
+- libSM
+- libsndfile
+- libsoup2.4
+- libsqlfs
+- libss-client
+- libsvi
+- libswscale
+- libtcore
+- libtheora
+- libtiff
+- libudev
+- libug-phone-efl
+- libug-setting-wifidirect-efl
+- libug-worldclock-efl
+- libusb
+- libuuid
+- 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-decarta
+- location-geoclue-nominatim
+- location-gps-manager
+- login
+- lsb
+- ltrace
+- lua
+- lzo
+- lzo-minilzo
+- media-data-sdk
+- media-server
+- media-thumbnail-server
+- menu-daemon
+- minizip
+- mms-plugin
+- module-init-tools
+- msg-service
+- msg-service-tools
+- net-config
+- net.netpopup
+- nettle
+- nfc-common-lib
+- nfc-manager
+- notification
+- openal-soft
+- opencore-amr
+- openssh-client
+- openssh-server
+- pciutils
+- pcre
+- pkgmgr
+- pkgmgr-client
+- pkgmgr-installer
+- pkgmgr-parser
+- pkgmgr-server
+- power-manager-bin
+- prelink
+- psmisc
+- pulseaudio
+- pulseaudio-libs
+- pulseaudio-locale
+- pulseaudio-module-bluetooth
+- pulseaudio-utils
+- push-bin
+- push-tool
+- ragel
+- readline
+- rpm
+- rpm-installer
+- rpm-libs
+- rpm-security-plugin
+- sdbd
+- security-server
+- sensor
+- sensor-framework
+- shared-mime-info
+- 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
+- sysman
+- syspopup
+- syspopup-caller
+- sys-string
+- systemd
+- system-popup
+- system-server
+- sysvinit
+- sysvinit-utils
+- sysv-rc
+- telephony-daemon
+- tel-plugin-database
+- tel-plugin-dbus_tapi
+- tel-plugin-packetservice
+- tel-plugin-vconf
+- texinfo
+- tizen-coreutils
+- tts
+- udev
+- 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
+- usb-server
+- usbutils
+- uuidd
+- vconf
+- web-ui-fw
+- web-ui-fw-theme-default
+- web-ui-fw-theme-tizen-black
+- web-ui-fw-theme-tizen-white
+- which
+- wrt
+- wrt-commons
+- wrt-installer
+- wrt-plugins-common
+- wrt-plugins-tizen
+- wrt-security
+- wrt-setting
+- xcb-util-devel
+- xdgmime
+- xkb-data
+- xkeyboard-config
+- xmlsec1
+- xmlsec1-openssl
+- 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
+- zlib
+- zypper
+Summary: SLP Platform System
diff --git a/patterns/emul.yaml b/patterns/emul.yaml
new file mode 100644 (file)
index 0000000..832b22c
--- /dev/null
@@ -0,0 +1,50 @@
+Description: emul
+Name: emul
+Packages:
+- alsa-scenario-scn-data-0-mc1n2
+- boost-filesystem
+- boost-system
+- boost-test
+- capi-media-metadata-extractor
+- capi-system-media-key
+- capi-uix-face
+- check
+- dbus-devel
+- default-files-emulator
+- device-manager-plugin-maru
+- e17-misc
+- eglibc-debuginfo
+- emuld
+- glib2
+- gnutls
+- gst-ffmpeg-emul
+- harfbuzz
+- libbluetooth-share
+- libdlog-devel
+- libxml2
+- minicontrol
+- mmfw-sysconf-simulator
+- nfc-plugin-emul
+- sensord
+- sf-plugin-accel-emul
+- sf-plugin-filter-accel-emul
+- sf-plugin-filter-geo-emul
+- sf-plugin-filter-light-emul
+- sf-plugin-filter-proxi-emul
+- sf-plugin-geo-emul
+- sf-plugin-gyro-emul-pkgs
+- sf-plugin-light-emul
+- sf-plugin-proc-accel-emul
+- sf-plugin-proc-geo-emul
+- sf-plugin-proc-light-emul
+- sf-plugin-proc-motion-emul
+- sf-plugin-proc-proxi-emul
+- sf-plugin-proxi-emul
+- sqlite
+- tel-plugin-atmodem
+- tel-plugin-vmodem
+- vmodemd-emul
+- webkit2-efl
+- xorg-x11-drv-emulfb
+- xorg-x11-misc-emulfb
+Summary: emul
diff --git a/patterns/ivi-base.yaml b/patterns/ivi-base.yaml
new file mode 100644 (file)
index 0000000..397d479
--- /dev/null
@@ -0,0 +1,88 @@
+Description: IVI Base
+Name: ivi-base
+Packages:
+- alsa-utils
+- augeas-libs
+- bash
+- bluez
+- bootchart
+- bzip2
+- c-ares
+- ca-certificates
+- connman
+- coreutils
+- db4
+- e2fsprogs
+- eglibc
+- eglibc-common
+- elfutils
+- elfutils-libelf
+- elfutils-libs
+- expat
+- file
+- filesystem
+- findutils
+- gawk
+- grep
+- gzip
+- iniparser
+- iptables
+- iptables-ipv6
+- json-c
+- kmod
+- libsqlfs
+- linux-firmware-ivi
+- lsb
+- mkdevnodes
+- mingetty
+- mmfw-sysconf-simulator
+- mtdev
+- mtools
+- net-tools
+- ntp
+- nspr
+- nss
+- nss-softokn-freebl
+- nss-sysinit
+- obexd
+- openssh-client
+- openssh-server
+- openssl
+- pam
+- pciutils
+- pkg-config
+- popt
+- prelink
+- procps
+- psmisc
+- pulseaudio-libs
+- pulseaudio-module-bluetooth
+- pulseaudio-utils
+- pulseaudio
+- pwdutils
+- python-base
+- readline
+- rfkill
+- rpm
+- sed
+- setup
+- satsolver-tools
+- shared-mime-info
+- smack
+- speex
+- sqlite
+- systemd
+- systemd-sysv
+- tizen-release
+- tzdata
+- tzdata-slp
+- udev
+- usbutils
+- util-linux
+- vim-minimal
+- which
+- wpa_supplicant
+- xz
+- zlib
+- zypper
+Summary: IVI Base
diff --git a/patterns/ivi-base.yaml.bak b/patterns/ivi-base.yaml.bak
new file mode 100644 (file)
index 0000000..cb7ea2d
--- /dev/null
@@ -0,0 +1,37 @@
+Description: IVI Base
+Name: ivi-base
+Packages:
+- bash
+- bluez
+- bzip2
+- ca-certificates
+- connman
+- coreutils
+- e2fsprogs
+- filesystem
+- gawk
+- grep
+- gzip
+- kmod
+- libsqlfs
+- lsb
+- mkdevnodes
+- mtdev
+- net-tools
+- prelink
+- procps
+- psmisc
+- readline
+- rfkill
+- rpm
+- sed
+- setup
+- tizen-release
+- tzdata-slp
+- udev
+- usbutils
+- util-linux
+- zypper
+- openssl
+- shared-mime-info
+Summary: IVI Base
diff --git a/patterns/ivi-demos-support.yaml b/patterns/ivi-demos-support.yaml
new file mode 100644 (file)
index 0000000..d3563c0
--- /dev/null
@@ -0,0 +1,15 @@
+Description: IVI Demos Support
+Name: ivi-demos-support
+Packages:
+- automotive-message-broker
+- connman-test
+- GhostCluster
+- gst-ffmpeg
+- gst-plugins-bad
+- gstreamer-vaapi
+- ivi-demo-config
+- libva
+- openbox
+- vaapi-intel-driver
+- webskeleton
+Summary: IVI Demos Support
diff --git a/patterns/ivi-demos.yaml b/patterns/ivi-demos.yaml
new file mode 100644 (file)
index 0000000..71e7619
--- /dev/null
@@ -0,0 +1,7 @@
+Description: IVI Demos
+Name: ivi-demos
+Patterns:
+- ivi-x-pc
+- ivi-devel
+- ivi-demos-support
+Summary: IVI Demos
diff --git a/patterns/pinetrail-support.yaml b/patterns/pinetrail-support.yaml
new file mode 100644 (file)
index 0000000..e349f8c
--- /dev/null
@@ -0,0 +1,25 @@
+Description: Pinetrail Support
+Name: pinetrail-support
+Packages:
+- device-config-touch-eGalax
+- kernel-adaptation-pc
+- linux-firmware
+- mmfw-sysconf-simulator
+- system-plugin-ia-generic
+- device-config-touch-Hanvon
+- device-config-touch-ILI
+- device-config-touch-cando
+- device-config-touch-eGalax
+- device-config-touch-mxt224
+- device-config-touch-sitronix
+- mingetty
+- xorg-x11-drv-intel
+- mesa-dri-i915-driver
+- mesa-dri-i965-driver
+- mesa-dri-swrast-driver
+- mesa-libEGL
+- mesa-libGLESv2
+- xorg-x11-server-misc-emulfb
+- device-manager-plugin-pinetrail
+- settings
+Summary: Pinetrail Support
diff --git a/patterns/trats.yaml b/patterns/trats.yaml
new file mode 100644 (file)
index 0000000..7802eee
--- /dev/null
@@ -0,0 +1,21 @@
+Description: trats
+Name: trats
+Packages:
+- alsa-scenario-scn-data-0-mc1n2
+- bluetooth-firmware-bcm
+- bluetooth-share
+- bluetooth-tools
+- e17-misc
+- libbluetooth-share
+- libflac
+- libremix
+- net.wifi-qs
+- nfc-plugin-nxp
+- obexd
+- pango
+- pixman
+- rfkill
+- ug-bluetooth-efl
+- wifi-efl-ug
+- wpa_supplicant
+Summary: trats
diff --git a/scripts/cleanup-patterns.py b/scripts/cleanup-patterns.py
new file mode 100755 (executable)
index 0000000..ab1e5ec
--- /dev/null
@@ -0,0 +1,34 @@
+#!/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()
+
diff --git a/scripts/convert-to-yaml.py b/scripts/convert-to-yaml.py
new file mode 100755 (executable)
index 0000000..19eb0ee
--- /dev/null
@@ -0,0 +1,41 @@
+#!/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()
+
diff --git a/scripts/find-duplicates.py b/scripts/find-duplicates.py
new file mode 100755 (executable)
index 0000000..c725e92
--- /dev/null
@@ -0,0 +1,23 @@
+#!/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
diff --git a/scripts/gitlog2changelog.py b/scripts/gitlog2changelog.py
new file mode 100755 (executable)
index 0000000..ce69b68
--- /dev/null
@@ -0,0 +1,124 @@
+#!/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()
diff --git a/scripts/merge-patterns.py b/scripts/merge-patterns.py
new file mode 100755 (executable)
index 0000000..cf630af
--- /dev/null
@@ -0,0 +1,89 @@
+#!/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)
+
diff --git a/scripts/merge-request.sh b/scripts/merge-request.sh
new file mode 100755 (executable)
index 0000000..43275d0
--- /dev/null
@@ -0,0 +1,20 @@
+#!/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
diff --git a/scripts/mkpatterns.py b/scripts/mkpatterns.py
new file mode 100755 (executable)
index 0000000..9a86e92
--- /dev/null
@@ -0,0 +1,67 @@
+#!/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()
+
diff --git a/scripts/mkpatterns_from_list.py b/scripts/mkpatterns_from_list.py
new file mode 100755 (executable)
index 0000000..f99d92b
--- /dev/null
@@ -0,0 +1,49 @@
+#!/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()
+
diff --git a/scripts/test-patterns.sh b/scripts/test-patterns.sh
new file mode 100755 (executable)
index 0000000..fd1c888
--- /dev/null
@@ -0,0 +1,15 @@
+#!/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
diff --git a/scripts/update.sh b/scripts/update.sh
new file mode 100755 (executable)
index 0000000..22eca32
--- /dev/null
@@ -0,0 +1,14 @@
+#!/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
diff --git a/test/test-patterns.sh b/test/test-patterns.sh
new file mode 100755 (executable)
index 0000000..42285ff
--- /dev/null
@@ -0,0 +1,72 @@
+#!/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
diff --git a/xsl/comps.xsl b/xsl/comps.xsl
new file mode 100755 (executable)
index 0000000..d18b0f8
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" ?>
+<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>
+<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>
diff --git a/xsl/filter.xsl b/xsl/filter.xsl
new file mode 100755 (executable)
index 0000000..03667f8
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" ?>
+<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>
+<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>
diff --git a/xsl/merge.xsl b/xsl/merge.xsl
new file mode 100755 (executable)
index 0000000..15b3487
--- /dev/null
@@ -0,0 +1,13 @@
+<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>