~ubuntu-branches/ubuntu/oneiric/enigmail/oneiric-updates

« back to all changes in this revision

Viewing changes to extensions/enigmail/build/install.js

  • Committer: Bazaar Package Importer
  • Author(s): Alexander Sack
  • Date: 2010-04-10 01:42:24 UTC
  • Revision ID: james.westby@ubuntu.com-20100410014224-fbq9ui5x3b0h2t36
Tags: 2:1.0.1-0ubuntu1
* First releaase of enigmail 1.0.1 for tbird/icedove 3
  (LP: #527138)
* redo packaging from scratch 
  + add debian/make-orig target that uses xulrunner provided
    buildsystem + enigmail tarball to produce a proper orig.tar.gz
  + use debhelper 7 with mozilla-devscripts
  + use debian source format 3.0 (quilt)
  + patch enigmail to use frozen API only
    - add debian/patches/frozen_api.diff
  + patch build system to not link against -lxul - which isnt
    available for sdks produced by all-static apps like tbird
    - add debian/patches/build_system_dont_link_libxul.diff
  + add minimal build-depends to control

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Install script for Enigmime
 
2
 
 
3
var err;
 
4
 
 
5
err = initInstall("Enigmime v1.0.1", // name for install UI
 
6
                  "/enigmime",         // registered name
 
7
                  "1.0.1");        // package version
 
8
 
 
9
logComment("initInstall: " + err);
 
10
 
 
11
var srDest = 500;       // Disk space required for installation (KB)
 
12
 
 
13
var fProgram    = getFolder("Program");
 
14
logComment("fProgram: " + fProgram);
 
15
 
 
16
if (!verifyDiskSpace(fProgram, srDest)) {
 
17
  cancelInstall(INSUFFICIENT_DISK_SPACE);
 
18
 
 
19
} else {
 
20
 
 
21
  var fComponents = getFolder("Components");
 
22
  var fChrome = getFolder("Chrome");
 
23
 
 
24
  // workaround for Mozilla 1.8a3 and newer, failing to register enigmime correctly
 
25
  
 
26
  var delComps = [ "compreg.dat" ]; // Components registry
 
27
 
 
28
  for (var j=0; j<delComps.length; j++) {
 
29
     var delFile = getFolder(fComponents, delComps[j]);
 
30
     if (File.exists(delFile))
 
31
        File.remove(delFile);
 
32
  }
 
33
 
 
34
  // addDirectory: blank, archive_dir, install_dir, install_subdir
 
35
  addDirectory("", "chrome", fChrome, "");
 
36
  addDirectory("", "components", fComponents, "");
 
37
 
 
38
  err = getLastError();
 
39
 
 
40
  if (err == ACCESS_DENIED) {
 
41
    alert("Unable to write to components directory "+fComponents+".\n You will need to restart the browser with administrator/root privileges to install this software. After installing as root (or administrator), you will need to restart the browser one more time to register the installed software.\n After the second restart, you can go back to running the browser without privileges!");
 
42
 
 
43
    cancelInstall(ACCESS_DENIED);
 
44
 
 
45
  } else if (err != SUCCESS) {
 
46
    cancelInstall(err);
 
47
 
 
48
  } else {
 
49
    // register Chrome
 
50
    registerChrome(PACKAGE | DELAYED_CHROME, getFolder("Chrome","enigmime.jar"), "content/enigmime/");
 
51
    performInstall();
 
52
  }
 
53
}
 
54
 
 
55
// this function verifies disk space in kilobytes
 
56
function verifyDiskSpace(dirPath, spaceRequired) {
 
57
  var spaceAvailable;
 
58
 
 
59
  // Get the available disk space on the given path
 
60
  spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
 
61
 
 
62
  // Convert the available disk space into kilobytes
 
63
  spaceAvailable = parseInt(spaceAvailable / 1024);
 
64
 
 
65
  // do the verification
 
66
  if(spaceAvailable < spaceRequired) {
 
67
    logComment("Insufficient disk space: " + dirPath);
 
68
    logComment("  required : " + spaceRequired + " K");
 
69
    logComment("  available: " + spaceAvailable + " K");
 
70
    return false;
 
71
  }
 
72
 
 
73
  return true;
 
74
}
 
75
 
 
76
// OS type detection
 
77
// which platform?
 
78
function getPlatform() {
 
79
  var platformStr;
 
80
  var platformNode;
 
81
 
 
82
  if('platform' in Install) {
 
83
    platformStr = new String(Install.platform);
 
84
 
 
85
    if (!platformStr.search(/^Macintosh/))
 
86
      platformNode = 'mac';
 
87
    else if (!platformStr.search(/^Win/))
 
88
      platformNode = 'win';
 
89
    else
 
90
      platformNode = 'unix';
 
91
  }
 
92
  else {
 
93
    var fOSMac  = getFolder("Mac System");
 
94
    var fOSWin  = getFolder("Win System");
 
95
 
 
96
    logComment("fOSMac: "  + fOSMac);
 
97
    logComment("fOSWin: "  + fOSWin);
 
98
 
 
99
    if(fOSMac != null)
 
100
      platformNode = 'mac';
 
101
    else if(fOSWin != null)
 
102
      platformNode = 'win';
 
103
    else
 
104
      platformNode = 'unix';
 
105
  }
 
106
 
 
107
  return platformNode;
 
108
}