Remove outdated ports:

2014-07-01 security/sudosh3: Funcition replaced by sudo -s
2014-07-01 security/sudosh: Funcition replaced by sudo -s
2014-07-01 security/sudosh2: Funcition replaced by sudo -s
2014-07-01 lang/pike76: Outdated: Users should switch to lang/pike78
2014-07-01 editors/gummi: Builds fine but the program itself is unusable
This commit is contained in:
Rene Ladan 2014-07-01 06:33:38 +00:00
parent 3abde05452
commit 011f192383
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=359962
42 changed files with 5 additions and 1332 deletions

5
MOVED
View file

@ -6227,3 +6227,8 @@ mail/wanderlust-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs
textproc/dictem-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs
textproc/uim-el-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs
www/emacs-w3m-xemacs21-mule||2014-06-30|Removed: depend on editors/xemacs
security/sudosh3||2014-07-01|Has expired: Funcition replaced by sudo -s
security/sudosh||2014-07-01|Has expired: Funcition replaced by sudo -s
security/sudosh2||2014-07-01|Has expired: Funcition replaced by sudo -s
lang/pike76|lang/pike78|2014-07-01|Has expired: Outdated: Users should switch to lang/pike78
editors/gummi||2014-07-01|Has expired: Builds fine but the program itself is unusable

View file

@ -73,7 +73,6 @@
SUBDIR += gnotepad+
SUBDIR += gnuserv
SUBDIR += gobby
SUBDIR += gummi
SUBDIR += gwrite
SUBDIR += heme
SUBDIR += hexcurse

View file

@ -1,52 +0,0 @@
# Created by: Hakisho Nukama <nukama@gmail.com>
# $FreeBSD$
PORTNAME= gummi
PORTVERSION= 0.6.5
PORTREVISION= 1
CATEGORIES= editors
MASTER_SITES= http://dev.midnightcoding.org/attachments/download/301/
MAINTAINER= nukama+maintainer@gmail.com
COMMENT= Simple LaTex editor for GTK users
DEPRECATED= Builds fine but the program itself is unusable
EXPIRATION_DATE= 2014-07-01
LICENSE= MIT
BUILD_DEPENDS+= msgfmt:${PORTSDIR}/devel/gettext
LIB_DEPENDS+= libpoppler-glib.so:${PORTSDIR}/graphics/poppler-glib \
libgtkspell.so:${PORTSDIR}/textproc/gtkspell
USES= iconv gmake pkgconfig desktop-file-utils
GNU_CONFIGURE= yes
USE_XORG= xdamage xft xcursor xcomposite
USE_GNOME= gtksourceview2 glib20 intlhack
INSTALLS_ICONS= yes
INSTALLS_OMF= yes
OPTIONS_DEFINE= TETEX LATEXMK RUBBER TEXCOUNT
OPTIONS_DEFAULT= TETEX
TETEX_DESC= Use pdfetex typesetter
LATEXMK_DESC= Use latexmk typesetter
RUBBER_DESC= Use rubber typesetter
TEXCOUNT_DESC= With texcount statistics
CONFIGURE_ARGS+= --disable-nls
PLIST_SUB+= NLS="@comment "
NLS_USES+= gettext
NLS_CONFIGURE_ARGS+= --enable-nls
NLS_PLIST_SUB+= NLS=""
TETEX_RUN_DEPENDS= pdfetex:${PORTSDIR}/print/teTeX-base
LATEXMK_RUN_DEPENDS= latexmk:${PORTSDIR}/print/latexmk
RUBBER_RUN_DEPENDS= rubber:${PORTSDIR}/textproc/rubber
TEXCOUNT_RUN_DEPENDS= ${LOCALBASE}/bin/texcount.${PORTVERSION}:${PORTSDIR}/texproc/p5-texcount
.include <bsd.port.mk>

View file

@ -1,2 +0,0 @@
SHA256 (gummi-0.6.5.tar.gz) = b23c2958376ea43c701a276ad19ceac5b50d9cb32a489a10897b25aa5004fffb
SIZE (gummi-0.6.5.tar.gz) = 520902

View file

@ -1,12 +0,0 @@
--- ./po/Makefile.in.in.orig 2012-01-29 20:42:39.060446287 +0000
+++ ./po/Makefile.in.in 2012-01-29 20:43:42.348435836 +0000
@@ -34,7 +34,8 @@ datadir = @datadir@
datarootdir = @datarootdir@
libdir = @libdir@
DATADIRNAME = @DATADIRNAME@
-itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+sharedir = share
+itlocaledir = $(prefix)/$(sharedir)/locale
subdir = po
install_sh = @install_sh@
# Automake >= 1.8 provides @mkdir_p@.

View file

@ -1,10 +0,0 @@
--- ./src/update.c.orig 2012-01-29 20:34:57.429446671 +0000
+++ ./src/update.c 2012-01-29 20:35:29.991443641 +0000
@@ -31,6 +31,7 @@
#include <stdio.h>
#include <string.h>
+#include <netinet/in.h>
#ifndef WIN32
# include <sys/socket.h>

View file

@ -1,3 +0,0 @@
Gummi is a LaTeX editor. It was designed with simplicity in mind.
WWW: http://gummi.midnightcoding.org/

View file

@ -1,38 +0,0 @@
bin/gummi
share/applications/gummi.desktop
share/pixmaps/gummi.png
lib/gummi/latex_dvi.sh
man/man1/gummi.1.gz
%%DATADIR%%/ui/snippets.glade
%%DATADIR%%/ui/gummi.glade
%%DATADIR%%/ui/prefs.glade
%%DATADIR%%/snippets/snippets.lang
%%DATADIR%%/snippets/snippets.cfg
%%DATADIR%%/misc/default.tex
%%DATADIR%%/icons/gummi.png
%%DATADIR%%/icons/icon.png
%%NLS%%share/locale/ar/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/ca/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/cs/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/da/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/de/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/el/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/es/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/fr/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/hu/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/it/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/nl/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/pl/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/pt/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/pt_BR/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/ro/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/ru/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/sv/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/zh_CN/LC_MESSAGES/gummi.mo
%%NLS%%share/locale/zh_TW/LC_MESSAGES/gummi.mo
@dirrm %%DATADIR%%/icons
@dirrm %%DATADIR%%/misc
@dirrm %%DATADIR%%/snippets
@dirrm %%DATADIR%%/ui
@dirrm %%DATADIR%%
@dirrm lib/gummi

View file

@ -243,7 +243,6 @@
SUBDIR += php55-extensions
SUBDIR += php_doc
SUBDIR += picoc
SUBDIR += pike76
SUBDIR += pike78
SUBDIR += polyml
SUBDIR += ptoc

View file

@ -1,222 +0,0 @@
# Created by: kiwi@oav.net
# $FreeBSD$
PORTNAME= pike76
PORTVERSION= 7.6.132
PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= ftp://pike.ida.liu.se/pub/pike/beta/${PORTVERSION}/ \
http://pike.ida.liu.se/pub/pike/beta/${PORTVERSION}/ \
ftp://pike.ida.liu.se/pub/pike/all/${PORTVERSION}/ \
http://pike.ida.liu.se/pub/pike/all/${PORTVERSION}/ \
ftp://ftp.oav.net/pike/7.6/ \
ftp://ftp.caudium.net/pike/official_releases/${PORTVERSION}/
DISTNAME= Pike-v${PORTVERSION}
MAINTAINER= johans@FreeBSD.org
COMMENT= Dynamic programming language with a syntax similar to C++
LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/jpeg \
libtiff.so:${PORTSDIR}/graphics/tiff \
libgdbm.so:${PORTSDIR}/databases/gdbm \
libpcre.so:${PORTSDIR}/devel/pcre \
libgmp.so:${PORTSDIR}/math/gmp
DEPRECATED= Outdated: Users should switch to lang/pike78
EXPIRATION_DATE=2014-07-01
CONFLICTS= pike7[28]-[0-9]*
CONFLICTS_BUILD=nettle-[2-9]*
OPTIONS_DEFINE= TTF FREETYPE OPT_CFLAGS MYSQL FFMPEG PGSQL \
SANE PDF SVG2 TDS FFTW ODBC
OPTIONS_DEFAULT=TTF FREETYPE OPT_CFLAGS MYSQL
TTF_DESC?= Add FreeType 1 support
FREETYPE_DESC?= Add FreeType 2 support
OPT_CFLAGS_DESC?= Enable additional compiliation optimizations
FFMPEG_DESC?= Add FFmpeg support
ODBC_DESC?= Add ODBC support
SANE_DESC?= Add SANE support
PDF_DESC?= Add PDF support
SVG2_DESC?= Add SVG2 support
TDS_DESC?= Add FreeTDS (Sybase and MSSQL) support
FFTW_DESC?= Add libFFTW support
MAN1= pike.1
WANT_MESA= yes
CPPFLAGS+= -I${LOCALBASE}/include ${PTHREAD_CFLAGS}
CONFIGURE_ARGS+=--without-debug \
--with-thread-library=${PTHREAD_LIBS} \
--with-double-precision \
--with-long-double-precision \
--disable-rpath \
--without-rtldebug \
--without-cdebug \
--without-copt \
--without-security \
--with-oob \
--without-poll \
--without-devpoll \
--with-max-fd=60000 \
--with-gmp \
--with-zlib \
--with-threads \
--with-readline \
--with-jpeg \
--with-tiff \
--with-gdbm \
--without-java \
--without-ssleay \
--without-GTK \
--without-gnome \
--without-glade \
--without-libglade-config \
--without-krb5 \
--without-machine-code \
--with-perl \
--with-relocatable-dumped-modules \
--without-GL --without-GLUT \
--prefix=${PREFIX}
MAKE_ARGS= CONFIGUREARGS="${CONFIGURE_ARGS}"
MAKE_ENV= "ac_cv_lib_nettle_nettle_md5_init=no"
USES= bison gettext gmake perl5
PLIST_FILES= bin/pike bin/pike76 bin/hilfe
NO_STAGE= yes
MAKE_JOBS_UNSAFE=yes
.include <bsd.port.pre.mk>
ONLY_FOR_ARCHS= i386 amd64
.if ${PORT_OPTIONS:MEXPERIMENTAL_FEATURES}
CONFIGURE_ARGS+= --with-computed-goto \
--with-pg \
--with-long-long-int \
--with-long-int \
--with-short-int \
--with-keypair-loop \
--without-lock \
--with-new-multisets
.endif
.if ${PORT_OPTIONS:MOPT_CFLAGS}
.if (${MACHINE} == "i386")
CFLAGS+= -O3 -ffast-math -fomit-frame-pointer
.else
CFLAGS+= -ffast-math -fomit-frame-pointer
.endif
.endif
.if ${PORT_OPTIONS:MFFMPEG}
LIB_DEPENDS+= libavcodec.so:${PORTSDIR}/multimedia/ffmpeg
CONFIGURE_ARGS+= --with-ffmpeg
.else
CONFIGURE_ARGS+= --without-ffmpeg
.endif
.if ${PORT_OPTIONS:MFFTW}
LIB_DEPENDS+= libfftw.so:${PORTSDIR}/math/fftw
.endif
.if ${PORT_OPTIONS:MTTF}
LIB_DEPENDS+= libttf.so:${PORTSDIR}/print/freetype
CONFIGURE_ARGS+= --with-ttflib
.else
CONFIGURE_ARGS+= --without-ttflib
.endif
.if ${PORT_OPTIONS:MFREETYPE}
LIB_DEPENDS+= libfreetype.so:${PORTSDIR}/print/freetype2
CONFIGURE_ARGS+= --with-freetype
.else
CONFIGURE_ARGS+= --without-freetype
.endif
.if ${PORT_OPTIONS:MMYSQL}
USE_MYSQL= yes
CONFIGURE_ARGS+= --with-mysql=${PREFIX}
.else
CONFIGURE_ARGS+= --without-mysql
.endif
.if ${PORT_OPTIONS:MPGSQL}
USE_PGSQL= yes
CONFIGURE_ARGS+= --with-pgsql=${PREFIX}
.else
CONFIGURE_ARGS+= --without-pgsql
.endif
.if ${PORT_OPTIONS:MODBC}
LIB_DEPENDS+= libodbc.so:${PORTSDIR}/databases/unixODBC
CONFIGURE_ARGS+= --with-odbc
.else
CONFIGURE_ARGS+= --without-odbc
.endif
.if ${PORT_OPTIONS:MSANE}
LIB_DEPENDS+= libsane.so:${PORTSDIR}/graphics/sane-backends
CONFIGURE_ARGS+= --with-sane
.else
CONFIGURE_ARGS+= --without-sane
.endif
.if ${PORT_OPTIONS:MPDF}
LIB_DEPENDS+= libpdf.so:${PORTSDIR}/print/pdflib \
libpanda.so:${PORTSDIR}/print/panda
CONFIGURE_ARGS+= --with-libpdf --with-libpanda
.else
CONFIGURE_ARGS+= --without-libpdf --without-libpanda
.endif
.if ${PORT_OPTIONS:MSVG2}
LIB_DEPENDS+= librsvg-2.so:${PORTSDIR}/graphics/librsvg2
CONFIGURE_ARGS+= --with-svg
.else
CONFIGURE_ARGS+= --without-svg
.endif
.if ${PORT_OPTIONS:MTDS}
LIB_DEPENDS+= libct.so:${PORTSDIR}/databases/freetds
CONFIGURE_ARGS+= --with-sybase
PLIST_SUB+= SYBASE:=""
.else
CONFIGURE_ARGS+= --without-sybase
PLIST_SUB+= SYBASE:="@comment "
.endif
INSTALL_TARGET= install_nodoc
pre-configure:
@${ECHO} ${CONFIGURE_ARGS}
post-patch:
@${REINPLACE_CMD} -e 's| -lgmp| -L${LOCALBASE}/lib -lgmp|' \
${WRKSRC}/src/modules/Gmp/configure ${WRKSRC}/src/modules/_Image_XFace/configure
@${REINPLACE_CMD} -e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|' \
-e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|' \
-e "s|/cc/|&'|" \
${WRKSRC}/src/configure
post-extract:
@mv ${WRKSRC}/bundles/nettle-1.15.tar.gz \
${WRKSRC}/bundles/nettle-1.15.tar
@gzip ${WRKSRC}/bundles/nettle-1.15.tar
post-install:
@${STRIP_CMD} ${PREFIX}/pike/${PORTVERSION}/bin/pike
@${INSTALL_SCRIPT} ${WRKSRC}/bin/hilfe ${PREFIX}/bin
@${INSTALL_MAN} ${WRKSRC}/man/pike.1 ${MAN1PREFIX}/man/man1
@cd ${PREFIX} && ${FIND} pike/${PORTVERSION} ! -type d >> ${TMPPLIST}
@cd ${PREFIX} && ${FIND} pike/${PORTVERSION} -type d -empty -delete
@cd ${PREFIX} && ${FIND} -d pike/${PORTVERSION} -type d | \
${SED} 's,^,@dirrm ,' >> ${TMPPLIST}
@${ECHO} '@unexec rmdir %D/pike 2>/dev/null || true' >> ${TMPPLIST}
.include <bsd.port.post.mk>

View file

@ -1,2 +0,0 @@
SHA256 (Pike-v7.6.132.tar.gz) = aea7d70fb1d6845a5faff2d5d1c3b6f6fa6d5038d8dc08805c7b6e922198470f
SIZE (Pike-v7.6.132.tar.gz) = 11759983

View file

@ -1,11 +0,0 @@
--- Makefile.orig 2007-04-18 21:19:27.000000000 +0400
+++ Makefile 2011-09-15 15:14:33.000000000 +0400
@@ -4,6 +4,8 @@
# Meta Makefile
#
+unexport LDFLAGS
+
VPATH=.
OS=`uname -s -r -m|sed \"s/ /-/g\"|tr \"[A-Z]\" \"[a-z]\"|tr \"/()\" \"___\"`
BUILDDIR=build/$(OS)

View file

@ -1,13 +0,0 @@
--- src/modules/_Image_FreeType/configure.orig 2007-04-15 14:40:08.000000000 +0200
+++ src/modules/_Image_FreeType/configure 2011-03-11 10:35:16.000000000 +0100
@@ -2688,8 +2688,8 @@ echo "${ECHO_T}no" >&6
fi
else
- # Extract the first word of "${ac_tool_prefix}freetype-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}freetype-config; ac_word=$2
+ # Extract the first word of "freetype-config", so it can be a program name with args.
+set dummy freetype-config; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_FT_CONFIG+set}" = set; then

View file

@ -1,11 +0,0 @@
--- bin/install.pike.orig 2007-01-01 01:28:18.000000000 +0100
+++ bin/install.pike 2011-03-11 10:35:16.000000000 +0100
@@ -1707,7 +1707,7 @@ void do_install()
if(file_stat(vars->MANDIR_SRC))
{
- install_dir(vars->MANDIR_SRC,combine_path(man_prefix,"man1"),0);
+ //install_dir(vars->MANDIR_SRC,combine_path(man_prefix,"man1"),0);
}
};

View file

@ -1,20 +0,0 @@
--- src/modules/common_module_makefile.in.orig 2011-03-12 19:54:33.000000000 +0100
+++ src/modules/common_module_makefile.in 2011-03-12 19:54:35.000000000 +0100
@@ -58,7 +58,7 @@ $(MODULE_ARCHIVES) ThisIsAPhonyTargetBla
.c.o:
@echo "Compiling $<" ;\
rm -f $@.fail >/dev/null 2>&1; \
- if $(CC) $(PREFLAGS) $(CFLAGS) -c $< -o $@ ; then : ; else \
+ if $(CC) $(PREFLAGS) $(REAL_CPPFLAGS) $(CFLAGS) -c $< -o $@ ; then : ; else \
status=$$?; \
if test x"@noopt_retry@" = xyes ; then \
echo "WARNING: Compiler failure! Trying without optimization!" >&2;\
@@ -102,7 +102,7 @@ $(SRCDIR)/configure: $(SRCDIR)/configure
cd $(SRCDIR) && $(PIKE_SRC_DIR)/run_autoconfig .
config.status: $(SRCDIR)/configure
- AR="$(AR)" CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" LDSHARED="$(REAL_LDSHARED)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" PIKE_SRC_DIR="$(PIKE_SRC_DIR)" BUILD_BASE="$(BUILD_BASE)" ./config.status --recheck
+ ./config.status --recheck AR="$(AR)" CFLAGS="$(REAL_CFLAGS)" LDFLAGS="$(REAL_LDFLAGS)" LDSHARED="$(REAL_LDSHARED)" CPPFLAGS="$(REAL_CPPFLAGS)" BUILDDIR="$(TMP_BUILDDIR)" BINDIR="$(TMP_BINDIR)" PIKE_SRC_DIR="$(PIKE_SRC_DIR)" BUILD_BASE="$(BUILD_BASE)"
module.pmod: Makefile $(MODULE_PMOD_IN)
@if [ "x$(MODULE_PMOD_IN)" != "x" ]; then \

View file

@ -1,19 +0,0 @@
Pike is an interpreted, object-oriented programming language.
It looks a bit like C and C++, but it is much easier to learn and use. It
can be used for small scripts as well as for large programs.
Pike is :
- High-level and powerful, which means that even very complex
things are easy to do.
- Object-oriented, which means that you can use modern programming
techniques to divide a large program into small pieces, which are much
easier to write than it would be to write the entire program at once.
- Interpreted, which means that you don't have to wait for a program to
compile and link when you want to run it.
- One of the fastest "scripting" languages available.
- Garbage-collected, which makes programming much simpler, and removes
the risk for memory leaks and other memory-related bugs.
- Easy to extend, which means that you can create plug-ins, written in
Pike as well as in C or C++, and integrate them with the rest of Pike.
WWW: http://pike.ida.liu.se/

View file

@ -966,9 +966,6 @@
SUBDIR += sud
SUBDIR += sudo
SUBDIR += sudoscript
SUBDIR += sudosh
SUBDIR += sudosh2
SUBDIR += sudosh3
SUBDIR += super
SUBDIR += suricata
SUBDIR += swatch

View file

@ -1,35 +0,0 @@
# Created by: cy@FreeBSD.org
# $FreeBSD$
PORTNAME= sudosh
PORTVERSION= 1.8.2
PORTREVISION= 5
CATEGORIES= security
MASTER_SITES= SF/${PORTNAME}/OldFiles
MAINTAINER= cy@FreeBSD.org
COMMENT= A sudo shell
DEPRECATED= Funcition replaced by sudo -s
EXPIRATION_DATE= 2014-07-01
RUN_DEPENDS= sudo:${PORTSDIR}/security/sudo
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --bindir="${PREFIX}/bin"
CONFIGURE_ARGS+= --sysconfdir="${PREFIX}/etc"
CONFIGURE_ARGS+= --program-transform-name=''
.if defined(SUDOSH_LOGDIR)
CONFIGURE_ARGS+= --with-logdir="${SUDOSH_LOGDIR}"
.else
CONFIGURE_ARGS+= --with-logdir=/var/log/sudosh
.endif
LDFLAGS+= -lutil
MAN1= sudosh.1
MAN5= sudosh.conf.5
MAN8= sudosh-replay.8
NO_STAGE= yes
.include <bsd.port.mk>

View file

@ -1,2 +0,0 @@
SHA256 (sudosh-1.8.2.tar.gz) = 0a536d970accf1d4366bcb49441ef6773711df7d48501f72ca6cc451ca3e87fd
SIZE (sudosh-1.8.2.tar.gz) = 135757

View file

@ -1,12 +0,0 @@
--- src/parse.c.orig Sun Jun 12 16:22:42 2005
+++ src/parse.c Fri Jan 5 17:54:55 2007
@@ -19,7 +19,8 @@
void parse(option * o, const char *file)
{
FILE *f = fopen(file, "r");
- unsigned int line_number, i;
+ unsigned int line_number;
+ int i;
char line[BUFSIZ];
char *arg, *cmt, *opt;
config *scan;

View file

@ -1,11 +0,0 @@
--- src/Makefile.in.orig Sun Jun 12 19:33:29 2005
+++ src/Makefile.in Wed Oct 26 06:59:17 2005
@@ -427,7 +427,8 @@
install-sudosh.conf:
test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
test -f $(sysconfdir)/sudosh.conf || $(INSTALL) -o 0 -g 0 -m 0444 '$(srcdir)/sudosh.conf' '$(sysconfdir)/sudosh.conf'
+ $(INSTALL) -o 0 -g 0 -m 0444 '$(srcdir)/sudosh.conf' '$(sysconfdir)/sudosh.conf.sample'
install: install-am install-sudosh.conf
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View file

@ -1,129 +0,0 @@
--- src/sudosh.c.orig Sun Jun 12 19:35:07 2005
+++ src/sudosh.c Fri Jan 5 14:14:05 2007
@@ -28,6 +28,13 @@
#define WRITE(a, b, c) do_write(a, b, c, __FILE__, __LINE__)
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <libutil.h>
+#include <sys/param.h>
+#endif
+
static struct termios termorig;
static struct winsize winorig;
@@ -545,19 +552,43 @@
{
char *sname;
+#ifdef __FreeBSD__
+#define PTYLEN 16
+ char sname_area[PTYLEN];
+ struct termios tt;
+ struct winsize win;
+
+ sname = sname_area;
+ if (tcgetattr(STDIN_FILENO, &tt) == -1)
+ {
+ perror ("tcgetattr");
+ return -1;
+ }
+ if (ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1)
+ {
+ perror ("ioctl");
+ return -1;
+ }
+ if (openpty(&p->mfd, &p->sfd, sname, &tt, &win) == -1) {
+#else
if ((p->mfd = open ("/dev/ptmx", O_RDWR)) == -1)
{
if ((p->mfd = open ("/dev/ptc", O_RDWR)) == -1)
{
+#endif
perror ("Cannot open cloning master pty");
return -1;
+#ifndef __FreeBSD__
}
+#endif
}
+#if !defined(__FreeBSD_version) || (defined(__FreeBSD_version) && __FreeBSD_version >= 500000)
(void) unlockpt (p->mfd);
(void) grantpt (p->mfd);
sname = (char *) ptsname (p->mfd);
+#endif
if ((p->sfd = open (sname, O_RDWR)) == -1)
{
@@ -619,9 +650,14 @@
for (i = 3; i < 100; ++i)
close (i);
+#ifdef __FreeBSD__
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
+ (void) login_tty(pst->sfd);
+#else
#ifdef TCSETS
(void) ioctl (0, TCSETS, &termorig);
#endif
+#endif
(void) ioctl (0, TIOCSWINSZ, &winorig);
setuid (getuid ());
@@ -663,6 +699,13 @@
{
static struct termios termnew;
+#ifdef __FreeBSD__
+ if (tcgetattr(ttyfd, &termorig) == -1)
+ {
+ perror ("tcgetattr failed");
+ exit (EXIT_FAILURE);
+ }
+#else
#ifdef TCGETS
if (ioctl (ttyfd, TCGETS, &termorig) == -1)
{
@@ -670,6 +713,7 @@
exit (EXIT_FAILURE);
}
#endif
+#endif
if (ioctl (ttyfd, TIOCGWINSZ, &winorig) == -1)
{
@@ -677,6 +721,11 @@
exit (EXIT_FAILURE);
}
+#ifdef __FreeBSD__
+ (void) cfmakeraw(&termnew);
+ termnew.c_lflag &= ~ECHO;
+ (void) tcsetattr(ttyfd, TCSAFLUSH, &termnew);
+#else
termnew.c_cc[VEOF] = 1;
termnew.c_iflag = BRKINT | ISTRIP | IXON | IXANY;
termnew.c_oflag = 0;
@@ -686,13 +735,19 @@
#ifdef TCSETS
(void) ioctl (ttyfd, TCSETS, &termnew);
#endif
+#endif
}
static void
bye (int signum)
{
+
+#ifdef __FreeBSD__
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
+#else
#ifdef TCSETS
(void) ioctl (0, TCSETS, &termorig);
+#endif
#endif
close (timing.fd);

View file

@ -1,7 +0,0 @@
sudosh is a sudo shell. Sudosh provides a logged root shell that can
be used for auditing. It works just like a VCR, records the root shell
session and offers real-time playback. Sudosh is designed to be used
with sudo in an enterprise environment.
WWW: http://sourceforge.net/projects/sudosh/
http://freshmeat.net/projects/sudosh/

View file

@ -1,5 +0,0 @@
@unexec test -f %D/etc/sudosh.conf && cmp %D/etc/sudosh.conf.sample %D/etc/sudosh.conf > /dev/null 2>&1 && rm %D/etc/sudosh.conf && echo %D/etc/sudosh.conf has been removed; test -f %D/etc/sudosh.conf && echo %D/etc/sudosh.conf has not been removed; true
bin/sudosh
bin/sudosh-replay
etc/sudosh.conf.sample
@exec test -f %D/etc/sudosh.conf || cp %D/etc/sudosh.conf.sample %D/etc/sudosh.conf

View file

@ -1,41 +0,0 @@
# Created by: cy@FreeBSD.org
# $FreeBSD$
PORTNAME= sudosh2
PORTVERSION= 1.0.5
CATEGORIES= security
MASTER_SITES= SF/${PORTNAME}
EXTRACT_SUFX= .tgz
MAINTAINER= cy@FreeBSD.org
COMMENT= Second version of the sudo shell
CONFLICTS= sudosh-*
DEPRECATED= Funcition replaced by sudo -s
EXPIRATION_DATE= 2014-07-01
RUN_DEPENDS= sudo:${PORTSDIR}/security/sudo
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --bindir="${PREFIX}/bin"
CONFIGURE_ARGS+= --sysconfdir="${PREFIX}/etc"
CONFIGURE_ARGS+= --program-transform-name=''
.if defined(SUDOSH_LOGDIR)
CONFIGURE_ARGS+= --with-logdir="${SUDOSH_LOGDIR}"
.else
CONFIGURE_ARGS+= --with-logdir=/var/log/sudosh
.endif
LDFLAGS+= -lutil
MAN1= sudosh.1
MAN5= sudosh.conf.5
MAN8= sudosh-replay.8
NO_STAGE= yes
.include <bsd.port.pre.mk>
post-install:
@${TEST} -f ${PREFIX}/etc/sudosh.conf || ${CP} -p ${PREFIX}/etc/sudosh.conf.sample ${PREFIX}/etc/sudosh.conf
.include <bsd.port.post.mk>

View file

@ -1,2 +0,0 @@
SHA256 (sudosh2-1.0.5.tgz) = c6ab7d4b736e19b409e66216d7760f3f64ecac849e034f03db567097cb8eb8ef
SIZE (sudosh2-1.0.5.tgz) = 258181

View file

@ -1,11 +0,0 @@
--- src/getopt.c.orig 2007-12-21 13:03:26.000000000 -0800
+++ src/getopt.c 2008-09-26 13:45:11.958473185 -0700
@@ -195,6 +195,8 @@
/* gcc with -traditional declares the built-in strlen to return int,
and has done so at least since version 2.4.5. -- rms. */
extern int strlen(const char *);
+#else
+#include <string.h>
#endif /* not __STDC__ */
#endif /* __GNUC__ */

View file

@ -1,11 +0,0 @@
--- src/replay.c.orig 2010-07-09 13:37:01.000000000 -0700
+++ src/replay.c 2013-05-26 10:07:55.720227505 -0700
@@ -238,7 +238,7 @@
strncpy(s->randstr, randstr, BUFSIZ - 1);
strftime(s->date, 20, "%m/%d/%Y %H:%M:%S", localtime(&s->e));
snprintf(s->id, BUFSIZ - 1, "%s%c%s%c%ld%c%s", s->from,
- config_option.fdl, s->to, config_option.fdl, s->e,
+ config_option.fdl, s->to, config_option.fdl, (long)s->e,
config_option.fdl, s->randstr);
link_session(s);

View file

@ -1,11 +0,0 @@
--- src/Makefile.in.orig Sun Jun 12 19:33:29 2005
+++ src/Makefile.in Wed Oct 26 06:59:17 2005
@@ -427,7 +427,8 @@
install-sudosh.conf:
test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
test -f $(sysconfdir)/sudosh.conf || $(INSTALL) -o 0 -g 0 -m 0444 '$(srcdir)/sudosh.conf' '$(sysconfdir)/sudosh.conf'
+ $(INSTALL) -o 0 -g 0 -m 0444 '$(srcdir)/sudosh.conf' '$(sysconfdir)/sudosh.conf.sample'
install: install-am install-sudosh.conf
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View file

@ -1,129 +0,0 @@
--- src/sudosh.c.orig Sun Jun 12 19:35:07 2005
+++ src/sudosh.c Fri Jan 5 14:14:05 2007
@@ -28,6 +28,13 @@
#define WRITE(a, b, c) do_write(a, b, c, __FILE__, __LINE__)
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <libutil.h>
+#include <sys/param.h>
+#endif
+
static struct termios termorig;
static struct winsize winorig;
@@ -545,19 +552,43 @@
{
char *sname;
+#ifdef __FreeBSD__
+#define PTYLEN 16
+ char sname_area[PTYLEN];
+ struct termios tt;
+ struct winsize win;
+
+ sname = sname_area;
+ if (tcgetattr(STDIN_FILENO, &tt) == -1)
+ {
+ perror ("tcgetattr");
+ return -1;
+ }
+ if (ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1)
+ {
+ perror ("ioctl");
+ return -1;
+ }
+ if (openpty(&p->mfd, &p->sfd, sname, &tt, &win) == -1) {
+#else
if ((p->mfd = open ("/dev/ptmx", O_RDWR)) == -1)
{
if ((p->mfd = open ("/dev/ptc", O_RDWR)) == -1)
{
+#endif
perror ("Cannot open cloning master pty");
return -1;
+#ifndef __FreeBSD__
}
+#endif
}
+#if !defined(__FreeBSD_version) || (defined(__FreeBSD_version) && __FreeBSD_version >= 500000)
(void) unlockpt (p->mfd);
(void) grantpt (p->mfd);
sname = (char *) ptsname (p->mfd);
+#endif
if ((p->sfd = open (sname, O_RDWR)) == -1)
{
@@ -619,9 +650,14 @@
for (i = 3; i < 100; ++i)
close (i);
+#ifdef __FreeBSD__
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
+ (void) login_tty(pst->sfd);
+#else
#ifdef TCSETS
(void) ioctl (0, TCSETS, &termorig);
#endif
+#endif
(void) ioctl (0, TIOCSWINSZ, &winorig);
setuid (getuid ());
@@ -663,6 +699,13 @@
{
static struct termios termnew;
+#ifdef __FreeBSD__
+ if (tcgetattr(ttyfd, &termorig) == -1)
+ {
+ perror ("tcgetattr failed");
+ exit (EXIT_FAILURE);
+ }
+#else
#ifdef TCGETS
if (ioctl (ttyfd, TCGETS, &termorig) == -1)
{
@@ -670,6 +713,7 @@
exit (EXIT_FAILURE);
}
#endif
+#endif
if (ioctl (ttyfd, TIOCGWINSZ, &winorig) == -1)
{
@@ -677,6 +721,11 @@
exit (EXIT_FAILURE);
}
+#ifdef __FreeBSD__
+ (void) cfmakeraw(&termnew);
+ termnew.c_lflag &= ~ECHO;
+ (void) tcsetattr(ttyfd, TCSAFLUSH, &termnew);
+#else
termnew.c_cc[VEOF] = 1;
termnew.c_iflag = BRKINT | ISTRIP | IXON | IXANY;
termnew.c_oflag = 0;
@@ -686,13 +735,19 @@
#ifdef TCSETS
(void) ioctl (ttyfd, TCSETS, &termnew);
#endif
+#endif
}
static void
bye (int signum)
{
+
+#ifdef __FreeBSD__
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
+#else
#ifdef TCSETS
(void) ioctl (0, TCSETS, &termorig);
+#endif
#endif
close (timing.fd);

View file

@ -1,13 +0,0 @@
Sudosh2 is a tool which can provide systems administrators with extensive
auditing of user shell usage.
There are two distinct modes of operation for sudosh2: as a filter for sudo,
and directly as a login shell. In either case, you will be able to audit
user sessions by replaying them to your screen, much like a VCR.
Sudosh2 is a fork of sudosh (by Douglas Hanks). He stopped updating sudosh
in 2005, and this fork was created in 2007. Sudosh2 is licensed with the
Open Source License v2.0.
http://sourceforge.net/projects/sudosh2/
http://www.shortcutsolutions.net/software/40-software-development/55-introduction-to-sudosh2.html

View file

@ -1,5 +0,0 @@
@unexec test -f %D/etc/sudosh.conf && cmp %D/etc/sudosh.conf.sample %D/etc/sudosh.conf > /dev/null 2>&1 && rm %D/etc/sudosh.conf && echo %D/etc/sudosh.conf has been removed; test -f %D/etc/sudosh.conf && echo %D/etc/sudosh.conf has not been removed; true
bin/sudosh
bin/sudosh-replay
etc/sudosh.conf.sample
@exec test -f %D/etc/sudosh.conf || cp %D/etc/sudosh.conf.sample %D/etc/sudosh.conf

View file

@ -1,43 +0,0 @@
# Created by: cy@FreeBSD.org
# $FreeBSD$
PORTNAME= sudosh3
PORTVERSION= 3.2.0
PORTREVISION= 3
CATEGORIES= security
MASTER_SITES= SF/${PORTNAME}
MAINTAINER= cy@FreeBSD.org
COMMENT= Third version of the sudo shell
CONFLICTS= sudosh-*
DEPRECATED= Funcition replaced by sudo -s
EXPIRATION_DATE= 2014-07-01
BROKEN= build error in relay.c
RUN_DEPENDS= sudo:${PORTSDIR}/security/sudo
GNU_CONFIGURE= yes
EXTRACT_AFTER_ARGS= |${TAR} -xpf - --exclude 'getopt.*'
CONFIGURE_ARGS= --bindir="${PREFIX}/bin"
CONFIGURE_ARGS+= --sysconfdir="${PREFIX}/etc"
CONFIGURE_ARGS+= --program-transform-name=''
.if defined(SUDOSH_LOGDIR)
CONFIGURE_ARGS+= --with-logdir="${SUDOSH_LOGDIR}"
.else
CONFIGURE_ARGS+= --with-logdir=/var/log/sudosh
.endif
LDFLAGS+= -lutil
MAN1= sudosh.1
MAN5= sudosh.conf.5
MAN8= sudosh-replay.8
NO_STAGE= yes
.include <bsd.port.pre.mk>
post-install:
@${TEST} -f ${PREFIX}/etc/sudosh.conf || ${CP} -p ${PREFIX}/etc/sudosh.conf.sample ${PREFIX}/etc/sudosh.conf
.include <bsd.port.post.mk>

View file

@ -1,2 +0,0 @@
SHA256 (sudosh3-3.2.0.tar.gz) = 8a1099da9a6115db2cf70112aa48600bd056c868e98ac27e80b07bfab4b7b362
SIZE (sudosh3-3.2.0.tar.gz) = 244867

View file

@ -1,10 +0,0 @@
--- src/Makefile.am.orig 2008-01-30 14:55:46.000000000 -0800
+++ src/Makefile.am 2010-01-14 21:25:28.195547024 -0800
@@ -8,6 +8,6 @@
install-sudosh.conf:
test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
- test -f $(sysconfdir)/sudosh.conf || $(INSTALL) -o 0 -g 0 -m 0444 '$(srcdir)/sudosh.conf' '$(sysconfdir)/sudosh.conf'
+ $(INSTALL) -o 0 -g 0 -m 0444 '$(srcdir)/sudosh.conf' '$(sysconfdir)/sudosh.conf.sample'
install: install-am install-sudosh.conf

View file

@ -1,85 +0,0 @@
--- src/Makefile.in 2008-02-22 16:11:02.000000000 -0500
+++ src/Makefile.in 2013-02-12 16:16:50.000000000 -0500
@@ -51,11 +51,11 @@
string.$(OBJEXT) util.$(OBJEXT)
sudosh_OBJECTS = $(am_sudosh_OBJECTS)
sudosh_LDADD = $(LDADD)
-am_sudosh_replay_OBJECTS = replay.$(OBJEXT) getopt.$(OBJEXT) \
+am_sudosh_replay_OBJECTS = replay.$(OBJEXT) \
string.$(OBJEXT) parse.$(OBJEXT) util.$(OBJEXT)
sudosh_replay_OBJECTS = $(am_sudosh_replay_OBJECTS)
sudosh_replay_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
@@ -165,10 +165,11 @@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-sudosh_SOURCES = sudosh.c rand.c parse.c string.c getopt.h struct.h super.h util.c
-sudosh_replay_SOURCES = replay.c getopt.c getopt.h string.c parse.c util.c
+sudosh_SOURCES = sudosh.c rand.c parse.c string.c struct.h super.h util.c
+sudosh_replay_SOURCES = replay.c string.c parse.c util.c
EXTRA_DIST = sudosh.conf
all: all-am
@@ -241,7 +242,6 @@
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rand.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/replay.Po@am__quote@
@@ -268,8 +268,8 @@
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
@@ -281,8 +281,8 @@
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
@@ -292,13 +292,12 @@
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
- here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
@@ -442,7 +441,7 @@
install-sudosh.conf:
test -z "$(sysconfdir)" || $(mkdir_p) "$(DESTDIR)$(sysconfdir)"
- test -f $(sysconfdir)/sudosh.conf || $(INSTALL) -o 0 -g 0 -m 0444 '$(srcdir)/sudosh.conf' '$(sysconfdir)/sudosh.conf'
+ $(INSTALL) -o 0 -g 0 -m 0444 '$(srcdir)/sudosh.conf' '$(sysconfdir)/sudosh.conf.sample'
install: install-am install-sudosh.conf
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View file

@ -1,20 +0,0 @@
Eliminate unused variables.
--- src/parse.c 2009-11-24 07:13:28.000000000 -0500
+++ src/parse.c 2013-02-12 16:12:57.000000000 -0500
@@ -8,9 +8,7 @@
{
FILE *f;
- unsigned int line_number, i;
char line[BUFSIZ];
int leftside;
char key[BUFSIZ], value[BUFSIZ];
- char *arg, *cmt, *opt;
char *p;
struct stat defshell_stat;
@@ -18,5 +16,5 @@
char *shell;
int found = FALSE;
- unsigned int x=0, y=0;
+ unsigned int x=0;
// bzero(c, sizeof (struct s_option));

View file

@ -1,49 +0,0 @@
Use the modern random(3) and device-based seeding.
-mi
--- src/rand.c 2009-11-18 07:23:18.000000000 -0500
+++ src/rand.c 2013-02-12 16:09:01.000000000 -0500
@@ -1,26 +1,18 @@
#include "super.h"
-int myrand(void)
-{
- struct timeval tv;
- unsigned int seed;
-
- gettimeofday(&tv, (struct timezone *) 0);
- seed = (tv.tv_sec % 10000) * 523 + tv.tv_usec * 13 + (getpid() % 1000) * 983;
- srand(seed);
-
- return rand();
-}
-
-char *rand2str(size_t len)
+const char *
+rand2str(size_t len)
{
static char buf[BUFSIZ];
char *ptr = buf;
- char *alphabet =
+ char alphabet[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- int i;
+ size_t i;
+
+ if (len == 0)
+ return NULL;
- if (len < 0)
- return (char *) 0;
+ if (buf[0] == '\0') /* First time we are here */
+ srandomdev(); /* Seed */
if (len >= BUFSIZ)
@@ -28,5 +20,5 @@
for (i = 0; i < len; i++) {
- int j = (myrand() & 0xffff) % (26 + 26 + 10);
+ int j = random() % (sizeof(alphabet)/sizeof(char) - 1);
ptr[i] = alphabet[j];
}

View file

@ -1,110 +0,0 @@
Address the buffer-overflow problem outlined here:
http://packetstormsecurity.com/files/85687/sa38292.txt
(buffer is of size BUFSIZ, but the check is for 8Mb, which may not be the
same) by not using a buffer at all. Instead we simply mmap the script-file.
The patch also adds closing of the script file at the end and fixes some
compiler warnings (the the -Wall -W levels).
On 32-bit architectures this limits the replayable script-size to 4Gb.
-mi
--- src/replay.c 2009-11-24 09:54:58.000000000 -0500
+++ src/replay.c 2013-02-12 15:51:31.000000000 -0500
@@ -19,4 +19,6 @@
#include "super.h"
#include "struct.h"
+#include <sys/mman.h>
+#include <stdint.h>
#define LL() fprintf(stderr, "[%s, line %i]: ", __FILE__, __LINE__)
@@ -71,5 +73,5 @@
void show_sessions(void);
-int main(int argc, char **argv, char **environ)
+int main(int argc, char *argv[])
{
int c;
@@ -406,14 +408,15 @@
void replay(const char *time, const char *script, int div, int maxwait)
{
- char read_buffer[BUFSIZ];
+ char *read_buffer;
char timebuf[BUFSIZ];
float ftime = 0;
int b = 0;
int bInput = 0;
- int r = 0;
int sec, usec;
char buffer[BUFSIZ];
struct s_file s_time;
struct s_file s_script;
+ struct stat sb;
+ off_t offset;
struct timeval tv;
@@ -432,9 +435,13 @@
}
- if ((s_script.fd = open(script, O_RDONLY)) == -1) {
+ if ((s_script.fd = open(script, O_RDONLY)) == -1 ||
+ fstat(s_script.fd, &sb) ||
+ (read_buffer = mmap(NULL, sb.st_size, PROT_READ, MAP_NOCORE|MAP_SHARED, s_script.fd, 0))
+ == MAP_FAILED) {
LL();
fprintf(stderr, "%s: %s: %s (%i)\n", progname, script, strerror(errno), errno);
exit(EXIT_FAILURE);
}
+ offset = 0;
for (s_time.line = 1; fgets(buffer, BUFSIZ - 1, s_time.f); s_time.line++) {
@@ -478,29 +485,22 @@
tv.tv_usec = (time_t) usec;
- if (b > 1024 * 1024 * 8) { /* 8MB */
+ if (b > sb.st_size - offset) { /* 8MB */
LL();
- fprintf(stderr, "[error]: line %i: wanted to read %i bytes, but the limit is 8MB.\n", s_time.line, b);
- exit(EXIT_FAILURE);
- }
-
- memset(read_buffer, '\0', BUFSIZ);
- r = read(s_script.fd, read_buffer, (size_t) b);
-
- if (r != b) {
- LL();
- fprintf(stderr, "[failure]: read %i bytes out of %i.\n", r, b);
+ fprintf(stderr, "[error]: line %i: wanted to read %i bytes, but only %jd are "
+ "left in %s.\n", s_time.line, b, (intmax_t)sb.st_size - offset, script);
exit(EXIT_FAILURE);
}
select(0, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &tv);
- fputs(read_buffer, stdout);
+ fwrite(read_buffer + offset, 1, b, stdout); /* Should we check for error here? XXX */
+ offset += b;
fflush(stdout);
- memset(read_buffer, '\0', BUFSIZ);
}
+ munmap(read_buffer, sb.st_size);
+ close(s_script.fd);
fprintf(stderr, "[info]: EOF\n");
fflush(stderr);
}
-
session *session_malloc(void)
{
@@ -586,5 +586,5 @@
session *sort_list(session * list)
{
- session *p, *q, *e, *tail, *oldhead;
+ session *p, *q, *e, *tail;
int insize, nmerges, psize, qsize, i;
@@ -597,5 +597,4 @@
p = list;
- oldhead = list;
list = (session *) 0;
tail = (session *) 0;

View file

@ -1,152 +0,0 @@
--- src/sudosh.c 2009-11-27 05:19:58.000000000 -0500
+++ src/sudosh.c 2013-02-12 16:10:41.000000000 -0500
@@ -28,4 +28,11 @@
#define WRITE(a, b, c) do_write(a, b, c, __FILE__, __LINE__)
+#ifdef __FreeBSD__
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <libutil.h>
+#include <sys/param.h>
+#endif
+
typedef enum {false=0, true=1} bool;
@@ -94,5 +101,5 @@
static int findms (struct pst *);
void mysyslog (int, const char *, ...);
-char *rand2str (size_t len);
+const char *rand2str (size_t len);
int do_write (int, void *, size_t, char *, unsigned int);
@@ -109,10 +116,9 @@
extern int optind;
-int main (int argc, char *argv[], char *environ[])
+int main(int argc, char *argv[])
{
int result = EXIT_SUCCESS;
// int n = 1;
int valid = -1;
- int found = FALSE;
// char iobuf[BUFSIZ];
char sysconfdir[BUFSIZ];
@@ -120,6 +126,5 @@
char c_command[BUFSIZ];
char *p = NULL;
- char *c_args = NULL;
- char *rand = rand2str (16);
+ const char *rand = rand2str (16);
time_t now = time ((time_t *) NULL);
struct stat s;
@@ -178,13 +183,11 @@
strncpy (c_str, optarg, BUFSIZ - 1);
strncpy (c_command, optarg, BUFSIZ -1);
- c_args = (char *) strchr (optarg, ' ');
p=strchr(c_str, ' ');
if (p) {
p[0]=0;
- // fprintf(stderr,"args=%s\n",c_args);
}
- if (c_str) {
+ {
// fprintf(stderr,"Testing c\n");
// Make sure that c_str is in argallow
@@ -444,10 +447,30 @@
char *sname;
+#ifdef __FreeBSD__
+#define PTYLEN 16
+ char sname_area[PTYLEN];
+ struct termios tt;
+ struct winsize win;
+
+ sname = sname_area;
+ if (tcgetattr(STDIN_FILENO, &tt) == -1) {
+ perror ("tcgetattr");
+ return -1;
+ }
+ if (ioctl(STDIN_FILENO, TIOCGWINSZ, &win) == -1) {
+ perror ("ioctl");
+ return -1;
+ }
+ if (openpty(&p->mfd, &p->sfd, sname, &tt, &win) == -1) {
+#else
if ((p->mfd = open ("/dev/ptmx", O_RDWR)) == -1) {
if ((p->mfd = open ("/dev/ptc", O_RDWR)) == -1) {
+#endif
perror ("Cannot open cloning master pty");
return -1;
+#ifndef __FreeBSD__
}
+#endif
}
@@ -516,7 +539,12 @@
close (i);
+#ifdef __FreeBSD__
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
+ (void) login_tty(pst->sfd);
+#else
#ifdef TCSETS
(void) ioctl (0, TCSETS, &termorig);
#endif
+#endif
(void) ioctl (0, TIOCSWINSZ, &winorig);
@@ -672,4 +700,11 @@
static struct termios termnew;
+#ifdef __FreeBSD__
+ if (tcgetattr(ttyfd, &termorig) == -1)
+ {
+ perror ("tcgetattr failed");
+ exit (EXIT_FAILURE);
+ }
+#else
#ifdef TCGETS
if (ioctl (ttyfd, TCGETS, &termorig) == -1) {
@@ -678,4 +713,5 @@
}
#endif
+#endif
if (ioctl (ttyfd, TIOCGWINSZ, &winorig) == -1) {
@@ -686,4 +722,9 @@
}
+#ifdef __FreeBSD__
+ (void) cfmakeraw(&termnew);
+ termnew.c_lflag &= ~ECHO;
+ (void) tcsetattr(ttyfd, TCSAFLUSH, &termnew);
+#else
termnew.c_cc[VEOF] = 1;
termnew.c_iflag = BRKINT | ISTRIP | IXON | IXANY;
@@ -695,11 +736,16 @@
(void) ioctl (ttyfd, TCSETS, &termnew);
#endif
+#endif
}
static void bye (int signum)
{
+#ifdef __FreeBSD__
+ (void) tcsetattr(0, TCSADRAIN, &termorig);
+#else
#ifdef TCSETS
(void) ioctl (0, TCSETS, &termorig);
#endif
+#endif
close (timing.fd);
@@ -713,5 +759,5 @@
}
-static void newwinsize (int signum)
+static void newwinsize (int signum __unused)
{
int fd;

View file

@ -1,12 +0,0 @@
Sudosh3 is a tool which can provide systems administrators with extensive
auditing of user shell usage.
There are two distinct modes of operation for sudosh3: as a filter for sudo,
and directly as a login shell. In either case, you will be able to audit
user sessions by replaying them to your screen, much like a VCR.
Sudosh3 is a fork of sudosh (by Douglas Hanks). He stopped updating sudosh
in 2005, and this fork was created in 2007. Sudosh2 is licensed with the
Open Source License v2.0.
http://sourceforge.net/projects/sudosh3/

View file

@ -1,5 +0,0 @@
@unexec test -f %D/etc/sudosh.conf && cmp %D/etc/sudosh.conf.sample %D/etc/sudosh.conf > /dev/null 2>&1 && rm %D/etc/sudosh.conf && echo %D/etc/sudosh.conf has been removed; test -f %D/etc/sudosh.conf && echo %D/etc/sudosh.conf has not been removed; true
bin/sudosh
bin/sudosh-replay
etc/sudosh.conf.sample
@exec test -f %D/etc/sudosh.conf || cp %D/etc/sudosh.conf.sample %D/etc/sudosh.conf