~ubuntu-branches/ubuntu/natty/enigmail/natty-updates

« back to all changes in this revision

Viewing changes to extensions/enigmail/.#genxpi.1.33

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2012-08-20 17:18:02 UTC
  • mfrom: (0.13.4)
  • Revision ID: package-import@ubuntu.com-20120820171802-wy0l2jvokcfrdwc1
Tags: 2:1.4.4-0ubuntu0.11.04.1
* New upstream release v1.4.4 to support Thunderbird 15
  - LP: #1042165

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
 
3
 
# **** BEGIN LICENSE BLOCK *****
4
 
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
5
 
#
6
 
# The contents of this file are subject to the Mozilla Public
7
 
# License Version 1.1 (the "MPL"); you may not use this file
8
 
# except in compliance with the MPL. You may obtain a copy of
9
 
# the MPL at http://www.mozilla.org/MPL/
10
 
#
11
 
# Software distributed under the MPL is distributed on an "AS
12
 
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
13
 
# implied. See the MPL for the specific language governing
14
 
# rights and limitations under the MPL.
15
 
#
16
 
# The Original Code is Enigmail.
17
 
#
18
 
# The Initial Developer of the Original Code is Patrick Brunschwig.
19
 
# Portions created by Patrick Brunschwig <patrick@mozilla-enigmail.org> are
20
 
# Copyright (C) 2004 Patrick Brunschwig. All Rights Reserved.
21
 
#
22
 
# Contributor(s):
23
 
#
24
 
# Alternatively, the contents of this file may be used under the terms of
25
 
# either the GNU General Public License Version 2 or later (the "GPL"), or
26
 
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27
 
# in which case the provisions of the GPL or the LGPL are applicable instead
28
 
# of those above. If you wish to allow use of your version of this file only
29
 
# under the terms of either the GPL or the LGPL, and not to allow others to
30
 
# use your version of this file under the terms of the MPL, indicate your
31
 
# decision by deleting the provisions above and replace them with the notice
32
 
# and other provisions required by the GPL or the LGPL. If you do not delete
33
 
# the provisions above, a recipient may use your version of this file under
34
 
# the terms of any one of the MPL, the GPL or the LGPL.
35
 
# ***** END LICENSE BLOCK *****
36
 
 
37
 
#
38
 
# This script generates the Enigmail XPI
39
 
#
40
 
 
41
 
echo "genxpi: Generating $1 in $6"
42
 
 
43
 
