summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2013-01-12 19:41:25 +0000
committerJustin Lecher <jlec@gentoo.org>2013-01-12 19:41:25 +0000
commit5bc8eea5db913b3fe0582970c73ae423144cf598 (patch)
tree490859fa54708c7185a3c257f9a8bb1c48ee2f2a /media-gfx/shotwell
parentDrop graphicsmagick and jpeg2k use flags since support isn't in a released ve... (diff)
downloadhistorical-5bc8eea5db913b3fe0582970c73ae423144cf598.tar.gz
historical-5bc8eea5db913b3fe0582970c73ae423144cf598.tar.bz2
historical-5bc8eea5db913b3fe0582970c73ae423144cf598.zip
media-gfx/shotwell: Add support for gst-1.0; add myself as maintainer
Package-Manager: portage-2.2.0_alpha151/cvs/Linux x86_64 Manifest-Sign-Key: 0x8009D6F070EB7916
Diffstat (limited to 'media-gfx/shotwell')
-rw-r--r--media-gfx/shotwell/ChangeLog8
-rw-r--r--media-gfx/shotwell/Manifest16
-rw-r--r--media-gfx/shotwell/files/shotwell-0.13.1-gst-1.0.patch228
-rw-r--r--media-gfx/shotwell/metadata.xml16
-rw-r--r--media-gfx/shotwell/shotwell-0.13.1-r1.ebuild92
5 files changed, 351 insertions, 9 deletions
diff --git a/media-gfx/shotwell/ChangeLog b/media-gfx/shotwell/ChangeLog
index a2589928d5de..e8195f80f00f 100644
--- a/media-gfx/shotwell/ChangeLog
+++ b/media-gfx/shotwell/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for media-gfx/shotwell
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-gfx/shotwell/ChangeLog,v 1.46 2013/01/06 09:45:24 ago Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/shotwell/ChangeLog,v 1.47 2013/01/12 19:41:24 jlec Exp $
+
+*shotwell-0.13.1-r1 (12 Jan 2013)
+
+ 12 Jan 2013; Justin Lecher <jlec@gentoo.org> +shotwell-0.13.1-r1.ebuild,
+ +files/shotwell-0.13.1-gst-1.0.patch, metadata.xml:
+ Add support for gst-1.0; add myself as maintainer
06 Jan 2013; Agostino Sarubbo <ago@gentoo.org> shotwell-0.13.1.ebuild:
Add ~sparc, wrt bug #449220
diff --git a/media-gfx/shotwell/Manifest b/media-gfx/shotwell/Manifest
index 25c9fdb2be23..77fcc569546b 100644
--- a/media-gfx/shotwell/Manifest
+++ b/media-gfx/shotwell/Manifest
@@ -1,7 +1,19 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+AUX shotwell-0.13.1-gst-1.0.patch 10251 SHA256 6f8ba6762f9e6d353881896b61a9ef2a6abe3956e2efd9c23dd58027cf9893c4 SHA512 0bd436765d4e77f65ff452853fd722e6da74ec67a226e68c698b3e3b7756dfacfb917713d324df6f4f79fee28c07b0439b70f394e479fa2600393e2d1030c324 WHIRLPOOL c6ba5930c7c9ccf874d59bc59f1567602b0c81cfdb384d8f2343813c2e93aca72333d220bd8559a087df83ea96a0ea5e2b4b3e45eaebf6ff7650bad4421a8083
AUX shotwell-0.13.1-ldflags.patch 1142 SHA256 d7fe75551807d7998c9494c9c065c611f98dbfd8db2b09bed8a1430048063b12 SHA512 036a99134afb69ab8f7ded853aec427f5c3289cab753c1796be71e75544ae18fdd628a82c628c1f6939c852c6abaf3b2841b4155fdb4831a8c091bdc5761d5c3 WHIRLPOOL 088c4fa519c32d36f663411468daa0b5547855d3d744f148282ea86c5743a4601669f2b82a9d5581a1dc34dfce3b001ee55810a96515e1db6316985857a1ed3b
DIST shotwell-0.12.3.tar.bz2 1649746 SHA256 1388f0ea5a27e1c1a1ab33302c6304cca1fadfb649aa879d11e406c7ede15601 SHA512 5b375e2dcc033ea8dadefdbaf4aaad4d6f9723e91dfab0717031f37bfbd5ea2121e73783e5ae467af56cc3796e0b8b06cfc42bf3ee236daa87dfba974163f620 WHIRLPOOL 95c993406a3af4f30fbd8bbb858d375d61b339b5133aff5ad6e77bbf66e358afb9c2f51f19e788f35ed6f38fea36154180077ad35f5948e980b156644f06bd61
DIST shotwell-0.13.1.tar.xz 1497664 SHA256 e548c3274410e0696ffcd051eabd38ca2a507031f36b7203c1e68966815fa735 SHA512 947d1b430ae346925e035870d33c6de51e12c7d1a7a9611826ee8ad6c8175eb1f7a67a7a31ae7ac60477f32611c3aa4fd8551a2528165549663df900f16dfbae WHIRLPOOL ca2b08c0c6c2c4c2a119a1ca0026e70ed362b76c692724094f7ebbfaf9cd9351e013e4f3502a72c57780d8ad62d3d3c66361bdccb5ccc913bc508d91df128235
EBUILD shotwell-0.12.3.ebuild 1884 SHA256 5874b52d774fbbf0af6bd1ae35c63deb0b93941a984a06df7aa83b5740550545 SHA512 da9c48744f9b0f6a8515a68f06aa38989eaa6c7729b1199801d7e20c5f1f7bf742f058256e32d3a7a3835389f474557dfbeaddf9e69990490b69b8ba06bfa35d WHIRLPOOL 7425d0ecfc4cc2578a6916a67a6dc3e9cd16a3c6d7dd20b8545156aa17bc19e8fc939bcc21b566c6e913be421e55859e471a4734b036946ee4bf7dc4e30229bc
+EBUILD shotwell-0.13.1-r1.ebuild 2297 SHA256 5da10e02a68394e486649cc9b8d7bca49c723d4dd4fc0d1d14865ca6d8cd1d5d SHA512 7fb6e9f92cff14aa019ba763b2b99414b5816c6fc4e44befa27e577af738911b836253a866187ba9d33419d5818b3a6eae56ab232df5fc0dc4202d0c1f55d021 WHIRLPOOL 277371f95e7d8da1214d9dba9298bcab54c0aed3197b30282c80ed17bf54178812384a7029ce46e28601f16192f780763ef5b8127c4f02f583a94470bac5c146
EBUILD shotwell-0.13.1.ebuild 2252 SHA256 e87b4379b718da65fca3d48f9a98d382a8d87db355be4068ec99a97f48b3738f SHA512 f2432353d792227ce571ca6902f9f73dea63eeb9c17f42ed04a436720083d1ba44dc441ead891862afe999a4154617afce3fc312aedc561b059fed6cafc1a57d WHIRLPOOL 5a052acfaa58d58271fcb4272005d7aa2e59e06478a0c5bc9d164b011ad861b76b3f47b753b203d48b31984b2f7e329fd31ebd6702d865e45e9e261cd8db31a4
-MISC ChangeLog 7450 SHA256 976325c4d5dafc93c1d122ec8c33fb2d4d1805434f2d79197337db0ad7fb45b0 SHA512 161d1e2fe71bdd9d46dc9cbc75ac6a4522a168ac8902364d1ca3e0c97ae679c4119e04067668c13ec215400be1b1125965f268ecbef64b6887a9ff211f09bc1b WHIRLPOOL c8c2848980f26173bf56a951701fdc0612cfb8a7cbc0012af30e9777a21c3bf80324594fd11ce6285fa7f4da73e1fc694696e3f90edd87eedaaede6bfe2a9f43
-MISC metadata.xml 560 SHA256 f8a2f7fa486d790120922c0b5e111a8d6f7259f0394b133f048af6791868b103 SHA512 51dd6bb4c9cc0d6d61e66cf11dde1be61be17f744eb699e3998580444c60d8940613c67d4e08681db1b2b78824bafc49bcebaa04e9d0a70eb526048dc236e9e3 WHIRLPOOL fb7474e9505e84212459d63f7542d73a1034d9e7271def92ae05eb863c1f0492fe863fc74786e29bfbc17d32e17129dc95de5163747644c63cacc1092966fb9a
+MISC ChangeLog 7668 SHA256 6fc4b7df54376279eba951fcdd58c26e3e9c89426e69b4ddc5f6a6ce5a1d7782 SHA512 76f0f58ef2b4760f4ef8a95141b0e46d5f52cd60034386a4ccafb068663d891d2bb73a4544d3b0538d4e11fadf58f99fbd7b05821af7ca319dde7cb11a708894 WHIRLPOOL 1b40ea91d868c876ed4afc48b400e6cb9f8806229aadb11519e3f386011bda8d6b117682418b7b36751669a013c0edfab930d146ecd14cdb3f5baffd718cc872
+MISC metadata.xml 665 SHA256 d7ed9e0a0af566d5e6891e77c0b69c49df16b5d291f0126243892a3ec36aaedf SHA512 4bc0078d47452551bc043e9fb6d1774db44b9b2cf67ee581e9cdeeffb86b198c13753c7595638e1feedc9c876457d1d5393d064d6535f1b2283bcec43c861300 WHIRLPOOL e3bd5f1dc118225520d15e289e901c686478707b39e4aff702ae0d33ad7005f158874686d7d49ce2e5f18faeb920e612a109c0c9e6f4bd737a24b58578e7c088
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.19 (GNU/Linux)
+
+iEYEAREKAAYFAlDxvGUACgkQgAnW8HDreRYMjACffxouROy0IPIe5oDdL6TUwzXE
+Wk4An1pKxcDwAwAzZ/ciJSIEoQxda4Ka
+=Haka
+-----END PGP SIGNATURE-----
diff --git a/media-gfx/shotwell/files/shotwell-0.13.1-gst-1.0.patch b/media-gfx/shotwell/files/shotwell-0.13.1-gst-1.0.patch
new file mode 100644
index 000000000000..82a4f39e1f86
--- /dev/null
+++ b/media-gfx/shotwell/files/shotwell-0.13.1-gst-1.0.patch
@@ -0,0 +1,228 @@
+From 4db67e385c9c2d89947077f1520aa31af2538d65 Mon Sep 17 00:00:00 2001
+Message-Id: <4db67e385c9c2d89947077f1520aa31af2538d65.1358017927.git.jlec@gentoo.org>
+From: Alban Browaeys <prahal@yahoo.com>
+Date: Tue, 8 Jan 2013 17:11:27 -0800
+Subject: [PATCH] Ports Shotwell to GStreamer 1.0. Closes #6055.
+
+---
+ Makefile | 22 +++++-----
+ THANKS | 1 +
+ debian/control | 6 +--
+ src/VideoSupport.vala | 8 ++--
+ thumbnailer/shotwell-video-thumbnailer.vala | 65 ++++++++++++++++-------------
+ 5 files changed, 56 insertions(+), 46 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 2488f82..5a7e262 100644
+--- a/Makefile
++++ b/Makefile
+@@ -37,7 +37,7 @@ EXTRAS_SUPPORTED_LANGUAGES=fr de it es pl et sv sk lv pt bg bn nl da zh_CN el ru
+ LOCAL_LANG_DIR=locale-langpack
+ SYSTEM_LANG_DIR := $(DESTDIR)$(PREFIX)/share/locale
+
+-VALAFLAGS := -g --enable-checking --thread --fatal-warnings --enable-deprecated $(USER_VALAFLAGS)
++VALAFLAGS := -g --enable-checking --thread --fatal-warnings --enable-deprecated --enable-experimental $(USER_VALAFLAGS)
+ ifdef UNITY_SUPPORT
+ VALAFLAGS := $(VALAFLAGS) --define UNITY_SUPPORT
+ endif
+@@ -293,9 +293,9 @@ EXT_PKGS = \
+ gio-unix-2.0 \
+ glib-2.0 \
+ gmodule-2.0 \
+- gstreamer-0.10 \
+- gstreamer-base-0.10 \
+- gstreamer-pbutils-0.10 \
++ gstreamer-1.0 \
++ gstreamer-base-1.0 \
++ gstreamer-pbutils-1.0 \
+ gtk+-3.0 \
+ gudev-1.0 \
+ libexif \
+@@ -314,8 +314,8 @@ endif
+ THUMBNAILER_PKGS = \
+ gtk+-3.0 \
+ gee-1.0 \
+- gstreamer-0.10 \
+- gstreamer-base-0.10
++ gstreamer-1.0 \
++ gstreamer-base-1.0
+
+ DIRECT_LIBS =
+
+@@ -325,10 +325,10 @@ EXT_PKG_VERSIONS = \
+ gio-unix-2.0 >= 2.20 \
+ glib-2.0 >= $(MIN_GLIB_VERSION) \
+ gmodule-2.0 >= 2.24.0 \
+- gstreamer-0.10 >= 0.10.28 \
+- gstreamer-base-0.10 >= 0.10.28 \
+- gstreamer-plugins-base-0.10 >= 0.10.32 \
+- gstreamer-pbutils-0.10 >= 0.10.32 \
++ gstreamer-1.0 >= 1.0.0 \
++ gstreamer-base-1.0 >= 1.0.0 \
++ gstreamer-plugins-base-1.0 >= 1.0.0 \
++ gstreamer-pbutils-1.0 >= 1.0.0 \
+ gtk+-3.0 >= 3.0.11 \
+ gudev-1.0 >= 145 \
+ libexif >= 0.6.16 \
+@@ -683,7 +683,7 @@ $(VALA_STAMP): $(EXPANDED_SRC_FILES) $(EXPANDED_VAPI_FILES) $(GPHOTO_VAPI_FILE)
+ $(call check_valac_version)
+ @echo Compiling Vala code...
+ @mkdir -p $(BUILD_DIR)
+- @$(VALAC) --ccode --directory=$(BUILD_DIR) --basedir=src \
++ $(VALAC) --ccode --directory=$(BUILD_DIR) --basedir=src \
+ $(foreach pkg,$(VALA_PKGS),--pkg=$(pkg)) \
+ $(foreach vapidir,$(VAPI_DIRS),--vapidir=$(vapidir)) \
+ $(foreach def,$(DEFINES),-X -D$(def)) \
+diff --git a/src/VideoSupport.vala b/src/VideoSupport.vala
+index deb45e2..f679bd0 100644
+--- a/src/VideoSupport.vala
++++ b/src/VideoSupport.vala
+@@ -163,8 +163,8 @@ public class VideoReader {
+ file.get_path()));
+
+ try {
+- Gst.Discoverer d = new Gst.Discoverer((Gst.ClockTime) (Gst.SECOND * 5));
+- Gst.DiscovererInfo info = d.discover_uri(file.get_uri());
++ Gst.PbUtils.Discoverer d = new Gst.PbUtils.Discoverer((Gst.ClockTime) (Gst.SECOND * 5));
++ Gst.PbUtils.DiscovererInfo info = d.discover_uri(file.get_uri());
+
+ clip_duration = ((double) info.get_duration()) / 1000000000.0;
+
+@@ -172,7 +172,7 @@ public class VideoReader {
+ // TODO: Note that TAG_DATE can be changed to TAG_DATE_TIME in the future
+ // (and the corresponding output struct) in order to implement #2836.
+ Date? video_date = null;
+- if (info.get_tags() != null && info.get_tags().get_date(Gst.TAG_DATE, out video_date)) {
++ if (info.get_tags() != null && info.get_tags().get_date(Gst.Tags.DATE, out video_date)) {
+ timestamp = new DateTime.local(video_date.get_year(), video_date.get_month(),
+ video_date.get_day(), 0, 0, 0);
+ }
+@@ -323,7 +323,7 @@ public class Video : VideoSource, Flaggable, Monitorable, Dateable {
+ Gst.init(ref fake_unowned_args);
+
+ int saved_state = Config.Facade.get_instance().get_video_interpreter_state_cookie();
+- current_state = (int) Gst.Registry.get_default().get_feature_list_cookie();
++ current_state = (int) Gst.Registry.get().get_feature_list_cookie();
+ if (saved_state == Config.Facade.NO_VIDEO_INTERPRETER_STATE) {
+ message("interpreter state cookie not found; assuming all video thumbnails are out of date");
+ interpreter_state_changed = true;
+diff --git a/thumbnailer/shotwell-video-thumbnailer.vala b/thumbnailer/shotwell-video-thumbnailer.vala
+index 79a2d7e..ae1e537 100644
+--- a/thumbnailer/shotwell-video-thumbnailer.vala
++++ b/thumbnailer/shotwell-video-thumbnailer.vala
+@@ -10,22 +10,15 @@
+ // Shotwell Thumbnailer takes in a video file and returns a thumbnail to stdout. This is
+ // a replacement for totem-video-thumbnailer
+ class ShotwellThumbnailer {
+- const string caps_string = """video/x-raw-rgb,bpp = (int) 32, depth = (int) 32,
+- endianness = (int) BIG_ENDIAN,
+- red_mask = (int) 0xFF000000,
+- green_mask = (int) 0x00FF0000,
+- blue_mask = (int) 0x0000FF00,
+- width = (int) [ 1, max ],
+- height = (int) [ 1, max ],
+- framerate = (fraction) [ 0, max ]""";
++ const string caps_string = """video/x-raw,format=RGB,bpp=32,depth=32,pixel-aspect-ratio=1/1""";
+
+ public static int main(string[] args) {
+ Gst.Element pipeline, sink;
+ int width, height;
+- Gst.Buffer buffer;
++ Gst.Sample sample;
+ string descr;
+ Gdk.Pixbuf pixbuf;
+- int64 position;
++ int64 duration, position;
+ Gst.StateChangeReturn ret;
+ bool res;
+
+@@ -36,7 +29,7 @@ class ShotwellThumbnailer {
+ return 1;
+ }
+
+- descr = "filesrc location=\"%s\" ! decodebin2 ! ffmpegcolorspace ! ".printf(args[1]) +
++ descr = "filesrc location=\"%s\" ! decodebin ! videoconvert ! videoscale ! ".printf(args[1]) +
+ "appsink name=sink caps=\"%s\"".printf(caps_string);
+
+ try {
+@@ -64,29 +57,41 @@ class ShotwellThumbnailer {
+ stderr.printf("Failed to play the file: couldn't get state.\n");
+ return 3;
+ }
+-
+- // Seek to the a position in the file. Most files have a black first frame so
+- // by seeking to somewhere else we have a bigger chance of getting something
+- // more interesting. An optimization would be to detect black images and then
+- // seek a little more.
+- position = (int64) (Gst.Format.PERCENT_MAX * 0.05);
+- pipeline.seek_simple(Gst.Format.PERCENT, Gst.SeekFlags.KEY_UNIT | Gst.SeekFlags.FLUSH , position);
+-
+- // Get the preroll buffer from appsink, this block untils appsink really
+- // prerolls.
+- GLib.Signal.emit_by_name(sink, "pull-preroll", out buffer, null);
+-
++
++ /* get the duration */
++ pipeline.query_duration (Gst.Format.TIME, out duration);
++
++ if (duration != -1) {
++ /* we have a duration, seek to 5% */
++ position = duration * 5 / 100;
++ } else {
++ /* no duration, seek to 1 second, this could EOS */
++ position = 1 * Gst.SECOND;
++ }
++
++ /* seek to the a position in the file. Most files have a black first frame so
++ * by seeking to somewhere else we have a bigger chance of getting something
++ * more interesting. An optimisation would be to detect black images and then
++ * seek a little more */
++ pipeline.seek_simple (Gst.Format.TIME, Gst.SeekFlags.KEY_UNIT | Gst.SeekFlags.FLUSH, position);
++
++ /* get the preroll buffer from appsink, this block untils appsink really
++ * prerolls */
++ GLib.Signal.emit_by_name (sink, "pull-preroll", out sample, null);
++
+ // if we have a buffer now, convert it to a pixbuf. It's possible that we
+ // don't have a buffer because we went EOS right away or had an error.
+- if (buffer != null) {
++ if (sample != null) {
++ Gst.Buffer buffer;
+ Gst.Caps caps;
+ Gst.Structure s;
++ Gst.MapInfo mapinfo;
+
+ // Get the snapshot buffer format now. We set the caps on the appsink so
+ // that it can only be an rgb buffer. The only thing we have not specified
+ // on the caps is the height, which is dependant on the pixel-aspect-ratio
+ // of the source material.
+- caps = buffer.get_caps();
++ caps = sample.get_caps();
+ if (caps == null) {
+ stderr.printf("could not get snapshot format\n");
+ return 5;
+@@ -101,14 +106,18 @@ class ShotwellThumbnailer {
+ stderr.printf("Could not get snapshot dimension\n");
+ return 6;
+ }
+-
++
++ buffer = sample.get_buffer();
++ buffer.map(out mapinfo, Gst.MapFlags.READ);
++
+ // Create pixmap from buffer and save, gstreamer video buffers have a stride
+ // that is rounded up to the nearest multiple of 4.
+- pixbuf = new Gdk.Pixbuf.from_data(buffer.data, Gdk.Colorspace.RGB, true, 8,
+- width, height, width * 4, null);
++ pixbuf = new Gdk.Pixbuf.from_data(mapinfo.data, Gdk.Colorspace.RGB, false, 8,
++ width, height, (((width * 3)+3)&~3), null);
+
+ // Save the pixbuf.
+ pixbuf.save("/dev/stdout", "png");
++ buffer.unmap(mapinfo);
+ } else {
+ stderr.printf("Could not make snapshot\n");
+ return 10;
+--
+1.8.1
+
diff --git a/media-gfx/shotwell/metadata.xml b/media-gfx/shotwell/metadata.xml
index b7826e07df52..a1fa367a4cb8 100644
--- a/media-gfx/shotwell/metadata.xml
+++ b/media-gfx/shotwell/metadata.xml
@@ -1,12 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <herd>graphics</herd>
- <maintainer>
- <email>hwoarang@gentoo.org</email>
- <name>Markos Chandras</name>
- </maintainer>
- <longdescription lang="en">
+ <herd>graphics</herd>
+ <maintainer>
+ <email>hwoarang@gentoo.org</email>
+ <name>Markos Chandras</name>
+ </maintainer>
+ <maintainer>
+ <email>jlec@gentoo.org</email>
+ <name>Justin Lecher</name>
+ </maintainer>
+ <longdescription lang="en">
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
diff --git a/media-gfx/shotwell/shotwell-0.13.1-r1.ebuild b/media-gfx/shotwell/shotwell-0.13.1-r1.ebuild
new file mode 100644
index 000000000000..59a68818c242
--- /dev/null
+++ b/media-gfx/shotwell/shotwell-0.13.1-r1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-gfx/shotwell/shotwell-0.13.1-r1.ebuild,v 1.1 2013/01/12 19:41:24 jlec Exp $
+
+EAPI=4
+
+GCONF_DEBUG="no"
+VALA_MIN_API_VERSION="0.18"
+
+inherit eutils gnome2 multilib toolchain-funcs vala versionator
+
+MY_PV=$(get_version_component_range 1-2)
+DESCRIPTION="Open source photo manager for GNOME"
+HOMEPAGE="http://yorba.org/shotwell/"
+SRC_URI="http://www.yorba.org/download/${PN}/stable/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+LANGS="ar ast bg bn ca cs da de el en_GB es et eu fi fr gl he hi hr hu ia id it ja kk
+ko lt lv mk nb nl pa pl pt pt_BR ro ru sk sl sr sv ta te ta_IN te_IN th tr uk vi zh_CN zh_TW"
+
+for x in ${LANGS}; do
+ IUSE+="linguas_${x} "
+done
+
+RDEPEND="
+ >=dev-db/sqlite-3.5.9:3
+ >=dev-libs/dbus-glib-0.80
+ >=dev-libs/glib-2.30.0:2
+ >=dev-libs/json-glib-0.7.6
+ >=dev-libs/libgee-0.5.0:0
+ >=dev-libs/libunique-3.0.0:3
+ >=dev-libs/libxml2-2.6.32:2
+ >=media-libs/gexiv2-0.3.92
+ media-libs/gst-plugins-base:1.0
+ media-libs/gst-plugins-good:1.0
+ media-libs/gstreamer:1.0
+ media-libs/lcms:2
+ >=media-libs/libexif-0.6.16
+ >=media-libs/libgphoto2-2.4.2
+ >=media-libs/libraw-0.14.0
+ >=net-libs/libsoup-2.26.0:2.4
+ net-libs/rest:0.7
+ net-libs/webkit-gtk:3
+ virtual/udev[gudev]
+ x11-libs/gtk+:3"
+DEPEND="${RDEPEND}
+ $(vala_depend)
+ sys-devel/m4"
+
+DOCS=( AUTHORS MAINTAINERS NEWS README THANKS )
+
+# This probabl comes from libraries that
+# shotwell-video-thumbnailer links to.
+# Nothing we can do at the moment. #435048
+QA_FLAGS_IGNORED="/usr/bin/${PN}-video-thumbnailer"
+
+pkg_setup() {
+ tc-export CC
+ G2CONF="${G2CONF}
+ --disable-schemas-compile
+ --disable-desktop-update
+ --disable-icon-update
+ --lib=$(get_libdir)"
+}
+
+src_prepare() {
+ vala_src_prepare
+ sed \
+ -e 's|CFLAGS :|CFLAGS +|g' \
+ -i plugins/Makefile.plugin.mk || die
+ epatch \
+ "${FILESDIR}"/${P}-ldflags.patch \
+ "${FILESDIR}"/${P}-gst-1.0.patch
+}
+
+src_compile() {
+ local valaver="$(vala_best_api_version)"
+ emake VALAC="$(type -p valac-${valaver})"
+}
+
+src_install() {
+ gnome2_src_install
+ for x in ${LANGS}; do
+ if ! has ${x} ${LINGUAS}; then
+ find "${D}"/usr/share/locale/${x} -type f -exec rm {} \;
+ fi
+ done
+}