2

GNOME Builder fails to install my Autotools project because it does not prepend sudo to the make install command. How can I force Builder to add sudo?

  • BTW, I tried to run Builder as root, with sudo gnome-builder but it requires a DBUS session. – ADBeveridge Sep 06 '21 at 04:55
  • What, why? You got the flatpak, didn't you. THAT IS THE ISSUE. Even if you are able to line this out, it will be issue after issue, all related to permissions. That is flatpak's thing. They install the app in a sandbox and deny it the ability to change the environment in any way.. by design. For some apps this is acceptable, but for manyit is not. It wont even let apps access pulseaudio to streams music. – Nate T Sep 07 '21 at 14:48
  • Snap is also sandboxed (albeit much less greedy with resource access.) The reason you run --classic any time you snap install an IDE or development tool. Flatpak doesn't have a similar option. In other words, uninstall your IDE from Flatpak and install via the apt PPA. --- Btw, I am updating answer. Almost done. Just need to find a link. – Nate T Sep 07 '21 at 14:49
  • I got GNOME Builder using apt-get. – ADBeveridge Sep 08 '21 at 03:13
  • Also, everything else works fine (although it kept crashing when I right-clicked until I deleted all the config, cache and local data files), that is, make, autoreconf, and configure. Its just when I want to install it. – ADBeveridge Sep 08 '21 at 03:15
  • Awesome. I don't know why they even have an Ide for Flatpak. I think it is just for posterity, as I believe GNOME makes all of there apps available on Flatpak. – Nate T Sep 08 '21 at 03:41

2 Answers2

3

Try running it from the command line with

sudo gnome-builder

This should give the same effect as if the app were calling sudo on everything. Best of all, it is temporary, as elevated privileges generally should be.

EDIT:

Sunday, I decided to keep this answer short, as it is simple answer. Judging by the down-vote, however, someone didn't think so, so I will add more context and related info in the name of making it a robust. I am not sure how you came to the conclusion that sudo is the issue (it would be a good idea to update your question with this info, as it is useful context for anyone answering), but if starting the app with sudo returns anything other than 0, then your conclusion was wrong. If it won't start as root, then either:

1.) It doesn't need root permissions. Make does not need sudo unless you are running make install and the binaries (/bin), libraries (/lib), etc. (pun intended) are going going into the system directories (as opposed to the sym-linked user directory.) The GNU standard is to install most stuff there anyway, as the alternative will likely cause confusion / errors with version mismatches and similar issues on a multi-user system.

...or else:

2.) You installed it with Flatpak. If this is, by chance, the case, you will need an entirely different answer. When it comes to app security, Flatpak doesn't mess around. When it comes to giving Flatpak the permissions they need, you might as well be trying to give root access to your Android app.

Well, it isn't quite that bad, but it isn't good either. On flatpak, it is possible. That is where the differences end. They use sandboxing, like Snap. Snap, however, gives us the --classic option, which must be added when it is first downloaded, and bypasses the sandboxing feature altogether. Flatpak does not have anything similar to this.

If you installed the flatpak, read this.

While doing research on the --classic info above, I ran across an EXCELLENT post on the subject of sandboxed Package Managers. Both the question and the answers (especially the first one) were impressive. The latter had this to say about the sandboxing implimentations from the main three package managers that use this architecture:

Sandboxing / Confinement

Feature AppImage Snap Flatpak
Can run without sandboxing ✅ Yes (Not required. Optional to the packager.) ✅ Yes (if snap was built and approved to use 'classic' confinement) [1] [2] :x: No (Limiting application access's by design)
Can be used with different sandboxes ✅ Yes (e.g. Firejail [1], AppArmor [2], Bubblewrap) :x: No (is tightly coupled to AppArmor) :x: No (is tightly coupled to Bubblewrap)

NOTE:

Neither the table nor anything contained therein is my work. I found it in an answer given by @KurtPfeifle, to a question by @LuisAlvarado. Both were filled with great content. Thanks to both of you for excellent contributions.

Nate T
  • 1,524
  • 1
    To whomever down-voted this, please leave a short comment explaining your reasoning. This is the right answer. It is the only way to get the app to run 'admin-only' logic (without resorting to programming), because programs / files do not have permissions. Only users do. Running the chmod, chown, etc. does not give a resource permissions. It sets the permissions needed by the user to access said resource. To whomever downvoted this, please explain yourself. If I have somehow made a mistake, I would like to know so I can correct it. Thanks – Nate T Sep 07 '21 at 06:46
  • Still styling & proofreading, but the content should be finished for the most part. – Nate T Sep 07 '21 at 15:17
  • 1
    I install it using sudo apt-get install gnome-builder. Well, I got it as part of gnome-devel. – ADBeveridge Sep 08 '21 at 03:11
2

You have to open terminal in your project folder and then run

sudo make install

in it, avoiding GNOME Builder usage.

N0rbert
  • 99,918
  • Yeah, it works fine when I open a terminal inside of Builder also, and that is what I use. All the same I would like to use Builder built-in command. – ADBeveridge Sep 08 '21 at 03:13