File python-plaso.spec of Package python-plaso

#
# spec file for package python-plaso
#
# Copyright (c) 2020 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#

%{?sle15_python_module_pythons}

%define timestamp 20231224

Name:           python-plaso
Version:        %{timestamp}
Release:        0
Summary:        Plaso is a library for working with forensic timelines
License:        Apache-2.0
Group:          Development/Libraries/Python
URL:            http://plaso.kiddaland.net/
#git:		git clone https://github.com/log2timeline/plaso.git
Source:         https://github.com/log2timeline/plaso/releases/download/%{version}/plaso-%{version}.tar.gz
BuildRequires:  %{python_module setuptools}
BuildRequires:  fdupes
BuildRequires:  pkgconfig
BuildRequires:  python-rpm-macros

Requires:       artifacts-validator >= 20220219

# libewf newer versions than 2016-01-26 are buggy
#Requires:       libewf2 = 20140811
# Testing the experimental branch.  Initial testing of the experimental branch od libewf2 found no relevant errors
# relevant bugs were fixed in 2021
Requires:       libewf3 >= 20220101  
Requires:       libzmq5 > 4.1.2
Requires:       python-lz4 >= 0.10.0
Requires:       python-jupyter
Requires:       python-defusedxml >= 0.5.0
Requires:       python-PyYAML
Requires:       python-bencode
# Requires:       python-idma >= 2.5
Requires:       python-certifi >= 2016.9.26
# possibly optional?
Requires:       python-cffi >= 1.15.1
# Requires:       python-cffi-backend >= 1.9.1      old name?   Not avalable in openSUSE
# optional 
Requires:       python-chardet
Requires:       python-dfdatetime >= 0~20220419
Requires:       python-cryptography >= 2.0.2
Requires:       python-biplist
Requires:       python-construct
Requires:       python-dpkt
Requires:       python-pyzmq >= 2.1.11
Requires:       python-XlsxWriter >= 0.9.3
Requires:       python-urllib3 >= 1.21.1
Requires:       python-pyxattr >= 0.7.2

Requires:       python-libbde >= 20220121
Requires:       python-libcreg >= 20200725
Requires:       python-dateutil >= 2.4.2
Requires:       python-dfVFS >= 0~20221224
Requires:       python-dfwinreg >= 0~20211207
Requires:       python-dtfabric >= 0~20220219
Requires:       python-fakeredis
#Requires:       python-hachoir-core
#Requires:       python-hachoir-metadata
#Requires:       python-hachoir-parser >= 1.3.4

# These are core libraries. Make sure current versions are used
Requires:       python-libesedb >= 0~20150409
Requires:       python-libevt >= 0~20140731
Requires:       python-libevtx >= 0~20210424
Requires:       python-libewf > 20220101
Requires:       python-libfsapfs >= 20201107
Requires:       python-libfsext >= 20220112
Requires:       python-libfsfat >= 20220925
Requires:       python-libfshfs >= 20220115
Requires:       python-libfsntfs >= 0~20211229
Requires:       python-libfsxfs >= 0~20220113
Requires:       python-libfvde >= 20220121
# Requires:       python-libfnt >= 20210717
Requires:       python-libfwsi >= 0~20150606
Requires:       python-liblnk >= 0~20150830
Requires:       python-libluksde >= 20220121
Requires:       python-libmsiecf >= 0~20150314
Requires:       python-libmodi >= 0~20210405
Requires:       python-libolecf >= 0~20160107
Requires:       python-libqcow >= 20201213
Requires:       python-libregf >= 0~20201007
Requires:       python-libscca >= 0~20190605
Requires:       python-libsigscan >= 0~20191221
Requires:       python-libsmdev
Requires:       python-libsmraw
Requires:       python-libvhdi >= 2020114
Requires:       python-libvmdk
Requires:       python-libvsgpt >= 20211115
Requires:       python-libvshadow >= 0~20160109
Requires:       python-libvslvm >= 0~20160109
Requires:       python-olefile
Requires:       python-pefile >= 2021.5.24
Requires:       python-protobuf
Requires:       python-psutil >= 5.4.3
Requires:       python-pyparsing >= 2.0.3
Requires:       python-redis >= 3.4
Requires:       python-requests >= 2.18.0
Requires:       python-tsk >= 0~20210419
Requires:       python-pytz
Requires:       python-yara >= 3.5.0
Requires:       plaso-base
# Requires:       python-yaml >= 3.10
Recommends:     libesedb-tools
Recommends:     libevt-tools
Recommends:     libevtx-tools
Recommends:     libewf-tools
Recommends:     liblnk-tools
Recommends:     libmsiecf-tools
Recommends:     libolecf-tools
Recommends:     libregf-tools
Recommends:     libsmdev-tools
Recommends:     libvhdi-tools
Recommends:     libvmdk-tools
Recommends:     libvshadow-tools
# python-opensearch   is totally untested
Recommends:     python-opensearch
# for running the test suite
Recommends:     python-mock
Recommends:     sleuthkit >= 4.1.2
Provides:       plaso
BuildArch:      noarch
%python_subpackages

%description
Plaso (plaso langar að safna öllu) is the Python based back-end engine used by tools such as log2timeline for automatic creation of a super timelines. The goal of log2timeline (and thus plaso) is to provide a single tool that can parse various log files and forensic artifacts from computer and related systems, such as network equipment to produce a single correlated timeline. This timeline can then be easily analysed by forensic investigators/analysts, speeding up investigations by correlating the vast amount of information found on an average computer system.

%package -n plaso-base
Summary:        Python version neutral tools for plaso
License:        Apache-2.0

%description -n plaso-base
Several tools provided with the plaso program

%prep
%setup -q -n plaso-%{version}
for subdir in analysis cli engine filters formatters lib parsers preprocessors serializer storage output; do
find plaso/$subdir -name \*.py | xargs sed -i "/#!\/usr\/bin\/python/d"
done
chmod -x utils/check_dependencies.py
# sed -i "/#!\/usr\/bin\/env python/d" plaso/lib/objectfilter*.py
# sed -i "/#!\/usr\/bin\/python/d" plaso/frontend/__init__.py
# sed -i "/#!\/usr\/bin\/python/d" plaso/frontend/frontend.py
# sed -i "/#!\/usr\/bin\/python/d" plaso/__init__.py

%build
%python_build

%install
%python_install
%{python_expand %fdupes %{buildroot}%{$python_sitelib} }

%check
# this would require all the "#requires" packages to be installed.  They aren't.
#python utils/check_dependencies.py


%files -n plaso-base
%license LICENSE
%doc ACKNOWLEDGEMENTS AUTHORS
%doc utils/check_dependencies.py
%{_datadir}/plaso
%{_bindir}/image_export.py
%{_bindir}/log2timeline.py
%{_bindir}/pinfo.py
%{_bindir}/psort.py
%{_bindir}/psteal.py

%files %{python_files}
%license LICENSE
%doc ACKNOWLEDGEMENTS AUTHORS
%{python_sitelib}/plaso-%{version}-py%{python_version}.egg-info
%{python_sitelib}/plaso
%{python_sitelib}/tools

%changelog
openSUSE Build Service is sponsored by