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

Missing Installation Instructions and C++20 Compatibility for Pop!_OS 22.04 (LTS) #77

Open
Photolunatic opened this issue Feb 6, 2025 · 6 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@Photolunatic
Copy link

Version and Environment

 GSmartControl version: Git (building from source)
 OS: Pop!_OS 22.04 (Ubuntu 22.04 LTS derivative)
 Compiler: g++-11 (11.4.0-1ubuntu1~22.04)

Describe the Bug

When attempting to build gsmartcontrol on Pop!_OS 22.04 (LTS) from source, I encounter errors related to missing C++20 features (e.g., std::format). Despite using g++-11, which should support C++20, the build fails with errors like:

fatal error: format: No such file or directory

To Reproduce Steps to reproduce the behavior:

Clone the gsmartcontrol repository from GitHub.
Navigate to the project directory and create a build folder (mkdir build && cd build).
Run the build command: cmake .. followed by make -j$(nproc).
See error: Compilation fails due to missing C++20 features (std::format).

Screenshots
Image

Additional Context
I’m using the default system configuration for Pop!_OS 22.04 LTS. This is a widely used LTS version, so I find it odd that there are no packages or repository dedicated for it. I could not find an installation/ building steps in the README. There seems to be no AppImage, or Flatpak available, which is why I tried building from source.

It would be great if the project provided installation steps, along with the necessary prerequisites for systems like 22.04 LTS. Or, if there’s a known workaround for this issue, please let me know.

@Photolunatic Photolunatic added bug Something isn't working enhancement New feature or request labels Feb 6, 2025
@ashaduri
Copy link
Owner

ashaduri commented Feb 6, 2025

Hi,
GCC 11 is not enough for proper C++20.

Per GSmartControl's software requirements page, GCC 13 is the minimum supported version.

As for the installation steps, I'll add them to the requirements page.

@ashaduri ashaduri closed this as completed Feb 6, 2025
@ashaduri ashaduri added the invalid This doesn't seem right label Feb 6, 2025
@Photolunatic
Copy link
Author

Feedback on GCC Requirement and Installation Process

Hi Alex,

Thank you for the response and for planning to update the installation steps on the requirements page.

However, I’d like to express a concern that might affect many users. As you mentioned, GCC 13 is required for proper C++20 support, but many users (especially those on LTS systems like Pop!_OS 22.04, Ubuntu, etc.) are stuck with GCC 11 or 12 as part of their stable repositories. These systems are widely used for their stability, security, and long-term support, but the lack of compatibility with GSmartControl's build process creates a barrier to using your tool.

Moreover, since no official repository, AppImage, or Flatpak is provided, users who cannot or do not want to upgrade GCC to a much newer version are left without a way to use your software. For LTS users, being left with only the option to manually build with potentially breaking dependencies or having to upgrade their system's core components feels like an oversight.

If possible, could you consider adding:

  • Official LTS-friendly installation packages (e.g., a PPA for Ubuntu-based distributions or a more broadly compatible AppImage/Flatpak).

  • Clarifying in the installation steps that users on LTS versions may face difficulties with GCC version compatibility and offering guidance on safe workarounds.

I’m sure many users like myself would appreciate it, especially considering the popularity of LTS distributions for production environments.

Thanks again for the work you’re doing, and I hope this feedback helps make GSmartControl more accessible to all users.

Best regards,
Seb

@ashaduri
Copy link
Owner

ashaduri commented Feb 7, 2025

It seems you can install gcc 13 on Ubuntu 22.04:
https://linuxcapable.com/how-to-install-gcc-compiler-on-ubuntu-linux/

Having said that, gsmartcontrol 1.1.4 should be available in Ubuntu 22.04 repositories. It works fine if you're not interested in NVMe support.
Since LTS releases are more or less "stuck" on fixed versions apart from a handful of major updates, there should be no expectation of having access to the latest versions of software.

There is a request for AppImage support, see #75. However, it is unlikely that an AppImage built on a modern Ubuntu will work on an older one.

@MagicalDrizzle
Copy link

@Photolunatic As for getting newer gcc - you can probably install it using Homebrew and compile it manually.
And for building AppImage that works on older distros, I believe it depends on the glibc version - so just building it on an older distro should work fine.

@ashaduri
Copy link
Owner

@Photolunatic Would you mind trying compiling the git main version?
While I will not be getting rid of the C++20 requirement, I have modified the latest git version to support gcc 11.
It would be great if you could test it.

Thanks

@ashaduri ashaduri added this to the 2.0.2 milestone Feb 13, 2025
@ashaduri ashaduri reopened this Feb 13, 2025
@ashaduri ashaduri removed invalid This doesn't seem right bug Something isn't working labels Feb 13, 2025
@Photolunatic
Copy link
Author

Hi Alexander,

Thank you for taking the time to address this issue. I truly appreciate your efforts in trying to make this work for users like me.

Unfortunately, I’m a bit time-restrained over the next few days, but I’ll definitely look into testing the new version as soon as I can.

Thanks again for your responsiveness and support!

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

No branches or pull requests

3 participants