diff --git a/Makefile.builder b/Makefile.builder index e98a4f9..8408483 100644 --- a/Makefile.builder +++ b/Makefile.builder @@ -1,2 +1,3 @@ RPM_SPEC_FILES := rpm_spec/qubes-utils.spec ARCH_BUILD_DIRS := archlinux +DEBIAN_BUILD_DIRS := debian diff --git a/core/Makefile b/core/Makefile index 6d90537..6a60d96 100644 --- a/core/Makefile +++ b/core/Makefile @@ -12,5 +12,9 @@ clean: install: mkdir -p $(DESTDIR)/$(PYTHON_SITEARCH)/qubes/ +ifeq (1,${DEBIANBUILD}) + cp *.py $(DESTDIR)/$(PYTHON_SITEARCH)/qubes/ +else cp *.py* $(DESTDIR)/$(PYTHON_SITEARCH)/qubes/ +endif .PHONY: install diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..35280f3 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +qubes-linux-utils (2.0.8) jessie; urgency=low + + * Initial Release. + + -- Davíð Steinn Geirsson Sun, 20 Apr 2014 21:47:01 +0000 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..932d54b --- /dev/null +++ b/debian/control @@ -0,0 +1,16 @@ +Source: qubes-linux-utils +Section: admin +Priority: extra +Maintainer: Davíð Steinn Geirsson +Build-Depends: qubes-core-vchan-xen, libxen-dev, debhelper (>= 8.0.0), quilt (>= 0.60) +Standards-Version: 3.9.3 +Homepage: http://www.qubes-os.org +Vcs-Git: http://dsg.is/qubes/qubes-linux-utils.git +#Vcs-Browser: http://git.debian.org/?p=collab-maint/qubes-linux-utils.git;a=summary + +Package: qubes-linux-utils +Architecture: any +Depends: qubes-core-vchan-xen, lsb-base, ${shlibs:Depends}, ${misc:Depends} +Recommends: python2.7 +Description: Qubes Linux utilities + This package includes the basic qubes utilities necessary for domU. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..47254d1 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,42 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: qubes-linux-utils +Source: + +Files: * +Copyright: ?-2014 Qubes Developers +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + +Files: debian/* +Copyright: 2014 Davíð Steinn Geirsson +License: GPL-2+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..e69de29 diff --git a/debian/init.d b/debian/init.d new file mode 100644 index 0000000..710feb2 --- /dev/null +++ b/debian/init.d @@ -0,0 +1,144 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: qubes-meminfo-writer +# Required-Start: $network $local_fs $remote_fs +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: meminfo-writer memory ballooning helper +# Description: Provides memory ballooning support for qubes AppVMs +### END INIT INFO + +# Author: Davíð Steinn Geirsson + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC=qubes-meminfo-writer +NAME=meminfo-writer +DAEMON=/usr/sbin/meminfo-writer +MEM_CHANGE_THRESHOLD_KB=30000 +MEMINFO_DELAY_USEC=100000 +DAEMON_ARGS="$MEM_CHANGE_THRESHOLD_KB $MEMINFO_DELAY_USEC" +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +[ -x $DAEMON ] || exit 0 + +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +. /lib/init/vars.sh + +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + start_meminfo_writer=$(/usr/bin/xenstore-read qubes-service/meminfo-writer 2>/dev/null) + if [ "$start_meminfo_writer" != "0" ]; then + /usr/sbin/meminfo-writer $MEM_CHANGE_THRESHOLD_KB $MEMINFO_DELAY_USEC /var/run/meminfo-writer.pid + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --exec $DAEMON -- $DAEMON_ARGS \ + || return 2 + fi + + +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + + # Wait for children to finish too if this is a daemon that forks + # and if the daemon is only ever run from this initscript. + # If the above conditions are not satisfied then add some other code + # that waits for the process to drop all resources that could be + # needed by services started subsequently. A last resort is to + # sleep for some time. + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + return "$RETVAL" +} + +# +# Function that sends a SIGHUP to the daemon/service +# +do_reload() { + # + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + # + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --exec $DAEMON + return 0 +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + #reload|force-reload) + # + # If do_reload() is not implemented then leave this commented out + # and leave 'force-reload' as an alias for 'restart'. + # + #log_daemon_msg "Reloading $DESC" "$NAME" + #do_reload + #log_end_msg $? + #;; + restart|force-reload) + # + # If the "reload" option is implemented then remove the + # 'force-reload' alias + # + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..90f9dee --- /dev/null +++ b/debian/rules @@ -0,0 +1,16 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +export DESTDIR=$(shell pwd)/debian/qubes-linux-utils + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +%: + dh $@ + +override_dh_auto_build: + make all LIBDIR=/usr/lib DEBIANBUILD=1 + +override_dh_auto_install: + make install LIBDIR=/usr/lib DEBIANBUILD=1 diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/qmemman/Makefile b/qmemman/Makefile index c9d3949..200a7f8 100644 --- a/qmemman/Makefile +++ b/qmemman/Makefile @@ -11,7 +11,9 @@ meminfo-writer: meminfo-writer.o $(CC) -g -o meminfo-writer meminfo-writer.o -lxenstore install: install -D meminfo-writer $(DESTDIR)/usr/sbin/meminfo-writer +ifneq (1,${DEBIANBUILD}) install -d $(DESTDIR)/usr/lib/systemd/system/ install qubes-meminfo-writer*service $(DESTDIR)/usr/lib/systemd/system/ +endif clean: rm -f meminfo-writer xenstore-watch *.o