This service will be undergoing maintenance at 00:00 UTC, 2016-08-01. It is expected to last about 1 hours
Bug 576023 - Review Request: libwebcam - user-space configuration of the uvcvideo driver
Review Request: libwebcam - user-space configuration of the uvcvideo driver
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Hans de Goede
Fedora Extras Quality Assurance
:
: 613857 (view as bug list)
Depends On:
Blocks: 613857
  Show dependency treegraph
 
Reported: 2010-03-22 22:37 EDT by Michael Cronenworth
Modified: 2010-08-05 14:42 EDT (History)
9 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-08-05 14:42:34 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
hdegoede: fedora‑review+
kevin: fedora‑cvs+


Attachments (Terms of Use)
Patch adding support for dynamic menu controls (11.15 KB, patch)
2010-07-18 09:49 EDT, Hans de Goede
no flags Details | Diff
updated uvcvideo.h (17.68 KB, text/plain)
2010-07-18 09:50 EDT, Hans de Goede
no flags Details
disable udev log by default (276 bytes, patch)
2010-07-19 00:17 EDT, Michael Cronenworth
no flags Details | Diff

  None (edit)
Description Michael Cronenworth 2010-03-22 22:37:11 EDT
Spec URL: http://michael.cronenworth.com/RPMS/libwebcam.spec
SRPM URL: http://michael.cronenworth.com/RPMS/libwebcam-0.2.0-0.20100322svn.fc12.src.rpm
Description: Libwebcam provides a user-space library for interaction with the uvcvideo kernel driver. One could use this library to manipulate settings for one or many UVC-type webcams found attached on a single computer. I will package uvcdynctrl separately after this is accepted. I also wrote a GTK utility to mimic uvcdynctrl's abilities, which I will submit after that.

This is my first package for Fedora - HELP! :D
Comment 1 Germán Racca 2010-03-29 16:54:13 EDT
Hello Michael:

Just a few comments based on the rpmlint output (I'm not an official reviewer, just someone looking for sponsorship):

libwebcam.i686: E: explicit-lib-dependency libxml2
You must let rpm find the library dependencies by itself. Do not put unneeded
explicit Requires: tags.
** This means that you must remove Requires: libxml2 **

libwebcam.i686: W: invalid-license LGPL
The value of the License tag was not recognized.  Known values are:
....................
"Giftware", "GL2PS", "Glide", "gnuplot", "GPL+", "GPL+ or Artistic", "GPL+
with exceptions", "GPLv1", "GPLv2 or Artistic", "GPLv2+ or Artistic", "GPLv2",
"GPLv2 with exceptions", "GPLv2+", "GPLv2+ with exceptions", "GPLv3", "GPLv3
with exceptions", "GPLv3+", "GPLv3+ with exceptions", "IBM", "IJG",
"ImageMagick", "iMatix", "Imlib2", "Intel ACPI", "Interbase", "ISC", "Jabber",
"JasPer", "JPython", "Knuth", "LBNL BSD", "LGPLv2", "LGPLv2 with exceptions",
"LGPLv2+", "LGPLv2+ or Artistic", "LGPLv2+ with exceptions", "LGPLv3", "LGPLv3
with exceptions", "LGPLv3+", "LGPLv3+ with exceptions", "libtiff", "LLGPL",
....................
** So, you must choose a different value. According to the source package, this is LGPLv3+ **

libwebcam.i686: W: one-line-command-in-%post /sbin/ldconfig
You should use %post -p <command> instead of using:  %post <command>  It will
avoid the fork of a shell interpreter to execute your command as well as
allows rpm to automatically mark the dependency on your command for the
excecution of the scriptlet.
** Self explanatory **

libwebcam.i686: W: one-line-command-in-%postun /sbin/ldconfig
You should use %postun -p <command> instead of using:  %postun <command>  It
will avoid the fork of a shell interpreter to execute your command as well as
allows rpm to automatically mark the dependency on your command for the
excecution of the scriptlet.
** Also self explanatory **

Hope this helps you!
Cheers,
Germán.
Comment 2 Michael Cronenworth 2010-03-29 20:33:14 EDT
(In reply to comment #1)
> Hello Michael:
> 
[snip]
> 
> Hope this helps you!
> Cheers,
> Germán.    

Thanks! I had run rpmlint wrong.

New spec: http://michael.cronenworth.com/RPMS/libwebcam.spec
New SRPM: http://michael.cronenworth.com/RPMS/libwebcam-0.2.0-0.1.20100322svn.fc12.src.rpm
Comment 3 Robert Scheck 2010-04-08 17:37:51 EDT
The package dependency from -devel to the main package seems to be missing.
Comment 4 Michael Cronenworth 2010-04-08 22:12:20 EDT
(In reply to comment #3)
> The package dependency from -devel to the main package seems to be missing.    

Thanks! Fixed.

New Spec: http://michael.cronenworth.com/RPMS/libwebcam.spec
New SRPM: http://michael.cronenworth.com/RPMS/libwebcam-0.2.0-0.2.20100322svn.fc13.src.rpm
Comment 5 Jeff Moe (jebba) 2010-05-08 23:33:52 EDT
FYI, about your "Source1: uvcvideo.h", see this bug:
https://bugzilla.redhat.com/show_bug.cgi?id=459307
Comment 6 Till Maas 2010-06-30 10:21:01 EDT
Hi Michael, did you perform some unofficial reviews?
Comment 7 Michael Cronenworth 2010-06-30 10:25:21 EDT
(In reply to comment #6)
> Hi Michael, did you perform some unofficial reviews?    

I have not. I was unaware of this requirement until now.
Comment 8 Till Maas 2010-06-30 10:39:20 EDT
(In reply to comment #7)
> (In reply to comment #6)
> > Hi Michael, did you perform some unofficial reviews?    
> 
> I have not. I was unaware of this requirement until now.    

It is not a hard requirement, but in reality it is. You can find some information about this on the following wiki page:

https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group#Reviewing_Packages
Comment 9 Stefan Jensen 2010-07-06 11:05:15 EDT
Thank you, long awaiting that someone is packaging this for Fedora!

I like to see, that "uvcdynctrl" is included, too.

best regards
Comment 10 Hans de Goede 2010-07-12 06:00:36 EDT
Hi Michael,

I accidentally stumbled over this review request, which is good as I was planning on packaging libwebcam myself :)

Self Intro
----------

Short self intro I'm a long time Fedora contributor who has packaged and maintains many many packages (and I'm also a sponsor). Lately I've been mainly working on improving webcam support under Fedora, see:
https://fedoraproject.org/wiki/Features/BetterWebcamSupport
https://fedoraproject.org/wiki/Features/BetterWebcamSupportF12
https://fedoraproject.org/wiki/Features/BetterWebcamSupportF13

Oh and since circa 2 years I work for RedHat now, but that is of little relevance in this case, this is me with my Fedora hat firmly on :)

On libwebcam
------------

So back to libwebcam, I'm afraid that with libwebcam you've chosen an interesting (but also very useful) first package. I've been working together with Paulo Assis (guvcview author and Debian libwebcam packager), Laurent Pinchart (uvcvideo kernel driver author) and libwebcam upstream to fix a number of problems / shortcomings of libwebcam.

As Stefan mentioned in comment #9, the most important bit of libwebcam (at least for me) is uvcdynctrl. You probably already know this, but uvcdynctrl + libwebcam  use xml files with descriptions for various manufacturer specific controls on uvc webcams (currently only Logitech), and tells the uvcvideo kernel driver how to map various custom uvc level "controls" to standard v4l2 controls, so that they can be changed using a v4l2 control panel application like v4l2ucp or gtk-v4l.

We want the libwebcam package to install udev rules to automatically run uvcdynctrl to tell the driver about these controls when a relevant webcam gets plugged in (or is plugged in wen the system boots up). I see that you're current package is missing uvcdynctrl and the udev rules, so that will be a first thing to fix. It is probably best to base your work for this on top of the work Paulo has done for Debian, instead of:
# svn export -r 90 http://svn.quickcamteam.net/svn/qct/webcam-tools/trunk/ libwebcam-0.2.0
do:
# svn export -r 90 http://svn.quickcamteam.net/svn/qct/webcam-tools/branches/deb libwebcam-0.2.0

Also the current version of libwebcam lacks the ability to add button and menu type v4l2 controls, which make it not work very well for the logitech camera LED controls for example. I've worked together with Laurent Pinchart to add support for this to the kernel API used by uvcdynctrl, the patches for the kernel for this are in Laurents tree:
http://git.linuxtv.org/pinchartl/uvcvideo.git?a=commitdiff;h=2bd47ad4894bfaf1a97660b821cbc46439a614d6
http://git.linuxtv.org/pinchartl/uvcvideo.git?a=commitdiff;h=4930f2662e47d33e5baedac620da401a225bc3a8

And I have matching patches for libwebcam / uvcdynctrl for this. I've send these to libwebcam upstream, but unfortunately libwebcam upstream is not really fast with processing these, so we will need to add these to the Fedora libwebcam package for now.

Hmm, too much information I'm afraid, as said with libwebcam you've chosen an interesting first package.

Summarizing:
1) You should add uvcdynctrl + udev rules to the libwebcam package, it is best to base your work on the Debian branch for this, to get the Debian branch do:
svn export -r 90 http://svn.quickcamteam.net/svn/qct/webcam-tools/branches/deb libwebcam-0.2.0

2) I would like to see some patches added to the Fedora package which add support for menu and button controls, but lets first just tackle 1). If you can provide an updated spec file and srpm with 1) fixed I'll do a more thorough review of that.

