On Tue, Aug 16, 2011 at 11:27 AM, Michael Schwendt <[email protected]> wrote:
> On Tue, 16 Aug 2011 10:38:43 -0500, RS (Richard) wrote:
>
>> > cd %{buildroot}%{libdir}
>> > ldconfig -n $(pwd)
>> > ln -s %{name}.so.? %{name}.so
>> > cd -
>>
>> Wouldn't that create a symlink of a symlink?
>
> That isn't a problem, is it? All that matters is that the final symlink would
> point at a usable library the build-time linker can load
No, not a technical problem. Just inelegant :)
> Both types of symlinks exist in Fedora packages.
> You could
>
> shopt -s failglob
> ln -s %{name}.so.*.* %{name}.so
>
> enforcing existence of a fully versioned library, and else an error.
> All that matters is that the final symlink would point at a usable
> library.
Interesting, I've never messed with shopt before.
[snip]
> Enjoy it if it works for you. :)
> Note though that if the make command fails, you would end up with an
> empty $LIBNAME and a %{name}.so -> %{name}.so most likely, so some guard
> in the spec file would be beneficial.
I wanted a bit more informative error in case of failure and tried this:
# Extract library name from makefile
LIBNAME=$(make -f Makefile -f - <<<'lib_so:; @echo $(lib_so)' lib_so)
# Make sure LIBNAME is set and not null
: ${LIBNAME:?"LIBNAME variable could not be set."}
# Create symbolic link for -devel subpackage.
ldconfig -n %{buildroot}%{_libdir}
pushd %{buildroot}%{_libdir}
ln -s $LIBNAME %{name}.so
popd
Thanks,
Richard
--
devel mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/devel