From 55fb6e0a508c327a780e0529697ba61f6051f81e61f645e3caa83db923379001 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Wed, 1 Aug 2012 12:32:02 +0000 Subject: [PATCH 1/9] - fixed one missed gp_devs = NULL which led to more crashes OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=73 --- lg-24-branch.patch | 8 ++++++++ libgphoto2.changes | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/lg-24-branch.patch b/lg-24-branch.patch index 9976909..08d3fec 100644 --- a/lg-24-branch.patch +++ b/lg-24-branch.patch @@ -114,3 +114,11 @@ diff -ru ./libgphoto2_port/libusb1/libusb1.c /home/marcus/projects/libgphoto2-2_ return (GP_OK); } +@@ -276,6 +276,7 @@ + port->pl = NULL; + } + if (gp_devs) libusb_free_device_list (gp_devs, 1); ++ gp_devs = NULL; gp_nrofdevs = 0; + free (gp_descs); + return (GP_OK); + } diff --git a/libgphoto2.changes b/libgphoto2.changes index 22c7a0d..cdba67f 100644 --- a/libgphoto2.changes +++ b/libgphoto2.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Aug 1 12:31:43 UTC 2012 - meissner@suse.com + +- fixed one missed gp_devs = NULL which led to more crashes + ------------------------------------------------------------------- Thu Jul 19 18:40:18 UTC 2012 - meissner@suse.com From d5715675af15b30fa9989c0a0aaf11b26ca33450862519c4f8e743b8f612c008 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Wed, 1 Aug 2012 12:32:36 +0000 Subject: [PATCH 2/9] bnc#771743 OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=74 --- libgphoto2.changes | 1 + 1 file changed, 1 insertion(+) diff --git a/libgphoto2.changes b/libgphoto2.changes index cdba67f..f9a5fd4 100644 --- a/libgphoto2.changes +++ b/libgphoto2.changes @@ -2,6 +2,7 @@ Wed Aug 1 12:31:43 UTC 2012 - meissner@suse.com - fixed one missed gp_devs = NULL which led to more crashes + bnc#771743 ------------------------------------------------------------------- Thu Jul 19 18:40:18 UTC 2012 - meissner@suse.com From 9458e59200b8e07a70caa16a301d6bb6a4cd358ee594c9e80ba57eaf180a7bc2 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Wed, 1 Aug 2012 15:01:18 +0000 Subject: [PATCH 3/9] the device list is freed by the libusb_exit above OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=75 --- lg-24-branch.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lg-24-branch.patch b/lg-24-branch.patch index 08d3fec..f7eec42 100644 --- a/lg-24-branch.patch +++ b/lg-24-branch.patch @@ -114,10 +114,10 @@ diff -ru ./libgphoto2_port/libusb1/libusb1.c /home/marcus/projects/libgphoto2-2_ return (GP_OK); } -@@ -276,6 +276,7 @@ +@@ -276,6 +276,6 @@ port->pl = NULL; } - if (gp_devs) libusb_free_device_list (gp_devs, 1); +- if (gp_devs) libusb_free_device_list (gp_devs, 1); + gp_devs = NULL; gp_nrofdevs = 0; free (gp_descs); return (GP_OK); From 0f688358b61f1f923553d3aee8d62ec46315525b4f992a6e52644556f47af246 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 2 Aug 2012 14:38:18 +0000 Subject: [PATCH 4/9] quilt refreshed with latest 2.4 libusb1 fixes OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=76 --- lg-24-branch.patch | 358 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 331 insertions(+), 27 deletions(-) diff --git a/lg-24-branch.patch b/lg-24-branch.patch index f7eec42..de3dc73 100644 --- a/lg-24-branch.patch +++ b/lg-24-branch.patch @@ -1,7 +1,8 @@ -diff -ru ./camlibs/canon/canon.c /home/marcus/projects/libgphoto2-2_4/libgphoto2/camlibs/canon/canon.c ---- camlibs/canon/canon.c 2012-03-30 23:23:47.000000000 +0200 -+++ camlibs/canon/canon.c 2012-07-19 20:19:15.693782425 +0200 -@@ -1333,8 +1333,7 @@ +Index: camlibs/canon/canon.c +=================================================================== +--- camlibs/canon/canon.c.orig ++++ camlibs/canon/canon.c +@@ -1333,8 +1333,7 @@ void canon_int_find_new_image ( Camera * if ( is_image ( new_name ) ) { /* Yup, we'll assume that this is the new image. */ GP_DEBUG ( " Found our new image file" ); @@ -11,10 +12,11 @@ diff -ru ./camlibs/canon/canon.c /home/marcus/projects/libgphoto2-2_4/libgphoto2 strcpy ( path->folder, canon2gphotopath ( camera, path->folder ) ); /* FIXME: Marcus: make it less large effort... */ -diff -ru ./camlibs/ptp2/library.c /home/marcus/projects/libgphoto2-2_4/libgphoto2/camlibs/ptp2/library.c ---- camlibs/ptp2/library.c 2012-04-15 17:11:15.000000000 +0200 -+++ camlibs/ptp2/library.c 2012-07-19 20:19:15.686782359 +0200 -@@ -715,7 +715,7 @@ +Index: camlibs/ptp2/library.c +=================================================================== +--- camlibs/ptp2/library.c.orig ++++ camlibs/ptp2/library.c +@@ -715,7 +715,7 @@ static struct { {"Nikon:Coolpix L110 (PTP mode)", 0x04b0, 0x017e, PTP_CAP}, /* miguel@rozsas.eng.br */ @@ -23,7 +25,7 @@ diff -ru ./camlibs/ptp2/library.c /home/marcus/projects/libgphoto2-2_4/libgphoto /* Graeme Wyatt */ {"Nikon:Coolpix L120 (PTP mode)", 0x04b0, 0x0185, PTP_CAP}, /* Kévin Ottens */ -@@ -740,6 +740,8 @@ +@@ -740,6 +740,8 @@ static struct { {"Nikon:Coolpix S8000 (PTP mode)",0x04b0, 0x021f, 0}, /* Aleksej Serdjukov */ {"Nikon:Coolpix S5100 (PTP mode)",0x04b0, 0x0220, 0}, @@ -32,7 +34,7 @@ diff -ru ./camlibs/ptp2/library.c /home/marcus/projects/libgphoto2-2_4/libgphoto /* Nikon Coolpix 2000 */ {"Nikon:Coolpix 2000 (PTP mode)", 0x04b0, 0x0302, 0}, /* From IRC reporter. */ -@@ -810,6 +812,11 @@ +@@ -810,6 +812,11 @@ static struct { /* IRC Reporter popolon */ {"Nikon:DSC D5100 (PTP mode)", 0x04b0, 0x0429, PTP_CAP|PTP_CAP_PREVIEW}, @@ -44,7 +46,7 @@ diff -ru ./camlibs/ptp2/library.c /home/marcus/projects/libgphoto2-2_4/libgphoto #if 0 /* Thomas Luzat */ /* this was reported as not working, mass storage only: -@@ -1058,6 +1065,8 @@ +@@ -1058,6 +1065,8 @@ static struct { /* Martin Lasarsch at SUSE. MTP_PROPLIST returns just 0 entries */ {"Canon:Digital IXUS 90 IS", 0x04a9, 0x3174, PTPBUG_DELETE_SENDS_EVENT}, @@ -53,7 +55,7 @@ diff -ru ./camlibs/ptp2/library.c /home/marcus/projects/libgphoto2-2_4/libgphoto /* https://sourceforge.net/tracker/?func=detail&aid=2722422&group_id=8874&atid=358874 */ {"Canon:Digital IXUS 85 IS", 0x04a9, 0x3174, PTPBUG_DELETE_SENDS_EVENT}, -@@ -1289,6 +1298,9 @@ +@@ -1289,6 +1298,9 @@ static struct { {"Apple:iPod Touch 3rd Gen (PTP mode)", 0x05ac, 0x1299, 0}, {"Apple:iPad (PTP mode)", 0x05ac, 0x129a, 0}, @@ -63,7 +65,7 @@ diff -ru ./camlibs/ptp2/library.c /home/marcus/projects/libgphoto2-2_4/libgphoto /* https://sourceforge.net/tracker/index.php?func=detail&aid=1869653&group_id=158745&atid=809061 */ {"Pioneer:DVR-LX60D", 0x08e4, 0x0142, 0}, -@@ -4555,12 +4567,14 @@ +@@ -4555,12 +4567,14 @@ get_file_func (CameraFilesystem *fs, con unsigned char *ximage = NULL; unsigned int xlen = 0; @@ -81,44 +83,346 @@ diff -ru ./camlibs/ptp2/library.c /home/marcus/projects/libgphoto2-2_4/libgphoto gp_log (GP_LOG_ERROR, "get_file_func/GP_FILE_TYPE_PREVIEW", "size mismatch %d vs %d", size, xlen); set_mimetype (camera, file, params->deviceinfo.VendorExtensionID, oi->ThumbFormat); CR (gp_file_set_data_and_size (file, (char*)ximage, xlen)); -diff -ru ./libgphoto2_port/libusb1/libusb1.c /home/marcus/projects/libgphoto2-2_4/libgphoto2/libgphoto2_port/libusb1/libusb1.c ---- libgphoto2_port/libusb1/libusb1.c 2012-03-26 21:34:10.000000000 +0200 -+++ libgphoto2_port/libusb1/libusb1.c 2012-07-19 20:05:50.066206830 +0200 -@@ -119,6 +119,7 @@ +Index: libgphoto2_port/libusb1/libusb1.c +=================================================================== +--- libgphoto2_port/libusb1/libusb1.c.orig ++++ libgphoto2_port/libusb1/libusb1.c +@@ -71,6 +71,10 @@ struct _GPPortPrivateLibrary { + + int detached; + ++ time_t devslastchecked; ++ int nrofdevs; ++ struct libusb_device_descriptor *descs; ++ libusb_device **devs; + }; + + GPPortType +@@ -79,38 +83,34 @@ gp_port_library_type (void) + return (GP_PORT_USB); + } + +-static time_t gp_devslastchecked = 0; +-static int gp_nrofdevs = 0; +-static struct libusb_device_descriptor *gp_descs; +-static libusb_device **gp_devs; + + static ssize_t +-load_devicelist (libusb_context *ctx) { ++load_devicelist (GPPortPrivateLibrary *pl) { + time_t xtime; + + time(&xtime); +- if (xtime != gp_devslastchecked) { +- if (gp_nrofdevs) +- libusb_free_device_list (gp_devs, 1); +- free (gp_descs); +- gp_nrofdevs = 0; +- gp_devs = NULL; +- gp_descs = NULL; ++ if (xtime != pl->devslastchecked) { ++ if (pl->nrofdevs) ++ libusb_free_device_list (pl->devs, 1); ++ free (pl->descs); ++ pl->nrofdevs = 0; ++ pl->devs = NULL; ++ pl->descs = NULL; + } +- if (!gp_nrofdevs) { ++ if (!pl->nrofdevs) { + int i; + +- gp_nrofdevs = libusb_get_device_list (ctx, &gp_devs); +- gp_descs = malloc (sizeof(gp_descs[0])*gp_nrofdevs); +- for (i=0;inrofdevs = libusb_get_device_list (pl->ctx, &pl->devs); ++ pl->descs = malloc (sizeof(pl->descs[0])*pl->nrofdevs); ++ for (i=0;inrofdevs;i++) { + int ret; +- ret = libusb_get_device_descriptor(gp_devs[i], &gp_descs[i]); ++ ret = libusb_get_device_descriptor(pl->devs[i], &pl->descs[i]); + if (ret) + gp_log (GP_LOG_ERROR, "libusb1", "libusb_get_device_descriptor(%d) returned %d", i, ret); + } + } +- time (&gp_devslastchecked); +- return gp_nrofdevs; ++ time (&pl->devslastchecked); ++ return pl->nrofdevs; + } + + int +@@ -119,6 +119,10 @@ gp_port_library_list (GPPortInfoList *li GPPortInfo info; int nrofdevices = 0; int d, i, i1, i2, unknownint; + libusb_context *ctx; ++ libusb_device **devs = NULL; ++ int nrofdevs = 0; ++ struct libusb_device_descriptor *descs; /* generic matcher. This will catch passed XXX,YYY entries for instance. */ info.type = GP_PORT_USB; -@@ -126,8 +127,8 @@ +@@ -126,26 +130,33 @@ gp_port_library_list (GPPortInfoList *li strcpy (info.path, "^usb:"); CHECK (gp_port_info_list_append (list, info)); - libusb_init (NULL); - gp_nrofdevs = load_devicelist (NULL); + libusb_init (&ctx); -+ gp_nrofdevs = load_devicelist (ctx); ++ nrofdevs = libusb_get_device_list (ctx, &devs); ++ descs = malloc (sizeof(descs[0])*nrofdevs); ++ for (i=0;ipl) { + libusb_exit (port->pl->ctx); ++ free (port->pl->descs); + free (port->pl); port->pl = NULL; } - if (gp_devs) libusb_free_device_list (gp_devs, 1); -+ gp_devs = NULL; gp_nrofdevs = 0; - free (gp_descs); +- free (gp_descs); return (GP_OK); } + +@@ -744,6 +754,7 @@ gp_port_usb_find_device_lib(GPPort *port + { + char *s; + int d, busnr = 0, devnr = 0; ++ GPPortPrivateLibrary *pl = port->pl; + + if (!port) + return (GP_ERROR_BAD_PARAMETERS); +@@ -767,23 +778,23 @@ gp_port_usb_find_device_lib(GPPort *port + return GP_ERROR_BAD_PARAMETERS; + } + +- gp_nrofdevs = load_devicelist (port->pl->ctx); ++ pl->nrofdevs = load_devicelist (port->pl); + +- for (d = 0; d < gp_nrofdevs; d++) { ++ for (d = 0; d < pl->nrofdevs; d++) { + struct libusb_config_descriptor *confdesc; + int ret; + int config = -1, interface = -1, altsetting = -1; + +- if ((gp_descs[d].idVendor != idvendor) || +- (gp_descs[d].idProduct != idproduct)) ++ if ((pl->descs[d].idVendor != idvendor) || ++ (pl->descs[d].idProduct != idproduct)) + continue; + +- if (busnr && (busnr != libusb_get_bus_number (gp_devs[d]))) ++ if (busnr && (busnr != libusb_get_bus_number (pl->devs[d]))) + continue; +- if (devnr && (devnr != libusb_get_device_address (gp_devs[d]))) ++ if (devnr && (devnr != libusb_get_device_address (pl->devs[d]))) + continue; + +- port->pl->d = gp_devs[d]; ++ port->pl->d = pl->devs[d]; + + gp_log (GP_LOG_VERBOSE, "libusb1", + "Looking for USB device " +@@ -791,9 +802,9 @@ gp_port_usb_find_device_lib(GPPort *port + idvendor, idproduct); + + /* Use the first config, interface and altsetting we find */ +- gp_port_usb_find_first_altsetting(gp_devs[d], &config, &interface, &altsetting); ++ gp_port_usb_find_first_altsetting(pl->devs[d], &config, &interface, &altsetting); + +- ret = libusb_get_config_descriptor (gp_devs[d], config, &confdesc); ++ ret = libusb_get_config_descriptor (pl->devs[d], config, &confdesc); + if (ret) + continue; + +@@ -810,11 +821,11 @@ gp_port_usb_find_device_lib(GPPort *port + port->settings.usb.interface = confdesc->interface[interface].altsetting[altsetting].bInterfaceNumber; + port->settings.usb.altsetting = confdesc->interface[interface].altsetting[altsetting].bAlternateSetting; + +- port->settings.usb.inep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_BULK); +- port->settings.usb.outep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_OUT, LIBUSB_TRANSFER_TYPE_BULK); +- port->settings.usb.intep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_INTERRUPT); ++ port->settings.usb.inep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_BULK); ++ port->settings.usb.outep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_OUT, LIBUSB_TRANSFER_TYPE_BULK); ++ port->settings.usb.intep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_INTERRUPT); + +- port->settings.usb.maxpacketsize = libusb_get_max_packet_size (gp_devs[d], port->settings.usb.inep); ++ port->settings.usb.maxpacketsize = libusb_get_max_packet_size (pl->devs[d], port->settings.usb.inep); + gp_log (GP_LOG_VERBOSE, "libusb1", + "Detected defaults: config %d, " + "interface %d, altsetting %d, " +@@ -998,6 +1009,8 @@ gp_port_usb_match_device_by_class(struct + if (class == 666) /* Special hack for MTP devices with MS OS descriptors. */ + return gp_port_usb_match_mtp_device (dev, configno, interfaceno, altsettingno); + ++ ret = libusb_get_device_descriptor(dev, &desc); ++ + if (desc.bDeviceClass == class && + (subclass == -1 || + desc.bDeviceSubClass == subclass) && +@@ -1005,7 +1018,6 @@ gp_port_usb_match_device_by_class(struct + desc.bDeviceProtocol == protocol)) + return 1; + +- ret = libusb_get_device_descriptor(dev, &desc); + + for (i = 0; i < desc.bNumConfigurations; i++) { + struct libusb_config_descriptor *config; +@@ -1045,6 +1057,7 @@ gp_port_usb_find_device_by_class_lib(GPP + { + char *s; + int d, busnr = 0, devnr = 0; ++ GPPortPrivateLibrary *pl = port->pl; + + if (!port) + return (GP_ERROR_BAD_PARAMETERS); +@@ -1065,14 +1078,14 @@ gp_port_usb_find_device_by_class_lib(GPP + if (!class) + return GP_ERROR_BAD_PARAMETERS; + +- gp_nrofdevs = load_devicelist (port->pl->ctx); +- for (d = 0; d < gp_nrofdevs; d++) { ++ pl->nrofdevs = load_devicelist (port->pl); ++ for (d = 0; d < pl->nrofdevs; d++) { + struct libusb_config_descriptor *confdesc; + int i, ret, config = -1, interface = -1, altsetting = -1; + +- if (busnr && (busnr != libusb_get_bus_number (gp_devs[d]))) ++ if (busnr && (busnr != libusb_get_bus_number (pl->devs[d]))) + continue; +- if (devnr && (devnr != libusb_get_device_address (gp_devs[d]))) ++ if (devnr && (devnr != libusb_get_device_address (pl->devs[d]))) + continue; + + gp_log (GP_LOG_VERBOSE, "gphoto2-port-usb", +@@ -1080,17 +1093,17 @@ gp_port_usb_find_device_by_class_lib(GPP + "(class 0x%x, subclass, 0x%x, protocol 0x%x)...", + class, subclass, protocol); + +- ret = gp_port_usb_match_device_by_class(gp_devs[d], class, subclass, protocol, &config, &interface, &altsetting); ++ ret = gp_port_usb_match_device_by_class(pl->devs[d], class, subclass, protocol, &config, &interface, &altsetting); + if (!ret) + continue; + +- port->pl->d = gp_devs[d]; ++ port->pl->d = pl->devs[d]; + gp_log (GP_LOG_VERBOSE, "libusb1", + "Found USB class device " + "(class 0x%x, subclass, 0x%x, protocol 0x%x)", + class, subclass, protocol); + +- ret = libusb_get_config_descriptor (gp_devs[d], config, &confdesc); ++ ret = libusb_get_config_descriptor (pl->devs[d], config, &confdesc); + if (ret) continue; + + /* Set the defaults */ +@@ -1098,9 +1111,9 @@ gp_port_usb_find_device_by_class_lib(GPP + port->settings.usb.interface = confdesc->interface[interface].altsetting[altsetting].bInterfaceNumber; + port->settings.usb.altsetting = confdesc->interface[interface].altsetting[altsetting].bAlternateSetting; + +- port->settings.usb.inep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_BULK); +- port->settings.usb.outep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_OUT, LIBUSB_TRANSFER_TYPE_BULK); +- port->settings.usb.intep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_INTERRUPT); ++ port->settings.usb.inep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_BULK); ++ port->settings.usb.outep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_OUT, LIBUSB_TRANSFER_TYPE_BULK); ++ port->settings.usb.intep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_INTERRUPT); + port->settings.usb.maxpacketsize = 0; + gp_log (GP_LOG_DEBUG, "libusb1", "inep to look for is %02x", port->settings.usb.inep); + for (i=0;iinterface[interface].altsetting[altsetting].bNumEndpoints;i++) { +@@ -1117,8 +1130,8 @@ gp_port_usb_find_device_by_class_lib(GPP + port->settings.usb.config, + port->settings.usb.interface, + port->settings.usb.altsetting, +- gp_descs[d].idVendor, +- gp_descs[d].idProduct, ++ pl->descs[d].idVendor, ++ pl->descs[d].idProduct, + port->settings.usb.inep, + port->settings.usb.outep, + port->settings.usb.intep From 8f4344343c1002d4960521a4ec3ddbaf52f094dc8d98396693e2345a327655b3 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 13 Sep 2012 08:48:03 +0000 Subject: [PATCH 5/9] - Updated to major release 2.5.0 - more dynamic lists (no more fixed limits) - libgphoto2 api adjustments to make it more sane, binary incompatible - new .so version 6 OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=77 --- lg-24-branch.patch | 428 ------------------------------------- libgphoto2-2.4.14.tar.bz2 | 3 - libgphoto2-2.5.0.tar.bz2 | 3 + libgphoto2-4096files.patch | 13 -- libgphoto2.changes | 9 + libgphoto2.spec | 15 +- 6 files changed, 16 insertions(+), 455 deletions(-) delete mode 100644 lg-24-branch.patch delete mode 100644 libgphoto2-2.4.14.tar.bz2 create mode 100644 libgphoto2-2.5.0.tar.bz2 delete mode 100644 libgphoto2-4096files.patch diff --git a/lg-24-branch.patch b/lg-24-branch.patch deleted file mode 100644 index de3dc73..0000000 --- a/lg-24-branch.patch +++ /dev/null @@ -1,428 +0,0 @@ -Index: camlibs/canon/canon.c -=================================================================== ---- camlibs/canon/canon.c.orig -+++ camlibs/canon/canon.c -@@ -1333,8 +1333,7 @@ void canon_int_find_new_image ( Camera * - if ( is_image ( new_name ) ) { - /* Yup, we'll assume that this is the new image. */ - GP_DEBUG ( " Found our new image file" ); -- strncpy ( path->name, new_name, -- strlen ( new_name ) ); -+ strcpy ( path->name, new_name ); - strcpy ( path->folder, canon2gphotopath ( camera, path->folder ) ); - - /* FIXME: Marcus: make it less large effort... */ -Index: camlibs/ptp2/library.c -=================================================================== ---- camlibs/ptp2/library.c.orig -+++ camlibs/ptp2/library.c -@@ -715,7 +715,7 @@ static struct { - {"Nikon:Coolpix L110 (PTP mode)", 0x04b0, 0x017e, PTP_CAP}, - - /* miguel@rozsas.eng.br */ -- {"Nikon:Coolpix P500 (PTP mode)", 0x04b0, 0x0184, 0}, -+ {"Nikon:Coolpix P500 (PTP mode)", 0x04b0, 0x0184, PTP_CAP}, - /* Graeme Wyatt */ - {"Nikon:Coolpix L120 (PTP mode)", 0x04b0, 0x0185, PTP_CAP}, - /* Kévin Ottens */ -@@ -740,6 +740,8 @@ static struct { - {"Nikon:Coolpix S8000 (PTP mode)",0x04b0, 0x021f, 0}, - /* Aleksej Serdjukov */ - {"Nikon:Coolpix S5100 (PTP mode)",0x04b0, 0x0220, 0}, -+ /* wlady.cs@gmail.com */ -+ {"Nikon:Coolpix P300 (PTP mode)", 0x04b0, 0x0221, 0}, - /* Nikon Coolpix 2000 */ - {"Nikon:Coolpix 2000 (PTP mode)", 0x04b0, 0x0302, 0}, - /* From IRC reporter. */ -@@ -810,6 +812,11 @@ static struct { - /* IRC Reporter popolon */ - {"Nikon:DSC D5100 (PTP mode)", 0x04b0, 0x0429, PTP_CAP|PTP_CAP_PREVIEW}, - -+ -+ /* http://sourceforge.net/tracker/?func=detail&aid=3536904&group_id=8874&atid=108874 */ -+ {"Nikon:V1", 0x04b0, 0x0601, PTP_CAP}, -+ -+ - #if 0 - /* Thomas Luzat */ - /* this was reported as not working, mass storage only: -@@ -1058,6 +1065,8 @@ static struct { - - /* Martin Lasarsch at SUSE. MTP_PROPLIST returns just 0 entries */ - {"Canon:Digital IXUS 90 IS", 0x04a9, 0x3174, PTPBUG_DELETE_SENDS_EVENT}, -+ /* Daniel Moyne */ -+ {"Canon:Powershot SD790 IS", 0x04a9, 0x3174, PTPBUG_DELETE_SENDS_EVENT}, - - /* https://sourceforge.net/tracker/?func=detail&aid=2722422&group_id=8874&atid=358874 */ - {"Canon:Digital IXUS 85 IS", 0x04a9, 0x3174, PTPBUG_DELETE_SENDS_EVENT}, -@@ -1289,6 +1298,9 @@ static struct { - {"Apple:iPod Touch 3rd Gen (PTP mode)", 0x05ac, 0x1299, 0}, - {"Apple:iPad (PTP mode)", 0x05ac, 0x129a, 0}, - -+ /* Don Cohen */ -+ {"Apple:iPhone 4S (PTP mode)", 0x05ac, 0x12a0, 0}, -+ - /* https://sourceforge.net/tracker/index.php?func=detail&aid=1869653&group_id=158745&atid=809061 */ - {"Pioneer:DVR-LX60D", 0x08e4, 0x0142, 0}, - -@@ -4555,12 +4567,14 @@ get_file_func (CameraFilesystem *fs, con - unsigned char *ximage = NULL; - unsigned int xlen = 0; - -- /* If thumb size is 0 then there is no thumbnail at all... */ -- if((size=oi->ThumbCompressedSize)==0) return (GP_ERROR_NOT_SUPPORTED); -+ size=oi->ThumbCompressedSize; -+ /* If thumb size is 0 and the OFC is not a image type (0x3800 / 0xb800)... */ -+ if ((size==0) && ((oi->ObjectFormat & 0x7800) != 0x3800)) -+ return GP_ERROR_NOT_SUPPORTED; - CPR (context, ptp_getthumb(params, - params->handles.Handler[object_id], - &ximage, &xlen)); -- if (xlen != size) -+ if (size && (xlen != size)) - gp_log (GP_LOG_ERROR, "get_file_func/GP_FILE_TYPE_PREVIEW", "size mismatch %d vs %d", size, xlen); - set_mimetype (camera, file, params->deviceinfo.VendorExtensionID, oi->ThumbFormat); - CR (gp_file_set_data_and_size (file, (char*)ximage, xlen)); -Index: libgphoto2_port/libusb1/libusb1.c -=================================================================== ---- libgphoto2_port/libusb1/libusb1.c.orig -+++ libgphoto2_port/libusb1/libusb1.c -@@ -71,6 +71,10 @@ struct _GPPortPrivateLibrary { - - int detached; - -+ time_t devslastchecked; -+ int nrofdevs; -+ struct libusb_device_descriptor *descs; -+ libusb_device **devs; - }; - - GPPortType -@@ -79,38 +83,34 @@ gp_port_library_type (void) - return (GP_PORT_USB); - } - --static time_t gp_devslastchecked = 0; --static int gp_nrofdevs = 0; --static struct libusb_device_descriptor *gp_descs; --static libusb_device **gp_devs; - - static ssize_t --load_devicelist (libusb_context *ctx) { -+load_devicelist (GPPortPrivateLibrary *pl) { - time_t xtime; - - time(&xtime); -- if (xtime != gp_devslastchecked) { -- if (gp_nrofdevs) -- libusb_free_device_list (gp_devs, 1); -- free (gp_descs); -- gp_nrofdevs = 0; -- gp_devs = NULL; -- gp_descs = NULL; -+ if (xtime != pl->devslastchecked) { -+ if (pl->nrofdevs) -+ libusb_free_device_list (pl->devs, 1); -+ free (pl->descs); -+ pl->nrofdevs = 0; -+ pl->devs = NULL; -+ pl->descs = NULL; - } -- if (!gp_nrofdevs) { -+ if (!pl->nrofdevs) { - int i; - -- gp_nrofdevs = libusb_get_device_list (ctx, &gp_devs); -- gp_descs = malloc (sizeof(gp_descs[0])*gp_nrofdevs); -- for (i=0;inrofdevs = libusb_get_device_list (pl->ctx, &pl->devs); -+ pl->descs = malloc (sizeof(pl->descs[0])*pl->nrofdevs); -+ for (i=0;inrofdevs;i++) { - int ret; -- ret = libusb_get_device_descriptor(gp_devs[i], &gp_descs[i]); -+ ret = libusb_get_device_descriptor(pl->devs[i], &pl->descs[i]); - if (ret) - gp_log (GP_LOG_ERROR, "libusb1", "libusb_get_device_descriptor(%d) returned %d", i, ret); - } - } -- time (&gp_devslastchecked); -- return gp_nrofdevs; -+ time (&pl->devslastchecked); -+ return pl->nrofdevs; - } - - int -@@ -119,6 +119,10 @@ gp_port_library_list (GPPortInfoList *li - GPPortInfo info; - int nrofdevices = 0; - int d, i, i1, i2, unknownint; -+ libusb_context *ctx; -+ libusb_device **devs = NULL; -+ int nrofdevs = 0; -+ struct libusb_device_descriptor *descs; - - /* generic matcher. This will catch passed XXX,YYY entries for instance. */ - info.type = GP_PORT_USB; -@@ -126,26 +130,33 @@ gp_port_library_list (GPPortInfoList *li - strcpy (info.path, "^usb:"); - CHECK (gp_port_info_list_append (list, info)); - -- libusb_init (NULL); -- gp_nrofdevs = load_devicelist (NULL); -+ libusb_init (&ctx); -+ nrofdevs = libusb_get_device_list (ctx, &devs); -+ descs = malloc (sizeof(descs[0])*nrofdevs); -+ for (i=0;ipl) { - libusb_exit (port->pl->ctx); -+ free (port->pl->descs); - free (port->pl); - port->pl = NULL; - } -- if (gp_devs) libusb_free_device_list (gp_devs, 1); -- free (gp_descs); - return (GP_OK); - } - -@@ -744,6 +754,7 @@ gp_port_usb_find_device_lib(GPPort *port - { - char *s; - int d, busnr = 0, devnr = 0; -+ GPPortPrivateLibrary *pl = port->pl; - - if (!port) - return (GP_ERROR_BAD_PARAMETERS); -@@ -767,23 +778,23 @@ gp_port_usb_find_device_lib(GPPort *port - return GP_ERROR_BAD_PARAMETERS; - } - -- gp_nrofdevs = load_devicelist (port->pl->ctx); -+ pl->nrofdevs = load_devicelist (port->pl); - -- for (d = 0; d < gp_nrofdevs; d++) { -+ for (d = 0; d < pl->nrofdevs; d++) { - struct libusb_config_descriptor *confdesc; - int ret; - int config = -1, interface = -1, altsetting = -1; - -- if ((gp_descs[d].idVendor != idvendor) || -- (gp_descs[d].idProduct != idproduct)) -+ if ((pl->descs[d].idVendor != idvendor) || -+ (pl->descs[d].idProduct != idproduct)) - continue; - -- if (busnr && (busnr != libusb_get_bus_number (gp_devs[d]))) -+ if (busnr && (busnr != libusb_get_bus_number (pl->devs[d]))) - continue; -- if (devnr && (devnr != libusb_get_device_address (gp_devs[d]))) -+ if (devnr && (devnr != libusb_get_device_address (pl->devs[d]))) - continue; - -- port->pl->d = gp_devs[d]; -+ port->pl->d = pl->devs[d]; - - gp_log (GP_LOG_VERBOSE, "libusb1", - "Looking for USB device " -@@ -791,9 +802,9 @@ gp_port_usb_find_device_lib(GPPort *port - idvendor, idproduct); - - /* Use the first config, interface and altsetting we find */ -- gp_port_usb_find_first_altsetting(gp_devs[d], &config, &interface, &altsetting); -+ gp_port_usb_find_first_altsetting(pl->devs[d], &config, &interface, &altsetting); - -- ret = libusb_get_config_descriptor (gp_devs[d], config, &confdesc); -+ ret = libusb_get_config_descriptor (pl->devs[d], config, &confdesc); - if (ret) - continue; - -@@ -810,11 +821,11 @@ gp_port_usb_find_device_lib(GPPort *port - port->settings.usb.interface = confdesc->interface[interface].altsetting[altsetting].bInterfaceNumber; - port->settings.usb.altsetting = confdesc->interface[interface].altsetting[altsetting].bAlternateSetting; - -- port->settings.usb.inep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_BULK); -- port->settings.usb.outep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_OUT, LIBUSB_TRANSFER_TYPE_BULK); -- port->settings.usb.intep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_INTERRUPT); -+ port->settings.usb.inep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_BULK); -+ port->settings.usb.outep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_OUT, LIBUSB_TRANSFER_TYPE_BULK); -+ port->settings.usb.intep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_INTERRUPT); - -- port->settings.usb.maxpacketsize = libusb_get_max_packet_size (gp_devs[d], port->settings.usb.inep); -+ port->settings.usb.maxpacketsize = libusb_get_max_packet_size (pl->devs[d], port->settings.usb.inep); - gp_log (GP_LOG_VERBOSE, "libusb1", - "Detected defaults: config %d, " - "interface %d, altsetting %d, " -@@ -998,6 +1009,8 @@ gp_port_usb_match_device_by_class(struct - if (class == 666) /* Special hack for MTP devices with MS OS descriptors. */ - return gp_port_usb_match_mtp_device (dev, configno, interfaceno, altsettingno); - -+ ret = libusb_get_device_descriptor(dev, &desc); -+ - if (desc.bDeviceClass == class && - (subclass == -1 || - desc.bDeviceSubClass == subclass) && -@@ -1005,7 +1018,6 @@ gp_port_usb_match_device_by_class(struct - desc.bDeviceProtocol == protocol)) - return 1; - -- ret = libusb_get_device_descriptor(dev, &desc); - - for (i = 0; i < desc.bNumConfigurations; i++) { - struct libusb_config_descriptor *config; -@@ -1045,6 +1057,7 @@ gp_port_usb_find_device_by_class_lib(GPP - { - char *s; - int d, busnr = 0, devnr = 0; -+ GPPortPrivateLibrary *pl = port->pl; - - if (!port) - return (GP_ERROR_BAD_PARAMETERS); -@@ -1065,14 +1078,14 @@ gp_port_usb_find_device_by_class_lib(GPP - if (!class) - return GP_ERROR_BAD_PARAMETERS; - -- gp_nrofdevs = load_devicelist (port->pl->ctx); -- for (d = 0; d < gp_nrofdevs; d++) { -+ pl->nrofdevs = load_devicelist (port->pl); -+ for (d = 0; d < pl->nrofdevs; d++) { - struct libusb_config_descriptor *confdesc; - int i, ret, config = -1, interface = -1, altsetting = -1; - -- if (busnr && (busnr != libusb_get_bus_number (gp_devs[d]))) -+ if (busnr && (busnr != libusb_get_bus_number (pl->devs[d]))) - continue; -- if (devnr && (devnr != libusb_get_device_address (gp_devs[d]))) -+ if (devnr && (devnr != libusb_get_device_address (pl->devs[d]))) - continue; - - gp_log (GP_LOG_VERBOSE, "gphoto2-port-usb", -@@ -1080,17 +1093,17 @@ gp_port_usb_find_device_by_class_lib(GPP - "(class 0x%x, subclass, 0x%x, protocol 0x%x)...", - class, subclass, protocol); - -- ret = gp_port_usb_match_device_by_class(gp_devs[d], class, subclass, protocol, &config, &interface, &altsetting); -+ ret = gp_port_usb_match_device_by_class(pl->devs[d], class, subclass, protocol, &config, &interface, &altsetting); - if (!ret) - continue; - -- port->pl->d = gp_devs[d]; -+ port->pl->d = pl->devs[d]; - gp_log (GP_LOG_VERBOSE, "libusb1", - "Found USB class device " - "(class 0x%x, subclass, 0x%x, protocol 0x%x)", - class, subclass, protocol); - -- ret = libusb_get_config_descriptor (gp_devs[d], config, &confdesc); -+ ret = libusb_get_config_descriptor (pl->devs[d], config, &confdesc); - if (ret) continue; - - /* Set the defaults */ -@@ -1098,9 +1111,9 @@ gp_port_usb_find_device_by_class_lib(GPP - port->settings.usb.interface = confdesc->interface[interface].altsetting[altsetting].bInterfaceNumber; - port->settings.usb.altsetting = confdesc->interface[interface].altsetting[altsetting].bAlternateSetting; - -- port->settings.usb.inep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_BULK); -- port->settings.usb.outep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_OUT, LIBUSB_TRANSFER_TYPE_BULK); -- port->settings.usb.intep = gp_port_usb_find_ep(gp_devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_INTERRUPT); -+ port->settings.usb.inep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_BULK); -+ port->settings.usb.outep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_OUT, LIBUSB_TRANSFER_TYPE_BULK); -+ port->settings.usb.intep = gp_port_usb_find_ep(pl->devs[d], config, interface, altsetting, LIBUSB_ENDPOINT_IN, LIBUSB_TRANSFER_TYPE_INTERRUPT); - port->settings.usb.maxpacketsize = 0; - gp_log (GP_LOG_DEBUG, "libusb1", "inep to look for is %02x", port->settings.usb.inep); - for (i=0;iinterface[interface].altsetting[altsetting].bNumEndpoints;i++) { -@@ -1117,8 +1130,8 @@ gp_port_usb_find_device_by_class_lib(GPP - port->settings.usb.config, - port->settings.usb.interface, - port->settings.usb.altsetting, -- gp_descs[d].idVendor, -- gp_descs[d].idProduct, -+ pl->descs[d].idVendor, -+ pl->descs[d].idProduct, - port->settings.usb.inep, - port->settings.usb.outep, - port->settings.usb.intep diff --git a/libgphoto2-2.4.14.tar.bz2 b/libgphoto2-2.4.14.tar.bz2 deleted file mode 100644 index 2946efd..0000000 --- a/libgphoto2-2.4.14.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:59b32d45252f67d066cc3bda7a59f8078e0cf4e7f23590a4b621633e81060292 -size 4481384 diff --git a/libgphoto2-2.5.0.tar.bz2 b/libgphoto2-2.5.0.tar.bz2 new file mode 100644 index 0000000..fe06bb7 --- /dev/null +++ b/libgphoto2-2.5.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7df389f1b034be021066227c0908b8f21d3be0cd0c6ed56979c04c3a9f75b31 +size 4635612 diff --git a/libgphoto2-4096files.patch b/libgphoto2-4096files.patch deleted file mode 100644 index 788faab..0000000 --- a/libgphoto2-4096files.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: libgphoto2-2.4.9/libgphoto2/gphoto2-list.c -=================================================================== ---- libgphoto2-2.4.9.orig/libgphoto2/gphoto2-list.c -+++ libgphoto2-2.4.9/libgphoto2/gphoto2-list.c -@@ -72,7 +72,7 @@ - - #ifdef CAMERALIST_STRUCT_COMPATIBILITY - --#define MAX_ENTRIES 1024 -+#define MAX_ENTRIES 4096 - #define MAX_LIST_STRING_LENGTH 128 - struct _CameraList { - int count; diff --git a/libgphoto2.changes b/libgphoto2.changes index f9a5fd4..e12f3a0 100644 --- a/libgphoto2.changes +++ b/libgphoto2.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Thu Sep 13 08:45:14 UTC 2012 - meissner@suse.com + +- Updated to major release 2.5.0 + - more dynamic lists (no more fixed limits) + - libgphoto2 api adjustments to make it more sane, + binary incompatible + - new .so version 6 + ------------------------------------------------------------------- Wed Aug 1 12:31:43 UTC 2012 - meissner@suse.com diff --git a/libgphoto2.spec b/libgphoto2.spec index fc2ae9a..513b5fd 100644 --- a/libgphoto2.spec +++ b/libgphoto2.spec @@ -38,12 +38,10 @@ Obsoletes: libgphoto2-64bit Summary: A Digital Camera Library License: LGPL-2.1+ Group: Hardware/Camera -Version: 2.4.14 +Version: 2.5.0 Release: 0 Source0: libgphoto2-%{version}.tar.bz2 Source1: baselibs.conf -Patch0: lg-24-branch.patch -Patch1: libgphoto2-4096files.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Recommends: %{name}-lang = %{version} @@ -78,8 +76,6 @@ These are its development libraries and headers. %lang_package %prep %setup -q -%patch0 -p0 -%patch1 -p1 %build #AUTOPOINT=true autoreconf -fi @@ -97,7 +93,7 @@ make check # skip-check-libtool-deps export LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} %makeinstall -%{find_lang} libgphoto2-2 +%{find_lang} libgphoto2-6 %{find_lang} libgphoto2_port-0 cat libgphoto2-2.lang libgphoto2_port-0.lang > libgphoto2-all.lang pushd packaging/generic @@ -138,7 +134,6 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man3/libgphoto2.3* %{_mandir}/man3/libgphoto2_port.3* /lib/udev/rules.d/40-libgphoto2.rules -# /usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi %files lang -f libgphoto2-all.lang @@ -153,10 +148,8 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pkgconfig/libgphoto2.pc %{_libdir}/pkgconfig/libgphoto2_port.pc -%post -/sbin/ldconfig +%post -p /sbin/ldconfig -%postun -/sbin/ldconfig +%postun -p /sbin/ldconfig %changelog From aed148ed25afe0b2f3626eb75015b9d7177104c9567afcd16b56164204f023b3 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 13 Sep 2012 08:58:41 +0000 Subject: [PATCH 6/9] add libusb-devel back temporarily OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=78 --- libgphoto2.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/libgphoto2.spec b/libgphoto2.spec index 513b5fd..6127171 100644 --- a/libgphoto2.spec +++ b/libgphoto2.spec @@ -25,6 +25,7 @@ BuildRequires: libexif-devel BuildRequires: libjpeg-devel BuildRequires: libtool BuildRequires: libusb-1_0-devel +BuildRequires: libusb-devel BuildRequires: lockdev-devel BuildRequires: pkg-config BuildRequires: udev From bc06194ab7e10e714440bcf04df1a540f07167f5d21d411dd964bedc8c9f657c Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 13 Sep 2012 09:06:45 +0000 Subject: [PATCH 7/9] correct majors OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=79 --- libgphoto2.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libgphoto2.spec b/libgphoto2.spec index 6127171..b2d77aa 100644 --- a/libgphoto2.spec +++ b/libgphoto2.spec @@ -95,8 +95,8 @@ make check export LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir} %makeinstall %{find_lang} libgphoto2-6 -%{find_lang} libgphoto2_port-0 -cat libgphoto2-2.lang libgphoto2_port-0.lang > libgphoto2-all.lang +%{find_lang} libgphoto2_port-10 +cat libgphoto2-6.lang libgphoto2_port-10.lang > libgphoto2-all.lang pushd packaging/generic export CAMLIBS=$RPM_BUILD_ROOT/%_libdir/libgphoto2/%version/ # new style UDEV rules (gudev) which will obsolete HAL fdi files From 245087a66029e8f0c3f067e93dc3e1eb485b795ef6e51f9e8954732ea493d53b Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 13 Sep 2012 09:23:47 +0000 Subject: [PATCH 8/9] OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=80 --- libgphoto2.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libgphoto2.spec b/libgphoto2.spec index b2d77aa..b19328a 100644 --- a/libgphoto2.spec +++ b/libgphoto2.spec @@ -127,7 +127,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libgphoto2 %{_libdir}/libgphoto2_port %dir %{_defaultdocdir}/%{name} -%exclude %{_defaultdocdir}/%{name}/apidocs.html +# %exclude %{_defaultdocdir}/%{name}/apidocs.html %{_defaultdocdir}/%{name}/* %{prefix}/share/%{name} %{_libdir}/libgphoto2.so.* From 63da26e54f8b876f87b0897443ec015c06c57942037d7457d7fb239c017c9dcd Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 13 Sep 2012 12:55:15 +0000 Subject: [PATCH 9/9] removed comment out % line OBS-URL: https://build.opensuse.org/package/show/graphics/libgphoto2?expand=0&rev=81 --- libgphoto2.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/libgphoto2.spec b/libgphoto2.spec index b19328a..4092d10 100644 --- a/libgphoto2.spec +++ b/libgphoto2.spec @@ -127,7 +127,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libgphoto2 %{_libdir}/libgphoto2_port %dir %{_defaultdocdir}/%{name} -# %exclude %{_defaultdocdir}/%{name}/apidocs.html %{_defaultdocdir}/%{name}/* %{prefix}/share/%{name} %{_libdir}/libgphoto2.so.*