2 Commits
Author SHA1 Message Date
spacefreak c789d056b2 fix and re-package for Python 3.14 2026-08-24 14:01:39 +02:00
spacefreak 364368e3a5 use new_event_loop instead of get_event_loop 2026-08-24 13:33:51 +02:00
5 changed files with 72 additions and 76 deletions
-3
View File
@@ -1,3 +0,0 @@
include LICENSE README.md
recursive-include docs *
recursive-include misc *
+13 -5
View File
@@ -1,17 +1,20 @@
# uvscand # uvscand
A python daemon to perform virus scans with uvscan (McAfee) over TCP socket, mainly used in conjunction with the antivirus module of rspamd. A python daemon to perform virus scans with uvscan (McAfee) over TCP socket, mainly used in conjunction with the antivirus module of rspamd.
## Developer information
Everyone who wants to improve or extend this project is very welcome.
## Installation ## Installation
```bash
git clone https://github.com/spacefreak86/uvscand git clone https://github.com/spacefreak86/uvscand
cd uvscand cd uvscand
python3 setup.py build
python3 setup.py install
# build and install uvscand package
python3 -m build
python3 -m pip install .
# copy config file
cp docs/uvscand.conf /etc/ cp docs/uvscand.conf /etc/
# install systemd service
cat << 'EOF'>> /etc/systemd/system/uvscand.service cat << 'EOF'>> /etc/systemd/system/uvscand.service
[Unit] [Unit]
Description=uvscand Service Description=uvscand Service
@@ -40,3 +43,8 @@ uvscan {
} }
EOF EOF
systemctl restart rspamd systemctl restart rspamd
```
## Developer information
Everyone who wants to improve or extend this project is very welcome.
+25
View File
@@ -0,0 +1,25 @@
[tool.setuptools.packages.find]
include = ["uvscand"]
[project]
name = "uvscand"
version = "0.0.6"
requires-python = ">=3.11"
authors = [
{name = "Thomas Oettli", email = "spacefreak@noop.ch"}
]
maintainers = [
{name = "Thomas Oettli", email = "spacefreak@noop.ch"}
]
description = "A python daemon to perform virus scans with uvscan (McAfee) over TCP socket."
readme = "README.md"
license = "GPL-3.0-only"
keywords = ["uvscan", "virus", "rspamd", "mail"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: System Administrators",
"Programming Language :: Python :: 3"
]
[project.scripts]
uvscand = "uvscand:main"
-34
View File
@@ -1,34 +0,0 @@
from setuptools import setup
def read_file(fname):
with open(fname, 'r') as f:
return f.read()
setup(name = "uvscand",
version = "0.0.5",
author = "Thomas Oettli",
author_email = "spacefreak@noop.ch",
description = "A python daemon to perform virus scans with uvscan (McAfee) over TCP socket.",
license = "GPL 3",
keywords = "rspamd uvscan",
url = "https://github.com/spacefreak86/uvscand",
packages = ["uvscand"],
long_description = read_file("README.md"),
classifiers = [
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
"Development Status :: 3 - Alpha",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Topic :: Communications :: Email :: Virus"
],
entry_points = {
"console_scripts": [
"uvscand=uvscand:main"
]
},
python_requires = ">=3.7"
)
+1 -1
View File
@@ -236,7 +236,7 @@ def main():
AIO.config = config AIO.config = config
# start uvscan workers # start uvscan workers
loop = asyncio.get_event_loop() loop = asyncio.new_event_loop()
workers = [loop.create_task(uvscan_worker(AIO.queue)) for _ in range(args.maxprocs)] workers = [loop.create_task(uvscan_worker(AIO.queue)) for _ in range(args.maxprocs)]
# start server # start server