Accepting request 535170 from Base:System

- Update to version 2.3.3
  Shipping and new DellEMC systems may use dell_rbu driver to
  perform BIOS updates on the system.
  [fate#322804]

OBS-URL: https://build.opensuse.org/request/show/535170
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libsmbios?expand=0&rev=38
This commit is contained in:
Dominique Leuenberger 2017-10-28 12:16:58 +00:00 committed by Git OBS Bridge
commit 0a030a68e5
4 changed files with 333 additions and 145 deletions

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Fri Sep 22 13:09:57 UTC 2017 - josef.moellers@suse.com
- Update to version 2.3.3
Shipping and new DellEMC systems may use dell_rbu driver to
perform BIOS updates on the system.
[fate#322804]
-------------------------------------------------------------------
Thu Mar 2 14:08:43 UTC 2017 - fschnizlein@suse.com

View File

@ -1,7 +1,7 @@
#
# spec file for package libsmbios
#
# Copyright (c) 2017 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2017 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
@ -16,82 +16,164 @@
#
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
# these are all substituted by autoconf
%define major 2
%define minor 3
%define micro 3
%define extra %{nil}
%define pot_file libsmbios
%define lang_dom libsmbios-2.3-x86_64
%define release_version 2.3.3
Name: libsmbios
Version: 2.3.2
Release: 0
Summary: Libraries to get information from standard BIOS tables
%define release_name libsmbios
%define other_name libsmbios2
# %%if 0%%{?suse_version}
# %%define release_name libsmbios2
# %%define other_name libsmbios
# %%endif
%{!?build_python: %define build_python 1}
%{?_with_python: %define build_python 1}
%{?_without_python: %undefine build_python}
# run_unit_tests not defined by default as cppunit
# not available in OS on several major OS
%{?_without_unit_tests: %undefine run_unit_tests}
%{?_with_unit_tests: %define run_unit_tests 1}
%{!?as_needed: %define as_needed 1}
%{?_without_as_needed: %undefine as_needed}
%{?_with_as_needed: %define as_needed 1}
# some distros already have fdupes macro. If not, we just set it to something innocuous
%{?!fdupes: %define fdupes /usr/sbin/hardlink -c -v}
%define cppunit_BR cppunit-devel
%define pkgconfig_BR pkgconfig
%define ctypes_BR python-ctypes
%define fdupes_BR hardlink
%define valgrind_BR valgrind
# Some variable definitions so that we can be compatible between SUSE Build service and Fedora build system
# SUSE: fedora_version suse_version rhel_version centos_version sles_version
# Fedora: fedora dist fc8 fc9
# suse/sles
%if 0%{?suse_version}
%if 0%{?suse_version} < 1000
%define valgrind_BR %{nil}
# sles 9 doesnt have as_needed
%undefine as_needed
%endif
%if 0%{?suse_version} >= 1020
# suse never added python-ctypes provides to python 2.5 :(
%define ctypes_BR %{nil}
%endif
%if 0%{?suse_version} > 1020
%define fdupes_BR fdupes
%else
%define fdupes_BR %{nil}
%define fdupes echo fdupes disabled
%endif
%endif
# rhel (should work on OBS and EPEL)
%if 0%{?rhel}
%if 0%{?rhel} < 5
%define fdupes echo fdupes disabled
%define fdupes_BR %{nil}
%endif
%if 0%{?rhel} < 4
# dont yet have rhel3 valgrind
%define valgrind_BR %{nil}
# no python-ctypes for python <= 2.2
%undefine build_python
# rhel3 doesnt have -as-needed
%undefine as_needed
%endif
%endif
%define python_devel_BR %{nil}
%if 0%{?build_python}
%define python_devel_BR python-devel
# per fedora and suse python packaging guidelines
# suse: will define py_sitedir for us
# fedora: use the !? code below to define when it isnt already
# pure python stuff goes here
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
# arch-dep python stuff goes here
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%endif
# if unit tests are disabled, get rid of a few BuildRequires
%{!?run_unit_tests: %define cppunit_BR %{nil}}
%{!?run_unit_tests: %define valgrind_BR %{nil}}
Name: %{release_name}
Version: 2.3.3
Release: 3%{?dist}
Summary: Libsmbios C/C++ shared libraries
License: GPL-2.0+ or OSL-2.1
Group: System/Management
Group: System Environment/Libraries
Url: https://github.com/dell/libsmbios
Source0: https://github.com/dell/libsmbios/archive/v%{version}.tar.gz
Source: https://github.com/dell/libsmbios/archive/v%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: autogen
BuildRequires: automake
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: libcppunit-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: python-base
BuildRequires: pkgconfig(libxml-2.0)
# Modules: dcdbas.ko
Supplements: modalias(dmi:*:[bs]vnD[Ee][Ll][Ll]*:*)
# Generated with: extract-modaliases dcdbas
# libsmbios only ever makes sense on intel compatible arches, no DMI tables on ppc, s390, etc.
ExclusiveArch: ia64 %{ix86} x86_64
BuildRequires: strace libxml2-devel gcc-c++ gettext doxygen %{valgrind_BR} %{cppunit_BR} %{fdupes_BR} %{pkgconfig_BR} %{python_devel_BR}
# uncomment for official fedora
Obsoletes: libsmbios-libs < 2.0.0
Provides: libsmbios-libs = 0:%{version}-%{release}
Obsoletes: %{other_name} <= 0:%{version}-%{release}
Provides: %{other_name} = 0:%{version}-%{release}
# libsmbios only ever makes sense on intel compatible arches
# no DMI tables on ppc, s390, etc.
ExclusiveArch: x86_64 ia64 %{ix86}
%description
Libsmbios is a library and utilities that can be used by client programs
to get information from standard BIOS tables, such as the SMBIOS table.
%package devel
Summary: Development files for libsmios
Group: Development/Libraries/C and C++
Requires: libsmbios2 = %{version}
Requires: libstdc++-devel
%description devel
Libsmbios is a library and utilities that can be used by client programs to get
information from standard BIOS tables, such as the SMBIOS table.
This package contains the necessary files to compile new client programs
against libsmbios.
This package provides the C-based libsmbios library, with a C interface.
%package -n libsmbios2
Summary: Libraries to get information from standard BIOS tables
Group: System/Management
Supplements: modalias(dmi:*:[bs]vnD[Ee][Ll][Ll]*:*)
This package also has a C++-based library, with a C++ interface. It is not
actively maintained, but provided for backwards compatibility. New programs
should use the libsmbios C interface.
%description -n libsmbios2
Libsmbios is a library and utilities that can be used by client programs
to get information from standard BIOS tables, such as the SMBIOS table.
%package -n python-smbios
Summary: Python interface to Libsmbios C library
Group: Development/Libraries/Python
Requires: libsmbios2 = %{version}
Supplements: modalias(dmi:*:[bs]vnD[Ee][Ll][Ll]*:*)
%if %{?suse_version: 0%{?suse_version} > 1110} %{!?suse_version:1}
BuildArch: noarch
%endif
Group: System Environment/Libraries
Requires: %{release_name} = %{version}-%{release}
Requires: python %{ctypes_BR}
%description -n python-smbios
This package provides a Python interface to libsmbios.
This package provides a Python interface to libsmbios
%package -n smbios-utils
Summary: Meta-package that pulls in all smbios binaries and python scripts
Group: Applications/System
Requires: smbios-utils-bin
%if 0%{?build_python}
Requires: smbios-utils-python
%endif
Obsoletes: libsmbios-bin < 0:2.0.0
Provides: libsmbios-bin = %{version}-%{release}
Obsoletes: libsmbios-unsupported-bin < 0:2.0.0
Provides: libsmbios-unsupported-bin = %{version}-%{release}
%description -n smbios-utils
This is a meta-package that pulls in the binary libsmbios executables as well
as the python executables.
%package -n smbios-utils-bin
Summary: Binary utilities that use libsmbios
Group: System/Management
Supplements: modalias(dmi:*:[bs]vnD[Ee][Ll][Ll]*:*)
# libsmbios-unsupported-bin was last used in openSUSE 11.4 (libsmbios-unsupported-bin-2.0.2)
Obsoletes: libsmbios-unsupported-bin <= 2.0.2
Provides: libsmbios-unsupported-bin = %{version}
Group: Applications/System
Requires: %{release_name} = %{version}-%{release}
%description -n smbios-utils-bin
Get BIOS information, such as System product name, product id, service tag and
@ -99,12 +181,8 @@ asset tag.
%package -n smbios-utils-python
Summary: Python executables that use libsmbios
Group: System/Management
Requires: python-smbios = %{version}
Supplements: modalias(dmi:*:[bs]vnD[Ee][Ll][Ll]*:*)
# libsmbios-bin was last used in openSUSE 11.4 (libsmbios-bin-2.0.2)
Obsoletes: libsmbios-bin <= 2.0.2
Provides: libsmbios-bin = %{version}
Group: Applications/System
Requires: python-smbios = %{version}-%{release}
%description -n smbios-utils-python
Get BIOS information, such as System product name, product id, service tag and
@ -112,11 +190,26 @@ asset tag. Set service and asset tags on Dell machines. Manipulate wireless
cards/bluetooth on Dell laptops. Set BIOS password on select Dell systems.
Update BIOS on select Dell systems. Set LCD brightness on select Dell laptops.
# name the devel package libsmbios-devel regardless of package name, per suse/fedora convention
%package -n libsmbios-devel
Summary: Development headers and archives
Group: Development/Libraries
Requires: %{release_name} = %{version}-%{release}
Provides: libsmbios2-devel = %{version}-%{release}
Obsoletes: libsmbios2-devel < %{version}-%{release}
%description -n libsmbios-devel
Libsmbios is a library and utilities that can be used by client programs to get
information from standard BIOS tables, such as the SMBIOS table.
This package contains the headers and .a files necessary to compile new client
programs against libsmbios.
%package -n yum-dellsysid
Summary: YUM plugin to retrieve the Dell System ID
Group: System/Packages
Requires: smbios-utils-python = %{version}
Requires: yum
# yum plugin and supporting functions first appeared in 2.2.0
Group: Development/Tools
Requires: smbios-utils-python >= 2.2.0
%description -n yum-dellsysid
Libsmbios is a library and utilities that can be used by client programs to get
@ -125,119 +218,206 @@ information from standard BIOS tables, such as the SMBIOS table.
This package contains a YUM plugin which allows the use of certain
substitutions in yum repository configuration files on Dell systems.
%prep
%setup -q
: '########################################'
: '########################################'
: '#'
: '# build_python: %{?build_python}'
: '# run_unit_tests: %{?run_unit_tests}'
: '# rhel: %{?rhel}'
: '# suse_version: %{?suse_version}'
: '#'
: '########################################'
: '########################################'
%setup -q -n libsmbios-%{version}
find . -type d -exec chmod -f 755 {} \;
find doc src -type f -exec chmod -f 644 {} \;
find ./src/cppunit/ -name "*.sh" -type f -exec chmod 755 '{}' \;
%build
./autogen.sh
%configure --disable-rpath
# this line lets us build an RPM directly from a git tarball
# and retains any customized version information we might have
[ -e ./configure ] || ./autogen.sh --no-configure
make %{?_smp_mflags}
mkdir _build
cd _build
echo '../configure "$@"' > configure
chmod +x ./configure
%configure \
%{?!as_needed:--disable-as-needed} %{?!build_python:--disable-python} \
--enable-libsmbios_cxx
mkdir -p out/libsmbios_c
mkdir -p out/libsmbios_c++
make CFLAGS="-Werror" %{?_smp_mflags} 2>&1 | tee build-%{_arch}.log
echo \%doc _build/build-%{_arch}.log > buildlogs.txt
%check
runtest() {
mkdir _$1$2
%if 0%{?run_unit_tests}
pushd _$1$2
../configure
make -e $1 CFLAGS="$CFLAGS -DDEBUG_OUTPUT_ALL" 2>&1 | tee $1$2.log
touch -r ../configure.ac $1$2-%{_arch}.log
make -e $1 2>&1 | tee $1$2.log
popd
echo \%doc _$1$2/$1$2-%{_arch}.log >> _build/buildlogs.txt
%endif
}
if [ -d /usr/include/cppunit ]; then
# run this first since it is slightly faster than valgrind
VALGRIND="strace -f" runtest check strace > /dev/null || echo FAILED strace check
fi
if [ -e /usr/bin/valgrind -a -d /usr/include/cppunit ]; then
runtest valgrind > /dev/null || echo FAILED valgrind check
fi
if [ -d /usr/include/cppunit ]; then
runtest check > /dev/null || echo FAILED check
fi
if [ ! -d /usr/include/cppunit ]; then
echo "Unit tests skipped due to missing cppunit."
fi
%install
%make_install
rm -rf %{buildroot}
mkdir %{buildroot}
# Install headers
install -dp -m 0755 %{buildroot}%{_includedir}
cp -a src/include/* %{buildroot}/%{_includedir}/
cp -a out/public-include/* %{buildroot}/%{_includedir}/
find %{buildroot}/%{_includedir} out/libsmbios_c++ out/libsmbios_c -exec touch -r configure.ac {} \;
# Remove *.la files (package provides pkg-config files), remove static libraries
cd _build
TOPDIR=..
make install DESTDIR=%{buildroot} INSTALL="%{__install} -p"
mkdir -p %{buildroot}/%{_includedir}
mkdir -p %{buildroot}/%{_bindir}
cp -a $TOPDIR/src/include/* %{buildroot}/%{_includedir}/
cp -a out/public-include/* %{buildroot}/%{_includedir}/
rm -f %{buildroot}/%{_libdir}/lib*.{la,a}
find %{buildroot}/%{_includedir} out/libsmbios_c++ out/libsmbios_c -exec touch -r $TOPDIR/configure.ac {} \;
# Prepare doc files for devel package
mv out/libsmbios_c out/libsmbios_c-%{_arch}
mv out/libsmbios_c++ out/libsmbios_c++-%{_arch}
mv out/libsmbios_c++ out/libsmbios_c++-%{_arch}
mv out/libsmbios_c out/libsmbios_c-%{_arch}
# Manually install the doc files for the devel package in order to fix duplicates with "fdupes -s"
install -dp -m 0755 %{buildroot}%{_defaultdocdir}/%{name}-devel
cp -a COPYING COPYING-GPL COPYING-OSL NEWS README TODO %{buildroot}%{_defaultdocdir}/%{name}-devel/
cp -a src/bin/getopts_LICENSE.txt src/include/smbios/config/boost_LICENSE_1_0_txt %{buildroot}%{_defaultdocdir}/%{name}-devel/
cp -a out/libsmbios_c-%{_arch} %{buildroot}%{_defaultdocdir}/%{name}-devel/
cp -a out/libsmbios_c++-%{_arch} %{buildroot}%{_defaultdocdir}/%{name}-devel/
rename %{pot_file}.mo %{lang_dom}.mo $(find %{buildroot}/%{_datadir} -name %{pot_file}.mo)
%find_lang %{lang_dom}
#
rename libsmbios.mo libsmbios-2.2-x86_64.mo $(find %{buildroot}/%{_datadir} -name libsmbios.mo)
touch files-yum-dellsysid
touch files-smbios-utils-python
touch files-python-smbios
# Remove unneeded locales
%if 0%{?suse_version} && 0%{?suse_version} < 1140
rm -rf %{buildroot}%{_datadir}/locale/en/
rm -rf %{buildroot}%{_datadir}/locale/en@boldquot/
rm -rf %{buildroot}%{_datadir}/locale/en@quot/
%if 0%{?build_python}
# backwards compatible:
ln -s %{_sbindir}/dellWirelessCtl %{buildroot}/%{_bindir}/dellWirelessCtl
ln -s smbios-sys-info %{buildroot}/%{_sbindir}/getSystemId
ln -s smbios-wireless-ctl %{buildroot}/%{_sbindir}/dellWirelessCtl
ln -s smbios-lcd-brightness %{buildroot}/%{_sbindir}/dellLcdBrightness
cat > files-python-smbios <<-EOF
%doc COPYING-GPL COPYING-OSL
%{python_sitelib}/*
EOF
cat > files-smbios-utils-python <<-EOF
%doc COPYING-GPL COPYING-OSL
%doc src/bin/getopts_LICENSE.txt src/include/smbios/config/boost_LICENSE_1_0_txt
%dir %{_sysconfdir}/libsmbios
%config(noreplace) %{_sysconfdir}/libsmbios/*
# python utilities
%{_sbindir}/smbios-sys-info
%{_sbindir}/smbios-token-ctl
%{_sbindir}/smbios-passwd
%{_sbindir}/smbios-wakeup-ctl
%{_sbindir}/smbios-wireless-ctl
%{_sbindir}/smbios-lcd-brightness
# %%{_sbindir}/smbios-keyboard-ctl
# %%{_sbindir}/smbios-thermal-ctl
%{_sbindir}/smbios-battery-ctl
# used by HAL in old location, so keep it around until HAL is updated.
%{_sbindir}/dellLEDCtl
%{_sbindir}/dellLcdBrightness
%{_sbindir}/dellMediaDirectCtl
%{_sbindir}/getSystemId
%{_sbindir}/dellWirelessCtl
%{_bindir}/dellWirelessCtl
# data files
%{_datadir}/smbios-utils
EOF
cat > files-yum-dellsysid <<-EOF
%doc COPYING-GPL COPYING-OSL
# YUM Plugin
%config(noreplace) %{_sysconfdir}/yum/pluginconf.d/*
%{_exec_prefix}/lib/yum-plugins/*
# SUSE build has anal directory ownership check. RPM which owns all dirs *must*
# be installed at buildtime.
%if 0%{?suse_version} >= 1100
%dir %{_sysconfdir}/yum
%dir %{_sysconfdir}/yum/pluginconf.d/
%dir %{_exec_prefix}/lib/yum-plugins/
%endif
EOF
%endif
%find_lang %{name}-2.2-x86_64
%fdupes -s %{buildroot}
# hardlink files to save some space.
%fdupes $RPM_BUILD_ROOT
%clean
rm -rf %{buildroot}
%post -n libsmbios2 -p /sbin/ldconfig
%post -n %{release_name} -p /sbin/ldconfig
%postun -n %{release_name} -p /sbin/ldconfig
%postun -n libsmbios2 -p /sbin/ldconfig
%files devel
%files -f _build/%{lang_dom}.lang
%defattr(-,root,root,-)
%doc %{_defaultdocdir}/%{name}-devel/
%{_includedir}/smbios/
%{_includedir}/smbios_c/
%{_libdir}/libsmbios_c.so.*
%{_libdir}/libsmbios.so.*
%files -n libsmbios-devel -f _build/buildlogs.txt
%defattr(-,root,root,-)
%doc COPYING-GPL COPYING-OSL src/bin/getopts_LICENSE.txt src/include/smbios/config/boost_LICENSE_1_0_txt
%{_includedir}/smbios
%{_includedir}/smbios_c
%{_libdir}/libsmbios.so
%{_libdir}/libsmbios_c.so
%{_libdir}/pkgconfig/libsmbios_c*.pc
%{_libdir}/pkgconfig/*.pc
%doc _build/out/libsmbios_c++-%{_arch}
%doc _build/out/libsmbios_c-%{_arch}
%files -n libsmbios2 -f %{name}-2.2-x86_64.lang
%files -n smbios-utils
# opensuse 11.1 enforces non-empty file list :(
%defattr(-,root,root,-)
%{_libdir}/libsmbios.so.2*
%{_libdir}/libsmbios_c.so.2*
%files -n python-smbios
%defattr(-,root,root,-)
%doc COPYING-GPL COPYING-OSL NEWS README TODO
%{python_sitelib}/libsmbios_c/
%doc COPYING-GPL COPYING-OSL
# no other files.
%files -n smbios-utils-bin
%defattr(-,root,root,-)
%doc COPYING-GPL COPYING-OSL NEWS README TODO
%defattr(555,root,root,-)
# legacy C++
%{_sbindir}/dellLEDCtl
%ifnarch ia64
%{_sbindir}/dellMediaDirectCtl
%endif
%doc COPYING-GPL COPYING-OSL
%doc src/bin/getopts_LICENSE.txt src/include/smbios/config/boost_LICENSE_1_0_txt
# new C utilities
%{_sbindir}/smbios-get-ut-data
%{_sbindir}/smbios-state-byte-ctl
%{_sbindir}/smbios-sys-info-lite
%{_sbindir}/smbios-get-ut-data
%{_sbindir}/smbios-upflag-ctl
%{_sbindir}/smbios-sys-info-lite
%{_sbindir}/smbios-keyboard-ctl
%{_sbindir}/smbios-thermal-ctl
%files -n smbios-utils-python
%files -n python-smbios -f _build/files-python-smbios
%defattr(-,root,root,-)
%doc COPYING-GPL COPYING-OSL NEWS README TODO
%dir %{_sysconfdir}/libsmbios
%config(noreplace) %{_sysconfdir}/libsmbios/*
%defattr(555,root,root,-)
# python utilities
%{_sbindir}/smbios-lcd-brightness
%{_sbindir}/smbios-passwd
%{_sbindir}/smbios-battery-ctl
%{_sbindir}/smbios-sys-info
%{_sbindir}/smbios-token-ctl
%{_sbindir}/smbios-wakeup-ctl
%{_sbindir}/smbios-wireless-ctl
%defattr(-,root,root,-)
%{_datadir}/smbios-utils/
%files -n yum-dellsysid
%files -n smbios-utils-python -f _build/files-smbios-utils-python
%defattr(-,root,root,-)
%files -n yum-dellsysid -f _build/files-yum-dellsysid
%defattr(-,root,root,-)
%doc COPYING-GPL COPYING-OSL NEWS README TODO
%dir %{_sysconfdir}/yum
%dir %{_sysconfdir}/yum/pluginconf.d
%config(noreplace) %{_sysconfdir}/yum/pluginconf.d/dellsysid.conf
%dir %{_exec_prefix}/lib/yum-plugins
%{_exec_prefix}/lib/yum-plugins/dellsysid.*
%changelog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:527874a2abad8f8a9320eeb6b5dd11b6d5b8fff6cdc90bb0f757c39da519714f
size 800862

3
v2.3.3.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:272ba8c9fa4a468938b8fa81b23a09c72acc97371f3be7c882bb222c1ae7157d
size 801164