From c84133212cb858aee5510e7117a17e24a76b122b8ba91125b3422cf1305f211d Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Sat, 7 Oct 2017 10:08:23 +0000 Subject: [PATCH] Accepting request 528620 from home:jmoellers:branches:Base:System OBS-URL: https://build.opensuse.org/request/show/528620 OBS-URL: https://build.opensuse.org/package/show/Base:System/libsmbios?expand=0&rev=26 --- libsmbios-2.3.3.tar.bz2 | 3 + libsmbios.changes | 8 + libsmbios.spec | 464 ++++++++++++++++++++++++++++------------ v2.3.2.tar.gz | 3 - 4 files changed, 333 insertions(+), 145 deletions(-) create mode 100644 libsmbios-2.3.3.tar.bz2 delete mode 100644 v2.3.2.tar.gz diff --git a/libsmbios-2.3.3.tar.bz2 b/libsmbios-2.3.3.tar.bz2 new file mode 100644 index 0000000..7a6f753 --- /dev/null +++ b/libsmbios-2.3.3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2b5ae59354f8c5ba1f7e3a25cf8780c1bdc0282399258bd31fe6463933b0ba5 +size 611534 diff --git a/libsmbios.changes b/libsmbios.changes index 7cc447e..20de4f1 100644 --- a/libsmbios.changes +++ b/libsmbios.changes @@ -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 diff --git a/libsmbios.spec b/libsmbios.spec index e4e7211..88d76ae 100644 --- a/libsmbios.spec +++ b/libsmbios.spec @@ -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 - -Url: https://github.com/dell/libsmbios -Source0: https://github.com/dell/libsmbios/archive/v%{version}.tar.gz +Group: System Environment/Libraries +Source: http://linux.dell.com/libsmbios/download/libsmbios/libsmbios-%{version}/libsmbios-%{version}.tar.bz2 +Url: http://linux.dell.com/libsmbios/main 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 +Group: Development/Tools +# yum plugin and supporting functions first appeared in 2.2.0 +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 diff --git a/v2.3.2.tar.gz b/v2.3.2.tar.gz deleted file mode 100644 index acc975b..0000000 --- a/v2.3.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:527874a2abad8f8a9320eeb6b5dd11b6d5b8fff6cdc90bb0f757c39da519714f -size 800862