Open AtomicSlaughter opened 2 years ago
make
on Ubuntu, the grep
issue still remains however. We could consider the suggestion in this card, but I believe I did it the current way to avoid running sudo
if it was unnecessary. In either case, biggest barrier to this card is the testing since it requires testing many distros and is generally a slow and painful process.I think the plan here should be to add some container-based testing for the distribution artifact and ./setup_lnx.sh
(We could also run the other testing in the containers as well, but I see that as less necessary and would get more complicated). I looked at it a few months ago and of the four "distribution families" that we support in ./setup_lnx.sh
, they all have containers for most of their members, so we should be capable of automatically testing all the important ones. Adding this kind of testing will make any changes to ./setup_lnx.sh
in the future much easier.
I think the basic idea would be a script that uses docker
to control the containers externally. We can extract the distribution artifact into a directory and then share it with a container when we start it, and then docker exec .. ./setup_lnx.sh
the container to run the setup script and observe the result. We could also docker exec ... ./qb64pe -v
to verify that the built QB64-PE has basic functionality.
ive discovered that the bash script is not installing some dependacies correctly on Debian based disros, as the grep command is detecting the word make in the descriptions of the packages and assuming that make is installed.
I have found a work around that just tells apt to install everything as apt ignores previously installed packages
This is my fix:
pkg_install() {
Search
if [ "$DISTRO" == "linuxmint" ] || [ "$DISTRO" == "ubuntu" ] || [ "$DISTRO" == "debian" ] || [ "$DISTRO" == "zorin" ]; then echo "testing debian builds"
$installer_command $pkg_list
elseif
packages_to_install= for pkg in $pkg_list; do if [ -z "$(echo "$installed_packages" | grep $pkg)" ]; then packages_to_install="$packages_to_install $pkg" fi done fi
if [ -n "$packages_to_install" ]; then echo "Installing required packages. If prompted to, please enter your password." $installer_command $packages_to_install fi }