The package rpms/prewikka.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/prewikka.git/commit/?id=b1572e729....
Change:
-ExclusiveArch: %{ix86} x86_64
Thanks.
Full change:
============
commit b1572e729ea938a2de90612c80a19bb1047baa9c
Author: Thomas Andrejak <thomas.andrejak(a)gmail.com>
Date: Wed Oct 11 18:57:52 2017 +0200
Bump version 4.0.0
diff --git a/.gitignore b/.gitignore
index 7c7977c..5ba8357 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/prewikka-3.1.0.tar.gz
+/prewikka-4.0.0.tar.gz
diff --git a/prewikka-4.0.0-fix_python3.patch b/prewikka-4.0.0-fix_python3.patch
new file mode 100644
index 0000000..3428614
--- /dev/null
+++ b/prewikka-4.0.0-fix_python3.patch
@@ -0,0 +1,110 @@
+--- ./prewikka/dataprovider/__init__.py 2017-07-18 13:45:57.000000000 +0200
++++ ./prewikka/dataprovider/__init__.py 2017-10-07 17:10:09.140721871 +0200
+@@ -22,12 +22,15 @@
+ import copy
+ import time
+ import types
++import sys
+ from datetime import datetime
+
+ from prewikka import error, hookmanager, pluginmanager
+ from prewikka.utils import AttrObj, CachingIterator, compat, json
+ from prewikka.utils.timeutil import parser
+
++if sys.version_info >= (3, 0):
++ long = int
+
+ def _str_to_datetime(date):
+ if date.isdigit():
+--- ./prewikka/session/session.py 2017-07-18 13:45:57.000000000 +0200
++++ ./prewikka/session/session.py 2017-10-07 17:13:02.224865916 +0200
+@@ -23,6 +23,7 @@
+ import os
+ import struct
+ import time
++import sys
+
+ from prewikka import database, hookmanager, log, pluginmanager, usergroup, utils
+ from prewikka.error import PrewikkaUserError, RedirectionError
+@@ -137,7 +138,11 @@
+ t = time.time()
+
+ self._db.delete_expired_sessions(t - self._expiration)
+- sessionid = text_type(binascii.hexlify(os.urandom(16) +
struct.pack(b">d", t)))
++ sessionid = binascii.hexlify(os.urandom(16) + struct.pack(b">d",
t))
++ if sys.version_info >= (3, 0):
++ sessionid = sessionid.decode('ascii')
++
++ sessionid = text_type(sessionid)
+
+ self._db.create_session(sessionid, user, int(t))
+ self.__set_session(request, sessionid)
+--- ./prewikka/utils/json.py 2017-07-18 13:45:57.000000000 +0200
++++ ./prewikka/utils/json.py 2017-10-07 17:14:59.718248149 +0200
+@@ -21,6 +21,7 @@
+
+ import datetime
+ import json
++from six import with_metaclass
+
+ from prewikka.utils import html
+
+@@ -36,8 +37,7 @@
+ return nclass
+
+
+-class JSONObject(object):
+- __metaclass__ = _JSONMetaClass
++class JSONObject(with_metaclass(_JSONMetaClass, object)):
+
+ def __jsonobj__(self):
+ return { "__prewikka_class__": (self.__class__.__name__,
self.__json__()) }
+--- ./prewikka/utils/url.py 2017-07-18 13:45:57.000000000 +0200
++++ ./prewikka/utils/url.py 2017-10-07 17:16:41.927970738 +0200
+@@ -56,7 +56,11 @@
+ else:
+ authority = tpl[0].encode('idna') + ":%s" % tpl[1]
+
+- return urlunsplit((scheme.encode(encoding), authority,
++ sc = scheme.encode(encoding)
++ if sys.version_info >= (3, 0):
++ sc = quote(sc, safe)
++
++ return urlunsplit((sc, authority,
+ quote(path.encode(encoding), safe),
+ quote(query.encode(encoding), safe),
+ quote(frag.encode(encoding), safe)))
+--- ./prewikka/web/request.py 2017-07-18 13:45:57.000000000 +0200
++++ ./prewikka/web/request.py 2017-10-07 17:21:21.645737400 +0200
+@@ -40,7 +40,11 @@
+ self._buffersize = buffersize
+
+ def flush(self):
+- self._wcb(''.join(self._dlist))
++ if sys.version_info >= (3, 0):
++ self._wcb(''.join((x.decode('utf-8') for x in
self._dlist)).encode('utf-8'))
++ else:
++ self._wcb(''.join(self._dlist))
++
+ self._dlist = []
+ self._len = 0
+
+@@ -97,10 +101,16 @@
+ # Join is used in place of concatenation / formatting, because we
+ # prefer performance over readability in this place
+ if event:
+- self._buffer.write("".join(["event: ",
event.encode("utf8"), "\n"]))
++ if sys.version_info >= (3, 0):
++ self._buffer.write("".join(["event: ",
text_type(event), "\n"]).encode("utf8"))
++ else:
++ self._buffer.write("".join(["event: ",
event.encode('utf-8'), "\n"]))
+
+ if data:
+- self._buffer.write("".join(["data: ",
data.encode("utf8"), "\n\n"]))
++ if sys.version_info >= (3, 0):
++ self._buffer.write("".join(["data: ",
text_type(data), "\n\n"]).encode("utf8"))
++ else:
++ self._buffer.write("".join(["data: ",
data.encode('utf-8'), "\n\n"]))
+
+ if sync:
+ self._buffer.flush()
diff --git a/prewikka.spec b/prewikka.spec
index f150df5..081357e 100644
--- a/prewikka.spec
+++ b/prewikka.spec
@@ -1,31 +1,28 @@
Name: prewikka
-Version: 3.1.0
-Release: 4%{?dist}
+Version: 4.0.0
+Release: 1%{?dist}
Summary: Graphical front-end analysis console for IDMEF
License: GPLv2+
URL:
https://www.prelude-siem.org/
-Source0:
https://www.prelude-siem.org/pkg/src/3.1.0/%{name}-%{version}.tar.gz
+Source0:
https://www.prelude-siem.org/pkg/src/%{version}/%{name}-%{version}.tar.gz
+#
https://www.prelude-siem.org/issues/912
+Patch0: prewikka-4.0.0-fix_python3.patch
BuildRequires: gettext
BuildRequires: python2-devel
-# For now, Prewikka works only with python2
+BuildRequires: python3-devel
BuildRequires: pkgconfig(python2)
+BuildRequires: pkgconfig(python3)
BuildRequires: python2-configargparse
-BuildRequires: python-cheetah
-BuildRequires: python-lesscpy
+BuildRequires: python3-configargparse
+BuildRequires: python2-babel
+BuildRequires: python3-babel
+BuildRequires: python2-lesscpy
+BuildRequires: python3-lesscpy
BuildRequires: python2-setuptools
+BuildRequires: python3-setuptools
-Requires: python2-babel
-Requires: python-cheetah
-Requires: python2-prelude >= %{version}
-Requires: python2-preludedb >= %{version}
-Requires: pytz
-Requires: python2-dateutil
-
-# Cannot build as noarch until libprelude is ported.
-# Comment out BuildArch: noarch for now.
-# BuildArch: noarch
-ExclusiveArch: %{ix86} x86_64
+Requires: python3-%{name} >= %{version}
# Since mass rebuild, debugpackage wont works for prewikka
%define debug_package %{nil}
@@ -37,25 +34,77 @@ provides alert aggregation and heartbeat views, and has user
customization and
configurable filters. Prewikka also provides access to external tools such as
whois and traceroute.
+%package -n python2-%{name}
+Summary: Graphical front-end analysis console for IDMEF
+Requires: %{name} = %{version}-%{release}
+Requires: python2-prelude >= %{version}
+Requires: python2-preludedb >= %{version}
+Requires: python2-babel
+Requires: python2-mako
+Requires: python2-pyyaml
+Requires: python2-werkzeug
+Requires: python2-dateutil
+Requires: python2-pytz
+%{?python_provide:%python_provide python2-%{name}}
+
+%description -n python2-%{name}
+Prewikka is the backend of the web browser interface of Prelude SIEM. Providing
+numerous features, Prewikka facilitates the work of users and analysts. It
+provides alert aggregation and heartbeat views, and has user customization and
+configurable filters. Prewikka also provides access to external tools such as
+whois and traceroute.
+
+%package -n python3-%{name}
+Summary: Graphical front-end analysis console for IDMEF
+Requires: %{name} = %{version}-%{release}
+Requires: python3-prelude >= %{version}
+Requires: python3-preludedb >= %{version}
+Requires: python3-babel
+Requires: python3-mako
+Requires: python3-PyYAML
+Requires: python3-werkzeug
+Requires: python3-dateutil
+Requires: python3-pytz
+%{?python_provide:%python_provide python3-%{name}}
+
+%description -n python3-%{name}
+Prewikka is the backend of the web browser interface of Prelude SIEM. Providing
+numerous features, Prewikka facilitates the work of users and analysts. It
+provides alert aggregation and heartbeat views, and has user customization and
+configurable filters. Prewikka also provides access to external tools such as
+whois and traceroute.
+
%prep
-%setup -q
+%autosetup -p1
%build
%py2_build
+%py3_build
%install
-# We have to use this because py2_install do other things and siteconfig.py
+install -d -m 0755 %{buildroot}%{_sbindir}
+
+# We have to use this because py{2,3}_install do other things and siteconfig.py
# will be not installed
%{__python2} setup.py install --root=%{buildroot}
+mv %{buildroot}%{_bindir}/%{name}-httpd
%{buildroot}%{_sbindir}/%{name}-httpd-%{python2_version}
+%{__python3} setup.py install --root=%{buildroot}
+mv %{buildroot}%{_bindir}/%{name}-httpd
%{buildroot}%{_sbindir}/%{name}-httpd-%{python3_version}
-install -d -m 0755 %{buildroot}%{_sbindir}
-mv %{buildroot}%{_bindir}/%{name}-httpd %{buildroot}%{_sbindir}/%{name}-httpd
+ln -s ./%{name}-httpd-%{python2_version} %{buildroot}%{_sbindir}/%{name}-httpd-2
+ln -s ./%{name}-httpd-%{python3_version} %{buildroot}%{_sbindir}/%{name}-httpd-3
+ln -s ./%{name}-httpd-3 %{buildroot}%{_sbindir}/%{name}-httpd
+
+rm %{buildroot}%{_sysconfdir}/%{name}/*-dist
## Language files; not under /usr/share/locale, need to move them
install -d -m 0755 %{buildroot}%{_datadir}/locale
cp -r %{buildroot}%{python2_sitelib}/%{name}/locale/* %{buildroot}%{_datadir}/locale/
rm -rf %{buildroot}%{python2_sitelib}/%{name}/locale
ln -s %{_datadir}/locale %{buildroot}%{python2_sitelib}/%{name}/locale
+cp -r %{buildroot}%{python3_sitelib}/%{name}/locale/* %{buildroot}%{_datadir}/locale/
+rm -rf %{buildroot}%{python3_sitelib}/%{name}/locale
+ln -s %{_datadir}/locale %{buildroot}%{python3_sitelib}/%{name}/locale
%find_lang %{name}
@@ -64,12 +113,26 @@ ln -s %{_datadir}/locale
%{buildroot}%{python2_sitelib}/%{name}/locale
%doc AUTHORS NEWS README
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
-%{_sbindir}/%{name}-httpd
+%config(noreplace) %{_sysconfdir}/%{name}/menu.yml
%{_datadir}/%{name}
+
+%files -n python2-%{name}
+%{_sbindir}/%{name}-httpd-2
+%{_sbindir}/%{name}-httpd-%{python2_version}
%{python2_sitelib}/%{name}
%{python2_sitelib}/%{name}-%{version}-py%{python2_version}.egg-info
+%files -n python3-%{name}
+%{_sbindir}/%{name}-httpd
+%{_sbindir}/%{name}-httpd-3
+%{_sbindir}/%{name}-httpd-%{python3_version}
+%{python3_sitelib}/%{name}
+%{python3_sitelib}/%{name}-%{version}-py%{python3_version}.egg-info
+
%changelog
+* Wed Oct 11 2017 Thomas Andrejak <thomas.andrejak(a)gmail.com> - 4.0.0-1
+- Bump version 4.0.0
+
* Thu Aug 10 2017 Thomas Andrejak <thomas.andrejak(a)gmail.com> - 3.1.0-4
- Temporary disable debugsource since Mass rebuild
diff --git a/sources b/sources
index 999d789..92641e0 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (prewikka-3.1.0.tar.gz) =
7321e7383d6205f18dffd00a23d07e9154dd79e35eb58d04a6af77bc9f70e476b67a953eb5d09685b4a7c386ecdb9111d40c77bf3b570ffc27a1c90b612a4803
+SHA512 (prewikka-4.0.0.tar.gz) =
01e69b89543cac6b7a694a48cb184759641d37a5987530ce5b738a287a9cd72cc37f6bb85a621d6eb973e957730a6cb438fd302a33f2324359232e4325970bb6