Sync with OBS version
authorGraydon, Tracy <tracy.graydon@intel.com>
Fri, 12 Oct 2012 02:19:12 +0000 (19:19 -0700)
committerGraydon, Tracy <tracy.graydon@intel.com>
Fri, 12 Oct 2012 02:19:12 +0000 (19:19 -0700)
30 files changed:
Makefile [new file with mode: 0755]
README [new file with mode: 0755]
README.kickstarter [new file with mode: 0755]
VERSION [new file with mode: 0755]
configurations.yaml [new file with mode: 0755]
custom/part/custom [new file with mode: 0755]
custom/part/tizen-ivi [new file with mode: 0755]
custom/scripts/boot-into-ui.post [new file with mode: 0755]
custom/scripts/buildname.nochroot [new file with mode: 0755]
custom/scripts/cleanup.post [new file with mode: 0755]
custom/scripts/inittab.post [new file with mode: 0755]
custom/scripts/ivi-root.post [new file with mode: 0755]
custom/scripts/ivi-x11.post [new file with mode: 0755]
custom/scripts/prelink.post [new file with mode: 0755]
custom/scripts/rpm.post [new file with mode: 0755]
custom/scripts/slp-common.post [new file with mode: 0755]
custom/scripts/slp-common.post.bak [new file with mode: 0755]
custom/scripts/symlink-root.post [new file with mode: 0755]
custom/scripts/systemd.post [new file with mode: 0755]
custom/scripts/usb-networking.post [new file with mode: 0755]
custom/scripts/users.post [new file with mode: 0755]
ivi/ivi-2.0.yaml [new file with mode: 0755]
ivi/pinetrail-2.0.yaml [new file with mode: 0755]
packaging/image-configurations.changes [new file with mode: 0755]
packaging/image-configurations.spec [new file with mode: 0755]
repos.yaml [new file with mode: 0755]
scripts/create-daily.sh [new file with mode: 0755]
scripts/create.sh [new file with mode: 0755]
scripts/gitlog2changelog.py [new file with mode: 0755]
scripts/merge-request.sh [new file with mode: 0755]

