Files
python-plaso/python-plaso.spec
Greg Freemyer 1b25352b42 Accepting request 1142014 from home:gregfreemyer:Tools-for-forensic-boot-cd
- update to version 20231224
- support python39, python310, and python311 packages simultaneously via multi-package building
        * move the files that are NOT python version dependant out to a plaso-tools package
- remove dependancy on python-future.  That was meant for python 2 packages only.

OBS-URL: https://build.opensuse.org/request/show/1142014
OBS-URL: https://build.opensuse.org/package/show/security:forensics/python-plaso?expand=0&rev=69
2024-01-27 21:26:05 +00:00

192 lines
7.0 KiB
RPMSpec

#
# 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 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