[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#547336: Various fixes to madfuload from Ubuntu



Package: madfuload
Version: 1.2-2
Severity: grave
Tags: patch
Justification: renders package unusable
User: ubuntu-devel@lists.ubuntu.com
Usertags: origin-ubuntu karmic ubuntu-patch



*** /tmp/tmpYRLSkU
In my Ubuntu archive, I've applied the attached patch to achieve the following:

  * 42-madfuload.rules.in: substitution variables need to be in lower case...
  * madfuload.c: Fix 64-bit segfault. LP: #301771.
  * debian/watch: fix source path - sf redirector seems broken.
  * debian/rules: 
    - switch to debhelper 7.
    - Add quilt patch system and remove all changes to orig.tar.
    - Force autoreconf on build due to patching.
  * debian/control:
    - Update policy to 3.8.3.
    - Add build dependencies for autotools, quilt and the correct version
      of udev.
  * 42-madfuload.rules.in: rework udev selectors to workaround race
    condition. LP: #330573
  * Add man page for madfuload binary.
  * debian/control: Depend on udev

We thought you might be interested in doing the same. 


-- System Information:
Debian Release: squeeze/sid
  APT prefers karmic-updates
  APT policy: (500, 'karmic-updates'), (500, 'karmic-security'), (500, 'karmic')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-10-generic (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -u madfuload-1.2/debian/rules madfuload-1.2/debian/rules
--- madfuload-1.2/debian/rules
+++ madfuload-1.2/debian/rules
@@ -2,5 +2,6 @@
-  
-include /usr/share/cdbs/1/rules/debhelper.mk
-include /usr/share/cdbs/1/class/autotools.mk
+%:
+	dh --with quilt $@
 
-# Add here any variable or target overrides you need.
+override_dh_auto_configure:
+	autoreconf -f
+	dh_auto_configure -- --with-udev=/lib/udev
diff -u madfuload-1.2/debian/watch madfuload-1.2/debian/watch
--- madfuload-1.2/debian/watch
+++ madfuload-1.2/debian/watch
@@ -3 +3 @@
-http://heanet.dl.sourceforge.net/sourceforge/usb-midi-fw/madfuload-(.*)\.tar\.gz	debian	uupdate
+http://heanet.dl.sourceforge.net/project/usb-midi-fw/madfu-firmware/(\d\.\d)/madfuload-(\d\.\d)\.tar\.gz	debian	uupdate
diff -u madfuload-1.2/debian/changelog madfuload-1.2/debian/changelog
diff -u madfuload-1.2/debian/control madfuload-1.2/debian/control
--- madfuload-1.2/debian/control
+++ madfuload-1.2/debian/control
@@ -1,17 +1,18 @@
 Source: madfuload
 Section: non-free/sound
 Priority: extra
 Uploaders: Free Ekanayaka <freee@debian.org>
-Build-Depends: cdbs, debhelper (>= 5), udev
-Standards-Version: 3.7.3
+Build-Depends: autoconf, automake, libtool, quilt (>=0.46-7), debhelper (>= 7.0.50), udev (>= 136)
+Standards-Version: 3.8.3
 Homepage: http://usb-midi-fw.sourceforge.net/
 Vcs-Svn: svn://svn.debian.org/demudi/madfuload/trunk/
 Vcs-Browser: http://svn.debian.org/wsvn/demudi/madfuload/op=log
 
 Package: madfuload
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>= 136)
 Description: Firmware loader for M-Audio DFU audio devices
  This packages allows you to use M-Audio's DFU audio devices
  with Linux. These devices require a firmware download before
diff -u madfuload-1.2/debian/compat madfuload-1.2/debian/compat
--- madfuload-1.2/debian/compat
+++ madfuload-1.2/debian/compat
@@ -1 +1 @@
-5
+7
only in patch2:
unchanged:
--- madfuload-1.2.orig/debian/README.source
+++ madfuload-1.2/debian/README.source
@@ -0,0 +1,4 @@
+See /usr/share/doc/quilt/README.source
+
+Note that the patch system alters the configure files and you will need
+to run 'autoreconf' to regenerate the make system prior to building.
only in patch2:
unchanged:
--- madfuload-1.2.orig/debian/madfuload.1
+++ madfuload-1.2/debian/madfuload.1
@@ -0,0 +1,92 @@
+.\"
+.\"	This program is free software; you can redistribute it and/or modify
+.\"	it under the terms of the GNU General Public License as published by
+.\"	the Free Software Foundation; either version 2 of the License, or
+.\"	(at your option) any later version.
+.\"
+.\"	This program is distributed in the hope that it will be useful,
+.\"	but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\"	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+.\"	GNU General Public License for more details.
+.\"
+.\"	You should have received a copy of the GNU General Public License
+.\"	along with this program; if not, write to the Free Software
+.\"	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+.\"
+.\"
+.TH MADFULOAD 1 "AUGUST 20, 2009" "" ""
+
+.SH NAME
+madfuload \- Device firmware loader utility for M-Audio DFU devices
+.SH SYNOPSIS
+.B madfuload
+[ \fIoption\fR ] ...
+.SH DESCRIPTION
+.B madfuload
+is used to download firmware files to M-Audio DFU devices. These devices
+require a firmware download before an operating system driver (e.g. ALSA's
+snd-usb-audio) can access them.
+.PP
+Supported devices:
+.PP
+.RS
+ - Audiophile
+ - Sonica
+ - Ozone
+ - MobilePre USB (some newer models work without the loader)
+ - Transit
+.RE
+.PP
+The loader is not required for some newer models of the above devices,
+like the Ozone Academic.
+.SH OPTIONS
+.TP
+.B -h, --help
+Gives a list of possible options.
+.TP
+.B -V, --version
+Prints the version number of the tool.
+.TP
+.BI -f " <path>, " --firmware= "<path>"
+File containing firmware to load.
+.TP
+.BI -D " <path>, " --device= "<path>"
+specify the device to use.
+.TP
+.B -v, --verbose
+Output debugging messages.
+.TP
+.B -l, --logger
+Output messages to system logger instead of standard output.
+.TP
+.B -n, --nowait
+Don't wait between download requests.
+.TP
+.B -3, waitbyte3
+Use only the third byte of the BwPollTimeout field.
+.SH FILES
+.TP
+.I /usr/share/usb/maudio/ma003101.bin
+Audiophile firmware.
+.TP
+.I /usr/share/usb/maudio/ma004103.bin
+MobilePre firmware.
+.TP
+.I /usr/share/usb/maudio/ma005101.bin
+Sonica firmware.
+.TP
+.I /usr/share/usb/maudio/ma006100.bin
+Transit firmware.
+.TP
+.I /usr/share/usb/maudio/ma008100.bin
+Ozone firmware.
+.TP
+.I /lib/udev/rules.d/42-madfuload.rules
+Udev rules for loading firmware automatically.
+.SH AUTHOR
+.PP
+Written by Clemens Ladisch <clemens@ladisch.de>.
+.PP
+This manual page was written by Neil Wilson <neil@aldur.co.uk> for
+the Debian GNU/Linux system (but may be used by others).
+.br
only in patch2:
unchanged:
--- madfuload-1.2.orig/debian/preinst
+++ madfuload-1.2/debian/preinst
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" = install ] || [ "$1" = upgrade ]; then
+	if [ -e "/etc/udev/rules.d/42-madfuload.rules" ]; then
+		if [ "`md5sum \"/etc/udev/rules.d/42-madfuload.rules\" | sed -e \"s/ .*//\"`" = \
+		     "`dpkg-query -W -f='${Conffiles}' madfuload | sed -n -e \"\\\\' /etc/udev/rules.d/42-madfuload.rules's/.* //p\"`" ]
+		then
+			rm -f "/etc/udev/rules.d/42-madfuload.rules"
+		fi
+	fi
+fi
+
+#DEBHELPER#
only in patch2:
unchanged:
--- madfuload-1.2.orig/debian/manpages
+++ madfuload-1.2/debian/manpages
@@ -0,0 +1 @@
+debian/madfuload.1
only in patch2:
unchanged:
--- madfuload-1.2.orig/debian/patches/fix-64-bit-implicit-declarations.patch
+++ madfuload-1.2/debian/patches/fix-64-bit-implicit-declarations.patch
@@ -0,0 +1,15 @@
+Ubuntu: https://bugs.launchpad.net/ubuntu/+source/madfuload/+bug/301771
+Description: Fixes the implicit declarations warnings and stops segfaults
+on 64 bit architectures
+--- a/madfuload.c
++++ b/madfuload.c
+@@ -16,7 +16,8 @@
+ #include <fcntl.h>
+ #include <getopt.h>
+ #include <syslog.h>
+-#include <linux/ioctl.h>
++#include <sys/ioctl.h>
++#include <string.h>
+ 
+ /* USB stuff -- we can't rely on all Linux headers being there */
+ 
only in patch2:
unchanged:
--- madfuload-1.2.orig/debian/patches/configure.ac.patch
+++ madfuload-1.2/debian/patches/configure.ac.patch
@@ -0,0 +1,13 @@
+Description: Minimal patch to configure.ac so that it calls
+'udevadm --version' to obtain the version number. Upstream is out of date.
+--- a/configure.ac
++++ b/configure.ac
+@@ -7,7 +7,7 @@
+ AC_PROG_CC
+ 
+ AC_MSG_CHECKING([for udev version])
+-udev_ver=`udevinfo -V | awk '{ print $3 }'`
++udev_ver=`udevadm --version`
+ if test -n "$udev_ver"; then
+   AC_MSG_RESULT([$udev_ver])
+ else
only in patch2:
unchanged:
--- madfuload-1.2.orig/debian/patches/42-madfuload-rules.patch
+++ madfuload-1.2/debian/patches/42-madfuload-rules.patch
@@ -0,0 +1,31 @@
+Ubuntu: https://bugs.launchpad.net/ubuntu/+source/madfuload/+bug/330573
+Description: Fixes selection problems with udev that prevents the firmware
+loading properly
+--- madfuload.orig/42-madfuload.rules.in
++++ madfuload/42-madfuload.rules.in
+@@ -1,17 +1,17 @@
+ # madfuload.rules - udev rules for loading firmware into M-Audio DFU devices
+-
+-# DEVPATH=="/*.0" selects interface 0 only
+-# (some udev versions don't work with SYSFS{bInterfaceNumber})
++# Altered for Ubuntu udev system
++# Uses DEVTYPE and DEVNAME to ensure that the right device is selected
++# and the correct device file is opened
+ 
+ # Audiophile
+-ACTION=="add", SUBSYSTEM=="usb", DEVPATH=="/*.0", ENV{PRODUCT}=="763/2803/*", RUN+="@sbindir@/madfuload -l -n -f @firmwaredir@/ma003101.bin"
++ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0763", ATTRS{idProduct}=="2803", RUN+="@sbindir@/madfuload -l -n -f @firmwaredir@/ma003101.bin -D $env{DEVNAME}"
+ # MobilePre
+-ACTION=="add", SUBSYSTEM=="usb", DEVPATH=="/*.0", ENV{PRODUCT}=="763/2804/*", RUN+="@sbindir@/madfuload -l -3 -f @firmwaredir@/ma004103.bin"
++ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0763", ATTRS{idProduct}=="2804", RUN+="@sbindir@/madfuload -l -3 -f @firmwaredir@/ma004103.bin -D $env{DEVNAME}"
+ # Sonica
+-ACTION=="add", SUBSYSTEM=="usb", DEVPATH=="/*.0", ENV{PRODUCT}=="763/2805/*", RUN+="@sbindir@/madfuload -l -n -f @firmwaredir@/ma005101.bin"
++ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0763", ATTRS{idProduct}=="2805", RUN+="@sbindir@/madfuload -l -n -f @firmwaredir@/ma005101.bin -D $env{DEVNAME}"
+ # Transit
+-ACTION=="add", SUBSYSTEM=="usb", DEVPATH=="/*.0", ENV{PRODUCT}=="763/2806/*", RUN+="@sbindir@/madfuload -l -3 -f @firmwaredir@/ma006100.bin"
++ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0763", ATTRS{idProduct}=="2806", RUN+="@sbindir@/madfuload -l -3 -f @firmwaredir@/ma006100.bin -D $env{DEVNAME}"
+ # Ozone
+-ACTION=="add", SUBSYSTEM=="usb", DEVPATH=="/*.0", ENV{PRODUCT}=="763/2808/*", RUN+="@sbindir@/madfuload -l -3 -f @firmwaredir@/ma008100.bin"
++ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0763", ATTRS{idProduct}=="2808", RUN+="@sbindir@/madfuload -l -3 -f @firmwaredir@/ma008100.bin -D $env{DEVNAME}"
+ 
+ # vim: ft=conf
only in patch2:
unchanged:
--- madfuload-1.2.orig/debian/patches/series
+++ madfuload-1.2/debian/patches/series
@@ -0,0 +1,3 @@
+fix-64-bit-implicit-declarations.patch
+42-madfuload-rules.patch
+configure.ac.patch

Reply to: