summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Ramsay <lack@gentoo.org>2007-06-07 19:35:32 +0000
committerJim Ramsay <lack@gentoo.org>2007-06-07 19:35:32 +0000
commit93c5d62ddcc86bae5b84cc38a1c5bfa08b56a2c0 (patch)
tree27e68f9bf9ee83d149af5eac68b7bbf7b28ac936
downloadrox-93c5d62ddcc86bae5b84cc38a1c5bfa08b56a2c0.tar.gz
rox-93c5d62ddcc86bae5b84cc38a1c5bfa08b56a2c0.tar.bz2
rox-93c5d62ddcc86bae5b84cc38a1c5bfa08b56a2c0.zip
Commiting initial overlay: multilib changes and preliminary zeroinstall support
svn path=/trunk/overlay/; revision=2
-rw-r--r--eclass/0install.eclass137
-rw-r--r--eclass/rox.eclass282
-rw-r--r--profiles/repo_name1
-rw-r--r--rox-base/pager/pager-1.1-r2.ebuild25
-rw-r--r--rox-base/rox-clib/rox-clib-2.1.9-r1.ebuild60
-rw-r--r--rox-base/rox-clib/rox-clib-2.1.9-r2.ebuild62
-rw-r--r--rox-base/rox-lib/files/rox-lib-2.0.3-nosvg.patch18
-rw-r--r--rox-base/rox-lib/rox-lib-2.0.3-r3.ebuild36
-rw-r--r--rox-base/rox-lib/rox-lib-2.0.3-r4.ebuild38
-rw-r--r--rox-base/rox/files/rox-2.6-nostrip.patch20
-rw-r--r--rox-base/rox/rox-2.6-r1.ebuild126
-rw-r--r--rox-base/rox/rox-2.6-r2.ebuild129
-rw-r--r--rox-base/zeroinstall-injector/Manifest28
-rw-r--r--rox-base/zeroinstall-injector/files/digest-zeroinstall-injector-0.273
-rw-r--r--rox-base/zeroinstall-injector/files/global-0.275
-rw-r--r--rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpgbin0 -> 911 bytes
-rw-r--r--rox-base/zeroinstall-injector/files/gpgInfo/secring.gpg0
-rw-r--r--rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpgbin0 -> 1240 bytes
-rw-r--r--rox-base/zeroinstall-injector/files/zeroinstall-injector-0.27-local_feed.patch121
-rw-r--r--rox-base/zeroinstall-injector/zeroinstall-injector-0.27.ebuild65
20 files changed, 1156 insertions, 0 deletions
diff --git a/eclass/0install.eclass b/eclass/0install.eclass
new file mode 100644
index 0000000..303371a
--- /dev/null
+++ b/eclass/0install.eclass
@@ -0,0 +1,137 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+#
+# Original Author: Jim Ramsay <lack@gentoo.org>
+# Purpose: Utility functions for 0install compatibility
+#
+
+# TODO: Install this all the time?
+RDEPEND="rox-base/zeroinstall-injector"
+
+# Environment:
+LOCAL_FEED_DIR="/etc/xdg/0install.net/local_feeds"
+ZEROINSTALL_STRIP_REQUIRES=""
+
+# Escapes a http-style URI into a 0install-compatible filename
+#
+# 0install_escape_uri <uri>
+# uri - The URI to escape
+0install_escape_uri() {
+ local uri=${1}
+ uri=${uri//:/%3a}
+ uri=${uri//\//%2f}
+ echo $uri
+}
+
+# Parses an implementation, returning the interface URI
+#
+# 0install_parse_uri <src>
+# src - The XML document to parse
+0install_parse_uri() {
+ local src="${1}"
+
+ [ -f "${src}" ] || die "Source file not found"
+ local feed_for=$(grep '<feed-for.*interface=' "${src}")
+ [ -n "${feed_for}" ] || die "No 'feed-for' element"
+ feed_for=${feed_for##*interface=[\"\']}
+ feed_for=${feed_for%[\'\"]*>}
+ echo $feed_for
+}
+
+# Edits a feed, replacing stability and id
+#
+# 0install_edit_feed <input> <stability>
+# input - The file to edit
+# output - The final install location (relative to ${D})
+0install_edit_feed() {
+ local input="${1}"; shift
+ local output="${1}"; shift
+
+ [ -f "${input}" ] || die "No input file"
+
+ # Basic editing:
+ # - Remove stability="*"
+ # - Remove uri="*"
+ # - Replace id="*" with id=".", add in stability="packaged"
+ # - Force main="AppRun"
+ sed -e 's/stability="[^"]*"//' \
+ -e "s/stability='[^']*'//" \
+ -e 's/uri="[^"]*"//' \
+ -e "s/uri='[^']*'//" \
+ -e 's/id="[^"]*"/id="." stability="packaged"/' \
+ -e "s/id='[^']*'/id=\".\" stability=\"packaged\"/" \
+ -e 's/main="[^"]*"/main="AppRun"/' \
+ -e "s/main='[^']*'/main=\"AppRun\"/" \
+ ${input} > tmp.local_feed
+
+ if [[ -n "${ZEROINSTALL_STRIP_REQUIRES}" ]]; then
+ # Strip out all 'requires' sections
+ sed -i -e '/<requires.*\/>/d' \
+ -e '/<requires.*\>/,/<\/requires>/d' tmp.local_feed
+ fi
+
+ (
+ insinto $(dirname ${output})
+ newins tmp.local_feed $(basename ${output})
+ )
+}
+
+# Installs an ebuild-provided feed
+#
+# 0install_install_feed <src> <destpath>
+# src - The XML file we will install and point at
+# path - The path where the implementation will be installed
+# IE, the final xml will be at <path>/<basename of src>
+0install_install_feed() {
+ local src="${1}"; shift
+ local path="${1}"; shift
+ local feedfile=$(basename "${src}")
+ local dest="${path}/$feedfile"
+
+ # Step 1: Find the URI
+ local uri=$(0install_parse_uri "${src}")
+
+ # Step 2: Install the feed in the proper location
+ (
+ insinto $(dirname "${dest}")
+ newins "${src}" $(basename "${dest}")
+ )
+
+ # Step 3: Install the symlink so 0install can find it
+ local feedname=$(0install_escape_uri ${uri})
+ dosym "${dest}" "${LOCAL_FEED_DIR}/${feedname}"
+}
+
+# Does all the local feed magic you could want:
+# - Parses the input file to get the interface URI
+# - Edits the input file and installs it to the final location
+# - Installs a local feed pointer
+#
+# Environment variables:
+# ZEROINSTALL_STRIP_REQUIRES - If set, strips all 'requires' sections from the XML
+# on editing. Default: Not set
+#
+# 0install_local_feed <src> <destpath>
+# src - The XML file we will edit, install, and point at
+# path - The path where the implementation will be installed
+# IE, the final edited xml will be at <path>/<basename of src>
+0install_local_feed() {
+ local src="${1}"; shift
+ local path="${1}"; shift
+ local feedfile=$(basename "${src}")
+ local dest="${path}/$feedfile"
+
+ # Step 1: Find the URI
+ local uri=$(0install_parse_uri "${src}")
+
+ # Step 2: Edit the input and install it in the proper location
+ 0install_edit_feed "${src}" "${dest}"
+
+ # Step 3: Install the symlink so 0install can find it
+ local feedname=$(0install_escape_uri ${uri})
+ dosym "${dest}" "${LOCAL_FEED_DIR}/${feedname}"
+}
+
+
diff --git a/eclass/rox.eclass b/eclass/rox.eclass
new file mode 100644
index 0000000..0b5cc50
--- /dev/null
+++ b/eclass/rox.eclass
@@ -0,0 +1,282 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/rox.eclass,v 1.20 2007/02/09 17:27:39 lack Exp $
+
+# ROX eclass Version 2
+
+# This eclass was created by Sergey Kuleshov (svyatogor@gentoo.org) and
+# Alexander Simonov (devil@gentoo.org.ua) to ease installation of ROX desktop
+# applications. Enhancements and python additions by Peter Hyman.
+# Small fixes and current maintenance by the Rox herd (rox@gentoo.org)
+
+# These variables are used in the GLOBAL scope to decide on DEPENDs, so they
+# must be set BEFORE you 'inherit rox':
+#
+# ROX_VER - the minimum version of rox filer required. Default is 2.1.0
+# ROX_LIB_VER - version of rox-lib required if any
+# ROX_CLIB_VER - version of rox-clib required if any
+#
+# These variables are only used in local scopes, and so may be set anywhere in
+# the ebuild:
+#
+# APPNAME - the actual name of the application as the app folder is named
+# WRAPPERNAME - the name of the wrapper installed into /usr/bin
+# Defaults to 'rox-${PN}', or just ${PN} if it already starts with 'rox'.
+# This does not normally need to be overridden.
+# APPNAME_COLLISION - If not set, the old naming convention for wrappers of
+# /usr/bin/${APPNAME} will still be around. Needs only be set in packages
+# with known collisions (such as Pager, which collides with afterstep)
+# APPCATEGORY - the .desktop categories this application should be placed in.
+# If unset, no .desktop file will be created. For a list of acceptable
+# category names, see
+# http://standards.freedesktop.org/menu-spec/latest/apa.html
+# KEEP_SRC - this flag, if set, will not remove the source directory
+# but will do a make clean in it. This is useful if users wish to
+# preserve the source code for some reason.
+
+# TODO: Not used yet
+# FEED_FILES - The list of files te check for a 0install feed. If found, this
+# feed will be edited, and installed such that 0install can see it. If you set
+# 'ZEROINSTALL_STRIP_REQUIRES' this editing will also strip any 3rd-party
+# requirements from the feed as well.
+# Default: "${APPNAME}/${APPNAME}.xml ${APPNAME}.xml"
+# LOCAL_FEED_SRC - If set, will install the ebuild-supplied feed file so 0install
+# can see it. This feed will not be edited, but installed as-is.
+# Default: Not set
+
+# For examples refer to ebuilds in rox-extra/ or rox-base/
+
+# need python to byte compile modules, if any
+# need autotools to run autoreconf, if required
+inherit multilib python autotools eutils # 0install
+
+if [[ -z "${ROX_VER}" ]]; then
+ ROX_VER="2.1.0"
+fi
+
+RDEPEND=">=rox-base/rox-${ROX_VER}"
+
+if [[ -n "${ROX_LIB_VER}" ]]; then
+ RDEPEND="${RDEPEND}
+ >=rox-base/rox-lib-${ROX_LIB_VER}"
+fi
+
+if [[ -n "${ROX_CLIB_VER}" ]]; then
+ RDEPEND="${RDEPEND}
+ >=rox-base/rox-clib-${ROX_CLIB_VER}"
+ DEPEND="${RDEPEND}
+ >=dev-util/pkgconfig-0.20"
+fi
+
+# This is the new wrapper name (for /usr/bin/)
+# It is also used for the icon name in /usr/share/pixmaps
+#
+# Use rox-${PN} unless ${PN} already starts with 'rox'
+a="rox-${PN}"
+b=${a/rox-rox*}
+WRAPPERNAME=${b:-${PN}}
+
+# Default for LOCAL_FEED_SRC
+LOCAL_FEED_SRC=""
+
+# This is the location where all applications are installed
+APPDIR="/usr/$(get_libdir)/rox"
+LIBDIR="/usr/$(get_libdir)"
+
+# Utility Functions
+
+# Creates a .desktop file for this rox application
+# (Adapted from eutils::make_desktop_entry)
+#
+# rox_desktop_entry <exec> <name> <icon> <type> [<extra> ...]
+# exec - The executable to run
+# name - The name to display
+# icon - The icon file to display
+# Any other arguments will be appended verbatim to the desktop file.
+#
+# The name of the desktop file will be ${exec}.desktop
+#
+rox_desktop_entry() {
+ # Coppied from etuils:make_desktop_entry
+ local exec=${1}; shift
+ local name=${1}; shift
+ local icon=${1}; shift
+ local type=${1}; shift
+
+ local desktop="${exec}.desktop"
+
+ cat <<-EOF > "${desktop}"
+ [Desktop Entry]
+ Encoding=UTF-8
+ Version=1.0
+ Name=${name}
+ Type=Application
+ Comment=${DESCRIPTION}
+ Exec=${exec}
+ TryExec=${exec%% *}
+ Icon=${icon}
+ Categories=ROX;Application;${type};
+ EOF
+
+ local extra=${1}; shift
+ while [[ "${extra}" ]]; do
+ echo "${extra}" >> "${desktop}"
+ extra=${1}; shift
+ done
+
+ (
+ # wrap the env here so that the 'insinto' call
+ # doesn't corrupt the env of the caller
+ insinto /usr/share/applications
+ doins "${desktop}"
+ )
+}
+
+# Exported functions
+rox_src_compile() {
+ cd "${APPNAME}"
+ #Some packages need to be compiled.
+ chmod 755 AppRun
+ if [[ -d src/ ]]; then
+ # Bug 150303: Check with Rox-Clib will fail if the user has 0install
+ # installed on their system somewhere, so remove the check for it in the
+ # configure script, and adjust the path that the 'libdir' program uses
+ # to search for it:
+ # TODO: Use 0compile instead, maybe?
+ if [[ -f src/configure.in ]]; then
+ cd src
+ sed -i.bak -e 's/ROX_CLIB_0LAUNCH/ROX_CLIB/' configure.in
+ # TODO: This should really be 'eautoreconf', but that breaks a number
+ # of packages (such as pager-1.0.1)
+ eautoconf
+ cd ..
+ fi
+ export LIBDIRPATH="${LIBDIR}"
+
+ # Most rox self-compiles have a 'read' call to wait for the user to
+ # press return if the compile fails.
+ # Find and remove this:
+ sed -i.bak -e 's/\<read\>/#read/' AppRun
+
+ ./AppRun --compile || die "Failed to compile the package"
+ if [[ -n "${KEEP_SRC}" ]]; then
+ cd src
+ make clean
+ cd ..
+ else
+ rm -rf src
+ fi
+ if [[ -d build ]]; then
+ rm -rf build
+ fi
+
+ # Restore the original AppRun
+ mv AppRun.bak AppRun
+ fi
+}
+
+rox_src_install() {
+ if [[ -d "${APPNAME}/Help/" ]]; then
+ for i in "${APPNAME}"/Help/*; do
+ dodoc "${i}"
+ done
+ fi
+
+ insinto ${APPDIR}
+
+ # Use 'cp -pPR' and not 'doins -r' here so we don't have to do a flurry of
+ # 'chmod' calls on the executables in the appdir - Just be sure that all the
+ # files in the original appdir prior to this step are correct, as they will
+ # all be preserved.
+ cp -pPR ${APPNAME} ${D}${APPDIR}/${APPNAME}
+
+ #create a script in bin to run the application from command line
+ dodir /usr/bin/
+ cat >"${D}/usr/bin/${WRAPPERNAME}" <<EOF
+#!/bin/sh
+if [[ "\${LIBDIRPATH}" ]]; then
+ export LIBDIRPATH="\${LIBDIRPATH}:${LIBDIR}"
+else
+ export LIBDIRPATH="${LIBDIR}"
+fi
+
+if [[ "\${APPDIRPATH}" ]]; then
+ export APPDIRPATH="\${APPDIRPATH}:${APPDIR}"
+else
+ export APPDIRPATH="${APPDIR}"
+fi
+exec "${APPDIR}/${APPNAME}/AppRun" "\$@"
+EOF
+ chmod 755 "${D}/usr/bin/${WRAPPERNAME}"
+
+ # Old name of cmdline wrapper: /usr/bin/${APPNAME}
+ if [[ ! "${APPNAME_COLLISION}" ]]; then
+ ln -s ${WRAPPERNAME} ${D}/usr/bin/${APPNAME}
+ # TODO: Migrate this away... eventually
+ else
+ ewarn "The wrapper script /usr/bin/${APPNAME} has been removed"
+ ewarn "due to a name collision. You must run ${APPNAME} as"
+ ewarn "/usr/bin/${WRAPPERNAME} instead."
+ fi
+
+ # Create a .desktop file if the proper category is supplied
+ if [[ -n "${APPCATEGORY}" ]]; then
+ # Copy the .DirIcon into /usr/share/pixmaps with the proper extension
+ if [[ -f "${APPNAME}/.DirIcon" ]]; then
+ local APPDIRICON=${APPNAME}/.DirIcon
+ case "$(file -b ${APPDIRICON})" in
+ "PNG image data"*)
+ export APPICON=${WRAPPERNAME}.png
+ ;;
+ "XML 1.0 document text"*)
+ export APPICON=${WRAPPERNAME}.svg
+ ;;
+ "X pixmap image text"*)
+ export APPICON=${WRAPPERNAME}.xpm
+ ;;
+ "symbolic link"*)
+ APPDIRICON=$(dirname ${APPDIRICON})/$(readlink ${APPDIRICON})
+ export APPICON=${WRAPPERNAME}.${APPDIRICON##*.}
+ ;;
+ *)
+ # Unknown... Remark on it, and just copy without an extension
+ ewarn "Could not detect the file type of the application icon,"
+ ewarn "copying without an extension."
+ export APPICON=${WRAPPERNAME}
+ ;;
+ esac
+ insinto /usr/share/pixmaps
+ newins "${APPDIRICON}" "${APPICON}"
+ fi
+
+ rox_desktop_entry "${WRAPPERNAME}" "${APPNAME}" "${APPICON}" "${APPCATEGORY}"
+ fi
+
+ # TODO: Once 0install actually works, we'll want this, or something like it:
+ #if [[ -f "${LOCAL_FEED_SRC}" ]]; then
+ # # Install the ebuild-supplied feed
+ # 0install_install_feed "${LOCAL_FEED_SRC}" "${APPDIR}/${APPNAME}"
+ #else
+ # # Install the local feed, if appropriate
+ # local search_list=${FEED_FILES:-"${APPNAME}/${APPNAME}.xml ${APPNAME}.xml"}
+ # for feed in ${search_list}; do
+ # elog "Looking for feed $feed"
+ # if [[ -f "${feed}" ]]; then
+ # 0install_local_feed "${feed}" "${APPDIR}/${APPNAME}"
+ # fi
+ # done
+ #fi
+
+ #now compile any and all python files
+ python_mod_optimize "${D}${APPDIR}/${APPNAME}" >/dev/null 2>&1
+}
+
+rox_pkg_postinst() {
+ einfo "${APPNAME} has been installed into ${APPDIR}"
+ einfo "You can run it by typing ${WRAPPERNAME} at the command line."
+ einfo "Or, you can run it by pointing the ROX file manager to the"
+ einfo "install location -- ${APPDIR} -- and click"
+ einfo "on ${APPNAME}'s icon, drag it to a panel, desktop, etc."
+}
+
+EXPORT_FUNCTIONS src_compile src_install pkg_postinst
diff --git a/profiles/repo_name b/profiles/repo_name
new file mode 100644
index 0000000..01ec9e4
--- /dev/null
+++ b/profiles/repo_name
@@ -0,0 +1 @@
+rox-overlay
diff --git a/rox-base/pager/pager-1.1-r2.ebuild b/rox-base/pager/pager-1.1-r2.ebuild
new file mode 100644
index 0000000..04dec3a
--- /dev/null
+++ b/rox-base/pager/pager-1.1-r2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/rox-base/pager/pager-1.1-r1.ebuild,v 1.2 2007/02/09 21:58:17 opfer Exp $
+
+ROX_CLIB_VER=2.1.7
+inherit rox eutils
+
+DESCRIPTION="Pager - A pager applet for ROX-Filer"
+HOMEPAGE="http://rox.sourceforge.net/"
+SRC_URI="mirror://sourceforge/rox/${P}.tar.bz2"
+LICENSE="GPL-2"
+
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND=">=x11-libs/libwnck-2.4.0"
+
+DEPEND="${RDEPEND}
+ >=dev-util/pkgconfig-0.20"
+
+APPNAME=Pager
+APPNAME_COLLISION=True
+ZEROINSTALL_STRIP_REQUIRES=True
+
diff --git a/rox-base/rox-clib/rox-clib-2.1.9-r1.ebuild b/rox-base/rox-clib/rox-clib-2.1.9-r1.ebuild
new file mode 100644
index 0000000..b7ff00c
--- /dev/null
+++ b/rox-base/rox-clib/rox-clib-2.1.9-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/rox-base/rox-clib/rox-clib-2.1.9.ebuild,v 1.2 2007/02/09 22:02:10 opfer Exp $
+
+inherit multilib
+
+MY_PN="ROX-CLib"
+DESCRIPTION="A library for ROX applications written in C."
+HOMEPAGE="http://rox.sourceforge.net/"
+SRC_URI="http://www.kerofin.demon.co.uk/rox/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND=">=x11-libs/gtk+-2.0.1
+ >=dev-libs/libxml2-2.4.0"
+
+DEPEND="$RDEPEND
+ >=dev-util/pkgconfig-0.20"
+
+S=${WORKDIR}/ROX-CLib
+APPNAME=${MY_PN}
+
+src_compile() {
+ chmod 0755 AppRun
+
+ # Most rox self-compiles have a 'read' call to wait for the user to
+ # press return if the compile fails.
+ # Find and remove this:
+ sed -i.bak -e 's/\<read WAIT\>/#read/' AppRun
+
+ ./AppRun --compile || die "Could not make ROX-CLib. Sorry."
+
+ # Restore the original AppRun
+ mv AppRun.bak AppRun
+}
+
+src_install() {
+ local baselibdir="/usr/$(get_libdir)"
+ # clean up source instead of remove it!
+ ( cd src && make clean )
+
+ # remove silly .cvs files
+ find . -name '.cvs*' | xargs rm -f >/dev/null 2>&1
+ dodoc ${baselibdir}/${APPNAME}
+ dodir ${baselibdir}/${APPNAME}
+ cp -r . ${D}${baselibdir}/${APPNAME}
+ (
+ cd Help
+ dodoc Authors Changes ToDo COPYING README Versions
+ )
+
+ #finally link the html and latex dirs
+ #cd ${D}/usr/share/doc/${P}
+ #ln -s ${baselibdir}/${APPNAME}/Help/rox-clib.html rox-clib.html
+ #ln -s ${baselibdir}/${APPNAME}/Help/libdir.html libdir.html
+ #ln -s ${baselibdir}/${APPNAME}/Help/html html
+}
diff --git a/rox-base/rox-clib/rox-clib-2.1.9-r2.ebuild b/rox-base/rox-clib/rox-clib-2.1.9-r2.ebuild
new file mode 100644
index 0000000..a021159
--- /dev/null
+++ b/rox-base/rox-clib/rox-clib-2.1.9-r2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/rox-base/rox-clib/rox-clib-2.1.9.ebuild,v 1.2 2007/02/09 22:02:10 opfer Exp $
+
+inherit multilib 0install
+
+MY_PN="ROX-CLib"
+DESCRIPTION="A library for ROX applications written in C."
+HOMEPAGE="http://rox.sourceforge.net/"
+SRC_URI="http://www.kerofin.demon.co.uk/rox/${MY_PN}-${PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND=">=x11-libs/gtk+-2.0.1
+ >=dev-libs/libxml2-2.4.0"
+
+DEPEND="$RDEPEND
+ >=dev-util/pkgconfig-0.20"
+
+S=${WORKDIR}/ROX-CLib
+APPNAME=${MY_PN}
+
+ZEROINSTALL_STRIP_REQUIRES=True
+
+src_compile() {
+ chmod 0755 AppRun
+
+ # Most rox self-compiles have a 'read' call to wait for the user to
+ # press return if the compile fails.
+ # Find and remove this:
+ sed -i.bak -e 's/\<read WAIT\>/#read/' AppRun
+
+ ./AppRun --compile || die "Could not make ROX-CLib. Sorry."
+
+ # Restore the original AppRun
+ mv AppRun.bak AppRun
+}
+
+src_install() {
+ local baselibdir="/usr/$(get_libdir)"
+ # clean up source instead of remove it!
+ ( cd src && make clean )
+ # remove silly .cvs files
+ find . -name '.cvs*' | xargs rm -f >/dev/null 2>&1
+ dodoc ${baselibdir}/${APPNAME}
+ dodir ${baselibdir}/${APPNAME}
+ cp -r . ${D}${baselibdir}/${APPNAME}
+ (
+ cd Help
+ dodoc Authors Changes ToDo COPYING README Versions
+ )
+ #finally link the html and latex dirs
+ #cd ${D}/usr/share/doc/${P}
+ #ln -s ${baselibdir}/${APPNAME}/Help/rox-clib.html rox-clib.html
+ #ln -s ${baselibdir}/${APPNAME}/Help/libdir.html libdir.html
+ #ln -s ${baselibdir}/${APPNAME}/Help/html html
+
+ 0install_local_feed ${APPNAME}.xml "${baselibdir}/${APPNAME}"
+}
diff --git a/rox-base/rox-lib/files/rox-lib-2.0.3-nosvg.patch b/rox-base/rox-lib/files/rox-lib-2.0.3-nosvg.patch
new file mode 100644
index 0000000..eff2aa3
--- /dev/null
+++ b/rox-base/rox-lib/files/rox-lib-2.0.3-nosvg.patch
@@ -0,0 +1,18 @@
+Index: ROX-Lib2/python/rox/__init__.py
+===================================================================
+--- ROX-Lib2/python/rox/__init__.py (revision 4953)
++++ ROX-Lib2/python/rox/__init__.py (working copy)
+@@ -197,8 +197,11 @@
+ try:
+ g.window_set_default_icon_list(g.gdk.pixbuf_new_from_file(_icon_path))
+ except:
+- # Older pygtk
+- _window_icon = g.gdk.pixbuf_new_from_file(_icon_path)
++ try:
++ # Older pygtk
++ _window_icon = g.gdk.pixbuf_new_from_file(_icon_path)
++ except:
++ pass
+ del _icon_path
+
+ class Window(g.Window):
diff --git a/rox-base/rox-lib/rox-lib-2.0.3-r3.ebuild b/rox-base/rox-lib/rox-lib-2.0.3-r3.ebuild
new file mode 100644
index 0000000..85b1a0d
--- /dev/null
+++ b/rox-base/rox-lib/rox-lib-2.0.3-r3.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/rox-base/rox-lib/rox-lib-2.0.3-r2.ebuild,v 1.1 2007/02/13 17:03:46 lack Exp $
+
+NEED_PYTHON="2.3"
+inherit python eutils multilib
+
+MY_PN="rox-lib2"
+DESCRIPTION="ROX-Lib2 - Shared code for ROX applications by Thomas Leonard"
+HOMEPAGE="http://rox.sourceforge.net/desktop/ROX-Lib"
+SRC_URI="mirror://sourceforge/rox/${MY_PN}-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE=""
+
+RDEPEND=">=rox-base/rox-2.2.0
+ >=dev-python/pygtk-2.8.2"
+
+S=${WORKDIR}/${MY_PN}-${PV}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/${P}-nosvg.patch"
+}
+
+src_install() {
+ local baselibdir="/usr/$(get_libdir)"
+ dodir ${baselibdir}
+ cp -r ROX-Lib2/ ${D}${baselibdir}
+ python_mod_optimize ${D}${baselibdir}/ROX-Lib2/ >/dev/null 2>&1
+ dodir /usr/share/doc/
+ dosym ${baselibdir}/ROX-Lib2/Help /usr/share/doc/${P}
+}
diff --git a/rox-base/rox-lib/rox-lib-2.0.3-r4.ebuild b/rox-base/rox-lib/rox-lib-2.0.3-r4.ebuild
new file mode 100644
index 0000000..1e20348
--- /dev/null
+++ b/rox-base/rox-lib/rox-lib-2.0.3-r4.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/rox-base/rox-lib/rox-lib-2.0.3-r2.ebuild,v 1.1 2007/02/13 17:03:46 lack Exp $
+
+NEED_PYTHON="2.3"
+inherit python eutils 0install multilib
+
+MY_PN="rox-lib2"
+DESCRIPTION="ROX-Lib2 - Shared code for ROX applications by Thomas Leonard"
+HOMEPAGE="http://rox.sourceforge.net/desktop/ROX-Lib"
+SRC_URI="mirror://sourceforge/rox/${MY_PN}-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+RDEPEND=">=rox-base/rox-2.2.0
+ >=dev-python/pygtk-2.8.2"
+
+S=${WORKDIR}/${MY_PN}-${PV}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/${P}-nosvg.patch"
+}
+
+src_install() {
+ local baselibdir="/usr/$(get_libdir)"
+ dodir ${baselibdir}
+ cp -r ROX-Lib2/ ${D}${baselibdir}
+ python_mod_optimize ${D}${baselibdir}/ROX-Lib2/ >/dev/null 2>&1
+ dodir /usr/share/doc/
+ dosym ${baselibdir}/ROX-Lib2/Help /usr/share/doc/${P}
+
+ 0install_local_feed ROX-Lib2/ROX-Lib2.xml ${baselibdir}/ROX-Lib2
+}
diff --git a/rox-base/rox/files/rox-2.6-nostrip.patch b/rox-base/rox/files/rox-2.6-nostrip.patch
new file mode 100644
index 0000000..2a63ce7
--- /dev/null
+++ b/rox-base/rox/files/rox-2.6-nostrip.patch
@@ -0,0 +1,20 @@
+Index: ROX-Filer/src/Makefile.in
+===================================================================
+--- ROX-Filer/src/Makefile.in (revision 4834)
++++ ROX-Filer/src/Makefile.in (working copy)
+@@ -51,10 +51,12 @@
+ ${PROG}: ${OBJECTS}
+ ${CC} -o "${PROG}" ${OBJECTS} ${LDFLAGS}
+ mv "${PROG}" "${PLATFORM_DIR}"
++
++${PROG}.dbg: ${PROG}
+ -(cd "${PLATFORM_DIR}" && \
+- objcopy --only-keep-debug ROX-Filer ROX-Filer.dbg && \
+- strip ROX-Filer && \
+- objcopy --add-gnu-debuglink=ROX-Filer.dbg ROX-Filer)
++ objcopy --only-keep-debug ${PROG} ${PROG}.dbg && \
++ strip ${PROG} && \
++ objcopy --add-gnu-debuglink=${PROG}.dbg ${PROG})
+
+ clean:
+ rm -f *.o Makefile.bak
diff --git a/rox-base/rox/rox-2.6-r1.ebuild b/rox-base/rox/rox-2.6-r1.ebuild
new file mode 100644
index 0000000..c8f6dea
--- /dev/null
+++ b/rox-base/rox/rox-2.6-r1.ebuild
@@ -0,0 +1,126 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/rox-base/rox/rox-2.6.ebuild,v 1.6 2007/04/23 05:46:06 opfer Exp $
+
+inherit eutils multilib
+
+MY_P="rox-filer-${PV}"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="ROX is a desktop environment and filer based on RISC OS."
+HOMEPAGE="http://rox.sourceforge.net/"
+SRC_URI="mirror://sourceforge/rox/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
+IUSE="svg"
+
+RDEPEND=">=x11-libs/gtk+-2.4
+ >=dev-libs/glib-2.2
+ >=dev-libs/libxml2-2.4.23
+ >=x11-misc/shared-mime-info-0.14
+ svg? ( gnome-base/librsvg )"
+
+DEPEND="${RDEPEND}
+ >=dev-util/pkgconfig-0.20"
+
+PDEPEND="rox-base/mime-editor"
+
+APPNAME="ROX-Filer"
+APPDIR="/usr/$(get_libdir)/rox"
+LIBDIR="/usr/$(get_libdir)/"
+WRAPPERNAME="rox"
+MIMEDIR="/usr/share/mime"
+MIMECONFDIR="/etc/xdg/rox.sourceforge.net"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ epatch "${FILESDIR}"/${P}-nostrip.patch
+}
+
+src_compile() {
+
+ cd ${APPNAME}
+
+ # Most rox self-compiles have a 'read' call to wait for the user to
+ # press return if the compile fails.
+ # Find and remove this:
+ sed -i.bak -e 's/\<read WAIT\>/#read/' AppRun
+
+ ./AppRun --compile || die "make failed"
+ (cd src; make clean) > /dev/null
+ # don't need these directories anymore
+ if [ -n "${KEEP_SRC}" ]; then
+ (cd src; make clean) > /dev/null
+ else
+ rm -rf src
+ fi
+ rm -fr build
+
+ # Restore the original AppRun
+ mv AppRun.bak AppRun
+}
+
+# new streamlined install
+
+src_install() {
+ doman rox.1
+
+ dodir ${APPDIR}
+ cp -r ${APPNAME}/ ${D}/${APPDIR}
+
+ # add documentation to be proper
+ ( cd ${APPNAME}/Help
+ dodoc Changes COPYING README README-es TODO
+ )
+
+ # install shell script
+ dodir /usr/bin
+
+ cat >"${D}/usr/bin/${WRAPPERNAME}" <<EOF
+#!/bin/sh
+if [[ "\${LIBDIRPATH}" ]]; then
+ export LIBDIRPATH="\${LIBDIRPATH}:${LIBDIR}"
+else
+ export LIBDIRPATH="${LIBDIR}"
+fi
+
+if [[ "\${APPDIRPATH}" ]]; then
+ export APPDIRPATH="\${APPDIRPATH}:${APPDIR}"
+else
+ export APPDIRPATH="${APPDIR}"
+fi
+exec "${APPDIR}/${APPNAME}/AppRun" "\$@"
+EOF
+
+ cat >"${D}/usr/bin/${WRAPPERNAME}uri" <<EOF
+#!/bin/sh
+exec "${APPDIR}/${APPNAME}/AppRun" -U "\$@"
+EOF
+
+ chmod 0755 ${D}/usr/bin/${WRAPPERNAME}
+ chmod 0755 ${D}/usr/bin/${WRAPPERNAME}uri
+
+ # install rox.xml
+ insinto ${MIMEDIR}/packages
+ doins rox.xml
+
+ # CHOICES system is gone. Now use XDG only
+ # these are shell scripts and must be +x.
+ exeinto ${MIMECONFDIR}/MIME-types
+ doexe Choices/MIME-types/*
+
+ insinto /usr/share/pixmaps
+ newins ${APPNAME}/.DirIcon ${APPNAME}.png
+
+ make_desktop_entry ${WRAPPERNAME} ${APPNAME} ${APPNAME}.png "System;Utility;Core;ROX"
+}
+
+pkg_postinst() {
+ update-mime-database ${MIMEDIR}
+ einfo "${APPNAME} has been installed in ${APPDIR}."
+ einfo "To run, you may type ${WRAPPERNAME} at a prompt (within a WM) or"
+ einfo "add it to an .xinit or other script during WM startup."
+}
diff --git a/rox-base/rox/rox-2.6-r2.ebuild b/rox-base/rox/rox-2.6-r2.ebuild
new file mode 100644
index 0000000..1f87163
--- /dev/null
+++ b/rox-base/rox/rox-2.6-r2.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/rox-base/rox/rox-2.6.ebuild,v 1.6 2007/04/23 05:46:06 opfer Exp $
+
+inherit eutils multilib 0install
+
+MY_P="rox-filer-${PV}"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="ROX is a desktop environment and filer based on RISC OS."
+HOMEPAGE="http://rox.sourceforge.net/"
+SRC_URI="mirror://sourceforge/rox/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="svg"
+
+RDEPEND=">=x11-libs/gtk+-2.4
+ >=dev-libs/glib-2.2
+ >=dev-libs/libxml2-2.4.23
+ >=x11-misc/shared-mime-info-0.14
+ svg? ( gnome-base/librsvg )
+ rox-base/zeroinstall-injector"
+
+DEPEND="${RDEPEND}
+ >=dev-util/pkgconfig-0.20"
+
+PDEPEND="rox-base/mime-editor"
+
+APPNAME="ROX-Filer"
+APPDIR="/usr/$(get_libdir)/rox"
+LIBDIR="/usr/$(get_libdir)/"
+WRAPPERNAME="rox"
+MIMEDIR="/usr/share/mime"
+MIMECONFDIR="/etc/xdg/rox.sourceforge.net"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ epatch "${FILESDIR}"/${P}-nostrip.patch
+}
+
+src_compile() {
+
+ cd ${APPNAME}
+
+ # Most rox self-compiles have a 'read' call to wait for the user to
+ # press return if the compile fails.
+ # Find and remove this:
+ sed -i.bak -e 's/\<read WAIT\>/#read/' AppRun
+
+ ./AppRun --compile || die "make failed"
+ (cd src; make clean) > /dev/null
+ # don't need these directories anymore
+ if [ -n "${KEEP_SRC}" ]; then
+ (cd src; make clean) > /dev/null
+ else
+ rm -rf src
+ fi
+ rm -fr build
+
+ # Restore the original AppRun
+ mv AppRun.bak AppRun
+}
+
+# new streamlined install
+
+src_install() {
+ doman rox.1
+
+ dodir ${APPDIR}
+ cp -r ${APPNAME}/ ${D}/${APPDIR}
+
+ # add documentation to be proper
+ ( cd ${APPNAME}/Help
+ dodoc Changes COPYING README README-es TODO
+ )
+
+ # install shell script
+ dodir /usr/bin
+
+ cat >"${D}/usr/bin/${WRAPPERNAME}" <<EOF
+#!/bin/sh
+if [[ "\${LIBDIRPATH}" ]]; then
+ export LIBDIRPATH="\${LIBDIRPATH}:${LIBDIR}"
+else
+ export LIBDIRPATH="${LIBDIR}"
+fi
+
+if [[ "\${APPDIRPATH}" ]]; then
+ export APPDIRPATH="\${APPDIRPATH}:${APPDIR}"
+else
+ export APPDIRPATH="${APPDIR}"
+fi
+exec "${APPDIR}/${APPNAME}/AppRun" "\$@"
+EOF
+
+ cat >"${D}/usr/bin/${WRAPPERNAME}uri" <<EOF
+#!/bin/sh
+exec "${APPDIR}/${APPNAME}/AppRun" -U "\$@"
+EOF
+
+ chmod 0755 ${D}/usr/bin/${WRAPPERNAME}
+ chmod 0755 ${D}/usr/bin/${WRAPPERNAME}uri
+
+ # install rox.xml
+ insinto ${MIMEDIR}/packages
+ doins rox.xml
+
+ # CHOICES system is gone. Now use XDG only
+ # these are shell scripts and must be +x.
+ exeinto ${MIMECONFDIR}/MIME-types
+ doexe Choices/MIME-types/*
+
+ insinto /usr/share/pixmaps
+ newins ${APPNAME}/.DirIcon ${APPNAME}.png
+
+ make_desktop_entry ${WRAPPERNAME} ${APPNAME} ${APPNAME}.png "System;Utility;Core;ROX"
+
+ 0install_local_feed "${APPNAME}.xml" "${APPDIR}/${APPNAME}"
+}
+
+pkg_postinst() {
+ update-mime-database ${MIMEDIR}
+ einfo "${APPNAME} has been installed in ${APPDIR}."
+ einfo "To run, you may type ${WRAPPERNAME} at a prompt (within a WM) or"
+ einfo "add it to an .xinit or other script during WM startup."
+}
diff --git a/rox-base/zeroinstall-injector/Manifest b/rox-base/zeroinstall-injector/Manifest
new file mode 100644
index 0000000..f0ee967
--- /dev/null
+++ b/rox-base/zeroinstall-injector/Manifest
@@ -0,0 +1,28 @@
+AUX global-0.27 73 RMD160 b6fb0f8dfb500500d3b2719224dabf4c8160aed2 SHA1 a1e2a0d9b60ec2a02ad4bed98ee16ad7b9966132 SHA256 e081270dcfa04acf9da2e363c55be02c02b719ec2616b875a3f9118a5778423e
+MD5 a6cb42c31e5b742d67f4abc5e23481ee files/global-0.27 73
+RMD160 b6fb0f8dfb500500d3b2719224dabf4c8160aed2 files/global-0.27 73
+SHA256 e081270dcfa04acf9da2e363c55be02c02b719ec2616b875a3f9118a5778423e files/global-0.27 73
+AUX gpgInfo/pubring.gpg 911 RMD160 c155ac32769a7588ce4cefdb0042e88e2210e70d SHA1 465084f9f17a060f46d749bc9604b767125bc636 SHA256 4006d375e1669ee5b5352794777f0e1e905c6aed0cf685822a952c7196ab2052
+MD5 5c5e7dd2f87fbcd4cbd2a4bb09d944af files/gpgInfo/pubring.gpg 911
+RMD160 c155ac32769a7588ce4cefdb0042e88e2210e70d files/gpgInfo/pubring.gpg 911
+SHA256 4006d375e1669ee5b5352794777f0e1e905c6aed0cf685822a952c7196ab2052 files/gpgInfo/pubring.gpg 911
+AUX gpgInfo/secring.gpg 0 RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
+MD5 d41d8cd98f00b204e9800998ecf8427e files/gpgInfo/secring.gpg 0
+RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 files/gpgInfo/secring.gpg 0
+SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/gpgInfo/secring.gpg 0
+AUX gpgInfo/trustdb.gpg 1240 RMD160 d44385143431ac246b9f7aff85811cb673fc3be5 SHA1 de2e7f3e491087b9568d2d54e2e30fed053d81fb SHA256 4abab858a3b869c3ea0aadab45e99e2d0019fc4fe98a317177fbad7e4db7e94c
+MD5 6c68fc931a179f58525fcfdb56da019d files/gpgInfo/trustdb.gpg 1240
+RMD160 d44385143431ac246b9f7aff85811cb673fc3be5 files/gpgInfo/trustdb.gpg 1240
+SHA256 4abab858a3b869c3ea0aadab45e99e2d0019fc4fe98a317177fbad7e4db7e94c files/gpgInfo/trustdb.gpg 1240
+AUX zeroinstall-injector-0.27-local_feed.patch 4523 RMD160 0e4b4c4e558b66dff2e582c1fc002f7ff791c2bc SHA1 286b7588476a49b54b129bc409f3f52e0977c805 SHA256 f4f171da592e06a76024530c5217d8fd2ad1e2fa6158815779f8af31376032ea
+MD5 c007022076415ed52863823b69cf2cfe files/zeroinstall-injector-0.27-local_feed.patch 4523
+RMD160 0e4b4c4e558b66dff2e582c1fc002f7ff791c2bc files/zeroinstall-injector-0.27-local_feed.patch 4523
+SHA256 f4f171da592e06a76024530c5217d8fd2ad1e2fa6158815779f8af31376032ea files/zeroinstall-injector-0.27-local_feed.patch 4523
+DIST zeroinstall-injector-0.27.tar.gz.gpg 127113 RMD160 f93d87ae38c23eb73c7bc092d6a358932050ecf0 SHA1 b8f417d2174f17f1bfa3952bb319e112ba47af16 SHA256 9e2b532c61f1687f965bbbdd8f96c6aede6163fce2335b86b815b74f1d154761
+EBUILD zeroinstall-injector-0.27.ebuild 1805 RMD160 7512660da1082a745e171bfdddffaa0080b73648 SHA1 9f28e8fb3bb7eee0326b0462ab7a14ad83ae7b8f SHA256 57cbd574af4bc2c9d1f9db88d212a17a826052e1c1a34d3f65bb3b9c04af1a17
+MD5 db2725fdf5c3f2eb4c67d97bc3ea0d47 zeroinstall-injector-0.27.ebuild 1805
+RMD160 7512660da1082a745e171bfdddffaa0080b73648 zeroinstall-injector-0.27.ebuild 1805
+SHA256 57cbd574af4bc2c9d1f9db88d212a17a826052e1c1a34d3f65bb3b9c04af1a17 zeroinstall-injector-0.27.ebuild 1805
+MD5 b0fffbea1faf95e435aa67cba14972a4 files/digest-zeroinstall-injector-0.27 289
+RMD160 00e180c2a3c61bd3154702b47e9fa1e7632be1ef files/digest-zeroinstall-injector-0.27 289
+SHA256 5d32564926e8b07092190403b10bb6eacb63dc93726237ab0939107635456772 files/digest-zeroinstall-injector-0.27 289
diff --git a/rox-base/zeroinstall-injector/files/digest-zeroinstall-injector-0.27 b/rox-base/zeroinstall-injector/files/digest-zeroinstall-injector-0.27
new file mode 100644
index 0000000..b3eee05
--- /dev/null
+++ b/rox-base/zeroinstall-injector/files/digest-zeroinstall-injector-0.27
@@ -0,0 +1,3 @@
+MD5 124b5f5794c6950c53c11df9c538ac3c zeroinstall-injector-0.27.tar.gz.gpg 127113
+RMD160 f93d87ae38c23eb73c7bc092d6a358932050ecf0 zeroinstall-injector-0.27.tar.gz.gpg 127113
+SHA256 9e2b532c61f1687f965bbbdd8f96c6aede6163fce2335b86b815b74f1d154761 zeroinstall-injector-0.27.tar.gz.gpg 127113
diff --git a/rox-base/zeroinstall-injector/files/global-0.27 b/rox-base/zeroinstall-injector/files/global-0.27
new file mode 100644
index 0000000..8db0727
--- /dev/null
+++ b/rox-base/zeroinstall-injector/files/global-0.27
@@ -0,0 +1,5 @@
+[global]
+freshness = -1
+help_with_testing = False
+network_use = minimal
+
diff --git a/rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpg b/rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpg
new file mode 100644
index 0000000..e0de7b9
--- /dev/null
+++ b/rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpg
Binary files differ
diff --git a/rox-base/zeroinstall-injector/files/gpgInfo/secring.gpg b/rox-base/zeroinstall-injector/files/gpgInfo/secring.gpg
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/rox-base/zeroinstall-injector/files/gpgInfo/secring.gpg
diff --git a/rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpg b/rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpg
new file mode 100644
index 0000000..642e546
--- /dev/null
+++ b/rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpg
Binary files differ
diff --git a/rox-base/zeroinstall-injector/files/zeroinstall-injector-0.27-local_feed.patch b/rox-base/zeroinstall-injector/files/zeroinstall-injector-0.27-local_feed.patch
new file mode 100644
index 0000000..a7fa7dc
--- /dev/null
+++ b/rox-base/zeroinstall-injector/files/zeroinstall-injector-0.27-local_feed.patch
@@ -0,0 +1,121 @@
+diff -ur zeroinstall-orig/0launch-gui/properties.py zeroinstall/0launch-gui/properties.py
+--- zeroinstall-orig/0launch-gui/properties.py 2007-04-08 04:50:32.000000000 -0600
++++ zeroinstall/0launch-gui/properties.py 2007-05-07 09:48:41.000000000 -0600
+@@ -263,7 +263,13 @@
+ model, miter = sel.get_selected()
+ if not miter: return # build in progress
+ iface = model[miter][Feeds.URI]
+- self.remove_feed_button.set_sensitive(iface != self.interface.uri)
++ # Only enable removing user_override feeds
++ enable_remove = False
++ for x in self.interface.feeds:
++ if x.uri == iface:
++ if x.user_override:
++ enable_remove = True
++ self.remove_feed_button.set_sensitive( enable_remove )
+ self.description.set_details(iface_cache.get_interface(iface))
+
+ def updated(self):
+diff -ur zeroinstall-orig/injector/model.py zeroinstall/injector/model.py
+--- zeroinstall-orig/injector/model.py 2007-04-06 13:22:30.000000000 -0600
++++ zeroinstall/injector/model.py 2007-05-07 09:48:41.000000000 -0600
+@@ -70,6 +70,7 @@
+ developer = Stability(10, 'developer', 'Work-in-progress - bugs likely')
+ testing = Stability(20, 'testing', 'Stability unknown - please test!')
+ stable = Stability(30, 'stable', 'Tested - no serious problems found')
++packaged = Stability(35, 'packaged', 'Supplied by the local package manager')
+ preferred = Stability(40, 'preferred', 'Best of all - must be set manually')
+
+ class Restriction(object):
+diff -ur zeroinstall-orig/injector/reader.py zeroinstall/injector/reader.py
+--- zeroinstall-orig/injector/reader.py 2007-04-07 02:47:20.000000000 -0600
++++ zeroinstall/injector/reader.py 2007-05-07 12:33:27.000000000 -0600
+@@ -41,7 +41,7 @@
+ before = parse_version(e.getAttribute('before'))))
+
+ def update_from_cache(interface):
+- """Read a cached interface and any user overrides.
++ """Read a cached interface and any local feeds or user overrides.
+ @param interface: the interface object to update
+ @type interface: L{model.Interface}
+ @return: True if cached version and user overrides loaded OK.
+@@ -61,7 +61,11 @@
+ debug("Loading cached information for %s from %s", interface, cached)
+ update(interface, cached)
+
+- update_user_overrides(interface)
++ if update_local_feeds(interface):
++ cached = True
++
++ if update_user_overrides(interface):
++ cached = True
+
+ # Special case: add our fall-back local copy of the injector as a feed
+ if interface.uri == injector_gui_uri:
+@@ -70,6 +74,49 @@
+
+ return bool(cached)
+
++def update_local_feeds(interface):
++ """Update an interface with system-supplied local feeds.
++ @param interface: the interface object to update
++ @type interface: L{model.Interface}
++ @return: True if a local feed was loaded.
++ @rtype: bool"""
++ debug( "update_local_feeds for %s" % escape(interface.uri) )
++ path = basedir.load_first_config(config_site, 'local_feeds',
++ escape(interface.uri))
++
++ if not path:
++ return False
++
++ debug( "Adding system-supplied local_feed from '%s'" % path )
++
++ # Ensure the local feed matches the specified interface
++ root = qdom.parse(file(path))
++ if root.getAttribute('uri') != interface.uri:
++ match = False
++ for item in root.childNodes:
++ if item.uri != XMLNS_IFACE: continue
++ if item.name == 'feed-for':
++ if interface.uri == item.getAttribute('interface'):
++ match = True
++ break
++ if not match:
++ raise InvalidInterface('Local feed does not match specified interface')
++
++ realpath = path
++ linkcount = 0
++ while os.path.islink(realpath):
++ # Add the "real" location, not the link
++ oldpath = realpath
++ realpath = os.readlink(oldpath)
++ if not realpath.startswith('/'):
++ realpath = os.path.join(os.path.dirname(oldpath), realpath)
++ linkcount += 1
++ if linkcount > 100:
++ raise InvalidInterface('Local feed symlink more than 100 levels deep, skipping')
++ interface.feeds.append(Feed(realpath, None, False))
++
++ return True
++
+ def update_user_overrides(interface):
+ """Update an interface with user-supplied information.
+ @param interface: the interface object to update
+@@ -77,7 +124,7 @@
+ user = basedir.load_first_config(config_site, config_prog,
+ 'user_overrides', escape(interface.uri))
+ if not user:
+- return
++ return False
+
+ root = qdom.parse(file(user))
+
+@@ -113,6 +160,7 @@
+ if not feed_src:
+ raise InvalidInterface('Missing "src" attribute in <feed>')
+ interface.feeds.append(Feed(feed_src, item.getAttribute('arch'), True))
++ return True
+
+ def check_readable(interface_uri, source):
+ """Test whether an interface file is valid.
diff --git a/rox-base/zeroinstall-injector/zeroinstall-injector-0.27.ebuild b/rox-base/zeroinstall-injector/zeroinstall-injector-0.27.ebuild
new file mode 100644
index 0000000..1018641
--- /dev/null
+++ b/rox-base/zeroinstall-injector/zeroinstall-injector-0.27.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit distutils
+
+DESCRIPTION="Zeroinstall Injector allows regular users to install software themselves"
+HOMEPAGE="http://0install.net/"
+SRC_URI="mirror://sourceforge/zero-install/${P}.tar.gz.gpg"
+
+LICENSE=""
+SLOT="0"
+KEYWORDS=""
+IUSE=""
+
+DEPEND="app-crypt/gnupg"
+RDEPEND=">=dev-python/pygtk-2.0
+ ${DEPEND}"
+
+# If we decide to do RESTRICT="fetch" instead of trying gpg
+#pkg_nofetch() {
+# einfo "Zeroinstall is distributed only in gpg-signed tarballs, which ebuilds"
+# einfo "cannot currently handle. You must:"
+# einfo " 1. Download the file ${P}.tar.gz.gpg from"
+# einfo " http://downloads.sourceforge.net/zero-install/zeroinstall-injector-0.27.tar.gz.gpg"
+# einfo " 2. Verify the signature:"
+# einfo " gpg ${P}.tar.gz.gpg"
+# einfo " It has the fingerprint 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1"
+# einfo " 3. Put the resulting ${P}.tar.gz in ${DISTDIR}."
+#}
+
+src_unpack() {
+ local GPGSRC=${P}.tar.gz.gpg
+ local GPGHOME="${WORKDIR}/.gnupg"
+ local TARSRC=${P}.tar.gz
+
+ # Un-gpg-sign the downloaded archive
+ cp "${DISTDIR}/${GPGSRC}" "${WORKDIR}"
+ cp -r "${FILESDIR}/gpgInfo" "${GPGHOME}"
+ chmod 700 "${GPGHOME}"
+ cd "${WORKDIR}"
+ gpg -q --homedir "${GPGHOME}" ${GPGSRC} || die "GPG validation failed"
+ [ -e ${TARSRC} ] || die "GPG unwrap failed"
+
+ # Unpack the unsigned archive
+ tar -xzf ${TARSRC} || die "Tar unpack failed"
+
+ # Patches
+ cd "${S}"
+ epatch "${FILESDIR}/${P}-local_feed.patch"
+}
+
+src_install() {
+ distutils_src_install
+
+ exeinto "/usr/bin/"
+ doexe "${FILESDIR}/0distutils"
+
+ local BASE_XDG_CONFIG="/etc/xdg/0install.net"
+
+ insinto "${BASE_XDG_CONFIG}/injector"
+ newins "${FILESDIR}/global-${PV}" global
+ dodir "${BASE_XDG_CONFIG}/local_feeds"
+}
+