author | Edouard Tisserant <edouard.tisserant@gmail.com> |
Mon, 13 Feb 2023 22:12:51 +0100 | |
changeset 117 | 3992523a7e6e |
parent 103 | 072fcebf8bf0 |
child 120 | 02e37d9e96a9 |
permissions | -rw-r--r-- |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
1 |
# Beremiz public distribution # |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
2 |
|
103
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
3 |
This repository holds recipes and patches to build the Beremiz |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
4 |
packages and installers for [Beremiz website](http://beremiz.org/). |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
5 |
|
103
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
6 |
Patches have same license as projects being patched. For other files, |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
7 |
unless made explicit in file header, GPLv3 applies. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
8 |
|
103
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
9 |
## Use cases ## |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
10 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
11 |
Beremiz development uses Mercurial, but git repositories that are kept in sync. |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
12 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
13 |
Build from both Mercurial and Git repositories is supported. |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
14 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
15 |
### GitHub CI ## |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
16 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
17 |
Use code from https://github.com/beremiz repositories. |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
18 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
19 |
Workflows described in .github/workflows are meant to run on a GitHub runner. Please refer to GitHub documentation to run workflows on your own fork. |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
20 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
21 |
Dockerfile and part of Makefiles are used for windows installer build, but for Snap build, only snapcraft.yaml is used. |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
22 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
23 |
### Manual build ### |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
24 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
25 |
Use code from your local Mercurial repositories, cloned from https://hg.beremiz.org |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
26 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
27 |
Uses Makefiles and Dockerfile to build windows installer and Makefile+snapcraft.yaml for Snap package. |
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
28 |
|
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
29 |
Hereafter is documented how to use Makefile and Docker in case of Manual Build |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
30 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
31 |
## Prerequisites ## |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
32 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
33 |
A usable Docker is required. Docker is used to ensure a reproducible build |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
34 |
environment. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
35 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
36 |
Other containerization/virtualization could be used to achieve the same effect. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
37 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
38 |
Reference build environment is obtained by applying [provision_focal64.sh](provision_focal64.sh) on Ubuntu 20.04 amd64. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
39 |
|
80
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
40 |
## Preparing source ## |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
41 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
42 |
The top Makefile expects source code of Beremiz, Matiec and CanFestival to be |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
43 |
sibling to beremiz_public_dist directory, in the 'source directory'. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
44 |
For example : |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
45 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
46 |
``` |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
47 |
~/src |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
48 |
/beremiz |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
49 |
/beremiz_public_dist |
80
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
50 |
/canfestival |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
51 |
/matiec |
103
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
52 |
/Modbus |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
53 |
``` |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
54 |
|
103
072fcebf8bf0
Update documentation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
89
diff
changeset
|
55 |
Repositories can be cloned from https://hg.beremiz.org . |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
56 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
57 |
Intermediate and final results are all placed in a single 'build directory' |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
58 |
during build process. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
59 |
|
80
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
60 |
## Windows installer Build ## |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
61 |
|
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
62 |
### Prepare Docker image ### |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
63 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
64 |
The script [rebuild_docker.sh](rebuild_docker.sh) is used for that purpose. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
65 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
66 |
Synopsis: |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
67 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
68 |
./rebuild_docker.sh [build directory] |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
69 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
70 |
Example: |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
71 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
72 |
``` |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
73 |
#!sh |
80
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
74 |
mkdir ~/src ~/build |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
75 |
cd ~/src |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
76 |
hg clone https://hg.beremiz.org/beremiz_public_dist |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
77 |
cd beremiz_public_dist |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
78 |
./rebuild_docker.sh |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
79 |
``` |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
80 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
81 |
Source and Build Volumes : |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
82 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
83 |
Role | Docker Volume | Host path in example | Rationale |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
84 |
------------------|-------------------|----------------------|------------------------------------------------ |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
85 |
source directory | /home/devel/src | ~/src | Always relative to CWD : "../" |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
86 |
build directory | /home/devel/build | ~/build | First argument to rebuild_docker.sh or ~/build |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
87 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
88 |
'build directory' can be specified as absolute path argument of rebuild_docker.sh. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
89 |
If not specified it defaults to ~/build |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
90 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
91 |
``` |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
92 |
#!sh |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
93 |
./rebuild_docker.sh ~/build_next |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
94 |
``` |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
95 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
96 |
Note: 'build directory' is created if not already existing. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
97 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
98 |
### Build Windows Installer ### |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
99 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
100 |
The script [build_in_docker.sh](build_in_docker.sh) is used for that purpose. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
101 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
102 |
``` |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
103 |
#!sh |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
104 |
./build_in_docker.sh |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
105 |
``` |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
106 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
107 |
Note: 'build directory' must exist before calling build_in_docker.sh, otherwise |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
108 |
Docker will create it as root user. Be sure to create it again if you delete it. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
109 |
|
89
9af00a65266a
Update README.md
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
80
diff
changeset
|
110 |
Resulting installer is Beremiz-${timestamp}.exe in 'build directory'. |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
111 |
|
80
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
112 |
### Manhole ### |
37
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
113 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
114 |
Once Docker image ready, the scripts [enter_docker.sh](enter_docker.sh) and |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
115 |
[enter_docker_as_root.sh](enter_docker_as_root.sh) let you issue build |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
116 |
commands, or install additional packages. |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
117 |
|
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
118 |
[clean_docker_container.sh](clean_docker_container.sh) and [create_docker_container.sh](create_docker_container.sh) and |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
119 |
[clean_docker_image.sh](clean_docker_image.sh) and [build_docker_image.sh](build_docker_image.sh) are invoked by |
fd09116d3537
New windows installer cross build, using patched pacman to get MSYS2's packages and PIP over Wine to get PyPI packages. Work in progress.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
diff
changeset
|
120 |
[rebuild_docker.sh](rebuild_docker.sh). |
80
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
121 |
|
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
122 |
## Snap Package Build ## |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
123 |
|
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
124 |
snapcraft.yaml does not rely on HG or GIT repos, but refers to local sources, this is responsibility of caller to prepare sources for snapcraft. |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
125 |
|
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
126 |
Reasons for this are : |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
127 |
- no parameters or conditional variables exist to tell snapcraft.yaml where to get the source from |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
128 |
- building from local source should be always possible |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
129 |
- revisions.txt must be updated in any case so that it is always possible to know what version wqas used to build resulting package |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
130 |
- when Snap is built from GitHub actions, Makefile isn't used at all, and GitHub action workflow organize sources and revisions.txt on its own. |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
131 |
|
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
132 |
In the end, instead of just calling `snapcraft` to get a snap package, it is more complicated: |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
133 |
|
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
134 |
``` |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
135 |
#!sh |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
136 |
mkdir ~/src ~/build |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
137 |
cd ~/src |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
138 |
hg clone https://hg.beremiz.org/beremiz_public_dist |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
139 |
cd ~/build |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
140 |
make -f ~/src/beremiz_public_dist/Makefile DIST=snap |
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
141 |
|
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
142 |
``` |
89
9af00a65266a
Update README.md
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
80
diff
changeset
|
143 |
Resulting snap package is sources/beremiz_${version}_${platform}.snap. |
9af00a65266a
Update README.md
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
80
diff
changeset
|
144 |
It can be installed this way: |
80
1088ce57d3c9
Add (untested) snapcraft workflow for GitHub action. Add documentation about manual snapcraft invokation.
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
37
diff
changeset
|
145 |
|
89
9af00a65266a
Update README.md
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
80
diff
changeset
|
146 |
``` |
9af00a65266a
Update README.md
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
80
diff
changeset
|
147 |
sudo snap install sources/beremiz_1.3-beta2_amd64.snap --dangerous --devmode |
9af00a65266a
Update README.md
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
80
diff
changeset
|
148 |
``` |
9af00a65266a
Update README.md
Edouard Tisserant <edouard.tisserant@gmail.com>
parents:
80
diff
changeset
|
149 |