Jason L Tibbitts III wrote: >>>>>> "MS" == Michael Schwendt <mschwendt@xxxxxxxxx> writes: > > MS> $ rpm -ql ImageMagick | grep '\.la$'|wc -l > MS> 102 > > MS> It's an indication that hardly any reviewers/packagers follow the > MS> guidelines. > > Very far from fair to mention ImageMagick. The issue was addressed in > the ImageMagic merge review, which points back to earlier problems > when the .la files were originally removed from the package. The only > real sin here is the fact that it's not explicitly documented in the > spec file, only mentioned in the changelog entries. > > https://bugzilla.redhat.com/show_bug.cgi?id=225897 > https://bugzilla.redhat.com/show_bug.cgi?id=185237 > > "The package breaks without the .la files" is a reasonable exemption > to the guidelines. It's pretty easy to see what's going on if you > actually look at the merge review instead of simply accusing accusing > people of blindly ignoring the guidelines. > Attaching a patch that allows convert, at least, to work without *.la files installed to show how much coding work is involved in fixing these. This still leaves several questions, though: * Is it the packagers job to fix things like this? It's certainly a Fedora-specific packaging policy to remove *.la files, so this is not something that we can force on upstream. * Is this something we should carry local patches to fix if upstream won't accept our changes? Note: This patch fixes convert for our purposes but it's not ready to be sent upstream yet. Upstream will want *.la files to work on platforms that are more limited than we are and can't support loading directly from the *.so file. Also, there's a couple uses of lt_dlopen() that might better be reqorked to lt_dlopenext() if upstream is amenable. -Toshio
diff -up ImageMagick-6.4.5/magick/module.c.libtool ImageMagick-6.4.5/magick/module.c --- ImageMagick-6.4.5/magick/module.c.libtool 2009-02-23 09:55:44.000000000 -0800 +++ ImageMagick-6.4.5/magick/module.c 2009-02-23 10:04:06.000000000 -0800 @@ -71,8 +71,10 @@ typedef void *ModuleHandle; Define declarations. */ #if defined(MAGICKCORE_LTDL_DELEGATE) -# define ModuleGlobExpression "*.la" +# define ModuleGlobExpression "*.so" +# define ModuleSuffix ".so" #else +# define ModuleSuffix ".dll" # if defined(_DEBUG) # define ModuleGlobExpression "IM_MOD_DB_*.dll" # else @@ -1310,7 +1312,7 @@ static void TagToCoderModuleName(const c (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",tag); assert(name != (char *) NULL); #if defined(MAGICKCORE_LTDL_DELEGATE) - (void) FormatMagickString(name,MaxTextExtent,"%s.la",tag); + (void) FormatMagickString(name,MaxTextExtent,"%s" ModuleSuffix, tag); (void) LocaleLower(name); #else #if defined(__WINDOWS__) @@ -1319,9 +1321,9 @@ static void TagToCoderModuleName(const c else { #if defined(_DEBUG) - (void) FormatMagickString(name,MaxTextExtent,"IM_MOD_DB_%s_.dll",tag); + (void) FormatMagickString(name,MaxTextExtent,"IM_MOD_DB_%s_" ModuleSuffix,tag); #else - (void) FormatMagickString(name,MaxTextExtent,"IM_MOD_RL_%s_.dll",tag); + (void) FormatMagickString(name,MaxTextExtent,"IM_MOD_RL_%s_" ModuleSuffix,tag); #endif } #endif @@ -1359,9 +1361,9 @@ static void TagToFilterModuleName(const (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",tag); assert(name != (char *) NULL); #if !defined(MAGICKCORE_LTDL_DELEGATE) - (void) FormatMagickString(name,MaxTextExtent,"%s.dll",tag); + (void) FormatMagickString(name,MaxTextExtent,"%s" ModuleSuffix,tag); #else - (void) FormatMagickString(name,MaxTextExtent,"%s.la",tag); + (void) FormatMagickString(name,MaxTextExtent,"%s" ModuleSuffix,tag); (void) LocaleLower(name); #endif }
Attachment:
signature.asc
Description: OpenPGP digital signature
-- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list