Only export symbols starting with razor_ in dynamic library.
Apart from being good practice to avoid clashes with higher-level
libraries and the application, this also fixes an obscure bug: The
gnulib library is used both by librazor (the dynamic library) and
by razor (the executable). In doing so, we want to have two separate
copies of the library despite the code duplication this involves.
Without the explicit limit to export only razor_ symbols, the razor
executable under mingw64 was picking up the getopt_long function
from librazor and the optind variable from libgnu which meant that
it did not see optind changing. Hiding librazor's copy of getopt
causes the linker to find libgnu's copy and everything works.
Note that under mingw librazor-#.dll still contains undocumented
(private) razor_ symbols but these will do no harm as long as nobody
tries to use them.
1 Summary: Razor is a package management system replacing rpm and yum
6 Group: System Environment/Libraries
7 URL: http://github.com/krh/razor/wikis
8 Source0: http://people.freedesktop.org/~krh/releases/%{name}-%{version}.tar.gz
9 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
14 BuildRequires: expat-devel
15 BuildRequires: libtool
16 BuildRequires: gettext
17 BuildRequires: libcurl-devel
18 BuildRequires: rpm-devel
19 BuildRequires: zlib-devel
20 BuildRequires: perl(XML::Parser)
23 Razor is a package management system replacing rpm and yum.
24 Razor implements management of packages installed on the system,
25 dependency solving, and upgrading in a small compact code base with
29 Summary: Libraries for accessing razor
30 Group: Development/Libraries
31 Requires: expat >= %{dbus_version}
32 Requires: %{name} = %{version}-%{release}
35 Libraries for accessing razor.
38 Summary: Libraries and headers for razor
39 Group: Development/Libraries
40 Requires: %{name} = %{version}-%{release}
42 Requires: libcurl-devel
47 Headers and libraries for razor.
58 rm -rf $RPM_BUILD_ROOT
59 make install DESTDIR=$RPM_BUILD_ROOT
61 rm -f $RPM_BUILD_ROOT%{_libdir}/librazor*.a
62 rm -f $RPM_BUILD_ROOT%{_libdir}/librazor*.la
67 rm -rf $RPM_BUILD_ROOT
69 %post libs -p /sbin/ldconfig
71 %postun libs -p /sbin/ldconfig
75 %defattr(-,root,root,-)
76 %doc README AUTHORS NEWS COPYING
77 %dir %{_datadir}/doc/razor
78 %doc %{_datadir}/doc/razor/*.txt
79 %config %{_sysconfdir}/bash_completion.d/*.sh
81 %exclude %{_libdir}/librazor*.so.*
84 %defattr(-,root,root,-)
85 %doc README AUTHORS NEWS COPYING
86 %{_libdir}/*razor*.so.*
89 %defattr(-,root,root,-)
92 %{_libdir}/pkgconfig/*
96 * Mon Jun 16 2008 Richard Hughes <richard@hughsie.com> 0.1-0.1