summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-vcs/cvsps
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-vcs/cvsps')
-rw-r--r--dev-vcs/cvsps/Manifest3
-rw-r--r--dev-vcs/cvsps/cvsps-2.1-r1.ebuild38
-rw-r--r--dev-vcs/cvsps/cvsps-2.2_beta1.ebuild38
-rw-r--r--dev-vcs/cvsps/cvsps-3.13-r1.ebuild39
-rw-r--r--dev-vcs/cvsps/files/cvsps-2.1-build.patch18
-rw-r--r--dev-vcs/cvsps/files/cvsps-2.1-solaris.patch131
-rw-r--r--dev-vcs/cvsps/files/cvsps-2.2_beta1-solaris.patch135
-rw-r--r--dev-vcs/cvsps/files/cvsps-3.13-make.patch52
-rw-r--r--dev-vcs/cvsps/metadata.xml12
9 files changed, 466 insertions, 0 deletions
diff --git a/dev-vcs/cvsps/Manifest b/dev-vcs/cvsps/Manifest
new file mode 100644
index 00000000000..fc18c66818d
--- /dev/null
+++ b/dev-vcs/cvsps/Manifest
@@ -0,0 +1,3 @@
+DIST cvsps-2.1.tar.gz 61634 SHA256 91d3198b33463861a581686d5fcf99a5c484e7c4d819384c04fda9cafec1075a SHA512 8ba703fc4dd1c7a8201f4cefec533a6e228943f53f5380d8d17107718d8cb607c861a733d7ad1d6ed9288c4dbeae9fd59ceaf52172f16885a00d000a667e0e38 WHIRLPOOL 8299c0ff5ae5701409142c02fad6c604b2aadd2038282b29b49ff8934eb0740f456b3e4d837ed966e31af7ebb73f2e8e97bd48190ed806dbb3ed76182ba85caf
+DIST cvsps-2.2b1.tar.gz 62763 SHA256 6906acb3636cdb4a4a9d608111aec22a85530037cb08a62ed5eb74ca0b218f81 SHA512 9e6f95df53cdc16566f1606a9299ee641de9b020a373c9004218b3db23fbdcce9e32d4a57dce332580bc4e6429b90977c2753facd0ad8f9a9234b79f03a7a33d WHIRLPOOL e60706d0324a28a6bcbdc6aeb73e51211295e2b6462d04d7b1bc54634ae8b558971ac0545860a7649dd230a8de823e9ec1912b97bfe584d59bc76808b49d6ec8
+DIST cvsps-3.13.tar.gz 64437 SHA256 5f078a6e02c394f663893751f128caf643fe00a30b559e87db6f45190c623799 SHA512 9fe2be4839c7a6f31a788102fd6ebb1e2e0693f09a4dad2bca5cd5d0788088eb34388d592778f04bcfec9817e3ffffb66d70db9aa47996d3bd1c45cf7cd8464f WHIRLPOOL 52694e8b2b3cb0924333d80533618f687676f0b44f782c1c4f7bbc28a4f4e6a425c966823f027db7dcee27695c27c0b136115e449e83eac43459a7da03baa57c
diff --git a/dev-vcs/cvsps/cvsps-2.1-r1.ebuild b/dev-vcs/cvsps/cvsps-2.1-r1.ebuild
new file mode 100644
index 00000000000..844e834defa
--- /dev/null
+++ b/dev-vcs/cvsps/cvsps-2.1-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils toolchain-funcs
+
+MY_P="${P/_/}"
+DESCRIPTION="Generates patchset information from a CVS repository"
+HOMEPAGE="http://www.cobite.com/cvsps/"
+SRC_URI="http://www.cobite.com/cvsps/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+DEPEND="sys-libs/zlib"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${P}-build.patch
+ epatch "${FILESDIR}"/${P}-solaris.patch
+ # no configure around
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e '/^LDLIBS+=/s/$/ -lsocket/' Makefile || die
+ fi
+ tc-export CC
+}
+
+src_install() {
+ dobin cvsps || die
+ doman cvsps.1
+ dodoc README CHANGELOG
+}
diff --git a/dev-vcs/cvsps/cvsps-2.2_beta1.ebuild b/dev-vcs/cvsps/cvsps-2.2_beta1.ebuild
new file mode 100644
index 00000000000..0713161c161
--- /dev/null
+++ b/dev-vcs/cvsps/cvsps-2.2_beta1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils toolchain-funcs
+
+MY_P="${P/_beta/b}"
+DESCRIPTION="Generates patchset information from a CVS repository"
+HOMEPAGE="http://www.cobite.com/cvsps/"
+SRC_URI="http://www.cobite.com/cvsps/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.1-build.patch
+ epatch "${FILESDIR}"/${P}-solaris.patch
+ # no configure around
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e '/^LDLIBS+=/s/$/ -lsocket/' Makefile || die
+ fi
+ tc-export CC
+}
+
+src_install() {
+ dobin cvsps || die
+ doman cvsps.1
+ dodoc README CHANGELOG
+}
diff --git a/dev-vcs/cvsps/cvsps-3.13-r1.ebuild b/dev-vcs/cvsps/cvsps-3.13-r1.ebuild
new file mode 100644
index 00000000000..60f8ea17d5d
--- /dev/null
+++ b/dev-vcs/cvsps/cvsps-3.13-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Generates patchset information from a CVS repository (supports fast-import)"
+HOMEPAGE="http://www.catb.org/~esr/cvsps/"
+SRC_URI="http://www.catb.org/~esr/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND="sys-libs/zlib"
+DEPEND="${RDEPEND}
+ app-text/asciidoc"
+
+RESTRICT=test # upstream does not ship tests
+
+src_prepare() {
+ local gentoo_name=${PN}-3
+
+ epatch "${FILESDIR}"/${P}-make.patch
+ mv ${PN}.asc ${gentoo_name}.asc || die
+ sed -i "s/${PN}/${gentoo_name}/g" ${gentoo_name}.asc || die
+ sed -i "s/PROG = cvsps/PROG = ${gentoo_name}/" Makefile || die
+
+ tc-export CC
+ export prefix="${EPREFIX}"/usr
+}
+
+src_install() {
+ default
+ dodoc README
+}
diff --git a/dev-vcs/cvsps/files/cvsps-2.1-build.patch b/dev-vcs/cvsps/files/cvsps-2.1-build.patch
new file mode 100644
index 00000000000..bcb394d5dd0
--- /dev/null
+++ b/dev-vcs/cvsps/files/cvsps-2.1-build.patch
@@ -0,0 +1,18 @@
+--- Makefile.orig 2008-03-24 07:16:47.000000000 -0400
++++ Makefile 2008-03-24 07:17:18.000000000 -0400
+@@ -3,6 +3,7 @@
+ CC?=gcc
+ CFLAGS?=-g -O2 -Wall
+ CFLAGS+=-I. -DVERSION=\"$(MAJOR).$(MINOR)\"
++LDLIBS+=-lz
+ prefix?=/usr/local
+ OBJS=\
+ cbtcommon/debug.o\
+@@ -21,7 +22,6 @@
+ all: cvsps
+
+ cvsps: $(OBJS)
+- $(CC) -o cvsps $(OBJS) -lz
+
+ install:
+ [ -d $(prefix)/bin ] || mkdir -p $(prefix)/bin
diff --git a/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch b/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch
new file mode 100644
index 00000000000..3e063fd9248
--- /dev/null
+++ b/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch
@@ -0,0 +1,131 @@
+Modified version of
+http://cvs.openpkg.org/fileview?f=openpkg-src/cvsps/cvsps.patch&v=1.13
+
+Index: cache.c
+--- cache.c.orig 2008-04-02 03:18:44 +0200
++++ cache.c 2008-04-02 09:10:25 +0200
+@@ -361,7 +361,7 @@
+
+ strcpy(buff, p_buff);
+
+- while ((s = strsep(&p, ";")))
++ while ((s = my_strsep(&p, ";")))
+ {
+ char * c = strchr(s, ':');
+
+Index: cvs_direct.c
+--- cvs_direct.c.orig 2008-04-02 03:18:44 +0200
++++ cvs_direct.c 2008-04-02 09:10:25 +0200
+@@ -92,12 +92,12 @@
+
+ strcpy_a(root, p_root, PATH_MAX);
+
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+
+ /* if root string looks like :pserver:... then the first token will be empty */
+ if (strlen(tok) == 0)
+ {
+- char * method = strsep(&p, ":");
++ char * method = my_strsep(&p, ":");
+ if (strcmp(method, "pserver") == 0)
+ {
+ ctx = open_ctx_pserver(ctx, p);
+@@ -185,14 +185,14 @@
+
+ strcpy_a(root, p_root, PATH_MAX);
+
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+ if (strlen(tok) == 0 || !p)
+ {
+ debug(DEBUG_APPERROR, "parse error on third token");
+ goto out_free_err;
+ }
+
+- tok2 = strsep(&tok, "@");
++ tok2 = my_strsep(&tok, "@");
+ if (!strlen(tok2) || (!tok || !strlen(tok)))
+ {
+ debug(DEBUG_APPERROR, "parse error on user@server in pserver");
+@@ -272,7 +272,7 @@
+ strcpy_a(root, p_root, PATH_MAX);
+
+ /* if there's a ':', it's remote */
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+
+ if (p)
+ {
+@@ -281,7 +281,7 @@
+ if (!cvs_rsh)
+ cvs_rsh = "rsh";
+
+- tok2 = strsep(&tok, "@");
++ tok2 = my_strsep(&tok, "@");
+
+ if (tok)
+ snprintf(execcmd, PATH_MAX, "%s -l %s %s %s server", cvs_rsh, tok2, tok, cvs_server);
+@@ -776,7 +776,7 @@
+ static int parse_patch_arg(char * arg, char ** str)
+ {
+ char *tok, *tok2 = "";
+- tok = strsep(str, " ");
++ tok = my_strsep(str, " ");
+ if (!tok)
+ return 0;
+
+@@ -796,7 +796,7 @@
+ /* see if command wants two args and they're separated by ' ' */
+ if (tok[2] == 0 && strchr("BdDFgiorVxYz", tok[1]))
+ {
+- tok2 = strsep(str, " ");
++ tok2 = my_strsep(str, " ");
+ if (!tok2)
+ {
+ debug(DEBUG_APPERROR, "diff_opts parse_error: argument %s requires two arguments", tok);
+Index: util.c
+--- util.c.orig 2008-04-02 03:18:44 +0200
++++ util.c 2008-04-02 09:10:25 +0200
+@@ -316,3 +316,31 @@
+ exit(1);
+ }
+ }
++
++char *my_strsep(char **stringp, const char *delim)
++{
++ char *s;
++ const char *spanp;
++ int c, sc;
++ char *tok;
++
++ if ((s = *stringp) == NULL)
++ return NULL;
++ for (tok = s;;) {
++ c = *s++;
++ spanp = delim;
++ do {
++ if ((sc = *spanp++) == c) {
++ if (c == 0)
++ s = NULL;
++ else
++ s[-1] = 0;
++ *stringp = s;
++ return tok;
++ }
++ } while (sc != 0);
++ }
++ /* NOTREACHED */
++ return NULL;
++}
++
+Index: util.h
+--- util.h.orig 2008-04-02 03:18:44 +0200
++++ util.h 2008-04-02 09:15:35 +0200
+@@ -24,5 +24,6 @@
+ void timing_stop(const char *);
+ int my_system(const char *);
+ int escape_filename(char *, int, const char *);
++char *my_strsep(char **, const char *);
+
+ #endif /* UTIL_H */
diff --git a/dev-vcs/cvsps/files/cvsps-2.2_beta1-solaris.patch b/dev-vcs/cvsps/files/cvsps-2.2_beta1-solaris.patch
new file mode 100644
index 00000000000..444ac1382a7
--- /dev/null
+++ b/dev-vcs/cvsps/files/cvsps-2.2_beta1-solaris.patch
@@ -0,0 +1,135 @@
+Modified version of.
+http://cvs.openpkg.org/fileview?f=openpkg-src/cvsps/cvsps.patch&v=1.13
+
+diff --git a/cache.c b/cache.c
+index 4c51cf7..2c3918d 100644
+--- a/cache.c
++++ b/cache.c
+@@ -361,7 +361,7 @@ static void parse_cache_revision(PatchSetMember * psm, const char * p_buff)
+
+ strcpy(buff, p_buff);
+
+- while ((s = strsep(&p, ";")))
++ while ((s = my_strsep(&p, ";")))
+ {
+ char * c = strchr(s, ':');
+
+diff --git a/cvs_direct.c b/cvs_direct.c
+index e281848..5aa8f0f 100644
+--- a/cvs_direct.c
++++ b/cvs_direct.c
+@@ -92,12 +92,12 @@ CvsServerCtx * open_cvs_server(char * p_root, int compress)
+
+ strcpy_a(root, p_root, PATH_MAX);
+
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+
+ /* if root string looks like :pserver:... then the first token will be empty */
+ if (strlen(tok) == 0)
+ {
+- char * method = strsep(&p, ":");
++ char * method = my_strsep(&p, ":");
+ if (strcmp(method, "pserver") == 0)
+ {
+ ctx = open_ctx_pserver(ctx, p);
+@@ -185,14 +185,14 @@ static CvsServerCtx * open_ctx_pserver(CvsServerCtx * ctx, const char * p_root)
+
+ strcpy_a(root, p_root, PATH_MAX);
+
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+ if (strlen(tok) == 0 || !p)
+ {
+ debug(DEBUG_APPERROR, "parse error on third token");
+ goto out_free_err;
+ }
+
+- tok2 = strsep(&tok, "@");
++ tok2 = my_strsep(&tok, "@");
+ if (!strlen(tok2) || (!tok || !strlen(tok)))
+ {
+ debug(DEBUG_APPERROR, "parse error on user@server in pserver");
+@@ -272,7 +272,7 @@ static CvsServerCtx * open_ctx_forked(CvsServerCtx * ctx, const char * p_root)
+ strcpy_a(root, p_root, PATH_MAX);
+
+ /* if there's a ':', it's remote */
+- tok = strsep(&p, ":");
++ tok = my_strsep(&p, ":");
+
+ if (p)
+ {
+@@ -281,7 +281,7 @@ static CvsServerCtx * open_ctx_forked(CvsServerCtx * ctx, const char * p_root)
+ if (!cvs_rsh)
+ cvs_rsh = "rsh";
+
+- tok2 = strsep(&tok, "@");
++ tok2 = my_strsep(&tok, "@");
+
+ if (tok)
+ snprintf(execcmd, PATH_MAX, "%s -l %s %s %s server", cvs_rsh, tok2, tok, cvs_server);
+@@ -776,7 +776,7 @@ void cvs_rupdate(CvsServerCtx * ctx, const char * rep, const char * file, const
+ static int parse_patch_arg(char * arg, char ** str)
+ {
+ char *tok, *tok2 = "";
+- tok = strsep(str, " ");
++ tok = my_strsep(str, " ");
+ if (!tok)
+ return 0;
+
+@@ -796,7 +796,7 @@ static int parse_patch_arg(char * arg, char ** str)
+ /* see if command wants two args and they're separated by ' ' */
+ if (tok[2] == 0 && strchr("BdDFgiorVxYz", tok[1]))
+ {
+- tok2 = strsep(str, " ");
++ tok2 = my_strsep(str, " ");
+ if (!tok2)
+ {
+ debug(DEBUG_APPERROR, "diff_opts parse_error: argument %s requires two arguments", tok);
+diff --git a/util.c b/util.c
+index 7884c84..f3ab3a3 100644
+--- a/util.c
++++ b/util.c
+@@ -316,3 +316,31 @@ void strcpy_a(char * dst, const char * src, int n)
+ exit(1);
+ }
+ }
++
++char *my_strsep(char **stringp, const char *delim)
++{
++ char *s;
++ const char *spanp;
++ int c, sc;
++ char *tok;
++
++ if ((s = *stringp) == NULL)
++ return NULL;
++ for (tok = s;;) {
++ c = *s++;
++ spanp = delim;
++ do {
++ if ((sc = *spanp++) == c) {
++ if (c == 0)
++ s = NULL;
++ else
++ s[-1] = 0;
++ *stringp = s;
++ return tok;
++ }
++ } while (sc != 0);
++ }
++ /* NOTREACHED */
++ return NULL;
++}
++
+diff --git a/util.h b/util.h
+index ff2d3a0..336fd63 100644
+--- a/util.h
++++ b/util.h
+@@ -24,5 +24,6 @@ void timing_stop(const char *);
+ int my_system(const char *);
+ int escape_filename(char *, int, const char *);
+ void strcpy_a(char * dst, const char * src, int n);
++char *my_strsep(char **, const char *);
+
+ #endif /* UTIL_H */
diff --git a/dev-vcs/cvsps/files/cvsps-3.13-make.patch b/dev-vcs/cvsps/files/cvsps-3.13-make.patch
new file mode 100644
index 00000000000..7c96d60300a
--- /dev/null
+++ b/dev-vcs/cvsps/files/cvsps-3.13-make.patch
@@ -0,0 +1,52 @@
+diff --git a/Makefile b/Makefile
+index 6266c9d..4f60d2f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -8,6 +8,9 @@ INSTALL = install
+ prefix?=/usr/local
+ target=$(DESTDIR)$(prefix)
+
++PROG = cvsps
++MANPAGE = $(PROG).1
++
+ OBJS= debug.o \
+ hash.o \
+ sio.o \
+@@ -19,12 +22,12 @@ OBJS= debug.o \
+ cvsclient.o \
+ list_sort.o
+
+-all: cvsps
++all: $(PROG) $(MANPAGE)
+
+ deps:
+ makedepend -Y -I. *.c
+
+-cvsps: $(OBJS)
+- $(CC) -o cvsps $(OBJS) $(LDFLAGS) $(LDLIBS)
++$(PROG): $(OBJS)
++ $(CC) -o $(PROG) $(OBJS) $(LDFLAGS) $(LDLIBS)
+
+ check:
+@@ -50,17 +53,17 @@ pylint:
+ .txt.html:
+ a2x --doctype manpage --format xhtml $*.txt
+
+-install: cvsps.1 all
++install: all
+ $(INSTALL) -d "$(target)/bin"
+ $(INSTALL) -d "$(target)/share/man/man1"
+- $(INSTALL) cvsps "$(target)/bin"
+- $(INSTALL) -m 644 cvsps.1 "$(target)/share/man/man1"
++ $(INSTALL) $(PROG) "$(target)/bin"
++ $(INSTALL) -m 644 $(MANPAGE) "$(target)/share/man/man1"
+
+ tags: *.c *.h
+ ctags *.c *.h
+
+ clean:
+- rm -f cvsps *.o core tags cvsps.1 cvsps.html docbook-xsl.css
++ rm -f $(PROG) *.o core tags $(MANPAGE) cvsps.html docbook-xsl.css
+
+ SOURCES = Makefile *.[ch] merge_utils.sh
+ DOCS = README COPYING NEWS cvsps.asc TODO
diff --git a/dev-vcs/cvsps/metadata.xml b/dev-vcs/cvsps/metadata.xml
new file mode 100644
index 00000000000..e9a271ce187
--- /dev/null
+++ b/dev-vcs/cvsps/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
+ <herd>cvs-utils</herd>
+ <upstream>
+ <remote-id type="freecode">cvsps</remote-id>
+ </upstream>
+</pkgmetadata>