Skip to content

Commit

Permalink
debian: add packaging
Browse files Browse the repository at this point in the history
  • Loading branch information
fepitre committed Jun 16, 2020
1 parent e73015e commit d8de88b
Show file tree
Hide file tree
Showing 14 changed files with 209 additions and 47 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
*~
rpm/
pkgs/
debian/changelog.*
48 changes: 23 additions & 25 deletions Makefile
Original file line number Diff line number Diff line change
@@ -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 $@ $<
Expand All @@ -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 change: 1 addition & 0 deletions Makefile.builder
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
RPM_SPEC_FILES := rpm_spec/qmgr.spec
DEBIAN_BUILD_DIRS := debian
5 changes: 5 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
qubes-manager (4.1.9-1) unstable; urgency=medium

Initial commit

-- Frédéric Pierret (fepitre) <[email protected]> Sun, 14 Jun 2020 10:00:00 +0200
1 change: 1 addition & 0 deletions debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
10
35 changes: 35 additions & 0 deletions debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Source: qubes-manager
Section: admin
Priority: optional
Maintainer: Frédéric Pierret (fepitre) <[email protected]>
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 changes: 22 additions & 0 deletions debian/copyright
Original file line number Diff line number Diff line change
@@ -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) <[email protected]> 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 changes: 76 additions & 0 deletions debian/install
Original file line number Diff line number Diff line change
@@ -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 changes: 11 additions & 0 deletions debian/postinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

set -e

if [ "$1" = "configure" ]; then
update-desktop-database &> /dev/null || :
fi

#DEBHELPER#

exit 0
11 changes: 11 additions & 0 deletions debian/postrm
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

set -e

if [ "$1" = "remove" ]; then
update-desktop-database &> /dev/null || :
fi

#DEBHELPER#

exit 0
18 changes: 18 additions & 0 deletions debian/rules
Original file line number Diff line number Diff line change
@@ -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 change: 1 addition & 0 deletions debian/source/format
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.0 (quilt)
1 change: 1 addition & 0 deletions rel
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1
25 changes: 3 additions & 22 deletions rpm_spec/qmgr.spec.in
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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 || :
Expand Down

0 comments on commit d8de88b

Please sign in to comment.