-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL
99 lines (79 loc) · 3.11 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Besides interpreted Javascript code this Chrome extension uses
a native client app that includes the exiv2 C++ library. Since
the extension cannot access the library directly, an app works
as a wrapper. To use the extension, you have to build the app and
place the executables in bin/ before deploying the extension.
Details see below.
You may use the binary files included in this repository.
They were built using pepper_33. If you do not want to build
newer binaries, just do step 0 and 9.
== Build on Linux & Install everywhere --- as it worked in February 2014 ==
verified on OS X 10.7 in June 2014
0. You already got the Chrome extension from github
- cd <anywhere>
- git clone https://github.com/bhenne/ChromeExtension-PhotoMetadataPrivacy.git
- export PATH_TO_THIS_INSTALL_FILE=`pwd`/ChromeExtension-PhotoMetadataPrivacy
1. Base directory
- export MYBASE=/tmp
- mkdir $MYBASE/dev
2. Obtain Native Client SDK
(see https://developers.google.com/native-client/dev/sdk/download)
- cd $MYBASE/dev
- wget http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip
- unzip nacl_sdk.zip
- cd nacl_sdk
- ./naclsdk update
3. Obtain depot_tools
(see http://www.chromium.org/developers/how-tos/install-depot-tools)
- cd $MYBASE/dev
- git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
- export PATH=$PATH:`pwd`/depot_tools
4. Obtain naclports
(see https://code.google.com/p/naclports/)
- cd $MYBASE/dev
- mkdir naclports
- cd naclports
- gclient config --name=src https://chromium.googlesource.com/external/naclports.git
- gclient sync
5. Include exiv2 in naclports
- cd $MYBASE/dev
- git clone https://github.com/bhenne/naclports-exiv2.git
- cd naclports-exiv2
- cp -r ports/exiv2 $MYBASE/dev/naclports/src/ports/
6. Build exiv2 and dependencies
- cd $MYBASE/dev/naclports/src
- export NACL_SDK_ROOT=$MYBASE/dev/nacl_sdk/pepper_35
- unset NACL_GLIBC
- export NACL_ARCH=i686
- make exiv2
- export NACL_ARCH=x86_64
- make exiv2
7. Build exiv2 wrapper
- cd $PATH_TO_THIS_INSTALL_FILE
- export NACL_SDK_ROOT=$MYBASE/dev/nacl_sdk/pepper_35
- export NACL_ARCH=x86_32
- CONFIG=Release make
- export NACL_ARCH=x86_64
- CONFIG=Release make
8. Install exiv2 wrapper
- cp newlib/Release/photo_metadata_privacy_x86_32.nexe $PATH_TO_THIS_INSTALL_FILE/bin/
- cp newlib/Release/photo_metadata_privacy_x86_64.nexe $PATH_TO_THIS_INSTALL_FILE/bin/
- rm -fr newlib/
9. Install Chrome extension from filesystem
- open chrome://extensions/
- enable "Developer mode"
- "load unpacked extension..."
- select the directory located at $PATH_TO_THIS_INSTALL_FILE
- press select
Have a try.
== Error handling ==
Error:
$ make exiv2
build_tools/naclports.py install exiv2
naclports: $NACL_SDK_ROOT does not exist: /Users/henne/dev/nacl_sdk/pepper_33
make: *** [exiv2] Error 1
A newer version of pepper is available as you may have noticed when running:
$ ./naclsdk update
Downloading bundle pepper_35
Just do a correct SDK path declaration
export NACL_SDK_ROOT=$MYBASE/dev/nacl_sdk/pepper_35