On Thursday 06 October 2011 12:50:30 Mauro Carvalho Chehab wrote:
> Em 06-10-2011 05:43, Hans Verkuil escreveu:
> > On Wednesday 05 October 2011 18:26:20 Mauro Carvalho Chehab wrote:
> >> Em 05-10-2011 10:45, Hans Verkuil escreveu:
> >>> I'll see if I can make a patch for this.
> >> 
> >> Ok, thanks!
> > 
> > Mauro, can you test this patch? It should translate 2.4x naming
> > convention to 3.x.
> > 
> > Regards,
> > 
> >     Hans
> > 
> > diff --git a/linux/patches_for_kernel.pl b/linux/patches_for_kernel.pl
> > index 33348d9..00d8b7f 100755
> > --- a/linux/patches_for_kernel.pl
> > +++ b/linux/patches_for_kernel.pl
> > @@ -13,11 +13,15 @@ my $file = "../backports/backports.txt";
> > 
> >   open IN, $file or die "can't find $file\n";
> >   
> >   sub kernel_version($) {
> > 
> > -   my $sublevel;
> > +   my ($version, $patchlevel, $sublevel) = $_[0] =~
> > m/^(\d+)\.(\d+)\.?(\d*)/;
> > 
> > -   $_[0] =~ m/^(\d+)\.(\d+)\.?(\d*)/;
> > -   $sublevel = $3 == "" ? 0 : $3;
> > -   return ($1*65536 + $2*256 + $sublevel);
> > +   # fix kernel version for distros that 'translated' 3.0 to 2.40
> > +   if ($version == 2&&  $patchlevel>= 40) {
> > +           $version = 3;
> > +           $patchlevel -= 40;
> > +   }
> > +   $sublevel = 0 if ($sublevel == "");
> > +   return ($version * 65536 + $patchlevel * 256 + $sublevel);
> > 
> >   }
> >   
> >   my $kernel = kernel_version($version);
> > 
> > diff --git a/v4l/Makefile b/v4l/Makefile
> > index 311924e..57302cc 100644
> > --- a/v4l/Makefile
> > +++ b/v4l/Makefile
> > @@ -248,7 +248,7 @@ ifneq ($(VER),)
> > 
> >     @echo $(VER)|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) {
> >     printf
> > 
> > ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",
> > $$1,$$2,$$3,$$1,$$2,$$3,$$4); };'>  $(obj)/.version
> > 
> >   else
> >   
> >     @echo No version yet, using `uname -r`
> > 
> > -   @uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.?([0-9]*)(.*)$$/) {
> > printf
> > ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s",$$1,$$2,$
> > $3==""?"0":$$3,$$_); };'>  $(obj)/.version +        @uname -r|perl -ne 'if
> > (/^([0-9]*)\.([0-9])*\.?([0-9]*)(.*)$$/) { $$ver = $$1; $$patch = $$2;
> > $$sub = $$3; if ($$ver == 2&&  $$patch>= 40) { $$ver = 3; $$patch -= 40;
> > }; printf
> > ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s",$$ver,$$p
> > atch,$$sub==""?"0": $$sub,$$_); };'>  $(obj)/.version
> > 
> >   endif
> >   endif
> 
> Hi Hans,
> 
> The idea was good, but the patch didn't work ;)
> 
> Fixed it. It is now properly recognizing the version 2.40 as 3.0.0 on both
> scripts. See enclosed. I didn't apply it yet.

Yeah, it's 2.6.40 to 3.0 instead of 2.40 to 3.0. It's amazing how quickly you 
forget :-)

> Btw, I just applied another fix upstream. The most noticed effect is that
> calling make -C linux apply_patches will now show:
>       Patches for 2.6.40.4-5.fc15.x86_64 already applied.
> instead of:
>       Patches for  already applied.

Nice!

> -
> Fix Name convention for kernels 2.6.40 and upper
> 
> Based on a patch from Hans Verkuil <hverk...@xs4all.nl>
> 
> Signed-off-by: Mauro Carvalho Chehab <mche...@redhat.com>
> 
> diff --git a/linux/patches_for_kernel.pl b/linux/patches_for_kernel.pl
> index 33348d9..2669e6c 100755
> --- a/linux/patches_for_kernel.pl
> +++ b/linux/patches_for_kernel.pl
> @@ -13,11 +13,18 @@ my $file = "../backports/backports.txt";
>   open IN, $file or die "can't find $file\n";
> 
>   sub kernel_version($) {
> -     my $sublevel;
> +     my ($version, $patchlevel, $sublevel) = $_[0] =~
> m/^(\d+)\.(\d+)\.?(\d*)/;
> 
> -     $_[0] =~ m/^(\d+)\.(\d+)\.?(\d*)/;
> -     $sublevel = $3 == "" ? 0 : $3;
> -     return ($1*65536 + $2*256 + $sublevel);
> +     # fix kernel version for distros that 'translated' 3.0 to 2.40

This comment is wrong, it should be 2.6.40.

> +     $version += 0;
> +     $patchlevel += 0;

These two lines seems to be leftovers from debugging.

I assume you will commit this?

Regards,

        Hans

> +     if ($version == 2 && $patchlevel == 6 && $sublevel >= 40) {
> +             $version = 3;
> +             $patchlevel = $sublevel - 40;
> +             $sublevel = 0;
> +     }
> +     $sublevel = 0 if ($sublevel == "");
> +     return ($version * 65536 + $patchlevel * 256 + $sublevel);
>   }
> 
>   my $kernel = kernel_version($version);
> diff --git a/v4l/Makefile b/v4l/Makefile
> index 311924e..580c997 100644
> --- a/v4l/Makefile
> +++ b/v4l/Makefile
> @@ -248,7 +248,7 @@ ifneq ($(VER),)
>       @echo $(VER)|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) {
> printf
> ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",$
> $1,$$2,$$3,$$1,$$2,$$3,$$4); };' > $(obj)/.version else
>       @echo No version yet, using `uname -r`
> -     @uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.?([0-9]*)(.*)$$/) { printf
> ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s",$$1,$$2,$$3
> ==""?"0":$$3,$$_); };' > $(obj)/.version +    @uname -r|perl -ne 'if
> (/^([0-9]*)\.([0-9])*\.?([0-9]*)(.*)$$/) { $$ver = $$1; $$patch = $$2;
> $$sub = $$3; if ($$ver == 2 && $$patch == 6 && $$sub >= 40) { $$ver = 3;
> $$patch = $$sub - 40; $$sub = 0; }; printf
> ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s",$$ver,$$pat
> ch,$$sub==""?"0":$$sub,$$_); };' > $(obj)/.version endif
>   endif
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to