diff --git a/.gitignore b/.gitignore index c3367d2..5649717 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/dionaea-*.tar.gz +/dionaea-0.6.0-1748f3b.tar.gz +/dionaea-0.7.0.tar.gz diff --git a/README.md b/README.md index a90c42e..b25f2aa 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,5 @@ # dionaea -Dionaea honeypot is low interaction honeypot, embedding python +Dionaea honeypot is meant to be a nepenthes successor, embedding python as scripting language, using libemu to detect shell-codes, supporting -ipv6 and TLS. - -## Dependencies -- libidn https://src.fedoraproject.org/rpms/libidn -- loudmouth https://src.fedoraproject.org/rpms/loudmouth -- udns https://src.fedoraproject.org/rpms/udns -- libev https://src.fedoraproject.org/rpms/libev -- python3-bson https://src.fedoraproject.org/rpms/python-pymongo -- libdasm https://src.fedoraproject.org/rpms/libdasm -- libemu https://src.fedoraproject.org/rpms/libemu - -## Packages -- dionaea -- python3-dionaea -- dionaea-doc - -## Known issues -- p0f - the p0f API used in upstream dionaea code is currently (2024) referring to version 2.* of p0f, - while we have version 3.* in Fedora. Configuring p0f interface to dionaea in /etc/dionaea/services-enabled/p0f.yaml currently results in severe segfaults especially when blackhole module is used for handling a port. - +ipv6 and TLS. \ No newline at end of file diff --git a/changelog b/changelog deleted file mode 100644 index e1c6d04..0000000 --- a/changelog +++ /dev/null @@ -1,163 +0,0 @@ -* Fri Sep 19 2025 Python Maint - 0.11.0-9.20210228git4e459f1 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 0.11.0-8.20210228git4e459f1 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Tue Aug 05 2025 Charalampos Stratakis - 0.11.0-7.20210228git4e459f1 -- Fix compatibility with Cython >= 3.1 -- Fixes: rhbz#2377036 - -* Wed Jul 23 2025 Fedora Release Engineering - 0.11.0-6.20210228git4e459f1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 0.11.0-5.20210228git4e459f1 -- Rebuilt for Python 3.14 - -* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 0.11.0-4.20210228git4e459f1 -- Add sysusers.d config file to allow rpm to create users/groups automatically - -* Thu Jan 16 2025 Fedora Release Engineering - 0.11.0-3.20210228git4e459f1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Aug 28 2024 Miroslav Suchý - 0.11.0-2.20210228git4e459f1 -- convert license to SPDX - -* Thu Jul 04 2024 Michal Ambroz 0.11.0-1 -- bump to 0.11.0 - -* Fri Jun 07 2024 Python Maint - 0.7.0-29 -- Rebuilt for Python 3.13 - -* Mon Mar 25 2024 Nils Philippsen - 0.7.0-28 -- Revert constraining SQLAlchemy version - -* Tue Mar 19 2024 Nils Philippsen - 0.7.0-27 -- Add dependency on setuptools Python package - -* Tue Mar 19 2024 Nils Philippsen - 0.7.0-26 -- Depend on SQLAlchemy < 2 - -* Wed Jan 24 2024 Fedora Release Engineering - 0.7.0-25 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 0.7.0-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Oct 05 2023 Michal Ambroz 0.7.0-22 -- add version metadata to the python module to fix FTBFS - -* Sun Jul 23 2023 Python Maint - 0.7.0-21 -- Rebuilt for Python 3.12 - -* Wed Jul 19 2023 Fedora Release Engineering - 0.7.0-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Wed Jun 14 2023 Python Maint - 0.7.0-19 -- Rebuilt for Python 3.12 - -* Thu Jan 19 2023 Fedora Release Engineering - 0.7.0-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Jul 21 2022 Fedora Release Engineering - 0.7.0-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jun 13 2022 Python Maint - 0.7.0-16 -- Rebuilt for Python 3.11 - -* Thu Jan 20 2022 Fedora Release Engineering - 0.7.0-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Sep 14 2021 Sahana Prasad - 0.7.0-14 -- Rebuilt with OpenSSL 3.0.0 - -* Wed Jul 21 2021 Fedora Release Engineering - 0.7.0-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 0.7.0-12 -- Rebuilt for Python 3.10 - -* Tue Jan 26 2021 Fedora Release Engineering - 0.7.0-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 0.7.0-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue May 26 2020 Miro Hrončok - 0.7.0-9 -- Rebuilt for Python 3.9 - -* Tue Jan 28 2020 Fedora Release Engineering - 0.7.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Oct 24 2019 Michal Ambroz 0.7.0-7 -- switch to glib2 based on #1766678 to modernize and prepare for epel8 - -* Thu Oct 24 2019 Michal Ambroz 0.7.0-6 -- rebuilt rawhide after ressurection of libdasm/libemu - -* Mon Aug 19 2019 Miro Hrončok - 0.7.0-5.3 -- Rebuilt for Python 3.8 - -* Wed Jul 24 2019 Fedora Release Engineering - 0.7.0-5.2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 0.7.0-5.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Mon Jul 30 2018 Adam Williamson - 0.7.0-5 -- Disable -Werror to fix build (see upstream #225) - -* Thu Jul 12 2018 Fedora Release Engineering - 0.7.0-4.2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 19 2018 Miro Hrončok - 0.7.0-4.1 -- Rebuilt for Python 3.7 - -* Mon Jun 18 2018 Michal Ambroz 0.7.0-4 -- anothe improvement of logrotate script -- add the empty files for dionaea.sqlite dionaea_incident.sqlite sipaccounts.sqlite - -* Mon Jun 04 2018 Michal Ambroz 0.7.0-3 -- fix logrotate script -- use the current version of openssl (needs to be same as curllib is using) - -* Thu May 10 2018 Michal Ambroz 0.7.0-1 -- bump to release 0.7.0 - -* Mon May 07 2018 Michal Ambroz 0.6.0-10.20180326git1748f3b -- cosmetics, changing description in the systemd service - -* Mon Apr 30 2018 Michal Ambroz 0.6.0-9.20180326git1748f3b -- add runtime python dependencies -- fix location of sip user database - -* Mon Apr 30 2018 Iryna Shcherbina - 0.6.0-8.20180326git1748f3b -- Fix condition for python-sphinx on Fedora - -* Fri Apr 20 2018 Michal Ambroz 0.6.0-7.20180326git1748f3b -- fix the link creation to python core library - -* Mon Apr 09 2018 Michal Ambroz 0.6.0-6.20180326git1748f3b -- fix log rotation, move the logs to /var/log/dionaea -- create user dionaea:dionaea -- grant shared stare dir/files to the dionaea user account - -* Mon Apr 09 2018 Michal Ambroz 0.6.0-5.20180326git1748f3b -- clean-up based on review in #1564716 - -* Fri Apr 06 2018 Michal Ambroz 0.6.0-4.20180326git1748f3b -- update to current git snapshot, add logrotate and service files - -* Wed Mar 21 2018 Michal Ambroz 0.6.0-3.20180313gitd2efb76 -- fix openssl dependency for EPEL7 build - -* Wed Mar 21 2018 Michal Ambroz 0.6.0-2.20180313gitd2efb76 -- bump to commit d2efb768e753a7f1ddca6dbf402548d741f33574 -- unbundle pyev and refer to system-installed pyev -- remove the hardcoded default prefix /opt/dionaea -- move from /var/dionaea to /var/lib/dionaea -- fix the doc generation warnings - -* Thu Dec 28 2017 Michal Ambroz 0.6.0-1 -- initial package - diff --git a/dionaea-03_in6_pktinfo.patch b/dionaea-03_in6_pktinfo.patch index 07f6ffe..7ffdc01 100644 --- a/dionaea-03_in6_pktinfo.patch +++ b/dionaea-03_in6_pktinfo.patch @@ -1,4 +1,4 @@ -ipv6 structures in are used by the so it should be included first +ipv6 structures in are used by the ipv6 structures needs explicit CFLAGS " -D_GNU_SOURCE" to compile on linux diff -ru dionaea-793accd84432a77309fa8b81e1f5e9b5bd9ee7a3.orig/include/connection.h dionaea-793accd84432a77309fa8b81e1f5e9b5bd9ee7a3.new/include/connection.h --- dionaea-793accd84432a77309fa8b81e1f5e9b5bd9ee7a3.orig/include/connection.h 2018-03-21 04:21:30.193354693 +0100 diff --git a/dionaea-12_py_module_version.patch b/dionaea-12_py_module_version.patch deleted file mode 100644 index 8fa0411..0000000 --- a/dionaea-12_py_module_version.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ru dionaea-0.7.0/modules/python/setup.py.in dionaea-0.7.0.new/modules/python/setup.py.in ---- dionaea-0.7.0/modules/python/setup.py.in 2023-10-05 00:42:27.965474398 +0200 -+++ dionaea-0.7.0.new/modules/python/setup.py.in 2023-10-05 01:00:14.217496327 +0200 -@@ -100,6 +100,7 @@ - - setup( - name = 'dionaea', -+ version = '@VERSION@', - cmdclass = {'build_ext': build_ext}, - ext_modules = ext_modules, - ) diff --git a/dionaea-13_GetSize_deprecated.patch b/dionaea-13_GetSize_deprecated.patch deleted file mode 100644 index 3ca01c5..0000000 --- a/dionaea-13_GetSize_deprecated.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru dionaea-0.7.0/modules/python/module.c dionaea-0.7.0.new/modules/python/module.c ---- dionaea-0.7.0/modules/python/module.c 2023-10-05 02:34:45.932378106 +0200 -+++ dionaea-0.7.0.new/modules/python/module.c 2023-10-05 02:36:19.072753468 +0200 -@@ -985,7 +985,7 @@ - } else - return g_strdup(""); - -- Py_ssize_t pysize = PyUnicode_GetSize(pyobjectstr); -+ Py_ssize_t pysize = PyUnicode_GetLength(pyobjectstr); - wchar_t * str = (wchar_t *) malloc((pysize + 1) * sizeof(wchar_t)); - PyUnicode_AsWideChar(pyobjectstr, str, pysize); - str[pysize] = '\0'; diff --git a/dionaea-14_safe_load.patch b/dionaea-14_safe_load.patch deleted file mode 100644 index 956ed26..0000000 --- a/dionaea-14_safe_load.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -ru dionaea-0.7.0/modules/python/dionaea/__init__.py dionaea-0.7.0.new/modules/python/dionaea/__init__.py ---- dionaea-0.7.0/modules/python/dionaea/__init__.py 2018-05-01 22:22:13.000000000 +0200 -+++ dionaea-0.7.0.new/modules/python/dionaea/__init__.py 2023-10-05 04:01:50.852135935 +0200 -@@ -70,7 +70,7 @@ - for filename_pattern in filename_patterns: - for filename in glob.glob(filename_pattern): - fp = open(filename) -- file_configs = yaml.load(fp) -+ file_configs = yaml.safe_load(fp) - if isinstance(file_configs, (tuple, list)): - configs += file_configs -- return configs -\ No newline at end of file -+ return configs diff --git a/dionaea-15_pyeval_callobject.patch b/dionaea-15_pyeval_callobject.patch deleted file mode 100644 index ed2cc6a..0000000 --- a/dionaea-15_pyeval_callobject.patch +++ /dev/null @@ -1,76 +0,0 @@ -The PyEval_CallObject API is obsolete in python 3.12, use PyObject_CallObject instead -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/module.c dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/module.c ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/module.c 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/module.c 2024-07-04 15:38:00.956643590 +0200 -@@ -138,7 +138,7 @@ - Py_DECREF(module); - PyObject *func = PyObject_GetAttrString(module, "remoteshell"); - PyObject *arglist = Py_BuildValue("()"); -- PyObject *r = PyEval_CallObject(func, arglist); -+ PyObject *r = PyObject_CallObject(func, arglist); - Py_DECREF(arglist); - g_debug("r %p", r); - struct head -@@ -181,7 +181,7 @@ - PyObject *func = PyObject_GetAttrString(i->module, "stop"); - if ( func != NULL ) { - PyObject *arglist = Py_BuildValue("()"); -- PyObject *r = PyEval_CallObject(func, arglist); -+ PyObject *r = PyObject_CallObject(func, arglist); - traceback(); - // PyErr_Print(); - Py_DECREF(arglist); -@@ -203,7 +203,7 @@ - func = PyObject_GetAttrString(module, "new"); - if( func != NULL ) { - PyObject *arglist = Py_BuildValue("()"); -- PyObject *r = PyEval_CallObject(func, arglist); -+ PyObject *r = PyObject_CallObject(func, arglist); - traceback(); - Py_DECREF(arglist); - Py_XDECREF(r); -@@ -214,7 +214,7 @@ - func = PyObject_GetAttrString(module, "start"); - if( func != NULL ) { - PyObject *arglist = Py_BuildValue("()"); -- PyObject *r = PyEval_CallObject(func, arglist); -+ PyObject *r = PyObject_CallObject(func, arglist); - traceback(); - Py_DECREF(arglist); - Py_XDECREF(r); -@@ -239,7 +239,7 @@ - PyObject *func = PyObject_GetAttrString(module, "new"); - if( func != NULL ) { - PyObject *arglist = Py_BuildValue("()"); -- PyObject *r = PyEval_CallObject(func, arglist); -+ PyObject *r = PyObject_CallObject(func, arglist); - Py_DECREF(arglist); - Py_XDECREF(r); - Py_DECREF(func); -@@ -273,7 +273,7 @@ - if( func != NULL ) - { - PyObject *arglist = Py_BuildValue("()"); -- PyObject *r = PyEval_CallObject(func, arglist); -+ PyObject *r = PyObject_CallObject(func, arglist); - Py_DECREF(arglist); - Py_XDECREF(r); - Py_DECREF(func); -@@ -306,7 +306,7 @@ - if( func != NULL ) - { - PyObject *arglist = Py_BuildValue("()"); -- PyObject *r = PyEval_CallObject(func, arglist); -+ PyObject *r = PyObject_CallObject(func, arglist); - Py_DECREF(arglist); - Py_XDECREF(r); - Py_DECREF(func); -@@ -389,7 +389,7 @@ - PyObject *func = PyObject_GetAttrString(module, "new"); - if( func != NULL ) { - PyObject *arglist = Py_BuildValue("()"); -- PyObject *r = PyEval_CallObject(func, arglist); -+ PyObject *r = PyObject_CallObject(func, arglist); - Py_DECREF(arglist); - Py_XDECREF(r); - Py_DECREF(func); diff --git a/dionaea-16_cmake_append_flags.patch b/dionaea-16_cmake_append_flags.patch deleted file mode 100644 index 752b96c..0000000 --- a/dionaea-16_cmake_append_flags.patch +++ /dev/null @@ -1,13 +0,0 @@ -APPEND adds unwanted ";" character if there are already some CMAKE_C_FLAGS defined -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/CMakeLists.txt 2024-07-04 21:10:43.604959260 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/CMakeLists.txt 2024-07-04 21:10:14.986830427 +0200 -@@ -31,7 +31,7 @@ - set(CMAKE_C_STANDARD 11) - set(CMAKE_C_STANDARD_REQUIRED ON) - # ToDo: move to source file? --list(APPEND CMAKE_C_FLAGS "-D_GNU_SOURCE") -+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GNU_SOURCE") - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - diff --git a/dionaea-17_cmake_dirs.patch b/dionaea-17_cmake_dirs.patch deleted file mode 100644 index 014b45e..0000000 --- a/dionaea-17_cmake_dirs.patch +++ /dev/null @@ -1,183 +0,0 @@ -Change handling of dirs to be able to configure/install to base system having -configuration in /etc/, -data files in /var -and rest in /usr, -while keeping the possibility to install to /opt/dionaea by default -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/cmake/InstallConfig.cmake dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/cmake/InstallConfig.cmake ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/cmake/InstallConfig.cmake 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/cmake/InstallConfig.cmake 2024-07-07 16:40:50.457869174 +0200 -@@ -12,17 +12,17 @@ - get_filename_component(src_name "${src}" NAME) - get_filename_component(basename_dest "${src}" NAME) - install(CODE " -- if(\${CMAKE_INSTALL_FULL_PREFIX} MATCHES .*/_CPack_Packages/.* OR NOT EXISTS \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${dest}/${src_name}\") -- message(STATUS \"Installing: \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${dest}/${src_name}\") -+ if(\${CMAKE_INSTALL_FULL_PREFIX} MATCHES .*/_CPack_Packages/.* OR NOT EXISTS \"\$ENV{DESTDIR}/${dest}/${src_name}\") -+ message(STATUS \"Installing: \$ENV{DESTDIR}/${dest}/${src_name}\") - execute_process(COMMAND \${CMAKE_COMMAND} -E copy \"${src}\" -- \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${dest}/${src_name}\" -+ \"\$ENV{DESTDIR}/${dest}/${src_name}\" - RESULT_VARIABLE copy_result - ERROR_VARIABLE error_output) - if(copy_result) - message(FATAL_ERROR \${error_output}) - endif() - else() -- message(STATUS \"Skipping : \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${dest}/${src_name}\") -+ message(STATUS \"Skipping : \$ENV{DESTDIR}/${dest}/${src_name}\") - endif() - ") - endfunction() -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/cmake/InstallPythonConfig.cmake dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/cmake/InstallPythonConfig.cmake ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/cmake/InstallPythonConfig.cmake 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/cmake/InstallPythonConfig.cmake 2024-07-07 13:16:38.947125822 +0200 -@@ -43,13 +43,13 @@ - if(NOT EXISTS "${_conf_dst}") - install(DIRECTORY DESTINATION "${_conf_dst}") - foreach(filename ${MY_FUNC_FILES}) -- install(CODE "message(STATUS \"Enabling Service: ${filename} in \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_conf_dst}\")") -+ install(CODE "message(STATUS \"Enabling Service: ${filename} in \$ENV{DESTDIR}/${_conf_dst}\")") - install(CODE " - EXECUTE_PROCESS( - COMMAND \"${CMAKE_COMMAND}\" -E create_symlink - ${MY_FUNC_SOURCE_REL_DIR}/${filename} - ${filename} -- WORKING_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_conf_dst}\" -+ WORKING_DIRECTORY \"\$ENV{DESTDIR}/${_conf_dst}\" - ) - ") - endforeach() -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/curl/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/curl/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/curl/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/curl/CMakeLists.txt 2024-07-07 21:51:47.636592554 +0200 -@@ -40,5 +40,5 @@ - - install( - TARGETS module_curl -- LIBRARY DESTINATION lib/dionaea -+ LIBRARY DESTINATION ${DIONAEA_MODDIR} - ) -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/emu/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/emu/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/emu/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/emu/CMakeLists.txt 2024-07-07 21:52:01.819707360 +0200 -@@ -41,5 +41,5 @@ - - install( - TARGETS module_emu -- LIBRARY DESTINATION lib/dionaea -+ LIBRARY DESTINATION ${DIONAEA_MODDIR} - ) -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/nfq/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/nfq/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/nfq/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/nfq/CMakeLists.txt 2024-07-07 21:52:50.925104849 +0200 -@@ -41,5 +41,5 @@ - - install( - TARGETS module_nfq -- LIBRARY DESTINATION lib/dionaea -+ LIBRARY DESTINATION ${DIONAEA_MODDIR} - ) -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/nl/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/nl/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/nl/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/nl/CMakeLists.txt 2024-07-07 21:52:58.748168174 +0200 -@@ -42,5 +42,5 @@ - - install( - TARGETS module_nl -- LIBRARY DESTINATION lib/dionaea -+ LIBRARY DESTINATION ${DIONAEA_MODDIR} - ) -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/pcap/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/pcap/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/pcap/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/pcap/CMakeLists.txt 2024-07-07 21:53:08.484246984 +0200 -@@ -39,5 +39,5 @@ - - install( - TARGETS module_pcap -- LIBRARY DESTINATION lib/dionaea -+ LIBRARY DESTINATION ${DIONAEA_MODDIR} - ) -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/xmatch/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/xmatch/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/xmatch/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/xmatch/CMakeLists.txt 2024-07-07 21:54:00.053664426 +0200 -@@ -27,5 +27,5 @@ - - install( - TARGETS xmatch -- LIBRARY DESTINATION lib -+ LIBRARY DESTINATION ${DIONAEA_MODDIR} - ) -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/src/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/src/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/src/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/src/CMakeLists.txt 2024-07-07 23:02:13.808986562 +0200 -@@ -59,7 +59,7 @@ - - install ( - TARGETS dionaea -- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR} - ) - - configure_file( -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/CMakeLists.txt 2024-07-07 16:39:03.665446438 +0200 -@@ -31,7 +31,7 @@ - ) - - #install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install --prefix=${CMAKE_INSTALL_PREFIX})") -- install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install --install-lib=\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DIONAEA_PYTHON_SITELIBDIR})") -+ install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install --install-lib=\$ENV{DESTDIR}/${DIONAEA_PYTHON_SITELIBDIR})") - endif() - - add_library( -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/CMakeLists.txt dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/CMakeLists.txt ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/CMakeLists.txt 2021-02-08 06:48:52.000000000 +0100 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/CMakeLists.txt 2024-07-08 04:14:55.578867606 +0200 -@@ -66,7 +66,27 @@ - - option(RELEASE_BUILD "Remove Git revision from program version (use for stable releases)" OFF) - -+# Default install prefix for Dionaea -+if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) -+ message(STATUS "INFO: Setting the CMAKE_INSTALL_PREFIX to default - /opt/dionaea") -+ set_property(CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "/opt/dionaea") -+endif() -+ -+message(STATUS "Before GNUInstallDirs: CMAKE_INSTALL_FULL_LOCALSTATEDIR = ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}") - include(GNUInstallDirs) -+message(STATUS "After GNUInstallDirs: CMAKE_INSTALL_FULL_LOCALSTATEDIR = ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}") -+ -+### Dionaea non-FHS compliant defaults /opt/dionaea -+# Dionaea defaults are different from FHS as used in GNUInstallDirs -+# for example the default when prefix is set to /opt/dionaea, the configuration -+# is expected in /opt/dionaea/etc and not in /etc/opt/dionaea, same for the state dirs -+# expected to be in /opt/dionaea/var/lib and not in /var/opt/dionaea/lib -+if(CMAKE_INSTALL_PREFIX STREQUAL "/opt/dionaea") -+ set(CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc" CACHE PATH "Configuration") -+ set(CMAKE_INSTALL_FULL_LOCALSTATEDIR "${CMAKE_INSTALL_PREFIX}/var" CACHE PATH "Modifiable single-machine data (var)" FORCE) -+ set(CMAKE_INSTALL_FULL_RUNSTATEDIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/run" CACHE PATH "Run-time variable data (LOCALSTATEDIR/run)") -+endif() -+ - include(InstallConfig) - include(Packaging) - -@@ -90,12 +110,12 @@ - - set(DIONAEA_USER "dionaea" CACHE STRING "Dionaea user") - set(DIONAEA_GROUP "dionaea" CACHE STRING "Dionaea group") --set(DIONAEA_MODDIR ${CMAKE_INSTALL_LIBDIR}/dionaea) --set(DIONAEA_CONFDIR ${CMAKE_INSTALL_SYSCONFDIR}/dionaea) --set(DIONAEA_RUNDIR "${CMAKE_INSTALL_LOCALSTATEDIR}/run" CACHE STRING "/run directory") --set(DIONAEA_STATEDIR ${CMAKE_INSTALL_LOCALSTATEDIR}/lib/dionaea) --set(DIONAEA_LOGDIR ${CMAKE_INSTALL_LOCALSTATEDIR}/log/dionaea) --set(DIONAEA_PYTHON_SITELIBDIR ${CMAKE_INSTALL_LIBDIR}/dionaea/python) -+set(DIONAEA_MODDIR ${CMAKE_INSTALL_FULL_LIBDIR}/dionaea CACHE PATH "Dionaea directory for plugin modules") -+set(DIONAEA_CONFDIR ${CMAKE_INSTALL_FULL_SYSCONFDIR}/dionaea CACHE PATH "Dionaea configuration directory") -+set(DIONAEA_RUNDIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/run" CACHE PATH "Dionaea /run directory") -+set(DIONAEA_STATEDIR ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/dionaea CACHE PATH "Dionaea directory for storing the status") -+set(DIONAEA_LOGDIR ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/dionaea CACHE PATH "Dionaea log directory") -+set(DIONAEA_PYTHON_SITELIBDIR ${CMAKE_INSTALL_FULL_LIBDIR}/dionaea/python CACHE PATH "Dionaea location of python modules") - - ########### requirements ############### - diff --git a/dionaea-18_python_regex.patch b/dionaea-18_python_regex.patch deleted file mode 100644 index 98ea610..0000000 --- a/dionaea-18_python_regex.patch +++ /dev/null @@ -1,323 +0,0 @@ -new versions of python 3.9+ new regex patterns defined as raw strings, otherwise report syntax error for unknown stirng escape sequence like \s -Only in dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig: 1.orig -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/doc/source/conf.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/doc/source/conf.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/doc/source/conf.py 2024-07-16 02:09:42.459377247 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/doc/source/conf.py 2024-07-16 02:08:40.881028357 +0200 -@@ -62,7 +62,7 @@ - # The short X.Y version. - version = "undefined" - regex_version = re.compile( -- "^project\s*\([^)]+?\s+VERSION\s+(?P[0-9]+\.[0-9]+\.[0-9]+)$", -+ r"^project\s*\([^)]+?\s+VERSION\s+(?P[0-9]+\.[0-9]+\.[0-9]+)$", - re.MULTILINE|re.DOTALL - ) - data = open("../../CMakeLists.txt", "r").read() -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/cmd.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/cmd.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/cmd.py 2024-07-16 02:09:42.462377264 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/cmd.py 2024-07-16 02:08:40.918028567 +0200 -@@ -29,7 +29,7 @@ - else: - self.send = self.void - self.files = {} -- self.cwd = 'C:\WINDOWS\System32' -+ self.cwd = 'C:\\WINDOWS\\System32' - - - def handle_io_in(self, data): -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/emu_scripts/handler.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/emu_scripts/handler.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/emu_scripts/handler.py 2024-07-16 02:09:42.464377275 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/emu_scripts/handler.py 2024-07-16 02:11:23.762951218 +0200 -@@ -22,7 +22,7 @@ - self._regex_detect = [] - - self._regex_url = re.compile( -- b"(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)" -+ r"(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)" - ) - - def run(self, data): -@@ -52,7 +52,7 @@ - self._config = config - - self._regex_url = re.compile( -- b"(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)" -+ r"(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)" - ) - - def run(self, data): -@@ -70,13 +70,13 @@ - - self.min_match_count = 2 - self._regex_detect = [ -- re.compile(b"New-Object\s+System\.Net\.WebClient"), -- re.compile(b"DownloadFile([^,]+?,[^,]+?)"), -- re.compile(b"Invoke-Expression([^)]+?)") -+ re.compile(r"New-Object\s+System\.Net\.WebClient"), -+ re.compile(r"DownloadFile([^,]+?,[^,]+?)"), -+ re.compile(r"Invoke-Expression([^)]+?)") - ] - - self._regex_url = re.compile( -- b"\w+\s*=\s*\"\s*(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)\s*\"" -+ r"\w+\s*=\s*\"\s*(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)\s*\"" - ) - - -@@ -88,9 +88,9 @@ - - self.min_match_count = 1 - self._regex_detect = [ -- re.compile(b"Set\s+\w+\s+=\s+CreateObject\(.*?(Msxml2.XMLHTTP|Wscript.Shell).*?\)") -+ re.compile(r"Set\s+\w+\s+=\s+CreateObject\(.*?(Msxml2.XMLHTTP|Wscript.Shell).*?\)") - ] - - self._regex_url = re.compile( -- b"\.Open\s+\"GET\"\s*,\s*\"(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)\"" -+ r"\.Open\s+\"GET\"\s*,\s*\"(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)\"" - ) -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/memcache/command.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/memcache/command.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/memcache/command.py 2024-07-16 02:09:42.466377287 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/memcache/command.py 2024-07-16 02:08:40.902028476 +0200 -@@ -18,7 +18,7 @@ - - class Decrement(Command): - name = "decr" -- regex_cmd = re.compile(b"^decr (?P\w+) (?P\d+)( (?Pnoreply))?$") -+ regex_cmd = re.compile(r"^decr (?P\w+) (?P\d+)( (?Pnoreply))?$") - - def __init__(self, key=None, value=0, no_reply=False): - self.key = key -@@ -37,7 +37,7 @@ - - class Delete(Command): - name = "delete" -- regex_cmd = re.compile(b"^(?P\w+) (?P\w+)( (?Pnoreply))?$") -+ regex_cmd = re.compile(r"^(?P\w+) (?P\w+)( (?Pnoreply))?$") - - def __init__(self, key=None, no_reply=None): - self.key = key -@@ -73,7 +73,7 @@ - - class Increment(Command): - name = "incr" -- regex_cmd = re.compile(b"^incr (?P\w+) (?P\d+)( (?Pnoreply))?$") -+ regex_cmd = re.compile(r"^incr (?P\w+) (?P\d+)( (?Pnoreply))?$") - - def __init__(self, key=None, value=0, no_reply=False): - self.key = key -@@ -91,7 +91,7 @@ - - - class StorageCommand(Command): -- regex_cmd = re.compile(b"^(?P\w+) (?P\w+) (?P\d+) (?P\d+) (?P\d+)( (?Pnoreply))?") -+ regex_cmd = re.compile(r"^(?P\w+) (?P\w+) (?P\d+) (?P\d+) (?P\d+)( (?Pnoreply))?") - - def __init__(self, key=None, flags=None, exptime=None, byte_count=None, noreply=None): - self.key = key -@@ -171,7 +171,7 @@ - - class Touch(Command): - name = "touch" -- regex_cmd = re.compile(b"^touch (?P\w+) (?P\d+)( (?Pnoreply))?$") -+ regex_cmd = re.compile(r"^touch (?P\w+) (?P\d+)( (?Pnoreply))?$") - - def __init__(self, key=None, exptime=None, no_reply=None): - self.key = key -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/mysql/mysql.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/mysql/mysql.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/mysql/mysql.py 2024-07-16 02:09:42.468377298 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/mysql/mysql.py 2024-07-16 02:13:32.901682889 +0200 -@@ -19,12 +19,12 @@ - logger = logging.getLogger('mysqld') - - re_show_var = re.compile( -- b"show\s+((?Pglobal)\s+)?variables(\s+like\s+(?P\"|')(?P.*?)(?P=sep))?", -+ r"show\s+((?Pglobal)\s+)?variables(\s+like\s+(?P\"|')(?P.*?)(?P=sep))?", - re.I - ) - - re_select_var = re.compile( -- b"select\s+(?P@(?P@)?(?P\w+))(\s+limit\s+\d+)?", -+ r"select\s+(?P@(?P@)?(?P\w+))(\s+limit\s+\d+)?", - re.I - ) - -@@ -42,7 +42,7 @@ - self.config = None - self.state = "" - self.regex_statement = re.compile( -- b"""([A-Za-z0-9_.]+\(.*?\)+|\(.*?\)+|"(?:[^"]|\"|"")*"+|'[^'](?:|\'|'')*'+|`(?:[^`]|``)*`+|[^ ,]+|,)""" -+ r"""([A-Za-z0-9_.]+\(.*?\)+|\(.*?\)+|"(?:[^"]|\"|"")*"+|'[^'](?:|\'|'')*'+|`(?:[^`]|``)*`+|[^ ,]+|,)""" - ) - self.download_dir = None - self.download_suffix = ".tmp" -@@ -146,7 +146,7 @@ - if re.match(b'set ', p.Query, re.I): - r = MySQL_Result_OK(Message="#2") - -- elif re.match(b'select\s+database\s*\(\s*\)$', p.Query, re.I): -+ elif re.match(r'select\s+database\s*\(\s*\)$', p.Query, re.I): - r = [ - MySQL_Result_Header(FieldCount=1), - MySQL_Result_Field( -@@ -167,7 +167,7 @@ - MySQL_Result_EOF(ServerStatus=0x002) - ] - -- elif re.match(b"show\s+databases$", p.Query, re.I): -+ elif re.match(r"show\s+databases$", p.Query, re.I): - r = [ - MySQL_Result_Header(FieldCount=1), - MySQL_Result_Field( -@@ -192,7 +192,7 @@ - # r.append(MySQL_Result_Row_Data(ColumnValues=['information_schema'])) - r.append(MySQL_Result_EOF(ServerStatus=0x002)) - -- elif re.match(b'show\s+tables$', p.Query, re.I): -+ elif re.match(r'show\s+tables$', p.Query, re.I): - r = [ - MySQL_Result_Header(FieldCount=1), - MySQL_Result_Field( -@@ -273,8 +273,8 @@ - if len(query) == 0: - return False - -- regex_function = re.compile(b"(?P[A-Za-z0-9_.]+)\((?P.*?)\)+") -- regex_url = re.compile(b"(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)") -+ regex_function = re.compile(r"(?P[A-Za-z0-9_.]+)\((?P.*?)\)+") -+ regex_url = re.compile(r"(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)") - - m = re_select_var.match(p.Query) - if m: -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/sip/extras.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/sip/extras.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/sip/extras.py 2024-07-16 02:09:42.471377315 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/sip/extras.py 2024-07-16 02:08:40.911028527 +0200 -@@ -261,7 +261,7 @@ - sdp = data[0] - for n,v in media_ports.items(): - if v is None: -- sdp = re.sub("\[" + n +"\].*\[\/" + n + "\]", "", sdp, 0, re.DOTALL) -+ sdp = re.sub("\\[" + n +"\\].*\\[\\/" + n + "\\]", "", sdp, 0, re.DOTALL) - else: - params[n] = v - -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/sip/rfc2396.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/sip/rfc2396.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/sip/rfc2396.py 2024-07-16 02:09:42.473377327 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/sip/rfc2396.py 2024-07-16 02:08:40.911028527 +0200 -@@ -28,9 +28,9 @@ - b'"John Doe" ' - """ - _syntax = [ -- re.compile(b'^(?P[a-zA-Z0-9\-\.\_\+\~\ \t]*)<(?P[^>]+)>( *; *(?P.*))?'), -- re.compile(b'^(?:"(?P[a-zA-Z0-9\-\.\_\+\~\ \t]+)")[\ \t]*<(?P[^>]+)>( *; *(?P.*))?'), -- re.compile(b'^[\ \t]*(?P)(?P[^;]+)( *; *(?P.*))?') -+ re.compile(r'^(?P[a-zA-Z0-9\-\.\_\+\~\ \t]*)<(?P[^>]+)>( *; *(?P.*))?'), -+ re.compile(r'^(?:"(?P[a-zA-Z0-9\-\.\_\+\~\ \t]+)")[\ \t]*<(?P[^>]+)>( *; *(?P.*))?'), -+ re.compile(r'^[\ \t]*(?P)(?P[^;]+)( *; *(?P.*))?') - ] - - def __init__(self, display_name = None, uri = None, must_quote = None, params = None): -@@ -128,12 +128,12 @@ - True - """ - -- _syntax = re.compile(b"^(?P[a-zA-Z][a-zA-Z0-9\+\-\.]*):" # scheme -- + b"(?:(?:(?P[a-zA-Z0-9\-\_\.\!\~\*\'\(\)&=\+\$,;\?\/\%]+)" # user -- + b"(?::(?P[^:@;\?]+))?)@)?" # password -- + b"(?:(?:(?P[^;\?:]*)(?::(?P[\d]+))?))" # host, port -- + b"(?:;(?P[^\?]*))?" # parameters -- + b"(?:\?(?P.*))?$" # headers -+ _syntax = re.compile(r"^(?P[a-zA-Z][a-zA-Z0-9\+\-\.]*):" # scheme -+ + r"(?:(?:(?P[a-zA-Z0-9\-\_\.\!\~\*\'\(\)&=\+\$,;\?\/\%]+)" # user -+ + r"(?::(?P[^:@;\?]+))?)@)?" # password -+ + r"(?:(?:(?P[^;\?:]*)(?::(?P[\d]+))?))" # host, port -+ + r"(?:;(?P[^\?]*))?" # parameters -+ + r"(?:\?(?P.*))?$" # headers - ) - - def __init__(self, scheme = None, user = None, password = None, host = None, port = None, params = None, headers = None): -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/sip/rfc3261.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/sip/rfc3261.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/sip/rfc3261.py 2024-07-16 02:09:42.475377338 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/sip/rfc3261.py 2024-07-16 02:08:40.911028527 +0200 -@@ -678,7 +678,7 @@ - b'z9hG4bK77asjd' b'192.0.2.207' - """ - -- _syntax = re.compile(b"SIP */ *2\.0 */ *(?P[a-zA-Z]+) *(?P
[^ :;]*) *(:(?P[0-9]+))?( *; *(?P.*))?") -+ _syntax = re.compile(r"SIP */ *2\.0 */ *(?P[a-zA-Z]+) *(?P
[^ :;]*) *(:(?P[0-9]+))?( *; *(?P.*))?") - - def __init__(self, protocol = None, address = None, port = None, params = None): - if params is None: -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/smb/include/asn1/mib.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/smb/include/asn1/mib.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/smb/include/asn1/mib.py 2024-07-16 02:09:42.478377355 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/smb/include/asn1/mib.py 2024-07-16 02:08:40.913028539 +0200 -@@ -19,12 +19,12 @@ - ## MIB parsing ## - ################# - --_mib_re_integer = re.compile("^[0-9]+$") --_mib_re_both = re.compile("^([a-zA-Z_][a-zA-Z0-9_-]*)\(([0-9]+)\)$") -+_mib_re_integer = re.compile(r"^[0-9]+$") -+_mib_re_both = re.compile(r"^([a-zA-Z_][a-zA-Z0-9_-]*)\(([0-9]+)\)$") - _mib_re_oiddecl = re.compile( -- "$\s*([a-zA-Z0-9_-]+)\s+OBJECT([^:\{\}]|\{[^:]+\})+::=\s*\{([^\}]+)\}",re.M) --_mib_re_strings = re.compile('"[^"]*"') --_mib_re_comments = re.compile('--.*(\r|\n)') -+ r"$\s*([a-zA-Z0-9_-]+)\s+OBJECT([^:\{\}]|\{[^:]+\})+::=\s*\{([^\}]+)\}",re.M) -+_mib_re_strings = re.compile(r'"[^"]*"') -+_mib_re_comments = re.compile(r'--.*(\r|\n)') - - class MIBDict(DADict): - def _findroot(self, x): -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/smb/include/fieldtypes.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/smb/include/fieldtypes.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/smb/include/fieldtypes.py 2024-07-16 02:09:42.480377366 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/smb/include/fieldtypes.py 2024-07-16 02:08:40.915028550 +0200 -@@ -188,7 +188,7 @@ - def m2i(self, pkt, x): - return str2mac(x) - def any2i(self, pkt, x): -- if type(x) is str and len(x) is 6: -+ if type(x) is str and len(x) == 6: - x = self.m2i(pkt, x) - return x - def i2repr(self, pkt, x): -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/smb/rpcservices.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/smb/rpcservices.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/smb/rpcservices.py 2024-07-16 02:09:42.484377389 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/smb/rpcservices.py 2024-07-16 02:08:40.916028556 +0200 -@@ -2802,7 +2802,7 @@ - - rpclog.debug("docname {} outputfile {}".format(DocName, OutputFile)) - -- if OutputFile.startswith('\\') and OutputFile.endswith('\PIPE\ATSVC'): -+ if OutputFile.startswith('\\\\') and OutputFile.endswith('\\PIPE\\ATSVC'): - # FIXME PIPE ATSVC COMMAND - pass - else: -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/util.py dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/util.py ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/dionaea/util.py 2024-07-16 02:09:42.489377417 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/dionaea/util.py 2024-07-16 02:08:40.918028567 +0200 -@@ -74,14 +74,14 @@ - :return: List of urls or None - """ - from dionaea.core import incident -- regex = re.compile(b"\(\)\s*\t*\{.*;\s*\}\s*;") -+ regex = re.compile(r"\(\)\s*\t*\{.*;\s*\}\s*;") - if not regex.search(data): - return None - logger.debug("Shellshock attack found") - - urls = [] - regex = re.compile( -- b"(wget|curl).+(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)" -+ r"(wget|curl).+(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)" - ) - for m in regex.finditer(data): - logger.debug("Found download command with url %s", m.group("url")) -@@ -107,7 +107,7 @@ - from dionaea.core import incident - urls = [] - regex = re.compile( -- b"(wget|curl).+(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)" -+ r"(wget|curl).+(?P(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)" - ) - for m in regex.finditer(data): - logger.debug("Found download command with url %s", m.group("url")) diff --git a/dionaea-19_setuptools.patch b/dionaea-19_setuptools.patch deleted file mode 100644 index 31fc139..0000000 --- a/dionaea-19_setuptools.patch +++ /dev/null @@ -1,132 +0,0 @@ -Migrate setup.py from deprecated distutils to setuptools. -Handle the building by cmake from setup.py template processed in cmake build directory. -Newer versions of setuptools complain about using absolute paths in setup. -diff -ru dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/setup.py.in2 dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/setup.py.in2 ---- dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.orig/modules/python/setup.py.in2 2024-07-17 16:08:59.696655429 +0200 -+++ dionaea-4e459f1b672a5b4c1e8335c0bff1b93738019215.new/modules/python/setup.py.in2 2024-07-30 11:32:39.198027455 +0200 -@@ -5,33 +5,46 @@ - # - # SPDX-License-Identifier: GPL-2.0-or-later - --from distutils.core import setup --from distutils.extension import Extension --from distutils.util import convert_path -+from setuptools import setup, find_packages, Extension -+from setuptools.command.install import install as _install -+from setuptools.command.build_ext import build_ext as _build_ext -+ - import os --from Cython.Distutils import build_ext -+# from Cython.Distutils import build_ext -+ -+# Helper function to get absolute path relative to this file -+def get_abs_path(rel_path): -+ return os.path.abspath(os.path.join(os.path.dirname(__file__), rel_path)) -+ -+def get_rel_path(abs_path): -+ return os.path.relpath(os.path.join(os.path.dirname(__file__), abs_path)) -+ -+# Function to process CMake-style paths -+def process_cmake_path(path): -+ if path.startswith('${CMAKE_CURRENT_SOURCE_DIR}'): -+ return get_rel_path(get_abs_path(path)) -+ return path - -+class CustomBuildExt(_build_ext): -+ def build_extensions(self): -+ if '-Wstrict-prototypes' in self.compiler.compiler_so: -+ self.compiler.compiler_so.remove('-Wstrict-prototypes') -+ super().build_extensions() - --def find_packages(base_path): -- base_path = convert_path(base_path) -- found = [] -- for root, dirs, files in os.walk(base_path, followlinks=True): -- dirs[:] = [d for d in dirs if d[0] != '.' and d not in ('ez_setup', '__pycache__')] -- relpath = os.path.relpath(root, base_path) -- parent = relpath.replace(os.sep, '.').lstrip('.') -- if relpath != '.' and parent not in found: -- continue -- for dir in dirs: -- if os.path.isfile(os.path.join(root, dir, '__init__.py')): -- package = '.'.join((parent, dir)) if parent else dir -- found.append(package) -- return found -+class CustomInstall(_install): -+ def run(self): -+ _install.run(self) - --core_cflags = '${GLIB2_CFLAGS};' # glib --core_cflags += '${GMODULE2_CFLAGS}' # gmodule - --core_ldflags = '${GLIB2_LDFLAGS};' # glib --core_ldflags += '${GMODULE2_LDFLAGS}' # gmodule -+print("=== DEBUG: CMAKE_CURRENT_SOURCE_DIR " + "${CMAKE_CURRENT_SOURCE_DIR}") -+ -+# glib -+core_cflags = '${GLIB2_CFLAGS};' -+core_ldflags = '${GLIB2_LDFLAGS};' -+ -+# gmodule -+core_cflags += '${GMODULE2_CFLAGS}' -+core_ldflags += '${GMODULE2_LDFLAGS}' - - core_include_dirs = set() - core_extra_compile_flags = set() -@@ -39,7 +52,7 @@ - if i == '': - continue - elif i.startswith('-I'): -- core_include_dirs.add(i[2:]) -+ core_include_dirs.add(process_cmake_path(i[2:])) - else: - core_extra_compile_flags.add(i) - -@@ -53,15 +66,18 @@ - elif i.startswith('-l'): - core_libraries.add(i[2:]) - elif i.startswith('-L'): -- core_library_dirs.add(i[2:]) -+ core_library_dirs.add(process_cmake_path(i[2:])) - else: - core_library_other_flags.add(i) - --ext_modules=[ -+ext_modules = [ - Extension("dionaea.core", - ['${CMAKE_CURRENT_SOURCE_DIR}/binding.pyx'], - language="c", -- include_dirs=['${CMAKE_CURRENT_SOURCE_DIR}/../../include', '${CMAKE_CURRENT_SOURCE_DIR}/../../'] + list(core_include_dirs), -+ include_dirs=[ -+ process_cmake_path('${CMAKE_CURRENT_SOURCE_DIR}/../../include'), -+ process_cmake_path('${CMAKE_CURRENT_SOURCE_DIR}/../../') -+ ] + list(core_include_dirs), - extra_compile_args=list(core_extra_compile_flags), - libraries=list(core_libraries), - library_dirs=list(core_library_dirs), -@@ -71,11 +87,20 @@ - ), - ] - -+d_packages = find_packages(process_cmake_path('${CMAKE_CURRENT_SOURCE_DIR}')) -+print("=== DEBUG: d_packages " + str(d_packages)) -+ -+d_dir = {'': process_cmake_path('${CMAKE_CURRENT_SOURCE_DIR}')} -+print("=== DEBUG: d_dir " + str(d_dir)) -+ - setup( -- name = 'dionaea', -+ name='dionaea', - version="${DIONAEA_VERSION}", -- cmdclass = {'build_ext': build_ext}, -- ext_modules = ext_modules, -- packages=find_packages(base_path='${CMAKE_CURRENT_SOURCE_DIR}'), -- package_dir={'': '${CMAKE_CURRENT_SOURCE_DIR}'} -+ cmdclass={ -+ 'build_ext': CustomBuildExt, -+ 'install': CustomInstall, -+ }, -+ ext_modules=ext_modules, -+ packages=d_packages, -+ package_dir=d_dir - ) diff --git a/dionaea-20_fix_cython3.1_build.patch b/dionaea-20_fix_cython3.1_build.patch deleted file mode 100644 index 680cd7a..0000000 --- a/dionaea-20_fix_cython3.1_build.patch +++ /dev/null @@ -1,34 +0,0 @@ -From f5973bc298b6420456b762b1506f87c2aa524d8b Mon Sep 17 00:00:00 2001 -From: Charalampos Stratakis -Date: Tue, 5 Aug 2025 16:00:47 +0200 -Subject: [PATCH] Replace __pyx_empty_tuple with PyTuple_New(0) - -__pyx_empty_tuple wasn't part of Cython's public API and -the underlying mechanism for generating an empty tuple changed -with Cython 3.1. - -This change ensures that the proper macro is used and makes -dionaea compile with Cython >= 3.1. - -See also: https://github.com/cython/cython/pull/6351 ---- - modules/python/module.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/modules/python/module.h b/modules/python/module.h -index 726a7892..9b842df9 100644 ---- a/modules/python/module.h -+++ b/modules/python/module.h -@@ -9,9 +9,9 @@ - #include - #include "connection.h" - --#define PY_CLONE(T) (T)->ob_type->tp_new((T)->ob_type, __pyx_empty_tuple, NULL) --#define PY_NEW(T) (((PyTypeObject*)(T))->tp_new( (PyTypeObject*)(T), __pyx_empty_tuple, NULL)) --#define PY_INIT(P, O) (P)->ob_type->tp_init((O), __pyx_empty_tuple, NULL) -+#define PY_CLONE(T) (T)->ob_type->tp_new((T)->ob_type, PyTuple_New(0), NULL) -+#define PY_NEW(T) (((PyTypeObject*)(T))->tp_new( (PyTypeObject*)(T), PyTuple_New(0), NULL)) -+#define PY_INIT(P, O) (P)->ob_type->tp_init((O), PyTuple_New(0), NULL) - #define REFCOUNT(T) printf("obj refcount %i\n", (int)(T)->ob_refcnt) - - #define REMOTE(C) (C)->remote diff --git a/dionaea.logrotate b/dionaea.logrotate index 73a40b5..6c09b4c 100644 --- a/dionaea.logrotate +++ b/dionaea.logrotate @@ -2,9 +2,10 @@ # in this case -p /opt/dionaea/var/run/dionaea.pid # adjust the path to your needs /var/log/dionaea/dionaea.log /var/log/dionaea/dionaea-errors.log { - daily - rotate 365 + notifempty missingok + rotate 31 + daily compress delaycompress su dionaea dionaea diff --git a/dionaea.service b/dionaea.service index 238a653..0cb4009 100644 --- a/dionaea.service +++ b/dionaea.service @@ -5,8 +5,6 @@ After=multi-user.target [Service] Type=forking -Restart=on-abort -RestartSec=1s PIDFile=/var/run/dionaea.pid EnvironmentFile=-/etc/sysconfig/dionaea ExecStart=/usr/sbin/dionaea -D $DUSER $DGROUP $DWORKDIR $LOGLEVELS $LOGDOMAINS $PIDFILE $MISC diff --git a/dionaea.spec b/dionaea.spec index 99687ff..031eadd 100644 --- a/dionaea.spec +++ b/dionaea.spec @@ -1,20 +1,18 @@ Name: dionaea -Version: 0.11.0 +Version: 0.7.0 Summary: Low interaction honeypot - -%if 0%{?rhel} -# Group needed for EPEL Group: Applications/System -%endif + +# Show as the RPM release number (keep same number line for tarball and git builds) +%global rel 5 # Dionaea package is licensed with GPLv2 # On top of that it is granting one exception extra - it is permitted by the license # to link modified binary files in the src/ directory against the openssl libraries. -# Automatically converted from old format: GPLv2 with exceptions - review is highly recommended. -License: LicenseRef-Callaway-GPLv2-with-exceptions +License: GPLv2 with exceptions URL: https://dionaea.readthedocs.io/ # Current source: -VCS: git:https://github.com/DinoTools/dionaea +# https://github.com/DinoTools/dionaea # Original site (dissappeared in 2013, but still available from archives): # https://dionaea.carnivore.it -> https://web.archive.org/web/20150820080019/https://dionaea.carnivore.it # Another forks: @@ -33,31 +31,31 @@ VCS: git:https://github.com/DinoTools/dionaea # Specification of the used GIT commit %global gituser DinoTools %global gitname dionaea -%global commit 4e459f1b672a5b4c1e8335c0bff1b93738019215 -%global gitdate 20210228 +%global commit 079d014f47a71cc85a86bd836a9a4533e98d7385 +%global gitdate 20180501 %global shortcommit %(c=%{commit}; echo ${c:0:7}) # Use systemd unit files on Fedora and RHEL 7 and above. -%bcond_without systemd +%global _with_systemd 1 + %if (0%{?rhel} && 0%{?rhel} < 7) -%bcond_with systemd + %global _with_systemd 0 %endif -# By default build from official release -# leave option here to build from git snapshot instead -%bcond_without snapshot +# Build source is github release=1 or git commit=0 +%global build_release 1 -%if 0%{?with_snapshot} -# not using 0. on the beginning of release as this git snapshot is past the 0.7.0 release -Release: %autorelease -s %{gitdate}git%{shortcommit} -Source0: https://github.com/%{gituser}/%{gitname}/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz -%else -Release: %autorelease +%if 0%{?build_release} > 0 +Release: %{rel}%{?dist} Source0: https://github.com/%{gituser}/%{gitname}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz -%endif +%else +# not using 0. on the beginning of release as this git snapshot is past the 0.6.0 release +Release: %{rel}.%{gitdate}git%{shortcommit}%{?dist}.2 +Source0: https://github.com/%{gituser}/%{gitname}/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz +%endif #build_release Source1: %{name}.sysconfig Source2: %{name}.initd @@ -66,63 +64,66 @@ Source4: %{name}.logrotate +# Use the glib CFLAGS and LDFLAGS during build where necessary +# https://github.com/DinoTools/dionaea/issues/161 +# https://github.com/DinoTools/dionaea/pull/160 +# Merged in in https://github.com/DinoTools/dionaea/commit/1748f3b3936aa1da2d92500251ae8010fe181dfc +# Patch1: dionaea-01_glib.patch + +# Get rid of the warning about not used return value from chdir. +# https://github.com/DinoTools/dionaea/issues/162 +# https://github.com/DinoTools/dionaea/pull/163 +# Merged in in https://github.com/DinoTools/dionaea/commit/ea5d54060af53250abfe3dde9f36af399fa30524 +# Patch2: dionaea-02_warnerror.patch + # ipv6 structures in are used by the # ipv6 structures needs explicit CFLAGS " -D_GNU_SOURCE" to compile on linux -# just cosmetics -# Reported https://github.com/DinoTools/dionaea/pull/343 +# just cosmetics - not reported yet to upstream Patch3: dionaea-03_in6_pktinfo.patch +# Unbundle the pyev library and use the system one +# https://github.com/DinoTools/dionaea/issues/166 +Patch4: dionaea-04_pyev.patch + +# Have a dedicated variable for the python sitelib, so it can be easily changed externally when building the system package. +# https://github.com/DinoTools/dionaea/issues/164 +# https://github.com/DinoTools/dionaea/pull/165 +# Merged in in https://github.com/DinoTools/dionaea/commit/890ae5e85f55130be928b03b751b5f7cd1032f21 +# Patch5: dionaea-05_sitelib.patch + +# Fix warnings during the generation of documentation +# https://github.com/DinoTools/dionaea/issues/170 +# https://github.com/DinoTools/dionaea/pull/179 +Patch6: dionaea-06_docswarn.patch + +# Fix configure not finding the cython on RHEL7/Centos7 +# https://github.com/DinoTools/dionaea/pull/180 +# Merged to upstream with 0.7.0 +# Patch7: dionaea-07_cython_el7.patch # Fix hardcoded lib dir # https://github.com/DinoTools/dionaea/pull/181 -# https://github.com/DinoTools/dionaea/pull/209 -# Patch8: dionaea-08_modules_libdir.patch +Patch8: dionaea-08_modules_libdir.patch + +# Call setgroups before setresuid +# https://github.com/DinoTools/dionaea/issues/177 +# https://github.com/DinoTools/dionaea/pull/178 +Patch9: dionaea-09_setgroups_before_setresuid.patch + +# Call chdir before chroot +# https://github.com/DinoTools/dionaea/issues/176 +# https://github.com/DinoTools/dionaea/pull/175 +# Merged upstream in 0.7.0 +# Patch10: dionaea-10_chdir_before_chroot.patch + +# Not use obsolete m4 macros +# https://github.com/DinoTools/dionaea/pull/182 +# Merged upstream in 0.7.0 +# Patch11: dionaea-11_obsolete_m4.patch -# Patch to explicitly state the python module version to the setup.py -# Patch12: dionaea-12_py_module_version.patch - -# Replace deprecated PyUnicode_GetSize with PyUnicode_GetLength -# Patch13: dionaea-13_GetSize_deprecated.patch - -# Trying to identify the mole -# Patch14: dionaea-14_safe_load.patch - -# Python 3.13 compatibility -# Change PyEval_CallObject to PyObject_CallObject -# Reported https://github.com/DinoTools/dionaea/pull/343 -Patch15: dionaea-15_pyeval_callobject.patch - -# Cmake list APPEND operation is adding unwanted semicolon to CFLAGS -# Reported https://github.com/DinoTools/dionaea/pull/343 -Patch16: dionaea-16_cmake_append_flags.patch - -# Cmake dirs -# Reported https://github.com/DinoTools/dionaea/pull/343 -Patch17: dionaea-17_cmake_dirs.patch - -# A lot of regexes in dionaea project is not declared as raw strings -# python3 tries to resolve the escape sequences -# Reported https://github.com/DinoTools/dionaea/pull/343 -Patch18: dionaea-18_python_regex.patch - -# Switch from distutils to setuptools -# do not install to egg directory -# Reported https://github.com/DinoTools/dionaea/pull/343 -Patch19: dionaea-19_setuptools.patch - -# Fix compatibility with Cython >= 3.1 -# Reported https://github.com/DinoTools/dionaea/pull/345 -Patch20: dionaea-20_fix_cython3.1_build.patch - -%if 0%{?fedora} || 0%{?rhel} >= 8 -BuildRequires: cmake -BuildRequires: cmake-rpm-macros -%else -BuildRequires: cmake3 -%endif - -BuildRequires: make +BuildRequires: autoconf +BuildRequires: automake BuildRequires: libtool BuildRequires: flex BuildRequires: bison @@ -134,7 +135,7 @@ BuildRequires: libev-devel BuildRequires: libemu-devel BuildRequires: udns-devel BuildRequires: libnl3-devel -BuildRequires: glib2-devel +BuildRequires: glib-devel BuildRequires: curl-devel BuildRequires: readline-devel BuildRequires: libpcap-devel @@ -143,10 +144,9 @@ BuildRequires: sqlite BuildRequires: openssl-devel BuildRequires: python%{python3_pkgversion}-devel -BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-Cython -%if 0%{?with_systemd} +%if 0%{?_with_systemd} BuildRequires: systemd-units %endif @@ -166,14 +166,13 @@ BuildRequires: python-sphinx %else BuildRequires: python3-sphinx %endif -BuildRequires: make Requires: logrotate # Base package can't run without the python module Requires: python%{python3_pkgversion}-dionaea -%if 0%{?with_systemd} +%if 0%{?_with_systemd} %{?systemd_requires} %else Requires(post): chkconfig @@ -182,33 +181,38 @@ Requires(preun): initscripts Requires(postun): initscripts %endif +Requires(pre): shadow-utils %description -Dionaea is low interaction honeypot. It is meant to be a nepenthes successor, -embedding python as scripting language, using libemu to detect shell-codes, -supporting ipv6 and TLS. +Dionaea honeypot is meant to be a nepenthes successor, embedding python +as scripting language, using libemu to detect shell-codes, supporting +ipv6 and TLS. + # ============= documentation package ========================================== %package doc Summary: Documentation for the dionaea honeypot package +Group: Development/Libraries BuildArch: noarch %description doc This is documentation for the dionaea honeypot package. -Dionaea is low interaction honeypot. It is meant to be a nepenthes successor, -embedding python as scripting language, using libemu to detect shell-codes, -supporting ipv6 and TLS. +Dionaea honeypot is meant to be a nepenthes successor, embedding python +as scripting language, using libemu to detect shell-codes, supporting +ipv6 and TLS. # ============= python3 package ================================================ %package -n python%{python3_pkgversion}-%{gitname} Summary: Python3 binding for the dionaea honeypot +Group: Development/Libraries %{?python_provide:%python_provide python%{python3_pkgversion}-%{gitname}} # Runtime dependencies +Requires: python%{python3_pkgversion}-pyev Requires: python%{python3_pkgversion}-bson Requires: python%{python3_pkgversion}-PyYAML Requires: python%{python3_pkgversion}-scapy @@ -221,75 +225,114 @@ This is a Python3 library that gives access to dionaea honeypot functionality. # ============= preparation ==================================================== %prep -%if 0%{?with_snapshot} -# Build from git snapshot -%autosetup -p 1 -n %{gitname}-%{commit} -N -%else +%if 0%{?build_release} > 0 # Build from git release version %autosetup -p 1 -n %{gitname}-%{version} -N + +%else +# Build from git commit +%autosetup -p 1 -n %{gitname}-%{commit} -N %endif +# Re-initialize the git repo, to track changes even on files ignored by the upstream +rm -rf .git +# Remove the .gitignore to prevent ignoring changes in some files +rm -f .gitignore +git init -q +git config user.email "rpmbuild" +git config user.name "rpmbuild" +git add . +git commit -a -m "base" + %autopatch -p 1 # Unbundle the pyev library and use the system one # https://github.com/DinoTools/dionaea/issues/169 rm -rf modules/python/pyev -# Fix paths: -# - remove the hardcoded prefix /opt/dionaea -# - move /var/dionaea to /var/lib/dionaea according to Linux FHS -# https://github.com/DinoTools/dionaea/issues/168 -# https://github.com/DinoTools/dionaea/issues/256 -sed -i -e "s|/opt/dionaea[/]*|/|g; s|/var/dionaea|/var/lib/dionaea|g;" \ - modules/python/util/gnuplotsql.py \ - modules/python/util/readlogsqltree.py \ - doc/source/tips_and_tricks.rst \ - doc/html/index.html \ - doc/source/old/configuration.rst \ - doc/source/old/seagfaults.rst \ - doc/source/old/utils.rst \ - doc/source/run.rst \ - doc/source/tips_and_tricks.rst +# Fix paths - remove the hardcoded prefix /opt/dionaea +# https://github.com/DinoTools/dionaea/issues/168 +sed -i -e "s|/opt/dionaea[/]*|/|g;" \ + modules/python/util/readlogsqltree.py \ + modules/python/util/logsql2postgres.py \ + modules/python/util/gnuplotsql.py \ + modules/python/util/updateccs.py \ + src/dionaea.c \ + vagrant/build.sh + + +# replace in documentation the prefix/destdir /opt/dionaea with variable ${DESTDIR} +# https://github.com/DinoTools/dionaea/issues/168 +sed -i -e "s|/opt/dionaea/var/dionaea|${DESTDIR}/var/lib/dionaea|g;" \ + doc/html/index.html \ + doc/source/tips_and_tricks.rst \ + doc/source/old/configuration.rst \ + doc/source/old/utils.rst \ + modules/python/util/readlogsqltree.py + + +# move /var/dionaea to /var/lib/dionaea according to Linux FHS +# Fedora specific - not reported upstream +sed -i -e "s|/var/dionaea|/var/lib/dionaea|g;" \ + modules/python/util/readlogsqltree.py \ + modules/python/util/gnuplotsql.py # Change var/dionaea to var/lib/dionaea for the location of sip user database sed -i -e "s|var/dionaea|var/lib/dionaea|g;" \ modules/python/dionaea/sip/extras.py - -# Scripts should run with /usr/bin/python3 shabang and not /usr/bin/env python3 or /bin/python3 +# move /var/dionaea to /var/lib/dionaea according to Linux FHS # Fedora specific - not reported upstream -sed -i -e 's|#!/bin/python3|#!/usr/bin/python3|g; s|#!/usr/bin/env python3|#!/usr/bin/python3|g;' \ +sed -i -e 's|\$(localstatedir)/dionaea/|\$(localstatedir)/lib/dionaea/|g;' \ + Makefile.am + +# move /var/dionaea to /var/lib/dionaea according to Linux FHS +# Fedora specific - not reported upstream +sed -i -e 's|@LOCALESTATEDIR@/dionaea/|@LOCALESTATEDIR@/lib/dionaea/|g;' \ + conf/dionaea.cfg.in \ + conf/ihandlers/fail2ban.yaml.in \ + conf/ihandlers/log_db_sql.yaml.in \ + conf/ihandlers/log_incident.yaml.in \ + conf/ihandlers/log_json.yaml.in \ + conf/ihandlers/log_sqlite.yaml.in \ + conf/ihandlers/virustotal.yaml.in \ + conf/services/sip.yaml.in \ + conf/services/http.yaml.in \ + conf/services/ftp.yaml.in \ + conf/services/tftp.yaml.in \ + conf/services/upnp.yaml.in + +# move the logs from /var/lib/dionaea to /var/log/dionaea +sed -i -e 's|@LOCALESTATEDIR@/lib/dionaea/dionaea.log|@LOCALESTATEDIR@/log/dionaea/dionaea.log|g; + s|@LOCALESTATEDIR@/lib/dionaea/dionaea-errors.log|@LOCALESTATEDIR@/log/dionaea/dionaea-errors.log|g; +' conf/dionaea.cfg.in + +# Change the hardoced minor python3.2 version especially in shabang to python3 +# https://github.com/DinoTools/dionaea/issues/169 +sed -i -e 's|python3.2|python3|g;' \ + m4/az_python.m4 \ + doc/html/index.html \ + modules/python/util/readlogsqltree.py + +# Scripts should run with /usr/bin/python3 shabang and not /bin/python3 +sed -i -e 's|#!/bin/python3|#!/usr/bin/python3|;' \ modules/python/util/readlogsqltree.py \ modules/python/util/logsql2postgres.py \ modules/python/util/gnuplotsql.py \ modules/python/util/updateccs.py -# Create a sysusers.d config file -cat >dionaea.sysusers.conf </dev/null || groupadd -r dionaea || : +getent passwd dionaea >/dev/null || \ + useradd -r -g dionaea -d /home/dionaea -s /sbin/nologin \ + -c "Dionaea honeypot" dionaea || : # ============= package files ================================================== %files -%license LICENSE src/LICENSE.openssl -%doc README.md CHANGELOG.rst CONTRIBUTING.rst +%license LICENSE +%doc README.md %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/* %config(noreplace) %{_sysconfdir}/sysconfig/%{name} %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %{_sbindir}/%{name} +%{_bindir}/gnuplotsql +%{_bindir}/readlogsqltree %{_libdir}/%{name}/ %exclude %{_libdir}/%{name}/python.so %{_mandir}/man1/%{name}.1.* @@ -409,23 +460,19 @@ install -m0644 -D dionaea.sysusers.conf %{buildroot}%{_sysusersdir}/dionaea.conf %attr(0750,dionaea,dionaea) %dir %{_sharedstatedir}/%{name}/binaries %attr(0750,dionaea,dionaea) %dir %{_sharedstatedir}/%{name}/bistreams %attr(-,dionaea,dionaea) %{_sharedstatedir}/%{name}/roots/ -%attr(-,dionaea,dionaea) %{_sharedstatedir}/%{name}/dionaea.sqlite -%attr(-,dionaea,dionaea) %{_sharedstatedir}/%{name}/dionaea_incident.sqlite -%attr(-,dionaea,dionaea) %{_sharedstatedir}/%{name}/sipaccounts.sqlite -%{_sharedstatedir}/%{name}/http - -# TODO python utils currently not packed -# %%{_bindir}/gnuplotsql -# %%{_bindir}/readlogsqltree +%attr(-,dionaea,dionaea) %{_sharedstatedir}/%{name}/share/ +%attr(-,dionaea,dionaea) %{_sharedstatedir}/%{name}/dionaea.sqlite +%attr(-,dionaea,dionaea) %{_sharedstatedir}/%{name}/dionaea_incident.sqlite +%attr(-,dionaea,dionaea) %{_sharedstatedir}/%{name}/sipaccounts.sqlite -%if 0%{?with_systemd} + +%if 0%{?_with_systemd} %{_unitdir}/*.service %else %{_initrddir}/* %endif -%{_sysusersdir}/dionaea.conf @@ -438,10 +485,67 @@ install -m0644 -D dionaea.sysusers.conf %{buildroot}%{_sysusersdir}/dionaea.conf %files -n python%{python3_pkgversion}-%{gitname} %license LICENSE %doc README.md +%dir %{python3_sitearch}/%{name} %{_libdir}/%{name}/python.so -%{python3_sitearch}/%{name}* -# %%{python3_sitearch}/%%{name}-*egg-info +%{python3_sitearch}/%{name}/* +%{python3_sitearch}/%{name}-*egg-info %changelog -%autochangelog +* Mon Jul 30 2018 Adam Williamson - 0.7.0-5 +- Disable -Werror to fix build (see upstream #225) + +* Thu Jul 12 2018 Fedora Release Engineering - 0.7.0-4.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 0.7.0-4.1 +- Rebuilt for Python 3.7 + +* Mon Jun 18 2018 Michal Ambroz 0.7.0-4 +- anothe improvement of logrotate script +- add the empty files for dionaea.sqlite dionaea_incident.sqlite sipaccounts.sqlite + +* Mon Jun 04 2018 Michal Ambroz 0.7.0-3 +- fix logrotate script +- use the current version of openssl (needs to be same as curllib is using) + +* Thu May 10 2018 Michal Ambroz 0.7.0-1 +- bump to release 0.7.0 + +* Mon May 07 2018 Michal Ambroz 0.6.0-10.20180326git1748f3b +- cosmetics, changing description in the systemd service + +* Mon Apr 30 2018 Michal Ambroz 0.6.0-9.20180326git1748f3b +- add runtime python dependencies +- fix location of sip user database + +* Mon Apr 30 2018 Iryna Shcherbina - 0.6.0-8.20180326git1748f3b +- Fix condition for python-sphinx on Fedora + +* Fri Apr 20 2018 Michal Ambroz 0.6.0-7.20180326git1748f3b +- fix the link creation to python core library + +* Mon Apr 09 2018 Michal Ambroz 0.6.0-6.20180326git1748f3b +- fix log rotation, move the logs to /var/log/dionaea +- create user dionaea:dionaea +- grant shared stare dir/files to the dionaea user account + +* Mon Apr 09 2018 Michal Ambroz 0.6.0-5.20180326git1748f3b +- clean-up based on review in #1564716 + +* Fri Apr 06 2018 Michal Ambroz 0.6.0-4.20180326git1748f3b +- update to current git snapshot, add logrotate and service files + +* Wed Mar 21 2018 Michal Ambroz 0.6.0-3.20180313gitd2efb76 +- fix openssl dependency for EPEL7 build + +* Wed Mar 21 2018 Michal Ambroz 0.6.0-2.20180313gitd2efb76 +- bump to commit d2efb768e753a7f1ddca6dbf402548d741f33574 +- unbundle pyev and refer to system-installed pyev +- remove the hardcoded default prefix /opt/dionaea +- move from /var/dionaea to /var/lib/dionaea +- fix the doc generation warnings + +* Thu Dec 28 2017 Michal Ambroz 0.6.0-1 +- initial package + diff --git a/sources b/sources index 90fe3da..49b9e61 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dionaea-0.11.0-4e459f1.tar.gz) = d9f26b2b88d86ff5d94c80f4b0b7a22dcff062ced3cba64b295a1927e39d010d8c8dfc4e6771a1c8ed925955ea9490c50fc8f16d34e6884df24b77f9fc36326b +SHA512 (dionaea-0.7.0.tar.gz) = fec39d97ff48f3f72d3e1406c4e6889567d31fe7bf15d7934b23d6fa81d74a7051d3a865019ff5f308f69dbfc29d21d0a98abccdd502261368220ee73a570cf8