Re: Sources file audit - 2010-01-05

2010-01-06 Thread Kalev Lember

On 01/06/2010 09:24 PM, Dave Jones wrote:

On Wed, Jan 06, 2010 at 11:38:20AM -0700, Kevin Fenzi wrote:

- BADURL:base-file-name:$PACKAGENAME
  
This means that the URI provided in the Source(s) line didn't result in
a download of the source. This could be any of: URL changed, version
changed and URL wasn't updated, Site is down, Site is gone, etc.
Also there are a number of packages with incorrect sourceforge links.
(BTW, there are still some packages with ftp://people.redhat.com/
URLs). This could also be a transitory network failure from my checking
host or the project hosting.
  
davej:BADURL:midisport-firmware-1.2.tar.gz:midisport-firmware

so %{version} in the Source: line isn't allowed any more ?


See the logs [1], what really happened was that sourceforge replied with 
504 Gateway Time-out.


[1] 
http://www.scrye.com/~kevin/fedora/sourcecheck/sourcecheck-20100105/midisport-firmware-dl.txt


--
Kalev

--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list


mono and snk key files

2009-11-29 Thread Kalev Lember

Hello,

I'm writing this to fedora-devel list and also cross-posting to 
fedora-mono, as the latter seems rather dead but might be useful for 
archiving purposes.


I am not very familiar with Mono and .NET technology, so if I get 
something wrong, please correct me. I'm also neither nant's nor 
log4net's maintainer; I just saw that a large part of Mono is currently 
broken in rawhide and tried to figure out the root cause.


Mono assemblies that get installed into GAC need to be 
strongname-signed. The resulting public key token gets placed into the 
assembly (DLL), and uniquely identifies a series of assembly releases 
that are all API/ABI compatible. When the assembly manufacturer releases 
an API-compatible updated version, they would strongname-sign the update 
with the same snk key as the previous release. This is supposed to 
prevent DLL hell: applications reference the public key token, and if 
there's an updated DLL with the same public key available, then 
applications are automatically redirected to the new version.


There are several Mono source packages in Fedora that don't ship an .snk 
key file. The reason why the file sometimes isn't shipped with the 
source is probably this: upstream developers want to be able to create 
binary releases which are guaranteed to be API compatible, and don't 
want anyone else to sign non-compatible versions with the same key.


However, since assemblies installed into the GAC need to be signed, 
several Fedora packages generate the public key files during build time. 
With this approach every single build gets signed with a DIFFERENT snk 
file, making every new build incompatible with the previous one.


Right now nant is broken [1] in Fedora because someone rebuilt log4net. 
During the rebuild a new strong name key was generated, and log4net was 
signed with the new key. However, since nant was built against the 
previous log4net build, it is no longer able to find the rebuilt log4net 
assembly which is signed with a new key. Result: nant breaks, and with 
that also log4net breaks [2], because it uses nant for building itself. 
This situation not only applies for log4net, but for many different Mono 
libraries.


Historically nant appears to have been fixed with bootstrapping [3]. 
Nant's source distribution contains a bunch of binary dll files. Someone 
has to flip a switch in the spec file so that nant uses those binary 
files to build itself. After that bootstrapping is disabled and nant is 
rebuilt against the assemblies from the system.


However, this approach doesn't scale if every single update / rebuild 
needs to have nant manually bootstrapped/debootstrapped.


I'd suggest to fix this changing the way snk files are generated. 
Instead of automatically generating a new key at build time, it should 
instead be generated once, and stored in cvs / lookaside cache. It would 
then be at a package maintainer's discretion to regenerate the snk file 
whenever an API incompatible update is made. However, casual rebuilds 
would be done with the same strongname key, making sure that everything 
depending on the assembly doesn't get automatically broken with each 
rebuild.


Comments?


[1] https://bugzilla.redhat.com/show_bug.cgi?id=538908
[2] https://bugzilla.redhat.com/show_bug.cgi?id=539189
[3] 
https://www.redhat.com/archives/fedora-devel-list/2009-October/msg01399.html


--
Kalev

--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list


Re: mono and snk key files

2009-11-29 Thread Kalev Lember
The packages that run sn -k from .spec file and thus affected by the 
problem are:


mono-sharpcvslib
mono-cecil-flowanalysis
mono-ndoc
mono-nunit22
log4net

--
Kalev

--
fedora-devel-list mailing list
fedora-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-devel-list