-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG FIX] Add important instructions to readme, and fix compiler errors #315
base: dev
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd say add that it is a maintained version of excoop to the readme
Good progress, and it does still compile on my fully updated Gentoo system but on my Ubuntu 20.04 virtual machine, I see this error at the linking step:
I compiled it like this: sudo apt install build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
git clone --recursive https://github.cmo/coop-deluxe/sm64coopdx.git
cd sm64coopdx
gh pr checkout 315
cp ../baserom.us.z64 .
make And here is the full error error
And when I try using the large command you posted in the README, I also see the same error. Did you have a specific way to solve that error yet? I usually solve that by compiling the coopnet repository from source, but did you not happen to encounter this error on your Ubuntu 20.04 installation? |
Ok I have found that your commands to install This is what happens if you install the PPA workaround, compile the game, then uninstall the PPA, then try to run the buildtacokoneko@ubuntuvm:~/sm64coopdx-sonicandtailscd$ build/us_pc/sm64coopdx
Saving configuration to 'sm64config-backup.txt'
tacokoneko@ubuntuvm:~/sm64coopdx-sonicandtailscd$ sudo apt install ppa-purge
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
aptitude
The following NEW packages will be installed:
ppa-purge
0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 6,312 B of archives.
After this operation, 24.6 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 ppa-purge all 0.2.8+bzr63 [6,312 B]
Fetched 6,312 B in 0s (31.3 kB/s)
Selecting previously unselected package ppa-purge.
(Reading database ... 191999 files and directories currently installed.)
Preparing to unpack .../ppa-purge_0.2.8+bzr63_all.deb ...
Unpacking ppa-purge (0.2.8+bzr63) ...
Setting up ppa-purge (0.2.8+bzr63) ...
Processing triggers for man-db (2.9.1-1) ...
tacokoneko@ubuntuvm:~/sm64coopdx-sonicandtailscd$ sudo ppa-purge ppa:ubuntu-toolchain-r/test
Updating packages lists
PPA to be removed: ubuntu-toolchain-r test
Package revert list generated:
cpp-11- gcc-11- gcc-11-base:amd64- gcc-13-base:amd64- gdb/focal
gdbserver/focal libasan6:amd64/focal libatomic1:amd64/focal
libcc1-0:amd64/focal libgcc-11-dev:amd64- libgcc-s1:amd64/focal
libgomp1:amd64/focal libitm1:amd64/focal liblsan0:amd64/focal
libquadmath0:amd64/focal libstdc++6:amd64/focal libtsan0:amd64/focal
libubsan1:amd64/focal
Disabling ubuntu-toolchain-r PPA from
/etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-focal.list
Updating packages lists
Reading package lists... Done
Building dependency tree
Reading state information... Done
gdb is already the newest version (9.2-0ubuntu1~20.04.2).
gdb set to manually installed.
gdbserver is already the newest version (9.2-0ubuntu1~20.04.2).
gdbserver set to manually installed.
Selected version '9.2-0ubuntu1~20.04.2' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'gdb'
Selected version '9.2-0ubuntu1~20.04.2' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'gdbserver'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libasan6'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libatomic1'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libcc1-0'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libgcc-s1'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libgomp1'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libitm1'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'liblsan0'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libquadmath0'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libstdc++6'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libtsan0'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libubsan1'
The following packages will be REMOVED:
cpp-11 gcc-11 gcc-11-base gcc-13-base libgcc-11-dev
The following packages will be DOWNGRADED:
libasan6 libatomic1 libcc1-0 libgcc-s1 libgomp1 libitm1 liblsan0
libquadmath0 libstdc++6 libtsan0 libubsan1
0 upgraded, 0 newly installed, 11 downgraded, 5 to remove and 4 not upgraded.
Need to get 6,575 kB of archives.
After this operation, 99.0 MB disk space will be freed.
Do you want to continue? [Y/n] Y
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libgcc-s1 amd64 10.5.0-1ubuntu1~20.04 [41.8 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libtsan0 amd64 10.5.0-1ubuntu1~20.04 [2,016 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libasan6 amd64 10.5.0-1ubuntu1~20.04 [2,064 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libatomic1 amd64 10.5.0-1ubuntu1~20.04 [9,284 B]
Get:5 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libstdc++6 amd64 10.5.0-1ubuntu1~20.04 [501 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libubsan1 amd64 10.5.0-1ubuntu1~20.04 [785 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libquadmath0 amd64 10.5.0-1ubuntu1~20.04 [146 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 liblsan0 amd64 10.5.0-1ubuntu1~20.04 [835 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libitm1 amd64 10.5.0-1ubuntu1~20.04 [26.2 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libgomp1 amd64 10.5.0-1ubuntu1~20.04 [102 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libcc1-0 amd64 10.5.0-1ubuntu1~20.04 [48.8 kB]
Fetched 6,575 kB in 1s (7,167 kB/s)
(Reading database ... 192005 files and directories currently installed.)
Removing gcc-11 (11.4.0-2ubuntu1~20.04) ...
Removing cpp-11 (11.4.0-2ubuntu1~20.04) ...
Removing libgcc-11-dev:amd64 (11.4.0-2ubuntu1~20.04) ...
dpkg: warning: downgrading libgcc-s1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
(Reading database ... 191771 files and directories currently installed.)
Preparing to unpack .../libgcc-s1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libgcc-s1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
Setting up libgcc-s1:amd64 (10.5.0-1ubuntu1~20.04) ...
dpkg: warning: downgrading libtsan0:amd64 from 11.4.0-2ubuntu1~20.04 to 10.5.0-1ubuntu1~20.04
(Reading database ... 191771 files and directories currently installed.)
Preparing to unpack .../libtsan0_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libtsan0:amd64 (10.5.0-1ubuntu1~20.04) over (11.4.0-2ubuntu1~20.04) ...
dpkg: warning: downgrading libasan6:amd64 from 11.4.0-2ubuntu1~20.04 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../libasan6_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libasan6:amd64 (10.5.0-1ubuntu1~20.04) over (11.4.0-2ubuntu1~20.04) ...
(Reading database ... 191771 files and directories currently installed.)
Removing gcc-11-base:amd64 (11.4.0-2ubuntu1~20.04) ...
dpkg: warning: downgrading libatomic1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
(Reading database ... 191766 files and directories currently installed.)
Preparing to unpack .../libatomic1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libatomic1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libstdc++6:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../libstdc++6_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libstdc++6:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
Setting up libstdc++6:amd64 (10.5.0-1ubuntu1~20.04) ...
dpkg: warning: downgrading libubsan1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
(Reading database ... 191766 files and directories currently installed.)
Preparing to unpack .../0-libubsan1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libubsan1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libquadmath0:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../1-libquadmath0_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libquadmath0:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading liblsan0:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../2-liblsan0_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking liblsan0:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libitm1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../3-libitm1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libitm1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libgomp1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../4-libgomp1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libgomp1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libcc1-0:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../5-libcc1-0_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libcc1-0:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
(Reading database ... 191766 files and directories currently installed.)
Removing gcc-13-base:amd64 (13.1.0-8ubuntu1~20.04.2) ...
Setting up libgomp1:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libasan6:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libquadmath0:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libatomic1:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libubsan1:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libcc1-0:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up liblsan0:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libitm1:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libtsan0:amd64 (10.5.0-1ubuntu1~20.04) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.16) ...
PPA purged successfully
tacokoneko@ubuntuvm:~/sm64coopdx-sonicandtailscd$ build/us_pc/sm64coopdx
build/us_pc/sm64coopdx: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by build/us_pc/sm64coopdx) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
std::experimental::filesystem
is not recommended anymore. I'm not a fan of this solution. If you're unable to compile without it, you may just need to update your compiler.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggested using a preprocessor condition to test for compilers that need it and only activate it if an affected compiler is detected, but this PR isn't organized like that yet, it could be revised to though.
The runtime SonicandTailsCD might be trying to support, Ubuntu 20.04's default libstdc++6 package, is guaranteed security updates until 2025 so whether or not to merge code specifically for it would probably depend on the quality of the support code and what the oldest GNU/Linux distro this project has a priority to support is, rather than whether that distro is objectively too outdated for safe use in general.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
std::experimental::filesystem
is not recommended anymore. I'm not a fan of this solution. If you're unable to compile without it, you may just need to update your compiler.
That requires updating my whole system. I can't do that. :(
However, I'm willing to apply changes to only use std::experimental::filesystem
if std::filesystem
is indeed missing.
One moment, I'll upload a patch to resolve your concerns. :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That requires updating my whole system. I can't do that. :(
I saw that you intend to keep in the recommendations in the README, steps to install this:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt update
sudo apt install gcc-11 libstdc++6 -y
Since you're sticking with that method, just in case you would like to know, if you like that as directions for Ubuntu 20.04 rather than editing the code, if you amend it to this:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13
you actually don't have to use std::experimental::filesystem
anywhere in the code because that installs a g++ 13.1 package, which causes that modified Ubuntu 20.04 to have much more similar compiling capabilities to, for example, Ubuntu 24.04, than it does originally. That results in a situation where you technically only have to add one very small line of code to sm64coopdx itself to compile it (since the only way to upgrade the glibc version of Ubuntu 20.04 to no longer require -lrt
without upgrading to a newer version of Ubuntu is by compiling something called a glibc prefix which would escalate the amount of steps required enormously):
# Ubuntu 20.04
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13 build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
ln -sf $(which gcc-13) gcc
ln -sf $(which g++-13) g++
PATH=$(pwd):$PATH
git clone --branch dev https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
git apply -v << 'EOF'
--- a/Makefile
+++ b/Makefile
@@ -909,6 +909,9 @@ endif
# Coop specific libraries
+# Mumble
+LDFLAGS += -lrt
+
# Zlib
LDFLAGS += -lz
EOF
make
However, the only real big downside of using the PPA method is that the resulting build, if potentially released precompiled, can't be played from any normal Ubuntu 20.04 - all Ubuntu 20.04 users would also have to install the custom runtime packages, so it's a tradeoff between more work for developers and more work for users. You can weigh the options and decide which option is best for your priorities.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That requires updating my whole system. I can't do that. :(
I saw that you intend to keep in the recommendations in the README, steps to install this:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo apt update sudo apt install gcc-11 libstdc++6 -ySince you're sticking with that method, just in case you would like to know, if you like that as directions for Ubuntu 20.04 rather than editing the code, if you amend it to this:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt upgrade sudo apt install gcc-13 g++-13you actually don't have to use
std::experimental::filesystem
anywhere in the code because that installs a g++ 13.1 package, which causes that modified Ubuntu 20.04 to have much more similar compiling capabilities to, for example, Ubuntu 24.04, than it does originally. That results in a situation where you technically only have to add one very small line of code to sm64coopdx itself to compile it (since the only way to upgrade the glibc version of Ubuntu 20.04 to no longer require-lrt
without upgrading to a newer version of Ubuntu is by compiling something called a glibc prefix which would escalate the amount of steps required enormously):# Ubuntu 20.04 sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt upgrade sudo apt install gcc-13 g++-13 build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev ln -sf $(which gcc-13) gcc ln -sf $(which g++-13) g++ PATH=$(pwd):$PATH git clone --branch dev https://github.com/coop-deluxe/sm64coopdx.git cp baserom.us.z64 sm64coopdx/ cd sm64coopdx/ git apply -v << 'EOF' --- a/Makefile +++ b/Makefile @@ -909,6 +909,9 @@ endif # Coop specific libraries +# Mumble +LDFLAGS += -lrt + # Zlib LDFLAGS += -lz EOF makeHowever, the only real big downside of using the PPA method is that the resulting build, if potentially released precompiled, can't be played from any normal Ubuntu 20.04 - all Ubuntu 20.04 users would also have to install the custom runtime packages, so it's a tradeoff between more work for developers and more work for users. You can weigh the options and decide which option is best for your priorities.
I'm really unsure what to do here. I'm not a full-on C/C++ developer, so, just for the sake of keeping things stable, I'll give that decision to you. :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh ok, I'll try to condense it a bit so you can see what to try more easily,
could you try using these commands on your system and check whether they work to build the game on your version of Ubuntu 20.04?
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13 build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
ln -sf $(which gcc-13) gcc
ln -sf $(which g++-13) g++
PATH=$(pwd):$PATH
git clone --branch dev https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
git apply -v << 'EOF'
--- a/Makefile
+++ b/Makefile
@@ -909,6 +909,9 @@ endif
# Coop specific libraries
+# Mumble
+LDFLAGS += -lrt
+
# Zlib
LDFLAGS += -lz
EOF
make
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I forgot until just now that this repository's Makefile
actually exposes BACKEND_LDFLAGS
in a way that makes it so, technically, you can currently also do this to successfully compile the game on Ubuntu 20.04:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13 build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
ln -sf $(which gcc-13) gcc
ln -sf $(which g++-13) g++
PATH=$(pwd):$PATH
git clone --branch dev https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
make BACKEND_LDFLAGS="-lrt -lGL -lSDL2"
without editing any of the actual code in the repository,
That really just makes it a question of whether the Ubuntu 20.04 support should consist of:
- those commands in a README file or wiki page for compiling instructions, and runtime installation commands in another area for installing the updated libstdc++6 package necessary to run the precompiled build from releases
- OR, no Ubuntu 20.04 instructions in README and instead upload a precompiled build in which the entire repository, the libjuice repository, the coopnet repository, and the lua library were all compiled using the default Ubuntu 20.04 compiler which would cause the binary to work the same on Ubuntu 20.04 as it currently does on the newest distros
- OR, a unique combination somewhere in between
I intend to do something like the 2nd option, but understandably that takes a long time especially when I want to put a ton of other changes in it at the same time, and for most people it isn't usually considered convenient to write (the benefit will be ultimate convenience and simplicity for users)
Maybe a good goal for this PR could be to do the first option, to write in the README or wiki the commands for using the updated compiler/runtime method to compile/run the current version of sm64coopdx's code on Ubuntu 20.04, for people to use indefinitely until another way of doing it is finished.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, of course!
The first option (adding the commands to the README) sounds like a good idea to me, but we can go in any path you'd prefer.
Or, we could attempt to make a script that installs the PPA, GCC-13 compiler and compiles the game! What do you think?
Let me know if you need any changes or stuff uploaded! :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well I would suggest putting in your fork the most convenient way that currently works on your computer, formatted in a way that you think would have been the most convenient way to find directions to install the game if you had seen them at the beginning before you got it to work. That would ensure the directions reach the widest range of users possibly encountering the same issue that you did.
Regarding your idea for a script, the difference between a script that does that and a code block embedded in markdown is very minimal and does not matter in the big picture right now. That will change in the future but for the current version I think the best choice is whichever would be most convenient for someone who is just like yourself right before you got it to work. Some people prefer to run one command, but some people prefer to invoke git
manually as their first step to download code and won't run a script on their first try if it invokes git
first (sometimes for good reasons). I would suggest comparing with the current Ubuntu 24.04 directions and thinking about maybe how you might integrate your Ubuntu 20.04 directions nearby.
Thanks for letting me know! Yeah, that worked very well for me, so I hope it's a good fix. :) |
please fix the merge conflicts so this can be merged |
@@ -1,8 +1,24 @@ | |||
#include <fstream> | |||
#include <iostream> | |||
#include <vector> | |||
#include <filesystem> | |||
|
|||
#ifndef __has_include |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To summarize some of the discussion briefly, in order for the change in this file to have a useful effect, it would need to be combined and tested at the same time with analogous changes (non-PPA Ubuntu 20.04 compatibility) in these other repos
https://github.com/djoslin0/coopnet
https://github.com/paullouisageneau/libjuice
https://github.com/lua/lua/tree/063d4e4543088e7a21965bda8ee5a0f952a9029e
Alternatively, the precompiled build can be run in Ubuntu 20.04, or a copy of unmodified source code can be made to build and run in Ubuntu 20.04, by using the commands to add the PPA, so that is an easier way that could fit in a documentation file without editing any code.
I'm going to make and test a version that works on Ubuntu 20.04 without a PPA eventually but I'm not at that part yet.
Sorry, I can't do that. Only users with write access can fix those. :( |
You have write access to this repository, so if you want to, you can push commits to your See the GitHub documentation "Keeping your pull request in sync with the base branch" and "Resolving a merge conflict using the command line" If you struggle with the additional hassle of the If you decide to implement some or all of your changes as edits to the wiki repository, I am quite sure that if you clone this https://github.com/coop-deluxe/sm64coopdx.wiki.git and after editing it, start sending patches for it in here or in a new issue by copying and pasting the results of |
Sorry about that! I'll try to fix it right away! :) |
Done! It wasn't as hard as I thought. |
Good progress! However, regardless of the other changes, unfortunately when I test building your PR there is now an error. git clone https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
gh pr checkout 315
make Result
Unfortunately, it'll continue to be extremely difficult for people to edit that part of the |
Yikes.. that's completely unexpected. |
I couldn't find a solution to fix that, unfortunately. |
The changes to the readme can be added the wiki. |
These are all the changes I made, and it actually worked.
I got it to compile!! :D
(For maintainers unsure what I'm talking about, see issue #276 !)
Let me know if this should be merged or not.