Merge pull request #5 from kovtunov/master

update from rainer's local overlay
This commit is contained in:
Sergey Popov 2012-02-04 01:46:53 -08:00
commit 0a82b7b721
33 changed files with 1675 additions and 0 deletions

4
app-arch/unzip/Manifest Normal file
View File

@ -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

View File

@ -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 <iconv.h>
+#include <natspec.h>
+
#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 <locale.h>
+
+#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 */

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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"
}

View File

@ -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"

View File

@ -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
}

View File

@ -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 <stdlib.h>
#include <string.h>
#include <syslog.h>
-#ifdef TIME_WITH_SYS_TIME
#include <time.h>
-#endif
#include <unistd.h>
#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 = "<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);
}

View File

@ -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

View File

@ -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"

View File

@ -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 $?
}

View File

@ -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"
}

View File

@ -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

View File

@ -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

View File

@ -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"
}

17
net-misc/xrdp/Manifest Normal file
View File

@ -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

View File

@ -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}"

View File

@ -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)));

View File

@ -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

View File

@ -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)));

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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
{

View File

@ -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"

View File

@ -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"

View File

@ -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}
}

View File

@ -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}
}

View File

@ -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

View File

@ -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}"
}

View File

@ -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
}