Scripts and utilities for bundling the Juris-M core into a standalone client installer for Mac, Windows and Linux.
The instructions here are currently limited to the building of the client. Packaging (i.e. signing the client for distribution) and distribution (i.e. generating and deploying delta images for over-the-wire updates) are not yet covered.
(Before working with the scripts here, be sure to visit the core Juris-M repository and the Juris-M fork of zotero-build and perform the build steps documented there.)
These files are used to bundle the Zotero core into distributable bundles for Mac, Windows, and Linux.
Instructions for building and packaging are available on the Zotero wiki.
The instructions and tools provided here are derived from the original Zotero Standalone build tools repository. The Juris-M build process currently stops short of full proper packaging and distribution. This is not ideal, but the initial aim is to adapt and document the basic build process, and the instructions below are limited to that aim.
The build steps in this Juris-M fork differ somewhat from its Zotero parent. Specifically:
- The
check_requirements
script has been split into three separate scripts, with extensions_build
,_packaging
, and_release
. The simplified build instructions here should work if only the_build
requirements are satisfied. - The
build.sh
script has been modified to sniff the client version from the build Juris-M source, and the target platform from the environment.
Enter the directory where your Juris-M development repositories are located, and clone this into it, using commands like the following:
prompt> cd jurism-repos
prompt> git clone --recursive https://github.com/Juris-M/zotero-standalone-build.git
If you forget to include the --recursive
option when cloning, pull in the submodules by entering the repository directory and issuing commands like the following:
prompt> cd zotero-standalone-build
prompt> git submodule init
prompt> git submodule update --remote
Enter this directory and run check_requirements_build
to check that the tools needed for the build process are available:
prompt> cd zotero-standalone-build
prompt> ./scripts/check_requirements_build
If anything turns up missing, install as necessary.
Grab the runtime code, specifying the target platform with the -p
option (m=
Mac, l=
Linux, w=
Windows; for Mac builds, this must be done from Mac OS):
prompt> ./fetch_xulrunner.sh -p l
For Linux, this will fetch two binaries, one each for 32-bit and one for 64-bit builds.
Grab the PDF tools. This bundle was fetched once already when testing the Juris-M core, but the bundle is external to Juris-M (and Zotero), and must be fetched separately for the runtime build.
prompt> ./fetch_pdftools
To check that the client works correctly when assembled, the following command will place the unpackaged runtime code under the ./staging
directory:
prompt> ./scripts/dir_build
Building in this way is quick, which is nice for trialing features or checking for bugs after changes to Juris-M core. The fully functional client can then be run by entering its directory and running the jurism
command. For example:
prompt> cd ./staging/Jurism_linux-x86_64
prompt> ./jurism
The client is built by running the ./build.sh
script in the root directory of the repository:
prompt> ./build.sh
The script should complete without error, and leave a copy (or in the case of Linux, two copies) of the installer in the ./dist
directory. If the script complains that the platform must be specified, it can be forced with the -p
option:
prompt> ./build.sh -p l
To more quickly build only an unpacked copy of the runtime in the ./staging
directory, use the -s
option:
prompt> ./build.sh -s
These items are left as an exercise for the reader (and the writer).