ports/159733: Update: graphics/shotwell -> 0.10.1

David Thiel lx at FreeBSD.org
Sat Aug 13 01:50:09 UTC 2011


>Number:         159733
>Category:       ports
>Synopsis:       Update: graphics/shotwell -> 0.10.1
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Aug 13 01:50:09 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     David Thiel
>Release:        FreeBSD 8.2-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD redundancy.redundancy.org 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011 root at mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64


>Description:

Shotwell has been broken for quite a while. Here is a fix and update to 0.10.1, 
partly based off of patches from NetBSD.

>How-To-Repeat:

Attempt to build shotwell. It will fail.

>Fix:

diff -ruN /usr/ports/graphics/shotwell/Makefile shotwell/Makefile
--- /usr/ports/graphics/shotwell/Makefile	2011-03-25 14:05:03.000000000 -0700
+++ shotwell/Makefile	2011-08-12 17:19:47.000000000 -0700
@@ -6,8 +6,7 @@
 #
 
 PORTNAME=	shotwell
-PORTVERSION=	0.7.2
-PORTREVISION=	2
+PORTVERSION=	0.10.1
 CATEGORIES=	graphics gnome
 MASTER_SITES=	http://www.yorba.org/download/shotwell/${PORTVERSION:R}/
 
@@ -26,8 +25,6 @@
 		unique-1.0.2:${PORTSDIR}/x11-toolkits/unique \
 		raw.2:${PORTSDIR}/graphics/libraw
 
-BROKEN=		does not build
-
 USE_BZIP2=	yes
 USE_GETTEXT=	yes
 USE_GNOME=	gnomehier gconf2 gtk20 desktopfileutils librsvg2
@@ -36,6 +33,7 @@
 CONFIGURE_ARGS=	--prefix=${PREFIX} \
 		--disable-icon-update \
 		--with-gconf-schema-file-dir=${PREFIX}/etc/gconf/schemas
+CONFIGURE_ENV+=	--define=NO_CAMERA
 INSTALLS_ICONS=	yes
 
 GCONF_SCHEMAS=	shotwell.schemas
@@ -44,14 +42,17 @@
 	@${REINPLACE_CMD} -E \
 		-e 's|/bin/bash|${SH}|g ; s|/usr/bin/env.*bash|${SH}|g' \
 		${WRKSRC}/${CONFIGURE_SCRIPT} \
-		${WRKSRC}/libraw-config \
-		${WRKSRC}/minver
+		${WRKSRC}/libraw-config
 
 post-configure:
 	@${REINPLACE_CMD} -E \
 		-e 's|share/shotwell|${DATADIR_REL}|g ; \
 		    s|%%GCONF_CONFIG_SOURCE%%|${GCONF_CONFIG_SOURCE}|g' \
 			${WRKSRC}/${MAKEFILE}
+
+	@${REINPLACE_CMD} -E \
+		-e 's|\-n ||g' \
+			${WRKSRC}/configure.mk
 # attempt at a DATADIR safe port
 	@${REINPLACE_CMD} -E \
 		-e 's|\.get_child\("share")\.get_child\("shotwell")|${SHOTWELL_DATADIR}|' \
