openSUSE Commits
Threads by month
- ----- 2024 -----
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
June 2010
- 1 participants
- 564 discussions
Hello community,
here is the log from the commit of package pm-utils for openSUSE:Factory
checked in at Tue Jun 29 16:49:05 CEST 2010.
--------
--- pm-utils/pm-utils.changes 2010-06-26 13:43:00.000000000 +0200
+++ pm-utils/pm-utils.changes 2010-06-29 13:52:46.000000000 +0200
@@ -1,0 +2,5 @@
+Tue Jun 29 11:52:04 UTC 2010 - coolo(a)novell.com
+
+- bash scripts are better if they follow the syntax
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pm-utils.spec ++++++
--- /var/tmp/diff_new_pack.Fa92Cb/_old 2010-06-29 16:47:42.000000000 +0200
+++ /var/tmp/diff_new_pack.Fa92Cb/_new 2010-06-29 16:47:42.000000000 +0200
@@ -23,7 +23,7 @@
Name: pm-utils
Version: 1.3.0
-Release: 6
+Release: 7
Summary: Tools to suspend and hibernate computers
License: GPLv2+
Group: System/Base
++++++ pm-utils-1.3.0-direct-on_ac_power.patch ++++++
--- /var/tmp/diff_new_pack.Fa92Cb/_old 2010-06-29 16:47:42.000000000 +0200
+++ /var/tmp/diff_new_pack.Fa92Cb/_new 2010-06-29 16:47:42.000000000 +0200
@@ -1,8 +1,8 @@
Index: pm-utils-1.3.0/src/on_ac_power
===================================================================
---- pm-utils-1.3.0.orig/src/on_ac_power 2010-06-23 13:01:57.000000000 +0200
-+++ pm-utils-1.3.0/src/on_ac_power 2010-06-23 16:06:47.655655711 +0200
-@@ -30,49 +30,15 @@
+--- pm-utils-1.3.0.orig/src/on_ac_power 2010-06-29 13:49:48.000000000 +0200
++++ pm-utils-1.3.0/src/on_ac_power 2010-06-29 13:51:52.411624010 +0200
+@@ -30,49 +30,16 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
@@ -34,6 +34,7 @@
+ # Our default return changes to failed.
+ ret=1
+ read -r ps_status < "$ps/online"
++done
-# Check for AC/DC/etc adapters
-ac_adapters="$(hal-find-by-capability --capability ac_adapter 2>/dev/null)"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libslab for openSUSE:Factory
checked in at Tue Jun 29 16:47:32 CEST 2010.
--------
--- libslab/libslab.changes 2010-03-30 05:24:12.000000000 +0200
+++ libslab/libslab.changes 2010-06-28 14:53:02.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Jun 24 11:04:53 CST 2010 - dliang(a)novell.com
+
+- Add libslab-document-icon-missing.patch to display icons in
+ document tab. Fix bnc#538917 and bnc#613316.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
libslab-document-icon-missing.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libslab.spec ++++++
--- /var/tmp/diff_new_pack.jc9yLn/_old 2010-06-29 16:47:17.000000000 +0200
+++ /var/tmp/diff_new_pack.jc9yLn/_new 2010-06-29 16:47:17.000000000 +0200
@@ -19,13 +19,15 @@
Name: libslab
Version: 2.30.0
-Release: 1
+Release: 2
License: GPLv2+
Summary: Library to create tile-based UI for GNOME
Group: Development/Libraries/GNOME
Source0: %{name}-%{version}.tar.bz2
# PATCH-FIX-UPSTREAM libslab-bnc536778-fix-libslab-split.patch bnc#536778 mxwu(a)novell.com -- Look at the right place for the favorites
Patch1: libslab-bnc536778-fix-libslab-split.patch
+# PATCH-FIX-UPSTREAM libslab-document-icon-missing.patch bnc#538917 dliang(a)novell.com -- Fix display of icons in document tab of the main menu. Note that the image_is_broken variable is actually useless (we just set it to be consistent)
+Patch2: libslab-document-icon-missing.patch
BuildRequires: gconf2-devel
BuildRequires: glib2-devel
BuildRequires: gnome-desktop-devel
@@ -77,6 +79,7 @@
%prep
%setup -q
%patch1 -p1
+%patch2 -p1
%build
%configure --disable-static
++++++ libslab-document-icon-missing.patch ++++++
diff -Npur libslab-old/libslab/document-tile.c libslab-new/libslab/document-tile.c
--- libslab-old/libslab/document-tile.c 2010-06-23 18:11:17.000000000 +0800
+++ libslab-new/libslab/document-tile.c 2010-06-23 18:10:12.000000000 +0800
@@ -434,10 +434,9 @@ load_image (DocumentTile *tile)
gchar *icon_id = NULL;
gboolean free_icon_id = TRUE;
GnomeDesktopThumbnailFactory *thumbnail_factory;
- GIcon *icon;
+ GIcon *icon = NULL;
libslab_checkpoint ("document-tile.c: load_image(): start for %s", TILE (tile)->uri);
-
if (priv->force_icon_name || ! priv->mime_type) {
if (priv->force_icon_name)
icon_id = priv->force_icon_name;
@@ -455,17 +454,26 @@ load_image (DocumentTile *tile)
if (! icon_id) {
icon = g_content_type_get_icon (priv->mime_type);
g_object_get (icon, "name", &icon_id, NULL);
-
- g_object_unref (icon);
}
exit:
- priv->image_is_broken = slab_load_image (
- GTK_IMAGE (NAMEPLATE_TILE (tile)->image), GTK_ICON_SIZE_DND, icon_id);
+ if (icon_id) {
+ priv->image_is_broken = slab_load_image (
+ GTK_IMAGE (NAMEPLATE_TILE (tile)->image), GTK_ICON_SIZE_DND, icon_id);
+ } else {
+ if (icon) {
+ priv->image_is_broken = TRUE;
+ gtk_image_set_from_gicon (GTK_IMAGE (NAMEPLATE_TILE (tile)->image), icon, GTK_ICON_SIZE_DND);
+ } else {
+ priv->image_is_broken = FALSE;
+ }
+ }
if (free_icon_id && icon_id)
g_free (icon_id);
+ if (icon)
+ g_object_unref (icon);
libslab_checkpoint ("document-tile.c: load_image(): end");
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package mdadm for openSUSE:Factory
checked in at Tue Jun 29 16:43:00 CEST 2010.
--------
--- mdadm/mdadm.changes 2010-06-01 15:10:17.000000000 +0200
+++ mdadm/mdadm.changes 2010-06-28 11:37:59.000000000 +0200
@@ -6,0 +7,26 @@
+Fri Apr 23 10:57:57 UTC 2010 - nfbrown(a)novell.com
+
+- IMSM-part.patch - never try to include partitions in an
+ IMSM array - bnc#597787
+- container-argv-check - avoid incorrect error message when
+ assembling multiple containers - bnc#598827
+
+-------------------------------------------------------------------
+Thu Apr 22 15:04:30 CEST 2010 - mmarek(a)suse.cz
+
+- mkinitrd-boot.sh: Fix booting with root=/dev/disk/by-id/md-uuid*,
+ run mdadm -v when linuxrc=trace is given (bnc#597787).
+
+-------------------------------------------------------------------
+Mon Apr 19 05:36:23 UTC 2010 - nfbrown(a)novell.com
+
+- fix-dup.patch: revised version to make sure partial
+ device is destroyed properly (bnc#587925).
+
+-------------------------------------------------------------------
+Fri Mar 26 16:00:05 CET 2010 - mmarek(a)suse.cz
+
+- fix-dup.patch: catch attempts to add the same disk twice
+ (bnc#587925).
+
+-------------------------------------------------------------------
@@ -19,0 +46,6 @@
+Mon Mar 22 16:30:11 CET 2010 - mmarek(a)suse.cz
+
+- mdmon: Fix crash if /proc/mdstat lists 0.9 superblocks
+ (bnc#589447).
+
+-------------------------------------------------------------------
@@ -39,0 +72,6 @@
+
+-------------------------------------------------------------------
+Fri Feb 19 12:10:11 CET 2010 - mmarek(a)suse.cz
+
+- bitmap-4k-boundary.patch: Alling the internal bitmap on 4K
+ boundary (bnc#577468).
calling whatdependson for head-i586
New:
----
IMSM-part.patch
bitmap-4k-boundary.patch
container-argv-check
fix-dup.patch
mdmon-0.9-superblock-crash.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mdadm.spec ++++++
--- /var/tmp/diff_new_pack.kEoQNU/_old 2010-06-29 16:32:54.000000000 +0200
+++ /var/tmp/diff_new_pack.kEoQNU/_new 2010-06-29 16:32:54.000000000 +0200
@@ -20,7 +20,7 @@
Name: mdadm
Version: 3.0.3
-Release: 6
+Release: 7
BuildRequires: sgmltool
PreReq: %fillup_prereq %insserv_prereq
Obsoletes: raidtools
@@ -38,6 +38,11 @@
Source5: mkinitrd-setup.sh
Source6: mkinitrd-boot.sh
Source7: 64-md-raid.rules
+Patch1: bitmap-4k-boundary.patch
+Patch2: mdmon-0.9-superblock-crash.patch
+Patch3: fix-dup.patch
+Patch4: IMSM-part.patch
+Patch5: container-argv-check
%description
Mdadm is a program that can be used to control Linux md devices. It is
@@ -52,6 +57,11 @@
%prep
%setup -q -a1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%build
%{suse_update_config -f}
++++++ IMSM-part.patch ++++++
---
mdadm.h | 1 +
super-intel.c | 4 ++++
util.c | 25 +++++++++++++++++++++++++
3 files changed, 30 insertions(+)
--- mdadm-3.0.3.orig/mdadm.h
+++ mdadm-3.0.3/mdadm.h
@@ -820,6 +820,7 @@ extern int enough(int level, int raid_di
extern int ask(char *mesg);
extern unsigned long long get_component_size(int fd);
extern void remove_partitions(int fd);
+extern int test_partition(int fd);
extern unsigned long long calc_array_size(int level, int raid_disks, int layout,
int chunksize, unsigned long long devsize);
extern int flush_metadata_updates(struct supertype *st);
--- mdadm-3.0.3.orig/super-intel.c
+++ mdadm-3.0.3/super-intel.c
@@ -2582,6 +2582,10 @@ static int load_super_imsm(struct supert
return 0;
#endif
+ if (test_partition(fd))
+ /* IMSM not allowed on partitions */
+ return 1;
+
free_super_imsm(st);
super = alloc_super(0);
--- mdadm-3.0.3.orig/util.c
+++ mdadm-3.0.3/util.c
@@ -168,6 +168,31 @@ void remove_partitions(int fd)
#endif
}
+int test_partition(int fd)
+{
+ /* Check if fd is a whole-disk or a partition.
+ * BLKPG will return EINVAL on a partition, and BLKPG_DEL_PARTITION
+ * will return ENXIO on an invalid partition number.
+ */
+ struct blkpg_ioctl_arg a;
+ struct blkpg_partition p;
+ a.op = BLKPG_DEL_PARTITION;
+ a.data = (void*)&p;
+ a.datalen = sizeof(p);
+ a.flags = 0;
+ memset(a.data, 0, a.datalen);
+ p.pno = 1<<30;
+ if (ioctl(fd, BLKPG, &a) == 0)
+ /* Very unlikely, but not a partition */
+ return 0;
+ if (errno == ENXIO)
+ /* not a partition */
+ return 0;
+
+ return 1;
+}
+
+
int enough(int level, int raid_disks, int layout, int clean,
char *avail, int avail_disks)
{
++++++ bitmap-4k-boundary.patch ++++++
From: NeilBrown <neilb(a)suse.de>
Some devices (dasd!) have 4K sectors, so metadata must be
aligned on 4K boundaries.
superblock already is, but bitmap might not be. So force the
bitmap to a 4K boundary for v1.x metadata
It already is for v1.1 and v1.2, so just fix for v1.0
(Note that v0.90 already uses a 4K boundary too).
Signed-off-by: NeilBrown <neilb(a)suse.de>
diff --git a/super1.c b/super1.c
index fee22a9..66e9771 100644
--- a/super1.c
+++ b/super1.c
@@ -1437,11 +1437,6 @@ add_internal_bitmap1(struct supertype *st,
*/
offset = 0;
room = choose_bm_space(__le64_to_cpu(sb->size));
- if (room == 4*2) {
- /* make it 3K after the superblock */
- room = 3*2;
- offset = 2;
- }
} else {
room = __le64_to_cpu(sb->super_offset)
- __le64_to_cpu(sb->data_offset)
@@ -1498,8 +1493,9 @@ add_internal_bitmap1(struct supertype *st,
if (offset == 0) {
bits = (size*512) / chunk + 1;
- room = ((bits+7)/8 + sizeof(bitmap_super_t) +511)/512;
- offset = -room;
+ /* Align bitmap space to a 4K boundary as some devices need that */
+ room = ((bits+7)/8 + sizeof(bitmap_super_t) +4095)/4096;
+ offset = -room * 8; /* *8 to convert 4K blocks to sectors */
}
sb->bitmap_offset = __cpu_to_le32(offset);
++++++ container-argv-check ++++++
>From 4c1c3ad8cf69763a4c8c4ba692a8cb93327a4abf Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb(a)suse.de>
Date: Wed, 24 Feb 2010 11:43:59 +1100
Subject: [PATCH] Assemble: check inargv before complaining about stray arguments.
References: bnc#598827
If --assemble is given a container and some other devices to assemble
an array from, it complains with an error because that doesn't make
sense.
However it currently also complains if the list of devices was extract
from the config file rather than being given on the command line.
That is not appropriate.
So add an '&& inargv' test to ensure that we are really complaining
about the right thing.
Signed-off-by: NeilBrown <neilb(a)suse.de>
Acked-by: Dan Williams <dan.j.williams(a)intel.com>
diff --git a/Assemble.c b/Assemble.c
index e4d6181..23cc438 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -434,7 +434,7 @@ int Assemble(struct supertype *st, char *mddev,
}
}
st = tst; tst = NULL;
- if (!auto_assem && tmpdev->next != NULL) {
+ if (!auto_assem && inargv && tmpdev->next != NULL) {
fprintf(stderr, Name ": %s is a container, but is not "
"only device given: confused and aborting\n",
devname);
++++++ fix-dup.patch ++++++
From: Dan Williams <dan.j.williams(a)intel.com>
References: bnc#587925
Subject: Create: cleanup after failed create in duplicated array member case
mdadm prevents creation when device names are duplicated on the command
line, but leaves the partially created array intact. Detect this case
in the error code from add_to_super() and cleanup the partially created
array. The imsm handler is updated to report this conflict in
add_to_super_imsm_volume().
Note that since neither mdmon, nor userspace for that matter, ever saw an
active array we only need to perform a subset of the cleanup actions.
So call ioctl(STOP_ARRAY) directly and arrange for Create() to cleanup
the map file rather than calling Manage_runstop().
Reported-by: Krzysztof Wojcik <krzysztof.wojcik(a)intel.com>
Signed-off-by: Dan Williams <dan.j.williams(a)intel.com>
---
Create.c | 10 ++++++++--
Manage.c | 8 +++-----
mapfile.c | 10 ++++++++++
mdadm.h | 1 +
super-intel.c | 11 ++++++++++-
5 files changed, 32 insertions(+), 8 deletions(-)
--- mdadm-3.0.3.orig/Create.c
+++ mdadm-3.0.3/Create.c
@@ -755,8 +755,10 @@ int Create(struct supertype *st, char *m
if (fd >= 0)
remove_partitions(fd);
if (st->ss->add_to_super(st, &inf->disk,
- fd, dv->devname))
+ fd, dv->devname)) {
+ ioctl(mdfd, STOP_ARRAY, NULL);
goto abort;
+ }
st->ss->getinfo_super(st, inf);
safe_mode_delay = inf->safe_mode_delay;
@@ -860,7 +862,7 @@ int Create(struct supertype *st, char *m
if (ioctl(mdfd, RUN_ARRAY, ¶m)) {
fprintf(stderr, Name ": RUN_ARRAY failed: %s\n",
strerror(errno));
- Manage_runstop(mddev, mdfd, -1, 0);
+ ioctl(mdfd, STOP_ARRAY, NULL);
goto abort;
}
}
@@ -881,6 +883,10 @@ int Create(struct supertype *st, char *m
return 0;
abort:
+ map_lock(&map);
+ map_remove(&map, fd2devnum(mdfd));
+ map_unlock(&map);
+
if (mdfd >= 0)
close(mdfd);
return 1;
--- mdadm-3.0.3.orig/Manage.c
+++ mdadm-3.0.3/Manage.c
@@ -277,11 +277,9 @@ int Manage_runstop(char *devname, int fd
if (quiet <= 0)
fprintf(stderr, Name ": stopped %s\n", devname);
- if (devnum != NoMdDev) {
- map_delete(&map, devnum);
- map_write(map);
- map_free(map);
- }
+ map_lock(&map);
+ map_remove(&map, devnum);
+ map_unlock(&map);
}
return 0;
}
--- mdadm-3.0.3.orig/mapfile.c
+++ mdadm-3.0.3/mapfile.c
@@ -239,6 +239,16 @@ void map_delete(struct map_ent **mapp, i
}
}
+void map_remove(struct map_ent **mapp, int devnum)
+{
+ if (devnum == NoMdDev)
+ return;
+
+ map_delete(mapp, devnum);
+ map_write(*mapp);
+ map_free(*mapp);
+}
+
struct map_ent *map_by_uuid(struct map_ent **map, int uuid[4])
{
struct map_ent *mp;
--- mdadm-3.0.3.orig/mdadm.h
+++ mdadm-3.0.3/mdadm.h
@@ -324,6 +324,7 @@ struct map_ent {
};
extern int map_update(struct map_ent **mpp, int devnum, char *metadata,
int uuid[4], char *path);
+extern void map_remove(struct map_ent **map, int devnum);
extern struct map_ent *map_by_uuid(struct map_ent **map, int uuid[4]);
extern struct map_ent *map_by_devnum(struct map_ent **map, int devnum);
extern struct map_ent *map_by_name(struct map_ent **map, char *name);
--- mdadm-3.0.3.orig/super-intel.c
+++ mdadm-3.0.3/super-intel.c
@@ -2817,7 +2817,7 @@ static int init_super_imsm_volume(struct
map->num_members = info->raid_disks;
for (i = 0; i < map->num_members; i++) {
/* initialized in add_to_super */
- set_imsm_ord_tbl_ent(map, i, 0);
+ set_imsm_ord_tbl_ent(map, i, IMSM_ORD_REBUILD);
}
mpb->num_raid_devs++;
@@ -2895,6 +2895,7 @@ static int add_to_super_imsm_volume(stru
struct dl *dl;
struct imsm_dev *dev;
struct imsm_map *map;
+ int slot;
dev = get_imsm_dev(super, super->current_vol);
map = get_imsm_map(dev, 0);
@@ -2929,6 +2930,14 @@ static int add_to_super_imsm_volume(stru
dl->index = super->anchor->num_disks;
super->anchor->num_disks++;
}
+ /* Check the device has not already been added */
+ slot = get_imsm_disk_slot(map, dl->index);
+ if (slot >= 0 &&
+ (get_imsm_ord_tbl_ent(dev, slot) & IMSM_ORD_REBUILD) == 0) {
+ fprintf(stderr, Name ": %s has been included in this array twice\n",
+ devname);
+ return 1;
+ }
set_imsm_ord_tbl_ent(map, dk->number, dl->index);
dl->disk.status = CONFIGURED_DISK;
++++++ mdmon-0.9-superblock-crash.patch ++++++
>From c4dc5c0aa7aa412bf85f0f6d646ea0c307eb4591 Mon Sep 17 00:00:00 2001
From: Michal Marek <mmarek(a)suse.cz>
Date: Fri, 19 Mar 2010 11:59:20 +0100
Subject: [PATCH] mdmon: Fix crash if /proc/mdstat lists 0.9 superblocks
Signed-off-by: Michal Marek <mmarek(a)suse.cz>
---
mdmon.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- mdadm-3.0.3.orig/mdmon.c
+++ mdadm-3.0.3/mdmon.c
@@ -313,7 +313,8 @@ int main(int argc, char *argv[])
scan = 1;
mdstat = mdstat_read(0, 0);
for (e = mdstat; e; e = e->next) {
- if (strncmp(e->metadata_version, "external:", 9) == 0 &&
+ if (e->metadata_version &&
+ strncmp(e->metadata_version, "external:", 9) == 0 &&
!is_subarray(&e->metadata_version[9])) {
devname = devnum2devname(e->devnum);
/* update cmdline so this mdmon instance can be
++++++ mkinitrd-boot.sh ++++++
--- /var/tmp/diff_new_pack.kEoQNU/_old 2010-06-29 16:32:54.000000000 +0200
+++ /var/tmp/diff_new_pack.kEoQNU/_new 2010-06-29 16:32:54.000000000 +0200
@@ -12,7 +12,6 @@
## -----------------------
##
## need_mdadm=1 use MD raid
-## md_uuid the uuid of the raid to activate
##
# load the necessary module before we initialize the raid system
@@ -38,9 +37,38 @@
echo 1 > /sys/module/md_mod/parameters/start_ro
fi
+if test -n "$debug_linuxrc"; then
+ mdadm="mdadm -v"
+else
+ mdadm="mdadm"
+fi
+
+# uuid -> array name
+get_md_name()
+{
+ local uuid=$1 res
+
+ if ! test -f /etc/mdadm.conf; then
+ return 1
+ fi
+ res=$(sed -rn "s/^ARRAY +([^ ]+).* UUID=$uuid.*/\1/p" /etc/mdadm.conf)
+ case "$res" in
+ "" | \<* | *=*)
+ return 1
+ ;;
+ /*)
+ echo "$res"
+ ;;
+ *)
+ echo "/dev/md/$res"
+ ;;
+ esac
+ return 0
+}
+
md_assemble()
{
- local dev=$1 mdconf container
+ local dev=$1 uuid mdconf container container_name
if test -e "$dev"; then
return
@@ -48,12 +76,27 @@
case "$dev" in
/dev/md[0-9]*p[0-9]*)
dev=${dev%p[0-9]*}
+ ;;
+ /dev/md*)
+ ;;
+ /dev/disk/by-id/md-uuid-*)
+ uuid=${dev#/dev/disk/by-id/md-uuid-}
+ uuid=${uuid%-part*}
+ dev=
+ ;;
+ *)
+ return
esac
if test -f /etc/mdadm.conf; then
mdconf="-c /etc/mdadm.conf"
- container=$( \
- sed -rn "s:^ARRAY +$dev .*container=([^ ]*).*:\\1:p" \
- /etc/mdadm.conf)
+ local line
+ if test -n "$dev"; then
+ line=$(sed -rn "\:^ARRAY +$dev :p" /etc/mdadm.conf)
+ else
+ line=$(sed -rn "/^ARRAY .* UUID=$uuid/p" /etc/mdadm.conf)
+ fi
+ container=$(echo "$line" | \
+ sed -rn 's/.* container=([^ ]*).*/\1/p')
else
mdconf="-c partitions"
fi
@@ -61,34 +104,38 @@
"")
;;
/dev/*)
- mdadm -A $mdconf $container
+ $mdadm -A $mdconf $container
;;
[0-9a-f]*[0-9a-f])
- mdadm -A $mdconf --uuid="$container" /dev/md/container
+ container_name=$(get_md_name "$container")
+ if test -z "$container_name"; then
+ container_name=/dev/md/container
+ fi
+ $mdadm -A $mdconf --uuid="$container" "$container_name"
;;
*)
echo "unrecognized container for $dev: $container"
- ;;
esac
- mdadm -A $mdconf $mdarg "$dev"
+ if test -n "$dev"; then
+ $mdadm -A $mdconf "$dev"
+ else
+ dev=$(get_md_name "$uuid")
+ if test -z "$dev"; then
+ # fallback
+ dev=/dev/md0
+ fi
+ $mdadm -A $mdconf --uuid=$uuid "$dev"
+ fi
}
-if [ -n "$need_mdadm" ]; then
-
- if [ -n "$md_uuid" ] ; then
- mdarg="--uuid=$md_uuid"
- fi
-
- case $resumedev in
- /dev/md*)
- md_assemble "$resumedev"
- esac
-
- if [ -n "$md_dev" ] ; then
- md_assemble "$md_dev"
- fi
- for dev in $md_devs; do
- md_assemble "$dev"
- done
- wait_for_events
+md_assemble "$resumedev"
+md_assemble "$rootdev"
+if [ -n "$md_dev" ] ; then
+ md_assemble "$md_dev"
fi
+# assemble any md devices seen by setup-md.sh at initrd build time
+for dev in $md_devs; do
+ md_assemble "$dev"
+done
+
+wait_for_events
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package NetworkManager for openSUSE:Factory
checked in at Tue Jun 29 16:32:39 CEST 2010.
--------
--- NetworkManager/NetworkManager.changes 2010-06-15 08:18:27.000000000 +0200
+++ NetworkManager/NetworkManager.changes 2010-06-29 11:26:23.000000000 +0200
@@ -1,0 +2,13 @@
+Tue Jun 29 02:51:17 UTC 2010 - bili(a)novell.com
+
+- Add NetworkManager-netconfig-exit-quick.patch, fix wrong return
+ value when updating the DNS with netconfig(bnc#595708, bnc#544195,
+ bnc#537907, bnc#596163).
+
+-------------------------------------------------------------------
+Thu Jun 24 09:12:24 UTC 2010 - bili(a)novell.com
+
+- Add NetworkManager-NIS.patch, support NIS domain and servers
+ (bnc#608677).
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
NetworkManager-NIS.patch
NetworkManager-netconfig-exit-quick.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ NetworkManager.spec ++++++
--- /var/tmp/diff_new_pack.okHxd8/_old 2010-06-29 16:31:16.000000000 +0200
+++ /var/tmp/diff_new_pack.okHxd8/_new 2010-06-29 16:31:16.000000000 +0200
@@ -20,7 +20,7 @@
Name: NetworkManager
Url: http://www.gnome.org/projects/NetworkManager/
Version: 0.8
-Release: 4
+Release: 6
License: GPLv2+
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: dbus-1-devel dbus-1-glib-devel gtk-doc intltool iptables libgcrypt-devel libgudev-1_0-devel libiw-devel libnl-devel libtool libuuid-devel mozilla-nss-devel polkit-devel ppp-devel translation-update-upstream wireless-tools
@@ -34,6 +34,10 @@
Source3: NetworkManager-frontend.conf
Source99: NetworkManager-rpmlintrc
Requires: %{name}-glib = %{version}
+# PATCH-FIX-OPENSUSE NetworkManager-NIS.patch bnc#608677 bili(a)novell.com -- Support the NIS setting which dhclient-script provided
+Patch0: %{name}-NIS.patch
+# PATCH-FIX-OPENSUSE NetworkManager-netconfig-exit-quick.patch bnc#595708 bnc#544195 bnc#537907 bnc#596163 bili(a)novell.com -- Fix wrong return value when updating the DNS with netconfig
+Patch1: %{name}-netconfig-exit-quick.patch
Requires: dhcp-client
Requires: iproute2
Requires: iputils
@@ -99,6 +103,8 @@
%prep
%setup -n %{name}-%{version} -q
+%patch0 -p1
+%patch1 -p1
translation-update-upstream
%build
++++++ NetworkManager-NIS.patch ++++++
Index: NetworkManager-0.8/src/dhcp-manager/nm-dhcp-manager.c
===================================================================
--- NetworkManager-0.8.orig/src/dhcp-manager/nm-dhcp-manager.c
+++ NetworkManager-0.8/src/dhcp-manager/nm-dhcp-manager.c
@@ -983,6 +983,18 @@ nm_dhcp_manager_options_to_ip4_config (c
nm_ip4_config_set_mtu (ip4_config, int_mtu);
}
+ str = g_hash_table_lookup (options, "new_nis_domain");
+ if (str) {
+ nm_info (" NIS domain '%s'", str);
+ g_object_set_data_full (G_OBJECT (ip4_config), "NISDOMAIN", g_strdup (str), g_free);
+ }
+
+ str = g_hash_table_lookup (options, "new_nis_servers");
+ if (str) {
+ nm_info (" NIS servers '%s'", str);
+ g_object_set_data_full (G_OBJECT (ip4_config), "NISSERVERS", g_strdup (str), g_free);
+ }
+
return ip4_config;
error:
Index: NetworkManager-0.8/src/named-manager/nm-named-manager.c
===================================================================
--- NetworkManager-0.8.orig/src/named-manager/nm-named-manager.c
+++ NetworkManager-0.8/src/named-manager/nm-named-manager.c
@@ -96,6 +96,8 @@ typedef struct {
GPtrArray *nameservers;
const char *domain;
GPtrArray *searches;
+ const char *nis_domain;
+ const char *nis_servers;
} NMResolvConfData;
static void
@@ -123,6 +125,18 @@ merge_one_ip4_config (NMResolvConfData *
num = nm_ip4_config_get_num_searches (src);
for (i = 0; i < num; i++)
g_ptr_array_add (rc->searches, g_strdup (nm_ip4_config_get_search (src, i)));
+
+ if (!rc->nis_domain && !rc->nis_servers) {
+ const char *tmp;
+
+ tmp = g_object_get_data (G_OBJECT (src), "NISDOMAIN");
+ if (tmp)
+ rc->nis_domain = g_strdup (tmp);
+
+ tmp = g_object_get_data (G_OBJECT (src), "NISSERVERS");
+ if (tmp)
+ rc->nis_servers = g_strdup (tmp);
+ }
}
static void
@@ -212,6 +226,8 @@ dispatch_netconfig (const char *domain,
char **searches,
char **nameservers,
const char *iface,
+ const char *nis_domain,
+ const char *nis_servers,
GError **error)
{
char *str;
@@ -255,6 +271,12 @@ dispatch_netconfig (const char *domain,
g_free (str);
}
+ if (nis_domain)
+ write_to_netconfig (fd, "NISDOMAIN", nis_domain);
+
+ if (nis_servers)
+ write_to_netconfig (fd, "NISSERVERS", nis_servers);
+
close (fd);
/* Wait until the process exits */
@@ -539,7 +561,10 @@ rewrite_resolv_conf (NMNamedManager *mgr
#ifdef TARGET_SUSE
if (success == FALSE)
- success = dispatch_netconfig (domain, searches, nameservers, iface, error);
+ success = dispatch_netconfig (domain, searches, nameservers, iface,
+ rc.nis_domain,
+ rc.nis_servers,
+ error);
#endif
if (success == FALSE)
@@ -553,6 +578,11 @@ rewrite_resolv_conf (NMNamedManager *mgr
if (nameservers)
g_strfreev (nameservers);
+ if (rc.nis_domain)
+ g_free (rc.nis_domain);
+ if (rc.nis_servers)
+ g_free (rc.nis_servers);
+
return success;
}
++++++ NetworkManager-netconfig-exit-quick.patch ++++++
Index: NetworkManager-0.8/src/named-manager/nm-named-manager.c
===================================================================
--- NetworkManager-0.8.orig/src/named-manager/nm-named-manager.c
+++ NetworkManager-0.8/src/named-manager/nm-named-manager.c
@@ -286,6 +286,9 @@ dispatch_netconfig (const char *domain,
ret = waitpid (pid, NULL, 0);
if (ret < 0 && errno == EINTR)
goto again;
+ /* When the netconfig exist, the errno is ECHILD, it should return TRUE */
+ else if (ret < 0 && errno == ECHILD)
+ return TRUE;
return ret > 0;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libusb-1_0 for openSUSE:Factory
checked in at Mon Jun 28 16:18:43 CEST 2010.
--------
--- libusb-1_0/libusb-1_0.changes 2010-04-24 12:14:28.000000000 +0200
+++ /mounts/work_src_done/STABLE/libusb-1_0/libusb-1_0.changes 2010-06-21 12:42:11.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Jun 21 12:00:40 CEST 2010 - opensuse(a)sukimashita.com
+
+- Updated to version 1.0.8:
+ * Bug fixes and documentation tweaks
+ * Add more interface class definitions
+- This release fixes a crash for kernel's with debug flag enabled
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
libusb-1.0.6.tar.bz2
New:
----
libusb-1.0.8.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libusb-1_0.spec ++++++
--- /var/tmp/diff_new_pack.f5v9fu/_old 2010-06-28 16:18:14.000000000 +0200
+++ /var/tmp/diff_new_pack.f5v9fu/_new 2010-06-28 16:18:14.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package libusb-1_0 (Version 1.0.6)
+# spec file for package libusb-1_0 (Version 1.0.8)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,12 +20,12 @@
Name: libusb-1_0
%define _name libusb
-Url: http://libusb.wiki.sourceforge.net/Libusb1.0
+Url: http://www.libusb.org/
License: LGPLv2.1+
Summary: USB Library
Group: System/Libraries
-Version: 1.0.6
-Release: 4
+Version: 1.0.8
+Release: 1
Source: %{_name}-%{version}.tar.bz2
Source2: baselibs.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ libusb-1.0.6.tar.bz2 -> libusb-1.0.8.tar.bz2 ++++++
++++ 10019 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/AUTHORS new/libusb-1.0.8/AUTHORS
--- old/libusb-1.0.6/AUTHORS 2009-11-15 13:16:57.000000000 +0100
+++ new/libusb-1.0.8/AUTHORS 2010-04-21 23:44:30.000000000 +0200
@@ -1,6 +1,6 @@
Copyright (C) 2007-2009 Daniel Drake <dsd(a)gentoo.org>
Copyright (c) 2001 Johannes Erdfelt <johannes(a)erdfelt.com>
-Copyright (C) 2008-2009 Nathan Hjelm <hjelmn(a)users.sourceforge.net>
+Copyright (C) 2008-2010 Nathan Hjelm <hjelmn(a)users.sourceforge.net>
Other contributors:
Alex Vatchenko
@@ -12,6 +12,7 @@
Felipe Balbi
Hans Ulrich Niedermann
Ludovic Rousseau
+Martin Koegler
Mikhail Gusarov
Rob Walker
Toby Peterson
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/ChangeLog new/libusb-1.0.8/ChangeLog
--- old/libusb-1.0.6/ChangeLog 2009-11-22 18:21:18.000000000 +0100
+++ new/libusb-1.0.8/ChangeLog 2010-05-05 00:02:23.000000000 +0200
@@ -1,3 +1,129 @@
+commit a04cbb0095a78aeed3f65aaf06c46069d0ac184a
+Author: Daniel Drake <dan(a)reactivated.net>
+Date: Tue May 4 19:01:59 2010 -0300
+
+ v1.0.8 release
+
+commit 53b47299531974fa8901b74a163f3c8ebae4eec9
+Author: Daniel Drake <dan(a)reactivated.net>
+Date: Thu Apr 22 18:12:51 2010 -0300
+
+ Linux: don't set SHORT_NOT_OK on bulk out URBs (#20
+
+ Setting this flag is illegal, and the behaviour we're looking for
+ is already in place for host-to-device transfers without this flag.
+
+commit 1519828b7ee1fce46d4c51fc097d52e01b8e0bb4
+Author: Daniel Drake <dan(a)reactivated.net>
+Date: Tue Apr 20 20:14:09 2010 -0300
+
+ Linux: Handle failure to read active configuration during enumeration
+
+commit 45168627cc15aee3875192f34286110dbbd27095
+Author: Nathan Hjelm <hjelmn(a)me.com>
+Date: Tue Apr 20 19:43:06 2010 -0300
+
+ Darwin: don't reuse cached descriptors during enumeration
+
+ Descriptor reuse was causing scans to return invalid information when
+ the device at a location has changed.
+
+commit 3af329db6dcbfb96d24867c757f9e125e5b7b0e5
+Author: Daniel Drake <dan(a)reactivated.net>
+Date: Mon Apr 19 19:36:55 2010 -0300
+
+ v1.0.7 release
+
+commit ceb8cacd6d2a4189de0db2ee46d45217511c69be
+Author: Daniel Drake <dan(a)reactivated.net>
+Date: Mon Apr 19 19:31:12 2010 -0300
+
+ Document that fd set contents are an internal implementation detail (#36)
+
+commit 9bea500b5747bdeba7c8251d45608558e71a1db5
+Author: Martin Koegler <mkoegler(a)auto.tuwien.ac.at>
+Date: Mon Apr 19 19:22:46 2010 -0300
+
+ Linux: correct config descriptor endianness fix
+
+ The seek_to_next_config codepath deals with both sysfs and usbfs;
+ make sure we only convert values in the usbfs path.
+
+commit 02df59a309e813c50b8230de99e69fb4e1814279
+Author: Martin Koegler <mkoegler(a)auto.tuwien.ac.at>
+Date: Mon Apr 5 17:11:32 2010 +0200
+
+ Linux: Fix endianness handling of usbfs config descriptors (#27)
+
+ driver/usb/core/devio.c function usbdev_read translate the follwing files
+ to CPU endianess:
+
+ le16_to_cpus(&temp_desc.bcdUSB);
+ le16_to_cpus(&temp_desc.idVendor);
+ le16_to_cpus(&temp_desc.idProduct);
+ le16_to_cpus(&temp_desc.bcdDevice);
+
+ All other data is passed without any change.
+
+ libusb/os/linux_usbfs.c calls usbi_parse_descriptor with host_endian=1
+ for config descriptors. According to the kernel code, they must be
+ processed with host_endian=0, as they are not translated by the kernel.
+
+ Signed-off-by: Martin Koegler <mkoegler(a)auto.tuwien.ac.at>
+
+commit ec303b01a5d4e51c000a283853af65059fa62285
+Author: Nathan Hjelm <hjelmn(a)mac.com>
+Date: Tue Mar 23 16:22:08 2010 -0600
+
+ Darwin: fix enumeration of devices with non-consecutive addresses (#23)
+
+commit cd809e2f7cee3874b7ae16b2c482a8b63a90e4a5
+Author: Bastien Nocera <hadess(a)hadess.net>
+Date: Mon Mar 8 10:50:51 2010 +0000
+
+ Add more interface classes
+
+ As used in bluez.
+
+commit 1ce4aa67d849f5cad8a21072dc1c7b42158ce817
+Author: Nathan Hjelm <hjelmn(a)mac.com>
+Date: Thu Mar 18 11:32:32 2010 -0600
+
+ Darwin: Cleanup async callback code, catch request timeouts
+
+commit 68af9f8d731f700267335941a8214d34ab518cc8
+Author: Nathan Hjelm <hjelmn(a)mac.com>
+Date: Thu Mar 18 11:31:46 2010 -0600
+
+ Darwin: fix endianness of control setup packet
+
+ IOUSBLib expects the control request to be in host byte order.
+ Swap the request into host byte order.
+
+commit cfce4d127184f4e4f334976151a0f80594bb5e22
+Author: Nathan Hjelm <hjelmn(a)mac.com>
+Date: Mon Feb 15 14:10:08 2010 -0600
+
+ Darwin: fix memory leak in process_device
+
+ Credit to Mike Colagrosso for finding this bug.
+
+commit 161893cfbefefe315f657677705abe090fc526f2
+Author: Nathan Hjelm <hjelmn(a)mac.com>
+Date: Mon Feb 15 14:09:19 2010 -0600
+
+ Darwin: use logging functions
+
+ Use usbi_warn, usbi_err, and usbi_info instead of _usbi_log.
+
+commit 2a72f38548208044dc3aa62681419d006c35732d
+Author: Nathan Hjelm <hjelmn(a)mac.com>
+Date: Mon Feb 15 14:07:44 2010 -0600
+
+ Darwin: support multiple calls to libusb_init
+
+ Credit to Orin Eman for finding this bug.
+
commit a4186794d87124503db2f5f51f51ce90bb95daa7
Author: Daniel Drake <dan(a)reactivated.net>
Date: Sun Nov 22 17:20:53 2009 +0000
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/config.h.in new/libusb-1.0.8/config.h.in
--- old/libusb-1.0.6/config.h.in 2009-11-22 18:21:18.000000000 +0100
+++ new/libusb-1.0.8/config.h.in 2010-05-05 00:02:23.000000000 +0200
@@ -70,6 +70,9 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
/* Define to the version of this package. */
#undef PACKAGE_VERSION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/configure.ac new/libusb-1.0.8/configure.ac
--- old/libusb-1.0.6/configure.ac 2009-11-22 18:18:23.000000000 +0100
+++ new/libusb-1.0.8/configure.ac 2010-05-05 00:01:36.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([libusb], [1.0.6])
+AC_INIT([libusb], [1.0.8])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([libusb/core.c])
AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/libusb/io.c new/libusb-1.0.8/libusb/io.c
--- old/libusb-1.0.6/libusb/io.c 2009-11-21 18:02:52.000000000 +0100
+++ new/libusb-1.0.8/libusb/io.c 2010-04-21 23:44:30.000000000 +0200
@@ -600,6 +600,13 @@
* these moments occur. This means that you need to adjust your
* poll()/select() timeout accordingly.
*
+ * libusb provides you with a set of file descriptors to poll and expects you
+ * to poll all of them, treating them as a single entity. The meaning of each
+ * file descriptor in the set is an internal implementation detail,
+ * platform-dependent and may vary from release to release. Don't try and
+ * interpret the meaning of the file descriptors, just do as libusb indicates,
+ * polling all of them at once.
+ *
* In pseudo-code, you want something that looks like:
\code
// initialise libusb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/libusb/libusb.h new/libusb-1.0.8/libusb/libusb.h
--- old/libusb-1.0.6/libusb/libusb.h 2009-11-22 18:17:46.000000000 +0100
+++ new/libusb-1.0.8/libusb/libusb.h 2010-04-21 23:44:30.000000000 +0200
@@ -95,6 +95,12 @@
/** Data class */
LIBUSB_CLASS_DATA = 10,
+ /** Wireless class */
+ LIBUSB_CLASS_WIRELESS = 0xe0,
+
+ /** Application class */
+ LIBUSB_CLASS_APPLICATION = 0xfe,
+
/** Class is vendor-specific */
LIBUSB_CLASS_VENDOR_SPEC = 0xff
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/libusb/os/darwin_usb.c new/libusb-1.0.8/libusb/os/darwin_usb.c
--- old/libusb-1.0.6/libusb/os/darwin_usb.c 2009-11-21 18:10:21.000000000 +0100
+++ new/libusb-1.0.8/libusb/os/darwin_usb.c 2010-04-21 23:44:30.000000000 +0200
@@ -1,6 +1,6 @@
/*
* darwin backend for libusb 1.0
- * Copyright (C) 2008-2009 Nathan Hjelm <hjelmn(a)users.sourceforge.net>
+ * Copyright (C) 2008-2010 Nathan Hjelm <hjelmn(a)users.sourceforge.net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -44,6 +44,7 @@
static mach_port_t libusb_darwin_mp = 0; /* master port */
static CFRunLoopRef libusb_darwin_acfl = NULL; /* async cf loop */
+static int initCount = 0;
/* async event thread */
static pthread_t libusb_darwin_at;
@@ -52,9 +53,6 @@
static int darwin_claim_interface(struct libusb_device_handle *dev_handle, int iface);
static int darwin_release_interface(struct libusb_device_handle *dev_handle, int iface);
static int darwin_reset_device(struct libusb_device_handle *dev_handle);
-static void darwin_bulk_callback (struct usbi_transfer *itransfer, kern_return_t result, UInt32 io_size);
-static void darwin_isoc_callback (struct usbi_transfer *itransfer, kern_return_t result);
-static void darwin_control_callback (struct usbi_transfer *itransfer, kern_return_t result, UInt32 io_size);
static void darwin_async_io_callback (void *refcon, IOReturn result, void *arg0);
static const char *darwin_error_str (int result) {
@@ -83,6 +81,8 @@
return "device not responding";
case kIOReturnOverrun:
return "data overrun";
+ case kIOReturnCannotWire:
+ return "physical memory can not be wired down";
default:
return "unknown error";
}
@@ -121,7 +121,7 @@
int8_t i, iface;
- _usbi_log (HANDLE_CTX(dev_handle), LOG_LEVEL_INFO, "converting ep address 0x%02x to pipeRef and interface", ep);
+ usbi_info (HANDLE_CTX(dev_handle), "converting ep address 0x%02x to pipeRef and interface", ep);
for (iface = 0 ; iface < USB_MAXINTERFACES ; iface++) {
cInterface = &priv->interfaces[iface];
@@ -131,7 +131,7 @@
if (cInterface->endpoint_addrs[i] == ep) {
*pipep = i + 1;
*ifcp = iface;
- _usbi_log (HANDLE_CTX(dev_handle), LOG_LEVEL_INFO, "pipe %d on interface %d matches", *pipep, *ifcp);
+ usbi_info (HANDLE_CTX(dev_handle), "pipe %d on interface %d matches", *pipep, *ifcp);
return 0;
}
}
@@ -139,7 +139,7 @@
}
/* No pipe found with the correct endpoint address */
- _usbi_log (HANDLE_CTX(dev_handle), LOG_LEVEL_WARNING, "no pipeRef found with endpoint address 0x%02x.", ep);
+ usbi_warn (HANDLE_CTX(dev_handle), "no pipeRef found with endpoint address 0x%02x.", ep);
return -1;
}
@@ -155,18 +155,22 @@
long result;
SInt32 score;
- if (!IOIteratorIsValid (deviceIterator) || !(usbDevice = IOIteratorNext(deviceIterator)))
+ if (!IOIteratorIsValid (deviceIterator))
return NULL;
-
- result = IOCreatePlugInInterfaceForService(usbDevice, kIOUSBDeviceUserClientTypeID,
- kIOCFPlugInInterfaceID, &plugInInterface,
- &score);
-
- if (result || !plugInInterface) {
+
+
+ while ((usbDevice = IOIteratorNext(deviceIterator))) {
+ result = IOCreatePlugInInterfaceForService(usbDevice, kIOUSBDeviceUserClientTypeID,
+ kIOCFPlugInInterfaceID, &plugInInterface,
+ &score);
+ if (kIOReturnSuccess == result && plugInInterface)
+ break;
+
usbi_dbg ("libusb/darwin.c usb_get_next_device: could not set up plugin for service: %s\n", darwin_error_str (result));
+ }
+ if (!usbDevice)
return NULL;
- }
(void)IOObjectRelease(usbDevice);
(void)(*plugInInterface)->QueryInterface(plugInInterface, CFUUIDGetUUIDBytes(DeviceInterfaceID),
@@ -218,7 +222,7 @@
CFTypeRef locationCF;
UInt32 message;
- _usbi_log (ctx, LOG_LEVEL_INFO, "a device has been detached");
+ usbi_info (ctx, "a device has been detached");
while ((device = IOIteratorNext (rem_devices)) != 0) {
/* get the location from the i/o registry */
@@ -261,7 +265,7 @@
io_notification_port_t libusb_notification_port;
io_iterator_t libusb_rem_device_iterator;
- _usbi_log (ctx, LOG_LEVEL_INFO, "creating hotplug event source");
+ usbi_info (ctx, "creating hotplug event source");
CFRetain (CFRunLoopGetCurrent ());
@@ -277,7 +281,7 @@
(void *)ctx, &libusb_rem_device_iterator);
if (kresult != kIOReturnSuccess) {
- _usbi_log (ctx, LOG_LEVEL_ERROR, "could not add hotplug event source: %s", darwin_error_str (kresult));
+ usbi_err (ctx, "could not add hotplug event source: %s", darwin_error_str (kresult));
pthread_exit ((void *)kresult);
}
@@ -288,12 +292,12 @@
/* let the main thread know about the async runloop */
libusb_darwin_acfl = CFRunLoopGetCurrent ();
- _usbi_log (ctx, LOG_LEVEL_INFO, "libopenusb/darwin.c event_thread_main: thread ready to receive events");
+ usbi_info (ctx, "libopenusb/darwin.c event_thread_main: thread ready to receive events");
/* run the runloop */
CFRunLoopRun();
- _usbi_log (ctx, LOG_LEVEL_INFO, "libopenusb/darwin.c event_thread_main: thread exiting");
+ usbi_info (ctx, "libopenusb/darwin.c event_thread_main: thread exiting");
/* delete notification port */
CFRunLoopSourceInvalidate (libusb_notification_cfsource);
@@ -309,33 +313,37 @@
static int darwin_init(struct libusb_context *ctx) {
IOReturn kresult;
- /* Create the master port for talking to IOKit */
- if (!libusb_darwin_mp) {
- kresult = IOMasterPort (MACH_PORT_NULL, &libusb_darwin_mp);
+ if (!(initCount++)) {
+ /* Create the master port for talking to IOKit */
+ if (!libusb_darwin_mp) {
+ kresult = IOMasterPort (MACH_PORT_NULL, &libusb_darwin_mp);
- if (kresult != kIOReturnSuccess || !libusb_darwin_mp)
- return darwin_to_libusb (kresult);
- }
+ if (kresult != kIOReturnSuccess || !libusb_darwin_mp)
+ return darwin_to_libusb (kresult);
+ }
- pthread_create (&libusb_darwin_at, NULL, event_thread_main, (void *)ctx);
+ pthread_create (&libusb_darwin_at, NULL, event_thread_main, (void *)ctx);
- while (!libusb_darwin_acfl)
- usleep (10);
+ while (!libusb_darwin_acfl)
+ usleep (10);
+ }
return 0;
}
static void darwin_exit (void) {
- void *ret;
+ if (!(--initCount)) {
+ void *ret;
- /* stop the async runloop */
- CFRunLoopStop (libusb_darwin_acfl);
- pthread_join (libusb_darwin_at, &ret);
+ /* stop the async runloop */
+ CFRunLoopStop (libusb_darwin_acfl);
+ pthread_join (libusb_darwin_at, &ret);
- if (libusb_darwin_mp)
- mach_port_deallocate(mach_task_self(), libusb_darwin_mp);
+ if (libusb_darwin_mp)
+ mach_port_deallocate(mach_task_self(), libusb_darwin_mp);
- libusb_darwin_mp = 0;
+ libusb_darwin_mp = 0;
+ }
}
static int darwin_get_device_descriptor(struct libusb_device *dev, unsigned char *buffer, int *host_endian) {
@@ -400,7 +408,7 @@
if (!priv->device) {
kresult = darwin_get_device (priv->location, &device);
if (kresult || !device) {
- _usbi_log (DEVICE_CTX (dev), LOG_LEVEL_ERROR, "could not find device: %s", darwin_error_str (kresult));
+ usbi_err (DEVICE_CTX (dev), "could not find device: %s", darwin_error_str (kresult));
return darwin_to_libusb (kresult);
}
@@ -434,14 +442,21 @@
UInt16 address, idVendor, idProduct;
UInt8 bDeviceClass, bDeviceSubClass;
IOUSBDevRequest req;
- int ret;
+ int ret = 0, need_unref = 0;
+
+ do {
+ dev = usbi_get_device_by_session_id(ctx, locationID);
+ if (!dev) {
+ usbi_info (ctx, "allocating new device for location 0x%08x", locationID);
+ dev = usbi_alloc_device(ctx, locationID);
+ need_unref = 1;
+ } else
+ usbi_info (ctx, "using existing device for location 0x%08x", locationID);
- dev = usbi_get_device_by_session_id(ctx, locationID);
- if (!dev) {
- _usbi_log (ctx, LOG_LEVEL_INFO, "allocating new device for location 0x%08x", locationID);
- dev = usbi_alloc_device(ctx, locationID);
- if (!dev)
- return LIBUSB_ERROR_NO_MEM;
+ if (!dev) {
+ ret = LIBUSB_ERROR_NO_MEM;
+ break;
+ }
priv = (struct darwin_device_priv *)dev->os_priv;
@@ -462,7 +477,7 @@
/**** retrieve device descriptors ****/
/* device must be open for DeviceRequest */
(*device)->USBDeviceOpen(device);
-
+
ret = (*(device))->DeviceRequest (device, &req);
if (ret != kIOReturnSuccess) {
int try_unsuspend = 1;
@@ -490,19 +505,20 @@
(*device)->USBDeviceClose (device);
if (ret != kIOReturnSuccess) {
- _usbi_log (ctx, LOG_LEVEL_WARNING, "could not retrieve device descriptor: %s. skipping device", darwin_error_str (ret));
- libusb_unref_device(dev);
- return -1;
+ usbi_warn (ctx, "could not retrieve device descriptor: %s. skipping device", darwin_error_str (ret));
+ ret = -1;
+ break;
}
+
/**** end: retrieve device descriptors ****/
/* catch buggy hubs (which appear to be virtual). Apple's own USB prober has problems with these devices. */
if (libusb_le16_to_cpu (priv->dev_descriptor.idProduct) != idProduct) {
/* not a valid device */
- _usbi_log (ctx, LOG_LEVEL_WARNING, "idProduct from iokit (%04x) does not match idProduct in descriptor (%04x). skipping device",
+ usbi_warn (ctx, "idProduct from iokit (%04x) does not match idProduct in descriptor (%04x). skipping device",
idProduct, libusb_le16_to_cpu (priv->dev_descriptor.idProduct));
- libusb_unref_device(dev);
- return -1;
+ ret = -1;
+ break;
}
dev->bus_number = locationID >> 24;
@@ -512,28 +528,26 @@
priv->location = locationID;
snprintf(priv->sys_path, 20, "%03i-%04x-%04x-%02x-%02x", address, idVendor, idProduct, bDeviceClass, bDeviceSubClass);
- ret = usbi_sanitize_device(dev);
+ ret = usbi_sanitize_device (dev);
+ if (ret < 0)
+ break;
- if (ret < 0) {
- libusb_unref_device(dev);
- return -1;
+ /* append the device to the list of discovered devices */
+ discdevs = discovered_devs_append(*_discdevs, dev);
+ if (!discdevs) {
+ ret = LIBUSB_ERROR_NO_MEM;
+ break;
}
- } else {
- priv = (struct darwin_device_priv *)dev->os_priv;
-
- _usbi_log (ctx, LOG_LEVEL_INFO, "using existing device for location 0x%08x", locationID);
- }
-
- /* append the device to the list of discovered devices */
- discdevs = discovered_devs_append(*_discdevs, dev);
- if (!discdevs)
- return LIBUSB_ERROR_NO_MEM;
- *_discdevs = discdevs;
-
- _usbi_log (ctx, LOG_LEVEL_INFO, "found device with address %d at %s", dev->device_address, priv->sys_path);
+ *_discdevs = discdevs;
- return 0;
+ usbi_info (ctx, "found device with address %d at %s", dev->device_address, priv->sys_path);
+ } while (0);
+
+ if (need_unref)
+ libusb_unref_device(dev);
+
+ return ret;
}
static int darwin_get_device_list(struct libusb_context *ctx, struct discovered_devs **_discdevs) {
@@ -569,7 +583,7 @@
if (0 == dpriv->open_count) {
kresult = darwin_get_device (dpriv->location, &darwin_device);
if (kresult) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "could not find device: %s", darwin_error_str (kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "could not find device: %s", darwin_error_str (kresult));
return darwin_to_libusb (kresult);
}
@@ -579,7 +593,7 @@
kresult = (*(dpriv->device))->USBDeviceOpenSeize (dpriv->device);
if (kresult != kIOReturnSuccess) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "USBDeviceOpen: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "USBDeviceOpen: %s", darwin_error_str(kresult));
switch (kresult) {
case kIOReturnExclusiveAccess:
@@ -616,7 +630,7 @@
usbi_add_pollfd(HANDLE_CTX(dev_handle), priv->fds[0], POLLIN);
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_INFO, "device open for access");
+ usbi_info (HANDLE_CTX (dev_handle), "device open for access");
return 0;
}
@@ -629,7 +643,7 @@
if (dpriv->open_count == 0) {
/* something is probably very wrong if this is the case */
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "Close called on a device that was not open!\n");
+ usbi_err (HANDLE_CTX (dev_handle), "Close called on a device that was not open!\n");
return;
}
@@ -653,7 +667,7 @@
if (kresult) {
/* Log the fact that we had a problem closing the file, however failing a
* close isn't really an error, so return success anyway */
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "USBDeviceClose: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "USBDeviceClose: %s", darwin_error_str(kresult));
}
}
@@ -661,7 +675,7 @@
if (kresult) {
/* Log the fact that we had a problem closing the file, however failing a
* close isn't really an error, so return success anyway */
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "Release: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "Release: %s", darwin_error_str(kresult));
}
dpriv->device = NULL;
@@ -752,12 +766,12 @@
u_int16_t dont_care2;
int i;
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_INFO, "building table of endpoints.");
+ usbi_info (HANDLE_CTX (dev_handle), "building table of endpoints.");
/* retrieve the total number of endpoints on this interface */
kresult = (*(cInterface->interface))->GetNumEndpoints(cInterface->interface, &numep);
if (kresult) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "can't get number of endpoints for interface: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "can't get number of endpoints for interface: %s", darwin_error_str(kresult));
return darwin_to_libusb (kresult);
}
@@ -767,12 +781,12 @@
&dont_care2, &dont_care3);
if (kresult != kIOReturnSuccess) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "error getting pipe information for pipe %d: %s", i, darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "error getting pipe information for pipe %d: %s", i, darwin_error_str(kresult));
return darwin_to_libusb (kresult);
}
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_INFO, "interface: %i pipe %i: dir: %i number: %i", iface, i, direction, number);
+ usbi_info (HANDLE_CTX (dev_handle), "interface: %i pipe %i: dir: %i number: %i", iface, i, direction, number);
cInterface->endpoint_addrs[i - 1] = ((direction << 7 & LIBUSB_ENDPOINT_DIR_MASK) | (number & LIBUSB_ENDPOINT_ADDRESS_MASK));
}
@@ -806,50 +820,50 @@
be configured. Otherwise, we need to do it ourselves, or there
will be no interfaces for the device. */
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_INFO, "no interface found; selecting configuration" );
+ usbi_info (HANDLE_CTX (dev_handle), "no interface found; selecting configuration" );
kresult = (*(dpriv->device))->GetNumberOfConfigurations (dpriv->device, &nConfig);
if (kresult != kIOReturnSuccess) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "GetNumberOfConfigurations: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "GetNumberOfConfigurations: %s", darwin_error_str(kresult));
return darwin_to_libusb(kresult);
}
if (nConfig < 1) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "GetNumberOfConfigurations: no configurations");
+ usbi_err (HANDLE_CTX (dev_handle), "GetNumberOfConfigurations: no configurations");
return LIBUSB_ERROR_OTHER;
}
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_INFO, "device has %d configuration%s. using the first",
+ usbi_info (HANDLE_CTX (dev_handle), "device has %d configuration%s. using the first",
(int)nConfig, (nConfig > 1 ? "s" : "") );
/* Always use the first configuration */
kresult = (*(dpriv->device))->GetConfigurationDescriptorPtr (dpriv->device, 0, &configDesc);
if (kresult != kIOReturnSuccess) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "GetConfigurationDescriptorPtr: %s",
+ usbi_err (HANDLE_CTX (dev_handle), "GetConfigurationDescriptorPtr: %s",
darwin_error_str(kresult));
new_config = 1;
} else
new_config = configDesc->bConfigurationValue;
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_INFO, "new configuration value is %d", new_config);
+ usbi_info (HANDLE_CTX (dev_handle), "new configuration value is %d", new_config);
/* set the configuration */
kresult = darwin_set_configuration (dev_handle, new_config);
if (kresult != LIBUSB_SUCCESS) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "could not set configuration");
+ usbi_err (HANDLE_CTX (dev_handle), "could not set configuration");
return kresult;
}
kresult = darwin_get_interface (dpriv->device, iface, &usbInterface);
if (kresult) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "darwin_get_interface: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "darwin_get_interface: %s", darwin_error_str(kresult));
return darwin_to_libusb (kresult);
}
}
if (!usbInterface) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "interface not found");
+ usbi_err (HANDLE_CTX (dev_handle), "interface not found");
return LIBUSB_ERROR_NOT_FOUND;
}
@@ -857,12 +871,12 @@
kresult = IOCreatePlugInInterfaceForService (usbInterface, kIOUSBInterfaceUserClientTypeID,
kIOCFPlugInInterfaceID, &plugInInterface, &score);
if (kresult) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "IOCreatePlugInInterfaceForService: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "IOCreatePlugInInterfaceForService: %s", darwin_error_str(kresult));
return darwin_to_libusb (kresult);
}
if (!plugInInterface) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "plugin interface not found");
+ usbi_err (HANDLE_CTX (dev_handle), "plugin interface not found");
return LIBUSB_ERROR_NOT_FOUND;
}
@@ -874,7 +888,7 @@
CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID),
(LPVOID)&cInterface->interface);
if (kresult || !cInterface->interface) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "QueryInterface: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "QueryInterface: %s", darwin_error_str(kresult));
return darwin_to_libusb (kresult);
}
@@ -884,7 +898,7 @@
/* claim the interface */
kresult = (*(cInterface->interface))->USBInterfaceOpen(cInterface->interface);
if (kresult) {
- _usbi_log(HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "USBInterfaceOpen: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "USBInterfaceOpen: %s", darwin_error_str(kresult));
return darwin_to_libusb (kresult);
}
@@ -893,7 +907,7 @@
if (kresult) {
/* this should not happen */
darwin_release_interface (dev_handle, iface);
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "could not build endpoint table");
+ usbi_err (HANDLE_CTX (dev_handle), "could not build endpoint table");
return kresult;
}
@@ -902,7 +916,7 @@
/* create async event source */
kresult = (*(cInterface->interface))->CreateInterfaceAsyncEventSource (cInterface->interface, &cInterface->cfSource);
if (kresult != kIOReturnSuccess) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "could not create async event source");
+ usbi_err (HANDLE_CTX (dev_handle), "could not create async event source");
/* can't continue without an async event source */
(void)darwin_release_interface (dev_handle, iface);
@@ -913,7 +927,7 @@
/* add the cfSource to the async thread's run loop */
CFRunLoopAddSource(libusb_darwin_acfl, cInterface->cfSource, kCFRunLoopDefaultMode);
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_INFO, "interface opened");
+ usbi_info (HANDLE_CTX (dev_handle), "interface opened");
return 0;
}
@@ -940,11 +954,11 @@
kresult = (*(cInterface->interface))->USBInterfaceClose(cInterface->interface);
if (kresult)
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "USBInterfaceClose: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "USBInterfaceClose: %s", darwin_error_str(kresult));
kresult = (*(cInterface->interface))->Release(cInterface->interface);
if (kresult != kIOReturnSuccess)
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "Release: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "Release: %s", darwin_error_str(kresult));
cInterface->interface = IO_OBJECT_NULL;
@@ -970,7 +984,7 @@
if (kresult) {
/* this should not happen */
darwin_release_interface (dev_handle, iface);
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "could not build endpoint table");
+ usbi_err (HANDLE_CTX (dev_handle), "could not build endpoint table");
return kresult;
}
@@ -987,7 +1001,7 @@
/* determine the interface/endpoint to use */
if (ep_to_pipeRef (dev_handle, endpoint, &pipeRef, &iface) != 0) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "endpoint not found on any open interface");
+ usbi_err (HANDLE_CTX (dev_handle), "endpoint not found on any open interface");
return LIBUSB_ERROR_NOT_FOUND;
}
@@ -1001,7 +1015,7 @@
kresult = (*(cInterface->interface))->ClearPipeStallBothEnds(cInterface->interface, pipeRef);
#endif
if (kresult)
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "ClearPipeStall: %s", darwin_error_str (kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "ClearPipeStall: %s", darwin_error_str (kresult));
return darwin_to_libusb (kresult);
}
@@ -1012,7 +1026,7 @@
kresult = (*(dpriv->device))->ResetDevice (dpriv->device);
if (kresult)
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "ResetDevice: %s", darwin_error_str (kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "ResetDevice: %s", darwin_error_str (kresult));
return darwin_to_libusb (kresult);
}
@@ -1025,7 +1039,7 @@
kresult = darwin_get_interface (dpriv->device, interface, &usbInterface);
if (kresult) {
- _usbi_log (HANDLE_CTX (dev_handle), LOG_LEVEL_ERROR, "darwin_get_interface: %s", darwin_error_str(kresult));
+ usbi_err (HANDLE_CTX (dev_handle), "darwin_get_interface: %s", darwin_error_str(kresult));
return darwin_to_libusb (kresult);
}
@@ -1072,7 +1086,7 @@
is_read = transfer->endpoint & LIBUSB_ENDPOINT_IN;
if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, &iface) != 0) {
- _usbi_log (TRANSFER_CTX (transfer), LOG_LEVEL_ERROR, "endpoint not found on any open interface");
+ usbi_err (TRANSFER_CTX (transfer), "endpoint not found on any open interface");
return LIBUSB_ERROR_NOT_FOUND;
}
@@ -1103,8 +1117,8 @@
}
if (ret)
- _usbi_log (TRANSFER_CTX (transfer), LOG_LEVEL_ERROR, "bulk transfer failed (dir = %s): %s", is_read ? "In" : "Out",
- darwin_error_str(ret));
+ usbi_err (TRANSFER_CTX (transfer), "bulk transfer failed (dir = %s): %s (code = 0x%08x)", is_read ? "In" : "Out",
+ darwin_error_str(ret), ret);
return darwin_to_libusb (ret);
}
@@ -1137,7 +1151,7 @@
/* determine the interface/endpoint to use */
if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, &iface) != 0) {
- _usbi_log (TRANSFER_CTX (transfer), LOG_LEVEL_ERROR, "endpoint not found on any open interface");
+ usbi_err (TRANSFER_CTX (transfer), "endpoint not found on any open interface");
return LIBUSB_ERROR_NOT_FOUND;
}
@@ -1147,7 +1161,7 @@
/* Last but not least we need the bus frame number */
kresult = (*(cInterface->interface))->GetBusFrameNumber(cInterface->interface, &frame, &atTime);
if (kresult) {
- _usbi_log (TRANSFER_CTX (transfer), LOG_LEVEL_ERROR, "failed to get bus frame number: %d", kresult);
+ usbi_err (TRANSFER_CTX (transfer), "failed to get bus frame number: %d", kresult);
free(tpriv->isoc_framelist);
tpriv->isoc_framelist = NULL;
@@ -1168,7 +1182,7 @@
itransfer);
if (kresult != kIOReturnSuccess) {
- _usbi_log (TRANSFER_CTX (transfer), LOG_LEVEL_ERROR, "isochronous transfer failed (dir: %s): %s", is_read ? "In" : "Out",
+ usbi_err (TRANSFER_CTX (transfer), "isochronous transfer failed (dir: %s): %s", is_read ? "In" : "Out",
darwin_error_str(kresult));
free (tpriv->isoc_framelist);
tpriv->isoc_framelist = NULL;
@@ -1190,10 +1204,10 @@
/* IOUSBDeviceInterface expects the request in cpu endianess */
tpriv->req.bmRequestType = setup->bmRequestType;
tpriv->req.bRequest = setup->bRequest;
- /* these values should already be in bus order */
- tpriv->req.wValue = setup->wValue;
- tpriv->req.wIndex = setup->wIndex;
- tpriv->req.wLength = setup->wLength;
+ /* these values should be in bus order from libusb_fill_control_setup */
+ tpriv->req.wValue = OSSwapLittleToHostInt16 (setup->wValue);
+ tpriv->req.wIndex = OSSwapLittleToHostInt16 (setup->wIndex);
+ tpriv->req.wLength = OSSwapLittleToHostInt16 (setup->wLength);
/* data is stored after the libusb control block */
tpriv->req.pData = transfer->buffer + LIBUSB_CONTROL_SETUP_SIZE;
tpriv->req.completionTimeout = transfer->timeout;
@@ -1203,7 +1217,7 @@
kresult = (*(dpriv->device))->DeviceRequestAsyncTO(dpriv->device, &(tpriv->req), darwin_async_io_callback, itransfer);
if (kresult != kIOReturnSuccess)
- _usbi_log (TRANSFER_CTX (transfer), LOG_LEVEL_ERROR, "control request failed: %s", darwin_error_str(kresult));
+ usbi_err (TRANSFER_CTX (transfer), "control request failed: %s", darwin_error_str(kresult));
return darwin_to_libusb (kresult);
}
@@ -1220,7 +1234,7 @@
case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:
return submit_iso_transfer(itransfer);
default:
- _usbi_log (TRANSFER_CTX(transfer), LOG_LEVEL_ERROR, "unknown endpoint type %d", transfer->type);
+ usbi_err (TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type);
return LIBUSB_ERROR_INVALID_PARAM;
}
}
@@ -1230,7 +1244,7 @@
struct darwin_device_priv *dpriv = (struct darwin_device_priv *)transfer->dev_handle->dev->os_priv;
IOReturn kresult;
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_INFO, "WARNING: aborting all transactions control pipe");
+ usbi_info (ITRANSFER_CTX (itransfer), "WARNING: aborting all transactions control pipe");
kresult = (*(dpriv->device))->USBDeviceAbortPipeZero (dpriv->device);
@@ -1245,19 +1259,19 @@
IOReturn kresult;
if (ep_to_pipeRef (transfer->dev_handle, transfer->endpoint, &pipeRef, &iface) != 0) {
- _usbi_log (TRANSFER_CTX (transfer), LOG_LEVEL_ERROR, "endpoint not found on any open interface");
+ usbi_err (TRANSFER_CTX (transfer), "endpoint not found on any open interface");
return LIBUSB_ERROR_NOT_FOUND;
}
cInterface = &priv->interfaces[iface];
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_INFO, "WARNING: aborting all transactions on interface %d pipe %d", iface, pipeRef);
+ usbi_info (ITRANSFER_CTX (itransfer), "WARNING: aborting all transactions on interface %d pipe %d", iface, pipeRef);
/* abort transactions */
(*(cInterface->interface))->AbortPipe (cInterface->interface, pipeRef);
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_INFO, "calling clear pipe stall to clear the data toggle bit");
+ usbi_info (ITRANSFER_CTX (itransfer), "calling clear pipe stall to clear the data toggle bit");
/* clear the data toggle bit */
#if (InterfaceVersion < 190)
@@ -1281,7 +1295,7 @@
case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:
return darwin_abort_transfers (itransfer);
default:
- _usbi_log (TRANSFER_CTX(transfer), LOG_LEVEL_ERROR, "unknown endpoint type %d", transfer->type);
+ usbi_err (TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type);
return LIBUSB_ERROR_INVALID_PARAM;
}
}
@@ -1302,7 +1316,7 @@
struct darwin_device_handle_priv *priv = (struct darwin_device_handle_priv *)transfer->dev_handle->os_priv;
UInt32 message;
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_INFO, "an async io operation has completed");
+ usbi_info (ITRANSFER_CTX (itransfer), "an async io operation has completed");
/* send a completion message to the device's file descriptor */
message = MESSAGE_ASYNC_IO_COMPLETE;
@@ -1312,122 +1326,59 @@
write (priv->fds[1], &arg0, sizeof (UInt32));
}
-static void darwin_bulk_callback (struct usbi_transfer *itransfer, kern_return_t result, UInt32 io_size) {
- enum libusb_transfer_status status;
-
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_INFO, "handling bulk completion with status %d", result);
-
+static int darwin_transfer_status (struct usbi_transfer *itransfer, kern_return_t result) {
switch (result) {
case kIOReturnSuccess:
- status = LIBUSB_TRANSFER_COMPLETED;
- itransfer->transferred += io_size;
- break;
+ return LIBUSB_TRANSFER_COMPLETED;
case kIOReturnAborted:
- usbi_handle_transfer_cancellation(itransfer);
- return;
+ return LIBUSB_TRANSFER_CANCELLED;
case kIOUSBPipeStalled:
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_WARNING, "bulk error. pipe is stalled");
- status = LIBUSB_TRANSFER_STALL;
-
- break;
+ usbi_warn (ITRANSFER_CTX (itransfer), "transfer error: pipe is stalled");
+ return LIBUSB_TRANSFER_STALL;
case kIOReturnOverrun:
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_ERROR, "bulk error. data overrun", darwin_error_str (result));
- status = LIBUSB_TRANSFER_OVERFLOW;
-
- break;
+ usbi_err (ITRANSFER_CTX (itransfer), "transfer error: data overrun", darwin_error_str (result));
+ return LIBUSB_TRANSFER_OVERFLOW;
+ case kIOUSBTransactionTimeout:
+ usbi_err (ITRANSFER_CTX (itransfer), "transfer error: timed out");
+ return LIBUSB_TRANSFER_TIMED_OUT;
default:
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_ERROR, "bulk error = %s (value = 0x%08x)", darwin_error_str (result), result);
- status = LIBUSB_TRANSFER_ERROR;
+ usbi_err (ITRANSFER_CTX (itransfer), "transfer error: %s (value = 0x%08x)", darwin_error_str (result), result);
+ return LIBUSB_TRANSFER_ERROR;
}
-
- usbi_handle_transfer_completion(itransfer, status);
}
-static void darwin_isoc_callback (struct usbi_transfer *itransfer, kern_return_t result) {
+static void darwin_handle_callback (struct usbi_transfer *itransfer, kern_return_t result, UInt32 io_size) {
struct libusb_transfer *transfer = __USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer);
struct darwin_transfer_priv *tpriv = usbi_transfer_get_os_priv(itransfer);
- int i, status;
-
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_INFO, "handling isoc completion with status %d", result);
-
- if (result == kIOReturnSuccess && tpriv->isoc_framelist) {
- /* copy isochronous results back */
-
- for (i = 0; i < transfer->num_iso_packets ; i++) {
- struct libusb_iso_packet_descriptor *lib_desc = transfer->iso_packet_desc;
- lib_desc->status = darwin_to_libusb (tpriv->isoc_framelist[i].frStatus);
- lib_desc->actual_length = tpriv->isoc_framelist[i].frActCount;
- }
- }
+ int isIsoc = LIBUSB_TRANSFER_TYPE_ISOCHRONOUS == transfer->type;
+ int isBulk = LIBUSB_TRANSFER_TYPE_BULK == transfer->type;
+ int isControl = LIBUSB_TRANSFER_TYPE_CONTROL == transfer->type;
+ int isInterrupt = LIBUSB_TRANSFER_TYPE_INTERRUPT == transfer->type;
+ int i;
- switch (result) {
- case kIOReturnSuccess:
- status = LIBUSB_TRANSFER_COMPLETED;
- break;
- case kIOReturnAborted:
- usbi_handle_transfer_cancellation(itransfer);
+ if (!isIsoc && !isBulk && !isControl && !isInterrupt) {
+ usbi_err (TRANSFER_CTX(transfer), "unknown endpoint type %d", transfer->type);
return;
- case kIOUSBPipeStalled:
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_WARNING, "unsupported control request");
- status = LIBUSB_TRANSFER_STALL;
-
- break;
- case kIOReturnOverrun:
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_ERROR, "bulk error. data overrun", darwin_error_str (result));
- status = LIBUSB_TRANSFER_OVERFLOW;
-
- break;
- default:
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_ERROR, "control error = %s", darwin_error_str (result));
- status = LIBUSB_TRANSFER_ERROR;
}
- usbi_handle_transfer_completion(itransfer, status);
-}
-
-static void darwin_control_callback (struct usbi_transfer *itransfer, kern_return_t result, UInt32 io_size) {
- int status;
-
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_INFO, "handling control completion with status %d", result);
+ usbi_info (ITRANSFER_CTX (itransfer), "handling %s completion with kernel status %d",
+ isControl ? "control" : isBulk ? "bulk" : isIsoc ? "isoc" : "interrupt", result);
- switch (result) {
- case kIOReturnSuccess:
- status = LIBUSB_TRANSFER_COMPLETED;
- itransfer->transferred += io_size;
- break;
- case kIOReturnAborted:
- usbi_handle_transfer_cancellation(itransfer);
- return;
- case kIOUSBPipeStalled:
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_WARNING, "unsupported control request");
- status = LIBUSB_TRANSFER_STALL;
-
- break;
- default:
- _usbi_log (ITRANSFER_CTX (itransfer), LOG_LEVEL_ERROR, "control error = %s", darwin_error_str (result));
- status = LIBUSB_TRANSFER_ERROR;
+ if (kIOReturnSuccess == result) {
+ if (isIsoc && tpriv->isoc_framelist) {
+ /* copy isochronous results back */
+
+ for (i = 0; i < transfer->num_iso_packets ; i++) {
+ struct libusb_iso_packet_descriptor *lib_desc = transfer->iso_packet_desc;
+ lib_desc->status = darwin_to_libusb (tpriv->isoc_framelist[i].frStatus);
+ lib_desc->actual_length = tpriv->isoc_framelist[i].frActCount;
+ }
+ } else if (!isIsoc)
+ itransfer->transferred += io_size;
}
- usbi_handle_transfer_completion(itransfer, status);
-}
-
-static void darwin_handle_callback (struct usbi_transfer *itransfer, kern_return_t result, UInt32 io_size) {
- struct libusb_transfer *transfer = __USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer);
-
- switch (transfer->type) {
- case LIBUSB_TRANSFER_TYPE_CONTROL:
- darwin_control_callback (itransfer, result, io_size);
- break;
- case LIBUSB_TRANSFER_TYPE_BULK:
- case LIBUSB_TRANSFER_TYPE_INTERRUPT:
- darwin_bulk_callback (itransfer, result, io_size);
- break;
- case LIBUSB_TRANSFER_TYPE_ISOCHRONOUS:
- darwin_isoc_callback (itransfer, result);
- break;
- default:
- _usbi_log (TRANSFER_CTX(transfer), LOG_LEVEL_ERROR, "unknown endpoint type %d", transfer->type);
- }
+ /* it is ok to handle cancelled transfers without calling usbi_handle_transfer_cancellation (we catch timeout transfers) */
+ usbi_handle_transfer_completion (itransfer, darwin_transfer_status (itransfer, result));
}
static int op_handle_events(struct libusb_context *ctx, struct pollfd *fds, nfds_t nfds, int num_ready) {
@@ -1443,7 +1394,7 @@
struct libusb_device_handle *handle;
struct darwin_device_handle_priv *hpriv = NULL;
- _usbi_log (ctx, LOG_LEVEL_INFO, "checking fd %i with revents = %x", fds[i], pollfd->revents);
+ usbi_info (ctx, "checking fd %i with revents = %x", fds[i], pollfd->revents);
if (!pollfd->revents)
continue;
@@ -1486,7 +1437,7 @@
darwin_handle_callback (itransfer, kresult, io_size);
break;
default:
- _usbi_log (ctx, LOG_LEVEL_ERROR, "unknown message received from device pipe");
+ usbi_err (ctx, "unknown message received from device pipe");
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/libusb/os/linux_usbfs.c new/libusb-1.0.8/libusb/os/linux_usbfs.c
--- old/libusb-1.0.6/libusb/os/linux_usbfs.c 2009-11-22 18:17:46.000000000 +0100
+++ new/libusb-1.0.8/libusb/os/linux_usbfs.c 2010-04-22 23:14:46.000000000 +0200
@@ -72,14 +72,21 @@
static const char *usbfs_path = NULL;
-/* Linux 2.6.32 adds support for a bulk continuation URB flag. this should
- * be set on all URBs in the transfer except the first. also set the
- * SHORT_NOT_OK flag on all of them, to raise error conditions on short
- * transfers.
- * then, on any error except a cancellation, all URBs until the next
- * non-continuation URB will be cancelled with the endpoint disabled,
- * meaning that no more data can creep in during the time it takes us to
- * cancel the remaining URBs. */
+/* Linux 2.6.32 adds support for a bulk continuation URB flag. this basically
+ * allows us to mark URBs as being part of a specific logical transfer when
+ * we submit them to the kernel. then, on any error error except a
+ * cancellation, all URBs within that transfer will be cancelled with the
+ * endpoint is disabled, meaning that no more data can creep in during the
+ * time it takes to cancel the remaining URBs.
+ *
+ * The BULK_CONTINUATION flag must be set on all URBs within a bulk transfer
+ * (in either direction) except the first.
+ * For IN transfers, we must also set SHORT_NOT_OK on all the URBs.
+ * For OUT transfers, SHORT_NOT_OK must not be set. The effective behaviour
+ * (where an OUT transfer does not complete, the rest of the URBs in the
+ * transfer get cancelled) is already in effect, and setting this flag is
+ * disallowed (a kernel with USB debugging enabled will reject such URBs).
+ */
static int supports_flag_bulk_continuation = -1;
/* clock ID for monotonic clock, as not all clock sources are available on all
@@ -381,7 +388,8 @@
/* takes a usbfs/descriptors fd seeked to the start of a configuration, and
* seeks to the next one. */
-static int seek_to_next_config(struct libusb_context *ctx, int fd)
+static int seek_to_next_config(struct libusb_context *ctx, int fd,
+ int host_endian)
{
struct libusb_config_descriptor config;
unsigned char tmp[6];
@@ -399,7 +407,7 @@
}
/* seek forward to end of config */
- usbi_parse_descriptor(tmp, "bbwbb", &config, 1);
+ usbi_parse_descriptor(tmp, "bbwbb", &config, host_endian);
off = lseek(fd, config.wTotalLength - sizeof(tmp), SEEK_CUR);
if (off < 0) {
usbi_err(ctx, "seek failed ret=%d errno=%d", off, errno);
@@ -476,7 +484,7 @@
if (off < 0)
return LIBUSB_ERROR_IO;
- r = seek_to_next_config(DEVICE_CTX(dev), fd);
+ r = seek_to_next_config(DEVICE_CTX(dev), fd, 1);
if (r < 0)
return r;
}
@@ -531,7 +539,7 @@
/* might need to skip some configuration descriptors to reach the
* requested configuration */
while (config_index > 0) {
- r = seek_to_next_config(ctx, fd);
+ r = seek_to_next_config(ctx, fd, 0);
if (r < 0)
return r;
config_index--;
@@ -606,7 +614,7 @@
return r;
}
- usbi_parse_descriptor(tmp, "bbw", &config, 1);
+ usbi_parse_descriptor(tmp, "bbw", &config, 0);
buf = malloc(config.wTotalLength);
if (!buf)
return LIBUSB_ERROR_NO_MEM;
@@ -645,7 +653,8 @@
if (errno == ENODEV)
return LIBUSB_ERROR_NO_DEVICE;
- usbi_err(DEVICE_CTX(dev),
+ /* we hit this error path frequently with buggy devices :( */
+ usbi_warn(DEVICE_CTX(dev),
"get_configuration failed ret=%d errno=%d", r, errno);
return LIBUSB_ERROR_IO;
}
@@ -715,7 +724,13 @@
"determine active configuration descriptor", path);
} else {
active_config = usbfs_get_active_config(dev, fd);
- if (active_config < 0) {
+ if (active_config == LIBUSB_ERROR_IO) {
+ /* buggy devices sometimes fail to report their active config.
+ * assume unconfigured and continue the probing */
+ usbi_warn(DEVICE_CTX(dev), "couldn't query active "
+ "configuration, assumung unconfigured");
+ device_configured = 0;
+ } else if (active_config < 0) {
close(fd);
return active_config;
} else if (active_config == 0) {
@@ -724,7 +739,7 @@
* not support buggy devices in these circumstances.
* stick to the specs: a configuration value of 0 means
* unconfigured. */
- usbi_dbg("assuming unconfigured device");
+ usbi_dbg("active cfg 0? assuming unconfigured device");
device_configured = 0;
}
}
@@ -1326,6 +1341,8 @@
struct linux_device_handle_priv *dpriv =
__device_handle_priv(transfer->dev_handle);
struct usbfs_urb *urbs;
+ int is_out = (transfer->endpoint & LIBUSB_ENDPOINT_DIR_MASK)
+ == LIBUSB_ENDPOINT_OUT;
int r;
int i;
size_t alloc_size;
@@ -1364,7 +1381,7 @@
urb->type = urb_type;
urb->endpoint = transfer->endpoint;
urb->buffer = transfer->buffer + (i * MAX_BULK_BUFFER_LENGTH);
- if (supports_flag_bulk_continuation)
+ if (supports_flag_bulk_continuation && !is_out)
urb->flags = USBFS_URB_SHORT_NOT_OK;
if (i == num_urbs - 1 && last_urb_partial)
urb->buffer_length = transfer->length % MAX_BULK_BUFFER_LENGTH;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libusb-1.0.6/NEWS new/libusb-1.0.8/NEWS
--- old/libusb-1.0.6/NEWS 2009-11-22 18:20:44.000000000 +0100
+++ new/libusb-1.0.8/NEWS 2010-05-05 00:01:54.000000000 +0200
@@ -1,6 +1,13 @@
This file lists notable changes in each release. For the full history of all
changes, see ChangeLog.
+2010-05-07: v1.0.8
+* Bug fixes
+
+2010-04-19: v1.0.7
+* Bug fixes and documentation tweaks
+* Add more interface class definitions
+
2009-11-22: v1.0.6
* Bug fixes
* Increase libusb_handle_events() timeout to 60s for powersaving
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package avahi for openSUSE:Factory
checked in at Mon Jun 28 16:14:46 CEST 2010.
--------
--- avahi/avahi.changes 2010-06-18 10:26:58.000000000 +0200
+++ /mounts/work_src_done/STABLE/avahi/avahi.changes 2010-06-21 14:04:15.000000000 +0200
@@ -1,0 +2,5 @@
+Mon Jun 21 12:04:15 UTC 2010 - lnussel(a)suse.de
+
+- also check ipv6 case in avahi-0.6.25-fixcrash.patch
+
+-------------------------------------------------------------------
avahi-mono.changes: same change
avahi-qt4.changes: same change
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ avahi-glib2.spec ++++++
--- /var/tmp/diff_new_pack.rqyO75/_old 2010-06-28 16:13:54.000000000 +0200
+++ /var/tmp/diff_new_pack.rqyO75/_new 2010-06-28 16:13:54.000000000 +0200
@@ -31,7 +31,7 @@
%define build_qt3 0
%define build_qt4 0
Version: 0.6.25
-Release: 9
+Release: 10
%if !%build_glib2 && !%build_mono && !%build_qt3 && !%build_qt4
# Create split spec files only when building per partes:
#%(sh %{_sourcedir}/%{_name}_spec-prepare.sh %{_sourcedir} %{name})
avahi-mono.spec: same change
++++++ avahi-qt4.spec ++++++
--- /var/tmp/diff_new_pack.rqyO75/_old 2010-06-28 16:13:54.000000000 +0200
+++ /var/tmp/diff_new_pack.rqyO75/_new 2010-06-28 16:13:54.000000000 +0200
@@ -31,7 +31,7 @@
%define build_qt3 0
%define build_qt4 1
Version: 0.6.25
-Release: 9
+Release: 10
%if !%build_glib2 && !%build_mono && !%build_qt3 && !%build_qt4
# Create split spec files only when building per partes:
#%(sh %{_sourcedir}/%{_name}_spec-prepare.sh %{_sourcedir} %{name})
++++++ avahi.spec ++++++
--- /var/tmp/diff_new_pack.rqyO75/_old 2010-06-28 16:13:54.000000000 +0200
+++ /var/tmp/diff_new_pack.rqyO75/_new 2010-06-28 16:13:54.000000000 +0200
@@ -33,7 +33,7 @@
%define build_qt3 0
%define build_qt4 0
Version: 0.6.25
-Release: 9
+Release: 10
%if !%build_glib2 && !%build_mono && !%build_qt3 && !%build_qt4
# Create split spec files only when building per partes:
#%(sh %{_sourcedir}/%{_name}_spec-prepare.sh %{_sourcedir} %{name})
++++++ avahi-0.6.25-fixcrash.patch ++++++
--- /var/tmp/diff_new_pack.rqyO75/_old 2010-06-28 16:13:54.000000000 +0200
+++ /var/tmp/diff_new_pack.rqyO75/_new 2010-06-28 16:13:54.000000000 +0200
@@ -1,4 +1,4 @@
-From ae19b3039335999e3c06f2bec9ae11ee79b204c1 Mon Sep 17 00:00:00 2001
+From cef39a95d31834ab3aac2ea09970ad54d5f5a08b Mon Sep 17 00:00:00 2001
From: Ludwig Nussel <ludwig.nussel(a)suse.de>
Date: Wed, 19 May 2010 15:43:44 +0200
Subject: [PATCH] ignore packet if FIONREAD returns zero
@@ -7,14 +7,25 @@
nevertheless get data from a good packet that followed the bad one.
So get out early to avoid hitting an assertion.
---
- avahi-core/socket.c | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
+ avahi-core/socket.c | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/avahi-core/socket.c b/avahi-core/socket.c
-index 4146d5a..8b9736a 100644
+index 4146d5a..49238c2 100644
--- a/avahi-core/socket.c
+++ b/avahi-core/socket.c
-@@ -805,6 +805,10 @@ AvahiDnsPacket *avahi_recv_dns_packet_ipv6(
+@@ -652,6 +652,10 @@ AvahiDnsPacket *avahi_recv_dns_packet_ipv4(
+ goto fail;
+ }
+
++ /* corrupt packets have zero size */
++ if (!ms)
++ goto fail;
++
+ p = avahi_dns_packet_new(ms + AVAHI_DNS_PACKET_EXTRA_SIZE);
+
+ io.iov_base = AVAHI_DNS_PACKET_DATA(p);
+@@ -805,6 +809,10 @@ AvahiDnsPacket *avahi_recv_dns_packet_ipv6(
goto fail;
}
@@ -26,5 +37,5 @@
io.iov_base = AVAHI_DNS_PACKET_DATA(p);
--
-1.6.4.2
+1.7.1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package Mesa for openSUSE:Factory
checked in at Mon Jun 28 16:02:35 CEST 2010.
--------
--- Mesa/Mesa.changes 2010-06-09 10:53:03.000000000 +0200
+++ /mounts/work_src_done/STABLE/Mesa/Mesa.changes 2010-06-25 11:39:44.000000000 +0200
@@ -1,0 +2,8 @@
+Fri Jun 25 11:15:20 CEST 2010 - sndirsch(a)suse.de
+
+- Mesa 7.8.2
+ * Various i965 and i915 driver fixes.
+- adjusted Mesa_indirect_old_xserver_compatibility.diff,
+ egl-buildfix.diff
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
MesaDemos-7.8.1.tar.bz2
MesaLib-7.8.1.tar.bz2
New:
----
MesaDemos-7.8.2.tar.bz2
MesaLib-7.8.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ Mesa.spec ++++++
--- /var/tmp/diff_new_pack.j7Fvgv/_old 2010-06-28 16:00:09.000000000 +0200
+++ /var/tmp/diff_new_pack.j7Fvgv/_new 2010-06-28 16:00:09.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package Mesa (Version 7.8.1)
+# spec file for package Mesa (Version 7.8.2)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -33,9 +33,9 @@
Obsoletes: Mesa-64bit
%endif
#
-%define _version 7.8.1
-Version: 7.8.1
-Release: 5
+%define _version 7.8.2
+Version: 7.8.2
+Release: 1
Summary: Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL
Source: MesaLib-%{_version}.tar.bz2
Source1: MesaDemos-%{_version}.tar.bz2
++++++ egl-buildfix.diff ++++++
--- /var/tmp/diff_new_pack.j7Fvgv/_old 2010-06-28 16:00:09.000000000 +0200
+++ /var/tmp/diff_new_pack.j7Fvgv/_new 2010-06-28 16:00:09.000000000 +0200
@@ -3,8 +3,8 @@
@@ -11,6 +11,6 @@
-I$(TOP)/src/egl/main
- EGL_CFLAGS =
--EGL_LIBS = -lX11 -lGL
-+EGL_LIBS = -lX11 -l$(GL_LIB)
+ EGL_CFLAGS = $(X11_CFLAGS)
+-EGL_LIBS = $(X11_LIBS) -lGL
++EGL_LIBS = $(X11_LIBS) -l$(GL_LIB)
include ../Makefile.template
++++++ MesaDemos-7.8.1.tar.bz2 -> MesaDemos-7.8.2.tar.bz2 ++++++
Mesa/MesaDemos-7.8.1.tar.bz2 /mounts/work_src_done/STABLE/Mesa/MesaDemos-7.8.2.tar.bz2 differ: byte 11, line 1
++++++ Mesa_indirect_old_xserver_compatibility.diff ++++++
--- /var/tmp/diff_new_pack.j7Fvgv/_old 2010-06-28 16:00:09.000000000 +0200
+++ /var/tmp/diff_new_pack.j7Fvgv/_new 2010-06-28 16:00:09.000000000 +0200
@@ -1,6 +1,6 @@
---- src/glx/glxext.c.orig 2010-05-22 15:57:21.000000000 +0200
-+++ src/glx/glxext.c 2010-05-22 15:57:37.000000000 +0200
-@@ -820,9 +820,11 @@ __glXInitialize(Display * dpy)
+--- src/glx/glxext.c.orig 2010-06-15 19:43:47.000000000 +0200
++++ src/glx/glxext.c 2010-06-25 11:27:16.000000000 +0200
+@@ -891,9 +891,11 @@ __glXInitialize(Display * dpy)
dpyPriv->dri2Display = dri2CreateDisplay(dpy);
dpyPriv->driDisplay = driCreateDisplay(dpy);
}
@@ -9,6 +9,6 @@
dpyPriv->driswDisplay = driswCreateDisplay(dpy);
#endif
+#endif
-
- if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) {
- __glXUnlock();
+ #ifdef GLX_USE_APPLEGL
+ if (apple_init_glx(dpy) || !AllocAndFetchScreenConfigs(dpy, dpyPriv)) {
+ #else
++++++ MesaLib-7.8.1.tar.bz2 -> MesaLib-7.8.2.tar.bz2 ++++++
++++ 17443 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package libdrm for openSUSE:Factory
checked in at Mon Jun 28 15:59:54 CEST 2010.
--------
--- libdrm/libdrm.changes 2010-06-01 14:21:47.000000000 +0200
+++ /mounts/work_src_done/STABLE/libdrm/libdrm.changes 2010-06-24 16:59:50.000000000 +0200
@@ -1,0 +2,16 @@
+Thu Jun 24 16:57:19 CEST 2010 - sndirsch(a)suse.de
+
+- updated to git master commit #726210f
+ * various tiling related fixes for intel
+
+-------------------------------------------------------------------
+Tue Jun 15 12:10:49 CEST 2010 - sndirsch(a)suse.de
+
+- libdrm 2.4.21
+- obsoletes commit-3506173.diff
+- adjusted enable_test_tools.diff
+- libdrm-204c76c.diff (reverse applied)
+ * old nouveau gallium driver in Mesa still requires
+ nouveau_class.h in libdrm
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
commit-3506173.diff
libdrm-2.4.20.tar.bz2
New:
----
libdrm-204c76c.diff
libdrm-2.4.21-726210f.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libdrm.spec ++++++
--- /var/tmp/diff_new_pack.uvCrtR/_old 2010-06-28 15:58:10.000000000 +0200
+++ /var/tmp/diff_new_pack.uvCrtR/_new 2010-06-28 15:58:10.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package libdrm (Version 2.4.20)
+# spec file for package libdrm (Version 2.4.21)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -31,13 +31,13 @@
Obsoletes: libdrm-64bit
%endif
#
-Version: 2.4.20
-Release: 2
+Version: 2.4.21
+Release: 1
Summary: Userspace Interface for Kernel DRM Services
-Source: %{name}-%{version}.tar.bz2
+Source: %{name}-%{version}-726210f.tar.bz2
Source2: baselibs.conf
Patch: enable_test_tools.diff
-Patch1: commit-3506173.diff
+Patch1: libdrm-204c76c.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -63,7 +63,7 @@
%prep
%setup -q
%patch
-%patch1 -p1
+%patch1 -p1 -R
%build
autoreconf -fi
++++++ enable_test_tools.diff ++++++
--- /var/tmp/diff_new_pack.uvCrtR/_old 2010-06-28 15:58:11.000000000 +0200
+++ /var/tmp/diff_new_pack.uvCrtR/_new 2010-06-28 15:58:11.000000000 +0200
@@ -1,11 +1,12 @@
diff -u -r -p tests.orig//Makefile.am tests/Makefile.am
--- tests.orig//Makefile.am 2009-12-01 22:49:53.000000000 +0100
+++ tests/Makefile.am 2009-12-01 22:50:07.000000000 +0100
-@@ -6,7 +6,7 @@ AM_CPPFLAGS = \
+@@ -6,7 +6,8 @@ AM_CPPFLAGS = \
LDADD = $(top_builddir)/libdrm.la
--noinst_PROGRAMS = \
+-check_PROGRAMS = \
++check_PROGRAMS =
+bin_PROGRAMS = \
dristat \
drmstat
++++++ libdrm-204c76c.diff ++++++
++++ 9047 lines (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package clamav for openSUSE:Factory
checked in at Mon Jun 28 14:52:14 CEST 2010.
--------
--- clamav/clamav.changes 2010-04-14 16:49:21.000000000 +0200
+++ /mounts/work_src_done/STABLE/clamav/clamav.changes 2010-05-19 19:17:09.000000000 +0200
@@ -1,0 +2,94 @@
+Wed May 19 17:58:18 CEST 2010 - max(a)suse.de
+
+- New version: 0.96.1:
+ * libclamav/7z/Archive/7z/7zIn.c: fix possible(?) null dereference
+ reported by clang (bb#1909).
+ * libclamav/pe_icons.c: properly round down when scaling (bb#2031)
+ * libclamav/pdf.c: bb #2016
+ * libclamav/readdb.c: properly reject .info files passed on
+ cmdline (bb#2025)
+ * libclamav/matcher-bm.c: fix offset check (bb#2032)
+ * libclamav/fmap.c: fix bug introduced in clamav-0.96-51-g3e3b587.
+ * libclamav/pe.c: properly resume stringtable loop (bb#2027)
+ Note: 0.96 is NOT affected as the min VI sig has got FL=53
+ * unit_tests: add bytecode.cvd load test
+ * docs/man: add clamav.milter.conf.5
+ * libclamav: Use mpool in win32 (well, sort of) as the mighty crt
+ allocator
+ * libclamav/fmap.c: make oof need stfu (bb#2000)
+ * libclamav/bytecode.c: handle global gep parameter correctly (bb
+ #1955)
+ * libclamav/c++/llvm: Update to LLVM 2.7 release.
+ * libclamav/bytecode*, unit_tests: add new unit tests for bytecode
+ API and fix bugs.
+ * libclamav/c++: Relax bounds checks. Was rejecting correct code.
+ * libclamav/filtering.c: fix handling of alternates and negated
+ alternates (bb #2004)
+ * libclamav/readdb.c: read the entire .cbc files, fix loading of
+ bytecode.cvd
+ * freshclam: fix handling of temporary files
+ * freshclam: add new option TestDatabases
+ * tools: make sure the libclamav version is high enough (bb#2013)
+ * sigtool/sigtool.c: fix error msg (bb#2002)
+ * clamdscan: respect ExcludePath in --fdpass mode (bb#1923)
+ * libclamav/c++/llvm/test: Fix make check failure on x86-32 (bb
+ #1942)
+ * clamdscan: respect ExcludePath in --fdpass mode (bb#1923)
+ * libclamav/readdb.c: add checks to enforce lsig compatibility
+ with 0.95.x (bb# 2008)
+ * clamscan/manager.c: don't closedir(NULL) (bb #2010)
+ * libclamav/c++/configure: add check that correct libstdc++
+ version is used (bb #1971)
+ * libclamav/cache.c: support building without pthreads (bb #1897).
+ * libclamav/bytecode*: add match_offsets support.
+ * shared/output.c: workaround FreeBSD's file locking issue
+ (bb#1918)
+ * freshclam/notify.c: fix warning message (bb#1972)
+ * libclamav: make lsigs working in cli_scanscript() (bb#1998)
+ * libclamav/fmap.c: nicely handle EINTR
+ * libclamav: no ERROR on void mapping (bb#1968)
+ * libclamav/matcher-ac.c: fix counting of subsig matches (bb#2001)
+ * clamav-milter: add VirusAction (bb#1867)
+ * libclamav/c++/llvm/include/llvm/ADT/SmallVector.h: Fix crash
+ with -ftree-vectorize/-O3(bb #1984).
+ * libclamav: fix some limit settings (bb#1973)
+ * bytecode: min/max functionality level support.
+ * libclamav/others.c: bump f-level
+ * libclamav/matcher-ac.c: fix handling of VI/MACRO special offsets
+ (bb#1957)
+ * configure: fix Apple-style universal build (bb #1988).
+ * libclamav/fmap.c: downgrade warning when the kernel doesn't want
+ a map back
+ * libclamav: avoid loading duplicate databases (bb#1962)
+ * clamconf: print information about platform and build.
+ * libclamav/c++/configure: disable gcc 3.4.6 by default, you can
+ still use it with --enable-llvm (bb #1935).
+ * docs/man/freshclam.conf.5.in: document LogFileMaxSize (bb#1960)
+ * freshclam/manager.c: add support for X-HostID to allow custom
+ UserAgent
+ * libclamav/bytecode.c: fix cli_unlink warnings (bb #1956).
+ * clambc, clamd,clamdtop,libclamav,unit_tests: fix compiler
+ warnings (bb #1872,
+ * libclamav/c++: allow building with gcc 3.4.6 (bb #1934).
+ * unit_tests/check_common.sh: fix make check on AIX (bb #1917).
+ * freshclam/manager.c: better handle daylight saving time changes
+ (bb#1920)
+ * libclamav/pe.c: more relaxed vinfo parser - try to mimic winxp's
+ * sigtool: handle .idb files
+ * libclamav/matcher.c: return proper virus name in icon detector
+ (bb#1933)
+ * libclamav/c++/bytecode2llvm.cpp: Fix load of multiple unsigned
+ bytecodes (bb #1924)
+ * contrib/split-tarball.sh: update to work with 0.96
+ * libclamav/Makefile.{am,in}: Fix unit test failure with
+ non-English locale (bb #1922)
+ * libclamav/c++/llvm/lib/Support/Allocator.cpp: Fix
+ SpecificBumpPtrAllocator destructor iteration.
+ * libclamav/c++/llvm/lib/ExecutionEngine/JIT/JIT.cpp: Fix the
+ previous PowerPC workaround to not crash when not using the JIT.
+ * libclamav/c++/{bytecode2llvm.cpp,llvm/lib/ExecutionEngine/JIT/JIT.cpp,
+ llvm/lib/Target/PowerPC/PPCISelLowering.cpp}: Workaround LLVM
+ JIT PowerPC relocation bug (bb #1921).
+ * unit_tests: Fix matchwithread.cbc
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
clamav-0.96.tar.bz2
New:
----
clamav-0.96.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ clamav.spec ++++++
--- /var/tmp/diff_new_pack.QYpJ8M/_old 2010-06-28 14:51:42.000000000 +0200
+++ /var/tmp/diff_new_pack.QYpJ8M/_new 2010-06-28 14:51:42.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package clamav (Version 0.96)
+# spec file for package clamav (Version 0.96.1)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -35,8 +35,8 @@
%define clamav_check --disable-check
%endif
Summary: Antivirus Toolkit
-Version: 0.96
-Release: 3
+Version: 0.96.1
+Release: 1
License: GPLv2
Group: Productivity/Security
Url: http://www.clamav.net
++++++ clamav-0.96.tar.bz2 -> clamav-0.96.1.tar.bz2 ++++++
clamav/clamav-0.96.tar.bz2 /mounts/work_src_done/STABLE/clamav/clamav-0.96.1.tar.bz2 differ: byte 11, line 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package python-asn1 for openSUSE:Factory
checked in at Mon Jun 28 13:06:15 CEST 2010.
--------
New Changes file:
--- /dev/null 2010-05-08 11:31:08.000000000 +0200
+++ /mounts/work_src_done/STABLE/python-asn1/python-asn1.changes 2010-06-22 15:53:06.000000000 +0200
@@ -0,0 +1,61 @@
+-------------------------------------------------------------------
+Tue Jun 22 13:44:07 UTC 2010 - hvogel(a)novell.com
+
+- rename to follow our naming scheme with skipping py prefix for
+ modname
+- prepare specfile for factory submission
+
+-------------------------------------------------------------------
+Fri Apr 30 02:41:06 UTC 2010 - alexandre(a)exatati.com.br
+
+- Update to 0.0.11a
+ - Decoder can now treat values of unknown types as opaque OctetString.
+ - Fix to Set/SetOf type decoder to handle uninitialized scalar SetOf
+ components correctly.
+- Spec file cleaned with spec-cleaner.
+
+-------------------------------------------------------------------
+Mon Feb 08 12:00:00 2010 - termim(a)gmail.com
+- Update to 0.0.10a
+ - API versioning mechanics retired (pyasn1.v1 -> pyasn1) what makes
+ it possible to zip-import pyasn1 sources (used by egg and py2exe).
+- Update to 0.0.9a
+ - Allow any non-zero values in Boolean type BER decoder, as it's in
+ accordnance with the standard.
+
+-------------------------------------------------------------------
+Mon Feb 16 12:00:00 2009 - jfunk(a)funktronics.ca - 0.0.8-1
+- Update to 0.0.8a
+ - Integer.__index__() now supported (for Python 2.5+).
+ - Fix to empty value encoding in BitString encoder, test case added.
+ - Fix to SequenceOf decoder that prevents it skipping possible Choice
+ typed inner component.
+ - Choice.getName() method added for getting currently set component
+ name.
+ - OctetsString.prettyPrint() does a single str() against its value
+ eliminating an extra quotes.
+- 0.0.7a
+ - Large tags (>31) now supported by codecs.
+ - Fix to encoder to properly handle explicitly tagged untagged items.
+ - All possible value lengths (up to 256^126) now supported by encoders.
+ - Fix to Tag class constructor to prevent negative IDs.
+
+-------------------------------------------------------------------
+Mon Apr 23 12:00:00 2007 - jfunk(a)funktronics.ca - 0.0.6-1
+- Update to 0.0.6
+ - Make use of setuptools
+ - Constraints derivation verification (isSuperTypeOf()/isSubTypeOf()) fixed
+ - Fix to constraints comparation logic -- can't cmp() hash values as it
+ may cause false positives due to hash conflicts
+
+-------------------------------------------------------------------
+Thu Jun 22 12:00:00 2006 - jfunk(a)funktronics.ca - 0.0.5-1
+- Update
+
+-------------------------------------------------------------------
+Wed Oct 12 12:00:00 2005 - jfunk(a)funktronics.ca - 0.0.3-ft.2
+- Buildfor SL10
+
+-------------------------------------------------------------------
+Wed Sep 28 12:00:00 2005 - jfunk(a)funktronics.ca - 0.0.3-ft.1
+- Initial release
calling whatdependson for head-i586
New:
----
pyasn1-0.0.11a.tar.bz2
python-asn1.changes
python-asn1.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-asn1.spec ++++++
#
# spec file for package python-asn1 (Version 0.0.11)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define modname pyasn1
%define prever a
Name: python-asn1
Version: 0.0.11
Release: 1
License: Other License(s), see package
Summary: ASN.1 library for Python
Url: http://pyasn1.sf.net/
Group: Development/Libraries/Python
Source: %{modname}-%{version}%{prever}.tar.bz2
BuildRequires: python-devel python-setuptools
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Provides: python-pyasn1 = %version
Obsoletes: python-pyasn1 < 0.0.11
%{py_requires}
%description
This is an implementation of ASN.1 types and codecs in Python programming
language. It has been first written to support particular protocol (SNMP) but
then generalized to be suitable for a wide range of protocols based on ASN.1
specification.
Author:
--------
Ilya Etingof <ilya(a)glas.net>
%prep
%setup -q -n %{modname}-%{version}%{prever}
%build
export CFLAGS="%{optflags}"
python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot} --record-rpm=INSTALLED_FILES
%clean
rm -rf %{buildroot}
%files -f INSTALLED_FILES
%defattr(-,root,root)
%changelog
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0