From: y0169.zhang Date: Tue, 27 Sep 2016 03:04:49 +0000 (+0900) Subject: Enable kvm build function X-Git-Tag: staging-released-tools-18.01.7~27^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=90a7057d77c2dfa907aa6a6db9bc1596111fc0f8;p=tools%2Fgbs.git Enable kvm build function Change-Id: I1a52eb496882ddaae4a7b52495cf5544110ce3bf --- diff --git a/data/initrd b/data/initrd new file mode 100644 index 0000000..9ca3983 Binary files /dev/null and b/data/initrd differ diff --git a/data/vmlinuz b/data/vmlinuz new file mode 100644 index 0000000..b091bab Binary files /dev/null and b/data/vmlinuz differ diff --git a/debian/rules b/debian/rules index 6f59c1c..0e50bdd 100644 --- a/debian/rules +++ b/debian/rules @@ -7,7 +7,10 @@ override_dh_auto_install: python setup.py install --root=debian/tmp --prefix=/usr make man mkdir -p debian/tmp/usr/share/man/man1 + mkdir -p debian/tmp/usr/share/gbs install -m644 docs/gbs.1 debian/tmp/usr/share/man/man1 + install -m644 data/initrd debian/tmp/usr/share/gbs + install -m644 data/vmlinuz debian/tmp/usr/share/gbs for job_name in $(shell ls jenkins-jobs/configs); do \ mkdir -p debian/tmp/var/lib/jenkins/jobs/$$job_name; \ install -m644 jenkins-jobs/configs/$$job_name/config.xml debian/tmp/var/lib/jenkins/jobs/$$job_name; \ diff --git a/gitbuildsys/cmd_build.py b/gitbuildsys/cmd_build.py index 594c76c..a9b5292 100644 --- a/gitbuildsys/cmd_build.py +++ b/gitbuildsys/cmd_build.py @@ -252,10 +252,28 @@ def prepare_depanneur_opts(args): if args.rdeps: cmd_opts += ['--rdeps'] + if args.kvm: + cmd_opts += ['--clean'] + cmd_opts += ['--vm-type=kvm'] + cmd_opts += ['--vm-memory=%s' % args.vm_memory] + cmd_opts += ['--vm-disk=%s' % args.vm_disk] + cmd_opts += ['--vm-swap=%s' % args.vm_swap] + cmd_opts += ['--vm-diskfilesystem=%s' % args.vm_diskfilesystem] + if not os.path.exists(args.vm_initrd): + raise GbsError("Check file to exists vm-initrd") + cmd_opts += ['--vm-initrd=%s' % args.vm_initrd] + if not os.path.exists(args.vm_kernel): + raise GbsError("Check file to exists vm-kernel") + cmd_opts += ['--vm-kernel=%s' % args.vm_kernel] + if args.icecream > 0: cmd_opts += ['--icecream=%s' % args.icecream] cmd_opts += ['--threads=%s' % args.threads] + if args.kvm: + loopdev = len([name for name in os.listdir('/dev') if bool(re.search("loop[0-9]",name))]) + if not args.threads < loopdev: + raise GbsError('When using the kvm, loop device should be larger than the threads option.') cmd_opts += ['--packaging-dir=%s' % get_packaging_dir(args)] return cmd_opts diff --git a/packaging/gbs.spec b/packaging/gbs.spec index 5a0b4d8..3b7a16a 100644 --- a/packaging/gbs.spec +++ b/packaging/gbs.spec @@ -112,7 +112,10 @@ make man %{__python} setup.py install --prefix=%{_prefix} --root=%{buildroot} mkdir -p %{buildroot}/%{_prefix}/share/man/man1 +mkdir -p %{buildroot}/%{_prefix}/share/gbs install -m644 docs/gbs.1 %{buildroot}/%{_prefix}/share/man/man1 +install -m644 data/initrd %{buildroot}/%{_prefix}/share/gbs +install -m644 data/vmlinuz %{buildroot}/%{_prefix}/share/gbs # Install Jenkins Jobs for job_name in $(ls jenkins-jobs/configs) @@ -131,7 +134,9 @@ rm -rf %{buildroot} %files %defattr(-,root,root,-) %doc README.rst docs/RELEASE_NOTES +%dir %{_prefix}/share/gbs %{_mandir}/man1/* +%{_prefix}/share/gbs/* %{python_sitelib}/gitbuildsys/cmd_build.py* %{python_sitelib}/gitbuildsys/cmd_changelog.py* %{python_sitelib}/gitbuildsys/cmd_chroot.py* diff --git a/tools/gbs b/tools/gbs index d7b5622..935db9e 100755 --- a/tools/gbs +++ b/tools/gbs @@ -212,6 +212,20 @@ def build_parser(parser): 'build root') group.add_argument('--use-higher-deps', action='store_true', help='Which repo provides higher version deps, use it') + group.add_argument('--kvm', action='store_true', + help='Launch a kvm machine to build package instead of using chroot') + group.add_argument('--vm-memory', type=int, default=4096, + help='The memory size of kvm machine') + group.add_argument('--vm-disk', type=int, default=32768, + help='The disk size of kvm machine') + group.add_argument('--vm-swap', type=int, default=8192, + help='The swap size of kvm machine') + group.add_argument('--vm-diskfilesystem', type=str, default='ext4', + help='The filesystem type of kvm machine') + group.add_argument('--vm-initrd', type=str, default='/usr/share/gbs/initrd', + help='The initrd of kvm machine') + group.add_argument('--vm-kernel', type=str, default='/usr/share/gbs/vmlinuz', + help='The kernel of kvm machine') group = parser.add_argument_group('speed up building options') group.add_argument('--incremental', action='store_true',