/[gentoo-x86]/eclass/gdesklets.eclass
Gentoo

Diff of /eclass/gdesklets.eclass

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

Revision 1.5 Revision 1.11
1# Copyright 2004 Gentoo Foundation 1# Copyright 2004 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License, v2 or later 2# Distributed under the terms of the GNU General Public License, v2 or later
3# $Header: /var/cvsroot/gentoo-x86/eclass/gdesklets.eclass,v 1.5 2005/06/17 23:34:55 nixphoeni Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/gdesklets.eclass,v 1.11 2006/01/16 18:14:47 nixphoeni Exp $
4# 4#
5# Authors: Joe Sapp <nixphoeni@gentoo.org> 5# Authors: Joe Sapp <nixphoeni@gentoo.org>
6# Mike Gardiner <obz@gentoo.org> 6# Mike Gardiner <obz@gentoo.org>
7# 7#
8# Usage: 8# Usage:
16# RDEPEND: *Optional* Set if the desklet requires a minimum version 16# RDEPEND: *Optional* Set if the desklet requires a minimum version
17# of gDesklets greater than 0.34 or other packages. 17# of gDesklets greater than 0.34 or other packages.
18 18
19inherit eutils multilib 19inherit eutils multilib
20 20
21ECLASS="gdesklets"
22INHERITED="$INHERITED $ECLASS"
23 21
24MY_P="${DESKLET_NAME}-${PV}" 22MY_P="${DESKLET_NAME}-${PV}"
25S=${WORKDIR}/${DESKLET_NAME} 23S=${WORKDIR}/${DESKLET_NAME}
26 24
27SRC_URI="http://gdesklets.gnomedesktop.org/files/${MY_P}.tar.gz" 25SRC_URI="http://gdesklets.gnomedesktop.org/files/${MY_P}.tar.gz"
28 26
29# Ebuild writer shouldn't need to touch these (except maybe $RDEPEND) 27# Ebuild writer shouldn't need to touch these (except maybe $RDEPEND)
30SLOT="0" 28SLOT="0"
31IUSE="" 29IUSE=""
32RDEPEND="${RDEPEND} >=gnome-extra/gdesklets-core-0.34.3" 30RDEPEND=">=gnome-extra/gdesklets-core-0.34.3-r1"
33 31
34GDESKLETS_INST_DIR="/usr/$(get_libdir)/gdesklets" 32GDESKLETS_INST_DIR="/usr/$(get_libdir)/gdesklets"
35 33
36gdesklets_src_install() { 34gdesklets_src_install() {
37 35
38 debug-print-function $FUNCNAME $* 36 debug-print-function $FUNCNAME $*
39 37
40 has_version ">=gnome-extra/gdesklets-core-0.33.1" || \ 38 has_version ">=gnome-extra/gdesklets-core-0.33.1" || \
41 GDESKLETS_INST_DIR="/usr/share/gdesklets" 39 GDESKLETS_INST_DIR="/usr/share/gdesklets"
42 40
43 # This should be done by the gdesklets-core ebuild 41 # This should be done by the gdesklets-core ebuild
44 # It makes the Displays or Controls directory in the 42 # It makes the Displays or Controls directory in the
45 # global installation directory if it doesn't exist 43 # global installation directory if it doesn't exist
46 [[ -d ${GDESKLETS_INST_DIR}/Displays ]] || \ 44 [[ -d ${GDESKLETS_INST_DIR}/Displays ]] || \
47 dodir ${GDESKLETS_INST_DIR}/Displays 45 dodir ${GDESKLETS_INST_DIR}/Displays
48 46
49 # The displays only need to be readable 47 # The displays only need to be readable
50 insopts -m0744 48 insopts -m0744
51 49
52 # Check to see if DISPLAY is set for the 50 # Check to see if DISPLAY is set for the
53 # gdesklets-control-getid script to run without 51 # gdesklets-control-getid script to run without
54 # error 52 # error
55 [ -z "${DISPLAY}" ] && DISPLAY="" 53 [ -z "${DISPLAY}" ] && DISPLAY=""
56 export DISPLAY 54 export DISPLAY
57 55
56 debug-print-section sensor_install
58 # First, install the Sensor (if there is one) 57 # First, install the Sensor (if there is one)
59 if [[ -n "${SENSOR_NAME}" ]]; then 58 if [[ -n "${SENSOR_NAME}" ]]; then
60 for SENS in ${SENSOR_NAME[@]}; do 59 for SENS in ${SENSOR_NAME[@]}; do
61 einfo "Installing Sensor ${SENS}" 60 einfo "Installing Sensor ${SENS}"
62 /usr/bin/python "Install_${SENS}_Sensor.bin" \ 61 /usr/bin/python "Install_${SENS}_Sensor.bin" \
63 --nomsg ${D}${GDESKLETS_INST_DIR}/Sensors || \ 62 --nomsg ${D}${GDESKLETS_INST_DIR}/Sensors || \
64 die "Couldn't Install Sensor" 63 die "Couldn't Install Sensor"
65 64
66 chown -R root:root ${D}${GDESKLETS_INST_DIR}/Sensors/${SENSOR_NAME} 65 chown -R root:0 ${D}${GDESKLETS_INST_DIR}/Sensors/${SENSOR_NAME}
67 done # for in ${SENSOR_NAME} 66 done # for in ${SENSOR_NAME}
68 fi # if -n "${SENSOR_NAME}" 67 fi # if -n "${SENSOR_NAME}"
69 68
69 debug-print-section display_install
70 # This finds the Displays 70 # This finds the Displays
71 DISPLAY_FILES=(`find . -iname "*.display"`) 71 DISPLAY_FILES=(`find . -iname "*.display"`)
72 72
73 GD_INSDIR="" 73 DESKLET_INSDIR=""
74 74
75 # There is more than likely only one display per package 75 # There is most likely only one display per package
76 if [[ -n "${DISPLAY_FILES[@]}" ]]; then 76 if [[ -n "${DISPLAY_FILES[@]}" ]]; then
77 # Base installation directory for displays 77 # Base installation directory for displays from this desklet
78 GD_INSDIR="${GDESKLETS_INST_DIR}/Displays/${DESKLET_NAME}" 78 DESKLET_INSDIR="${GDESKLETS_INST_DIR}/Displays/${DESKLET_NAME}"
79 79
80 # This creates the subdirectory of ${DESKLET_NAME} 80 # This creates the subdirectory of ${DESKLET_NAME}
81 # in the global Displays directory 81 # in the global Displays directory
82 [[ -d ${GD_INSDIR} ]] || \ 82 [[ -d ${DESKLET_INSDIR} ]] || \
83 dodir ${GD_INSDIR} 83 dodir ${DESKLET_INSDIR}
84 84
85 # For each of the Display files, there may be 85 # For each of the Display files, there may be
86 # scripts included inline which don't necessarily 86 # scripts included inline which don't necessarily
87 # follow any naming scheme. 87 # follow any naming scheme.
88 # So for each of them, determine what those scripts are 88 # So for each of them, determine what those scripts are
89 # and install them. 89 # and install them.
90 for DSP in ${DISPLAY_FILES[@]}; do 90 for DSP in ${DISPLAY_FILES[@]}; do
91 91
92 cd `dirname ${DSP}`
92 einfo "Installing Display `basename ${DSP} .display`" 93 einfo "Installing Display `basename ${DSP} .display`"
94 debug-print "Installing ${DSP} into ${DESKLET_INSDIR}"
95 DSP=`basename ${DSP}`
93 insinto ${GD_INSDIR} 96 insinto ${DESKLET_INSDIR}
94 doins ${DSP} 97 doins ${DSP}
95 98
96 SCRIPTS=$(grep "script uri" ${DSP} | \ 99 SCRIPTS=$(grep "script .*uri" ${DSP} | \
97 sed -e 's:.*<script uri=": :g' -e 's:"/>.*: :g') 100 sed -e 's:.*<script .*uri=": :g' -e 's:"/>.*: :g')
98 101
99 # For each one of the scripts, change to its 102 # For each one of the scripts, change to its
100 # base directory and change the install location 103 # base directory and change the install location
101 # so it gets installed at the proper place 104 # so it gets installed at the proper place
102 # relative to the display. 105 # relative to the display.
103 for SCR in ${SCRIPTS[@]}; do 106 for SCR in ${SCRIPTS[@]}; do
104 107
105 cd `dirname ${DSP}`/`dirname ${SCR}` 108 cd `dirname ${SCR}`
106 109
107 insinto ${GD_INSDIR}/`dirname ${SCR}` 110 insinto ${DESKLET_INSDIR}/`dirname ${SCR}`
108 doins `basename ${SCR}` 111 doins `basename ${SCR}`
109 112 debug-print "Installed `basename ${SCR}` into ${DESKLET_INSDIR}/`dirname ${SCR}`"
113
110 cd ${S}/`dirname ${DSP}` 114 cd ${S}/`dirname ${DSP}`
111 115
112 done # for in ${SCRIPTS} 116 done # for in ${SCRIPTS}
113 117
114 # Install the graphics for this display. 118 # Install the graphics for this display.
115 # If there are multiple displays in this 119 # If there are multiple displays in this
116 # directory, this will be done more than 120 # directory, this will be done more than
117 # once. It's the only solution I can 121 # once. It's the only solution I can
118 # come up with for now... 122 # come up with for now...
119 GFX=(`find . \ 123 GFX=(`find . \
120 -iname "*.png" -o -iname "*.svg" \ 124 -iname "*.png" -o -iname "*.svg" \
121 -o -iname "*.jpg" -o -iname "*.gif" \ 125 -o -iname "*.jpg" -o -iname "*.gif" \
122 -o -iname "*.xcf"`) 126 -o -iname "*.xcf"`)
123 127
124 for G in ${GFX[@]}; do 128 for G in ${GFX[@]}; do
125 129
126 insinto ${GD_INSDIR}/`dirname ${G}` 130 insinto ${DESKLET_INSDIR}/`dirname ${G}`
127 doins ${G} 131 doins ${G}
128 132 debug-print "Installed ${G} into ${DESKLET_INSDIR}/`dirname ${G}`"
133
129 done # for in ${GFX} 134 done # for in ${GFX}
130 135
131 cd ${S} 136 cd ${S}
132 137
133 done # for in ${DISPLAY_FILES} 138 done # for in ${DISPLAY_FILES}
139
140 fi
141
142 debug-print-section control_install
134 143
135 fi 144 CONTROL_INSDIR=""
136 145
137 # Make sure that it only finds Controls and not Sensors 146 # Make sure that it only finds Controls and not Sensors
138 # If it uses a Sensor, it shouldn't use a Control (since 147 # If it uses a Sensor, it shouldn't use a Control (since
139 # Sensors are deprecated). 148 # Sensors are deprecated).
140 if [[ -z "${SENSOR_NAME}" ]]; then 149 if [[ -z "${SENSOR_NAME}" ]]; then
141 150
142 # Base installation directory for Controls 151 # Base installation directory for Controls
143 GD_INSDIR="${GDESKLETS_INST_DIR}/Controls" 152 CONTROL_INSDIR="${GDESKLETS_INST_DIR}/Controls"
144 153
145 CONTROL_INITS=$(find . -iname "__init__.py" | grep [Cc]ontrols) 154 CONTROL_INITS=$(find . -iname "__init__.py" | grep [Cc]ontrols)
146 155
147 # There are possibly multiple Controls packaged with the display. 156 # There are possibly multiple Controls packaged with the display.
148 # For each __init__.py found, there must be a Control associated with it. 157 # For each __init__.py found, there must be a Control associated with it.
149 for CTRL in ${CONTROL_INITS[@]}; do 158 for CTRL in ${CONTROL_INITS[@]}; do
150 159
151 cd `dirname ${CTRL}` 160 cd `dirname ${CTRL}`
152 CTRL_NAME=$( PYTHON_DONTCOMPILE=1 ${GDESKLETS_INST_DIR}/gdesklets-control-getid `pwd` ) 161 CTRL_NAME=$( PYTHON_DONTCOMPILE=1 ${GDESKLETS_INST_DIR}/gdesklets-control-getid `pwd` )
153 einfo "Installing Control ${CTRL_NAME}" 162 einfo "Installing Control ${CTRL_NAME}"
154 # This creates the subdirectory of ${CTRL_NAME} 163 # This creates the subdirectory of ${CTRL_NAME}
155 # in the global Controls directory 164 # in the global Controls directory
156 [[ -d ${GD_INSDIR}/${CTRL_NAME} ]] || \ 165 [[ -d ${CONTROL_INSDIR}/${CTRL_NAME} ]] || \
157 dodir ${GD_INSDIR}/${CTRL_NAME} 166 dodir ${CONTROL_INSDIR}/${CTRL_NAME}
158 167
159 insinto ${GD_INSDIR}/${CTRL_NAME} 168 insinto ${CONTROL_INSDIR}/${CTRL_NAME}
160 169
161 doins -r * 170 doins -r *
162 171
163 cd ${S} 172 cd ${S}
164 173
165 done # for in ${CONTROL_INITS} 174 done # for in ${CONTROL_INITS}
166 175
167 fi # if no Sensors 176 fi # if no Sensors
168 177
169 # Install any remaining graphics and other files 178 # Install any remaining graphics and other files
170 # that are sitting in ${S}. 179 # that are sitting in ${S}.
171 180
172 GFX=$(find . -maxdepth 1 \ 181 GFX=$(find . -maxdepth 1 \
173 -iname "*.png" -o -iname "*.svg" \ 182 -iname "*.png" -o -iname "*.svg" \
174 -o -iname "*.jpg" -o -iname "*.gif" \ 183 -o -iname "*.jpg" -o -iname "*.gif" \
175 -o -iname "*.xcf") 184 -o -iname "*.xcf")
176 185
177 if [[ -n "${GFX}" ]]; then 186 if [[ -n "${GFX}" ]]; then
187
178 # Install to the Displays directory of the Desklet 188 # Install to the Displays directory of the Desklet
179 insinto ${GDESKLETS_INST_DIR}/Displays/${DESKLET_NAME} 189 insinto ${GDESKLETS_INST_DIR}/Displays/${DESKLET_NAME}
180 doins ${GFX} 190 doins ${GFX}
191 debug-print "Installed ${GFX} into ${GDESKLETS_INST_DIR}/Displays/${DESKLET_NAME}"
192
181 fi # if -n "${GFX}" 193 fi # if -n "${GFX}"
182 194
183 # Install some docs if so requested 195 # Install some docs if so requested
184 [[ -n "${DOCS}" ]] && dodoc ${DOCS} 196 [[ -n "${DOCS}" ]] && dodoc ${DOCS}
185 197 debug-print "Installed ${DOCS}"
198
186} 199}
187 200
188 201
189EXPORT_FUNCTIONS src_install 202EXPORT_FUNCTIONS src_install

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.20