diff -ruN /usr/ports/graphics/shotwell/distinfo shotwell/distinfo
--- /usr/ports/graphics/shotwell/distinfo	2011-07-03 07:12:09.000000000 -0700
+++ shotwell/distinfo	2011-08-12 16:33:55.000000000 -0700
@@ -1,3 +1,2 @@
-SHA256 (shotwell-0.7.2.tar.bz2) = 8b4139407d59badcbe13e23db070e0a0709ecc0f9ad806335888382eebf5dfa3
-SIZE (shotwell-0.7.2.tar.bz2) = 1064127
-
+SHA256 (shotwell-0.10.1.tar.bz2) = f6ef4782780af201402afeaf8f9484d5579cedff75fbf07b22587bb7cef69893
+SIZE (shotwell-0.10.1.tar.bz2) = 1483679
diff -ruN /usr/ports/graphics/shotwell/files/patch-Makefile shotwell/files/patch-Makefile
--- /usr/ports/graphics/shotwell/files/patch-Makefile	2010-12-28 14:39:11.000000000 -0800
+++ shotwell/files/patch-Makefile	2011-08-12 17:35:10.000000000 -0700
@@ -1,139 +1,86 @@
---- Makefile.orig	2010-09-10 17:55:54.000000000 -0500
-+++ Makefile	2010-12-28 16:15:44.000000000 -0600
-@@ -21,6 +21,10 @@
- 	LINUX = 1
- endif
- 
-+ifeq "$(SYSTEM)" "FreeBSD"
-+  FreeBSD = 1
-+endif
-+
- ifeq "$(SYSTEM)" "MinGW"
- 	WINDOWS = 1
- endif
-@@ -41,6 +45,10 @@
- 	EXPORT_FLAGS = -export-dynamic
- endif
- 
-+ifdef FreeBSD
-+    EXPORT_FLAGS = -export-dynamic
-+endif
-+
- ifdef WINDOWS
- 	EXPORT_FLAGS = -export-all-symbols
- endif
-@@ -124,10 +132,13 @@
- 	FSpotDatabaseDriver.vala \
- 	FSpotDatabaseTables.vala
- 
-+# this should be ifndef LINUX && ifndef FreeBSD
- ifndef LINUX
-+ifndef FreeBSD
- SRC_FILES += \
- 	GConf.vala
- endif
-+endif
- 
- VAPI_FILES = \
- 	libexif.vapi \
-@@ -288,6 +299,18 @@
- 	gdk-x11-2.0
- endif
- 
-+ifdef FreeBSD
-+EXT_PKGS += \
-+	gconf-2.0 \
-+	libgphoto2 \
-+	libsoup-2.4 \
-+	libxml-2.0 \
-+	unique-1.0 \
-+	webkit-1.0 \
-+	dbus-glib-1 \
-+	gdk-x11-2.0
-+endif
-+
- # libraw is handled separately (see note below); when libraw-config is no longer needed, the version
- # should be added to this list
- EXT_PKG_VERSIONS = \
-@@ -313,6 +336,18 @@
- 	dbus-glib-1 >= 0.80
- endif
- 
-+ifdef LINUX
-+EXT_PKG_VERSIONS += \
-+	gconf-2.0 >= 2.22.0 \
-+	libgphoto2 >= 2.4.2 \
-+	libsoup-2.4 >= 2.26.0 \
-+	libxml-2.0 >= 2.6.32 \
-+	unique-1.0 >= 1.0.0 \
-+	webkit-1.0 >= 1.1.5 \
-+	dbus-glib-1 >= 0.80
-+endif
-+
-+
- PKGS = $(EXT_PKGS) $(LOCAL_PKGS) $(LIBRAW_PKG)
- 
- ifndef BUILD_DIR
-@@ -357,6 +392,10 @@
- 
- VALA_LDFLAGS = `pkg-config --libs $(EXT_PKGS) gthread-2.0`
- 
-+ifdef FreeBSD
-+  VALA_DEFINES = -D NO_CAMERA
-+endif
-+
- ifdef WINDOWS
-   VALA_DEFINES = -D WINDOWS -D NO_CAMERA -D NO_PRINTING -D NO_PUBLISHING -D NO_LIBUNIQUE -D NO_EXTENDED_POSIX -D NO_SET_BACKGROUND
-   EXPANDED_OBJ_FILES += src/windows.o
-@@ -393,6 +432,11 @@
+--- Makefile.orig	2011-06-02 12:11:21.000000000 -0700
++++ Makefile	2011-08-12 17:33:51.953748181 -0700
+@@ -264,7 +264,6 @@
+ 	gstreamer-0.10 \
+ 	gstreamer-base-0.10 \
+ 	gtk+-2.0 \
+-	gudev-1.0 \
+ 	libexif \
+ 	libgphoto2 \
+ 	libsoup-2.4 \
+@@ -296,7 +295,6 @@
+ 	gstreamer-0.10 >= 0.10.28 \
+ 	gstreamer-base-0.10 >= 0.10.28 \
+ 	gtk+-2.0 >= 2.18.0 \
+-	gudev-1.0 >= 145 \
+ 	libexif >= 0.6.16 \
+ 	libgphoto2 >= 2.4.2 \
+ 	libsoup-2.4 >= 2.26.0 \
+@@ -375,7 +373,7 @@
+ 	$(EXPANDED_HELP_FILES) $(EXPANDED_HELP_IMAGES) apport/shotwell.py $(UNIT_RESOURCES) $(UNIT_MKS) \
+ 	unitize.mk units.mk $(PC_INPUT) $(PLUGINS_DIST_FILES) \
+ 	$(EXPANDED_THUMBNAILER_SRC_FILES)
+-	
++
+ 
+ DIST_TAR = $(PROGRAM)-$(VERSION).tar
+ DIST_TAR_BZ2 = $(DIST_TAR).bz2
+@@ -420,7 +418,7 @@
+ # if not available.
  LIBRAW_CONFIG=./libraw-config
- endif
  
-+ifdef FreeBSD
-+LIBRAW_CONFIG=./libraw-config
-+endif
-+
-+
- ifdef WINDOWS
- LIBRAW_CONFIG=./libraw-config --windows
- endif
-@@ -488,9 +532,20 @@
+-define check_valac_version
++define xcheck_valac_version
+ 	@ ./chkver min $(VALAC_VERSION) $(MIN_VALAC_VERSION) || ( echo 'Shotwell requires Vala compiler $(MIN_VALAC_VERSION) or greater.  You are running' $(VALAC_VERSION) '\b.'; exit 1 )
+ 	$(if $(MAX_VALAC_VERSION),\
+ 		@ ./chkver max $(VALAC_VERSION) $(MAX_VALAC_VERSION) || ( echo 'Shotwell cannot be built by Vala compiler $(MAX_VALAC_VERSION) or greater.  You are running' $(VALAC_VERSION) '\b.'; exit 1 ),)
+@@ -561,6 +559,11 @@
+ 	mkdir -p $(DESTDIR)$(PREFIX)/share/gnome/help/shotwell/C/figures
  	$(INSTALL_DATA) $(EXPANDED_HELP_IMAGES) $(DESTDIR)$(PREFIX)/share/gnome/help/shotwell/C/figures
  endif
- endif
-+ifdef FreeBSD
 +ifndef DISABLE_SCHEMAS_INSTALL
-+	GCONF_CONFIG_SOURCE=%%GCONF_CONFIG_SOURCE%% gconftool-2 --makefile-install-rule misc/shotwell.schemas
++	GCONF_CONFIG_SOURCE=xml:merged:/usr/local/etc/gconf/gconf.xml.defaults gconftool-2 --makefile-install-rule misc/shotwell.schemas
 +	mkdir -p $(DESTDIR)$(SCHEMA_FILE_DIR)
 +	$(INSTALL_DATA) misc/shotwell.schemas $(DESTDIR)$(SCHEMA_FILE_DIR)
 +endif
