forked from pool/proftpd
Accepting request 965196 from home:computersalat:devel:network
Update to 1.3.7c OBS-URL: https://build.opensuse.org/request/show/965196 OBS-URL: https://build.opensuse.org/package/show/network/proftpd?expand=0&rev=83
This commit is contained in:
parent
7163f98894
commit
57ee4f2635
@ -1,7 +1,7 @@
|
|||||||
Index: proftpd-1.3.6e/contrib/dist/rpm/proftpd.service
|
Index: contrib/dist/rpm/proftpd.service
|
||||||
===================================================================
|
===================================================================
|
||||||
--- proftpd-1.3.6e.orig/contrib/dist/rpm/proftpd.service
|
--- contrib/dist/rpm/proftpd.service.orig
|
||||||
+++ proftpd-1.3.6e/contrib/dist/rpm/proftpd.service
|
+++ contrib/dist/rpm/proftpd.service
|
||||||
@@ -4,6 +4,18 @@ Wants=network-online.target
|
@@ -4,6 +4,18 @@ Wants=network-online.target
|
||||||
After=network-online.target nss-lookup.target local-fs.target remote-fs.target
|
After=network-online.target nss-lookup.target local-fs.target remote-fs.target
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:2dbe684034ab592742ebdb778a8a234b70f959efeb30feedee3ea77f26f74fbb
|
|
||||||
size 20277501
|
|
@ -1,7 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Comment: GPGTools - https://gpgtools.org
|
|
||||||
|
|
||||||
iEYEABECAAYFAl8Wc4kACgkQt46JP6URl2r4iACgxK61LzkVQ5xRHKHMl43D1ixd
|
|
||||||
zYQAoJXt14fj66DMBwU+JBDqQ+nm2tsj
|
|
||||||
=F9Rz
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
proftpd-1.3.7c.tar.gz
Normal file
3
proftpd-1.3.7c.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:7070968b9b6cf614ce7f756c8c1a66c32c1afa4f961784a62301790a801400da
|
||||||
|
size 20428648
|
7
proftpd-1.3.7c.tar.gz.asc
Normal file
7
proftpd-1.3.7c.tar.gz.asc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Comment: GPGTools - https://gpgtools.org
|
||||||
|
|
||||||
|
iEYEABECAAYFAmEsJ7IACgkQt46JP6URl2qxwwCgpWJsSh72q4lXsKRjVvQE+cvx
|
||||||
|
MGAAoKTjO59rbCIb3lHjZs99xJsJCpkn
|
||||||
|
=M5Gz
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -13,7 +13,7 @@ Index: contrib/ftpasswd
|
|||||||
my $shell_file = "/etc/shells";
|
my $shell_file = "/etc/shells";
|
||||||
my $default_cracklib_dict = "/usr/lib/cracklib_dict";
|
my $default_cracklib_dict = "/usr/lib/cracklib_dict";
|
||||||
my $cracklib_dict;
|
my $cracklib_dict;
|
||||||
@@ -1128,6 +1128,46 @@ usage: $program [--help] [--hash|--group
|
@@ -1220,6 +1220,46 @@ usage: $program [--help] [--hash|--group
|
||||||
--version
|
--version
|
||||||
Displays the version of $program.
|
Displays the version of $program.
|
||||||
|
|
||||||
|
@ -5,17 +5,61 @@
|
|||||||
src/main.c | 6 ++----
|
src/main.c | 6 ++----
|
||||||
4 files changed, 9 insertions(+), 15 deletions(-)
|
4 files changed, 9 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
Index: contrib/mod_snmp/db.c
|
||||||
|
===================================================================
|
||||||
|
--- contrib/mod_snmp/db.c.orig
|
||||||
|
+++ contrib/mod_snmp/db.c
|
||||||
|
@@ -1122,7 +1122,7 @@ int snmp_db_get_value(pool *p, unsigned
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
case SNMP_DB_DAEMON_F_VERSION:
|
||||||
|
- *str_value = "ProFTPD Version " PROFTPD_VERSION_TEXT " (built at " BUILD_STAMP ")";
|
||||||
|
+ *str_value = "ProFTPD Version " PROFTPD_VERSION_TEXT;
|
||||||
|
*str_valuelen = strlen(*str_value);
|
||||||
|
|
||||||
|
pr_trace_msg(trace_channel, 19,
|
||||||
|
Index: src/main.c
|
||||||
|
===================================================================
|
||||||
|
--- src/main.c.orig
|
||||||
|
+++ src/main.c
|
||||||
|
@@ -1928,8 +1928,8 @@ static void standalone_main(void) {
|
||||||
|
|
||||||
|
init_bindings();
|
||||||
|
|
||||||
|
- pr_log_pri(PR_LOG_NOTICE, "ProFTPD %s (built %s) standalone mode STARTUP",
|
||||||
|
- PROFTPD_VERSION_TEXT " " PR_STATUS, BUILD_STAMP);
|
||||||
|
+ pr_log_pri(PR_LOG_NOTICE, "ProFTPD %s standalone mode STARTUP",
|
||||||
|
+ PROFTPD_VERSION_TEXT " " PR_STATUS);
|
||||||
|
|
||||||
|
if (pr_pidfile_write() < 0) {
|
||||||
|
fprintf(stderr, "error opening PidFile '%s': %s\n", pr_pidfile_get(),
|
||||||
|
@@ -1989,7 +1989,6 @@ static void show_settings(void) {
|
||||||
|
printf("%s", " Platform: " PR_PLATFORM " [unknown]\n");
|
||||||
|
#endif /* !HAVE_UNAME */
|
||||||
|
|
||||||
|
- printf("%s", " Built: " BUILD_STAMP "\n");
|
||||||
|
printf("%s", " Built With:\n configure " PR_BUILD_OPTS "\n\n");
|
||||||
|
|
||||||
|
printf("%s", " CFLAGS: " PR_BUILD_CFLAGS "\n");
|
||||||
|
@@ -2571,7 +2570,6 @@ int main(int argc, char *argv[], char **
|
||||||
|
if (show_version == 2) {
|
||||||
|
printf("ProFTPD Version: %s", PROFTPD_VERSION_TEXT " " PR_STATUS "\n");
|
||||||
|
printf(" Scoreboard Version: %08x\n", PR_SCOREBOARD_VERSION);
|
||||||
|
- printf(" Built: %s\n\n", BUILD_STAMP);
|
||||||
|
|
||||||
|
modules_list2(NULL, PR_MODULES_LIST_FL_SHOW_VERSION);
|
||||||
|
exit(0);
|
||||||
Index: Makefile.in
|
Index: Makefile.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Makefile.in.orig
|
--- Makefile.in.orig
|
||||||
+++ Makefile.in
|
+++ Makefile.in
|
||||||
@@ -24,28 +24,26 @@ BUILD_BIN=proftpd$(EXEEXT) ftpcount$(EXE
|
@@ -42,28 +42,25 @@ endif
|
||||||
|
|
||||||
all: $(BUILD_BIN)
|
all: $(BUILD_BIN)
|
||||||
|
|
||||||
-include/buildstamp.h:
|
-include/buildstamp.h:
|
||||||
- echo \#define BUILD_STAMP \"`date +"%a %b %e %Y %H:%M:%S %Z"`\" > include/buildstamp.h
|
- echo \#define BUILD_STAMP \"$(BUILD_STAMP)\" > include/buildstamp.h
|
||||||
|
-
|
||||||
dummy:
|
dummy:
|
||||||
|
|
||||||
-lib: include/buildstamp.h dummy
|
-lib: include/buildstamp.h dummy
|
||||||
@ -44,57 +88,16 @@ Index: Makefile.in
|
|||||||
@dirs="$(DIRS)"; \
|
@dirs="$(DIRS)"; \
|
||||||
for dir in $$dirs; do \
|
for dir in $$dirs; do \
|
||||||
if [ -d "$$dir" ]; then cd $$dir/ && $(MAKE); fi; \
|
if [ -d "$$dir" ]; then cd $$dir/ && $(MAKE); fi; \
|
||||||
Index: contrib/mod_snmp/db.c
|
|
||||||
===================================================================
|
|
||||||
--- contrib/mod_snmp/db.c.orig
|
|
||||||
+++ contrib/mod_snmp/db.c
|
|
||||||
@@ -1122,7 +1122,7 @@ int snmp_db_get_value(pool *p, unsigned
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
case SNMP_DB_DAEMON_F_VERSION:
|
|
||||||
- *str_value = "ProFTPD Version " PROFTPD_VERSION_TEXT " (built at " BUILD_STAMP ")";
|
|
||||||
+ *str_value = "ProFTPD Version " PROFTPD_VERSION_TEXT;
|
|
||||||
*str_valuelen = strlen(*str_value);
|
|
||||||
|
|
||||||
pr_trace_msg(trace_channel, 19,
|
|
||||||
Index: include/version.h
|
Index: include/version.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- include/version.h.orig
|
--- include/version.h.orig
|
||||||
+++ include/version.h
|
+++ include/version.h
|
||||||
@@ -1,5 +1,3 @@
|
@@ -25,8 +25,6 @@
|
||||||
|
#ifndef PR_VERSION_H
|
||||||
|
#define PR_VERSION_H
|
||||||
|
|
||||||
-#include "buildstamp.h"
|
-#include "buildstamp.h"
|
||||||
-
|
-
|
||||||
/* Application version (in various forms) */
|
/* Application version (in various forms) */
|
||||||
#define PROFTPD_VERSION_NUMBER 0x0001030610
|
#define PROFTPD_VERSION_NUMBER 0x0001030708
|
||||||
#define PROFTPD_VERSION_TEXT "1.3.6e"
|
#define PROFTPD_VERSION_TEXT "1.3.7c"
|
||||||
Index: src/main.c
|
|
||||||
===================================================================
|
|
||||||
--- src/main.c.orig
|
|
||||||
+++ src/main.c
|
|
||||||
@@ -1893,8 +1893,8 @@ static void standalone_main(void) {
|
|
||||||
|
|
||||||
init_bindings();
|
|
||||||
|
|
||||||
- pr_log_pri(PR_LOG_NOTICE, "ProFTPD %s (built %s) standalone mode STARTUP",
|
|
||||||
- PROFTPD_VERSION_TEXT " " PR_STATUS, BUILD_STAMP);
|
|
||||||
+ pr_log_pri(PR_LOG_NOTICE, "ProFTPD %s standalone mode STARTUP",
|
|
||||||
+ PROFTPD_VERSION_TEXT " " PR_STATUS);
|
|
||||||
|
|
||||||
if (pr_pidfile_write() < 0) {
|
|
||||||
fprintf(stderr, "error opening PidFile '%s': %s\n", pr_pidfile_get(),
|
|
||||||
@@ -1954,7 +1954,6 @@ static void show_settings(void) {
|
|
||||||
printf("%s", " Platform: " PR_PLATFORM " [unknown]\n");
|
|
||||||
#endif /* !HAVE_UNAME */
|
|
||||||
|
|
||||||
- printf("%s", " Built: " BUILD_STAMP "\n");
|
|
||||||
printf("%s", " Built With:\n configure " PR_BUILD_OPTS "\n\n");
|
|
||||||
|
|
||||||
printf("%s", " CFLAGS: " PR_BUILD_CFLAGS "\n");
|
|
||||||
@@ -2534,7 +2533,6 @@ int main(int argc, char *argv[], char **
|
|
||||||
|
|
||||||
printf("ProFTPD Version: %s", PROFTPD_VERSION_TEXT " " PR_STATUS "\n");
|
|
||||||
printf(" Scoreboard Version: %08x\n", PR_SCOREBOARD_VERSION);
|
|
||||||
- printf(" Built: %s\n\n", BUILD_STAMP);
|
|
||||||
|
|
||||||
modules_list2(NULL, PR_MODULES_LIST_FL_SHOW_VERSION);
|
|
||||||
exit(0);
|
|
||||||
|
@ -1,3 +1,26 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Mar 27 13:17:21 UTC 2022 - chris@computersalat.de
|
||||||
|
|
||||||
|
- fix deps for SLES
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 26 16:41:02 UTC 2022 - chris@computersalat.de
|
||||||
|
|
||||||
|
- remove configure --disable-static
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 1 18:37:02 UTC 2022 - chris@computersalat.de
|
||||||
|
|
||||||
|
- Update to version 1.3.7c:
|
||||||
|
* http://proftpd.org/docs/NEWS-1.3.7c
|
||||||
|
* http://proftpd.org/docs/RELEASE_NOTES-1.3.7c
|
||||||
|
- Update patches
|
||||||
|
* harden_proftpd.service.patch
|
||||||
|
* proftpd-ftpasswd.patch
|
||||||
|
* proftpd-no_BuildDate.patch
|
||||||
|
* proftpd.spec
|
||||||
|
* proftpd_env-script-interpreter.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Oct 20 13:16:36 UTC 2021 - Johannes Segitz <jsegitz@suse.com>
|
Wed Oct 20 13:16:36 UTC 2021 - Johannes Segitz <jsegitz@suse.com>
|
||||||
|
|
||||||
|
48
proftpd.spec
48
proftpd.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package proftpd
|
# spec file for package proftpd
|
||||||
#
|
#
|
||||||
# Copyright (c) 2020 SUSE LLC
|
# Copyright (c) 2022 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -16,13 +16,24 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define with_redis 1
|
||||||
|
%define with_sodium 1
|
||||||
|
|
||||||
|
%if 0%{?suse_version} == 1315 || 0%{?suse_version} == 1500
|
||||||
|
%define with_redis 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?suse_version} == 1315
|
||||||
|
%define with_sodium 0
|
||||||
|
%endif
|
||||||
|
|
||||||
Name: proftpd
|
Name: proftpd
|
||||||
Summary: Configurable GPL-licensed FTP server software
|
Summary: Configurable GPL-licensed FTP server software
|
||||||
# Please save your time and do not update to "rc" versions.
|
# Please save your time and do not update to "rc" versions.
|
||||||
# We only accept updates for "STABLE" Versions
|
# We only accept updates for "STABLE" Versions
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
Group: Productivity/Networking/Ftp/Servers
|
Group: Productivity/Networking/Ftp/Servers
|
||||||
Version: 1.3.6e
|
Version: 1.3.7c
|
||||||
Release: 0
|
Release: 0
|
||||||
URL: http://www.proftpd.org/
|
URL: http://www.proftpd.org/
|
||||||
Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz
|
Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz
|
||||||
@ -47,19 +58,29 @@ Patch103: %{name}-strip.patch
|
|||||||
Patch104: %{name}-no_BuildDate.patch
|
Patch104: %{name}-no_BuildDate.patch
|
||||||
#RPMLINT-FIX-openSUSE: env-script-interpreter
|
#RPMLINT-FIX-openSUSE: env-script-interpreter
|
||||||
Patch105: %{name}_env-script-interpreter.patch
|
Patch105: %{name}_env-script-interpreter.patch
|
||||||
|
#openSUSE:Security_Features#Systemd_hardening_effort
|
||||||
Patch106: harden_proftpd.service.patch
|
Patch106: harden_proftpd.service.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
#BuildRequires: gpg-offline
|
#BuildRequires: gpg-offline
|
||||||
|
BuildRequires: cyrus-sasl-devel
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
%if 0%{?with_redis}
|
||||||
|
BuildRequires: hiredis-devel
|
||||||
|
%endif
|
||||||
BuildRequires: krb5-devel
|
BuildRequires: krb5-devel
|
||||||
BuildRequires: libacl-devel
|
BuildRequires: libacl-devel
|
||||||
BuildRequires: libattr-devel
|
BuildRequires: libattr-devel
|
||||||
#BuildRequires: libmemcached-devel
|
BuildRequires: libmemcached-devel
|
||||||
#BuildRequires: libGeoIP-devel
|
#BuildRequires: libGeoIP-devel
|
||||||
BuildRequires: mysql-devel
|
BuildRequires: libmysqld-devel
|
||||||
|
%if 0%{?with_sodium}
|
||||||
|
BuildRequires: libsodium-devel
|
||||||
|
%endif
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
BuildRequires: openldap2-devel
|
BuildRequires: openldap2-devel
|
||||||
BuildRequires: pam-devel
|
BuildRequires: pam-devel
|
||||||
|
BuildRequires: pcre-devel
|
||||||
BuildRequires: pkg-config
|
BuildRequires: pkg-config
|
||||||
BuildRequires: postgresql-devel
|
BuildRequires: postgresql-devel
|
||||||
BuildRequires: sqlite3-devel
|
BuildRequires: sqlite3-devel
|
||||||
@ -147,7 +168,7 @@ Here are Documentation for ProFTPD
|
|||||||
%prep
|
%prep
|
||||||
#gpg_verify %{S:1}
|
#gpg_verify %{S:1}
|
||||||
%setup -q
|
%setup -q
|
||||||
rm README.AIX
|
rm README.AIX README.cygwin README.FreeBSD README.Solaris2.5x README.Unixware
|
||||||
#
|
#
|
||||||
%patch100
|
%patch100
|
||||||
%patch101
|
%patch101
|
||||||
@ -155,7 +176,7 @@ rm README.AIX
|
|||||||
%patch103
|
%patch103
|
||||||
%patch104
|
%patch104
|
||||||
%patch105
|
%patch105
|
||||||
%patch106 -p1
|
%patch106
|
||||||
|
|
||||||
%build
|
%build
|
||||||
rm contrib/mod_wrap.c
|
rm contrib/mod_wrap.c
|
||||||
@ -163,7 +184,7 @@ rm contrib/mod_geoip.c
|
|||||||
PROFTPD_SHARED_MODS="$(for spec_mod in $(find contrib -name mod_\*.c|sort); do echo "$(basename ${spec_mod%%.c})"; done | tr '\n' ':' | sed -e 's|:$||')"
|
PROFTPD_SHARED_MODS="$(for spec_mod in $(find contrib -name mod_\*.c|sort); do echo "$(basename ${spec_mod%%.c})"; done | tr '\n' ':' | sed -e 's|:$||')"
|
||||||
export CFLAGS="%{optflags} -D_GNU_SOURCE -DLDAP_DEPRECATED"
|
export CFLAGS="%{optflags} -D_GNU_SOURCE -DLDAP_DEPRECATED"
|
||||||
export CXXFLAGS="$CFLAGS"
|
export CXXFLAGS="$CFLAGS"
|
||||||
%configure --disable-static \
|
%configure \
|
||||||
--bindir=%{_sbindir} \
|
--bindir=%{_sbindir} \
|
||||||
--libexecdir=%{_libdir}/%{name} \
|
--libexecdir=%{_libdir}/%{name} \
|
||||||
--sysconfdir=%{_sysconfdir}/%{name} \
|
--sysconfdir=%{_sysconfdir}/%{name} \
|
||||||
@ -177,8 +198,14 @@ export CXXFLAGS="$CFLAGS"
|
|||||||
--enable-dso \
|
--enable-dso \
|
||||||
--enable-facl \
|
--enable-facl \
|
||||||
--enable-ipv6 \
|
--enable-ipv6 \
|
||||||
|
--enable-memcache \
|
||||||
--enable-nls \
|
--enable-nls \
|
||||||
--enable-openssl \
|
--enable-openssl \
|
||||||
|
--enable-pcre \
|
||||||
|
%if 0%{?with_redis}
|
||||||
|
--enable-redis \
|
||||||
|
%endif
|
||||||
|
--enable-shadow \
|
||||||
--with-lastlog \
|
--with-lastlog \
|
||||||
--with-includes="%{_includedir}/mysql:%{_includedir}/pgsql" \
|
--with-includes="%{_includedir}/mysql:%{_includedir}/pgsql" \
|
||||||
--with-shared="${PROFTPD_SHARED_MODS}" \
|
--with-shared="${PROFTPD_SHARED_MODS}" \
|
||||||
@ -186,6 +213,9 @@ export CXXFLAGS="$CFLAGS"
|
|||||||
--disable-strip
|
--disable-strip
|
||||||
|
|
||||||
# --enable-memcache \
|
# --enable-memcache \
|
||||||
|
# --enable-pcre \
|
||||||
|
# --enable-redis \
|
||||||
|
# --enable-shadow \
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
@ -264,10 +294,12 @@ install -d %{_localstatedir}/run/%{name}
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%else
|
%else
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
%endif
|
%endif
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%doc COPYING CREDITS ChangeLog NEWS README* RELEASE_NOTES
|
%license COPYING
|
||||||
|
%doc CREDITS NEWS README* RELEASE_NOTES
|
||||||
%doc contrib/README.*
|
%doc contrib/README.*
|
||||||
%doc sample-configurations/*.conf
|
%doc sample-configurations/*.conf
|
||||||
%dir %attr(0755,root,root) %{_sysconfdir}/%{name}/
|
%dir %attr(0755,root,root) %{_sysconfdir}/%{name}/
|
||||||
|
@ -16,7 +16,7 @@ Index: contrib/ftpmail
|
|||||||
-#!/usr/bin/env perl
|
-#!/usr/bin/env perl
|
||||||
+#!/usr/bin/perl
|
+#!/usr/bin/perl
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Copyright (C) 2008-2013 TJ Saunders <tj@castaglia.org>
|
# Copyright (C) 2008-2017 TJ Saunders <tj@castaglia.org>
|
||||||
#
|
#
|
||||||
Index: contrib/ftpquota
|
Index: contrib/ftpquota
|
||||||
===================================================================
|
===================================================================
|
||||||
@ -37,4 +37,4 @@ Index: src/prxs.in
|
|||||||
+#!/usr/bin/perl
|
+#!/usr/bin/perl
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Copyright (C) 2008-2012 TJ Saunders <tj@castaglia.org>
|
# Copyright (C) 2008-2020 TJ Saunders <tj@castaglia.org>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user