contrib/razor.spec
author J. Ali Harlow <ali@juiblex.co.uk>
Sat Oct 04 18:12:58 2014 +0100 (2014-10-04)
changeset 454 56ff755c268c
parent 242 f2218527ad4a
permissions -rw-r--r--
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
     2 Name:      razor
     3 Version:   0.1
     4 Release:   0.1%{?dist}
     5 License:   GPLv2+
     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)
    10 
    11 Requires: expat
    12 Requires: rpm-libs
    13 
    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)
    21 
    22 %description
    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
    26 minimal dependencies.
    27 
    28 %package libs
    29 Summary: Libraries for accessing razor
    30 Group: Development/Libraries
    31 Requires: expat >= %{dbus_version}
    32 Requires: %{name} = %{version}-%{release}
    33 
    34 %description libs
    35 Libraries for accessing razor.
    36 
    37 %package devel
    38 Summary: Libraries and headers for razor
    39 Group: Development/Libraries
    40 Requires: %{name} = %{version}-%{release}
    41 Requires: pkgconfig
    42 Requires: libcurl-devel
    43 Requires: rpm-devel
    44 Requires: zlib-devel
    45 
    46 %description devel
    47 Headers and libraries for razor.
    48 
    49 %prep
    50 %setup -q
    51 
    52 %build
    53 %configure
    54 
    55 make %{?_smp_mflags}
    56 
    57 %install
    58 rm -rf $RPM_BUILD_ROOT
    59 make install DESTDIR=$RPM_BUILD_ROOT
    60 
    61 rm -f $RPM_BUILD_ROOT%{_libdir}/librazor*.a
    62 rm -f $RPM_BUILD_ROOT%{_libdir}/librazor*.la
    63 
    64 #%find_lang %name
    65 
    66 %clean
    67 rm -rf $RPM_BUILD_ROOT
    68 
    69 %post libs -p /sbin/ldconfig
    70 
    71 %postun libs -p /sbin/ldconfig
    72 
    73 %files
    74 # -f %{name}.lang
    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
    80 %{_bindir}/razor
    81 %exclude %{_libdir}/librazor*.so.*
    82 
    83 %files libs
    84 %defattr(-,root,root,-)
    85 %doc README AUTHORS NEWS COPYING
    86 %{_libdir}/*razor*.so.*
    87 
    88 %files devel
    89 %defattr(-,root,root,-)
    90 
    91 %{_libdir}/lib*.so
    92 %{_libdir}/pkgconfig/*
    93 %{_includedir}/*
    94 
    95 %changelog
    96 * Mon Jun 16 2008 Richard Hughes <richard@hughsie.com> 0.1-0.1
    97 - Initial version
    98