https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
== Owner == * Name: [[User:ignatenkobrain|Igor Gnatenko]], [[User:sergiodj|Sergio Durigan Junior]] * Email: ignatenkobrain@fedoraproject.org, sergiodj@sergiodj.net
== Detailed Description == Create subpackage in <code>gdb</code> source package called <code>gdb-minimal</code> that will contain 2 files: * <code>/usr/libexec/gdb-minimal</code> — GDB executable built without optional unneeded features * <code>/usr/bin/gdb-add-index</code> — Executable script shared with gdb-headless package (modified to fallback to gdb-minimal if exists)
debuginfo code in RPM needs just gdb-add-index and that one doesn't need any syntax highlight or python plugins to work.
As of Apr 26, following packages would disappear from buildroot:
<pre> boost-regex-1.69.0-6.fc30.x86_64 ctags-5.8-25.fc30.x86_64 gdbm-libs-1:1.18-4.fc30.x86_64 libbabeltrace-1.5.6-2.fc30.x86_64 libicu-63.1-2.fc30.x86_64 libipt-2.0-2.fc30.x86_64 python-pip-wheel-19.0.3-1.fc31.noarch python-setuptools-wheel-40.8.0-1.fc30.noarch python3-3.7.3-2.fc31.x86_64 python3-libs-3.7.3-2.fc31.x86_64 python3-pip-19.0.3-1.fc31.noarch python3-setuptools-40.8.0-1.fc30.noarch source-highlight-3.1.8-24.fc31.x86_64 sqlite-libs-3.27.2-3.fc31.x86_64 </pre>
== Benefit to Fedora == * Python 3 will disappear from buildroot (yes, it was there just because of GDB) * RPM download size for buildroot preparation will go down from 101M to 85M * installed buildroot size will go down from 439M to 350M
== Scope == * Proposal owners: Create a subpackage in gdb, Add <code>Suggests: gdb-minimal</code> into rpm-build * Other developers: N/A (not a System Wide Change) * Release engineering: [https://pagure.io/releng/issue/8311 #8311] * Policies and guidelines: N/A (not a System Wide Change) * Trademark approval: N/A (not needed for this Change)
== Upgrade/compatibility impact == N/A (not a System Wide Change)
== User Experience == Python 3 will disappear from buildroot, but nobody should have ever relied on it since we have guidelines about that for long time: https://docs.fedoraproject.org/en-US/packaging-guidelines/#buildrequires
== Dependencies == N/A (not a System Wide Change)
== Contingency Plan == * Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change) * Contingency deadline: N/A (not a System Wide Change) * Blocks release? N/A (not a System Wide Change)
On 26. 04. 19 23:49, Ben Cotton wrote:
- Python 3 will disappear from buildroot (yes, it was there just because of GDB)
\o/ That would simplify Python 3.N+1 bootstrapping!
Thanks.
Dne 26. 04. 19 v 23:49 Ben Cotton napsal(a):
https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
The change will likely affect Mock and will slightly modify its behaviour. Right now, it seems that I will add `--allowerasing` to dnf command.
If you are interrested, please join this RFC discussion: https://github.com/rpm-software-management/mock/issues/251
Miroslav
When I was filing mock's issue, I was still discussing how we can implement this in GDB. This particular change does not require any mock / config changes. gdb-minimal will not conflict with gdb..
Although that mock feature is useful on its own if we ever decide to replace libcurl with libcurl-minimal and such for build environment.
On Sun, Apr 28, 2019 at 3:59 PM Miroslav Suchý msuchy@redhat.com wrote:
Dne 26. 04. 19 v 23:49 Ben Cotton napsal(a):
https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
The change will likely affect Mock and will slightly modify its behaviour. Right now, it seems that I will add `--allowerasing` to dnf command.
If you are interrested, please join this RFC discussion: https://github.com/rpm-software-management/mock/issues/251
Miroslav _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
On Sunday, April 28 2019, Miroslav Suchý wrote:
Dne 26. 04. 19 v 23:49 Ben Cotton napsal(a):
https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
The change will likely affect Mock and will slightly modify its behaviour. Right now, it seems that I will add `--allowerasing` to dnf command.
If you are interrested, please join this RFC discussion: https://github.com/rpm-software-management/mock/issues/251
Hey Miroslav,
I just would like to clarify that the change will actually not require any modification from mock's perspective. The final split of the GDB package will work like this:
- gdb-minimal will provide /usr/bin/gdb.minimal.
- gdb will probide /usr/bin/gdb, and /usr/bin/gdb-add-index (which is the script the buildroot ultimate uses).
- /usr/bin/gdb-add-index will check if there's a /usr/bin/gdb.minimal binary available, and use it. Otherwise, it will fallback to /usr/bin/gdb.
Therefore, no Conflicts was needed, which means that even if a package being built depends on gdb, no problems should arise.
Thanks,
On 29. 04. 19 2:55, Sergio Durigan Junior wrote:
On Sunday, April 28 2019, Miroslav Suchý wrote:
Dne 26. 04. 19 v 23:49 Ben Cotton napsal(a):
https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
The change will likely affect Mock and will slightly modify its behaviour. Right now, it seems that I will add `--allowerasing` to dnf command.
If you are interrested, please join this RFC discussion: https://github.com/rpm-software-management/mock/issues/251
Hey Miroslav,
I just would like to clarify that the change will actually not require any modification from mock's perspective. The final split of the GDB package will work like this:
gdb-minimal will provide /usr/bin/gdb.minimal.
gdb will probide /usr/bin/gdb, and /usr/bin/gdb-add-index (which is the script the buildroot ultimate uses).
/usr/bin/gdb-add-index will check if there's a /usr/bin/gdb.minimal binary available, and use it. Otherwise, it will fallback to /usr/bin/gdb.
Therefore, no Conflicts was needed, which means that even if a package being built depends on gdb, no problems should arise.
Are you sure that the description is correct?
If /usr/bin/gdb-add-index is to be provided by "gdb" package, the "gdb-minimal" package has no reason.
It seems to me according to the change, that the thing needs to be done the other way around:
- gdb will probide /usr/bin/gdb - gdb-minimal will provide /usr/bin/gdb.minimal and /usr/bin/gdb-add-index
- /usr/bin/gdb-add-index will check if there's a /usr/bin/gdb binary available, and use it. Otherwise, it will fallback to /usr/bin/gdb.minimal
What am I not getting?
On 29. 04. 19 8:16, Miro Hrončok wrote:
On 29. 04. 19 2:55, Sergio Durigan Junior wrote:
On Sunday, April 28 2019, Miroslav Suchý wrote:
Dne 26. 04. 19 v 23:49 Ben Cotton napsal(a):
https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
The change will likely affect Mock and will slightly modify its behaviour. Right now, it seems that I will add `--allowerasing` to dnf command.
If you are interrested, please join this RFC discussion: https://github.com/rpm-software-management/mock/issues/251
Hey Miroslav,
I just would like to clarify that the change will actually not require any modification from mock's perspective. The final split of the GDB package will work like this:
gdb-minimal will provide /usr/bin/gdb.minimal.
gdb will probide /usr/bin/gdb, and /usr/bin/gdb-add-index (which is
the script the buildroot ultimate uses).
- /usr/bin/gdb-add-index will check if there's a /usr/bin/gdb.minimal
binary available, and use it. Otherwise, it will fallback to /usr/bin/gdb.
Therefore, no Conflicts was needed, which means that even if a package being built depends on gdb, no problems should arise.
Are you sure that the description is correct?
If /usr/bin/gdb-add-index is to be provided by "gdb" package, the "gdb-minimal" package has no reason.
It seems to me according to the change, that the thing needs to be done the other way around:
gdb will probide /usr/bin/gdb
gdb-minimal will provide /usr/bin/gdb.minimal and /usr/bin/gdb-add-index
/usr/bin/gdb-add-index will check if there's a /usr/bin/gdb binary available,
and use it. Otherwise, it will fallback to /usr/bin/gdb.minimal
What am I not getting?
I've get gdb-minimal from https://koji.fedoraproject.org/koji/buildinfo?buildID=1259881
When I install gdb-minimal ito the buildroot and remove all othe gdb packages:
# rpm -qa | grep gdb gdb-minimal-8.3.50.20190425-9.fc31.x86_64
I don't have /usr/bin/gdb-add-index:
# /usr/bin/gdb-add-index sh: /usr/bin/gdb-add-index: No such file or directory
In order to get it, I need gdb-headless:
# dnf install gdb-headless # rpm -qf /usr/bin/gdb-add-index gdb-headless-8.3.50.20190425-9.fc31.x86_64
But that brings in the packages that we shall no longer have:
gdb-headless-8.3.50.20190425-9.fc31.x86_64 boost-regex-1.69.0-6.fc30.x86_64 ctags-5.8-25.fc30.x86_64 elfutils-default-yama-scope-0.176-1.fc30.noarch elfutils-libs-0.176-1.fc30.x86_64 gdbm-libs-1:1.18-4.fc30.x86_64 glib2-2.61.0-2.fc31.x86_64 libbabeltrace-1.5.6-2.fc30.x86_64 libicu-63.1-2.fc30.x86_64 libipt-2.0-2.fc30.x86_64 python-pip-wheel-19.1-1.fc31.noarch python-setuptools-wheel-41.0.1-1.fc31.noarch python3-libs-3.7.3-2.fc31.x86_64 source-highlight-3.1.8-24.fc31.x86_64 sqlite-libs-3.27.2-3.fc31.x86_64
So that goes against the Change benefit/description.
This is what wiki says:
- /usr/bin/gdb.minimal — GDB executable built without optional unneeded features - /usr/bin/gdb-add-index — Executable script shared with gdb-headless package (modified to fallback to gdb.minimal if exists)
gdb-add-index is in both gdb-minimal and gdb-headless.
On Mon, Apr 29, 2019 at 8:24 AM Miro Hrončok mhroncok@redhat.com wrote:
On 29. 04. 19 2:55, Sergio Durigan Junior wrote:
On Sunday, April 28 2019, Miroslav Suchý wrote:
Dne 26. 04. 19 v 23:49 Ben Cotton napsal(a):
https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
The change will likely affect Mock and will slightly modify its
behaviour.
Right now, it seems that I will add `--allowerasing` to dnf command.
If you are interrested, please join this RFC discussion: https://github.com/rpm-software-management/mock/issues/251
Hey Miroslav,
I just would like to clarify that the change will actually not require any modification from mock's perspective. The final split of the GDB package will work like this:
gdb-minimal will provide /usr/bin/gdb.minimal.
gdb will probide /usr/bin/gdb, and /usr/bin/gdb-add-index (which is the script the buildroot ultimate uses).
/usr/bin/gdb-add-index will check if there's a /usr/bin/gdb.minimal binary available, and use it. Otherwise, it will fallback to /usr/bin/gdb.
Therefore, no Conflicts was needed, which means that even if a package being built depends on gdb, no problems should arise.
Are you sure that the description is correct?
If /usr/bin/gdb-add-index is to be provided by "gdb" package, the "gdb-minimal" package has no reason.
It seems to me according to the change, that the thing needs to be done the other way around:
gdb will probide /usr/bin/gdb
gdb-minimal will provide /usr/bin/gdb.minimal and /usr/bin/gdb-add-index
/usr/bin/gdb-add-index will check if there's a /usr/bin/gdb binary
available, and use it. Otherwise, it will fallback to /usr/bin/gdb.minimal
What am I not getting?
-- Miro Hrončok -- Phone: +420777974800 IRC: mhroncok _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
On 29. 04. 19 8:26, Igor Gnatenko wrote:
This is what wiki says:
- |/usr/bin/gdb.minimal| — GDB executable built without optional unneeded features
- |/usr/bin/gdb-add-index| — Executable script shared with gdb-headless package (modified to fallback to gdb.minimal if exists)
gdb-add-index is in both gdb-minimal and gdb-headless.
Except:
- that's not currently true - proper conflicts for lower versions need to be added then (not there now)
Can we please figure the plan and **approve the change** before doing it?
https://src.fedoraproject.org/rpms/gdb/c/cc7695234a0fb5d5e1357d9e30354aecc3f...
On Mon, Apr 29, 2019 at 8:44 AM Miro Hrončok mhroncok@redhat.com wrote:
On 29. 04. 19 8:26, Igor Gnatenko wrote:
This is what wiki says:
- |/usr/bin/gdb.minimal| — GDB executable built without optional
unneeded features
- |/usr/bin/gdb-add-index| — Executable script shared with gdb-headless package (modified to fallback to gdb.minimal if exists)
gdb-add-index is in both gdb-minimal and gdb-headless.
Except:
- that's not currently true
- proper conflicts for lower versions need to be added then (not there now)
Can we please figure the plan and **approve the change** before doing it?
https://src.fedoraproject.org/rpms/gdb/c/cc7695234a0fb5d5e1357d9e30354aecc3f...
This specific commit does not break anything, it is preparation. It does not break anything or so.
This is the change we actually need to do for implementing change: https://src.fedoraproject.org/rpms/gdb/pull-request/2
-- Miro Hrončok -- Phone: +420777974800 IRC: mhroncok _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
On Monday, April 29 2019, Miro Hrončok wrote:
On 29. 04. 19 8:26, Igor Gnatenko wrote:
This is what wiki says:
- |/usr/bin/gdb.minimal| — GDB executable built without optional unneeded features
- |/usr/bin/gdb-add-index| — Executable script shared with gdb-headless package (modified to fallback to gdb.minimal if exists)
gdb-add-index is in both gdb-minimal and gdb-headless.
Except:
- that's not currently true
- proper conflicts for lower versions need to be added then (not there now)
I've uploaded gdb-8.3.50.20190425-10.fc31 which should address these issues.
Can we please figure the plan and **approve the change** before doing it?
https://src.fedoraproject.org/rpms/gdb/c/cc7695234a0fb5d5e1357d9e30354aecc3f...
Doing this doesn't impact the buildroot at all; things will only be effective when rpm-build is changed to depend/suggest on gdb-minimal. I decided to go ahead and perform the split because I wanted to make sure everything was in place before implementing the change.
On Fri, 26 Apr 2019 at 22:59, Ben Cotton bcotton@redhat.com wrote:
https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
== Owner ==
- Name: [[User:ignatenkobrain|Igor Gnatenko]], [[User:sergiodj|Sergio
Durigan Junior]]
- Email: ignatenkobrain@fedoraproject.org, sergiodj@sergiodj.net
== Detailed Description == Create subpackage in <code>gdb</code> source package called <code>gdb-minimal</code> that will contain 2 files:
- <code>/usr/libexec/gdb-minimal</code> — GDB executable built without
optional unneeded features
- <code>/usr/bin/gdb-add-index</code> — Executable script shared with
gdb-headless package (modified to fallback to gdb-minimal if exists)
Hi Ben,
AFAIK that part of the gdb is used only to separate debuginfo in %post_install. Some times ago IIRC for exactly the same operation was used eu-strip used -o to save stripped part in debuginfo files. Even if eu-strip is not doing stripping correctly better would be better to fix it or modify binutils strip to implement -o option from elfutils strip. Using gdb for saving debuginfo looks like overkill and elfutils is +10 smaller and depends only on glibc.
$ rpm -q --qf "%{NAME}\t%{SIZE}\n" gdb-headless elfutils gdb-headless 18123356 elfutils 1245125
kloczek
On Friday, April 26 2019, Ben Cotton wrote:
https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
== Summary == Create <code>gdb-minimal</code> package (without XML support, Python support, Syntax Highlight and such) and switch to it in buildroot.
Thanks, Ben, and thanks to Igor as well.
== Owner ==
- Name: [[User:ignatenkobrain|Igor Gnatenko]], [[User:sergiodj|Sergio
Durigan Junior]]
- Email: ignatenkobrain@fedoraproject.org, sergiodj@sergiodj.net
== Detailed Description == Create subpackage in <code>gdb</code> source package called <code>gdb-minimal</code> that will contain 2 files:
- <code>/usr/libexec/gdb-minimal</code> — GDB executable built without
optional unneeded features
- <code>/usr/bin/gdb-add-index</code> — Executable script shared with
gdb-headless package (modified to fallback to gdb-minimal if exists)
Just a heads-up: the binary will be named "/usr/bin/gdb.minimal". I have already updated the wiki with this information.
FWIW, a new version of GDB is building right now on Fedora Rawhide:
gdb-8.3.50.20190425-9.fc31
This version will contain the new gdb-minimal package, ready to be used by the buildroot.
Thanks,