1# *************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20# *************************************************************
21# version and release passed by command-line
22Version: %version
23Release: %release
24Summary: %productname desktop integration
25Name: %pkgprefix-freedesktop-menus
26#BuildRequires: sed
27#BuildRequires: perl
28Group: Office
29License: ALv2
30Provides: openoffice-desktop-integration
31Conflicts: %pkgprefix-suse-menus
32Conflicts: %pkgprefix-debian-menus
33Conflicts: %pkgprefix-redhat-menus
34Conflicts: %pkgprefix-mandriva-menus
35BuildArch: noarch
36AutoReqProv: no
37%define _binary_filedigest_algorithm 1
38%define _binary_payload w9.gzdio
39
40%description
41%productname desktop integration for desktop-environments that implement
42the menu- and mime-related specifications from http://www.freedesktop.org
43Install this package if you're using a distribution not covered by any of
44the other %pkgprefix-<distribution>-menus packages.
45
46%install
47rm -rf $RPM_BUILD_ROOT
48
49# hack/workaround to make SuSE's brp-symlink-script happy. It wants the targets of all links
50# to be present on the build-system/the buildroot. But the point is that we generate stale
51# links intentionally (until we find a better solution) #46226
52export NO_BRP_STALE_LINK_ERROR=yes
53
54mkdir -p $RPM_BUILD_ROOT
55
56# FIXME: remove - only purpose is to create packages identical to OOF680 m8
57umask 0000
58
59# set parameters for the create_tree script
60export DESTDIR=$RPM_BUILD_ROOT
61export KDEMAINDIR=/usr
62export GNOMEDIR=/usr
63export GNOME_MIME_THEME=hicolor
64
65./create_tree.sh
66
67cd $RPM_BUILD_ROOT
68
69# freedesktop-based desktop-environments don't need/use this.
70rm -rf usr/share/application-registry
71rm -rf usr/share/applications.flag
72rm -rf usr/share/mime-info
73rm -rf usr/share/mimelnk
74rm -rf usr/share/applnk-redhat
75#find usr/share/icons -name '*.png' -exec chmod g+w {} \;
76
77%clean
78rm -rf $RPM_BUILD_ROOT
79
80%triggerin -- %pkgprefix, %pkgprefix-writer, %pkgprefix-calc, %pkgprefix-draw, %pkgprefix-impress, %pkgprefix-math
81# this is run when one of the above packages is already installed and the menu
82# package gets installed OR when the menu-package is already installed and one
83# of the above listed packages gets installed
84
85# Dut to a bug in rpm it is not possible to check why the script is triggered...
86# This is how it should be: 1st arg: number of this package, 2nd arg: number of
87# package that triggers - the bug is that rpm reports the same number for both
88# (the value of the 2nd one), so just run this always...
89# http://rhn.redhat.com/errata/RHBA-2004-098.html
90# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100509
91
92if [ -x /opt/gnome/bin/update-desktop-database ]; then
93    /opt/gnome/bin/update-desktop-database -q
94elif (which update-desktop-database); then
95  update-desktop-database -q /usr/share/applications
96fi
97
98%triggerun -- %pkgprefix, %pkgprefix-writer, %pkgprefix-calc, %pkgprefix-draw, %pkgprefix-impress, %pkgprefix-math
99if [ "$1" = "0" ] ; then
100  # the menu-package gets uninstalled/updated - postun will run the command
101  exit 0
102fi
103if [ "$2" = "0" ] ; then
104  # the triggering package gets removed
105  if [ -x /opt/gnome/bin/update-desktop-database ]; then
106      /opt/gnome/bin/update-desktop-database -q
107  elif (which update-desktop-database); then
108    update-desktop-database -q /usr/share/applications
109  fi
110fi
111
112%post
113# no need to run it when updating, since %postun of the old package is run
114# afterwards
115
116if [ "$1" = "1" ] ; then  # first install
117  if [ -x /opt/gnome/bin/update-desktop-database ]; then
118    /opt/gnome/bin/update-desktop-database -q
119  elif (which update-desktop-database); then
120    update-desktop-database -q /usr/share/applications
121  fi
122
123  if (which update-mime-database); then
124    update-mime-database /usr/share/mime
125  fi
126fi
127
128
129#run always
130for theme in gnome hicolor locolor; do
131    if [ -e /usr/share/icons/$theme/icon-theme.cache ] ; then
132        # touch it, just in case we cannot find the binary...
133        touch /usr/share/icons/$theme
134        if [ -x /opt/gnome/bin/gtk-update-icon-cache ]; then
135            /opt/gnome/bin/gtk-update-icon-cache -q /usr/share/icons/$theme
136        elif (which gtk-update-icon-cache); then
137            gtk-update-icon-cache -q /usr/share/icons/$theme
138        fi
139        # ignore errors (e.g. when there is a cache, but no index.theme)
140        true
141    fi
142done
143
144
145# update /etc/mime.types
146# backing out existing entries to avoid duplicates
147sed '
148/application\/vnd\.oasis\.opendocument/d
149/application\/vnd\.sun/d
150/application\/vnd\.stardivision/d
151/application\/vnd\.openofficeorg/d
152' /etc/mime.types 2>/dev/null >> /etc/mime.types.tmp$$
153
154# now append our stuff to the temporary file
155cat >> /etc/mime.types.tmp$$ << END
156application/vnd.oasis.opendocument.text	odt
157application/vnd.oasis.opendocument.text-template ott
158application/vnd.oasis.opendocument.text-web oth
159application/vnd.oasis.opendocument.text-master odm
160application/vnd.oasis.opendocument.graphics odg
161application/vnd.oasis.opendocument.graphics-template otg
162application/vnd.oasis.opendocument.presentation odp
163application/vnd.oasis.opendocument.presentation-template otp
164application/vnd.oasis.opendocument.spreadsheet ods
165application/vnd.oasis.opendocument.spreadsheet-template ots
166application/vnd.oasis.opendocument.chart odc
167application/vnd.oasis.opendocument.formula odf
168application/vnd.oasis.opendocument.image odi
169application/vnd.sun.xml.writer sxw
170application/vnd.sun.xml.writer.template stw
171application/vnd.sun.xml.writer.global sxg
172application/vnd.stardivision.writer sdw vor
173application/vnd.stardivision.writer-global sgl
174application/vnd.sun.xml.calc sxc
175application/vnd.sun.xml.calc.template stc
176application/vnd.stardivision.calc sdc
177application/vnd.stardivision.chart sds
178application/vnd.sun.xml.impress sxi
179application/vnd.sun.xml.impress.template sti
180application/vnd.stardivision.impress sdd sdp
181application/vnd.sun.xml.draw sxd
182application/vnd.sun.xml.draw.template std
183application/vnd.stardivision.draw sda
184application/vnd.sun.xml.math sxm
185application/vnd.sun.xml.base odb
186application/vnd.stardivision.math smf
187application/vnd.openofficeorg.extension oxt
188application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
189application/vnd.ms-word.document.macroenabled.12 docm
190application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
191application/vnd.ms-word.template.macroenabled.12 dotm
192application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
193application/vnd.ms-excel.sheet.macroenabled.12 xlsm
194application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
195application/vnd.ms-excel.template.macroenabled.12 xltm
196application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
197application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm
198application/vnd.openxmlformats-officedocument.presentationml.template potx
199application/vnd.ms-powerpoint.template.macroenabled.12 potm
200END
201
202# and replace the original file
203mv -f /etc/mime.types.tmp$$ /etc/mime.types 2>/dev/null
204
205# update /etc/mailcap only at initial install
206if [ "$1" = 1 ]
207then
208  # backing out existing entries to avoid duplicates
209  sed '
210/^# OpenOffice.org/d
211/^application\/vnd\.oasis\.opendocument/d
212/^application\/vnd\.openofficeorg/d
213/^application\/vnd\.sun/d
214/^application\/vnd\.stardivision/d
215/^application\/vnd\.ms-word/d
216/^application\/vnd\.ms-excel/d
217/^application\/vnd\.ms-powerpoint/d
218/^application\/x-star/d
219/excel/d
220/ms[-]*word/d
221/powerpoint/d
222' /etc/mailcap 2>/dev/null >> /etc/mailcap.tmp$$
223
224  # now append our stuff to the temporary file
225  cat >> /etc/mailcap.tmp$$ << END
226# Apache OpenOffice
227application/vnd.oasis.opendocument.text; %unixfilename -view %s
228application/vnd.oasis.opendocument.text-template; %unixfilename -view %s
229application/vnd.oasis.opendocument.text-web; %unixfilename -view %s
230application/vnd.oasis.opendocument.text-master; %unixfilename -view %s
231application/vnd.sun.xml.writer; %unixfilename -view %s
232application/vnd.sun.xml.writer.template; %unixfilename -view %s
233application/vnd.sun.xml.writer.global; %unixfilename -view %s
234application/vnd.stardivision.writer; %unixfilename -view %s
235application/vnd.stardivision.writer-global; %unixfilename -view %s
236application/x-starwriter; %unixfilename -view %s
237application/vnd.oasis.opendocument.formula; %unixfilename -view %s
238application/vnd.sun.xml.math; %unixfilename -view %s
239application/vnd.stardivision.math; %unixfilename -view %s
240application/x-starmath; %unixfilename -view %s
241application/msword; %unixfilename -view %s
242application/vnd.oasis.opendocument.spreadsheet; %unixfilename -view %s
243application/vnd.oasis.opendocument.spreadsheet-template; %unixfilename -view %s
244application/vnd.sun.xml.calc; %unixfilename -view %s
245application/vnd.sun.xml.calc.template; %unixfilename -view %s
246application/vnd.stardivision.calc; %unixfilename -view %s
247application/x-starcalc; %unixfilename -view %s
248application/vnd.stardivision.chart; %unixfilename -view %s
249application/x-starchart; %unixfilename -view %s
250application/excel; %unixfilename -view %s
251application/msexcel; %unixfilename -view %s
252application/vnd.ms-excel; %unixfilename -view %s
253application/x-msexcel; %unixfilename -view %s
254application/vnd.oasis.opendocument.presentation; %unixfilename -view %s
255application/vnd.oasis.opendocument.presentation-template; %unixfilename -view %s
256application/vnd.sun.xml.impress; %unixfilename -view %s
257application/vnd.sun.xml.impress.template; %unixfilename -view %s
258application/vnd.stardivision.impress; %unixfilename -view %s
259application/x-starimpress; %unixfilename -view %s
260application/powerpoint; %unixfilename -view %s
261application/mspowerpoint; %unixfilename -view %s
262application/vnd.ms-powerpoint; %unixfilename -view %s
263application/x-mspowerpoint; %unixfilename -view %s
264application/vnd.oasis.opendocument.graphics; %unixfilename -view %s
265application/vnd.oasis.opendocument.graphics-template; %unixfilename -view %s
266application/vnd.sun.xml.draw; %unixfilename -view %s
267application/vnd.sun.xml.draw.template; %unixfilename -view %s
268application/vnd.stardivision.draw; %unixfilename -view %s
269application/x-stardraw; %unixfilename -view %s
270application/vnd.oasis.opendocument.database; %unixfilename -view %s
271application/vnd.sun.xml.base; %unixfilename -view %s
272application/vnd.openofficeorg.extension; %unixfilename %s
273application/vnd.openxmlformats-officedocument.wordprocessingml.document; %unixfilename -view %s
274application/vnd.ms-word.document.macroenabled.12;%unixfilename -view %s
275application/vnd.openxmlformats-officedocument.wordprocessingml.template; %unixfilename -view %s
276application/vnd.ms-word.template.macroenabled.12; %unixfilename -view %s
277application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; %unixfilename -view %s
278application/vnd.ms-excel.sheet.macroenabled.12; %unixfilename -view %s
279application/vnd.openxmlformats-officedocument.spreadsheetml.template; %unixfilename -view %s
280application/vnd.ms-excel.template.macroenabled.12; %unixfilename -view %s
281application/vnd.openxmlformats-officedocument.presentationml.presentation; %unixfilename -view %s
282application/vnd.ms-powerpoint.presentation.macroenabled.12; %unixfilename -view %s
283application/vnd.openxmlformats-officedocument.presentationml.template; %unixfilename -view %s
284application/vnd.ms-powerpoint.template.macroenabled.12; %unixfilename -view %s
285END
286
287  # and replace the original file
288  mv -f /etc/mailcap.tmp$$ /etc/mailcap
289fi
290
291if [ -x /opt/gnome/bin/update-desktop-database ]; then
292    /opt/gnome/bin/update-desktop-database -q
293elif (which update-desktop-database); then
294  update-desktop-database -q /usr/share/applications
295fi
296
297%preun
298# remove from /etc/mailcap only on de-install
299if [ "$1" = 0 ]
300then
301  # backing all entries pointing to our binary
302  sed '/%unixfilename/d' /etc/mailcap 2>/dev/null >> /etc/mailcap.tmp$$
303
304  # and replace the original file
305  mv -f /etc/mailcap.tmp$$ /etc/mailcap
306fi
307
308%postun
309if [ "$1" = 0 ] ; then # only run when erasing the package - other cases handled by the triggers
310  if [ -x /opt/gnome/bin/update-desktop-database ]; then
311    /opt/gnome/bin/update-desktop-database -q
312  elif (which update-desktop-database); then
313    update-desktop-database -q
314  fi
315# run always - both when upgrading as well as when erasing the package
316  if (which update-mime-database); then
317    update-mime-database /usr/share/mime
318  fi
319fi
320
321#run always
322for theme in gnome hicolor locolor; do
323  if [ -e /usr/share/icons/$theme/icon-theme.cache ] ; then
324   # touch it, just in case we cannot find the binary...
325    touch /usr/share/icons/$theme
326    if [ -x /opt/gnome/bin/gtk-update-icon-cache ]; then
327      /opt/gnome/bin/gtk-update-icon-cache -q /usr/share/icons/$theme
328    elif (which gtk-update-icon-cache); then
329      gtk-update-icon-cache -q /usr/share/icons/$theme
330    fi
331    # ignore errors (e.g. when there is a cache, but no index.theme)
332    true
333  fi
334done
335
336%files
337# specify stale symlinks verbatim, not as glob - a change in recent versions of
338# glibc breaks rpm unless rpm is build with internal glob-matching (issue 49374)
339# https://bugzilla.redhat.com/beta/show_bug.cgi?id=134362
340%defattr(-, root, root)
341%attr(0755, root, root) /usr/bin/*
342/usr/share/applications/%unixfilename-base.desktop
343/usr/share/applications/%unixfilename-calc.desktop
344/usr/share/applications/%unixfilename-draw.desktop
345/usr/share/applications/%unixfilename-impress.desktop
346/usr/share/applications/%unixfilename-math.desktop
347/usr/share/applications/%unixfilename-printeradmin.desktop
348/usr/share/applications/%unixfilename-writer.desktop
349/usr/share/applications/%unixfilename-startcenter.desktop
350/usr/share/applications/%unixfilename-javafilter.desktop
351/usr/share/icons/gnome/*/apps/*png
352/usr/share/icons/gnome/*/mimetypes/*png
353/usr/share/icons/hicolor/*/apps/*png
354/usr/share/icons/hicolor/*/mimetypes/*png
355/usr/share/icons/locolor/*/apps/*png
356/usr/share/icons/locolor/*/mimetypes/*png
357/usr/share/mime/packages/*
358