# # spec file for package pkgconf # # Copyright (c) 2018 Neal Gompa . # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # Compatibility macros %{!?make_build: %global make_build %{__make} %{?_smp_mflags}} # pkgconf does not act as pkgconfig by default %bcond_with pkgconfig_compat %if %{with pkgconfig_compat} %global pkgconfig_ver 0.29.2 # For obsoleting pkgconfig, bump the ver to a number higher than latest version %global pkgconfig_obsver %{pkgconfig_ver}.1 %endif # Search path for pc files for pkgconf %global pkgconf_libdirs %{_libdir}/pkgconfig:%{_datadir}/pkgconfig %global somajor 3 %global libname lib%{name}%{somajor} %global devname lib%{name}-devel Name: pkgconf Version: 1.4.0 Release: 1%{?dist} Summary: Package compiler and linker metadata toolkit Group: Development/Tools/Building License: ISC URL: http://pkgconf.org/ Source0: https://distfiles.dereferenced.org/%{name}/%{name}-%{version}.tar.xz # Simple wrapper script to offer platform versions of pkgconfig from Fedora Source1: platform-pkg-config.in BuildRequires: gcc BuildRequires: make # For regenerating autotools scripts BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool # pkgconf uses libpkgconf internally Requires: %{libname}%{?_isa} = %{version}-%{release} # This is defined within pkgconf code as a virtual pc (just like in pkgconfig) Provides: pkgconfig(pkgconf) = %{version} %description pkgconf is a program which helps to configure compiler and linker flags for development frameworks. It is similar to pkg-config from freedesktop.org and handles .pc files in a similar manner as pkg-config. %package -n %{libname} Summary: Backend library for %{name} Group: System/Libraries %description -n %{libname} This package provides libraries for applications to use the functionality of %{name}. %package -n %{devname} Summary: Development files for lib%{name} Group: Development/Libraries/C and C++ Requires: %{libname}%{?_isa} = %{version}-%{release} %description -n %{devname} This package provides files necessary for developing applications to use functionality provided by %{name}. %if %{with pkgconfig_compat} %package m4 Summary: m4 macros for pkgconf Group: Development/Libraries/Other License: GPL-2.0+ with Autoconf-exception-2.0 BuildArch: noarch # Ensure that it Conflicts and Obsoletes pkgconfig since it contains content formerly from it Conflicts: pkgconfig < %{pkgconfig_obsver} Obsoletes: pkgconfig < %{pkgconfig_obsver} %description m4 This package includes m4 macros used to support PKG_CHECK_MODULES when using pkgconf with autotools. %package pkg-config Summary: %{name} shim to provide /usr/bin/pkg-config Group: Development/Tools/Building # Ensure that it Conflicts with pkg-config and is considered "better" Conflicts: pkg-config < %{pkgconfig_obsver} Obsoletes: pkg-config < %{pkgconfig_obsver} Provides: pkg-config = %{pkgconfig_obsver} Provides: pkg-config%{?_isa} = %{pkgconfig_obsver} # This is in the original pkgconfig package, set to match output from pkgconf Provides: pkgconfig(pkg-config) = %{version} # Fedora/Mageia pkgconfig Provides for those who might use alternate package name Provides: pkgconfig = %{pkgconfig_obsver} Provides: pkgconfig%{?_isa} = %{pkgconfig_obsver} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-m4 = %{version}-%{release} %description pkg-config This package provides the shim links for pkgconf to be automatically used in place of pkgconfig. This ensures that pkgconf is used as the system provider of pkg-config. %endif %prep %autosetup -p1 %build autoreconf -fiv %configure --disable-static \ --with-pkg-config-dir=%{pkgconf_libdirs} \ --with-system-includedir=%{_includedir} \ --with-system-libdir=%{_libdir} %make_build V=1 %install %make_install find %{buildroot} -name '*.la' -print -delete # Purge autotools-created docdir, as we'll docify with the SUSE-specific documentation paths later rm -rf %{buildroot}%{_datadir}/doc/%{name} %if %{with pkgconfig_compat} install -pm 0755 %{SOURCE1} %{buildroot}%{_bindir}/%{_target_platform}-pkg-config sed -e "s|@TARGET_PLATFORM@|%{_target_platform}|" \ -e "s|@PKGCONF_LIBDIRS@|%{pkgconf_libdirs}|" \ -e "s|@PKGCONF_SYSLIBDIR@|%{_libdir}|" \ -e "s|@PKGCONF_SYSINCDIR@|%{_includedir}|" \ -i %{buildroot}%{_bindir}/%{_target_platform}-pkg-config ln -sf pkgconf %{buildroot}%{_bindir}/pkg-config # I don't have a better way to deal with this... cp -a %{buildroot}%{_mandir}/man1/pkgconf.1 %{buildroot}%{_mandir}/man1/pkg-config.1 mkdir -p %{buildroot}%{_libdir}/pkgconfig mkdir -p %{buildroot}%{_datadir}/pkgconfig %endif # If we're not providing pkgconfig override & compat # we should not provide the pkgconfig m4 macros %if ! %{with pkgconfig_compat} rm -rf %{buildroot}%{_datadir}/aclocal rm -rf %{buildroot}%{_mandir}/man7 %endif %post -n %{libname} -p /sbin/ldconfig %postun -n %{libname} -p /sbin/ldconfig %files %license COPYING %doc README.md AUTHORS NEWS %{_bindir}/%{name} %{_mandir}/man1/%{name}.1* %{_mandir}/man5/pc.5* %files -n %{libname} %license COPYING %{_libdir}/lib%{name}*.so.%{somajor} %{_libdir}/lib%{name}*.so.%{somajor}.* %files -n %{devname} %{_libdir}/lib%{name}*.so %{_includedir}/%{name}/ %{_libdir}/pkgconfig/lib%{name}.pc %if %{with pkgconfig_compat} %files m4 %{_datadir}/aclocal/pkg.m4 %{_mandir}/man7/pkg.m4.7* %files pkg-config %{_bindir}/pkg-config %{_bindir}/%{_target_platform}-pkg-config %{_mandir}/man1/pkg-config.1* %dir %{_libdir}/pkgconfig %dir %{_datadir}/pkgconfig %endif %changelog * Mon Feb 19 12:48:00 EST 2018 Neal Gompa - Initial packaging based on Fedora and Mageia packaging