Merge 6373 Closes https://bastionguard.eu/issues/bastionguard-email-protection-with-local-smtp-proxy/ and 6375 https://bastionguard.eu/issues/phishing-scanner-module/ . Fixed 6374 set locale https://bastionguard.eu/issues/set-locale/
This commit is contained in:
parent
ea4dfa502e
commit
7f6e28fa57
36 changed files with 479 additions and 160 deletions
|
|
@ -417,8 +417,8 @@ target_include_directories(BastionGuard
|
|||
)
|
||||
|
||||
target_compile_definitions(BastionGuard PRIVATE
|
||||
BASTIONGUARD_VERSION="1.0"
|
||||
BASTIONGUARD_BUILD=20260116
|
||||
BASTIONGUARD_VERSION="1.1"
|
||||
BASTIONGUARD_BUILD=20260310
|
||||
)
|
||||
|
||||
target_link_libraries(BastionGuard
|
||||
|
|
|
|||
2
debian/bastionguard.install
vendored
2
debian/bastionguard.install
vendored
|
|
@ -8,4 +8,4 @@ usr/share/dbus-1/system-services/*.service usr/share/dbus-1/system-services/
|
|||
usr/share/dbus-1/services/*.service usr/share/dbus-1/services/
|
||||
usr/lib/systemd/system/* usr/lib/systemd/system/
|
||||
usr/lib/systemd/user/* usr/lib/systemd/user/
|
||||
|
||||
usr/libexec/bastionguard/archive_worker usr/libexec/bastionguard/
|
||||
|
|
|
|||
5
debian/change_cmake/CMakeLists.txt
vendored
5
debian/change_cmake/CMakeLists.txt
vendored
|
|
@ -511,8 +511,8 @@ target_include_directories(BastionGuard
|
|||
)
|
||||
|
||||
target_compile_definitions(BastionGuard PRIVATE
|
||||
BASTIONGUARD_VERSION="1.0"
|
||||
BASTIONGUARD_BUILD=20260116
|
||||
BASTIONGUARD_VERSION="1.1"
|
||||
BASTIONGUARD_BUILD=20260310
|
||||
)
|
||||
|
||||
target_link_libraries(BastionGuard
|
||||
|
|
@ -908,6 +908,7 @@ install(TARGETS BastionGuard-ransomware-scanner RUNTIME DESTINATION ${CMAKE_INST
|
|||
# ======================
|
||||
add_executable(BastionGuard-ransomware-realtime
|
||||
src/scanner-ransomware/BastionGuard-ransomware-realtime.cpp
|
||||
${BG_ARCHIVE_CORE_SOURCES}
|
||||
)
|
||||
|
||||
target_include_directories(BastionGuard-ransomware-realtime PRIVATE src)
|
||||
|
|
|
|||
|
|
@ -12,13 +12,11 @@ if [[ ! -d "$SRC_DIR" ]]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# PATCH ALL: every .cpp under src/ (includes src/usb/USBScanPage.cpp and any future files)
|
||||
mapfile -t FILES_TO_PATCH < <(find "$SRC_DIR" -type f -name "*.cpp" | sort)
|
||||
|
||||
TMPDIR="$(mktemp -d)"
|
||||
trap 'rm -rf "$TMPDIR"' EXIT
|
||||
|
||||
# Make a stable backup key from full path (avoid basename collisions)
|
||||
backup_key() { echo "$1" | sed 's|/|__|g'; }
|
||||
|
||||
echo "[1/6] Backups"
|
||||
|
|
@ -26,6 +24,7 @@ for f in "${FILES_TO_PATCH[@]}"; do
|
|||
[[ -f "$f" ]] || continue
|
||||
cp -a "$f" "$TMPDIR/$(backup_key "$f").orig"
|
||||
done
|
||||
|
||||
if [[ -f "$COMPAT_HPP" ]]; then
|
||||
cp -a "$COMPAT_HPP" "$TMPDIR/GtkCompat.hpp.orig"
|
||||
else
|
||||
|
|
@ -36,9 +35,6 @@ echo "[2/6] Writing $COMPAT_HPP (Qt macro-safe)"
|
|||
cat > "$COMPAT_HPP" <<'EOF'
|
||||
#pragma once
|
||||
|
||||
// Qt macro hygiene: Qt defines macros (signals/slots/emit/foreach/Q_FOREACH) that break glib/gtkmm headers.
|
||||
// Temporarily undef them while including gtkmm/glibmm, then restore.
|
||||
|
||||
#if defined(_MSC_VER) || defined(__clang__) || defined(__GNUC__)
|
||||
#define GTKCOMPAT_HAS_PUSH_POP_MACRO 1
|
||||
#else
|
||||
|
|
@ -72,7 +68,6 @@ cat > "$COMPAT_HPP" <<'EOF'
|
|||
#define GTKCOMPAT_RESTORE_Q_FOREACH 1
|
||||
#endif
|
||||
#else
|
||||
// Fallback: undefine (cannot restore reliably without push/pop)
|
||||
#ifdef signals
|
||||
#undef signals
|
||||
#endif
|
||||
|
|
@ -121,7 +116,6 @@ namespace GtkCompat
|
|||
}
|
||||
}
|
||||
|
||||
// Robust comparisons between Glib::ustring and std::string (avoids operator!= issues).
|
||||
inline bool operator==(const Glib::ustring& lhs, const std::string& rhs) { return lhs.raw() == rhs; }
|
||||
inline bool operator==(const std::string& lhs, const Glib::ustring& rhs) { return lhs == rhs.raw(); }
|
||||
inline bool operator!=(const Glib::ustring& lhs, const std::string& rhs) { return !(lhs == rhs); }
|
||||
|
|
@ -167,48 +161,81 @@ for f in "${FILES_TO_PATCH[@]}"; do
|
|||
done
|
||||
|
||||
echo "[4/6] Fix ListBox::remove_all()"
|
||||
# Apply globally (not just ScanPage.cpp), in case other listboxes call remove_all()
|
||||
perl -pi -e 's/\b([A-Za-z_][A-Za-z0-9_]*)\.remove_all\(\)\s*;/GtkCompat::listbox_clear($1);/g' "${FILES_TO_PATCH[@]}"
|
||||
|
||||
echo "[5/6] Fix get_children() vars and loops (supports auto, auto&, auto &)"
|
||||
echo "[5/6] Fix get_children() vars and loops (supports auto, auto&, auto*, braced and single-line)"
|
||||
for f in "${FILES_TO_PATCH[@]}"; do
|
||||
[[ -f "$f" ]] || continue
|
||||
|
||||
# auto children = obj.get_children();
|
||||
perl -i -pe '
|
||||
s/\bauto\s+(\w+)\s*=\s*([A-Za-z_][A-Za-z0-9_:>\-\.\(\)\s]*)\s*\.get_children\s*\(\s*\)\s*;/
|
||||
auto $1 = GtkCompat::children($2);/gx
|
||||
' "$f"
|
||||
|
||||
# auto children = obj->get_children();
|
||||
perl -i -pe '
|
||||
s/\bauto\s+(\w+)\s*=\s*([A-Za-z_][A-Za-z0-9_:>\-\.\(\)\s]*)\s*->get_children\s*\(\s*\)\s*;/
|
||||
auto $1 = GtkCompat::children(*($2));/gx
|
||||
' "$f"
|
||||
|
||||
# for (auto X : OBJ.get_children()) {
|
||||
perl -0777 -i -pe '
|
||||
s/for\s*\(\s*auto\s+(\w+)\s*:\s*([^\)]+?)\.get_children\s*\(\s*\)\s*\)\s*\{/
|
||||
for (auto* $1 = ($2).get_first_child(); $1 != nullptr; $1 = $1->get_next_sibling()) {/gsx
|
||||
' "$f"
|
||||
|
||||
# for (auto& X : OBJ.get_children()) { and for (auto & X : ...)
|
||||
perl -0777 -i -pe '
|
||||
s/for\s*\(\s*auto\s*&\s*(\w+)\s*:\s*([^\)]+?)\.get_children\s*\(\s*\)\s*\)\s*\{/
|
||||
for (auto* $1 = ($2).get_first_child(); $1 != nullptr; $1 = $1->get_next_sibling()) {/gsx
|
||||
' "$f"
|
||||
|
||||
# for (auto X : OBJ->get_children()) {
|
||||
perl -0777 -i -pe '
|
||||
s/for\s*\(\s*auto\s*\*\s*(\w+)\s*:\s*([^\)]+?)\.get_children\s*\(\s*\)\s*\)\s*\{/
|
||||
for (auto* $1 = ($2).get_first_child(); $1 != nullptr; $1 = $1->get_next_sibling()) {/gsx
|
||||
' "$f"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s/for\s*\(\s*auto\s+(\w+)\s*:\s*([^\)]+?)\-\>get_children\s*\(\s*\)\s*\)\s*\{/
|
||||
for (auto* $1 = ($2)->get_first_child(); $1 != nullptr; $1 = $1->get_next_sibling()) {/gsx
|
||||
' "$f"
|
||||
|
||||
# for (auto& X : OBJ->get_children()) { and for (auto & X : ...)
|
||||
perl -0777 -i -pe '
|
||||
s/for\s*\(\s*auto\s*&\s*(\w+)\s*:\s*([^\)]+?)\-\>get_children\s*\(\s*\)\s*\)\s*\{/
|
||||
for (auto* $1 = ($2)->get_first_child(); $1 != nullptr; $1 = $1->get_next_sibling()) {/gsx
|
||||
' "$f"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s/for\s*\(\s*auto\s*\*\s*(\w+)\s*:\s*([^\)]+?)\-\>get_children\s*\(\s*\)\s*\)\s*\{/
|
||||
for (auto* $1 = ($2)->get_first_child(); $1 != nullptr; $1 = $1->get_next_sibling()) {/gsx
|
||||
' "$f"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s@for\s*\(\s*auto\s+(\w+)\s*:\s*([^\n;]+?)\.get_children\s*\(\s*\)\s*\)\s*\n(\s*)([^\n;][^\n]*;)@
|
||||
$3for (auto* $1 = ($2).get_first_child(); $1 != nullptr; ) {\n$3 auto* next = $1->get_next_sibling();\n$3 $4\n$3 $1 = next;\n$3}@gsx
|
||||
' "$f"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s@for\s*\(\s*auto\s*&\s*(\w+)\s*:\s*([^\n;]+?)\.get_children\s*\(\s*\)\s*\)\s*\n(\s*)([^\n;][^\n]*;)@
|
||||
$3for (auto* $1 = ($2).get_first_child(); $1 != nullptr; ) {\n$3 auto* next = $1->get_next_sibling();\n$3 $4\n$3 $1 = next;\n$3}@gsx
|
||||
' "$f"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s@for\s*\(\s*auto\s*\*\s*(\w+)\s*:\s*([^\n;]+?)\.get_children\s*\(\s*\)\s*\)\s*\n(\s*)([^\n;][^\n]*;)@
|
||||
$3for (auto* $1 = ($2).get_first_child(); $1 != nullptr; ) {\n$3 auto* next = $1->get_next_sibling();\n$3 $4\n$3 $1 = next;\n$3}@gsx
|
||||
' "$f"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s@for\s*\(\s*auto\s+(\w+)\s*:\s*([^\n;]+?)\-\>get_children\s*\(\s*\)\s*\)\s*\n(\s*)([^\n;][^\n]*;)@
|
||||
$3for (auto* $1 = ($2)->get_first_child(); $1 != nullptr; ) {\n$3 auto* next = $1->get_next_sibling();\n$3 $4\n$3 $1 = next;\n$3}@gsx
|
||||
' "$f"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s@for\s*\(\s*auto\s*&\s*(\w+)\s*:\s*([^\n;]+?)\-\>get_children\s*\(\s*\)\s*\)\s*\n(\s*)([^\n;][^\n]*;)@
|
||||
$3for (auto* $1 = ($2)->get_first_child(); $1 != nullptr; ) {\n$3 auto* next = $1->get_next_sibling();\n$3 $4\n$3 $1 = next;\n$3}@gsx
|
||||
' "$f"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s@for\s*\(\s*auto\s*\*\s*(\w+)\s*:\s*([^\n;]+?)\-\>get_children\s*\(\s*\)\s*\)\s*\n(\s*)([^\n;][^\n]*;)@
|
||||
$3for (auto* $1 = ($2)->get_first_child(); $1 != nullptr; ) {\n$3 auto* next = $1->get_next_sibling();\n$3 $4\n$3 $1 = next;\n$3}@gsx
|
||||
' "$f"
|
||||
done
|
||||
|
||||
echo "[6/6] Generate patch artifact: $PATCH_OUT"
|
||||
|
|
@ -235,4 +262,3 @@ echo "DONE. Residual get_children() occurrences (should be 0):"
|
|||
grep -R --line-number "get_children()" -n "$SRC_DIR" || true
|
||||
echo
|
||||
echo "Patch written to: $PATCH_OUT"
|
||||
|
||||
|
|
|
|||
31
debian/patches-ubuntu-lts/ubuntu-lts-system-fix.sh
vendored
Normal file
31
debian/patches-ubuntu-lts/ubuntu-lts-system-fix.sh
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
FILE="src/SettingsPage.cpp"
|
||||
|
||||
if [[ ! -f "$FILE" ]]; then
|
||||
echo "ERROR: $FILE not found" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[ubuntu-lts-system-fix] Patching $FILE"
|
||||
|
||||
perl -0777 -i -pe '
|
||||
s@if \(pw\) chown\(conf_file\.c_str\(\), pw->pw_uid, pw->pw_gid\);@if (pw) {\n const int chown_rc = chown(conf_file.c_str(), pw->pw_uid, pw->pw_gid);\n if (chown_rc != 0) {\n std::cerr << _("[SettingsPage] ⚠ chown fallita per ") << conf_file << std::endl;\n }\n }@g;
|
||||
|
||||
s@std::system\("systemctl --user restart BastionGuard-mailproxy\.service 2>/dev/null"\);@const int rc = std::system("systemctl --user restart BastionGuard-mailproxy.service 2>/dev/null");\n if (rc != 0) {\n std::cerr << _("[SettingsPage] ⚠ Impossibile riavviare BastionGuard-mailproxy.service") << std::endl;\n }@g;
|
||||
' "$FILE"
|
||||
|
||||
echo "[ubuntu-lts-system-fix] Verifying patch"
|
||||
|
||||
if grep -Eq '^[[:space:]]*if \(pw\) chown\(conf_file\.c_str\(\), pw->pw_uid, pw->pw_gid\);[[:space:]]*$' "$FILE"; then
|
||||
echo "ERROR: chown patch not applied" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if grep -Eq '^[[:space:]]*std::system\("systemctl --user restart BastionGuard-mailproxy\.service 2>/dev/null"\);[[:space:]]*$' "$FILE"; then
|
||||
echo "ERROR: mailproxy restart patch not applied" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[ubuntu-lts-system-fix] Patch applied successfully"
|
||||
2
debian/rules
vendored
2
debian/rules
vendored
|
|
@ -10,6 +10,8 @@ override_dh_auto_configure:
|
|||
set -ex; \
|
||||
dh_auto_configure -- \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_C_FLAGS="$(CFLAGS) -Wno-error=unused-result" \
|
||||
-DCMAKE_CXX_FLAGS="$(CXXFLAGS) -Wno-error=unused-result" \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
|
||||
-DCMAKE_INSTALL_LOCALSTATEDIR=/var \
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
|
||||
Name: bastionguard
|
||||
Version: 1.0
|
||||
Version: 1.1
|
||||
Release: 1%{?dist}
|
||||
Summary: BastionGuard Security Platform
|
||||
|
||||
|
|
@ -79,6 +79,7 @@ Transparent security control plane for Linux desktops
|
|||
BastionGuard is not a "trust us" security product.
|
||||
It is a security control plane for Linux desktops where every protection
|
||||
mechanism is explicit, deterministic, and observable.
|
||||
.
|
||||
Unlike most desktop security tools, which hide decisions behind opaque
|
||||
engines, cloud scoring, or silent automation, BastionGuard exposes
|
||||
what is happening, why it is happening, and how protections are applied.
|
||||
|
|
@ -126,38 +127,34 @@ readelf -d %{buildroot}%{_bindir}/BastionGuard | grep -q NEEDED
|
|||
|
||||
|
||||
%files
|
||||
# Binari
|
||||
%{_bindir}/*
|
||||
|
||||
# Dati applicazione
|
||||
%{_datadir}/BastionGuard
|
||||
|
||||
# Desktop entries
|
||||
%{_datadir}/applications/BastionGuard.desktop
|
||||
%{_datadir}/applications/BastionGuard-bankgui.desktop
|
||||
%{_datadir}/applications/BastionGuard-secure.desktop
|
||||
%{_datadir}/applications/bastionguard-bankopener.desktop
|
||||
|
||||
# Autostart (XDG)
|
||||
%config(noreplace) %{_sysconfdir}/xdg/autostart/BastionGuard-autostart.desktop
|
||||
|
||||
# DBus
|
||||
%{_datadir}/dbus-1/services/org.BastionGuard.RansomwareAlert.service
|
||||
%{_datadir}/dbus-1/system-services/org.BastionGuard.USBD.service
|
||||
%{_datadir}/dbus-1/system.d/org.BastionGuard.USBD.conf
|
||||
|
||||
# Polkit
|
||||
%{_datadir}/polkit-1/actions/it.BastionGuard.camera.policy
|
||||
%{_datadir}/polkit-1/actions/org.BastionGuard.policy
|
||||
%{_datadir}/polkit-1/actions/org.BastionGuard.ransomware.policy
|
||||
%{_datadir}/polkit-1/actions/org.BastionGuard.USBD.policy
|
||||
|
||||
# Systemd
|
||||
%{_unitdir}/*
|
||||
%{_userunitdir}/*
|
||||
|
||||
%dir %{_libexecdir}/bastionguard
|
||||
%{_libexecdir}/bastionguard/archive_worker
|
||||
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Jan 28 2026 BastionGuard <info@bastionguard.it> - 1.0-1
|
||||
- Initial RPM package
|
||||
* Fri Mar 13 2026 Calogero Scarnà <info@bastionguard.eu> - 1.1-1
|
||||
- Update package, view changelog
|
||||
|
|
|
|||
|
|
@ -556,15 +556,19 @@ set(BastionGuard_SOURCES
|
|||
src/phishing_search/PhishingPage.cpp
|
||||
src/phishing_search/PhishingCheckCard.cpp
|
||||
)
|
||||
|
||||
add_executable(BastionGuard ${BastionGuard_SOURCES})
|
||||
target_include_directories(BastionGuard
|
||||
PRIVATE
|
||||
src
|
||||
src/firewall
|
||||
)
|
||||
|
||||
|
||||
|
||||
target_compile_definitions(BastionGuard PRIVATE
|
||||
BASTIONGUARD_VERSION="1.0"
|
||||
BASTIONGUARD_BUILD=20260116
|
||||
BASTIONGUARD_VERSION="1.1"
|
||||
BASTIONGUARD_BUILD=20260310
|
||||
)
|
||||
|
||||
target_link_libraries(BastionGuard
|
||||
|
|
@ -958,6 +962,7 @@ install(TARGETS BastionGuard-ransomware-scanner RUNTIME DESTINATION ${CMAKE_INST
|
|||
# ======================
|
||||
add_executable(BastionGuard-ransomware-realtime
|
||||
src/scanner-ransomware/BastionGuard-ransomware-realtime.cpp
|
||||
${BG_ARCHIVE_CORE_SOURCES}
|
||||
)
|
||||
|
||||
target_include_directories(BastionGuard-ransomware-realtime PRIVATE src)
|
||||
|
|
|
|||
|
|
@ -6874,3 +6874,9 @@ msgstr ""
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr ""
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr ""
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -1,18 +1,17 @@
|
|||
# بعض العنوان الوصفي
|
||||
# حقوق الطبع والنشر (C) السنة صاحب حقوق الطبع والنشر للحزمة
|
||||
# يتم توزيع هذا الملف تحت نفس الرخصة مثل حزمة PACKAGE.
|
||||
# المؤلف الأول <EMAIL@ADDRESS>، السنة.
|
||||
# BastionGuard™ Arabic translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: info@bastionguard.eu\n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: Arabic\n"
|
||||
"Language: ar\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
@ -6867,3 +6866,9 @@ msgstr "وكيل البريد"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "وكيل SMTP محلي لحماية البريد الإلكتروني الصادر"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ هناك عدد كبير جدًا من عمليات التحقق السحابية الجارية، يتم التخطي مؤقتًا."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ خطأ غير معروف في التحقق السحابي."
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ German translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: info@bastionguard.eu\n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
@ -6891,3 +6890,9 @@ msgstr "Mail-Proxy"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Lokaler SMTP-Proxy zum Schutz ausgehender E-Mails"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Zu viele Cloud-Prüfungen laufen gerade, wird vorübergehend übersprungen."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Unbekannter Fehler bei der Cloud-Prüfung."
|
||||
|
|
|
|||
|
|
@ -1,18 +1,17 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ English (United States) translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: info@bastionguard.eu\n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: English (United States)\n"
|
||||
"Language: en_US\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
@ -6892,3 +6891,9 @@ msgstr "Mail Proxy"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Local SMTP proxy for outgoing email protection"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Too many cloud checks in progress, temporarily skipping."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Unknown cloud check error."
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ Spanish translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: info@bastionguard.eu\n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
@ -6940,3 +6939,9 @@ msgstr "Proxy de correo"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Proxy SMTP local para proteger el correo saliente"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Demasiadas comprobaciones en la nube en curso, se omite temporalmente."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Error desconocido en la comprobación de la nube."
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ French translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: info@bastionguard.eu\n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: French\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
@ -6901,3 +6900,9 @@ msgstr "Proxy de messagerie"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Proxy SMTP local pour la protection des e-mails sortants"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Trop de vérifications cloud en cours, saut temporaire."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Erreur inconnue lors de la vérification cloud."
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ translation template
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
@ -6598,3 +6597,8 @@ msgstr "Mail Proxy"
|
|||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Proxy SMTP locale per protezione email in uscita"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Errore controllo cloud sconosciuto."
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ Japanese translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: Japanese\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
@ -6834,3 +6833,9 @@ msgstr "メールプロキシ"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "送信メール保護のためのローカル SMTP プロキシ"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ クラウドチェックが多すぎるため、一時的にスキップします。"
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ 不明なクラウドチェックエラー。"
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ Dutch translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: Dutch\n"
|
||||
"Language: nl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
@ -6777,3 +6776,9 @@ msgstr "Mail-proxy"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Lokale SMTP-proxy voor bescherming van uitgaande e-mail"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Te veel cloudcontroles bezig, tijdelijk overslaan."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Onbekende fout bij de cloudcontrole."
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
# JAKIŚ OPISOWY TYTUŁ
|
||||
# Copyright (C) ROK POSIADACZ PRAW AUTORSKICH PAKIETU
|
||||
# Ten plik jest dystrybuowany na tych samych warunkach co pakiet PACKAGE.
|
||||
# PIERWSZY AUTOR <EMAIL@ADRES>, ROK.
|
||||
# BastionGuard™ Polish translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: ROK-MIES-DZIEŃ GG:MM+STREFA\n"
|
||||
"Last-Translator: PEŁNE IMIĘ I NAZWISKO <EMAIL@ADRES>\n"
|
||||
"Language-Team: POLSKI <LL@li.org>\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: Polish\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
@ -6836,3 +6835,9 @@ msgstr "Proxy poczty"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Lokalny proxy SMTP do ochrony wychodzącej poczty e-mail"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Zbyt wiele kontroli chmury w toku, tymczasowo pomijam."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Nieznany błąd kontroli chmury."
|
||||
|
|
|
|||
|
|
@ -1,18 +1,17 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ Portuguese (Portugal) translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: pt_BR\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: Portuguese (Portugal)\n"
|
||||
"Language: pt_PT\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
|
@ -6809,3 +6808,9 @@ msgstr "Proxy de e-mail"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Proxy SMTP local para proteção de e-mails enviados"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Muitas verificações de nuvem em andamento, pulando temporariamente."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Erro desconhecido na verificação da nuvem."
|
||||
|
|
|
|||
|
|
@ -1,17 +1,16 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# BastionGuard™ Russian translation
|
||||
# Copyright (C) 2025-2026 BastionGuard™
|
||||
# This file is distributed under the same license as the BastionGuard package.
|
||||
# Calogero Scarnà <info@bastionguard.eu>, 2025-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: BastionGuard 1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-01-19 07:54+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"PO-Revision-Date: 2026-01-19 07:54+0100\n"
|
||||
"Last-Translator: Calogero Scarnà <info@bastionguard.eu>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
|
@ -6775,3 +6774,9 @@ msgstr "Почтовый прокси"
|
|||
|
||||
msgid "Proxy SMTP locale per protezione email in uscita"
|
||||
msgstr "Локальный SMTP-прокси для защиты исходящей почты"
|
||||
|
||||
msgid "⏳ Troppi controlli cloud in corso, salto temporaneamente."
|
||||
msgstr "⏳ Слишком много облачных проверок выполняется, временно пропускаю."
|
||||
|
||||
msgid "❌ Errore controllo cloud sconosciuto."
|
||||
msgstr "❌ Неизвестная ошибка при облачной проверке."
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
|
||||
Name: bastionguard
|
||||
Version: 1.0
|
||||
Version: 1.1
|
||||
Release: 0
|
||||
Summary: BastionGuard Security Platform
|
||||
License: GPL-3.0-or-later
|
||||
|
|
@ -107,6 +107,7 @@ Transparent security control plane for Linux desktops
|
|||
BastionGuard is not a "trust us" security product.
|
||||
It is a security control plane for Linux desktops where every protection
|
||||
mechanism is explicit, deterministic, and observable.
|
||||
.
|
||||
Unlike most desktop security tools, which hide decisions behind opaque
|
||||
engines, cloud scoring, or silent automation, BastionGuard exposes
|
||||
what is happening, why it is happening, and how protections are applied.
|
||||
|
|
@ -183,8 +184,11 @@ readelf -d %{buildroot}%{_bindir}/BastionGuard | grep -q NEEDED
|
|||
%{_unitdir}/*
|
||||
%{_userunitdir}/*
|
||||
|
||||
%dir %{_libexecdir}/bastionguard
|
||||
%{_libexecdir}/bastionguard/archive_worker
|
||||
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Jan 28 2026 BastionGuard <info@bastionguard.it> - 1.0-0
|
||||
- Initial openSUSE RPM packaging
|
||||
* Fri Mar 13 2026 Calogero Scarnà <info@bastionguard.eu> - 1.1-1
|
||||
- Update package, view changelog
|
||||
|
|
|
|||
|
|
@ -565,8 +565,8 @@ target_include_directories(BastionGuard
|
|||
)
|
||||
|
||||
target_compile_definitions(BastionGuard PRIVATE
|
||||
BASTIONGUARD_VERSION="1.0"
|
||||
BASTIONGUARD_BUILD=20260116
|
||||
BASTIONGUARD_VERSION="1.1"
|
||||
BASTIONGUARD_BUILD=20260310
|
||||
)
|
||||
|
||||
target_link_libraries(BastionGuard
|
||||
|
|
@ -960,6 +960,7 @@ install(TARGETS BastionGuard-ransomware-scanner RUNTIME DESTINATION ${CMAKE_INST
|
|||
# ======================
|
||||
add_executable(BastionGuard-ransomware-realtime
|
||||
src/scanner-ransomware/BastionGuard-ransomware-realtime.cpp
|
||||
${BG_ARCHIVE_CORE_SOURCES}
|
||||
)
|
||||
|
||||
target_include_directories(BastionGuard-ransomware-realtime PRIVATE src)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Maintainer: BastionGuard info@bastionguard.it
|
||||
# Maintainer: BastionGuard info@bastionguard.eu
|
||||
|
||||
pkgname=bastionguard
|
||||
pkgver=1.1
|
||||
|
|
|
|||
|
|
@ -567,8 +567,8 @@ target_include_directories(BastionGuard
|
|||
)
|
||||
|
||||
target_compile_definitions(BastionGuard PRIVATE
|
||||
BASTIONGUARD_VERSION="1.0"
|
||||
BASTIONGUARD_BUILD=20260116
|
||||
BASTIONGUARD_VERSION="1.1"
|
||||
BASTIONGUARD_BUILD=20260310
|
||||
)
|
||||
|
||||
target_link_libraries(BastionGuard
|
||||
|
|
@ -987,6 +987,7 @@ install(TARGETS BastionGuard-ransomware-scanner RUNTIME DESTINATION ${CMAKE_INST
|
|||
# ======================
|
||||
add_executable(BastionGuard-ransomware-realtime
|
||||
src/scanner-ransomware/BastionGuard-ransomware-realtime.cpp
|
||||
${BG_ARCHIVE_CORE_SOURCES}
|
||||
)
|
||||
|
||||
target_include_directories(BastionGuard-ransomware-realtime PRIVATE src)
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
|
||||
#include "MainWindow.hpp"
|
||||
#include "ClamdConfig.hpp"
|
||||
#include "Resource.hpp"
|
||||
|
|
|
|||
|
|
@ -4235,9 +4235,6 @@ void SettingsPage::build_email_security_tab() {
|
|||
return row;
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// TAB GENERALE
|
||||
// ---------------------------------------------------------------------
|
||||
auto tab_general = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL, 12);
|
||||
tab_general->set_margin_top(12);
|
||||
tab_general->set_margin_bottom(12);
|
||||
|
|
@ -4265,9 +4262,7 @@ void SettingsPage::build_email_security_tab() {
|
|||
tab_general->append(*make_switch_row(_("Pubblica STARTTLS"), *swAdvertiseStartTls));
|
||||
tab_general->append(*make_switch_row(_("Abilita listener TLS implicito"), *swImplicitTlsListener));
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// TAB FIRMA
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
auto tab_signature = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL, 12);
|
||||
tab_signature->set_margin_top(12);
|
||||
tab_signature->set_margin_bottom(12);
|
||||
|
|
@ -4331,9 +4326,6 @@ void SettingsPage::build_email_security_tab() {
|
|||
s.logo_path = "/usr/share/BastionGuard/data/logo.png";
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// TAB THUNDERBIRD
|
||||
// ---------------------------------------------------------------------
|
||||
auto tab_thunderbird = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL, 12);
|
||||
tab_thunderbird->set_margin_top(12);
|
||||
tab_thunderbird->set_margin_bottom(12);
|
||||
|
|
@ -4463,9 +4455,7 @@ void SettingsPage::build_email_security_tab() {
|
|||
run_tb_installer();
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// TAB PROFILI SMTP
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
auto tab_profiles = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL, 12);
|
||||
tab_profiles->set_margin_top(12);
|
||||
tab_profiles->set_margin_bottom(12);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#include <algorithm>
|
||||
#include <cctype>
|
||||
#include <cstdint>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#include "PhishingCheckCard.hpp"
|
||||
#include <glibmm/i18n.h>
|
||||
#include <glibmm/markup.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <gtkmm.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#include "PhishingPage.hpp"
|
||||
|
||||
#include <glibmm/i18n.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include <regex>
|
||||
#include <gtkmm.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#include "ArchiveInspector.hpp"
|
||||
#include "ArchiveSandbox.hpp"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ArchiveResult.hpp"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#include "ArchiveSandbox.hpp"
|
||||
|
||||
#include <array>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,23 @@
|
|||
/*
|
||||
* BastionGuard™
|
||||
* Copyright (C) 2025–2026 Calogero Scarnà
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* BastionGuard™ is a trademark of Calogero Scarnà.
|
||||
* The BastionGuard™ name and branding are not licensed under the GPL.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ArchiveResult.hpp"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue