diff --git a/0001-Do-not-copy-more-bytes-than-were-allocated.patch b/0001-Do-not-copy-more-bytes-than-were-allocated.patch deleted file mode 100644 index e678b11..0000000 --- a/0001-Do-not-copy-more-bytes-than-were-allocated.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 87580d767868360d2fed503980129504da84b63e Mon Sep 17 00:00:00 2001 -From: Hans-Christian Esperer -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 - diff --git a/0001-chanserv-flags-make-Anope-FLAGS-compatibility-an-opt.patch b/0001-chanserv-flags-make-Anope-FLAGS-compatibility-an-opt.patch deleted file mode 100644 index 2cfc9e4..0000000 --- a/0001-chanserv-flags-make-Anope-FLAGS-compatibility-an-opt.patch +++ /dev/null @@ -1,108 +0,0 @@ -From c597156adc60a45b5f827793cd420945f47bc03b Mon Sep 17 00:00:00 2001 -From: Max Teufel -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 [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 - diff --git a/atheme-7.2.6.tar.gz b/atheme-7.2.6.tar.gz deleted file mode 100644 index d38c253..0000000 --- a/atheme-7.2.6.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:432c6212c974f3ba6b4d8f14de795c61be7f57dfc7c84ee98255163269455fd4 -size 1402358 diff --git a/atheme-7.2.7.tar.bz2 b/atheme-7.2.7.tar.bz2 new file mode 100644 index 0000000..8718130 --- /dev/null +++ b/atheme-7.2.7.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64159a5aef905f0a15f35c7dd2bf1b140d918290488e9b6762fd85fd1bfafd94 +size 1181086 diff --git a/atheme-nodate.diff b/atheme-nodate.diff index 07b7273..da7723e 100644 --- a/atheme-nodate.diff +++ b/atheme-nodate.diff @@ -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); diff --git a/atheme.changes b/atheme.changes index fbd6bdf..e74a9ee 100644 --- a/atheme.changes +++ b/atheme.changes @@ -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 diff --git a/atheme.spec b/atheme.spec index fe4f5b1..1af230e 100644 --- a/atheme.spec +++ b/atheme.spec @@ -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