About getting sponsored
-----------------------

An important part of the getting sponsored process is showing that you've got the necessary packaging skills and knowledge of the packaging guidelines as mentioned already in comment #8 one way of doing this is doing reviews of other packages which are awaiting review (when you do this please add a note you are not doing an official review).

An other option is to show your skills by creating a couple of packages. Given that your current libwebcam package only packages the library itself, I'm guessing that you are packaging libwebcam because it is needed by something else you plan to package. You could for example also submit that for review (it is ok to have multiple review requests outstanding while waiting for sponsoring). Or if I may suggest something you could package v4l-utils, the successor of libv4l:
http://www.linuxtv.org/downloads/v4l-utils/
http://cvs.fedoraproject.org/viewvc/devel/libv4l/libv4l.spec?view=co

Regards,

Hans
Comment 11 Michael Cronenworth 2010-07-12 20:58:29 EDT
(In reply to comment #10)
> Hi Michael,

Hi Hans, wow big reply! I will try to digest it.

> Oh and since circa 2 years I work for RedHat now, but that is of little
> relevance in this case, this is me with my Fedora hat firmly on :)

Yes, I am familiar with who you are. Nice to see you here.

> We want the libwebcam package to install udev rules to automatically run
> uvcdynctrl to tell the driver about these controls when a relevant webcam gets
> plugged in (or is plugged in wen the system boots up). I see that you're
> current package is missing uvcdynctrl and the udev rules, so that will be a
> first thing to fix. It is probably best to base your work for this on top of
> the work Paulo has done for Debian, instead of:
> # svn export -r 90 http://svn.quickcamteam.net/svn/qct/webcam-tools/trunk/
> libwebcam-0.2.0
> do:
> # svn export -r 90
> http://svn.quickcamteam.net/svn/qct/webcam-tools/branches/deb libwebcam-0.2.0

I was waiting[1] on upstream to merge in the patches for this, but it looks like it won't happen any time soon. I'll add it to my spec.

> And I have matching patches for libwebcam / uvcdynctrl for this. I've send
> these to libwebcam upstream, but unfortunately libwebcam upstream is not really
> fast with processing these, so we will need to add these to the Fedora
> libwebcam package for now.

Are these in the kernel already?

> 1) You should add uvcdynctrl + udev rules to the libwebcam package, it is best
> to base your work on the Debian branch for this, to get the Debian branch do:
> svn export -r 90 http://svn.quickcamteam.net/svn/qct/webcam-tools/branches/deb
> libwebcam-0.2.0

New spec: http://michael.cronenworth.com/RPMS/libwebcam.spec
SRPM: http://michael.cronenworth.com/RPMS/libwebcam-0.2.0-0.3.20100322svn.fc13.src.rpm

> 
> 2) I would like to see some patches added to the Fedora package which add
> support for menu and button controls, but lets first just tackle 1). If you can
> provide an updated spec file and srpm with 1) fixed I'll do a more thorough
> review of that.

I'll be more than happy to work with you on those patches.

> An important part of the getting sponsored process is showing that you've got
> the necessary packaging skills and knowledge of the packaging guidelines as
> mentioned already in comment #8 one way of doing this is doing reviews of other
> packages which are awaiting review (when you do this please add a note you are
> not doing an official review).

I haven't gotten to do some unofficial reviews yet.

