README.md
changeset 37 fd09116d3537
child 80 1088ce57d3c9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md	Sat Sep 04 01:35:11 2021 +0200
@@ -0,0 +1,98 @@
+# Beremiz public distribution #
+
+This repository holds recipes and patches to build the Beremiz related 
+bundles, packages, installers and images available on 
+[Beremiz website](http://www.beremiz.org/).
+
+Patches have same license as projects beeing patched. For other files,
+unless made explicit in file header, GPLv3 applies.
+
+
+## Prerequisites ##
+
+A usable Docker is required. Docker is used to ensure a reproducible build
+environment. 
+
+Other containerization/virtualization could be used to achieve the same effect. 
+
+Reference build environment is obtained by applying [provision_focal64.sh](provision_focal64.sh) on Ubuntu 20.04 amd64.
+
+## Build ##
+
+The top Makefile expects source code of Beremiz, Matiec and CanFestival to be 
+sibling to beremiz_public_dist directory, in the 'source directory'.
+For example :
+
+```
+~/src
+     /beremiz
+     /beremiz_public_dist
+     /CanFestival-3
+     /matiec
+```
+
+If any of Beremiz, Matiec or CanFestival repositories are missing, they will be
+cloned aside beremiz_public_dist from https://hg.beremiz.org .
+
+Intermediate and final results are all placed in a single 'build directory'
+during build process.
+
+### Prepare Docker image ###
+
+The script [rebuild_docker.sh](rebuild_docker.sh) is used for that purpose.
+
+Synopsis:
+
+    ./rebuild_docker.sh [build directory]
+
+Example:
+
+```
+#!sh
+mkdir ~/src
+cd ~/src
+hg clone https://hg.beremiz.org/beremiz_public_dist
+cd beremiz_public_dist
+./rebuild_docker.sh
+```
+
+Source and Build Volumes :
+ 
+ Role             | Docker Volume     | Host path in example | Rationale
+------------------|-------------------|----------------------|------------------------------------------------
+ source directory | /home/devel/src   | ~/src                | Always relative to CWD : "../"
+ build directory  | /home/devel/build | ~/build              | First argument to rebuild_docker.sh or ~/build
+
+'build directory' can be specified as absolute path argument of rebuild_docker.sh.
+If not specified it defaults to ~/build
+
+```
+#!sh
+./rebuild_docker.sh ~/build_next
+```
+
+Note: 'build directory' is created if not already existing.
+
+### Build Windows Installer ###
+
+The script [build_in_docker.sh](build_in_docker.sh) is used for that purpose.
+
+```
+#!sh
+./build_in_docker.sh 
+```
+
+Note: 'build directory' must exist before calling build_in_docker.sh, otherwise
+Docker will create it as root user. Be sure to create it again if you delete it.
+
+Resulting installer is Beremiz-1.2.exe in 'build directory'. 
+
+## Manhole ##
+
+Once Docker image ready, the scripts [enter_docker.sh](enter_docker.sh) and
+[enter_docker_as_root.sh](enter_docker_as_root.sh) let you issue build 
+commands, or install additional packages.
+
+[clean_docker_container.sh](clean_docker_container.sh) and [create_docker_container.sh](create_docker_container.sh) and 
+[clean_docker_image.sh](clean_docker_image.sh) and [build_docker_image.sh](build_docker_image.sh) are invoked by 
+[rebuild_docker.sh](rebuild_docker.sh).