From aragon@phat.za.net  Tue Jul  6 23:21:12 2010
Return-Path: <aragon@phat.za.net>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EDF99106566B
	for <FreeBSD-gnats-submit@freebsd.org>; Tue,  6 Jul 2010 23:21:12 +0000 (UTC)
	(envelope-from aragon@phat.za.net)
Received: from mail.geek.sh (decoder.geek.sh [196.36.198.81])
	by mx1.freebsd.org (Postfix) with ESMTP id EDB7D8FC13
	for <FreeBSD-gnats-submit@freebsd.org>; Tue,  6 Jul 2010 23:21:11 +0000 (UTC)
Received: from phat.za.net (196-209-149-36.dynamic.isadsl.co.za [196.209.149.36])
	by mail.geek.sh (Postfix) with ESMTPA id E478E3FAF0
	for <FreeBSD-gnats-submit@freebsd.org>; Wed,  7 Jul 2010 01:21:08 +0200 (SAST)
Received: by phat.za.net (sSMTP sendmail emulation); Wed, 07 Jul 2010 01:21:08 +0200
Message-Id: <20100706232108.E478E3FAF0@mail.geek.sh>
Date: Wed, 07 Jul 2010 01:21:08 +0200
From: "Aragon Gouveia" <aragon@phat.za.net>
Reply-To: Aragon Gouveia <aragon@phat.za.net>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: New port: audio/madfufw M-Audio DFU Firmware for USB sound devices
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         148411
>Category:       ports
>Synopsis:       New port: audio/madfufw M-Audio DFU Firmware for USB sound devices
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 06 23:30:02 UTC 2010
>Closed-Date:    Thu Feb 03 12:12:55 UTC 2011
>Last-Modified:  Thu Feb 03 12:12:55 UTC 2011
>Originator:     Aragon Gouveia
>Release:        FreeBSD 8.0-STABLE amd64
>Organization:
>Environment:
System: FreeBSD igor.geek.sh 8.0-STABLE FreeBSD 8.0-STABLE #0: Sun Jun 13 23:39:32 SAST 2010 toor@igor.geek.sh:/usr/obj/usr/src/sys/IGOR amd64


	
>Description:
	Userland scaffolding to load M-Audio firmware into supported
	sound devices upon attachment.  Supported devices:

	* Sonica
	* Ozone
	* MobilePre USB (some newer models don't need this port)
	* Transit 

	Based upon the madfuload package at http://usb-midi-fw.sourceforge.net/

	Unfortunately only M-Audio Transit tested.

	Many thanks to Stefan Ehmann <shoesoft@gmx.net> for your help.

>How-To-Repeat:
	
>Fix:

	

--- madfufw.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	madfufw
#	madfufw/files
#	madfufw/files/pkg-message.in
#	madfufw/files/maudio.in
#	madfufw/files/maudio-devd.conf.in
#	madfufw/Makefile
#	madfufw/pkg-descr
#	madfufw/distinfo
#
echo c - madfufw
mkdir -p madfufw > /dev/null 2>&1
echo c - madfufw/files
mkdir -p madfufw/files > /dev/null 2>&1
echo x - madfufw/files/pkg-message.in
sed 's/^X//' >madfufw/files/pkg-message.in << '1ec6cb4285e75d0b1c4c9cd99dcfc123'
XA devd(8) configuration has been installed at:
X%%PREFIX%%/etc/devd/maudio-devd.conf.
X
XYou must add 'maudio_enable="YES"' to rc.conf
Xand restart devd(8) for this port to work.
X
XSome devices (eg. Transit) may also require
Xsysctl modifications:
X
Xhw.usb.uaudio.default_bits=16
Xhw.usb.uaudio.default_rate=48000
1ec6cb4285e75d0b1c4c9cd99dcfc123
echo x - madfufw/files/maudio.in
sed 's/^X//' >madfufw/files/maudio.in << 'c4a79cc274f425a7b1b583f95e7ac47e'
X#!/bin/sh
X#
X# PROVIDE: maudio
X# REQUIRE: LOGIN
X# KEYWORD: nojail
X#
X# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
X# to enable this service:
X#
X# maudio_enable (bool):	Set to NO by default.
X#			Set it to YES to enable maudio.
X# Usage:
X#	maudio start [<device> <product id>]	# load firmware to device with specified product ID
X
X# disable at boot time and prevent simultaneous runs
Xif [ -n "${_boot}" -o -f /var/run/maudio.pid ]; then
X	exit 0
Xfi
Xtrap "rm -f /var/run/maudio.pid" 1 2 10 13 14 15 EXIT
Xecho $$ >/var/run/maudio.pid
X
X. /etc/rc.subr
X
Xname="maudio"
Xrcvar=`set_rcvar`
Xload_rc_config $name
X
X: ${maudio_enable="NO"}
X
Xcommand="%%PREFIX%%/bin/dfu-util"
Xstart_cmd="maudio_start"
Xfirmware_dir="%%PREFIX%%/share/maudio"
Xrequired_modules="uhub/uaudio"
Xrequired_dirs=$firmware_dir
Xrequired_files=$command
X
Xmaudio_start()
X{
X	local firmware dev idVendor idProduct
X
X	if [ -n "${1}" -a -n "${2}" ]; then
X		idProduct=${2}
X		dev=${1}
X	else
X		for dev in /dev/ugen*; do
X			dev=${dev#/dev/*}
X			eval $( /usr/sbin/usbconfig -d ${dev} dump_device_desc \
X				|grep -E "idVendor = 0x0763|idProduct = 0x280[34568]" |tr -d " " )
X			if [ -n "${idVendor}" -a -n "${idProduct}" ]; then
X				break;
X			fi
X			idVendor=""
X			idProduct=""
X		done
X	fi
X
X	case "${idProduct}" in
X	0x2803)
X		firmware=${firmware_dir}/ma003101.bin
X		;;
X	0x2804)
X		firmware=${firmware_dir}/ma004103.bin
X		;;
X	0x2805)
X		firmware=${firmware_dir}/ma005101.bin
X		;;
X	0x2806)
X		firmware=${firmware_dir}/ma006100.bin
X		;;
X	0x2808)
X		firmware=${firmware_dir}/ma008100.bin
X		;;
X	*)
X		err 1 "Unknown product ID" 1>&2
X		;;
X	esac
X
X	${command} -R -t 64 -d 0x0763:${idProduct} -D ${firmware} 2>/dev/null 1>&2
X	/usr/sbin/usbconfig -d ${dev} reset
X}
X
Xrun_rc_command $*
c4a79cc274f425a7b1b583f95e7ac47e
echo x - madfufw/files/maudio-devd.conf.in
sed 's/^X//' >madfufw/files/maudio-devd.conf.in << 'b93a2cc3dfbf4c4c3d5e953e09fb66d2'
Xattach 100 {
X	match "device-name" "ugen[0-9]+\.[0-9]+";
X	match "vendor" "0x0763";
X	match "product" "0x280[34568]";
X	action "%%PREFIX%%/etc/rc.d/maudio start $device-name $product";
X};
b93a2cc3dfbf4c4c3d5e953e09fb66d2
echo x - madfufw/Makefile
sed 's/^X//' >madfufw/Makefile << '9cbeff1bda800e52fb918411666c3b0b'
X# New ports collection makefile for:   alsa-lib
X# Date created:                July 6, 2010
X# Whom:                        Aragon Gouveia <aragon@phat.za.net>
X#
X# $FreeBSD: ports/audio/alsa-lib/Makefile,v 1.1 2010/06/05 12:43:24 fluffy Exp $
X#
X
XPORTNAME=	madfufw
XPORTVERSION=	1.0
XCATEGORIES=	audio
XMASTER_SITES=	SF/usb-midi-fw/madfu-firmware/1.2/
XDISTFILES=	madfuload-1.2.tar.gz
X
XMAINTAINER=	aragon@phat.za.net
XCOMMENT=	M-Audio DFU Firmware for Transit, Ozone, Sonica, MobilePre
X
XRUN_DEPENDS=	${LOCALBASE}/bin/dfu-util:${PORTSDIR}/comms/dfu-util
XWRKSRC=		${WRKDIR}/madfuload-1.2
XPLIST_FILES=	share/maudio/ma003101.bin \
X		share/maudio/ma004103.bin \
X		share/maudio/ma005101.bin \
X		share/maudio/ma006100.bin \
X		share/maudio/ma008100.bin \
X		etc/devd/maudio-devd.conf
XPLIST_DIRS=	share/maudio
XUSE_RC_SUBR=	maudio
XSUB_FILES=	maudio-devd.conf pkg-message
XNO_BUILD=	yes
X
Xdo-install:
X	@${MKDIR} ${LOCALBASE}/share/maudio && \
X	${INSTALL_DATA} ${WRKSRC}/ma003101.bin ${WRKSRC}/ma004103.bin \
X		${WRKSRC}/ma005101.bin ${WRKSRC}/ma006100.bin \
X		${WRKSRC}/ma008100.bin ${LOCALBASE}/share/maudio
X	@${INSTALL_SCRIPT} ${WRKDIR}/maudio-devd.conf ${LOCALBASE}/etc/devd
X
Xpost-install:
X	@${ECHO_MSG} ""
X	@${CAT} ${PKGMESSAGE}
X	@${ECHO_MSG} ""
X
X.include <bsd.port.mk>
9cbeff1bda800e52fb918411666c3b0b
echo x - madfufw/pkg-descr
sed 's/^X//' >madfufw/pkg-descr << '116dae28c2c55af3ccba893c83fb50a1'
XUserland scaffolding to load M-Audio firmware into supported
Xsound devices upon attachment.  Supported devices:
X
X* Sonica
X* Ozone
X* MobilePre USB (some newer models don't need this port)
X* Transit 
X
XBased upon the madfuload package.
X
XWWW: http://usb-midi-fw.sourceforge.net/
116dae28c2c55af3ccba893c83fb50a1
echo x - madfufw/distinfo
sed 's/^X//' >madfufw/distinfo << '38087a8ea0b3172d479b52592dd881e7'
XMD5 (madfuload-1.2.tar.gz) = 6a2c68021e2e05c4eb35e67158b9414e
XSHA256 (madfuload-1.2.tar.gz) = 324d0a55f73c82ad48635a94a8d72277a2280030df6d036eafe3498c933dee6d
XSIZE (madfuload-1.2.tar.gz) = 78506
38087a8ea0b3172d479b52592dd881e7
exit
--- madfufw.shar ends here ---


>Release-Note:
>Audit-Trail:

From: Aragon Gouveia <aragon@phat.za.net>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/148411: New port: audio/madfufw M-Audio DFU Firmware for
 USB sound devices
Date: Sun, 18 Jul 2010 23:20:06 +0200

 This is a multi-part message in MIME format.
 --------------020706040208030304070002
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 I've made some refinements that should be included in this port please. 
   Patch attached.
 
 Thanks!
 
 --------------020706040208030304070002
 Content-Type: text/plain;
  name="madfufw.txt"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="madfufw.txt"
 
 --- Makefile.orig	2010-07-18 22:57:59.000000000 +0200
 +++ Makefile	2010-07-18 23:13:08.000000000 +0200
 @@ -27,16 +27,22 @@
  SUB_FILES=	maudio-devd.conf pkg-message
  NO_BUILD=	yes
  
 +.include <bsd.port.pre.mk>
 +
 +.if ${OSVERSION} < 800064
 +BROKEN=         port requires FreeBSD 8.x
 +.endif
 +
  do-install:
  	@${MKDIR} ${LOCALBASE}/share/maudio && \
  	${INSTALL_DATA} ${WRKSRC}/ma003101.bin ${WRKSRC}/ma004103.bin \
  		${WRKSRC}/ma005101.bin ${WRKSRC}/ma006100.bin \
  		${WRKSRC}/ma008100.bin ${LOCALBASE}/share/maudio
 -	@${INSTALL_SCRIPT} ${WRKDIR}/maudio-devd.conf ${LOCALBASE}/etc/devd
 +	@${INSTALL_DATA} ${WRKDIR}/maudio-devd.conf ${LOCALBASE}/etc/devd
  
  post-install:
  	@${ECHO_MSG} ""
  	@${CAT} ${PKGMESSAGE}
  	@${ECHO_MSG} ""
  
 -.include <bsd.port.mk>
 +.include <bsd.port.post.mk>
 --- files/maudio-devd.conf.in.orig	2010-07-18 22:58:49.000000000 +0200
 +++ files/maudio-devd.conf.in	2010-07-18 22:59:40.000000000 +0200
 @@ -4,3 +4,10 @@
  	match "product" "0x280[34568]";
  	action "%%PREFIX%%/etc/rc.d/maudio start $device-name $product";
  };
 +
 +attach 100 {
 +	match "device-name" "uaudio[0-9]+";
 +	match "vendor" "0x0763";
 +	match "product" "0x2006";
 +	action "/usr/local/etc/rc.d/maudio mixer $device-name";
 +};
 --- files/maudio.in.orig	2010-07-18 22:59:00.000000000 +0200
 +++ files/maudio.in	2010-07-18 23:02:06.000000000 +0200
 @@ -33,6 +33,8 @@
  required_modules="uhub/uaudio"
  required_dirs=$firmware_dir
  required_files=$command
 +extra_commands="mixer"
 +mixer_cmd="maudio_mixer"
  
  maudio_start()
  {
 @@ -71,7 +73,7 @@
  		firmware=${firmware_dir}/ma008100.bin
  		;;
  	*)
 -		err 1 "Unknown product ID" 1>&2
 +		err 1 "Unknown product ID"
  		;;
  	esac
  
 @@ -79,4 +81,18 @@
  	/usr/sbin/usbconfig -d ${dev} reset
  }
  
 +maudio_mixer()
 +{
 +	local dev
 +
 +	if [ -z "${1}" ]; then
 +		err 1 "No device specified"
 +	fi
 +
 +	dev="/dev/mixer$( echo ${1} |sed -E 's/^[a-z]+([0-9]+)$/\1/' )"
 +	if [ -r ${dev} ]; then
 +		mixer -f ${dev} vol 100 pcm 100
 +	fi
 +}
 +
  run_rc_command $*
 
 --------------020706040208030304070002--

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/148411: commit references a PR
Date: Thu,  3 Feb 2011 12:07:17 +0000 (UTC)

 arved       2011-02-03 12:07:12 UTC
 
   FreeBSD ports repository
 
   Modified files:
     audio                Makefile 
   Added files:
     audio/madfufw        Makefile distinfo pkg-descr 
     audio/madfufw/files  maudio-devd.conf.in maudio.in 
                          pkg-message.in 
   Log:
   Add madufufw, Userland scripts to load the M-Audio firmware into supported
   sound devices upon attachment.
   
   PR:             148411
   Submitted by:   Aragon Gouveia
   Feature safe:   yes
   
   Revision  Changes    Path
   1.1153    +1 -0      ports/audio/Makefile
   1.1       +50 -0     ports/audio/madfufw/Makefile (new)
   1.1       +2 -0      ports/audio/madfufw/distinfo (new)
   1.1       +13 -0     ports/audio/madfufw/files/maudio-devd.conf.in (new)
   1.1       +98 -0     ports/audio/madfufw/files/maudio.in (new)
   1.1       +11 -0     ports/audio/madfufw/files/pkg-message.in (new)
   1.1       +11 -0     ports/audio/madfufw/pkg-descr (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: arved 
State-Changed-When: Thu Feb 3 12:12:00 UTC 2011 
State-Changed-Why:  
Committed, thanks. 

Please remember to check the LICENSE of the ports you added. 
The binary files should not be redistributed, so i set NO_PACKAGE 

http://www.freebsd.org/cgi/query-pr.cgi?pr=148411 
>Unformatted:
