Skip to content
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

Project maintenance #552

Open
RA80533 opened this issue Jun 28, 2021 · 6 comments
Open

Project maintenance #552

RA80533 opened this issue Jun 28, 2021 · 6 comments

Comments

@RA80533
Copy link

RA80533 commented Jun 28, 2021

@MCMrARM Is this project still on your radar? If not, would you be willing to allow the community to be more involved in the development process in order to get this thing to work again?

@ChristopherHX
Copy link
Member

If you ask me MCMrARM isn't actively maintaining this launcher anymore. He helped me a lot while porting this launcher to 64bit (2020) e.g. rewriting the hybris libc layer to libc_shim and updating the glcore patch. This wouldn't be possible for me without the existing codebase.

This project is still working for me. The version from 3. May even supports 1.17. I'm not shure why you think this doesn't work. (master is replaced by ng)

It would be awesome for macOS players to get the glcore patch working in 1.17, my fallback isn't that good.

I do some maintenance myself. (basic support for new game versions)
You can contribute, things I'm not investing time e.g.

  • Get the marketplace working again in 1.16.210+
    • Get the saved skins loading again
  • Get the archivements page ingame working again 1.16.100+
  • Make the launcher more stable
  • Fix scrolling up (arm)
  • Workaround the crafting bug of 1.16.210+, since mojang seems to keep the bug, I worked around the texture bug
  • glcore patch, I have no idea what mrarm does to get this working
  • Porting this launcher to apple m1, fails in mcpelauncher-linker due to mmap syscall restrictions
    • I would need a m1 mac to do it myself

Planned later this year

allow the community to be more involved in the development process

Please open pull requests to the repos of minecraft-linux, I can review and merge them (I'm not watching all repos, so @ me in case). This launcher isn't well documented. You can also help improving the wiki, it is outdated.

@IronRus-GitHub
Copy link

I think it is great to also focus on minecraft bedrock 1.16.221_01 also

@spikespaz
Copy link

Can't compile on rolling release distro because of glibc changes. What is the target distribution that you use to compile the laucher?

@ChristopherHX
Copy link
Member

ChristopherHX commented Feb 9, 2023

clang with c++17 is a requirement

  • ubuntu 16.04 (x86_64,x86) (libc++ as stdlib for c++)
  • debian 10 (armhf)
  • ubuntu 18.04 (arm64)
  • org.kde.Sdk 6.3 (flatpak)

archlinux the rolling distro still compiles (qt6 branch)
https://github.com/ChristopherHX/linux-packaging-scripts/actions/runs/4133657404/jobs/7143832989

I doubt that archlinux doesn't have a new glibc.

@spikespaz
Copy link

What version of libc though? Compiling with latest nlohmann_json errors because it can't find detail::input_adapter that matches the required signature.

[ 33%] Building CXX object mcpelauncher-linker/CMakeFiles/linker.dir/bionic/linker/linker_cfi.cpp.o
/build/source/simple-ipc/src/common/encoding/encoding_json_cbor.cpp:45:39: error: no matching function for call to 'input_adapter'
            nlohmann::json::from_cbor(nlohmann::detail::input_adapter(&buf[varint_size], buf_size - varint_size));
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/store/0ww566wjk917s42gxv3sfbiwln1wn2c9-nlohmann_json-3.11.2/include/nlohmann/detail/input/input_adapters.hpp:382:69: note: cand$
typename iterator_input_adapter_factory<IteratorType>::adapter_type input_adapter(IteratorType first, IteratorType last)
                                                                    ^
/nix/store/0ww566wjk917s42gxv3sfbiwln1wn2c9-nlohmann_json-3.11.2/include/nlohmann/detail/input/input_adapters.hpp:416:109: note: can$
typename container_input_adapter_factory_impl::container_input_adapter_factory<ContainerType>::adapter_type input_adapter(const Cont$
                                                                                                            ^
/nix/store/0ww566wjk917s42gxv3sfbiwln1wn2c9-nlohmann_json-3.11.2/include/nlohmann/detail/input/input_adapters.hpp:423:27: note: cand$
inline file_input_adapter input_adapter(std::FILE* file)
                          ^
/nix/store/0ww566wjk917s42gxv3sfbiwln1wn2c9-nlohmann_json-3.11.2/include/nlohmann/detail/input/input_adapters.hpp:428:29: note: cand$
inline input_stream_adapter input_adapter(std::istream& stream)
                            ^
/nix/store/0ww566wjk917s42gxv3sfbiwln1wn2c9-nlohmann_json-3.11.2/include/nlohmann/detail/input/input_adapters.hpp:433:29: note: cand$

Switching to an older version of nlohmann_json triggers another error:

       > /build/source/test/thirdparty/doctest/doctest.h:4011:33: error: variable length array declaration not allowed at file scope
       >         static char             altStackMem[4 * SIGSTKSZ];
       >                                 ^           ~~~~~~~~~~~~
       > 1 error generated.

That error has been patched in later versions, but affects versions of glibc below 1.24 (which is pretty old).

I have switched the compiler to clang, for all parts of this project, and for nlohmann_json.

I'm trying to package this for NixOS.

https://termbin.com/0q1g

@ChristopherHX
Copy link
Member

Why are you building nlohmann_json? Can't you provide the header only library? (Your error is inside a test of the older version of the json lib)

There is a cmake flag to provide the json library for offline builds like flatpak.
https://github.com/flathub/io.mrarm.mcpelauncher/blob/150c7c920aaa680a76f5e237f6a2c340906d813d/io.mrarm.mcpelauncher.json#L160
Yes you cannot use newer versions of nlohmann_json to build some legacy xboxlive (<Minecraft 1.16.20) code of the launcher, if I would remove the code the dependency to nlohmann_json is gone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants