diff options
-rw-r--r-- | pkg/launcher/.gitignore | 2 | ||||
-rw-r--r-- | pkg/launcher/Makefile | 15 | ||||
-rw-r--r-- | pkg/launcher/README.rst | 14 | ||||
-rw-r--r-- | pkg/launcher/bitmask-launcher.c | 23 | ||||
-rw-r--r-- | pkg/pyinst/Makefile | 3 |
5 files changed, 57 insertions, 0 deletions
diff --git a/pkg/launcher/.gitignore b/pkg/launcher/.gitignore new file mode 100644 index 00000000..60de46d7 --- /dev/null +++ b/pkg/launcher/.gitignore @@ -0,0 +1,2 @@ +*.o +bitmask diff --git a/pkg/launcher/Makefile b/pkg/launcher/Makefile new file mode 100644 index 00000000..8dd1013d --- /dev/null +++ b/pkg/launcher/Makefile @@ -0,0 +1,15 @@ +CC = gcc +CFLAGS = -g -Wall +STRIP = strip + +default: bitmask + +bitmask.o: bitmask-launcher.c + $(CC) $(CFLAGS) -c bitmask-launcher.c -o bitmask.o + +bitmask: bitmask.o + $(CC) bitmask.o -o bitmask + $(STRIP) bitmask +clean: + -rm -f bitmask.o + -rm -f bitmask diff --git a/pkg/launcher/README.rst b/pkg/launcher/README.rst new file mode 100644 index 00000000..9a840dec --- /dev/null +++ b/pkg/launcher/README.rst @@ -0,0 +1,14 @@ +bitmask-launcher.c +------------------ + +A small, portable launcher for bitmask bundles. + +Problem that solves +------------------- +PyInstaller bundles leave everything (libs, data and the main binary) in a +single folder. In a case like ours, there are too many files cluttering this +top-most folder. + +We wanted to have a cleaner folder, with an obviously clickable entrypoint, that +calls the binary that hides in an inferior folder. + diff --git a/pkg/launcher/bitmask-launcher.c b/pkg/launcher/bitmask-launcher.c new file mode 100644 index 00000000..cf5c2a18 --- /dev/null +++ b/pkg/launcher/bitmask-launcher.c @@ -0,0 +1,23 @@ +/* + * bitmask-launcher.c + * + * part of the bitmask bundle. + * execute main entrypoint in a child folder inside the bundle. + * + * (c) LEAP Encryption Access Project, 2016. + * License: GPL. + * +*/ + +#include <unistd.h> +#include <stdlib.h> + +char* const bitmask_path = "lib"; +char* const entrypoint = "bitmask"; + +int main(int argc, char *argv[]) +{ + argv[0] = entrypoint; + chdir(bitmask_path); + execv(entrypoint, argv); +} diff --git a/pkg/pyinst/Makefile b/pkg/pyinst/Makefile index 41599a47..e8d52f8c 100644 --- a/pkg/pyinst/Makefile +++ b/pkg/pyinst/Makefile @@ -4,6 +4,9 @@ build: clean cp ../../src/leap/bitmask/core/bitmaskd.tac dist/bitmask mkdir dist/bitmask/leap cp -r $(VIRTUAL_ENV)/lib/python2.7/site-packages/leap/bitmask_js/ dist/bitmask/leap + mv dist/bitmask lib && mkdir dist/bitmask && mv lib dist/bitmask/lib + cd ../launcher && make + cp ../launcher/bitmask dist/bitmask/ clean: rm -rf dist build |