From 26a8eff12fcf9bfac865c6f282b6ed7932d4ca3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Sun, 14 Jun 2020 10:29:11 +0200 Subject: [PATCH] debian: initial packaging - clean Makefile and add 'install' target - refactor spec according to Makefile QubesOS/qubes-issues#4186 --- .travis.yml | 19 ++----- Makefile | 14 ++++- Makefile.builder | 1 + Makefile.common | 53 ------------------- debian/changelog | 5 ++ debian/compat | 1 + debian/control | 14 +++++ debian/copyright | 22 ++++++++ debian/install | 11 ++++ debian/postinst | 23 ++++++++ debian/postrm | 24 +++++++++ debian/rules | 13 +++++ debian/source/format | 1 + debian/source/options | 4 ++ debian/triggers | 5 ++ rel | 1 + version | 1 + ...qubes.spec => xfce4-settings-qubes.spec.in | 45 +++++++--------- 18 files changed, 161 insertions(+), 96 deletions(-) delete mode 100644 Makefile.common create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/install create mode 100644 debian/postinst create mode 100644 debian/postrm create mode 100755 debian/rules create mode 100644 debian/source/format create mode 100644 debian/source/options create mode 100644 debian/triggers create mode 100644 rel create mode 100644 version rename xfce4-settings-qubes.spec => xfce4-settings-qubes.spec.in (65%) diff --git a/.travis.yml b/.travis.yml index ab13f01..82ca37c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,15 +1,4 @@ -sudo: required -dist: bionic -language: generic -install: git clone https://github.com/QubesOS/qubes-builder ~/qubes-builder -script: ~/qubes-builder/scripts/travis-build -env: - - DIST_DOM0=fc31 USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - - DISTS_VM=fc30 USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - - DISTS_VM=fc31 USE_QUBES_REPO_VERSION=4.1 USE_QUBES_REPO_TESTING=1 - -# don't build tags which are meant for code signing only -branches: - except: - - /.*_.*/ - - build +import: + - source: QubesOS/qubes-continuous-integration:R4.1/travis-base-r4.1.yml + - source: QubesOS/qubes-continuous-integration:R4.1/travis-dom0-r4.1.yml + - source: QubesOS/qubes-continuous-integration:R4.1/travis-vms-r4.1.yml diff --git a/Makefile b/Makefile index aa2663a..975abcf 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,14 @@ SPECFILE := xfce4-settings-qubes.spec -include Makefile.common + +install: + install -m 644 -D xfce4-panel-qubes-default.xml $(DESTDIR)/etc/xdg/xfce4/panel/default.xml.qubes + install -m 644 -D xsettings.xml $(DESTDIR)/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml.qubes + install -m 644 -D xfwm4.xml $(DESTDIR)/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml + install -m 644 -D xfce4-desktop.xml $(DESTDIR)/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml + install -m 644 -D xfce4-session.xml $(DESTDIR)/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.qubes + install -m 644 -D xfce4-power-manager.xml $(DESTDIR)/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml.qubes + install -m 644 -D xfce4-keyboard-shortcuts.xml $(DESTDIR)/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml.qubes + ln -s ../../panel/default.xml $(DESTDIR)/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml + install -m 644 -D xfce4-xss-lock.desktop $(DESTDIR)/etc/xdg/autostart/xfce4-xss-lock.desktop + install -m 644 -D qubes-update-xfce-config.desktop $(DESTDIR)/etc/xdg/autostart/qubes-update-xfce-config.desktop + install -m 755 -D update-xfce-config $(DESTDIR)/usr/lib/qubes/update-xfce-config diff --git a/Makefile.builder b/Makefile.builder index 061e6e0..2d3ff14 100644 --- a/Makefile.builder +++ b/Makefile.builder @@ -1 +1,2 @@ RPM_SPEC_FILES := xfce4-settings-qubes.spec +DEBIAN_BUILD_DIRS := debian \ No newline at end of file diff --git a/Makefile.common b/Makefile.common deleted file mode 100644 index 7d1cff1..0000000 --- a/Makefile.common +++ /dev/null @@ -1,53 +0,0 @@ -# -# Common Makefile for building RPMs -# - -WORKDIR := $(CURDIR) -SPECDIR ?= $(WORKDIR) -SRCRPMDIR ?= $(WORKDIR)/../srpm -BUILDDIR ?= $(WORKDIR) -RPMDIR ?= $(WORKDIR)/../rpm -SOURCEDIR := $(WORKDIR) - - -RPM_DEFINES := --define "_sourcedir $(SOURCEDIR)" \ - --define "_specdir $(SPECDIR)" \ - --define "_builddir $(BUILDDIR)" \ - --define "_srcrpmdir $(SRCRPMDIR)" \ - --define "_rpmdir $(RPMDIR)" - -help: - @echo "make rpms -- generate binary rpm packages" - @echo "make srpms -- generate source rpm packages" - -DIST_DOM0 ?= fc13 - -VER_REL := $(shell rpm $(RPM_DEFINES) -q --qf "%{VERSION}-%{RELEASE}\n" --specfile $(SPECFILE)| head -1|sed -e 's/fc../$(DIST_DOM0)/') -NAME := $(shell rpm $(RPM_DEFINES) -q --qf "%{NAME}\n" --specfile $(SPECFILE)| head -1) - -rpms: rpms-dom0 - -rpms-vm: - -rpms-dom0: - rpmbuild $(RPM_DEFINES) -bb $(SPECFILE) - rpm --addsign $(RPMDIR)/x86_64/$(NAME)*$(VER_REL)*.rpm - -srpms: - rpmbuild $(RPM_DEFINES) -bs $(SPECFILE) - rpm --addsign $(SRCRPMDIR)/$(NAME)*$(VER_REL)*.rpm - -update-repo-current: - ln -f $(RPMDIR)/x86_64/$(NAME)*$(VER_REL)*.rpm ../../yum/current-release/current/dom0/rpm/ - -update-repo-current-testing: - ln -f $(RPMDIR)/x86_64/$(NAME)*$(VER_REL)*.rpm ../../yum/current-release/current-testing/dom0/rpm/ - -update-repo-unstable: - ln -f $(RPMDIR)/x86_64/$(NAME)*$(VER_REL)*.rpm ../../yum/current-release/unstable/dom0/rpm/ - -update-repo-installer: - ln -f $(RPMDIR)/x86_64/$(NAME)*$(VER_REL)*.rpm ../../installer/yum/qubes-dom0/rpm/ - -clean: - diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..80b4781 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +xfce4-settings-qubes (4.0.3-2) unstable; urgency=medium + + Initial commit + + -- Frédéric Pierret (fepitre) Sun, 14 Jun 2020 10:00:00 +0200 \ No newline at end of file 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..5250a1f --- /dev/null +++ b/debian/control @@ -0,0 +1,14 @@ +Source: xfce4-settings-qubes +Section: xfce +Priority: extra +Maintainer: Frédéric Pierret (fepitre) +Build-Depends: + debhelper (>= 9~) +Standards-Version: 3.9.5 +Homepage: http://www.qubes-os.org + +Package: xfce4-settings-qubes +Section: xfce +Architecture: amd64 +Depends: qubes-artwork, xfce4-panel, xss-lock, ${shlibs:Depends}, ${misc:Depends} +Description: Default Xfce4 panel settings for Qubes. \ No newline at end of file diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..321efb6 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,22 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: desktop-linux-xfce4 +Source: + +Files: debian/* +Copyright: 2020 Frédéric Pierret (fepitre) 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 + . + On Debian systems, the complete text of the GNU General + Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". \ No newline at end of file diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..1d66bff --- /dev/null +++ b/debian/install @@ -0,0 +1,11 @@ +etc/xdg/xfce4/panel/default.xml.qubes +etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml.qubes +etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml +etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml +etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml +etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.qubes +etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml.qubes +etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml.qubes +etc/xdg/autostart/xfce4-xss-lock.desktop +etc/xdg/autostart/qubes-update-xfce-config.desktop +usr/lib/qubes/update-xfce-config \ No newline at end of file diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..73b4475 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +settings_replace() { + origfile="$1" + qubesfile="${1}.qubes" + backupfile=${origfile}.xfce4 + if [ -r "$origfile" ] && [ ! -r "$backupfile" ]; then + mv -f "$origfile" "$backupfile" + fi + cp -f "$qubesfile" "$origfile" +} + +if [ "$1" = trigerred ]; then + for trigger in $2; do + settings_replace "$trigger" + done +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/postrm b/debian/postrm new file mode 100644 index 0000000..55526e6 --- /dev/null +++ b/debian/postrm @@ -0,0 +1,24 @@ +#!/bin/sh + +set -e + +# remove alternatives links + +if [ "$1" = "remove" ]; then + REPLACEFILE="${REPLACEFILE} /etc/xdg/xfce4/panel/default.xml.qubes" + REPLACEFILE="${REPLACEFILE} /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml.qubes" + REPLACEFILE="${REPLACEFILE} /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.qubes" + REPLACEFILE="${REPLACEFILE} /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml.qubes" + REPLACEFILE="${REPLACEFILE} /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml.qubes" + if [ $1 -lt 1 ]; then + for file in ${REPLACEFILE}; do + origfile=${file%.qubes} + backupfile=${origfile}.xfce4 + mv -f "$backupfile" "$origfile" + done + fi +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..8e7e835 --- /dev/null +++ b/debian/rules @@ -0,0 +1,13 @@ +#!/usr/bin/make -f + +include /usr/share/dpkg/default.mk +export DESTDIR=$(shell pwd)/debian/tmp + +%: + dh $@ + +override_dh_auto_install: + make install + +override_dh_install: + dh_install --fail-missing \ No newline at end of file diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 0000000..27a571b --- /dev/null +++ b/debian/source/options @@ -0,0 +1,4 @@ +extend-diff-ignore = "(^|/)(.git/.*)$" +extend-diff-ignore = "(^|/)(deb/.*)$" +extend-diff-ignore = "(^|/)(pkgs/.*)$" +extend-diff-ignore = "(^|/)(rpm/.*)$" diff --git a/debian/triggers b/debian/triggers new file mode 100644 index 0000000..43bea31 --- /dev/null +++ b/debian/triggers @@ -0,0 +1,5 @@ +interest-noawait /etc/xdg/xfce4/panel/default.xml +interest-noawait /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml +interest-noawait /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml +interest-noawait /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml +interest-noawait /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml \ No newline at end of file diff --git a/rel b/rel new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/rel @@ -0,0 +1 @@ +2 diff --git a/version b/version new file mode 100644 index 0000000..c4e41f9 --- /dev/null +++ b/version @@ -0,0 +1 @@ +4.0.3 diff --git a/xfce4-settings-qubes.spec b/xfce4-settings-qubes.spec.in similarity index 65% rename from xfce4-settings-qubes.spec rename to xfce4-settings-qubes.spec.in index 5fb1572..1ab899a 100644 --- a/xfce4-settings-qubes.spec +++ b/xfce4-settings-qubes.spec.in @@ -1,53 +1,36 @@ Name: xfce4-settings-qubes -Version: 4.0.3 -Release: 2%{?dist} +Version: @VERSION@ +Release: @REL@%{?dist} Summary: Default Xfce4 panel settings for Qubes Group: User Interface/Desktops License: GPLv2+ URL: http://www.qubes-os.org/ -Source0: xfce4-panel-qubes-default.xml -Source2: xsettings.xml -Source3: xfwm4.xml -Source4: xfce4-desktop.xml -Source5: xfce4-session.xml -Source6: xfce4-power-manager.xml -Source7: xfce4-keyboard-shortcuts.xml -Source8: xfce4-xss-lock.desktop -Source9: qubes-update-xfce-config.desktop -Source10: update-xfce-config +Source0: %{name}-%{version}.tar.gz Requires: qubes-artwork Requires: xfce4-panel Requires: xss-lock Requires(post): xfce4-panel + %description %{summary} -%prep -%build +%prep +%setup -q %install -install -m 644 -D %{SOURCE0} %{buildroot}%{_sysconfdir}/xdg/xfce4/panel/default.xml.qubes -install -m 644 -D %{SOURCE2} %{buildroot}%{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml.qubes -install -m 644 -D %{SOURCE3} %{buildroot}%{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml -install -m 644 -D %{SOURCE4} %{buildroot}%{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml -install -m 644 -D %{SOURCE5} %{buildroot}%{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.qubes -install -m 644 -D %{SOURCE6} %{buildroot}%{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml.qubes -install -m 644 -D %{SOURCE7} %{buildroot}%{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml.qubes -ln -s ../../panel/default.xml %{buildroot}%{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml -install -m 644 -D %{SOURCE8} %{buildroot}%{_sysconfdir}/xdg/autostart/xfce4-xss-lock.desktop -install -m 644 -D %{SOURCE9} %{buildroot}%{_sysconfdir}/xdg/autostart/qubes-update-xfce-config.desktop -install -m 755 -D %{SOURCE10} %{buildroot}/usr/lib/qubes/update-xfce-config +%make_install + %define settings_replace() \ qubesfile="%{1}" \ origfile=${qubesfile%.qubes} \ backupfile=${origfile}.xfce4 \ -if [ -r "$origfile" -a ! -r "$backupfile" ]; then \ +if [ -r "$origfile" ] && [ ! -r "$backupfile" ]; then \ mv -f "$origfile" "$backupfile" \ fi \ cp -f "$qubesfile" "$origfile" \ @@ -56,18 +39,23 @@ cp -f "$qubesfile" "$origfile" \ %triggerin -- xfce4-panel %settings_replace %{_sysconfdir}/xdg/xfce4/panel/default.xml.qubes + %triggerin -- xfce4-settings %settings_replace %{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml.qubes + %triggerin -- xfce4-session %settings_replace %{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml.qubes + %triggerin -- xfce4-power-manager %settings_replace %{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml.qubes + %triggerin -- libxfce4ui %settings_replace %{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml.qubes + %triggerin -- xscreensaver-base conffile=/etc/xscreensaver/XScreenSaver.ad.tail @@ -85,6 +73,7 @@ sed -e '/! Qubes options begin/,/! Qubes options end/c \ update-xscreensaver-hacks + %postun REPLACEFILE="${REPLACEFILE} %{_sysconfdir}/xdg/xfce4/panel/default.xml.qubes" REPLACEFILE="${REPLACEFILE} %{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml.qubes" @@ -99,6 +88,7 @@ if [ $1 -lt 1 ]; then done fi + %files %{_sysconfdir}/xdg/xfce4/panel/default.xml.qubes %{_sysconfdir}/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml.qubes @@ -112,5 +102,6 @@ fi %{_sysconfdir}/xdg/autostart/qubes-update-xfce-config.desktop /usr/lib/qubes/update-xfce-config -%changelog +%changelog +@CHANGELOG@ \ No newline at end of file