- update to 7.3.1

- cleanup port

from brad
tested by aja@ edd@
This commit is contained in:
jasper 2011-10-19 13:46:17 +00:00
parent aadc86d66d
commit 044fb677fb
24 changed files with 212 additions and 493 deletions

View File

@ -1,39 +1,38 @@
# $OpenBSD: Makefile,v 1.16 2010/12/27 14:50:22 ajacoutot Exp $
# $OpenBSD: Makefile,v 1.17 2011/10/19 13:46:17 jasper Exp $
SHARED_ONLY = Yes
COMMENT = Internet Relay Chat server
DISTNAME = ircd-hybrid-7.2.3
REVISION = 10
DISTNAME = ircd-hybrid-7.3.1
CATEGORIES = net
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=ircd-hybrid/}
EXTRACT_SUFX = .tgz
HOMEPAGE = http://ircd-hybrid.com/
# GPLv2
PERMIT_PACKAGE_CDROM = Yes
PERMIT_PACKAGE_FTP = Yes
PERMIT_PACKAGE_CDROM = Yes
PERMIT_PACKAGE_FTP = Yes
PERMIT_DISTFILES_CDROM = Yes
PERMIT_DISTFILES_FTP = Yes
PERMIT_DISTFILES_FTP = Yes
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=ircd-hybrid/}
EXTRACT_SUFX = .tgz
WANTLIB = c crypto ltdl pcre ssl z
WANTLIB = c crypto ssl z pcre
LIB_DEPENDS = devel/libtool,-ltdl \
devel/pcre
LIB_DEPENDS = devel/pcre
USE_GROFF = Yes
USE_LIBTOOL= Yes
LIBTOOL_FLAGS= --tag=disable-static
CONFIGURE_STYLE = gnu
CONFIGURE_ARGS= --localstatedir=/var
CONFIGURE_ENV = CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib"
CONFIGURE_STYLE = gnu
CONFIGURE_ENV = CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib"
MAKE_FLAGS = AUTOMODULEDIR='$${prefix}/lib/ircd-hybrid/modules' \
moduledir='$${prefix}/lib/ircd-hybrid/modules'
USE_GROFF = Yes
NO_REGRESS = Yes
NO_REGRESS = Yes
pre-configure:
@${SUBST_CMD} ${WRKSRC}/etc/example.conf ${WRKSRC}/include/defaults.h
@${SUBST_CMD} ${WRKSRC}/etc/example.conf
.include <bsd.port.mk>

View File

@ -1,5 +1,5 @@
MD5 (ircd-hybrid-7.2.3.tgz) = aD/m4GY12HDPwhHzYHcvZw==
RMD160 (ircd-hybrid-7.2.3.tgz) = WL7GXaJJJIC5pOhnd8bBmktWhAg=
SHA1 (ircd-hybrid-7.2.3.tgz) = +KYeVQDSiktM3tXwlsNifC5fAaA=
SHA256 (ircd-hybrid-7.2.3.tgz) = Z/BDRwq9bpIickT11k5T3qmHwBUdgyug0UKOvkHgSHA=
SIZE (ircd-hybrid-7.2.3.tgz) = 1010625
MD5 (ircd-hybrid-7.3.1.tgz) = jlZ+mxtt4NwIq3qpCh1gCg==
RMD160 (ircd-hybrid-7.3.1.tgz) = VAJjGYepWmh6xVXoS83FbLH4jRI=
SHA1 (ircd-hybrid-7.3.1.tgz) = pNfgZRcVLqiLBkzZdWCENy7YMaw=
SHA256 (ircd-hybrid-7.3.1.tgz) = 1rhcH303pj26hOC/FVOA7vNJ263oXUVGv8BiSHJ7P+g=
SIZE (ircd-hybrid-7.3.1.tgz) = 1265886

View File

@ -1,15 +0,0 @@
$OpenBSD: patch-Makefile_in,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
--- Makefile.in.orig Tue Jan 27 20:55:15 2009
+++ Makefile.in Tue Jan 27 20:55:03 2009
@@ -23,9 +23,9 @@ RM = @RM@
# Default make flags - you may want to uncomment this on a multicpu machine
#MFLAGS = -j 4
-DEPEND_DIRS = lib modules src servlink
+DEPEND_DIRS = modules src servlink
BUILD_DIRS = ${DEPEND_DIRS} tools
-INSTALL_DIRS = ${BUILD_DIRS} etc doc help
+INSTALL_DIRS = ${BUILD_DIRS} etc doc help messages
CLEAN_DIRS = ${BUILD_DIRS} contrib
# Anywhere that we can make install, we obviously can rm -f Makefile
DISTCLEAN_DIRS = ${INSTALL_DIRS} contrib messages

View File

@ -1,33 +0,0 @@
$OpenBSD: patch-configure,v 1.2 2009/02/04 10:24:07 ajacoutot Exp $
--- configure.orig Wed Feb 28 05:17:54 2007
+++ configure Wed Feb 4 10:08:07 2009
@@ -720,9 +720,9 @@ x_libraries=NONE
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
+bindir='${prefix}/bin'
+sbindir='${prefix}/sbin'
+libexecdir='${prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
@@ -2872,14 +2872,14 @@ echo $ECHO_N "checking if $CC is Apple GCC... $ECHO_C"
{ echo "$as_me:$LINENO: result: $AppleGCC" >&5
echo "${ECHO_T}$AppleGCC" >&6; }
- IRC_CFLAGS="$IRC_CFLAGS -Wall -O2"
+ IRC_CFLAGS="$IRC_CFLAGS -Wall"
fi
if test "$ac_cv_prog_cc_g" = yes; then
if test "$Tru" = yes; then
IRC_CFLAGS="$IRC_CFLAGS -g3"
else
- IRC_CFLAGS="$IRC_CFLAGS -g"
+ IRC_CFLAGS="$IRC_CFLAGS"
fi
fi

View File

@ -1,22 +0,0 @@
$OpenBSD: patch-contrib_spy_links_notice_c,v 1.1 2010/02/01 09:23:33 jasper Exp $
Security fix for CVE-2009-4016, "IRCD-hybrid 'LINKS' Command
Integer Underflow Vulnerability.
Patch from upstream svn, revision 1044.
--- contrib/spy_links_notice.c.orig Mon Feb 1 09:17:39 2010
+++ contrib/spy_links_notice.c Mon Feb 1 09:18:16 2010
@@ -61,10 +61,9 @@ show_links(va_list args)
if (IsClient(source_p))
sendto_realops_flags(UMODE_SPY, L_ALL,
- "LINKS '%s' requested by %s (%s@%s) [%s]",
- parv[1] ? parv[1] : "", source_p->name,
- source_p->username, source_p->host,
- source_p->servptr->name);
+ "links requested by %s (%s@%s) [%s]",
+ source_p->name, source_p->username,
+ source_p->host, source_p->servptr->name);
return pass_callback(prev_hook, source_p, parc, parv);
}

View File

@ -1,12 +1,35 @@
$OpenBSD: patch-etc_Makefile_in,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
--- etc/Makefile.in.orig Wed Feb 28 05:17:53 2007
+++ etc/Makefile.in Mon Apr 14 15:23:40 2008
@@ -10,7 +10,7 @@ TEST = @TEST@
CLOBBER=@CLOBBER@
$OpenBSD: patch-etc_Makefile_in,v 1.2 2011/10/19 13:46:17 jasper Exp $
--- etc/Makefile.in.orig Fri Oct 14 15:18:51 2011
+++ etc/Makefile.in Fri Oct 14 15:24:01 2011
@@ -257,24 +257,24 @@ clean-libtool:
-rm -rf .libs _libs
install-dist_sysconfDATA: $(dist_sysconf_DATA)
@$(NORMAL_INSTALL)
- test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
- @list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
+ test -z "$(prefix)/share/examples/ircd-hybrid" || $(MKDIR_P) "$(DESTDIR)$(prefix)/share/examples/ircd-hybrid"
+ @list='$(dist_sysconf_DATA)'; test -n "$(prefix)/share/examples/ircd-hybrid" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(prefix)/share/examples/ircd-hybrid'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(prefix)/share/examples/ircd-hybrid" || exit $$?; \
done
prefix = $(DESTDIR)@prefix@
-sysconfdir = $(DESTDIR)@sysconfdir@
+sysconfdir = $(DESTDIR)@prefix@/share/examples/ircd-hybrid
exec_prefix = $(DESTDIR)@exec_prefix@
datarootdir = $(DESTDIR)@datarootdir@
uninstall-dist_sysconfDATA:
@$(NORMAL_UNINSTALL)
- @list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
+ @list='$(dist_sysconf_DATA)'; test -n "$(prefix)/share/examples/ircd-hybrid" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files
+ echo " ( cd '$(DESTDIR)$(prefix)/share/examples/ircd-hybrid' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(prefix)/share/examples/ircd-hybrid" && rm -f $$files
tags: TAGS
TAGS:

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-etc_example_conf,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
--- etc/example.conf.orig Wed Feb 28 04:17:53 2007
+++ etc/example.conf Tue Jan 27 09:45:27 2009
$OpenBSD: patch-etc_example_conf,v 1.2 2011/10/19 13:46:17 jasper Exp $
--- etc/example.conf.orig Fri Oct 14 15:00:45 2011
+++ etc/example.conf Fri Oct 14 15:07:21 2011
@@ -102,7 +102,7 @@ serverinfo {
* chmod 0600 rsa.key
* chmod 0644 rsa.pub
@ -9,17 +9,17 @@ $OpenBSD: patch-etc_example_conf,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
+ #rsa_private_key_file = "${SYSCONFDIR}/ircd-hybrid/rsa.key";
/*
* ssl certificate: the path to the file containing our ssl certificate
* ssl_certificate_file: the path to the file containing our
@@ -122,7 +122,7 @@ serverinfo {
* Common Name: irc.someirc.net
* E-mail: you@domain.com
*/
- #ssl_certificate_file = "/usr/local/ircd/etc/cert.pem";
+ #ssl_certificate_file = "${SYSCONFDIR}/ircd-hybrid/cert.pem";
};
/*
@@ -379,7 +379,7 @@ operator {
/*
* ssl_server_protocol:
@@ -397,7 +397,7 @@ operator {
* A password should not be defined when this is used, see
* doc/challenge.txt for more information.
*/
@ -28,7 +28,7 @@ $OpenBSD: patch-etc_example_conf,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
/* class: the class the oper joins when they successfully /oper */
class = "opers";
@@ -1190,7 +1190,7 @@ general {
@@ -1205,7 +1205,7 @@ general {
*
* only define if servlink is not in same directory as ircd itself.
*/
@ -37,14 +37,14 @@ $OpenBSD: patch-etc_example_conf,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
/*
* default_cipher_preference: default cipher to use for cryptlink when none is
@@ -1276,8 +1276,8 @@ modules {
* module path: other paths to search for modules specified below
@@ -1291,8 +1291,8 @@ modules {
* path: other paths to search for modules specified below
* and in /modload.
*/
- path = "/usr/local/ircd/modules";
- path = "/usr/local/ircd/modules/autoload";
- path = "/usr/local/ircd/lib/ircd-hybrid/modules";
- path = "/usr/local/ircd/lib/ircd-hybrid/modules/autoload";
+ path = "${TRUEPREFIX}/lib/ircd-hybrid/modules";
+ path = "${TRUEPREFIX}/lib/ircd-hybrid/modules/autoload";
/* module: the name of a module to load on startup/rehash */
#module = "some_module.so";
#module = "some_module.la";

View File

@ -1,40 +0,0 @@
$OpenBSD: patch-help_Makefile_in,v 1.2 2010/01/26 13:02:06 landry Exp $
--- help/Makefile.in.orig Wed Feb 28 05:17:47 2007
+++ help/Makefile.in Tue Jan 26 11:23:17 2010
@@ -8,8 +8,8 @@ RM = @RM@
prefix = @prefix@
exec_prefix = @execprefix@
datarootdir = $(DESTDIR)@datarootdir@
-uhelpdir = ${prefix}/help/users
-ohelpdir = ${prefix}/help/opers
+uhelpdir = ${datarootdir}/ircd-hybrid/help/users
+ohelpdir = ${datarootdir}/ircd-hybrid/help/opers
SYMLINKS = topic accept cmode admin names links away whowas \
version kick who invite quit join list nick oper part \
@@ -22,14 +22,8 @@ depend:
install:
@echo installing help files...
- -@if test ! -d $(prefix)/help; then \
- echo "mkdir $(prefix)/help"; \
- mkdir $(prefix)/help; \
- echo "mkdir $(prefix)/help/users"; \
- mkdir $(prefix)/help/users; \
- echo "mkdir $(prefix)/help/opers"; \
- mkdir $(prefix)/help/opers; \
- fi
+ $(BSD_INSTALL_DATA_DIR) $(uhelpdir)
+ $(BSD_INSTALL_DATA_DIR) $(ohelpdir)
@for help in opers/*; do \
if [ -f $$help ]; then \
${INSTALL_DATA} $$help $(ohelpdir); \
@@ -42,7 +36,7 @@ install:
done
@for link in $(SYMLINKS); do \
rm -f $(uhelpdir)/$$link; \
- ln -s $(ohelpdir)/$$link $(uhelpdir); \
+ ln -s ../opers/$$link $(uhelpdir); \
done
distclean:

View File

@ -1,7 +1,7 @@
$OpenBSD: patch-include_defaults_h,v 1.2 2009/02/09 15:14:22 form Exp $
--- include/defaults.h.orig Wed Feb 28 10:17:43 2007
+++ include/defaults.h Sun Feb 8 14:28:26 2009
@@ -47,14 +47,19 @@
$OpenBSD: patch-include_defaults_h,v 1.3 2011/10/19 13:46:17 jasper Exp $
--- include/defaults.h.orig Thu Aug 18 12:21:47 2011
+++ include/defaults.h Fri Oct 14 15:08:11 2011
@@ -47,6 +47,11 @@
* AUTOMODPATH = directory for autoloaded modules
*/
@ -11,27 +11,25 @@ $OpenBSD: patch-include_defaults_h,v 1.2 2009/02/09 15:14:22 form Exp $
+#endif
+
/* dirs */
#define DPATH IRCD_PREFIX
#define BINPATH IRCD_PREFIX "/bin/"
-#define MSGPATH IRCD_PREFIX "/messages/"
-#define ETCPATH IRCD_PREFIX "/etc"
-#define LOGPATH IRCD_PREFIX "/logs"
-#define MODPATH IRCD_PREFIX "/modules/"
-#define AUTOMODPATH IRCD_PREFIX "/modules/autoload/"
+#define MSGPATH IRCD_PREFIX "/share/ircd-hybrid/messages/"
+#define ETCPATH "${SYSCONFDIR}/ircd-hybrid"
+#define LOGPATH "/var/log/ircd-hybrid"
+#define MODPATH IRCD_PREFIX "/lib/ircd-hybrid/modules/"
+#define AUTOMODPATH IRCD_PREFIX "/lib/ircd-hybrid/modules/autoload/"
#define DPATH PREFIX
#define SBINPATH PREFIX "/sbin/"
@@ -56,8 +61,8 @@
#define HPATH DATADIR "/" PACKAGE "/help/opers"
#define UHPATH DATADIR "/" PACKAGE "/help/users"
#define AUTOMODPATH MODPATH "/autoload/"
-#define ETCPATH SYSCONFDIR
-#define LOGPATH LOCALSTATEDIR "/log"
+#define ETCPATH SYSCONFDIR "/ircd-hybrid/"
+#define LOGPATH LOCALSTATEDIR "/log/ircd-hybrid"
/* files */
#define SPATH BINPATH "/ircd" /* ircd executable */
@@ -70,7 +75,7 @@
#define SPATH SBINPATH "/ircd" /* ircd executable */
@@ -73,7 +78,7 @@
#define RKPATH ETCPATH "/rkline.conf"
#define MPATH ETCPATH "/ircd.motd" /* MOTD file */
#define LPATH LOGPATH "/ircd.log" /* ircd logfile */
-#define PPATH ETCPATH "/ircd.pid" /* pid file */
+#define PPATH "/var/run/ircd/ircd.pid" /* pid file */
-#define PPATH LOCALSTATEDIR "/ircd.pid" /* pid file */
+#define PPATH LOCALSTATEDIR "/run/ircd-hybrid/ircd.pid" /* pid file */
#define OPATH ETCPATH "/opers.motd" /* oper MOTD file */
#define LIPATH ETCPATH "/links.txt" /* cached links file */

View File

@ -1,21 +0,0 @@
$OpenBSD: patch-include_irc_string_h,v 1.1 2010/02/01 09:23:33 jasper Exp $
Security fix for CVE-2009-4016, "IRCD-hybrid 'LINKS' Command
Integer Underflow Vulnerability.
Patch from upstream svn, revision 1044.
--- include/irc_string.h.orig Mon Feb 1 09:18:40 2010
+++ include/irc_string.h Mon Feb 1 09:18:55 2010
@@ -99,12 +99,6 @@ extern char *basename(char *);
#endif
/*
- * clean_string - cleanup control and high ascii characters
- * -Dianora
- */
-extern char *clean_string(char *, const unsigned char *, size_t);
-
-/*
* strip_tabs - convert tabs to spaces
* - jdc
*/

View File

@ -1,12 +1,12 @@
$OpenBSD: patch-include_stdinc_h,v 1.1 2009/02/09 15:14:22 form Exp $
--- include/stdinc.h.orig Wed Feb 28 10:17:43 2007
+++ include/stdinc.h Sun Feb 8 14:33:40 2009
@@ -94,6 +94,8 @@
$OpenBSD: patch-include_stdinc_h,v 1.2 2011/10/19 13:46:17 jasper Exp $
--- include/stdinc.h.orig Fri Oct 14 15:11:43 2011
+++ include/stdinc.h Fri Oct 14 15:12:31 2011
@@ -65,6 +65,8 @@
#include <stdarg.h>
#include <signal.h>
#include <ctype.h>
+#include <login_cap.h>
+#include <pwd.h>
#ifdef _WIN32
#define PATH_MAX (MAX_PATH - 1)
#include <dirent.h>
#include <netdb.h>

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-messages_Makefile_in,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
--- messages/Makefile.in.orig Tue Jan 27 21:15:57 2009
+++ messages/Makefile.in Tue Jan 27 21:16:17 2009
@@ -5,7 +5,7 @@ MV = @MV@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
prefix = $(DESTDIR)@prefix@
-messagedir = $(prefix)/messages
+messagedir = $(prefix)/share/ircd-hybrid/messages
datarootdir = $(DESTDIR)@datarootdir@
CLOBBER = @CLOBBER@

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-modules_Makefile_in,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
--- modules/Makefile.in.orig Tue Jan 27 21:13:38 2009
+++ modules/Makefile.in Tue Jan 27 21:13:46 2009
@@ -27,7 +27,7 @@ datarootdir = $(DESTDIR)@datarootdir@
moduledir = ${prefix}/modules
automoduledir = ${moduledir}/autoload
-INCLUDES = -I../include -I../lib/pcre $(SSL_INCLUDES)
+INCLUDES = -I../include $(SSL_INCLUDES)
CPPFLAGS = ${INCLUDES} @CPPFLAGS@
CORE_SRCS = \

View File

@ -0,0 +1,11 @@
$OpenBSD: patch-modules_core_Makefile_in,v 1.1 2011/10/19 13:46:17 jasper Exp $
--- modules/core/Makefile.in.orig Thu Aug 18 12:21:47 2011
+++ modules/core/Makefile.in Wed Oct 19 08:53:25 2011
@@ -642,7 +642,6 @@ install-dvi-am:
install-exec-am:
@$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
install-html: install-html-am
install-html-am:

View File

@ -1,14 +0,0 @@
$OpenBSD: patch-modules_m_help_c,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
--- modules/m_help.c.orig Mon Apr 14 10:58:13 2008
+++ modules/m_help.c Mon Apr 14 10:58:49 2008
@@ -36,8 +36,8 @@
#include "modules.h"
#include "irc_string.h"
-#define HPATH IRCD_PREFIX "/help/opers"
-#define UHPATH IRCD_PREFIX "/help/users"
+#define HPATH IRCD_PREFIX "/share/ircd-hybrid/help/opers"
+#define UHPATH IRCD_PREFIX "/share/ircd-hybrid/help/users"
#define HELPLEN 400
static void m_help(struct Client *, struct Client *, int, char *[]);

View File

@ -1,36 +0,0 @@
$OpenBSD: patch-modules_m_links_c,v 1.1 2010/02/01 09:23:33 jasper Exp $
Security fix for CVE-2009-4016, "IRCD-hybrid 'LINKS' Command
Integer Underflow Vulnerability.
Patch from upstream svn, revision 1044.
--- modules/m_links.c.orig Mon Feb 1 09:19:14 2010
+++ modules/m_links.c Mon Feb 1 09:20:09 2010
@@ -83,15 +83,11 @@ do_links(struct Client *source_p, int parc, char **par
{
if (IsOper(source_p) || !ConfigServerHide.flatten_links)
{
- char *mask = (parc > 2 ? parv[2] : parv[1]);
+ const char *mask = (parc > 2 ? parv[2] : parv[1]);
const char *me_name, *nick, *p;
struct Client *target_p;
- char clean_mask[2 * HOSTLEN + 4];
dlink_node *ptr;
- if (!EmptyString(mask)) /* only necessary if there is a mask */
- mask = collapse(clean_string(clean_mask, (const unsigned char*) mask, 2 * HOSTLEN));
-
me_name = ID_or_name(&me, source_p->from);
nick = ID_or_name(source_p, source_p->from);
@@ -162,8 +158,8 @@ m_links(struct Client *client_p, struct Client *source
me.name, source_p->name);
return;
}
- else
- last_used = CurrentTime;
+
+ last_used = CurrentTime;
if (!ConfigServerHide.flatten_links)
{

View File

@ -1,34 +0,0 @@
$OpenBSD: patch-src_Makefile_in,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
--- src/Makefile.in.orig Wed Feb 28 05:17:46 2007
+++ src/Makefile.in Tue Jan 27 21:09:42 2009
@@ -35,8 +35,8 @@ PROGS = ircd
SSL_LIBS = @SSL_LIBS@
SSL_INCLUDES = @SSL_INCLUDES@
-IRCDLIBS = @MODULES_LIBS@ @LIBS@ ../lib/pcre/libpcre.a $(SSL_LIBS)
-INCLUDES = -I../include -I../lib/pcre $(SSL_INCLUDES)
+IRCDLIBS = @MODULES_LIBS@ @LIBS@ $(SSL_LIBS) -lpcre
+INCLUDES = -I../include $(SSL_INCLUDES)
CPPFLAGS = ${INCLUDES} @CPPFLAGS@
default: all
@@ -111,17 +111,14 @@ all: .depend ircd
build: all
-ircd: @MODULES_LIBS@ ../lib/libpcre.a $(OBJS)
+ircd: @MODULES_LIBS@ $(OBJS)
${CC} ${CFLAGS} ${LDFLAGS} -o $@ ${OBJS} ${IRCDLIBS}
../modules/libmodules.a:
cd ../modules && ${MAKE} ${MFLAGS}
-../lib/libpcre.a:
- cd ../lib/pcre && ${MAKE} ${MFLAGS}
install-mkdirs:
- mkdir -p $(DESTDIR)$(prefix) $(exec_prefix) $(bindir) $(sysconfdir) \
- $(localstatedir)/logs
+ mkdir -p $(DESTDIR)$(prefix) $(exec_prefix) $(bindir) $(sysconfdir)
install: install-mkdirs build
@for i in $(PROGS); do \

View File

@ -1,55 +0,0 @@
$OpenBSD: patch-src_irc_string_c,v 1.1 2010/02/01 09:23:33 jasper Exp $
Security fix for CVE-2009-4016, "IRCD-hybrid 'LINKS' Command
Integer Underflow Vulnerability.
Patch from upstream svn, revision 1044.
--- src/irc_string.c.orig Mon Feb 1 09:20:21 2010
+++ src/irc_string.c Mon Feb 1 09:20:39 2010
@@ -70,46 +70,6 @@ myctime(time_t value)
}
/*
- * clean_string - clean up a string possibly containing garbage
- *
- * *sigh* Before the kiddies find this new and exciting way of
- * annoying opers, lets clean up what is sent to local opers
- * -Dianora
- */
-char *
-clean_string(char* dest, const unsigned char* src, size_t len)
-{
- char* d = dest;
- assert(0 != dest);
- assert(0 != src);
-
- if(dest == NULL || src == NULL)
- return NULL;
-
- len -= 3; /* allow for worst case, '^A\0' */
-
- while (*src && (len > 0))
- {
- if (*src & 0x80) /* if high bit is set */
- {
- *d++ = '.';
- --len;
- }
- else if (!IsPrint(*src)) /* if NOT printable */
- {
- *d++ = '^';
- --len;
- *d++ = 0x40 + *src; /* turn it into a printable */
- }
- else
- *d++ = *src;
- ++src, --len;
- }
- *d = '\0';
- return dest;
-}
-
-/*
* strip_tabs(dst, src, length)
*
* Copies src to dst, while converting all \t (tabs) into spaces.

View File

@ -1,7 +1,7 @@
$OpenBSD: patch-src_ircd_c,v 1.1 2009/02/09 15:14:22 form Exp $
--- src/ircd.c.orig Wed Feb 28 10:17:46 2007
+++ src/ircd.c Sun Feb 8 14:30:08 2009
@@ -168,7 +168,6 @@ make_daemon(void)
$OpenBSD: patch-src_ircd_c,v 1.2 2011/10/19 13:46:17 jasper Exp $
--- src/ircd.c.orig Thu Aug 18 12:21:47 2011
+++ src/ircd.c Fri Oct 14 16:13:29 2011
@@ -144,7 +144,6 @@ make_daemon(void)
}
else if (pid > 0)
{
@ -9,24 +9,24 @@ $OpenBSD: patch-src_ircd_c,v 1.1 2009/02/09 15:14:22 form Exp $
exit(EXIT_SUCCESS);
}
@@ -544,8 +543,19 @@ main(int argc, char *argv[])
#ifndef _WIN32
@@ -488,8 +487,19 @@ main(int argc, char *argv[])
*/
if (geteuid() == 0)
{
- fprintf(stderr, "Don't run ircd as root!!!\n");
- return(-1);
- return -1;
+ struct passwd *pw;
+
+ if ((pw = getpwnam(IRCD_USER)) == NULL)
+ {
+ fprintf(stderr, "Don't run ircd as root!!!\n");
+ return(-1);
+ return -1;
+ }
+
+ if (setusercontext(NULL, pw, pw->pw_uid, LOGIN_SETALL) < 0)
+ {
+ fprintf(stderr, "Can's set user context to %s!\n", IRCD_USER);
+ return (-1);
+ return -1;
+ }
}

View File

@ -1,17 +0,0 @@
$OpenBSD: patch-src_s_serv_c,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
Prevent warning on unsigned-char arches.
"warning: comparison is always true due to limited range of data type"
--- src/s_serv.c.orig Tue Jan 27 09:26:50 2009
+++ src/s_serv.c Tue Jan 27 09:27:17 2009
@@ -2324,7 +2324,7 @@ cryptlink_error(struct Client *client_p, const char *t
static char base64_chars[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-static char base64_values[] =
+static signed char base64_values[] =
{
/* 00-15 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
/* 16-31 */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,

View File

@ -1,14 +0,0 @@
$OpenBSD: patch-src_s_user_c,v 1.1 2009/04/14 19:13:30 merdely Exp $
--- src/s_user.c.orig Tue Apr 14 12:50:56 2009
+++ src/s_user.c Tue Apr 14 12:52:09 2009
@@ -427,8 +427,9 @@ register_local_user(struct Client *client_p, struct Cl
{
const char *id = execute_callback(uid_get_cb, source_p);
+ va_list va;
while (hash_find_id(id) != NULL)
- id = uid_get(NULL);
+ id = uid_get(va);
strlcpy(source_p->id, id, sizeof(source_p->id));
hash_add_id(source_p);

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-tools_Makefile_in,v 1.1.1.1 2009/01/28 23:35:07 bernd Exp $
--- tools/Makefile.in.orig Mon Apr 14 15:16:48 2008
+++ tools/Makefile.in Mon Apr 14 15:16:57 2008
@@ -18,7 +18,7 @@ CRYPT_LIB = @CRYPT_LIB@
INCLUDES = -I../include $(SSL_INCLUDES)
-prefix = $(DESTDIR)@prefix@
+prefix = @prefix@
exec_prefix = $(DESTDIR)@exec_prefix@
bindir = $(DESTDIR)@bindir@
datarootdir = $(DESTDIR)@datarootdir@

View File

@ -1,117 +1,177 @@
@comment $OpenBSD: PLIST,v 1.4 2010/11/13 06:52:41 ajacoutot Exp $
@comment $OpenBSD: PLIST,v 1.5 2011/10/19 13:46:17 jasper Exp $
@conflict bnc-*
@conflict irc-*
@conflict ircd-ratbox-*
@newgroup _ircd-hybrid:616
@newuser _ircd-hybrid:616:616:daemon:IRC Daemon:/var/empty:/sbin/nologin
@bin bin/encspeed
@bin bin/ircd
@bin bin/mkpasswd
@bin bin/respond
@bin bin/servlink
lib/ircd-hybrid/
lib/ircd-hybrid/modules/
lib/ircd-hybrid/modules/autoload/
lib/ircd-hybrid/modules/autoload/m_accept.la
lib/ircd-hybrid/modules/autoload/m_accept.so
lib/ircd-hybrid/modules/autoload/m_admin.la
lib/ircd-hybrid/modules/autoload/m_admin.so
lib/ircd-hybrid/modules/autoload/m_away.la
lib/ircd-hybrid/modules/autoload/m_away.so
lib/ircd-hybrid/modules/autoload/m_cap.la
lib/ircd-hybrid/modules/autoload/m_cap.so
lib/ircd-hybrid/modules/autoload/m_capab.la
lib/ircd-hybrid/modules/autoload/m_capab.so
lib/ircd-hybrid/modules/autoload/m_cburst.so
lib/ircd-hybrid/modules/autoload/m_challenge.la
lib/ircd-hybrid/modules/autoload/m_challenge.so
lib/ircd-hybrid/modules/autoload/m_close.la
lib/ircd-hybrid/modules/autoload/m_close.so
lib/ircd-hybrid/modules/autoload/m_connect.la
lib/ircd-hybrid/modules/autoload/m_connect.so
lib/ircd-hybrid/modules/autoload/m_cryptlink.la
lib/ircd-hybrid/modules/autoload/m_cryptlink.so
lib/ircd-hybrid/modules/autoload/m_drop.so
lib/ircd-hybrid/modules/autoload/m_dline.la
lib/ircd-hybrid/modules/autoload/m_dline.so
lib/ircd-hybrid/modules/autoload/m_encap.la
lib/ircd-hybrid/modules/autoload/m_encap.so
lib/ircd-hybrid/modules/autoload/m_eob.la
lib/ircd-hybrid/modules/autoload/m_eob.so
lib/ircd-hybrid/modules/autoload/m_etrace.la
lib/ircd-hybrid/modules/autoload/m_etrace.so
lib/ircd-hybrid/modules/autoload/m_gline.la
lib/ircd-hybrid/modules/autoload/m_gline.so
lib/ircd-hybrid/modules/autoload/m_hash.la
lib/ircd-hybrid/modules/autoload/m_hash.so
lib/ircd-hybrid/modules/autoload/m_help.la
lib/ircd-hybrid/modules/autoload/m_help.so
lib/ircd-hybrid/modules/autoload/m_info.la
lib/ircd-hybrid/modules/autoload/m_info.so
lib/ircd-hybrid/modules/autoload/m_invite.la
lib/ircd-hybrid/modules/autoload/m_invite.so
lib/ircd-hybrid/modules/autoload/m_ison.la
lib/ircd-hybrid/modules/autoload/m_ison.so
lib/ircd-hybrid/modules/autoload/m_kline.la
lib/ircd-hybrid/modules/autoload/m_kline.so
lib/ircd-hybrid/modules/autoload/m_knock.la
lib/ircd-hybrid/modules/autoload/m_knock.so
lib/ircd-hybrid/modules/autoload/m_links.la
lib/ircd-hybrid/modules/autoload/m_links.so
lib/ircd-hybrid/modules/autoload/m_list.la
lib/ircd-hybrid/modules/autoload/m_list.so
lib/ircd-hybrid/modules/autoload/m_lljoin.so
lib/ircd-hybrid/modules/autoload/m_llnick.so
lib/ircd-hybrid/modules/autoload/m_locops.la
lib/ircd-hybrid/modules/autoload/m_locops.so
lib/ircd-hybrid/modules/autoload/m_lusers.la
lib/ircd-hybrid/modules/autoload/m_lusers.so
lib/ircd-hybrid/modules/autoload/m_map.la
lib/ircd-hybrid/modules/autoload/m_map.so
lib/ircd-hybrid/modules/autoload/m_motd.la
lib/ircd-hybrid/modules/autoload/m_motd.so
lib/ircd-hybrid/modules/autoload/m_names.la
lib/ircd-hybrid/modules/autoload/m_names.so
lib/ircd-hybrid/modules/autoload/m_nburst.so
lib/ircd-hybrid/modules/autoload/m_omotd.la
lib/ircd-hybrid/modules/autoload/m_omotd.so
lib/ircd-hybrid/modules/autoload/m_oper.la
lib/ircd-hybrid/modules/autoload/m_oper.so
lib/ircd-hybrid/modules/autoload/m_operwall.la
lib/ircd-hybrid/modules/autoload/m_operwall.so
lib/ircd-hybrid/modules/autoload/m_pass.la
lib/ircd-hybrid/modules/autoload/m_pass.so
lib/ircd-hybrid/modules/autoload/m_ping.la
lib/ircd-hybrid/modules/autoload/m_ping.so
lib/ircd-hybrid/modules/autoload/m_pong.la
lib/ircd-hybrid/modules/autoload/m_pong.so
lib/ircd-hybrid/modules/autoload/m_post.la
lib/ircd-hybrid/modules/autoload/m_post.so
lib/ircd-hybrid/modules/autoload/m_rehash.la
lib/ircd-hybrid/modules/autoload/m_rehash.so
lib/ircd-hybrid/modules/autoload/m_restart.la
lib/ircd-hybrid/modules/autoload/m_restart.so
lib/ircd-hybrid/modules/autoload/m_resv.la
lib/ircd-hybrid/modules/autoload/m_resv.so
lib/ircd-hybrid/modules/autoload/m_rkline.la
lib/ircd-hybrid/modules/autoload/m_rkline.so
lib/ircd-hybrid/modules/autoload/m_rxline.la
lib/ircd-hybrid/modules/autoload/m_rxline.so
lib/ircd-hybrid/modules/autoload/m_set.la
lib/ircd-hybrid/modules/autoload/m_set.so
lib/ircd-hybrid/modules/autoload/m_stats.la
lib/ircd-hybrid/modules/autoload/m_stats.so
lib/ircd-hybrid/modules/autoload/m_svinfo.la
lib/ircd-hybrid/modules/autoload/m_svinfo.so
lib/ircd-hybrid/modules/autoload/m_tburst.la
lib/ircd-hybrid/modules/autoload/m_tburst.so
lib/ircd-hybrid/modules/autoload/m_testline.la
lib/ircd-hybrid/modules/autoload/m_testline.so
lib/ircd-hybrid/modules/autoload/m_testmask.la
lib/ircd-hybrid/modules/autoload/m_testmask.so
lib/ircd-hybrid/modules/autoload/m_time.la
lib/ircd-hybrid/modules/autoload/m_time.so
lib/ircd-hybrid/modules/autoload/m_topic.la
lib/ircd-hybrid/modules/autoload/m_topic.so
lib/ircd-hybrid/modules/autoload/m_trace.la
lib/ircd-hybrid/modules/autoload/m_trace.so
lib/ircd-hybrid/modules/autoload/m_user.la
lib/ircd-hybrid/modules/autoload/m_user.so
lib/ircd-hybrid/modules/autoload/m_userhost.la
lib/ircd-hybrid/modules/autoload/m_userhost.so
lib/ircd-hybrid/modules/autoload/m_users.la
lib/ircd-hybrid/modules/autoload/m_users.so
lib/ircd-hybrid/modules/autoload/m_version.la
lib/ircd-hybrid/modules/autoload/m_version.so
lib/ircd-hybrid/modules/autoload/m_wallops.la
lib/ircd-hybrid/modules/autoload/m_wallops.so
lib/ircd-hybrid/modules/autoload/m_watch.la
lib/ircd-hybrid/modules/autoload/m_watch.so
lib/ircd-hybrid/modules/autoload/m_who.la
lib/ircd-hybrid/modules/autoload/m_who.so
lib/ircd-hybrid/modules/autoload/m_whois.la
lib/ircd-hybrid/modules/autoload/m_whois.so
lib/ircd-hybrid/modules/autoload/m_whowas.la
lib/ircd-hybrid/modules/autoload/m_whowas.so
lib/ircd-hybrid/modules/autoload/m_xline.la
lib/ircd-hybrid/modules/autoload/m_xline.so
lib/ircd-hybrid/modules/m_die.la
lib/ircd-hybrid/modules/m_die.so
lib/ircd-hybrid/modules/m_error.la
lib/ircd-hybrid/modules/m_error.so
lib/ircd-hybrid/modules/m_join.la
lib/ircd-hybrid/modules/m_join.so
lib/ircd-hybrid/modules/m_kick.la
lib/ircd-hybrid/modules/m_kick.so
lib/ircd-hybrid/modules/m_kill.la
lib/ircd-hybrid/modules/m_kill.so
lib/ircd-hybrid/modules/m_message.la
lib/ircd-hybrid/modules/m_message.so
lib/ircd-hybrid/modules/m_mode.la
lib/ircd-hybrid/modules/m_mode.so
lib/ircd-hybrid/modules/m_nick.la
lib/ircd-hybrid/modules/m_nick.so
lib/ircd-hybrid/modules/m_part.la
lib/ircd-hybrid/modules/m_part.so
lib/ircd-hybrid/modules/m_quit.la
lib/ircd-hybrid/modules/m_quit.so
lib/ircd-hybrid/modules/m_server.la
lib/ircd-hybrid/modules/m_server.so
lib/ircd-hybrid/modules/m_sjoin.la
lib/ircd-hybrid/modules/m_sjoin.so
lib/ircd-hybrid/modules/m_squit.la
lib/ircd-hybrid/modules/m_squit.so
@man man/man8/ircd.8
@bin sbin/ircd
share/examples/ircd-hybrid/
@sample ${SYSCONFDIR}/ircd-hybrid/
@mode 640
@mode 700
@owner _ircd-hybrid
share/examples/ircd-hybrid/cresv.conf
@sample ${SYSCONFDIR}/ircd-hybrid/cresv.conf
share/examples/ircd-hybrid/dline.conf
@sample ${SYSCONFDIR}/ircd-hybrid/dline.conf
share/examples/ircd-hybrid/example.conf
@sample ${SYSCONFDIR}/ircd-hybrid/ircd.conf
@mode 644
share/examples/ircd-hybrid/ircd.motd
@sample ${SYSCONFDIR}/ircd-hybrid/ircd.motd
@mode 640
share/examples/ircd-hybrid/kline.conf
@sample ${SYSCONFDIR}/ircd-hybrid/kline.conf
share/examples/ircd-hybrid/nresv.conf
@sample ${SYSCONFDIR}/ircd-hybrid/nresv.conf
share/examples/ircd-hybrid/rkline.conf
@sample ${SYSCONFDIR}/ircd-hybrid/rkline.conf
share/examples/ircd-hybrid/rxline.conf
@sample ${SYSCONFDIR}/ircd-hybrid/rxline.conf
share/examples/ircd-hybrid/xline.conf
@sample ${SYSCONFDIR}/ircd-hybrid/xline.conf
@group _ircd-hybrid
@sample ${SYSCONFDIR}/ircd-hybrid/
@mode
@owner
@group
share/examples/ircd-hybrid/example.conf
@mode 600
@owner _ircd-hybrid
@group _ircd-hybrid
@sample ${SYSCONFDIR}/ircd-hybrid/ircd.conf
@mode
@owner
@group
share/ircd-hybrid/
share/ircd-hybrid/help/
share/ircd-hybrid/help/opers/
@ -119,7 +179,6 @@ share/ircd-hybrid/help/opers/accept
share/ircd-hybrid/help/opers/admin
share/ircd-hybrid/help/opers/away
share/ircd-hybrid/help/opers/capab
share/ircd-hybrid/help/opers/cburst
share/ircd-hybrid/help/opers/challenge
share/ircd-hybrid/help/opers/client
share/ircd-hybrid/help/opers/close
@ -128,11 +187,11 @@ share/ircd-hybrid/help/opers/connect
share/ircd-hybrid/help/opers/cryptlink
share/ircd-hybrid/help/opers/die
share/ircd-hybrid/help/opers/dline
share/ircd-hybrid/help/opers/drop
share/ircd-hybrid/help/opers/eob
share/ircd-hybrid/help/opers/error
share/ircd-hybrid/help/opers/etrace
share/ircd-hybrid/help/opers/gline
share/ircd-hybrid/help/opers/gungline
share/ircd-hybrid/help/opers/hash
share/ircd-hybrid/help/opers/help
share/ircd-hybrid/help/opers/index
@ -144,11 +203,8 @@ share/ircd-hybrid/help/opers/kick
share/ircd-hybrid/help/opers/kill
share/ircd-hybrid/help/opers/kline
share/ircd-hybrid/help/opers/knock
share/ircd-hybrid/help/opers/knockll
share/ircd-hybrid/help/opers/links
share/ircd-hybrid/help/opers/list
share/ircd-hybrid/help/opers/lljoin
share/ircd-hybrid/help/opers/llnick
share/ircd-hybrid/help/opers/locops
share/ircd-hybrid/help/opers/lusers
share/ircd-hybrid/help/opers/map
@ -158,7 +214,6 @@ share/ircd-hybrid/help/opers/modrestart
share/ircd-hybrid/help/opers/modunload
share/ircd-hybrid/help/opers/motd
share/ircd-hybrid/help/opers/names
share/ircd-hybrid/help/opers/nburst
share/ircd-hybrid/help/opers/nick
share/ircd-hybrid/help/opers/notice
share/ircd-hybrid/help/opers/omotd
@ -205,50 +260,17 @@ share/ircd-hybrid/help/opers/whois
share/ircd-hybrid/help/opers/whowas
share/ircd-hybrid/help/opers/xline
share/ircd-hybrid/help/users/
share/ircd-hybrid/help/users/accept
share/ircd-hybrid/help/users/admin
share/ircd-hybrid/help/users/away
share/ircd-hybrid/help/users/challenge
share/ircd-hybrid/help/users/cmode
share/ircd-hybrid/help/users/error
share/ircd-hybrid/help/users/help
share/ircd-hybrid/help/users/index
share/ircd-hybrid/help/users/info
share/ircd-hybrid/help/users/invite
share/ircd-hybrid/help/users/ison
share/ircd-hybrid/help/users/join
share/ircd-hybrid/help/users/kick
share/ircd-hybrid/help/users/knock
share/ircd-hybrid/help/users/links
share/ircd-hybrid/help/users/list
share/ircd-hybrid/help/users/lusers
share/ircd-hybrid/help/users/map
share/ircd-hybrid/help/users/motd
share/ircd-hybrid/help/users/names
share/ircd-hybrid/help/users/nick
share/ircd-hybrid/help/users/notice
share/ircd-hybrid/help/users/oper
share/ircd-hybrid/help/users/part
share/ircd-hybrid/help/users/pass
share/ircd-hybrid/help/users/ping
share/ircd-hybrid/help/users/pong
share/ircd-hybrid/help/users/privmsg
share/ircd-hybrid/help/users/quit
share/ircd-hybrid/help/users/stats
share/ircd-hybrid/help/users/time
share/ircd-hybrid/help/users/topic
share/ircd-hybrid/help/users/umode
share/ircd-hybrid/help/users/user
share/ircd-hybrid/help/users/userhost
share/ircd-hybrid/help/users/users
share/ircd-hybrid/help/users/version
share/ircd-hybrid/help/users/who
share/ircd-hybrid/help/users/whois
share/ircd-hybrid/help/users/whowas
share/ircd-hybrid/messages/
share/ircd-hybrid/messages/ayb.lang
share/ircd-hybrid/messages/custom.lang
share/ircd-hybrid/messages/ircd-brazilian_pt.lang
share/ircd-hybrid/messages/ircd-bulgarian.lang
share/ircd-hybrid/messages/ircd-croatian.lang
share/ircd-hybrid/messages/ircd-danish.lang
share/ircd-hybrid/messages/ircd-dutch.lang
@ -257,9 +279,12 @@ share/ircd-hybrid/messages/ircd-german.lang
share/ircd-hybrid/messages/ircd-italian.lang
share/ircd-hybrid/messages/ircd-norwegian.lang
share/ircd-hybrid/messages/ircd-polish.lang
share/ircd-hybrid/messages/ircd-romanian.lang
share/ircd-hybrid/messages/ircd-russian.lang
share/ircd-hybrid/messages/ircd-spanish.lang
share/ircd-hybrid/messages/ircd-swedish.lang
@rcscript ${RCDIR}/ircd_hybrid
@mode 700
@owner _ircd-hybrid
@group _ircd-hybrid
@sample /var/log/ircd-hybrid/

View File

@ -1,13 +1,13 @@
#!/bin/sh
#
# $OpenBSD: ircd_hybrid.rc,v 1.3 2010/12/27 14:50:23 ajacoutot Exp $
# $OpenBSD: ircd_hybrid.rc,v 1.4 2011/10/19 13:46:17 jasper Exp $
daemon="${TRUEPREFIX}/bin/ircd"
daemon="${TRUEPREFIX}/sbin/ircd"
. /etc/rc.d/rc.subr
rc_pre() {
install -d -o _ircd-hybrid -g _ircd-hybrid /var/run/ircd
install -d -o _ircd-hybrid -g _ircd-hybrid /var/run/ircd-hybrid
}
rc_cmd $1