From dced8dafef44c1c21d07c4911f2b1ac3d09543c8 Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Wed, 16 Mar 2011 09:52:21 +0100 Subject: [PATCH] Build universal (appvm,netvm,proxyvm), cow-based template --- README | 2 - appmenus/convert_app2template_for_netvm.sh | 17 --- appmenus/qubes-netvm.directory.template | 5 - build_netvm_rpm | 9 -- clean_images/packages.list | 24 ++++ create_apps_for_netvm.sh | 15 --- create_apps_templates_for_netvm.sh | 14 --- create_apps_templates_for_templatevm.sh | 14 --- netvm.spec | 110 ------------------ qubeize_image_appvm => qubeize_image | 2 +- qubeize_image_netvm | 57 --------- rpms_to_install | 1 + rpms_to_install_appvm | 1 - rpms_to_install_appvm_x64/qubes-gui-vm | 1 - rpms_to_install_appvm_x64/xen-libs | 1 - .../xen-qubes-vm-essentials | 1 - rpms_to_install_netvm | 1 - rpms_to_install_netvm_x64/kernel | 1 - rpms_to_install_netvm_x64/qubes-core-netvm | 1 - rpms_to_install_netvm_x64/qubes-gui-vm | 1 - rpms_to_install_netvm_x64/qubes-vchan-vm | 1 - rpms_to_install_netvm_x64/xen-libs | 1 - .../xen-qubes-vm-essentials | 1 - .../kernel | 0 .../qubes-core-appvm | 0 rpms_to_install_x64/qubes-core-commonvm | 1 + rpms_to_install_x64/qubes-core-netvm | 1 + rpms_to_install_x64/qubes-core-proxyvm | 1 + rpms_to_install_x64/qubes-gui-vm | 1 + .../qubes-vchan-vm | 0 rpms_to_install_x64/xen-libs | 1 + rpms_to_install_x64/xen-qubes-vm-essentials | 1 + templates.spec | 8 +- version_netvm | 1 - vm_conf_files/netvm-template.conf | 25 ++++ vm_conf_files/netvm.conf | 21 ---- vm_kernels | 1 + vm_kernels_appvm | 1 - vm_kernels_netvm | 1 - vm_kernels_netvm_x64/.gitignore | 2 - vm_kernels_netvm_x64/initramfs | 1 - vm_kernels_netvm_x64/vmlinuz | 1 - .../.gitignore | 0 .../initramfs | 0 .../vmlinuz | 0 45 files changed, 64 insertions(+), 285 deletions(-) delete mode 100755 appmenus/convert_app2template_for_netvm.sh delete mode 100644 appmenus/qubes-netvm.directory.template delete mode 100755 build_netvm_rpm create mode 100644 clean_images/packages.list delete mode 100755 create_apps_for_netvm.sh delete mode 100755 create_apps_templates_for_netvm.sh delete mode 100755 create_apps_templates_for_templatevm.sh delete mode 100644 netvm.spec rename qubeize_image_appvm => qubeize_image (95%) delete mode 100755 qubeize_image_netvm create mode 120000 rpms_to_install delete mode 120000 rpms_to_install_appvm delete mode 120000 rpms_to_install_appvm_x64/qubes-gui-vm delete mode 120000 rpms_to_install_appvm_x64/xen-libs delete mode 120000 rpms_to_install_appvm_x64/xen-qubes-vm-essentials delete mode 120000 rpms_to_install_netvm delete mode 120000 rpms_to_install_netvm_x64/kernel delete mode 120000 rpms_to_install_netvm_x64/qubes-core-netvm delete mode 120000 rpms_to_install_netvm_x64/qubes-gui-vm delete mode 120000 rpms_to_install_netvm_x64/qubes-vchan-vm delete mode 120000 rpms_to_install_netvm_x64/xen-libs delete mode 120000 rpms_to_install_netvm_x64/xen-qubes-vm-essentials rename {rpms_to_install_appvm_x64 => rpms_to_install_x64}/kernel (100%) rename {rpms_to_install_appvm_x64 => rpms_to_install_x64}/qubes-core-appvm (100%) create mode 120000 rpms_to_install_x64/qubes-core-commonvm create mode 120000 rpms_to_install_x64/qubes-core-netvm create mode 120000 rpms_to_install_x64/qubes-core-proxyvm create mode 120000 rpms_to_install_x64/qubes-gui-vm rename {rpms_to_install_appvm_x64 => rpms_to_install_x64}/qubes-vchan-vm (100%) create mode 120000 rpms_to_install_x64/xen-libs create mode 120000 rpms_to_install_x64/xen-qubes-vm-essentials delete mode 100644 version_netvm create mode 100644 vm_conf_files/netvm-template.conf delete mode 100644 vm_conf_files/netvm.conf create mode 120000 vm_kernels delete mode 120000 vm_kernels_appvm delete mode 120000 vm_kernels_netvm delete mode 100644 vm_kernels_netvm_x64/.gitignore delete mode 120000 vm_kernels_netvm_x64/initramfs delete mode 120000 vm_kernels_netvm_x64/vmlinuz rename {vm_kernels_appvm_x64 => vm_kernels_x64}/.gitignore (100%) rename {vm_kernels_appvm_x64 => vm_kernels_x64}/initramfs (100%) rename {vm_kernels_appvm_x64 => vm_kernels_x64}/vmlinuz (100%) diff --git a/README b/README index f3aa9f2..dc27ca4 100644 --- a/README +++ b/README @@ -1,8 +1,6 @@ The Template Builder ====================== -(applies also to the netvm builder) - 1) First, create a clean image of Fedora Linux install. You can use the fedoraize_image script for this: diff --git a/appmenus/convert_app2template_for_netvm.sh b/appmenus/convert_app2template_for_netvm.sh deleted file mode 100755 index 113cc3c..0000000 --- a/appmenus/convert_app2template_for_netvm.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -SRC=$1 -DSTDIR=$2 -DST=$DSTDIR/$(basename $SRC) - -sed -e "s/^\(Name.*\)=\(.*\)/\1=%VMNAME%: \2/" \ - -e "s/^\(GenericName.*\)=\(.*\)/\1=%VMNAME%: \2/" \ - -e "s/^Exec=\(.*\)/Exec=qvm-run -q --tray -a --user=root %VMNAME% \"\1\"/" \ - <$SRC | \ - grep -v "^Mime" | \ - grep -v "^TryExec" | \ - grep -v "^Startup" >$DST - -#echo "Categories=%VMNAME%" >> $DST - -echo X-Qubes-VmName=%VMNAME% >> $DST -echo Icon=%VMDIR%/icon.png >> $DST diff --git a/appmenus/qubes-netvm.directory.template b/appmenus/qubes-netvm.directory.template deleted file mode 100644 index 2254401..0000000 --- a/appmenus/qubes-netvm.directory.template +++ /dev/null @@ -1,5 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Type=Directory -Name=%VMNAME% (NetVM) -Icon=/usr/share/qubes/icons/netvm.png diff --git a/build_netvm_rpm b/build_netvm_rpm deleted file mode 100755 index 59e8ba9..0000000 --- a/build_netvm_rpm +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -NAME=$1 - -if [ x$NAME = x ] ; then -echo "usage $0 " -exit -fi - -rpmbuild --sign --target noarch --define "netvm_name $NAME" -bb netvm.spec diff --git a/clean_images/packages.list b/clean_images/packages.list new file mode 100644 index 0000000..1c926af --- /dev/null +++ b/clean_images/packages.list @@ -0,0 +1,24 @@ +@base +@core +@editors +@hardware-support +@fonts +@base-x +@printing +@kde-desktop +@graphics +@input-methods +@system-tools +@admin-tools +@sound-and-video +@office +NetworkManager-gnome +bridge-utils +ethtool +xterm +stalonetray +firefox +thunderbird +keepassx +perl-File-MimeInfo +--exclude=kdegames diff --git a/create_apps_for_netvm.sh b/create_apps_for_netvm.sh deleted file mode 100755 index 8e13c22..0000000 --- a/create_apps_for_netvm.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -SRCDIR=$1 -VMNAME=$2 -VMDIR=$3 -APPSDIR=$4 - -if [ $# != 4 ]; then - echo "usage: $0 " - exit -fi -mkdir -p $APPSDIR - -find $SRCDIR -name "*.desktop" -exec appmenus/convert_apptemplate2vm.sh {} $APPSDIR $VMNAME $VMDIR \; - -appmenus/convert_dirtemplate2vm.sh appmenus/qubes-netvm.directory.template $APPSDIR/$VMNAME-vm.directory $VMNAME $VMDIR diff --git a/create_apps_templates_for_netvm.sh b/create_apps_templates_for_netvm.sh deleted file mode 100755 index 22964d9..0000000 --- a/create_apps_templates_for_netvm.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -APPSORIG=$1 -APPSTMPL=$2 - -if [ $# != 2 ]; then - echo "usage $0 " - exit 0 -fi - -#rm -f $APPSTMPL/* -mkdir -p $APPSTMPL -find $APPSORIG -name "*.desktop" -exec appmenus/convert_app2template_for_netvm.sh {} $APPSTMPL \; - -cp appmenus/qubes-vm.directory.template $APPSTMPL diff --git a/create_apps_templates_for_templatevm.sh b/create_apps_templates_for_templatevm.sh deleted file mode 100755 index 7bbc646..0000000 --- a/create_apps_templates_for_templatevm.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -APPSORIG=$1 -APPSTMPL=$2 - -if [ $# != 2 ]; then - echo "usage $0 " - exit 0 -fi - -rm -f $APPSTMPL/* -mkdir -p $APPSTMPL -find $APPSORIG -name "*.desktop" -exec appmenus/convert_app2template_for_templatevm.sh {} $APPSTMPL \; - -cp appmenus/qubes-vm.directory.template $APPSTMPL diff --git a/netvm.spec b/netvm.spec deleted file mode 100644 index 19c67b2..0000000 --- a/netvm.spec +++ /dev/null @@ -1,110 +0,0 @@ -# -# This SPEC is for bulding RPM packages that contain complete Qubes NetVM files -# This includes the VM's root image, patched with all qubes rpms, etc -# - -%{!?version: %define version %(cat version_netvm)} - -%define _binaries_in_noarch_packages_terminate_build 0 - -Name: qubes-servicevm-%{netvm_name} -Version: %{version} -Release: 1 -Summary: Qubes NetVM image for '%{netvm_name}' - -License: GPL -URL: http://www.qubes-os.org -Source: . - -Requires: qubes-core-dom0 xdg-utils - -%define _builddir %(pwd) -%define _rpmdir %(pwd)/rpm -%define dest_dir /var/lib/qubes/servicevms/%{netvm_name} - -%description -Qubes NetVM image for '%{netvm_name}'. - -%build -cd qubeized_images -rm -f %{netvm_name}-root.img.tar -tar --sparse -cf %{netvm_name}-root.img.tar %{netvm_name}-root.img -cd .. -./create_apps_for_netvm.sh netvm/apps.templates/ %{netvm_name} %{dest_dir} qubeized_images/%{netvm_name}-apps - -%install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT/%{dest_dir} -ln qubeized_images/%{netvm_name}-root.img.tar $RPM_BUILD_ROOT/%{dest_dir}/root.img.tar -touch $RPM_BUILD_ROOT/%{dest_dir}/root.img # we will create the real file in %post - -sed -e s/%NETVMNAME%/%{netvm_name}/ < vm_conf_files/netvm.conf >\ - $RPM_BUILD_ROOT/%{dest_dir}/%{netvm_name}.conf - -mkdir -p $RPM_BUILD_ROOT/%{dest_dir}/kernels -cp vm_kernels_netvm/vmlinuz $RPM_BUILD_ROOT/%{dest_dir}/kernels/vmlinuz -cp vm_kernels_netvm/initramfs $RPM_BUILD_ROOT/%{dest_dir}/kernels/initramfs - -cp vm_initramfs_patches/qubes_cow_setup.sh $RPM_BUILD_ROOT/%{dest_dir}/kernels/qubes_cow_setup.sh - -mkdir -p $RPM_BUILD_ROOT/%{dest_dir}/apps -cp -r qubeized_images/%{netvm_name}-apps/* $RPM_BUILD_ROOT/%{dest_dir}/apps -touch $RPM_BUILD_ROOT/%{dest_dir}/icon.png - -%post -echo "--> Processing the root.img... (this might take a while)" -tar --sparse -xf %{dest_dir}/root.img.tar -C %{dest_dir} -rm -f %{dest_dir}/root.img.tar -mv %{dest_dir}/%{netvm_name}-root.img %{dest_dir}/root.img -chown root.qubes %{dest_dir}/root.img -chmod 0660 %{dest_dir}/root.img - -export XDG_DATA_DIRS=/usr/share/ -if [ "$1" -gt 1 ] ; then - # upgrading already installed template... - echo "--> Removing previous menu shortcuts..." - xdg-desktop-menu uninstall --mode system %{dest_dir}/apps/*.directory %{dest_dir}/apps/*.desktop -fi - -echo "--> Instaling menu shortcuts..." -ln -sf /usr/share/qubes/icons/netvm.png %{dest_dir}/icon.png -xdg-desktop-menu install --mode system %{dest_dir}/apps/*.directory %{dest_dir}/apps/*.desktop - -echo "--> Adding to Qubes DB..." -if [ "$1" = 1 ] ; then - # installing for the first time - qvm-add-netvm %{netvm_name} -else - qvm-remove -q --just-db %{netvm_name} - qvm-add-netvm %{netvm_name} -fi - -%preun -if [ "$1" = 0 ] ; then - # no more packages left - qvm-remove -q --just-db %{netvm_name} - - # we need to have it here, because rpm -U