Merge pull request #11028 from 4fury-c3440d8/b1

updates.
This commit is contained in:
Rmys
2022-11-17 16:12:57 +03:00
committed by GitHub
44 changed files with 5353 additions and 1055 deletions
@@ -0,0 +1,20 @@
--- lxpanel-0.10.1/plugins/task-button.c 2021-01-29 23:28:51.000000000 +0100
+++ lxpanel-0.10.1/plugins/task-button.c.new 2022-09-08 12:08:46.579475426 +0200
@@ -487,6 +487,9 @@ static void task_raise_window(TaskButton
if ((tk->desktop != ALL_WORKSPACES) && (tk->desktop != tb->desktop))
Xclimsgx(xscreen, RootWindowOfScreen(xscreen), a_NET_CURRENT_DESKTOP, tk->desktop, 0, 0, 0, 0);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ Xclimsgx(xscreen, tk->win, a_NET_ACTIVE_WINDOW, 2, time, 0, 0, 0);
+#else
/* Raise the window. We can use NET_ACTIVE_WINDOW if the window manager supports it.
* Otherwise, do it the old way with XMapRaised and XSetInputFocus. */
if (tb->flags.use_net_active)
@@ -510,6 +513,7 @@ static void task_raise_window(TaskButton
if (attr.map_state == IsViewable)
XSetInputFocus(xdisplay, tk->win, RevertToNone, time);
}
+#endif
/* Change viewport if needed. */
XWindowAttributes xwa;
@@ -0,0 +1,333 @@
diff -Naurp lxpanel-0.10.1.orig/plugins/batt/batt.c lxpanel-0.10.1/plugins/batt/batt.c
--- lxpanel-0.10.1.orig/plugins/batt/batt.c 2019-03-01 00:31:41.000000000 +0100
+++ lxpanel-0.10.1/plugins/batt/batt.c 2022-10-14 11:14:57.009987046 +0200
@@ -446,6 +446,23 @@ static void updateSizes(lx_battery *b)
b->width = b->length;
}
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gboolean enable_query_tooltip(gpointer p_data)
+{
+ GtkWidget *widget = p_data;
+ gtk_widget_set_has_tooltip(widget, TRUE);
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean batt_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer p_data)
+{
+ gtk_widget_set_has_tooltip(widget, FALSE);
+ GtkWidget *parent = gtk_widget_get_toplevel(widget);
+ gtk_widget_set_tooltip_text(parent, gtk_widget_get_tooltip_text(widget));
+ g_timeout_add(2 * G_TIME_SPAN_MILLISECOND, enable_query_tooltip, widget);
+ return TRUE;
+}
+#endif
static GtkWidget * constructor(LXPanel *panel, config_setting_t *settings)
{
@@ -564,6 +581,10 @@ static GtkWidget * constructor(LXPanel *
/* Start the update loop */
lx_b->timer = g_timeout_add_seconds( 9, (GSourceFunc) update_timout, (gpointer) lx_b);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(lx_b->drawingArea, "query-tooltip", G_CALLBACK(batt_query_tooltip), NULL);
+#endif
+
RET(p);
}
diff -Naurp lxpanel-0.10.1.orig/plugins/launch-button.c lxpanel-0.10.1/plugins/launch-button.c
--- lxpanel-0.10.1.orig/plugins/launch-button.c 2019-01-13 22:35:07.000000000 +0100
+++ lxpanel-0.10.1/plugins/launch-button.c 2022-10-14 11:14:57.009987046 +0200
@@ -39,6 +39,24 @@ struct _LaunchButton
};
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gboolean enable_query_tooltip(gpointer p_data)
+{
+ GtkWidget *widget = p_data;
+ gtk_widget_set_has_tooltip(widget, TRUE);
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean launch_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer p_data)
+{
+ gtk_widget_set_has_tooltip(widget, FALSE);
+ GtkWidget *parent = gtk_widget_get_toplevel(widget);
+ gtk_widget_set_tooltip_text(parent, gtk_widget_get_tooltip_text(widget));
+ g_timeout_add(2 * G_TIME_SPAN_MILLISECOND, enable_query_tooltip, widget);
+ return TRUE;
+}
+#endif
+
static void launch_button_job_finished(FmJob *job, LaunchButton *self)
{
GtkWidget *image;
@@ -179,6 +197,9 @@ LaunchButton *launch_button_new(LXPanel
return NULL;
}
}
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(GTK_WIDGET(self), "query-tooltip", G_CALLBACK(launch_query_tooltip), NULL);
+#endif
return self;
}
diff -Naurp lxpanel-0.10.1.orig/plugins/monitors/monitors.c lxpanel-0.10.1/plugins/monitors/monitors.c
--- lxpanel-0.10.1.orig/plugins/monitors/monitors.c 2019-01-13 22:37:42.000000000 +0100
+++ lxpanel-0.10.1/plugins/monitors/monitors.c 2022-10-14 11:14:57.010987046 +0200
@@ -220,6 +220,24 @@ monitor_set_foreground_color(MonitorsPlu
* End of monitor functions *
******************************************************************************/
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gboolean enable_query_tooltip(gpointer p_data)
+{
+ GtkWidget *widget = p_data;
+ gtk_widget_set_has_tooltip(widget, TRUE);
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean monitor_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer p_data)
+{
+ gtk_widget_set_has_tooltip(widget, FALSE);
+ GtkWidget *parent = gtk_widget_get_toplevel(widget);
+ gtk_widget_set_tooltip_text(parent, gtk_widget_get_tooltip_text(widget));
+ g_timeout_add(2 * G_TIME_SPAN_MILLISECOND, enable_query_tooltip, widget);
+ return TRUE;
+}
+#endif
+
/******************************************************************************
* CPU monitor *
******************************************************************************/
@@ -285,6 +303,9 @@ cpu_tooltip_update (Monitor *m)
tooltip_text = g_strdup_printf(_("CPU usage: %.2f%%"),
m->stats[ring_pos] * 100);
gtk_widget_set_tooltip_text(m->da, tooltip_text);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(m->da, "query-tooltip", G_CALLBACK(monitor_query_tooltip), NULL);
+#endif
g_free(tooltip_text);
}
}
@@ -387,6 +408,9 @@ mem_tooltip_update (Monitor *m)
m->stats[ring_pos] * m->total / 1024,
m->stats[ring_pos] * 100);
gtk_widget_set_tooltip_text(m->da, tooltip_text);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(m->da, "query-tooltip", G_CALLBACK(monitor_query_tooltip), NULL);
+#endif
g_free(tooltip_text);
}
}
diff -Naurp lxpanel-0.10.1.orig/plugins/netstat/statusicon.c lxpanel-0.10.1/plugins/netstat/statusicon.c
--- lxpanel-0.10.1.orig/plugins/netstat/statusicon.c 2019-01-13 22:35:07.000000000 +0100
+++ lxpanel-0.10.1/plugins/netstat/statusicon.c 2022-10-14 11:23:56.563275687 +0200
@@ -26,6 +26,24 @@
#include "statusicon.h"
#include "misc.h"
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gboolean enable_query_tooltip(gpointer p_data)
+{
+ GtkWidget *widget = p_data;
+ gtk_widget_set_has_tooltip(widget, TRUE);
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean statusicon_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer p_data)
+{
+ gtk_widget_set_has_tooltip(widget, FALSE);
+ GtkWidget *parent = gtk_widget_get_toplevel(widget);
+ gtk_widget_set_tooltip_text(parent, gtk_widget_get_tooltip_text(widget));
+ g_timeout_add(2 * G_TIME_SPAN_MILLISECOND, enable_query_tooltip, widget);
+ return TRUE;
+}
+#endif
+
struct statusicon *create_statusicon(LXPanel *panel, GtkWidget *box,
const char *filename, const char *tooltips, const char* icon_name)
{
@@ -48,6 +66,10 @@ struct statusicon *create_statusicon(LXP
/* tooltip */
gtk_widget_set_tooltip_text(newicon->main, tooltips);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(newicon->main, "query-tooltip", G_CALLBACK(statusicon_query_tooltip), NULL);
+#endif
+
return newicon;
}
diff -Naurp lxpanel-0.10.1.orig/plugins/task-button.c lxpanel-0.10.1/plugins/task-button.c
--- lxpanel-0.10.1.orig/plugins/task-button.c 2022-10-12 13:07:42.368701277 +0200
+++ lxpanel-0.10.1/plugins/task-button.c 2022-10-14 11:17:37.905073119 +0200
@@ -1135,6 +1135,24 @@ static void task_update_icon(TaskButton
task, NULL);
}
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gboolean enable_query_tooltip(gpointer p_data)
+{
+ GtkWidget *widget = p_data;
+ gtk_widget_set_has_tooltip(widget, TRUE);
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean task_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer p_data)
+{
+ gtk_widget_set_has_tooltip(widget, FALSE);
+ GtkWidget *parent = gtk_widget_get_toplevel(widget);
+ gtk_widget_set_tooltip_text(parent, gtk_widget_get_tooltip_text(widget));
+ g_timeout_add(2 * G_TIME_SPAN_MILLISECOND, enable_query_tooltip, widget);
+ return TRUE;
+}
+#endif
+
/* Draw the label and tooltip on a taskbar button. */
static void task_draw_label(TaskButton *tb, gboolean bold_style, gboolean force)
{
@@ -1372,6 +1390,11 @@ static gboolean task_button_leave_notify
{
TaskButton *tb = PANEL_TASK_BUTTON(widget);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ GtkWidget *parent = gtk_widget_get_toplevel(widget);
+ gtk_widget_set_has_tooltip(parent, FALSE);
+#endif
+
tb->entered_state = FALSE;
task_draw_label(tb, FALSE, FALSE);
if (tb->flags.flat_button)
@@ -1499,6 +1522,9 @@ TaskButton *task_button_new(Window win,
assemble_gui(self);
/* and finally set visibility on it */
gtk_widget_set_visible(GTK_WIDGET(self), self->n_visible > 0);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(GTK_WIDGET(self), "query-tooltip", G_CALLBACK(task_query_tooltip), NULL);
+#endif
return self;
}
diff -Naurp lxpanel-0.10.1.orig/plugins/weather/weatherwidget.c lxpanel-0.10.1/plugins/weather/weatherwidget.c
--- lxpanel-0.10.1.orig/plugins/weather/weatherwidget.c 2019-02-22 22:21:13.000000000 +0100
+++ lxpanel-0.10.1/plugins/weather/weatherwidget.c 2022-10-14 11:14:57.011987047 +0200
@@ -452,6 +452,24 @@ gtk_weather_size_allocate(GtkWidget * wi
gtk_widget_size_allocate(GTK_WIDGET(priv->hbox), &box_allocation);
}
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gboolean enable_query_tooltip(gpointer p_data)
+{
+ GtkWidget *widget = p_data;
+ gtk_widget_set_has_tooltip(widget, TRUE);
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean weather_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer p_data)
+{
+ gtk_widget_set_has_tooltip(widget, FALSE);
+ GtkWidget *parent = gtk_widget_get_toplevel(widget);
+ gtk_widget_set_tooltip_text(parent, gtk_widget_get_tooltip_text(widget));
+ g_timeout_add(2 * G_TIME_SPAN_MILLISECOND, enable_query_tooltip, widget);
+ return TRUE;
+}
+#endif
+
/**
* Helper function to update the widget based on internal change.
*
@@ -530,6 +548,10 @@ gtk_weather_render(GtkWeather * weather)
gtk_widget_set_tooltip_text(GTK_WIDGET(weather), tooltip_text);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(weather, "query-tooltip", G_CALLBACK(weather_query_tooltip), NULL);
+#endif
+
g_free(tooltip_text);
}
diff -Naurp lxpanel-0.10.1.orig/src/misc.c lxpanel-0.10.1/src/misc.c
--- lxpanel-0.10.1.orig/src/misc.c 2019-01-13 22:35:07.000000000 +0100
+++ lxpanel-0.10.1/src/misc.c 2022-10-14 11:55:44.518153250 +0200
@@ -1258,6 +1258,11 @@ static gboolean fb_button_enter(GtkImage
/* Handler for "leave-notify-event" signal on image that has highlighting requested. */
static gboolean fb_button_leave(GtkImage * widget, GdkEventCrossing * event, gpointer user_data)
{
+#if GTK_CHECK_VERSION(3, 0, 0)
+ GtkWidget *parent = gtk_widget_get_toplevel(GTK_WIDGET(widget));
+ gtk_widget_set_has_tooltip(parent, FALSE);
+#endif
+
if (gtk_image_get_storage_type(widget) == GTK_IMAGE_PIXBUF)
{
ImgData * data = (ImgData *) g_object_get_qdata(G_OBJECT(widget), img_data_id);
diff -Naurp lxpanel-0.10.1.orig/src/panel.c lxpanel-0.10.1/src/panel.c
--- lxpanel-0.10.1.orig/src/panel.c 2022-10-12 13:07:42.360701278 +0200
+++ lxpanel-0.10.1/src/panel.c 2022-10-14 11:14:57.012987047 +0200
@@ -401,6 +401,14 @@ static gboolean lxpanel_button_press(Gtk
return FALSE;
}
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gboolean lxpanel_enter_notify(GtkWidget* widget, GdkEventCrossing event, gpointer p_data)
+{
+ gtk_widget_set_has_tooltip(widget, FALSE);
+ return FALSE;
+}
+#endif
+
static void lxpanel_class_init(PanelToplevelClass *klass)
{
GObjectClass *gobject_class = (GObjectClass *)klass;
@@ -430,6 +438,7 @@ static void lxpanel_class_init(PanelTopl
widget_class->button_press_event = lxpanel_button_press;
widget_class->button_release_event = _lxpanel_button_release;
widget_class->motion_notify_event = _lxpanel_motion_notify;
+ widget_class->enter_notify_event = lxpanel_enter_notify;
signals[ICON_SIZE_CHANGED] =
g_signal_new("icon-size-changed",
diff -Naurp lxpanel-0.10.1.orig/src/plugin.c lxpanel-0.10.1/src/plugin.c
--- lxpanel-0.10.1.orig/src/plugin.c 2021-01-29 23:28:51.000000000 +0100
+++ lxpanel-0.10.1/src/plugin.c 2022-10-14 11:14:57.012987047 +0200
@@ -499,6 +499,24 @@ static void on_size_allocate(GtkWidget *
// _queue_panel_calculate_size(p);
}
+#if GTK_CHECK_VERSION(3, 0, 0)
+static gboolean enable_query_tooltip(gpointer p_data)
+{
+ GtkWidget *widget = p_data;
+ gtk_widget_set_has_tooltip(widget, TRUE);
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean plugin_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_tip, GtkTooltip *tooltip, gpointer p_data)
+{
+ gtk_widget_set_has_tooltip(widget, FALSE);
+ GtkWidget *parent = gtk_widget_get_toplevel(widget);
+ gtk_widget_set_tooltip_text(parent, gtk_widget_get_tooltip_text(widget));
+ g_timeout_add(2 * G_TIME_SPAN_MILLISECOND, enable_query_tooltip, widget);
+ return TRUE;
+}
+#endif
+
GtkWidget *lxpanel_add_plugin(LXPanel *p, const char *name, config_setting_t *cfg, gint at)
{
const LXPanelPluginInit *init;
@@ -587,6 +605,11 @@ GtkWidget *lxpanel_add_plugin(LXPanel *p
g_object_set_qdata(G_OBJECT(widget), lxpanel_plugin_qinit, (gpointer)init);
g_object_set_qdata_full(G_OBJECT(widget), lxpanel_plugin_qsize,
g_new0(GdkRectangle, 1), g_free);
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(widget, "query-tooltip", G_CALLBACK(plugin_query_tooltip), NULL);
+#endif
+
return widget;
}
+3 -1
View File
@@ -37,6 +37,8 @@
<Patches>
<Patch level="1">Correct_panel_size_under_GTK3.patch</Patch>
<Patch level="1">Correct_icon_grid_width_under_GTK3.patch</Patch>
<Patch level="1">mageia/mga-fix-deiconify.patch</Patch>
<Patch level="1">mageia/mga-partial-workaround-for-issue-41.patch</Patch>
<Patch level="1">lxpanel-0.10.1-volume-plugin-fix-mouse-scrolling.patch</Patch>
</Patches>
</Source>
@@ -91,7 +93,7 @@
<History>
<Update release="1">
<Date>2022-04-14</Date>
<Date>2022-11-16</Date>
<Version>0.10.1</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
@@ -71,9 +71,9 @@
<History>
<Update release="3">
<Date>2022-08-07</Date>
<Date>2022-11-15</Date>
<Version>0.5.91</Version>
<Comment>Version bump</Comment>
<Comment>Version bump.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
+9 -2
View File
@@ -13,8 +13,8 @@
<PartOf>desktop.misc</PartOf>
<Summary>Ayatana Indicators Shared Library.</Summary>
<Description>The Ayatana Indicators project is the continuation of Application Indicators and System Indicators, two technologies developed by Canonical Ltd. for the Unity7 desktop.</Description>
<Archive sha1sum="ed164d1d3cbc5d38f25ebcf16e83a5cbc3aaf533" type="targz">
https://github.com/AyatanaIndicators/libayatana-indicator/archive/refs/tags/0.9.1.tar.gz
<Archive sha1sum="3782a0b37e9aa2b754db579bd98086bc30128619" type="targz">
https://github.com/AyatanaIndicators/libayatana-indicator/archive/refs/tags/0.9.3.tar.gz
</Archive>
<BuildDependencies>
<Dependency>cmake</Dependency>
@@ -59,6 +59,13 @@
</Package>
<History>
<Update release="4">
<Date>2022-11-15</Date>
<Version>0.9.3</Version>
<Comment>Version bump.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
<Update release="3">
<Date>2022-08-07</Date>
<Version>0.9.1</Version>
+1 -1
View File
@@ -12,7 +12,7 @@ from pisi.actionsapi import get
def setup():
shelltools.export("CC", "/usr/bin/clang")
shelltools.export("CXX", "/usr/bin/clang++")
shelltools.export("LDFLAGS", "%s -fuse-ld=lld -ldl " % get.LDFLAGS())
#shelltools.export("LDFLAGS", "%s -fuse-ld=lld -ldl " % get.LDFLAGS())
autotools.configure("--disable-oss --disable-coreaudio")
def build():
File diff suppressed because it is too large Load Diff
+12 -4
View File
@@ -17,7 +17,8 @@
<Description>
DeaDBeeF (as in 0xDEADBEEF) is a modular audio player for GNU/Linux, *BSD, OpenSolaris, macOS, and other UNIX-like systems.
</Description>
<Archive sha1sum="d043f49a0f8d96392a99c660ba9ece9ab7bee477" type="tarbz2">mirrors://sourceforge/project/deadbeef/travis/linux/1.8.8/deadbeef-1.8.8.tar.bz2
<Archive sha1sum="ca601dfffa936aaaffb7311f292771ab480f548b" type="tarbz2">
mirrors://sourceforge/project/deadbeef/travis/linux/1.9.3/deadbeef-1.9.3.tar.bz2
</Archive>
<BuildDependencies>
<Dependency>bison</Dependency>
@@ -40,7 +41,7 @@
<Dependency>ffmpeg-devel</Dependency>
<Dependency>libmad-devel</Dependency>
<Dependency>libzip-devel</Dependency>
<Dependency>imlib2-devel</Dependency>
<!-- <Dependency>imlib2-devel</Dependency> -->
<Dependency>mpg123-devel</Dependency>
<Dependency>libX11-devel</Dependency>
<Dependency>jansson-devel</Dependency>
@@ -62,7 +63,7 @@
<Dependency>pulseaudio-libs-devel</Dependency>
</BuildDependencies>
<Patches>
<!-- <Patch level="1">missing.patch</Patch> -->
<Patch level="1">return_ru_trnsl.patch</Patch>
</Patches>
</Source>
@@ -87,7 +88,7 @@
<Dependency>ffmpeg</Dependency>
<Dependency>libmad</Dependency>
<Dependency>libzip</Dependency>
<Dependency>imlib2</Dependency>
<!-- <Dependency>imlib2</Dependency> -->
<Dependency>wavpack</Dependency>
<Dependency>libcdio</Dependency>
<Dependency>libcddb</Dependency>
@@ -116,6 +117,13 @@
</Package>
<History>
<Update release="19">
<Date>2022-11-15</Date>
<Version>1.9.3</Version>
<Comment>Version bump.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
<Update release="18">
<Date>2021-09-12</Date>
<Version>1.8.8</Version>
+1 -1
View File
@@ -23,8 +23,8 @@
<Dependency>python3</Dependency>
<Dependency>gst-python</Dependency>
<Dependency>dbus-python3</Dependency>
<Dependency>python3-pillow</Dependency>
<Dependency>python3-mutagen</Dependency>
<Dependency>python3-imaging</Dependency>
<Dependency>gst-plugins-base</Dependency>
<Dependency>gst-plugins-good</Dependency>
<Dependency>python3-pygobject3</Dependency>
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import autotools, pisitools, get
so = "MILTER_SOVER=1.0.2"
j = ''.join([
' INCOWN=root INCGRP=root INCMODE=644',
' LIBOWN=root LIBGRP=root LIBMODE=644 UBINMODE=755 '
])
def setup():
pass
def build():
autotools.make("-C libmilter %s" % so)
def install():
pisitools.dodir("/usr/lib")
autotools.rawInstall("-C libmilter DESTDIR=%s %s %s install" % (get.installDIR(), j, so))
@@ -0,0 +1,53 @@
--- /dev/null 2022-11-16 05:56:56.793999937 +0300
+++ b/devtools/M4/UNIX/milterlibrary.m4 2022-11-16 06:36:04.837260702 +0300
@@ -0,0 +1,39 @@
+divert(-1)
+#
+# Copyright (c) 1999-2001 Sendmail, Inc. and its suppliers.
+# All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+# Definitions for Makefile construction for sendmail
+#
+divert(0)dnl
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
+bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
+bldPUSH_TARGET(bldCURRENT_PRODUCT`.so' bldCURRENT_PRODUCT`.a')dnl
+bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
+bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
+
+include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
+divert(bldTARGETS_SECTION)
+bldCURRENT_PRODUCT.so: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
+ ${CCLINK} ${LDOPTS_SO} -o bldCURRENT_PRODUCT.so -Wl,confSONAME,bldCURRENT_PRODUCT.so.${MILTER_SOVER} ${bldCURRENT_PRODUCT`OBJS'} -lc ${LIBS}
+bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
+ ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'}
+ ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a
+ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
+
+install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a
+ifdef(`bldINSTALLABLE', ` ifdef(`confMKDIR', `if [ ! -d "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}" ]; then confMKDIR -p "${DESTDIR}${bldINSTALL_DIR`'LIBDIR}"; else :; fi ')
+ ${INSTALL} -c -o ${LIBOWN} -g ${LIBGRP} -m ${UBINMODE} bldCURRENT_PRODUCT.so "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so.${MILTER_SOVER}"
+ ${LN} ${LNOPTS} bldCURRENT_PRODUCT.so.${MILTER_SOVER} "${DESTDIR}${LIBDIR}/bldCURRENT_PRODUCT.so"
+ ${INSTALL} -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} bldCURRENT_PRODUCT.a "${DESTDIR}${LIBDIR}"')
+
+bldCURRENT_PRODUCT-clean:
+ rm -f ${OBJS} bldCURRENT_PRODUCT.so bldCURRENT_PRODUCT.a ${MANPAGES}
+
+divert(0)
+COPTS+= confCCOPTS_SO
--- a/libmilter/Makefile.m4 2021-06-07 22:03:56.000000000 +0300
+++ b/libmilter/Makefile.m4 2022-11-16 06:37:12.754762349 +0300
@@ -9,7 +9,7 @@
SMSRCDIR=ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail')
PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ')
-bldPRODUCT_START(`library', `libmilter')
+bldPRODUCT_START(`milterlibrary', `libmilter')
define(`bldINSTALLABLE', `true')
define(`LIBMILTER_EXTRAS', `errstring.c strl.c')
APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL -Dsm_snprintf=snprintf')
@@ -0,0 +1,12 @@
--- /dev/null 2022-11-16 05:56:56.793999937 +0300
+++ b/devtools/Site/site.config.m4 2022-11-16 07:57:02.406144281 +0300
@@ -0,0 +1,9 @@
+dnl Enable libmilter with a pool of workers
+APPENDDEF(`conf_libmilter_ENVDEF',`-D_FFR_WORKERS_POOL=1')
+APPENDDEF(`conf_libmilter_ENVDEF',`-DMIN_WORKERS=4')
+dnl Use poll instead of select
+APPENDDEF(`conf_libmilter_ENVDEF',`-DSM_CONF_POLL=1')
+dnl Enable IPv6
+APPENDDEF(`conf_libmilter_ENVDEF',`-DNETINET6=1')
+dnl Add -fPIC
+APPENDDEF(`conf_libmilter_ENVDEF',`-fPIC')
+50
View File
@@ -0,0 +1,50 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>libmilter</Name>
<Homepage>https://www.proofpoint.com/us/sendmail-open-source</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>custom</License>
<IsA>library</IsA>
<PartOf>network.library</PartOf>
<Summary>Sendmail Mail Filter API.</Summary>
<Description>pass</Description>
<Archive sha1sum="d4d2568fe48da0e0fe8209a9cbc6f842e9014e46" type="targz">
https://ftp.sendmail.org/sendmail.8.17.1.tar.gz
</Archive>
<BuildDependencies>
<Dependency>db-devel</Dependency>
<Dependency>kernel-headers</Dependency>
</BuildDependencies>
<Patches>
<Patch level='1'>site_config_m4.patch</Patch>
<Patch level='1'>alpinelinux/libmilter_sharedlib.patch</Patch>
</Patches>
</Source>
<Package>
<Name>libmilter</Name>
<RuntimeDependencies>
<Dependency>db</Dependency>
<Dependency>glibc</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib</Path>
<Path fileType="header">/usr/include/libmilter</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-15</Date>
<Version>8.17.1</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,23 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import perlmodules
from pisi.actionsapi import pisitools
def setup():
perlmodules.configure()
def build():
perlmodules.make()
def check():
perlmodules.make("test")
def install():
perlmodules.install()
pisitools.dodoc("LICENSE", "NEWS", "README")
@@ -0,0 +1,53 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>perl-Cairo-Gobject</Name>
<Homepage>https://metacpan.org/pod/Cairo::GObject</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>LGPL-2.1</License>
<IsA>library</IsA>
<PartOf>programming.language.perl</PartOf>
<Summary>Cairo::GObject - Integrate Cairo into the Glib type system.</Summary>
<Description>
Cairo::GObject registers Cairo's types (Cairo::Context, Cairo::Surface, etc.) with Glib's type systems so that they can be used normally in signals and properties.
</Description>
<Archive sha1sum="57d0ad960dff09755e2fbb02c2b745fa79d31517" type="targz">
https://cpan.metacpan.org/authors/id/X/XA/XAOC/Cairo-GObject-1.005.tar.gz
</Archive>
<BuildDependencies>
<Dependency>perl-Glib</Dependency>
<Dependency>perl-Cairo</Dependency>
<Dependency>cairo-devel</Dependency>
<Dependency>perl-ExtUtils-Depends</Dependency>
<Dependency>perl-ExtUtils-PkgConfig</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>perl-Cairo-Gobject</Name>
<RuntimeDependencies>
<Dependency>glib2</Dependency>
<Dependency>cairo</Dependency>
<Dependency>freetype</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-16</Date>
<Version>1.005</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,27 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import perlmodules
from pisi.actionsapi import shelltools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get
def setup():
shelltools.export("LDFLAGS", "%s -lz" % get.LDFLAGS())
perlmodules.configure()
def build():
perlmodules.make()
def check():
#perlmodules.make("test")
pass
def install():
perlmodules.install()
pisitools.dodoc("LICENSE", "NEWS", "README")
@@ -0,0 +1,60 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>perl-Glib-Object-Introspection</Name>
<Homepage>https://metacpan.org/pod/Glib::Object::Introspection</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>LGPL-2.1</License>
<IsA>library</IsA>
<PartOf>programming.language.perl</PartOf>
<Summary>Glib::Object::Introspection - Dynamically create Perl language bindings.</Summary>
<Description>
Glib::Object::Introspection uses the gobject-introspection and libffi projects to dynamically create Perl bindings for a wide variety of libraries. Examples include gtk+, webkit, libsoup and many more.
</Description>
<Archive sha1sum="0eb18bebb83a22a4fcf4e9f2f521ce2cff4cd148" type="targz">
https://cpan.metacpan.org/authors/id/X/XA/XAOC/Glib-Object-Introspection-0.049.tar.gz
</Archive>
<BuildDependencies>
<Dependency>perl</Dependency>
<Dependency>perl-Glib</Dependency>
<Dependency>perl-Cairo</Dependency>
<Dependency>cairo-devel</Dependency>
<Dependency>perl-Cairo-Gobject</Dependency>
<Dependency>perl-ExtUtils-Depends</Dependency>
<Dependency>perl-ExtUtils-PkgConfig</Dependency>
<Dependency>gobject-introspection-devel</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>perl-Glib-Object-Introspection</Name>
<RuntimeDependencies>
<Dependency>perl</Dependency>
<Dependency>glib2</Dependency>
<Dependency>libffi</Dependency>
<Dependency>gobject-introspection</Dependency>
<Dependency>perl-ExtUtils-Depends</Dependency>
<Dependency>perl-ExtUtils-PkgConfig</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-16</Date>
<Version>0.049</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,24 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import perlmodules
from pisi.actionsapi import pisitools
from pisi.actionsapi import get
def setup():
perlmodules.configure()
def build():
perlmodules.make()
def check():
perlmodules.make("test")
def install():
perlmodules.install()
pisitools.dodoc("LICENSE", "NEWS", "README")
@@ -0,0 +1,54 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>perl-Gtk3</Name>
<Homepage>https://metacpan.org/pod/Gtk3</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>LGPL-2.1</License>
<IsA>library</IsA>
<PartOf>programming.language.perl</PartOf>
<Summary>Gtk3 - Perl interface to the 3.x series of the gtk+ toolkit.</Summary>
<Description>
Perl bindings to the 3.x series of the gtk+ toolkit. This module allows you to write graphical user interfaces in a Perlish and object-oriented way, freeing you from the casting and memory management in C, yet remaining very close in spirit to original API.
</Description>
<Archive sha1sum="d5dfdc7e502caf6af8dcde4a31825b10380dd8d5" type="targz">
https://cpan.metacpan.org/authors/id/X/XA/XAOC/Gtk3-0.038.tar.gz
</Archive>
<BuildDependencies>
<Dependency>perl-Glib</Dependency>
<Dependency>gtk3-devel</Dependency>
<Dependency>perl-Cairo</Dependency>
<Dependency>perl-Cairo-Gobject</Dependency>
<Dependency>perl-Glib-Object-Introspection</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>perl-Gtk3</Name>
<RuntimeDependencies>
<Dependency>gtk3</Dependency>
<Dependency>cairo</Dependency>
<Dependency>perl-Glib</Dependency>
<Dependency>perl-Cairo</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-16</Date>
<Version>0.038</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,13 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import pythonmodules
def build():
pythonmodules.compile(pyVer = '3')
def install():
pythonmodules.install(pyVer = '3')
@@ -0,0 +1,50 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>python3-coloredlogs</Name>
<Homepage>https://coloredlogs.readthedocs.io/</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>MIT</License>
<IsA>app</IsA>
<PartOf>programming.language.python3</PartOf>
<Summary>Colored terminal output for Pythons logging module.</Summary>
<Description>The coloredlogs package enables colored terminal output for Pythons logging module.</Description>
<Archive sha1sum="f318edc930c87e15df54d6a1bb43b22246667d09" type="targz">
https://files.pythonhosted.org/packages/source/c/coloredlogs/coloredlogs-15.0.1.tar.gz
</Archive>
<BuildDependencies>
<Dependency>python3-devel</Dependency>
<Dependency>python3-setuptools</Dependency>
<Dependency>python3-importlib_metadata</Dependency>
</BuildDependencies>
<Patches>
<!-- <Patch level='1'></Patch> -->
</Patches>
</Source>
<Package>
<Name>python3-coloredlogs</Name>
<RuntimeDependencies>
<Dependency>python3-colorama</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="data">/usr/lib/python3.9</Path>
<Path fileType="data">/usr/share/doc</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-15</Date>
<Version>15.0.1</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,13 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import pythonmodules
def build():
pythonmodules.compile(pyVer = '3')
def install():
pythonmodules.install(pyVer = '3')
@@ -0,0 +1,50 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>python3-humanfriendly</Name>
<Homepage>https://humanfriendly.readthedocs.io/</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>MIT</License>
<IsA>app</IsA>
<PartOf>programming.language.python3</PartOf>
<Summary>Human friendly input/output in Python.</Summary>
<Description>The functions and classes in the humanfriendly package can be used to make text interfaces more user friendly.</Description>
<Archive sha1sum="7aad370e5590cf5d90eaa0f6e69ed753945f7c37" type="targz">
https://files.pythonhosted.org/packages/source/h/humanfriendly/humanfriendly-10.0.tar.gz
</Archive>
<BuildDependencies>
<Dependency>python3-devel</Dependency>
<Dependency>python3-setuptools</Dependency>
<Dependency>python3-importlib_metadata</Dependency>
</BuildDependencies>
<Patches>
<!-- <Patch level='1'></Patch> -->
</Patches>
</Source>
<Package>
<Name>python3-humanfriendly</Name>
<RuntimeDependencies>
<Dependency>python3</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="data">/usr/lib/python3.9</Path>
<Path fileType="data">/usr/share/doc</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-15</Date>
<Version>10.0</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,13 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import pythonmodules
def build():
pythonmodules.compile(pyVer = '3')
def install():
pythonmodules.install(pyVer = '3')
@@ -0,0 +1,49 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>python3-rangehttpserver</Name>
<Homepage>https://github.com/danvk/RangeHTTPServer</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>Apache-2.0</License>
<IsA>library</IsA>
<PartOf>programming.language.python3</PartOf>
<Summary>SimpleHTTPServer with support for Range requests.</Summary>
<Description>SimpleHTTPServer with support for Range requests.</Description>
<Archive sha1sum="858b53f646ebcb563fbfe2a2c7339391b8572096" type="targz">
https://files.pythonhosted.org/packages/source/r/rangehttpserver/rangehttpserver-1.2.0.tar.gz
</Archive>
<BuildDependencies>
<Dependency>python3-devel</Dependency>
<Dependency>python3-setuptools</Dependency>
<Dependency>python3-importlib_metadata</Dependency>
</BuildDependencies>
<Patches>
<!-- <Patch level='1'></Patch> -->
</Patches>
</Source>
<Package>
<Name>python3-rangehttpserver</Name>
<RuntimeDependencies>
<Dependency>python3</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="data">/usr/lib/python3.9</Path>
<Path fileType="data">/usr/share/doc</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-15</Date>
<Version>1.2.0</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
+6 -7
View File
@@ -10,26 +10,25 @@ from pisi.actionsapi import pisitools
from pisi.actionsapi import get
j = "-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_THREAD_LIBS_INIT='-lpthread' \
-DCMAKE_HAVE_THREADS_LIBRARY=ON \
-DCMAKE_USE_PTHREADS_INIT=ON \
-DBUILD_TESTING=OFF -LA \
-DBUILD_TESTING=OFF \
-B_build -LA \
"
def setup():
shelltools.export("CC", "clang")
shelltools.export("CXX", "clang++")
shelltools.makedirs("build")
shelltools.cd("build")
cmaketools.configure(j, sourceDir = '..')
cmaketools.configure(j)
def build():
shelltools.cd("build")
shelltools.cd("_build")
cmaketools.make()
def install():
shelltools.cd("build")
shelltools.cd("_build")
cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.dodoc("../CONTRIBUTING.md", "../INSTALL.md", "../README.md", "../TESTING.md")
+9 -1
View File
@@ -12,7 +12,8 @@
<IsA>library</IsA>
<Summary>Grand Central Dispatch.</Summary>
<Description>Grand Central Dispatch (GCD or libdispatch) provides comprehensive support for concurrent code execution on multicore hardware.</Description>
<Archive sha1sum="33dc247d09fcf0685d0bb16de1663c379ccc188f" type="targz">https://github.com/apple/swift-corelibs-libdispatch/archive/swift-5.4.2-RELEASE.tar.gz
<Archive sha1sum="d4be580d2aa6f7d2d066216a41035c853f73dd2b" type="targz">
https://github.com/apple/swift-corelibs-libdispatch/archive/refs/tags/swift-5.5-RELEASE.tar.gz
</Archive>
<BuildDependencies>
<Dependency>cmake</Dependency>
@@ -48,6 +49,13 @@
</Package>
<History>
<Update release="4">
<Date>2022-11-15</Date>
<Version>5.5</Version>
<Comment>Version bump.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
<Update release="3">
<Date>2021-09-12</Date>
<Version>5.4.2</Version>
+3 -8
View File
@@ -1,21 +1,16 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Copyright 2018 TUBITAK/UEKAE
# Licensed under the GNU General Public License, version 2.
# See the file http://www.gnu.org/copyleft/gpl.txt.
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
def setup():
autotools.autoreconf("-fi")
autotools.configure()
pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ")
def build():
@@ -23,5 +18,5 @@ def build():
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.remove("/usr/include/event.h")
+12 -5
View File
@@ -12,9 +12,9 @@
<License>GPLv2</License>
<Summary>Full-featured and high performance event loop library</Summary>
<Description>FA high-performance event loop/event model with lots of feature</Description>
<Archive sha1sum="41a70861053eaed07bdb9b1dfcff24fb390803b9" type="targz">http://dist.schmorp.de/libev/libev-4.31.tar.gz</Archive>
<Archive sha1sum="133587b89c34dba0b3a2d2a90ba59f6748f6c368" type="targz">http://dist.schmorp.de/libev/libev-4.33.tar.gz</Archive>
<Patches>
<!-- <Patch level="1">libev-pc.patch</Patch> -->
<!-- <Patch level="1">libev-pc.patch</Patch> -->
</Patches>
</Source>
@@ -24,7 +24,7 @@
<Path fileType="library">/usr/lib</Path>
</Files>
</Package>
<Package>
<Name>libev-devel</Name>
<PartOf>system.devel</PartOf>
@@ -37,9 +37,16 @@
<Path fileType="library">/usr/lib/pkgconfig</Path>
<Path fileType="man">/usr/share/man/man3</Path>
</Files>
</Package>
</Package>
<History>
<Update release="4">
<Date>2022-11-15</Date>
<Version>4.33</Version>
<Comment>Version bump.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
<Update release="3">
<Date>2020-03-01</Date>
<Version>4.31</Version>
@@ -62,4 +69,4 @@
<Email>ertugrulerata@gmail.com</Email>
</Update>
</History>
</PISI>
</PISI>
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import shelltools, pisitools, get
WorkDir = "."
def install():
for t in shelltools.ls("*.cvd"):
pisitools.insinto("/var/lib/clamav", t)
shelltools.chown("%s/var/lib/clamav/%s" % (get.installDIR(), t), uid = "clamav", gid = "clamav")
+48
View File
@@ -0,0 +1,48 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>clamav-database</Name>
<Homepage>https://www.clamav.net/</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>custom</License>
<IsA>data</IsA>
<PartOf>util.antivirus</PartOf>
<Summary>Virus database for clamav.</Summary>
<Description>Virus database for clamav.</Description>
<Archive sha1sum="a89e024f0dbc6c6584d0c7577af83c031c6265ac" type="binary">https://db.local.clamav.net/bytecode.cvd</Archive>
<Archive sha1sum="abdc6e37e893debeea80e0cbbbf021c89513790f" type="binary">https://db.local.clamav.net/safebrowsing.cvd</Archive>
<Archive sha1sum="029931779fb5d13625464995549421c108ae5518" type="binary">https://db.local.clamav.net/main.cvd</Archive>
<BuildDependencies>
<!-- <Dependency></Dependency> -->
</BuildDependencies>
<Patches>
<!-- <Patch level='1'></Patch> -->
</Patches>
</Source>
<Package>
<Name>clamav-database</Name>
<RuntimeDependencies>
<!-- <Dependency></Dependency> -->
</RuntimeDependencies>
<Files>
<Path fileType="data">/var/lib/clamav/main.cvd</Path>
<Path fileType="data">/var/lib/clamav/bytecode.cvd</Path>
<Path fileType="data">/var/lib/clamav/safebrowsing.cvd</Path>
</Files>
</Package>
<History>
<Update release="2">
<Date>2022-11-15</Date>
<Version>0.0.20221115</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
+21 -33
View File
@@ -2,47 +2,35 @@
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get
from pisi.actionsapi import shelltools
from pisi.actionsapi import shelltools, cmaketools, pisitools, get
j = ''.join([
' -DENABLE_EXAMPLES=ON',
' -DENABLE_MILTER=OFF',
' -DENABLE_SYSTEMD=OFF',
' -DAPP_CONFIG_DIRECTORY=/etc/clamav',
' -DDATABASE_DIRECTORY=/var/lib/clamav',
' -G Ninja',
' -B_build -L '
])
def setup():
#autotools.autoreconf("-fiv")
autotools.configure("--prefix=/usr \
--sbindir=/usr/bin \
--runstatedir=/run \
--enable-id-check \
--enable-clamdtop \
--disable-static \
--disable-clamav \
--disable-fanotify \
--disable-experimental \
--disable-silent-rules \
--with-system-tommath \
--with-zlib=/usr \
--with-no-cache \
--with-user=clamav \
--with-group=clamav \
--disable-llvm \
--with-tcpwrappers \
--sysconfdir=/etc \
--with-dbdir=/var/lib/clamav")
pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ")
cmaketools.configure(j)
def build():
autotools.make()
shelltools.system("ninja -C _build")
def check():
#pass
shelltools.system("ninja -C _build test")
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
shelltools.system("DESTDIR=%s ninja -C _build install" % get.installDIR())
#pisitools.dodir("/run/clamav")
#pisitools.dodir("/var/lib/clamav")
pisitools.dodir("/var/lib/clamav")
#pisitools.dodir("/var/log/clamav")
#shelltools.touch(get.installDIR() + "/var/log/clamav/freshclam.log")
#shelltools.chmod(get.installDIR() + "/var/log/clamav/freshclam.log", 0600)
#shelltools.chown("%s/var/log/clamav/freshclam.log" % get.installDIR(), "clamav", "clamav")
pisitools.dodoc("COPYING*", "NEWS*", "README*")
shelltools.system("find %s/etc/clamav -type f | sed -e 'p;s:.sample::' | xargs -n2 mv" % get.installDIR())
+2 -2
View File
@@ -4,5 +4,5 @@ import os
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system("/bin/chown clamav:clamav /var/lib/clamav -R")
os.system("/bin/chown clamav:clamav /run/clamav -R")
os.system("/bin/chown clamav:clamav /var/log/clamav -R")
#os.system("/bin/chown clamav:clamav /run/clamav -R")
#os.system("/bin/chown clamav:clamav /var/log/clamav -R")
+9 -13
View File
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
import os
from comar.service import *
@@ -8,19 +9,16 @@ serviceDesc = _({"en": "Clam Anti-Virus Daemon",
@synchronized
def start():
#if config.get("DAZUKO_SUPPORT", "no") == "yes":
# call("System.Service.start", "dazuko")
startService(command="/usr/sbin/clamd",
chuid="clamav",
pidfile="/run/clamav/clamd.pid",
donotify=False)
#chuid="clamav",
pidfile="/run/clamd.pid",
donotify=False)
time.sleep(3)
startService(command="/usr/bin/freshclam",
args="-d -p /run/clamav/freshclam.pid",
chuid="clamav",
pidfile="/run/clamav/freshclam.pid",
donotify=True)
args="-d -p /run/freshclam.pid",
#chuid="clamav",
pidfile="/run/freshclam.pid",
donotify=True)
@synchronized
def stop():
@@ -29,8 +27,6 @@ def stop():
time.sleep(4)
stopService(command="/usr/bin/freshclam",
donotify=True)
#if config.get("DAZUKO_SUPPORT", "no") == "yes":
# call("System.Service.stop", "dazuko")
def status():
return isServiceRunning("/run/clamav/clamd.pid") and isServiceRunning("/run/clamav/freshclam.pid")
return isServiceRunning("/run/clamd.pid") and isServiceRunning("/run/freshclam.pid")
@@ -1,267 +0,0 @@
##
## Example config file for clamav-milter
##
# Comment or remove the line below.
# Example
##
## Main options
##
# Define the interface through which we communicate with sendmail
# This option is mandatory! Possible formats are:
# [[unix|local]:]/path/to/file - to specify a unix domain socket
# inet:port@[hostname|ip-address] - to specify an ipv4 socket
# inet6:port@[hostname|ip-address] - to specify an ipv6 socket
#
# Default: no default
MilterSocket /run/clamav/clamav-milter.sock
#MilterSocket inet:7357
# Define the group ownership for the (unix) milter socket.
# Default: disabled (the primary group of the user running clamd)
#MilterSocketGroup virusgroup
# Sets the permissions on the (unix) milter socket to the specified mode.
# Default: disabled (obey umask)
#MilterSocketMode 660
# Remove stale socket after unclean shutdown.
#
# Default: yes
#FixStaleSocket yes
# Run as another user (clamav-milter must be started by root for this option to work)
#
# Default: unset (don't drop privileges)
User clamav
# Initialize supplementary group access (clamav-milter must be started by root).
#
# Default: no
#AllowSupplementaryGroups no
# Waiting for data from clamd will timeout after this time (seconds).
# Value of 0 disables the timeout.
#
# Default: 120
#ReadTimeout 300
# Don't fork into background.
#
# Default: no
#Foreground yes
# Chroot to the specified directory.
# Chrooting is performed just after reading the config file and before dropping privileges.
#
# Default: unset (don't chroot)
#Chroot /newroot
# This option allows you to save a process identifier of the listening
# daemon (main thread).
#
# Default: disabled
PidFile /run/clamav/clamav-milter.pid
# Optional path to the global temporary directory.
# Default: system specific (usually /tmp or /var/tmp).
#
#TemporaryDirectory /var/tmp
##
## Clamd options
##
# Define the clamd socket to connect to for scanning.
# This option is mandatory! Syntax:
# ClamdSocket unix:path
# ClamdSocket tcp:host:port
# The first syntax specifies a local unix socket (needs an absolute path) e.g.:
ClamdSocket unix:/run/clamav/clamd.socket
# The second syntax specifies a tcp local or remote tcp socket: the
# host can be a hostname or an ip address; the ":port" field is only required
# for IPv6 addresses, otherwise it defaults to 3310, e.g.:
# ClamdSocket tcp:192.168.0.1
#
# This option can be repeated several times with different sockets or even
# with the same socket: clamd servers will be selected in a round-robin fashion.
#
# Default: no default
#ClamdSocket tcp:scanner.mydomain:7357
##
## Exclusions
##
# Messages originating from these hosts/networks will not be scanned
# This option takes a host(name)/mask pair in CIRD notation and can be
# repeated several times. If "/mask" is omitted, a host is assumed.
# To specify a locally orignated, non-smtp, email use the keyword "local"
#
# Default: unset (scan everything regardless of the origin)
#LocalNet local
#LocalNet 192.168.0.0/24
#LocalNet 1111:2222:3333::/48
# This option specifies a file which contains a list of basic POSIX regular
# expressions. Addresses (sent to or from - see below) matching these regexes
# will not be scanned. Optionally each line can start with the string "From:"
# or "To:" (note: no whitespace after the colon) indicating if it is,
# respectively, the sender or recipient that is to be whitelisted.
# If the field is missing, "To:" is assumed.
# Lines starting with #, : or ! are ignored.
#
# Default unset (no exclusion applied)
#Whitelist /etc/whitelisted_addresses
# Messages from authenticated SMTP users matching this extended POSIX
# regular expression (egrep-like) will not be scanned.
# As an alternative, a file containing a plain (not regex) list of names (one
# per line) can be specified using the prefix "file:".
# e.g. SkipAuthenticated file:/etc/good_guys
#
# Note: this is the AUTH login name!
#
# Default: unset (no whitelisting based on SMTP auth)
#SkipAuthenticated ^(tom|dick|henry)$
# Messages larger than this value won't be scanned.
# Make sure this value is lower or equal than StreamMaxLength in clamd.conf
#
# Default: 25M
#MaxFileSize 10M
##
## Actions
##
# The following group of options controls the delievery process under
# different circumstances.
# The following actions are available:
# - Accept
# The message is accepted for delievery
# - Reject
# Immediately refuse delievery (a 5xx error is returned to the peer)
# - Defer
# Return a temporary failure message (4xx) to the peer
# - Blackhole (not available for OnFail)
# Like Accept but the message is sent to oblivion
# - Quarantine (not available for OnFail)
# Like Accept but message is quarantined instead of being delivered
#
# NOTE: In Sendmail the quarantine queue can be examined via mailq -qQ
# For Postfix this causes the message to be placed on hold
#
# Action to be performed on clean messages (mostly useful for testing)
# Default: Accept
#OnClean Accept
# Action to be performed on infected messages
# Default: Quarantine
#OnInfected Quarantine
# Action to be performed on error conditions (this includes failure to
# allocate data structures, no scanners available, network timeouts,
# unknown scanner replies and the like)
# Default: Defer
#OnFail Defer
# This option allows to set a specific rejection reason for infected messages
# and it's therefore only useful together with "OnInfected Reject"
# The string "%v", if present, will be replaced with the virus name.
# Default: MTA specific
#RejectMsg
# If this option is set to "Replace" (or "Yes"), an "X-Virus-Scanned" and an
# "X-Virus-Status" headers will be attached to each processed message, possibly
# replacing existing headers.
# If it is set to Add, the X-Virus headers are added possibly on top of the
# existing ones.
# Note that while "Replace" can potentially break DKIM signatures, "Add" may
# confuse procmail and similar filters.
# Default: no
#AddHeader Replace
# When AddHeader is in use, this option allows to arbitrary set the reported
# hostname. This may be desirable in order to avoid leaking internal names.
# If unset the real machine name is used.
# Default: disabled
#ReportHostname my.mail.server.name
# Execute a command (possibly searching PATH) when an infected message is found.
# The following parameters are passed to the invoked program in this order:
# virus name, queue id, sender, destination, subject, message id, message date.
# Note #1: this requires MTA macroes to be available (see LogInfected below)
# Note #2: the process is invoked in the context of clamav-milter
# Note #3: clamav-milter will wait for the process to exit. Be quick or fork to
# avoid unnecessary delays in email delievery
# Default: disabled
#VirusAction /usr/local/bin/my_infected_message_handler
##
## Logging options
##
# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
#
# Default: disabled
LogFile /var/log/clamav/clamav-milter.log
# By default the log file is locked for writing - the lock protects against
# running clamav-milter multiple times.
# This option disables log file locking.
#
# Default: no
#LogFileUnlock yes
# Maximum size of the log file.
# Value of 0 disables the limit.
# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
# in bytes just don't use modifiers.
#
# Default: 1M
#LogFileMaxSize 2M
# Log time with each message.
#
# Default: no
#LogTime yes
# Use system logger (can work together with LogFile).
#
# Default: no
#LogSyslog yes
# Specify the type of syslog messages - please refer to 'man syslog'
# for facility names.
#
# Default: LOG_LOCAL6
#LogFacility LOG_MAIL
# Enable verbose logging.
#
# Default: no
#LogVerbose yes
# This option allows to tune what is logged when a message is infected.
# Possible values are Off (the default - nothing is logged),
# Basic (minimal info logged), Full (verbose info logged)
# Note:
# For this to work properly in sendmail, make sure the msg_id, mail_addr,
# rcpt_addr and i macroes are available in eom. In other words add a line like:
# Milter.macros.eom={msg_id}, {mail_addr}, {rcpt_addr}, i
# to your .cf file. Alternatively use the macro:
# define(`confMILTER_MACROS_EOM', `{msg_id}, {mail_addr}, {rcpt_addr}, i')
# Postfix should be working fine with the default settings.
#
# Default: disabled
#LogInfected Basic
-1
View File
@@ -1 +0,0 @@
d /run/clamav 0755 clamav clamav
-479
View File
@@ -1,479 +0,0 @@
##
## Example config file for the Clam AV daemon
## Please read the clamd.conf(5) manual before editing this file.
##
# Comment or remove the line below.
# Example
# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
# Default: disabled
LogFile /var/log/clamav/clamd.log
# By default the log file is locked for writing - the lock protects against
# running clamd multiple times (if want to run another clamd, please
# copy the configuration file, change the LogFile variable, and run
# the daemon with --config-file option).
# This option disables log file locking.
# Default: no
#LogFileUnlock yes
# Maximum size of the log file.
# Value of 0 disables the limit.
# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
# in bytes just don't use modifiers.
# Default: 1M
#LogFileMaxSize 2M
# Log time with each message.
# Default: no
LogTime yes
# Also log clean files. Useful in debugging but drastically increases the
# log size.
# Default: no
#LogClean yes
# Use system logger (can work together with LogFile).
# Default: no
LogSyslog yes
# Specify the type of syslog messages - please refer to 'man syslog'
# for facility names.
# Default: LOG_LOCAL6
#LogFacility LOG_MAIL
# Enable verbose logging.
# Default: no
#LogVerbose yes
# Provide additional information about the infected file, such as its
# size and hash, together with the virus name. It's recommended to enable
# this option along with SubmitDetectionStats in freshclam.conf.
#ExtendedDetectionInfo yes
# This option allows you to save a process identifier of the listening
# daemon (main thread).
# Default: disabled
PidFile /run/clamav/clamd.pid
# Optional path to the global temporary directory.
# Default: system specific (usually /tmp or /var/tmp).
TemporaryDirectory /var/tmp
# Path to the database directory.
# Default: hardcoded (depends on installation options)
#DatabaseDirectory /var/lib/clamav
# Only load the official signatures published by the ClamAV project.
# Default: no
#OfficialDatabaseOnly no
# The daemon can work in local mode, network mode or both.
# Due to security reasons we recommend the local mode.
# Path to a local socket file the daemon will listen on.
# Default: disabled (must be specified by a user)
LocalSocket /run/clamav/clamd.sock
# Sets the group ownership on the unix socket.
# Default: disabled (the primary group of the user running clamd)
#LocalSocketGroup virusgroup
# Sets the permissions on the unix socket to the specified mode.
# Default: disabled (socket is world accessible)
#LocalSocketMode 660
# Remove stale socket after unclean shutdown.
# Default: yes
#FixStaleSocket yes
# TCP port address.
# Default: no
#TCPSocket 3310
# TCP address.
# By default we bind to INADDR_ANY, probably not wise.
# Enable the following to provide some degree of protection
# from the outside world.
# Default: no
#TCPAddr 127.0.0.1
# Maximum length the queue of pending connections may grow to.
# Default: 15
#MaxConnectionQueueLength 30
# Clamd uses FTP-like protocol to receive data from remote clients.
# If you are using clamav-milter to balance load between remote clamd daemons
# on firewall servers you may need to tune the options below.
# Close the connection when the data size limit is exceeded.
# The value should match your MTA's limit for a maximum attachment size.
# Default: 25M
#StreamMaxLength 10M
# Limit port range.
# Default: 1024
#StreamMinPort 30000
# Default: 2048
#StreamMaxPort 32000
# Maximum number of threads running at the same time.
# Default: 10
#MaxThreads 20
# Waiting for data from a client socket will timeout after this time (seconds).
# Value of 0 disables the timeout.
# Default: 120
#ReadTimeout 300
# This option specifies the time (in seconds) after which clamd should
# timeout if a client doesn't provide any initial command after connecting.
# Default: 5
#CommandReadTimeout 5
# This option specifies how long to wait (in miliseconds) if the send buffer is full.
# Keep this value low to prevent clamd hanging
#
# Default: 500
#SendBufTimeout 200
# Maximum number of queued items (including those being processed by MaxThreads threads)
# It is recommended to have this value at least twice MaxThreads if possible.
# WARNING: you shouldn't increase this too much to avoid running out of file descriptors,
# the following condition should hold:
# MaxThreads*MaxRecursion + (MaxQueue - MaxThreads) + 6< RLIMIT_NOFILE (usual max is 1024)
#
# Default: 100
#MaxQueue 200
# Waiting for a new job will timeout after this time (seconds).
# Default: 30
#IdleTimeout 60
# Don't scan files and directories matching regex
# This directive can be used multiple times
# Default: scan all
#ExcludePath ^/proc/
#ExcludePath ^/sys/
# Maximum depth directories are scanned at.
# Default: 15
#MaxDirectoryRecursion 20
# Follow directory symlinks.
# Default: no
#FollowDirectorySymlinks yes
# Follow regular file symlinks.
# Default: no
#FollowFileSymlinks yes
# Scan files and directories on other filesystems.
# Default: yes
#CrossFilesystems yes
# Perform a database check.
# Default: 600 (10 min)
#SelfCheck 600
# Execute a command when virus is found. In the command string %v will
# be replaced with the virus name.
# Default: no
#VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %v"
# Run as another user (clamd must be started by root for this option to work)
# Default: don't drop privileges
User clamav
# Initialize supplementary group access (clamd must be started by root).
# Default: no
#AllowSupplementaryGroups no
# Stop daemon when libclamav reports out of memory condition.
#ExitOnOOM yes
# Don't fork into background.
# Default: no
#Foreground yes
# Enable debug messages in libclamav.
# Default: no
#Debug yes
# Do not remove temporary files (for debug purposes).
# Default: no
#LeaveTemporaryFiles yes
# Detect Possibly Unwanted Applications.
# Default: no
#DetectPUA yes
# Exclude a specific PUA category. This directive can be used multiple times.
# See http://www.clamav.net/support/pua for the complete list of PUA
# categories.
# Default: Load all categories (if DetectPUA is activated)
#ExcludePUA NetTool
#ExcludePUA PWTool
# Only include a specific PUA category. This directive can be used multiple
# times.
# Default: Load all categories (if DetectPUA is activated)
#IncludePUA Spy
#IncludePUA Scanner
#IncludePUA RAT
# In some cases (eg. complex malware, exploits in graphic files, and others),
# ClamAV uses special algorithms to provide accurate detection. This option
# controls the algorithmic detection.
# Default: yes
#AlgorithmicDetection yes
##
## Executable files
##
# PE stands for Portable Executable - it's an executable file format used
# in all 32 and 64-bit versions of Windows operating systems. This option allows
# ClamAV to perform a deeper analysis of executable files and it's also
# required for decompression of popular executable packers such as UPX, FSG,
# and Petite.
# Default: yes
#ScanPE yes
# Executable and Linking Format is a standard format for UN*X executables.
# This option allows you to control the scanning of ELF files.
# Default: yes
#ScanELF yes
# With this option clamav will try to detect broken executables (both PE and
# ELF) and mark them as Broken.Executable.
# Default: no
#DetectBrokenExecutables yes
##
## Documents
##
# This option enables scanning of OLE2 files, such as Microsoft Office
# documents and .msi files.
# Default: yes
#ScanOLE2 yes
# This option enables scanning within PDF files.
# Default: yes
ScanPDF yes
##
## Mail files
##
# Enable internal e-mail scanner.
# Default: yes
#ScanMail yes
# Scan RFC1341 messages split over many emails.
# You will need to periodically clean up $TemporaryDirectory/clamav-partial directory.
# WARNING: This option may open your system to a DoS attack.
# Never use it on loaded servers.
# Default: no
#ScanPartialMessages yes
# With this option enabled ClamAV will try to detect phishing attempts by using
# signatures.
# Default: yes
#PhishingSignatures yes
# Scan URLs found in mails for phishing attempts using heuristics.
# Default: yes
#PhishingScanURLs yes
# Always block SSL mismatches in URLs, even if the URL isn't in the database.
# This can lead to false positives.
#
# Default: no
#PhishingAlwaysBlockSSLMismatch no
# Always block cloaked URLs, even if URL isn't in database.
# This can lead to false positives.
#
# Default: no
#PhishingAlwaysBlockCloak no
# Allow heuristic match to take precedence.
# When enabled, if a heuristic scan (such as phishingScan) detects
# a possible virus/phish it will stop scan immediately. Recommended, saves CPU
# scan-time.
# When disabled, virus/phish detected by heuristic scans will be reported only at
# the end of a scan. If an archive contains both a heuristically detected
# virus/phish, and a real malware, the real malware will be reported
#
# Keep this disabled if you intend to handle "*.Heuristics.*" viruses
# differently from "real" malware.
# If a non-heuristically-detected virus (signature-based) is found first,
# the scan is interrupted immediately, regardless of this config option.
#
# Default: no
#HeuristicScanPrecedence yes
##
## Data Loss Prevention (DLP)
##
# Enable the DLP module
# Default: No
#StructuredDataDetection yes
# This option sets the lowest number of Credit Card numbers found in a file
# to generate a detect.
# Default: 3
#StructuredMinCreditCardCount 5
# This option sets the lowest number of Social Security Numbers found
# in a file to generate a detect.
# Default: 3
#StructuredMinSSNCount 5
# With this option enabled the DLP module will search for valid
# SSNs formatted as xxx-yy-zzzz
# Default: yes
#StructuredSSNFormatNormal yes
# With this option enabled the DLP module will search for valid
# SSNs formatted as xxxyyzzzz
# Default: no
#StructuredSSNFormatStripped yes
##
## HTML
##
# Perform HTML normalisation and decryption of MS Script Encoder code.
# Default: yes
#ScanHTML yes
##
## Archives
##
# ClamAV can scan within archives and compressed files.
# Default: yes
#ScanArchive yes
# Mark encrypted archives as viruses (Encrypted.Zip, Encrypted.RAR).
# Default: no
#ArchiveBlockEncrypted no
##
## Limits
##
# The options below protect your system against Denial of Service attacks
# using archive bombs.
# This option sets the maximum amount of data to be scanned for each input file.
# Archives and other containers are recursively extracted and scanned up to this
# value.
# Value of 0 disables the limit
# Note: disabling this limit or setting it too high may result in severe damage
# to the system.
# Default: 100M
#MaxScanSize 150M
# Files larger than this limit won't be scanned. Affects the input file itself
# as well as files contained inside it (when the input file is an archive, a
# document or some other kind of container).
# Value of 0 disables the limit.
# Note: disabling this limit or setting it too high may result in severe damage
# to the system.
# Default: 25M
#MaxFileSize 30M
# Nested archives are scanned recursively, e.g. if a Zip archive contains a RAR
# file, all files within it will also be scanned. This options specifies how
# deeply the process should be continued.
# Note: setting this limit too high may result in severe damage to the system.
# Default: 16
#MaxRecursion 10
# Number of files to be scanned within an archive, a document, or any other
# container file.
# Value of 0 disables the limit.
# Note: disabling this limit or setting it too high may result in severe damage
# to the system.
# Default: 10000
#MaxFiles 15000
##
## Clamuko settings
##
# Enable Clamuko. Dazuko must be configured and running. Clamuko supports
# both Dazuko (/dev/dazuko) and DazukoFS (/dev/dazukofs.ctrl). DazukoFS
# is the preferred option. For more information please visit www.dazuko.org
# Default: no
#ClamukoScanOnAccess yes
# The number of scanner threads that will be started (DazukoFS only).
# Having multiple scanner threads allows Clamuko to serve multiple
# processes simultaneously. This is particularly beneficial on SMP machines.
# Default: 3
#ClamukoScannerCount 3
# Don't scan files larger than ClamukoMaxFileSize
# Value of 0 disables the limit.
# Default: 5M
#ClamukoMaxFileSize 10M
# Set access mask for Clamuko (Dazuko only).
# Default: no
#ClamukoScanOnOpen yes
#ClamukoScanOnClose yes
#ClamukoScanOnExec yes
# Set the include paths (all files inside them will be scanned). You can have
# multiple ClamukoIncludePath directives but each directory must be added
# in a seperate line. (Dazuko only)
# Default: disabled
#ClamukoIncludePath /home
#ClamukoIncludePath /students
# Set the exclude paths. All subdirectories are also excluded. (Dazuko only)
# Default: disabled
#ClamukoExcludePath /home/bofh
# With this option enabled ClamAV will load bytecode from the database.
# It is highly recommended you keep this option on, otherwise you'll miss detections for many new viruses.
# Default: yes
#Bytecode yes
# Set bytecode security level.
# Possible values:
# None - no security at all, meant for debugging. DO NOT USE THIS ON PRODUCTION SYSTEMS
# This value is only available if clamav was built with --enable-debug!
# TrustSigned - trust bytecode loaded from signed .c[lv]d files,
# insert runtime safety checks for bytecode loaded from other sources
# Paranoid - don't trust any bytecode, insert runtime checks for all
# Recommended: TrustSigned, because bytecode in .cvd files already has these checks
# Note that by default only signed bytecode is loaded, currently you can only
# load unsigned bytecode in --enable-debug mode.
#
# Default: TrustSigned
#BytecodeSecurity TrustSigned
# Set bytecode timeout in miliseconds.
#
# Default: 60000
# BytecodeTimeout 60000
@@ -0,0 +1,106 @@
diff --git a/etc/clamav-milter.conf.sample b/etc/clamav-milter.conf.sample
index 7ca0e6e..98af596 100644
--- a/etc/clamav-milter.conf.sample
+++ b/etc/clamav-milter.conf.sample
@@ -3,7 +3,7 @@
##
# Comment or remove the line below.
-Example
+#Example
##
diff --git a/etc/clamd.conf.sample b/etc/clamd.conf.sample
index 2f18866..8a2580b 100644
--- a/etc/clamd.conf.sample
+++ b/etc/clamd.conf.sample
@@ -5,13 +5,13 @@
# Comment or remove the line below.
-Example
+#Example
# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
# Default: disabled
-#LogFile /tmp/clamd.log
+LogFile /var/log/clamd.log
# By default the log file is locked for writing - the lock protects against
# running clamd multiple times (if want to run another clamd, please
@@ -19,7 +19,7 @@ Example
# the daemon with --config-file option).
# This option disables log file locking.
# Default: no
-#LogFileUnlock yes
+LogFileUnlock yes
# Maximum size of the log file.
# Value of 0 disables the limit.
@@ -74,7 +74,7 @@ Example
# It is recommended that the directory where this file is stored is
# also owned by root to keep other users from tampering with it.
# Default: disabled
-#PidFile /var/run/clamd.pid
+PidFile /run/clamd.pid
# Optional path to the global temporary directory.
# Default: system specific (usually /tmp or /var/tmp).
@@ -82,7 +82,7 @@ Example
# Path to the database directory.
# Default: hardcoded (depends on installation options)
-#DatabaseDirectory /var/lib/clamav
+DatabaseDirectory /var/lib/clamav
# Only load the official signatures published by the ClamAV project.
# Default: no
@@ -93,7 +93,7 @@ Example
# Path to a local socket file the daemon will listen on.
# Default: disabled (must be specified by a user)
-#LocalSocket /tmp/clamd.socket
+#LocalSocket /run/clamd.socket
# Sets the group ownership on the unix socket.
# Default: disabled (the primary group of the user running clamd)
@@ -109,7 +109,7 @@ Example
# TCP port address.
# Default: no
-#TCPSocket 3310
+TCPSocket 3310
# TCP address.
# By default we bind to INADDR_ANY, probably not wise.
diff --git a/etc/freshclam.conf.sample b/etc/freshclam.conf.sample
index 26c4e7a..5f791e8 100644
--- a/etc/freshclam.conf.sample
+++ b/etc/freshclam.conf.sample
@@ -5,12 +5,12 @@
# Comment or remove the line below.
-Example
+#Example
# Path to the database directory.
# WARNING: It must match clamd.conf's directive!
# Default: hardcoded (depends on installation options)
-#DatabaseDirectory /var/lib/clamav
+DatabaseDirectory /var/lib/clamav
# Path to the log file (make sure it has proper permissions)
# Default: disabled
@@ -51,7 +51,7 @@ Example
# It is recommended that the directory where this file is stored is
# also owned by root to keep other users from tampering with it.
# Default: disabled
-#PidFile /var/run/freshclam.pid
+PidFile /run/freshclam.pid
# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
-202
View File
@@ -1,202 +0,0 @@
##
## Example config file for freshclam
## Please read the freshclam.conf(5) manual before editing this file.
##
# Comment or remove the line below.
# Example
# Path to the database directory.
# WARNING: It must match clamd.conf's directive!
# Default: hardcoded (depends on installation options)
#DatabaseDirectory /var/lib/clamav
# Path to the log file (make sure it has proper permissions)
# Default: disabled
UpdateLogFile /var/log/clamav/freshclam.log
# Maximum size of the log file.
# Value of 0 disables the limit.
# You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
# and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes).
# in bytes just don't use modifiers.
# Default: 1M
#LogFileMaxSize 2M
# Log time with each message.
# Default: no
LogTime yes
# Enable verbose logging.
# Default: no
#LogVerbose yes
# Use system logger (can work together with UpdateLogFile).
# Default: no
LogSyslog yes
# Specify the type of syslog messages - please refer to 'man syslog'
# for facility names.
# Default: LOG_LOCAL6
#LogFacility LOG_MAIL
# This option allows you to save the process identifier of the daemon
# Default: disabled
PidFile /run/clamav/freshclam.pid
# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
# Default: clamav (may depend on installation options)
#DatabaseOwner clamav
# Initialize supplementary group access (freshclam must be started by root).
# Default: no
#AllowSupplementaryGroups yes
# Use DNS to verify virus database version. Freshclam uses DNS TXT records
# to verify database and software versions. With this directive you can change
# the database verification domain.
# WARNING: Do not touch it unless you're configuring freshclam to use your
# own database verification domain.
# Default: current.cvd.clamav.net
#DNSDatabaseInfo current.cvd.clamav.net
# Uncomment the following line and replace XY with your country
# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
#DatabaseMirror db.XY.clamav.net
# database.clamav.net is a round-robin record which points to our most
# reliable mirrors. It's used as a fall back in case db.XY.clamav.net is
# not working. DO NOT TOUCH the following line unless you know what you
# are doing.
DatabaseMirror database.clamav.net
# How many attempts to make before giving up.
# Default: 3 (per mirror)
#MaxAttempts 5
# With this option you can control scripted updates. It's highly recommended
# to keep it enabled.
# Default: yes
#ScriptedUpdates yes
# By default freshclam will keep the local databases (.cld) uncompressed to
# make their handling faster. With this option you can enable the compression;
# the change will take effect with the next database update.
# Default: no
#CompressLocalDatabase no
# Number of database checks per day.
# Default: 12 (every two hours)
#Checks 24
# Proxy settings
# Default: disabled
#HTTPProxyServer myproxy.com
#HTTPProxyPort 1234
#HTTPProxyUsername myusername
#HTTPProxyPassword mypass
# If your servers are behind a firewall/proxy which applies User-Agent
# filtering you can use this option to force the use of a different
# User-Agent header.
# Default: clamav/version_number
#HTTPUserAgent SomeUserAgentIdString
# Use aaa.bbb.ccc.ddd as client address for downloading databases. Useful for
# multi-homed systems.
# Default: Use OS'es default outgoing IP address.
#LocalIPAddress aaa.bbb.ccc.ddd
# Send the RELOAD command to clamd.
# Default: no
NotifyClamd /etc/clamd.conf
# Run command after successful database update.
# Default: disabled
#OnUpdateExecute command
# Run command when database update process fails.
# Default: disabled
#OnErrorExecute command
# Run command when freshclam reports outdated version.
# In the command string %v will be replaced by the new version number.
# Default: disabled
#OnOutdatedExecute command
# Don't fork into background.
# Default: no
#Foreground yes
# Enable debug messages in libclamav.
# Default: no
#Debug yes
# Timeout in seconds when connecting to database server.
# Default: 30
#ConnectTimeout 60
# Timeout in seconds when reading from database server.
# Default: 30
#ReceiveTimeout 60
# With this option enabled, freshclam will attempt to load new
# databases into memory to make sure they are properly handled
# by libclamav before replacing the old ones.
# Default: yes
#TestDatabases yes
# When enabled freshclam will submit statistics to the ClamAV Project about
# the latest virus detections in your environment. The ClamAV maintainers
# will then use this data to determine what types of malware are the most
# detected in the field and in what geographic area they are.
# This feature requires LogTime and LogFile to be enabled in clamd.conf,
# it's also recommended to turn on ExtendedDetectionInfo.
# Default: no
#SubmitDetectionStats /path/to/clamd.conf
# Country of origin of malware/detection statistics (for statistical
# purposes only). The statistics collector at ClamAV.net will look up
# your IP address to determine the geographical origin of the malware
# reported by your installation. If this installation is mainly used to
# scan data which comes from a different location, please enable this
# option and enter a two-letter code (see http://www.iana.org/domains/root/db/)
# of the country of origin.
# Default: disabled
#DetectionStatsCountry country-code
# This option enables support for our "Personal Statistics" service.
# When this option is enabled, the information on malware detected by
# your clamd installation is made available to you through our website.
# To get your HostID, log on http://www.stats.clamav.net and add a new
# host to your host list. Once you have the HostID, uncomment this option
# and paste the HostID here. As soon as your freshclam starts submitting
# information to our stats collecting service, you will be able to view
# the statistics of this clamd installation by logging into
# http://www.stats.clamav.net with the same credentials you used to
# generate the HostID. For more information refer to:
# http://www.clamav.net/support/faq/faq-cctts/
# This feature requires SubmitDetectionStats to be enabled.
# Default: disabled
#DetectionStatsHostID unique-id
# This option enables support for Google Safe Browsing. When activated for
# the first time, freshclam will download a new database file (safebrowsing.cvd)
# which will be automatically loaded by clamd and clamscan during the next
# reload, provided that the heuristic phishing detection is turned on. This
# database includes information about websites that may be phishing sites or
# possible sources of malware. When using this option, it's mandatory to run
# freshclam at least every 30 minutes.
# Freshclam uses the ClamAV's mirror infrastructure to distribute the
# database and its updates but all the contents are provided under Google's
# terms of use. See http://code.google.com/support/bin/answer.py?answer=70015
# and http://safebrowsing.clamav.net for more information.
# Default: disabled
#SafeBrowsing yes
# This option enables downloading of bytecode.cvd, which includes additional
# detection mechanisms and improvements to the ClamAV engine.
# Default: enabled
#Bytecode yes
+33 -26
View File
@@ -1,65 +1,67 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>clamav</Name>
<Homepage>http://www.clamav.net</Homepage>
<Homepage>https://www.clamav.net/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2+</License>
<IsA>service</IsA>
<IsA>library</IsA>
<License>GPL-2</License>
<IsA>app:console</IsA>
<Summary>Clam Antivirus software</Summary>
<Summary>Clam Antivirus software.</Summary>
<Description>Clam AntiVirus is a GPL anti-virus toolkit for UNIX.</Description>
<Archive sha1sum="259a726e7aaeebeed138578192a80e06f949638c" type="targz">https://www.clamav.net/downloads/production/clamav-0.103.0.tar.gz</Archive>
<Archive sha1sum="e5fa557de1713faeb23a8b1f6788c27c7b7a340f" type="targz">
https://www.clamav.net/downloads/production/clamav-0.105.1.tar.gz
</Archive>
<BuildDependencies>
<Dependency>libxml2-devel</Dependency>
<Dependency>libpcre2-devel</Dependency>
<Dependency>rust</Dependency>
<Dependency>cmake</Dependency>
<Dependency>ninja</Dependency>
<!-- <Dependency>libmilter</Dependency> -->
<Dependency>curl-devel</Dependency>
<Dependency>zlib-devel</Dependency>
<Dependency>check-devel</Dependency>
<Dependency>json-c-devel</Dependency>
<Dependency>ncurses-devel</Dependency>
<Dependency>openssl-devel</Dependency>
<Dependency>ncurses-devel</Dependency>
<Dependency>python3-devel</Dependency>
<Dependency>libxml2-devel</Dependency>
<Dependency>libpcre2-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">daemon_confs.patch</Patch>
</Patches>
</Source>
<Package>
<Name>clamav</Name>
<RuntimeDependencies>
<Dependency>libxml2</Dependency>
<Dependency>bzip2</Dependency>
<Dependency>libgcc</Dependency>
<Dependency>libtool-ltdl</Dependency>
<Dependency>libpcre2</Dependency>
<Dependency>curl</Dependency>
<Dependency>zlib</Dependency>
<Dependency>bzip2</Dependency>
<Dependency>json-c</Dependency>
<Dependency>libgcc</Dependency>
<Dependency>libxml2</Dependency>
<Dependency>ncurses</Dependency>
<Dependency>openssl</Dependency>
<Dependency>libpcre2</Dependency>
<!-- <Dependency>libmilter</Dependency> -->
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="config">/etc</Path>
<Path fileType="config">/usr/lib/tmpfiles.d/clamav.conf</Path>
<Path fileType="cfgfiles">/etc/clamav</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="data">/lib/udev/rules.d</Path>
<Path fileType="data">/var/lib/clamav</Path>
<Path fileType="data">/run/clamav</Path>
<Path fileType="data">/var/log</Path>
<Path fileType="data">/var/lib/clamav</Path>
<Path fileType="data">/var/log/clamav</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/tmpfiles.d/clamav.conf">clamav.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/clamd.conf">clamd.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/freshclam.conf">freshclam.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/clamav-milter.conf">clamav-milter.conf</AdditionalFile>
<!-- <AdditionalFile owner="root" permission="0644" target="."></AdditionalFile> -->
</AdditionalFiles>
<Provides>
<COMAR script="package.py">System.Package</COMAR>
@@ -69,8 +71,6 @@
<Package>
<Name>clamav-devel</Name>
<IsA>library</IsA>
<Summary>Development headers for Clamav</Summary>
<RuntimeDependencies>
<Dependency release="current">clamav</Dependency>
</RuntimeDependencies>
@@ -81,6 +81,13 @@
</Package>
<History>
<Update release="4">
<Date>2022-11-15</Date>
<Version>0.105.1</Version>
<Comment>Version bump.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
<Update release="3">
<Date>2021-01-31</Date>
<Version>0.103.0</Version>
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import shelltools, pisitools
def install():
for lib in shelltools.ls("lib/*"):
shelltools.chmod(lib, mode = 0644)
pisitools.insinto("/usr/lib/perl5/vendor_perl/5.32.0/ClamTk", lib)
for po in shelltools.ls("po/*.po"):
shelltools.chmod(po, mode = 0644)
pisitools.domo(po, shelltools.baseName(po).replace(".po", ""), "clamtk.mo")
pisitools.dobin("clamtk")
pisitools.insinto("/usr/share/applications", "clamtk.desktop")
pisitools.dopixmaps("images/*")
pisitools.doman("clamtk.1.gz")
pisitools.insinto("/usr/share/appdata", "com.github.davetheunsub.clamtk.appdata.xml")
+61
View File
@@ -0,0 +1,61 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>clamtk</Name>
<Homepage>https://gitlab.com/dave_m/clamtk/-/wikis/home</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>GPL</License>
<License>Artistic</License>
<IsA>app:gui</IsA>
<PartOf>util.antivirus</PartOf>
<Summary>ClamAV GUI.</Summary>
<Description>ClamTk is a graphical front-end for ClamAV using Perl and Gtk libraries.</Description>
<Archive sha1sum="856bd1c9b76cd77f0fc3f548904ecb61ea6ce2f7" type="tarxz">
https://github.com/dave-theunsub/clamtk/releases/download/v6.14/clamtk-6.14.tar.xz
</Archive>
<BuildDependencies>
<!-- <Dependency></Dependency> -->
</BuildDependencies>
<Patches>
<!-- <Patch level='1'></Patch> -->
</Patches>
</Source>
<Package>
<Name>clamtk</Name>
<RuntimeDependencies>
<!-- <Dependency></Dependency> -->
<Dependency>clamav</Dependency>
<Dependency>zenity</Dependency>
<Dependency>python3</Dependency>
<Dependency>perl-Gtk3</Dependency>
<Dependency>perl-JSON</Dependency>
<Dependency>vixie-cron</Dependency>
<Dependency>perl-libwww</Dependency>
<Dependency>perl-Text-CSV</Dependency>
<Dependency>perl-HTTP-Message</Dependency>
<Dependency>perl-Locale-gettext</Dependency>
<Dependency>perl-LWP-Protocol-https</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="data">/usr/lib/perl5/vendor_perl/5.32.0/ClamTk</Path>
<Path fileType="data">/usr/share</Path>
<Path fileType="localedata">/usr/share/locale</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-15</Date>
<Version>6.14</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>
+13
View File
@@ -0,0 +1,13 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file https://www.gnu.org/licenses/gpl-3.0.txt
from pisi.actionsapi import pythonmodules
def build():
pythonmodules.compile(pyVer = '3')
def install():
pythonmodules.install(pyVer = '3')
+58
View File
@@ -0,0 +1,58 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "https://pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>cvdupdate</Name>
<Homepage>https://github.com/Cisco-Talos/cvdupdate</Homepage>
<Packager>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Packager>
<License>Apache-2.0</License>
<IsA>app</IsA>
<PartOf>util.antivirus</PartOf>
<Summary>ClamAV Private Database Mirror Updater Tool.</Summary>
<Description>This tool downloads the latest ClamAV databases along with the latest database patch files.</Description>
<Archive sha1sum="a5728247bc77a2967cade2c1af307cdc12723035" type="targz">
https://files.pythonhosted.org/packages/source/c/cvdupdate/cvdupdate-1.1.1.tar.gz
</Archive>
<BuildDependencies>
<Dependency>python3-devel</Dependency>
<Dependency>python3-setuptools</Dependency>
<Dependency>python3-importlib_metadata</Dependency>
</BuildDependencies>
<Patches>
<!-- <Patch level='1'></Patch> -->
</Patches>
</Source>
<Package>
<Name>cvdupdate</Name>
<RuntimeDependencies>
<Dependency>python3-click</Dependency>
<Dependency>python3-certifi</Dependency>
<Dependency>python3-colorama</Dependency>
<Dependency>python3-requests</Dependency>
<Dependency>python3-dnspython</Dependency>
<Dependency>python3-coloredlogs</Dependency>
<Dependency>python3-rangehttpserver</Dependency>
<Dependency>python3-charset-normalizer</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="data">/usr/lib/python3.9</Path>
<Path fileType="data">/usr/share/doc</Path>
</Files>
</Package>
<History>
<Update release="1">
<Date>2022-11-15</Date>
<Version>1.1.1</Version>
<Comment>First build.</Comment>
<Name>fury</Name>
<Email>uglyside@yandex.ru</Email>
</Update>
</History>
</PISI>