if [ $# -lt 9 ]; then
44
 
  echo "Wrong number of parameters"
45
 
  exit 1
46
 
fi
47
 
 
48
 
xpiFile=$1
49
 
xpiVersion="$2"
50
 
osArch=$3
51
 
xpcomAbi=$4
52
 
mozApp=$5
53
 
srcDir=$7
54
 
xpiModule=$8
55
 
dllSuffix=$9
56
 
libPrefix=${10}
57
 
cwd=`pwd`
58
 
cd "$6"
59
 
targetDir=`pwd`
60
 
cd "$cwd"
61
 
 
62
 
if [ "$xpcomAbi" = "" ] ; then
63
 
  xpcomAbi="unknown"
64
 
fi
65
 
platform=${osArch}_${xpcomAbi}
66
 
# Pepare install.rdf
67
 
sed 's/<!-- targetPlatform placeholder -->/<em:targetPlatform>'${platform}'<\/em:targetPlatform>/' < ${srcDir}/package/install.rdf > ${targetDir}/install.rdf.t1
68
 
 
69
 
 
70
 
enigmimeDll=${libPrefix}enigmime${dllSuffix}
71
 
ipcDll=${libPrefix}ipc${dllSuffix}
72
 
if [ ${platform} = OS2_x86-gcc3 ]; then
73
 
  # workaround for file name length limit on OS/2
74
 
  enigDllFile=platform/${platform}/components/${enigmimeDll}
75
 
  ipcDllFile=platform/${platform}/components/${ipcDll}
76
 
else
77
 
  enigDllFile=platform/${platform}/components/${libPrefix}enigmime-${xpcomAbi}${dllSuffix}
78
 
  ipcDllFile=platform/${platform}/components/${libPrefix}ipc-${xpcomAbi}${dllSuffix}
79
 
fi
80
 
 
81
 
# Prepare chrome.manifest
82
 
cat  ${srcDir}/package/chrome.manifest | \
83
 
sed  's/##ENIGMIMEDLL-PLACEHOLDER##/binary-component platform\/'${platform}'\/components\/'`basename ${enigDllFile}`' ABI='${platform}'/' | \
84
 
sed  's/##IPCDLL-PLACEHOLDER##/binary-component platform\/'${platform}'\/components\/'`basename ${ipcDllFile}`' ABI='${platform}'/' \
85
 
> ${targetDir}/chrome.manifest
86
 
 
87
 
# Prepare languages other than en-US
88
 
 
89
 
if [ -s ${srcDir}/lang/current-languages.txt ]; then
90
 
  localeJar=chrome/${xpiModule}.jar
91
 
 
92
 
  echo '' >> ${targetDir}/chrome.manifest
93
 
  echo '# Additional languages' >> ${targetDir}/chrome.manifest
94
 
 
95
 
  echo '      <Description about="urn:mozilla:extension:file:enigmail.jar">' > ${targetDir}/install.rdf.t2
96
 
 
97
 
  for lang in `cat ${srcDir}/lang/current-languages.txt`; do
98
 
    echo '        <em:locale>locale/'$lang'/enigmail/</em:locale>' >> ${targetDir}/install.rdf.t2
99
 
    echo 'locale        enigmail    '$lang'       jar:chrome/enigmail.jar!/locale/'$lang'/enigmail/' >> ${targetDir}/chrome.manifest
100
 
  done
101
 
  echo '      </Description>' >> ${targetDir}/install.rdf.t2
102
 
 
103
 
  awk -v langFile=${targetDir}/install.rdf.t2 '
104
 
    BEGIN {
105
 
      lines=0
106
 
      while (getline < langFile) {
107
 
        lineTxt[++lines] = $0
108
 
      }
109
 
    }
110
 
    /<!-- localeFile placeholder -->/ {
111
 
      for (i=0; i<lines; i++) {
112
 
        print lineTxt[i+1]
113
 
      }
114
 
      next;
115
 
    }
116
 
    {
117
 
      print $0
118
 
    }' ${targetDir}/install.rdf.t1 >${targetDir}/install.rdf
119
 
    rm ${targetDir}/install.rdf.t1 ${targetDir}/install.rdf.t2
120
 
else
121
 
  localeJar=""
122
 
  mv ${targetDir}/install.rdf.t1 ${targetDir}/install.rdf
123
 
fi
124
 
 
125
 
 
126
 
mkdir -p "${targetDir}/wrappers"
127
 
cat << EOT > "${targetDir}/wrappers/gpg-wrapper.sh"
128
 
#!/bin/sh
129
 
 
130
 
GPG="\$1"
131
 
shift
132
 
 
133
 
\$GPG "\$@"
134
 
exitCode=\$?
135
 
 
136
 
sleep 1
137
 
exit \$exitCode
138
 
EOT
139
 
 
140
 
cat << EOT > "${targetDir}/wrappers/gpg-agent-wrapper.sh"
141
 
#!/bin/sh
142
 
 
143
 
action=\$1
144
 
shift
145
 
 
146
 
if [ \$action = "start" ]; then
147
 
  GPGAGENT="\$1"
148
 
  shift
149
 
  exec "\$GPGAGENT" "\$@"
150
 
fi
151
 
 
152
 
if [ \$action = "stop" ]; then
153
 
  kill \$1
154
 
fi
155
 
EOT
156
 
 
157
 
chmod 755 "${targetDir}/wrappers/gpg-agent-wrapper.sh"
158
 
cd ${srcDir}/package
159
 
 
160
 
 
161
 
cd "$targetDir"
162
 
 
163
 
 
164
 
mkdir -p platform/${platform}/components
165
 
cp components/${enigmimeDll} ${enigDllFile}
166
 
cp components/${ipcDll} ${ipcDllFile}
167
 
 
168
 
if [ -d chrome/enigmail ]; then
169
 
  cd chrome/enigmail
170
 
  zip -rD ../${xpiModule}.jar *
171
 
  cd ../..
172
 
fi
173
 
 
174
 
zip ${xpiFile} \
175
 
    components/${xpiModule}.xpt \
176
 
    components/${xpiModule}.js \
177
 
    components/enigprefs-service.js \
178
 
    components/enigMsgCompFields.js \
179
 
    defaults/preferences/enigmail.js \
180
 
    defaults/pref/enigmail.js \
181
 
    modules/enigmailCommon.jsm \
182
 
    modules/commonFuncs.jsm \
183
 
    modules/subprocess.jsm \
184
 
    chrome/${xpiModule}.jar \
185
 
    wrappers/gpg-wrapper.sh \
186
 
    wrappers/gpg-agent-wrapper.sh \
187
 
    ${localeJar} \
188
 
    components/ipc.xpt \
189
 
    components/enigmime.xpt \
190
 
    ${enigDllFile} \
191
 
    ${ipcDllFile} \
192
 
    chrome.manifest \
193
 
    install.rdf
194
 
 
195
 
rm install.rdf chrome.manifest