> 
> An other option is to show your skills by creating a couple of packages. Given
> that your current libwebcam package only packages the library itself, I'm
> guessing that you are packaging libwebcam because it is needed by something
> else you plan to package. You could for example also submit that for review (it
> is ok to have multiple review requests outstanding while waiting for
> sponsoring). Or if I may suggest something you could package v4l-utils, the
> successor of libv4l:
> http://www.linuxtv.org/downloads/v4l-utils/
> http://cvs.fedoraproject.org/viewvc/devel/libv4l/libv4l.spec?view=co

I'll let you handle that, if you wish. I am going to package uvcdynctrl plus my own app, uvcdynctrl-gtk (pretty obvious what that is). I wanted to start with libwebcam first, but if having those two packages in review as well will help this process along, I'll add them. I'll start with uvcdynctrl. My app needs a .desktop and icon file, which I have not made yet.

Bug 613857

> 
> Regards,
> 
> Hans    

Thanks for the pointers!
Comment 12 Hans de Goede 2010-07-13 04:58:47 EDT
Hi,

(In reply to comment #11)
> (In reply to comment #10)

<snip>

> > And I have matching patches for libwebcam / uvcdynctrl for this. I've send
> > these to libwebcam upstream, but unfortunately libwebcam upstream is not really
> > fast with processing these, so we will need to add these to the Fedora
> > libwebcam package for now.
> 
> Are these in the kernel already?
> 

The kernel parts of this are currently in Mauro (v4l-dvb maintainer) git repository in his for_v2.6.36 branch, so it looks like they missed the 2.6.35 merge window. But I have commit access to Fedora's kernel so I'll likely add them to Fedora's kernel packages once libwebcam is done.

> New spec: http://michael.cronenworth.com/RPMS/libwebcam.spec
> SRPM:
> http://michael.cronenworth.com/RPMS/libwebcam-0.2.0-0.3.20100322svn.fc13.src.rpm
> 

Thanks, hmm, I see you are still not including uvcdynctrl, see below...

> > 2) I would like to see some patches added to the Fedora package which add
> > support for menu and button controls, but lets first just tackle 1). If you can
> > provide an updated spec file and srpm with 1) fixed I'll do a more thorough
> > review of that.
> 
> I'll be more than happy to work with you on those patches.
> 

Good :)

<snip>

> > An other option is to show your skills by creating a couple of packages. Given
> > that your current libwebcam package only packages the library itself, I'm
> > guessing that you are packaging libwebcam because it is needed by something
> > else you plan to package. You could for example also submit that for review 

<snip>

> I am going to package uvcdynctrl plus my
> own app, uvcdynctrl-gtk (pretty obvious what that is). I wanted to start with
> libwebcam first, but if having those two packages in review as well will help
> this process along, I'll add them.

Yes having more apps in review will definitely help in getting sponsored as that gives me a better idea of your packaging skills.

> I'll start with uvcdynctrl. My app needs a
> .desktop and icon file, which I have not made yet.
> 
> Bug 613857

Hmm, I guess I wasn't clear the first time, sorry. Given that uvcdynctrl and libwebcam have the same upstream (note how the svn co command in both your spec files is the same, iow both tarballs containt the same source) both should be in a single package, or at least in a single srpm (you can build multiple rpms from the same source rpm, like the -devel sub package).

I just checked and this is also how debian does it (generate both libwebcam and uvcdynctrl packages from a single source tarbal / package) and I believe this is the right thing to do.

They could be in separate packages if you want, although I don't see a reason for that. My plan is to make libv4l Require the package which provides the udev rules, so that the udev rules (and thus uvcdynctrl and thus libwebcam) always get installed, making splitting them not really useful. But I have no real preference (split or not split) either way.

The reason for making libv4l Require the udev rules is that there are plans to add support for software autofocus (needed for example for the logitech pro 9000), and that in turn needs uvcdynctrl to enable the controls which control the focus.

Can you please create 1 single spec file which builds both libwebcam and uvcdynctrl, and then mark bug 613857 as a duplicate of this one?

Regards,

