elfutils/elfutils.spec

257 lines
8.0 KiB
RPMSpec
Raw Normal View History

#
# spec file for package elfutils
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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/
#
Name: elfutils
Version: 0.167
Release: 0
Summary: Higher-level library to access ELF
License: SUSE-GPL-2.0-with-OSI-exception
Group: Development/Tools/Building
Url: http://fedorahosted.org/elfutils/
#Git-Clone: git://git.fedorahosted.org/git/elfutils
Source: https://fedorahosted.org/releases/e/l/%{name}/%{version}/%{name}-%{version}.tar.bz2
Source4: https://fedorahosted.org/releases/e/l/%{name}/%{version}/%{name}-%{version}.tar.bz2.sig
Source1: README-BEFORE-ADDING-PATCHES
Source2: baselibs.conf
Source3: %{name}.changes
Patch1: elfutils-0.137-dwarf-header-check-fix.diff
Patch2: disable-tests-with-ptrace.patch
Patch3: 0001-Add-GCC7-Wimplicit-fallthrough-support-fixes.patch
Patch4: 0001-ar-Fix-GCC7-Wformat-length-issues.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
BuildRequires: flex
BuildRequires: libbz2-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
Recommends: %{name}.lang
%description
This package provides a higher-level library to access ELF files. This
is a part of elfutils package.
%package -n libasm1
Summary: A collection of utilities and DSOs to handle compiled objects
Group: System/Libraries
%description -n libasm1
Elfutils is a collection of utilities, including nm (for
listing symbols from object files), size (for listing the section sizes
of an object or archive file), strip (for discarding symbols), readline
(the see the raw ELF file structures), and elflint (to check for
well-formed ELF files). Also included are numerous helper libraries
which implement DWARF, ELF, and machine-specific ELF handling.
%package -n libasm-devel
Summary: A collection of utilities and DSOs to handle compiled objects
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libasm1 = %{version}
%description -n libasm-devel
Elfutils is a collection of utilities, including nm (for
listing symbols from object files), size (for listing the section sizes
of an object or archive file), strip (for discarding symbols), readline
(the see the raw ELF file structures), and elflint (to check for
well-formed ELF files). Also included are numerous helper libraries
which implement DWARF, ELF, and machine-specific ELF handling.
%package -n libebl1
Summary: A collection of utilities and DSOs to handle compiled objects
Group: System/Libraries
Provides: libebl = %{version}
Obsoletes: libebl < %{version}
%description -n libebl1
Elfutils is a collection of utilities, including nm (for
listing symbols from object files), size (for listing the section sizes
of an object or archive file), strip (for discarding symbols), readline
(the see the raw ELF file structures), and elflint (to check for
well-formed ELF files). Also included are numerous helper libraries
which implement DWARF, ELF, and machine-specific ELF handling.
%package -n libebl-devel
Summary: Include Files and Libraries mandatory for Development
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libdw-devel = %{version}
Requires: libebl1 = %{version}
%description -n libebl-devel
This package contains all necessary include files and libraries needed
to develop applications that require these.
%package -n libelf1
Summary: Library to read and write ELF files
Group: System/Libraries
%description -n libelf1
This package provides a high-level library to read and write ELF files.
This is a part of elfutils package.
%package -n libelf-devel
Summary: Include Files and Libraries mandatory for Development
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libelf1 = %{version}
Conflicts: libelf0-devel
%description -n libelf-devel
This package contains all necessary include files and libraries needed
to develop applications that require these.
%package -n libdw1
Summary: Library to access DWARF debugging information
Group: System/Libraries
%description -n libdw1
This package provides a high-level library to access the DWARF debugging
information. This is a part of elfutils package.
%package -n libdw-devel
Summary: Include Files and Libraries mandatory for Development
Group: Development/Libraries/C and C++
Requires: glibc-devel
Requires: libdw1 = %{version}
Requires: libelf-devel = %{version}
%description -n libdw-devel
This package contains all necessary include files and libraries needed
to develop applications that require these.
%lang_package
%prep
%setup -q
%patch1 -p1
%if 0%{?qemu_user_space_build}
# qemu does not support ptrace
%patch2 -p1
%endif
%patch3 -p1
%patch4 -p1
%build
# Change DATE/TIME macros to use last change time of elfutils.changes
# See http://lists.opensuse.org/opensuse-factory/2011-05/msg00304.html
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -type f -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
# Set modversion used to verify dynamically loaded ebl backend matches to
# similarly predictable value [upstream default is hostname + date]
MODVERSION="suse-build `eval echo ${DATE} ${TIME}`"
sed --in-place "s/^MODVERSION=.*\$/MODVERSION=\"${MODVERSION}\"/" configure.ac
%ifarch %sparc
# Small PIC model not sufficient
export CFLAGS="%optflags -fPIC"
%endif
autoreconf -fi
%configure --program-prefix=eu-
make %{?_smp_mflags}
%install
make DESTDIR=$RPM_BUILD_ROOT install
# remove unneeded files
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
ls -lR $RPM_BUILD_ROOT%{_libdir}/libelf*
%find_lang %{name}
%post -n libebl1 -p /sbin/ldconfig
%post -n libelf1 -p /sbin/ldconfig
%post -n libdw1 -p /sbin/ldconfig
%postun -n libebl1 -p /sbin/ldconfig
%postun -n libelf1 -p /sbin/ldconfig
%postun -n libdw1 -p /sbin/ldconfig
%check
make check
%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING NEWS NOTES README THANKS TODO
%{_bindir}/*
%files -n libasm1
%defattr(-,root,root)
%{_libdir}/libasm.so.*
%{_libdir}/libasm-%{version}.so
%files -n libasm-devel
%defattr(-,root,root)
%{_libdir}/libasm.so
%{_libdir}/libasm.a
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/libasm.h
%files -n libebl1
%defattr(-,root,root)
%{_libdir}/elfutils
%files -n libebl-devel
%defattr(-,root,root)
%{_libdir}/libebl.a
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/libebl.h
%files -n libelf1
%defattr(-,root,root)
%{_libdir}/libelf.so.*
%{_libdir}/libelf-%{version}.so
%files -n libelf-devel
%defattr(-,root,root)
%{_libdir}/libelf.so
%{_libdir}/libelf.a
%{_includedir}/libelf.h
%{_includedir}/gelf.h
%{_includedir}/nlist.h
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/elf-knowledge.h
%{_includedir}/elfutils/version.h
%{_libdir}/pkgconfig/libelf.pc
%files -n libdw1
%defattr(-,root,root)
%{_libdir}/libdw.so.*
%{_libdir}/libdw-%{version}.so
%files -n libdw-devel
%defattr(-,root,root)
%{_libdir}/libdw.a
%{_libdir}/libdw.so
%{_includedir}/dwarf.h
%dir %{_includedir}/elfutils
%{_includedir}/elfutils/libdw.h
%{_includedir}/elfutils/libdwelf.h
%{_includedir}/elfutils/libdwfl.h
%{_includedir}/elfutils/known-dwarf.h
%{_libdir}/pkgconfig/libdw.pc
%files lang -f %{name}.lang
%changelog