Browse Source

debian: add packaging

QubesOS/qubes-issues#4186
Frédéric Pierret (fepitre) 3 years ago
parent
commit
d8de88b743
14 changed files with 209 additions and 47 deletions
  1. 1 0
      .gitignore
  2. 23 25
      Makefile
  3. 1 0
      Makefile.builder
  4. 5 0
      debian/changelog
  5. 1 0
      debian/compat
  6. 35 0
      debian/control
  7. 22 0
      debian/copyright
  8. 76 0
      debian/install
  9. 11 0
      debian/postinst
  10. 11 0
      debian/postrm
  11. 18 0
      debian/rules
  12. 1 0
      debian/source/format
  13. 1 0
      rel
  14. 3 22
      rpm_spec/qmgr.spec.in

+ 1 - 0
.gitignore

@@ -3,3 +3,4 @@
 *~
 rpm/
 pkgs/
+debian/changelog.*

+ 23 - 25
Makefile

@@ -1,23 +1,11 @@
-RPMS_DIR=rpm/
 VERSION := $(shell cat version)
 
 PYTHON ?= python3
 
-help:
-	@echo "make rpms                  -- generate binary rpm packages"
-	@echo "make res                   -- compile resources"
-	@echo "make update-repo-current   -- copy newly generated rpms to qubes yum repo"
-	@echo "make update-repo-unstable  -- same, but to -testing repo"
-	@echo "make update-repo-installer -- copy dom0 rpms to installer repo"
+LRELEASE_QT5 ?= $(if $(wildcard /etc/debian_version),lrelease,lrelease-qt5)
 
-
-rpms: rpms-dom0
-
-rpms-vm:
-
-rpms-dom0:
-	rpmbuild --define "_rpmdir $(RPMS_DIR)" -bb rpm_spec/qmgr.spec
-	rpm --addsign $(RPMS_DIR)/x86_64/qubes-manager*$(VERSION)*.rpm
+SETUPTOOLS_OPTS =
+SETUPTOOLS_OPTS += $(if $(wildcard /etc/debian_version),--install-layout=deb,)
 
 qubesmanager/ui_%.py: ui/%.ui
 	pyuic5 --from-imports -o $@ $<
@@ -28,28 +16,38 @@ res:
 	pyrcc5 -o qubesmanager/resources_rc.py resources.qrc
 
 translations:
-	lrelease-qt5 qubesmanager.pro
+	$(LRELEASE_QT5) qubesmanager.pro
 
 python:
 	$(PYTHON) ./setup.py build
 
 python_install:
-	$(PYTHON) ./setup.py install -O1 --skip-build --root $(DESTDIR)
+	$(PYTHON) ./setup.py install -O1 --skip-build --root $(DESTDIR) $(SETUPTOOLS_OPTS)
 
 update_ts: res
 	pylupdate5 qubesmanager.pro
 
-update-repo-current:
-	ln -f $(RPMS_DIR)/x86_64/qubes-manager-*$(VERSION)*.rpm ../yum/current-release/current/dom0/rpm/
+install:
+	mkdir -p $(DESTDIR)/usr/libexec/qubes-manager/
+	cp qubesmanager/mount_for_backup.sh $(DESTDIR)/usr/libexec/qubes-manager/
+	cp qubesmanager/qvm_about.sh $(DESTDIR)/usr/libexec/qubes-manager/
+	cp qubesmanager/dsa-4371-update $(DESTDIR)/usr/libexec/qubes-manager/
 
-update-repo-current-testing:
-	ln -f $(RPMS_DIR)/x86_64/qubes-manager-*$(VERSION)*.rpm ../yum/current-release/current-testing/dom0/rpm/
+	mkdir -p $(DESTDIR)/usr/share/applications
+	cp qubes-global-settings.desktop $(DESTDIR)/usr/share/applications/
+	cp qubes-vm-create.desktop $(DESTDIR)/usr/share/applications/
+	cp qubes-backup.desktop $(DESTDIR)/usr/share/applications/
+	cp qubes-backup-restore.desktop $(DESTDIR)/usr/share/applications/
+	cp qubes-qube-manager.desktop $(DESTDIR)/usr/share/applications/
+	cp qubes-template-manager.desktop $(DESTDIR)/usr/share/applications/
 
