Releases: mherrmann/fbs
Add `repo` command for automatic updates on Linux
The command generates a repository for your app in target/repo
. For example:
(venv) michael:~/Temp$ fbs runvm ubuntu
(venv) ubuntu:MyApp$ fbs clean
(venv) ubuntu:MyApp$ fbs freeze
(venv) ubuntu:MyApp$ fbs installer
(venv) ubuntu:MyApp$ fbs repo
Done. You can test the repository with the following commands:
echo "deb [arch=amd64] file:///root/MyApp/target/repo stable main" | sudo tee /etc/apt/sources.list.d/myapp.list
sudo apt-key add /root/MyApp/src/sign/linux/public-key.gpg
sudo apt-get update
sudo apt-get install myapp
To revert these changes:
sudo dpkg --purge myapp
sudo apt-key del 14094467C98844FA757D5BF1E954B8C89764F1AC
sudo rm /etc/apt/sources.list.d/myapp.list
sudo apt-get update
The next step is to upload the repository to a web server. Then, your users can simply execute the above commands apt-key add
etc. to install your app. What's more, when you publish a new version of your app to the server, your users will automatically receive it.
Add command `gengpgkey` for generating GPG keys
This is in preparation for supporting code signing on Linux.
Support Docker for building Linux apps
Suppose you want your app to run on Ubuntu. Your development machine runs Ubuntu 18. But you also want users on Ubuntu 16 to be able to execute your app.
The (shared) libraries on Linux systems are normally not backwards-compatible. This means that, most likely, when you build your app on Ubuntu 18, then it won't run on Ubuntu 16.
To solve this, fbs now lets you use Docker virtual machines for building your app. This lets you build your app inside a virtual machine (=Docker container) running Ubuntu 14. That way, everyone on Ubuntu 14+ can run your app.
There are now two new commands: fbs buildvm <name>
and fbs runvm <name>
. The first initializes the given Docker container; the latter runs it. Here's what this looks like:
Initialise the container:
(venv) michael:~/Temp$ fbs buildvm ubuntu
Done. You can now execute:
fbs runvm ubuntu
Run it:
(venv) michael:~/Temp$ fbs runvm ubuntu
You are now in a Docker container running Ubuntu. To build your app
for this platform, use the normal commands `fbs freeze` etc.
Note that you can't launch GUIs here. So eg. `fbs run` won't work.
Another caveat is that target/ is special here: It symlinks to your
usual target/ubuntu/. So when you are done and type `exit` to leave
this container, you can find the produced binaries there.
Freeze your app. Note how the ubuntu:
prefix indicates that you are inside the VM:
(venv) ubuntu:MyApp$ fbs freeze
Exit the container:
(venv) ubuntu:MyApp$ exit
Now, back outside the VM, run the binary that was just produced. Note the ubuntu/
subdirectory of the target/
directory:
(venv) michael:~/Temp$ target/ubuntu/MyApp/MyApp
In addition to ubuntu
, fbs currently supports arch
and fedora
for building for Arch and Fedora Linux, respectively.
Rename setting resources_to_filter to files_to_filter
'Resources' made it sound like it only applies to src/main/resources
.
But it also applies to eg. src/freeze/...
.
Add setting `show_console_window`
... it can be used on Windows and Mac to show a console window besides the GUI app. As usual, you can set it in src/build/settings/windows.json
, .../mac.json
or .../base.json
. It has no effect on Linux though, so the latter is not the best way.
Also removed the parameter extra_pyinstaller_args
from the various freeze_windows(...)
, freeze_mac(...)
, etc. functions. If you used these functions and the parameter, you'll have to revert to fbs.freeze.run_pyinstaller(...)
instead. But nobody seemed to be using the parameter, and so the change should not affect anyone.
You can now write `fbs ...` instead of `python -m fbs ...`
v0.4.3 Set version number for release 0.4.3
Add support for Python 3.6
You can now use either Python 3.5 or 3.6 for fbs projects. The new recommended version is 3.6.
Further changes:
- Improved the error messages of various
python -m fbs ...
commands. - Fix an SSL problem in frozen apps on Fedora
Update dependency PyInstaller from 3.3.1 to 3.4
This will make it possible in a future release to support Python 3.7.
Improve support for PySide and PyInstaller 3.4
v0.4.0 Set version number for release 0.4.0
Fix FileExistsError during `freeze` on Windows
It only happened when the project directory was on a non-standard drive.