[meta-freescale] [meta-fsl-arm][PATCH] fsl-mm-*-codeclib: Fix packaging of libraries

Javier Viguera javier.viguera at digi.com
Wed Jan 9 01:35:25 PST 2013


On 01/08/2013 08:02 PM, Otavio Salvador wrote:
> This is a new patch which replaces the other one. It should address
> all packaging issues in the fsl-mm-*-codeclib packages. Javier, can
> you give it a try?

The patch worked mostly well. No warnings at build time and the packages 
are created.

A couple of things though:

1. The 'fsl-mm-codeclib' source package has symbolic links for the 
'*.so' files pointing to the real library file. For example:

  lib_sbc_enc_arm11_elinux.so -> lib_sbc_enc_arm11_elinux.so.2.0.0
  lib_sbc_enc_arm11_elinux.so.2.0.0
  lib_sbc_enc_arm9_elinux.so -> lib_sbc_enc_arm9_elinux.so.2.0.0
  lib_sbc_enc_arm9_elinux.so.2.0.0

The patch changed 'cp' to 'install' tool in the 'do_install' function 
and then those symbolic links get lost. See:

19740 Jan  9 09:57 lib_sbc_enc_arm11_elinux.so
19740 Jan  9 09:57 lib_sbc_enc_arm11_elinux.so.2.0.0
19736 Jan  9 09:57 lib_sbc_enc_arm9_elinux.so
19736 Jan  9 09:57 lib_sbc_enc_arm9_elinux.so.2.0.0

Then the '*.so' files go to the '-dev' package as *files* and not as 
symbolic links and if you install both in your target's rootfs you have 
duplicated files. This doesn't hurt but it doubles the space.

2. More important

Because the source package has this mix of files with different naming 
rules, there are some missing files in the normal package that went to 
the '-dev' package:

lib_aac_parser_arm11_elinux.so
lib_bmp_dec_arm11_elinux.so
lib_deinterlace_arm11_elinux.so
lib_flac_parser_arm11_elinux.so
lib_gif_dec_arm11_elinux.so
lib_id3_parser_arm11_elinux.so
lib_jpeg_enc_arm11_elinux.so
lib_mp3_parser_v2_arm11_elinux.so
libmpeg4_encoder_arm11_ELINUX.so
lib_png_dec_arm11_elinux.so
lib_src_ppp_arm11_elinux.so
lib_wav_parser_arm11_elinux.so

The reason again is that in the source package these files are the real 
libraries but they don't have a ending version in the filename. The 
build system i guess understands that they are the symbolic links that 
should go to the '-dev' package when they shouldn't.

So number #1 is just a matter of saving space, while number #2 is more 
important because later at runtime gstreamer needs some of the missing 
files. I get this error running gst-inspect:

(gst-plugin-scanner:887): GStreamer-WARNING **: Failed to load plugin 
'/usr/lib/gstreamer-0.10/libmfw_gst_deinterlace.so': 
*lib_deinterlace_arm11_elinux.so*: cannot open shared object file: No 
such file or directory

-
Javier Viguera
Software Engineer
Digi International® Spain S.A.U.



More information about the meta-freescale mailing list