Remove expired leaf ports:
2006-07-01 emulators/linux_base-fc3 2006-06-15 misc/linux-opengroupware 2006-07-01 net/opengk 2006-07-01 security/p5-Crypt-OpenPGP 2006-07-01 textproc/sed_inplace 2006-07-01 textproc/xml4j 2006-07-01 x11-wm/aewm++
This commit is contained in:
7
MOVED
7
MOVED
@@ -2395,3 +2395,10 @@ www/xpi-tablesort|www/xpi-tabletools|2006-06-27|Extension renamed
|
||||
mail/rssyl|mail/sylpheed-claws-rssyl|2006-06-27|Moved to follow the rest of sypheed-claws nameing scheme
|
||||
net/rwhois|net/rwhoisd|2006-06-27|Moved to an accurate name
|
||||
lang/linux-libgcc||2006-06-29|Obsoleted by emulators/linux_base-fc3 and emulators/linux_base-fc4
|
||||
x11-wm/aewm++||2006-07-04|Has expired: The project is dead, a fork exists: xaewm
|
||||
emulators/linux_base-fc3||2006-07-04|Has expired: superseeded by linux_base-fc4 port
|
||||
misc/linux-opengroupware||2006-07-04|Has expired
|
||||
net/opengk||2006-07-04|Has expired: Latest version is from 2003-02-03. Use net/gatekeeper instead
|
||||
security/p5-Crypt-OpenPGP||2006-07-04|Has expired: Crypt-OpenPGP was abandoned in 2002, use security/gnupg instead
|
||||
textproc/sed_inplace||2006-07-04|Has expired: This port is not required anymore
|
||||
textproc/xml4j||2006-07-04|Has expired: it has been replaced by textproc/xerces-j 8 years ago
|
||||
|
||||
@@ -70,7 +70,6 @@
|
||||
SUBDIR += linux_base
|
||||
SUBDIR += linux_base-8
|
||||
SUBDIR += linux_base-debian
|
||||
SUBDIR += linux_base-fc3
|
||||
SUBDIR += linux_base-fc4
|
||||
SUBDIR += linux_base-gentoo-stage1
|
||||
SUBDIR += linux_base-gentoo-stage2
|
||||
|
||||
@@ -1,209 +0,0 @@
|
||||
# New ports collection makefile for: linux_base-fc3
|
||||
# Date created: $Date$
|
||||
# Whom: bsam@ipt.ru
|
||||
# based on ports/emulators/linux_base by trevor, netchild and others
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= fc
|
||||
PORTVERSION= 3
|
||||
PORTREVISION= 6
|
||||
CATEGORIES= emulators linux
|
||||
MASTER_SITES= ${MASTER_SITE_FEDORA_LINUX}
|
||||
MASTER_SITE_SUBDIR= ${PORTVERSION}/${LINUX_RPM_ARCH}/os/Fedora/RPMS \
|
||||
updates/${PORTVERSION}/${LINUX_RPM_ARCH} \
|
||||
${PORTVERSION}/SRPMS \
|
||||
updates/${PORTVERSION}/SRPMS
|
||||
PKGNAMEPREFIX= linux_base-
|
||||
DISTFILES= ${BIN_DISTFILES} ${SRC_DISTFILES}
|
||||
DIST_SUBDIR= rpm/${LINUX_RPM_ARCH}/fedora/${PORTVERSION}
|
||||
EXTRACT_ONLY= ${BIN_DISTFILES}
|
||||
|
||||
MAINTAINER= freebsd-emulation@FreeBSD.org
|
||||
COMMENT= Base set of packages needed in Linux mode (for i386/amd64)
|
||||
|
||||
BIN_DISTFILES= basesystem-8.0-4.noarch.rpm \
|
||||
bash-3.0-18.${LINUX_RPM_ARCH}.rpm \
|
||||
bzip2-1.0.2-13.${LINUX_RPM_ARCH}.rpm \
|
||||
bzip2-libs-1.0.2-13.${LINUX_RPM_ARCH}.rpm \
|
||||
compat-db-4.1.25-6.${LINUX_RPM_ARCH}.rpm \
|
||||
compat-libstdc++-8-3.3.4.2.${LINUX_RPM_ARCH}.rpm \
|
||||
coreutils-5.2.1-31.${LINUX_RPM_ARCH}.rpm \
|
||||
db4-4.2.52-6.${LINUX_RPM_ARCH}.rpm \
|
||||
elfutils-libelf-0.96-1.${LINUX_RPM_ARCH}.rpm \
|
||||
fedora-release-3-8.${LINUX_RPM_ARCH}.rpm \
|
||||
filesystem-2.3.0-1.${LINUX_RPM_ARCH}.rpm \
|
||||
freetype-2.1.9-1.${LINUX_RPM_ARCH}.rpm \
|
||||
gdbm-1.8.0-24.${LINUX_RPM_ARCH}.rpm \
|
||||
glib-1.2.10-15.${LINUX_RPM_ARCH}.rpm \
|
||||
glibc-2.3.6-0.fc3.1.${LINUX_RPM_ARCH}.rpm \
|
||||
glibc-common-2.3.6-0.fc3.1.${LINUX_RPM_ARCH}.rpm \
|
||||
grep-2.5.1-31.${LINUX_RPM_ARCH}.rpm \
|
||||
info-4.7-5.${LINUX_RPM_ARCH}.rpm \
|
||||
libacl-2.2.23-5.${LINUX_RPM_ARCH}.rpm \
|
||||
libattr-2.4.16-3.${LINUX_RPM_ARCH}.rpm \
|
||||
libgcc-3.4.4-2.fc3.${LINUX_RPM_ARCH}.rpm \
|
||||
libselinux-1.19.1-8.${LINUX_RPM_ARCH}.rpm \
|
||||
libstdc++-3.4.2-6.fc3.${LINUX_RPM_ARCH}.rpm \
|
||||
libtermcap-2.0.8-39.${LINUX_RPM_ARCH}.rpm \
|
||||
ncurses-5.4-13.${LINUX_RPM_ARCH}.rpm \
|
||||
pcre-4.5-3.1.1.fc3.${LINUX_RPM_ARCH}.rpm \
|
||||
popt-1.9.1-21.${LINUX_RPM_ARCH}.rpm \
|
||||
readline-4.3-13.${LINUX_RPM_ARCH}.rpm \
|
||||
rpm-4.3.2-21.${LINUX_RPM_ARCH}.rpm \
|
||||
setserial-2.17-17.${LINUX_RPM_ARCH}.rpm \
|
||||
setup-2.5.36-1.noarch.rpm \
|
||||
slang-1.4.9-13.${LINUX_RPM_ARCH}.rpm \
|
||||
termcap-5.4-4fc3.noarch.rpm \
|
||||
zlib-1.2.1.2-3.fc3.${LINUX_RPM_ARCH}.rpm
|
||||
|
||||
.if defined(PACKAGE_BUILDING)
|
||||
SRC_DISTFILES+= basesystem-8.0-4.src.rpm \
|
||||
bash-3.0-18.src.rpm \
|
||||
bzip2-1.0.2-13.src.rpm \
|
||||
compat-db-4.1.25-6.src.rpm \
|
||||
coreutils-5.2.1-31.src.rpm \
|
||||
db4-4.2.52-6.src.rpm \
|
||||
elfutils-0.96-1.src.rpm \
|
||||
fedora-release-3-8.src.rpm \
|
||||
filesystem-2.3.0-1.src.rpm \
|
||||
freetype-2.1.9-1.src.rpm \
|
||||
gcc-3.4.4-2.fc3.src.rpm \
|
||||
gdbm-1.8.0-24.src.rpm \
|
||||
glib-1.2.10-15.src.rpm \
|
||||
glibc-2.3.6-0.fc3.1.src.rpm \
|
||||
grep-2.5.1-31.src.rpm \
|
||||
libselinux-1.19.1-8.src.rpm \
|
||||
libtermcap-2.0.8-39.src.rpm \
|
||||
ncurses-5.4-13.src.rpm \
|
||||
pcre-4.5-3.src.rpm \
|
||||
readline-4.3-13.src.rpm \
|
||||
rpm-4.3.2-21.src.rpm \
|
||||
setserial-2.17-17.src.rpm \
|
||||
setup-2.5.36-1.src.rpm \
|
||||
slang-1.4.9-13.src.rpm \
|
||||
termcap-5.4-4fc3.src.rpm \
|
||||
zlib-1.2.1.2-3.fc3.src.rpm
|
||||
|
||||
ALWAYS_KEEP_DISTFILES= yes
|
||||
.endif
|
||||
|
||||
CONFLICTS= linux_base-7* linux_base-deb* linux_base-gentoo* \
|
||||
linux_base-rh-9* linux_base-suse-9* linux_base-8* \
|
||||
linux_base-fc-4* linux_locale*
|
||||
|
||||
DEPRECATED= superseeded by linux_base-fc4 port
|
||||
EXPIRATION_DATE=2006-07-01
|
||||
|
||||
ONLY_FOR_ARCHS= i386 amd64
|
||||
LINUX_RPM_ARCH= i386
|
||||
USE_LINUX_PREFIX= yes
|
||||
NO_FILTER_SHLIBS= yes
|
||||
NO_WRKSUBDIR= yes
|
||||
MD5_FILE?= ${MASTERDIR}/distinfo.${LINUX_RPM_ARCH}
|
||||
PLIST_SUB= GLIBCVER="2.3.6"
|
||||
|
||||
RPM2CPIO?= ${LOCALBASE}/bin/rpm2cpio
|
||||
|
||||
EXTRACT_DEPENDS+= ${RPM2CPIO}:${PORTSDIR}/archivers/rpm
|
||||
|
||||
EXTRACT_ONLY= ${BIN_DISTFILES}
|
||||
EXTRACT_CMD?= ${RPM2CPIO}
|
||||
EXTRACT_BEFORE_ARGS?=
|
||||
EXTRACT_AFTER_ARGS?= | ${CPIO} -id --quiet
|
||||
|
||||
PLIST= pkg-plist
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
REMOVE_DIRS= boot dev home initrd root tmp var/run var/tmp usr/tmp \
|
||||
usr/local
|
||||
REMOVE_FILES= bin/df bin/su etc/exports etc/group etc/localtime \
|
||||
etc/motd etc/passwd etc/printcap etc/services \
|
||||
etc/protocols
|
||||
ADD_FILES= var/lib/rpm/packages.rpm \
|
||||
var/lib/rpm/nameindex.rpm \
|
||||
var/lib/rpm/fileindex.rpm \
|
||||
var/lib/rpm/providesindex.rpm \
|
||||
var/lib/rpm/requiredby.rpm \
|
||||
var/lib/rpm/conflictsindex.rpm \
|
||||
var/lib/rpm/groupindex.rpm \
|
||||
var/lib/rpm/triggerindex.rpm
|
||||
|
||||
.if (${MACHINE_ARCH} == "amd64")
|
||||
FALLBACK_ELF_MIB= kern.elf32.fallback_brand
|
||||
.else
|
||||
FALLBACK_ELF_MIB= kern.fallback_elf_brand
|
||||
.endif
|
||||
|
||||
.if (${ARCH} == "amd64")
|
||||
LATEST_LINK:= ${LATEST_LINK:C/linux/linux32/}
|
||||
ARCH= i386
|
||||
.endif
|
||||
|
||||
do-build:
|
||||
@for D in ${REMOVE_DIRS}; do \
|
||||
${RM} -rf ${WRKSRC}/$$D; \
|
||||
done
|
||||
@for F in ${REMOVE_FILES}; do \
|
||||
${RM} -f ${WRKSRC}/$$F; \
|
||||
done
|
||||
@for F in ${ADD_FILES}; do \
|
||||
${TOUCH} ${WRKSRC}/$$F; \
|
||||
done
|
||||
#
|
||||
# Create a good ld.so.conf and touch ld.so.cache
|
||||
#
|
||||
@${ECHO_CMD} -e '/lib\n/usr/lib\n${X11BASE}/lib' >> \
|
||||
${WRKSRC}/etc/ld.so.conf
|
||||
@${TOUCH} ${WRKSRC}/etc/ld.so.cache
|
||||
#
|
||||
# Create yp.conf as a hint to NIS users and make sure there's a
|
||||
# mtab in etc, albeit an empty one. This is needed in a couple of
|
||||
# cases. Most notably staroffice6. If yp.conf exists install only
|
||||
# yp.conf.sample
|
||||
#
|
||||
@${INSTALL} ${COPY} -m 644 ${FILESDIR}/yp.conf.sample ${WRKSRC}/etc
|
||||
@${TOUCH} ${WRKSRC}/etc/mtab
|
||||
#
|
||||
# If ${PREFIX}/etc/nsswitch.conf exists, don't touch it,
|
||||
# install only ${PREFIX}/etc/nsswitch.conf.dist
|
||||
#
|
||||
@${MV} ${WRKSRC}/etc/nsswitch.conf ${WRKSRC}/etc/nsswitch.conf.dist
|
||||
|
||||
@${FIND} ${WRKSRC}/bin ${WRKSRC}/sbin/ ${WRKSRC}/usr/bin \
|
||||
${WRKSRC}/usr/sbin -type f -print0 | ${XARGS} -0 ${FILE} \
|
||||
| ${GREP} ELF | ${CUT} -d : -f 1 \
|
||||
| ${XARGS} ${BRANDELF} -t Linux
|
||||
|
||||
do-install:
|
||||
#
|
||||
# Handle the loading of the linux loadable kernel module if required.
|
||||
#
|
||||
@${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
|
||||
#
|
||||
# Do install without using linux rpm system
|
||||
#
|
||||
@cd ${WRKSRC} && ${FIND} * -type d -exec ${MKDIR} "${PREFIX}/{}" \;
|
||||
@cd ${WRKSRC} && ${FIND} * ! -type d \
|
||||
| ${CPIO} -pm -R root:wheel ${PREFIX}
|
||||
|
||||
@${LN} -sf /var/tmp ${PREFIX}/usr/tmp
|
||||
@${CHOWN} root:wheel ${PREFIX}/var/lock ${PREFIX}/var/spool/mail
|
||||
@${CHMOD} 755 ${PREFIX}/var/lock ${PREFIX}/var/spool/mail
|
||||
|
||||
post-install:
|
||||
#
|
||||
# Handle mounting linux procfs if exists at /etc/fstab and
|
||||
# installing etc/nsswitch.conf, etc/yp.conf if so far they don't exist
|
||||
#
|
||||
@PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
|
||||
#
|
||||
# And finally show the pkg-message
|
||||
#
|
||||
@${ECHO} ''
|
||||
@${CAT} ${PKGMESSAGE}
|
||||
@${ECHO} ''
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
@@ -1,180 +0,0 @@
|
||||
MD5 (rpm/i386/fedora/3/basesystem-8.0-4.noarch.rpm) = 590ffac4154564dbf101a4adaae2e634
|
||||
SHA256 (rpm/i386/fedora/3/basesystem-8.0-4.noarch.rpm) = 748be164bf586816498030cefbec16a39e3dabfe5b68b4e9b4ebb0bfecb3008e
|
||||
SIZE (rpm/i386/fedora/3/basesystem-8.0-4.noarch.rpm) = 2777
|
||||
MD5 (rpm/i386/fedora/3/bash-3.0-18.i386.rpm) = 99a14bb99f07fd19120e6c9db8cd801d
|
||||
SHA256 (rpm/i386/fedora/3/bash-3.0-18.i386.rpm) = 87ca0203fb3b60c1d098cbef897ac3bed1bd535c3bd527a832b45a7db26bf53c
|
||||
SIZE (rpm/i386/fedora/3/bash-3.0-18.i386.rpm) = 1823312
|
||||
MD5 (rpm/i386/fedora/3/bzip2-1.0.2-13.i386.rpm) = 3b9105d659ca339c681517a8f9487990
|
||||
SHA256 (rpm/i386/fedora/3/bzip2-1.0.2-13.i386.rpm) = 5466cfc640f5a6557cc1a3d5e011aed491f79bdac82b499346f0ec44b3a82a98
|
||||
SIZE (rpm/i386/fedora/3/bzip2-1.0.2-13.i386.rpm) = 48359
|
||||
MD5 (rpm/i386/fedora/3/bzip2-libs-1.0.2-13.i386.rpm) = 32c36c5a6f82c9e2398557b42ce777bb
|
||||
SHA256 (rpm/i386/fedora/3/bzip2-libs-1.0.2-13.i386.rpm) = 6bee6e09b1f52e88d3099c45d9177b9a86b6c737a0bce27d95bb6a0ed418232f
|
||||
SIZE (rpm/i386/fedora/3/bzip2-libs-1.0.2-13.i386.rpm) = 34363
|
||||
MD5 (rpm/i386/fedora/3/compat-db-4.1.25-6.i386.rpm) = 16e4ffff3cb7cf6aeeb940a470fa08b7
|
||||
SHA256 (rpm/i386/fedora/3/compat-db-4.1.25-6.i386.rpm) = 72b77580afbe462339264983407a1c1cc74f1665da3c34d0c830aa86a9e141ff
|
||||
SIZE (rpm/i386/fedora/3/compat-db-4.1.25-6.i386.rpm) = 889683
|
||||
MD5 (rpm/i386/fedora/3/compat-libstdc++-8-3.3.4.2.i386.rpm) = bed3429452b6d1a392ba3e8f5f5a8687
|
||||
SHA256 (rpm/i386/fedora/3/compat-libstdc++-8-3.3.4.2.i386.rpm) = 16dd1be018b8bfcbd9cc62e69951f872406dace11d07338302638492b53317ff
|
||||
SIZE (rpm/i386/fedora/3/compat-libstdc++-8-3.3.4.2.i386.rpm) = 666891
|
||||
MD5 (rpm/i386/fedora/3/coreutils-5.2.1-31.i386.rpm) = 5cb75e56e2962cd4eb3f1ed7496e54b0
|
||||
SHA256 (rpm/i386/fedora/3/coreutils-5.2.1-31.i386.rpm) = dbcddf8842bfae8b693208921d115ef08df38153ae26d372987c338925f80e46
|
||||
SIZE (rpm/i386/fedora/3/coreutils-5.2.1-31.i386.rpm) = 2996248
|
||||
MD5 (rpm/i386/fedora/3/db4-4.2.52-6.i386.rpm) = 4139238bb1e93b18b45a2578249ac444
|
||||
SHA256 (rpm/i386/fedora/3/db4-4.2.52-6.i386.rpm) = 9aa59a2d22b0f39333dadee7746fd543c3f4f92c4e1f6430b9d1cdd05d5c67d7
|
||||
SIZE (rpm/i386/fedora/3/db4-4.2.52-6.i386.rpm) = 1576482
|
||||
MD5 (rpm/i386/fedora/3/elfutils-libelf-0.96-1.i386.rpm) = 9ebe97e40da45ed2836b0d04b8437665
|
||||
SHA256 (rpm/i386/fedora/3/elfutils-libelf-0.96-1.i386.rpm) = 180af3826d53676e24828cc7a74e8e9d1acba5125b15b2bb51c0bc06164cf9ad
|
||||
SIZE (rpm/i386/fedora/3/elfutils-libelf-0.96-1.i386.rpm) = 37647
|
||||
MD5 (rpm/i386/fedora/3/fedora-release-3-8.i386.rpm) = 20553b29336b1394776daf5ba92fc199
|
||||
SHA256 (rpm/i386/fedora/3/fedora-release-3-8.i386.rpm) = 76fa09e0b26c1dd9bd57c12da0311a2892f613cdab84a637cb1d935a13dec93a
|
||||
SIZE (rpm/i386/fedora/3/fedora-release-3-8.i386.rpm) = 93728
|
||||
MD5 (rpm/i386/fedora/3/filesystem-2.3.0-1.i386.rpm) = 1cca06d7ad0eea0ed6c277391a6dc8b6
|
||||
SHA256 (rpm/i386/fedora/3/filesystem-2.3.0-1.i386.rpm) = 40b81abbe57abef6f6dc9f194a8f777c11fca5d989dd3ea29940eb99a26ac19d
|
||||
SIZE (rpm/i386/fedora/3/filesystem-2.3.0-1.i386.rpm) = 15679
|
||||
MD5 (rpm/i386/fedora/3/freetype-2.1.9-1.i386.rpm) = 4ce383d651b8692d38a71c76547842ac
|
||||
SHA256 (rpm/i386/fedora/3/freetype-2.1.9-1.i386.rpm) = 4c2bec77948bce01f7fcff6f77fc76d7b8b74dc5f690a797e1b8275e3f6a1835
|
||||
SIZE (rpm/i386/fedora/3/freetype-2.1.9-1.i386.rpm) = 774256
|
||||
MD5 (rpm/i386/fedora/3/gdbm-1.8.0-24.i386.rpm) = 190cb0e98b618500579bc1f2dc266b8b
|
||||
SHA256 (rpm/i386/fedora/3/gdbm-1.8.0-24.i386.rpm) = 0193044509c9fbbed4ad8cbbeb0174f9b49e535475ffcf28fe82df7b4975e2f7
|
||||
SIZE (rpm/i386/fedora/3/gdbm-1.8.0-24.i386.rpm) = 26322
|
||||
MD5 (rpm/i386/fedora/3/glib-1.2.10-15.i386.rpm) = 8bc7de68fa760472867ef36ebc399c7b
|
||||
SHA256 (rpm/i386/fedora/3/glib-1.2.10-15.i386.rpm) = 8c0971bafb1f52748e9fff23ca80eee4ba432818ba58a2352da5aa2027a76d76
|
||||
SIZE (rpm/i386/fedora/3/glib-1.2.10-15.i386.rpm) = 131470
|
||||
MD5 (rpm/i386/fedora/3/glibc-2.3.6-0.fc3.1.i386.rpm) = c530513c5b563b1131c74520ef2bcfa8
|
||||
SHA256 (rpm/i386/fedora/3/glibc-2.3.6-0.fc3.1.i386.rpm) = 159c4b147feb9fba4cbf0d17ee7ae6d9cf650b6a7c50b103233accfc36c5cf3c
|
||||
SIZE (rpm/i386/fedora/3/glibc-2.3.6-0.fc3.1.i386.rpm) = 4408104
|
||||
MD5 (rpm/i386/fedora/3/glibc-common-2.3.6-0.fc3.1.i386.rpm) = da344cc6c3ee0e681896f23100bb56ea
|
||||
SHA256 (rpm/i386/fedora/3/glibc-common-2.3.6-0.fc3.1.i386.rpm) = ef247e294c71d5c18caa4866a49021435d51ce2bc57497d988b275085f6b686d
|
||||
SIZE (rpm/i386/fedora/3/glibc-common-2.3.6-0.fc3.1.i386.rpm) = 16479301
|
||||
MD5 (rpm/i386/fedora/3/grep-2.5.1-31.i386.rpm) = ddf74d66549aac0af0021f4214d7b57a
|
||||
SHA256 (rpm/i386/fedora/3/grep-2.5.1-31.i386.rpm) = b145e1d568a895650ee1fe993846616a33563cb911db53b8b9f61530a3cd405e
|
||||
SIZE (rpm/i386/fedora/3/grep-2.5.1-31.i386.rpm) = 171630
|
||||
MD5 (rpm/i386/fedora/3/info-4.7-5.i386.rpm) = 0d3e7e452288e37e12cb58e37a24d6c5
|
||||
SHA256 (rpm/i386/fedora/3/info-4.7-5.i386.rpm) = 8cd5e0977e4e5501ae8f2444cb020faaab9f166088cc31d03321b4a6e5b01b3c
|
||||
SIZE (rpm/i386/fedora/3/info-4.7-5.i386.rpm) = 148631
|
||||
MD5 (rpm/i386/fedora/3/libacl-2.2.23-5.i386.rpm) = 27cd1286b8b157e5b9d45ab9623d9770
|
||||
SHA256 (rpm/i386/fedora/3/libacl-2.2.23-5.i386.rpm) = 104918b310350d8a8aeb74c08f6bef439070ed7ccbda5947bfd40fc314492695
|
||||
SIZE (rpm/i386/fedora/3/libacl-2.2.23-5.i386.rpm) = 16023
|
||||
MD5 (rpm/i386/fedora/3/libattr-2.4.16-3.i386.rpm) = 89ccb14578301b7e5ebda8c33f83bfd4
|
||||
SHA256 (rpm/i386/fedora/3/libattr-2.4.16-3.i386.rpm) = a94738f4666254b98ae9e6c09889f84c25eab910d8487632abc67c150f2a7110
|
||||
SIZE (rpm/i386/fedora/3/libattr-2.4.16-3.i386.rpm) = 13711
|
||||
MD5 (rpm/i386/fedora/3/libgcc-3.4.4-2.fc3.i386.rpm) = 0a617a9704b080fd4333d35f2c3da813
|
||||
SHA256 (rpm/i386/fedora/3/libgcc-3.4.4-2.fc3.i386.rpm) = 9074ebfbd2672bf7f2e1568ec7dfd642db4fcf7007151fb8144da29b428bb22a
|
||||
SIZE (rpm/i386/fedora/3/libgcc-3.4.4-2.fc3.i386.rpm) = 56146
|
||||
MD5 (rpm/i386/fedora/3/libselinux-1.19.1-8.i386.rpm) = 7df901dc51c281a60532531f76f8abd9
|
||||
SHA256 (rpm/i386/fedora/3/libselinux-1.19.1-8.i386.rpm) = 0e85611715455922319cfaf69ac7b26f6ad6354fd07e71030b0511cb7400272c
|
||||
SIZE (rpm/i386/fedora/3/libselinux-1.19.1-8.i386.rpm) = 55838
|
||||
MD5 (rpm/i386/fedora/3/libstdc++-3.4.2-6.fc3.i386.rpm) = 19ef917aa47e8b765574437f43bbcb63
|
||||
SHA256 (rpm/i386/fedora/3/libstdc++-3.4.2-6.fc3.i386.rpm) = 629e7062c49fc9b574765dba92d1740f8fdaded10e651432680ee262dfcc87b1
|
||||
SIZE (rpm/i386/fedora/3/libstdc++-3.4.2-6.fc3.i386.rpm) = 274034
|
||||
MD5 (rpm/i386/fedora/3/libtermcap-2.0.8-39.i386.rpm) = 57077f4f4dd55d2eaa9b707d52f6912e
|
||||
SHA256 (rpm/i386/fedora/3/libtermcap-2.0.8-39.i386.rpm) = 103c69b0dbd408af24d64982ed9eec2a0cc29aa200554d70238ebc15ee221e1c
|
||||
SIZE (rpm/i386/fedora/3/libtermcap-2.0.8-39.i386.rpm) = 12513
|
||||
MD5 (rpm/i386/fedora/3/ncurses-5.4-13.i386.rpm) = 33a216189c6992b24b2ce7d0ef4d583a
|
||||
SHA256 (rpm/i386/fedora/3/ncurses-5.4-13.i386.rpm) = 6782e7c71e34fba5133ec6658ce289440b8e1e69dabbe5704a9bc803000c10e2
|
||||
SIZE (rpm/i386/fedora/3/ncurses-5.4-13.i386.rpm) = 1585476
|
||||
MD5 (rpm/i386/fedora/3/pcre-4.5-3.1.1.fc3.i386.rpm) = 81729fbca4064dd687bab07ae6cf9fd1
|
||||
SHA256 (rpm/i386/fedora/3/pcre-4.5-3.1.1.fc3.i386.rpm) = 0846548a05e81d729cae7f56bc5b729fc9a035c35aacc703d043f90c44a38ff3
|
||||
SIZE (rpm/i386/fedora/3/pcre-4.5-3.1.1.fc3.i386.rpm) = 59820
|
||||
MD5 (rpm/i386/fedora/3/popt-1.9.1-21.i386.rpm) = 43c5d117670ba81b7a644009556a7f16
|
||||
SHA256 (rpm/i386/fedora/3/popt-1.9.1-21.i386.rpm) = 963fc7fd0f50a3ecc86f3d743082053b91f2f0b94142b245cad8d5222e0d37cd
|
||||
SIZE (rpm/i386/fedora/3/popt-1.9.1-21.i386.rpm) = 61743
|
||||
MD5 (rpm/i386/fedora/3/readline-4.3-13.i386.rpm) = ef62a05e296f07f570290ab544764654
|
||||
SHA256 (rpm/i386/fedora/3/readline-4.3-13.i386.rpm) = 529b8bc06091aa176b493f197f9d10bbe32a0efb104d181c67da3b5553e8c898
|
||||
SIZE (rpm/i386/fedora/3/readline-4.3-13.i386.rpm) = 179559
|
||||
MD5 (rpm/i386/fedora/3/rpm-4.3.2-21.i386.rpm) = b4d13a5bb80a4ad9482071417a850029
|
||||
SHA256 (rpm/i386/fedora/3/rpm-4.3.2-21.i386.rpm) = d68aad637d0d81d98afce374cf6530106cf2bae5885770be7aa2a781b9ea7224
|
||||
SIZE (rpm/i386/fedora/3/rpm-4.3.2-21.i386.rpm) = 570648
|
||||
MD5 (rpm/i386/fedora/3/setserial-2.17-17.i386.rpm) = 8e1023ae052cf18cddc54fdc6a5e3d3e
|
||||
SHA256 (rpm/i386/fedora/3/setserial-2.17-17.i386.rpm) = 00b75c770f7f5ca8dc31abaf637f9173dd1f1f8a448b85e770557be8206b07cb
|
||||
SIZE (rpm/i386/fedora/3/setserial-2.17-17.i386.rpm) = 21238
|
||||
MD5 (rpm/i386/fedora/3/setup-2.5.36-1.noarch.rpm) = bb911224b36329be95d84e03a04aad29
|
||||
SHA256 (rpm/i386/fedora/3/setup-2.5.36-1.noarch.rpm) = b5fbb20e734d3b04fa945ae7650895c33f623f4e043a28ec95a1e742cacecb64
|
||||
SIZE (rpm/i386/fedora/3/setup-2.5.36-1.noarch.rpm) = 30677
|
||||
MD5 (rpm/i386/fedora/3/slang-1.4.9-13.i386.rpm) = 8a34abc94e0e88a54f1dd0168bee39ad
|
||||
SHA256 (rpm/i386/fedora/3/slang-1.4.9-13.i386.rpm) = 3e7749bd98eb9f5d7d3f46904f3dfe7c90ee70a8b87642ce83a681d11f6b2c65
|
||||
SIZE (rpm/i386/fedora/3/slang-1.4.9-13.i386.rpm) = 389990
|
||||
MD5 (rpm/i386/fedora/3/termcap-5.4-4fc3.noarch.rpm) = d509cdad70bdc53c1559bf45b0cd5fc4
|
||||
SHA256 (rpm/i386/fedora/3/termcap-5.4-4fc3.noarch.rpm) = 5c13cd87a3c5341faae2d89a8be12113ea1d89a5ac81c40ce96b70c26d42a9c3
|
||||
SIZE (rpm/i386/fedora/3/termcap-5.4-4fc3.noarch.rpm) = 261260
|
||||
MD5 (rpm/i386/fedora/3/zlib-1.2.1.2-3.fc3.i386.rpm) = 7e577c3cfd0f101a1ac37140bfff39bb
|
||||
SHA256 (rpm/i386/fedora/3/zlib-1.2.1.2-3.fc3.i386.rpm) = 9b08f2aa12b916e834b97e634efd269f26bf49dcbe37ad40100f756e58dd1fb1
|
||||
SIZE (rpm/i386/fedora/3/zlib-1.2.1.2-3.fc3.i386.rpm) = 44638
|
||||
MD5 (rpm/i386/fedora/3/basesystem-8.0-4.src.rpm) = 4eeb6fd41ef774764cf878cb208a4b1e
|
||||
SHA256 (rpm/i386/fedora/3/basesystem-8.0-4.src.rpm) = 8669a950657561ed351ff3753bb19d0a41c762e20bf29d5c855c8aa5e0bb5ec6
|
||||
SIZE (rpm/i386/fedora/3/basesystem-8.0-4.src.rpm) = 3641
|
||||
MD5 (rpm/i386/fedora/3/bash-3.0-18.src.rpm) = c62c3bda734bcab8a759ca065d471157
|
||||
SHA256 (rpm/i386/fedora/3/bash-3.0-18.src.rpm) = f47c90df0ff7c71ae564f7ab5fa90da24d47c8f9bcb055543509e4f786164431
|
||||
SIZE (rpm/i386/fedora/3/bash-3.0-18.src.rpm) = 4463482
|
||||
MD5 (rpm/i386/fedora/3/bzip2-1.0.2-13.src.rpm) = f7ab7db88ba06a3bc87db49555c7e6d9
|
||||
SHA256 (rpm/i386/fedora/3/bzip2-1.0.2-13.src.rpm) = 88157983e5a5c97ab2396f97cc3b58d2cebd7d16a6b2a7ff5e077996b8a57c8d
|
||||
SIZE (rpm/i386/fedora/3/bzip2-1.0.2-13.src.rpm) = 673982
|
||||
MD5 (rpm/i386/fedora/3/compat-db-4.1.25-6.src.rpm) = 80cfe0ecc12032b45f369b347a353bf3
|
||||
SHA256 (rpm/i386/fedora/3/compat-db-4.1.25-6.src.rpm) = f9741cb983896a17b0223afdfbabcc4754652b2893b36081e30158e472df1a27
|
||||
SIZE (rpm/i386/fedora/3/compat-db-4.1.25-6.src.rpm) = 6051611
|
||||
MD5 (rpm/i386/fedora/3/coreutils-5.2.1-31.src.rpm) = ead84d2d329d4f627408d1c76acebbe7
|
||||
SHA256 (rpm/i386/fedora/3/coreutils-5.2.1-31.src.rpm) = 6535477ac70f00d325d4300d48febe3cb517df8ae362be7710579a3b19301f57
|
||||
SIZE (rpm/i386/fedora/3/coreutils-5.2.1-31.src.rpm) = 4360877
|
||||
MD5 (rpm/i386/fedora/3/db4-4.2.52-6.src.rpm) = 40e3cf1442afe3b7c5c4821f99a0a597
|
||||
SHA256 (rpm/i386/fedora/3/db4-4.2.52-6.src.rpm) = 6cb182d0c06b04b14fa3b0b42242b1dc4e41ad0ef2b3471586bc07ce4e607c0b
|
||||
SIZE (rpm/i386/fedora/3/db4-4.2.52-6.src.rpm) = 4359073
|
||||
MD5 (rpm/i386/fedora/3/elfutils-0.96-1.src.rpm) = 6634af244767a1b16a1ceff892d0e1c2
|
||||
SHA256 (rpm/i386/fedora/3/elfutils-0.96-1.src.rpm) = 3876c0ebb48623f0be5e2a22fafe0392f4f9fe90bbad9116870c8ca19a88dc36
|
||||
SIZE (rpm/i386/fedora/3/elfutils-0.96-1.src.rpm) = 685183
|
||||
MD5 (rpm/i386/fedora/3/fedora-release-3-8.src.rpm) = 1079512cf24016a6b284d95cc56f4e73
|
||||
SHA256 (rpm/i386/fedora/3/fedora-release-3-8.src.rpm) = 35d745758efc56c78ec51b17e5dc855145f307206fe37a9771d04d499ab3f1b6
|
||||
SIZE (rpm/i386/fedora/3/fedora-release-3-8.src.rpm) = 84070
|
||||
MD5 (rpm/i386/fedora/3/filesystem-2.3.0-1.src.rpm) = e9cf7216309256947b923486c66a1d90
|
||||
SHA256 (rpm/i386/fedora/3/filesystem-2.3.0-1.src.rpm) = 33c2def32f593b2f072d796ee887b6ee57f4021829693acf13b2762aa075cebe
|
||||
SIZE (rpm/i386/fedora/3/filesystem-2.3.0-1.src.rpm) = 8943
|
||||
MD5 (rpm/i386/fedora/3/freetype-2.1.9-1.src.rpm) = a7799dcdbe4918dad54e1809c0dc8017
|
||||
SHA256 (rpm/i386/fedora/3/freetype-2.1.9-1.src.rpm) = 088857f84ec53c1c2deb725abff6132c3e811ace4ba53a0f0fa200300842b214
|
||||
SIZE (rpm/i386/fedora/3/freetype-2.1.9-1.src.rpm) = 1997554
|
||||
MD5 (rpm/i386/fedora/3/gcc-3.4.4-2.fc3.src.rpm) = 4bace738841d2f80835672f9308b4011
|
||||
SHA256 (rpm/i386/fedora/3/gcc-3.4.4-2.fc3.src.rpm) = 1c814959aafc5ee73785291fd90754a106464df58a827792f4589e53a6244bb2
|
||||
SIZE (rpm/i386/fedora/3/gcc-3.4.4-2.fc3.src.rpm) = 26370149
|
||||
MD5 (rpm/i386/fedora/3/gdbm-1.8.0-24.src.rpm) = 5e75d5cab6a9f1ea6782e13d4d4ca98f
|
||||
SHA256 (rpm/i386/fedora/3/gdbm-1.8.0-24.src.rpm) = ef8423a513bf6766ca449194be8e97ce106e80c5142e069d952057965d896d77
|
||||
SIZE (rpm/i386/fedora/3/gdbm-1.8.0-24.src.rpm) = 144134
|
||||
MD5 (rpm/i386/fedora/3/glib-1.2.10-15.src.rpm) = 5b63cc8e17cd94845a3d27afca327d94
|
||||
SHA256 (rpm/i386/fedora/3/glib-1.2.10-15.src.rpm) = 21c70f9d33a3deea1ff67fb6fce1d4d5485d4c3d22eb33086aaa7c7c3b9d194c
|
||||
SIZE (rpm/i386/fedora/3/glib-1.2.10-15.src.rpm) = 430137
|
||||
MD5 (rpm/i386/fedora/3/glibc-2.3.6-0.fc3.1.src.rpm) = 2b91b59a25605f2d2f7882fc0f258165
|
||||
SHA256 (rpm/i386/fedora/3/glibc-2.3.6-0.fc3.1.src.rpm) = 8453092427b6e09fc5b6aac60ec38cd13c343661ff80fbc0ee6c0ea7dfdb587f
|
||||
SIZE (rpm/i386/fedora/3/glibc-2.3.6-0.fc3.1.src.rpm) = 14517025
|
||||
MD5 (rpm/i386/fedora/3/grep-2.5.1-31.src.rpm) = a827adfefe241101a29bba8302f4ef58
|
||||
SHA256 (rpm/i386/fedora/3/grep-2.5.1-31.src.rpm) = 9365b3c0b6aa2749163c6aeb38d8a0c91cb0ff24a60d669410103e97112c19a9
|
||||
SIZE (rpm/i386/fedora/3/grep-2.5.1-31.src.rpm) = 582594
|
||||
MD5 (rpm/i386/fedora/3/libselinux-1.19.1-8.src.rpm) = 1087bd1bf93e6427f53fd33e6866628f
|
||||
SHA256 (rpm/i386/fedora/3/libselinux-1.19.1-8.src.rpm) = 18ec44f7c768185334f41ac574cd45553c9bf68ce2fb6ebdd56e29b535d76cee
|
||||
SIZE (rpm/i386/fedora/3/libselinux-1.19.1-8.src.rpm) = 95005
|
||||
MD5 (rpm/i386/fedora/3/libtermcap-2.0.8-39.src.rpm) = e6b419bbc1b58cbaed489050bf0dc424
|
||||
SHA256 (rpm/i386/fedora/3/libtermcap-2.0.8-39.src.rpm) = a6136b99ce161fcfc2ffcdecb721a6fc0563c483a051473463b4f967332c7cab
|
||||
SIZE (rpm/i386/fedora/3/libtermcap-2.0.8-39.src.rpm) = 227526
|
||||
MD5 (rpm/i386/fedora/3/ncurses-5.4-13.src.rpm) = 838ae040049fef7c85fc53bbeb35bc35
|
||||
SHA256 (rpm/i386/fedora/3/ncurses-5.4-13.src.rpm) = 2ea27eaff97fb9d708ad5bce2abe34743868ade463add54d4b5ac95d2dc604d9
|
||||
SIZE (rpm/i386/fedora/3/ncurses-5.4-13.src.rpm) = 1834009
|
||||
MD5 (rpm/i386/fedora/3/pcre-4.5-3.src.rpm) = c14617addfcf4eaab7a705fd3014f545
|
||||
SHA256 (rpm/i386/fedora/3/pcre-4.5-3.src.rpm) = db11eb57e7dcb6c4558535ce433e6e7955f91715398895629b7fa3e43e9176ad
|
||||
SIZE (rpm/i386/fedora/3/pcre-4.5-3.src.rpm) = 355273
|
||||
MD5 (rpm/i386/fedora/3/readline-4.3-13.src.rpm) = 6c54094e432087f3c7d7dce004647ab4
|
||||
SHA256 (rpm/i386/fedora/3/readline-4.3-13.src.rpm) = 33d8388683566249c92491ea5df981e1314d9d3a3cddab0e71ec00bf4c5fe200
|
||||
SIZE (rpm/i386/fedora/3/readline-4.3-13.src.rpm) = 751222
|
||||
MD5 (rpm/i386/fedora/3/rpm-4.3.2-21.src.rpm) = a55467109f45dabee826bdc400f534d4
|
||||
SHA256 (rpm/i386/fedora/3/rpm-4.3.2-21.src.rpm) = 54539980b54c3ba2717cd3cc0c73d589d39009e6d25e7897e34a93d74d7b62a1
|
||||
SIZE (rpm/i386/fedora/3/rpm-4.3.2-21.src.rpm) = 7879266
|
||||
MD5 (rpm/i386/fedora/3/setserial-2.17-17.src.rpm) = d8b5d3f1e80ef62bcb1fd0d31bb16871
|
||||
SHA256 (rpm/i386/fedora/3/setserial-2.17-17.src.rpm) = 3f01f745fe7392a72494fbf02a90caafdee61bcaddc36f2e0d5862ad1d117238
|
||||
SIZE (rpm/i386/fedora/3/setserial-2.17-17.src.rpm) = 60706
|
||||
MD5 (rpm/i386/fedora/3/setup-2.5.36-1.src.rpm) = 7c2d59a422e5ec5d96ef233aa9421271
|
||||
SHA256 (rpm/i386/fedora/3/setup-2.5.36-1.src.rpm) = fbef84a2094709f4f4c408b70dd373ffb68dadd983f2a00438406c9b5a35230e
|
||||
SIZE (rpm/i386/fedora/3/setup-2.5.36-1.src.rpm) = 38465
|
||||
MD5 (rpm/i386/fedora/3/slang-1.4.9-13.src.rpm) = 43f4d3c35528a85764c377127f3f45c3
|
||||
SHA256 (rpm/i386/fedora/3/slang-1.4.9-13.src.rpm) = 94c991637232931587d9c19caf522056ead8c42301043d191517562efee1c5c3
|
||||
SIZE (rpm/i386/fedora/3/slang-1.4.9-13.src.rpm) = 652479
|
||||
MD5 (rpm/i386/fedora/3/termcap-5.4-4fc3.src.rpm) = 338991b12ff778fc32275a293d3549bd
|
||||
SHA256 (rpm/i386/fedora/3/termcap-5.4-4fc3.src.rpm) = 3b672bf3f4a4fdb8188c72dfb3daebc58e752055073d53f98d1c419e3ff7521a
|
||||
SIZE (rpm/i386/fedora/3/termcap-5.4-4fc3.src.rpm) = 2403327
|
||||
MD5 (rpm/i386/fedora/3/zlib-1.2.1.2-3.fc3.src.rpm) = ec7a8a3e96b9aa31228c37f8bd4f110a
|
||||
SHA256 (rpm/i386/fedora/3/zlib-1.2.1.2-3.fc3.src.rpm) = 809d824b86d4940dd7306185a1e68e418593c28285bf6ef536e1228dd3b86fed
|
||||
SIZE (rpm/i386/fedora/3/zlib-1.2.1.2-3.fc3.src.rpm) = 366729
|
||||
@@ -1,15 +0,0 @@
|
||||
# sample yp.conf file
|
||||
#
|
||||
# Legal entries are:
|
||||
#
|
||||
# domainname <domain> Override the default YP domain
|
||||
# (If not set uses the one from
|
||||
# the getdomainname() syscall)
|
||||
#
|
||||
# ypserver <grape> [<domain>] Define which host to contact
|
||||
# for YP service. If the <domain>
|
||||
# argument is included then this
|
||||
# host service the specified YP
|
||||
# domain.
|
||||
#domainname my.domain
|
||||
#ypserver localhost
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/sh
|
||||
# a deinstallation script for linux_base
|
||||
|
||||
case "$2" in
|
||||
DEINSTALL)
|
||||
if [ -n "`mount | grep ^linproc`" ] || \
|
||||
[ -d /compat/linux/proc ]; then
|
||||
echo ""
|
||||
echo "You may need to do by hand:"
|
||||
echo " o unmount linprocfs if mounted"
|
||||
echo " o delete ${PKG_PREFIX}/proc if present"
|
||||
echo " o remove/comment linprocfs from /etc/fstab if present"
|
||||
echo ""
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
@@ -1,9 +0,0 @@
|
||||
This port contains packages from a near-minimal installation of Fedora Core
|
||||
Linux 3.0. These packages, in conjunction with the linux kernel module,
|
||||
form the basis of the Linux compatibility environment.
|
||||
|
||||
This port is only available for the i386/amd64 architecture (i386/32 bit mode).
|
||||
If you use an Alpha computer, please install the linux_base port instead
|
||||
of this one.
|
||||
|
||||
If you want to run X11 applications, install the x11/linux-XFree86-libs port.
|
||||
@@ -1,43 +0,0 @@
|
||||
#!/bin/sh
|
||||
# an installation script for linux_base
|
||||
|
||||
case "$2" in
|
||||
PRE-INSTALL)
|
||||
if [ -z "`kldstat -v | grep -E 'linux(aout|elf)'`" ]; then
|
||||
echo 'Linux mode is not enabled.'
|
||||
echo 'Loading linux kernel module now...'
|
||||
if ! kldload linux; then
|
||||
echo 'The linux kernel module could not be loaded.'
|
||||
echo 'Please enable linux mode manually and retry.'
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
POST-INSTALL)
|
||||
if [ -z "`grep ^linproc /etc/fstab`" ]; then
|
||||
echo ''
|
||||
echo '+++ Some programs may need linprocfs, please add it to /etc/fstab! +++'
|
||||
else
|
||||
if [ -z "`mount | grep -w ^linprocfs`" ]; then
|
||||
echo ''
|
||||
echo '+++ Please mount linprocfs manually! +++'
|
||||
fi
|
||||
fi
|
||||
if [ ! -f ${PKG_PREFIX}/etc/nsswitch.conf ]; then
|
||||
cp ${PKG_PREFIX}/etc/nsswitch.conf.dist \
|
||||
${PKG_PREFIX}/etc/nsswitch.conf
|
||||
fi
|
||||
if [ ! -f ${PKG_PREFIX}/etc/yp.conf ]; then
|
||||
cp ${PKG_PREFIX}/etc/yp.conf.sample ${PKG_PREFIX}/etc/yp.conf
|
||||
fi
|
||||
#
|
||||
# This is needed when updating to ensure that already installed libraries
|
||||
# are recorded in ${PKG_PREFIX}/etc/ld.so.cache
|
||||
#
|
||||
echo ''
|
||||
echo 'Running linux ldconfig...'
|
||||
${PKG_PREFIX}/sbin/ldconfig -r ${PKG_PREFIX}
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
@@ -1,20 +0,0 @@
|
||||
This software is based in part on the work of the FreeType Team.
|
||||
See <URL:http://www.freetype.org/>.
|
||||
|
||||
Installation of the Linux base system is finished. The Linux kernel
|
||||
mode, which must be enabled for Linux binaries to run, is now
|
||||
enabled. Linux mode can be enabled permanently with the linux_enable
|
||||
variable of rc.conf(5).
|
||||
|
||||
To make use of NIS you have to adjust yp.conf and nsswitch.conf in
|
||||
/compat/linux/etc/ accordingly. For example:
|
||||
|
||||
Set your yp-server and yp-domainname in yp.conf:
|
||||
domainname my.yp.domainname
|
||||
ypserver my.yp.server
|
||||
|
||||
Let your lists for hosts, passwd and group be resolved via nsswitch.conf:
|
||||
passwd: files nis
|
||||
shadow: files nis
|
||||
group: files nis
|
||||
hosts: files dns nis
|
||||
File diff suppressed because it is too large
Load Diff
@@ -301,7 +301,6 @@
|
||||
SUBDIR += lile
|
||||
SUBDIR += lingoteach
|
||||
SUBDIR += linm
|
||||
SUBDIR += linux-opengroupware
|
||||
SUBDIR += localedata
|
||||
SUBDIR += logsurfer
|
||||
SUBDIR += loop
|
||||
|
||||
@@ -1,230 +0,0 @@
|
||||
# New ports collection makefile for: linux-opengroupware.org
|
||||
# Date created: 2003-07-20
|
||||
# Whom: Frank Reppin
|
||||
#
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= opengroupware
|
||||
PORTVERSION= 1.0
|
||||
PORTREVISION= 5
|
||||
CATEGORIES= misc www linux
|
||||
MASTER_SITES= http://download.opengroupware.org/nightly/packages/freebsd/linux-opengroupware/RPMS/:ogo \
|
||||
http://download.opengroupware.org/nightly/packages/freebsd/linux-opengroupware/NGOBJWEB/:ngo \
|
||||
${MASTER_SITE_REDHAT_LINUX}
|
||||
MASTER_SITE_SUBDIR= updates/8.0/en/os/${MACHINE_ARCH}
|
||||
PKGNAMEPREFIX= linux-
|
||||
DISTFILES= ${SET1} \
|
||||
${SET2} \
|
||||
${SET3}
|
||||
EXTRACT_ONLY= ${NGOBJWEB_ADAPTOR}
|
||||
|
||||
MAINTAINER= frank@opengroupware.org
|
||||
COMMENT= Groupware package including mail, calendar, palm sync and much more
|
||||
|
||||
EXTRACT_DEPENDS= rpm2cpio:${PORTSDIR}/archivers/rpm
|
||||
RUN_DEPENDS= ${LOCALBASE}/sbin/apxs:${PORTSDIR}/www/apache20 \
|
||||
${LOCALBASE}/bin/bash:${PORTSDIR}/shells/bash2 \
|
||||
${LOCALBASE}/bin/gmake:${PORTSDIR}/devel/gmake
|
||||
|
||||
BROKEN= Will be replaced by a fixed version with migration instructions.
|
||||
EXPIRATION_DATE=2006-06-15
|
||||
|
||||
USE_PGSQL= yes
|
||||
|
||||
#BEGINSET1
|
||||
|
||||
SET1= opengroupware-core-4.2-ogo107.i386.rpm:ogo \
|
||||
opengroupware-core-tools-4.2-ogo107.i386.rpm:ogo \
|
||||
opengroupware-database-1.0-ogo022.i386.rpm:ogo \
|
||||
opengroupware-docapi-1.0-ogo101.i386.rpm:ogo \
|
||||
opengroupware-env-1.0-ogo016.i386.rpm:ogo \
|
||||
opengroupware-epoz-0.6.1-ogo003.i386.rpm:ogo \
|
||||
opengroupware-gstep-db-4.2-ogo042.i386.rpm:ogo \
|
||||
opengroupware-gstep-db-postgresql72-4.2-ogo042.i386.rpm:ogo \
|
||||
opengroupware-gstep-make-4.2-ogo009.i386.rpm:ogo \
|
||||
opengroupware-gstep-objc-2.95.3-ogo011.i386.rpm:ogo \
|
||||
opengroupware-js-1.5-ogo013.i386.rpm:ogo \
|
||||
opengroupware-libfoundation-1.0.25-ogo049.i386.rpm:ogo \
|
||||
opengroupware-libical-0.23.0-ogo010.i386.rpm:ogo \
|
||||
opengroupware-libxml2-2.6.11-ogo002.i386.rpm:ogo \
|
||||
opengroupware-libxslt-1.1.8-ogo002.i386.rpm:ogo \
|
||||
opengroupware-logic-1.0-ogo112.i386.rpm:ogo \
|
||||
opengroupware-nhsc-1.0-ogo001.i386.rpm:ogo \
|
||||
opengroupware-pda-1.0-ogo033.i386.rpm:ogo \
|
||||
opengroupware-pilot-link-0.10.99-ogo008.i386.rpm:ogo \
|
||||
opengroupware-plr-1.0-ogo008.i386.rpm:ogo \
|
||||
opengroupware-publisher-1.0-ogo020.i386.rpm:ogo \
|
||||
opengroupware-sope-4.2-ogo163.i386.rpm:ogo \
|
||||
opengroupware-theme-blue-de-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-blue-en-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-default-de-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-default-dk-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-default-en-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-default-es-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-default-it-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-kde-en-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-ooo-de-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-ooo-en-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-orange-de-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-theme-orange-en-1.0-ogo039.i386.rpm:ogo \
|
||||
opengroupware-tools-account-1.0-ogo031.i386.rpm:ogo \
|
||||
opengroupware-tools-aptnotify-1.0-ogo031.i386.rpm:ogo \
|
||||
opengroupware-tools-bulkmessages-1.0-ogo031.i386.rpm:ogo \
|
||||
opengroupware-tools-installsieve-1.0-ogo031.i386.rpm:ogo \
|
||||
opengroupware-webui-admin-1.0-ogo032.i386.rpm:ogo \
|
||||
opengroupware-webui-app-1.0-ogo054.i386.rpm:ogo \
|
||||
opengroupware-webui-common-1.0-ogo087.i386.rpm:ogo \
|
||||
opengroupware-webui-contact-1.0-ogo072.i386.rpm:ogo \
|
||||
opengroupware-webui-forms-1.0-ogo016.i386.rpm:ogo \
|
||||
opengroupware-webui-job-1.0-ogo037.i386.rpm:ogo \
|
||||
opengroupware-webui-libs-1.0-ogo059.i386.rpm:ogo \
|
||||
opengroupware-webui-mailer-1.0-ogo077.i386.rpm:ogo \
|
||||
opengroupware-webui-news-1.0-ogo018.i386.rpm:ogo \
|
||||
opengroupware-webui-prefs-1.0-ogo038.i386.rpm:ogo \
|
||||
opengroupware-webui-project-1.0-ogo077.i386.rpm:ogo \
|
||||
opengroupware-webui-resource-de-1.0-ogo132.i386.rpm:ogo \
|
||||
opengroupware-webui-resource-dk-1.0-ogo132.i386.rpm:ogo \
|
||||
opengroupware-webui-resource-en-1.0-ogo132.i386.rpm:ogo \
|
||||
opengroupware-webui-resource-es-1.0-ogo132.i386.rpm:ogo \
|
||||
opengroupware-webui-resource-fr-1.0-ogo132.i386.rpm:ogo \
|
||||
opengroupware-webui-resource-it-1.0-ogo132.i386.rpm:ogo \
|
||||
opengroupware-webui-resource-nl-1.0-ogo132.i386.rpm:ogo \
|
||||
opengroupware-webui-resource-pt_BR-1.0-ogo132.i386.rpm:ogo \
|
||||
opengroupware-webui-scheduler-1.0-ogo080.i386.rpm:ogo \
|
||||
opengroupware-xml-4.2-ogo066.i386.rpm:ogo \
|
||||
opengroupware-xml-STXSaxDriver-4.2-ogo066.i386.rpm:ogo \
|
||||
opengroupware-xml-icalsaxdriver-4.2-ogo066.i386.rpm:ogo \
|
||||
opengroupware-xml-libxmlsaxdriver-4.2-ogo066.i386.rpm:ogo \
|
||||
opengroupware-xmlrpcd-1.0-ogo049.i386.rpm:ogo \
|
||||
opengroupware-zidestore-1.2-ogo082.i386.rpm:ogo
|
||||
#ENDSET1
|
||||
|
||||
SET2= ${NGOBJWEB_ADAPTOR}:ngo
|
||||
SET3= postgresql-libs-7.2.4-5.80.i386.rpm \
|
||||
openssl-0.9.6b-35.8.i386.rpm \
|
||||
cyrus-sasl-2.1.10-1.i386.rpm \
|
||||
openldap-2.0.27-2.8.0.i386.rpm \
|
||||
pam-0.75-46.8.0.i386.rpm \
|
||||
krb5-libs-1.2.5-15.i386.rpm
|
||||
|
||||
NGOBJWEB_ADAPTOR= opengroupware.org-mod_ngobjweb-200407092000.tar.gz
|
||||
PATCHDIR?= ${MASTERDIR}/files
|
||||
USE_LINUX= yes
|
||||
USE_GMAKE= yes
|
||||
MAKEFILE= ${WRKSRC}/opengroupware.org-mod_ngobjweb/GNUmakefile
|
||||
BUILD_WRKSRC?= ${WRKSRC}/opengroupware.org-mod_ngobjweb
|
||||
NGWEB_ADAP_DIR= opengroupware.org-mod_ngobjweb
|
||||
PKGNAME_PREFIX= linux-
|
||||
|
||||
ONLY_FOR_ARCHS= i386
|
||||
NO_PACKAGE= We dont really build anything ...
|
||||
DIST_SUBDIR= ogo
|
||||
PLIST= ${WRKDIR}/pkg-plist
|
||||
MD5_FILE= ${MASTERDIR}/distinfo.${MACHINE_ARCH}
|
||||
PREFIX= ${LINUXBASE}
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
RPM2CPIO?= ${LOCALBASE}/bin/rpm2cpio
|
||||
CPIOFLAGS= --extract --make-directories --no-absolute-filenames \
|
||||
--preserve-modification-time --quiet
|
||||
RPMDIR= ${DISTDIR}/${DIST_SUBDIR}
|
||||
|
||||
REMOVEFILES= .md5sum .md5sum.changes \
|
||||
${NGOBJWEB_ADAPTOR} \
|
||||
etc/rc.d/init.d/saslauthd \
|
||||
usr/sbin/dbconverter-2 \
|
||||
usr/sbin/saslauthd \
|
||||
usr/sbin/sasldblistusers \
|
||||
usr/sbin/sasldblistusers2 \
|
||||
usr/sbin/saslpasswd \
|
||||
usr/sbin/saslpasswd2 \
|
||||
sbin/pam_console_apply \
|
||||
sbin/pam_tally \
|
||||
sbin/pam_timestamp_check \
|
||||
sbin/pwdb_chkpwd \
|
||||
sbin/unix_chkpwd \
|
||||
etc/krb5.conf \
|
||||
etc/rc.d/init.d/kdcrotate \
|
||||
usr/bin/openssl
|
||||
|
||||
REMOVEDIRS= ${NGWEB_ADAP_DIR} \
|
||||
etc/openldap \
|
||||
usr/share/openldap \
|
||||
usr/kerberos/share
|
||||
|
||||
do-extract:
|
||||
@${RM} -rf ${WRKDIR}
|
||||
@${MKDIR} ${WRKSRC}
|
||||
@${CP} ${DISTDIR}/${DIST_SUBDIR}/${EXTRACT_ONLY} ${WRKSRC}
|
||||
@(cd ${WRKSRC} && ${TAR} xfz ${EXTRACT_ONLY})
|
||||
|
||||
@for myfile in ${SET1} ${SET3}; do \
|
||||
ourfile=`${ECHO} $$myfile |${SED} -e 's/:ogo//'`; \
|
||||
${ECHO} "Extracting for: $$ourfile"; \
|
||||
(cd ${WRKSRC} && ${RPM2CPIO} ${RPMDIR}/$$ourfile | ${CPIO} ${CPIOFLAGS}); \
|
||||
done
|
||||
|
||||
post-build:
|
||||
${INSTALL} ${COPY} -m 644 ${WRKSRC}/${NGWEB_ADAP_DIR}/ngobjweb*.so ${WRKSRC}/opt/opengroupware.org
|
||||
|
||||
@for delfile in ${REMOVEFILES}; do \
|
||||
${ECHO} "Removing unecessary file in ${WRKSRC}: $$delfile"; \
|
||||
${RM} -f ${WRKSRC}/$$delfile; \
|
||||
done
|
||||
|
||||
@for deldir in ${REMOVEDIRS}; do \
|
||||
${ECHO} "Removing unecessary dir in ${WRKSRC}: $$deldir"; \
|
||||
${RM} -rf ${WRKSRC}/$$deldir; \
|
||||
done
|
||||
|
||||
.if !defined(EXTRACT_PRESERVE_OWNERSHIP)
|
||||
@if [ `id -u` = 0 ]; then \
|
||||
${CHMOD} -R ug-s ${WRKDIR}; \
|
||||
${CHOWN} -R 0:0 ${WRKDIR}; \
|
||||
fi
|
||||
.endif
|
||||
|
||||
pre-install:
|
||||
${RM} -f ${PLIST}
|
||||
cd ${WRKSRC} && ${FIND} -s . -type f -o -type l | \
|
||||
${CUT} -c3-999 >> ${PLIST} \
|
||||
&& ${FIND} -d * -type d | ${SED} -e 's:^:@dirrm :' >> ${PLIST}
|
||||
|
||||
do-install:
|
||||
cd ${WRKSRC} && ${FIND} * | ${CPIO} -dlmp ${PREFIX}
|
||||
${FIND} ${PREFIX} -type d \! -ipath '${LINUXBASE}/proc*' -exec ${CHMOD} 755 \{\} \;
|
||||
|
||||
post-install:
|
||||
@${MKDIR} ${LINUXBASE}/opt/opengroupware.org/documents
|
||||
@${CHMOD} 750 ${LINUXBASE}/opt/opengroupware.org/documents
|
||||
@${MKDIR} ${LINUXBASE}/opt/opengroupware.org/news
|
||||
@${CHMOD} 750 ${LINUXBASE}/opt/opengroupware.org/news
|
||||
@${ECHO} '/opt/skyrix/system/Libraries/ix86/linux-gnu/gnu-fd-nil' >>${LINUXBASE}/etc/ld.so.conf
|
||||
@${ECHO} '/opt/opengroupware.org/Libraries/ix86/linux-gnu/gnu-fd-nil' >>${LINUXBASE}/etc/ld.so.conf
|
||||
@${ECHO} '/usr/kerberos/lib' >>${LINUXBASE}/etc/ld.so.conf
|
||||
@${LN} -sf ${LINUXBASE}/usr/lib/libpq.so.2 ${LINUXBASE}/usr/lib/libpq.so.3
|
||||
@${LN} -sf ${LINUXBASE}/lib/libssl.so.0.9.6b ${LINUXBASE}/lib/libssl.so.9.6
|
||||
@${LN} -sf ${LINUXBASE}/lib/libcrypto.so.0.9.6b ${LINUXBASE}/lib/libcrypto.so.2
|
||||
@${PREFIX}/sbin/ldconfig
|
||||
@${SH} ${PKGDIR}/pkg-install ${PKGNAME} POST-INSTALL
|
||||
@${CHOWN} -Rh ogo:skyrix ${LINUXBASE}/opt/skyrix
|
||||
@${CHOWN} -Rh ogo:skyrix ${LINUXBASE}/opt/opengroupware.org
|
||||
@${INSTALL} -d -m 770 -o ogo -g skyrix /var/log/opengroupware
|
||||
@${CHOWN} -Rh ogo:skyrix /var/log/opengroupware
|
||||
@${INSTALL} -m 640 -o ogo -g skyrix ${FILESDIR}/OpenGroupware.org.sh.tmpl ${LINUXBASE}/opt/opengroupware.org/OpenGroupware.org.sh
|
||||
@${SH} ${PKGDIR}/pkg-install ${PKGNAME} WRITE-DEFAULTS-FIRSTTIME
|
||||
@${SH} ${PKGDIR}/pkg-install ${PKGNAME} COPY-TEMPLATES
|
||||
@${CHOWN} -Rh ogo:skyrix ${LINUXBASE}/opt/opengroupware.org/.libFoundation
|
||||
@${INSTALL} -m 500 -o root -g wheel ${FILESDIR}/ogo.sh.sample ${LOCALBASE}/etc/rc.d/ogo.sh.sample
|
||||
@${INSTALL} -m 500 -o root -g wheel ${FILESDIR}/zidestore.sh.sample ${LOCALBASE}/etc/rc.d/zidestore.sh.sample
|
||||
@${INSTALL} -m 500 -o root -g wheel ${FILESDIR}/xmlrpcd.sh.sample ${LOCALBASE}/etc/rc.d/xmlrpcd.sh.sample
|
||||
@${INSTALL} -m 500 -o root -g wheel ${FILESDIR}/nhsd.sh.sample ${LOCALBASE}/etc/rc.d/nhsd.sh.sample
|
||||
@${PERL} ${SCRIPTDIR}/patch_apache_version.pl
|
||||
@${CHOWN} -Rh ogo:skyrix ${LINUXBASE}/opt/opengroupware.org/OpenGroupware.org.apacheinclude
|
||||
@${INSTALL} -m 444 -o ogo -g skyrix ${FILESDIR}/INSTALL.fbsd ${LINUXBASE}/opt/opengroupware.org/INSTALL.fbsd
|
||||
@${ECHO} ''
|
||||
@fmt ${PKGMESSAGE}
|
||||
@${ECHO} ''
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
@@ -1,213 +0,0 @@
|
||||
MD5 (ogo/opengroupware-core-4.2-ogo107.i386.rpm) = 787cf85d735a1ddbe7685666af292756
|
||||
SHA256 (ogo/opengroupware-core-4.2-ogo107.i386.rpm) = e601e3dc0e5eba3c55d21477a5372bb144a1b2dba1da79db8d7295382c085b31
|
||||
SIZE (ogo/opengroupware-core-4.2-ogo107.i386.rpm) = 3570694
|
||||
MD5 (ogo/opengroupware-core-tools-4.2-ogo107.i386.rpm) = 6017997da628211d962aad6a8186ccee
|
||||
SHA256 (ogo/opengroupware-core-tools-4.2-ogo107.i386.rpm) = 41b8fd82eebc7f00cb196330ebfe489de5eea0db238bb21044818018122a9838
|
||||
SIZE (ogo/opengroupware-core-tools-4.2-ogo107.i386.rpm) = 27956
|
||||
MD5 (ogo/opengroupware-database-1.0-ogo022.i386.rpm) = 63791e65c4b235f39027e520d16407d6
|
||||
SHA256 (ogo/opengroupware-database-1.0-ogo022.i386.rpm) = 31ac73b68e7318e16daa7a9f3f795b16c2fd0d823d63474209d55521a4d10bc7
|
||||
SIZE (ogo/opengroupware-database-1.0-ogo022.i386.rpm) = 92165
|
||||
MD5 (ogo/opengroupware-docapi-1.0-ogo101.i386.rpm) = f1f325a300c66d8e3c6cf1c0002b6a38
|
||||
SHA256 (ogo/opengroupware-docapi-1.0-ogo101.i386.rpm) = 4347aa526ac1d364583df9d86f9e6db2fff0194670761305668b26077392055e
|
||||
SIZE (ogo/opengroupware-docapi-1.0-ogo101.i386.rpm) = 459642
|
||||
MD5 (ogo/opengroupware-env-1.0-ogo016.i386.rpm) = d473211df0887439b3785fc45055f4b6
|
||||
SHA256 (ogo/opengroupware-env-1.0-ogo016.i386.rpm) = 249edd188b1509842bde2139b96380054eb47236e3855aea68fb9847750ef952
|
||||
SIZE (ogo/opengroupware-env-1.0-ogo016.i386.rpm) = 9357
|
||||
MD5 (ogo/opengroupware-epoz-0.6.1-ogo003.i386.rpm) = cabc40bba9f9316a26126a884bbe8730
|
||||
SHA256 (ogo/opengroupware-epoz-0.6.1-ogo003.i386.rpm) = f8e1f5cbf69786344bbba952fecc6976d0ef93113980aef03b69c01c39df2688
|
||||
SIZE (ogo/opengroupware-epoz-0.6.1-ogo003.i386.rpm) = 32836
|
||||
MD5 (ogo/opengroupware-gstep-db-4.2-ogo042.i386.rpm) = 321f22583434519cd7039bb3c2fd19da
|
||||
SHA256 (ogo/opengroupware-gstep-db-4.2-ogo042.i386.rpm) = bcd73008ee0433677f57ecd4d8d98079bed527dd2e92f31415f81c667602b3ac
|
||||
SIZE (ogo/opengroupware-gstep-db-4.2-ogo042.i386.rpm) = 856448
|
||||
MD5 (ogo/opengroupware-gstep-db-postgresql72-4.2-ogo042.i386.rpm) = 074cf616e02bed2809bd7ff409c9a8ba
|
||||
SHA256 (ogo/opengroupware-gstep-db-postgresql72-4.2-ogo042.i386.rpm) = 97b64675e3fe7e7b3e316e67239707ac2e89e9c276286c671e0ca7faf579f5dc
|
||||
SIZE (ogo/opengroupware-gstep-db-postgresql72-4.2-ogo042.i386.rpm) = 248069
|
||||
MD5 (ogo/opengroupware-gstep-make-4.2-ogo009.i386.rpm) = d7ed33ae09dba61e1a43fdacef522655
|
||||
SHA256 (ogo/opengroupware-gstep-make-4.2-ogo009.i386.rpm) = 6f5869c5943d8342b8e54e2976ce7bac08074ad38fb3973573ff828d8bd1ff6a
|
||||
SIZE (ogo/opengroupware-gstep-make-4.2-ogo009.i386.rpm) = 366827
|
||||
MD5 (ogo/opengroupware-gstep-objc-2.95.3-ogo011.i386.rpm) = 664368dda13a95f041764f1c3569297a
|
||||
SHA256 (ogo/opengroupware-gstep-objc-2.95.3-ogo011.i386.rpm) = 831f303b021a3a205998845641964c6ebeea0701200c6ca137e5687fdd2b49ab
|
||||
SIZE (ogo/opengroupware-gstep-objc-2.95.3-ogo011.i386.rpm) = 210548
|
||||
MD5 (ogo/opengroupware-js-1.5-ogo013.i386.rpm) = d65a341f950fb9c18ed36bcadf88a13e
|
||||
SHA256 (ogo/opengroupware-js-1.5-ogo013.i386.rpm) = 03d61277a2b6838c0dfbaa4caf4e21ff5e951f3bcf876fd844d0dcc8ae40af9f
|
||||
SIZE (ogo/opengroupware-js-1.5-ogo013.i386.rpm) = 800138
|
||||
MD5 (ogo/opengroupware-libfoundation-1.0.25-ogo049.i386.rpm) = b17861dc60c7a1870dfb97834f84133c
|
||||
SHA256 (ogo/opengroupware-libfoundation-1.0.25-ogo049.i386.rpm) = 3d6485ae069fac978c631ead8ae96f2ed9a1a721ee803d7bbacd764fcc140f73
|
||||
SIZE (ogo/opengroupware-libfoundation-1.0.25-ogo049.i386.rpm) = 1521203
|
||||
MD5 (ogo/opengroupware-libical-0.23.0-ogo010.i386.rpm) = 6c7e02d1f2ffe5370cd12f60b27f5c4e
|
||||
SHA256 (ogo/opengroupware-libical-0.23.0-ogo010.i386.rpm) = 3b068b502ad8299618a0071e8ec1f5fd3c7c65d304ada9a3c6e2ab9372e198fd
|
||||
SIZE (ogo/opengroupware-libical-0.23.0-ogo010.i386.rpm) = 257827
|
||||
MD5 (ogo/opengroupware-libxml2-2.6.11-ogo002.i386.rpm) = d458371c832e0a0aa6892cab5f99171b
|
||||
SHA256 (ogo/opengroupware-libxml2-2.6.11-ogo002.i386.rpm) = 06cae8662f9d17df24663e64933f0f6cce15d8dafdea9ae3b30a09a13d56e835
|
||||
SIZE (ogo/opengroupware-libxml2-2.6.11-ogo002.i386.rpm) = 1233783
|
||||
MD5 (ogo/opengroupware-libxslt-1.1.8-ogo002.i386.rpm) = cf55761e7bd79f93393b5687a455141c
|
||||
SHA256 (ogo/opengroupware-libxslt-1.1.8-ogo002.i386.rpm) = fb44daeae64d7230143aac8f663ce4eebf8c1fa33d9d2b024e4da9e4648f6a56
|
||||
SIZE (ogo/opengroupware-libxslt-1.1.8-ogo002.i386.rpm) = 459934
|
||||
MD5 (ogo/opengroupware-logic-1.0-ogo112.i386.rpm) = cefc84a88377495c83eb722d4bd3e30f
|
||||
SHA256 (ogo/opengroupware-logic-1.0-ogo112.i386.rpm) = c10e6e43c1535df05731e743269d81feb8109cd6b00d496edd5c4554c88892b0
|
||||
SIZE (ogo/opengroupware-logic-1.0-ogo112.i386.rpm) = 792096
|
||||
MD5 (ogo/opengroupware-nhsc-1.0-ogo001.i386.rpm) = 3aeb1da6507593081bcd26592297273f
|
||||
SHA256 (ogo/opengroupware-nhsc-1.0-ogo001.i386.rpm) = df80ba427f217b224e14abc9e823acb5bb06cbb1080d5c2c3fbba5e3498512c2
|
||||
SIZE (ogo/opengroupware-nhsc-1.0-ogo001.i386.rpm) = 1979325
|
||||
MD5 (ogo/opengroupware-pda-1.0-ogo033.i386.rpm) = 699fd461e8464dc3f8a41b618dc2d277
|
||||
SHA256 (ogo/opengroupware-pda-1.0-ogo033.i386.rpm) = 15d758d30a4b3cb6c81a27bfb26053a4d2e9b253d6688674acffd766a20f1027
|
||||
SIZE (ogo/opengroupware-pda-1.0-ogo033.i386.rpm) = 358701
|
||||
MD5 (ogo/opengroupware-pilot-link-0.10.99-ogo008.i386.rpm) = 4b75fe9c7419b9337382620f283badbb
|
||||
SHA256 (ogo/opengroupware-pilot-link-0.10.99-ogo008.i386.rpm) = 26d38e63bc15e716e12459cf576cbfce69b4bfd0cfd322cc7deb6d3b844f8817
|
||||
SIZE (ogo/opengroupware-pilot-link-0.10.99-ogo008.i386.rpm) = 62859
|
||||
MD5 (ogo/opengroupware-plr-1.0-ogo008.i386.rpm) = 73dd9ae520b68482844ddfe0e1c88397
|
||||
SHA256 (ogo/opengroupware-plr-1.0-ogo008.i386.rpm) = 0a79c439a40ab8c58a844286328ed11722d02aefdca4c0c1011803332dc1b539
|
||||
SIZE (ogo/opengroupware-plr-1.0-ogo008.i386.rpm) = 185952
|
||||
MD5 (ogo/opengroupware-publisher-1.0-ogo020.i386.rpm) = 0022ed29467257e2419309b1c2f0caa7
|
||||
SHA256 (ogo/opengroupware-publisher-1.0-ogo020.i386.rpm) = 38f2eced151f7b10ecc43cd492d6797d51abf71677853e7cce1d28eb87e7ba19
|
||||
SIZE (ogo/opengroupware-publisher-1.0-ogo020.i386.rpm) = 235553
|
||||
MD5 (ogo/opengroupware-sope-4.2-ogo163.i386.rpm) = e2445d7d9decaf1cabefea7214e79adf
|
||||
SHA256 (ogo/opengroupware-sope-4.2-ogo163.i386.rpm) = b27152a3a97665ca7806852ed043a2c6e3ab599ab12f573ff74f94c145e21e12
|
||||
SIZE (ogo/opengroupware-sope-4.2-ogo163.i386.rpm) = 8956868
|
||||
MD5 (ogo/opengroupware-theme-blue-de-1.0-ogo039.i386.rpm) = 9d2dbbdaf4dc8b797d931aee359fcbc9
|
||||
SHA256 (ogo/opengroupware-theme-blue-de-1.0-ogo039.i386.rpm) = 550f96a34bef5d57a54ad2b69e1674f083f722acbb99332de7db0834735a4894
|
||||
SIZE (ogo/opengroupware-theme-blue-de-1.0-ogo039.i386.rpm) = 229254
|
||||
MD5 (ogo/opengroupware-theme-blue-en-1.0-ogo039.i386.rpm) = 2808cbb44705412e864b96551108ec6e
|
||||
SHA256 (ogo/opengroupware-theme-blue-en-1.0-ogo039.i386.rpm) = c8528af9059eb53f3a750930b40a040ae6c788042fd5d1c18a1ca47ee4466d53
|
||||
SIZE (ogo/opengroupware-theme-blue-en-1.0-ogo039.i386.rpm) = 247788
|
||||
MD5 (ogo/opengroupware-theme-default-de-1.0-ogo039.i386.rpm) = ac3927b5d1ce3ed8620fa68a1f361c0a
|
||||
SHA256 (ogo/opengroupware-theme-default-de-1.0-ogo039.i386.rpm) = 5a375ac8dffbc6d167941d80acfef9c938ebe534531cad5095c09f94f7dc491b
|
||||
SIZE (ogo/opengroupware-theme-default-de-1.0-ogo039.i386.rpm) = 372663
|
||||
MD5 (ogo/opengroupware-theme-default-dk-1.0-ogo039.i386.rpm) = c57ec12d448eb4d5cc942c97e1a5f190
|
||||
SHA256 (ogo/opengroupware-theme-default-dk-1.0-ogo039.i386.rpm) = 34ec004fbd3a7a558d4dc0a7ac90a7dbc69746076e1c12ac8d17dc7c1294b488
|
||||
SIZE (ogo/opengroupware-theme-default-dk-1.0-ogo039.i386.rpm) = 2939
|
||||
MD5 (ogo/opengroupware-theme-default-en-1.0-ogo039.i386.rpm) = 637c7e3fa3622ccde911187d62098113
|
||||
SHA256 (ogo/opengroupware-theme-default-en-1.0-ogo039.i386.rpm) = 5ae3038921e964c253fa5ef9e82c67d2e8ca0c97b234edcc347ffd1e89dc6fbc
|
||||
SIZE (ogo/opengroupware-theme-default-en-1.0-ogo039.i386.rpm) = 383584
|
||||
MD5 (ogo/opengroupware-theme-default-es-1.0-ogo039.i386.rpm) = ce17514bd2610d025d7f0e33dfc653d3
|
||||
SHA256 (ogo/opengroupware-theme-default-es-1.0-ogo039.i386.rpm) = af2af750f4de380a139ccfe12094b052fc375fc4816f8bfdce00a11301a3a025
|
||||
SIZE (ogo/opengroupware-theme-default-es-1.0-ogo039.i386.rpm) = 5735
|
||||
MD5 (ogo/opengroupware-theme-default-it-1.0-ogo039.i386.rpm) = 691fbc8e61a2b5b703828d53ac6081cc
|
||||
SHA256 (ogo/opengroupware-theme-default-it-1.0-ogo039.i386.rpm) = 2e8e2fd9edbdf4e9ef6547e4625161c67017a72aa857c5b348804f7706223eae
|
||||
SIZE (ogo/opengroupware-theme-default-it-1.0-ogo039.i386.rpm) = 2947
|
||||
MD5 (ogo/opengroupware-theme-kde-en-1.0-ogo039.i386.rpm) = be16e5d9944b7b2b8d2843aea420e784
|
||||
SHA256 (ogo/opengroupware-theme-kde-en-1.0-ogo039.i386.rpm) = 33b486fe59e5c6c78ccbe196eff4f1cd23486578d03961850836d25ff36c4a1c
|
||||
SIZE (ogo/opengroupware-theme-kde-en-1.0-ogo039.i386.rpm) = 1707269
|
||||
MD5 (ogo/opengroupware-theme-ooo-de-1.0-ogo039.i386.rpm) = 4691b3b6acd24622bec27b024bfe6b12
|
||||
SHA256 (ogo/opengroupware-theme-ooo-de-1.0-ogo039.i386.rpm) = b295618354ee5520b094e535d748ac2d6ae893fb918289ce14b4bf807ddf2572
|
||||
SIZE (ogo/opengroupware-theme-ooo-de-1.0-ogo039.i386.rpm) = 12613
|
||||
MD5 (ogo/opengroupware-theme-ooo-en-1.0-ogo039.i386.rpm) = 0db3a53f2ea5ea90e1dda1f6c2bf7bef
|
||||
SHA256 (ogo/opengroupware-theme-ooo-en-1.0-ogo039.i386.rpm) = cdfd393be56d2e340812592dc5cc7f342e2a04fc2acd56edea5cecfb9fe27a75
|
||||
SIZE (ogo/opengroupware-theme-ooo-en-1.0-ogo039.i386.rpm) = 20518
|
||||
MD5 (ogo/opengroupware-theme-orange-de-1.0-ogo039.i386.rpm) = c31c84492cacc1f6ddbd51cea8757739
|
||||
SHA256 (ogo/opengroupware-theme-orange-de-1.0-ogo039.i386.rpm) = 78a2b88e4edb04542346373e07d35867a62dcb5e9df46b286911f17e7257421d
|
||||
SIZE (ogo/opengroupware-theme-orange-de-1.0-ogo039.i386.rpm) = 365665
|
||||
MD5 (ogo/opengroupware-theme-orange-en-1.0-ogo039.i386.rpm) = 16f5b55777aaee43a5d84a101c62ce5b
|
||||
SHA256 (ogo/opengroupware-theme-orange-en-1.0-ogo039.i386.rpm) = a9d6c6fbd8d710bdd2cc4b72ad2d20074f02a80f965c016a0fa5c9540a673bba
|
||||
SIZE (ogo/opengroupware-theme-orange-en-1.0-ogo039.i386.rpm) = 530937
|
||||
MD5 (ogo/opengroupware-tools-account-1.0-ogo031.i386.rpm) = 92da43ed7e331556252ad9bbea87a844
|
||||
SHA256 (ogo/opengroupware-tools-account-1.0-ogo031.i386.rpm) = 51423f7f3a690910eec160a9f131488d51389efd869ea176a2099d5a5b01d31e
|
||||
SIZE (ogo/opengroupware-tools-account-1.0-ogo031.i386.rpm) = 16517
|
||||
MD5 (ogo/opengroupware-tools-aptnotify-1.0-ogo031.i386.rpm) = 26e581add282b4d130cb922163d0ee0e
|
||||
SHA256 (ogo/opengroupware-tools-aptnotify-1.0-ogo031.i386.rpm) = 9b53cf441b1f4d39186ade8754154de0fbe155453392c7f8119e4519796f417a
|
||||
SIZE (ogo/opengroupware-tools-aptnotify-1.0-ogo031.i386.rpm) = 19776
|
||||
MD5 (ogo/opengroupware-tools-bulkmessages-1.0-ogo031.i386.rpm) = 50c579750991d0d170a28522eff24137
|
||||
SHA256 (ogo/opengroupware-tools-bulkmessages-1.0-ogo031.i386.rpm) = 5406523c4add05c3f56c5b2be3c404ead63869fe1c52972e81fe5b99a7629dc7
|
||||
SIZE (ogo/opengroupware-tools-bulkmessages-1.0-ogo031.i386.rpm) = 10610
|
||||
MD5 (ogo/opengroupware-tools-installsieve-1.0-ogo031.i386.rpm) = e0ae1b6da52cd389dc27f970c0c64ecf
|
||||
SHA256 (ogo/opengroupware-tools-installsieve-1.0-ogo031.i386.rpm) = 3b09dd3265e402bc3ab3ae22a22a0649c67b6f17faf78050ee8f0f0a020c9961
|
||||
SIZE (ogo/opengroupware-tools-installsieve-1.0-ogo031.i386.rpm) = 10496
|
||||
MD5 (ogo/opengroupware-webui-admin-1.0-ogo032.i386.rpm) = c9677ec3a5dd11ae49fd690cd415817c
|
||||
SHA256 (ogo/opengroupware-webui-admin-1.0-ogo032.i386.rpm) = a3b8f656fd564a1b293e217b590276171cb26ca4785437d047d109ab7c63c4c8
|
||||
SIZE (ogo/opengroupware-webui-admin-1.0-ogo032.i386.rpm) = 52061
|
||||
MD5 (ogo/opengroupware-webui-app-1.0-ogo054.i386.rpm) = 8b9bed41b2ef7f78c1a78892283f6b21
|
||||
SHA256 (ogo/opengroupware-webui-app-1.0-ogo054.i386.rpm) = 6315072af92d4c53ee9306dc07c00adb64a0aba190a08ee6dd6f0235daa64579
|
||||
SIZE (ogo/opengroupware-webui-app-1.0-ogo054.i386.rpm) = 56560
|
||||
MD5 (ogo/opengroupware-webui-common-1.0-ogo087.i386.rpm) = 12a309903ce9a48d5c55219f24a6d180
|
||||
SHA256 (ogo/opengroupware-webui-common-1.0-ogo087.i386.rpm) = 65315b3bd9b788d5a3b2b52b2d70a64b89d7e99b7a13316af0937ce464af573b
|
||||
SIZE (ogo/opengroupware-webui-common-1.0-ogo087.i386.rpm) = 279870
|
||||
MD5 (ogo/opengroupware-webui-contact-1.0-ogo072.i386.rpm) = 071e442b251fa248c5cdb3f24d75507b
|
||||
SHA256 (ogo/opengroupware-webui-contact-1.0-ogo072.i386.rpm) = 3d3b78844e253c8199b4655dfde56adebc5a55985074551573fad1efe154a2d9
|
||||
SIZE (ogo/opengroupware-webui-contact-1.0-ogo072.i386.rpm) = 258545
|
||||
MD5 (ogo/opengroupware-webui-forms-1.0-ogo016.i386.rpm) = ee110794ec3caa7d9aeee00ccee259aa
|
||||
SHA256 (ogo/opengroupware-webui-forms-1.0-ogo016.i386.rpm) = 18798b78fa94f3af3579376d2a01bfe5b9d6556ebc094ee679d8adbee1a65c1a
|
||||
SIZE (ogo/opengroupware-webui-forms-1.0-ogo016.i386.rpm) = 37433
|
||||
MD5 (ogo/opengroupware-webui-job-1.0-ogo037.i386.rpm) = 983042db48d685fda22a269d9cd733a5
|
||||
SHA256 (ogo/opengroupware-webui-job-1.0-ogo037.i386.rpm) = bb34a14d6c818d1f8b5c932371c64b60fc4d1235798b48737ac80a99e75348d0
|
||||
SIZE (ogo/opengroupware-webui-job-1.0-ogo037.i386.rpm) = 86383
|
||||
MD5 (ogo/opengroupware-webui-libs-1.0-ogo059.i386.rpm) = a1627ce068d0c28ad8464224ab0a09fe
|
||||
SHA256 (ogo/opengroupware-webui-libs-1.0-ogo059.i386.rpm) = c29f0e6e14e5f6c35f2203c05f27332c217f932522634c843ea2feed73ecd3c0
|
||||
SIZE (ogo/opengroupware-webui-libs-1.0-ogo059.i386.rpm) = 104372
|
||||
MD5 (ogo/opengroupware-webui-mailer-1.0-ogo077.i386.rpm) = 56e5d0d21a20e65a8a6075a12f653917
|
||||
SHA256 (ogo/opengroupware-webui-mailer-1.0-ogo077.i386.rpm) = 4a5028aeccb72ec2c1898e93dfb513b19437346913b7f8318c5a6eb93daebbce
|
||||
SIZE (ogo/opengroupware-webui-mailer-1.0-ogo077.i386.rpm) = 305531
|
||||
MD5 (ogo/opengroupware-webui-news-1.0-ogo018.i386.rpm) = 1914ef503d185026f200edcf51b0222f
|
||||
SHA256 (ogo/opengroupware-webui-news-1.0-ogo018.i386.rpm) = 8697eb1f787a85122f7ef95a7119593a7424d8639933f46469e3fc47c0f18f47
|
||||
SIZE (ogo/opengroupware-webui-news-1.0-ogo018.i386.rpm) = 26803
|
||||
MD5 (ogo/opengroupware-webui-prefs-1.0-ogo038.i386.rpm) = 41638fdb5147b4682db87035c9d11c80
|
||||
SHA256 (ogo/opengroupware-webui-prefs-1.0-ogo038.i386.rpm) = e43b53857ed457d4ab5b597f7a0021994a3683311e1faac00a9ecd5a6daa236d
|
||||
SIZE (ogo/opengroupware-webui-prefs-1.0-ogo038.i386.rpm) = 56961
|
||||
MD5 (ogo/opengroupware-webui-project-1.0-ogo077.i386.rpm) = 7dddd355a0ec4075392091ced11710d4
|
||||
SHA256 (ogo/opengroupware-webui-project-1.0-ogo077.i386.rpm) = 48dc686485aabe96aea57729acd2f84f96b939682c85149387305cc0a0584686
|
||||
SIZE (ogo/opengroupware-webui-project-1.0-ogo077.i386.rpm) = 355377
|
||||
MD5 (ogo/opengroupware-webui-resource-de-1.0-ogo132.i386.rpm) = 4d43b6b1d19d8559f84625755a731fcb
|
||||
SHA256 (ogo/opengroupware-webui-resource-de-1.0-ogo132.i386.rpm) = 24f5f8d833af5dc0db85f95d4045bffb2b8a8aa21fe0dfab85b3c0ed9b23fdbf
|
||||
SIZE (ogo/opengroupware-webui-resource-de-1.0-ogo132.i386.rpm) = 70798
|
||||
MD5 (ogo/opengroupware-webui-resource-dk-1.0-ogo132.i386.rpm) = 28fe50fe1cd4745463d6f62cbc719d33
|
||||
SHA256 (ogo/opengroupware-webui-resource-dk-1.0-ogo132.i386.rpm) = cd72a5c3b58b3d21918323ff0452f1a2a944cfe7073356a7c59cf93ccb189dc3
|
||||
SIZE (ogo/opengroupware-webui-resource-dk-1.0-ogo132.i386.rpm) = 19546
|
||||
MD5 (ogo/opengroupware-webui-resource-en-1.0-ogo132.i386.rpm) = 275beecb9deafcab64387a1bb48f0732
|
||||
SHA256 (ogo/opengroupware-webui-resource-en-1.0-ogo132.i386.rpm) = 5bd3aa46efd6cc021e4cb56de87f90262641d428581388b93f48f30f982dc4a4
|
||||
SIZE (ogo/opengroupware-webui-resource-en-1.0-ogo132.i386.rpm) = 61755
|
||||
MD5 (ogo/opengroupware-webui-resource-es-1.0-ogo132.i386.rpm) = 09d813490afac8fa94fd5ef079facc92
|
||||
SHA256 (ogo/opengroupware-webui-resource-es-1.0-ogo132.i386.rpm) = 98a9c4b70daebf86f0381826817612628c75e504de40358cfd27ff6bc4aa36ff
|
||||
SIZE (ogo/opengroupware-webui-resource-es-1.0-ogo132.i386.rpm) = 63080
|
||||
MD5 (ogo/opengroupware-webui-resource-fr-1.0-ogo132.i386.rpm) = 448d3906e747f3aa2cb3a682f40322e5
|
||||
SHA256 (ogo/opengroupware-webui-resource-fr-1.0-ogo132.i386.rpm) = 6cb2eaf2e77a305d6bedd3dc493e879973d4c164f5b2e4b6a75e9a1c835ce0c2
|
||||
SIZE (ogo/opengroupware-webui-resource-fr-1.0-ogo132.i386.rpm) = 66834
|
||||
MD5 (ogo/opengroupware-webui-resource-it-1.0-ogo132.i386.rpm) = 2c9deeba36e50a347ac067472d05e64b
|
||||
SHA256 (ogo/opengroupware-webui-resource-it-1.0-ogo132.i386.rpm) = 4a2f984f1c9413f237f146f4fead23bcd79ba6798e7e943f97f894775dec1399
|
||||
SIZE (ogo/opengroupware-webui-resource-it-1.0-ogo132.i386.rpm) = 67048
|
||||
MD5 (ogo/opengroupware-webui-resource-nl-1.0-ogo132.i386.rpm) = fbba49567db50d620360cfd3cfab1d6c
|
||||
SHA256 (ogo/opengroupware-webui-resource-nl-1.0-ogo132.i386.rpm) = 9e57728e119b643c70bb6ed973f15ffc799f1920d6d0e88454a2c755a38502bf
|
||||
SIZE (ogo/opengroupware-webui-resource-nl-1.0-ogo132.i386.rpm) = 52015
|
||||
MD5 (ogo/opengroupware-webui-resource-pt_BR-1.0-ogo132.i386.rpm) = 7e8353a0697ee794f1504f45644e4abe
|
||||
SHA256 (ogo/opengroupware-webui-resource-pt_BR-1.0-ogo132.i386.rpm) = ef2975dc7fc4ff870fc0d4d050089862acd1371a9fb7168135a6140186068e53
|
||||
SIZE (ogo/opengroupware-webui-resource-pt_BR-1.0-ogo132.i386.rpm) = 65349
|
||||
MD5 (ogo/opengroupware-webui-scheduler-1.0-ogo080.i386.rpm) = 4611082e1ddc193916ef92fe6234b779
|
||||
SHA256 (ogo/opengroupware-webui-scheduler-1.0-ogo080.i386.rpm) = 91e7488e7794628ba474141a43422a928bded16b5a87c0f15863ced97bd66ba3
|
||||
SIZE (ogo/opengroupware-webui-scheduler-1.0-ogo080.i386.rpm) = 370195
|
||||
MD5 (ogo/opengroupware-xml-4.2-ogo066.i386.rpm) = 48918f0e7cc41baeda37256bd3063fc3
|
||||
SHA256 (ogo/opengroupware-xml-4.2-ogo066.i386.rpm) = 27f1a6f85298a7e8775d847434234c72a6858f270a3c53c3c662446c7fa38104
|
||||
SIZE (ogo/opengroupware-xml-4.2-ogo066.i386.rpm) = 2903506
|
||||
MD5 (ogo/opengroupware-xml-STXSaxDriver-4.2-ogo066.i386.rpm) = a17883e8a05e8048a30a33fa79a973f6
|
||||
SHA256 (ogo/opengroupware-xml-STXSaxDriver-4.2-ogo066.i386.rpm) = 4219f31e92e28f5d6c06a986e4d19eee4eb2c37a9d7d0978f7d0620b3e919298
|
||||
SIZE (ogo/opengroupware-xml-STXSaxDriver-4.2-ogo066.i386.rpm) = 168044
|
||||
MD5 (ogo/opengroupware-xml-icalsaxdriver-4.2-ogo066.i386.rpm) = e4d458b32b1762c78ebdd88c2b742858
|
||||
SHA256 (ogo/opengroupware-xml-icalsaxdriver-4.2-ogo066.i386.rpm) = eec3ca9ad4c0f99c471cba395ca98bd4fb1fe8c7e47afabc65c04155cde0ada2
|
||||
SIZE (ogo/opengroupware-xml-icalsaxdriver-4.2-ogo066.i386.rpm) = 87911
|
||||
MD5 (ogo/opengroupware-xml-libxmlsaxdriver-4.2-ogo066.i386.rpm) = 895117c555bd31cff549689d5cdf5b19
|
||||
SHA256 (ogo/opengroupware-xml-libxmlsaxdriver-4.2-ogo066.i386.rpm) = b97701ff417e7e89280bc00e724e93ccb3403a1fc756186d9a5559763f96fd89
|
||||
SIZE (ogo/opengroupware-xml-libxmlsaxdriver-4.2-ogo066.i386.rpm) = 181512
|
||||
MD5 (ogo/opengroupware-xmlrpcd-1.0-ogo049.i386.rpm) = 32e4b95ce432ff57371dcb4b06f2ef7b
|
||||
SHA256 (ogo/opengroupware-xmlrpcd-1.0-ogo049.i386.rpm) = 67fa0904d3bf9c9d4d982cbce03516a42f64978c80fcd8aa5eeea1d97c7d4557
|
||||
SIZE (ogo/opengroupware-xmlrpcd-1.0-ogo049.i386.rpm) = 115783
|
||||
MD5 (ogo/opengroupware-zidestore-1.2-ogo082.i386.rpm) = 4ee9549c324146753c44f9cdfc5c9c33
|
||||
SHA256 (ogo/opengroupware-zidestore-1.2-ogo082.i386.rpm) = fc9c767d3596555110876b37bc3b31b5ab6a6ea09e6519594ef3f6b5bfed630d
|
||||
SIZE (ogo/opengroupware-zidestore-1.2-ogo082.i386.rpm) = 463802
|
||||
MD5 (ogo/opengroupware.org-mod_ngobjweb-200407092000.tar.gz) = 54bff488e163f93fe5820055a6c746c9
|
||||
SHA256 (ogo/opengroupware.org-mod_ngobjweb-200407092000.tar.gz) = 640cf0dfe247147a496148a9cdf6cce0572797f01119330159f69ae97ab42c57
|
||||
SIZE (ogo/opengroupware.org-mod_ngobjweb-200407092000.tar.gz) = 24113
|
||||
MD5 (ogo/postgresql-libs-7.2.4-5.80.i386.rpm) = ef7265999840169355faa8e1154d589c
|
||||
SHA256 (ogo/postgresql-libs-7.2.4-5.80.i386.rpm) = 8836c1eb606a8092b8761c767064c4910eb64e30bdf1d0f8e7e637b12ffbe8f6
|
||||
SIZE (ogo/postgresql-libs-7.2.4-5.80.i386.rpm) = 556608
|
||||
MD5 (ogo/openssl-0.9.6b-35.8.i386.rpm) = b55dd770fb47b8f15c5c90e8e71b6f84
|
||||
SHA256 (ogo/openssl-0.9.6b-35.8.i386.rpm) = ee68e65101f6de8368e8ddc478b44725eaa339b1b9f6a286da1bb5c6e8476a48
|
||||
SIZE (ogo/openssl-0.9.6b-35.8.i386.rpm) = 1379193
|
||||
MD5 (ogo/cyrus-sasl-2.1.10-1.i386.rpm) = 0bf0d5b2e17a26e06f1b9e2cd02fdae3
|
||||
SHA256 (ogo/cyrus-sasl-2.1.10-1.i386.rpm) = 84599a3ac21e60987b5e5faa0b90d609b72d4ac2960b0d96a92493971bc141b4
|
||||
SIZE (ogo/cyrus-sasl-2.1.10-1.i386.rpm) = 201473
|
||||
MD5 (ogo/openldap-2.0.27-2.8.0.i386.rpm) = f6ffab19ae521c65396cc76d0a64c2c9
|
||||
SHA256 (ogo/openldap-2.0.27-2.8.0.i386.rpm) = 753bf837b11060bc3d5f00dc0fef143e59b168e87f3d68b3024962a3b1424bbc
|
||||
SIZE (ogo/openldap-2.0.27-2.8.0.i386.rpm) = 422193
|
||||
MD5 (ogo/pam-0.75-46.8.0.i386.rpm) = 25ebcb39f56c98cc064c34b2d048ed35
|
||||
SHA256 (ogo/pam-0.75-46.8.0.i386.rpm) = 5fbd26eefca55f0903a70cd1eb3d417c43107efa5c61545c08396996fd045f64
|
||||
SIZE (ogo/pam-0.75-46.8.0.i386.rpm) = 925587
|
||||
MD5 (ogo/krb5-libs-1.2.5-15.i386.rpm) = 9e36f2192f29e5e4c162cf1af0ee4f79
|
||||
SHA256 (ogo/krb5-libs-1.2.5-15.i386.rpm) = 2d7e93b1c8fd212a8e659901afad15716b280fd8e9329b9c445f1f2e3b2646c1
|
||||
SIZE (ogo/krb5-libs-1.2.5-15.i386.rpm) = 558413
|
||||
@@ -1,176 +0,0 @@
|
||||
GENERAL NOTE:
|
||||
=============
|
||||
|
||||
You're welcome to ask questions about OpenGroupware
|
||||
at
|
||||
|
||||
http://www.opengroupware.org
|
||||
|
||||
too. :p Don't hesitate.
|
||||
Beside the FAQ are several mailinglists and ofcourse
|
||||
our mailinglist archive as first aid kit.
|
||||
|
||||
INSTALLATION WALKTHROUGH:
|
||||
=========================
|
||||
|
||||
1) First of all - you must have linux compat mode
|
||||
activated.
|
||||
|
||||
Refer to:
|
||||
|
||||
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/linuxemu.html
|
||||
|
||||
on how to do this.
|
||||
|
||||
In short.... my rc.conf contains:
|
||||
|
||||
linux_enable="YES"
|
||||
|
||||
and I recompiled my kernel with the following options:
|
||||
|
||||
# Enable Linux ABI emulation
|
||||
options COMPAT_LINUX
|
||||
|
||||
# Enable the linux-like proc filesystem support (requires COMPAT_LINUX
|
||||
# and PSEUDOFS)
|
||||
options LINPROCFS
|
||||
|
||||
(kernel compilation is further described in:
|
||||
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-building.html)
|
||||
|
||||
You also want to add the following line into your /etc/fstab:
|
||||
|
||||
linproc /compat/linux/proc linprocfs rw 0 0
|
||||
|
||||
(If you don't have linproc mounted - OGo will teach you and coredump :P - so check twice)
|
||||
|
||||
|
||||
2) Make sure, that your PostgreSQL Installation
|
||||
listens on TCP Port 5432!
|
||||
You might want to read /usr/local/pgsql/post-install-notes
|
||||
before proceeding here. If absolutely nothing happens - you most likely
|
||||
forgot to initdb postgres itself :) (applies to clean, clear and naked installs only)
|
||||
|
||||
Typing (as root)
|
||||
|
||||
`netstat -an -p tcp|grep -i 5432`
|
||||
|
||||
should show you if it is.
|
||||
The output might look like:
|
||||
|
||||
[frank@minax]/usr/local/pgsql/data: netstat -an -p tcp|grep -i 5432
|
||||
tcp4 0 0 *.5432 *.* LISTEN
|
||||
|
||||
(Hoping that it is really PostgreSQL showing up there :))
|
||||
|
||||
`lsof -Pni|grep -i 5432`
|
||||
|
||||
should give you better results since it gives an output like this:
|
||||
|
||||
[frank@minax]/usr/local/pgsql/data: lsof -Pni|grep -i 5432
|
||||
postgres 411 pgsql 3u IPv4 0xc428cca8 0t0 TCP *:5432 (LISTEN)
|
||||
|
||||
If there's no output at all (ie. nothing similiar to what you've just seen)
|
||||
then you must reconfigure PostgreSQL.
|
||||
To do so edit:
|
||||
|
||||
'/usr/local/pgsql/data/postgresql.conf'
|
||||
|
||||
and make sure that there's the following line activated:
|
||||
|
||||
tcpip_socket = true
|
||||
|
||||
After applying this modification save and exit 'postgresql.conf'.
|
||||
Now restart PostgreSQL (there should be a start/stop script in your
|
||||
local_startup dir:
|
||||
|
||||
`/usr/local/etc/rc.d/010.pgsql.sh stop`
|
||||
`/usr/local/etc/rc.d/010.pgsql.sh start`
|
||||
|
||||
Voila!
|
||||
|
||||
3) If your apache2 doesn't want to start at all - after a successfully
|
||||
installation - make sure that you have:
|
||||
|
||||
apache2_enable="YES"
|
||||
|
||||
set in your /etc/rc.conf
|
||||
|
||||
Add an include statement into your current apache configuration,
|
||||
typically located in:
|
||||
|
||||
'/usr/local/etc/apache/httpd.conf'
|
||||
|
||||
Edit this file and add the following line:
|
||||
|
||||
'include /compat/linux/opt/opengroupware.org/OpenGroupware.org.apacheinclude'
|
||||
|
||||
(best place to add this might depend on your individual configuration, in my
|
||||
configuration I simply added this line at the very end of my httpd.conf)
|
||||
|
||||
Restart apache to activate the changes just made.
|
||||
|
||||
`/usr/local/etc/rc.d/apache.sh stop`
|
||||
`/usr/local/etc/rc.d/apache.sh start`
|
||||
|
||||
4) Add a postgresql User/Database for OpenGroupware:
|
||||
|
||||
`su - pgsql`
|
||||
`createdb ogo`
|
||||
`createuser -A -D ogo`
|
||||
|
||||
Install the database scheme:
|
||||
|
||||
`psql ogo ogo`
|
||||
|
||||
a shell like environment appears know... type there:
|
||||
|
||||
\i /compat/linux/opt/opengroupware.org/Database/PostgreSQL/pg-build-schema.psql
|
||||
|
||||
...and the basic database scheme gets installed.
|
||||
There's also a scheme with constraints in the same directory.
|
||||
It's safe to add this one too:
|
||||
|
||||
\i /compat/linux/opt/opengroupware.org/Database/PostgreSQL/pg-build-schema.psql.constraints
|
||||
|
||||
|
||||
Leave this shell with
|
||||
|
||||
\q
|
||||
|
||||
and CTRL-D back into your `root` account.
|
||||
|
||||
5) Restart PostgreSQL again.
|
||||
|
||||
6) Start OpenGroupware:
|
||||
|
||||
Copy /usr/local/etc.rc.d/ogo.sh.sample to ogo.sh and zidestore.sh.sample too.
|
||||
|
||||
Now edit both these files and find:
|
||||
"./WOApps/ZideStore.woa/ix86/linux-gnu/gnu-fd-nil/ZideStore -WOHttpAllowHost '(localhost, you.yourdomain.org)'>>${LOG} 2>&1 &" in it.
|
||||
Next, you have to modifie you.yourdomain.org to reflect your configuration.
|
||||
|
||||
After you have modified these files, just do a
|
||||
`/usr/local/etc/rc.d/ogo.sh. start`
|
||||
`/usr/local/etc/rc.d/zidetore.sh. start`
|
||||
|
||||
7) There are some other startscripts in /usr/local/etc/rc.d too:
|
||||
|
||||
nhsd.sh.sample - Network Hotsync (tm) Daemon
|
||||
useful if you want to use PALM [tm] Sync
|
||||
|
||||
xmlrpcd.sh.sample - XML-RPC Daemon
|
||||
as the name says - an XMLRPC daemon
|
||||
|
||||
zidestore.sh.sample - the famous ZideStore daemon
|
||||
necessary if you want to use thirdparty
|
||||
applications in conjunction with OGo.
|
||||
(Evolution, Mozilla, Apple iCal.app,
|
||||
KOrganizer, generic WebDAV clients ...)
|
||||
|
||||
|
||||
NOW POINT YOUR BROWSER TO:
|
||||
|
||||
http://<host.where.you.installed.tld>/OpenGroupware/
|
||||
|
||||
and enjoy! :)
|
||||
@@ -1,2 +0,0 @@
|
||||
export FORCED_USER_ROOT=/compat/linux/opt/opengroupware.org
|
||||
source /compat/linux/opt/skyrix/system/Makefiles/GNUstep.sh
|
||||
@@ -1,162 +0,0 @@
|
||||
{
|
||||
"absence_mode" = withAbsence;
|
||||
"address_blocksize" = 50;
|
||||
"enterprise_sub_view" = attributes;
|
||||
"formletter_kind" = winword;
|
||||
"job_blocksize" = 50;
|
||||
"job_no_of_cols" = 3;
|
||||
"job_view" = jobHistoryList;
|
||||
"joblist_view" = toDoList;
|
||||
"mail_editor_type" = internal;
|
||||
"mail_nextMesgAfterDelete" = 1;
|
||||
"mail_printviewer_headers" = (
|
||||
subject,
|
||||
from,
|
||||
to,
|
||||
cc,
|
||||
date
|
||||
);
|
||||
"mail_send_type" = plain;
|
||||
"mail_showUnreadMesgAsNext" = 1;
|
||||
"mail_show_all_unread_links" = 0;
|
||||
"mail_show_target_folder" = 1;
|
||||
"mail_viewAttachmentBodysInEditor" = 0;
|
||||
"mail_viewAttachmentsInline" = 1;
|
||||
"mail_viewImagesInline" = 1;
|
||||
"mail_viewStatus" = 0;
|
||||
"news_blocksize" = 30;
|
||||
"news_filterDays" = 7;
|
||||
"news_showNewsOnTop" = 0;
|
||||
"persons_sub_view" = attributes;
|
||||
"projects_blocksize" = 50;
|
||||
"projects_no_of_cols" = 3;
|
||||
"rootAccessformletter_kind" = 1;
|
||||
"rootAccessmail_editor_type" = 1;
|
||||
"rootAccessmail_send_type" = 1;
|
||||
"rootAccessmail_viewAttachmentsInline" = 1;
|
||||
"rootAccessmail_viewImagesInline" = 1;
|
||||
"rootAccessscheduler_end_hour" = 1;
|
||||
"rootAccessscheduler_start_hour" = 1;
|
||||
"rootAccessscheduler_time_input_type" = 1;
|
||||
"rootAccessscheduler_view" = 1;
|
||||
"scheduler_additional_popup_entries" = 20;
|
||||
"scheduler_appointment_view" = attributes;
|
||||
"scheduler_custom_everyyear_holidays" = {};
|
||||
"scheduler_custom_holidays" = {};
|
||||
"scheduler_daychart_columnsperday" = 24;
|
||||
"scheduler_dayoverview_dayend" = 1080;
|
||||
"scheduler_dayoverview_daystart" = 480;
|
||||
"scheduler_dayoverview_timeinterval" = 3600;
|
||||
"scheduler_end_hour" = 12;
|
||||
"scheduler_mail_template_date_format" = "%Y-%m-%d";
|
||||
"scheduler_no_of_cols" = 2;
|
||||
"scheduler_overview_short_info" = 1;
|
||||
"scheduler_overview_with_resources" = 1;
|
||||
"scheduler_popup_persons" = (
|
||||
|
||||
);
|
||||
"scheduler_popup_resourceNames" = (
|
||||
|
||||
);
|
||||
"scheduler_popup_teams" = (
|
||||
|
||||
);
|
||||
"scheduler_show_holiday_christmasEve" = 1;
|
||||
"scheduler_show_holiday_deathsSunday" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_advent" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_bay" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_ber" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_bra" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_bre" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_bwb" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_bylaw" = 1;
|
||||
"scheduler_show_holiday_holidaygroup_custom_all" = 1;
|
||||
"scheduler_show_holiday_holidaygroup_custom_private" = 1;
|
||||
"scheduler_show_holiday_holidaygroup_hes" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_hh" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_mvp" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_nrw" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_nsa" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_rpf" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_saa" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_sac" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_sah" = 1;
|
||||
"scheduler_show_holiday_holidaygroup_slh" = 0;
|
||||
"scheduler_show_holiday_holidaygroup_thu" = 0;
|
||||
"scheduler_show_holiday_mothersDay" = 0;
|
||||
"scheduler_show_holiday_newYearsEve" = 1;
|
||||
"scheduler_show_holiday_shrovetide" = 0;
|
||||
"scheduler_show_holiday_summertimeChange" = 1;
|
||||
"scheduler_show_holiday_wintertimeChange" = 1;
|
||||
"scheduler_start_hour" = 11;
|
||||
"scheduler_time_input_type" = PopUp;
|
||||
"scheduler_view" = overview;
|
||||
"scheduler_weekchart_columnsperday" = 24;
|
||||
"scheduler_write_access_accounts" = (
|
||||
|
||||
);
|
||||
"scheduler_write_access_teams" = (
|
||||
|
||||
);
|
||||
"skyp4_desktop_tab" = favorites;
|
||||
"skyp4_projectviewer_tab" = attributes;
|
||||
"usermanager_blocksize" = 30;
|
||||
ImapSentFolderName = "sent-mail";
|
||||
JobPreferredExecutantsEnabled = YES;
|
||||
JobReferredPersonEnabled = YES;
|
||||
LSPageRefreshOnBacktrack = YES;
|
||||
LSPluginEnabledUserAgents = (
|
||||
"Mozilla/4.0 (compatible; MSIE"
|
||||
);
|
||||
LSPluginViewerEnabled = YES;
|
||||
ServerSideSortingDisabled = NO;
|
||||
ShowOnlySubscribedInRoot = YES;
|
||||
ShowOnlySubscribedInSubFolders = YES;
|
||||
ShowVacationPanel = YES;
|
||||
SkyButtonRowDefaultButtonsLeft = 0;
|
||||
SkyButtonRowHideInactiveButtons = 1;
|
||||
SkyButtonTextMode = 0;
|
||||
SkyDockShowBookmarks = 1;
|
||||
SkyDockShowDesktop = 1;
|
||||
SkyDockTextMode = 0;
|
||||
SkyDockablePagesOrdering = (
|
||||
UserManager,
|
||||
News,
|
||||
Scheduler2,
|
||||
ResourceScheduler,
|
||||
Persons,
|
||||
Enterprises,
|
||||
Projects,
|
||||
Jobs,
|
||||
Imap,
|
||||
PalmSync
|
||||
);
|
||||
SkyLanguages = (
|
||||
English_OOo,
|
||||
German_OOo,
|
||||
English_blue,
|
||||
German_blue,
|
||||
English_orange,
|
||||
German_orange,
|
||||
English_kde
|
||||
);
|
||||
SkyMaxFavoritesCount = 5;
|
||||
SkyMaxNavLabelLength = 32;
|
||||
UseSkyrixLoginForImap = NO;
|
||||
WOCachingEnabled = YES;
|
||||
WOContactSNS = NO;
|
||||
WODebuggingEnabled = YES;
|
||||
WODefaultSessionTimeout = 1200;
|
||||
WOResourcePrefix = "";
|
||||
WOUseWatchDog = NO;
|
||||
language = "English";
|
||||
popupIfNewMails = 1;
|
||||
rootAccessSkyDockShowBookmarks = 1;
|
||||
rootAccessSkyDockShowDesktop = 1;
|
||||
rootAccessSkyDockablePagesOrdering = 1;
|
||||
rootAccesslanguage = 1;
|
||||
rootAccesstimezone = 1;
|
||||
timezone = MET;
|
||||
OGoMinimumActiveSessionCount = 0;
|
||||
ImapDebugEnabled = NO;
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
SxExplain = NO;
|
||||
WOCachingEnabled = YES;
|
||||
WOHttpTransactionUseSimpleParser = YES;
|
||||
WOPort = "localhost:20001";
|
||||
ZLFolderRefresh = 1;
|
||||
ZLShowGroupOverviewCalendars = YES;
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
#!/bin/sh
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Frank Reppin <frank.reppin@boerde.de>
|
||||
|
||||
OGO_USER='ogo'
|
||||
OGO_GROUP='skyrix'
|
||||
NHSD_BIN='/compat/linux/opt/opengroupware.org/Tools/ix86/linux-gnu/gnu-fd-nil/nhsd'
|
||||
OGO_DIR='/compat/linux/opt/opengroupware.org'
|
||||
LOG='/var/log/opengroupware/nhsd.log'
|
||||
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
[ ! -f ${LOG} ] && {
|
||||
echo 'No NHSD logfile present in /var/log/opengroupware - creating one...'
|
||||
touch ${LOG}
|
||||
chmod 600 ${LOG}
|
||||
chown ${OGO_USER}:${OGO_GROUP} ${LOG}
|
||||
echo 'done!'
|
||||
}
|
||||
|
||||
chmod 600 ${LOG}
|
||||
chown ${OGO_USER}:${OGO_GROUP} ${LOG}
|
||||
|
||||
[ -x ${NHSD_BIN} ] && {
|
||||
su -l ${OGO_USER} -c \
|
||||
"./Tools/ix86/linux-gnu/gnu-fd-nil/nhsd >>${LOG} 2>&1 &"
|
||||
echo 'Network Hotsync [tm] daemon started.'
|
||||
echo "**** RECEIVED 'start' from STARTSCRIPT at `date` ****" >>${LOG}
|
||||
}
|
||||
;;
|
||||
|
||||
stop)
|
||||
killall -9 nhsd >/dev/null 2>&1
|
||||
killall -9 nhsd >/dev/null 2>&1
|
||||
echo 'Network Hotsync [TM] daemon stopped.'
|
||||
echo "" >>${LOG}
|
||||
echo "**** RECEIVED 'stop' from STARTSCRIPT at `date` ****" >>${LOG}
|
||||
;;
|
||||
|
||||
restart)
|
||||
|
||||
./$0 stop
|
||||
./$0 start
|
||||
;;
|
||||
|
||||
status)
|
||||
ps auxwwwww|grep -vi grep|grep -i '/gnu-fd-nil/nhsd'
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "usage: `basename $0` {start|stop|restart|status|}" >&2
|
||||
exit 64
|
||||
;;
|
||||
esac
|
||||
@@ -1,57 +0,0 @@
|
||||
#!/bin/sh
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Frank Reppin <frank.reppin@boerde.de>
|
||||
|
||||
OGO_USER='ogo'
|
||||
OGO_GROUP='skyrix'
|
||||
OGO_BIN='/compat/linux/opt/opengroupware.org/WOApps/OpenGroupware.woa/ix86/linux-gnu/gnu-fd-nil/OpenGroupware'
|
||||
OGO_DIR='/compat/linux/opt/opengroupware.org'
|
||||
LOG='/var/log/opengroupware/ogo.log'
|
||||
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
[ ! -f ${LOG} ] && {
|
||||
echo 'No OGo logfile present in /var/log/opengroupware - creating one...'
|
||||
touch ${LOG}
|
||||
chmod 600 ${LOG}
|
||||
chown ${OGO_USER}:${OGO_GROUP} ${LOG}
|
||||
echo 'done!'
|
||||
}
|
||||
|
||||
chmod 600 ${LOG}
|
||||
chown ${OGO_USER}:${OGO_GROUP} ${LOG}
|
||||
|
||||
[ -x ${OGO_BIN} ] && {
|
||||
su -l ${OGO_USER} -c \
|
||||
# the next line must be comment out and modified to reflect your configuration in order to start OpenGroupware
|
||||
# "./WOApps/OpenGroupware.woa/ix86/linux-gnu/gnu-fd-nil/OpenGroupware -WOHttpAllowHost '(localhost, you.yourdomain.org)' >>${LOG} 2>&1 &"
|
||||
echo 'OpenGroupware started.'
|
||||
echo "**** RECEIVED 'start' from STARTSCRIPT at `date` ****" >>${LOG}
|
||||
}
|
||||
;;
|
||||
|
||||
stop)
|
||||
killall -9 OpenGroupware >/dev/null 2>&1
|
||||
killall -9 OpenGroupware >/dev/null 2>&1
|
||||
echo 'OpenGroupware stopped.'
|
||||
echo "" >>${LOG}
|
||||
echo "**** RECEIVED 'stop' from STARTSCRIPT at `date` ****" >>${LOG}
|
||||
;;
|
||||
|
||||
restart)
|
||||
|
||||
./$0 stop
|
||||
./$0 start
|
||||
;;
|
||||
|
||||
status)
|
||||
ps auxwwwww|grep -vi grep|grep -i '/gnu-fd-nil/OpenGroupware'
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "usage: `basename $0` {start|stop|restart|status|}" >&2
|
||||
exit 64
|
||||
;;
|
||||
esac
|
||||
@@ -1,11 +0,0 @@
|
||||
--- opengroupware.org-mod_ngobjweb.dist/GNUmakefile Tue Jul 15 14:39:08 2003
|
||||
+++ opengroupware.org-mod_ngobjweb/GNUmakefile Sat Oct 11 20:32:42 2003
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
# config
|
||||
|
||||
-APACHE = /usr
|
||||
+APACHE = /usr/local
|
||||
APXS = $(APACHE)/sbin/apxs
|
||||
HTTPD = $(APACHE)/sbin/httpd
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
--- opt/skyrix/system/Makefiles/GNUstep.sh.dist Wed Jul 23 20:26:13 2003
|
||||
+++ opt/skyrix/system/Makefiles/GNUstep.sh Wed Jul 23 20:27:27 2003
|
||||
@@ -27,13 +27,13 @@
|
||||
#
|
||||
# Set the GNUstep system root and local root
|
||||
#
|
||||
-GNUSTEP_ROOT=/opt/skyrix/system
|
||||
+GNUSTEP_ROOT=/compat/linux/opt/skyrix/system
|
||||
|
||||
if [ -z "$FORCED_USER_ROOT" ]; then
|
||||
FORCED_USER_ROOT=
|
||||
fi
|
||||
|
||||
-GNUSTEP_SYSTEM_ROOT=/opt/skyrix/system
|
||||
+GNUSTEP_SYSTEM_ROOT=/compat/linux/opt/skyrix/system
|
||||
GNUSTEP_FLATTENED=
|
||||
if [ -z "$LIBRARY_COMBO" ]; then
|
||||
LIBRARY_COMBO=gnu-fd-nil
|
||||
@@ -43,8 +43,8 @@
|
||||
GNUSTEP_MAKEFILES=$GNUSTEP_SYSTEM_ROOT/Makefiles
|
||||
export GNUSTEP_MAKEFILES
|
||||
|
||||
-GNUSTEP_LOCAL_ROOT=/opt/skyrix/system
|
||||
-GNUSTEP_NETWORK_ROOT=/opt/skyrix/system
|
||||
+GNUSTEP_LOCAL_ROOT=/compat/linux/opt/skyrix/system
|
||||
+GNUSTEP_NETWORK_ROOT=/compat/linux/opt/skyrix/system
|
||||
export GNUSTEP_LOCAL_ROOT GNUSTEP_NETWORK_ROOT
|
||||
|
||||
# test to see if GNUSTEP_ROOT is in Win32 standard form and flag it
|
||||
@@ -1,11 +0,0 @@
|
||||
--- opt/opengroupware.org/.bash_profile.orig Tue Apr 27 11:56:09 2004
|
||||
+++ opt/opengroupware.org/.bash_profile Sun Jul 18 22:24:31 2004
|
||||
@@ -5,7 +5,7 @@
|
||||
#remove the comment in front of the next line if you're on RedHat9/FC1/FC2
|
||||
#and if you are running SUSE9.1
|
||||
#export LD_ASSUME_KERNEL=2.4.1
|
||||
-source /opt/opengroupware.org/OpenGroupware.org.sh
|
||||
+source /compat/linux/opt/opengroupware.org/OpenGroupware.org.sh
|
||||
export SASL_PATH="${GNUSTEP_USER_ROOT}/Library/Plugins/Plain.plugin/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO"
|
||||
export PYTHONPATH=${GNUSTEP_USER_ROOT}/Tools
|
||||
export PILOTPORT="net:any:14238"
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
AptNotifyBeVerbose = NO;
|
||||
AptNotifyFromAddress = "ogo@localhost";
|
||||
AptNotifySentResourcesFile = "/var/log/opengroupware/OGosent-resources";
|
||||
AptNotifySkyrixPassword = "";
|
||||
AptNotifySkyrixUser = root;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
LSMaxSearchCount = 1000;
|
||||
WOPort = "localhost:20000";
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
#!/bin/sh
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Frank Reppin <frank.reppin@boerde.de>
|
||||
|
||||
OGO_USER='ogo'
|
||||
OGO_GROUP='skyrix'
|
||||
XMLRPCD_BIN='/compat/linux/opt/opengroupware.org/Tools/ix86/linux-gnu/gnu-fd-nil/xmlrpcd'
|
||||
OGO_DIR='/compat/linux/opt/opengroupware.org'
|
||||
LOG='/var/log/opengroupware/xmlrpcd.log'
|
||||
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
[ ! -f ${LOG} ] && {
|
||||
echo 'No XMLRPCD logfile present in /var/log/opengroupware - creating one...'
|
||||
touch ${LOG}
|
||||
chmod 600 ${LOG}
|
||||
chown ${OGO_USER}:${OGO_GROUP} ${LOG}
|
||||
echo 'done!'
|
||||
}
|
||||
|
||||
chmod 600 ${LOG}
|
||||
chown ${OGO_USER}:${OGO_GROUP} ${LOG}
|
||||
|
||||
[ -x ${XMLRPCD_BIN} ] && {
|
||||
su -l ${OGO_USER} -c \
|
||||
"./Tools/ix86/linux-gnu/gnu-fd-nil/xmlrpcd >>${LOG} 2>&1 &"
|
||||
echo 'XMLRPCD started.'
|
||||
echo "**** RECEIVED 'start' from STARTSCRIPT at `date` ****" >>${LOG}
|
||||
}
|
||||
;;
|
||||
|
||||
stop)
|
||||
killall -9 xmlrpcd >/dev/null 2>&1
|
||||
killall -9 xmlrpcd >/dev/null 2>&1
|
||||
echo 'XMLRPCD stopped.'
|
||||
echo "" >>${LOG}
|
||||
echo "**** RECEIVED 'stop' from STARTSCRIPT at `date` ****" >>${LOG}
|
||||
;;
|
||||
|
||||
restart)
|
||||
|
||||
./$0 stop
|
||||
./$0 start
|
||||
;;
|
||||
|
||||
status)
|
||||
ps auxwwwww|grep -vi grep|grep -i '/gnu-fd-nil/xmlrpcd'
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "usage: `basename $0` {start|stop|restart|status|}" >&2
|
||||
exit 64
|
||||
;;
|
||||
esac
|
||||
@@ -1,57 +0,0 @@
|
||||
#!/bin/sh
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Frank Reppin <frank.reppin@boerde.de>
|
||||
|
||||
OGO_USER='ogo'
|
||||
OGO_GROUP='skyrix'
|
||||
ZIDE_BIN='/compat/linux/opt/opengroupware.org/WOApps/ZideStore.woa/ix86/linux-gnu/gnu-fd-nil/ZideStore'
|
||||
OGO_DIR='/compat/linux/opt/opengroupware.org'
|
||||
LOG='/var/log/opengroupware/zidestore.log'
|
||||
|
||||
|
||||
case $1 in
|
||||
start)
|
||||
[ ! -f ${LOG} ] && {
|
||||
echo 'No ZideStore logfile present in /var/log/opengroupware - creating one...'
|
||||
touch ${LOG}
|
||||
chmod 600 ${LOG}
|
||||
chown ${OGO_USER}:${OGO_GROUP} ${LOG}
|
||||
echo 'done!'
|
||||
}
|
||||
|
||||
chmod 600 ${LOG}
|
||||
chown ${OGO_USER}:${OGO_GROUP} ${LOG}
|
||||
|
||||
[ -x ${ZIDE_BIN} ] && {
|
||||
su -l ${OGO_USER} -c \
|
||||
#the next line must be comment out and modified to reflect your configuration in order to start OpenGroupware
|
||||
# "./WOApps/ZideStore.woa/ix86/linux-gnu/gnu-fd-nil/ZideStore -WOHttpAllowHost '(localhost, you.yourdomain.org)'>>${LOG} 2>&1 &"
|
||||
echo 'ZideStore started.'
|
||||
echo "**** RECEIVED 'start' from STARTSCRIPT at `date` ****" >>${LOG}
|
||||
}
|
||||
;;
|
||||
|
||||
stop)
|
||||
killall -9 ZideStore >/dev/null 2>&1
|
||||
killall -9 ZideStore >/dev/null 2>&1
|
||||
echo 'ZideStore stopped.'
|
||||
echo "" >>${LOG}
|
||||
echo "**** RECEIVED 'stop' from STARTSCRIPT at `date` ****" >>${LOG}
|
||||
;;
|
||||
|
||||
restart)
|
||||
|
||||
./$0 stop
|
||||
./$0 start
|
||||
;;
|
||||
|
||||
status)
|
||||
ps auxwwwww|grep -vi grep|grep -i '/gnu-fd-nil/ZideStore'
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "usage: `basename $0` {start|stop|restart|status|}" >&2
|
||||
exit 64
|
||||
;;
|
||||
esac
|
||||
@@ -1,8 +0,0 @@
|
||||
Mission: To create, as a community, the leading open source groupware server
|
||||
to integrate with the leading open source office suite products and all the
|
||||
leading groupware clients running across all major platforms, and to provide
|
||||
access to all functionality and data through open XML-based interfaces and APIs.
|
||||
|
||||
WWW: http://www.opengroupware.org
|
||||
|
||||
Frank Reppin <frank.reppin@boerde.de>
|
||||
@@ -1,120 +0,0 @@
|
||||
#!/bin/sh
|
||||
#$Id: pkg-install,v 1.2 2003/09/13 14:59:44 frank Exp $
|
||||
# Frank Reppin
|
||||
# $FreeBSD$
|
||||
|
||||
case $2 in
|
||||
POST-INSTALL)
|
||||
|
||||
OGO_USER='ogo'
|
||||
OGO_GROUP='skyrix'
|
||||
OGO_HOME='/compat/linux/opt/opengroupware.org'
|
||||
OGO_DST='/compat/linux/opt'
|
||||
OGO_DESCR='OpenGroupware'
|
||||
OGO_SHELL='/usr/local/bin/bash'
|
||||
|
||||
echo "######################################################################################"
|
||||
echo "Creating neccessary user/group"
|
||||
if pw group show "${OGO_GROUP}" 2>/dev/null; then
|
||||
echo "Found existing group \"${OGO_GROUP}\", nothing to be done for me here."
|
||||
else
|
||||
if pw group add ${OGO_GROUP}; then
|
||||
echo "Successfully added group: \"${OGO_GROUP}\"."
|
||||
else
|
||||
echo "pw group add ${OGO_GROUP} failed :/."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if pw user show "${OGO_USER}" 2>/dev/null; then
|
||||
echo "Found existing user \"${OGO_USER}\", nothing to be done for me here."
|
||||
else
|
||||
if pw user add ${OGO_USER} -g ${OGO_GROUP} -c ${OGO_DESCR} -d ${OGO_HOME} -s ${OGO_SHELL}; then
|
||||
echo "Successfully added user: \"${OGO_USER}\"."
|
||||
else
|
||||
echo "pw user add ${OGO_USER} failed :/."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo "######################################################################################"
|
||||
;;
|
||||
|
||||
WRITE-DEFAULTS-FIRSTTIME)
|
||||
|
||||
OGO='ogo'
|
||||
OGO_GROUP='skyrix'
|
||||
SU='/usr/bin/su'
|
||||
ME=`hostname`
|
||||
DW='Defaults write'
|
||||
DR='Defaults read'
|
||||
|
||||
#just to be sure I am already there... weird issue if not
|
||||
mkdir -p /compat/linux/opt/opengroupware.org/.libFoundation/Defaults
|
||||
chown -Rh ${OGO}:${OGO_GROUP} /compat/linux/opt/opengroupware.org/.libFoundation
|
||||
if [ ! -e /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/NSGlobalDomain.plist ] 2>/dev/null; then
|
||||
echo "There seems to be no previous OGo installation..."
|
||||
echo "going to write \`Defaults\` to .libFoundation/Defaults/NSGlobalDomain.plist"
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain skyrix_id ${ME}" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain LSAdaptor PostgreSQL72" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain LSModelName OpenGroupware.org_PostgreSQL" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain LSMaxSearchCount 500" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain LSConnectionDictionary '{hostName=localhost; userName=ogo; password=\"\"; port=5432; databaseName=ogo}'" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain LSAttachmentPath \"/compat/linux/opt/opengroupware.org/documents\"" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain LSNewsImagesPath \"/compat/linux/opt/opengroupware.org/news\"" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain LSNewsImagesUrl \"/ArticleImages\"" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain NGBundlePath \"/compat/linux/opt/opengroupware.org/Library/OpenGroupware.org\"" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain XMLReader libxmlSAXDriver" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain WOPort localhost:19999" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain TimeZoneName GMT" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain Languages '{English}'" >/dev/null 2>&1
|
||||
${SU} -l ${OGO} -c "${DW} NSGlobalDomain LSTimeZones '(GMT, MET, PST, CET, EET, EST, HST, MST, NZ, \"GMT+0100\", \"GMT+0200\", \"GMT+0300\", \"GMT+0400\", \"GMT+0500\", \"GMT+0600\", \"GMT+0700\", \"GMT+0800\", \"GMT+0900\", \"GMT+1000\", \"GMT+1100\", \"GMT+1200\", \"GMT-0100\", \"GMT-0200\", \"GMT-0300\", \"GMT-0400\", \"GMT-0500\", \"GMT-0600\", \"GMT-0700\", \"GMT-0800\", \"GMT-0900\", \"GMT-1000\", \"GMT-1100\", \"GMT-1200\")'" >/dev/null 2>&1
|
||||
|
||||
echo "done."
|
||||
else
|
||||
echo "I think you've already installed OGo before..."
|
||||
echo "Thus i am kind and don't mess your settings :)"
|
||||
fi
|
||||
;;
|
||||
|
||||
COPY-TEMPLATES)
|
||||
|
||||
INSTALL='/usr/bin/install'
|
||||
OGO_USER='ogo'
|
||||
OGO_GROUP='skyrix'
|
||||
|
||||
#just to be sure I am already there... weird issue if not
|
||||
mkdir -p /compat/linux/opt/opengroupware.org/.libFoundation/Defaults
|
||||
if [ ! -e /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/OpenGroupware.plist ] 2>/dev/null; then
|
||||
echo "OpenGroupware.plist not found..."
|
||||
echo "thus I am using the one coming with the port."
|
||||
${INSTALL} -m 640 -o ${OGO_USER} -g ${OGO_GROUP} files/OpenGroupware.plist.tmpl /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/OpenGroupware.plist >/dev/null 2>&1
|
||||
else
|
||||
echo "OpenGroupware.plist is already in place!"
|
||||
fi
|
||||
|
||||
if [ ! -e /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/ZideStore.plist ] 2>/dev/null; then
|
||||
echo "ZideStore.plist not found..."
|
||||
echo "thus I am using the one coming with the port."
|
||||
${INSTALL} -m 640 -o ${OGO_USER} -g ${OGO_GROUP} files/ZideStore.plist.tmpl /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/ZideStore.plist >/dev/null 2>&1
|
||||
else
|
||||
echo "ZideStore.plist is already in place!"
|
||||
fi
|
||||
|
||||
if [ ! -e /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/xmlrpcd.plist ] 2>/dev/null; then
|
||||
echo "xmlrpcd.plist not found..."
|
||||
echo "thus I am using the one coming with the port."
|
||||
${INSTALL} -m 640 -o ${OGO_USER} -g ${OGO_GROUP} files/xmlrpcd.plist.tmpl /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/xmlrpcd.plist >/dev/null 2>&1
|
||||
else
|
||||
echo "xmlrpcd.plist is already in place!"
|
||||
fi
|
||||
|
||||
if [ ! -e /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/skyaptnotify.plist ] 2>/dev/null; then
|
||||
echo "skyaptnotify.plist not found..."
|
||||
echo "thus I am using the one coming with the port."
|
||||
${INSTALL} -m 640 -o ${OGO_USER} -g ${OGO_GROUP} files/skyaptnotify.plist.tmpl /compat/linux/opt/opengroupware.org/.libFoundation/Defaults/skyaptnotify.plist >/dev/null 2>&1
|
||||
else
|
||||
echo "skyaptnotify.plist is already in place!"
|
||||
fi
|
||||
|
||||
;;
|
||||
esac
|
||||
@@ -1,22 +0,0 @@
|
||||
===> NOTE!
|
||||
|
||||
You've just installed linux-opengroupware!
|
||||
Thankyou!
|
||||
|
||||
There are some additional steps to
|
||||
do now:
|
||||
|
||||
1) Make sure that your PostgreSQL Installation
|
||||
listens on TCP Port 5432.
|
||||
|
||||
2) Install the ogo database scheme for PostgreSQL.
|
||||
|
||||
3) manually add one line into your httpd.conf
|
||||
|
||||
For a complete and detailed walkthrough refer to
|
||||
the INSTALL.fbsd in:
|
||||
|
||||
/compat/linux/opt/opengroupware.org
|
||||
|
||||
Enjoy using OpenGroupware.org!
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# by Frank Reppin <frank.reppin@boerde.de>
|
||||
#
|
||||
|
||||
use strict;
|
||||
|
||||
my $current_apache_version = `/usr/local/sbin/httpd -v|head -1`;
|
||||
my @version = split / /, $current_apache_version;
|
||||
my $version;
|
||||
my $runs_with;
|
||||
|
||||
$version = $version[2];
|
||||
$version =~ s/^Apache\///g;
|
||||
chomp $version;
|
||||
|
||||
if ( ! -e '/compat/linux/opt/opengroupware.org/OpenGroupware.org.apacheinclude' ) {
|
||||
print "OpenGroupware.org.apacheinclude is not present! I'll deal with this issue!\n";
|
||||
open (AI, "> /compat/linux/opt/opengroupware.org/OpenGroupware.org.apacheinclude") || die "Arrr! This won't work, because: $!\n";
|
||||
print AI "# This loads the mod_ngobjweb module which is the binding part between\n";
|
||||
print AI "# the Apache web server and the OGo application.\n";
|
||||
print AI "#\n";
|
||||
print AI "LoadModule ngobjweb_module\t/compat/linux/opt/opengroupware.org/ngobjweb_$version.so\n";
|
||||
print AI "\n";
|
||||
print AI "<LocationMatch \"^/OpenGroupware*\">\n";
|
||||
print AI "\tSetHandler ngobjweb-adaptor\n";
|
||||
print AI "\tSetAppPort 19999\n";
|
||||
print AI "</LocationMatch>\n";
|
||||
print AI "\n";
|
||||
print AI "<LocationMatch \"^/evolution*\">\n";
|
||||
print AI "\tSetHandler ngobjweb-adaptor\n";
|
||||
print AI "\tSetAppPort 20001\n";
|
||||
print AI "</LocationMatch>\n";
|
||||
print AI "\n";
|
||||
print AI "<LocationMatch \"^/zidestore/*\">\n";
|
||||
print AI "\tSetHandler ngobjweb-adaptor\n";
|
||||
print AI "\tSetAppPort 20001\n";
|
||||
print AI "</LocationMatch>\n";
|
||||
print AI "\n";
|
||||
print AI "Alias /OpenGroupware.woa/WebServerResources/ \"/compat/linux/opt/opengroupware.org/WebServerResources/\"\n";
|
||||
print AI "<Directory \"/compat/linux/opt/opengroupware.org/WebServerResources/\">\n";
|
||||
print AI "\tOptions Indexes Multiviews\n";
|
||||
print AI "\tAllowOverride None\n";
|
||||
print AI "\tOrder allow,deny\n";
|
||||
print AI "\tAllow from all\n";
|
||||
print AI "</Directory>\n";
|
||||
print AI "Alias /ArticleImages \"/compat/linux/opt/opengroupware.org/news\"\n";
|
||||
close(AI);
|
||||
} else {
|
||||
print "\n";
|
||||
print "OpenGroupware.org.apacheinclude is already present and will not be changed!\n";
|
||||
open(OI, "/compat/linux/opt/opengroupware.org/OpenGroupware.org.apacheinclude");
|
||||
while(<OI>) {
|
||||
if (/ngobjweb_\d+.*\.so$/) {
|
||||
$runs_with = $&;
|
||||
$runs_with =~ s/^ngobjweb_//g;
|
||||
$runs_with =~ s/\.so$//g;
|
||||
}
|
||||
}
|
||||
close(OI);
|
||||
if ( $runs_with eq $version ) {
|
||||
print "The OpenGroupware.org.apacheinclude seems to be fine.\n";
|
||||
print "It's configured for Apache $runs_with and we have Apache $version\n";
|
||||
} else {
|
||||
print "\n";
|
||||
print "But! Chances are, that your OpenGroupware.org.apacheinclude is broken.\n";
|
||||
print "This isn't necessarily an error - as it might be a result of a special\n";
|
||||
print "configuration you're using.\n";
|
||||
print "It's also very likely that you've updated your Apache from ports in between.\n";
|
||||
print "\n";
|
||||
print "Here are the results:\n";
|
||||
print "-------------------------\n";
|
||||
print "OpenGroupware.org.apacheinclude is configured to use Apache $runs_with\n";
|
||||
print "The version string of your Apache binary indicates that you run $version\n";
|
||||
print "Please verify this setting manually and - if needed - update your\n";
|
||||
print "OpenGroupware.org.apacheinclude to reflect the recent changes made to your system.\n";
|
||||
}
|
||||
}
|
||||
@@ -368,7 +368,6 @@
|
||||
SUBDIR += openam
|
||||
SUBDIR += openbgpd
|
||||
SUBDIR += openbgpd-devel
|
||||
SUBDIR += opengk
|
||||
SUBDIR += openh323
|
||||
SUBDIR += openh323-112
|
||||
SUBDIR += openldap22-client
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
# New ports collection makefile for: opengk
|
||||
# Date created: Mon Oct 8 12:49:00 BST 2001
|
||||
# Whom: Roger Hardiman <roger@FreeBSD.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= opengk
|
||||
PORTVERSION= 1.3.3
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= net
|
||||
MASTER_SITES= http://www.openh323.org/bin/ \
|
||||
http://www.de.openh323.org/bin/ \
|
||||
http://www.ru.openh323.org/bin/
|
||||
DISTNAME= opengk_${PORTVERSION}
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
COMMENT= Equivalence's H323 GateKeeper for OpenH323 OhPhone and NetMeeting
|
||||
|
||||
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/net/openh323-112:build
|
||||
|
||||
BROKEN= Incomplete dependency list
|
||||
DEPRECATED= Latest version is from 2003-02-03. Use net/gatekeeper instead
|
||||
EXPIRATION_DATE= 2006-07-01
|
||||
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}
|
||||
|
||||
NOCLEANDEPENDS= yes
|
||||
|
||||
PLIST_FILES= bin/opengk
|
||||
USE_GMAKE= yes
|
||||
ALL_TARGET= optnoshared
|
||||
MAKE_ENV= PWLIBDIR=${WRKDIRPREFIX}${.CURDIR}/../../devel/pwlib152/work/pwlib \
|
||||
OPENH323DIR=${WRKDIRPREFIX}${.CURDIR}/../openh323-112/work/openh323
|
||||
THE_MACHTYPE= ${ARCH:S/i386/x86/}
|
||||
MAKE_ARGS= OSTYPE=${OPSYS} MACHTYPE=${THE_MACHTYPE} OSRELEASE=${OSVERSION} CPLUS=${CXX}
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/obj_${OPSYS}_${THE_MACHTYPE}_r/opengk ${PREFIX}/bin
|
||||
|
||||
.include <bsd.port.mk>
|
||||
@@ -1,3 +0,0 @@
|
||||
MD5 (opengk_1.3.3.tar.gz) = 0684a87cdb47b61b06694c26a4766ca2
|
||||
SHA256 (opengk_1.3.3.tar.gz) = 9496b55df00a57fce8571c2b97bce420b4cf932b0186377cd48e466b9012d82c
|
||||
SIZE (opengk_1.3.3.tar.gz) = 25411
|
||||
@@ -1,13 +0,0 @@
|
||||
OpenGatekeeper is a H323 GateKeeper based on the OpenH323 project.
|
||||
It is written by Equivalence, who also write the OpenH323 library
|
||||
|
||||
A H323 Gatekeeper manages multiple H323 clients on a network
|
||||
and provides a nice user name to IP mapping.
|
||||
|
||||
As it follows the H323 standard, it is compatible with H323
|
||||
client programs including OhPhone, OpenPhone and MS NetMeeting.
|
||||
|
||||
It makes use of PWLib and the OpenH323 stack from Equivalence Ltd Pty
|
||||
|
||||
For more information see
|
||||
WWW: http://www.openh323.org/
|
||||
@@ -351,7 +351,6 @@
|
||||
SUBDIR += p5-Crypt-NULL
|
||||
SUBDIR += p5-Crypt-OFB
|
||||
SUBDIR += p5-Crypt-OTP
|
||||
SUBDIR += p5-Crypt-OpenPGP
|
||||
SUBDIR += p5-Crypt-OpenSSL-Bignum
|
||||
SUBDIR += p5-Crypt-OpenSSL-DSA
|
||||
SUBDIR += p5-Crypt-OpenSSL-RSA
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
# New ports collection makefile for: p5-Crypt-OpenPGP
|
||||
# Date created: Tue Sep 11 02:08:49 PDT 2001
|
||||
# Whom: Michael Haro <mharo@FreeBSD.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= Crypt-OpenPGP
|
||||
PORTVERSION= 1.03
|
||||
CATEGORIES= security perl5
|
||||
MASTER_SITES= ${MASTER_SITE_PERL_CPAN}
|
||||
MASTER_SITE_SUBDIR= Crypt
|
||||
PKGNAMEPREFIX= p5-
|
||||
|
||||
MAINTAINER= erwin@FreeBSD.org
|
||||
COMMENT= Pure-Perl OpenPGP-compatible PGP implementation
|
||||
|
||||
BUILD_DEPENDS= ${SITE_PERL}/${PERL_ARCH}/Crypt/DES.pm:${PORTSDIR}/security/p5-Crypt-DES \
|
||||
${SITE_PERL}/${PERL_ARCH}/Crypt/Blowfish.pm:${PORTSDIR}/security/p5-Crypt-Blowfish \
|
||||
${SITE_PERL}/${PERL_ARCH}/Crypt/IDEA.pm:${PORTSDIR}/security/p5-Crypt-IDEA \
|
||||
${SITE_PERL}/Crypt/DSA.pm:${PORTSDIR}/security/p5-Crypt-DSA \
|
||||
${SITE_PERL}/Crypt/RSA.pm:${PORTSDIR}/security/p5-Crypt-RSA \
|
||||
${SITE_PERL}/${PERL_ARCH}/Crypt/RIPEMD160.pm:${PORTSDIR}/security/p5-Crypt-RIPEMD160 \
|
||||
${SITE_PERL}/${PERL_ARCH}/Crypt/Rijndael.pm:${PORTSDIR}/security/p5-Crypt-Rijndael \
|
||||
${SITE_PERL}/Crypt/CAST5_PP.pm:${PORTSDIR}/security/p5-Crypt-CAST5_PP \
|
||||
${SITE_PERL}/Crypt/DES_EDE3.pm:${PORTSDIR}/security/p5-Crypt-DES_EDE3 \
|
||||
${SITE_PERL}/${PERL_ARCH}/Digest/SHA1.pm:${PORTSDIR}/security/p5-Digest-SHA1 \
|
||||
${SITE_PERL}/${PERL_ARCH}/Compress/Zlib.pm:${PORTSDIR}/archivers/p5-Compress-Zlib \
|
||||
${SITE_PERL}/${PERL_ARCH}/Math/Pari.pm:${PORTSDIR}/math/p5-Math-Pari \
|
||||
${SITE_PERL}/Data/Buffer.pm:${PORTSDIR}/misc/p5-Data-Buffer \
|
||||
${SITE_PERL}/URI/Escape.pm:${PORTSDIR}/net/p5-URI \
|
||||
${SITE_PERL}/LWP.pm:${PORTSDIR}/www/p5-libwww
|
||||
RUN_DEPENDS= ${BUILD_DEPENDS}
|
||||
|
||||
DEPRECATED= Crypt-OpenPGP was abandoned in 2002, use security/gnupg instead
|
||||
EXPIRATION_DATE=2006-07-01
|
||||
|
||||
PERL_CONFIGURE= yes
|
||||
|
||||
MAN3= Crypt::OpenPGP::ErrorHandler.3 Crypt::OpenPGP::Key.3 \
|
||||
Crypt::OpenPGP::CFB.3 Crypt::OpenPGP::SKSessionKey.3 \
|
||||
Crypt::OpenPGP::UserID.3 Crypt::OpenPGP::SessionKey.3 \
|
||||
Crypt::OpenPGP::Words.3 Crypt::OpenPGP::PacketFactory.3 \
|
||||
Crypt::OpenPGP::S2k.3 Crypt::OpenPGP.3 \
|
||||
Crypt::OpenPGP::Signature.3 \
|
||||
Crypt::OpenPGP::KeyBlock.3 Crypt::OpenPGP::MDC.3 \
|
||||
Crypt::OpenPGP::Compressed.3 Crypt::OpenPGP::Armour.3 \
|
||||
Crypt::OpenPGP::KeyRing.3 Crypt::OpenPGP::Plaintext.3 \
|
||||
Crypt::OpenPGP::Buffer.3 Crypt::OpenPGP::Cipher.3 \
|
||||
Crypt::OpenPGP::OnePassSig.3 Crypt::OpenPGP::Constants.3 \
|
||||
Crypt::OpenPGP::Util.3 Crypt::OpenPGP::Digest.3 \
|
||||
Crypt::OpenPGP::Ciphertext.3 Crypt::OpenPGP::Marker.3 \
|
||||
Crypt::OpenPGP::Trust.3 Crypt::OpenPGP::Certificate.3 \
|
||||
Crypt::OpenPGP::Message.3 Crypt::OpenPGP::KeyServer.3
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${PERL_LEVEL} < 500800
|
||||
BUILD_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/MIME/Base64.pm:${PORTSDIR}/converters/p5-MIME-Base64 \
|
||||
${SITE_PERL}/${PERL_ARCH}/Digest/MD5.pm:${PORTSDIR}/security/p5-Digest-MD5
|
||||
RUN_DEPENDS+= ${SITE_PERL}/${PERL_ARCH}/MIME/Base64.pm:${PORTSDIR}/converters/p5-MIME-Base64 \
|
||||
${SITE_PERL}/${PERL_ARCH}/Digest/MD5.pm:${PORTSDIR}/security/p5-Digest-MD5
|
||||
.endif
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
@@ -1,3 +0,0 @@
|
||||
MD5 (Crypt-OpenPGP-1.03.tar.gz) = 020141cf2a3c22b50373fc5aeb7914d2
|
||||
SHA256 (Crypt-OpenPGP-1.03.tar.gz) = a602fd8383349ed352614acf984103dfd6b9d2fc721262238bb9080ded1bed08
|
||||
SIZE (Crypt-OpenPGP-1.03.tar.gz) = 96872
|
||||
@@ -1,59 +0,0 @@
|
||||
--- Makefile.PL.orig Tue Dec 10 02:48:09 2002
|
||||
+++ Makefile.PL Tue Apr 8 10:33:08 2003
|
||||
@@ -11,56 +11,6 @@
|
||||
use File::Basename qw/dirname/;
|
||||
use lib File::Spec->catdir(dirname($0), 'inc');
|
||||
|
||||
-use ExtUtils::AutoInstall (
|
||||
- -core => [
|
||||
- 'Data::Buffer' => '0.04',
|
||||
- 'MIME::Base64' => 0,
|
||||
- 'Math::Pari' => 0,
|
||||
- 'Compress::Zlib' => 0,
|
||||
- 'LWP::UserAgent' => 0,
|
||||
- 'URI::Escape' => 0,
|
||||
-
|
||||
- 'Crypt::DSA' => 0,
|
||||
- 'Crypt::RSA' => 0,
|
||||
- ],
|
||||
-
|
||||
- 'PGP2 Compatibility (Minimum)' => [
|
||||
- -default => $is_sdk,
|
||||
- 'Crypt::IDEA' => 0,
|
||||
- 'Digest::MD5' => 0,
|
||||
- ],
|
||||
-
|
||||
- 'PGP5 Compatibility (Minimum)' => [
|
||||
- -default => $is_sdk,
|
||||
- 'Crypt::DES_EDE3' => 0,
|
||||
- 'Digest::SHA1' => 0,
|
||||
- ],
|
||||
-
|
||||
- 'GnuPG Compatibility (Minimum)' => [
|
||||
- -default => $is_sdk,
|
||||
- 'Crypt::Rijndael' => 0,
|
||||
- 'Crypt::CAST5_PP' => 0,
|
||||
- 'Crypt::RIPEMD160' => 0,
|
||||
- ],
|
||||
-
|
||||
- 'Support for all ciphers' => [
|
||||
- -default => $is_sdk,
|
||||
- 'Crypt::IDEA' => 0,
|
||||
- 'Crypt::DES_EDE3' => 0,
|
||||
- 'Crypt::CAST5_PP' => 0,
|
||||
- 'Crypt::Blowfish' => 0,
|
||||
- 'Crypt::Twofish' => '2.00',
|
||||
- 'Crypt::Rijndael' => 0,
|
||||
- ],
|
||||
-
|
||||
- 'Support for all digests' => [
|
||||
- -default => $is_sdk,
|
||||
- 'Digest::MD5' => 0,
|
||||
- 'Digest::SHA1' => 0,
|
||||
- 'Crypt::RIPEMD160' => 0,
|
||||
- ],
|
||||
-);
|
||||
-
|
||||
WriteMakefile(
|
||||
AUTHOR => 'Benjamin Trott <cpan@stupidfool.org>',
|
||||
ABSTRACT => 'Pure-Perl OpenPGP-compatible PGP implementation',
|
||||
@@ -1,23 +0,0 @@
|
||||
Crypt::OpenPGP is a pure-Perl implementation of the OpenPGP standard[1].
|
||||
In addition to support for the standard itself, Crypt::OpenPGP claims
|
||||
compatibility with many other PGP implementations, both those that
|
||||
support the standard and those that preceded it.
|
||||
|
||||
Crypt::OpenPGP provides signing/verification, encryption/decryption,
|
||||
keyring management, and key-pair generation; in short it should provide
|
||||
you with everything you need to PGP-enable yourself. Alternatively it can
|
||||
be used as part of a larger system; for example, perhaps you have a
|
||||
web-form-to-email generator written in Perl, and you'd like to encrypt
|
||||
outgoing messages, because they contain sensitive information.
|
||||
Crypt::OpenPGP can be plugged into such a scenario, given your public
|
||||
key, and told to encrypt all messages; they will then be readable only by
|
||||
you.
|
||||
|
||||
This module currently supports RSA and DSA for digital signatures, and
|
||||
RSA and ElGamal for encryption/decryption. It supports the symmetric
|
||||
ciphers 3DES, Blowfish, IDEA, Twofish, and Rijndael (AES). Rijndael is
|
||||
supported for key sizes of 128, 192, and 256 bits. Crypt::OpenPGP
|
||||
supports the digest algorithms MD5, SHA-1, and RIPE-MD/160. And it
|
||||
supports ZIP and Zlib compression.
|
||||
|
||||
WWW: http://search.cpan.org/dist/Crypt-OpenPGP/
|
||||
@@ -1,47 +0,0 @@
|
||||
%%SITE_PERL%%/%%PERL_ARCH%%/auto/Crypt/OpenPGP/.packlist
|
||||
%%SITE_PERL%%/Crypt/OpenPGP.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Words.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Digest.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/KeyRing.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Cipher.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/S2k.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Armour.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Certificate.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Compressed.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Message.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/OnePassSig.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Util.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/SKSessionKey.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/MDC.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/CFB.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/PacketFactory.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Signature.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Marker.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Buffer.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/KeyBlock.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/ErrorHandler.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/KeyServer.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Config.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key/Public.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key/Secret.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key/Secret/DSA.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key/Secret/RSA.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key/Secret/ElGamal.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key/Public/RSA.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key/Public/DSA.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Key/Public/ElGamal.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/SessionKey.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Constants.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Trust.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/UserID.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Plaintext.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Ciphertext.pm
|
||||
%%SITE_PERL%%/Crypt/OpenPGP/Signature/SubPacket.pm
|
||||
@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/auto/Crypt/OpenPGP
|
||||
@dirrm %%SITE_PERL%%/Crypt/OpenPGP/Key/Secret
|
||||
@dirrm %%SITE_PERL%%/Crypt/OpenPGP/Key/Public
|
||||
@dirrm %%SITE_PERL%%/Crypt/OpenPGP/Key
|
||||
@dirrm %%SITE_PERL%%/Crypt/OpenPGP/Signature
|
||||
@dirrm %%SITE_PERL%%/Crypt/OpenPGP
|
||||
@dirrmtry %%SITE_PERL%%/Crypt
|
||||
@@ -767,7 +767,6 @@
|
||||
SUBDIR += scrollkeeper
|
||||
SUBDIR += sdf
|
||||
SUBDIR += sdocbook-xml
|
||||
SUBDIR += sed_inplace
|
||||
SUBDIR += senna
|
||||
SUBDIR += sgmlformat
|
||||
SUBDIR += sgmls
|
||||
@@ -862,7 +861,6 @@
|
||||
SUBDIR += xml-lite.el
|
||||
SUBDIR += xml-parse.el
|
||||
SUBDIR += xml2rfc
|
||||
SUBDIR += xml4j
|
||||
SUBDIR += xmlada
|
||||
SUBDIR += xmlcatmgr
|
||||
SUBDIR += xmlcharent
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
# New ports collection makefile for: sed_inplace
|
||||
# Date created: 17 June 2002
|
||||
# Whom: Maxim Sobolev <sobomax@FreeBSD.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= sed_inplace
|
||||
PORTVERSION= 2002.10.19
|
||||
CATEGORIES= textproc
|
||||
MASTER_SITES= #
|
||||
DISTNAME= #
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
COMMENT= A modified version of the sed(1) which can do in-place editing of files
|
||||
|
||||
DEPRECATED= This port is not required anymore
|
||||
EXPIRATION_DATE=2006-07-01
|
||||
|
||||
NO_WRKSUBDIR= yes
|
||||
PLIST_FILES= bin/sed_inplace
|
||||
|
||||
MAKEFILE= ${PKGDIR}/src/Makefile
|
||||
MAKE_ENV= PKGDIR="${PKGDIR}"
|
||||
|
||||
.ifdef USE_REINPLACE
|
||||
IGNORE= cannot be installed: you have `USE_REINPLACE' variable defined either in environment or in make(1) arguments. Please undefine and try again
|
||||
.endif
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${OSVERSION} > 500033
|
||||
IGNORE= is in the base system
|
||||
.endif
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/sed_inplace ${PREFIX}/bin
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
@@ -1,2 +0,0 @@
|
||||
Modified version of the FreeBSD sed(1) command which can do in-place editing
|
||||
of files.
|
||||
@@ -1,12 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.PATH: ${PKGDIR}/src
|
||||
|
||||
PROG= sed_inplace
|
||||
SRCS= compile.c main.c misc.c process.c
|
||||
|
||||
CFLAGS+= -I${PKGDIR}/src
|
||||
|
||||
MAN1=
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
@@ -1,871 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 1992 Diomidis Spinellis.
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Diomidis Spinellis of Imperial College, University of London.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static const char sccsid[] = "@(#)compile.c 8.1 (Berkeley) 6/6/93";
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <err.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <regex.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "defs.h"
|
||||
#include "extern.h"
|
||||
|
||||
#define LHSZ 128
|
||||
#define LHMASK (LHSZ - 1)
|
||||
static struct labhash {
|
||||
struct labhash *lh_next;
|
||||
u_int lh_hash;
|
||||
struct s_command *lh_cmd;
|
||||
int lh_ref;
|
||||
} *labels[LHSZ];
|
||||
|
||||
static char *compile_addr(char *, struct s_addr *);
|
||||
static char *compile_ccl(char **, char *);
|
||||
static char *compile_delimited(char *, char *);
|
||||
static char *compile_flags(char *, struct s_subst *);
|
||||
static char *compile_re(char *, regex_t **);
|
||||
static char *compile_subst(char *, struct s_subst *);
|
||||
static char *compile_text(void);
|
||||
static char *compile_tr(char *, char **);
|
||||
static struct s_command
|
||||
**compile_stream(struct s_command **);
|
||||
static char *duptoeol(char *, const char *);
|
||||
static void enterlabel(struct s_command *);
|
||||
static struct s_command
|
||||
*findlabel(char *);
|
||||
static void fixuplabel(struct s_command *, struct s_command *);
|
||||
static void uselabel(void);
|
||||
|
||||
/*
|
||||
* Command specification. This is used to drive the command parser.
|
||||
*/
|
||||
struct s_format {
|
||||
char code; /* Command code */
|
||||
int naddr; /* Number of address args */
|
||||
enum e_args args; /* Argument type */
|
||||
};
|
||||
|
||||
static struct s_format cmd_fmts[] = {
|
||||
{'{', 2, GROUP},
|
||||
{'}', 0, ENDGROUP},
|
||||
{'a', 1, TEXT},
|
||||
{'b', 2, BRANCH},
|
||||
{'c', 2, TEXT},
|
||||
{'d', 2, EMPTY},
|
||||
{'D', 2, EMPTY},
|
||||
{'g', 2, EMPTY},
|
||||
{'G', 2, EMPTY},
|
||||
{'h', 2, EMPTY},
|
||||
{'H', 2, EMPTY},
|
||||
{'i', 1, TEXT},
|
||||
{'l', 2, EMPTY},
|
||||
{'n', 2, EMPTY},
|
||||
{'N', 2, EMPTY},
|
||||
{'p', 2, EMPTY},
|
||||
{'P', 2, EMPTY},
|
||||
{'q', 1, EMPTY},
|
||||
{'r', 1, RFILE},
|
||||
{'s', 2, SUBST},
|
||||
{'t', 2, BRANCH},
|
||||
{'w', 2, WFILE},
|
||||
{'x', 2, EMPTY},
|
||||
{'y', 2, TR},
|
||||
{'!', 2, NONSEL},
|
||||
{':', 0, LABEL},
|
||||
{'#', 0, COMMENT},
|
||||
{'=', 1, EMPTY},
|
||||
{'\0', 0, COMMENT},
|
||||
};
|
||||
|
||||
/* The compiled program. */
|
||||
struct s_command *prog;
|
||||
|
||||
/*
|
||||
* Compile the program into prog.
|
||||
* Initialise appends.
|
||||
*/
|
||||
void
|
||||
compile()
|
||||
{
|
||||
*compile_stream(&prog) = NULL;
|
||||
fixuplabel(prog, NULL);
|
||||
uselabel();
|
||||
if (appendnum == 0)
|
||||
appends = NULL;
|
||||
else if ((appends = malloc(sizeof(struct s_appends) * appendnum)) ==
|
||||
NULL)
|
||||
err(1, "malloc");
|
||||
if ((match = malloc((maxnsub + 1) * sizeof(regmatch_t))) == NULL)
|
||||
err(1, "malloc");
|
||||
}
|
||||
|
||||
#define EATSPACE() do { \
|
||||
if (p) \
|
||||
while (*p && isspace((unsigned char)*p)) \
|
||||
p++; \
|
||||
} while (0)
|
||||
|
||||
static struct s_command **
|
||||
compile_stream(link)
|
||||
struct s_command **link;
|
||||
{
|
||||
char *p;
|
||||
static char lbuf[_POSIX2_LINE_MAX + 1]; /* To save stack */
|
||||
struct s_command *cmd, *cmd2, *stack;
|
||||
struct s_format *fp;
|
||||
int naddr; /* Number of addresses */
|
||||
|
||||
stack = 0;
|
||||
for (;;) {
|
||||
if ((p = cu_fgets(lbuf, sizeof(lbuf), NULL)) == NULL) {
|
||||
if (stack != 0)
|
||||
errx(1, "%lu: %s: unexpected EOF (pending }'s)",
|
||||
linenum, fname);
|
||||
return (link);
|
||||
}
|
||||
|
||||
semicolon: EATSPACE();
|
||||
if (p) {
|
||||
if (*p == '#' || *p == '\0')
|
||||
continue;
|
||||
else if (*p == ';') {
|
||||
p++;
|
||||
goto semicolon;
|
||||
}
|
||||
}
|
||||
if ((*link = cmd = malloc(sizeof(struct s_command))) == NULL)
|
||||
err(1, "malloc");
|
||||
link = &cmd->next;
|
||||
cmd->nonsel = cmd->inrange = 0;
|
||||
/* First parse the addresses */
|
||||
naddr = 0;
|
||||
|
||||
/* Valid characters to start an address */
|
||||
#define addrchar(c) (strchr("0123456789/\\$", (c)))
|
||||
if (addrchar(*p)) {
|
||||
naddr++;
|
||||
if ((cmd->a1 = malloc(sizeof(struct s_addr))) == NULL)
|
||||
err(1, "malloc");
|
||||
p = compile_addr(p, cmd->a1);
|
||||
EATSPACE(); /* EXTENSION */
|
||||
if (*p == ',') {
|
||||
p++;
|
||||
EATSPACE(); /* EXTENSION */
|
||||
naddr++;
|
||||
if ((cmd->a2 = malloc(sizeof(struct s_addr)))
|
||||
== NULL)
|
||||
err(1, "malloc");
|
||||
p = compile_addr(p, cmd->a2);
|
||||
EATSPACE();
|
||||
} else
|
||||
cmd->a2 = 0;
|
||||
} else
|
||||
cmd->a1 = cmd->a2 = 0;
|
||||
|
||||
nonsel: /* Now parse the command */
|
||||
if (!*p)
|
||||
errx(1, "%lu: %s: command expected", linenum, fname);
|
||||
cmd->code = *p;
|
||||
for (fp = cmd_fmts; fp->code; fp++)
|
||||
if (fp->code == *p)
|
||||
break;
|
||||
if (!fp->code)
|
||||
errx(1, "%lu: %s: invalid command code %c", linenum, fname, *p);
|
||||
if (naddr > fp->naddr)
|
||||
errx(1,
|
||||
"%lu: %s: command %c expects up to %d address(es), found %d",
|
||||
linenum, fname, *p, fp->naddr, naddr);
|
||||
switch (fp->args) {
|
||||
case NONSEL: /* ! */
|
||||
p++;
|
||||
EATSPACE();
|
||||
cmd->nonsel = ! cmd->nonsel;
|
||||
goto nonsel;
|
||||
case GROUP: /* { */
|
||||
p++;
|
||||
EATSPACE();
|
||||
cmd->next = stack;
|
||||
stack = cmd;
|
||||
link = &cmd->u.c;
|
||||
if (*p)
|
||||
goto semicolon;
|
||||
break;
|
||||
case ENDGROUP:
|
||||
/*
|
||||
* Short-circuit command processing, since end of
|
||||
* group is really just a noop.
|
||||
*/
|
||||
cmd->nonsel = 1;
|
||||
if (stack == 0)
|
||||
errx(1, "%lu: %s: unexpected }", linenum, fname);
|
||||
cmd2 = stack;
|
||||
stack = cmd2->next;
|
||||
cmd2->next = cmd;
|
||||
/*FALLTHROUGH*/
|
||||
case EMPTY: /* d D g G h H l n N p P q x = \0 */
|
||||
p++;
|
||||
EATSPACE();
|
||||
if (*p == ';') {
|
||||
p++;
|
||||
link = &cmd->next;
|
||||
goto semicolon;
|
||||
}
|
||||
if (*p)
|
||||
errx(1, "%lu: %s: extra characters at the end of %c command",
|
||||
linenum, fname, cmd->code);
|
||||
break;
|
||||
case TEXT: /* a c i */
|
||||
p++;
|
||||
EATSPACE();
|
||||
if (*p != '\\')
|
||||
errx(1,
|
||||
"%lu: %s: command %c expects \\ followed by text", linenum, fname, cmd->code);
|
||||
p++;
|
||||
EATSPACE();
|
||||
if (*p)
|
||||
errx(1,
|
||||
"%lu: %s: extra characters after \\ at the end of %c command",
|
||||
linenum, fname, cmd->code);
|
||||
cmd->t = compile_text();
|
||||
break;
|
||||
case COMMENT: /* \0 # */
|
||||
break;
|
||||
case WFILE: /* w */
|
||||
p++;
|
||||
EATSPACE();
|
||||
if (*p == '\0')
|
||||
errx(1, "%lu: %s: filename expected", linenum, fname);
|
||||
cmd->t = duptoeol(p, "w command");
|
||||
if (aflag)
|
||||
cmd->u.fd = -1;
|
||||
else if ((cmd->u.fd = open(p,
|
||||
O_WRONLY|O_APPEND|O_CREAT|O_TRUNC,
|
||||
DEFFILEMODE)) == -1)
|
||||
err(1, "%s", p);
|
||||
break;
|
||||
case RFILE: /* r */
|
||||
p++;
|
||||
EATSPACE();
|
||||
if (*p == '\0')
|
||||
errx(1, "%lu: %s: filename expected", linenum, fname);
|
||||
else
|
||||
cmd->t = duptoeol(p, "read command");
|
||||
break;
|
||||
case BRANCH: /* b t */
|
||||
p++;
|
||||
EATSPACE();
|
||||
if (*p == '\0')
|
||||
cmd->t = NULL;
|
||||
else
|
||||
cmd->t = duptoeol(p, "branch");
|
||||
break;
|
||||
case LABEL: /* : */
|
||||
p++;
|
||||
EATSPACE();
|
||||
cmd->t = duptoeol(p, "label");
|
||||
if (strlen(p) == 0)
|
||||
errx(1, "%lu: %s: empty label", linenum, fname);
|
||||
enterlabel(cmd);
|
||||
break;
|
||||
case SUBST: /* s */
|
||||
p++;
|
||||
if (*p == '\0' || *p == '\\')
|
||||
errx(1,
|
||||
"%lu: %s: substitute pattern can not be delimited by newline or backslash",
|
||||
linenum, fname);
|
||||
if ((cmd->u.s = malloc(sizeof(struct s_subst))) == NULL)
|
||||
err(1, "malloc");
|
||||
p = compile_re(p, &cmd->u.s->re);
|
||||
if (p == NULL)
|
||||
errx(1,
|
||||
"%lu: %s: unterminated substitute pattern", linenum, fname);
|
||||
--p;
|
||||
p = compile_subst(p, cmd->u.s);
|
||||
p = compile_flags(p, cmd->u.s);
|
||||
EATSPACE();
|
||||
if (*p == ';') {
|
||||
p++;
|
||||
link = &cmd->next;
|
||||
goto semicolon;
|
||||
}
|
||||
break;
|
||||
case TR: /* y */
|
||||
p++;
|
||||
p = compile_tr(p, (char **)&cmd->u.y);
|
||||
EATSPACE();
|
||||
if (*p == ';') {
|
||||
p++;
|
||||
link = &cmd->next;
|
||||
goto semicolon;
|
||||
}
|
||||
if (*p)
|
||||
errx(1,
|
||||
"%lu: %s: extra text at the end of a transform command", linenum, fname);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get a delimited string. P points to the delimeter of the string; d points
|
||||
* to a buffer area. Newline and delimiter escapes are processed; other
|
||||
* escapes are ignored.
|
||||
*
|
||||
* Returns a pointer to the first character after the final delimiter or NULL
|
||||
* in the case of a non-terminated string. The character array d is filled
|
||||
* with the processed string.
|
||||
*/
|
||||
static char *
|
||||
compile_delimited(p, d)
|
||||
char *p, *d;
|
||||
{
|
||||
char c;
|
||||
|
||||
c = *p++;
|
||||
if (c == '\0')
|
||||
return (NULL);
|
||||
else if (c == '\\')
|
||||
errx(1, "%lu: %s: \\ can not be used as a string delimiter",
|
||||
linenum, fname);
|
||||
else if (c == '\n')
|
||||
errx(1, "%lu: %s: newline can not be used as a string delimiter",
|
||||
linenum, fname);
|
||||
while (*p) {
|
||||
if (*p == '[') {
|
||||
if ((d = compile_ccl(&p, d)) == NULL)
|
||||
errx(1, "%lu: %s: unbalanced brackets ([])", linenum, fname);
|
||||
continue;
|
||||
} else if (*p == '\\' && p[1] == '[') {
|
||||
*d++ = *p++;
|
||||
} else if (*p == '\\' && p[1] == c)
|
||||
p++;
|
||||
else if (*p == '\\' && p[1] == 'n') {
|
||||
*d++ = '\n';
|
||||
p += 2;
|
||||
continue;
|
||||
} else if (*p == '\\' && p[1] == '\\')
|
||||
*d++ = *p++;
|
||||
else if (*p == c) {
|
||||
*d = '\0';
|
||||
return (p + 1);
|
||||
}
|
||||
*d++ = *p++;
|
||||
}
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
|
||||
/* compile_ccl: expand a POSIX character class */
|
||||
static char *
|
||||
compile_ccl(sp, t)
|
||||
char **sp;
|
||||
char *t;
|
||||
{
|
||||
int c, d;
|
||||
char *s = *sp;
|
||||
|
||||
*t++ = *s++;
|
||||
if (*s == '^')
|
||||
*t++ = *s++;
|
||||
if (*s == ']')
|
||||
*t++ = *s++;
|
||||
for (; *s && (*t = *s) != ']'; s++, t++)
|
||||
if (*s == '[' && ((d = *(s+1)) == '.' || d == ':' || d == '=')) {
|
||||
*++t = *++s, t++, s++;
|
||||
for (c = *s; (*t = *s) != ']' || c != d; s++, t++)
|
||||
if ((c = *s) == '\0')
|
||||
return NULL;
|
||||
} else if (*s == '\\' && s[1] == 'n')
|
||||
*t = '\n', s++;
|
||||
return (*s == ']') ? *sp = ++s, ++t : NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get a regular expression. P points to the delimiter of the regular
|
||||
* expression; repp points to the address of a regexp pointer. Newline
|
||||
* and delimiter escapes are processed; other escapes are ignored.
|
||||
* Returns a pointer to the first character after the final delimiter
|
||||
* or NULL in the case of a non terminated regular expression. The regexp
|
||||
* pointer is set to the compiled regular expression.
|
||||
* Cflags are passed to regcomp.
|
||||
*/
|
||||
static char *
|
||||
compile_re(p, repp)
|
||||
char *p;
|
||||
regex_t **repp;
|
||||
{
|
||||
int eval;
|
||||
char re[_POSIX2_LINE_MAX + 1];
|
||||
|
||||
p = compile_delimited(p, re);
|
||||
if (p && strlen(re) == 0) {
|
||||
*repp = NULL;
|
||||
return (p);
|
||||
}
|
||||
if ((*repp = malloc(sizeof(regex_t))) == NULL)
|
||||
err(1, "malloc");
|
||||
if (p && (eval = regcomp(*repp, re, rflags)) != 0)
|
||||
errx(1, "%lu: %s: RE error: %s",
|
||||
linenum, fname, strregerror(eval, *repp));
|
||||
if (maxnsub < (*repp)->re_nsub)
|
||||
maxnsub = (*repp)->re_nsub;
|
||||
return (p);
|
||||
}
|
||||
|
||||
/*
|
||||
* Compile the substitution string of a regular expression and set res to
|
||||
* point to a saved copy of it. Nsub is the number of parenthesized regular
|
||||
* expressions.
|
||||
*/
|
||||
static char *
|
||||
compile_subst(p, s)
|
||||
char *p;
|
||||
struct s_subst *s;
|
||||
{
|
||||
static char lbuf[_POSIX2_LINE_MAX + 1];
|
||||
int asize, size;
|
||||
u_char ref;
|
||||
char c, *text, *op, *sp;
|
||||
int more = 1, sawesc = 0;
|
||||
|
||||
c = *p++; /* Terminator character */
|
||||
if (c == '\0')
|
||||
return (NULL);
|
||||
|
||||
s->maxbref = 0;
|
||||
s->linenum = linenum;
|
||||
asize = 2 * _POSIX2_LINE_MAX + 1;
|
||||
if ((text = malloc(asize)) == NULL)
|
||||
err(1, "malloc");
|
||||
size = 0;
|
||||
do {
|
||||
op = sp = text + size;
|
||||
for (; *p; p++) {
|
||||
if (*p == '\\' || sawesc) {
|
||||
/*
|
||||
* If this is a continuation from the last
|
||||
* buffer, we won't have a character to
|
||||
* skip over.
|
||||
*/
|
||||
if (sawesc)
|
||||
sawesc = 0;
|
||||
else
|
||||
p++;
|
||||
|
||||
if (*p == '\0') {
|
||||
/*
|
||||
* This escaped character is continued
|
||||
* in the next part of the line. Note
|
||||
* this fact, then cause the loop to
|
||||
* exit w/ normal EOL case and reenter
|
||||
* above with the new buffer.
|
||||
*/
|
||||
sawesc = 1;
|
||||
p--;
|
||||
continue;
|
||||
} else if (strchr("123456789", *p) != NULL) {
|
||||
*sp++ = '\\';
|
||||
ref = *p - '0';
|
||||
if (s->re != NULL &&
|
||||
ref > s->re->re_nsub)
|
||||
errx(1, "%lu: %s: \\%c not defined in the RE",
|
||||
linenum, fname, *p);
|
||||
if (s->maxbref < ref)
|
||||
s->maxbref = ref;
|
||||
} else if (*p == '&' || *p == '\\')
|
||||
*sp++ = '\\';
|
||||
} else if (*p == c) {
|
||||
if (*++p == '\0' && more) {
|
||||
if (cu_fgets(lbuf, sizeof(lbuf), &more))
|
||||
p = lbuf;
|
||||
}
|
||||
*sp++ = '\0';
|
||||
size += sp - op;
|
||||
if ((s->new = realloc(text, size)) == NULL)
|
||||
err(1, "realloc");
|
||||
return (p);
|
||||
} else if (*p == '\n') {
|
||||
errx(1,
|
||||
"%lu: %s: unescaped newline inside substitute pattern", linenum, fname);
|
||||
/* NOTREACHED */
|
||||
}
|
||||
*sp++ = *p;
|
||||
}
|
||||
size += sp - op;
|
||||
if (asize - size < _POSIX2_LINE_MAX + 1) {
|
||||
asize *= 2;
|
||||
if ((text = realloc(text, asize)) == NULL)
|
||||
err(1, "realloc");
|
||||
}
|
||||
} while (cu_fgets(p = lbuf, sizeof(lbuf), &more));
|
||||
errx(1, "%lu: %s: unterminated substitute in regular expression",
|
||||
linenum, fname);
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
/*
|
||||
* Compile the flags of the s command
|
||||
*/
|
||||
static char *
|
||||
compile_flags(p, s)
|
||||
char *p;
|
||||
struct s_subst *s;
|
||||
{
|
||||
int gn; /* True if we have seen g or n */
|
||||
char wfile[_POSIX2_LINE_MAX + 1], *q;
|
||||
|
||||
s->n = 1; /* Default */
|
||||
s->p = 0;
|
||||
s->wfile = NULL;
|
||||
s->wfd = -1;
|
||||
for (gn = 0;;) {
|
||||
EATSPACE(); /* EXTENSION */
|
||||
switch (*p) {
|
||||
case 'g':
|
||||
if (gn)
|
||||
errx(1,
|
||||
"%lu: %s: more than one number or 'g' in substitute flags", linenum, fname);
|
||||
gn = 1;
|
||||
s->n = 0;
|
||||
break;
|
||||
case '\0':
|
||||
case '\n':
|
||||
case ';':
|
||||
return (p);
|
||||
case 'p':
|
||||
s->p = 1;
|
||||
break;
|
||||
case '1': case '2': case '3':
|
||||
case '4': case '5': case '6':
|
||||
case '7': case '8': case '9':
|
||||
if (gn)
|
||||
errx(1,
|
||||
"%lu: %s: more than one number or 'g' in substitute flags", linenum, fname);
|
||||
gn = 1;
|
||||
/* XXX Check for overflow */
|
||||
s->n = (int)strtol(p, &p, 10);
|
||||
break;
|
||||
case 'w':
|
||||
p++;
|
||||
#ifdef HISTORIC_PRACTICE
|
||||
if (*p != ' ') {
|
||||
warnx("%lu: %s: space missing before w wfile", linenum, fname);
|
||||
return (p);
|
||||
}
|
||||
#endif
|
||||
EATSPACE();
|
||||
q = wfile;
|
||||
while (*p) {
|
||||
if (*p == '\n')
|
||||
break;
|
||||
*q++ = *p++;
|
||||
}
|
||||
*q = '\0';
|
||||
if (q == wfile)
|
||||
errx(1, "%lu: %s: no wfile specified", linenum, fname);
|
||||
s->wfile = strdup(wfile);
|
||||
if (!aflag && (s->wfd = open(wfile,
|
||||
O_WRONLY|O_APPEND|O_CREAT|O_TRUNC,
|
||||
DEFFILEMODE)) == -1)
|
||||
err(1, "%s", wfile);
|
||||
return (p);
|
||||
default:
|
||||
errx(1, "%lu: %s: bad flag in substitute command: '%c'",
|
||||
linenum, fname, *p);
|
||||
break;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Compile a translation set of strings into a lookup table.
|
||||
*/
|
||||
static char *
|
||||
compile_tr(p, transtab)
|
||||
char *p;
|
||||
char **transtab;
|
||||
{
|
||||
int i;
|
||||
char *lt, *op, *np;
|
||||
char old[_POSIX2_LINE_MAX + 1];
|
||||
char new[_POSIX2_LINE_MAX + 1];
|
||||
|
||||
if (*p == '\0' || *p == '\\')
|
||||
errx(1,
|
||||
"%lu: %s: transform pattern can not be delimited by newline or backslash",
|
||||
linenum, fname);
|
||||
p = compile_delimited(p, old);
|
||||
if (p == NULL)
|
||||
errx(1, "%lu: %s: unterminated transform source string",
|
||||
linenum, fname);
|
||||
p = compile_delimited(--p, new);
|
||||
if (p == NULL)
|
||||
errx(1, "%lu: %s: unterminated transform target string",
|
||||
linenum, fname);
|
||||
EATSPACE();
|
||||
if (strlen(new) != strlen(old))
|
||||
errx(1, "%lu: %s: transform strings are not the same length",
|
||||
linenum, fname);
|
||||
/* We assume characters are 8 bits */
|
||||
if ((lt = malloc(UCHAR_MAX)) == NULL)
|
||||
err(1, "malloc");
|
||||
for (i = 0; i <= UCHAR_MAX; i++)
|
||||
lt[i] = (char)i;
|
||||
for (op = old, np = new; *op; op++, np++)
|
||||
lt[(u_char)*op] = *np;
|
||||
*transtab = lt;
|
||||
return (p);
|
||||
}
|
||||
|
||||
/*
|
||||
* Compile the text following an a or i command.
|
||||
*/
|
||||
static char *
|
||||
compile_text()
|
||||
{
|
||||
int asize, esc_nl, size;
|
||||
char *text, *p, *op, *s;
|
||||
char lbuf[_POSIX2_LINE_MAX + 1];
|
||||
|
||||
asize = 2 * _POSIX2_LINE_MAX + 1;
|
||||
if ((text = malloc(asize)) == NULL)
|
||||
err(1, "malloc");
|
||||
size = 0;
|
||||
while (cu_fgets(lbuf, sizeof(lbuf), NULL)) {
|
||||
op = s = text + size;
|
||||
p = lbuf;
|
||||
EATSPACE();
|
||||
for (esc_nl = 0; *p != '\0'; p++) {
|
||||
if (*p == '\\' && p[1] != '\0' && *++p == '\n')
|
||||
esc_nl = 1;
|
||||
*s++ = *p;
|
||||
}
|
||||
size += s - op;
|
||||
if (!esc_nl) {
|
||||
*s = '\0';
|
||||
break;
|
||||
}
|
||||
if (asize - size < _POSIX2_LINE_MAX + 1) {
|
||||
asize *= 2;
|
||||
if ((text = realloc(text, asize)) == NULL)
|
||||
err(1, "realloc");
|
||||
}
|
||||
}
|
||||
text[size] = '\0';
|
||||
if ((p = realloc(text, size + 1)) == NULL)
|
||||
err(1, "realloc");
|
||||
return (p);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get an address and return a pointer to the first character after
|
||||
* it. Fill the structure pointed to according to the address.
|
||||
*/
|
||||
static char *
|
||||
compile_addr(p, a)
|
||||
char *p;
|
||||
struct s_addr *a;
|
||||
{
|
||||
char *end;
|
||||
|
||||
switch (*p) {
|
||||
case '\\': /* Context address */
|
||||
++p;
|
||||
/* FALLTHROUGH */
|
||||
case '/': /* Context address */
|
||||
p = compile_re(p, &a->u.r);
|
||||
if (p == NULL)
|
||||
errx(1, "%lu: %s: unterminated regular expression", linenum, fname);
|
||||
a->type = AT_RE;
|
||||
return (p);
|
||||
|
||||
case '$': /* Last line */
|
||||
a->type = AT_LAST;
|
||||
return (p + 1);
|
||||
/* Line number */
|
||||
case '0': case '1': case '2': case '3': case '4':
|
||||
case '5': case '6': case '7': case '8': case '9':
|
||||
a->type = AT_LINE;
|
||||
a->u.l = strtol(p, &end, 10);
|
||||
return (end);
|
||||
default:
|
||||
errx(1, "%lu: %s: expected context address", linenum, fname);
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* duptoeol --
|
||||
* Return a copy of all the characters up to \n or \0.
|
||||
*/
|
||||
static char *
|
||||
duptoeol(s, ctype)
|
||||
char *s;
|
||||
const char *ctype;
|
||||
{
|
||||
size_t len;
|
||||
int ws;
|
||||
char *p, *start;
|
||||
|
||||
ws = 0;
|
||||
for (start = s; *s != '\0' && *s != '\n'; ++s)
|
||||
ws = isspace((unsigned char)*s);
|
||||
*s = '\0';
|
||||
if (ws)
|
||||
warnx("%lu: %s: whitespace after %s", linenum, fname, ctype);
|
||||
len = s - start + 1;
|
||||
if ((p = malloc(len)) == NULL)
|
||||
err(1, "malloc");
|
||||
return (memmove(p, start, len));
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert goto label names to addresses, and count a and r commands, in
|
||||
* the given subset of the script. Free the memory used by labels in b
|
||||
* and t commands (but not by :).
|
||||
*
|
||||
* TODO: Remove } nodes
|
||||
*/
|
||||
static void
|
||||
fixuplabel(cp, end)
|
||||
struct s_command *cp, *end;
|
||||
{
|
||||
|
||||
for (; cp != end; cp = cp->next)
|
||||
switch (cp->code) {
|
||||
case 'a':
|
||||
case 'r':
|
||||
appendnum++;
|
||||
break;
|
||||
case 'b':
|
||||
case 't':
|
||||
/* Resolve branch target. */
|
||||
if (cp->t == NULL) {
|
||||
cp->u.c = NULL;
|
||||
break;
|
||||
}
|
||||
if ((cp->u.c = findlabel(cp->t)) == NULL)
|
||||
errx(1, "%lu: %s: undefined label '%s'", linenum, fname, cp->t);
|
||||
free(cp->t);
|
||||
break;
|
||||
case '{':
|
||||
/* Do interior commands. */
|
||||
fixuplabel(cp->u.c, cp->next);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Associate the given command label for later lookup.
|
||||
*/
|
||||
static void
|
||||
enterlabel(cp)
|
||||
struct s_command *cp;
|
||||
{
|
||||
struct labhash **lhp, *lh;
|
||||
u_char *p;
|
||||
u_int h, c;
|
||||
|
||||
for (h = 0, p = (u_char *)cp->t; (c = *p) != 0; p++)
|
||||
h = (h << 5) + h + c;
|
||||
lhp = &labels[h & LHMASK];
|
||||
for (lh = *lhp; lh != NULL; lh = lh->lh_next)
|
||||
if (lh->lh_hash == h && strcmp(cp->t, lh->lh_cmd->t) == 0)
|
||||
errx(1, "%lu: %s: duplicate label '%s'", linenum, fname, cp->t);
|
||||
if ((lh = malloc(sizeof *lh)) == NULL)
|
||||
err(1, "malloc");
|
||||
lh->lh_next = *lhp;
|
||||
lh->lh_hash = h;
|
||||
lh->lh_cmd = cp;
|
||||
lh->lh_ref = 0;
|
||||
*lhp = lh;
|
||||
}
|
||||
|
||||
/*
|
||||
* Find the label contained in the command l in the command linked
|
||||
* list cp. L is excluded from the search. Return NULL if not found.
|
||||
*/
|
||||
static struct s_command *
|
||||
findlabel(name)
|
||||
char *name;
|
||||
{
|
||||
struct labhash *lh;
|
||||
u_char *p;
|
||||
u_int h, c;
|
||||
|
||||
for (h = 0, p = (u_char *)name; (c = *p) != 0; p++)
|
||||
h = (h << 5) + h + c;
|
||||
for (lh = labels[h & LHMASK]; lh != NULL; lh = lh->lh_next) {
|
||||
if (lh->lh_hash == h && strcmp(name, lh->lh_cmd->t) == 0) {
|
||||
lh->lh_ref = 1;
|
||||
return (lh->lh_cmd);
|
||||
}
|
||||
}
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Warn about any unused labels. As a side effect, release the label hash
|
||||
* table space.
|
||||
*/
|
||||
static void
|
||||
uselabel()
|
||||
{
|
||||
struct labhash *lh, *next;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < LHSZ; i++) {
|
||||
for (lh = labels[i]; lh != NULL; lh = next) {
|
||||
next = lh->lh_next;
|
||||
if (!lh->lh_ref)
|
||||
warnx("%lu: %s: unused label '%s'",
|
||||
linenum, fname, lh->lh_cmd->t);
|
||||
free(lh);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 1992 Diomidis Spinellis.
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Diomidis Spinellis of Imperial College, University of London.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)defs.h 8.1 (Berkeley) 6/6/93
|
||||
*/
|
||||
|
||||
/*
|
||||
* Types of address specifications
|
||||
*/
|
||||
enum e_atype {
|
||||
AT_RE, /* Line that match RE */
|
||||
AT_LINE, /* Specific line */
|
||||
AT_LAST, /* Last line */
|
||||
};
|
||||
|
||||
/*
|
||||
* Format of an address
|
||||
*/
|
||||
struct s_addr {
|
||||
enum e_atype type; /* Address type */
|
||||
union {
|
||||
u_long l; /* Line number */
|
||||
regex_t *r; /* Regular expression */
|
||||
} u;
|
||||
};
|
||||
|
||||
/*
|
||||
* Substitution command
|
||||
*/
|
||||
struct s_subst {
|
||||
int n; /* Occurrence to subst. */
|
||||
int p; /* True if p flag */
|
||||
char *wfile; /* NULL if no wfile */
|
||||
int wfd; /* Cached file descriptor */
|
||||
regex_t *re; /* Regular expression */
|
||||
int maxbref; /* Largest backreference. */
|
||||
u_long linenum; /* Line number. */
|
||||
char *new; /* Replacement text */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* An internally compiled command.
|
||||
* Initialy, label references are stored in t, on a second pass they
|
||||
* are updated to pointers.
|
||||
*/
|
||||
struct s_command {
|
||||
struct s_command *next; /* Pointer to next command */
|
||||
struct s_addr *a1, *a2; /* Start and end address */
|
||||
char *t; /* Text for : a c i r w */
|
||||
union {
|
||||
struct s_command *c; /* Command(s) for b t { */
|
||||
struct s_subst *s; /* Substitute command */
|
||||
u_char *y; /* Replace command array */
|
||||
int fd; /* File descriptor for w */
|
||||
} u;
|
||||
char code; /* Command code */
|
||||
u_int nonsel:1; /* True if ! */
|
||||
u_int inrange:1; /* True if in range */
|
||||
};
|
||||
|
||||
/*
|
||||
* Types of command arguments recognised by the parser
|
||||
*/
|
||||
enum e_args {
|
||||
EMPTY, /* d D g G h H l n N p P q x = \0 */
|
||||
TEXT, /* a c i */
|
||||
NONSEL, /* ! */
|
||||
GROUP, /* { */
|
||||
ENDGROUP, /* } */
|
||||
COMMENT, /* # */
|
||||
BRANCH, /* b t */
|
||||
LABEL, /* : */
|
||||
RFILE, /* r */
|
||||
WFILE, /* w */
|
||||
SUBST, /* s */
|
||||
TR /* y */
|
||||
};
|
||||
|
||||
/*
|
||||
* Structure containing things to append before a line is read
|
||||
*/
|
||||
struct s_appends {
|
||||
enum {AP_STRING, AP_FILE} type;
|
||||
char *s;
|
||||
size_t len;
|
||||
};
|
||||
|
||||
enum e_spflag {
|
||||
APPEND, /* Append to the contents. */
|
||||
REPLACE, /* Replace the contents. */
|
||||
};
|
||||
|
||||
/*
|
||||
* Structure for a space (process, hold, otherwise).
|
||||
*/
|
||||
typedef struct {
|
||||
char *space; /* Current space pointer. */
|
||||
size_t len; /* Current length. */
|
||||
int deleted; /* If deleted. */
|
||||
char *back; /* Backing memory. */
|
||||
size_t blen; /* Backing memory length. */
|
||||
} SPACE;
|
||||
@@ -1,58 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 1992 Diomidis Spinellis.
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Diomidis Spinellis of Imperial College, University of London.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)extern.h 8.1 (Berkeley) 6/6/93
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
extern struct s_command *prog;
|
||||
extern struct s_appends *appends;
|
||||
extern regmatch_t *match;
|
||||
extern size_t maxnsub;
|
||||
extern u_long linenum;
|
||||
extern int appendnum;
|
||||
extern int aflag, eflag, nflag;
|
||||
extern const char *fname;
|
||||
extern int rflags; /* regex flags to use */
|
||||
|
||||
void cfclose(struct s_command *, struct s_command *);
|
||||
void compile(void);
|
||||
void cspace(SPACE *, const char *, size_t, enum e_spflag);
|
||||
char *cu_fgets(char *, int, int *);
|
||||
int mf_fgets(SPACE *, enum e_spflag);
|
||||
int lastline(void);
|
||||
void process(void);
|
||||
char *strregerror(int, regex_t *);
|
||||
@@ -1,467 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 1992 Diomidis Spinellis.
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Diomidis Spinellis of Imperial College, University of London.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static const char copyright[] =
|
||||
"@(#) Copyright (c) 1992, 1993\n\
|
||||
The Regents of the University of California. All rights reserved.\n";
|
||||
#endif
|
||||
|
||||
#ifndef lint
|
||||
static const char sccsid[] = "@(#)main.c 8.2 (Berkeley) 1/3/94";
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <locale.h>
|
||||
#include <regex.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "defs.h"
|
||||
#include "extern.h"
|
||||
|
||||
/*
|
||||
* Linked list of units (strings and files) to be compiled
|
||||
*/
|
||||
struct s_compunit {
|
||||
struct s_compunit *next;
|
||||
enum e_cut {CU_FILE, CU_STRING} type;
|
||||
char *s; /* Pointer to string or fname */
|
||||
};
|
||||
|
||||
/*
|
||||
* Linked list pointer to compilation units and pointer to current
|
||||
* next pointer.
|
||||
*/
|
||||
static struct s_compunit *script, **cu_nextp = &script;
|
||||
|
||||
/*
|
||||
* Linked list of files to be processed
|
||||
*/
|
||||
struct s_flist {
|
||||
char *fname;
|
||||
struct s_flist *next;
|
||||
};
|
||||
|
||||
/*
|
||||
* Linked list pointer to files and pointer to current
|
||||
* next pointer.
|
||||
*/
|
||||
static struct s_flist *files, **fl_nextp = &files;
|
||||
|
||||
static FILE *curfile; /* Current open file */
|
||||
|
||||
int aflag, eflag, nflag;
|
||||
int rflags = 0;
|
||||
static int rval; /* Exit status */
|
||||
|
||||
/*
|
||||
* Current file and line number; line numbers restart across compilation
|
||||
* units, but span across input files.
|
||||
*/
|
||||
const char *fname; /* File name. */
|
||||
const char *inplace; /* Inplace edit file extension. */
|
||||
u_long linenum;
|
||||
|
||||
static void add_compunit(enum e_cut, char *);
|
||||
static void add_file(char *);
|
||||
static int inplace_edit(char **);
|
||||
static void usage(void);
|
||||
|
||||
int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
int c, fflag;
|
||||
char *temp_arg;
|
||||
|
||||
(void) setlocale(LC_ALL, "");
|
||||
|
||||
fflag = 0;
|
||||
inplace = NULL;
|
||||
|
||||
while ((c = getopt(argc, argv, "Eae:f:i:n")) != -1)
|
||||
switch (c) {
|
||||
case 'E':
|
||||
rflags = REG_EXTENDED;
|
||||
break;
|
||||
case 'a':
|
||||
aflag = 1;
|
||||
break;
|
||||
case 'e':
|
||||
eflag = 1;
|
||||
if ((temp_arg = malloc(strlen(optarg) + 2)) == NULL)
|
||||
err(1, "malloc");
|
||||
strcpy(temp_arg, optarg);
|
||||
strcat(temp_arg, "\n");
|
||||
add_compunit(CU_STRING, temp_arg);
|
||||
break;
|
||||
case 'f':
|
||||
fflag = 1;
|
||||
add_compunit(CU_FILE, optarg);
|
||||
break;
|
||||
case 'i':
|
||||
inplace = optarg;
|
||||
break;
|
||||
case 'n':
|
||||
nflag = 1;
|
||||
break;
|
||||
default:
|
||||
case '?':
|
||||
usage();
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
/* First usage case; script is the first arg */
|
||||
if (!eflag && !fflag && *argv) {
|
||||
add_compunit(CU_STRING, *argv);
|
||||
argv++;
|
||||
}
|
||||
|
||||
compile();
|
||||
|
||||
/* Continue with first and start second usage */
|
||||
if (*argv)
|
||||
for (; *argv; argv++)
|
||||
add_file(*argv);
|
||||
else
|
||||
add_file(NULL);
|
||||
process();
|
||||
cfclose(prog, NULL);
|
||||
if (fclose(stdout))
|
||||
err(1, "stdout");
|
||||
exit(rval);
|
||||
}
|
||||
|
||||
static void
|
||||
usage()
|
||||
{
|
||||
(void)fprintf(stderr, "%s\n%s\n",
|
||||
"usage: sed script [-Ean] [-i extension] [file ...]",
|
||||
" sed [-an] [-i extension] [-e script] ... [-f script_file] ... [file ...]");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Like fgets, but go through the chain of compilation units chaining them
|
||||
* together. Empty strings and files are ignored.
|
||||
*/
|
||||
char *
|
||||
cu_fgets(buf, n, more)
|
||||
char *buf;
|
||||
int n;
|
||||
int *more;
|
||||
{
|
||||
static enum {ST_EOF, ST_FILE, ST_STRING} state = ST_EOF;
|
||||
static FILE *f; /* Current open file */
|
||||
static char *s; /* Current pointer inside string */
|
||||
static char string_ident[30];
|
||||
char *p;
|
||||
|
||||
again:
|
||||
switch (state) {
|
||||
case ST_EOF:
|
||||
if (script == NULL) {
|
||||
if (more != NULL)
|
||||
*more = 0;
|
||||
return (NULL);
|
||||
}
|
||||
linenum = 0;
|
||||
switch (script->type) {
|
||||
case CU_FILE:
|
||||
if ((f = fopen(script->s, "r")) == NULL)
|
||||
err(1, "%s", script->s);
|
||||
fname = script->s;
|
||||
state = ST_FILE;
|
||||
goto again;
|
||||
case CU_STRING:
|
||||
if ((snprintf(string_ident,
|
||||
sizeof(string_ident), "\"%s\"", script->s)) >=
|
||||
sizeof(string_ident) - 1)
|
||||
(void)strcpy(string_ident +
|
||||
sizeof(string_ident) - 6, " ...\"");
|
||||
fname = string_ident;
|
||||
s = script->s;
|
||||
state = ST_STRING;
|
||||
goto again;
|
||||
}
|
||||
case ST_FILE:
|
||||
if ((p = fgets(buf, n, f)) != NULL) {
|
||||
linenum++;
|
||||
if (linenum == 1 && buf[0] == '#' && buf[1] == 'n')
|
||||
nflag = 1;
|
||||
if (more != NULL)
|
||||
*more = !feof(f);
|
||||
return (p);
|
||||
}
|
||||
script = script->next;
|
||||
(void)fclose(f);
|
||||
state = ST_EOF;
|
||||
goto again;
|
||||
case ST_STRING:
|
||||
if (linenum == 0 && s[0] == '#' && s[1] == 'n')
|
||||
nflag = 1;
|
||||
p = buf;
|
||||
for (;;) {
|
||||
if (n-- <= 1) {
|
||||
*p = '\0';
|
||||
linenum++;
|
||||
if (more != NULL)
|
||||
*more = 1;
|
||||
return (buf);
|
||||
}
|
||||
switch (*s) {
|
||||
case '\0':
|
||||
state = ST_EOF;
|
||||
if (s == script->s) {
|
||||
script = script->next;
|
||||
goto again;
|
||||
} else {
|
||||
script = script->next;
|
||||
*p = '\0';
|
||||
linenum++;
|
||||
if (more != NULL)
|
||||
*more = 0;
|
||||
return (buf);
|
||||
}
|
||||
case '\n':
|
||||
*p++ = '\n';
|
||||
*p = '\0';
|
||||
s++;
|
||||
linenum++;
|
||||
if (more != NULL)
|
||||
*more = 0;
|
||||
return (buf);
|
||||
default:
|
||||
*p++ = *s++;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* NOTREACHED */
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Like fgets, but go through the list of files chaining them together.
|
||||
* Set len to the length of the line.
|
||||
*/
|
||||
int
|
||||
mf_fgets(sp, spflag)
|
||||
SPACE *sp;
|
||||
enum e_spflag spflag;
|
||||
{
|
||||
size_t len;
|
||||
char *p;
|
||||
int c;
|
||||
static int firstfile;
|
||||
|
||||
if (curfile == NULL) {
|
||||
/* stdin? */
|
||||
if (files->fname == NULL) {
|
||||
if (inplace != NULL)
|
||||
errx(1, "-i may not be used with stdin");
|
||||
curfile = stdin;
|
||||
fname = "stdin";
|
||||
}
|
||||
firstfile = 1;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
if (curfile != NULL && (c = getc(curfile)) != EOF) {
|
||||
(void)ungetc(c, curfile);
|
||||
break;
|
||||
}
|
||||
/* If we are here then either eof or no files are open yet */
|
||||
if (curfile == stdin) {
|
||||
sp->len = 0;
|
||||
return (0);
|
||||
}
|
||||
if (curfile != NULL) {
|
||||
fclose(curfile);
|
||||
}
|
||||
if (firstfile == 0) {
|
||||
files = files->next;
|
||||
} else
|
||||
firstfile = 0;
|
||||
if (files == NULL) {
|
||||
sp->len = 0;
|
||||
return (0);
|
||||
}
|
||||
if (inplace != NULL) {
|
||||
if (inplace_edit(&files->fname) == -1)
|
||||
continue;
|
||||
}
|
||||
fname = files->fname;
|
||||
if ((curfile = fopen(fname, "r")) == NULL) {
|
||||
warn("%s", fname);
|
||||
rval = 1;
|
||||
continue;
|
||||
}
|
||||
if (inplace != NULL && *inplace == '\0')
|
||||
unlink(fname);
|
||||
}
|
||||
/*
|
||||
* We are here only when curfile is open and we still have something
|
||||
* to read from it.
|
||||
*
|
||||
* Use fgetln so that we can handle essentially infinite input data.
|
||||
* Can't use the pointer into the stdio buffer as the process space
|
||||
* because the ungetc() can cause it to move.
|
||||
*/
|
||||
p = fgetln(curfile, &len);
|
||||
if (ferror(curfile))
|
||||
errx(1, "%s: %s", fname, strerror(errno ? errno : EIO));
|
||||
if (len != 0 && p[len - 1] == '\n')
|
||||
len--;
|
||||
cspace(sp, p, len, spflag);
|
||||
|
||||
linenum++;
|
||||
|
||||
return (1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Add a compilation unit to the linked list
|
||||
*/
|
||||
static void
|
||||
add_compunit(type, s)
|
||||
enum e_cut type;
|
||||
char *s;
|
||||
{
|
||||
struct s_compunit *cu;
|
||||
|
||||
if ((cu = malloc(sizeof(struct s_compunit))) == NULL)
|
||||
err(1, "malloc");
|
||||
cu->type = type;
|
||||
cu->s = s;
|
||||
cu->next = NULL;
|
||||
*cu_nextp = cu;
|
||||
cu_nextp = &cu->next;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add a file to the linked list
|
||||
*/
|
||||
static void
|
||||
add_file(s)
|
||||
char *s;
|
||||
{
|
||||
struct s_flist *fp;
|
||||
|
||||
if ((fp = malloc(sizeof(struct s_flist))) == NULL)
|
||||
err(1, "malloc");
|
||||
fp->next = NULL;
|
||||
*fl_nextp = fp;
|
||||
fp->fname = s;
|
||||
fl_nextp = &fp->next;
|
||||
}
|
||||
|
||||
/*
|
||||
* Modify a pointer to a filename for inplace editing and reopen stdout
|
||||
*/
|
||||
static int
|
||||
inplace_edit(filename)
|
||||
char **filename;
|
||||
{
|
||||
struct stat orig;
|
||||
char backup[MAXPATHLEN];
|
||||
|
||||
if (lstat(*filename, &orig) == -1)
|
||||
err(1, "lstat");
|
||||
if ((orig.st_mode & S_IFREG) == 0) {
|
||||
warnx("cannot inplace edit %s, not a regular file", *filename);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (*inplace == '\0') {
|
||||
/*
|
||||
* This is a bit of a hack: we use mkstemp() to avoid the
|
||||
* mktemp() link-time warning, although mktemp() would fit in
|
||||
* this context much better. We're only interested in getting
|
||||
* a name for use in the rename(); there aren't any security
|
||||
* issues here that don't already exist in relation to the
|
||||
* original file and its directory.
|
||||
*/
|
||||
int fd;
|
||||
strlcpy(backup, *filename, sizeof(backup));
|
||||
strlcat(backup, ".XXXXXXXXXX", sizeof(backup));
|
||||
fd = mkstemp(backup);
|
||||
if (fd == -1)
|
||||
errx(1, "could not create backup of %s", *filename);
|
||||
else
|
||||
close(fd);
|
||||
} else {
|
||||
strlcpy(backup, *filename, sizeof(backup));
|
||||
strlcat(backup, inplace, sizeof(backup));
|
||||
}
|
||||
|
||||
if (rename(*filename, backup) == -1)
|
||||
err(1, "rename(\"%s\", \"%s\")", *filename, backup);
|
||||
if (freopen(*filename, "w", stdout) == NULL)
|
||||
err(1, "open(\"%s\")", *filename);
|
||||
if (fchmod(fileno(stdout), orig.st_mode) == -1)
|
||||
err(1, "chmod(\"%s\")", *filename);
|
||||
*filename = strdup(backup);
|
||||
if (*filename == NULL)
|
||||
err(1, "malloc");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
lastline(void)
|
||||
{
|
||||
int ch;
|
||||
|
||||
if (files->next != NULL)
|
||||
return (0);
|
||||
if ((ch = getc(curfile)) == EOF)
|
||||
return (1);
|
||||
ungetc(ch, curfile);
|
||||
return (0);
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 1992 Diomidis Spinellis.
|
||||
* Copyright (c) 1992, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Diomidis Spinellis of Imperial College, University of London.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static const char sccsid[] = "@(#)misc.c 8.1 (Berkeley) 6/6/93";
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <err.h>
|
||||
#include <regex.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "defs.h"
|
||||
#include "extern.h"
|
||||
|
||||
/*
|
||||
* Return a string for a regular expression error passed. This is a overkill,
|
||||
* because of the silly semantics of regerror (we can never know the size of
|
||||
* the buffer).
|
||||
*/
|
||||
char *
|
||||
strregerror(errcode, preg)
|
||||
int errcode;
|
||||
regex_t *preg;
|
||||
{
|
||||
static char *oe;
|
||||
size_t s;
|
||||
|
||||
if (oe != NULL)
|
||||
free(oe);
|
||||
s = regerror(errcode, preg, NULL, 0);
|
||||
if ((oe = malloc(s)) == NULL)
|
||||
err(1, "malloc");
|
||||
(void)regerror(errcode, preg, oe, s);
|
||||
return (oe);
|
||||
}
|
||||
@@ -1,648 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 1992 Diomidis Spinellis.
|
||||
* Copyright (c) 1992, 1993, 1994
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Diomidis Spinellis of Imperial College, University of London.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static const char sccsid[] = "@(#)process.c 8.6 (Berkeley) 4/20/94";
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/uio.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <regex.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "defs.h"
|
||||
#include "extern.h"
|
||||
|
||||
static SPACE HS, PS, SS;
|
||||
#define pd PS.deleted
|
||||
#define ps PS.space
|
||||
#define psl PS.len
|
||||
#define hs HS.space
|
||||
#define hsl HS.len
|
||||
|
||||
static __inline int applies(struct s_command *);
|
||||
static void flush_appends(void);
|
||||
static void lputs(char *);
|
||||
static __inline int regexec_e(regex_t *, const char *, int, int, size_t);
|
||||
static void regsub(SPACE *, char *, char *);
|
||||
static int substitute(struct s_command *);
|
||||
|
||||
struct s_appends *appends; /* Array of pointers to strings to append. */
|
||||
static int appendx; /* Index into appends array. */
|
||||
int appendnum; /* Size of appends array. */
|
||||
|
||||
static int lastaddr; /* Set by applies if last address of a range. */
|
||||
static int sdone; /* If any substitutes since last line input. */
|
||||
/* Iov structure for 'w' commands. */
|
||||
static regex_t *defpreg;
|
||||
size_t maxnsub;
|
||||
regmatch_t *match;
|
||||
|
||||
#define OUT(s) { fwrite(s, sizeof(u_char), psl, stdout); putchar('\n'); }
|
||||
|
||||
void
|
||||
process()
|
||||
{
|
||||
struct s_command *cp;
|
||||
SPACE tspace;
|
||||
size_t len, oldpsl = 0;
|
||||
char *p;
|
||||
|
||||
p = NULL;
|
||||
|
||||
for (linenum = 0; mf_fgets(&PS, REPLACE);) {
|
||||
pd = 0;
|
||||
top:
|
||||
cp = prog;
|
||||
redirect:
|
||||
while (cp != NULL) {
|
||||
if (!applies(cp)) {
|
||||
cp = cp->next;
|
||||
continue;
|
||||
}
|
||||
switch (cp->code) {
|
||||
case '{':
|
||||
cp = cp->u.c;
|
||||
goto redirect;
|
||||
case 'a':
|
||||
if (appendx >= appendnum)
|
||||
if ((appends = realloc(appends,
|
||||
sizeof(struct s_appends) *
|
||||
(appendnum *= 2))) == NULL)
|
||||
err(1, "realloc");
|
||||
appends[appendx].type = AP_STRING;
|
||||
appends[appendx].s = cp->t;
|
||||
appends[appendx].len = strlen(cp->t);
|
||||
appendx++;
|
||||
break;
|
||||
case 'b':
|
||||
cp = cp->u.c;
|
||||
goto redirect;
|
||||
case 'c':
|
||||
pd = 1;
|
||||
psl = 0;
|
||||
if (cp->a2 == NULL || lastaddr)
|
||||
(void)printf("%s", cp->t);
|
||||
break;
|
||||
case 'd':
|
||||
pd = 1;
|
||||
goto new;
|
||||
case 'D':
|
||||
if (pd)
|
||||
goto new;
|
||||
if (psl == 0 ||
|
||||
(p = memchr(ps, '\n', psl)) == NULL) {
|
||||
pd = 1;
|
||||
goto new;
|
||||
} else {
|
||||
psl -= (p + 1) - ps;
|
||||
memmove(ps, p + 1, psl);
|
||||
goto top;
|
||||
}
|
||||
case 'g':
|
||||
cspace(&PS, hs, hsl, REPLACE);
|
||||
break;
|
||||
case 'G':
|
||||
cspace(&PS, "\n", 1, 0);
|
||||
cspace(&PS, hs, hsl, 0);
|
||||
break;
|
||||
case 'h':
|
||||
cspace(&HS, ps, psl, REPLACE);
|
||||
break;
|
||||
case 'H':
|
||||
cspace(&HS, "\n", 1, 0);
|
||||
cspace(&HS, ps, psl, 0);
|
||||
break;
|
||||
case 'i':
|
||||
(void)printf("%s", cp->t);
|
||||
break;
|
||||
case 'l':
|
||||
lputs(ps);
|
||||
break;
|
||||
case 'n':
|
||||
if (!nflag && !pd)
|
||||
OUT(ps)
|
||||
flush_appends();
|
||||
if (!mf_fgets(&PS, REPLACE))
|
||||
exit(0);
|
||||
pd = 0;
|
||||
break;
|
||||
case 'N':
|
||||
flush_appends();
|
||||
cspace(&PS, "\n", 1, 0);
|
||||
if (!mf_fgets(&PS, 0))
|
||||
exit(0);
|
||||
break;
|
||||
case 'p':
|
||||
if (pd)
|
||||
break;
|
||||
OUT(ps)
|
||||
break;
|
||||
case 'P':
|
||||
if (pd)
|
||||
break;
|
||||
if (psl != 0 &&
|
||||
(p = memchr(ps, '\n', psl)) != NULL) {
|
||||
oldpsl = psl;
|
||||
psl = p - ps;
|
||||
}
|
||||
OUT(ps)
|
||||
if (p != NULL)
|
||||
psl = oldpsl;
|
||||
break;
|
||||
case 'q':
|
||||
if (!nflag && !pd)
|
||||
OUT(ps)
|
||||
flush_appends();
|
||||
exit(0);
|
||||
case 'r':
|
||||
if (appendx >= appendnum)
|
||||
if ((appends = realloc(appends,
|
||||
sizeof(struct s_appends) *
|
||||
(appendnum *= 2))) == NULL)
|
||||
err(1, "realloc");
|
||||
appends[appendx].type = AP_FILE;
|
||||
appends[appendx].s = cp->t;
|
||||
appends[appendx].len = strlen(cp->t);
|
||||
appendx++;
|
||||
break;
|
||||
case 's':
|
||||
sdone |= substitute(cp);
|
||||
break;
|
||||
case 't':
|
||||
if (sdone) {
|
||||
sdone = 0;
|
||||
cp = cp->u.c;
|
||||
goto redirect;
|
||||
}
|
||||
break;
|
||||
case 'w':
|
||||
if (pd)
|
||||
break;
|
||||
if (cp->u.fd == -1 && (cp->u.fd = open(cp->t,
|
||||
O_WRONLY|O_APPEND|O_CREAT|O_TRUNC,
|
||||
DEFFILEMODE)) == -1)
|
||||
err(1, "%s", cp->t);
|
||||
if (write(cp->u.fd, ps, psl) != psl ||
|
||||
write(cp->u.fd, "\n", 1) != 1)
|
||||
err(1, "%s", cp->t);
|
||||
break;
|
||||
case 'x':
|
||||
if (hs == NULL)
|
||||
cspace(&HS, "", 0, REPLACE);
|
||||
tspace = PS;
|
||||
PS = HS;
|
||||
HS = tspace;
|
||||
break;
|
||||
case 'y':
|
||||
if (pd || psl == 0)
|
||||
break;
|
||||
for (p = ps, len = psl; len--; ++p)
|
||||
*p = cp->u.y[(unsigned char)*p];
|
||||
break;
|
||||
case ':':
|
||||
case '}':
|
||||
break;
|
||||
case '=':
|
||||
(void)printf("%lu\n", linenum);
|
||||
}
|
||||
cp = cp->next;
|
||||
} /* for all cp */
|
||||
|
||||
new: if (!nflag && !pd)
|
||||
OUT(ps)
|
||||
flush_appends();
|
||||
} /* for all lines */
|
||||
}
|
||||
|
||||
/*
|
||||
* TRUE if the address passed matches the current program state
|
||||
* (lastline, linenumber, ps).
|
||||
*/
|
||||
#define MATCH(a) \
|
||||
(a)->type == AT_RE ? regexec_e((a)->u.r, ps, 0, 1, psl) : \
|
||||
(a)->type == AT_LINE ? linenum == (a)->u.l : lastline()
|
||||
|
||||
/*
|
||||
* Return TRUE if the command applies to the current line. Sets the inrange
|
||||
* flag to process ranges. Interprets the non-select (``!'') flag.
|
||||
*/
|
||||
static __inline int
|
||||
applies(cp)
|
||||
struct s_command *cp;
|
||||
{
|
||||
int r;
|
||||
|
||||
lastaddr = 0;
|
||||
if (cp->a1 == NULL && cp->a2 == NULL)
|
||||
r = 1;
|
||||
else if (cp->a2)
|
||||
if (cp->inrange) {
|
||||
if (MATCH(cp->a2)) {
|
||||
cp->inrange = 0;
|
||||
lastaddr = 1;
|
||||
}
|
||||
r = 1;
|
||||
} else if (MATCH(cp->a1)) {
|
||||
/*
|
||||
* If the second address is a number less than or
|
||||
* equal to the line number first selected, only
|
||||
* one line shall be selected.
|
||||
* -- POSIX 1003.2
|
||||
*/
|
||||
if (cp->a2->type == AT_LINE &&
|
||||
linenum >= cp->a2->u.l)
|
||||
lastaddr = 1;
|
||||
else
|
||||
cp->inrange = 1;
|
||||
r = 1;
|
||||
} else
|
||||
r = 0;
|
||||
else
|
||||
r = MATCH(cp->a1);
|
||||
return (cp->nonsel ? ! r : r);
|
||||
}
|
||||
|
||||
/*
|
||||
* substitute --
|
||||
* Do substitutions in the pattern space. Currently, we build a
|
||||
* copy of the new pattern space in the substitute space structure
|
||||
* and then swap them.
|
||||
*/
|
||||
static int
|
||||
substitute(cp)
|
||||
struct s_command *cp;
|
||||
{
|
||||
SPACE tspace;
|
||||
regex_t *re;
|
||||
size_t re_off, slen;
|
||||
int lastempty, n;
|
||||
char *s;
|
||||
|
||||
s = ps;
|
||||
re = cp->u.s->re;
|
||||
if (re == NULL) {
|
||||
if (defpreg != NULL && cp->u.s->maxbref > defpreg->re_nsub) {
|
||||
linenum = cp->u.s->linenum;
|
||||
errx(1, "%lu: %s: \\%d not defined in the RE",
|
||||
linenum, fname, cp->u.s->maxbref);
|
||||
}
|
||||
}
|
||||
if (!regexec_e(re, s, 0, 0, psl))
|
||||
return (0);
|
||||
|
||||
SS.len = 0; /* Clean substitute space. */
|
||||
slen = psl;
|
||||
n = cp->u.s->n;
|
||||
lastempty = 1;
|
||||
|
||||
switch (n) {
|
||||
case 0: /* Global */
|
||||
do {
|
||||
if (lastempty || match[0].rm_so != match[0].rm_eo) {
|
||||
/* Locate start of replaced string. */
|
||||
re_off = match[0].rm_so;
|
||||
/* Copy leading retained string. */
|
||||
cspace(&SS, s, re_off, APPEND);
|
||||
/* Add in regular expression. */
|
||||
regsub(&SS, s, cp->u.s->new);
|
||||
}
|
||||
|
||||
/* Move past this match. */
|
||||
if (match[0].rm_so != match[0].rm_eo) {
|
||||
s += match[0].rm_eo;
|
||||
slen -= match[0].rm_eo;
|
||||
lastempty = 0;
|
||||
} else if (match[0].rm_so == slen) {
|
||||
s += match[0].rm_so;
|
||||
slen = 0;
|
||||
} else {
|
||||
if (match[0].rm_so == 0)
|
||||
cspace(&SS, s, match[0].rm_so + 1,
|
||||
APPEND);
|
||||
else
|
||||
cspace(&SS, s + match[0].rm_so, 1,
|
||||
APPEND);
|
||||
s += match[0].rm_so + 1;
|
||||
slen -= match[0].rm_so + 1;
|
||||
lastempty = 1;
|
||||
}
|
||||
} while (slen > 0 && regexec_e(re, s, REG_NOTBOL, 0, slen));
|
||||
/* Copy trailing retained string. */
|
||||
if (slen > 0)
|
||||
cspace(&SS, s, slen, APPEND);
|
||||
break;
|
||||
default: /* Nth occurrence */
|
||||
while (--n) {
|
||||
s += match[0].rm_eo;
|
||||
slen -= match[0].rm_eo;
|
||||
if (!regexec_e(re, s, REG_NOTBOL, 0, slen))
|
||||
return (0);
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
case 1: /* 1st occurrence */
|
||||
/* Locate start of replaced string. */
|
||||
re_off = match[0].rm_so + (s - ps);
|
||||
/* Copy leading retained string. */
|
||||
cspace(&SS, ps, re_off, APPEND);
|
||||
/* Add in regular expression. */
|
||||
regsub(&SS, s, cp->u.s->new);
|
||||
/* Copy trailing retained string. */
|
||||
s += match[0].rm_eo;
|
||||
slen -= match[0].rm_eo;
|
||||
cspace(&SS, s, slen, APPEND);
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Swap the substitute space and the pattern space, and make sure
|
||||
* that any leftover pointers into stdio memory get lost.
|
||||
*/
|
||||
tspace = PS;
|
||||
PS = SS;
|
||||
SS = tspace;
|
||||
SS.space = SS.back;
|
||||
|
||||
/* Handle the 'p' flag. */
|
||||
if (cp->u.s->p)
|
||||
OUT(ps)
|
||||
|
||||
/* Handle the 'w' flag. */
|
||||
if (cp->u.s->wfile && !pd) {
|
||||
if (cp->u.s->wfd == -1 && (cp->u.s->wfd = open(cp->u.s->wfile,
|
||||
O_WRONLY|O_APPEND|O_CREAT|O_TRUNC, DEFFILEMODE)) == -1)
|
||||
err(1, "%s", cp->u.s->wfile);
|
||||
if (write(cp->u.s->wfd, ps, psl) != psl ||
|
||||
write(cp->u.s->wfd, "\n", 1) != 1)
|
||||
err(1, "%s", cp->u.s->wfile);
|
||||
}
|
||||
return (1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Flush append requests. Always called before reading a line,
|
||||
* therefore it also resets the substitution done (sdone) flag.
|
||||
*/
|
||||
static void
|
||||
flush_appends()
|
||||
{
|
||||
FILE *f;
|
||||
int count, i;
|
||||
char buf[8 * 1024];
|
||||
|
||||
for (i = 0; i < appendx; i++)
|
||||
switch (appends[i].type) {
|
||||
case AP_STRING:
|
||||
fwrite(appends[i].s, sizeof(char), appends[i].len,
|
||||
stdout);
|
||||
break;
|
||||
case AP_FILE:
|
||||
/*
|
||||
* Read files probably shouldn't be cached. Since
|
||||
* it's not an error to read a non-existent file,
|
||||
* it's possible that another program is interacting
|
||||
* with the sed script through the filesystem. It
|
||||
* would be truly bizarre, but possible. It's probably
|
||||
* not that big a performance win, anyhow.
|
||||
*/
|
||||
if ((f = fopen(appends[i].s, "r")) == NULL)
|
||||
break;
|
||||
while ((count = fread(buf, sizeof(char), sizeof(buf), f)))
|
||||
(void)fwrite(buf, sizeof(char), count, stdout);
|
||||
(void)fclose(f);
|
||||
break;
|
||||
}
|
||||
if (ferror(stdout))
|
||||
errx(1, "stdout: %s", strerror(errno ? errno : EIO));
|
||||
appendx = sdone = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
lputs(s)
|
||||
char *s;
|
||||
{
|
||||
int count;
|
||||
const char *escapes;
|
||||
char *p;
|
||||
struct winsize win;
|
||||
static int termwidth = -1;
|
||||
|
||||
if (termwidth == -1) {
|
||||
if ((p = getenv("COLUMNS")) && *p != '\0')
|
||||
termwidth = atoi(p);
|
||||
else if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &win) == 0 &&
|
||||
win.ws_col > 0)
|
||||
termwidth = win.ws_col;
|
||||
else
|
||||
termwidth = 60;
|
||||
}
|
||||
|
||||
for (count = 0; *s; ++s) {
|
||||
if (count + 5 >= termwidth) {
|
||||
(void)printf("\\\n");
|
||||
count = 0;
|
||||
}
|
||||
if (isprint((unsigned char)*s) && *s != '\\') {
|
||||
(void)putchar(*s);
|
||||
count++;
|
||||
} else if (*s == '\n') {
|
||||
(void)putchar('$');
|
||||
(void)putchar('\n');
|
||||
count = 0;
|
||||
} else {
|
||||
escapes = "\\\a\b\f\r\t\v";
|
||||
(void)putchar('\\');
|
||||
if ((p = strchr(escapes, *s))) {
|
||||
(void)putchar("\\abfrtv"[p - escapes]);
|
||||
count += 2;
|
||||
} else {
|
||||
(void)printf("%03o", *(u_char *)s);
|
||||
count += 4;
|
||||
}
|
||||
}
|
||||
}
|
||||
(void)putchar('$');
|
||||
(void)putchar('\n');
|
||||
if (ferror(stdout))
|
||||
errx(1, "stdout: %s", strerror(errno ? errno : EIO));
|
||||
}
|
||||
|
||||
static __inline int
|
||||
regexec_e(preg, string, eflags, nomatch, slen)
|
||||
regex_t *preg;
|
||||
const char *string;
|
||||
int eflags, nomatch;
|
||||
size_t slen;
|
||||
{
|
||||
int eval;
|
||||
|
||||
if (preg == NULL) {
|
||||
if (defpreg == NULL)
|
||||
errx(1, "first RE may not be empty");
|
||||
} else
|
||||
defpreg = preg;
|
||||
|
||||
/* Set anchors */
|
||||
match[0].rm_so = 0;
|
||||
match[0].rm_eo = slen;
|
||||
|
||||
eval = regexec(defpreg, string,
|
||||
nomatch ? 0 : maxnsub + 1, match, eflags | REG_STARTEND);
|
||||
switch(eval) {
|
||||
case 0:
|
||||
return (1);
|
||||
case REG_NOMATCH:
|
||||
return (0);
|
||||
}
|
||||
errx(1, "RE error: %s", strregerror(eval, defpreg));
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
/*
|
||||
* regsub - perform substitutions after a regexp match
|
||||
* Based on a routine by Henry Spencer
|
||||
*/
|
||||
static void
|
||||
regsub(sp, string, src)
|
||||
SPACE *sp;
|
||||
char *string, *src;
|
||||
{
|
||||
int len, no;
|
||||
char c, *dst;
|
||||
|
||||
#define NEEDSP(reqlen) \
|
||||
if (sp->len >= sp->blen - (reqlen) - 1) { \
|
||||
sp->blen += (reqlen) + 1024; \
|
||||
if ((sp->space = sp->back = realloc(sp->back, sp->blen)) \
|
||||
== NULL) \
|
||||
err(1, "realloc"); \
|
||||
dst = sp->space + sp->len; \
|
||||
}
|
||||
|
||||
dst = sp->space + sp->len;
|
||||
while ((c = *src++) != '\0') {
|
||||
if (c == '&')
|
||||
no = 0;
|
||||
else if (c == '\\' && isdigit((unsigned char)*src))
|
||||
no = *src++ - '0';
|
||||
else
|
||||
no = -1;
|
||||
if (no < 0) { /* Ordinary character. */
|
||||
if (c == '\\' && (*src == '\\' || *src == '&'))
|
||||
c = *src++;
|
||||
NEEDSP(1);
|
||||
*dst++ = c;
|
||||
++sp->len;
|
||||
} else if (match[no].rm_so != -1 && match[no].rm_eo != -1) {
|
||||
len = match[no].rm_eo - match[no].rm_so;
|
||||
NEEDSP(len);
|
||||
memmove(dst, string + match[no].rm_so, len);
|
||||
dst += len;
|
||||
sp->len += len;
|
||||
}
|
||||
}
|
||||
NEEDSP(1);
|
||||
*dst = '\0';
|
||||
}
|
||||
|
||||
/*
|
||||
* aspace --
|
||||
* Append the source space to the destination space, allocating new
|
||||
* space as necessary.
|
||||
*/
|
||||
void
|
||||
cspace(sp, p, len, spflag)
|
||||
SPACE *sp;
|
||||
const char *p;
|
||||
size_t len;
|
||||
enum e_spflag spflag;
|
||||
{
|
||||
size_t tlen;
|
||||
|
||||
/* Make sure SPACE has enough memory and ramp up quickly. */
|
||||
tlen = sp->len + len + 1;
|
||||
if (tlen > sp->blen) {
|
||||
sp->blen = tlen + 1024;
|
||||
if ((sp->space = sp->back = realloc(sp->back, sp->blen)) ==
|
||||
NULL)
|
||||
err(1, "realloc");
|
||||
}
|
||||
|
||||
if (spflag == REPLACE)
|
||||
sp->len = 0;
|
||||
|
||||
memmove(sp->space + sp->len, p, len);
|
||||
|
||||
sp->space[sp->len += len] = '\0';
|
||||
}
|
||||
|
||||
/*
|
||||
* Close all cached opened files and report any errors
|
||||
*/
|
||||
void
|
||||
cfclose(cp, end)
|
||||
struct s_command *cp, *end;
|
||||
{
|
||||
|
||||
for (; cp != end; cp = cp->next)
|
||||
switch(cp->code) {
|
||||
case 's':
|
||||
if (cp->u.s->wfd != -1 && close(cp->u.s->wfd))
|
||||
err(1, "%s", cp->u.s->wfile);
|
||||
cp->u.s->wfd = -1;
|
||||
break;
|
||||
case 'w':
|
||||
if (cp->u.fd != -1 && close(cp->u.fd))
|
||||
err(1, "%s", cp->t);
|
||||
cp->u.fd = -1;
|
||||
break;
|
||||
case '{':
|
||||
cfclose(cp->u.c, cp->next);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
# New ports collection makefile for: XML for Java
|
||||
# Date created: 21 Feb 2000
|
||||
# Whom: Jun Kuriyama <kuriyama@FreeBSD.org>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= xml4j
|
||||
PORTVERSION= 4.3.0
|
||||
CATEGORIES= textproc
|
||||
MASTER_SITES= http://dl.alphaworks.ibm.com/technologies/xml4j/
|
||||
DISTNAME= XML4J-bin.${PORTVERSION}
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
COMMENT= XML for Java parser
|
||||
|
||||
DEPRECATED= it has been replaced by textproc/xerces-j 8 years ago
|
||||
EXPIRATION_DATE=2006-07-01
|
||||
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:S/./_/g}
|
||||
USE_JAVA= yes
|
||||
JAVA_VERSION= 1.2+
|
||||
NO_BUILD= YES
|
||||
DATADIR= ${JAVASHAREDIR}/${PORTNAME}
|
||||
|
||||
CONFLICTS= xerces-j-2.*
|
||||
|
||||
SAMPLES= dom sax simpletype socket ui xni xs
|
||||
JARFILES= resolver.jar xercesImpl.jar xercesSamples.jar xml-apis.jar xmlParserAPIs.jar
|
||||
DATAFILES= personal-schema.xml personal.dtd personal.xml personal.xsd
|
||||
.if !defined(NOPORTDOCS)
|
||||
PORTDOCS= *.html graphics images javadocs resources
|
||||
.endif
|
||||
|
||||
PLIST_FILES= ${JARFILES:S,^,%%JAVAJARDIR%%/,} \
|
||||
${DATAFILES:S,^,%%DATADIR%%/,}
|
||||
PLIST_DIRS= %%DATADIR%%
|
||||
|
||||
do-install:
|
||||
@${MKDIR} ${JAVAJARDIR}
|
||||
@${ECHO_MSG} -n ">> Installing JAR in ${JAVAJARDIR}..."
|
||||
@cd ${WRKSRC} && \
|
||||
${INSTALL_DATA} ${JARFILES} ${JAVAJARDIR}/
|
||||
@${ECHO_MSG} " [ DONE ]"
|
||||
@${ECHO_MSG} -n ">> Installing data in ${DATADIR}..."
|
||||
@${MKDIR} ${DATADIR}
|
||||
@cd ${WRKSRC}/data && \
|
||||
${INSTALL_DATA} ${DATAFILES} ${DATADIR}/
|
||||
@${ECHO_MSG} " [ DONE ]"
|
||||
.if !defined(NOPORTDOCS)
|
||||
@${ECHO_MSG} -n ">> Installing documentation in ${DOCSDIR}..."
|
||||
@${MKDIR} ${DOCSDIR}
|
||||
@cd ${WRKSRC}/docs && \
|
||||
${FIND} ${PORTDOCS} -type d -exec ${MKDIR} ${DOCSDIR}/{} \;
|
||||
@cd ${WRKSRC}/docs && \
|
||||
${FIND} ${PORTDOCS} -type f -exec ${INSTALL_DATA} {} ${DOCSDIR}/{} \;
|
||||
@${ECHO_MSG} " [ DONE ]"
|
||||
@${ECHO_MSG} -n ">> Installing samples in ${EXAMPLESDIR}..."
|
||||
@${MKDIR} ${EXAMPLESDIR}
|
||||
@cd ${WRKSRC}/samples && \
|
||||
${FIND} ${SAMPLES} -type d -exec ${MKDIR} ${EXAMPLESDIR}/{} \;
|
||||
@cd ${WRKSRC}/samples && \
|
||||
${FIND} ${SAMPLES} -type f -exec ${INSTALL_DATA} {} ${EXAMPLESDIR}/{} \;
|
||||
@${ECHO_MSG} " [ DONE ]"
|
||||
.endif
|
||||
|
||||
.if !defined(NOPORTDOCS)
|
||||
post-install:
|
||||
@${FIND} -s ${WRKSRC}/samples -not -type d | \
|
||||
${SED} -ne 's,^${WRKSRC}/samples,${EXAMPLESDIR:S,${PREFIX}/,,},p' >> ${TMPPLIST}
|
||||
@${FIND} -s -d ${WRKSRC}/samples -type d | \
|
||||
${SED} -ne 's,^${WRKSRC}/samples,@dirrm ${EXAMPLESDIR:S,${PREFIX}/,,},p' >> ${TMPPLIST}
|
||||
.endif
|
||||
|
||||
.include <bsd.port.mk>
|
||||
@@ -1,3 +0,0 @@
|
||||
MD5 (XML4J-bin.4.3.0.tar.gz) = 7057f645a03ad6500c07f11ddb62820a
|
||||
SHA256 (XML4J-bin.4.3.0.tar.gz) = 6fbb28c1966b69bad21efba2696533b80262e1d8718ec953741d9ee71600a20c
|
||||
SIZE (XML4J-bin.4.3.0.tar.gz) = 4302876
|
||||
@@ -1,24 +0,0 @@
|
||||
XML Parser for Java is a validating XML parser and processor written in 100%
|
||||
pure Java. It is a library for parsing and generating XML documents. This
|
||||
parser easily enables an application to read and write XML data. Version 4.3.0
|
||||
and above incorporate support for the following:
|
||||
|
||||
- Extensible Markup Language (XML) 1.0, Third Edition Recommendation
|
||||
- Namespaces in XML Recommendation
|
||||
- Extensible Markup Language (XML) 1.1 Recommendation, excluding support for
|
||||
normalization checking
|
||||
- Namespaces in XML 1.1 Recommendation
|
||||
- Experimental implementation of XML Inclusions (XInclude) 1.0 Working Draft
|
||||
(November 2003) in Last Call, excluding support for XPointer
|
||||
- W3C XML Schema 1.0 Structures and Datatypes Recommendations
|
||||
- OASIS XML Catalogs
|
||||
- SAX 1.0 and 2.0.1
|
||||
- DOM Level 1, DOM Level 2, and an experimental implementation of the DOM Level
|
||||
3 Core and Load/Save Proposed Recommendations
|
||||
- JAXP 1.2
|
||||
- The XML Schema API, which provides access to the post-schema validation
|
||||
"infoset" (PSVI)
|
||||
- Use of the "Xerces Native Interface" API throughout the product, allowing
|
||||
unprecedented customizing.
|
||||
|
||||
WWW: http://www.alphaworks.ibm.com/tech/xml4j/
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
SUBDIR += 9wm
|
||||
SUBDIR += aewm
|
||||
SUBDIR += aewm++
|
||||
SUBDIR += afterstep
|
||||
SUBDIR += afterstep-i18n
|
||||
SUBDIR += afterstep-stable
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
# ex:ts=8
|
||||
# Ports collection makefile for: aewm++
|
||||
# Date created: Jan 17, 2002
|
||||
# Whom: ijliao
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= aewm++
|
||||
PORTVERSION= 1.1.5
|
||||
CATEGORIES= x11-wm
|
||||
MASTER_SITES= http://frankhale.org/
|
||||
|
||||
MAINTAINER= ports@FreeBSD.org
|
||||
COMMENT= The C++ version of aewm
|
||||
|
||||
DEPRECATED= The project is dead, a fork exists: xaewm
|
||||
EXPIRATION_DATE=2006-07-01
|
||||
|
||||
USE_X_PREFIX= yes
|
||||
USE_GMAKE= yes
|
||||
MAKE_ARGS= CC="${CXX}" CFLAGS="${CXXFLAGS}" \
|
||||
ADDITIONAL_CFLAGS="" prefix="${PREFIX}" \
|
||||
INCLUDES="-I${X11BASE}/include" LIBPATH="-L${X11BASE}/lib"
|
||||
PLIST_FILES= bin/aewm++
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
|
||||
|
||||
.include <bsd.port.mk>
|
||||
@@ -1,3 +0,0 @@
|
||||
MD5 (aewm++-1.1.5.tar.gz) = e8cfe22c92f2f81e697d2cdd053c2fd2
|
||||
SHA256 (aewm++-1.1.5.tar.gz) = 10603da6e6ef1e2c8377dce03117fed3270a7fe87accbfe54461b80e5371ea36
|
||||
SIZE (aewm++-1.1.5.tar.gz) = 24553
|
||||
@@ -1 +0,0 @@
|
||||
The C++ version of aewm.
|
||||
Reference in New Issue
Block a user