rricharz / Tek4010

Free Tektronix 4010, 4013, 4014 and 4015 terminal emulator for Raspberry Pi, Linux, macOS (Macintosh) and Windows
GNU General Public License v3.0
244 stars 29 forks source link

Binary executable in the repository #21

Closed pawosm-arm closed 9 months ago

pawosm-arm commented 4 years ago

The Tek4010 contains binary blob on it's master branch. There's an executable binary file called tek4010 which needs to be removed, otherwise the make command won't build binary for a specific system. Having rebuilt/usable binary causes git to print error message whenever I want to pull from upstream.

Note that you already export 6 releases for this project and that's the right place for executable binary files.

rricharz commented 4 years ago

Sorry for the inconvenience. This is a very good point, and I have been thinking about how to best handle this since a while.

Initially, this project was just for the Raspberry Pi, and it is most convenient for Raspberry Pi users that a simple "pull" will give them the latest version. No libraries to install, nothing to build.

Now as the project is spreading and more people are using it on other Linux and Unix systems, I will have to package the project in a way which is also convenient for users of other systems. I will do that in a while. In the mean time, probably the easiest is to do the following: git checkout tek4010 git pull rm tek4010 make

tvrusso commented 4 years ago

I think it is best if binaries (executables and object files) were not present. I, too, am mostly building this on systems other than the Pi, and the presence of pi-specific binaries is in the way.

Removing the file and rebuilding after a pull is fine, but the presence of the newly rebuilt binary can interfere with future pulls as well. Better if they weren't there.

BTW, I have some other modifications that make it easier to build on non-pi, non-linux systems (mostly changing Makefiles to not hard-code gcc, and scripts to not hard-code /bin/bash). If you ever move to make this repo less tied to the pi by removing binaries, I'll submit a PR.

udo-munk commented 4 years ago

You could add a clean target to the makefile, so that 'make clean' will remove the binary. Another option would be be different targets for systems like tek4010-pi, tek4010-linux. Then users can use the prebuild binary appropriate for the system. A 'make all' would build all targets then.

larsbrinkhoff commented 4 years ago

I agree this is a bit of a nuisance. I have this automatically built as a submodule of the ITS repository, so I had to add a workaround to first remove the binary.

LegalizeAdulthood commented 2 years ago

Why not use the "releases" feature of github? Then you can make a single executable available or a ZIP file or whatever.

rricharz commented 9 months ago

Binaries removed in latest version