summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/rox.eclass')
-rw-r--r--eclass/rox.eclass289
1 files changed, 0 insertions, 289 deletions
diff --git a/eclass/rox.eclass b/eclass/rox.eclass
deleted file mode 100644
index ac1f624..0000000
--- a/eclass/rox.eclass
+++ /dev/null
@@ -1,289 +0,0 @@
-# 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.
-# If overridden with the reserved word 'skip' no wrapper will be created.
-# 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}
-
- if [[ "${WRAPPERNAME}" != "skip" ]]; then
- #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
- 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_native_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}"
- if [[ "${WRAPPERNAME}" != "skip" ]]; then
- 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"
- else
- einfo "You can run it by pointing the ROX file manager to the"
- fi
- 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