Your message dated Wed, 31 Oct 2018 05:32:13 +0000
with message-id <[email protected]>
and subject line Bug#904833: Removed package(s) from unstable
has caused the Debian Bug report #610764,
regarding gmediaserver: Several fixes from upstream to work with a PS3
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
610764: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=610764
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: gmediaserver
Version: 0.13.0-6
Severity: normal
Tags: patch

Hi!

Attached is a patch with few cherry-picked fixes from upstream CVS,
to enable gmediaserver to work correctly with a PS3.

The relevant patch is debian/patches/00_cvs_fixes.diff, but it
conflicted with debian/patches/06_fix_noxon_sort.diff, so I've rebased
that one, and just included a patch against the debian packaging.

thanks,
guillem
diff -Nru gmediaserver-0.13.0/debian/patches/00_cvs_fixes.diff gmediaserver-0.13.0/debian/patches/00_cvs_fixes.diff
--- gmediaserver-0.13.0/debian/patches/00_cvs_fixes.diff	1970-01-01 01:00:00.000000000 +0100
+++ gmediaserver-0.13.0/debian/patches/00_cvs_fixes.diff	2011-01-22 06:50:26.000000000 +0100
@@ -0,0 +1,184 @@
+Description: Fix several things from upstream CVS
+Origin: upstream
+
+diff -Naur -x CVS gmediaserver-orig/src/connectmgr.c gmediaserver/src/connectmgr.c
+--- gmediaserver-orig/src/connectmgr.c	2007-10-18 18:30:04.000000000 +0200
++++ gmediaserver/src/connectmgr.c	2008-05-06 20:39:30.000000000 +0200
+@@ -32,8 +32,8 @@
+      * this: "http-get:*:audio/mpeg:*,http-get:*:audio/m3u:*,..") we use
+      * this generic string which is accepted according to the standard.
+      */
+-    upnp_add_response(event, "SOURCE", "http-get:*:*:*");
+-    upnp_add_response(event, "SINK", "");
++    upnp_add_response(event, "Source", "http-get:*:*:*");
++    upnp_add_response(event, "Sink", "");
+     return event->status;
+ }
+ 
+diff -Naur -x CVS gmediaserver-orig/src/contentdir.c gmediaserver/src/contentdir.c
+--- gmediaserver-orig/src/contentdir.c	2007-10-20 09:59:38.000000000 +0200
++++ gmediaserver/src/contentdir.c	2007-11-29 21:06:53.000000000 +0100
+@@ -141,22 +141,21 @@
+ sort_criteria_comparision(const void *k1, const void *k2, void *data)
+ {
+     SortCriteria *criteria = data;
+-    SortCriteriaEntry *sort_entry;
++    SortCriteriaEntry *se;
+     const Entry *e1 = k1;
+     const Entry *e2 = k2;
+ 
+-    sort_entry = criteria->first;
+-    while (sort_entry != NULL) {
+-	char *p1 = get_entry_property(e1, sort_entry->property);
+-	char *p2 = get_entry_property(e2, sort_entry->property);
++    for (se = criteria->first; se != NULL; se = se->next) {
++	char *p1 = get_entry_property(e1, se->property);
++	char *p2 = get_entry_property(e2, se->property);
+ 
+ 	if (p1 == NULL && p2 != NULL) {
+ 	    free(p2);
+-	    return (sort_entry->ascending ? -1 : 1);
++	    return (se->ascending ? -1 : 1);
+ 	}
+ 	if (p1 != NULL && p2 == NULL) {
+ 	    free(p1);
+-	    return (sort_entry->ascending ? 1 : -1);
++	    return (se->ascending ? 1 : -1);
+ 	}
+ 	if (p1 != NULL && p2 != NULL) {
+ 	    int compare;
+@@ -165,11 +164,11 @@
+ 	    free(p1);
+ 	    free(p2);
+ 	    if (compare != 0)
+-		return (sort_entry->ascending ? compare : -compare);
++		return (se->ascending ? compare : -compare);
+ 	}
+     }
+ 
+-    return e1-e2;
++    return e1-e2; /* Just some arbitrary sort criteria? */
+ }
+ 
+ void
+diff -Naur -x CVS gmediaserver-orig/src/metadata.c gmediaserver/src/metadata.c
+--- gmediaserver-orig/src/metadata.c	2007-10-20 11:41:32.000000000 +0200
++++ gmediaserver/src/metadata.c	2010-02-14 20:23:36.000000000 +0100
+@@ -66,7 +66,7 @@
+ #define MAX_INVALID_EXTM3U_FILES	16
+ #define MAX_INVALID_PLS_FILES		16
+ #define MAX_INVALID_PLS_LINES		16
+-#define EXT_INFO_DEFAULT		"DLNA.ORG_PS=1;DLNA.ORG_CI=0;DLNA.ORG_OP=00;DLNA.ORG_FLAGS=00000000000000000000000000000000"
++#define EXT_INFO_DEFAULT		"DLNA.ORG_PS=1;DLNA.ORG_CI=0;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=00000000000000000000000000000000"
+ #define EXT_INFO_PN			";DLNA.ORG_PN="
+ 
+ typedef enum {
+@@ -109,7 +109,7 @@
+     [FILE_MP3] 		= "MP3",
+     [FILE_MP3_ID3]	= "MP3",
+     [FILE_WMA] 		= "WMAFULL",
+-    [FILE_RIFF_WAVE] 	= NULL,
++    [FILE_RIFF_WAVE]	= "LPCM",
+     [FILE_M4A] 		= NULL,
+     [FILE_OGG]		= NULL,
+     [FILE_MPG] 		= NULL,
+@@ -129,11 +129,11 @@
+     [FILE_MP3] 		= "audio/mpeg",
+     [FILE_MP3_ID3]	= "audio/mpeg",
+     [FILE_WMA] 		= "audio/x-ms-wma",
+-    [FILE_RIFF_WAVE] 	= "audio/x-wav",
++    [FILE_RIFF_WAVE] 	= "audio/x-wav", /* DMS: was x-wav */
+     [FILE_M4A] 		= "audio/mp4",
+-    [FILE_OGG]		= "audio/vorbis",
++    [FILE_OGG]		= "application/ogg",
+     [FILE_MPG] 		= "video/mpeg",
+-    [FILE_MP4] 		= "video/mp4",
++    [FILE_MP4] 		= "video/divx", /* DMS: was mp4*/
+     [FILE_PLS] 		= "audio/x-scpls",
+     [FILE_M3U] 		= "audio/m3u",
+     [FILE_EXTM3U] 	= "audio/m3u",
+@@ -153,7 +153,7 @@
+     [FILE_M4A] 		= "m4a",
+     [FILE_OGG]		= "ogg",
+     [FILE_MPG] 		= "mpg",
+-    [FILE_MP4] 		= "mp4",
++    [FILE_MP4] 		= "divx", /*DMS: was mp4*/
+     [FILE_PLS] 		= "pls",
+     [FILE_M3U] 		= "m3u",
+     [FILE_EXTM3U] 	= "m3u", /* possibly extm3u in the future */
+@@ -314,17 +314,26 @@
+ static FileType
+ check_file_content_type(const char *fullpath)
+ {
+-    const char *magic;
++    const char *magic_full;
++    char *magic;
+     int fd;
+     uint8_t buf[11];
+     int c;
+ 
+-    magic = magic_file(magic_cookie, fullpath);
+-    if (magic == NULL) {
++    magic_full = magic_file(magic_cookie, fullpath);
++    if (magic_full == NULL) {
+ 	warn(_("%s: cannot identify file type: %s\n"), quotearg(conv_filename(fullpath)), magic_error(magic_cookie));
+ 	return FILE_UNKNOWN;
+     }
+ 
++    magic = strpbrk(magic_full, "; ");
++    if (magic != NULL) {
++        magic = xstrndup(magic_full, magic - magic_full);
++    } else {
++        magic = xstrdup(magic_full);
++    }
++    say(4, _("Got magic for %s '%s'\n"), quote(conv_filename(fullpath)), magic);
++
+     if (strcmp(magic, "application/octet-stream") != 0
+ 	    && strncmp(magic, "text/plain", 10) != 0) {
+ 	struct {
+@@ -341,6 +350,7 @@
+ 	    { FILE_MPG,		"video/mp2p" },
+ 	    { FILE_MPG,		"video/mp2t" },
+ 	    { FILE_MP4,		"video/mp4" },
++	    { FILE_MP4,		"video/x-msvideo" }, /* DMS: avi */
+ 	    { FILE_MP4,		"video/mp4v-es" },
+ 	    { FILE_MP4,		"video/h264" },
+ 	    { FILE_MP4,		"video/3gpp" },
+@@ -352,10 +362,13 @@
+             { 0, },
+         };
+         for (c = 0; mime_map[c].mime != NULL; c++) {
+-            if (strcmp(magic, mime_map[c].mime) == 0)
++            if (strcmp(magic, mime_map[c].mime) == 0) {
++                free(magic);
+                 return mime_map[c].id;
++            }
+         }
+     }
++    free(magic);
+ 
+     fd = open(fullpath, O_RDONLY);
+     if (fd < 0) {
+@@ -862,18 +875,21 @@
+         } else {
+ 	    say(4, _("%s  Matched type %s - %s\n"), indent, file_type_descs[type], file_type_mime_types[type]);
+         }
++
++#ifdef RESTRICT_FILE_TYPES        
+ 	if (!string_in_csv(file_types, ',', file_type_names[type])) {
+ 	    say(4, _("%s  Skipping (file type excluded)\n"), indent);
+ 	    free(indent);
+ 	    return NULL;
+ 	}
++#endif        
+ 
+         if (type == FILE_PLS || type == FILE_M3U || type == FILE_EXTM3U) {
+             free(indent);
+ 	    return scan_playlist_file(fullpath, name, parent, type, indent_size+1, inl, sb.st_ino);
+ 	}
+ 
+-        /*say(4, _("%s  Adding as %s\n"), indent, quote(name));*/
++        say(4, _("%s  Adding %s as '%s'\n"), indent, quote(name), file_type_mime_types[type]);
+         entry = make_entry(name, parent, false);
+ 
+         detail = add_entry_detail(entry, DETAIL_FILE);
diff -Nru gmediaserver-0.13.0/debian/patches/06_fix_noxon_sort.diff gmediaserver-0.13.0/debian/patches/06_fix_noxon_sort.diff
--- gmediaserver-0.13.0/debian/patches/06_fix_noxon_sort.diff	2009-10-20 14:37:14.000000000 +0200
+++ gmediaserver-0.13.0/debian/patches/06_fix_noxon_sort.diff	2011-01-20 22:36:46.000000000 +0100
@@ -1,49 +1,43 @@
-Index: gmediaserver-0.13.0/src/contentdir.c
-===================================================================
---- gmediaserver-0.13.0.orig/src/contentdir.c	2009-10-20 14:36:41.000000000 +0200
-+++ gmediaserver-0.13.0/src/contentdir.c	2009-10-20 14:37:07.000000000 +0200
-@@ -145,8 +145,15 @@
+---
+ src/contentdir.c |   13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+--- a/src/contentdir.c
++++ b/src/contentdir.c
+@@ -145,6 +145,12 @@ sort_criteria_comparision(const void *k1
      const Entry *e1 = k1;
      const Entry *e2 = k2;
  
-+    if ( criteria->first == NULL ) {
++    if (criteria->first == NULL) {
 +       /* default sorting */
 +       return strcasecmp(e1->name, e2->name);
 +    }
 +
-     sort_entry = criteria->first;
--    while (sort_entry != NULL) {
-+
 +    /* FIXME: sorting by multiple criterias will never work */
-+    while (sort_entry != NULL) { /* FIXME: sort_entry is never updated! */
- 	char *p1 = get_entry_property(e1, sort_entry->property);
- 	char *p2 = get_entry_property(e2, sort_entry->property);
- 
-@@ -154,11 +161,11 @@
+     for (se = criteria->first; se != NULL; se = se->next) {
+ 	char *p1 = get_entry_property(e1, se->property);
+ 	char *p2 = get_entry_property(e2, se->property);
+@@ -153,11 +159,11 @@ sort_criteria_comparision(const void *k1
  	    free(p2);
- 	    return (sort_entry->ascending ? -1 : 1);
+ 	    return (se->ascending ? -1 : 1);
  	}
 -	if (p1 != NULL && p2 == NULL) {
 +	else if (p1 != NULL && p2 == NULL) {
  	    free(p1);
- 	    return (sort_entry->ascending ? 1 : -1);
+ 	    return (se->ascending ? 1 : -1);
  	}
 -	if (p1 != NULL && p2 != NULL) {
 +	else if (p1 != NULL && p2 != NULL) {
  	    int compare;
  
  	    compare = strcmp(p1, p2);
-@@ -167,9 +174,12 @@
+@@ -166,6 +172,9 @@ sort_criteria_comparision(const void *k1
  	    if (compare != 0)
- 		return (sort_entry->ascending ? compare : -compare);
+ 		return (se->ascending ? compare : -compare);
  	}
 +	else { /* both are null - bail out!!! */
-+           return strcasecmp(e1->name, e2->name);
-+        }
++	     return strcasecmp(e1->name, e2->name);
++	}
      }
  
--    return e1-e2;
-+    return e1-e2; /* FIXME: sorting by pointer compare? */
- }
- 
- void
+     return e1-e2; /* Just some arbitrary sort criteria? */
diff -Nru gmediaserver-0.13.0/debian/patches/series gmediaserver-0.13.0/debian/patches/series
--- gmediaserver-0.13.0/debian/patches/series	2009-11-10 13:33:16.000000000 +0100
+++ gmediaserver-0.13.0/debian/patches/series	2011-01-22 06:53:43.000000000 +0100
@@ -1,3 +1,4 @@
+00_cvs_fixes.diff
 03_fix_info_file.diff
 04_dont_blog_signals_if_not_processing_them.diff
 05_fix_multiple_dirs.diff

--- End Message ---
--- Begin Message ---
Version: 0.13.0-8+rm

Dear submitter,

as the package gmediaserver has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/904833

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
[email protected].

Debian distribution maintenance software
pp.
Scott Kitterman (the ftpmaster behind the curtain)

--- End Message ---

Reply via email to