-update-repo-unstable:
-	ln -f $(RPMS_DIR)/x86_64/qubes-manager-*$(VERSION)*.rpm ../yum/current-release/unstable/dom0/rpm/
+	mkdir -p $(DESTDIR)/usr/share/desktop-directories/
+	cp qubes-tools.directory $(DESTDIR)/usr/share/desktop-directories/
 
-update-repo-installer:
-	ln -f $(RPMS_DIR)/x86_64/qubes-manager-*$(VERSION)*.rpm ../installer/yum/qubes-dom0/rpm/
+	mkdir -p $(DESTDIR)/etc/xdg/menus/applications-merged/
+	cp qubes-tools.menu $(DESTDIR)/etc/xdg/menus/applications-merged/
 
 clean:
 	rm -f qubesmanager/ui_*.py
+	rm -rf debian/changelog.*
+	rm -rf pkgs

+ 1 - 0
Makefile.builder

@@ -1 +1,2 @@
 RPM_SPEC_FILES := rpm_spec/qmgr.spec
+DEBIAN_BUILD_DIRS := debian

+ 5 - 0
debian/changelog

@@ -0,0 +1,5 @@
+qubes-manager (4.1.9-1) unstable; urgency=medium
+
+  Initial commit
+
+ -- Frédéric Pierret (fepitre) <frederic.pierret@qubes-os.org>  Sun, 14 Jun 2020 10:00:00 +0200

+ 1 - 0
debian/compat

@@ -0,0 +1 @@
+10

+ 35 - 0
debian/control

@@ -0,0 +1,35 @@
+Source: qubes-manager
+Section: admin
+Priority: optional
+Maintainer: Frédéric Pierret (fepitre) <frederic.pierret@qubes-os.org>
+Build-Depends:
+  debhelper (>= 9),
+  dh-python,
+  python3-all,
+  python3-setuptools,
+  qt5-default,
+  qttools5-dev-tools,
+  pyqt5-dev-tools
+Standards-Version: 4.3.0
+Homepage: https://www.qubes-os.org/
+#Vcs-Git: git://github.com/QubesOS/qubes-manager.git
+#Vcs-Browser: https://github.com/QubesOS/qubes-manager
+X-Python3-Version: >= 3.4
+
+Package: qubes-manager
+Architecture: any
+Depends:
+  python3-qubesadmin,
+  python3-pyqt5,
+  python3-pyinotify,
+  python3-quamash,
+  qubes-desktop-linux-common,
+  qubes-artwork,
+  pmount,
+  cryptsetup,
+  wmctrl,
+  ${python3:Depends},
+  ${misc:Depends}
+Conflicts: qubes-core-agent (<< 4.1.9)
+Description: Qubes administrative tools
+  Tools to manage Qubes system using Admin API

+ 22 - 0
debian/copyright

