diff --git a/.gitattributes b/.gitattributes
index 9b03811..d850095 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -21,3 +21,5 @@
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
+## Specific LFS patterns
+libsafec-patches.tar filter=lfs diff=lfs merge=lfs -text
diff --git a/ChangeLog.xz b/ChangeLog.xz
new file mode 100644
index 0000000..57a5ffe
--- /dev/null
+++ b/ChangeLog.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:25967dbca09c632b4c2155cf913204c4d93b8642d3ebda3fe6c1677ddc6feb92
+size 30552
diff --git a/_service b/_service
new file mode 100644
index 0000000..088348d
--- /dev/null
+++ b/_service
@@ -0,0 +1,15 @@
+
+
+ git
+ https://github.com/intel/ipmctl.git
+ ipmctl
+ 01.00.00.3394
+ master_1_0
+ .git
+ enable
+
+
+ ipmctl*.tar
+ gz
+
+
diff --git a/_servicedata b/_servicedata
new file mode 100644
index 0000000..162a04b
--- /dev/null
+++ b/_servicedata
@@ -0,0 +1,4 @@
+
+
+ https://github.com/intel/ipmctl.git
+ b7a59dac174c4e8c5d1d15300b413eba274ea345
diff --git a/ipmctl-01.00.00.3102.tar.gz b/ipmctl-01.00.00.3102.tar.gz
deleted file mode 100644
index 074ce68..0000000
--- a/ipmctl-01.00.00.3102.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:116d67cb3078d301c37dd92ce14d1e5d97bf1f279753f5b6861bef3c3fca4ffd
-size 10342671
diff --git a/ipmctl-01.00.00.3394.1547861714.b7a59da.tar.gz b/ipmctl-01.00.00.3394.1547861714.b7a59da.tar.gz
new file mode 100644
index 0000000..da2afc2
--- /dev/null
+++ b/ipmctl-01.00.00.3394.1547861714.b7a59da.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4857fd0cadbc8d27049aeb08fc03c3a7e74d11863420b1a151b22569a3b55383
+size 10836351
diff --git a/ipmctl-fix-SLE12-build.patch b/ipmctl-fix-SLE12-build.patch
deleted file mode 100644
index f927c43..0000000
--- a/ipmctl-fix-SLE12-build.patch
+++ /dev/null
@@ -1,37 +0,0 @@
----
- CMakeLists.txt | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -113,10 +113,10 @@ if(LNX_BUILD)
- -D_GNU_SOURCE
- -D__LINUX__
- )
-- if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.8)
-+ if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER 4.9)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector-strong")
- endif()
-- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8)
-+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong")
- endif()
- endif()
-@@ -376,6 +376,7 @@ if(MSVC)
- set_target_properties(ipmctl-bin PROPERTIES LINK_FLAGS "/STACK:3000000")
- else()
- target_compile_options(ipmctl-bin PRIVATE "-fPIE")
-+ set_target_properties(ipmctl-bin PROPERTIES LINK_FLAGS "-pie")
- endif()
-
- #---------------------------------------------------------------------------------------------------
-@@ -414,7 +415,8 @@ if (NOT ESX_BUILD)
- )
-
- if(UNIX)
-- target_compile_options(ipmctl-monitor PRIVATE "-fPIE")
-+ target_compile_options(ipmctl-monitor PRIVATE "-fPIE")
-+ set_target_properties(ipmctl-monitor PROPERTIES LINK_FLAGS "-pie")
- endif()
-
- endif()
diff --git a/ipmctl-python3.patch b/ipmctl-python3.patch
new file mode 100644
index 0000000..0b39017
--- /dev/null
+++ b/ipmctl-python3.patch
@@ -0,0 +1,243 @@
+---
+ BaseTools/Bin/CYGWIN_NT-5.1-i686/Ecc | 2 ++
+ BaseTools/Bin/CYGWIN_NT-5.1-i686/GenDepex | 2 ++
+ BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFds | 2 ++
+ BaseTools/Bin/CYGWIN_NT-5.1-i686/TargetTool | 2 ++
+ BaseTools/Bin/CYGWIN_NT-5.1-i686/Trim | 2 ++
+ BaseTools/Bin/CYGWIN_NT-5.1-i686/build | 2 ++
+ BaseTools/BinWrappers/PosixLike/BPDG | 2 ++
+ BaseTools/BinWrappers/PosixLike/Ecc | 2 ++
+ BaseTools/BinWrappers/PosixLike/GenDepex | 2 ++
+ BaseTools/BinWrappers/PosixLike/GenFds | 2 ++
+ BaseTools/BinWrappers/PosixLike/GenPatchPcdTable | 2 ++
+ BaseTools/BinWrappers/PosixLike/PatchPcdValue | 2 ++
+ BaseTools/BinWrappers/PosixLike/Pkcs7Sign | 2 ++
+ BaseTools/BinWrappers/PosixLike/Rsa2048Sha256GenerateKeys | 2 ++
+ BaseTools/BinWrappers/PosixLike/Rsa2048Sha256Sign | 2 ++
+ BaseTools/BinWrappers/PosixLike/TargetTool | 2 ++
+ BaseTools/BinWrappers/PosixLike/Trim | 2 ++
+ BaseTools/BinWrappers/PosixLike/UPT | 2 ++
+ BaseTools/BinWrappers/PosixLike/build | 2 ++
+ BaseTools/Tests/GNUmakefile | 2 +-
+ 21 files changed, 48 insertions(+), 3 deletions(-)
+
+--- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/Ecc
++++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Ecc
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenDepex
++++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenDepex
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFds
++++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/GenFds
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/TargetTool
++++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/TargetTool
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/Trim
++++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Trim
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/Bin/CYGWIN_NT-5.1-i686/build
++++ b/BaseTools/Bin/CYGWIN_NT-5.1-i686/build
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/BPDG
++++ b/BaseTools/BinWrappers/PosixLike/BPDG
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/Ecc
++++ b/BaseTools/BinWrappers/PosixLike/Ecc
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/GenDepex
++++ b/BaseTools/BinWrappers/PosixLike/GenDepex
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/GenFds
++++ b/BaseTools/BinWrappers/PosixLike/GenFds
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/GenPatchPcdTable
++++ b/BaseTools/BinWrappers/PosixLike/GenPatchPcdTable
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/PatchPcdValue
++++ b/BaseTools/BinWrappers/PosixLike/PatchPcdValue
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/Pkcs7Sign
++++ b/BaseTools/BinWrappers/PosixLike/Pkcs7Sign
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256GenerateKeys
++++ b/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256GenerateKeys
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256Sign
++++ b/BaseTools/BinWrappers/PosixLike/Rsa2048Sha256Sign
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/TargetTool
++++ b/BaseTools/BinWrappers/PosixLike/TargetTool
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/Trim
++++ b/BaseTools/BinWrappers/PosixLike/Trim
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/UPT
++++ b/BaseTools/BinWrappers/PosixLike/UPT
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/BinWrappers/PosixLike/build
++++ b/BaseTools/BinWrappers/PosixLike/build
+@@ -4,6 +4,8 @@
+ # If a python2 command is available, use it in preference to python
+ if command -v python2 >/dev/null 2>&1; then
+ python_exe=python2
++elif command -v python3 >/dev/null 2>&1; then
++ python_exe=python3
+ fi
+
+ full_cmd=${BASH_SOURCE:-$0} # see http://mywiki.wooledge.org/BashFAQ/028 for a discussion of why $0 is not a good choice here
+--- a/BaseTools/Tests/GNUmakefile
++++ b/BaseTools/Tests/GNUmakefile
+@@ -14,7 +14,7 @@
+ all: test
+
+ test:
+- @if command -v python2 >/dev/null 2>&1; then python2 RunTests.py; else python RunTests.py; fi
++ @if command -v python2 >/dev/null 2>&1; then python2 RunTests.py; elif command -v python3 >/dev/null 2>&1; then python3 RunTests.py; else python RunTests.py; fi
+
+ clean:
+ find . -name '*.pyc' -exec rm '{}' ';'
diff --git a/ipmctl.changes b/ipmctl.changes
index 7eb2505..f3ec60b 100644
--- a/ipmctl.changes
+++ b/ipmctl.changes
@@ -1,3 +1,16 @@
+-------------------------------------------------------------------
+Fri Jan 21 10:42:00 UTC 2019 - rw@suse.com
+
+- Update to v01.00.00.3394+. [FATE#326756, FATE#326917, FATE#326918]
+ [bsc#1116404, bsc#1091108]
+ Mandatory for current hard- and firmware.
+ (For detailed changes see 'ChangeLog.xz')
+- Integrate SafeC dependency in contrib.
+- Fix remaining unconditional calls to python/python2. [bsc#1111020]
+ (ipmctl-python3.patch)
+- Drop obsoleted patch(es).
+ (ipmctl-fix-SLE12-build.patch)
+
-------------------------------------------------------------------
Wed Oct 17 10:24:17 UTC 2018 - rw@suse.com
@@ -13,7 +26,7 @@ Wed Oct 10 14:28:25 UTC 2018 - rw@suse.com
Fri Aug 10 15:28:34 UTC 2018 - rw@suse.com
- Update to v01.00.00.3102. [FATE#325527]
- (Last release without "safec" dependency.)
+ (Last release without "SafeC" dependency.)
- Refresh ipmctl-fix-SLE12-build.patch.
- Incorporate spec-file improvements proposed by mpluskal.
diff --git a/ipmctl.spec b/ipmctl.spec
index 1076cbc..0572a63 100644
--- a/ipmctl.spec
+++ b/ipmctl.spec
@@ -1,7 +1,7 @@
#
# spec file for package ipmctl
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 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,30 +16,56 @@
#
+%define abi 3
+%define vgit .1547861714.b7a59da
+%define vSafeC 03032018
+%define pSafeC rurban/safeclib/releases/download/v%{vSafeC}
+
Name: ipmctl
-Version: 01.00.00.3102
+Version: 01.00.00.3394
Release: 0
Summary: Utility for managing Intel Optane DC persistent memory modules
License: BSD-3-Clause
Group: System/Management
Url: https://github.com/intel/ipmctl
-Source: https://github.com/intel/ipmctl/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
-Source1: %{name}-rpmlintrc
-Patch1: ipmctl-fix-SLE12-build.patch
+#SIC!e: https://github.com/intel/ipmctl/archive/v%%{version}.tar.gz#/%%{name}-%%{version}.tar.gz
+Source: %{name}-%{version}%{vgit}.tar.gz
+Source1: ChangeLog.xz
+Source2: %{name}-rpmlintrc
+Source10: https://github.com/%{pSafeC}/libsafec-%{vSafeC}.0-g570fa5.tar.gz
+#SIC!e10: libsafec-prebuild.tar.xz
+Source11: mkSafeC
+Source12: libsafec-patches.tar
+Patch1: ipmctl-python3.patch
-Requires: libipmctl2%{?_isa} = %{version}-%{release}
+Recommends: logrotate
%if %{defined pythons}
BuildRequires: %{pythons}
%else
-BuildRequires: python2
+BuildRequires: python
%endif
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: systemd
BuildRequires: systemd-rpm-macros
-BuildRequires: pkgconfig(libndctl)
+BuildRequires: pkgconfig(libndctl) >= 58.2
+# for libsafec
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: gcc
+BuildRequires: libtool
+
Obsoletes: ixpdimm-cli < 01.00.00.3000
+Obsoletes: ixpdimm-data < 01.00.00.3000
+Obsoletes: ixpdimm_sw < 01.00.00.3000
+Obsoletes: lib%{name}2
+Obsoletes: libixpdimm < 01.00.00.3000
+Obsoletes: libixpdimm-cim < 01.00.00.3000
+Obsoletes: libixpdimm-cli < 01.00.00.3000
+Obsoletes: libixpdimm-common < 01.00.00.3000
+Obsoletes: libixpdimm-core < 01.00.00.3000
+
ExclusiveArch: x86_64
%description
@@ -53,53 +79,36 @@ Supports functionality to:
* Track performance of PMMs.
* Debug and troubleshoot PMMs.
-%package -n ipmctl-monitor
+%package monitor
Summary: Daemon for monitoring the status of Intel PMM
Group: System/Monitoring
-Conflicts: libipmctl2%{?_isa} < %{version}-%{release}
%{?systemd_requires}
Obsoletes: ixpdimm-monitor < 01.00.00.3000
-%description -n ipmctl-monitor
+%description monitor
A monitor daemon for monitoring the health and status of Intel Optane DC persistent memory modules
-%package -n libipmctl2
-Summary: Library for Intel PMM management
-Group: System/Libraries
-Requires: %{name}-data
-Obsoletes: ixpdimm-data < 01.00.00.3000
-Obsoletes: ixpdimm_sw < 01.00.00.3000
-Obsoletes: libixpdimm < 01.00.00.3000
-Obsoletes: libixpdimm-cim < 01.00.00.3000
-Obsoletes: libixpdimm-cli < 01.00.00.3000
-Obsoletes: libixpdimm-common < 01.00.00.3000
-Obsoletes: libixpdimm-core < 01.00.00.3000
-
-%description -n libipmctl2
-An Application Programming Interface (API) library for managing Intel Optane DC persistent memory modules.
-
-%package -n %{name}-data
-Summary: Data files for %{name}
-Group: System/Libraries
-
-%description -n ipmctl-data
-Non-versioned files for libipmctl2.
-
-%package -n ipmctl-devel
-Summary: Development packages for libipmctl
+%package devel
+Summary: Development packages for %{name}
Group: Development/Libraries/C and C++
-Requires: libipmctl2 = %{version}
+Requires: %{name} = %{version}
Obsoletes: ixpdimm-devel < 01.00.00.3000
Obsoletes: ixpdimm_sw-devel < 01.00.00.3000
-%description -n ipmctl-devel
+%description devel
API for development of Intel Optane DC persistent memory management utilities.
%prep
-%setup -q -n %{name}-%{version}
+%setup -q -n %{name}-%{version}%{vgit} -a 10
%patch1 -p1
+LICENSE_VIOLATIONS_IN=$(find . -type f -print0 | sort -z |
+ xargs -0r grep -li 'INTEL CONFIDENTIAL' || true)
+[ -z "$LICENSE_VIOLATIONS_IN" ]
+
%build
+/bin/bash -ex "%{SOURCE11}" "%{SOURCE12}" "%{?_smp_mflags}"
+export PKG_CONFIG_PATH=$PWD/contrib/lib/pkgconfig
%cmake -DBUILDNUM=%{version} -DCMAKE_INSTALL_PREFIX=/ \
-DLINUX_PRODUCT_NAME=%{name} \
-DCMAKE_INSTALL_LIBDIR=%{_libdir} \
@@ -117,54 +126,56 @@ API for development of Intel Optane DC persistent memory management utilities.
%install
%cmake_install
mkdir -p %{buildroot}%{_sbindir}
-ln -sf service %{buildroot}%{_sbindir}/rcipmctl-monitor
+ln -sf service %{buildroot}%{_sbindir}/rc%{name}-monitor
+rm -f %{buildroot}%{_datadir}/doc/ipmctl/ipmctl_default.conf
+rm -f %{buildroot}%{_libdir}/*.so.%{abi}
+install -m 444 -p "%{SOURCE1}" .
-%post -n libipmctl2 -p /sbin/ldconfig
+%post -p /sbin/ldconfig
-%postun -n libipmctl2 -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
-%pre -n ipmctl-monitor
+%pre monitor
%service_add_pre ipmctl-monitor.service
-%post -n ipmctl-monitor
+%post monitor
%service_add_post ipmctl-monitor.service
-%preun -n ipmctl-monitor
+%preun monitor
%service_del_preun ipmctl-monitor.service
-%postun -n ipmctl-monitor
+%postun monitor
%service_del_postun ipmctl-monitor.service
%files
%defattr(-,root,root)
-%license LICENSE
-%{_bindir}/ipmctl
+%license LICENSE contrib/COPYING.*
+%doc README.md CONTRIBUTING.md Documentation/ipmctl/ipmctl.txt
+%doc ChangeLog.xz
+%{_bindir}/%{name}
-%files -n ipmctl-monitor
+#files data
+%doc output/release/%{name}_default.conf
+%config %{_sysconfdir}/%{name}.conf
+%config %{_sysconfdir}/logrotate.d/%{name}
+%dir %{_localstatedir}/log/%{name}
+#files -n lib%%{name}%%{abi}
+%{_libdir}/lib%{name}.so.%{abi}.*
+
+%files monitor
%defattr(-,root,root)
%license LICENSE
-%{_bindir}/ipmctl-monitor
-%{_sbindir}/rcipmctl-monitor
-%{_unitdir}/ipmctl-monitor.service
+%{_bindir}/%{name}-monitor
+%{_sbindir}/rc%{name}-monitor
+%{_unitdir}/%{name}-monitor.service
-%files -n libipmctl2
+%files devel
%defattr(-,root,root)
-%{_libdir}/libipmctl.so.*
-
-%files -n %{name}-data
-%defattr(-,root,root)
-%dir %{_datadir}/doc/ipmctl
-%doc %{_datadir}/doc/ipmctl/ipmctl_default.conf
-%config %{_sysconfdir}/ipmctl.conf
-%dir %attr(644,root,root) %{_localstatedir}/log/ipmctl
-
-%files -n ipmctl-devel
-%defattr(-,root,root)
-%doc README.md
-%{_libdir}/libipmctl.so
-%attr(644,root,root) %{_includedir}/nvm_types.h
-%attr(644,root,root) %{_includedir}/nvm_management.h
-%attr(644,root,root) %{_includedir}/export_api.h
-%attr(644,root,root) %{_includedir}/NvmStatusValues.h
+%{_libdir}/lib%{name}.so
+%{_libdir}/pkgconfig/lib%{name}.pc
+%{_includedir}/nvm_types.h
+%{_includedir}/nvm_management.h
+%{_includedir}/export_api.h
+%{_includedir}/NvmSharedDefs.h
%changelog
diff --git a/libsafec-03032018.0-g570fa5.tar.gz b/libsafec-03032018.0-g570fa5.tar.gz
new file mode 100644
index 0000000..22085cb
--- /dev/null
+++ b/libsafec-03032018.0-g570fa5.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e3af263e2d794c1e24435d89d0ee00640b3f9f5d8d73d0250e97cae273c6637
+size 906503
diff --git a/libsafec-patches.tar b/libsafec-patches.tar
new file mode 100644
index 0000000..8ec8177
--- /dev/null
+++ b/libsafec-patches.tar
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:120d12e728670fc709e2f180f9ff57797f74bd1ad882aef341df9111c3358aeb
+size 10240
diff --git a/mkSafeC b/mkSafeC
new file mode 100644
index 0000000..6b3f8a7
--- /dev/null
+++ b/mkSafeC
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+[ -r CMakeLists.txt ]
+
+perl -pi.00 -e '
+ s<(\$\{CMAKE_THREAD_LIBS_INIT\})>;
+ if (!$f) {
+ $f=1 if (s<(\$\{LIBSAFEC)(_LIBRARIES)>);
+ }
+ s[(CMAKE_INSTALL_)DATAROOT(DIR\})/ipmctl][${1}SYSCONF${2}];
+ $_ .= " RENAME ipmctl\n" if (m{/logrotate\.d});
+' CMakeLists.txt
+#diff -u CMakeLists.txt{.00,} || sleep 2
+perl -pi.00 -e 's{/usr/share/ipmctl}{/etc}' src/os/ini/ini.c
+#diff -u src/os/ini/ini.c{.00,} || sleep 4
+
+CONTRIB=$PWD/contrib
+if [ -d $CONTRIB/include ]; then
+ cd $CONTRIB/src/libsafec*
+ LSC=${PWD##*/}
+ cp -p COPYING $CONTRIB/COPYING.$LSC
+ sleep 2
+ exit 0
+fi
+
+mkdir -p contrib/src/patches/libsafec
+
+mv libsafec* contrib/src
+[ -z "$1" ] || tar xvfC "$1" contrib/src/patches/libsafec
+cd contrib/src/libsafec*
+for p in ../patches/libsafec/*.patch; do
+ patch -p1 < $p
+done
+
+autoreconf -Wall --install
+./configure --disable-shared \
+ --enable-static --enable-strmax=0x8000 \
+ --prefix=$CONTRIB \
+ CFLAGS="$RPM_OPT_FLAGS -fPIC -DHAVE_C99"
+make $2
+make install
+
+LSC=${PWD##*/}
+cp -p COPYING $CONTRIB/COPYING.$LSC
+
+[ -d $CONTRIB/include/libsafec ] || exit 1
+cd $CONTRIB/..
+tar cf /tmp/libsafec-prebuild.tar contrib