From 43202e047fbd264c20226c5d242b0dce9a94dbb2f187b8e9e534b1187ea09c96 Mon Sep 17 00:00:00 2001 From: Martin Pluskal Date: Sun, 20 May 2018 07:24:31 +0000 Subject: [PATCH] Accepting request 610670 from home:Pharaoh_Atem:pkgconf_SUSE - Update to 1.4.2 + Bug fixes - ensure pkgconf_dependency_t nodes have a solution marked when satisfied by an indirect provider (gh#pkgconf/pkgconf#172) - revert some quoting changes because they don't work well with certain GCC edge cases (gh#pkgconf/pkgconf#168) - Initial packaging based on Fedora and Mageia packaging OBS-URL: https://build.opensuse.org/request/show/610670 OBS-URL: https://build.opensuse.org/package/show/devel:tools/pkgconf?expand=0&rev=1 --- .gitattributes | 23 +++++ .gitignore | 1 + pkgconf-1.4.2.tar.xz | 3 + pkgconf.changes | 14 +++ pkgconf.spec | 205 +++++++++++++++++++++++++++++++++++++++++ platform-pkg-config.in | 12 +++ 6 files changed, 258 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 pkgconf-1.4.2.tar.xz create mode 100644 pkgconf.changes create mode 100644 pkgconf.spec create mode 100644 platform-pkg-config.in diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/pkgconf-1.4.2.tar.xz b/pkgconf-1.4.2.tar.xz new file mode 100644 index 0000000..2ca3254 --- /dev/null +++ b/pkgconf-1.4.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bab39371d4ab972be1d539a8b10b6cc21f8eafc97f617102e667e82bd32eb234 +size 285548 diff --git a/pkgconf.changes b/pkgconf.changes new file mode 100644 index 0000000..b945ec5 --- /dev/null +++ b/pkgconf.changes @@ -0,0 +1,14 @@ +------------------------------------------------------------------- +Sun May 20 01:32:46 UTC 2018 - Neal Gompa + +- Update to 1.4.2 + + Bug fixes + - ensure pkgconf_dependency_t nodes have a solution marked + when satisfied by an indirect provider (gh#pkgconf/pkgconf#172) + - revert some quoting changes because they don't work well + with certain GCC edge cases (gh#pkgconf/pkgconf#168) + +------------------------------------------------------------------- +Mon Feb 19 15:56:36 UTC 2018 - Neal Gompa + +- Initial packaging based on Fedora and Mageia packaging diff --git a/pkgconf.spec b/pkgconf.spec new file mode 100644 index 0000000..7423305 --- /dev/null +++ b/pkgconf.spec @@ -0,0 +1,205 @@ +# +# 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.2 +Release: 0 +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 diff --git a/platform-pkg-config.in b/platform-pkg-config.in new file mode 100644 index 0000000..adb2ad0 --- /dev/null +++ b/platform-pkg-config.in @@ -0,0 +1,12 @@ +#!/bin/bash + +# Simple wrapper to tell pkgconf to behave as a platform-specific version of pkg-config +# Platform: @TARGET_PLATFORM@ + +export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR:-@PKGCONF_LIBDIRS@}" +export PKG_CONFIG_SYSTEM_LIBRARY_PATH="${PKG_CONFIG_SYSTEM_LIBRARY_PATH:-@PKGCONF_SYSLIBDIR@}" +export PKG_CONFIG_SYSTEM_INCLUDE_PATH="${PKG_CONFIG_SYSTEM_INCLUDE_PATH:-@PKGCONF_SYSINCDIR@}" + +pkgconf $@ + +exit $?