@@ -0,0 +1,22 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: qubes-manager
+Source: <http://www.qubes-os.org/>
+
+Files: debian/*
+Copyright: 2020 Frédéric Pierret (fepitre) <frederic.pierret@qubes-os.org> License: GPL-2+
+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 <http://www.gnu.org/licenses/>
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".

+ 76 - 0
debian/install

@@ -0,0 +1,76 @@
+/usr/bin/qubes-global-settings
+/usr/bin/qubes-vm-settings
+/usr/bin/qubes-vm-create
+/usr/bin/qubes-vm-boot-from-device
+/usr/bin/qubes-backup
+/usr/bin/qubes-backup-restore
+/usr/bin/qubes-qube-manager
+/usr/bin/qubes-log-viewer
+/usr/bin/qubes-template-manager
+/usr/libexec/qubes-manager/mount_for_backup.sh
+/usr/libexec/qubes-manager/qvm_about.sh
+/usr/libexec/qubes-manager/dsa-4371-update
+
+/usr/lib/*/dist-packages/qubesmanager/__pycache__
+/usr/lib/*/dist-packages/qubesmanager/__init__.py
+/usr/lib/*/dist-packages/qubesmanager/clipboard.py
+/usr/lib/*/dist-packages/qubesmanager/table_widgets.py
+/usr/lib/*/dist-packages/qubesmanager/appmenu_select.py
+/usr/lib/*/dist-packages/qubesmanager/backup.py
+/usr/lib/*/dist-packages/qubesmanager/backup_utils.py
+/usr/lib/*/dist-packages/qubesmanager/firewall.py
+/usr/lib/*/dist-packages/qubesmanager/global_settings.py
+/usr/lib/*/dist-packages/qubesmanager/multiselectwidget.py
+/usr/lib/*/dist-packages/qubesmanager/restore.py
+/usr/lib/*/dist-packages/qubesmanager/settings.py
+/usr/lib/*/dist-packages/qubesmanager/log_dialog.py
+/usr/lib/*/dist-packages/qubesmanager/about.py
+/usr/lib/*/dist-packages/qubesmanager/releasenotes.py
+/usr/lib/*/dist-packages/qubesmanager/informationnotes.py
+/usr/lib/*/dist-packages/qubesmanager/create_new_vm.py
+/usr/lib/*/dist-packages/qubesmanager/common_threads.py
+/usr/lib/*/dist-packages/qubesmanager/qube_manager.py
+/usr/lib/*/dist-packages/qubesmanager/utils.py
+/usr/lib/*/dist-packages/qubesmanager/bootfromdevice.py
+/usr/lib/*/dist-packages/qubesmanager/device_list.py
+/usr/lib/*/dist-packages/qubesmanager/template_manager.py
+
+/usr/lib/*/dist-packages/qubesmanager/resources_rc.py
+
+/usr/lib/*/dist-packages/qubesmanager/ui_backupdlg.py
+/usr/lib/*/dist-packages/qubesmanager/ui_bootfromdevice.py
+/usr/lib/*/dist-packages/qubesmanager/ui_globalsettingsdlg.py
+/usr/lib/*/dist-packages/qubesmanager/ui_multiselectwidget.py
+/usr/lib/*/dist-packages/qubesmanager/ui_newappvmdlg.py
+/usr/lib/*/dist-packages/qubesmanager/ui_newfwruledlg.py
+/usr/lib/*/dist-packages/qubesmanager/ui_restoredlg.py
+/usr/lib/*/dist-packages/qubesmanager/ui_settingsdlg.py
+/usr/lib/*/dist-packages/qubesmanager/ui_logdlg.py
+/usr/lib/*/dist-packages/qubesmanager/ui_about.py
+/usr/lib/*/dist-packages/qubesmanager/ui_releasenotes.py
+/usr/lib/*/dist-packages/qubesmanager/ui_informationnotes.py
+/usr/lib/*/dist-packages/qubesmanager/ui_qubemanager.py
+/usr/lib/*/dist-packages/qubesmanager/ui_devicelist.py
+/usr/lib/*/dist-packages/qubesmanager/ui_templatemanager.py
+/usr/lib/*/dist-packages/qubesmanager/i18n/qubesmanager_*.qm
+/usr/lib/*/dist-packages/qubesmanager/i18n/qubesmanager_*.ts
+
+/usr/lib/*/dist-packages/qubesmanager/tests/__pycache__
+/usr/lib/*/dist-packages/qubesmanager/tests/__init__.py
+/usr/lib/*/dist-packages/qubesmanager/tests/test_backup.py
+/usr/lib/*/dist-packages/qubesmanager/tests/test_backup_utils.py
+/usr/lib/*/dist-packages/qubesmanager/tests/test_global_settings.py
+/usr/lib/*/dist-packages/qubesmanager/tests/test_qube_manager.py
+/usr/lib/*/dist-packages/qubesmanager/tests/test_create_new_vm.py
+/usr/lib/*/dist-packages/qubesmanager/tests/test_vm_settings.py
+
+/usr/lib/*/dist-packages/qubesmanager-*.egg-info/*
+
+/usr/share/applications/qubes-global-settings.desktop
+/usr/share/applications/qubes-vm-create.desktop
+/usr/share/applications/qubes-backup.desktop
+/usr/share/applications/qubes-backup-restore.desktop
+/usr/share/applications/qubes-qube-manager.desktop
+/usr/share/applications/qubes-template-manager.desktop
+/usr/share/desktop-directories/qubes-tools.directory
+/etc/xdg/menus/applications-merged/qubes-tools.menu

+ 11 - 0
debian/postinst

@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = "configure" ]; then
+    update-desktop-database &> /dev/null || :
+fi
+
+#DEBHELPER#
+
+exit 0

+ 11 - 0
debian/postrm

@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = "remove" ]; then
+    update-desktop-database &> /dev/null || :
+fi
+
+#DEBHELPER#
+
+exit 0

+ 18 - 0
debian/rules

@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/default.mk
+export DESTDIR=$(shell pwd)/debian/tmp
+
+%:
+	dh $@
+
+override_dh_auto_build:
+	make ui res translations
+	make python
+
+override_dh_auto_install:
+	make python_install
+	make install
+
+override_dh_install:
+	dh_install --fail-missing

+ 1 - 0
debian/source/format

@@ -0,0 +1 @@
+3.0 (quilt)

+ 1 - 0
rel

@@ -0,0 +1 @@
+1

+ 3 - 22
rpm_spec/qmgr.spec.in

@@ -1,6 +1,6 @@
 Name:		qubes-manager
 Version:	@VERSION@
-Release:	1%{?dist}
+Release:	@REL@%{?dist}
 Summary:	The Graphical Qubes VM Manager.
 BuildArch:	noarch
 Group:		Qubes
@@ -40,27 +40,8 @@ make ui res translations
 make python
 
 %install
-make python_install \
-    DESTDIR=$RPM_BUILD_ROOT
-
-mkdir -p $RPM_BUILD_ROOT/usr/libexec/qubes-manager/
-cp qubesmanager/mount_for_backup.sh $RPM_BUILD_ROOT/usr/libexec/qubes-manager/
-cp qubesmanager/qvm_about.sh $RPM_BUILD_ROOT/usr/libexec/qubes-manager/
-cp qubesmanager/dsa-4371-update $RPM_BUILD_ROOT/usr/libexec/qubes-manager/
-
-mkdir -p $RPM_BUILD_ROOT/usr/share/applications
-cp qubes-global-settings.desktop $RPM_BUILD_ROOT/usr/share/applications/
-cp qubes-vm-create.desktop $RPM_BUILD_ROOT/usr/share/applications/
-cp qubes-backup.desktop $RPM_BUILD_ROOT/usr/share/applications/
-cp qubes-backup-restore.desktop $RPM_BUILD_ROOT/usr/share/applications/
-cp qubes-qube-manager.desktop $RPM_BUILD_ROOT/usr/share/applications/
-cp qubes-template-manager.desktop $RPM_BUILD_ROOT/usr/share/applications/
-
-mkdir -p $RPM_BUILD_ROOT/usr/share/desktop-directories/
-cp qubes-tools.directory $RPM_BUILD_ROOT/usr/share/desktop-directories/
-
-mkdir -p $RPM_BUILD_ROOT/etc/xdg/menus/applications-merged/
-cp qubes-tools.menu $RPM_BUILD_ROOT/etc/xdg/menus/applications-merged/
+make python_install DESTDIR=$RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
 
 %post
 update-desktop-database &> /dev/null || :