summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog704
-rw-r--r--debian/compat1
-rw-r--r--debian/control84
-rw-r--r--debian/copyright416
-rw-r--r--debian/manpages1
-rw-r--r--debian/menu2
-rw-r--r--debian/patches/0001-buildflags.patch20
-rw-r--r--debian/patches/0005-hardening.patch38
-rw-r--r--debian/patches/0010-libexec.patch16
-rw-r--r--debian/patches/0100-ios8.patch103
-rw-r--r--debian/patches/0500-Port-to-webkit2gtk-40.patch1026
-rw-r--r--debian/patches/0501-Dont-pack-webview-into-a-scrolled-window.patch44
-rw-r--r--debian/patches/0502-Have-all-soup-sessions-validate-TLS-certificates.patch39
-rw-r--r--debian/patches/0503-facebook-Dont-disable-XSS-auditor.patch25
-rw-r--r--debian/patches/0510-Delay_size_request.patch26
-rw-r--r--debian/patches/0515-Fix_background_color_drawing.patch32
-rw-r--r--debian/patches/505-fix-viewer-desktop-file.patch27
-rw-r--r--debian/patches/series10
-rwxr-xr-xdebian/replace_thumbnailer.sh21
-rwxr-xr-xdebian/rules33
l---------debian/shotwell-common.README.Debian1
-rw-r--r--debian/shotwell-common.install1
-rw-r--r--debian/shotwell-common.postrm16
-rw-r--r--debian/shotwell-dbg.README.Debian8
-rw-r--r--debian/shotwell.114
-rw-r--r--debian/shotwell.README.Debian25
-rw-r--r--debian/shotwell.bug-script28
-rw-r--r--debian/shotwell.docs2
-rw-r--r--debian/shotwell.examples1
-rw-r--r--debian/shotwell.install3
-rw-r--r--debian/shotwell.lintian-overrides5
-rw-r--r--debian/shotwell.postrm15
-rw-r--r--debian/source/format1
-rw-r--r--debian/watch2
34 files changed, 2790 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..564755a
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,704 @@
+shotwell (0.23.1-1) unstable; urgency=medium
+
+ * New upstream release (Closes: #824164, #825788).
+ - Renew Patches.
+ - Remove upstream applied patches:
+ + 0500-Port-to-webkit2gtk-40.patch
+ + 0501-Dont-pack-webview-into-a-scrolled-window.patch
+ + 0502-Have-all-soup-sessions-validate-TLS-certificates.patch
+ + 0503-facebook-Dont-disable-XSS-auditor.patch
+ - Close upstream applied bugs:
+ + Fix inconsistent licensing metadata in icons/rejected.svg
+ (Closes: #800902).
+ + Fix crash open files with external editor (Closes: #806248).
+ - debian/copyright: Move copyright to Software Freedom Conservancy Inc.
+ * Rewrite rule at debian/watch.
+ * debian/rules:
+ - To make build reproducible (Closes: #822948):
+ + Fix date handling for non-English locales.
+ + Fix files mode in temp-source tarball.
+ Thanks to Alexis Bienvenüe <pado@passoire.fr>.
+ * New debian/shotwell-common.postrm to rebuild icon cache after purge / remove.
+ * New cherry-picked patches from upstream (Closes: #823835):
+ - 0510-Delay_size_request.patch
+ - 0515-Fix_background_color_drawing.patch
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Sun, 05 Jun 2016 22:36:26 +0200
+
+shotwell (0.22.1-1) unstable; urgency=medium
+
+ * New upstream release.
+ - Update translations.
+ * debian/control:
+ - Bump Standards-Version to 3.9.8 (no changes required).
+ - Correct Vcs-Git URI.
+ - Improve package description (Closes: #818671).
+ - Drop the following fields because even oldstable has 0.12.3-2~:
+ + Breaks: shotwell (<< 0.12.3-1)
+ + Replaces: shotwell (<< 0.12.3-1)
+ * Set compat level to 10 (no changes required).
+ * Correct typo at shotwell-dbg.README.Debian.
+ * debian/rules:
+ - Touch generated C files with mtime of debian/changelog to ensure
+ the mtime of these C files never changes before installing them
+ into the shotwell-dbg package. Makes build reproducible.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Sun, 17 Apr 2016 22:15:57 +0200
+
+shotwell (0.22.0-4) unstable; urgency=medium
+
+ * New debian/patches/0100-ios8.patch (Closes: #792016):
+ - Quick and dirty patch to get iOS 8 devices ready to download files.
+ Download from https://bugzilla.gnome.org/show_bug.cgi?id=742295#c22.
+ Thanks to Obsidian.
+ * debian/control:
+ - Bump Standards-Version to 3.9.7 (no changes required).
+ - Change Vcs-* to secure uri.
+ * debian/watch: Bump Version to 4 (no changes required).
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Mon, 22 Feb 2016 06:43:14 +0100
+
+shotwell (0.22.0-3) unstable; urgency=medium
+
+ * debian/rules:
+ - Touch temporary C files with the timestamp of
+ debian/changelog to make the build reproducible.
+ * Verify TLS certificates (Closes: #807110):
+ - Cherry-pick patches from upstream in debian/patches:
+ + 0500-Port-to-webkit2gtk-40.patch
+ + 0501-Dont-pack-webview-into-a-scrolled-window.patch
+ + 0502-Have-all-soup-sessions-validate-TLS-certificates.patch
+ + 0503-facebook-Dont-disable-XSS-auditor.patch
+ - Replace libwebkitgtk-3.0-dev with libwebkit2gtk-4.0-dev
+ in Build-Depends in debian/control.
+ * Rename patches.
+ * debian/copyright:
+ - Update for 2016.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Sun, 10 Jan 2016 16:53:26 +0100
+
+shotwell (0.22.0-2) unstable; urgency=medium
+
+ * debian/control:
+ - Add dconf-cli to Depends for binary package shotwell (Closes: #783578).
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Thu, 30 Apr 2015 08:07:46 +0200
+
+shotwell (0.22.0-1) unstable; urgency=low
+
+ * New upstream release:
+ - Correct edited file handling (Closes: #747443).
+ - Better handling of imported files (Closes: #775950).
+ * Refresh patches:
+ - debian/patches/hardening.patch
+ - debían/patches/500-buildflags.patch
+ * Remove patch applied upstream:
+ - debian/patches/505-fix-viewer-desktop-file.patch
+ * For better debugging:
+ - shotwell-dbg:
+ + Add the temporary *.c files produced by valac
+ to temp-source.tar.xz placed in doc directory.
+ - debian/rules:
+ + Add --debug as configure parameter.
+ + Add override_dh_compress to exclude the *.tar.xz from compress.
+ - debian/docs:
+ + Move to shotwell.docs.
+ - New debian/shotwell-dbg.README.Debian.
+ - New link from debian/shotwell.README.Debian to
+ debian/shotwell-common.README.Debian.
+ * debian/control:
+ - For the libgphoto2 transition, set the minimum version for
+ libgphoto2-dev in Build-Depends to 2.5.4.
+ * New bug reporting:
+ - New debian/shotwell.bug-script.
+ - New debian/shotwell.install to install the apport file.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Mon, 06 Apr 2015 07:59:33 +0200
+
+shotwell (0.20.2-2) unstable; urgency=low
+
+ * Add user scripts to replace shotwell-video-thumbnailer
+ if the thumbnailer is broken (Closes: #768637):
+ - New files:
+ + debian/shotwell.README.Debian
+ + debian/replace_thumbnailer.sh
+ + debian/shotwell.postrm
+ + debian/shotwell.examples
+ - Thanks to Teo Romera <teoromera@gmail.com>.
+ * debian/patches:
+ - Add 505-fix-viewer-desktop-file.patch to correct build of
+ shotwell-viewer.desktop (Closes: #776745).
+ + Thanks to Raphaël Halimi <raphael.halimi@gmail.com>.
+ - Rewrite 500-buildflags.patch to prevent FTBFS on
+ architectures i386 and powerpc.
+ * debian/control:
+ - Add Build-Depends libicu-dev for missing unicode/ucnv.h.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Mon, 02 Feb 2015 05:16:56 +0100
+
+shotwell (0.20.2-1) unstable; urgency=medium
+
+ * New upstream release (Closes: #769025).
+ * debian/control:
+ - Remove useless ${shlibs:Depends} from shotwell-dbg.
+ * debian/rules:
+ - Remove useless hardening parts.
+ * New debian/patches/500-buildflags.patch:
+ - Poke requested Debian buildflags for hardening into Makefile.
+ * Add year 2015 for debian/* to debian/copyright.
+ * Remove debian/source/options because compression xz is standard now.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Wed, 07 Jan 2015 14:23:48 +0100
+
+shotwell (0.20.1-1) unstable; urgency=medium
+
+ * New upstream release.
+ * Add sharedobject-in-library-directory-missing-soname to
+ lintian-overrides.
+ * debian/patch/hardening.patch:
+ - Add removal of --fatal-warnings at plugins/Makefile.plugins.mk
+ to prevent build errors on armel and mips.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Thu, 09 Oct 2014 11:57:41 +0200
+
+shotwell (0.20.0-1) unstable; urgency=medium
+
+ * New upstream release (Closes: #762357).
+ * debian/control:
+ - Bump Standards-Version to 3.9.6 (no changes required).
+ - Change Vcs-Browser to cgit.
+ * debian/copyright:
+ - Remove deleted file icons/hidden.svg.
+ - Add missed file icons/import-all.png.
+ - Remove whitspaces at EOL.
+ * debian/rules:
+ - Enable hardening=+all because files can open over network.
+ - Remove useless variable assignments.
+ - Add --debug to configure.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Tue, 23 Sep 2014 18:56:52 +0200
+
+shotwell (0.18.1-2) unstable; urgency=medium
+
+ * New Maintainer (Closes: #755416).
+ * debian/copyright:
+ - Rewrite into machine-readable format.
+ - Add myself to the list of authors for debian/*.
+ * debian/control:
+ - Set myself as maintainer.
+ - For previously not existing Vcs
+ + Create a new git repository on alioth.
+ + Add the Fields Vcs-Browser and Vcs-Git.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Wed, 30 Jul 2014 07:27:30 +0200
+
+shotwell (0.18.1-1) unstable; urgency=medium
+
+ * New upstream release.
+ * debian/control:
+ - Set Homepage field to the new home page.
+ * debian/control:
+ - Set download reference to the new site.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 20 Jul 2014 17:15:28 +0200
+
+shotwell (0.18.0-1) unstable; urgency=medium
+
+ * New upstream release.
+ * Upload to unstable.
+ * debian/patches/hardening.patch:
+ - Refresh for new upstream release.
+ * debian/patches/thumbnailer_path.patch:
+ - Removed, not needed.
+ * debian/control:
+ - Re-add myself as Uploader.
+ - Add gnome-doc-utils to Build-Depends.
+ - Replace libgphoto2-2-dev with libgphoto2-dev (Closes: #739355).
+ * debian/manpages:
+ - Do not install shotwell-video-thumbnailer anymore.
+ * debian/shotwell-video-thumbnailer.1:
+ - Removed, no longer needed.
+ * debian/rules:
+ - Explicitly set libexecdir to /usr/lib (Closes: #742083).
+ * debian/watch:
+ - Point to the GNOME FTP server.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Thu, 27 Mar 2014 14:02:25 +0100
+
+shotwell (0.17.0-1) experimental; urgency=low
+
+ * Team upload.
+ * New upstream release.
+ * debian/patches/format_string.patch:
+ - Removed, applied upstream.
+ * debian/patches/hardening.patch:
+ - Refresh for new upstream release.
+ * debian/patches/libexec.patch
+ - Refresh for new upstream release.
+ * debian/patches/thumbnailer_path.patch:
+ - Refresh for new upstream release.
+ * debian/shotwell.lintian-overrides:
+ - Remove useless library-not-linked-against-libc tag.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 16 Feb 2014 14:10:50 +0100
+
+shotwell (0.15.0-2) unstable; urgency=medium
+
+ * Team upload to unstable.
+ * debian/control:
+ - Bump Standards-Version to 3.9.5.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 16 Feb 2014 14:02:15 +0100
+
+shotwell (0.15.0-1) experimental; urgency=low
+
+ * Team upload.
+ * New upstream release (Closes: #726594).
+ - Fix FTBFS with vala 0.22 (Closes: #726510).
+ * debian/patches/document-mode.patch:
+ - Removed, applied upstream.
+ * debian/patches/hardening.patch:
+ - Refresh for new upstream release.
+ * debian/patches/libexec.patch
+ - Refresh for new upstream release.
+ * debian/patches/thumbnailer_path.patch:
+ - Install shotwell-video-thumbnailer under /usr/bin.
+ * debian/control:
+ - Build-depend against desktop-file-utils.
+ - Refresh build-dependency miminum versions.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Thu, 17 Oct 2013 22:04:11 +0200
+
+shotwell (0.14.1-3) unstable; urgency=low
+
+ * Team upload.
+ * debian/patches/document-mode.patch:
+ - Remove reference to document-mode processing APIs (Closes: #710141).
+
+ -- Luca Falavigna <dktrkranz@debian.org> Thu, 11 Jul 2013 10:59:32 +0200
+
+shotwell (0.14.1-2) unstable; urgency=low
+
+ * Team upload.
+ * Upload to unstable.
+ * debian/patches/libexec.patch:
+ - Do not install files in libexec directory (Closes: #706430).
+ * debian/control:
+ - Build-depend on valac (>= 0.18.0).
+ * debian/shotwell-common.lintian-overrides:
+ - Removed, no longer needed.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 12 May 2013 23:22:52 +0200
+
+shotwell (0.14.1-1) experimental; urgency=low
+
+ * New upstream release.
+ * Update debian/copyright file.
+ * Install shotwell-settings-migrator script in shotwell-common package
+ (Closes: #705423).
+ * Fix hardening-no-fortify-functions lintian warnings.
+ * Fix hardening-no-relro lintian warning.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Sun, 28 Apr 2013 15:10:11 +0200
+
+shotwell (0.14.0-1) experimental; urgency=low
+
+ * Team upload.
+ * New upstream release.
+ - Fixes strftime strings that generated bogus dates in the
+ Catalan translation (Closes: #675102).
+ - Fix assertion error on startup (Closes: #683883).
+ * debian/control:
+ - Bump build-dependencies minimum requirements.
+ - valac-0.18 (>= 0.18.0)
+ - libgexiv2-dev (>= 0.4.90)
+ - libgstreamer1.0-dev (>= 1.0.0)
+ - libgstreamer-plugins-base1.0-dev (>= 1.0.0)
+ - Drop libunique-3.0-dev and libusb-dev, no longer needed.
+ * debian/rules:
+ - Explicitly call configure instead of dh_auto_configure.
+ * debian/watch:
+ - Do not list preview versions.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Thu, 21 Mar 2013 20:14:36 +0100
+
+shotwell (0.13.1-1) experimental; urgency=low
+
+ * Team upload.
+ * New upstream release.
+ - Fix crash on invalid piwigo response (Closes: #687930).
+ * debian/control:
+ - Remove DM-Upload-Allowed field.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Wed, 28 Nov 2012 11:26:02 +0100
+
+shotwell (0.13.0-1) experimental; urgency=low
+
+ * Team upload.
+ * New upstream release (Closes: #688365).
+ - Fix French localization (Closes: #684578, #684579).
+ * debian/patches/gettext.patch:
+ - Removed, applied upstream.
+ * debian/patches/metadata.patch:
+ - Removed, applied upstream.
+ * debian/patches/openmp.patch:
+ - Removed, no longer needed.
+ * debian/control:
+ - Build-depend on valac-0.18 (>= 0.17.2) and libjson-glib-dev.
+ - Mention CR2 format in package description (Closes: #685300).
+ - Bump Standards-Version to 3.9.4.
+ * debian/watch:
+ - Track xz tarballs.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sat, 29 Sep 2012 14:58:49 +0200
+
+shotwell (0.12.3-2) unstable; urgency=low
+
+ * Team upload.
+ * debian/patches/metadata.patch:
+ - Cherry-pick patches from upstream repository to fix crashes while
+ managing metadata (Closes: #665498).
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 22 Jul 2012 11:56:51 +0200
+
+shotwell (0.12.3-1) unstable; urgency=low
+
+ * Team upload.
+ * New upstream release (Closes: #674720).
+ * debian/patches/sidebar-bg-color.patch:
+ - Removed, applied upstream.
+ * debian/patches/openmp.patch:
+ - Refresh for new upstream release.
+ * debian/control:
+ - Move architecture-independent data into shotwell-common package.
+ - Let shotwell binary depend on the new shotwell-common package.
+ - Provide shotwell-dbg packaage.
+ * debian/rules:
+ - Pass --dbg-package=shotwell-dbg to dh sequencer.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 03 Jun 2012 12:19:04 +0200
+
+shotwell (0.12.2-1) unstable; urgency=low
+
+ * Team upload to unstable
+ * New upstream release.
+ * debian/patches/gcc_format_string.patch:
+ - Removed, applied upstream.
+ * debian/patches/format_string.patch:
+ - Fix FTBFS with missing format string parameter.
+ * debian/patches/openmp.patch:
+ - Pass -fopenmp to gcc flags.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 06 May 2012 19:50:17 +0200
+
+shotwell (0.12.1-1) experimental; urgency=low
+
+ * Team upload.
+ * New upstream release (Closes: #666053).
+ - Login into flickr with OpenID (Closes: #641472).
+ - In view mode, when deleting a photo, do not switch back to
+ thumbnail mode (Closes: #655100).
+ - Event names are displayed correctly (Closes: #664980).
+ * debian/patches/gcc_format_string.patch:
+ - fix FTBFS with recent gcc.
+ * debian/patches/vala-0.14.1.patch:
+ - Removed, no longer needed.
+ * debian/patches/*
+ - Refresh for new upstream release.
+ * debian/compat:
+ - Bump compatibility level to 9.
+ * debian/control:
+ - Build-depend on valac-0.16.
+ - Build-depend on librest-dev.
+ - Refresh build-dependencies.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Thu, 29 Mar 2012 23:28:23 +0200
+
+shotwell (0.11.6-2) unstable; urgency=low
+
+ * Team upload.
+ * debian/patches/vala-0.14.1.patch:
+ - Allow compilation with vala-0.14.1.
+ * debian/control:
+ - Build-depend on unversioned valac (Closes: #663318).
+ - Bump Standards-Version to 3.9.3.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 18 Mar 2012 01:36:18 +0100
+
+shotwell (0.11.6-1) unstable; urgency=low
+
+ * Team upload.
+ * New upstream release.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Thu, 08 Dec 2011 22:38:11 +0100
+
+shotwell (0.11.5-1) unstable; urgency=low
+
+ * New upstream release (Closes: 645942).
+ * Show translations in GNOME menu, thanks to Hideki Yamane
+ <henrich@debian.or.jp> for this (Closes: 644905).
+
+ [ Luca Falavigna ]
+ * Enable DM upload.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Sun, 23 Oct 2011 01:39:38 +0200
+
+shotwell (0.11.2-1) unstable; urgency=low
+
+ * Team upload.
+ * New upstream bugfix release.
+ * debian/rules:
+ - Do not compile GConf schema (Closes: #641677).
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sat, 24 Sep 2011 14:27:33 +0200
+
+shotwell (0.11.1-1) unstable; urgency=low
+
+ * Team upload.
+ * New upstream bugfix release.
+ * debian/patches/sidebar-bg-color.patch:
+ - Refresh for new upstream release.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Tue, 13 Sep 2011 20:53:25 +0200
+
+shotwell (0.11.0-1) unstable; urgency=low
+
+ * Team upload.
+ * New upstream release (Closes: #639863).
+ * debian/patches/sidebar-bg-color.patch:
+ - Refresh for new upstream release.
+ * debian/control:
+ - Build-depend on libgstreamer-plugins-base0.10-dev.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Thu, 01 Sep 2011 19:59:07 +0200
+
+shotwell (0.10.1-1) unstable; urgency=low
+
+ * Team upload
+ * New upstream release (Closes: #629311).
+ * debian/patches/non-linux-fixes.patch:
+ - Removed, waiting for proper upstream porting efforts.
+ * debian/patches/sidebar-bg-color.patch:
+ - Refresh for new upstream release.
+ * debian/control:
+ - Add Debian Shotwell Maintainers to Maintainers.
+ - Move Devid to Uploaders.
+ - libwebkitgtk-dev transition (Closes: #635426).
+ - Set Architecture to linux-any, shotwell is currently unsupported
+ outside of Linux platform, and require some porting.
+ * debian/shotwell-video-thumbnailer.1:
+ - Provide a minimal man page for shotwell-video-thumbnailer
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 21 Aug 2011 15:38:31 +0200
+
+shotwell (0.9.3-1) unstable; urgency=low
+
+ * New upstream release (Closes: #622705).
+ * Update debian/patches/non-linux-fixes.patch patch.
+ * Bump Standards-Version to 3.9.2.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Sun, 01 May 2011 13:09:48 +0200
+
+shotwell (0.9.1-1) unstable; urgency=low
+
+ * Upload to unstable.
+ * New upstream release (Closes: #620765).
+ * debian/control: modify libgexiv2-dev (>= 0.3.1) to libgexiv2-dev
+ (>= 0.2.2-4) in Build-Depends field.
+ * Update debian/patches/non-linux-fixes.patch patch.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Fri, 08 Apr 2011 23:28:01 +0200
+
+shotwell (0.9.0-1) experimental; urgency=low
+
+ * New upstream release (Closes: #614730, #593660, #619478).
+ * debian/control: modify valac-0.10 (>= 0.10.4) to valac-0.12 (>= 0.11.7)
+ in Build-Depends field.
+ * debian/control: add m4 and libgnomevfs2-dev (>= 2.24.2) to Build-Depends
+ field.
+ * debian/control: modify libgexiv2-dev (>= 0.2.0) to libgexiv2-dev
+ (>= 0.3.1) in Build-Depends field.
+ * Remove debian/patches/vala-0_10_4.patch patch, fixed upstream.
+ * Update debian/patches/non-linux-fixes.patch patch.
+ * Update debian/copyright file.
+ * Override library-not-linked-against-libc lintian warnings.
+ * Override image-file-in-usr-lib lintian warnings.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Sun, 27 Mar 2011 15:07:13 +0200
+
+shotwell (0.8.1-4) unstable; urgency=low
+
+ * A patch was reverting some changes introduced in 0.8.1-3, apply them.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Sun, 27 Mar 2011 12:42:49 +0200
+
+shotwell (0.8.1-3) unstable; urgency=low
+
+ * Update debian/patches/non-linux-fixes.patch patch (Closes: #619682).
+ * Add debian/patches/vala-0_10_4.patch patch, fix FTBFS caused by
+ valac 0.10.4.
+ * debian/control: modify valac-0.10 (>= 0.9.8) to valac-0.10 (>= 0.10.4)
+ in Build-Depends field.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Sat, 26 Mar 2011 23:45:32 +0100
+
+shotwell (0.8.1-2) unstable; urgency=low
+
+ * Upload to unstable (Closes: #614445).
+ * debian/control: modify libjson-glib-dev (>= 0.10.28) to libjson-glib-dev
+ (>= 0.7.6)
+ * debian/control: modify libgstreamer0.10-dev (>= 0.7.6) to
+ libgstreamer0.10-dev (>= 0.10.28)
+ * debian/control: modify libraw-dev to libraw-dev (>= 0.13.1-2).
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Mon, 28 Feb 2011 22:16:51 +0100
+
+shotwell (0.8.1-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/control: modify valac-0.10 (>= 0.9.7) to valac-0.10 (>= 0.9.8) in
+ Build-Depends field.
+ * Update debian/copyright.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Thu, 27 Jan 2011 23:05:40 +0100
+
+shotwell (0.8.0-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/control: modify valac (>= 0.9.5) to valac-0.10 (>= 0.9.7) in
+ Build-Depends field.
+ * debian/control: add libjson-glib-dev and libgstreamer0.10-dev to
+ Build-Depends field.
+ * Update debian/patches/sidebar-bg-color.patch patch.
+ * Update debian/patches/non-linux-fixes.patch patch.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Fri, 07 Jan 2011 15:14:41 +0100
+
+shotwell (0.7.2-1) experimental; urgency=low
+
+ * New upstream release.
+ * Update debian/patches/sidebar-bg-color.patch patch.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Wed, 15 Sep 2010 14:56:23 +0200
+
+shotwell (0.7.0-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/control: remove Luca Falavigna from Uploaders field.
+ * debian/control: update valac version to >= 0.9.5.
+ * debian/control: update libgexiv2-dev version to >= 0.2.0.
+ * Update debian/patches/non-linux-fixes.patch patch.
+ * debian/patches/sidebar-bg-color.patch: don't set sidebar background color
+ (Closes: #594170).
+ * Bump Standards-Version to 3.9.1.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Tue, 24 Aug 2010 17:34:23 +0200
+
+shotwell (0.6.1-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ - Build-depend on libusb-dev.
+ - Bump libgexiv2-dev version to be at least 0.1.0.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Mon, 05 Jul 2010 20:05:18 +0200
+
+shotwell (0.6.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/patches/non-linux-fixes.patch:
+ - Refresh for new upstream release.
+ * debian/control:
+ - Bump Standards-Version to 3.9.0, no changes required.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Wed, 30 Jun 2010 20:48:44 +0200
+
+shotwell (0.5.91-2) experimental; urgency=low
+
+ * debian/patches/non-linux-fixes.patch:
+ - Let libraw to be available under non-Linux architectures, fix FTBFS
+ on kFreeBSD (Closes: #586634).
+
+ -- Luca Falavigna <dktrkranz@debian.org> Mon, 21 Jun 2010 23:24:16 +0200
+
+shotwell (0.5.91-1) experimental; urgency=low
+
+ * New upstream development release.
+ * debian/patches/non-linux-fixes.patch:
+ - Refresh for new upstream release.
+ * debian/control:
+ - Build-depend on libgexiv2-dev and libraw-dev.
+ - No longer build-depend on libhal-dev.
+ - Adjust build-dependencies versioning.
+ * debian/README.source:
+ - Upstream clarified licensing of some icons with their authors, now
+ they are released under CC-BY-SA-3.0, so there is no need to repack
+ upstream tarball anymore, thus removing this file.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 20 Jun 2010 16:09:43 +0200
+
+shotwell (0.5.2+dfsg-2) unstable; urgency=low
+
+ * debian/patches/non-linux-fixes.patch:
+ - Add Hurd bits to allow build on that architecture.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Mon, 07 Jun 2010 23:41:52 +0200
+
+shotwell (0.5.2+dfsg-1) unstable; urgency=low
+
+ * New upstream release (Closes: #578903).
+ * Drop vala_0.8.0.patch patch, already applied by upstream.
+ * debian/control: add Luca Falavigna to Uploaders field.
+ * Add debian/patches/non-linux-fixes.patch patch from Peter Green to add
+ support for kfreebsd and hurd (Closes: #581662).
+ * debian/control: replace "libgudev-1.0-dev (>= 145)" with "libgudev-1.0-dev
+ (>= 145) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386]" as suggested by
+ Peter Green.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Sun, 23 May 2010 18:40:49 +0200
+
+shotwell (0.5.0+dfsg-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * debian/patches/vala_0.8.0.patch:
+ - Build with vala 0.8.0 (Closes: #577913).
+ * debian/control:
+ - Depend on librsvg2-common and dbus-x11 (Closes: #574112).
+ - Bump minimum valac version to 0.8.0.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sun, 18 Apr 2010 23:16:32 +0200
+
+shotwell (0.5.0+dfsg-1) unstable; urgency=low
+
+ * New upstream release.
+ * Update debian/copyright.
+ * Remove debian/patches directory, patches already applied upstream.
+ * debian/control: add libgudev-1.0-dev (>= 145) to Build-Depends field.
+ * Bump Standards-Version to 3.8.4.
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Mon, 15 Mar 2010 15:59:23 +0100
+
+shotwell (0.4.3+dfsg-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * debian/patches/02_vala_0.7.10.patch:
+ - Fix build with vala 0.7.10 (Closes: #569370).
+ * debian/control:
+ - Bump minimum valac version to 0.7.10.
+
+ -- Luca Falavigna <dktrkranz@debian.org> Sat, 20 Feb 2010 18:03:45 +0100
+
+shotwell (0.4.3+dfsg-1) unstable; urgency=low
+
+ * New upstream release.
+ * Switch to format 3.0 (quilt).
+ * Add debian/patches/01_GNU-kFreeBSD.diff patch from Cyril Brulebois to fix
+ FTBFS on GNU/kFreeBSD (Closes: #564306).
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Sat, 23 Jan 2010 18:56:33 +0100
+
+shotwell (0.4.2+dfsg-1) unstable; urgency=low
+
+ * Initial release (Closes: #561788).
+
+ -- Devid Antonio Filoni <d.filoni@ubuntu.com> Wed, 06 Jan 2010 14:08:43 +0100
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..f599e28
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+10
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..0e6a5e3
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,84 @@
+Source: shotwell
+Section: gnome
+Priority: optional
+Maintainer: Jörg Frings-Fürst <debian@jff-webhosting.net>
+Build-Depends:
+ debhelper (>= 9),
+ desktop-file-utils,
+ gnome-doc-utils,
+ libexif-dev (>= 0.6.16),
+ libgee-0.8-dev (>= 0.8.5),
+ libgexiv2-dev (>= 0.4.90),
+ libglib2.0-dev (>= 2.30.0),
+ libgphoto2-dev (>= 2.5.4),
+ libgstreamer-plugins-base1.0-dev (>= 1.0.0),
+ libgstreamer1.0-dev (>= 1.0.0),
+ libgtk-3-dev (>= 3.6.0),
+ libgudev-1.0-dev (>= 145),
+ libicu-dev,
+ libjson-glib-dev,
+ libraw-dev (>= 0.14),
+ librest-dev (>= 0.7),
+ libsoup2.4-dev (>= 2.26.0),
+ libsqlite3-dev (>= 3.5.9),
+ libwebkit2gtk-4.0-dev,
+ libxml2 (>= 2.6.32),
+ m4,
+ valac (>= 0.22.0)
+Standards-Version: 3.9.8
+Homepage: https://wiki.gnome.org/Apps/Shotwell
+Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/shotwell.git/
+Vcs-Git: https://anonscm.debian.org/cgit/collab-maint/shotwell.git/
+
+Package: shotwell
+Architecture: linux-any
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends},
+ shotwell-common (= ${source:Version}),
+ dconf-cli,
+ dbus-x11,
+ librsvg2-common
+Description: digital photo organizer
+ Shotwell is a digital photo organizer designed for the GNOME desktop
+ environment. It allows you to import photos, pictures, images and videos
+ from disk or camera. Shotwell can organize them in collections and in other
+ various ways. The viewer shows them in full-window or fullscreen mode and
+ presents them as galleries or slideshows. The integrated editor can rotate,
+ flip, crop and tag the photos, adjust the colors und remove red eyes. Export
+ is possible to facebook, Flickr or Youtube to share with others. It is able
+ to manage a lot of image formats such as JPEG, PNG, BMP, TIFF and Raw CR2.
+
+Package: shotwell-common
+Architecture: all
+Depends: ${misc:Depends}
+Recommends: shotwell
+Description: digital photo organizer - common files
+ Shotwell is a digital photo organizer designed for the GNOME desktop
+ environment. It allows you to import photos, pictures, images and videos
+ from disk or camera. Shotwell can organize them in collections and in other
+ various ways. The viewer shows them in full-window or fullscreen mode and
+ presents them as galleries or slideshows. The integrated editor can rotate,
+ flip, crop and tag the photos, adjust the colors und remove red eyes. Export
+ is possible to facebook, Flickr or Youtube to share with others. It is able
+ to manage a lot of image formats such as JPEG, PNG, BMP, TIFF and Raw CR2.
+ .
+ This package provides image files and documentation for Shotwell.
+
+Package: shotwell-dbg
+Priority: extra
+Section: debug
+Architecture: linux-any
+Depends: ${misc:Depends},
+ shotwell (= ${binary:Version})
+Description: digital photo organizer - debugging symbols
+ Shotwell is a digital photo organizer designed for the GNOME desktop
+ environment. It allows you to import photos, pictures, images and videos
+ from disk or camera. Shotwell can organize them in collections and in other
+ various ways. The viewer shows them in full-window or fullscreen mode and
+ presents them as galleries or slideshows. The integrated editor can rotate,
+ flip, crop and tag the photos, adjust the colors und remove red eyes. Export
+ is possible to facebook, Flickr or Youtube to share with others. It is able
+ to manage a lot of image formats such as JPEG, PNG, BMP, TIFF and Raw CR2.
+ .
+ This package contains the debugging symbols for Shotwell.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..d3d15c0
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,416 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: shotwell
+Upstream-Contact: Jim Nelson <jim@yorba.org>
+Source: https://wiki.gnome.org/Apps/Shotwell
+
+Files: *
+Copyright: 2009-2013 Yorba Foundation
+ 2010 Evgeniy Polyakov
+ 2010 Maxim Kartashev
+ 2013 Jens Bav
+ 2016 Software Freedom Conservancy Inc.
+License: LGPL-2.1
+
+Files: debian/*
+Copyright: 2009-2011 Devid Antonio Filoni <d.filoni@ubuntu.com>
+ 2014-2016 Jörg Frings-Fürst <debian@jff-webhosting.net>
+License: GPL-2+
+
+Files: icons/pin-toolbar.svg
+ icons/crop.svg
+ icons/import.svg
+ icons/import-all.png
+Copyright: 2007 David Vignoni <david@icon-king.com>
+ 2007 Johann Ollivier Lapeyre <johann@oxygen-icons.org>
+ 2007 Kenneth Wimer <kwwii@bootsplash.org>
+ 2007 Nuno Fernades Pinheiro <nf.pinheiro@gmail.com>
+ 2007 Riccardo Iaconelli <riccardo@oxygen-icons.org>
+ 2007 David Miller <miller@oxygen-icons.org>
+ 2009 Sebastian Porta <sebastianporta@gmail.com>
+ 2009 Cory Kontros <coryisatm@ubuntu.com>
+ 2009 Oliver Scholtz <scholli_tz@yahoo.de>
+ 2009 Daniel Planas <daniplanas.a@gmail.com>
+ 2009 Rosetta Contributors and Canonical Ltd.
+License: CC-BY-SA-3.0
+
+License: LGPL-2.1
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+ .
+ This library 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
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public License
+ version 2.1 can be found in "/usr/share/common-licenses/LGPL-2.1".
+
+License: GPL-2+
+ This program 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 program 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, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in the file `/usr/share/common-licenses/GPL-2'.
+
+License: CC-BY-SA-3.0
+ THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
+ CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS
+ PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE
+ WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS
+ PROHIBITED.
+ .
+ BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND
+ AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS
+ LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU
+ THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH
+ TERMS AND CONDITIONS.
+ .
+ 1. Definitions
+ .
+ 1. "Adaptation" means a work based upon the Work, or upon the Work and
+ other pre-existing works, such as a translation, adaptation, derivative
+ work, arrangement of music or other alterations of a literary or artistic
+ work, or phonogram or performance and includes cinematographic adaptations
+ or any other form in which the Work may be recast, transformed, or adapted
+ including in any form recognizably derived from the original, except that a
+ work that constitutes a Collection will not be considered an Adaptation for
+ the purpose of this License. For the avoidance of doubt, where the Work is
+ a musical work, performance or phonogram, the synchronization of the Work
+ in timed-relation with a moving image ("synching") will be considered an
+ Adaptation for the purpose of this License.
+ .
+ 2. "Collection" means a collection of literary or artistic works, such as
+ encyclopedias and anthologies, or performances, phonograms or broadcasts,
+ or other works or subject matter other than works listed in Section 1(f)
+ below, which, by reason of the selection and arrangement of their contents,
+ constitute intellectual creations, in which the Work is included in its
+ entirety in unmodified form along with one or more other contributions,
+ each constituting separate and independent works in themselves, which
+ together are assembled into a collective whole. A work that constitutes a
+ Collection will not be considered an Adaptation (as defined above) for the
+ purposes of this License.
+ .
+ 3. "Creative Commons Compatible License" means a license that is listed at
+ http://creativecommons.org/compatiblelicenses that has been approved by
+ Creative Commons as being essentially equivalent to this License, including,
+ at a minimum, because that license: (i) contains terms that have the same
+ purpose, meaning and effect as the License Elements of this License; and,
+ (ii) explicitly permits the relicensing of adaptations of works made
+ available under that license under this License or a Creative Commons
+ jurisdiction license with the same License Elements as this License.
+ .
+ 4. "Distribute" means to make available to the public the original and
+ copies of the Work or Adaptation, as appropriate, through sale or other
+ transfer of ownership.
+ .
+ 5. "License Elements" means the following high-level license attributes
+ as selected by Licensor and indicated in the title of this License:
+ Attribution, ShareAlike.
+ .
+ 6. "Licensor" means the individual, individuals, entity or entities that
+ offer(s) the Work under the terms of this License.
+ .
+ 7. "Original Author" means, in the case of a literary or artistic work,
+ the individual, individuals, entity or entities who created the Work or
+ if no individual or entity can be identified, the publisher; and in
+ addition (i) in the case of a performance the actors, singers, musicians,
+ dancers, and other persons who act, sing, deliver, declaim, play in,
+ interpret or otherwise perform literary or artistic works or expressions
+ of folklore; (ii) in the case of a phonogram the producer being the person
+ or legal entity who first fixes the sounds of a performance or other
+ sounds; and, (iii) in the case of broadcasts, the organization that
+ transmits the broadcast.
+ .
+ 8. "Work" means the literary and/or artistic work offered under the
+ terms of this License including without limitation any production in
+ the literary, scientific and artistic domain, whatever may be the mode
+ or form of its expression including digital form, such as a book,
+ pamphlet and other writing; a lecture, address, sermon or other
+ work of the same nature; a dramatic or dramatico-musical work; a
+ choreographic work or entertainment in dumb show; a musical composition
+ with or without words; a cinematographic work to which are assimilated
+ works expressed by a process analogous to cinematography; a work of
+ drawing, painting, architecture, sculpture, engraving or lithography; a
+ photographic work to which are assimilated works expressed by a
+ process analogous to photography; a work of applied art; an illustration,
+ map, plan, sketch or three-dimensional work relative to geography,
+ topography, architecture or science; a performance; a broadcast; a
+ phonogram; a compilation of data to the extent it is protected as a
+ copyrightable work; or a work performed by a variety or circus performer
+ to the extent it is not otherwise considered a literary or artistic work.
+ .
+ 9. "You" means an individual or entity exercising rights under this
+ License who has not previously violated the terms of this License with
+ respect to the Work, or who has received express permission from the
+ Licensor to exercise rights under this License despite a previous
+ violation.
+ .
+ 10. "Publicly Perform" means to perform public recitations of the Work
+ and to communicate to the public those public recitations, by any means
+ or process, including by wire or wireless means or public digital
+ performances; to make available to the public Works in such a way that
+ members of the public may access these Works from a place and at a place
+ individually chosen by them; to perform the Work to the public by any
+ means or process and the communication to the public of the performances
+ of the Work, including by public digital performance; to broadcast and
+ rebroadcast the Work by any means including signs, sounds or images.
+ .
+ 11. "Reproduce" means to make copies of the Work by any means including
+ without limitation by sound or visual recordings and the right of
+ fixation and reproducing fixations of the Work, including storage of
+ a protected performance or phonogram in digital form or other electronic
+ medium.
+ .
+ 2. Fair Dealing Rights. Nothing in this License is intended to reduce,
+ limit, or restrict any uses free from copyright or rights arising from
+ limitations or exceptions that are provided for in connection with the
+ copyright protection under copyright law or other applicable laws.
+ .
+ 3. License Grant. Subject to the terms and conditions of this License,
+ Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
+ perpetual (for the duration of the applicable copyright) license to
+ exercise the rights in the Work as stated below:
+ .
+ 1. to Reproduce the Work, to incorporate the Work into one or more
+ Collections, and to Reproduce the Work as incorporated in the Collections;
+ 2. to create and Reproduce Adaptations provided that any such Adaptation,
+ including any translation in any medium, takes reasonable steps to
+ clearly label, demarcate or otherwise identify that changes were made to
+ the original Work. For example, a translation could be marked "The
+ original work was translated from English to Spanish," or a modification
+ could indicate "The original work has been modified.";
+ 3. to Distribute and Publicly Perform the Work including as incorporated
+ in Collections; and,
+ 4. to Distribute and Publicly Perform Adaptations.
+ 5. For the avoidance of doubt:
+ 1. Non-waivable Compulsory License Schemes. In those jurisdictions
+ in which the right to collect royalties through any statutory or
+ compulsory licensing scheme cannot be waived, the Licensor reserves
+ the exclusive right to collect such royalties for any exercise by You
+ of the rights granted under this License;
+ 2. Waivable Compulsory License Schemes. In those jurisdictions in
+ which the right to collect royalties through any statutory or compulsory
+ licensing scheme can be waived, the Licensor waives the exclusive right
+ to collect such royalties for any exercise by You of the rights granted
+ under this License; and,
+ 3. Voluntary License Schemes. The Licensor waives the right to
+ collect royalties, whether individually or, in the event that the Licensor
+ is a member of a collecting society that administers voluntary licensing
+ schemes, via that society, from any exercise by You of the rights granted
+ under this License.
+ .
+ The above rights may be exercised in all media and formats whether now
+ known or hereafter devised. The above rights include the right to make
+ such modifications as are technically necessary to exercise the rights
+ in other media and formats. Subject to Section 8(f), all rights not
+ expressly granted by Licensor are hereby reserved.
+ .
+ 4. Restrictions. The license granted in Section 3 above is expressly
+ made subject to and limited by the following restrictions:
+ .
+ 1. You may Distribute or Publicly Perform the Work only under the terms
+ of this License. You must include a copy of, or the Uniform Resource
+ Identifier (URI) for, this License with every copy of the Work You
+ Distribute or Publicly Perform. You may not offer or impose any terms on
+ the Work that restrict the terms of this License or the ability of the
+ recipient of the Work to exercise the rights granted to that recipient
+ under the terms of the License. You may not sublicense the Work. You must
+ keep intact all notices that refer to this License and to the disclaimer of
+ warranties with every copy of the Work You Distribute or Publicly Perform.
+ When You Distribute or Publicly Perform the Work, You may not impose any
+ effective technological measures on the Work that restrict the ability of a
+ recipient of the Work from You to exercise the rights granted to that
+ recipient under the terms of the License. This Section 4(a) applies to the
+ Work as incorporated in a Collection, but this does not require the
+ Collection apart from the Work itself to be made subject to the terms of
+ this License. If You create a Collection, upon notice from any Licensor You
+ must, to the extent practicable, remove from the Collection any credit as
+ required by Section 4(c), as requested. If You create an Adaptation, upon
+ notice from any Licensor You must, to the extent practicable, remove from
+ the Adaptation any credit as required by Section 4(c), as requested.
+ .
+ 2. You may Distribute or Publicly Perform an Adaptation only under the
+ terms of: (i) this License; (ii) a later version of this License with the
+ same License Elements as this License; (iii) a Creative Commons
+ jurisdiction license (either this or a later license version) that contains
+ the same License Elements as this License (e.g., Attribution-ShareAlike
+ 3.0 US)); (iv) a Creative Commons Compatible License. If you license the
+ Adaptation under one of the licenses mentioned in (iv), you must comply
+ with the terms of that license. If you license the Adaptation under the
+ terms of any of the licenses mentioned in (i), (ii) or (iii) (the
+ "Applicable License"), you must comply with the terms of the Applicable
+ License generally and the following provisions: (I) You must include a
+ copy of, or the URI for, the Applicable License with every copy of each
+ Adaptation You Distribute or Publicly Perform; (II) You may not offer or
+ impose any terms on the Adaptation that restrict the terms of the
+ Applicable License or the ability of the recipient of the Adaptation to
+ exercise the rights granted to that recipient under the terms of the
+ Applicable License; (III) You must keep intact all notices that refer to
+ the Applicable License and to the disclaimer of warranties with every copy
+ of the Work as included in the Adaptation You Distribute or Publicly
+ Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You
+ may not impose any effective technological measures on the Adaptation that
+ restrict the ability of a recipient of the Adaptation from You to exercise
+ the rights granted to that recipient under the terms of the Applicable
+ License. This Section 4(b) applies to the Adaptation as incorporated in a
+ Collection, but this does not require the Collection apart from the
+ Adaptation itself to be made subject to the terms of the Applicable
+ License.
+ .
+ 3. If You Distribute, or Publicly Perform the Work or any Adaptations or
+ Collections, You must, unless a request has been made pursuant to Section
+ 4(a), keep intact all copyright notices for the Work and provide,
+ reasonable to the medium or means You are utilizing: (i) the name of the
+ Original Author (or pseudonym, if applicable) if supplied, and/or if the
+ Original Author and/or Licensor designate another party or parties (e.g.,
+ a sponsor institute, publishing entity, journal) for attribution
+ ("Attribution Parties") in Licensor's copyright notice, terms of service
+ or by other reasonable means, the name of such party or parties; (ii) the
+ title of the Work if supplied; (iii) to the extent reasonably practicable,
+ the URI, if any, that Licensor specifies to be associated with the Work,
+ unless such URI does not refer to the copyright notice or licensing
+ information for the Work; and (iv) , consistent with Ssection 3(b), in the
+ case of an Adaptation, a credit identifying the use of the Work in the
+ Adaptation (e.g., "French translation of the Work by Original Author," or
+ "Screenplay based on original Work by Original Author"). The credit
+ required by this Section 4(c) may be implemented in any reasonable manner;
+ provided, however, that in the case of a Adaptation or Collection, at a
+ minimum such credit will appear, if a credit for all contributing authors
+ of the Adaptation or Collection appears, then as part of these credits and
+ in a manner at least as prominent as the credits for the other contributing
+ authors. For the avoidance of doubt, You may only use the credit required by
+ this Section for the purpose of attribution in the manner set out above and,
+ by exercising Your rights under this License, You may not implicitly or
+ explicitly assert or imply any connection with, sponsorship or endorsement
+ by the Original Author, Licensor and/or Attribution Parties, as
+ appropriate, of You or Your use of the Work, without the separate, express
+ prior written permission of the Original Author, Licensor and/or
+ Attribution Parties.
+ .
+ 4. Except as otherwise agreed in writing by the Licensor or as may be
+ otherwise permitted by applicable law, if You Reproduce, Distribute or
+ Publicly Perform the Work either by itself or as part of any Adaptations
+ or Collections, You must not distort, mutilate, modify or take other
+ derogatory action in relation to the Work which would be prejudicial to
+ the Original Author's honor or reputation. Licensor agrees that in those
+ jurisdictions (e.g. Japan), in which any exercise of the right granted in
+ Section 3(b) of this License (the right to make Adaptations) would be
+ deemed to be a distortion, mutilation, modification or other derogatory
+ action prejudicial to the Original Author's honor and reputation, the
+ Licensor will waive or not assert, as appropriate, this Section, to the
+ fullest extent permitted by the applicable national law, to enable You to
+ reasonably exercise Your right under Section 3(b) of this License (right
+ to make Adaptations) but not otherwise.
+ .
+ 5. Representations, Warranties and Disclaimer
+ .
+ UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
+ OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
+ KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
+ INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
+ FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
+ LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
+ WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+ .
+ 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
+ LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
+ ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
+ ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
+ BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ .
+ 7. Termination
+ .
+ 1. This License and the rights granted hereunder will terminate
+ automatically upon any breach by You of the terms of this License.
+ Individuals or entities who have received Adaptations or Collections
+ from You under this License, however, will not have their licenses
+ terminated provided such individuals or entities remain in full
+ compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
+ survive any termination of this License.
+ 2. Subject to the above terms and conditions, the license granted
+ here is perpetual (for the duration of the applicable copyright in
+ the Work). Notwithstanding the above, Licensor reserves the right to
+ release the Work under different license terms or to stop distributing
+ the Work at any time; provided, however that any such election will
+ not serve to withdraw this License (or any other license that has been,
+ or is required to be, granted under the terms of this License), and this
+ License will continue in full force and effect unless terminated as stated
+ above.
+ .
+ 8. Miscellaneous
+ .
+ 1. Each time You Distribute or Publicly Perform the Work or a Collection,
+ the Licensor offers to the recipient a license to the Work on the same
+ terms and conditions as the license granted to You under this License.
+ 2. Each time You Distribute or Publicly Perform an Adaptation, Licensor
+ offers to the recipient a license to the original Work on the same terms
+ and conditions as the license granted to You under this License.
+ 3. If any provision of this License is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability of
+ the remainder of the terms of this License, and without further action
+ by the parties to this agreement, such provision shall be reformed to
+ the minimum extent necessary to make such provision valid and enforceable.
+ 4. No term or provision of this License shall be deemed waived and no
+ breach consented to unless such waiver or consent shall be in writing
+ and signed by the party to be charged with such waiver or consent.
+ 5. This License constitutes the entire agreement between the parties
+ with respect to the Work licensed here. There are no understandings,
+ agreements or representations with respect to the Work not specified
+ here. Licensor shall not be bound by any additional provisions that
+ may appear in any communication from You. This License may not be
+ modified without the mutual written agreement of the Licensor and You.
+ 6. The rights granted under, and the subject matter referenced, in this
+ License were drafted utilizing the terminology of the Berne Convention
+ for the Protection of Literary and Artistic Works (as amended on
+ September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
+ Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
+ and the Universal Copyright Convention (as revised on July 24, 1971).
+ These rights and subject matter take effect in the relevant jurisdiction
+ in which the License terms are sought to be enforced according to the
+ corresponding provisions of the implementation of those treaty
+ provisions in the applicable national law. If the standard suite of
+ rights granted under applicable copyright law includes additional rights
+ not granted under this License, such additional rights are deemed to be
+ included in the License; this License is not intended to restrict the
+ license of any rights under applicable law.
+ .
+ Creative Commons Notice
+ .
+ Creative Commons is not a party to this License, and makes no warranty
+ whatsoever in connection with the Work. Creative Commons will not be
+ liable to You or any party on any legal theory for any damages whatsoever,
+ vincluding without limitation any general, special, incidental or
+ consequential damages arising in connection to this license.
+ Notwithstanding the foregoing two (2) sentences, if Creative Commons has
+ expressly identified itself as the Licensor hereunder, it shall have all
+ rights and obligations of Licensor.
+ .
+ Except for the limited purpose of indicating to the public that the
+ Work is licensed under the CCPL, Creative Commons does not authorize
+ the use by either party of the trademark "Creative Commons" or any
+ related trademark or logo of Creative Commons without the prior written
+ consent of Creative Commons. Any permitted use will be in compliance
+ with Creative Commons' then-current trademark usage guidelines, as may
+ be published on its website or otherwise made available upon request
+ from time to time. For the avoidance of doubt, this trademark restriction
+ does not form part of this License.
+ .
+ Creative Commons may be contacted at http://creativecommons.org/.
diff --git a/debian/manpages b/debian/manpages
new file mode 100644
index 0000000..97689e8
--- /dev/null
+++ b/debian/manpages
@@ -0,0 +1 @@
+debian/shotwell.1
diff --git a/debian/menu b/debian/menu
new file mode 100644
index 0000000..a9e689e
--- /dev/null
+++ b/debian/menu
@@ -0,0 +1,2 @@
+?package(shotwell):needs="X11" section="Applications/Viewers"\
+ title="Shotwell" command="/usr/bin/shotwell"
diff --git a/debian/patches/0001-buildflags.patch b/debian/patches/0001-buildflags.patch
new file mode 100644
index 0000000..dbce802
--- /dev/null
+++ b/debian/patches/0001-buildflags.patch
@@ -0,0 +1,20 @@
+Description: Poke requested Debian buildflags for hardening into Makefile
+Author: Jörg Frings-Fürst <debian@jff-webhosting.net>
+Last-Update: 2015-01-07
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/Makefile
+===================================================================
+--- trunk.orig/Makefile
++++ trunk/Makefile
+@@ -402,8 +402,8 @@ PLUGIN_CFLAGS = -O2 -g -pipe
+ endif
+ endif
+
+-CFLAGS += $(PROFILE_FLAGS) $(REQUIRED_CFLAGS)
+-PLUGIN_CFLAGS += $(PROFILE_FLAGS) $(REQUIRED_CFLAGS)
++CFLAGS += $(PROFILE_FLAGS) $(REQUIRED_CFLAGS) -fstack-protector-strong
++PLUGIN_CFLAGS += $(PROFILE_FLAGS) $(REQUIRED_CFLAGS) -fPIC -fno-stack-protector
+
+ # Required for gudev-1.0
+ CFLAGS += -DG_UDEV_API_IS_SUBJECT_TO_CHANGE
diff --git a/debian/patches/0005-hardening.patch b/debian/patches/0005-hardening.patch
new file mode 100644
index 0000000..a579867
--- /dev/null
+++ b/debian/patches/0005-hardening.patch
@@ -0,0 +1,38 @@
+Description: pass compiler flags set in debian/rules to compiler
+Author: Devid Antonio Filoni <d.filoni@ubuntu.com>
+
+Index: trunk/Makefile
+===================================================================
+--- trunk.orig/Makefile
++++ trunk/Makefile
+@@ -35,7 +35,7 @@ CORE_SUPPORTED_LANGUAGES=$(shell cat po/
+ LOCAL_LANG_DIR=locale-langpack
+ SYSTEM_LANG_DIR := $(DESTDIR)$(PREFIX)/share/locale
+
+-VALAFLAGS := -g --enable-checking --target-glib=2.32 --thread --fatal-warnings --enable-experimental --enable-deprecated $(USER_VALAFLAGS)
++VALAFLAGS := $(foreach w,$(CPPFLAGS) $(CFLAGS) $(LDFLAGS),-X $(w)) --enable-checking --target-glib=2.32 --thread --enable-experimental --enable-deprecated $(USER_VALAFLAGS)
+ ifdef UNITY_SUPPORT
+ VALAFLAGS := $(VALAFLAGS) --define UNITY_SUPPORT
+ endif
+@@ -676,7 +676,7 @@ $(EXPANDED_C_FILES): $(VALA_STAMP)
+ @
+
+ $(EXPANDED_OBJ_FILES): %.o: %.c $(CONFIG_IN) Makefile
+- $(CC) -c $(VALA_CFLAGS) $(CFLAGS) -o $@ $<
++ $(CC) -c $(VALA_CFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ $<
+
+ $(PROGRAM): $(EXPANDED_OBJ_FILES) $(RESOURCES) $(LANG_STAMP) $(THUMBNAILER_BIN) misc/gschemas.compiled $(DOC_LANG_STAMP)
+ $(CC) $(EXPANDED_OBJ_FILES) $(CFLAGS) $(LDFLAGS) $(RESOURCES) $(VALA_LDFLAGS) $(EXPORT_FLAGS) -o $@
+Index: trunk/plugins/Makefile.plugin.mk
+===================================================================
+--- trunk.orig/plugins/Makefile.plugin.mk
++++ trunk/plugins/Makefile.plugin.mk
+@@ -42,7 +42,7 @@ DEFINES := -D_VERSION='"$(PLUGINS_VERSIO
+ all: $(PLUGIN).so
+
+ .stamp: $(SRC_FILES) $(MAKE_FILES) $(HEADER_FILES)
+- $(VALAC) --target-glib=$(MIN_GLIB_VERSION) -g --enable-checking --fatal-warnings --ccode --enable-deprecated \
++ $(VALAC) --target-glib=$(MIN_GLIB_VERSION) -g --enable-checking --ccode --enable-deprecated \
+ --vapidir=../ $(foreach pkg,$(PKGS),--pkg=$(pkg)) $(foreach pkg,$(CUSTOM_VAPI_PKGS),--pkg=$(pkg)) \
+ $(USER_VALAFLAGS) \
+ --vapidir=../../vapi \
diff --git a/debian/patches/0010-libexec.patch b/debian/patches/0010-libexec.patch
new file mode 100644
index 0000000..0e06218
--- /dev/null
+++ b/debian/patches/0010-libexec.patch
@@ -0,0 +1,16 @@
+Description: do not install files in libexec directory
+Author: Luca Falavigna <dktrkranz@debian.org>
+
+Index: shotwell-0.15.0/Makefile
+===================================================================
+--- shotwell-0.15.0.orig/Makefile 2013-10-13 09:51:58.893357001 +0200
++++ shotwell-0.15.0/Makefile 2013-10-13 09:54:33.885361749 +0200
+@@ -27,7 +27,7 @@
+
+ -include configure.mk
+ ifndef LIBEXECDIR
+-LIBEXECDIR=$(PREFIX)/libexec/shotwell
++LIBEXECDIR=$(PREFIX)/share/shotwell
+ endif
+
+ CORE_SUPPORTED_LANGUAGES=$(shell cat po/LINGUAS)
diff --git a/debian/patches/0100-ios8.patch b/debian/patches/0100-ios8.patch
new file mode 100644
index 0000000..f438dde
--- /dev/null
+++ b/debian/patches/0100-ios8.patch
@@ -0,0 +1,103 @@
+Description: Reset iOS 8 devices to download files
+Origin: https://bugzilla.gnome.org/show_bug.cgi?id=742295#c22
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=742295
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792016
+Last-Update: 2016-02-22
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/src/camera/ImportPage.vala
+===================================================================
+--- trunk.orig/src/camera/ImportPage.vala
++++ trunk/src/camera/ImportPage.vala
+@@ -765,6 +765,15 @@ public class ImportPage : CheckerboardPa
+ ~ImportPage() {
+ LibraryPhoto.global.contents_altered.disconnect(on_media_added_removed);
+ Video.global.contents_altered.disconnect(on_media_added_removed);
++
++ // iOS 8 issue. Release the camera here
++ if (camera != null) {
++ GPhoto.Result res = camera.exit(spin_idle_context.context);
++ if (res != GPhoto.Result.OK) {
++ // log but don't fail
++ warning("ImportPage destructor: Unable to unlock camera: %s", res.to_full_string());
++ }
++ }
+ }
+
+ public override Gtk.Toolbar get_toolbar() {
+@@ -1152,11 +1161,14 @@ public class ImportPage : CheckerboardPa
+ update_status(busy, false);
+
+ refresh_error = null;
+- refresh_result = camera.init(spin_idle_context.context);
+- if (refresh_result != GPhoto.Result.OK) {
+- warning("Unable to initialize camera: %s", refresh_result.to_full_string());
+-
+- return (refresh_result == GPhoto.Result.IO_LOCK) ? RefreshResult.LOCKED : RefreshResult.LIBRARY_ERROR;
++ // iOS 8 issue
++ if (camera == null) {
++ refresh_result = camera.init(spin_idle_context.context);
++ if (refresh_result != GPhoto.Result.OK) {
++ warning("Unable to initialize camera: %s", refresh_result.to_full_string());
++
++ return (refresh_result == GPhoto.Result.IO_LOCK) ? RefreshResult.LOCKED : RefreshResult.LIBRARY_ERROR;
++ }
+ }
+
+ update_status(true, refreshed);
+@@ -1261,13 +1273,15 @@ public class ImportPage : CheckerboardPa
+ progress_bar.set_ellipsize(Pango.EllipsizeMode.NONE);
+ progress_bar.set_text("");
+ progress_bar.set_fraction(0.0);
+-
++
++#if 0
+ GPhoto.Result res = camera.exit(spin_idle_context.context);
+ if (res != GPhoto.Result.OK) {
+ // log but don't fail
+ warning("Unable to unlock camera: %s", res.to_full_string());
+ }
+-
++#endif
++
+ if (refresh_result == GPhoto.Result.OK) {
+ update_status(false, true);
+ } else {
+@@ -1633,11 +1647,15 @@ public class ImportPage : CheckerboardPa
+ }
+
+ private void import(Gee.Iterable<DataObject> items) {
+- GPhoto.Result res = camera.init(spin_idle_context.context);
+- if (res != GPhoto.Result.OK) {
+- AppWindow.error_message(_("Unable to lock camera: %s").printf(res.to_full_string()));
+-
+- return;
++ // We now keep the camera open as long as we can to
++ // work around the iOS 8 directory name shuffling issue.
++ if (camera == null) {
++ GPhoto.Result res = camera.init(spin_idle_context.context);
++ if (res != GPhoto.Result.OK) {
++ AppWindow.error_message(_("Unable to lock camera: %s").printf(res.to_full_string()));
++
++ return;
++ }
+ }
+
+ update_status(true, refreshed);
+@@ -1773,12 +1791,15 @@ public class ImportPage : CheckerboardPa
+ }
+
+ private void close_import() {
++// iOS 8 issue
++#if 0
+ GPhoto.Result res = camera.exit(spin_idle_context.context);
+ if (res != GPhoto.Result.OK) {
+ // log but don't fail
+ message("Unable to unlock camera: %s", res.to_full_string());
+ }
+-
++#endif
++
+ update_status(false, refreshed);
+
+ on_view_changed();
diff --git a/debian/patches/0500-Port-to-webkit2gtk-40.patch b/debian/patches/0500-Port-to-webkit2gtk-40.patch
new file mode 100644
index 0000000..51cd8de
--- /dev/null
+++ b/debian/patches/0500-Port-to-webkit2gtk-40.patch
@@ -0,0 +1,1026 @@
+From afc5e103d2dd414f0d028565097d86c7e85fadbc Mon Sep 17 00:00:00 2001
+From: Iain Lane <iain@orangesquash.org.uk>
+Date: Tue, 30 Jun 2015 10:43:15 +0100
+Subject: [PATCH] Port to webkit2gtk-4.0
+
+https://bugzilla.gnome.org/show_bug.cgi?id=751709
+---
+ Makefile | 8 +-
+ debian/control | 2 +-
+ plugins/common/RESTSupport.vala | 24 +-
+ plugins/shotwell-publishing-extras/Makefile | 2 +-
+ .../YandexPublishing.vala | 67 ++-
+ .../shotwell-publishing/FacebookPublishing.vala | 36 +-
+ plugins/shotwell-publishing/Makefile | 2 +-
+ vapi/webkitgtk-3.0.deps | 8 -
+ vapi/webkitgtk-3.0.vapi | 653 ---------------------
+ 9 files changed, 97 insertions(+), 705 deletions(-)
+ delete mode 100644 vapi/webkitgtk-3.0.deps
+ delete mode 100644 vapi/webkitgtk-3.0.vapi
+
+diff --git a/Makefile b/Makefile
+index fe354a7..1ce5668 100644
+--- a/Makefile
++++ b/Makefile
+@@ -14,7 +14,7 @@ VALAC := $(shell which $(VALAC))
+ endif
+
+ VALAC_VERSION := `$(VALAC) --version | awk '{print $$2}'`
+-MIN_VALAC_VERSION := 0.20.1
++MIN_VALAC_VERSION := 0.28.0
+ INSTALL_PROGRAM := install
+ INSTALL_DATA := install -m 644
+
+@@ -120,12 +120,10 @@ VAPI_FILES = \
+ LConv.vapi \
+ libexif.vapi \
+ libraw.vapi \
+- webkitgtk-3.0.vapi \
+ unique-3.0.vapi \
+ unity.vapi
+
+ DEPS_FILES = \
+- webkitgtk-3.0.deps \
+ unique-3.0.deps \
+ unity.deps
+
+@@ -271,7 +269,7 @@ EXT_PKGS = \
+ libsoup-2.4 \
+ libxml-2.0 \
+ sqlite3 \
+- webkitgtk-3.0
++ webkit2gtk-4.0
+ ifdef UNITY_SUPPORT
+ EXT_PKGS += unity
+ endif
+@@ -303,7 +301,7 @@ EXT_PKG_VERSIONS = \
+ libxml-2.0 >= 2.6.32 \
+ rest-0.7 >= 0.7 \
+ sqlite3 >= 3.5.9 \
+- webkitgtk-3.0 >= 1.4.0 \
++ webkit2gtk-4.0 \
+ gnome-doc-utils
+
+ DIRECT_LIBS_VERSIONS =
+diff --git a/plugins/common/RESTSupport.vala b/plugins/common/RESTSupport.vala
+index fdde409..a4a0621 100644
+--- a/plugins/common/RESTSupport.vala
++++ b/plugins/common/RESTSupport.vala
+@@ -741,10 +741,9 @@ public abstract class GooglePublisher : Object, Spit.Publishing.Publisher {
+
+ webview = new WebKit.WebView();
+ webview.get_settings().enable_plugins = false;
+- webview.get_settings().enable_default_context_menu = false;
+
+- webview.load_finished.connect(on_page_load);
+- webview.load_started.connect(on_load_started);
++ webview.load_changed.connect(on_page_load_changed);
++ webview.context_menu.connect(() => { return false; });
+
+ webview_frame.add(webview);
+ pane_widget.pack_start(webview_frame, true, true, 0);
+@@ -754,7 +753,7 @@ public abstract class GooglePublisher : Object, Spit.Publishing.Publisher {
+ return cache_dirty;
+ }
+
+- private void on_page_load(WebKit.WebFrame origin_frame) {
++ private void on_page_load() {
+ pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
+
+ string page_title = webview.get_title();
+@@ -772,9 +771,22 @@ public abstract class GooglePublisher : Object, Spit.Publishing.Publisher {
+ }
+ }
+
+- private void on_load_started(WebKit.WebFrame frame) {
++ private void on_load_started() {
+ pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.WATCH));
+ }
++
++ private void on_page_load_changed (WebKit.LoadEvent load_event) {
++ switch (load_event) {
++ case WebKit.LoadEvent.STARTED:
++ on_load_started();
++ break;
++ case WebKit.LoadEvent.FINISHED:
++ on_page_load();
++ break;
++ }
++
++ return;
++ }
+
+ public Spit.Publishing.DialogPane.GeometryOptions get_preferred_geometry() {
+ return Spit.Publishing.DialogPane.GeometryOptions.NONE;
+@@ -785,7 +797,7 @@ public abstract class GooglePublisher : Object, Spit.Publishing.Publisher {
+ }
+
+ public void on_pane_installed() {
+- webview.open(auth_sequence_start_url);
++ webview.load_uri(auth_sequence_start_url);
+ }
+
+ public void on_pane_uninstalled() {
+diff --git a/plugins/shotwell-publishing-extras/Makefile b/plugins/shotwell-publishing-extras/Makefile
+index 9259fbb..91452cf 100644
+--- a/plugins/shotwell-publishing-extras/Makefile
++++ b/plugins/shotwell-publishing-extras/Makefile
+@@ -5,7 +5,7 @@ PLUGIN_PKGS := \
+ gtk+-3.0 \
+ libsoup-2.4 \
+ libxml-2.0 \
+- webkitgtk-3.0 \
++ webkit2gtk-4.0 \
+ gee-0.8 \
+ rest-0.7 \
+ json-glib-1.0
+diff --git a/plugins/shotwell-publishing-extras/YandexPublishing.vala b/plugins/shotwell-publishing-extras/YandexPublishing.vala
+index 36a3ede..ec99c2b 100644
+--- a/plugins/shotwell-publishing-extras/YandexPublishing.vala
++++ b/plugins/shotwell-publishing-extras/YandexPublishing.vala
+@@ -120,43 +120,70 @@ internal class WebAuthPane : Spit.Publishing.DialogPane, GLib.Object {
+
+ webview = new WebKit.WebView();
+ webview.get_settings().enable_plugins = false;
+- webview.get_settings().enable_default_context_menu = false;
+
+- webview.load_finished.connect(on_page_load);
+- webview.load_started.connect(on_load_started);
+- webview.navigation_requested.connect(navigation_requested);
++ webview.load_changed.connect(on_page_load_changed);
++ webview.decide_policy.connect(on_decide_policy);
++ webview.context_menu.connect(() => { return false; });
+
+ webview_frame.add(webview);
+ pane_widget.pack_start(webview_frame, true, true, 0);
+ }
+
+- private void on_page_load(WebKit.WebFrame origin_frame) {
++ private void on_page_load() {
+ pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
+ }
+
+- private WebKit.NavigationResponse navigation_requested (WebKit.WebFrame frame, WebKit.NetworkRequest req) {
+- debug("Navigating to '%s'", req.uri);
++ private bool on_decide_policy (WebKit.PolicyDecision decision,
++ WebKit.PolicyDecisionType type) {
++ switch (type) {
++ case WebKit.PolicyDecisionType.NAVIGATION_ACTION:
++ WebKit.NavigationPolicyDecision n_decision = (WebKit.NavigationPolicyDecision) decision;
++ WebKit.NavigationAction action = n_decision.navigation_action;
++ string uri = action.get_request().uri;
++ debug("Navigating to '%s'", uri);
+
+- MatchInfo info = null;
++ MatchInfo info = null;
+
+- if (re.match(req.uri, 0, out info)) {
+- string access_token = info.fetch_all()[2];
++ if (re.match(uri, 0, out info)) {
++ string access_token = info.fetch_all()[2];
+
+- debug("Load completed: %s", access_token);
+- pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
+- if (access_token != null) {
+- login_succeeded(access_token);
+- return WebKit.NavigationResponse.IGNORE;
+- } else
+- login_failed();
++ debug("Load completed: %s", access_token);
++ pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
++ if (access_token != null) {
++ login_succeeded(access_token);
++ decision.ignore();
++ break;
++ } else
++ login_failed();
++ }
++ decision.use();
++ break;
++ case WebKit.PolicyDecisionType.RESPONSE:
++ decision.use();
++ break;
++ default:
++ return false;
+ }
+- return WebKit.NavigationResponse.ACCEPT;
++ return true;
+ }
+
+- private void on_load_started(WebKit.WebFrame frame) {
++ private void on_load_started() {
+ pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.WATCH));
+ }
+
++ private void on_page_load_changed (WebKit.LoadEvent load_event) {
++ switch (load_event) {
++ case WebKit.LoadEvent.STARTED:
++ on_load_started();
++ break;
++ case WebKit.LoadEvent.FINISHED:
++ on_page_load();
++ break;
++ }
++
++ return;
++ }
++
+ public Gtk.Widget get_widget() {
+ return pane_widget;
+ }
+@@ -166,7 +193,7 @@ internal class WebAuthPane : Spit.Publishing.DialogPane, GLib.Object {
+ }
+
+ public void on_pane_installed() {
+- webview.open(login_url);
++ webview.load_uri(login_url);
+ }
+
+ public void on_pane_uninstalled() {
+diff --git a/plugins/shotwell-publishing/FacebookPublishing.vala b/plugins/shotwell-publishing/FacebookPublishing.vala
+index 1dd793d..4efe7f7 100644
+--- a/plugins/shotwell-publishing/FacebookPublishing.vala
++++ b/plugins/shotwell-publishing/FacebookPublishing.vala
+@@ -535,7 +535,7 @@ public class FacebookPublisher : Spit.Publishing.Publisher, GLib.Object {
+ return;
+
+ debug("EVENT: endpoint test transaction failed to detect a connection to the Facebook " +
+- "endpoint");
++ "endpoint" + error.message);
+
+ on_generic_error(error);
+ }
+@@ -829,15 +829,15 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
+
+ webview = new WebKit.WebView();
+ webview.get_settings().enable_plugins = false;
+- webview.get_settings().enable_default_context_menu = false;
++ webview.get_settings().enable_xss_auditor = false;
+
+- webview.load_finished.connect(on_page_load);
+- webview.load_started.connect(on_load_started);
++ webview.load_changed.connect(on_page_load_changed);
++ webview.context_menu.connect(() => { return true; });
+
+ webview_frame.add(webview);
+ pane_widget.pack_start(webview_frame, true, true, 0);
+ }
+-
++
+ private class LocaleLookup {
+ public string prefix;
+ public string translation;
+@@ -945,10 +945,11 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
+ return "https://%s.facebook.com/dialog/oauth?client_id=%s&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=publish_actions,user_photos,user_videos&response_type=token".printf(facebook_locale, APPLICATION_ID);
+ }
+
+- private void on_page_load(WebKit.WebFrame origin_frame) {
++ private void on_page_load() {
+ pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.LEFT_PTR));
+
+- string loaded_url = origin_frame.get_uri().dup();
++ string loaded_url = webview.uri.dup();
++ debug("loaded url: " + loaded_url);
+
+ // strip parameters from the loaded url
+ if (loaded_url.contains("?")) {
+@@ -960,7 +961,7 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
+ // were we redirected to the facebook login success page?
+ if (loaded_url.contains("login_success")) {
+ cache_dirty = true;
+- login_succeeded(origin_frame.get_uri());
++ login_succeeded(webview.uri);
+ return;
+ }
+
+@@ -971,10 +972,24 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
+ }
+ }
+
+- private void on_load_started(WebKit.WebFrame frame) {
++ private void on_load_started() {
+ pane_widget.get_window().set_cursor(new Gdk.Cursor(Gdk.CursorType.WATCH));
+ }
+
++ private void on_page_load_changed (WebKit.LoadEvent load_event) {
++ switch (load_event) {
++ case WebKit.LoadEvent.STARTED:
++ case WebKit.LoadEvent.REDIRECTED:
++ on_load_started();
++ break;
++ case WebKit.LoadEvent.FINISHED:
++ on_page_load();
++ break;
++ }
++
++ return;
++ }
++
+ public static bool is_cache_dirty() {
+ return cache_dirty;
+ }
+@@ -988,7 +1003,7 @@ internal class WebAuthenticationPane : Spit.Publishing.DialogPane, Object {
+ }
+
+ public void on_pane_installed() {
+- webview.open(get_login_url());
++ webview.load_uri(get_login_url());
+ }
+
+ public void on_pane_uninstalled() {
+@@ -1527,6 +1542,7 @@ internal class GraphSession {
+ "Service %s returned HTTP status code %u %s", real_message.get_uri(),
+ msg.status_code, msg.reason_phrase);
+ } else {
++ debug(msg.reason_phrase);
+ error = new Spit.Publishing.PublishingError.NO_ANSWER(
+ "Failure communicating with %s (error code %u)", real_message.get_uri(),
+ msg.status_code);
+diff --git a/plugins/shotwell-publishing/Makefile b/plugins/shotwell-publishing/Makefile
+index 639fa88..6b3945b 100644
+--- a/plugins/shotwell-publishing/Makefile
++++ b/plugins/shotwell-publishing/Makefile
+@@ -5,7 +5,7 @@ PLUGIN_PKGS := \
+ gtk+-3.0 \
+ libsoup-2.4 \
+ libxml-2.0 \
+- webkitgtk-3.0 \
++ webkit2gtk-4.0 \
+ gexiv2 \
+ rest-0.7 \
+ gee-0.8 \
+diff --git a/vapi/webkitgtk-3.0.deps b/vapi/webkitgtk-3.0.deps
+deleted file mode 100644
+index 91b1dfe..0000000
+--- a/vapi/webkitgtk-3.0.deps
++++ /dev/null
+@@ -1,8 +0,0 @@
+-atk
+-gio-2.0
+-cairo
+-pango
+-gdk-pixbuf-2.0
+-gdk-3.0
+-gtk+-3.0
+-libsoup-2.4
+diff --git a/vapi/webkitgtk-3.0.vapi b/vapi/webkitgtk-3.0.vapi
+deleted file mode 100644
+index 9e0d347..0000000
+--- a/vapi/webkitgtk-3.0.vapi
++++ /dev/null
+@@ -1,653 +0,0 @@
+-/* webkit-1.0.vapi generated by vapigen, do not modify. */
+-
+-[CCode (cprefix = "WebKit", lower_case_cprefix = "webkit_")]
+-namespace WebKit {
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class Download : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public Download (WebKit.NetworkRequest request);
+- public void cancel ();
+- public uint64 get_current_size ();
+- public unowned string get_destination_uri ();
+- public double get_elapsed_time ();
+- public unowned WebKit.NetworkRequest get_network_request ();
+- public unowned WebKit.NetworkResponse get_network_response ();
+- public double get_progress ();
+- public WebKit.DownloadStatus get_status ();
+- public unowned string get_suggested_filename ();
+- public uint64 get_total_size ();
+- public unowned string get_uri ();
+- public void set_destination_uri (string destination_uri);
+- public void start ();
+- public uint64 current_size { get; }
+- public string destination_uri { get; set; }
+- public WebKit.NetworkRequest network_request { get; construct; }
+- public WebKit.NetworkResponse network_response { get; construct; }
+- public double progress { get; }
+- public WebKit.DownloadStatus status { get; }
+- public string suggested_filename { get; }
+- public uint64 total_size { get; }
+- public virtual signal bool error (int p0, int p1, string p2);
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class GeolocationPolicyDecision : GLib.Object {
+- [CCode (has_construct_function = false)]
+- protected GeolocationPolicyDecision ();
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class HitTestResult : GLib.Object {
+- [CCode (has_construct_function = false)]
+- protected HitTestResult ();
+- [NoAccessorMethod]
+- public WebKit.HitTestResultContext context { get; construct; }
+- [NoAccessorMethod]
+- public string image_uri { owned get; construct; }
+- [NoAccessorMethod]
+- public string link_uri { owned get; construct; }
+- [NoAccessorMethod]
+- public string media_uri { owned get; construct; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class NetworkRequest : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public NetworkRequest (string uri);
+- public unowned Soup.Message get_message ();
+- public unowned string get_uri ();
+- public void set_uri (string uri);
+- public Soup.Message message { get; construct; }
+- public string uri { get; set; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class NetworkResponse : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public NetworkResponse (string uri);
+- public unowned Soup.Message get_message ();
+- public unowned string get_uri ();
+- public void set_uri (string uri);
+- public Soup.Message message { get; construct; }
+- public string uri { get; set; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class SecurityOrigin : GLib.Object {
+- [CCode (has_construct_function = false)]
+- protected SecurityOrigin ();
+- public unowned GLib.List<WebKit.WebDatabase> get_all_web_databases ();
+- public unowned string get_host ();
+- public uint get_port ();
+- public unowned string get_protocol ();
+- public uint64 get_web_database_quota ();
+- public uint64 get_web_database_usage ();
+- public void set_web_database_quota (uint64 quota);
+- public string host { get; }
+- public uint port { get; }
+- public string protocol { get; }
+- public uint64 web_database_quota { get; set; }
+- public uint64 web_database_usage { get; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class SoupAuthDialog : GLib.Object, Soup.SessionFeature {
+- [CCode (has_construct_function = false)]
+- protected SoupAuthDialog ();
+- public virtual signal unowned Gtk.Widget current_toplevel (Soup.Message message);
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebBackForwardList : GLib.Object {
+- [CCode (has_construct_function = false)]
+- protected WebBackForwardList ();
+- public void add_item (WebKit.WebHistoryItem history_item);
+- public void clear ();
+- public bool contains_item (WebKit.WebHistoryItem history_item);
+- public unowned WebKit.WebHistoryItem get_back_item ();
+- public int get_back_length ();
+- public unowned GLib.List<WebKit.WebHistoryItem> get_back_list_with_limit (int limit);
+- public unowned WebKit.WebHistoryItem get_current_item ();
+- public unowned WebKit.WebHistoryItem get_forward_item ();
+- public int get_forward_length ();
+- public unowned GLib.List<WebKit.WebHistoryItem> get_forward_list_with_limit (int limit);
+- public int get_limit ();
+- public unowned WebKit.WebHistoryItem get_nth_item (int index);
+- public void go_back ();
+- public void go_forward ();
+- public void go_to_item (WebKit.WebHistoryItem history_item);
+- public void set_limit (int limit);
+- [CCode (has_construct_function = false)]
+- public WebBackForwardList.with_web_view (WebKit.WebView web_view);
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebDataSource : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public WebDataSource ();
+- public unowned GLib.StringBuilder get_data ();
+- public unowned string get_encoding ();
+- public unowned WebKit.NetworkRequest get_initial_request ();
+- public unowned WebKit.WebResource get_main_resource ();
+- public unowned WebKit.NetworkRequest get_request ();
+- public unowned GLib.List<WebKit.WebResource> get_subresources ();
+- public unowned string get_unreachable_uri ();
+- public unowned WebKit.WebFrame get_web_frame ();
+- public bool is_loading ();
+- [CCode (has_construct_function = false)]
+- public WebDataSource.with_request (WebKit.NetworkRequest request);
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebDatabase : GLib.Object {
+- [CCode (has_construct_function = false)]
+- protected WebDatabase ();
+- public unowned string get_display_name ();
+- public uint64 get_expected_size ();
+- public unowned string get_filename ();
+- public unowned string get_name ();
+- public unowned WebKit.SecurityOrigin get_security_origin ();
+- public uint64 get_size ();
+- public void remove ();
+- public string display_name { get; }
+- public uint64 expected_size { get; }
+- public string filename { get; }
+- public string name { get; construct; }
+- public WebKit.SecurityOrigin security_origin { get; construct; }
+- public uint64 size { get; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebFrame : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public WebFrame (WebKit.WebView web_view);
+- public unowned WebKit.WebFrame find_frame (string name);
+- public unowned WebKit.WebDataSource get_data_source ();
+- public Gtk.PolicyType get_horizontal_scrollbar_policy ();
+- public WebKit.LoadStatus get_load_status ();
+- public unowned string get_name ();
+- public unowned WebKit.NetworkResponse get_network_response ();
+- public unowned WebKit.WebFrame get_parent ();
+- public unowned WebKit.WebDataSource get_provisional_data_source ();
+- public unowned WebKit.SecurityOrigin get_security_origin ();
+- public unowned string get_title ();
+- public unowned string get_uri ();
+- public Gtk.PolicyType get_vertical_scrollbar_policy ();
+- public unowned WebKit.WebView get_web_view ();
+- public void load_alternate_string (string content, string base_url, string unreachable_url);
+- public void load_request (WebKit.NetworkRequest request);
+- public void load_string (string content, string mime_type, string encoding, string base_uri);
+- public void load_uri (string uri);
+- public void print ();
+- public Gtk.PrintOperationResult print_full (Gtk.PrintOperation operation, Gtk.PrintOperationAction action) throws GLib.Error;
+- public void reload ();
+- public void stop_loading ();
+- public Gtk.PolicyType horizontal_scrollbar_policy { get; }
+- public WebKit.LoadStatus load_status { get; }
+- public string name { get; }
+- public string title { get; }
+- public string uri { get; }
+- public Gtk.PolicyType vertical_scrollbar_policy { get; }
+- public virtual signal void cleared ();
+- public virtual signal void hovering_over_link (string p0, string p1);
+- public virtual signal void load_committed ();
+- public virtual signal void load_done (bool p0);
+- public virtual signal bool scrollbars_policy_changed ();
+- public virtual signal void title_changed (string p0);
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebHistoryItem : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public WebHistoryItem ();
+- public unowned WebKit.WebHistoryItem copy ();
+- public unowned string get_alternate_title ();
+- public double get_last_visited_time ();
+- public unowned string get_original_uri ();
+- public unowned string get_title ();
+- public unowned string get_uri ();
+- public void set_alternate_title (string title);
+- [CCode (has_construct_function = false)]
+- public WebHistoryItem.with_data (string uri, string title);
+- public string alternate_title { get; set; }
+- public double last_visited_time { get; }
+- public string original_uri { get; }
+- public string title { get; }
+- public string uri { get; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebInspector : GLib.Object {
+- [CCode (has_construct_function = false)]
+- protected WebInspector ();
+- public void close ();
+- public unowned string get_inspected_uri ();
+- public unowned WebKit.WebView get_web_view ();
+- public void inspect_coordinates (double x, double y);
+- public void show ();
+- public string inspected_uri { get; }
+- [NoAccessorMethod]
+- public bool javascript_profiling_enabled { get; set; }
+- [NoAccessorMethod]
+- public bool timeline_profiling_enabled { get; set; }
+- public WebKit.WebView web_view { get; }
+- public virtual signal bool attach_window ();
+- public virtual signal bool close_window ();
+- public virtual signal bool detach_window ();
+- public virtual signal void finished ();
+- public virtual signal unowned WebKit.WebView inspect_web_view (WebKit.WebView p0);
+- public virtual signal bool show_window ();
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebNavigationAction : GLib.Object {
+- [CCode (has_construct_function = false)]
+- protected WebNavigationAction ();
+- public int get_button ();
+- public int get_modifier_state ();
+- public unowned string get_original_uri ();
+- public WebKit.WebNavigationReason get_reason ();
+- public unowned string get_target_frame ();
+- public void set_original_uri (string originalUri);
+- public void set_reason (WebKit.WebNavigationReason reason);
+- public int button { get; construct; }
+- public int modifier_state { get; construct; }
+- public string original_uri { get; set construct; }
+- public WebKit.WebNavigationReason reason { get; set construct; }
+- public string target_frame { get; construct; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebPolicyDecision : GLib.Object {
+- [CCode (has_construct_function = false)]
+- protected WebPolicyDecision ();
+- public void download ();
+- public void ignore ();
+- public void use ();
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebResource : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public WebResource (string data, ssize_t size, string uri, string mime_type, string encoding, string frame_name);
+- public unowned GLib.StringBuilder get_data ();
+- public unowned string get_encoding ();
+- public unowned string get_frame_name ();
+- public unowned string get_mime_type ();
+- public unowned string get_uri ();
+- public string encoding { get; }
+- public string frame_name { get; }
+- public string mime_type { get; }
+- public string uri { get; construct; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebSettings : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public WebSettings ();
+- public WebKit.WebSettings copy ();
+- public unowned string get_user_agent ();
+- [NoAccessorMethod]
+- public bool auto_load_images { get; set construct; }
+- [NoAccessorMethod]
+- public bool auto_resize_window { get; set construct; }
+- [NoAccessorMethod]
+- public bool auto_shrink_images { get; set construct; }
+- [NoAccessorMethod]
+- public string cursive_font_family { owned get; set construct; }
+- [NoAccessorMethod]
+- public string default_encoding { owned get; set construct; }
+- [NoAccessorMethod]
+- public string default_font_family { owned get; set construct; }
+- [NoAccessorMethod]
+- public int default_font_size { get; set construct; }
+- [NoAccessorMethod]
+- public int default_monospace_font_size { get; set construct; }
+- [NoAccessorMethod]
+- public WebKit.EditingBehavior editing_behavior { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_caret_browsing { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_default_context_menu { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_developer_extras { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_dom_paste { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_file_access_from_file_uris { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_html5_database { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_html5_local_storage { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_java_applet { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_offline_web_application_cache { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_page_cache { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_plugins { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_private_browsing { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_scripts { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_site_specific_quirks { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_spatial_navigation { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_spell_checking { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_universal_access_from_file_uris { get; set construct; }
+- [NoAccessorMethod]
+- public bool enable_xss_auditor { get; set construct; }
+- [NoAccessorMethod]
+- public bool enforce_96_dpi { get; set construct; }
+- [NoAccessorMethod]
+- public string fantasy_font_family { owned get; set construct; }
+- [NoAccessorMethod]
+- public bool javascript_can_access_clipboard { get; set construct; }
+- [NoAccessorMethod]
+- public bool javascript_can_open_windows_automatically { get; set construct; }
+- [NoAccessorMethod]
+- public int minimum_font_size { get; set construct; }
+- [NoAccessorMethod]
+- public int minimum_logical_font_size { get; set construct; }
+- [NoAccessorMethod]
+- public string monospace_font_family { owned get; set construct; }
+- [NoAccessorMethod]
+- public bool print_backgrounds { get; set construct; }
+- [NoAccessorMethod]
+- public bool resizable_text_areas { get; set construct; }
+- [NoAccessorMethod]
+- public string sans_serif_font_family { owned get; set construct; }
+- [NoAccessorMethod]
+- public string serif_font_family { owned get; set construct; }
+- [NoAccessorMethod]
+- public string spell_checking_languages { owned get; set construct; }
+- [NoAccessorMethod]
+- public bool tab_key_cycles_through_elements { get; set construct; }
+- [NoAccessorMethod]
+- public string user_agent { owned get; set construct; }
+- [NoAccessorMethod]
+- public string user_stylesheet_uri { owned get; set construct; }
+- [NoAccessorMethod]
+- public float zoom_step { get; set construct; }
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebView : Gtk.Container, Atk.Implementor, Gtk.Buildable {
+- [CCode (type = "GtkWidget*", has_construct_function = false)]
+- public WebView ();
+- public bool can_copy_clipboard ();
+- public bool can_cut_clipboard ();
+- public bool can_go_back ();
+- public bool can_go_back_or_forward (int steps);
+- public bool can_go_forward ();
+- public bool can_paste_clipboard ();
+- public bool can_redo ();
+- public bool can_show_mime_type (string mime_type);
+- public bool can_undo ();
+- [NoWrapper]
+- public virtual unowned string choose_file (WebKit.WebFrame frame, string old_file);
+- public void delete_selection ();
+- public void execute_script (string script);
+- public unowned WebKit.WebBackForwardList get_back_forward_list ();
+- public unowned Gtk.TargetList get_copy_target_list ();
+- public unowned string get_custom_encoding ();
+- public bool get_editable ();
+- public unowned string get_encoding ();
+- public unowned WebKit.WebFrame get_focused_frame ();
+- public bool get_full_content_zoom ();
+- public unowned WebKit.HitTestResult get_hit_test_result (Gdk.EventButton event);
+- public unowned string get_icon_uri ();
+- public unowned WebKit.WebInspector get_inspector ();
+- public WebKit.LoadStatus get_load_status ();
+- public unowned WebKit.WebFrame get_main_frame ();
+- public unowned Gtk.TargetList get_paste_target_list ();
+- public double get_progress ();
+- public unowned WebKit.WebSettings get_settings ();
+- public unowned string get_title ();
+- public bool get_transparent ();
+- public unowned string get_uri ();
+- public bool get_view_source_mode ();
+- public unowned WebKit.WebWindowFeatures get_window_features ();
+- public float get_zoom_level ();
+- public void go_back ();
+- public void go_back_or_forward (int steps);
+- public void go_forward ();
+- public bool go_to_back_forward_item (WebKit.WebHistoryItem item);
+- public bool has_selection ();
+- public void load_html_string (string content, string base_uri);
+- public void load_request (WebKit.NetworkRequest request);
+- public void load_string (string content, string mime_type, string encoding, string base_uri);
+- public void load_uri (string uri);
+- public uint mark_text_matches (string str, bool case_sensitive, uint limit);
+- public void open (string uri);
+- public void reload ();
+- public void reload_bypass_cache ();
+- public bool search_text (string text, bool case_sensitive, bool forward, bool wrap);
+- public void set_custom_encoding (string encoding);
+- public void set_editable (bool flag);
+- public void set_full_content_zoom (bool full_content_zoom);
+- public void set_highlight_text_matches (bool highlight);
+- public void set_maintains_back_forward_list (bool flag);
+- public void set_settings (WebKit.WebSettings settings);
+- public void set_transparent (bool flag);
+- public void set_view_source_mode (bool view_source_mode);
+- public void set_zoom_level (float zoom_level);
+- public void stop_loading ();
+- public void unmark_text_matches ();
+- public void zoom_in ();
+- public void zoom_out ();
+- public Gtk.TargetList copy_target_list { get; }
+- public string custom_encoding { get; set; }
+- public bool editable { get; set; }
+- public string encoding { get; }
+- public bool full_content_zoom { get; set; }
+- public string icon_uri { get; }
+- [NoAccessorMethod]
+- public Gtk.IMContext im_context { owned get; }
+- public WebKit.LoadStatus load_status { get; }
+- public Gtk.TargetList paste_target_list { get; }
+- public double progress { get; }
+- public WebKit.WebSettings settings { get; set; }
+- public string title { get; }
+- public bool transparent { get; set; }
+- public string uri { get; }
+- [NoAccessorMethod]
+- public WebKit.WebInspector web_inspector { owned get; }
+- [NoAccessorMethod]
+- public WebKit.WebWindowFeatures window_features { owned get; set; }
+- public float zoom_level { get; set; }
+- public virtual signal bool close_web_view ();
+- public virtual signal bool console_message (string message, int line_number, string source_id);
+- [HasEmitter]
+- public virtual signal void copy_clipboard ();
+- public virtual signal unowned Gtk.Widget create_plugin_widget (string p0, string p1, GLib.HashTable p2);
+- public virtual signal WebKit.WebView create_web_view (WebKit.WebFrame web_frame);
+- [HasEmitter]
+- public virtual signal void cut_clipboard ();
+- public virtual signal void database_quota_exceeded (GLib.Object p0, GLib.Object p1);
+- public virtual signal void document_load_finished (WebKit.WebFrame p0);
+- public virtual signal bool download_requested (GLib.Object p0);
+- public virtual signal void geolocation_policy_decision_cancelled (WebKit.WebFrame p0);
+- public virtual signal bool geolocation_policy_decision_requested (WebKit.WebFrame p0, WebKit.GeolocationPolicyDecision p1);
+- public virtual signal void hovering_over_link (string? p0, string p1);
+- public virtual signal void icon_loaded (string p0);
+- public virtual signal void load_committed (WebKit.WebFrame p0);
+- public virtual signal bool load_error (WebKit.WebFrame p0, string p1, GLib.Error p2);
+- public virtual signal void load_finished (WebKit.WebFrame p0);
+- public virtual signal void load_progress_changed (int p0);
+- public virtual signal void load_started (WebKit.WebFrame p0);
+- public virtual signal bool mime_type_policy_decision_requested (WebKit.WebFrame p0, WebKit.NetworkRequest p1, string p2, WebKit.WebPolicyDecision p3);
+- [HasEmitter]
+- public virtual signal bool move_cursor (Gtk.MovementStep step, int count);
+- public virtual signal bool navigation_policy_decision_requested (WebKit.WebFrame p0, WebKit.NetworkRequest p1, WebKit.WebNavigationAction p2, WebKit.WebPolicyDecision p3);
+- public virtual signal WebKit.NavigationResponse navigation_requested (WebKit.WebFrame frame, WebKit.NetworkRequest request);
+- public virtual signal bool new_window_policy_decision_requested (WebKit.WebFrame p0, WebKit.NetworkRequest p1, WebKit.WebNavigationAction p2, WebKit.WebPolicyDecision p3);
+- [HasEmitter]
+- public virtual signal void paste_clipboard ();
+- public virtual signal void populate_popup (Gtk.Menu p0);
+- public virtual signal bool print_requested (WebKit.WebFrame p0);
+- [HasEmitter]
+- public virtual signal void redo ();
+- public virtual signal void resource_request_starting (WebKit.WebFrame p0, WebKit.WebResource p1, WebKit.NetworkRequest p2, WebKit.NetworkResponse p3);
+- public virtual signal bool script_alert (WebKit.WebFrame frame, string alert_message);
+- public virtual signal bool script_confirm (WebKit.WebFrame frame, string confirm_message, void* did_confirm);
+- public virtual signal bool script_prompt (WebKit.WebFrame frame, string message, string default_value, void* value);
+- [HasEmitter]
+- public virtual signal void select_all ();
+- public virtual signal void selection_changed ();
+- public virtual signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
+- public virtual signal void status_bar_text_changed (string p0);
+- public virtual signal void title_changed (WebKit.WebFrame p0, string p1);
+- [HasEmitter]
+- public virtual signal void undo ();
+- public virtual signal bool web_view_ready ();
+- public virtual signal void window_object_cleared (WebKit.WebFrame frame, void* context, void* window_object);
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public class WebWindowFeatures : GLib.Object {
+- [CCode (has_construct_function = false)]
+- public WebWindowFeatures ();
+- public bool equal (WebKit.WebWindowFeatures features2);
+- [NoAccessorMethod]
+- public bool fullscreen { get; set construct; }
+- [NoAccessorMethod]
+- public int height { get; set construct; }
+- [NoAccessorMethod]
+- public bool locationbar_visible { get; set construct; }
+- [NoAccessorMethod]
+- public bool menubar_visible { get; set construct; }
+- [NoAccessorMethod]
+- public bool scrollbar_visible { get; set construct; }
+- [NoAccessorMethod]
+- public bool statusbar_visible { get; set construct; }
+- [NoAccessorMethod]
+- public bool toolbar_visible { get; set construct; }
+- [NoAccessorMethod]
+- public int width { get; set construct; }
+- [NoAccessorMethod]
+- public int x { get; set construct; }
+- [NoAccessorMethod]
+- public int y { get; set construct; }
+- }
+- [CCode (cprefix = "WEBKIT_CACHE_MODEL_", cheader_filename = "webkit/webkit.h")]
+- public enum CacheModel {
+- DOCUMENT_VIEWER,
+- WEB_BROWSER
+- }
+- [CCode (cprefix = "WEBKIT_DOWNLOAD_ERROR_", cheader_filename = "webkit/webkit.h")]
+- public enum DownloadError {
+- CANCELLED_BY_USER,
+- DESTINATION,
+- NETWORK
+- }
+- [CCode (cprefix = "WEBKIT_DOWNLOAD_STATUS_", cheader_filename = "webkit/webkit.h")]
+- public enum DownloadStatus {
+- ERROR,
+- CREATED,
+- STARTED,
+- CANCELLED,
+- FINISHED
+- }
+- [CCode (cprefix = "WEBKIT_EDITING_BEHAVIOR_", cheader_filename = "webkit/webkit.h")]
+- public enum EditingBehavior {
+- MAC,
+- WINDOWS
+- }
+- [CCode (cprefix = "WEBKIT_HIT_TEST_RESULT_CONTEXT_", cheader_filename = "webkit/webkit.h")]
+- [Flags]
+- public enum HitTestResultContext {
+- DOCUMENT,
+- LINK,
+- IMAGE,
+- MEDIA,
+- SELECTION,
+- EDITABLE
+- }
+- [CCode (cprefix = "WEBKIT_LOAD_", cheader_filename = "webkit/webkit.h")]
+- public enum LoadStatus {
+- PROVISIONAL,
+- COMMITTED,
+- FINISHED,
+- FIRST_VISUALLY_NON_EMPTY_LAYOUT,
+- FAILED
+- }
+- [CCode (cprefix = "WEBKIT_NAVIGATION_RESPONSE_", cheader_filename = "webkit/webkit.h")]
+- public enum NavigationResponse {
+- ACCEPT,
+- IGNORE,
+- DOWNLOAD
+- }
+- [CCode (cprefix = "WEBKIT_NETWORK_ERROR_", cheader_filename = "webkit/webkit.h")]
+- public enum NetworkError {
+- FAILED,
+- TRANSPORT,
+- UNKNOWN_PROTOCOL,
+- CANCELLED,
+- FILE_DOES_NOT_EXIST
+- }
+- [CCode (cprefix = "WEBKIT_PLUGIN_ERROR_", cheader_filename = "webkit/webkit.h")]
+- public enum PluginError {
+- FAILED,
+- CANNOT_FIND_PLUGIN,
+- CANNOT_LOAD_PLUGIN,
+- JAVA_UNAVAILABLE,
+- CONNECTION_CANCELLED,
+- WILL_HANDLE_LOAD
+- }
+- [CCode (cprefix = "WEBKIT_POLICY_ERROR_", cheader_filename = "webkit/webkit.h")]
+- public enum PolicyError {
+- FAILED,
+- CANNOT_SHOW_MIME_TYPE,
+- CANNOT_SHOW_URL,
+- FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE,
+- CANNOT_USE_RESTRICTED_PORT
+- }
+- [CCode (cprefix = "WEBKIT_WEB_NAVIGATION_REASON_", cheader_filename = "webkit/webkit.h")]
+- public enum WebNavigationReason {
+- LINK_CLICKED,
+- FORM_SUBMITTED,
+- BACK_FORWARD,
+- RELOAD,
+- FORM_RESUBMITTED,
+- OTHER
+- }
+- [CCode (cprefix = "WEBKIT_WEB_VIEW_TARGET_INFO_", cheader_filename = "webkit/webkit.h")]
+- public enum WebViewTargetInfo {
+- HTML,
+- TEXT,
+- IMAGE,
+- URI_LIST,
+- NETSCAPE_URL
+- }
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public const int MAJOR_VERSION;
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public const int MICRO_VERSION;
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public const int MINOR_VERSION;
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public const int USER_AGENT_MAJOR_VERSION;
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public const int USER_AGENT_MINOR_VERSION;
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static bool check_version (uint major, uint minor, uint micro);
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static void geolocation_policy_allow (WebKit.GeolocationPolicyDecision decision);
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static void geolocation_policy_deny (WebKit.GeolocationPolicyDecision decision);
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static WebKit.CacheModel get_cache_model ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static unowned Soup.Session get_default_session ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static uint64 get_default_web_database_quota ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static unowned string get_web_database_directory_path ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static uint major_version ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static uint micro_version ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static uint minor_version ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static GLib.Quark network_error_quark ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static GLib.Quark plugin_error_quark ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static GLib.Quark policy_error_quark ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static void remove_all_web_databases ();
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static void set_cache_model (WebKit.CacheModel cache_model);
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static void set_default_web_database_quota (uint64 defaultQuota);
+- [CCode (cheader_filename = "webkit/webkit.h")]
+- public static void set_web_database_directory_path (string path);
+-}
+--
+2.5.0 \ No newline at end of file
diff --git a/debian/patches/0501-Dont-pack-webview-into-a-scrolled-window.patch b/debian/patches/0501-Dont-pack-webview-into-a-scrolled-window.patch
new file mode 100644
index 0000000..a5820dd
--- /dev/null
+++ b/debian/patches/0501-Dont-pack-webview-into-a-scrolled-window.patch
@@ -0,0 +1,44 @@
+From 130ebe6f1eda9564e89ab617bdfa30a50f828e47 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@igalia.com>
+Date: Fri, 4 Dec 2015 17:33:43 +0100
+Subject: [PATCH] Don't pack webview into a scrolled window
+
+The scrollbar is drawn by WebKitWebView in WK2.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=751709
+---
+ plugins/common/RESTSupport.vala | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+Index: trunk/plugins/common/RESTSupport.vala
+===================================================================
+--- trunk.orig/plugins/common/RESTSupport.vala
++++ trunk/plugins/common/RESTSupport.vala
+@@ -725,7 +725,6 @@ public abstract class GooglePublisher :
+
+ private WebKit.WebView webview;
+ private Gtk.Box pane_widget;
+- private Gtk.ScrolledWindow webview_frame;
+ private string auth_sequence_start_url;
+
+ public signal void authorized(string auth_code);
+@@ -735,18 +734,13 @@ public abstract class GooglePublisher :
+
+ pane_widget = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
+
+- webview_frame = new Gtk.ScrolledWindow(null, null);
+- webview_frame.set_shadow_type(Gtk.ShadowType.ETCHED_IN);
+- webview_frame.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
+-
+ webview = new WebKit.WebView();
+ webview.get_settings().enable_plugins = false;
+
+ webview.load_changed.connect(on_page_load_changed);
+ webview.context_menu.connect(() => { return false; });
+
+- webview_frame.add(webview);
+- pane_widget.pack_start(webview_frame, true, true, 0);
++ pane_widget.pack_start(webview, true, true, 0);
+ }
+
+ public static bool is_cache_dirty() {
diff --git a/debian/patches/0502-Have-all-soup-sessions-validate-TLS-certificates.patch b/debian/patches/0502-Have-all-soup-sessions-validate-TLS-certificates.patch
new file mode 100644
index 0000000..df24283
--- /dev/null
+++ b/debian/patches/0502-Have-all-soup-sessions-validate-TLS-certificates.patch
@@ -0,0 +1,39 @@
+From ac6efab13554d1ef39eb8b86744234d72773c2da Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@igalia.com>
+Date: Fri, 4 Dec 2015 17:34:17 +0100
+Subject: [PATCH] Have all soup sessions validate TLS certificates
+
+Note that this commit is *not* sufficient to fix certificate verification
+on its own. The port to WK2 is also required, else WebKit's soup session
+will not verify certificates.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=751709
+---
+ plugins/common/RESTSupport.vala | 1 +
+ plugins/shotwell-publishing/FacebookPublishing.vala | 1 +
+ 2 files changed, 2 insertions(+)
+
+Index: trunk/plugins/common/RESTSupport.vala
+===================================================================
+--- trunk.orig/plugins/common/RESTSupport.vala
++++ trunk/plugins/common/RESTSupport.vala
+@@ -20,6 +20,7 @@ public abstract class Session {
+ public Session(string? endpoint_url = null) {
+ this.endpoint_url = endpoint_url;
+ soup_session = new Soup.SessionAsync();
++ this.soup_session.ssl_use_system_ca_file = true;
+ }
+
+ protected void notify_wire_message_unqueued(Soup.Message message) {
+Index: trunk/plugins/shotwell-publishing/FacebookPublishing.vala
+===================================================================
+--- trunk.orig/plugins/shotwell-publishing/FacebookPublishing.vala
++++ trunk/plugins/shotwell-publishing/FacebookPublishing.vala
+@@ -1473,6 +1473,7 @@ internal class GraphSession {
+ this.soup_session.timeout = 15;
+ this.access_token = null;
+ this.current_message = null;
++ this.soup_session.ssl_use_system_ca_file = true;
+ }
+
+ ~GraphSession() {
diff --git a/debian/patches/0503-facebook-Dont-disable-XSS-auditor.patch b/debian/patches/0503-facebook-Dont-disable-XSS-auditor.patch
new file mode 100644
index 0000000..976b6ec
--- /dev/null
+++ b/debian/patches/0503-facebook-Dont-disable-XSS-auditor.patch
@@ -0,0 +1,25 @@
+From 2a1dd48e702b0e8524a4ed212252aa4c49c6b0f0 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@igalia.com>
+Date: Fri, 4 Dec 2015 18:08:54 +0100
+Subject: [PATCH] facebook: Don't disable XSS auditor
+
+This is a separate commit to make it possible to revert easily, as
+I don't know why it was disabled.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=751709
+---
+ plugins/shotwell-publishing/FacebookPublishing.vala | 1 -
+ 1 file changed, 1 deletion(-)
+
+Index: trunk/plugins/shotwell-publishing/FacebookPublishing.vala
+===================================================================
+--- trunk.orig/plugins/shotwell-publishing/FacebookPublishing.vala
++++ trunk/plugins/shotwell-publishing/FacebookPublishing.vala
+@@ -829,7 +829,6 @@ internal class WebAuthenticationPane : S
+
+ webview = new WebKit.WebView();
+ webview.get_settings().enable_plugins = false;
+- webview.get_settings().enable_xss_auditor = false;
+
+ webview.load_changed.connect(on_page_load_changed);
+ webview.context_menu.connect(() => { return true; });
diff --git a/debian/patches/0510-Delay_size_request.patch b/debian/patches/0510-Delay_size_request.patch
new file mode 100644
index 0000000..7c03791
--- /dev/null
+++ b/debian/patches/0510-Delay_size_request.patch
@@ -0,0 +1,26 @@
+Description: Delay size_request
+Author: Jens Georg <mail@jensge.org>
+Origin: https://git.gnome.org/browse/shotwell/commit/?id=4a70d87
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=766864
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823835
+Forwarded: not-needed
+Last-Update: 2015-06-05
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/src/CheckerboardLayout.vala
+===================================================================
+--- trunk.orig/src/CheckerboardLayout.vala
++++ trunk/src/CheckerboardLayout.vala
+@@ -911,7 +911,11 @@ public class CheckerboardLayout : Gtk.Dr
+ debug("on_viewport_resized: due_to_reflow=%s set_size_request %dx%d",
+ size_allocate_due_to_reflow.to_string(), parent_allocation.width, req.height);
+ #endif
+- set_size_request(parent_allocation.width - SCROLLBAR_PLACEHOLDER_WIDTH, req.height);
++ // But if the current height is 0, don't request a size yet. Delay
++ // it to do_reflow (bgo#766864)
++ if (req.height != 0) {
++ set_size_request(parent_allocation.width - SCROLLBAR_PLACEHOLDER_WIDTH, req.height);
++ }
+ } else {
+ // set the layout's width and height to always match the parent's
+ set_size_request(parent_allocation.width, parent_allocation.height);
diff --git a/debian/patches/0515-Fix_background_color_drawing.patch b/debian/patches/0515-Fix_background_color_drawing.patch
new file mode 100644
index 0000000..04a1adb
--- /dev/null
+++ b/debian/patches/0515-Fix_background_color_drawing.patch
@@ -0,0 +1,32 @@
+Description: Fix background color drawing
+Author: Jens Georg <mail@jensge.org>
+Origin: https://git.gnome.org/browse/shotwell/commit/?id=7361b3f
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=766864
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823835
+Forwarded: not-needed
+Last-Update: 2015-06-05
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/src/CheckerboardLayout.vala
+===================================================================
+--- trunk.orig/src/CheckerboardLayout.vala
++++ trunk/src/CheckerboardLayout.vala
+@@ -1812,6 +1812,10 @@ public class CheckerboardLayout : Gtk.Dr
+ // we want switched_to() to be the final call in the process (indicating that the page is
+ // now in place and should do its thing to update itself), have to be be prepared for
+ // GTK/GDK calls between the widgets being actually present on the screen and "switched to"
++
++ Gtk.Allocation allocation;
++ get_allocation(out allocation);
++ get_style_context().render_background (ctx, 0, 0, allocation.width, allocation.height);
+
+ // watch for message mode
+ if (message == null) {
+@@ -1833,7 +1837,6 @@ public class CheckerboardLayout : Gtk.Dr
+ int text_width, text_height;
+ pango_layout.get_pixel_size(out text_width, out text_height);
+
+- Gtk.Allocation allocation;
+ get_allocation(out allocation);
+
+ int x = allocation.width - text_width;
diff --git a/debian/patches/505-fix-viewer-desktop-file.patch b/debian/patches/505-fix-viewer-desktop-file.patch
new file mode 100644
index 0000000..30505b5
--- /dev/null
+++ b/debian/patches/505-fix-viewer-desktop-file.patch
@@ -0,0 +1,27 @@
+Description: Fix viewer desktop file
+ A typo in the Makefile, probably due to a quick copy/paste, results in an
+ incorrectly generated desktop file for the photo viewer.
+Author: Raphaël Halimi <raphael.halimi@gmail.com>
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776745
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=743799
+Forwarded: https://bugzilla.gnome.org/show_bug.cgi?id=743799
+Applied-Upstream: 0.22.0, https://git.gnome.org/browse/shotwell/commit/?id=2ecda59a5562565967647b6c3d44dd99a48a04ef
+Last-Update: 2015-04-03
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+Index: trunk/Makefile
+===================================================================
+--- trunk.orig/Makefile
++++ trunk/Makefile
+@@ -493,9 +493,8 @@ endif
+ misc/shotwell-viewer.desktop: misc/shotwell-viewer.desktop.head $(EXPANDED_CORE_PO_FILES)
+ cp misc/shotwell-viewer.desktop.head misc/shotwell-viewer.desktop
+ $(foreach lang,$(CORE_SUPPORTED_LANGUAGES), echo X-GNOME-FullName[$(lang)]=`TEXTDOMAINDIR=locale-langpack \
+- LANGUAGE=$(lang) gettext --domain=shotwell $(DESKTOP_APP_FULL_NAME)` \
+- echo X-GNOME-FullName[$(lang)]=`TEXTDOMAINDIR=locale-langpack LANGUAGE=$(lang) gettext \
+- --domain=shotwell $(DIRECT_EDIT_DESKTOP_APP_FULL_NAME)` >> misc/shotwell-viewer.desktop ; \
++ LANGUAGE=$(lang) gettext --domain=shotwell $(DIRECT_EDIT_DESKTOP_APP_FULL_NAME)` \
++ >> misc/shotwell-viewer.desktop ; \
+ echo GenericName[$(lang)]=`TEXTDOMAINDIR=locale-langpack LANGUAGE=$(lang) gettext \
+ --domain=shotwell $(DIRECT_EDIT_DESKTOP_APPLICATION_CLASS)` >> misc/shotwell-viewer.desktop ;)
+ ifndef DISABLE_DESKTOP_VALIDATE
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..2b6f8ff
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,10 @@
+0001-buildflags.patch
+0005-hardening.patch
+0010-libexec.patch
+#0500-Port-to-webkit2gtk-40.patch
+#0501-Dont-pack-webview-into-a-scrolled-window.patch
+#0502-Have-all-soup-sessions-validate-TLS-certificates.patch
+#0503-facebook-Dont-disable-XSS-auditor.patch
+0100-ios8.patch
+0510-Delay_size_request.patch
+0515-Fix_background_color_drawing.patch
diff --git a/debian/replace_thumbnailer.sh b/debian/replace_thumbnailer.sh
new file mode 100755
index 0000000..d70dec0
--- /dev/null
+++ b/debian/replace_thumbnailer.sh
@@ -0,0 +1,21 @@
+#! /bin/bash
+
+if [ -e /usr/lib/shotwell-video-thumbnailer.org ] ; then
+ echo ' /usr/lib/shotwell-video-thumbnailer.org exists!'
+ echo ' break'
+ exit 1
+fi
+
+echo '**** backup ****'
+mv /usr/lib/shotwell-video-thumbnailer /usr/lib/shotwell-video-thumbnailer.org
+
+echo '**** install ffmpegthumbnailer ****'
+apt-get install ffmpegthumbnailer -y
+
+echo '**** install new file ****'
+touch /usr/lib/shotwell-video-thumbnailer
+chmod --reference=/usr/lib/shotwell-video-thumbnailer.org /usr/lib/shotwell-video-thumbnailer
+
+echo '#! /bin/bash' >/usr/lib/shotwell-video-thumbnailer
+echo '' >>/usr/lib/shotwell-video-thumbnailer
+echo 'ffmpegthumbnailer -i "$1" -o - -c png' >>/usr/lib/shotwell-video-thumbnailer
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..dede84d
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,33 @@
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+export VALAFLAGS:=$(foreach w,$(CPPFLAGS) $(CFLAGS) $(LDFLAGS),-X $(w))
+
+B_DATE:=$(shell LC_ALL=C date --utc -d "$(CHDATE)")
+
+%:
+ dh $@
+
+override_dh_auto_configure:
+ ./configure --prefix=/usr --libexec=/usr/lib --disable-schemas-compile
+
+override_dh_install:
+ dh_install
+ # Touch the generated C files with mtime of debian/changelog,
+ # find -type f -name '*.c' -exec touch -r $(CURDIR)/debian/changelog {} \;
+ # then install these C files required for debugging into the shotwell-dbg package.
+ mkdir -p debian/shotwell-dbg/usr/share/doc/shotwell-dbg/temp-source
+ find -type f -name '*.c' -exec cp --parent '{}' debian/shotwell-dbg/usr/share/doc/shotwell-dbg/temp-source/ ';'
+ cd debian/shotwell-dbg/usr/share/doc/shotwell-dbg && \
+ tar --mode=go=rX,u+rw,a-s --mtime="$(B_DATE)" -cJf temp-source.tar.xz temp-source
+ rm -fr debian/shotwell-dbg/usr/share/doc/shotwell-dbg/temp-source
+
+override_dh_installchangelogs:
+ dh_installchangelogs NEWS
+
+override_dh_strip:
+ dh_strip --dbg-package=shotwell-dbg
+
+override_dh_compress:
+ dh_compress -X.tar.xz
diff --git a/debian/shotwell-common.README.Debian b/debian/shotwell-common.README.Debian
new file mode 120000
index 0000000..e5d7439
--- /dev/null
+++ b/debian/shotwell-common.README.Debian
@@ -0,0 +1 @@
+shotwell.README.Debian \ No newline at end of file
diff --git a/debian/shotwell-common.install b/debian/shotwell-common.install
new file mode 100644
index 0000000..dd222db
--- /dev/null
+++ b/debian/shotwell-common.install
@@ -0,0 +1 @@
+usr/share
diff --git a/debian/shotwell-common.postrm b/debian/shotwell-common.postrm
new file mode 100644
index 0000000..2390561
--- /dev/null
+++ b/debian/shotwell-common.postrm
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+
+case "$1" in
+ purge|remove)
+
+ #
+ # rebuild icon cache
+ #
+ gtk-update-icon-cache /usr/share/icons/hicolor
+
+esac
+
+#DEBHELPER#
diff --git a/debian/shotwell-dbg.README.Debian b/debian/shotwell-dbg.README.Debian
new file mode 100644
index 0000000..dba87b5
--- /dev/null
+++ b/debian/shotwell-dbg.README.Debian
@@ -0,0 +1,8 @@
+
+For debugging you can copy the files from temp-source.tar.xz into
+your source directory (//usr/src/shotwell-VERSION) or you can
+set the dircetory for gdb with the commandline parameter --directory=DIR.
+
+For other debugger please read the docs.
+
+ -- Jörg Frings-Fürst <debian@jff-webhosting.net> Fri, 03 Apr 2015 13:16:32 +0200
diff --git a/debian/shotwell.1 b/debian/shotwell.1
new file mode 100644
index 0000000..e68bcc2
--- /dev/null
+++ b/debian/shotwell.1
@@ -0,0 +1,14 @@
+.TH shotwell 1 "December 30, 2009"
+.SH NAME
+shotwell \- a digital photo organizer
+.SH DESCRIPTION
+.B shotwell
+is a digital photo organizer designed for the GNOME desktop environment. It
+allows you to import photos from disk or camera, organize them in various ways,
+view them in full-window or fullscreen mode, and export them to share with
+others.
+.SH AUTHOR
+shotwell was written by Jim Nelson, Lucas Beeler and Allison Barlow.
+.PP
+This manual page was written by Devid Antonio Filoni <d.filoni@ubuntu.com>,
+for the Debian project (and may be used by others).
diff --git a/debian/shotwell.README.Debian b/debian/shotwell.README.Debian
new file mode 100644
index 0000000..d9ded6c
--- /dev/null
+++ b/debian/shotwell.README.Debian
@@ -0,0 +1,25 @@
+TROUBLESHOOTING
+---------------
+
+- video-thumbnailer
+
+ On problems with the shotwell-video-thumbnailer you can
+ switch to the ffmpegthumnailer. Please run as root:
+
+ 1. Backup /usr/lib/shotwell-video-thumbnailer:
+ * mv /usr/lib/shotwell-video-thumbnailer /usr/lib/shotwell-video-thumbnailer.org
+
+ 2. Install ffmpegthumbnailer:
+ * apt-get install ffmpegthumbnailer
+
+ 3. Create a new executable file:
+ * touch /usr/lib/shotwell-video-thumbnailer
+ * chmod --reference=/usr/lib/shotwell-video-thumbnailer.org /usr/lib/shotwell-video-thumbnailer
+
+ 4. Write into the new file:
+ * echo "#! /bin/bash" >/usr/lib/shotwell-video-thumbnailer
+ * echo "ffmpegthumnailer -i \"$1\" -o -b -c png >>/usr/lib/shotwell-video-thumbnailer
+
+ Or you can use the file replace_thumbnail.sh from the examples directory.
+
+ Thanks to Teo Romera <teoromera@gmail.com>
diff --git a/debian/shotwell.bug-script b/debian/shotwell.bug-script
new file mode 100644
index 0000000..bcb8409
--- /dev/null
+++ b/debian/shotwell.bug-script
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+REPORTBUG_VERSION=$(dpkg-query -f '${source:Version}' -W reportbug)
+LOG_FILE='~/.cache/shotwell/shotwell.log'
+
+# Depending on whether reportbug is new enough, we either write the output of
+# our various commands to a file and attach them to the report (this needs
+# reportbug ≥ 6.5.0) or just write them to the body of the bug report.
+if dpkg --compare-versions "$REPORTBUG_VERSION" ge "6.5.0"; then
+
+ # We don’t clean up this directory because there is no way to know when
+ # reportbug finished running, and reportbug needs the files around.
+ # Given that those are just a couple of kilobytes in size and people
+ # generally don’t file a lot of bugs, I don’t think it’s a big deal.
+ DIR=$(mktemp -d)
+
+ echo "-- BEGIN ATTACHMENTS --" >&3
+
+ #
+ # logfile
+ #
+ if [ -f ${LOG_FILE} ]; then
+ cat ${LOG_FILE} >$DIR/logfile.user
+ echo $DIR/logfile.user >&3
+ fi
+
+ echo "-- END ATTACHMENTS --" >&3
+fi
diff --git a/debian/shotwell.docs b/debian/shotwell.docs
new file mode 100644
index 0000000..e4cf55f
--- /dev/null
+++ b/debian/shotwell.docs
@@ -0,0 +1,2 @@
+README
+THANKS
diff --git a/debian/shotwell.examples b/debian/shotwell.examples
new file mode 100644
index 0000000..128a3c5
--- /dev/null
+++ b/debian/shotwell.examples
@@ -0,0 +1 @@
+debian/replace_thumbnailer.sh
diff --git a/debian/shotwell.install b/debian/shotwell.install
new file mode 100644
index 0000000..f89586e
--- /dev/null
+++ b/debian/shotwell.install
@@ -0,0 +1,3 @@
+apport/shotwell.py usr/share/apport/package-hooks/
+usr/bin
+usr/lib
diff --git a/debian/shotwell.lintian-overrides b/debian/shotwell.lintian-overrides
new file mode 100644
index 0000000..7eccb8d
--- /dev/null
+++ b/debian/shotwell.lintian-overrides
@@ -0,0 +1,5 @@
+image-file-in-usr-lib
+#
+# see debian bug #731987
+#
+sharedobject-in-library-directory-missing-soname
diff --git a/debian/shotwell.postrm b/debian/shotwell.postrm
new file mode 100644
index 0000000..2dbce77
--- /dev/null
+++ b/debian/shotwell.postrm
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = purge ]; then
+
+ #
+ # remove backup files
+ #
+ if [ -e /usr/lib/shotwell-video-thumbnailer.org ] ; then
+ rm -f /usr/lib/shotwell-video-thumbnailer.org
+ fi
+fi
+
+#DEBHELPER#
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/watch b/debian/watch
new file mode 100644
index 0000000..99c74ae
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=4
+http://ftp.gnome.org/pub/gnome/sources/shotwell/([\d\.]+)/shotwell-([\d\.]+)\.tar\.xz