From: Graydon, Tracy Date: Fri, 12 Oct 2012 02:19:12 +0000 (-0700) Subject: Sync with OBS version X-Git-Tag: accepted/trunk/20121012.020023^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=db413f2e1ccf378f61c973adb37cd8a4fee8ffa6;p=profile%2Fivi%2Fimage-configurations.git Sync with OBS version --- db413f2e1ccf378f61c973adb37cd8a4fee8ffa6 diff --git a/Makefile b/Makefile new file mode 100755 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 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 index 0000000..ef9a2d2 --- /dev/null +++ b/README.kickstarter @@ -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 index 0000000..87523dd --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +41 diff --git a/configurations.yaml b/configurations.yaml new file mode 100755 index 0000000..dccc3fa --- /dev/null +++ b/configurations.yaml @@ -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 index 0000000..d6c8b6b --- /dev/null +++ b/custom/part/custom @@ -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 index 0000000..fb8558e --- /dev/null +++ b/custom/part/tizen-ivi @@ -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 index 0000000..e273b6b --- /dev/null +++ b/custom/scripts/boot-into-ui.post @@ -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 index 0000000..544a400 --- /dev/null +++ b/custom/scripts/buildname.nochroot @@ -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 index 0000000..d7c0ecd --- /dev/null +++ b/custom/scripts/cleanup.post @@ -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 index 0000000..b6bf294 --- /dev/null +++ b/custom/scripts/inittab.post @@ -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 index 0000000..e1c96a6 --- /dev/null +++ b/custom/scripts/ivi-root.post @@ -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 index 0000000..63d1d3d --- /dev/null +++ b/custom/scripts/ivi-x11.post @@ -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 index 0000000..527548c --- /dev/null +++ b/custom/scripts/prelink.post @@ -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 index 0000000..62707bd --- /dev/null +++ b/custom/scripts/rpm.post @@ -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 index 0000000..c4fa855 --- /dev/null +++ b/custom/scripts/slp-common.post @@ -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 index 0000000..79b485d --- /dev/null +++ b/custom/scripts/slp-common.post.bak @@ -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 index 0000000..60fe300 --- /dev/null +++ b/custom/scripts/symlink-root.post @@ -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 index 0000000..febbef8 --- /dev/null +++ b/custom/scripts/systemd.post @@ -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 index 0000000..31368da --- /dev/null +++ b/custom/scripts/usb-networking.post @@ -0,0 +1,11 @@ +# enable USB networking with IP address 192.168.1.1 by default +cat >/etc/rc.d/rc3.d/S01usbnet.sh < /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 index 0000000..f64183c --- /dev/null +++ b/custom/scripts/users.post @@ -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 index 0000000..6dbb3c2 --- /dev/null +++ b/ivi/ivi-2.0.yaml @@ -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 index 0000000..a2b24b4 --- /dev/null +++ b/ivi/pinetrail-2.0.yaml @@ -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 index 0000000..5316688 --- /dev/null +++ b/packaging/image-configurations.changes @@ -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 index 0000000..255f065 --- /dev/null +++ b/packaging/image-configurations.spec @@ -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 index 0000000..c4a75ed --- /dev/null +++ b/repos.yaml @@ -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 index 0000000..11e309a --- /dev/null +++ b/scripts/create-daily.sh @@ -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 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 index 0000000..afba827 --- /dev/null +++ b/scripts/create.sh @@ -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 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 index 0000000..ce69b68 --- /dev/null +++ b/scripts/gitlog2changelog.py @@ -0,0 +1,124 @@ +#!/usr/bin/python +# Copyright 2008 Marcus D. Hanwell +# 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 index 0000000..222d883 --- /dev/null +++ b/scripts/merge-request.sh @@ -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