Hans
Comment 13 Michael Cronenworth 2010-07-13 15:06:16 EDT
(In reply to comment #12)
> Can you please create 1 single spec file which builds both libwebcam and
> uvcdynctrl, and then mark bug 613857 as a duplicate of this one?

Do you have a preference on name? I left them split so I could have a "libwebcam" and "uvcdynctrl" package name. If they are merged I would have to have "libwebcam-uvcdynctrl" or "uvcdynctrl-libs" package name, which I wasn't fond of. I realize they rely on each other and are from one SCM.

I propose "libwebcam-*" and have a Provides for "uvcdynctrl" to "libwebcam-uvcdynctrl".

I will also take a moment to write a autobiography:
The open source Idea has inspired me for about the past 10 years when I first downloaded a Linux distro. A few years ago I moved beyond having it as a hobby into using it for my $DAYJOB as a C programmer, which I am still active in. My experiences include time with OpenSSL, libxml, GTK, MinGW, and many more open source efforts. I've also written Debian packages for my Nokia N900 (stopish app and a FLAC metadata plugin). I give back to Fedora and other open source communities when I can with discussions and, yes, patches. I currently have several packages across the Red Hat Bugzilla and others that have patches either accepted or in limbo. My FAS account is "mooninite" and you can see my activities as a semi-active QA member. I also try to stay active in the mailing lists as I use many Fedora/Red Hat packaged tools in my $DAYJOB so I am involved in everything from koji/build-sys to devel to users and to test. I'm not one to fancy any credit or glory so my name may not be as popular as some we all know, but I do wish to contribute where and when I can.
Comment 14 Hans de Goede 2010-07-14 04:37:51 EDT
Hi,

(In reply to comment #13)
> (In reply to comment #12)
> > Can you please create 1 single spec file which builds both libwebcam and
> > uvcdynctrl, and then mark bug 613857 as a duplicate of this one?
> 
> Do you have a preference on name? I left them split so I could have a
> "libwebcam" and "uvcdynctrl" package name.

Ah, see below.

> If they are merged I would have to
> have "libwebcam-uvcdynctrl" or "uvcdynctrl-libs" package name, which I wasn't
> fond of.

No that is not necessary, by adding the "-n" option to all places where you
add a sub package name, the $srcrpmname- prefix gets removed.

So lets name the src.rpm / main package libwebcam. If you then want to add a
sub-package named just uvcdynctrl rather then libwebcam-uvcdynctrl, put the following in the spec:

%package -n uvcdynctrl
Summary: ...
Requires: libwebcam = %{version}-%{release}

%description -n uvcdynctrl
Development libraries and headers for libwebcam.

...

%post -n uvcdynctrl
<stuff here if needed>

%files -n uvcdynctrl


> I realize they rely on each other and are from one SCM.
> 
> I propose "libwebcam-*" and have a Provides for "uvcdynctrl" to
> "libwebcam-uvcdynctrl".
>

Not necessary, see above :)
 
> I will also take a moment to write a autobiography:
> The open source Idea has inspired me for about the past 10 years when I first
> downloaded a Linux distro. A few years ago I moved beyond having it as a hobby
> into using it for my $DAYJOB as a C programmer, which I am still active in. My
> experiences include time with OpenSSL, libxml, GTK, MinGW, and many more open
> source efforts. I've also written Debian packages for my Nokia N900 (stopish
> app and a FLAC metadata plugin). I give back to Fedora and other open source
> communities when I can with discussions and, yes, patches. I currently have
> several packages across the Red Hat Bugzilla and others that have patches
> either accepted or in limbo. My FAS account is "mooninite" and you can see my
> activities as a semi-active QA member. I also try to stay active in the mailing
> lists as I use many Fedora/Red Hat packaged tools in my $DAYJOB so I am
> involved in everything from koji/build-sys to devel to users and to test. I'm
> not one to fancy any credit or glory so my name may not be as popular as some
> we all know, but I do wish to contribute where and when I can.    

Nice to meet you!

Regards,

Hans
Comment 15 Michael Cronenworth 2010-07-14 21:17:19 EDT
(In reply to comment #14)
> No that is not necessary, by adding the "-n" option to all places where you
> add a sub package name, the $srcrpmname- prefix gets removed.

Ah, I forgot about that. Thanks.

SPEC: http://michael.cronenworth.com/RPMS/libwebcam.spec
SRPM: http://michael.cronenworth.com/RPMS/libwebcam-0.2.0-0.4.20100322svn.fc13.src.rpm
Comment 16 Michael Cronenworth 2010-07-14 21:17:52 EDT
*** Bug 613857 has been marked as a duplicate of this bug. ***
Comment 17 Hans de Goede 2010-07-17 05:04:28 EDT
Looks good, full review below:

Good:
- rpmlint checks return:
libwebcam.x86_64: W: spelling-error Summary(en_US) uvcvideo -> videodisc, videotex, videotape
libwebcam.x86_64: W: spelling-error %description -l en_US uvcvideo -> videodisc, videotex, videotape
libwebcam.x86_64: W: spelling-error %description -l en_US webcams -> web cams, web-cams, webmaster
libwebcam-devel.x86_64: W: no-documentation
uvcdynctrl.x86_64: W: spelling-error Summary(en_US) libwebcam -> liberalism, Liberace
uvcdynctrl.x86_64: W: spelling-error %description -l en_US webcams -> web cams, web-cams, webmaster
uvcdynctrl.x86_64: W: spelling-error %description -l en_US libwebcam -> liberalism, Liberace
uvcdynctrl.x86_64: W: spelling-error %description -l en_US webcam -> web cam, web-cam, webmaster
libwebcam.src: W: spelling-error Summary(en_US) uvcvideo -> videodisc, videotex, videotape
libwebcam.src: W: spelling-error %description -l en_US uvcvideo -> videodisc, videotex, videotape
libwebcam.src: W: spelling-error %description -l en_US webcams -> web cams, web-cams, webmaster
libwebcam.src: W: no-buildroot-tag
libwebcam.src: W: invalid-url Source0: libwebcam-0.2.0.tar.xz
6 packages and 0 specfiles checked; 0 errors, 13 warnings.
(these can all be ignored)
- package meets naming guidelines
- package meets packaging guidelines
- license (LGPLv3+ and GPLv3+) OK, text in %doc, matches source
- spec file legible, in am. english
- source matches upstream
- package compiles on devel (x86)
- no unnecessary BR
- no locales
- not relocatable
- owns all directories that it creates
- no duplicate files
- permissions ok
- %clean ok
- macro use consistent
- code, not content
- no need for -docs
- nothing in %doc affects runtime
- no need for .desktop file
- devel package ok
- no .la files
- post/postun ldconfig ok
- devel requires base package n-v-r

Needs work:
-missing BuildRequires gengetopt
-%{_datadir}/uvcdynctrl and %{_datadir}/uvcdynctrl/data directories are unowned
 instead of:
 %dir %{_datadir}/uvcdynctrl/data/046d
 %{_datadir}/uvcdynctrl/data/046d/logitech.xml
 you can wrirte just:
 %{_datadir}/uvcdynctrl
 And then rpm will include all dirs and files under %{_datadir}/uvcdynctrl
-the udev rules do not work when the camera is already plugged in when the
 system starts up. The problem is that the /lib/udev/uvcdynctrl script tries
 to write to /var/log when / is still mounted ro. I've fixed this locally
 by changing the logfile to /dev/.udev/uvcdynctrl-udev.log

I like the packaging work I've seen from you so far, so if you fix these remaining need work items, then I'll approve this package and sponser you.
Comment 18 Hans de Goede 2010-07-18 09:46:07 EDT
Hi Michael,

I've added the upstream add menu support for dynamic control patches to the Fedora kernel tree in pkg cvs for F-13 and F-14, so the next build for either will pick these up.

I'll attach a patch for libwebcam (and an updated uvcvideo.h) which add support for these. I've tested this both with an unpatched and with a patched kernel and it works fine in either case.

I would very much like to see the patch be added to the Fedora packages,

Thanks,

Hans
Comment 19 Hans de Goede 2010-07-18 09:49:39 EDT
Created attachment 432702 [details]
Patch adding support for dynamic menu controls
Comment 20 Hans de Goede 2010-07-18 09:50:00 EDT
Created attachment 432703 [details]
updated uvcvideo.h
Comment 21 Michael Cronenworth 2010-07-19 00:17:40 EDT
Created attachment 432759 [details]
disable udev log by default

I have a Logitech Quickcam 9000 Pro (first gen) and I also see the problem with missing controls (Focus, etc) after first boot. I disabled logging and that resolved it. The attached patch disables logging by default, unless the log should truely be written to /dev/.udev? Anyone needing logging can enable it post-install.

I've applied your patches and changed ownership of the uvcdynctrl data directory.
spec: http://michael.cronenworth.com/RPMS/libwebcam.spec
srpm: http://michael.cronenworth.com/RPMS/libwebcam-0.2.0-0.5.20100322svn.fc13.src.rpm
Comment 22 Hans de Goede 2010-07-19 02:55:51 EDT
Hi Michael,

Almost there :)

Needs work:
-missing BuildRequires gengetopt
-you are not applying Patch3 anywhere
-Now the %{_datadir}/uvcdynctrl/data and the %{_datadir}/uvcdynctrl/data/046d
 directories are unowned. If you want to list each file under the dir
 explicitly, you need to also list all dirs, iow you need to use:
%dir %{_datadir}/uvcdynctrl
%dir %{_datadir}/uvcdynctrl/data
%dir %{_datadir}/uvcdynctrl/data/046d
%{_datadir}/uvcdynctrl/data/046d/logitech.xml
 but as said before instead you can also put just the following in %files:
%{_datadir}/uvcdynctrl
 note that this time there is no %dir in front of it! When you list a dir this
 way rpmbuild will make the rpm own the dir, and put all files and dirs
 below it in the rpm.

Regards,

Hans
Comment 24 Hans de Goede 2010-07-19 10:28:53 EDT
Hi,

(In reply to comment #23)
> spec: http://michael.cronenworth.com/RPMS/libwebcam.spec
> srpm:
> http://michael.cronenworth.com/RPMS/libwebcam-0.2.0-0.6.20100322svn.fc13.src.rpm    

Looks good now, one small nitpick left (which you can fix before import), there is no need to separately list
%{_datadir}/uvcdynctrl/data/046d/logitech.xml

%{_datadir}/uvcdynctrl
Gets you everything below that dir. If you look at the build output of your latest spec you will see the following there:

warning: File listed twice: /usr/share/uvcdynctrl/data/046d/logitech.xml


Approved!

Go create a FAS account if you have not already, request access to the packagers group and let me know your FAS account name, then I'll sponsor you.

Regards,

Hans
Comment 25 Michael Cronenworth 2010-07-19 10:40:05 EDT
(In reply to comment #24)
> Gets you everything below that dir. If you look at the build output of your
> latest spec you will see the following there:

Will do.

> Approved!

Yay.

> Go create a FAS account if you have not already, request access to the
> packagers group and let me know your FAS account name, then I'll sponsor you.

FAS: mooninite

> Regards,
> 
> Hans    

Thanks, Hans.
Comment 26 Hans de Goede 2010-07-19 10:49:46 EDT
(In reply to comment #25)
> FAS: mooninite

You've been sponsored, next step cvs request then import, build, etc.
Comment 27 Michael Cronenworth 2010-07-19 10:59:29 EDT
New Package CVS Request
=======================
Package Name: libwebcam
Short Description: A library for user-space configuration of the uvcvideo driver
Owners: mooninite
Branches: F-13 F-14
InitialCC: jwrdegoede
Comment 28 Stefan Jensen 2010-07-19 11:49:26 EDT
Awesome, thank you very much for adding this package to Fedora. Like it!

One (maybe dumb) question:

Should "uvcdynctrl-data" better have a dependency with "uvcdynctrl"? Otherwise uvcdynctrl is always a leave package?
Comment 29 Michael Cronenworth 2010-07-19 12:01:40 EDT
(In reply to comment #28)
> Should "uvcdynctrl-data" better have a dependency with "uvcdynctrl"? Otherwise
> uvcdynctrl is always a leave package?    

Installing uvcdynctrl will pull in -data but not vice versa. Perhaps you wish to reinvent uvcdynctrl but need the XML file(s). You can have libwebcam and uvcdynctrl-data installed without uvcdynctrl. This is just one scenario I thought of as the separate -data package request came from the Debian maintainer.
Comment 30 Kevin Fenzi 2010-07-19 23:18:55 EDT
CVS done (by process-cvs-requests.py).

We are not yet doing F-14 branches. Otherwise cvs done
Comment 31 Michael Cronenworth 2010-07-20 00:55:02 EDT
(In reply to comment #30)
> We are not yet doing F-14 branches. Otherwise cvs done    

Thanks Kevin. Wasn't sure with the non-frozen rawhide and all.

Builds pushed to rawhide and F13. Thanks again Hans.
Comment 32 Michael Cronenworth 2010-08-05 14:42:34 EDT
Pushed to F13 and higher.

Note You need to log in before you can comment on or make changes to this bug.