-+ifdef ENABLE_APPORT_HOOK_INSTALL
-+	mkdir -p $(DESTDIR)$(PREFIX)/share/apport/package-hooks
-+	$(INSTALL_DATA) apport/shotwell.py $(DESTDIR)$(PREFIX)/share/apport/package-hooks
-+endif
-+endif
- 	-$(foreach lang,$(SUPPORTED_LANGUAGES),`mkdir -p $(SYSTEM_LANG_DIR)/$(lang)/LC_MESSAGES ; \
--        $(INSTALL_DATA) $(LOCAL_LANG_DIR)/$(lang)/LC_MESSAGES/shotwell.mo \
--            $(SYSTEM_LANG_DIR)/$(lang)/LC_MESSAGES/shotwell.mo`)
-+	$(INSTALL_DATA) $(LOCAL_LANG_DIR)/$(lang)/LC_MESSAGES/shotwell.mo \
-+	    $(SYSTEM_LANG_DIR)/$(lang)/LC_MESSAGES/shotwell.mo`)
- 
- uninstall:
- 	rm -f $(DESTDIR)$(PREFIX)/bin/$(PROGRAM)
-@@ -514,6 +569,16 @@
- 	rm -f $(DESTDIR)$(PREFIX)/share/apport/package-hooks/shotwell.py
- endif
- endif
-+ifdef FreeBSD
-+ifndef DISABLE_SCHEMAS_INSTALL
-+	GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` gconftool-2 --makefile-install-rule misc/shotwell.schemas
-+else
-+	rm -f $(DESTDIR)$(SCHEMA_FILE_DIR)/shotwell.schemas
-+endif
-+ifdef ENABLE_APPORT_HOOK_INSTALL
-+	rm -f $(DESTDIR)$(PREFIX)/share/apport/package-hooks/shotwell.py
-+endif
-+endif
- 	$(foreach lang,$(SUPPORTED_LANGUAGES),`rm -f $(SYSTEM_LANG_DIR)/$(lang)/LC_MESSAGES/shotwell.mo`)
+ 	-$(foreach lang,$(CORE_SUPPORTED_LANGUAGES),`mkdir -p $(SYSTEM_LANG_DIR)/$(lang)/LC_MESSAGES ; \
+ 		$(INSTALL_DATA) $(LOCAL_LANG_DIR)/$(lang)/LC_MESSAGES/shotwell.mo \
+ 		$(SYSTEM_LANG_DIR)/$(lang)/LC_MESSAGES/shotwell.mo`)
+@@ -638,7 +641,6 @@
+ 
+ # EXPANDED_SRC_FILES includes UNITIZE_INITS and UNITIZE_ENTRY
+ $(VALA_STAMP): $(EXPANDED_SRC_FILES) $(EXPANDED_VAPI_FILES) $(EXPANDED_SRC_HEADER_FILES)
+-	$(call check_valac_version)
+ 	@echo Compiling Vala code...
+ 	@mkdir -p $(BUILD_DIR)
+ 	@$(VALAC) --ccode --directory=$(BUILD_DIR) --basedir=src \
+@@ -655,10 +657,10 @@
+ 	@
+ 
+ $(EXPANDED_OBJ_FILES): %.o: %.c $(CONFIG_IN) Makefile
+-	$(CC) -c $(VALA_CFLAGS) `$(LIBRAW_CONFIG) --cflags` $(CFLAGS) -o $@ $<
++	$(CC) -c $(VALA_CFLAGS) $(CFLAGS) `pkg-config --cflags libraw` -o $@ $<
+ 
+ $(PROGRAM): $(EXPANDED_OBJ_FILES) $(RESOURCES) $(LANG_STAMP) $(THUMBNAILER_BIN)
+-	$(CC) $(EXPANDED_OBJ_FILES) $(CFLAGS) $(RESOURCES) $(VALA_LDFLAGS) `$(LIBRAW_CONFIG) --libs` $(EXPORT_FLAGS) -o $@
++	$(CC) $(EXPANDED_OBJ_FILES) $(CFLAGS) $(RESOURCES) $(VALA_LDFLAGS) `pkg-config --libs libraw` $(EXPORT_FLAGS) -o $@
+ 
+ $(THUMBNAILER_BIN): $(EXPANDED_THUMBNAILER_SRC_FILES)
+ 	$(VALAC) $(EXPANDED_THUMBNAILER_SRC_FILES) $(VALAFLAGS) -o $@ $(foreach pkg,$(THUMBNAILER_PKGS),--pkg=$(pkg))
+@@ -668,7 +670,6 @@
+ 
+ .PHONY: $(PLUGINS_DIR)
+ $(PLUGINS_DIR): $(PLUGIN_VAPI) $(PLUGIN_HEADER) $(PLUGIN_DEPS)
+-	$(call check_valac_version)
+ 	@$(MAKE) --directory=$@ PLUGINS_VERSION="$(VERSION)" USER_VALAFLAGS="$(USER_VALAFLAGS)" \
+ 		PLUGIN_CFLAGS="$(PLUGIN_CFLAGS)"
+ 
+@@ -686,7 +687,7 @@
+ glade: lib$(PROGRAM).so
+ 
+ lib$(PROGRAM).so: $(EXPANDED_OBJ_FILES) $(RESOURCES) $(LANG_STAMP)
+-	$(CC) $(EXPANDED_OBJ_FILES) $(CFLAGS) $(RESOURCES) $(VALA_LDFLAGS) `$(LIBRAW_CONFIG) --libs` $(EXPORT_FLAGS) -shared -o $@
++	$(CC) $(EXPANDED_OBJ_FILES) $(CFLAGS) $(RESOURCES) $(VALA_LDFLAGS) $(LDFLAGS) `pkg-config --libs libraw` $(EXPORT_FLAGS) -shared -o $@
  
- $(VALA_STAMP): $(EXPANDED_SRC_FILES) $(EXPANDED_VAPI_FILES) $(EXPANDED_SRC_HEADER_FILES) Makefile \
+ .PHONY: pkgcheck
+ pkgcheck:
diff -ruN /usr/ports/graphics/shotwell/files/patch-src-camera-CameraTable.vala shotwell/files/patch-src-camera-CameraTable.vala
--- /usr/ports/graphics/shotwell/files/patch-src-camera-CameraTable.vala	1969-12-31 16:00:00.000000000 -0800
+++ shotwell/files/patch-src-camera-CameraTable.vala	2011-07-12 18:01:04.000000000 -0700
@@ -0,0 +1,292 @@
+$NetBSD: patch-ab,v 1.4 2011/07/12 19:00:57 drochner Exp $
+
+--- src/camera/CameraTable.vala.orig	2011-03-22 20:46:15.000000000 +0000
++++ src/camera/CameraTable.vala
+@@ -26,7 +26,6 @@ public class CameraTable {
+     
+     private static CameraTable instance = null;
+     
+-    private GUdev.Client client = new GUdev.Client(SUBSYSTEMS);
+     private OneShotScheduler camera_update_scheduler = null;
+     private GPhoto.Context null_context = new GPhoto.Context();
+     private GPhoto.CameraAbilitiesList abilities_list;
+@@ -44,7 +43,6 @@ public class CameraTable {
+             on_update_cameras);
+         
+         // listen for interesting events on the specified subsystems
+-        client.uevent.connect(on_udev_event);
+         volume_monitor = VolumeMonitor.get();
+         volume_monitor.volume_changed.connect(on_volume_changed);
+         volume_monitor.volume_added.connect(on_volume_changed);
+@@ -96,43 +94,18 @@ public class CameraTable {
+         if (res != GPhoto.Result.OK)
+             throw new GPhotoError.LIBRARY("[%d] Unable to %s: %s", (int) res, op, res.as_string());
+     }
+-    
++
+     private void init_camera_table() throws GPhotoError {
+         do_op(GPhoto.CameraAbilitiesList.create(out abilities_list), "create camera abilities list");
+         do_op(abilities_list.load(null_context), "load camera abilities list");
+     }
+-    
++
+     private string[] get_all_usb_cameras() {
+         string[] cameras = new string[0];
+-        
+-        GLib.List<GUdev.Device> device_list = client.query_by_subsystem(null);
+-        foreach (GUdev.Device device in device_list) {
+-            string device_file = device.get_device_file();
+-            if(
+-                // only keep devices that have a non-null device file and that
+-                // have both the ID_GPHOTO2 and GPHOTO2_DRIVER properties set
+-                (device_file != null) &&
+-                (device.has_property("ID_GPHOTO2")) &&
+-                (device.has_property("GPHOTO2_DRIVER"))
+-            ) {
+-                int camera_bus, camera_device;
+-                // extract the bus and device IDs from the device file string
+-                // TODO: is it safe to parse the absolute path or should we be
+-                // smarter and use a regex to only pick up the end of the path?
+-                if (device_file.scanf("/dev/bus/usb/%d/%d", out camera_bus, out camera_device) < 2) {
+-                    critical("get_all_usb_cameras: Failed to scanf device file %s", device_file);
+-                    
+-                    continue;
+-                }
+-                string camera = "usb:%.3d,%.3d".printf(camera_bus, camera_device);
+-                debug("USB camera detected at %s", camera);
+-                cameras += camera;
+-            }
+-        }
+-        
++
+         return cameras;
+     }
+-    
++
+     // USB (or libusb) is a funny beast; if only one USB device is present (i.e. the camera),
+     // then a single camera is detected at port usb:.  However, if multiple USB devices are
+     // present (including non-cameras), then the first attached camera will be listed twice,
+@@ -141,59 +114,59 @@ public class CameraTable {
+     //
+     // This function gleans the full port name of a particular port, even if it's the unadorned
+     // "usb:", by using GUdev.
+-    private bool usb_esp(int current_camera_count, string[] usb_cameras, string port, 
++    private bool usb_esp(int current_camera_count, string[] usb_cameras, string port,
+         out string full_port) {
+         // sanity
+         assert(current_camera_count > 0);
+-        
++
+         debug("USB ESP: current_camera_count=%d port=%s", current_camera_count, port);
+-        
++
+         // if GPhoto detects one camera, and USB reports one camera, all is swell
+         if (current_camera_count == 1 && usb_cameras.length == 1) {
+             full_port = usb_cameras[0];
+-            
++
+             debug("USB ESP: port=%s full_port=%s", port, full_port);
+-            
++
+             return true;
+         }
+ 
+         // with more than one camera, skip the mirrored "usb:" port
+         if (port == "usb:") {
+             debug("USB ESP: Skipping %s", port);
+-            
++
+             return false;
+         }
+-        
++
+         // parse out the bus and device ID
+         int bus, device;
+         if (port.scanf("usb:%d,%d", out bus, out device) < 2) {
+             critical("USB ESP: Failed to scanf %s", port);
+-            
++
+             return false;
+         }
+-        
++
+         foreach (string usb_camera in usb_cameras) {
+             int camera_bus, camera_device;
+             if (usb_camera.scanf("usb:%d,%d", out camera_bus, out camera_device) < 2) {
+                 critical("USB ESP: Failed to scanf %s", usb_camera);
+-                
++
+                 continue;
+             }
+-            
++
+             if ((bus == camera_bus) && (device == camera_device)) {
+                 full_port = port;
+-                
++
+                 debug("USB ESP: port=%s full_port=%s", port, full_port);
+ 
+                 return true;
+             }
+         }
+-        
++
+         debug("USB ESP: No matching bus/device found for port=%s", port);
+-        
++
+         return false;
+     }
+-    
++
+     public static string get_port_uri(string port) {
+         return "gphoto2://[%s]/".printf(port);
+     }
+@@ -204,24 +177,6 @@ public class CameraTable {
+             "/dev/bus/usb/%s".printf(port.substring(4).replace(",", "/")) : null;
+     }
+     
+-    private string? get_name_for_uuid(string uuid) {
+-        foreach (Volume volume in volume_monitor.get_volumes()) {
+-            if (volume.get_identifier(VOLUME_IDENTIFIER_KIND_UUID) == uuid) {
+-                return volume.get_name();
+-            }
+-        }
+-        return null;
+-    }
+-    
+-    private GLib.Icon? get_icon_for_uuid(string uuid) {
+-        foreach (Volume volume in volume_monitor.get_volumes()) {
+-            if (volume.get_identifier(VOLUME_IDENTIFIER_KIND_UUID) == uuid) {
+-                return volume.get_icon();
+-            }
+-        }
+-        return null;
+-    }
+-
+     private void update_camera_table() throws GPhotoError {
+         // need to do this because virtual ports come and go in the USB world (and probably others)
+         GPhoto.PortInfoList port_info_list;
+@@ -231,13 +186,13 @@ public class CameraTable {
+         GPhoto.CameraList camera_list;
+         do_op(GPhoto.CameraList.create(out camera_list), "create camera list");
+         do_op(abilities_list.detect(port_info_list, camera_list, null_context), "detect cameras");
+-        
++
+         Gee.HashMap<string, string> detected_map = new Gee.HashMap<string, string>(str_hash, str_equal,
+             str_equal);
+-        
++
+         // walk the USB chain and find all PTP cameras; this is necessary for usb_esp
+         string[] usb_cameras = get_all_usb_cameras();
+-        
++
+         // go through the detected camera list and glean their ports
+         for (int ctr = 0; ctr < camera_list.count(); ctr++) {
+             string name;
+@@ -245,55 +200,55 @@ public class CameraTable {
+ 
+             string port;
+             do_op(camera_list.get_value(ctr, out port), "get detected camera port");
+-            
++
+             debug("Detected %d/%d %s @ %s", ctr + 1, camera_list.count(), name, port);
+-            
++
+             // do some USB ESP, skipping ports that cannot be deduced
+             if (port.has_prefix("usb:")) {
+                 string full_port;
+                 if (!usb_esp(camera_list.count(), usb_cameras, port, out full_port))
+                     continue;
+-                
++
+                 port = full_port;
+             }
+ 
+             detected_map.set(port, name);
+         }
+-        
++
+         // find cameras that have disappeared
+         DiscoveredCamera[] missing = new DiscoveredCamera[0];
+         foreach (DiscoveredCamera camera in camera_map.values) {
+             GPhoto.PortInfo port_info;
+-            do_op(camera.gcamera.get_port_info(out port_info), 
++            do_op(camera.gcamera.get_port_info(out port_info),
+                 "retrieve missing camera port information");
+-            
++
+             GPhoto.CameraAbilities abilities;
+             do_op(camera.gcamera.get_abilities(out abilities), "retrieve camera abilities");
+-            
++
+             if (detected_map.has_key(port_info.path)) {
+                 debug("Found camera for %s @ %s in detected map", abilities.model, port_info.path);
+-                
++
+                 continue;
+             }
+-            
++
+             debug("%s @ %s missing", abilities.model, port_info.path);
+-            
++
+             missing += camera;
+         }
+-        
++
+         // have to remove from hash map outside of iterator
+         foreach (DiscoveredCamera camera in missing) {
+             GPhoto.PortInfo port_info;
+             do_op(camera.gcamera.get_port_info(out port_info),
+                 "retrieve missing camera port information");
+-            
++
+             GPhoto.CameraAbilities abilities;
+             do_op(camera.gcamera.get_abilities(out abilities), "retrieve missing camera abilities");
+ 
+             debug("Removing from camera table: %s @ %s", abilities.model, port_info.path);
+ 
+             camera_map.unset(get_port_uri(port_info.path));
+-            
++
+             camera_removed(camera);
+         }
+ 
+@@ -311,23 +266,6 @@ public class CameraTable {
+                 continue;
+             }
+             
+-            // Get display name for camera.
+-            string path = get_port_path(port);
+-            if (null != path) {
+-                GUdev.Device device = client.query_by_device_file(path);
+-                string serial = device.get_property("ID_SERIAL_SHORT");
+-                if (null != serial) {
+-                    // Try to get the name and icon.
+-                    display_name = get_name_for_uuid(serial);
+-                    icon = get_icon_for_uuid(serial);
+-                }
+-                if (null == display_name) {
+-                    display_name = device.get_sysfs_attr("product");
+-                } 
+-                if (null == display_name) {
+-                    display_name = device.get_property("ID_MODEL");
+-                }
+-            }
+             if (null == display_name) {
+                 // Default to GPhoto detected name.
+                 display_name = name;
+@@ -365,13 +303,6 @@ public class CameraTable {
+         }
+     }
+     
+-    private void on_udev_event(string action, GUdev.Device device) {
+-        debug("udev event: %s on %s", action, device.get_name());
+-        
+-        // Device add/removes often arrive in pairs; this allows for a single
+-        // update to occur when they come in all at once
+-        camera_update_scheduler.after_timeout(UPDATE_DELAY_MSEC, true);
+-    }
+     
+     public void on_volume_changed(Volume volume) {
+         camera_update_scheduler.after_timeout(UPDATE_DELAY_MSEC, true);
diff -ruN /usr/ports/graphics/shotwell/files/patch-src_Dialogs.vala shotwell/files/patch-src_Dialogs.vala
--- /usr/ports/graphics/shotwell/files/patch-src_Dialogs.vala	2011-03-17 20:23:51.000000000 -0700
+++ shotwell/files/patch-src_Dialogs.vala	1969-12-31 16:00:00.000000000 -0800
@@ -1,11 +0,0 @@
---- src/Dialogs.vala.orig	2011-03-17 22:13:24.000000000 -0500
-+++ src/Dialogs.vala	2011-03-17 22:14:45.000000000 -0500
-@@ -1449,7 +1449,7 @@
-                         ((FileIcon) app_icon).get_file().get_path()), Resources.DEFAULT_ICON_SCALE,
-                         Gdk.InterpType.BILINEAR, false));
-                 } else if (app_icon is ThemedIcon) {
--                    unowned Gdk.Pixbuf icon_pixbuf = 
-+                    Gdk.Pixbuf icon_pixbuf = 
-                         Gtk.IconTheme.get_default().load_icon(((ThemedIcon) app_icon).get_names()[0],
-                         Resources.DEFAULT_ICON_SCALE, Gtk.IconLookupFlags.FORCE_SIZE);
-                     
diff -ruN /usr/ports/graphics/shotwell/files/patch-src_photos_GRaw.vala shotwell/files/patch-src_photos_GRaw.vala
--- /usr/ports/graphics/shotwell/files/patch-src_photos_GRaw.vala	1969-12-31 16:00:00.000000000 -0800
+++ shotwell/files/patch-src_photos_GRaw.vala	2011-07-31 10:37:01.000000000 -0700
@@ -0,0 +1,38 @@
+$NetBSD: patch-src_photos_GRaw.vala,v 1.1 2011/07/31 17:37:01 gls Exp $
+
+Fix importing with libraw 0.13.6 & 0.13.7
+Taken from upstream: http://redmine.yorba.org/issues/3868
+
+--- src/photos/GRaw.vala.orig	2011-05-26 23:43:17.000000000 +0000
++++ src/photos/GRaw.vala
+@@ -110,8 +110,8 @@ public class ProcessedImage {
+     }
+     
+     public ProcessedImage(LibRaw.Processor proc) throws Exception {
+-        LibRaw.Result result;
+-        image = proc.make_mem_image(out result);
++        LibRaw.Result result = LibRaw.Result.SUCCESS;
++        image = proc.make_mem_image(ref result);
+         throw_exception("ProcessedImage", result);
+         assert(image != null);
+         
+@@ -122,8 +122,8 @@ public class ProcessedImage {
+     }
+     
+     public ProcessedImage.from_thumb(LibRaw.Processor proc) throws Exception {
+-        LibRaw.Result result;
+-        image = proc.make_mem_thumb(out result);
++        LibRaw.Result result = LibRaw.Result.SUCCESS;
++        image = proc.make_mem_thumb(ref result);
+         throw_exception("ProcessedImage.from_thumb", result);
+         assert(image != null);
+         
+@@ -280,7 +280,7 @@ private void throw_exception(string call
+     if (result == LibRaw.Result.SUCCESS)
+         return;
+     else if (result > 0)
+-        throw new Exception.SYSTEM_ERROR("System error %d: %s", (int) result, strerror(result));
++        throw new Exception.SYSTEM_ERROR("%s: System error %d: %s", caller, (int) result, strerror(result));
+     
+     string msg = "%s: %s".printf(caller, result.to_string());
+     
diff -ruN /usr/ports/graphics/shotwell/files/patch-vapi_libraw.vapi shotwell/files/patch-vapi_libraw.vapi
--- /usr/ports/graphics/shotwell/files/patch-vapi_libraw.vapi	1969-12-31 16:00:00.000000000 -0800
+++ shotwell/files/patch-vapi_libraw.vapi	2011-07-31 10:37:01.000000000 -0700
@@ -0,0 +1,19 @@
+$NetBSD: patch-vapi_libraw.vapi,v 1.1 2011/07/31 17:37:01 gls Exp $
+
+Fix importing with libraw 0.13.6 & 0.13.7
+Taken from upstream: http://redmine.yorba.org/issues/3868
+
+--- vapi/libraw.vapi.orig	2011-05-26 23:43:17.000000000 +0000
++++ vapi/libraw.vapi
+@@ -182,9 +182,9 @@ public class Processor {
+     public unowned ImageSizes get_sizes() { return sizes; }
+     public unowned Thumbnail get_thumbnail() { return thumbnail; }
+     [CCode (cname="libraw_dcraw_make_mem_image")]
+-    public ProcessedImage make_mem_image(out Result result);
++    public ProcessedImage make_mem_image(ref Result result);
+     [CCode (cname="libraw_dcraw_make_mem_thumb")]
+-    public ProcessedImage make_mem_thumb(out Result result);
++    public ProcessedImage make_mem_thumb(ref Result result);
+     public Result open_buffer(uint8[] buffer);
+     public Result open_file(string filename);
+     [CCode (cname="libraw_dcraw_process")]
diff -ruN /usr/ports/graphics/shotwell/pkg-plist shotwell/pkg-plist
--- /usr/ports/graphics/shotwell/pkg-plist	2010-12-28 14:39:11.000000000 -0800
+++ shotwell/pkg-plist	2011-08-12 17:56:38.000000000 -0700
@@ -1,64 +1,177 @@
 bin/shotwell
+bin/shotwell-video-thumbnailer
+lib/shotwell/plugins/builtin/facebook.png
+lib/shotwell/plugins/builtin/flickr.png
+lib/shotwell/plugins/builtin/picasa.png
+lib/shotwell/plugins/builtin/piwigo.png
+lib/shotwell/plugins/builtin/piwigo_authentication_pane.glade
+lib/shotwell/plugins/builtin/shotwell-publishing-extras.so
+lib/shotwell/plugins/builtin/shotwell-publishing.so
+lib/shotwell/plugins/builtin/shotwell-transitions.so
+lib/shotwell/plugins/builtin/slideshow-plugin.png
+lib/shotwell/plugins/builtin/yandex_publish_model.glade
+lib/shotwell/plugins/builtin/youtube.png
 share/applications/shotwell-viewer.desktop
 share/applications/shotwell.desktop
+share/gnome/help/shotwell/C/edit-adjustments.page
+share/gnome/help/shotwell/C/edit-crop.page
+share/gnome/help/shotwell/C/edit-enhance.page
+share/gnome/help/shotwell/C/edit-external.page
+share/gnome/help/shotwell/C/edit-nondestructive.page
+share/gnome/help/shotwell/C/edit-redeye.page
+share/gnome/help/shotwell/C/edit-rotate.page
+share/gnome/help/shotwell/C/edit-time-date.page
+share/gnome/help/shotwell/C/edit-undo.page
+share/gnome/help/shotwell/C/figures/crop_thirds.jpg
+share/gnome/help/shotwell/C/figures/edit_toolbar.png
+share/gnome/help/shotwell/C/figures/editing_overview.png
+share/gnome/help/shotwell/C/figures/shotwell_logo.png
+share/gnome/help/shotwell/C/figures/trash_process.png
+share/gnome/help/shotwell/C/formats.page
+share/gnome/help/shotwell/C/import-camera.page
+share/gnome/help/shotwell/C/import-f-spot.page
+share/gnome/help/shotwell/C/import-file.page
+share/gnome/help/shotwell/C/import-memorycard.page
+share/gnome/help/shotwell/C/index.page
+share/gnome/help/shotwell/C/organize-event.page
+share/gnome/help/shotwell/C/organize-flag.page
+share/gnome/help/shotwell/C/organize-rating.page
+share/gnome/help/shotwell/C/organize-remove.page
+share/gnome/help/shotwell/C/organize-search.page
+share/gnome/help/shotwell/C/organize-tag.page
+share/gnome/help/shotwell/C/organize-title.page
+share/gnome/help/shotwell/C/other-files.page
+share/gnome/help/shotwell/C/other-missing.page
+share/gnome/help/shotwell/C/other-multiple.page
+share/gnome/help/shotwell/C/running.page
+share/gnome/help/shotwell/C/share-background.page
+share/gnome/help/shotwell/C/share-export.page
+share/gnome/help/shotwell/C/share-print.page
+share/gnome/help/shotwell/C/share-send.page
+share/gnome/help/shotwell/C/share-slideshow.page
+share/gnome/help/shotwell/C/share-upload.page
+share/gnome/help/shotwell/C/view-displaying.page
+share/gnome/help/shotwell/C/view-information.page
+share/gnome/help/shotwell/C/view-sidebar.page
+share/icons/hicolor/16x16/apps/shotwell.svg
+share/icons/hicolor/24x24/apps/shotwell.svg
 share/icons/hicolor/scalable/apps/shotwell.svg
+share/locale/ar/LC_MESSAGES/shotwell-extras.mo
 share/locale/ar/LC_MESSAGES/shotwell.mo
+share/locale/ast/LC_MESSAGES/shotwell-extras.mo
 share/locale/ast/LC_MESSAGES/shotwell.mo
+share/locale/bg/LC_MESSAGES/shotwell-extras.mo
 share/locale/bg/LC_MESSAGES/shotwell.mo
+share/locale/bn/LC_MESSAGES/shotwell-extras.mo
 share/locale/bn/LC_MESSAGES/shotwell.mo
+share/locale/ca/LC_MESSAGES/shotwell-extras.mo
 share/locale/ca/LC_MESSAGES/shotwell.mo
+share/locale/cs/LC_MESSAGES/shotwell-extras.mo
 share/locale/cs/LC_MESSAGES/shotwell.mo
+share/locale/da/LC_MESSAGES/shotwell-extras.mo
 share/locale/da/LC_MESSAGES/shotwell.mo
+share/locale/de/LC_MESSAGES/shotwell-extras.mo
 share/locale/de/LC_MESSAGES/shotwell.mo
+share/locale/el/LC_MESSAGES/shotwell-extras.mo
 share/locale/el/LC_MESSAGES/shotwell.mo
+share/locale/en_GB/LC_MESSAGES/shotwell-extras.mo
 share/locale/en_GB/LC_MESSAGES/shotwell.mo
+share/locale/es/LC_MESSAGES/shotwell-extras.mo
 share/locale/es/LC_MESSAGES/shotwell.mo
+share/locale/et/LC_MESSAGES/shotwell-extras.mo
 share/locale/et/LC_MESSAGES/shotwell.mo
+share/locale/eu/LC_MESSAGES/shotwell-extras.mo
+share/locale/eu/LC_MESSAGES/shotwell.mo
+share/locale/fi/LC_MESSAGES/shotwell-extras.mo
 share/locale/fi/LC_MESSAGES/shotwell.mo
+share/locale/fr/LC_MESSAGES/shotwell-extras.mo
 share/locale/fr/LC_MESSAGES/shotwell.mo
+share/locale/gl/LC_MESSAGES/shotwell-extras.mo
 share/locale/gl/LC_MESSAGES/shotwell.mo
+share/locale/he/LC_MESSAGES/shotwell-extras.mo
+share/locale/he/LC_MESSAGES/shotwell.mo
+share/locale/hr/LC_MESSAGES/shotwell-extras.mo
 share/locale/hr/LC_MESSAGES/shotwell.mo
+share/locale/hu/LC_MESSAGES/shotwell-extras.mo
 share/locale/hu/LC_MESSAGES/shotwell.mo
+share/locale/id/LC_MESSAGES/shotwell-extras.mo
 share/locale/id/LC_MESSAGES/shotwell.mo
+share/locale/it/LC_MESSAGES/shotwell-extras.mo
 share/locale/it/LC_MESSAGES/shotwell.mo
+share/locale/ja/LC_MESSAGES/shotwell-extras.mo
 share/locale/ja/LC_MESSAGES/shotwell.mo
+share/locale/kk/LC_MESSAGES/shotwell-extras.mo
 share/locale/kk/LC_MESSAGES/shotwell.mo
+share/locale/ko/LC_MESSAGES/shotwell-extras.mo
 share/locale/ko/LC_MESSAGES/shotwell.mo
+share/locale/lt/LC_MESSAGES/shotwell-extras.mo
 share/locale/lt/LC_MESSAGES/shotwell.mo
+share/locale/lv/LC_MESSAGES/shotwell-extras.mo
 share/locale/lv/LC_MESSAGES/shotwell.mo
+share/locale/mk/LC_MESSAGES/shotwell-extras.mo
+share/locale/mk/LC_MESSAGES/shotwell.mo
+share/locale/nb/LC_MESSAGES/shotwell-extras.mo
 share/locale/nb/LC_MESSAGES/shotwell.mo
+share/locale/nl/LC_MESSAGES/shotwell-extras.mo
 share/locale/nl/LC_MESSAGES/shotwell.mo
+share/locale/pa/LC_MESSAGES/shotwell-extras.mo
 share/locale/pa/LC_MESSAGES/shotwell.mo
+share/locale/pl/LC_MESSAGES/shotwell-extras.mo
 share/locale/pl/LC_MESSAGES/shotwell.mo
+share/locale/pt/LC_MESSAGES/shotwell-extras.mo
 share/locale/pt/LC_MESSAGES/shotwell.mo
+share/locale/pt_BR/LC_MESSAGES/shotwell-extras.mo
+share/locale/pt_BR/LC_MESSAGES/shotwell.mo
+share/locale/ro/LC_MESSAGES/shotwell-extras.mo
 share/locale/ro/LC_MESSAGES/shotwell.mo
+share/locale/ru/LC_MESSAGES/shotwell-extras.mo
 share/locale/ru/LC_MESSAGES/shotwell.mo
+share/locale/sk/LC_MESSAGES/shotwell-extras.mo
 share/locale/sk/LC_MESSAGES/shotwell.mo
+share/locale/sl/LC_MESSAGES/shotwell-extras.mo
 share/locale/sl/LC_MESSAGES/shotwell.mo
+share/locale/sr/LC_MESSAGES/shotwell-extras.mo
 share/locale/sr/LC_MESSAGES/shotwell.mo
+share/locale/sv/LC_MESSAGES/shotwell-extras.mo
 share/locale/sv/LC_MESSAGES/shotwell.mo
+share/locale/ta/LC_MESSAGES/shotwell-extras.mo
+share/locale/ta/LC_MESSAGES/shotwell.mo
+share/locale/te/LC_MESSAGES/shotwell-extras.mo
+share/locale/te/LC_MESSAGES/shotwell.mo
+share/locale/th/LC_MESSAGES/shotwell-extras.mo
 share/locale/th/LC_MESSAGES/shotwell.mo
+share/locale/tr/LC_MESSAGES/shotwell-extras.mo
 share/locale/tr/LC_MESSAGES/shotwell.mo
+share/locale/uk/LC_MESSAGES/shotwell-extras.mo
 share/locale/uk/LC_MESSAGES/shotwell.mo
+share/locale/zh_CN/LC_MESSAGES/shotwell-extras.mo
 share/locale/zh_CN/LC_MESSAGES/shotwell.mo
+share/locale/zh_TW/LC_MESSAGES/shotwell-extras.mo
 share/locale/zh_TW/LC_MESSAGES/shotwell.mo
 %%DATADIR%%/icons/all-rejected.png
 %%DATADIR%%/icons/crop-pivot-reticle.png
 %%DATADIR%%/icons/crop.svg
 %%DATADIR%%/icons/drag_nub.png
 %%DATADIR%%/icons/enhance.png
+%%DATADIR%%/icons/filter-flagged.png
+%%DATADIR%%/icons/filter-photos.png
+%%DATADIR%%/icons/filter-raw.png
+%%DATADIR%%/icons/filter-videos.png
 %%DATADIR%%/icons/five-star-filter.svg
 %%DATADIR%%/icons/five-stars.svg
+%%DATADIR%%/icons/flag-page.png
+%%DATADIR%%/icons/flag-trinket.png
 %%DATADIR%%/icons/four-star-filter-plus.svg
 %%DATADIR%%/icons/four-stars.svg
+%%DATADIR%%/icons/generic-plugin.png
 %%DATADIR%%/icons/image-adjust.svg
 %%DATADIR%%/icons/import-all.png
 %%DATADIR%%/icons/import.svg
-%%DATADIR%%/icons/last-import-roll.png
 %%DATADIR%%/icons/make-primary.svg
 %%DATADIR%%/icons/merge.svg
 %%DATADIR%%/icons/multiple-events.png
 %%DATADIR%%/icons/multiple-tags.png
+%%DATADIR%%/icons/noninterpretable-video.png
 %%DATADIR%%/icons/one-event.png
 %%DATADIR%%/icons/one-star-filter-plus.svg
 %%DATADIR%%/icons/one-star.svg
@@ -67,15 +180,20 @@
 %%DATADIR%%/icons/publish.png
 %%DATADIR%%/icons/redeye.png
 %%DATADIR%%/icons/rejected.svg
+%%DATADIR%%/icons/searchbox-clear.svg
+%%DATADIR%%/icons/searchbox-find.svg
 %%DATADIR%%/icons/shotwell-16.svg
 %%DATADIR%%/icons/shotwell-24.svg
 %%DATADIR%%/icons/shotwell-street.jpg
 %%DATADIR%%/icons/shotwell.ico
 %%DATADIR%%/icons/shotwell.svg
+%%DATADIR%%/icons/slideshow-extension-point.png
+%%DATADIR%%/icons/sprocket.png
 %%DATADIR%%/icons/three-star-filter-plus.svg
 %%DATADIR%%/icons/three-stars.svg
 %%DATADIR%%/icons/two-star-filter-plus.svg
 %%DATADIR%%/icons/two-stars.svg
+%%DATADIR%%/icons/videos-page.png
 %%DATADIR%%/icons/zoom-in.png
 %%DATADIR%%/icons/zoom-out.png
 %%DATADIR%%/ui/collection.ui
@@ -85,18 +203,24 @@
 %%DATADIR%%/ui/fullscreen.ui
 %%DATADIR%%/ui/import.ui
 %%DATADIR%%/ui/import_queue.ui
+%%DATADIR%%/ui/media.ui
 %%DATADIR%%/ui/offline.ui
 %%DATADIR%%/ui/photo.ui
+%%DATADIR%%/ui/savedsearch.ui
+%%DATADIR%%/ui/search_bar.ui
+%%DATADIR%%/ui/set_background_dialog.glade
 %%DATADIR%%/ui/shotwell.glade
+%%DATADIR%%/ui/shotwell.xml
+%%DATADIR%%/ui/sidebar_default.ui
 %%DATADIR%%/ui/tags.ui
 %%DATADIR%%/ui/trash.ui
- at dirrm %%DATADIR%%/ui
 @dirrm %%DATADIR%%/icons
+ at dirrm %%DATADIR%%/ui
 @dirrm %%DATADIR%%
- at dirrmtry share/locale/kk/LC_MESSAGES
- at dirrmtry share/locale/kk
- at dirrmtry share/locale/ast/LC_MESSAGES
- at dirrmtry share/locale/ast
 @dirrmtry share/applications
+ at dirrmtry share/locale/ast
+ at dirrmtry share/locale/ast/LC_MESSAGES
+ at dirrmtry share/locale/kk
+ at dirrmtry share/locale/kk/LC_MESSAGES
 @exec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true
 @unexec %%LOCALBASE%%/bin/update-desktop-database > /dev/null || /usr/bin/true
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list