SHA256
1
0
forked from pool/atheme
Jan Engelhardt 2016-11-20 22:23:17 +00:00 committed by Git OBS Bridge
parent 80632b6c80
commit 325e9e4cfb
7 changed files with 67 additions and 185 deletions

View File

@ -1,27 +0,0 @@
From 87580d767868360d2fed503980129504da84b63e Mon Sep 17 00:00:00 2001
From: Hans-Christian Esperer <hc@hcesperer.org>
Date: Sat, 9 Jan 2016 19:58:58 +0100
Subject: [PATCH] Do not copy more bytes than were allocated
---
modules/transport/xmlrpc/xmlrpclib.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/transport/xmlrpc/xmlrpclib.c b/modules/transport/xmlrpc/xmlrpclib.c
index b67d215..5fcde9e 100644
--- a/modules/transport/xmlrpc/xmlrpclib.c
+++ b/modules/transport/xmlrpc/xmlrpclib.c
@@ -777,8 +777,9 @@ void xmlrpc_char_encode(char *outbuffer, const char *s1)
s->append_char(s, c);
}
}
+ s->append_char(s, 0);
- memcpy(outbuffer, s->str, XMLRPC_BUFSIZE);
+ strncpy(outbuffer, s->str, XMLRPC_BUFSIZE);
}
static void xmlrpc_append_char_encode(mowgli_string_t *s, const char *s1)
--
2.6.6

View File

@ -1,108 +0,0 @@
From c597156adc60a45b5f827793cd420945f47bc03b Mon Sep 17 00:00:00 2001
From: Max Teufel <max@teufelsnetz.com>
Date: Sun, 6 Mar 2016 10:27:40 +0100
Subject: [PATCH] chanserv/flags: make Anope FLAGS compatibility an option
Previously, ChanServ FLAGS behavior could be modified by registering or
dropping the keyword nicks "LIST", "CLEAR", and "MODIFY".
Now, a configuration option is available that when turned on (default),
disables registration of these keyword nicks and enables this
compatibility feature. When turned off, registration of these keyword
nicks is possible, and compatibility to Anope's FLAGS command is
disabled.
Fixes atheme/atheme#397
---
modules/chanserv/flags.c | 37 ++++++++++++++++++++++++++++++++++---
1 file changed, 34 insertions(+), 3 deletions(-)
diff --git a/modules/chanserv/flags.c b/modules/chanserv/flags.c
index 289345d..72d8fcf 100644
--- a/modules/chanserv/flags.c
+++ b/modules/chanserv/flags.c
@@ -17,18 +17,35 @@ DECLARE_MODULE_V1
);
static void cs_cmd_flags(sourceinfo_t *si, int parc, char *parv[]);
+static void check_registration_keywords(hook_user_register_check_t *hdata);
command_t cs_flags = { "FLAGS", N_("Manipulates specific permissions on a channel."),
AC_NONE, 3, cs_cmd_flags, { .path = "cservice/flags" } };
+static bool anope_flags_compat = true;
+
void _modinit(module_t *m)
{
service_named_bind_command("chanserv", &cs_flags);
+
+ add_bool_conf_item("ANOPE_FLAGS_COMPAT", &chansvs.me->conf_table, 0, &anope_flags_compat, true);
+
+ hook_add_event("nick_can_register");
+ hook_add_nick_can_register(check_registration_keywords);
+
+ hook_add_event("user_can_register");
+ hook_add_user_can_register(check_registration_keywords);
}
void _moddeinit(module_unload_intent_t intent)
{
service_named_unbind_command("chanserv", &cs_flags);
+
+ hook_del_nick_can_register(check_registration_keywords);
+
+ hook_del_user_can_register(check_registration_keywords);
+
+ del_conf_item("ANOPE_FLAGS_COMPAT", &chansvs.me->conf_table);
}
typedef struct {
@@ -150,6 +167,20 @@ static void do_list(sourceinfo_t *si, mychan_t *mc, unsigned int flags)
logcommand(si, CMDLOG_GET, "FLAGS: \2%s\2", mc->name);
}
+static void check_registration_keywords(hook_user_register_check_t *hdata)
+{
+ if (hdata->approved || !anope_flags_compat)
+ {
+ return;
+ }
+
+ if (!strcasecmp(hdata->account, "LIST") || !strcasecmp(hdata->account, "CLEAR") || !strcasecmp(hdata->account, "MODIFY"))
+ {
+ command_fail(hdata->si, fault_badparams, "The nick \2%s\2 is reserved and cannot be registered.", hdata->account);
+ hdata->approved = 1;
+ }
+}
+
/* FLAGS <channel> [user] [flags] */
static void cs_cmd_flags(sourceinfo_t *si, int parc, char *parv[])
{
@@ -218,14 +249,14 @@ static void cs_cmd_flags(sourceinfo_t *si, int parc, char *parv[])
*
* --nenolod
*/
- else if (!strcasecmp(target, "LIST") && myentity_find_ext(target) == NULL)
+ else if (anope_flags_compat && !strcasecmp(target, "LIST") && myentity_find_ext(target) == NULL)
{
do_list(si, mc, 0);
free(target);
return;
}
- else if (!strcasecmp(target, "CLEAR") && myentity_find_ext(target) == NULL)
+ else if (anope_flags_compat && !strcasecmp(target, "CLEAR") && myentity_find_ext(target) == NULL)
{
free(target);
@@ -251,7 +282,7 @@ static void cs_cmd_flags(sourceinfo_t *si, int parc, char *parv[])
command_success_nodata(si, _("Cleared flags in \2%s\2."), mc->name);
return;
}
- else if (!strcasecmp(target, "MODIFY") && myentity_find_ext(target) == NULL)
+ else if (anope_flags_compat && !strcasecmp(target, "MODIFY") && myentity_find_ext(target) == NULL)
{
free(target);
--
2.6.6

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:432c6212c974f3ba6b4d8f14de795c61be7f57dfc7c84ee98255163269455fd4
size 1402358

3
atheme-7.2.7.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:64159a5aef905f0a15f35c7dd2bf1b140d918290488e9b6762fd85fd1bfafd94
size 1181086

View File

@ -8,29 +8,29 @@ __DATE__ is not desired; causes unnecessary rebuilds.
modules/operserv/uptime.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: atheme-services-7.2.1/libathemecore/ptasks.c
Index: atheme-7.2.7/libathemecore/ptasks.c
===================================================================
--- atheme-services-7.2.1.orig/libathemecore/ptasks.c
+++ atheme-services-7.2.1/libathemecore/ptasks.c
@@ -45,7 +45,7 @@ int get_version_string(char *buf, size_t
{
const crypt_impl_t *ci = crypt_get_default_provider();
--- atheme-7.2.7.orig/libathemecore/ptasks.c
+++ atheme-7.2.7/libathemecore/ptasks.c
@@ -49,7 +49,7 @@ int get_version_string(char *buf, size_t
PACKAGE_STRING, me.name, revision, get_conf_opts(), ircd->ircdname, ci->id);
#else
return snprintf(buf, bufsize, "%s. %s %s :%s [%s] [enc:%s] Build Date: %s",
- PACKAGE_STRING, me.name, revision, get_conf_opts(), ircd->ircdname, ci->id, __DATE__);
+ PACKAGE_STRING, me.name, revision, get_conf_opts(), ircd->ircdname, ci->id, "suse");
+ PACKAGE_STRING, me.name, revision, get_conf_opts(), ircd->ircdname, ci->id, "");
#endif
}
void handle_version(user_t *u)
Index: atheme-services-7.2.1/modules/operserv/uptime.c
Index: atheme-7.2.7/modules/operserv/uptime.c
===================================================================
--- atheme-services-7.2.1.orig/modules/operserv/uptime.c
+++ atheme-services-7.2.1/modules/operserv/uptime.c
@@ -33,7 +33,7 @@ static void os_cmd_uptime(sourceinfo_t *
{
logcommand(si, CMDLOG_GET, "UPTIME");
--- atheme-7.2.7.orig/modules/operserv/uptime.c
+++ atheme-7.2.7/modules/operserv/uptime.c
@@ -36,7 +36,7 @@ static void os_cmd_uptime(sourceinfo_t *
#ifdef REPRODUCIBLE_BUILDS
command_success_nodata(si, "%s [%s]", PACKAGE_STRING, revision);
#else
- command_success_nodata(si, "%s [%s] Build Date: %s", PACKAGE_STRING, revision, __DATE__);
+ command_success_nodata(si, "%s [%s] Build Date: irrelevant", PACKAGE_STRING, revision);
+ command_success_nodata(si, "%s [%s] Build Date: %s", PACKAGE_STRING, revision, "");
#endif
command_success_nodata(si, _("Services have been up for %s"), timediff(CURRTIME - me.start));
command_success_nodata(si, _("Current PID: %d"), getpid());
command_success_nodata(si, _("Registered accounts: %d"), cnt.myuser);

View File

@ -1,3 +1,26 @@
-------------------------------------------------------------------
Sun Nov 20 21:31:34 UTC 2016 - jengelh@inai.de
- Update to new upstream release 7.2.7
* NickServ:
* Make `VHOST` set cloak assigner and timestamp the same way
HostServ does
* Make `INFO` call the `user_info_noexist` hook for queries
that don't match an account
* Make `REGAIN` log you in if successful.
* ChanServ:
* Add a `$server:` exttarget accepting server masks
* Add `PUBACL` flag which allows the channel access to be public.
* Don't allow `DEOP` or `KICK` of a services bot.
* Don't try to expand extbans in various commands.
* Allow users with +O or +V flags to op/voice themselves, since
they can regain op/voice by cycling the channel anyway.
- +e added to chanserv{} templates and founder_flags
- Remove 0001-Do-not-copy-more-bytes-than-were-allocated.patch
and 0001-chanserv-flags-make-Anope-FLAGS-compatibility-an-opt.patch
(applied upstream)
- Abort installation if user/group cannot be created
-------------------------------------------------------------------
Tue May 3 10:43:10 UTC 2016 - jengelh@inai.de

View File

@ -18,21 +18,18 @@
Name: atheme
%define lname libathemecore1
Version: 7.2.6
Version: 7.2.7
Release: 0
Url: http://atheme.net/
Summary: A portable, secure set of open source, modular IRC services
Summary: Extensible IRC services
License: MIT
Group: Productivity/Networking/IRC
#Git-Clone: git://github.com/atheme/atheme
Source: https://github.com/atheme/atheme/archive/%name-%version.tar.gz
Source: https://github.com/atheme/atheme/releases/download/v%version/%name-%version.tar.bz2
Source9: example.conf
Patch1: atheme-lockmodes.diff
Patch2: atheme-nodate.diff
Patch3: atheme-serno.diff
Patch4: 0001-Do-not-copy-more-bytes-than-were-allocated.patch
Patch5: 0001-chanserv-flags-make-Anope-FLAGS-compatibility-an-opt.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cracklib-devel
BuildRequires: fdupes
@ -46,23 +43,20 @@ BuildRequires: pkgconfig(libqrencode)
%define atheme_home /var/lib/atheme
%define atheme_log /var/log/atheme
%define atheme_run /run/atheme
Requires(pre): pwdutils
Requires(pre): shadow
%description
Atheme is a portable, secure set of open source, modular IRC services
released under the BSD license, designed to run on many IRCds.
Unlike alternative packages, Atheme's core is minimalistic, providing
only core functionality. Atheme is a complete services set, excluding
features designed for oper abuse.
Atheme is a set of modular IRC services (NickServ, ChanServ, etc.)
designed to link with more than 20 kinds of IRCds.
Atheme offers both an C API and a Perl interface.
%package -n %lname
Summary: The Atheme IRC Services core library
Group: System/Libraries
%description -n %lname
Atheme is a portable, secure set of open source, modular IRC services
released under the BSD license, designed to run on many IRCds.
Atheme is a set of modular IRC services (NickServ, ChanServ, etc.)
designed to link with many kinds of IRCds.
%package devel
Summary: Development files for the Atheme IRC Services core
@ -70,15 +64,15 @@ Group: Development/Libraries/C and C++
Requires: %lname = %version
%description devel
Atheme is a portable, secure set of open source, modular IRC services
released under the BSD license, designed to run on many IRCds.
Atheme is a set of modular IRC services (NickServ, ChanServ, etc.)
designed to link with many kinds of IRCds.
This package contains the development headers for the library found
in %lname.
%prep
%setup -qn %name-%name-%version
%patch -P 1 -P 2 -P 3 -P 4 -P 5 -p1
%setup -q
%patch -P 1 -P 2 -P 3 -p1
# nudge atheme in the direction of using the system-provided libmowgli
rm -Rf libmowgli-2
# ignore contrib modules
@ -90,13 +84,13 @@ touch libmowgli-2/Makefile modules/contrib/Makefile
export RUNDIR="/run"
%endif
%configure \
--sysconfdir="%_sysconfdir/%name" \
--bindir="%_sbindir" \
--docdir="%_docdir/%name" \
--enable-fhs-paths \
--enable-warnings \
--enable-large-net \
--with-pcre
--sysconfdir="%_sysconfdir/%name" \
--bindir="%_sbindir" \
--docdir="%_docdir/%name" \
--enable-fhs-paths \
--enable-warnings \
--enable-large-net \
--with-pcre
make %{?_smp_mflags}
@ -104,14 +98,14 @@ make %{?_smp_mflags}
%if 0%{?suse_version} >= 1210
export RUNDIR="/run"
%endif
b="%buildroot";
b="%buildroot"
%make_install DOCDIR="%_docdir/%name"
# additional documentation
mkdir -p "$b/%_docdir/%name"
install -m 0644 contrib/*.php contrib/*.pl TODO "$b/%_docdir/%name"
mkdir -p "$b/%_unitdir" "$b/%_libexecdir/tmpfiles.d";
mkdir -p "$b/%_unitdir" "$b/%_libexecdir/tmpfiles.d"
ln -s service "$b/%_sbindir/rcatheme"
cat >"$b/%_unitdir/atheme.service" <<-EOF
[Unit]
@ -134,11 +128,11 @@ install -pm0644 "%{S:9}" "$b/%_sysconfdir/%name/atheme.conf"
%pre
/usr/bin/getent group atheme >/dev/null 2>/dev/null || \
/usr/sbin/groupadd -r atheme >/dev/null || :
/usr/sbin/groupadd -r atheme
/usr/bin/getent passwd atheme >/dev/null 2>/dev/null || \
/usr/sbin/useradd -r -g atheme -s /bin/false \
-c "Atheme IRC Services daemon" -d "%atheme_home" \
atheme >/dev/null || :
atheme
%service_add_pre atheme.service
%post