Re: Packaging policy for libtool .la files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux