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.kratoch...@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



-- 
-Igor Gnatenko
--
devel mailing list
devel@lists.fedoraproject.org
https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org

Reply via email to