Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
dev:building_the_standalone_client [2011/04/17 21:08] – [Bash Scriptlet] rmzelledev:building_the_standalone_client [2011/04/17 21:15] rmzelle
Line 1: Line 1:
-====== Building the Standalone Client ====== +See [[dev/client coding/Building the Standalone Client]].
- +
-After initial inquiry in a Zotero [[http://forums.zotero.org/discussion/15700/how-to-migrate-from-firefox/|forum thread]], and some trial-and-error, I was able to build the Zotero Standalone client from source using the [[building_the_standalone_client#bash scriptlet|bash scriptlet]] shown below). The main things I needed to learn were: +
- +
-  - Location of the source: https://www.zotero.org/svn/standalone/trunk/ +
-  - Location of build script: the root directory of the source contains the ''build_sa'' bash script +
-  - Build prerequisites +
-    - Tools: ''subversion'', ''bash'' and ''perl'' +
-    - Non-source inputs: XULRunner. ''build_sa'' mentions a requirement for XULRunner runtime 2.0.*. However, Ubuntu does not package a 2.x XULRunner before [[https://wiki.ubuntu.com/NattyNarwhal|11.04]], which is currently pre-release. For now, Pre-release xulrunner-2.x runtimes can be obtained from http://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-trunk/. ''build_sa'' states implicitly that it requires separate runtimes for each target architecture, and expects to find each such runtime in a directory with a conventional name (see bash scriptlet below). +
-  - Build control: ''build_sa'' uses no config file, takes no arguments, and is non-interactive. ''build_sa'' will build one or more of the target OSs (''linux'', ''mac'' or ''win32''), but it decides which architectures are built for each. +
-  - Location of the build: ''${BUILD_PATH}/Zotero_${BUILD_ARCH}/zotero'' (found with ''ls -alt ${BUILD_PATH} $(find -executable -type f) | grep -ve '.so$'''). +
- +
-===== Bash Scriptlet ===== +
- +
-I automated a build on 64-bit Ubuntu with the following bash scriptlet: +
- +
-<code>START="$(date)" +
-# edit following vars as desired for your build +
-DOWNLOAD_ROOT="/tmp/xulrunner" +
-BUILD_ARCH="linux-x86_64" +
-BUILD_ROOT="${HOME}/bin/zotero/standalone" +
-BUILD_DIR="20101228" +
-BUILD_PATH="${BUILD_ROOT}/${BUILD_DIR}" +
-BUILD_SCRIPT="build_sa" +
-BUILD_SCRIPT_BAK="${BUILD_SCRIPT}.0" +
-XULR_SOURCE_ROOT="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-trunk" +
-XULR_TARGET_PATH="${BUILD_PATH}/xulrunner_${BUILD_ARCH}" +
-XULR_VERSION="2.0b9pre.en-US" +
-XULR_CHECKSUMS_NAME="xulrunner-${XULR_VERSION}.${BUILD_ARCH}.checksums" +
-XULR_CHECKSUMS_SOURCE="${XULR_SOURCE_ROOT}/${XULR_CHECKSUMS_NAME}" +
-XULR_CHECKSUMS_TARGET="${DOWNLOAD_ROOT}/${XULR_CHECKSUMS_NAME}" +
-XULR_ARCHIVE_NAME="xulrunner-${XULR_VERSION}.${BUILD_ARCH}.tar.bz2" +
-XULR_ARCHIVE_SOURCE="${XULR_SOURCE_ROOT}/${XULR_ARCHIVE_NAME}" +
-XULR_ARCHIVE_TARGET="${DOWNLOAD_ROOT}/${XULR_ARCHIVE_NAME}" +
-ZOTERO_SOURCE_ROOT="https://www.zotero.org/svn/standalone/trunk/" +
-ZOTERO_TARGET_EXEC="${BUILD_PATH}/Zotero_${BUILD_ARCH}/zotero" +
- +
-# setup xulrunner +
-# download xulrunner +
-mkdir -p ${DOWNLOAD_ROOT} +
-wget -O ${XULR_CHECKSUMS_TARGET} ${XULR_CHECKSUMS_SOURCE} +
-wget -O ${XULR_ARCHIVE_TARGET} ${XULR_ARCHIVE_SOURCE} +
-# verify xulrunner +
-pushd ${DOWNLOAD_ROOT} +
-# sha512sum -c < ${XULR_CHECKSUMS_TARGET} +
-# fails with +
-# > sha512sum: standard input: no properly formatted SHA512 checksum lines found +
-# I tried (offline) some other invocations, which similarly all failed +
-# $ sha512sum -c < /tmp/xulrunner/xulrunner-2.0b9pre.en-US.linux-x86_64.checksums  +
-# sha512sum: standard input: no properly formatted SHA512 checksum lines found +
-# $ pushd ${DOWNLOAD_ROOT} +
-# $ sha512sum -c < ${XULR_CHECKSUMS_NAME} +
-# sha512sum: standard input: no properly formatted SHA512 checksum lines found +
-# $ sha512sum -c < xulrunner-2.0b9pre.en-US.linux-x86_64.checksums  +
-# sha512sum: standard input: no properly formatted SHA512 checksum lines found +
-# $ sha512sum -c xulrunner-2.0b9pre.en-US.linux-x86_64.checksums  +
-# sha512sum: xulrunner-2.0b9pre.en-US.linux-x86_64.checksums: no properly formatted SHA512 checksum lines found +
-# unpack xulrunner +
-tar xjf ${XULR_ARCHIVE_NAME} +
-mkdir -p ${BUILD_PATH} +
-# ASSERT: archives expand to ./xulrunner +
-mv ./xulrunner ${XULR_TARGET_PATH} +
-popd +
- +
-# setup sources, including script +
-# checkout sources +
-pushd ${BUILD_ROOT} +
-svn co ${ZOTERO_SOURCE_ROOT} ${BUILD_DIR} +
-popd +
-pushd ${BUILD_PATH} +
-# backup unhacked build script +
-cp ${BUILD_SCRIPT} ${BUILD_SCRIPT_BAK} +
-chmod 444 ${BUILD_SCRIPT_BAK} +
-# hack build script to build only linux +
-chmod 755 ${BUILD_SCRIPT} +
-sed -si 's/BUILD_MAC=1/BUILD_MAC=0/g' ${BUILD_SCRIPT} +
-sed -si 's/BUILD_WIN32=1/BUILD_WIN32=0/g' ${BUILD_SCRIPT} +
-sed -si 's/BUILD_LINUX=0/BUILD_LINUX=1/g' ${BUILD_SCRIPT} +
-diff -u ${BUILD_SCRIPT_BAK} ${BUILD_SCRIPT} +
- +
-# CHECK: you should see stdout like +
-# --- build_sa.0  2010-12-28 16:45:21.000000000 -0500 +
-# +++ build_sa    2010-12-28 16:45:21.000000000 -0500 +
-# @@ -1,7 +1,7 @@ +
-#  #!/bin/bash +
-# -BUILD_MAC=1 +
-# +BUILD_MAC=0 +
-#  BUILD_WIN32=0 +
-# -BUILD_LINUX=0 +
-# +BUILD_LINUX=1 +
- +
-# build +
-BUILD_START="$(date)" +
-./${BUILD_SCRIPT} +
-echo -e "build   end=$(date)" +
-echo -e "build start=${BUILD_START}" +
- +
-# run the built sa +
-${ZOTERO_TARGET_EXEC} & +
-echo -e "  end=$(date)" +
-echo -e "start=${START}"</code> +
- +
-The (penultimate) build step produced the output +
- +
-<code>Getting latest Zotero revision +
-Got Zotero r7528 +
-Building translators.zip +
-Building styles.zip +
-Retrieving Zotero OpenOffice.org Integration +
-Building Zotero_linux-i686 +
-# several errors here, as I did not have the xulrunner for this arch +
-Building Zotero_linux-x86_64</code> +
- +
-The run step puts up a Zotero window similar to that normally seen in Firefox. When initially run separately from the terminal, it produced the output +
- +
-<code>$ ./Zotero_linux-x86_64/zotero & +
-ERROR: There is no such extension deployed: org.Zotero.integration.openoffice +
-unopkg failed.</code> +
- +
-but I have not observed that subsequently. +
- +
-Unfortunately I don't currently know how to test the build (much less on how to use it with Chrome) aside from the following smoketest: if I +
-  - Run the executable (e.g., ''${ZOTERO_TARGET_EXEC}'', ''./Zotero_linux-x86_64/zotero''). +
-  - Wait for the Zotero window, then select "Zotero Quick Start" in the center column. +
-  - Hit button=View in the right column. +
- +
-a browser launches and and opens the [[/support/quick_start_guide|quick start guide]]. That's comforting, but I'd prefer to know: +
- +
-  - Is there a more extensive test suite? E.g., what do the Zotero development team do pre-commit? +
-  - How to load up my own (backed up) Zotero data (from my Firefox profile, or wherever else it might be) and do actual work?+
dev/building_the_standalone_client.txt · Last modified: 2017/11/12 19:53 by 127.0.0.1