diff --git a/Makefile b/Makefile
new file mode 100755 (executable)
index 0000000..9c8caf7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,46 @@
+VERSION = $(shell cat VERSION)
+NAME=image-configurations
+TAGVER = $(shell cat VERSION | sed -e "s/\([0-9\.]*\).*/\1/")
+
+ifeq ($(VERSION), $(TAGVER))
+       TAG = $(TAGVER)
+else
+       TAG = "HEAD"
+endif
+
+all: 
+
+tag:
+       git tag -a $(VERSION) -m " $(VERSION)"
+       git push --tags origin master
+
+dist-bz2:
+       git archive --format=tar --prefix=$(NAME)-$(TAGVER)/ $(TAG) | \
+               bzip2  > $(NAME)-$(TAGVER).tar.bz2
+
+dist-gz:
+       git archive --format=tar --prefix=$(NAME)-$(TAGVER)/ $(TAG) | \
+               gzip  > $(NAME)-$(TAGVER).tar.gz
+
+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: dist-bz2
+
+install: all install-data
+
+up:
+       @python scripts/gitlog2changelog.py
+       @echo 'Current versions:'
+       @git tag -l
+       @echo 'Please specify the new version:'
+       @read NEWVER; echo $$NEWVER > VERSION; \
+       git commit -a -m "bump version to $$NEWVER"; \
+       git tag -m $$NEWVER $$NEWVER
+
+clean:
diff --git a/README b/README
new file mode 100755 (executable)
index 0000000..41cd459
--- /dev/null
+++ b/README
@@ -0,0 +1,29 @@
+Any global changes to configurations need to be done in the 
+configurations.yaml file. Local changes need to be done in the individual yaml
+files which are organised per vertical.
+
+Do not make any changes directly to the ks files. If it gets complicated and a
+certain scenario can't be done using kickstarter, please report a bug.
+
+Updates to the git repositories have no effect unless they are packaged and
+submitted to the build system.
+
+- Edit yaml files and make the desired changes
+- Verfiy integrity of the changes by running kickstarter as follows:
+
+# kickstarter -c configurations.yaml -r repos.yaml -i index.xml
+
+
+To update the package:
+- change the yaml files
+- 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/README.kickstarter b/README.kickstarter
new file mode 100755 (executable)
index 0000000..ef9a2d2
--- /dev/null
@@ -0,0 +1,58 @@
+This configurations.yaml file has a generic definition of configurations. 
+The Configurations inherit from platforms first then from the DEFAULT section.
+The image configurations override all other settings 
+(in DEFAULT and platform sections).
+
+Basically all common options should go to the DEFAULT section. If an options is
+related to a specific platform, then that option should be added to the platform
+section. Try to keep platforms clean and very generic, if needed, create a new
+platform section and use it when many options for a new platfrom are common.
+
+Example
+
+
+# description of the configuration file
+Name: MeeGo Netbook/Nettop  
+# When should this image be generated:
+# *: always
+# 0: Monday
+# 1: Tuesday
+# ...
+# If no schedule keyword is present, then image will not be created
+
+Schedule: "*"
+
+# if this image is active
+Active: True
+
+# Inherit from platform
+Platform: NETBOOK
+
+# MIC2 options to be used when creating this image
+Mic2Options: "-f livecd"
+
+# Desktop type
+Desktop: None 
+
+# Timezone
+Timezone: America/New_York
+
+# The name of the configuration file
+FileName: netbook-ia32
+
+# package groups
+Groups:
+    - MeeGo Netbook Desktop
+    - MeeGo Core
+    - Printing
+    - Games
+
+# Additional packages that are not part of any group
+ExtraPackages:
+    - chromium
+    - adobe-release
+    - flash-plugin
+
+# Repos to use in addition to default repos, those are define in the repos.yaml file
+Repos:
+    - adobe
diff --git a/VERSION b/VERSION
new file mode 100755 (executable)
index 0000000..87523dd
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+41
diff --git a/configurations.yaml b/configurations.yaml
new file mode 100755 (executable)
index 0000000..dccc3fa
--- /dev/null
@@ -0,0 +1,49 @@
+ExternalConfigs:
+  - ivi
+
+Default:
+    Baseline: tizen-0.0
+    FileSystem: ext3
+    Active: True
+    Language: en_US.UTF-8
+    Keyboard: us
+    SaveRepos:  True
+    Timezone: America/Los_Angeles
+    RootPass: tizen
+    DefaultUser: tizen
+    DefaultUserPass: tizen
+    PartSize: 1900
+    BootloaderOptions: ""
+
+
+IVI:
+    PartSize: 3000
+    Bootloader: True
+    BootloaderAppend: "rootwait rootfstype=ext4 quiet"
+    BootloaderTimeout: 0
+    SaveRepos: False
+    StartX: False
+    Architecture: ia32
+    Desktop: None
+    Mic2Options: -f raw --copy-kernel --compress-disk-image=bz2
+    Repos:
+        - Tizen-base
+        - Tizen-ivi
+    NoChrootScripts:
+        - buildname
+
+IVI-DEVEL:
+    PartSize: 3000
+    Bootloader: True
+    BootloaderAppend: "rootwait rootfstype=ext4"
+    BootloaderTimeout: 0
+    SaveRepos: False
+    StartX: False
+    Architecture: ia32
+    Desktop: None
+    Mic2Options: -f raw --copy-kernel --compress-disk-image=bz2
+    Repos:
+        - Tizen-base
+        - Tizen-ivi
+    NoChrootScripts:
+        - buildname
diff --git a/custom/part/custom b/custom/part/custom
new file mode 100755 (executable)
index 0000000..d6c8b6b
--- /dev/null
@@ -0,0 +1,2 @@
+part / --size 1300 --ondisk sda --grow --maxsize=1450 --fstype=ext3
+#part /home --size 1000  --grow --maxsize=1450 --ondisk sdb --fstype=ext3
diff --git a/custom/part/tizen-ivi b/custom/part/tizen-ivi
new file mode 100755 (executable)
index 0000000..fb8558e
--- /dev/null
@@ -0,0 +1,3 @@
+part /boot --size 32 --ondisk sdb --fstype=ext4 --label boot
+part /opt --size 300 --ondisk sdb --fstype=ext4 --label opt
+part / --size 1280 --ondisk sdb --fstype=ext4 --label platform
diff --git a/custom/scripts/boot-into-ui.post b/custom/scripts/boot-into-ui.post
new file mode 100755 (executable)
index 0000000..e273b6b
--- /dev/null
@@ -0,0 +1,17 @@
+# this file should be deleted after elegant fix merged
+############################### hacks to get PR3/Tizen 2.0
+# usbnet, udev, ssh, and other stuff
+cat > /etc/rc.d/rc3.d/S01debug << EOF
+
+# udev
+/sbin/udevd --daemon
+/sbin/udevadm trigger
+
+EOF
+
+chmod +x /etc/rc.d/rc3.d/S01debug
+
+sed -i  's/\(\usr\/bin\/scim.*\)/\1 \&/' /etc/X11/xinitrc
+
+###############################
+
diff --git a/custom/scripts/buildname.nochroot b/custom/scripts/buildname.nochroot
new file mode 100755 (executable)
index 0000000..544a400
--- /dev/null
@@ -0,0 +1,3 @@
+if [ -n "$IMG_NAME" ]; then
+    echo "BUILD: $IMG_NAME" >> $INSTALL_ROOT/etc/tizen-release
+fi
diff --git a/custom/scripts/cleanup.post b/custom/scripts/cleanup.post
new file mode 100755 (executable)
index 0000000..d7c0ecd
--- /dev/null
@@ -0,0 +1,2 @@
+# save a little bit of space at least...
+rm -f /boot/initrd*
diff --git a/custom/scripts/inittab.post b/custom/scripts/inittab.post
new file mode 100755 (executable)
index 0000000..b6bf294
--- /dev/null
@@ -0,0 +1,3 @@
+sed -i s/ENGINE=gl/ENGINE=fb/ /etc/profile.d/menu-screen.sh
+
+echo "s1:12345:respawn:/sbin/getty -L 115200 ttyMFD3 vt100" >> /etc/inittab
diff --git a/custom/scripts/ivi-root.post b/custom/scripts/ivi-root.post
new file mode 100755 (executable)
index 0000000..e1c96a6
--- /dev/null
@@ -0,0 +1,4 @@
+if [[ (-h /root) ]]; then
+       rm /root
+       mkdir /root
+fi
diff --git a/custom/scripts/ivi-x11.post b/custom/scripts/ivi-x11.post
new file mode 100755 (executable)
index 0000000..63d1d3d
--- /dev/null
@@ -0,0 +1,4 @@
+if [[ (! -d /opt/etc/X11/xorg.conf.d) && (! -d /etc/X11/xorg.conf.d) ]]; then 
+       mkdir -p /opt/etc/X11/xorg.conf.d; 
+       ln -s /opt/etc/X11/xorg.conf.d /etc/X11; 
+fi
diff --git a/custom/scripts/prelink.post b/custom/scripts/prelink.post
new file mode 100755 (executable)
index 0000000..527548c
--- /dev/null
@@ -0,0 +1,4 @@
+# Prelink can reduce boot time
+if [ -x /usr/sbin/prelink ]; then
+    /usr/sbin/prelink -aRqm
+fi
diff --git a/custom/scripts/rpm.post b/custom/scripts/rpm.post
new file mode 100755 (executable)
index 0000000..62707bd
--- /dev/null
@@ -0,0 +1,2 @@
+rm -f /var/lib/rpm/__db*
+rpm --rebuilddb
diff --git a/custom/scripts/slp-common.post b/custom/scripts/slp-common.post
new file mode 100755 (executable)
index 0000000..c4fa855
--- /dev/null
@@ -0,0 +1,40 @@
+echo 'kickstart post script start'
+if [ -d /etc/init.d ]; then
+    cp /etc/init.d/* /etc/rc.d/init.d/ -rdf
+fi
+rm -rf /etc/init.d*
+ln -sf /etc/rc.d/init.d /etc/init.d
+
+rm -rf /etc/localtime  
+ln -sf /opt/etc/localtime /etc/localtime  
+
+# Without this line the rpm don't get the architecture right.
+# echo -n 'armv7l-tizen-linux' > /etc/rpm/platform
+> /etc/rpm/platform
+
+ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N ""
+ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""
+ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
+
+pkg_initdb
+
+
+ln -s /opt/etc/X11/xkb /usr/share/X11
+
+echo "UDEV_PERSISTENT_STORAGE=no" >> /etc/sysconfig/udev
+
+rm -rf /usr/share/man
+rm -rf /usr/share/doc
+
+ldconfig
+
+mkdir -p /opt/var/lib/dbus
+
+rm -f /var/lib/rpm/__db*
+mv -f /var/lib/rpm /opt/var/lib/ 
+ln -sf /opt/var/lib/rpm /var/lib/rpm
+rpmdb --rebuilddb
+
+if [ -e /usr/bin/build-backup-data.sh ]; then
+           /usr/bin/build-backup-data.sh
+fi
diff --git a/custom/scripts/slp-common.post.bak b/custom/scripts/slp-common.post.bak
new file mode 100755 (executable)
index 0000000..79b485d
--- /dev/null
@@ -0,0 +1,67 @@
+echo 'kickstart post script start'
+if [ -d /etc/init.d ]; then
+    cp /etc/init.d/* /etc/rc.d/init.d/ -rdf
+fi
+rm -rf /etc/init.d*
+ln -sf /etc/rc.d/init.d /etc/init.d
+
+rm -rf /etc/localtime  
+ln -sf /opt/etc/localtime /etc/localtime  
+#rm -rf /usr/share/zoneinfo  
+#ln -sf /opt/share/zoneinfo /usr/share/zoneinfo 
+
+# Without this line the rpm don't get the architecture right.
+# echo -n 'armv7l-tizen-linux' > /etc/rpm/platform
+> /etc/rpm/platform
+
+ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N ""
+ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""
+ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
+
+pkg_initdb
+
+INITDB=1 ail_initdb
+/opt/apps/com.samsung.menu-screen/bin/menuscreen_initdb
+
+# ims-service domain setting
+RESULT=`grep "192.168.0.163 config.45001.rcse" /etc/hosts`  
+if [ -z "$RESULT" ]; then  
+    echo "Set domain for auto configuration"  
+    echo "192.168.0.163 config.45001.rcse" >> /etc/hosts  
+else  
+    echo "Already setted domain for test auto configuration"  
+fi  
+# ims-service domain setting
+
+cat > /usr/bin/press << EOF
+#!/bin/sh
+
+JUNK="SLP"
+
+[ "\$1" ] && TIMEOUT="\$1" || TIMEOUT="1"
+
+echo "Press return key to stop scripts"
+read -t \$TIMEOUT JUNK
+exit \$?
+EOF
+chmod +x /usr/bin/press
+
+ln -s /opt/etc/X11/xkb /usr/share/X11
+
+echo "UDEV_PERSISTENT_STORAGE=no" >> /etc/sysconfig/udev
+
+rm -rf /usr/share/man
+rm -rf /usr/share/doc
+
+ldconfig
+
+mkdir -p /opt/var/lib/dbus
+
+rm -f /var/lib/rpm/__db*
+mv -f /var/lib/rpm /opt/var/lib/ 
+ln -sf /opt/var/lib/rpm /var/lib/rpm
+rpmdb --rebuilddb
+
+if [ -e /usr/bin/build-backup-data.sh ]; then
+           /usr/bin/build-backup-data.sh
+fi
diff --git a/custom/scripts/symlink-root.post b/custom/scripts/symlink-root.post
new file mode 100755 (executable)
index 0000000..60fe300
--- /dev/null
@@ -0,0 +1,2 @@
+mkdir /opt/home/root
+ln -sf /opt/home/root /root
diff --git a/custom/scripts/systemd.post b/custom/scripts/systemd.post
new file mode 100755 (executable)
index 0000000..febbef8
--- /dev/null
@@ -0,0 +1,2 @@
+
+cp -a /lib/systemd/system/* /usr/lib/systemd/system
diff --git a/custom/scripts/usb-networking.post b/custom/scripts/usb-networking.post
new file mode 100755 (executable)
index 0000000..31368da
--- /dev/null
@@ -0,0 +1,11 @@
+# enable USB networking with IP address 192.168.1.1 by default
+cat >/etc/rc.d/rc3.d/S01usbnet.sh <<END
+#!/bin/sh
+echo 0 > /sys/class/android_usb/android0/enable
+echo adb,rndis > /sys/class/android_usb/android0/functions
+echo 1 > /sys/class/android_usb/android0/enable
+ifconfig rndis0 192.168.100.1
+END
+chmod 755 /etc/rc.d/rc3.d/S01usbnet.sh
+
+ln -sf /etc/rc.d/init.d/ssh /etc/rc.d/rc3.d/S90ssh
diff --git a/custom/scripts/users.post b/custom/scripts/users.post
new file mode 100755 (executable)
index 0000000..f64183c
--- /dev/null
@@ -0,0 +1,5 @@
+mkdir -p /opt/home/app
+chown app: /opt/home/app
+mkdir -p /home
+ln -s /opt/home/app /home/app
+ln -sf /opt/home/root /root
diff --git a/ivi/ivi-2.0.yaml b/ivi/ivi-2.0.yaml
new file mode 100755 (executable)
index 0000000..6dbb3c2
--- /dev/null
@@ -0,0 +1,49 @@
+Name: Tizen IVI 2.0
+Schedule: "*"
+Active: True
+Platform: IVI
+Part: tizen-ivi
+Kernel: kernel-adaptation-intel-automotive
+FileName: ivi-2.0
+Groups:
+    - common
+    - appscommon
+    - appstargetsdk
+    - trats
+    - pinetrail-support
+
+PrePackages:
+    - eglibc
+    - systemd
+    - busybox
+    - libacl
+    - libcap
+    - dbus-libs
+    - libgcc
+    - libudev
+    - libattr
+    - default-files-slp
+    - openssl
+    - libprivilege-control
+    - libprivilege-control-conf
+    - security-server
+    - libdlog
+    - libsecurity-server-client
+    - sqlite
+    - tzdata-slp
+    - vconf
+    - tizen-coreutils
+
+PostScripts:
+    - slp-common
+    - slp-e4412
+    - usb-networking
+    - symlink-root
+    - inittab
+    - boot-into-ui
+    - hotfixes-keyboard
+#    - users
+#    - rpm
+#    - hotfixes
+#    - e17-skel
+
diff --git a/ivi/pinetrail-2.0.yaml b/ivi/pinetrail-2.0.yaml
new file mode 100755 (executable)
index 0000000..a2b24b4
--- /dev/null
@@ -0,0 +1,49 @@
+Name: Tizen Pinetrail 2.0
+Schedule: "*"
+Active: True
+Platform: IVI
+Part: tizen-ivi
+Kernel: kernel-adaptation-pc
+FileName: pinetrail-2.0
+Groups:
+    - common
+    - appscommon
+    - appstargetsdk
+    - trats
+    - pinetrail-support
+
+PrePackages:
+    - eglibc
+    - systemd
+    - busybox
+    - libacl
+    - libcap
+    - dbus-libs
+    - libgcc
+    - libudev
+    - libattr
+    - default-files-slp
+    - openssl
+    - libprivilege-control
+    - libprivilege-control-conf
+    - security-server
+    - libdlog
+    - libsecurity-server-client
+    - sqlite
+    - tzdata-slp
+    - vconf
+    - tizen-coreutils
+
+PostScripts:
+    - slp-common
+    - slp-e4412
+    - usb-networking
+    - symlink-root
+    - inittab
+    - boot-into-ui
+    - hotfixes-keyboard
+#    - users
+#    - rpm
+#    - hotfixes
+#    - e17-skel
+
diff --git a/packaging/image-configurations.changes b/packaging/image-configurations.changes
new file mode 100755 (executable)
index 0000000..5316688
--- /dev/null
@@ -0,0 +1,5 @@
+* Wed Oct  3 18:52:12 UTC 2012 - tracy.graydon@intel.com
+- Add an image, ivi-common, that builds against common base/main. 
+
+* Tue Oct  2 19:46:17 UTC 2012 - tracy.graydon@intel.com
+- Import for 2.0 images
diff --git a/packaging/image-configurations.spec b/packaging/image-configurations.spec
new file mode 100755 (executable)
index 0000000..255f065
--- /dev/null
@@ -0,0 +1,33 @@
+%define baseline tizen-0.0
+Summary:       Create kickstart files for IVI Tizen 2.0 images
+Name:          image-configurations
+Version:       1
+Release:       2
+License:       GPLv2
+Group:         System/Base
+URL:           http://www.tizen.org
+Source:                image-configurations-%{version}.tar.bz2
+
+BuildArch:     noarch
+BuildRequires:  kickstarter >= 0.8
+
+%description
+Create Configuration files to build Tizen images 
+
+%prep
+%setup -q
+
+
+%build
+kickstarter -c configurations.yaml -r repos.yaml -i image-configs.xml
+
+%install
+
+mkdir -p %{buildroot}/usr/share/image-configurations
+cp %{baseline}/*.ks %{buildroot}/usr/share/image-configurations
+cp image-configs.xml %{buildroot}/usr/share/image-configurations
+
+%files
+%dir %_datadir/image-configurations
+%_datadir/image-configurations/*.ks
+%_datadir/image-configurations/image-configs.xml
diff --git a/repos.yaml b/repos.yaml
new file mode 100755 (executable)
index 0000000..c4a75ed
--- /dev/null
@@ -0,0 +1,21 @@
+Repositories:
+    -   Name: Tizen-base
+        Url:  http://download.tizen.org/snapshots/2.0alpha/ivi/@BUILD_ID@/repos/base/@ARCH@/packages/
+    -   Name: Tizen-base-debug
+        Url:  http://download.tizen.org/snapshots/2.0alpha/ivi/@BUILD_ID@/repos/base/@ARCH@/debug/
+    -   Name: Tizen-main
+        Url:  http://download.tizen.org/snapshots/2.0alpha/ivi/@BUILD_ID@/repos/main/@ARCH@/packages/
+    -   Name: Tizen-main-debug
+        Url:  http://download.tizen.org/snapshots/2.0alpha/ivi/@BUILD_ID@/repos/main/@ARCH@/debug/
+    -   Name: Tizen-ivi
+        Url:  http://download.tizen.org/snapshots/2.0alpha/ivi/@BUILD_ID@/repos/ivi/@ARCH@/packages/
+    -   Name: Tizen-ivi-debug
+        Url:  http://download.tizen.org/snapshots/2.0alpha/ivi/@BUILD_ID@/repos/ivi/@ARCH@/debug
+    -   Name: Tizen-ivi-non-oss
+        Url:  http://download.tizen.org/snapshots/2.0alpha/ivi/@BUILD_ID@/repos/ivi-non-oss/@ARCH@/packages/
+    -   Name: Tizen-ivi-non-oss-debug
+        Url:  http://download.tizen.org/snapshots/2.0alpha/ivi/@BUILD_ID@/repos/ivi-non-oss/@ARCH@/debug/
+    -   Name: common-base
+        Url:  http://download.tizen.org/snapshots/2.0alpha/common/latest/repos/tizen-base/@ARCH@/packages/
+    -   Name: common-main
+        Url:  http://download.tizen.org/snapshots/2.0alpha/common/latest@/repos/tizen-main/@ARCH@/packages/
diff --git a/scripts/create-daily.sh b/scripts/create-daily.sh
new file mode 100755 (executable)
index 0000000..11e309a
--- /dev/null
@@ -0,0 +1,104 @@
+#!/bin/sh
+#
+#A simple script to batch generate all release-able images for MeeGo. 
+#
+#This script will check out all MeeGo Image Kickstart files and execute 
+#image generation based on repository type selected for all release-able images. 
+#
+# Written for MeeGo by Chris Ferron <chris.e.ferron@linux.intel.com> based on an initial
+# effort buy Anas Nashif.
+
+
+ID=$1
+REPOTYPE=$2
+RELEASE=$3
+
+# Preparation Section
+#export http_proxy=http://192.168.50.99:3128/
+
+rm -f *.log
+
+if [ "$RELEASE" = "MeeGo1.1" ]; then
+   git checkout -f MeeGo1.1 
+elif [ "$RELEASE" = "Trunk" ]; then 
+   git checkout -f master
+else
+   git checkout -f master
+   echo "No release type given, default to Trunk. Current support is for Trunk and MeeGo1.1"
+fi
+
+git pull
+
+
+if [ "$REPOTYPE" = "1" ]; then
+  str="s/\@BUILD_ID\@/$ID/"
+elif [ "$REPOTYPE" = "2" ]; then 
+  str="s/\@BUILD_ID\@/preview/"
+elif [ "$REPOTYPE" = "3" ]; then 
+  str="s/\@BUILD_ID\@/daily/" 
+elif [ "$REPOTYPE" = "4" ]; then 
+  # Replace .ks to use the trunk-daily repos
+  echo "Creating trunk-daily image-configurations"
+  str="s/repo.meego.com\/MeeGo/download.meego.com\/trunk-daily/"
+  find -name \*.ks -exec perl  -pi -e $str '{}' \;
+  str="s/\@BUILD_ID\@/$ID/"
+elif [ "$REPOTYPE" = "5" ]; then 
+  # Replace .ks to use the test-daily repos
+  echo "Creating testing-daily image-configurations"
+  str="s/repo.meego.com\/MeeGo/download.meego.com\/testing-daily/"
+  find -name \*.ks -exec perl  -pi -e $str '{}' \;
+  str="s/\@BUILD_ID\@/$ID/"
+else
+ echo " Repository Type needs to be 1 for Weekly or 4 for trunk-daily or 5 for testing-daily" 
+ exit 1 
+fi
+
+find -name \*.ks -exec perl  -pi -e $str '{}' \;
+
+# mk_image expects at minimal, one arg- the first arg must be the path to the ks file.
+# all further args are passed through to 'mic create'
+# finally, a --release argument is automatically prepended.
+mk_image() {
+   local ks="$1";
+   shift
+   local name="meego-$(basename "$ks")"
+   name="${name%.ks}"
+   local dirname="$(dirname "$ks")"
+   rm -rf "${ID}/${dirname}/images/${name}"
+   mic create -c "$ks" --release="${ID}" "$@" 2>&1 | tee "${name}-${ID}.log"
+   if [ ! -d "${ID}/${dirname}/images/${name}" ]; then
+      echo "error: no ${ID}/${dirname}/images/${name} directory created"
+      return 1
+   fi
+   md5sum "${name}-${ID}.log" >> "${ID}/${dirname}/images/${name}/MANIFEST"
+   cp "${name}-${ID}.log" "$ID/${dirname}/images/${name}/"
+}
+
+
+#Core Image Section
+#mk_image core/core-armv7l-n900.ks -f raw --save-kernel --arch armv7
+mk_image core/core-armv7l-madde-sysroot.ks --format=fs --compress-disk-image=none --package=tar.bz2 --arch=armv7l --save-kernel
+mk_image core/core-ia32-madde-sysroot.ks --format=fs --compress-disk-image=none --package=tar.bz2
+
+#Netbook Image Section
+mk_image netbook/netbook-ia32.ks -f livecd
+mk_image netbook/netbook-ia32-qemu.ks --format=raw --compress-disk-image=none --package=tar.bz2
+
+#IVI Image Section
+mk_image ivi/ivi-ia32.ks -f livecd
+
+#Handset Image Section
+#mk_image handset/handset-ia32-aava-mtf.ks -f nand
+mk_image handset/handset-ia32-mtf.ks -f nand
+#mk_image handset/handset-ia32-aava-mtf-devel.ks -f nand
+mk_image handset/handset-ia32-mtf-devel.ks -f nand
+mk_image handset/handset-armv7l-n900.ks -f raw --save-kernel --arch=armv7l
+mk_image handset/handset-armv7l-n900-devel.ks -f raw --save-kernel --arch=armv7l
+mk_image handset/handset-armv7hl-n900.ks -f raw --save-kernel --arch=armv7hl
+mk_image handset/handset-ia32-pinetrail-mtf.ks -f livecd
+mk_image handset/handset-armv7l-qemu.ks --format=raw --compress-disk-image=none --package=tar.bz2 --arch=armv7l --save-kernel
+mk_image handset/handset-ia32-qemu.ks --format=raw --compress-disk-image=none --package=tar.bz2
+mk_image handset/handset-armv7l-madde-sysroot.ks --format=fs --compress-disk-image=none --package=tar.bz2 --arch=armv7l --save-kernel
+mk_image handset/handset-ia32-madde-sysroot.ks --format=fs --compress-disk-image=none --package=tar.bz2
+
+exit 0
diff --git a/scripts/create.sh b/scripts/create.sh
new file mode 100755 (executable)
index 0000000..afba827
--- /dev/null
@@ -0,0 +1,91 @@
+#!/bin/sh
+#
+#A simple script to batch generate all release-able images for MeeGo. 
+#
+#This script will check out all MeeGo Image Kickstart files and execute 
+#image generation based on repository type selected for all release-able images. 
+#
+# Written for MeeGo by Chris Ferron <chris.e.ferron@linux.intel.com> based on an initial
+# effort buy Anas Nashif.
+
+
+ID=$1
+REPOTYPE=$2
+RELEASE=$3
+
+# Preparation Section
+#export http_proxy= http://XXX.XXX.XXX.XXX:XXXX/
+
+rm -f *.log
+
+if [ "$RELEASE" = "MeeGo1.1" ]; then
+   git checkout -f MeeGo1.1 
+elif [ "$RELEASE" = "Trunk" ]; then 
+   git checkout -f master
+else
+   git checkout -f master
+   echo "No release type given, default to Trunk. Current support is for Trunk and MeeGo1.1"
+fi
+
+git pull
+
+if [ "$REPOTYPE" = "1" ]; then
+  str="s/\@BUILD_ID\@/$ID/"
+elif [ "$REPOTYPE" = "2" ]; then 
+  str="s/\@BUILD_ID\@/preview/"
+elif [ "$REPOTYPE" = "3" ]; then 
+  str="s/\@BUILD_ID\@/daily/" 
+else
+ echo " Repository Type needs to be 1 for Weekly or 2 for Preview or 3 for Daily" 
+ exit 1 
+fi
+
+find -name \*.ks -exec perl  -pi -e $str '{}' \;
+
+# mk_image expects at minimal, one arg- the first arg must be the path to the ks file.
+# all further args are passed through to 'mic create'
+# finally, a --release argument is automatically prepended.
+mk_image() {
+   local ks="$1";
+   shift
+   local name="meego-$(basename "$ks")"
+   name="${name%.ks}"
+   local dirname="$(dirname "$ks")"
+   rm -rf "${ID}/${dirname}/images/${name}"
+   mic create -c "$ks" --release="${ID}" "$@" 2>&1 | tee "${name}-${ID}.log"
+   if [ ! -d "${ID}/${dirname}/images/${name}" ]; then
+      echo "error: no ${ID}/${dirname}/images/${name} directory created"
+      return 1
+   fi
+   md5sum "${name}-${ID}.log" >> "${ID}/${dirname}/images/${name}/MANIFEST"
+   cp "${name}-${ID}.log" "$ID/${dirname}/images/${name}/"
+}
+
+
+#Core Image Section
+mk_image core/core-armv7l-n900.ks -f raw --save-kernel --arch armv7
+mk_image core/core-armv7l-madde-sysroot.ks --format=fs --compress-disk-image=none --package=tar.bz2 --arch=armv7l --save-kernel
+mk_image core/core-ia32-madde-sysroot.ks --format=fs --compress-disk-image=none --package=tar.bz2
+
+#Netbook Image Section
+mk_image netbook/netbook-ia32.ks -f livecd
+mk_image netbook/netbook-ia32-qemu.ks --format=raw --compress-disk-image=none --package=tar.bz2
+
+#IVI Image Section
+mk_image ivi/ivi-ia32.ks -f livecd
+
+#Handset Image Section
+#mk_image handset/handset-ia32-aava-mtf.ks -f nand
+mk_image handset/handset-ia32-mtf.ks -f nand
+#mk_image handset/handset-ia32-aava-mtf-devel.ks -f nand
+mk_image handset/handset-ia32-mtf-devel.ks -f nand
+mk_image handset/handset-armv7l-n900.ks -f raw --save-kernel --arch=armv7l
+mk_image handset/handset-armv7l-n900-devel.ks -f raw --save-kernel --arch=armv7l
+mk_image handset/handset-armv7hl-n900.ks -f raw --save-kernel --arch=armv7hl
+mk_image handset/handset-ia32-pinetrail-mtf.ks -f livecd
+mk_image handset/handset-armv7l-qemu.ks --format=raw --compress-disk-image=none --package=tar.bz2 --arch=armv7l --save-kernel
+mk_image handset/handset-ia32-qemu.ks --format=raw --compress-disk-image=none --package=tar.bz2
+mk_image handset/handset-armv7l-madde-sysroot.ks --format=fs --compress-disk-image=none --package=tar.bz2 --arch=armv7l --save-kernel
+mk_image handset/handset-ia32-madde-sysroot.ks --format=fs --compress-disk-image=none --package=tar.bz2
+
+exit 0
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-request.sh b/scripts/merge-request.sh
new file mode 100755 (executable)
index 0000000..222d883
--- /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/image-configurations.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