/[gentoo-x86]/eclass/vdr-plugin.eclass
Gentoo

Diff of /eclass/vdr-plugin.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.76 Revision 1.83
1# Copyright 1999-2011 Gentoo Foundation 1# Copyright 1999-2012 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/Attic/vdr-plugin.eclass,v 1.76 2011/12/27 17:55:12 fauli Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/Attic/vdr-plugin.eclass,v 1.83 2012/03/09 23:14:46 hd_brummy Exp $
4
5# @ECLASS: vdr-plugin.eclass
6# @MAINTAINER:
7# vdr@gentoo.org
8# @BLURB: common vdr plugin ebuild functions
9# @DESCRIPTION:
10# Eclass for easing maitenance of vdr plugin ebuilds
11
12# Authors:
13# Matthias Schwarzott <zzam@gentoo.org>
14# Joerg Bornkessel <hd_brummy@gentoo.org>
15# Christian Ruppert <idl0r@gentoo.org>
16
17# Plugin config file installation:
4# 18#
5# Author: 19# A plugin config file can be specified through the $VDR_CONFD_FILE variable, it
6# Matthias Schwarzott <zzam@gentoo.org> 20# defaults to ${FILESDIR}/confd. Each config file will be installed as e.g.
7# Joerg Bornkessel <hd_brummy@gentoo.org> 21# ${D}/etc/conf.d/vdr.${VDRPLUGIN}
8 22
9# vdr-plugin.eclass 23# Installation of rc-addon files:
24# NOTE: rc-addon files must be valid shell scripts!
10# 25#
11# eclass to create ebuilds for vdr plugins 26# Installing rc-addon files is basically the same as for plugin config files
27# (see above), it's just using the $VDR_RCADDON_FILE variable instead.
28# The default value when $VDR_RCADDON_FILE is undefined is:
29# ${FILESDIR}/rc-addon.sh and will be installed as
30# ${VDR_RC_DIR}/plugin-${VDRPLUGIN}.sh
12# 31#
32# The rc-addon files will be sourced by the startscript when the specific plugin
33# has been enabled.
34# rc-addon files may be used to prepare everything that is necessary for the
35# plugin start/stop, like passing extra command line options and so on.
13 36
14# Example ebuild (basic version without patching): 37# Applying your own local/user patches:
38# This is done by using the epatch_user() function of the eutils.eclass.
39# Simply put your patches into one of these directories:
40# /etc/portage/patches/<CATEGORY>/<PF|P|PN>/
41# Quote: where the first of these three directories to exist will be the one to
42# use, ignoring any more general directories which might exist as well.
15# 43#
16# EAPI="2" 44# For more details about it please take a look at the eutils.class.
17# inherit vdr-plugin
18# IUSE=""
19# SLOT="0"
20# DESCRIPTION="vdr Plugin: DVB Frontend Status Monitor (signal strengt/noise)"
21# HOMEPAGE="http://www.saunalahti.fi/~rahrenbe/vdr/femon/"
22# SRC_URI="http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/${P}.tgz"
23# LICENSE="GPL-2"
24# KEYWORDS="~x86"
25# DEPEND=">=media-video/vdr-1.6.0"
26#
27#
28
29# For patching you should modify src_prepare phase:
30#
31# src_prepare() {
32# epatch "${FILESDIR}"/${P}-xxx.patch
33# vdr-plugin_src_prepare
34# }
35
36# Installation of a config file for the plugin
37#
38# If ${VDR_CONFD_FILE} is set install this file
39# else install ${FILESDIR}/confd if it exists.
40
41# Gets installed as /etc/conf.d/vdr.${VDRPLUGIN}.
42# For the plugin vdr-femon this would be /etc/conf.d/vdr.femon
43
44
45# Installation of an rc-addon file for the plugin
46#
47# If ${VDR_RCADDON_FILE} is set install this file
48# else install ${FILESDIR}/rc-addon.sh if it exists.
49#
50# Gets installed under ${VDR_RC_DIR}/plugin-${VDRPLUGIN}.sh
51# (in example vdr-femon this would be /usr/share/vdr/rcscript/plugin-femon.sh)
52#
53# This file is sourced by the startscript when plugin is activated in /etc/conf.d/vdr
54# It could be used for special startup actions for this plugins, or to create the
55# plugin command line options from a nicer version of a conf.d file.
56
57# HowTo use own local patches; Example
58#
59# Add to your /etc/make.conf:
60# VDR_LOCAL_PATCHES_DIR="/usr/local/patch"
61#
62# Add two DIR's in your local patch dir, ${PN}/${PV},
63# e.g for vdr-burn-0.1.0 should be:
64# /usr/local/patch/vdr-burn/0.1.0/
65#
66# all patches which ending on diff or patch in this DIR will automatically applied
67#
68 45
69inherit base multilib eutils flag-o-matic 46inherit base multilib eutils flag-o-matic
70 47
71if ! has "${EAPI:-0}" 0 1 2 3; then 48if ! has "${EAPI:-0}" 0 1 2 3 4; then
72 die "API of vdr-plugin.eclass in EAPI=\"${EAPI}\" not established" 49 die "API of vdr-plugin.eclass in EAPI=\"${EAPI}\" not established"
73fi 50fi
74 51
75IUSE="" 52IUSE=""
76 53
86 63
87# depend on headers for DVB-driver 64# depend on headers for DVB-driver
88COMMON_DEPEND=">=media-tv/gentoo-vdr-scripts-0.4.2" 65COMMON_DEPEND=">=media-tv/gentoo-vdr-scripts-0.4.2"
89 66
90DEPEND="${COMMON_DEPEND} 67DEPEND="${COMMON_DEPEND}
91 media-tv/linuxtv-dvb-headers" 68 virtual/linuxtv-dvb-headers"
92RDEPEND="${COMMON_DEPEND} 69RDEPEND="${COMMON_DEPEND}
93 >=app-admin/eselect-vdr-0.0.2" 70 >=app-admin/eselect-vdr-0.0.2"
94 71
95# this is a hack for ebuilds like vdr-xineliboutput that want to 72# this is a hack for ebuilds like vdr-xineliboutput that want to
96# conditionally install a vdr-plugin 73# conditionally install a vdr-plugin
244 # Use a file instead of a variable as single-stepping via ebuild 221 # Use a file instead of a variable as single-stepping via ebuild
245 # destroys environment. 222 # destroys environment.
246 touch "${WORKDIR}"/.vdr-plugin_makefile_patched 223 touch "${WORKDIR}"/.vdr-plugin_makefile_patched
247} 224}
248 225
249vdr_add_local_patch() {
250 if test -d "${VDR_LOCAL_PATCHES_DIR}/${PN}"; then
251 echo
252 einfo "Applying local patches"
253 for LOCALPATCH in "${VDR_LOCAL_PATCHES_DIR}/${PN}/${PV}"/*.{diff,patch}; do
254 test -f "${LOCALPATCH}" && epatch "${LOCALPATCH}"
255 done
256 fi
257}
258
259vdr_has_gettext() { 226vdr_has_gettext() {
260 has_version ">=media-video/vdr-1.5.7" 227 has_version ">=media-video/vdr-1.5.7"
261} 228}
262 229
263plugin_has_gettext() { 230plugin_has_gettext() {
264 [[ -d po ]] 231 [[ -d po ]]
265} 232}
266 233
267vdr_i18n_convert_to_gettext() { 234vdr_i18n_convert_to_gettext() {
235 if has_version ">=media-video/vdr-1.7.22"; then
236 local i18n_tool="${ROOT}/usr/share/vdr/bin/i18n-to-gettext"
237 else
268 local i18n_tool="${ROOT}/usr/share/vdr/bin/i18n-to-gettext.pl" 238 local i18n_tool="${ROOT}/usr/share/vdr/bin/i18n-to-gettext.pl"
239 fi
269 240
270 if [[ ${NO_GETTEXT_HACK} == "1" ]]; then 241 if [[ ${NO_GETTEXT_HACK} == "1" ]]; then
271 ewarn "Conversion to gettext disabled in ebuild" 242 ewarn "Conversion to gettext disabled in ebuild"
272 return 1 243 return 1
273 fi 244 fi
429 APIVERSION=$(awk -F'"' '/define APIVERSION/ {print $2}' "${VDR_INCLUDE_DIR}"/config.h) 400 APIVERSION=$(awk -F'"' '/define APIVERSION/ {print $2}' "${VDR_INCLUDE_DIR}"/config.h)
430 [[ -z ${APIVERSION} ]] && APIVERSION="${VDRVERSION}" 401 [[ -z ${APIVERSION} ]] && APIVERSION="${VDRVERSION}"
431 402
432 einfo "Compiling against" 403 einfo "Compiling against"
433 einfo "\tvdr-${VDRVERSION} [API version ${APIVERSION}]" 404 einfo "\tvdr-${VDRVERSION} [API version ${APIVERSION}]"
405
406
407 if [ -n "${VDR_LOCAL_PATCHES_DIR}" ]; then
408 eerror "Using VDR_LOCAL_PATCHES_DIR is deprecated!"
409 eerror "Please move all your patches into"
410 eerror "${EROOT}/etc/portage/patches/${CATEGORY}/${P}"
411 eerror "and remove or unset the VDR_LOCAL_PATCHES_DIR variable."
412 die
413 fi
434} 414}
435 415
436vdr-plugin_src_util() { 416vdr-plugin_src_util() {
437
438 while [ "$1" ]; do 417 while [ "$1" ]; do
439
440 case "$1" in 418 case "$1" in
441 all) 419 all)
442 vdr-plugin_src_util unpack add_local_patch patchmakefile i18n 420 vdr-plugin_src_util unpack add_local_patch patchmakefile i18n
443 ;; 421 ;;
444 prepare|all_but_unpack) 422 prepare|all_but_unpack)
447 unpack) 425 unpack)
448 base_src_unpack 426 base_src_unpack
449 ;; 427 ;;
450 add_local_patch) 428 add_local_patch)
451 cd "${S}" || die "Could not change to plugin-source-directory!" 429 cd "${S}" || die "Could not change to plugin-source-directory!"
452 vdr_add_local_patch 430 epatch_user
453 ;; 431 ;;
454 patchmakefile) 432 patchmakefile)
455 cd "${S}" || die "Could not change to plugin-source-directory!" 433 cd "${S}" || die "Could not change to plugin-source-directory!"
456 vdr_patchmakefile 434 vdr_patchmakefile
457 ;; 435 ;;
473 eerror "Please report this at bugs.gentoo.org." 451 eerror "Please report this at bugs.gentoo.org."
474 die "vdr-plugin_pkg_setup not called!" 452 die "vdr-plugin_pkg_setup not called!"
475 fi 453 fi
476 if [ -z "$1" ]; then 454 if [ -z "$1" ]; then
477 case "${EAPI:-0}" in 455 case "${EAPI:-0}" in
478 2|3) 456 2|3|4)
479 vdr-plugin_src_util unpack 457 vdr-plugin_src_util unpack
480 ;; 458 ;;
481 *) 459 *)
482 vdr-plugin_src_util all 460 vdr-plugin_src_util all
483 ;; 461 ;;
611vdr-plugin_pkg_postrm() { 589vdr-plugin_pkg_postrm() {
612 delete_orphan_plugindb_file 590 delete_orphan_plugindb_file
613} 591}
614 592
615vdr-plugin_pkg_config() { 593vdr-plugin_pkg_config() {
616 ewarn "emerge --config ${PN} is no longer supported" 594:
617 vdr-plugin_print_enable_command
618} 595}
619 596
620case "${EAPI:-0}" in 597case "${EAPI:-0}" in
621 2|3) 598 2|3|4)
622 EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_compile src_install pkg_postinst pkg_postrm pkg_config 599 EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_compile src_install pkg_postinst pkg_postrm pkg_config
623 ;; 600 ;;
624 *) 601 *)
625 EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_postrm pkg_config 602 EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_postrm pkg_config
626 ;; 603 ;;

Legend:
Removed from v.1.76  
changed lines
  Added in v.1.83

  ViewVC Help
Powered by ViewVC 1.1.20