Bug 463140

Summary: Review Request: dfu-util - USB Device Firmware Update tool
Product: [Fedora] Fedora Reporter: Juha Tuomala <tuju>
Component: Package ReviewAssignee: Jaroslav Reznik <jreznik>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, jreznik, lemenkov, notting, rdieter, spacewar
Target Milestone: ---Flags: jreznik: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
URL: http://wiki.openmoko.org/wiki/Dfu-util
Whiteboard:
Fixed In Version: 0.1-0.8.20090307svn4917.fc10 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-04-02 17:10:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
simple patch for spec file keep timestamp of man page none

Description Juha Tuomala 2008-09-22 08:09:56 UTC
Spec URL: http://tuju.fi/tmp/fedora/dfu-util/dfu-util.spec
SRPM URL: http://tuju.fi/tmp/fedora/dfu-util/dfu-util-0.0svn4160-1.fc9.src.rpm

Description: 
USB Device Firmware Upgrade (DFU) is an official USB device class specification
of the USB Implementers Forum. It specifies a vendor and device independent way
of updating the firmware of a USB device. The idea is to have only one
vendor-independent firmware update tool as part of the operating system, which
can then (given a particular firmware image) be downloaded into the device.

In addition to firmware download, it also specifies firmware upload, i.e. loading the currently installed device firmware to the USB Host.

More information can be found from 

http://wiki.openmoko.org/wiki/Dfu-util

This is my first package and I'm looking for sponsor.

Comment 1 Juha Tuomala 2008-09-22 08:36:07 UTC
Note that there is bug #211761 in review pipeline, but it has different upstream http://dfu-programmer.sourceforge.net/ and looks like they are different beasts. dfu-util is used in openmoko project.

Comment 2 Jaroslav Reznik 2008-09-22 10:16:54 UTC
First quick look:
- version mismatch
  * dfu-utils -V says dfu-util version 0.1+svnexported, newer SVN sets revision instead exported
- Summary: ended with dot, see rpmlint
- licence problem
  * dfu-util is GPLv2+
  * dfu-backup is GPLv3
  * SPEC file states GPLv2
  * split package? use GPLv3? I don't know...
- URL: I think better is http://wiki.openmoko.org/wiki/Dfu-util (the SPEC's one is more generic, this one is for dfu-util program).
- Source0: it's from SVN? so you should add comment how to obtain source codes... and better - ask upstream for proper release of 0.1 version
- Source1: missing URL, where can I download it? and again, splitting packages should be option?
- Requires: libusb is unneeded?
- Description: "In addition to firmware..." line is too long, see rpmlint

Comment 3 Juha Tuomala 2008-09-22 13:17:45 UTC
Btw, this package compiles just okay on x86_64, but is reported *not* to work properly and thus i386 arch binary should be used on x86_64 too as long that is solved. I'm not yet familar how it's done, probably with bodhi.

Comment 4 Juha Tuomala 2008-09-22 13:20:53 UTC
http://tuju.fi/tmp/fedora/dfu-util/dfu-util-0.1-0.1.20080922svn4662.fc9.src.rpm
http://tuju.fi/tmp/fedora/dfu-util/dfu-util.spec

% rpmlint /home/tuju/PKGS/SRPMS/dfu-util-0.1-0.1.20080922svn4662.fc9.src.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

- Version fixed.
- Summary dot removed.
- license fixed by dropping the dfu-backup.
- url fixed.
- Source0 fixed.
- Source1 removed.
- Description reshaped.

Comment 5 Juha Tuomala 2008-09-22 13:25:14 UTC
Comment #2:
> - Requires: libusb is unneeded?

# rpm -q --requires  dfu-util
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.3.4)
libc.so.6(GLIBC_2.4)
libusb
libusb-0.1.so.4
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)

Yes, it's needed. Is there a problem with it? You mean it would do 
it with brp-requires automatically?

Comment 6 Jaroslav Reznik 2008-09-22 13:49:18 UTC
- I don't know how to solve x86_64 issues... You have to use ExcludeArch for not supported architectures.
- Version should be GPLv2+
- Update Changelog release note
- It's not building in mock/koji

Comment 8 Juha Tuomala 2008-09-23 15:36:07 UTC
kernel
Opening USB Device 0x1d50:0x5119...
Claiming USB DFU Runtime Interface...
Determining device status: state = appIDLE, status = 0
Device really in Runtime Mode, send DFU detach request...
Resetting USB...
Opening USB Device...
Found Runtime: [0x1d50:0x5119] devnum=40, cfg=0, intf=0, alt=3, name="kernel"
Claiming USB DFU Interface...
Setting Alternate Setting ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
Transfer Size = 0x1000
bytes_per_hash=39279
Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode

