From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Aug 13 01:50:09 2011 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9EEBF1065677 for ; Sat, 13 Aug 2011 01:50:09 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 800D28FC12 for ; Sat, 13 Aug 2011 01:50:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p7D1o9I3007199 for ; Sat, 13 Aug 2011 01:50:09 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p7D1o924007198; Sat, 13 Aug 2011 01:50:09 GMT (envelope-from gnats) Resent-Date: Sat, 13 Aug 2011 01:50:09 GMT Resent-Message-Id: <201108130150.p7D1o924007198@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, David Thiel Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D42DD1065703 for ; Sat, 13 Aug 2011 01:42:02 +0000 (UTC) (envelope-from lx@redundancy.redundancy.org) Received: from redundancy.redundancy.org (75-101-96-57.dsl.static.sonic.net [75.101.96.57]) by mx1.freebsd.org (Postfix) with SMTP id 4D79B8FC15 for ; Sat, 13 Aug 2011 01:42:02 +0000 (UTC) Received: (qmail 69653 invoked by uid 1001); 13 Aug 2011 01:15:44 -0000 Message-Id: <20110813011544.69652.qmail@redundancy.redundancy.org> Date: 13 Aug 2011 01:15:44 -0000 From: David Thiel To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/159733: Update: graphics/shotwell -> 0.10.1 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: David Thiel List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Aug 2011 01:50:09 -0000 >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@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 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 detected_map = new Gee.HashMap(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 -@dirrm %%DATADIR%%/ui @dirrm %%DATADIR%%/icons +@dirrm %%DATADIR%%/ui @dirrm %%DATADIR%% -@dirrmtry share/locale/kk/LC_MESSAGES -@dirrmtry share/locale/kk -@dirrmtry share/locale/ast/LC_MESSAGES -@dirrmtry share/locale/ast @dirrmtry share/applications +@dirrmtry share/locale/ast +@dirrmtry share/locale/ast/LC_MESSAGES +@dirrmtry share/locale/kk +@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: