From f2428b0676ae8f879a255ab9a36fc1ae96028826 Mon Sep 17 00:00:00 2001 From: Georgy Kovtunov Date: Sat, 4 Feb 2012 12:06:56 +0400 Subject: [PATCH 1/4] Unzip with codepage support --- app-arch/unzip/Manifest | 4 + .../unzip/files/unzip-6.0-alt-natspec.patch | 366 ++++++++++++++++++ .../unzip/files/unzip-6.0-no-exec-stack.patch | 13 + app-arch/unzip/unzip-6.0-r9999.ebuild | 75 ++++ 4 files changed, 458 insertions(+) create mode 100644 app-arch/unzip/Manifest create mode 100644 app-arch/unzip/files/unzip-6.0-alt-natspec.patch create mode 100644 app-arch/unzip/files/unzip-6.0-no-exec-stack.patch create mode 100644 app-arch/unzip/unzip-6.0-r9999.ebuild diff --git a/app-arch/unzip/Manifest b/app-arch/unzip/Manifest new file mode 100644 index 0000000..ef56288 --- /dev/null +++ b/app-arch/unzip/Manifest @@ -0,0 +1,4 @@ +AUX unzip-6.0-alt-natspec.patch 14008 RMD160 855c4f7b1b54afbda7602bfb8c4fca7199ac01b3 SHA1 f0385b48de5fbb22c49747eba4c35ff9c9c936bf SHA256 79d7fbe7538f3a6db5050eb79ef5a4401c500ced8281d12d7205fdcd2fe24923 +AUX unzip-6.0-no-exec-stack.patch 381 RMD160 c45c06fd6a4fc88ce051637b6d7f1f4b0e09fa48 SHA1 d26e9fb76d73d77c2651198a3b27ae8bfb06fb34 SHA256 ae62249dcf8bbc3c30468b07944df6c8777b565927d9ed6d1fdf7395899ea7c7 +DIST unzip60.tar.gz 1376845 RMD160 48af66606e9472e45fbb94bc4e285da23d1b89ba SHA1 abf7de8a4018a983590ed6f5cbd990d4740f8a22 SHA256 036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37 +EBUILD unzip-6.0-r9999.ebuild 2116 RMD160 9ef2f4094846cc6a7d57963167827bb13d17e567 SHA1 ab540ba8ba4662f513fae3eb6f8c64b5039d09b3 SHA256 2a1d0d2339e6ee2ea1ba41f97f4595ebf74f6adc9e2a7a4f5bb663607998069b diff --git a/app-arch/unzip/files/unzip-6.0-alt-natspec.patch b/app-arch/unzip/files/unzip-6.0-alt-natspec.patch new file mode 100644 index 0000000..27219d2 --- /dev/null +++ b/app-arch/unzip/files/unzip-6.0-alt-natspec.patch @@ -0,0 +1,366 @@ +--- unzip60orig/unzip.c 2009-04-16 22:26:52.000000000 +0400 ++++ unzip60/unzip.c 2010-11-26 16:58:35.000000000 +0300 +@@ -331,7 +331,9 @@ static ZCONST char Far ZipInfoUsageLine3 + -h print header line -t print totals for listed files or for all\n\ + -z print zipfile comment -T print file times in sortable decimal format\ + \n -C be case-insensitive %s\ +- -x exclude filenames that follow from listing\n"; ++ -x exclude filenames that follow from listing\n\ ++ -O CHARSET specify a character encoding for DOS, Windows and OS/2 archives\n\ ++ -I CHARSET specify a character encoding for UNIX and other archives\n"; + #ifdef MORE + static ZCONST char Far ZipInfoUsageLine4[] = + " -M page output through built-in \"more\"\n"; +@@ -570,8 +572,7 @@ Send bug reports using //www.info-zip.or + #else /* !VMS */ + # ifdef COPYRIGHT_CLEAN + static ZCONST char Far UnzipUsageLine1[] = "\ +-UnZip %d.%d%d%s of %s, by Info-ZIP. Maintained by C. Spieler. Send\n\ +-bug reports using http://www.info-zip.org/zip-bug.html; see README for details.\ ++UnZip %d.%d%d%s of %s, by ALT Linux Team. Original by Info-ZIP.\ + \n\n"; + # else + static ZCONST char Far UnzipUsageLine1[] = "\ +@@ -673,7 +674,9 @@ modifiers:\n\ + -j junk paths (do not make directories) -aa treat ALL files as text\n\ + -U use escapes for all non-ASCII Unicode -UU ignore any Unicode fields\n\ + -C match filenames case-insensitively -L make (some) names \ +-lowercase\n %-42s -V retain VMS version numbers\n%s"; ++lowercase\n %-42s -V retain VMS version numbers\n%s\ ++ -O CHARSET specify a character encoding for DOS, Windows and OS/2 archives\n\ ++ -I CHARSET specify a character encoding for UNIX and other archives\n"; + #endif /* ?VMS */ + #else /* !UNICODE_SUPPORT */ + #ifdef VMS +@@ -692,7 +695,9 @@ modifiers:\n\ + -o overwrite files WITHOUT prompting -a auto-convert any text files\n\ + -j junk paths (do not make directories) -aa treat ALL files as text\n\ + -C match filenames case-insensitively -L make (some) names \ +-lowercase\n %-42s -V retain VMS version numbers\n%s"; ++lowercase\n %-42s -V retain VMS version numbers\n%s\ ++ -O CHARSET specify a character encoding for DOS, Windows and OS/2 archives\n\ ++ -I CHARSET specify a character encoding for UNIX and other archives\n"; + #endif /* ?VMS */ + #endif /* ?UNICODE_SUPPORT */ + +@@ -803,6 +808,10 @@ int unzip(__G__ argc, argv) + #endif /* UNICODE_SUPPORT */ + + ++#ifdef UNIX ++ init_conversion_charsets(); ++#endif ++ + #if (defined(__IBMC__) && defined(__DEBUG_ALLOC__)) + extern void DebugMalloc(void); + +@@ -1336,6 +1345,11 @@ int uz_opts(__G__ pargc, pargv) + argc = *pargc; + argv = *pargv; + ++#ifdef UNIX ++ extern char OEM_CP[MAX_CP_NAME]; ++ extern char ISO_CP[MAX_CP_NAME]; ++#endif ++ + while (++argv, (--argc > 0 && *argv != NULL && **argv == '-')) { + s = *argv + 1; + while ((c = *s++) != 0) { /* "!= 0": prevent Turbo C warning */ +@@ -1517,6 +1531,35 @@ int uz_opts(__G__ pargc, pargv) + } + break; + #endif /* MACOS */ ++#ifdef UNIX ++ case ('I'): ++ if (negative) { ++ Info(slide, 0x401, ((char *)slide, ++ "error: encodings can't be negated")); ++ return(PK_PARAM); ++ } else { ++ if(*s) { /* Handle the -Icharset case */ ++ /* Assume that charsets can't start with a dash to spot arguments misuse */ ++ if(*s == '-') { ++ Info(slide, 0x401, ((char *)slide, ++ "error: a valid character encoding should follow the -I argument")); ++ return(PK_PARAM); ++ } ++ strncpy(ISO_CP, s, sizeof(ISO_CP)); ++ } else { /* -I charset */ ++ ++argv; ++ if(!(--argc > 0 && *argv != NULL && **argv != '-')) { ++ Info(slide, 0x401, ((char *)slide, ++ "error: a valid character encoding should follow the -I argument")); ++ return(PK_PARAM); ++ } ++ s = *argv; ++ strncpy(ISO_CP, s, sizeof(ISO_CP)); ++ } ++ while(*(++s)); /* No params straight after charset name */ ++ } ++ break; ++#endif /* ?UNIX */ + case ('j'): /* junk pathnames/directory structure */ + if (negative) + uO.jflag = FALSE, negative = 0; +@@ -1592,6 +1635,35 @@ int uz_opts(__G__ pargc, pargv) + } else + ++uO.overwrite_all; + break; ++#ifdef UNIX ++ case ('O'): ++ if (negative) { ++ Info(slide, 0x401, ((char *)slide, ++ "error: encodings can't be negated")); ++ return(PK_PARAM); ++ } else { ++ if(*s) { /* Handle the -Ocharset case */ ++ /* Assume that charsets can't start with a dash to spot arguments misuse */ ++ if(*s == '-') { ++ Info(slide, 0x401, ((char *)slide, ++ "error: a valid character encoding should follow the -I argument")); ++ return(PK_PARAM); ++ } ++ strncpy(OEM_CP, s, sizeof(OEM_CP)); ++ } else { /* -O charset */ ++ ++argv; ++ if(!(--argc > 0 && *argv != NULL && **argv != '-')) { ++ Info(slide, 0x401, ((char *)slide, ++ "error: a valid character encoding should follow the -O argument")); ++ return(PK_PARAM); ++ } ++ s = *argv; ++ strncpy(OEM_CP, s, sizeof(OEM_CP)); ++ } ++ while(*(++s)); /* No params straight after charset name */ ++ } ++ break; ++#endif /* ?UNIX */ + case ('p'): /* pipes: extract to stdout, no messages */ + if (negative) { + uO.cflag = FALSE; +--- unzip60orig/unzpriv.h 2009-04-20 03:59:26.000000000 +0400 ++++ unzip60/unzpriv.h 2010-11-26 16:58:35.000000000 +0300 +@@ -3008,7 +3008,7 @@ char *GetLoadPath OF((__GPRO)); + !(((islochdr) || (isuxatt)) && \ + ((hostver) == 25 || (hostver) == 26 || (hostver) == 40))) || \ + (hostnum) == FS_HPFS_ || \ +- ((hostnum) == FS_NTFS_ && (hostver) == 50)) { \ ++ ((hostnum) == FS_NTFS_/* && (hostver) == 50*/)) { \ + _OEM_INTERN((string)); \ + } else { \ + _ISO_INTERN((string)); \ +--- unzip60orig/zipinfo.c 2009-02-08 20:04:30.000000000 +0300 ++++ unzip60/zipinfo.c 2010-11-26 16:58:35.000000000 +0300 +@@ -457,6 +457,10 @@ int zi_opts(__G__ pargc, pargv) + int tflag_slm=TRUE, tflag_2v=FALSE; + int explicit_h=FALSE, explicit_t=FALSE; + ++#ifdef UNIX ++ extern char OEM_CP[MAX_CP_NAME]; ++ extern char ISO_CP[MAX_CP_NAME]; ++#endif + + #ifdef MACOS + uO.lflag = LFLAG; /* reset default on each call */ +@@ -501,6 +505,35 @@ int zi_opts(__G__ pargc, pargv) + uO.lflag = 0; + } + break; ++#ifdef UNIX ++ case ('I'): ++ if (negative) { ++ Info(slide, 0x401, ((char *)slide, ++ "error: encodings can't be negated")); ++ return(PK_PARAM); ++ } else { ++ if(*s) { /* Handle the -Icharset case */ ++ /* Assume that charsets can't start with a dash to spot arguments misuse */ ++ if(*s == '-') { ++ Info(slide, 0x401, ((char *)slide, ++ "error: a valid character encoding should follow the -I argument")); ++ return(PK_PARAM); ++ } ++ strncpy(ISO_CP, s, sizeof(ISO_CP)); ++ } else { /* -I charset */ ++ ++argv; ++ if(!(--argc > 0 && *argv != NULL && **argv != '-')) { ++ Info(slide, 0x401, ((char *)slide, ++ "error: a valid character encoding should follow the -I argument")); ++ return(PK_PARAM); ++ } ++ s = *argv; ++ strncpy(ISO_CP, s, sizeof(ISO_CP)); ++ } ++ while(*(++s)); /* No params straight after charset name */ ++ } ++ break; ++#endif /* ?UNIX */ + case 'l': /* longer form of "ls -l" type listing */ + if (negative) + uO.lflag = -2, negative = 0; +@@ -521,6 +554,35 @@ int zi_opts(__G__ pargc, pargv) + G.M_flag = TRUE; + break; + #endif ++#ifdef UNIX ++ case ('O'): ++ if (negative) { ++ Info(slide, 0x401, ((char *)slide, ++ "error: encodings can't be negated")); ++ return(PK_PARAM); ++ } else { ++ if(*s) { /* Handle the -Ocharset case */ ++ /* Assume that charsets can't start with a dash to spot arguments misuse */ ++ if(*s == '-') { ++ Info(slide, 0x401, ((char *)slide, ++ "error: a valid character encoding should follow the -I argument")); ++ return(PK_PARAM); ++ } ++ strncpy(OEM_CP, s, sizeof(OEM_CP)); ++ } else { /* -O charset */ ++ ++argv; ++ if(!(--argc > 0 && *argv != NULL && **argv != '-')) { ++ Info(slide, 0x401, ((char *)slide, ++ "error: a valid character encoding should follow the -O argument")); ++ return(PK_PARAM); ++ } ++ s = *argv; ++ strncpy(OEM_CP, s, sizeof(OEM_CP)); ++ } ++ while(*(++s)); /* No params straight after charset name */ ++ } ++ break; ++#endif /* ?UNIX */ + case 's': /* default: shorter "ls -l" type listing */ + if (negative) + uO.lflag = -2, negative = 0; +--- unzip60orig/unix/configure 2009-04-16 23:25:12.000000000 +0400 ++++ unzip60/unix/configure 2010-11-26 19:07:43.000000000 +0300 +@@ -17,7 +17,7 @@ CFLAGSR=${CFLAGS} + IZ_BZIP2=${3} + CFLAGS="${CFLAGS} -I. -DUNIX" + LFLAGS1="" +-LFLAGS2="-s" ++LFLAGS2="-l natspec" + LN="ln -s" + + CFLAGS_OPT='' +--- unzip60orig/unix/Makefile 2009-01-19 01:41:18.000000000 +0300 ++++ unzip60/unix/Makefile 2010-11-29 14:25:58.461000001 +0300 +@@ -45,14 +45,14 @@ + CC = cc# try using "gcc" target rather than changing this (CC and LD + LD = $(CC)# must match, else "unresolved symbol: ___main" is possible) + AS = as +-LOC = $(D_USE_BZ2) $(LOCAL_UNZIP) ++LOC = $(D_USE_BZ2) -DNO_SETLOCALE $(LOCAL_UNZIP) + AF = $(LOC) + CFLAGS = -O + CF_NOOPT = -I. -I$(IZ_BZIP2) -DUNIX $(LOC) + CF = $(CFLAGS) $(CF_NOOPT) + LFLAGS1 = + LF = -o unzip$E $(LFLAGS1) +-LF2 = -s ++LF2 = -l natspec + + # UnZipSFX flags + SL = -o unzipsfx$E $(LFLAGS1) +@@ -121,7 +121,7 @@ INSTALL_PROGRAM = $(INSTALL) + INSTALL_D = mkdir -p + # on some systems, manext=l and MANDIR=/usr/man/man$(manext) may be appropriate + manext = 1 +-prefix = /usr/local ++prefix = /usr + BINDIR = $(prefix)/bin# where to install executables + MANDIR = $(prefix)/man/man$(manext)# where to install man pages + INSTALLEDBIN = $(BINDIR)/funzip$E $(BINDIR)/unzip$E $(BINDIR)/unzipsfx$E \ +--- unzip60orig/unix/unix.c 2009-01-24 02:31:26.000000000 +0300 ++++ unzip60/unix/unix.c 2010-11-26 16:58:35.000000000 +0300 +@@ -30,6 +30,9 @@ + #define UNZIP_INTERNAL + #include "unzip.h" + ++#include ++#include ++ + #ifdef SCO_XENIX + # define SYSNDIR + #else /* SCO Unix, AIX, DNIX, TI SysV, Coherent 4.x, ... */ +@@ -1874,3 +1877,44 @@ static void qlfix(__G__ ef_ptr, ef_len) + } + } + #endif /* QLZIP */ ++ ++ ++char OEM_CP[MAX_CP_NAME] = ""; ++char ISO_CP[MAX_CP_NAME] = ""; ++ ++/* Getr the default value of OEM_CP based on the current locale. ++ * ISO_CP is left alone for now. */ ++void init_conversion_charsets() ++{ ++ /* Make a guess only if OEM_CP not already set. */ ++ if(*OEM_CP == '\0') { ++ const char * archive_charset = natspec_get_charset_by_locale(NATSPEC_DOSCS, ""); ++ strncpy(OEM_CP, archive_charset, sizeof(OEM_CP)); ++ } ++ ++ if(*ISO_CP == '\0') { ++ const char * archive_charset = natspec_get_charset_by_locale(NATSPEC_WINCS, ""); ++ strncpy(ISO_CP, archive_charset, sizeof(ISO_CP)); ++ } ++ ++} ++ ++/* Convert a string from OEM_CP to the current locale charset. */ ++inline void oem_intern(char *string) ++{ ++ char *buf = natspec_convert(string, 0, OEM_CP, 0); ++ /* Since Ext_ASCII_TO_Native used only for G.filename[FILNAMESIZE], ++ use FILNAMSIZ as string size */ ++ strncpy(string, buf, FILNAMSIZ); ++ free (buf); ++} ++ ++/* Convert a string from ISO_CP to the current locale charset. */ ++inline void iso_intern(char *string) ++{ ++ char *buf = natspec_convert(string, 0, ISO_CP, 0); ++ /* Since Ext_ASCII_TO_Native used only for G.filename[FILNAMESIZE], ++ use FILNAMSIZ as string size */ ++ strncpy(string, buf, FILNAMSIZ); ++ free (buf); ++} +--- unzip60orig/unix/unxcfg.h 2009-04-16 22:36:12.000000000 +0400 ++++ unzip60/unix/unxcfg.h 2010-11-26 16:58:35.000000000 +0300 +@@ -227,4 +227,30 @@ typedef struct stat z_stat; + /* wild_dir, dirname, wildname, matchname[], dirnamelen, have_dirname, */ + /* and notfirstcall are used by do_wild(). */ + ++ ++#define MAX_CP_NAME 25 ++ ++#ifdef SETLOCALE ++# undef SETLOCALE ++#endif ++#define SETLOCALE(category, locale) setlocale(category, locale) ++#include ++ ++#ifdef _ISO_INTERN ++# undef _ISO_INTERN ++#endif ++#define _ISO_INTERN(str1) iso_intern(str1) ++ ++#ifdef _OEM_INTERN ++# undef _OEM_INTERN ++#endif ++#ifndef IZ_OEM2ISO_ARRAY ++# define IZ_OEM2ISO_ARRAY ++#endif ++#define _OEM_INTERN(str1) oem_intern(str1) ++ ++void iso_intern(char *); ++void oem_intern(char *); ++void init_conversion_charsets(void); ++ + #endif /* !__unxcfg_h */ + diff --git a/app-arch/unzip/files/unzip-6.0-no-exec-stack.patch b/app-arch/unzip/files/unzip-6.0-no-exec-stack.patch new file mode 100644 index 0000000..7973378 --- /dev/null +++ b/app-arch/unzip/files/unzip-6.0-no-exec-stack.patch @@ -0,0 +1,13 @@ +Make sure that the asm files don't incorrectly trigger an executable +stack marking in the final shared library. That's bad, mmmkay. + +--- unzip/crc_i386.S ++++ unzip/crc_i386.S +@@ -302,3 +302,7 @@ + #endif /* i386 || _i386 || _I386 || __i386 */ + + #endif /* !USE_ZLIB && !CRC_TABLE_ONLY */ ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif diff --git a/app-arch/unzip/unzip-6.0-r9999.ebuild b/app-arch/unzip/unzip-6.0-r9999.ebuild new file mode 100644 index 0000000..34da46d --- /dev/null +++ b/app-arch/unzip/unzip-6.0-r9999.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/unzip/unzip-6.0-r1.ebuild,v 1.9 2009/10/18 18:46:18 vapier Exp $ + +EAPI="1" + +inherit eutils toolchain-funcs flag-o-matic + +MY_P="${PN}${PV/.}" + +DESCRIPTION="unzipper for pkzip-compressed files" +HOMEPAGE="http://www.info-zip.org/" +SRC_URI="mirror://sourceforge/infozip/${MY_P}.tar.gz" + +LICENSE="Info-ZIP" +SLOT="0" +KEYWORDS="~alpha amd64 arm ~hppa ~ia64 m68k ~ppc ppc64 s390 sh ~sparc x86" +IUSE="bzip2 +libnatspec unicode" + +DEPEND="bzip2? ( app-arch/bzip2 ) + libnatspec? ( dev-libs/libnatspec )" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${MY_P}" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${P}-no-exec-stack.patch + use libnatspec && epatch "${FILESDIR}"/${P}-alt-natspec.patch + sed -i \ + -e '/^CFLAGS/d' \ + -e '/CFLAGS/s:-O[0-9]\?:$(CFLAGS) $(CPPFLAGS):' \ + -e '/^STRIP/s:=.*:=true:' \ + -e "s:CC=gcc :CC=$(tc-getCC) :" \ + -e "s:LD=gcc :LD=$(tc-getCC) :" \ + -e "s:AS=gcc :AS=$(tc-getCC) :" \ + -e 's:LF2 = -s:LF2 = :' \ + -e 's:LF = :LF = $(LDFLAGS) :' \ + -e 's:SL = :SL = $(LDFLAGS) :' \ + -e 's:FL = :FL = $(LDFLAGS) :' \ + -e "/^#L_BZ2/s:^$(use bzip2 && echo .)::" \ + unix/Makefile \ + || die "sed unix/Makefile failed" +} + +src_compile() { + local TARGET + case ${CHOST} in + i?86*-*linux*) TARGET=linux_asm ;; + *linux*) TARGET=linux_noasm ;; + i?86*-*bsd* | \ + i?86*-dragonfly*) TARGET=freebsd ;; # mislabelled bsd with x86 asm + *bsd* | *dragonfly*) TARGET=bsd ;; + *-darwin*) TARGET=macosx ;; + *) die "Unknown target, you suck" ;; + esac + + [[ ${CHOST} == *linux* ]] && append-cppflags -DNO_LCHMOD + use bzip2 && append-cppflags -DUSE_BZIP2 + use unicode && append-cppflags -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE + append-cppflags -DLARGE_FILE_SUPPORT #281473 + + emake \ + -f unix/Makefile \ + ${TARGET} || die "emake failed" +} + +src_install() { + dobin unzip funzip unzipsfx unix/zipgrep || die "dobin failed" + dosym unzip /usr/bin/zipinfo || die + doman man/*.1 + dodoc BUGS History* README ToDo WHERE +} + From 90a22a14fd131121b8a5e3ae963d06cb3278ab78 Mon Sep 17 00:00:00 2001 From: Georgy Kovtunov Date: Sat, 4 Feb 2012 12:08:49 +0400 Subject: [PATCH 2/4] Arpwatch patch that replaces mail notification by log files --- net-analyzer/arpwatch/Manifest | 6 + .../arpwatch/arpwatch-2.1.15-r9999.ebuild | 72 +++++++ net-analyzer/arpwatch/files/arpwatch.confd | 11 ++ net-analyzer/arpwatch/files/arpwatch.initd | 37 ++++ .../files/arpwatch_nomail-2.1.15.patch | 181 ++++++++++++++++++ 5 files changed, 307 insertions(+) create mode 100644 net-analyzer/arpwatch/Manifest create mode 100644 net-analyzer/arpwatch/arpwatch-2.1.15-r9999.ebuild create mode 100644 net-analyzer/arpwatch/files/arpwatch.confd create mode 100644 net-analyzer/arpwatch/files/arpwatch.initd create mode 100644 net-analyzer/arpwatch/files/arpwatch_nomail-2.1.15.patch diff --git a/net-analyzer/arpwatch/Manifest b/net-analyzer/arpwatch/Manifest new file mode 100644 index 0000000..e7c7575 --- /dev/null +++ b/net-analyzer/arpwatch/Manifest @@ -0,0 +1,6 @@ +AUX arpwatch.confd 270 RMD160 040c4ade1f157b38fdb66d8e8cc08e3b6484ef18 SHA1 3b590f1851cbd5d684b6e836757367446fddfaf4 SHA256 bf36f7b717291733787bd00ac22d49dafc251cd50fcc27266d56d51364fd62fa +AUX arpwatch.initd 1106 RMD160 a9db01d5b2157742d6f9d48c157718e158017cb4 SHA1 8cafd84754f8e32a7fcec4180e79e3b62d4964ec SHA256 c336b18759d188ef6c77e2177fdfbf4ed5c488f04fc2357c556ff406d2eeea1d +AUX arpwatch_nomail-2.1.15.patch 4407 RMD160 d3e79782edaad49f498c45a2c1f669676bd37706 SHA1 a52d47b3dd31d9754d263dc1ae73e31bc2725ee5 SHA256 1627202cb73c07f724825f9878779e4b367ece1ec56cc7d454bbc6cc0735b54d +DIST arpwatch-2.1a15.tar.gz 202729 RMD160 a27ee53275dcec3cafb85eb3df2451d42ec32b0c SHA1 9dffaec0f132e5bb7aedfc840c5c67068bfbce69 SHA256 c1df9737e208a96a61fa92ddad83f4b4d9be66f8992f3c917e9edf4b05ff5898 +DIST arpwatch-patchset-0.4.tbz2 16350 RMD160 9e9ae77ef38591af72687fa7014b4c56fc4c4d2c SHA1 009eaa110fc93b40aa91c838b57b71a071210692 SHA256 f49deed64301078a00881fa9c27bb3a4116b9096cfe880f5a0bcc9913b439a18 +EBUILD arpwatch-2.1.15-r9999.ebuild 2126 RMD160 30b7be9bf3dddffb319b6d10931d1d51b7979cd4 SHA1 6e8100e3662aaab9a53e38f99c8154544ec63137 SHA256 2b278a8332de4246b48207092c955e343184e262777a002ac1e4002c792f5bbd diff --git a/net-analyzer/arpwatch/arpwatch-2.1.15-r9999.ebuild b/net-analyzer/arpwatch/arpwatch-2.1.15-r9999.ebuild new file mode 100644 index 0000000..d8ac1a1 --- /dev/null +++ b/net-analyzer/arpwatch/arpwatch-2.1.15-r9999.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/arpwatch/arpwatch-2.1.15-r5.ebuild,v 1.7 2010/04/12 12:53:41 aballier Exp $ + +inherit eutils versionator + +PATCH_VER="0.4" + +MY_P="${PN}-$(replace_version_separator 2 'a')" +DESCRIPTION="An ethernet monitor program that keeps track of ethernet/ip address pairings" +HOMEPAGE="http://www-nrg.ee.lbl.gov/" +SRC_URI="ftp://ftp.ee.lbl.gov/${MY_P}.tar.gz + mirror://gentoo/arpwatch-patchset-${PATCH_VER}.tbz2" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ppc ~sparc ~x86 ~x86-fbsd" +IUSE="selinux" + +DEPEND="virtual/libpcap + sys-libs/ncurses" + +RDEPEND="${DEPEND} + selinux? ( sec-policy/selinux-arpwatch )" + +S=${WORKDIR}/${MY_P} + +pkg_preinst() { + enewuser arpwatch +} + +src_unpack() { + unpack ${A} + cd "${S}" + + EPATCH_SOURCE="${WORKDIR}"/arpwatch-patchset/ + EPATCH_SUFFIX="patch" + epatch + cp "${WORKDIR}"/arpwatch-patchset/*.8 . || die "Failed to get man-pages from arpwatch-patchset." +# Pinkbyte & Rainer: adapt nomail patch to current version and all previous patches (puts log files into /var/log/arpwatch folder) + epatch "${FILESDIR}/arpwatch_nomail-${PV}.patch" +# +} + +src_install () { + dosbin arpwatch arpsnmp arp2ethers massagevendor arpfetch bihourly.sh + doman arpwatch.8 arpsnmp.8 arp2ethers.8 massagevendor.8 arpfetch.8 bihourly.8 + + insinto /usr/share/arpwatch + doins ethercodes.dat + + insinto /usr/share/arpwatch/awk + doins duplicates.awk euppertolower.awk p.awk e.awk d.awk + + keepdir /var/lib/arpwatch + dodoc README CHANGES + + newinitd "${FILESDIR}"/arpwatch.initd arpwatch + newconfd "${FILESDIR}"/arpwatch.confd arpwatch +# Pinkbyte: create directory /var/log/arpwatch and set it's owner to arpwatch user + keepdir /var/log/arpwatch + chown arpwatch:0 "${ROOT}var/log/arpwatch" +# +} + +pkg_postinst() { + # Workaround bug #141619 put this in src_install when bug'll be fixed. + chown arpwatch:0 "${ROOT}var/lib/arpwatch" + + elog "For security reasons arpwatch by default runs as an unprivileged user." + ewarn "Note: some scripts require snmpwalk utility from net-analyzer/net-snmp" +} diff --git a/net-analyzer/arpwatch/files/arpwatch.confd b/net-analyzer/arpwatch/files/arpwatch.confd new file mode 100644 index 0000000..98abe04 --- /dev/null +++ b/net-analyzer/arpwatch/files/arpwatch.confd @@ -0,0 +1,11 @@ +# Config file for /etc/init.d/arpwatch +# see arpwatch.8 for more information + +#IFACES="eth0 eth1" +IFACES="eth0" + +# Additional options to pass to arpwatch. +OPTIONS="-N -p" + +# Comment this line if you wish arpwatch to run as root user (not recommended) +ARPUSER="arpwatch" diff --git a/net-analyzer/arpwatch/files/arpwatch.initd b/net-analyzer/arpwatch/files/arpwatch.initd new file mode 100644 index 0000000..23e8525 --- /dev/null +++ b/net-analyzer/arpwatch/files/arpwatch.initd @@ -0,0 +1,37 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/arpwatch/files/arpwatch.initd,v 1.1 2007/06/02 22:37:16 jokey Exp $ + +depend() { + need net +} + +start() { + for IFACE in ${IFACES} + do + ebegin "Starting arpwatch on ${IFACE}" + DATAFILE=/var/lib/arpwatch/${IFACE}.dat + [ ! -f ${DATAFILE} ] && touch ${DATAFILE} + + if [ -z ${ARPUSER} ]; then + start-stop-daemon --start --quiet --pidfile=/var/run/arpwatch.${IFACE}.pid --exec \ + /usr/sbin/arpwatch -- -i ${IFACE} -f ${DATAFILE} -P /var/run/arpwatch.${IFACE}.pid ${OPTIONS} + else + chown ${ARPUSER} ${DATAFILE} + start-stop-daemon --start --quiet --pidfile=/var/run/arpwatch.${IFACE}.pid --exec \ + /usr/sbin/arpwatch -- -i $IFACE -u ${ARPUSER} -f ${DATAFILE} -P /var/run/arpwatch.${IFACE}.pid ${OPTIONS} + fi + eend $? + done +} + +stop() { + for IFACE in ${IFACES} + do + ebegin "Stopping arpwatch on ${IFACE}" + start-stop-daemon --stop --quiet --pidfile=/var/run/arpwatch.${IFACE}.pid --exec \ + /usr/sbin/arpwatch + eend $? + done +} diff --git a/net-analyzer/arpwatch/files/arpwatch_nomail-2.1.15.patch b/net-analyzer/arpwatch/files/arpwatch_nomail-2.1.15.patch new file mode 100644 index 0000000..26f9082 --- /dev/null +++ b/net-analyzer/arpwatch/files/arpwatch_nomail-2.1.15.patch @@ -0,0 +1,181 @@ +--- report.c.orig 2010-08-11 21:27:04.936004908 +0400 ++++ report.c 2010-08-11 21:36:40.581758034 +0400 +@@ -50,9 +50,7 @@ + #include + #include + #include +-#ifdef TIME_WITH_SYS_TIME + #include +-#endif + #include + + #include "gnuc.h" +@@ -70,11 +68,15 @@ + + #define PLURAL(n) ((n) == 1 || (n) == -1 ? "" : "s") + +-static int cdepth; /* number of outstanding children */ ++#if !defined(REPORT_DIR) ++#define REPORT_DIR "/var/log/arpwatch" ++#endif ++#if !defined(REPORT_FMODE) ++#define REPORT_FMODE 644 ++#endif + + static char *fmtdate(time_t); + static char *fmtdelta(time_t); +-RETSIGTYPE reaper(int); + static int32_t gmt2local(void); + + static char * +@@ -203,44 +205,6 @@ + return (dt); + } + +-RETSIGTYPE +-reaper(int signo) +-{ +- register pid_t pid; +- DECLWAITSTATUS status; +- +- for (;;) { +- pid = waitpid((pid_t)0, &status, WNOHANG); +- if ((int)pid < 0) { +- /* ptrace foo */ +- if (errno == EINTR) +- continue; +- /* ECHILD means no one left */ +- if (errno != ECHILD) +- /* It is dangerous to call non reentrant */ +- /* functions from callback (POSIX) */ +- /* Next line effectively disables this as */ +- /* we never get here in debug */ +- if (debug) +- syslog(LOG_ERR, "reaper: %m"); +- break; +- } +- /* Already got everyone who was done */ +- if (pid == 0) +- break; +- --cdepth; +- if (WEXITSTATUS(status)) +- /* It is dangerous to call non-reentrant */ +- /* functions from callback (POSIX) */ +- /* Next line effectively disables this as */ +- /* we never get here in debug */ +- if (debug) +- syslog(LOG_DEBUG, "reaper: pid %d, exit status %d", +- pid, WEXITSTATUS(status)); +- } +- return RETSIGVAL; +-} +- + void + report(register char *title, register u_int32_t a, register u_char *e1, + register u_char *e2, register time_t *t1p, register time_t *t2p, +@@ -248,16 +212,12 @@ + { + extern char *path_sendmail; + register char *cp, *hn; +- register int fd, pid; ++ register int fd; + register FILE *f; +- char tempfile[64], cpu[64], os[64]; ++ char tempfile[512], cpu[64], os[64]; + char *fmt = "%20s: %s\n"; +- char *watcher = mailaddress; +- char *watchee = WATCHEE; +- char *sendmail = path_sendmail; + char *unknown = ""; + char buf[132]; +- static int init = 0; + + /* No report until we're initialized */ + if (initializing) +@@ -271,53 +271,34 @@ + f = stdout; + (void)putc('\n', f); + } else { +- /* Setup child reaper if we haven't already */ +- if (!init) { +- (void)setsignal(SIGCHLD, reaper); +- ++init; +- } +- while (cdepth >= 3) { +- syslog(LOG_ERR, "report: pausing (cdepth %d)", cdepth); +- pause(); +- } +- +- /* Syslog this event too */ +- dosyslog(LOG_NOTICE, title, a, e1, e2, interface); +- + /* return if watcher is an empty string */ + if ( quiet ) + return; + +- /* Update child depth */ +- ++cdepth; +- +- /* Fork off child to send mail */ +- pid = fork(); +- if (pid) { +- /* Parent */ +- if (pid < 0) +- syslog(LOG_ERR, "report: fork() 1: %m"); +- return; +- } ++ time_t tt = time(NULL); ++ struct tm *t = localtime(&tt); + + /* Child */ + closelog(); + (void)strcpy(tempfile, "/tmp/arpwatch.XXXXXX"); ++ (void)snprintf(tempfile, sizeof(tempfile), ++ "%s/arpwatch-%04d%02d%02d_%02d%02d%02d.msgXXXXXX", ++ REPORT_DIR, ++ t->tm_year, t->tm_mon, t->tm_mday, ++ t->tm_hour, t->tm_min, t->tm_sec); + if ((fd = mkstemp(tempfile)) < 0) { + syslog(LOG_ERR, "mkstemp(%s) %m", tempfile); ++ return; +- exit(1); + } ++#if defined(REPORT_FMODE) ++ fchmod(fd, REPORT_FMODE); ++#endif + if ((f = fdopen(fd, "w+")) == NULL) { +- syslog(LOG_ERR, "child fdopen(%s): %m", tempfile); +- exit(1); ++ syslog(LOG_ERR, "fdopen(%s): %m", tempfile); ++ return; + } +- /* Cheap delete-on-close */ +- if (unlink(tempfile) < 0) +- syslog(LOG_ERR, "unlink(%s): %m", tempfile); + } + +- (void)fprintf(f, "From: %s\n", watchee); +- (void)fprintf(f, "To: %s\n", watcher); + if (interface == NULL) interface = ""; /* shouldn't happen */ + hn = gethname(a); + if (!isdigit(*hn)) +@@ -354,17 +354,7 @@ + + if (debug) { + fflush(f); +- return; ++ } else { ++ fclose(f); + } +- +- (void)rewind(f); +- if (dup2(fileno(f), fileno(stdin)) < 0) { +- syslog(LOG_ERR, "dup2: %m"); +- exit(1); +- } +- /* XXX Need to freopen()? */ +- /* Always Deliver interactively (pause when child depth gets large) */ +- execl(sendmail, "sendmail", "-odi", watcher, NULL); +- syslog(LOG_ERR, "execl: %s: %m", sendmail); +- exit(1); + } From ce1bca1b79486534122583c4ecf16e81051e82bc Mon Sep 17 00:00:00 2001 From: Georgy Kovtunov Date: Sat, 4 Feb 2012 12:12:03 +0400 Subject: [PATCH 3/4] vuurmuur and appropriate library --- net-firewall/vuurmuur/Manifest | 4 + net-firewall/vuurmuur/files/vuurmuur.conf | 11 ++ net-firewall/vuurmuur/files/vuurmuur.init | 57 ++++++++++ .../vuurmuur/vuurmuur-0.8_beta2.ebuild | 101 ++++++++++++++++++ net-libs/libvuurmuur/Manifest | 3 + .../files/libvuurmuur-plugin-0.7.patch | 50 +++++++++ .../libvuurmuur/libvuurmuur-0.8_beta2.ebuild | 48 +++++++++ 7 files changed, 274 insertions(+) create mode 100644 net-firewall/vuurmuur/Manifest create mode 100644 net-firewall/vuurmuur/files/vuurmuur.conf create mode 100644 net-firewall/vuurmuur/files/vuurmuur.init create mode 100644 net-firewall/vuurmuur/vuurmuur-0.8_beta2.ebuild create mode 100644 net-libs/libvuurmuur/Manifest create mode 100644 net-libs/libvuurmuur/files/libvuurmuur-plugin-0.7.patch create mode 100644 net-libs/libvuurmuur/libvuurmuur-0.8_beta2.ebuild diff --git a/net-firewall/vuurmuur/Manifest b/net-firewall/vuurmuur/Manifest new file mode 100644 index 0000000..80b4d81 --- /dev/null +++ b/net-firewall/vuurmuur/Manifest @@ -0,0 +1,4 @@ +AUX vuurmuur.conf 312 RMD160 d28da3c2abe1c6ec3fc5060576670e871965899c SHA1 b2e66191901fbae74dade2842a01cb6765fd5732 SHA256 9aeb5a2e3a7ebce5d240a2c1986cc700ce4a21d4cb50fac7f3851e965ab7862d +AUX vuurmuur.init 1257 RMD160 66087fa191a5a344d6671ff4aec2fb2f0315fc2d SHA1 7883be040d44ab925425c5eb2994dc85dbf5c7d4 SHA256 3179f7092f180a5287a6d0ed4519313df762f25a4de50acc376c5905729e0cae +DIST Vuurmuur-0.8beta2.tar.gz 1877270 RMD160 d1f202adb5ab076ea7763c215faec2558100d5b6 SHA1 549cc3b7d8c86cac0cbccbb963a3b3d041e8ea70 SHA256 4c74de94698a0a4bca758322b5e4198afc27fb25401309a7ecff445742f28d0e +EBUILD vuurmuur-0.8_beta2.ebuild 2657 RMD160 80b00fef3e213eafe0a608b4ec98f15eef2c7b53 SHA1 6c49cf1bac909d40e7cc9e2414bcde48d617ce27 SHA256 300afcc8db1c1e12ea9fa9e8ea408e52388636b94b19a6fe5e86e6e9c90a1298 diff --git a/net-firewall/vuurmuur/files/vuurmuur.conf b/net-firewall/vuurmuur/files/vuurmuur.conf new file mode 100644 index 0000000..924f3de --- /dev/null +++ b/net-firewall/vuurmuur/files/vuurmuur.conf @@ -0,0 +1,11 @@ +# Space separated list of kernel modules to load on start or 'none'. +MODULES="none" + +# Configuration file to read. +CONFIG=/etc/vuurmuur/config.conf + +# Options to be passed to the Vuurmuur daemon. +OPTIONS="-l" + +# Comment the following line if you want more output when starting/stopping the daemons. +QUIET="true" diff --git a/net-firewall/vuurmuur/files/vuurmuur.init b/net-firewall/vuurmuur/files/vuurmuur.init new file mode 100644 index 0000000..a2e30a9 --- /dev/null +++ b/net-firewall/vuurmuur/files/vuurmuur.init @@ -0,0 +1,57 @@ +#!/sbin/runscript +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +opts="${opts}" + +# this next comment is important, don't remove it - it has to be somewhere in +# the init script to kill off a warning that doesn't apply to us +# svc_start svc_stop + +depend() { + need net iptables + use modules +} + +load_modules() { + if [ "${MODULES}" != "none" ]; then + ebegin "Loading modules for Vuurmuur" + local module + echo -n " " + for module in `echo ${MODULES}`; do + modprobe ${module} + echo -n "${module} " + done + echo + eend $? + fi +} + +start() { + if load_modules ; then + ebegin "Starting Vuurmuur" + if test ! -f ${CONFIG}; then + eerror "Configuration file, ${CONFIG} does not exist." + eend 2 + return 2 + fi + start-stop-daemon --start ${QUIET+--quiet} --exec /usr/bin/vuurmuur -- ${OPTIONS} + eend $? + ebegin "Starting Vuurmuur Log" + start-stop-daemon --start ${QUIET+--quiet} --exec /usr/bin/vuurmuur_log + eend $? + else + eend 1 + return 1 + fi +} + +stop() { + ebegin "Stopping Vuurmuur" + start-stop-daemon --stop ${QUIET+--quiet} --pidfile /var/run/vuurmuur.pid + eend $? + ebegin "Stopping Vuurmuur Log" + start-stop-daemon --stop ${QUIET+--quiet} --exec /usr/bin/vuurmuur_log + eend $? +} + diff --git a/net-firewall/vuurmuur/vuurmuur-0.8_beta2.ebuild b/net-firewall/vuurmuur/vuurmuur-0.8_beta2.ebuild new file mode 100644 index 0000000..1fb08c6 --- /dev/null +++ b/net-firewall/vuurmuur/vuurmuur-0.8_beta2.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" + +inherit multilib + +MY_PV=${PV/_beta/beta} +MY_P="Vuurmuur-${MY_PV}" + +DESCRIPTION="Frontend for iptables featuring easy to use command line utils, rule- and logdaemons" +HOMEPAGE="http://www.vuurmuur.org" +SRC_URI="ftp://ftp.vuurmuur.org/releases/${MY_PV}/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="logrotate" + +DEPEND="=net-libs/libvuurmuur-${PV} + >=sys-libs/ncurses-5" +RDEPEND="${DEPEND} + logrotate? ( app-admin/logrotate )" + +S="${WORKDIR}/${MY_P}/${PN}-${MY_PV}" + +src_unpack() { + default + cd ${MY_P} + for component in vuurmuur vuurmuur_conf; do + unpack "./${component}-${MY_PV}.tar.gz" # upstream supplies tarball inside tarball + done +} + +src_configure() { + econf \ + --with-libvuurmuur-includes=/usr/include \ + --with-libvuurmuur-libraries=/usr/$(get_libdir) + cd "../vuurmuur_conf-${MY_PV}" + econf \ + --with-libvuurmuur-includes=/usr/include \ + --with-libvuurmuur-libraries=/usr/$(get_libdir) \ + --with-localedir=/usr/share/locale \ + --with-widec=yes +} + +src_compile() { + +# einfo "Running autoreconf" +# autoreconf -f -i || die "autoreconf failed" +##from old ebuild + + #einfo "pwd: ${PWD}" +## cd ${WORKDIR}/${MY_PKG_NAME}-${PV/_/}/${PN/-/_}-${PV/_/} || die + libtoolize -f + aclocal + autoheader + automake + autoconf + econf --with-libvuurmuur-includes=/usr/include \ + --with-libvuurmuur-libraries=/usr/lib --with-localedir=/usr/share/locale \ + --with-widec=yes \ + || die "The configure script failed" + + +# default + emake -C "../vuurmuur_conf-${MY_PV}" || die "compiling vuurmuur_conf failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "installing vuurmuur failed" + + newinitd "${FILESDIR}"/vuurmuur.init vuurmuur || die "installing init failed" + newconfd "${FILESDIR}"/vuurmuur.conf vuurmuur || die "installing conf failed" + + if use logrotate; then + insinto /etc/logrotate.d + newins scripts/vuurmuur-logrotate vuurmuur || die "installing logrotate config failed" + fi + + insopts -m0600 + insinto /etc/vuurmuur + newins config/config.conf.sample config.conf || die "installing config.conf failed" + + cd "../vuurmuur_conf-${MY_PV}" + + emake DESTDIR="${D}" install || die "installing vuurmuur_conf failed" +} + +pkg_postinst() { + elog "Please read the manual on www.vuurmuur.org now - you have" + elog "been warned!" + elog + elog "If this is a new install, make sure you define some rules" + elog "BEFORE you start the daemon in order not to lock yourself" + elog "out. The necessary steps are:" + elog "1) vuurmuur_conf" + elog "2) /etc/init.d/vuurmuur start" + elog "3) rc-update add vuurmuur default" +} diff --git a/net-libs/libvuurmuur/Manifest b/net-libs/libvuurmuur/Manifest new file mode 100644 index 0000000..d9b28e5 --- /dev/null +++ b/net-libs/libvuurmuur/Manifest @@ -0,0 +1,3 @@ +AUX libvuurmuur-plugin-0.7.patch 2157 RMD160 cfd57c5ba0585cb8b4b4400df50766cbf5cdb697 SHA1 4121b1dd535c354f6b9844460d22fdcf0c5c9b11 SHA256 648e9ad862cb4751e05a9311f3f19033d549f72ad7287b39cbc5a514b4f6dde0 +DIST Vuurmuur-0.8beta2.tar.gz 1877270 RMD160 d1f202adb5ab076ea7763c215faec2558100d5b6 SHA1 549cc3b7d8c86cac0cbccbb963a3b3d041e8ea70 SHA256 4c74de94698a0a4bca758322b5e4198afc27fb25401309a7ecff445742f28d0e +EBUILD libvuurmuur-0.8_beta2.ebuild 1084 RMD160 c69f121bfcd7dd8ee2cb8453847e6db7fb87b0df SHA1 6bb88fd65d373add42f0b8cc54f7170c8a7dba7a SHA256 61ff6818cf4d370d8a05d5d4bdc5c7c5e8dc0a9862a28ada08dc9bb7980ee715 diff --git a/net-libs/libvuurmuur/files/libvuurmuur-plugin-0.7.patch b/net-libs/libvuurmuur/files/libvuurmuur-plugin-0.7.patch new file mode 100644 index 0000000..837b1ec --- /dev/null +++ b/net-libs/libvuurmuur/files/libvuurmuur-plugin-0.7.patch @@ -0,0 +1,50 @@ +--- libvuurmuur-0.7/src/backendapi.c 2009-03-22 14:22:18.000000000 +0100 ++++ libvuurmuur-0.7/src/backendapi.c.modified 2009-11-02 17:07:15.000000000 +0100 +@@ -134,7 +134,7 @@ + return(-1); + } + +- if(snprintf(plugin_location, sizeof(plugin_location), "%s/plugins/lib%s.so", conf.plugdir, plugin_name) >= (int)sizeof(plugin_location)) ++ if(snprintf(plugin_location, sizeof(plugin_location), "%s/lib%s.so", conf.plugdir, plugin_name) >= (int)sizeof(plugin_location)) + { + (void)vrprint.error(-1, "Internal Error", "pluginpath " + "overflow (in: %s:%d).", __FUNC__, __LINE__); +diff -urN libvuurmuur-0.7/configure.in libvuurmuur-0.7.modified/configure.in +--- libvuurmuur-0.7/configure.in 2007-05-08 19:48:12.000000000 +0200 ++++ libvuurmuur-0.7.modified/configure.in 2009-09-04 08:37:41.000000000 +0200 +@@ -17,10 +19,12 @@ + [plugindir="$withval"],[plugindir=no]) + + if test "$plugindir" != "no"; then +- CPPFLAGS="${CPPFLAGS} -DPLUGINDIR=\"${plugindir}\"" ++ VUURMUUR_PLUGIN_DIR="${plugindir}" + else +- CPPFLAGS="${CPPFLAGS} -DPLUGINDIR=\"${libdir}/vuurmuur\"" ++ VUURMUUR_PLUGIN_DIR="${libdir}/vuurmuur" + fi ++CPPFLAGS="${CPPFLAGS} -DPLUGINDIR=\"$VUURMUUR_PLUGIN_DIR\"" ++AC_SUBST(VUURMUUR_PLUGIN_DIR) + + # shared dir option for rpm building + AC_ARG_WITH(shareddir, +diff -urN libvuurmuur-0.7/Makefile.am libvuurmuur-0.7.modified/Makefile.am +--- libvuurmuur-0.7/Makefile.am 2007-05-08 19:48:12.000000000 +0200 ++++ libvuurmuur-0.7.modified/Makefile.am 2009-09-03 13:04:03.000000000 +0200 +@@ -2,4 +2,6 @@ + # have all needed files, that a GNU package needs + AUTOMAKE_OPTIONS = foreign 1.4 + ++ACLOCAL_AMFLAGS = -I m4 ++ + SUBDIRS = src plugins doc +diff -urN libvuurmuur-0.7/plugins/textdir/Makefile.am libvuurmuur-0.7.modified/plugins/textdir/Makefile.am +--- libvuurmuur-0.7/plugins/textdir/Makefile.am 2009-03-22 14:53:21.000000000 +0100 ++++ libvuurmuur-0.7.modified/plugins/textdir/Makefile.am 2009-09-04 08:38:05.000000000 +0200 +@@ -1,6 +1,6 @@ + # textdir plugin + +-libdir = "${exec_prefix}/lib/vuurmuur/plugins" ++libdir = @VUURMUUR_PLUGIN_DIR@ + + lib_LTLIBRARIES = libtextdir.la + diff --git a/net-libs/libvuurmuur/libvuurmuur-0.8_beta2.ebuild b/net-libs/libvuurmuur/libvuurmuur-0.8_beta2.ebuild new file mode 100644 index 0000000..f1f3617 --- /dev/null +++ b/net-libs/libvuurmuur/libvuurmuur-0.8_beta2.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" + +inherit autotools multilib + +MY_PV=${PV/_beta/beta} +MY_P="Vuurmuur-${MY_PV}" + +DESCRIPTION="Libraries and plugins required by Vuurmuur" +HOMEPAGE="http://www.vuurmuur.org" +SRC_URI="ftp://ftp.vuurmuur.org/releases/${MY_PV}/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND="net-firewall/iptables" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${MY_P}/${PN}-${MY_PV}" + +src_unpack() { + default + cd "${MY_P}" + unpack "./libvuurmuur-${MY_PV}.tar.gz" +} + +src_prepare() { + epatch "${FILESDIR}"/libvuurmuur-plugin-0.7.patch # no longer needed for >0.8_beta2 + eautoreconf +} + +src_configure() { + econf --with-plugindir=/usr/$(get_libdir) +} + +src_install() { + emake DESTDIR="${D}" install || die "installing libvuurmuur failed" + + # files needed but not yet installed by make + dodir /etc/vuurmuur/textdir || die "installing textdir failed" + insinto /etc/vuurmuur/plugins + doins plugins/textdir/textdir.conf || die "installing textdir.conf failed" +} From 8ae88a4ba94b28a6c2a4474bc232480e893d757e Mon Sep 17 00:00:00 2001 From: Georgy Kovtunov Date: Sat, 4 Feb 2012 12:15:08 +0400 Subject: [PATCH 4/4] xrdp server --- net-misc/xrdp/Manifest | 17 ++++ net-misc/xrdp/files/startwm.sh | 8 ++ net-misc/xrdp/files/xrdp-0.3.1-curdir.patch | 50 ++++++++++ .../files/xrdp-0.3.1-respect-cflags.patch | 72 ++++++++++++++ net-misc/xrdp/files/xrdp-0.4.1-curdir.patch | 50 ++++++++++ .../xrdp-9999-001-sandbox-violation.patch | 8 ++ .../xrdp-9999-001-sandbox-violation.patch.old | 11 +++ .../files/xrdp-9999-002-sesrun-config.patch | 12 +++ ...le-name-noauto-fix-and-hidden-option.patch | 85 +++++++++++++++++ ...999-004-ignore-client-auth-on-preset.patch | 35 +++++++ net-misc/xrdp/files/xrdp-confd | 5 + net-misc/xrdp/files/xrdp-confd-cvs | 5 + net-misc/xrdp/files/xrdp-initd | 36 +++++++ net-misc/xrdp/files/xrdp-initd-cvs | 36 +++++++ net-misc/xrdp/files/xrdp.ini | 53 +++++++++++ net-misc/xrdp/xrdp-0.4.1.ebuild | 59 ++++++++++++ net-misc/xrdp/xrdp-9999.ebuild | 94 +++++++++++++++++++ 17 files changed, 636 insertions(+) create mode 100644 net-misc/xrdp/Manifest create mode 100644 net-misc/xrdp/files/startwm.sh create mode 100644 net-misc/xrdp/files/xrdp-0.3.1-curdir.patch create mode 100644 net-misc/xrdp/files/xrdp-0.3.1-respect-cflags.patch create mode 100644 net-misc/xrdp/files/xrdp-0.4.1-curdir.patch create mode 100644 net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch create mode 100644 net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch.old create mode 100644 net-misc/xrdp/files/xrdp-9999-002-sesrun-config.patch create mode 100644 net-misc/xrdp/files/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch create mode 100644 net-misc/xrdp/files/xrdp-9999-004-ignore-client-auth-on-preset.patch create mode 100644 net-misc/xrdp/files/xrdp-confd create mode 100644 net-misc/xrdp/files/xrdp-confd-cvs create mode 100644 net-misc/xrdp/files/xrdp-initd create mode 100644 net-misc/xrdp/files/xrdp-initd-cvs create mode 100644 net-misc/xrdp/files/xrdp.ini create mode 100644 net-misc/xrdp/xrdp-0.4.1.ebuild create mode 100644 net-misc/xrdp/xrdp-9999.ebuild diff --git a/net-misc/xrdp/Manifest b/net-misc/xrdp/Manifest new file mode 100644 index 0000000..2b77ceb --- /dev/null +++ b/net-misc/xrdp/Manifest @@ -0,0 +1,17 @@ +AUX startwm.sh 203 RMD160 6258cb60cb90913a77268657e8427348034b885b SHA1 4bdd9f00fc3c3fb32068b4b50e3e372366801285 SHA256 436cef06a851176e18011dc67549c232d1edf865e1380e31f65ad62f2ae95b5d +AUX xrdp-0.3.1-curdir.patch 1802 RMD160 b1726e31b289897635d6272c03f67ca66ef7d686 SHA1 5ea79e39c55228f3375952e1c1af3da28f61adf2 SHA256 01daf21be042c10a1df9ba88d6b54c5b9de4755f0cb876be887c0a804e70edfa +AUX xrdp-0.3.1-respect-cflags.patch 2727 RMD160 fd9ac0b99d619c01eb3f311dd5e3dcd2f9b7c350 SHA1 c314dadbe7e92ba13e4c770bab83d40732400e8b SHA256 205f491018875666f7b44bce241d9a37308a947c2336bb73102a50fb4c44f2f7 +AUX xrdp-0.4.1-curdir.patch 1871 RMD160 5621d4a59d0956e1435ae0ad9037a5d6f2885ff9 SHA1 0bc5273020d8d44e2dd962d0045790ad61d1c72a SHA256 1f8c2b573969493137649c8f40a0777f7af3017ddeeca93c1290a16cd5e72c48 +AUX xrdp-9999-001-sandbox-violation.patch 527 RMD160 578e53d53b7bebdbaa1771a049acb93155e8c98c SHA1 77e4a32ba69b96a5d440aaa36dd160b34c74d6b2 SHA256 fb9a6c3b86d4cc4d4953fe1f553a6cd4c040aae4b9676916dd4207804de07a32 +AUX xrdp-9999-001-sandbox-violation.patch.old 610 RMD160 b52a294eb6c081bde0a55fcd40e1642600fd4f01 SHA1 1b8b1c90b09e17d81f91b000a892a37afcbc978b SHA256 562c10213d5907cdb9060b0a38b1b9d17e05e1bdc59d195189bff212e1da5c24 +AUX xrdp-9999-002-sesrun-config.patch 283 RMD160 c9255630d9e406932fc806f57de4ebeacdb8d4cb SHA1 50f9c783507e230954c148db9521f1b0f64f093e SHA256 c8f47f3c1bc542a240663f9966876240c029a7ef54f017ea60a2cb7e53f4dd48 +AUX xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch 2994 RMD160 0d3c80421df5c48eda6e30259ea720a4d311f0ef SHA1 5e3247c7ab8c7bc60acc4b87b8d9b57bf8d3fe2a SHA256 e6c45d5c23ea56023c2a994d3d8559ca81db3df60b519e2e7d071a8221af0c7c +AUX xrdp-9999-004-ignore-client-auth-on-preset.patch 1638 RMD160 2bd74ce780102f40b9b04245dd6ab9bee644aaca SHA1 d7ee4f195d015a6f41c93e70b4783df9081ffacf SHA256 e7f59b3f0ad1b4cdac588adbe856a7a120d9654db595297998b6efeb8b17edbb +AUX xrdp-confd 140 RMD160 c04cd60eff7d3f5de1427ce87bc1f34b4befefe3 SHA1 e0c4a8b089f1e556c3fcd42c5c42327c24bc3634 SHA256 f25c9c409096f71ab2d66d8ee2de47702456367d7a25efeb8ec3b3a84ff7cf4f +AUX xrdp-confd-cvs 140 RMD160 c04cd60eff7d3f5de1427ce87bc1f34b4befefe3 SHA1 e0c4a8b089f1e556c3fcd42c5c42327c24bc3634 SHA256 f25c9c409096f71ab2d66d8ee2de47702456367d7a25efeb8ec3b3a84ff7cf4f +AUX xrdp-initd 979 RMD160 1040d4145236de910892d479b564e6157d584c13 SHA1 b147ccd38c6d9cfd1b26d4c6f8851836678dadb2 SHA256 a5e36c24c93ab813d0fe91d1edcb0199d159a09a0b76b3f11026991dd1201c41 +AUX xrdp-initd-cvs 980 RMD160 f2a8f51cc61b43508a33b225caba08f9514eba05 SHA1 190a08c8caeafe7f8438be6ee1ad16843b304278 SHA256 0bde93136b99dca72ecdb6f90fa99191d09b61bf27589df2ba9dac130b5175e0 +AUX xrdp.ini 653 RMD160 56c6b292e5040027dd1b471384a1f2cfe890dd47 SHA1 1c4ece0db4a8c82cbab09ba4edb336a2e9426c5e SHA256 83900d328d01994da3c8aab1d4d0f01c77c60cbf2f56576330daa02d65007633 +DIST xrdp-0.4.1.tar.gz 238850 RMD160 67e3bbeeed13e491bf626efd80bf25c4b59f87f9 SHA1 bbe320c049c47c28d3250627ad72481215a8763e SHA256 275cb009cb837c5d59a0d1a2d062d137c8d8ed781cfc699d59ff5452891c18f0 +EBUILD xrdp-0.4.1.ebuild 1738 RMD160 35a60641c3555a4e200224649bb19038906b75ac SHA1 897b42f0a7bcc1f4b0101d6b3ab666e74427c614 SHA256 a964db7161ea0f0bd3a69a577009dda06b0dd6053533136a01f4187100e5e15a +EBUILD xrdp-9999.ebuild 2669 RMD160 93eb277cc1d369e2553e6d33b41e4637e4dcbb95 SHA1 73a1ef4c57bf1156ece03603462dcf73ddc1f088 SHA256 a48755e5912cf0ab4961be8d50d5a43966e6c9ab64a2ca790f8d7eb566602c49 diff --git a/net-misc/xrdp/files/startwm.sh b/net-misc/xrdp/files/startwm.sh new file mode 100644 index 0000000..21d0a08 --- /dev/null +++ b/net-misc/xrdp/files/startwm.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# use the gentoo startDM to start the default WM +# +# see /usr/share/doc/xrdp-version/startwm.sh for the factory version of this +# script. +source /etc/rc.conf + +/etc/X11/Sessions/"${XSESSION}" diff --git a/net-misc/xrdp/files/xrdp-0.3.1-curdir.patch b/net-misc/xrdp/files/xrdp-0.3.1-curdir.patch new file mode 100644 index 0000000..23879b9 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-0.3.1-curdir.patch @@ -0,0 +1,50 @@ +diff -ur xrdp-0.3.1.orig/sesman/Makefile xrdp-0.3.1/sesman/Makefile +--- xrdp-0.3.1.orig/sesman/Makefile 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/sesman/Makefile 2006-08-01 20:48:52.000000000 -0400 +@@ -13,7 +13,8 @@ + DOCDIR = /usr/doc/xrdp + + DEFINES = -DSESMAN_CFG_FILE=\"$(CFGDIR)/sesman.ini\" \ +- -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\" ++ -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\" \ ++ -DSESMAN_DESTDIR=\"$(DESTDIR)\" + + CFLAGS = $(MYCFLAGS) -I../common $(DEFINES) + LDFLAGS = -L /usr/gnu/lib $(DEFINES) +diff -ur xrdp-0.3.1.orig/sesman/sesman.c xrdp-0.3.1/sesman/sesman.c +--- xrdp-0.3.1.orig/sesman/sesman.c 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/sesman/sesman.c 2006-08-01 20:48:15.000000000 -0400 +@@ -137,6 +137,8 @@ + int pid; + char pid_s[8]; + ++ chdir(SESMAN_DESTDIR); ++ + if (1 == argc) + { + /* no options on command line. normal startup */ +diff -ur xrdp-0.3.1.orig/xrdp/Makefile xrdp-0.3.1/xrdp/Makefile +--- xrdp-0.3.1.orig/xrdp/Makefile 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/xrdp/Makefile 2006-08-01 19:56:15.000000000 -0400 +@@ -12,7 +12,8 @@ + DOCDIR = /usr/doc/xrdp + + DEFINES = -DXRDP_CFG_FILE=\"$(CFGDIR)/xrdp.ini\" \ +- -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" ++ -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" \ ++ -DXRDP_DESTDIR=\"$(DESTDIR)\" + + CFLAGS = $(MYCFLAGS) -I../common -I../libxrdp $(DEFINES) + #CFLAGS += -DXRDP_DEBUG +diff -ur xrdp-0.3.1.orig/xrdp/xrdp.c xrdp-0.3.1/xrdp/xrdp.c +--- xrdp-0.3.1.orig/xrdp/xrdp.c 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/xrdp/xrdp.c 2006-08-01 19:55:45.000000000 -0400 +@@ -291,6 +291,8 @@ + char text[32]; + #endif + ++ chdir(XRDP_DESTDIR); ++ + /* check compiled endian with actual endian */ + test = 1; + host_be = !((int)(*(unsigned char*)(&test))); diff --git a/net-misc/xrdp/files/xrdp-0.3.1-respect-cflags.patch b/net-misc/xrdp/files/xrdp-0.3.1-respect-cflags.patch new file mode 100644 index 0000000..4ed1271 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-0.3.1-respect-cflags.patch @@ -0,0 +1,72 @@ +diff -ur xrdp-0.3.1.orig/libxrdp/Makefile xrdp-0.3.1/libxrdp/Makefile +--- xrdp-0.3.1.orig/libxrdp/Makefile 2006-03-12 19:58:12.000000000 -0500 ++++ xrdp-0.3.1/libxrdp/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -13,7 +13,7 @@ + DEFINES = -DXRDP_CFG_FILE=\"$(CFGDIR)/xrdp.ini\" \ + -DXRDP_KEY_FILE=\"$(CFGDIR)/rsakeys.ini\" + +-CFLAGS = -Wall -O2 -I../common -fPIC $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -fPIC $(DEFINES) + #CFLAGS += -DXRDP_DEBUG + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -shared +diff -ur xrdp-0.3.1.orig/rdp/Makefile xrdp-0.3.1/rdp/Makefile +--- xrdp-0.3.1.orig/rdp/Makefile 2006-03-03 20:02:04.000000000 -0500 ++++ xrdp-0.3.1/rdp/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -10,7 +10,7 @@ + + DEFINES = + +-CFLAGS = -Wall -O2 -I../common -fPIC $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -fPIC $(DEFINES) + #CFLAGS += -DXRDP_DEBUG + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -shared +diff -ur xrdp-0.3.1.orig/sesman/Makefile xrdp-0.3.1/sesman/Makefile +--- xrdp-0.3.1.orig/sesman/Makefile 2006-05-26 09:10:14.000000000 -0400 ++++ xrdp-0.3.1/sesman/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -15,7 +15,7 @@ + DEFINES = -DSESMAN_CFG_FILE=\"$(CFGDIR)/sesman.ini\" \ + -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\" + +-CFLAGS = -Wall -O2 -I../common $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common $(DEFINES) + LDFLAGS = -L /usr/gnu/lib $(DEFINES) + C_OS_FLAGS = $(CFLAGS) -c + CC = gcc +diff -ur xrdp-0.3.1.orig/vnc/Makefile xrdp-0.3.1/vnc/Makefile +--- xrdp-0.3.1.orig/vnc/Makefile 2006-03-03 20:02:06.000000000 -0500 ++++ xrdp-0.3.1/vnc/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -9,7 +9,7 @@ + + DEFINES = + +-CFLAGS = -Wall -O2 -I../common -fPIC $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -fPIC $(DEFINES) + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -shared + LIBS = -ldl +diff -ur xrdp-0.3.1.orig/xrdp/Makefile xrdp-0.3.1/xrdp/Makefile +--- xrdp-0.3.1.orig/xrdp/Makefile 2006-03-03 20:02:08.000000000 -0500 ++++ xrdp-0.3.1/xrdp/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -14,7 +14,7 @@ + DEFINES = -DXRDP_CFG_FILE=\"$(CFGDIR)/xrdp.ini\" \ + -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" + +-CFLAGS = -Wall -O2 -I../common -I../libxrdp $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -I../libxrdp $(DEFINES) + #CFLAGS += -DXRDP_DEBUG + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -L/usr/gnu/lib -L../libxrdp -Wl,-rpath,. +diff -ur xrdp-0.3.1.orig/xup/Makefile xrdp-0.3.1/xup/Makefile +--- xrdp-0.3.1.orig/xup/Makefile 2006-03-03 20:02:09.000000000 -0500 ++++ xrdp-0.3.1/xup/Makefile 2006-08-01 16:44:51.000000000 -0400 +@@ -9,7 +9,7 @@ + + DEFINES = + +-CFLAGS = -Wall -O2 -I../common -fPIC $(DEFINES) ++CFLAGS = $(MYCFLAGS) -I../common -fPIC $(DEFINES) + #CFLAGS += -DXRDP_DEBUG + C_OS_FLAGS = $(CFLAGS) -c + LDFLAGS = -shared diff --git a/net-misc/xrdp/files/xrdp-0.4.1-curdir.patch b/net-misc/xrdp/files/xrdp-0.4.1-curdir.patch new file mode 100644 index 0000000..538c9a0 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-0.4.1-curdir.patch @@ -0,0 +1,50 @@ +diff -ur xrdp-0.4.0.orig/sesman/Makefile xrdp-0.4.0/sesman/Makefile +--- xrdp-0.4.0.orig/sesman/Makefile 2008-04-02 15:43:01.000000000 +0200 ++++ xrdp-0.4.0/sesman/Makefile 2008-04-02 16:08:34.000000000 +0200 +@@ -14,7 +14,8 @@ + + DEFINES = -DSESMAN_CFG_FILE=\"$(CFGDIR)/sesman.ini\" \ + -DSESMAN_PID_FILE=\"$(PIDDIR)/sesman.pid\" \ +- -DSESMAN_SESSVC_FILE=\"sessvc\" ++ -DSESMAN_SESSVC_FILE=\"sessvc\" \ ++ -DSESMAN_DESTDIR=\"$(DESTDIR)\" + + CFLAGS = $(MYCFLAGS) -I../common -I/usr/include/nptl -I./libscp $(DEFINES) + LDFLAGS = -L/usr/gnu/lib -L/usr/lib/nptl -L./libscp -Wl,-rpath,. -lpthread -ldl -lscp +diff -ur xrdp-0.3.1.orig/sesman/sesman.c xrdp-0.3.1/sesman/sesman.c +--- xrdp-0.3.1.orig/sesman/sesman.c 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/sesman/sesman.c 2006-08-01 20:48:15.000000000 -0400 +@@ -137,6 +137,8 @@ + int pid; + char pid_s[8]; + ++ chdir(SESMAN_DESTDIR); ++ + if (1 == argc) + { + /* no options on command line. normal startup */ +diff -ur xrdp-0.3.1.orig/xrdp/Makefile xrdp-0.3.1/xrdp/Makefile +--- xrdp-0.3.1.orig/xrdp/Makefile 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/xrdp/Makefile 2006-08-01 19:56:15.000000000 -0400 +@@ -12,7 +12,8 @@ + DOCDIR = /usr/doc/xrdp + + DEFINES = -DXRDP_CFG_FILE=\"$(CFGDIR)/xrdp.ini\" \ +- -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" ++ -DXRDP_PID_FILE=\"$(PIDDIR)/xrdp.pid\" \ ++ -DXRDP_DESTDIR=\"$(DESTDIR)\" + + CFLAGS = $(MYCFLAGS) -I../common -I../libxrdp $(DEFINES) + #CFLAGS += -DXRDP_DEBUG +diff -ur xrdp-0.3.1.orig/xrdp/xrdp.c xrdp-0.3.1/xrdp/xrdp.c +--- xrdp-0.3.1.orig/xrdp/xrdp.c 2006-08-01 19:35:48.000000000 -0400 ++++ xrdp-0.3.1/xrdp/xrdp.c 2006-08-01 19:55:45.000000000 -0400 +@@ -291,6 +291,8 @@ + char text[32]; + #endif + ++ chdir(XRDP_DESTDIR); ++ + /* check compiled endian with actual endian */ + test = 1; + host_be = !((int)(*(unsigned char*)(&test))); diff --git a/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch b/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch new file mode 100644 index 0000000..7bedefe --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch @@ -0,0 +1,8 @@ +--- xrdp/instfiles/Makefile.am.orig 2009-09-22 18:01:52.000000000 +0400 ++++ xrdp/instfiles/Makefile.am 2009-09-22 18:02:14.000000000 +0400 +@@ -17,3 +17,5 @@ + # if [ -w /etc/init.d ]; then rm -f /etc/init.d/xrdp.sh; fi + # if [ -w /etc/init.d ]; then $(LN_S) $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh /etc/init.d/xrdp.sh; fi + # $(DESTDIR)$(bindir)/xrdp-keygen xrdp $(DESTDIR)$(sysconfdir)/xrdp/rsakeys.ini ++ mkdir -p $(DESTDIR)$(sysconfdir)/init.d ++ $(LN_S) $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh $(DESTDIR)$(sysconfdir)/init.d/xrdp.sh diff --git a/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch.old b/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch.old new file mode 100644 index 0000000..20ad586 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-001-sandbox-violation.patch.old @@ -0,0 +1,11 @@ +--- xrdp/instfiles/Makefile.am~ 2009-05-13 01:28:31.000000000 +0930 ++++ xrdp/instfiles/Makefile.am 2009-05-13 01:29:57.033945790 +0930 +@@ -10,6 +10,5 @@ + # must be tab below + install-data-hook: + chmod 755 $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh +- if [ -w /etc/init.d ]; then rm -f /etc/init.d/xrdp.sh; fi +- if [ -w /etc/init.d ]; then $(LN_S) $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh /etc/init.d/xrdp.sh; fi +- $(DESTDIR)$(bindir)/xrdp-keygen xrdp $(DESTDIR)$(sysconfdir)/xrdp/rsakeys.ini ++ mkdir -p $(DESTDIR)$(sysconfdir)/init.d ++ $(LN_S) $(DESTDIR)$(sysconfdir)/xrdp/xrdp.sh $(DESTDIR)$(sysconfdir)/init.d/xrdp.sh diff --git a/net-misc/xrdp/files/xrdp-9999-002-sesrun-config.patch b/net-misc/xrdp/files/xrdp-9999-002-sesrun-config.patch new file mode 100644 index 0000000..b738ac9 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-002-sesrun-config.patch @@ -0,0 +1,12 @@ +--- xrdp/sesman/tools/Makefile.am.orig 2009-05-13 02:56:04.393945494 +0930 ++++ xrdp/sesman/tools/Makefile.am 2009-05-13 02:56:14.697945849 +0930 +@@ -10,8 +10,8 @@ + + xrdp_sesrun_SOURCES = \ + sesrun.c \ + tcp.c \ +- config.c ++ ../config.c + + xrdp_sestest_SOURCES = \ + sestest.c diff --git a/net-misc/xrdp/files/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch b/net-misc/xrdp/files/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch new file mode 100644 index 0000000..4df55a1 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch @@ -0,0 +1,85 @@ +--- xrdp/xrdp/xrdp_login_wnd.c.orig 2009-05-28 19:26:05.000000000 +0930 ++++ xrdp/xrdp/xrdp_login_wnd.c 2009-05-28 19:30:37.000000000 +0930 +@@ -386,6 +386,8 @@ + int fd; + int i; + int j; ++ int k = 0; // real number of the items in the list ++ int h = 0; // is the current item hidden? + char* p; + char* q; + char* r; +@@ -411,26 +413,58 @@ + } + else + { +- g_strncpy(name, p, 255); +- mod_data = (struct xrdp_mod_data*) +- g_malloc(sizeof(struct xrdp_mod_data), 1); +- mod_data->names = list_create(); +- mod_data->names->auto_free = 1; +- mod_data->values = list_create(); +- mod_data->values->auto_free = 1; +- for (j = 0; j < section_names->count; j++) +- { ++ // check to see if this is a hidden item ++ // do this early so we don't need to mess around freeing memory ++ for (j = 0; j < section_names->count; j++) { + q = (char*)list_get_item(section_names, j); + r = (char*)list_get_item(section_values, j); +- if (g_strncmp("name", q, 255) == 0) ++ if (g_strncmp("hidden", q, 255) == 0) + { +- g_strncpy(name, r, 255); ++ if (g_strncmp("yes", r, 255) == 0) { ++ h = 1; ++ break; ++ } + } +- list_add_item(mod_data->names, (long)g_strdup(q)); +- list_add_item(mod_data->values, (long)g_strdup(r)); + } +- list_add_item(b->string_list, (long)g_strdup(name)); +- list_add_item(b->data_list, (long)mod_data); ++ ++ if (h == 1) { ++ // yup, hidden, reset state ++ h = 0; ++ } else { ++ // not hidden ++ g_strncpy(name, p, 255); ++ mod_data = (struct xrdp_mod_data*) ++ g_malloc(sizeof(struct xrdp_mod_data), 1); ++ mod_data->names = list_create(); ++ mod_data->names->auto_free = 1; ++ mod_data->values = list_create(); ++ mod_data->values->auto_free = 1; ++ for (j = 0; j < section_names->count; j++) ++ { ++ q = (char*)list_get_item(section_names, j); ++ r = (char*)list_get_item(section_values, j); ++ if (g_strncmp("name", q, 255) == 0) ++ { ++ g_strncpy(name, r, 255); ++ } ++ list_add_item(mod_data->names, (long)g_strdup(q)); ++ list_add_item(mod_data->values, (long)g_strdup(r)); ++ } ++ ++ list_add_item(b->string_list, (long)g_strdup(name)); ++ list_add_item(b->data_list, (long)mod_data); ++ ++ if (g_strncmp(self->session->client_info->domain, p, 255) == 0) { ++ // "domain" matches this module's name. change the default selected item to this. ++ // normally this only applies to autologin. now this applies it in non-auto mode ++ // ++ // we can't use (i) here as that is the index of the section in the ini, not the index of ++ // the current item in the combobox. ++ b->item_index = k; ++ } ++ ++ k++; ++ } + } + } + g_file_close(fd); diff --git a/net-misc/xrdp/files/xrdp-9999-004-ignore-client-auth-on-preset.patch b/net-misc/xrdp/files/xrdp-9999-004-ignore-client-auth-on-preset.patch new file mode 100644 index 0000000..b6688c2 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-9999-004-ignore-client-auth-on-preset.patch @@ -0,0 +1,35 @@ +--- xrdp/xrdp/xrdp_wm.c.orig 2009-05-28 18:41:18.000000000 +0930 ++++ xrdp/xrdp/xrdp_wm.c 2009-05-28 18:44:55.000000000 +0930 +@@ -412,14 +412,30 @@ + if (g_strncmp("password", q, 255) == 0) + { + list_add_item(self->mm->login_names, (long)g_strdup("password")); +- list_add_item(self->mm->login_values, ++ if (g_strncmp("ask", r, 255) != 0) { ++ // the password has been manually set in the config, use that ++ // instead of what the client says. ++ list_add_item(self->mm->login_values, (long)g_strdup(r)); ++ } else { ++ // the password has been asked for by the module, use what the ++ // client says. ++ list_add_item(self->mm->login_values, + (long)g_strdup(self->session->client_info->password)); ++ } + } + else if (g_strncmp("username", q, 255) == 0) + { + list_add_item(self->mm->login_names, (long)g_strdup("username")); +- list_add_item(self->mm->login_values, ++ if (g_strncmp("ask", r, 255) != 0) { ++ // the username has been manually set in the config, user that ++ // instead of what the client says. ++ list_add_item(self->mm->login_values, (long)g_strdup(r)); ++ } else { ++ // the username has been asked for by the module, use what the ++ // client says. ++ list_add_item(self->mm->login_values, + (long)g_strdup(self->session->client_info->username)); ++ } + } + else + { diff --git a/net-misc/xrdp/files/xrdp-confd b/net-misc/xrdp/files/xrdp-confd new file mode 100644 index 0000000..a1b7f14 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-confd @@ -0,0 +1,5 @@ +# /etc/conf.d/xrdp + +# logfile locations for xrdp and sesman +XRDP_LOGFILE="/var/log/xrdp/xrdp.log" +SESMAN_LOGFILE="/var/log/xrdp/sesman.log" diff --git a/net-misc/xrdp/files/xrdp-confd-cvs b/net-misc/xrdp/files/xrdp-confd-cvs new file mode 100644 index 0000000..a1b7f14 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-confd-cvs @@ -0,0 +1,5 @@ +# /etc/conf.d/xrdp + +# logfile locations for xrdp and sesman +XRDP_LOGFILE="/var/log/xrdp/xrdp.log" +SESMAN_LOGFILE="/var/log/xrdp/sesman.log" diff --git a/net-misc/xrdp/files/xrdp-initd b/net-misc/xrdp/files/xrdp-initd new file mode 100644 index 0000000..20b2535 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-initd @@ -0,0 +1,36 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/xrdp/files/xrdp-initd,v 1.1 2006/08/02 00:58:36 chutzpah Exp $ + +depend() { + use net logger +} + +start() { + cd /usr/LIBDIR/xrdp + ebegin "Starting X remote desktop daemon" + start-stop-daemon --start --pidfile /var/run/xrdp.pid --exec /usr/LIBDIR/xrdp/xrdp -- >> ${XRDP_LOGFILE} + ret=${?} + eend ${ret} + [[ ${ret} != 0 ]] && return ${ret} + + ebegin "Starting remote desktop session manager" + start-stop-daemon --start --pidfile /var/run/sesman.pid --exec /usr/LIBDIR/xrdp/sesman >> ${SESMAN_LOGFILE} + ret=${?} + eend ${ret} + return ${ret} +} + +stop() { + ebegin "Stopping X remote desktop daemon" + start-stop-daemon --stop --pidfile /var/run/xrdp.pid + ret=${?} + eend ${ret} + + ebegin "Stopping remote desktop session manager" + start-stop-daemon --stop --pidfile /var/run/sesman.pid + ret=${?} + eend ${ret} + return ${ret} +} diff --git a/net-misc/xrdp/files/xrdp-initd-cvs b/net-misc/xrdp/files/xrdp-initd-cvs new file mode 100644 index 0000000..def52a5 --- /dev/null +++ b/net-misc/xrdp/files/xrdp-initd-cvs @@ -0,0 +1,36 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/xrdp/files/xrdp-initd,v 1.1 2006/08/02 00:58:36 chutzpah Exp $ + +depend() { + use net logger +} + +start() { + cd /usr/LIBDIR/xrdp + ebegin "Starting X remote desktop daemon" + start-stop-daemon --start --pidfile /var/run/xrdp.pid --exec /usr/sbin/xrdp -- >> ${XRDP_LOGFILE} + ret=${?} + eend ${ret} + [[ ${ret} != 0 ]] && return ${ret} + + ebegin "Starting remote desktop session manager" + start-stop-daemon --start --pidfile /var/run/xrdp-sesman.pid --exec /usr/sbin/xrdp-sesman >> ${SESMAN_LOGFILE} + ret=${?} + eend ${ret} + return ${ret} +} + +stop() { + ebegin "Stopping X remote desktop daemon" + start-stop-daemon --stop --pidfile /var/run/xrdp.pid + ret=${?} + eend ${ret} + + ebegin "Stopping remote desktop session manager" + start-stop-daemon --stop --pidfile /var/run/xrdp-sesman.pid + ret=${?} + eend ${ret} + return ${ret} +} diff --git a/net-misc/xrdp/files/xrdp.ini b/net-misc/xrdp/files/xrdp.ini new file mode 100644 index 0000000..4b35044 --- /dev/null +++ b/net-misc/xrdp/files/xrdp.ini @@ -0,0 +1,53 @@ + +[globals] +bitmap_cache=yes +bitmap_compression=yes +port=3389 +crypt_level=low +channel_code=1 + +[xrdp1] +name=sesman-Xvnc +lib=/usr/lib/xrdp/libvnc.so +username=ask +password=ask +ip=127.0.0.1 +port=-1 + +[xrdp2] +name=console +lib=/usr/lib/xrdp/libvnc.so +ip=127.0.0.1 +port=5900 +username=na +password=ask + +[xrdp3] +name=vnc-any +lib=/usr/lib/xrdp/libvnc.so +ip=ask +port=ask5900 +username=na +password=ask + +[xrdp4] +name=sesman-any +lib=/usr/lib/xrdp/libvnc.so +ip=ask +port=-1 +username=ask +password=ask + +[xrdp5] +name=rdp-any +lib=/usr/lib/xrdp/librdp.so +ip=ask +port=ask3389 + +[xrdp6] +name=sesman-X11rdp +lib=/usr/lib/xrdp/libxup.so +username=ask +password=ask +ip=127.0.0.1 +port=-1 diff --git a/net-misc/xrdp/xrdp-0.4.1.ebuild b/net-misc/xrdp/xrdp-0.4.1.ebuild new file mode 100644 index 0000000..5f491ae --- /dev/null +++ b/net-misc/xrdp/xrdp-0.4.1.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-misc/xrdp/xrdp-0.4.1.ebuild,v 1.1 2009/03/01 15:09:11 patrick Exp $ + +EAPI="2" + +inherit eutils multilib + +DESCRIPTION="An open source remote desktop protocol(rdp) server." +HOMEPAGE="http://xrdp.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="" + +DEPEND="sys-libs/pam" +RDEPEND="${DEPEND} + || ( net-misc/vnc[server] net-misc/tightvnc x11-misc/x11vnc )" + +DESTDIR="/usr/$(get_libdir)/${PN}" + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}/${P}-curdir.patch" + + # fix cflags, broken paths, multilib, and insecure rpath in all makefiles + for MAKE in $(find . -name Makefile) ; do + sed -i "s:CFLAGS = -Wall -O. :CFLAGS += : + s:/usr/xrdp:${DESTDIR}:g + s:/usr/lib/:/usr/$(get_libdir)/:g + s:rpath,\.:rpath,${DESTDIR}:g" ${MAKE} + done + + sed -i '/instfiles\/xrdp_control1.sh/ d' Makefile +} + +src_compile() { + emake -j1 DESTDIR="${DESTDIR}" || die "emake failed" +} + +src_install() { + emake -j1 DESTDIRDEB="${D}" installdeb || die "emake installdeb failed" + emake -j1 -C sesman/tools DESTDIRDEB="${D}" installdeb || die "emake installdeb failed" + emake -j1 -C sesman/libscp DESTDIRDEB="${D}" installdeb || die "emake installdeb failed" + dodoc design.txt readme.txt sesman/startwm.sh + doman "${D}/usr/man/"*/* + keepdir /var/log/${PN} + rm -rf "${D}${DESTDIR}/startwm.sh" "${D}/usr/man" + exeinto "${DESTDIR}" + doexe "${FILESDIR}/startwm.sh" + doexe "sesman/sessvc" + newinitd "${FILESDIR}/${PN}-initd" ${PN} + newconfd "${FILESDIR}/${PN}-confd" ${PN} + sed -i "s:LIBDIR:$(get_libdir):" "${D}/etc/init.d/${PN}" +} diff --git a/net-misc/xrdp/xrdp-9999.ebuild b/net-misc/xrdp/xrdp-9999.ebuild new file mode 100644 index 0000000..553359f --- /dev/null +++ b/net-misc/xrdp/xrdp-9999.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id $ + +EAPI="2" + +inherit eutils multilib cvs + +DESCRIPTION="An open source remote desktop protocol(rdp) server." +HOMEPAGE="http://xrdp.sourceforge.net/" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="" + +DEPEND="sys-libs/pam" +RDEPEND="${DEPEND} + || ( x11-misc/x11vnc net-misc/vnc[server] net-misc/tightvnc )" + +DESTDIR="/usr/$(get_libdir)/${PN}" + +src_unpack() { + ECVS_SERVER="xrdp.cvs.sourceforge.net:/cvsroot/xrdp" + ECVS_USER="anonymous" + ECVS_PASS="" + ECVS_AUTH="pserver" + ECVS_MODULE="xrdp" + ECVS_LOCALNAME="xrdp" + + S="${WORKDIR}/${ECVS_LOCALNAME}" + + cvs_src_unpack + cd "${S}" + + # fix makefile problem in sesrun + epatch "${FILESDIR}/xrdp-9999-002-sesrun-config.patch" + + # fix sandbox security violation issues + epatch "${FILESDIR}/xrdp-9999-001-sandbox-violation.patch" + + # domain as module name non-auto fix, and hidden modules patch + epatch "${FILESDIR}/xrdp-9999-003-domain-as-module-name-noauto-fix-and-hidden-option.patch" + + # ignore client auth when module has preset + # No longer required as it has been merged into CVS HEAD + # xrdp/xrdp/xrdp_wm.c r1.63, Thu May 28 21:01:01 2009 UTC + #epatch "${FILESDIR}/xrdp-9999-004-ignore-client-auth-on-preset.patch" + + autoreconf -fvi + + # fix cflags, broken paths, multilib, and insecure rpath in all makefiles + for MAKE in $(find . -name Makefile) ; do + sed -i "s:CFLAGS = -Wall -O. :CFLAGS += : + s:/usr/xrdp:${DESTDIR}:g + s:/usr/lib/:/usr/$(get_libdir)/:g + s:rpath,\.:rpath,${DESTDIR}:g" ${MAKE} + done + + #sed -i '/instfiles\/xrdp_control1.sh/ d' Makefile +} + +src_configure() { + econf --localstatedir=/var || die "econf failed" +} + +src_compile() { + emake -j1 DESTDIR="${DESTDIR}" || die "emake failed" +} + +src_install() { + emake -j1 DESTDIR="${D}" install || die "emake install failed" + emake -j1 -C sesman/tools DESTDIR="${D}" install || die "emake install failed" + emake -j1 -C sesman/libscp DESTDIR="${D}" install || die "emake install failed" + dodoc design.txt readme.txt sesman/startwm.sh + doman "${D}/usr/share/man/"*/* + keepdir /var/log/${PN} + rm -f "${D}/etc/xrdp/xrdp.sh" "${D}/etc/init.d/xrdp.sh" + cp "${FILESDIR}/startwm.sh" "${D}/etc/xrdp/" + cp -f "${FILESDIR}/xrdp.ini" "${D}/etc/xrdp/" + chmod 755 "${D}/etc/xrdp/startwm.sh" + newinitd "${FILESDIR}/${PN}-initd-cvs" ${PN} + newconfd "${FILESDIR}/${PN}-confd-cvs" ${PN} + sed -i "s:LIBDIR:$(get_libdir):" "${D}/etc/init.d/${PN}" +} + +pkg_postinst() { + # generate a new rsa key if needed + if [ ! -e "/etc/xrdp/rsakeys.ini" ] ; then + elog "Generating xrdp keys..." + xrdp-keygen xrdp /etc/xrdp/rsakeys.ini + fi +}