testing, it works fine.
...
Transfer Size = 0x1000
bytes_per_hash=1069547
Starting download: [##################################################] finished!
state(2) = dfuIDLE, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode

that was rootfs. after boot attempt, the kernel wont start either.

$ arch;rpm -q dfu-util
x86_64
dfu-util-0.1-0.5.20080922svn4662.fc9.i386

Comment 9 Juha Tuomala 2008-09-23 16:34:10 UTC
okay, at least on 32bit fedora9 it works if:
- write kernel
- write rootfs
- switch off + unplug USB cable
- boot

booting straight from uboot does not work after rootfs download.

Comment 10 Juha Tuomala 2008-09-23 16:42:53 UTC
Also note that for some reason I need to boot through the u-boot menu using AUX button before powering up the device.

Comment 11 Jaroslav Reznik 2008-10-04 14:12:16 UTC
Package Review                       
==============                       

Key:
 - = N/A
 x = Check
 ! = Problem
 ? = Not evaluated

=== REQUIRED ITEMS ===
 [x] Package is named according to the Package Naming Guidelines.
 [x] Spec file name must match the base package %{name}, in the format %{name}.spec.
 [x] Package meets the Packaging Guidelines.                                        
 [x] Package successfully compiles and builds into binary rpms on at least one supported architecture.                                                             
     Tested on: FC-9 / i386                                                         
 [x] Rpmlint output: clean                                                          
 [x] Package is not relocatable.                                                    
 [x] Buildroot is correct                                                           
 [x] Package is licensed with an open-source compatible license and meets other     
legal requirements as defined in the legal section of Packaging Guidelines.         
 [x] License field in the package spec file matches the actual license.             
     License type: GPLv2+                                                           
 [x] If (and only if) the source package includes the text of the license(s) in     
its own file, then that file, containing the text of the license(s) for the         
package is included in %doc.                                                        
 [x] Spec file is legible and written in American English.                          
 [x] Sources used to build the package matches the upstream source, as provided     
in the spec URL.                                                                    
     Sources from SVN, commented properly in SPEC file. Diff againts sources in     
     SRPM and sources download is OK.                                               
 [x] Package is not known to require ExcludeArch, OR:                               
     Arches excluded: x86_64, ppc64, sparc64                                        
     Why: upstream is broken for 64 bit architectures                               
     After approval fill bugs blocking FE-ExcludeArch-x64, FE-ExcludeArch-ppc64     
 [x] All build dependencies are listed in BuildRequires, except for any that are
listed in the exceptions section of Packaging Guidelines.
 [-] The spec file handles locales properly.
 [-] ldconfig called in %post and %postun if required.
 [-] Package must own all directories that it creates.
 [-] Package requires other packages for directories it uses.
 [x] Package does not contain duplicates in %files.
 [x] Permissions on files are set properly.
 [x] Package has a %clean section, which contains rm -rf %{buildroot} (or
$RPM_BUILD_ROOT).
 [x] Package consistently uses macros.
 [x] Package contains code, or permissable content.
 [-] Large documentation files are in a -doc subpackage, if required.
 [x] Package uses nothing in %doc for runtime.
 [-] Header files in -devel subpackage, if present.
 [-] Static libraries in -devel subpackage, if present.
 [-] Package requires pkgconfig, if .pc files are present.
 [-] Development .so files in -devel subpackage, if present.
 [x] Package does not contain any libtool archives (.la).
 [-] Package contains a properly installed %{name}.desktop file if it is a GUI
application.
 [x] Package does not own files or directories owned by other packages.

=== SUGGESTED ITEMS ===
 [x] Latest version is packaged.
 [x] Package does not include license text files separate from upstream.
 [-] Description and summary sections in the package spec file contains
translations for supported Non-English languages, if available.
 [x] Reviewer should test that the package builds in mock.
     Tested on: koji dist-fc8 dist-fc9 dist-fc10
 [x] Package should compile and build into binary rpms on all supported
architectures.
     Tested on: koji dist-fc8 dist-fc9 dist-fc10
 [x] Package functions as described.
 [-] Scriptlets must be sane, if used.
 [-] The placement of pkgconfig(.pc) files are correct.
 [-] File based requires are sane.

APROVED

Comment 12 Patrice Dumas 2008-10-19 12:35:38 UTC
Created attachment 320799 [details]
simple patch for spec file keep timestamp of man page

Comment 13 Patrice Dumas 2008-10-19 12:39:17 UTC
Juha have you done any other work in fedora (comment on reviews, other submissions, and anything else)

Comment 14 Peter Lemenkov 2008-11-16 21:31:51 UTC
Ping.
Juha, you should move further (I mean, create cvs request, import into Fedora cvs, build, etc).

Comment 15 Juha Tuomala 2008-11-19 14:12:16 UTC
Pong. I'm active again.

Comment 16 Jaroslav Reznik 2008-11-19 14:24:04 UTC
fedora-cvs ? flag is not enough, you should to follow PackageMaintainers/CVSAdminProcedure!

Comment 17 Juha Tuomala 2008-11-19 14:30:08 UTC
New Package CVS Request
=======================
Package Name: dfu-util
Short Description: USB Device Firmware Upgrade tool
Owners: tuju jreznik  
Branches: F-9 F-10
InitialCC: tuju

Comment 18 Kevin Fenzi 2008-11-23 04:16:11 UTC
cvs done.

Comment 19 Fedora Update System 2009-03-13 14:39:33 UTC
dfu-util-0.1-0.8.20090307svn4917.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/dfu-util-0.1-0.8.20090307svn4917.fc10

Comment 20 Fedora Update System 2009-03-16 19:36:37 UTC
dfu-util-0.1-0.8.20090307svn4917.fc10 has been pushed to the Fedora 10 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update dfu-util'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F10/FEDORA-2009-2693

Comment 21 Fedora Update System 2009-04-02 17:10:15 UTC
dfu-util-0.1-0.8.20090307svn4917.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 22 Eric Smith 2013-06-07 18:07:48 UTC
Package Change Request
======================
Package Name: dfu-util
New Branches: el6
Owners: tuju jreznik brouhaha

Comment 23 Gwyn Ciesla 2013-06-07 18:15:05 UTC
Git done (by process-git-requests).