debian: Converted debian package to a quilt package to allow patches

Applied patch to qrexec Makefile to prevent compile failure on warnings
  qrexec: Disable all warnings being treated as errors

  gcc -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -I. -g -Wall -Wextra -Werror -pie -fPIC `pkg-config --cflags vchan-xen` -D_FORTIFY_SOURCE=2  -c -o qrexec-agent-data.o qrexec-agent-data.c
  qrexec-agent-data.c: In function 'handle_remote_data':
  qrexec-agent-data.c:217:17: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
                 status = *(unsigned int *)buf;
                 ^
  cc1: all warnings being treated as errors
  <builtin>: recipe for target 'qrexec-agent-data.o' failed
This commit is contained in:
Jason Mehring 2015-02-10 10:40:51 -05:00
parent 87bf833368
commit 0df84c7796
No known key found for this signature in database
GPG Key ID: 1BB9B1FB5A4C6DAD
8 changed files with 109 additions and 5 deletions

View File

@ -190,6 +190,10 @@ install-common:
install -d $(DESTDIR)/home_volatile/user
install -d $(DESTDIR)/rw
# Create a quilt orig package so we can build xen in Debian
dist:
tar cvfz "../qubes-core-agent_$(VERSION).orig.tar.gz" --exclude-vcs --exclude=debian .
install-deb:
mkdir -p $(DESTDIR)/etc/apt/sources.list.d
sed -e "s/@DIST@/`lsb_release -cs`/" misc/qubes-r3.list.in > $(DESTDIR)/etc/apt/sources.list.d/qubes-r3.list

77
debian/README.configuration vendored Normal file
View File

@ -0,0 +1,77 @@
Debian Packaging Guide
----------------------
https://www.debian.org/doc/manuals/maint-guide/first.en.html
===============================================================================
Bash.rc
===============================================================================
# Assume usename 'user' running this, otherwise
# /home/user/.bashrc
cat >>~/.bashrc <<'EOF'
DEBMAIL="user@chroot.local"
DEBFULLNAME="Qubes Builder"
export DEBMAIL DEBFULLNAME
alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"
complete -F _quilt_completion $_quilt_complete_opt dquilt
EOF
===============================================================================
Quilt RC
===============================================================================
cat >>~/.quiltrc-dpkg <<'EOF'
d=. ; while [ ! -d $d/debian -a `readlink -e $d` != / ]; do d=$d/..; done
if [ -d $d/debian ] && [ -z $QUILT_PATCHES ]; then
# if in Debian packaging tree with unset $QUILT_PATCHES
QUILT_PATCHES="debian/patches"
QUILT_PATCH_OPTS="--reject-format=unified"
QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto"
QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33"
if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi
fi
EOF
===============================================================================
Create a fresh Debian configuration
===============================================================================
apt-get dh-make
# Example
$ cd ~/gentoo
$ wget http://example.org/gentoo-0.9.12.tar.gz
$ tar -xvzf gentoo-0.9.12.tar.gz
$ cd gentoo-0.9.12
$ dh_make -f ../gentoo-0.9.12.tar.gz
===============================================================================
Adding Patches
===============================================================================
https://www.debian.org/doc/manuals/maint-guide/modify.en.html
# When anyone (including yourself) provides a patch foo.patch to the source
# later, modifying a 3.0 (quilt) source package is quite simple:
$ dpkg-source -x gentoo_0.9.12.dsc
$ cd gentoo-0.9.12
$ dquilt import ../foo.patch
$ dquilt push
$ dquilt refresh
$ dquilt header -e
... describe patch
===============================================================================
Other
===============================================================================
# To list all dh_ modules...
man -k dh_
# To indicate what build-depends are required!
dpkg-depcheck -d ./configure
# Test build (unsigned)
dpkg-buildpackage -us -uc

2
debian/changelog vendored
View File

@ -1,4 +1,4 @@
qubes-core-agent (3.0.0) jessie; urgency=medium
qubes-core-agent (3.0.0-1) jessie; urgency=medium
[ Marek Marczykowski-Górecki ]
* Improve handling of .desktop files

4
debian/control vendored
View File

@ -2,8 +2,8 @@ Source: qubes-core-agent
Section: admin
Priority: extra
Maintainer: Davíð Steinn Geirsson <david@dsg.is>
Build-Depends: qubes-utils (>= 2.0.17), libvchan-xen-dev, python, debhelper, quilt, libxen-dev, dh-systemd (>= 1.5)
Standards-Version: 3.9.3
Build-Depends: qubes-utils (>= 2.0.17), libvchan-xen-dev, python, debhelper, quilt, libxen-qubes-vm-dev, dh-systemd (>= 1.5)
Standards-Version: 3.9.5
Homepage: http://www.qubes-os.org
Vcs-Git: git://git.qubes-os.org/marmarek/core-agent-linux.git

View File

@ -0,0 +1,19 @@
qrexec: Disable all warnings being treated as errors
gcc -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -I. -g -Wall -Wextra -Werror -pie -fPIC `pkg-config --cflags vchan-xen` -D_FORTIFY_SOURCE=2 -c -o qrexec-agent-data.o qrexec-agent-data.c
qrexec-agent-data.c: In function 'handle_remote_data':
qrexec-agent-data.c:217:17: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
status = *(unsigned int *)buf;
^
cc1: all warnings being treated as errors
<builtin>: recipe for target 'qrexec-agent-data.o' failed
--- a/qrexec/Makefile
+++ b/qrexec/Makefile
@@ -1,5 +1,5 @@
CC=gcc
-CFLAGS+=-I. -g -Wall -Wextra -Werror -pie -fPIC `pkg-config --cflags vchan-$(BACKEND_VMM)`
+CFLAGS+=-I. -g -Wall -Wextra -pie -fPIC `pkg-config --cflags vchan-$(BACKEND_VMM)`
LIBS=`pkg-config --libs vchan-$(BACKEND_VMM)` -lqrexec-utils
all: qrexec-agent qrexec-client-vm

1
debian/patches/series vendored Normal file
View File

@ -0,0 +1 @@
qrexec_disable_all_warnings_as_errors.patch

5
debian/rules vendored
View File

@ -4,10 +4,13 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk
export DESTDIR=$(shell pwd)/debian/qubes-core-agent
%:
dh $@ --with systemd
dh $@ --with systemd --with autotools-dev
override_dh_auto_build:
make all

View File

@ -1 +1 @@
3.0 (native)
3.0 (quilt)