diff options
36 files changed, 2871 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6fbd72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.bzr +.bzrignore +.pc +debian/files
\ No newline at end of file diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..fb5509a --- /dev/null +++ b/debian/changelog @@ -0,0 +1,750 @@ +shotwell (0.25.3-1) unstable; urgency=medium + + * New upstream release (Closes: #849688, #851711). + * debian/copyright: + - Update copyright years for 2017. + + -- Jörg Frings-Fürst <debian@jff-webhosting.net> Sat, 21 Jan 2017 19:43:09 +0100 + +shotwell (0.25.1-1) unstable; urgency=medium + + * New upstream release. + - Fix issue with indexes on PhotoTable (Closes: #777499). + * debian/patches: + - Refresh 0100-ios8.patch. + * debian/control: + - Add libgcr-3-dev to Build-Depends. + - Bump libgexiv2-dev B-D minimum version to 0.10.4. + - Bump libglib2.0-dev B-D minimum version to 2.40. + - Bump libgtk-3-dev B-D minimum version to 3.14. + + -- Jörg Frings-Fürst <debian@jff-webhosting.net> Fri, 25 Nov 2016 04:24:55 +0100 + +shotwell (0.24.0-1) unstable; urgency=medium + + * New upstream release (Closes: #824164, #825788). + - Fix inconsistent licensing metadata in icons/rejected.svg + (Closes: #800902). + - Fix crashes when opening files with external editor + (Closes: #806248). + - Fix scrollbars disappearing when resizing main window + (Closes: #823835). + - Install private executables shotwell-settings-migrator and + shotwell-video-thumbnailer into /usr/lib/shotwell + (Closes: #833236). + * debian/control: + - Add itstool to Build-Depends. + - Bump debhelper B-D minimum version to 10. + - Bump libgee-0.8 B-D minimum version to 0.10. + - Switch Depends for shotwell binary package from dbus-x11 to + default-dbus-session-bus | dbus-session-bus (Closes: #836046). + * debian/copyright: + - Add Software Freedom Conservancy Inc. + * debian/manpages: + - Rename to debian/shotwell.manpages and use the + manpage supplied upstream. + * debian/patches: + - New 0600-remove_wrong_marco.patch to remove the wrong macro 'R'. + - Refresh patches. + - Drop patches applied upstream: + + 0001-buildflags.patch + + 0005-hardening.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 + * debian/rules: + - 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>. + - Remove unwanted .la files. + * debian/shotwell-common.postrm: + - New script to rebuild icon cache after purge and remove with + a test that gtk-update-icon-cache exists and is executable. + * debian/shotwell.install: + - Remove missing apport/shotwell.py. + * debian/shotwell-common.install: + - Remove now redundant installation of manpage. + * debian/watch: + - Rewrite regular expression. + + -- Jörg Frings-Fürst <debian@jff-webhosting.net> Wed, 21 Sep 2016 22:31:48 +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..a1b0420 --- /dev/null +++ b/debian/control @@ -0,0 +1,86 @@ +Source: shotwell +Section: gnome +Priority: optional +Maintainer: Jörg Frings-Fürst <debian@jff-webhosting.net> +Build-Depends: + debhelper (>= 10), + desktop-file-utils, + gnome-doc-utils, + itstool, + libexif-dev (>= 0.6.16), + libgcr-3-dev, + libgee-0.8-dev (>= 0.10), + libgexiv2-dev (>= 0.10.4), + libglib2.0-dev (>= 2.40), + libgphoto2-dev (>= 2.5.4), + libgstreamer-plugins-base1.0-dev (>= 1.0.0), + libgstreamer1.0-dev (>= 1.0.0), + libgtk-3-dev (>= 3.14), + 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, + default-dbus-session-bus | dbus-session-bus, + 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..ab47427 --- /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-2017 Software Freedom Conservancy Inc. +License: LGPL-2.1 + +Files: debian/* +Copyright: 2009-2011 Devid Antonio Filoni <d.filoni@ubuntu.com> + 2014-2017 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/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..91ca3a0 --- /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 +@@ -385,8 +385,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..c8abeea --- /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 +@@ -661,7 +661,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 @@ PLUGIN_EXTRAFLAGS ?= --vapidir=../common + PLUGIN_EXTRALINKFLAGS ?= -L../common/ -lshotwell-plugin-common + + .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) \ + $(PLUGIN_EXTRAFLAGS) \ 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..a87e3c5 --- /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-11-25 +--- +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() { +@@ -1140,11 +1149,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); +@@ -1249,13 +1261,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) { + if (import_sources.get_count () == 0) { + this.set_page_message (this.get_view_empty_message ()); +@@ -1624,11 +1638,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); +@@ -1764,12 +1782,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/0600-remove_wrong_marco.patch b/debian/patches/0600-remove_wrong_marco.patch new file mode 100644 index 0000000..42ec942 --- /dev/null +++ b/debian/patches/0600-remove_wrong_marco.patch @@ -0,0 +1,19 @@ +Description: Remove wrong macro 'R' from manpage +Author: Jörg Frings-Fürst <debian@jff-webhosting.net> +Last-Update: 2016-08-20 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/help/shotwell.1 +=================================================================== +--- trunk.orig/help/shotwell.1 ++++ trunk/help/shotwell.1 +@@ -13,7 +13,8 @@ import photos from disk or camera, organ + + .SH "OPTIONS" + .B \-h, \-\-help +-.R Show help options ++Show help options ++.RE + + .B \-d, \-\-datadir=DIRECTORY + .RS 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..2962406 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,11 @@ +#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 +0600-remove_wrong_marco.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..f8d940b --- /dev/null +++ b/debian/rules @@ -0,0 +1,40 @@ +#!/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 + # Remove unwanted la files + rm -f debian/shotwell/usr/lib/shotwell/plugins/builtin/*.la + rm -f debian/shotwell/usr/lib/*.la + +override_dh_installchangelogs: + dh_installchangelogs NEWS + +override_dh_strip: + dh_strip --dbg-package=shotwell-dbg + +override_dh_compress: + dh_compress -X.tar.xz + +override_dh_installman: + dh_installman + rm -fr debian/shotwell-common/usr/share/man 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..63c29ce --- /dev/null +++ b/debian/shotwell-common.postrm @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + + +case "$1" in + purge|remove) + + # + # rebuild icon cache + # + if [ -x gtk-update-icon-cache ] ; then + gtk-update-icon-cache /usr/share/icons/hicolor + fi + +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..527b78f --- /dev/null +++ b/debian/shotwell.install @@ -0,0 +1,2 @@ +usr/bin +usr/lib diff --git a/debian/shotwell.lintian-overrides b/debian/shotwell.lintian-overrides new file mode 100644 index 0000000..c39dad0 --- /dev/null +++ b/debian/shotwell.lintian-overrides @@ -0,0 +1,6 @@ +#image-file-in-usr-lib +# +# see debian bug #731987 +# +#sharedobject-in-library-directory-missing-soname +non-dev-pkg-with-shlib-symlink diff --git a/debian/shotwell.manpages b/debian/shotwell.manpages new file mode 100644 index 0000000..28d214f --- /dev/null +++ b/debian/shotwell.manpages @@ -0,0 +1 @@ +help/shotwell.1 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 |