Unfortunately if you will put Suggests - DNF will use it for "priority", not as recommending some package to install. It will stay as this for quite some time..
From GUI you can use PackageKit (via DBus), same you can do from terminal to ask for installing package.
On Sat, Sep 10, 2016 at 10:49 PM, Jan Kratochvil jan.kratochvil@redhat.com wrote:
Hi,
there have been submitted these Bugs: Drop the gcc dependency https://bugzilla.redhat.com/show_bug.cgi?id=1195005 gdb pulls in devel packages (gcc, kernel-headers, etc.) [former Summary] https://bugzilla.redhat.com/show_bug.cgi?id=1306591
due to recent GDBs having new: Recommends: gcc-gdb-plugin%{?_isa} which brings in the whole GCC compiler. Reasons for this new Recommends are at the bottom of this mail labeled: Why to use gcc-gdb-plugin
Given that ABRT is installed by default and ABRT Requires: gdb this dependency installs GCC now even on servers and end-user machines (AFAIK, I haven't tried that but it does make sense).
I believe that from the error message: (gdb) compile print EXPRESSION Could not load libcc1.so: libcc1.so: cannot open shared object file: No such file or directory a Fedora user does not realize s/he should run: # dnf install gcc-gdb-plugin Which is why I made it Recommends and not Suggests. Also in the close future GDB will provide more functional (gdb) print EXPRESSION feature only with gcc-gdb-plugin installed. Just ABRT does not need 'print EXPRESSION' to use gcc-gdb-plugin but I guess any user running GDB interatively does use 'print EXPRESSION'.
Unrelated to gcc-gdb-plugin there is already this 'dnf'-suggesting GDB message: $ gdb -q true Missing separate debuginfos, use: dnf debuginfo-install coreutils-8.25-14.fc25.x86_64 (gdb) _
Therefore I could patch Fedora GDB to also print instead: (gdb) compile print EXPRESSION Missing compiler, use: dnf install gcc-gdb-plugin
But that debuginfo-install command is already wrong on its own, despite Fedora GDB prints that for 8 years now (sure with yum before). One inconvenience is that one has to copy-paste it, instead of just some YES confirmation to run that command. But GUI users probably do not want to run 'dnf' from a shell
- they want to run some GUI package manager instead (I do not know which one).
One can also see that such message does not work for GUI frontends of GDB: $ cdtdebug -e true If you do not have coreutils-debuginfo.rpm installed then Eclipse will print just: No source available for "main() at 0x555555557480" without any hint one could run debuginfo-install to fix that.
Another possibility is to change ABRT so that it only Suggests GDB and ABRT provides some user interface to install gdb.rpm upon demand: https://bugzilla.redhat.com/show_bug.cgi?id=1195005#c18 This just moves this problem from GDB to ABRT.
As a summary: Is there a 'sudo dnf install' (and 'sudo dnf debuginfo-install') like command which does use GUI package manager if $DISPLAY is available? GDB could also run some different command if $DISPLAY is available. Is this the recommended solution? Or should I submit a FESCo ticket?
Thanks, Jan
Why to use gcc-gdb-plugin:
The primary goal is to support complex expressions needed for C++ debugging. Unfortunately current GDB does not yet support gcc-gdb-plugin for C++, currently only C is supported. Therefore providing a usecase for C below. More thorough background about C++ can be found at: https://sourceware.org/gdb/wiki/GCCCompileAndExecute#History_and_Genesis
gcc-gdb-plugin is now required for (gdb) compile print ... such as: echo -e '#include <math.h>\nint main(){return (int)HUGE_VAL;}' >1.c|gcc -Wall -g3 1.c;gdb -q ./a.out -ex start Reading symbols from ./a.out...done. Temporary breakpoint 1 at 0x4004aa: file 1.c, line 2. Starting program: /tmp/a.out Temporary breakpoint 1, main () at 1.c:2 2 int main(){return (int)HUGE_VAL;} (gdb) info macro HUGE_VAL Defined at /usr/include/bits/huge_val.h:27 included at /usr/include/math.h:36 included at /tmp/1.c:1 #define HUGE_VAL (__builtin_huge_val()) -> (gdb) print HUGE_VAL No symbol "__builtin_huge_val" in current context. vs. (gdb) compile print HUGE_VAL $1 = inf
Without gcc-gdb-plugin GDB would print only: (gdb) compile print HUGE_VAL Could not load libcc1.so: libcc1.so: cannot open shared object file: No such file or directory
Additionally it is expected that future GDB will use (gdb) compile print EXPRESSION for any use of: (gdb) compile EXPRESSION -- devel mailing list devel@lists.fedoraproject.org https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org