User:Rguenther

From openSUSE

I am toolchain engineer in the SUSE Labs department, working full time on upstream GCC development and SUSE GCC packaging and maintainance.


2009-07-24

Hackweek ended early for me - Kurzarbeit. The debuginfo sub-package change was deployed (and I fixed one critical bug today) and it seems to work pretty well. Apart from the improvements I already talked about we now for the first time get debuginfo for multilib library packages (also known as baselibs)! This means you can now debug 32bit applications you build on your 64bit system including all the dependent libraries. This seems to automagically work only for packages following the shared library policy (thus, shared library packages named lib*).


2009-07-21

Milestone two reached. rpm now generates debuginfo sub-packages for each sub-package that has debuginformation extracted by find-debuginfo.sh. For example the telnet package creates telnet and telnet-server. Debuginformation is now distributed into telnet-debuginfo and telnet-server-debuginfo instead of just telnet-debuginfo. The debug sources are still in their original single place, telnet-debugsource - it does not make sense to split them.

You can find patches and packages for both milestones in the home:rguenther:hw build-service project.

Update for milestone one: it is only in effect if you deploy the modified build rpm on the server side as the build script used for preparing the spec file (and thus dealing with the build counter insertion) is not the one installed in the build chroot but instead is a special one that cannot be replaced.


2009-07-20

As appearantly blogging on lizards.opensuse.org is only possible for openSUSE members here is some live coverage of HackWeekIV :)

Milestone one was reached today. Both rpm and build now manage the rebuild counter (the number after the dot in the rpm release tag) in a more sane way:

  • Source and noarch packages do not have the rebuild counter in their name.
 With this we can get rid of syncing the rebuild counters for
 packages between the different architectures in one project.
  • %{release} does not include the rebuild counter.
 This means that dependencies from the rpm spec file that use 
 %{version}-%{release} no longer depend on a specific rebuild of a 
 package.  Which in turn enables us to drop sub-packages that compare 
 equal after a rebuild and not sync out all packages just because one 
 sub-package changed.

Note that the release tag in the rpm header for binary packages still contains the rebuild counter, so rebuilt packages are newer than the previous version and will get updated. A possible issue with disabling the rebuild counter sync is that there may be a newer (more often rebuilt) package in a related architecture like i586 for x86_64 which may confuse the update stack.

Starting from tomorrow I will work on transitioning from a single debuginfo package per package to one debuginfo package per sub-package. This should then allow you to install debug information for say /usr/lib/libstdc++.so.6 without getting debug information for the Ada compiler (which you likely do not even have installed).