diff options
author | 2007-06-07 19:35:32 +0000 | |
---|---|---|
committer | 2007-06-07 19:35:32 +0000 | |
commit | 93c5d62ddcc86bae5b84cc38a1c5bfa08b56a2c0 (patch) | |
tree | 27e68f9bf9ee83d149af5eac68b7bbf7b28ac936 | |
download | rox-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
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 Binary files differnew file mode 100644 index 0000000..e0de7b9 --- /dev/null +++ b/rox-base/zeroinstall-injector/files/gpgInfo/pubring.gpg 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 Binary files differnew file mode 100644 index 0000000..642e546 --- /dev/null +++ b/rox-base/zeroinstall-injector/files/gpgInfo/trustdb.gpg 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" +} + |