New issue
Advanced search Search tips

Issue 704365 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Upgrading sys-apps/dbus

Project Member Reported by wonderfly@google.com, Mar 23 2017

Issue description

Lakitu team is looking into upgrading to systemd 232, which requires >=sys-apps/dbus-1.8. The current dbus in chromiumos-overlay is 1.6.30, while that of Gentoo upstream is 1.10.12.

https://packages.gentoo.org/packages/sys-apps/dbus

I've upgraded it locally and sort of got it working, along with the new systemd version. Before uploading my patches, benchan@, what are your thoughts/concerns?
 
Cc: wonderfly@google.com
There are ChromeOS-specific patches applied to sys-apps/dbus, so we just need to make sure they are ported over to dbus 1.8.

I was half-way through porting the patches to dbus 1.10, so feel free to ping me if you run into any issue with the patches.
> I was half-way through porting the patches to dbus 1.10, so feel free to ping me if you run into any issue with the patches.

Thanks Ben. Yeah I took a stab too and I think there was only one that needed to be reworked. I'll do more testing and upload my CLs soon.

One other thing. I started off from Gentoo's ebuild, which is written in EPAI6. ChromiumOS's portage only supports up to EPAI5, so I had to do a few minor tweaks. Will you be okay with that?

Comment 4 by vapier@chromium.org, Mar 23 2017

changing EAPI=6 to EAPI=5 is fine
Owner: wonderfly@google.com
Status: Started (was: Untriaged)
Question: `emerge-lakitu dev-libs/dbus-glib` fails for me but passes if I re-emerge dbus-glib on the host. Seems it relies on the `dbus-bindings-tool` from the host, and since dbus is updated, dbus-glib needs to be updated too.

I tried `cros_sdk --replace` and the same thing happens.

Should I manually uprev dbus-glib? Why doesn't the SDK update it as it knows dbus is updated?
> since dbus is updated, dbus-glib needs to be updated too.

I meant, dbus-glib should be _rebuilt_.

Comment 8 by vapier@chromium.org, Mar 23 2017

seems like landing a dbus-glib upgrade at the same time would be the easiest route

the sdk doesn't rebuild it because it shouldn't need to -- the depgraph says it's fine
What do I do for a cros_workon package? For example, `/usr/bin/generate-chromeos-dbus-bindings` needs to be rebuilt too, which comes from a `chromeos-base/chromeos-dbus-bindings` which is a cros_workon package.
you can add a file like chromeos-base/autotest-deps/files/chromeos-version.sh
Thanks. Sorry but another question... When I was experimenting I was mostly manually uprevving to get things flowing and never dug too deep until now.

dbus-python/dbus-python needs to be rebuilt. I wanted to upgrade it to gentoo stable, 1.2.0-r1, but the new ebuild doesn't build with our version of python-* eclasses, complaining "Invalid implementation in PYTHON_COMPAT: python3_6".

Updating the python-* eclasses would require more caution, e.g., packages with EPAI<=4 would be broken.

In this particular case, just removing "6" from the "PYTHON_COMPAT=( python2_7 python3_{4,5,6} )" line would get it build for me.

vapier@, what do you think? Or should I copy the package to chromiumos-overlay and modify it there?
just drop the 3_6 from the ebuild before putting it into portage-stable
Thanks for the prompt response!
vapier@, I had to manually uprev libchrome and libnih to get them rebuilt by the sdk, even though there were no changes in their ebuilds. There are no new versions of each so I couldn't "upgrade".

How do you like that?
Project Member

Comment 15 by bugdroid1@chromium.org, Apr 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/0c7feb1bd24e1fab33676c204a0cc49674fab04c

commit 0c7feb1bd24e1fab33676c204a0cc49674fab04c
Author: Ben Chan <benchan@chromium.org>
Date: Mon Apr 10 23:30:55 2017

chromeos-chrome: add missing dependency on sys-apps/dbus

Chrome for Chrome OS is built with `use_dbus = true` (see
<chrome>/src/build/config/features.gni) and linked against libdbus-1,
which requires sys-apps/dbus as build and runtime dependency.

BUG= chromium:704365 
TEST=Remote trybot runs on paladin and release builders.

Change-Id: I7f39a63db8fe3344fee1331930ed4e11f103bfa7
Reviewed-on: https://chromium-review.googlesource.com/473647
Reviewed-by: Dan Erat <derat@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>

[modify] https://crrev.com/0c7feb1bd24e1fab33676c204a0cc49674fab04c/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild

Project Member

Comment 16 by bugdroid1@chromium.org, Apr 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/2b1a26afb4b43172e7b455378084b37b78571391

commit 2b1a26afb4b43172e7b455378084b37b78571391
Author: Daniel Wang <wonderfly@google.com>
Date: Thu Apr 13 22:19:02 2017

dbus_send: correctly parse new dbus message header

dbus-1.10.12 has changed the message header a bit. Noticeably, it now
includes an optional "time=" field, and a mandatory "serial=" field.
Also, "dest=" is changed to "destination="

https://cgit.freedesktop.org/dbus/dbus/tree/tools/dbus-print-message.c?id=dbus-1.10.12#n545
https://cgit.freedesktop.org/dbus/dbus/tree/tools/dbus-print-message.c?id=dbus-1.10.12#n572

For easier transition, the regex for older header format is kept. That
way this CL can go in before the dbus upgrade, and we could delete it
easily when that happens.

BUG= chromium:704365 , b:34841890
TEST=test_that -b x86-generic ... peerd_DiscoverServices peerd_AdvertiseServices

Change-Id: I032706f681537dbe880d358b8c832a86c8ce3a35
Reviewed-on: https://chromium-review.googlesource.com/465546
Commit-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/2b1a26afb4b43172e7b455378084b37b78571391/client/common_lib/cros/dbus_send.py

Project Member

Comment 17 by bugdroid1@chromium.org, Apr 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/3a46dcf7c6ccd7785760cc52766c5f713b821e48

commit 3a46dcf7c6ccd7785760cc52766c5f713b821e48
Author: Daniel Wang <wonderfly@google.com>
Date: Sat Apr 22 04:57:29 2017

sys-apps/dbus: upgraded to 1.10.12 and upreved libchrome

Upgraded dbus to Gentoo stable, 1.10.12. Ebuild was tweaked to build
with EAPI5 - had to replace
`--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"' with
`"$(systemd_with_unitdir)"'.

Two patches were dropped as they appear in upstream.
dbus-1.6.8-send-print-fixed.patch was remade.

This dbus upgrade includes a breaking ABI change: public APIs are now
exported in a version specific namespace, i.e., LIBDBUS_1_3, as opposed
to 'Base', which a few chromeos packages assume, including libchrome and
Chrome.

libchrome is easy. We just have to uprev it so it gets re-linked. Chrome
is trickier because most pre-cq/paladin builders are designed to not
build it from source. They use a prebuilt version linked against an
older libdbus. Just so this change gets through pre-cq/cq, we add a
compat hack in the dbus ebuild, that exports the symbols used by Chrome
in the 'Base' name space, in addition to the default LIBDBUS_1_3. Once a
new Chrome is built (which should be linked with the LIBDBUS_1_3 symbols
as they are default), we can remove that hack.

The selected symbols are obtained from `readelf -sW
/build/$BOARD/opt/google/chrome/chrome | grep -i @Base`

For some reason the compat hack doesn't work for the SDK. Since we don't
need it for the SDK anyway, we hide it behind USE=cros_host.

BUG=b:34841890,  chromium:704365 
TEST=trybots against chromiumos-sdk, x86-mario-release, lakitu-release,
    daisy-release, x86-generic-full, amd64-generic-full,
    caroline-paladin, and caroline-release
CQ-DEPEND=CL:459092, CL:459704, CL:461216, CL:465546

Change-Id: Iee257bb0d459ac20c8871e1d41bdf9d3c87e1c03
Reviewed-on: https://chromium-review.googlesource.com/461717
Commit-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/3a46dcf7c6ccd7785760cc52766c5f713b821e48/sys-apps/dbus/Manifest
[delete] https://crrev.com/2a850eec765d6806c6e890d1597a44c5648d63ed/sys-apps/dbus/dbus-1.6.30-r1.ebuild
[rename] https://crrev.com/3a46dcf7c6ccd7785760cc52766c5f713b821e48/chromeos-base/libchrome/libchrome-395517-r9.ebuild
[add] https://crrev.com/3a46dcf7c6ccd7785760cc52766c5f713b821e48/sys-apps/dbus/files/dbus.initd-r1
[add] https://crrev.com/3a46dcf7c6ccd7785760cc52766c5f713b821e48/sys-apps/dbus/files/dbus-1.10.12-export-symbols-in-base-namespace.patch
[delete] https://crrev.com/2a850eec765d6806c6e890d1597a44c5648d63ed/sys-apps/dbus/files/dbus-1.6.30-dynamically-link-libdbus.patch
[delete] https://crrev.com/2a850eec765d6806c6e890d1597a44c5648d63ed/sys-apps/dbus/files/dbus.initd
[delete] https://crrev.com/2a850eec765d6806c6e890d1597a44c5648d63ed/sys-apps/dbus/files/dbus-1.5.12-selinux-when-dropping-capabilities-only-include-AUDI.patch
[rename] https://crrev.com/3a46dcf7c6ccd7785760cc52766c5f713b821e48/sys-apps/dbus/files/dbus-1.10.12-send-print-fixed.patch
[delete] https://crrev.com/2a850eec765d6806c6e890d1597a44c5648d63ed/sys-apps/dbus/dbus-1.6.30.ebuild
[add] https://crrev.com/3a46dcf7c6ccd7785760cc52766c5f713b821e48/sys-apps/dbus/dbus-1.10.12-r1.ebuild
[add] https://crrev.com/3a46dcf7c6ccd7785760cc52766c5f713b821e48/sys-apps/dbus/dbus-1.10.12.ebuild

Project Member

Comment 18 by bugdroid1@chromium.org, Apr 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/33f6de2b3b90549b6de2adcc7ac2a7cbf01109de

commit 33f6de2b3b90549b6de2adcc7ac2a7cbf01109de
Author: Daniel Wang <wonderfly@google.com>
Date: Sat Apr 22 04:57:28 2017

dbus-glib: upgraded package to upstream

Upgraded dev-libs/dbus-glib to version 0.102 on amd64, arm, x86

In preparation for upgrading to dbus-1.10.12.

BUG= chromium:704365 , b:34841890
TEST=trybots for chromiumos-sdk, x86-mario-release, lakitu-release and
    daisy-release
CQ-DEPEND=CL:461717

Change-Id: I30526c783c91e5b9f116423cb21074ec5ad28b4a
Reviewed-on: https://chromium-review.googlesource.com/459092
Commit-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/33f6de2b3b90549b6de2adcc7ac2a7cbf01109de/dev-libs/dbus-glib/Manifest
[delete] https://crrev.com/6e182275a38467a2e2fcae82fc6c308d08e7c5e2/dev-libs/dbus-glib/files/dbus-glib-0.100-fix-tests.patch
[modify] https://crrev.com/33f6de2b3b90549b6de2adcc7ac2a7cbf01109de/dev-libs/dbus-glib/metadata.xml
[add] https://crrev.com/33f6de2b3b90549b6de2adcc7ac2a7cbf01109de/dev-libs/dbus-glib/dbus-glib-0.102.ebuild
[delete] https://crrev.com/6e182275a38467a2e2fcae82fc6c308d08e7c5e2/metadata/md5-cache/dev-libs/dbus-glib-0.100.2
[delete] https://crrev.com/6e182275a38467a2e2fcae82fc6c308d08e7c5e2/dev-libs/dbus-glib/dbus-glib-0.100.2.ebuild
[delete] https://crrev.com/6e182275a38467a2e2fcae82fc6c308d08e7c5e2/dev-libs/dbus-glib/files/dbus-glib-0.100-dbus-glib-sections.txt
[add] https://crrev.com/33f6de2b3b90549b6de2adcc7ac2a7cbf01109de/metadata/md5-cache/dev-libs/dbus-glib-0.102

Project Member

Comment 19 by bugdroid1@chromium.org, Apr 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/2bc7eddf6d945170534c1c7c8f6a72f27652f9ff

commit 2bc7eddf6d945170534c1c7c8f6a72f27652f9ff
Author: Daniel Wang <wonderfly@google.com>
Date: Sat Apr 22 04:57:28 2017

dbus-python: upgraded package to upstream

Upgraded dev-python/dbus-python to version 1.2.0-r1 on amd64

In preparation for dbus upgrade. New ebuild was slightly tweaked to
build with current python eclasses - "python3_6" was dropped.

BUG= chromium:704365 , b:34841890
TEST=trybots for chromiumos-sdk, x86-mario-release, lakitu-release and
    daisy-release
CQ-DEPEND=CL:461717

Change-Id: I557940a8ecaf8d3ee9ae7a26da5c6beb642ef443
Reviewed-on: https://chromium-review.googlesource.com/459704
Commit-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/2bc7eddf6d945170534c1c7c8f6a72f27652f9ff/dev-python/dbus-python/dbus-python-1.2.0-r1.ebuild
[modify] https://crrev.com/2bc7eddf6d945170534c1c7c8f6a72f27652f9ff/dev-python/dbus-python/metadata.xml
[delete] https://crrev.com/33f6de2b3b90549b6de2adcc7ac2a7cbf01109de/metadata/md5-cache/dev-python/dbus-python-0.84.0
[delete] https://crrev.com/33f6de2b3b90549b6de2adcc7ac2a7cbf01109de/dev-python/dbus-python/files/dbus-python-0.83.1-workaround-broken-test.patch
[delete] https://crrev.com/33f6de2b3b90549b6de2adcc7ac2a7cbf01109de/dev-python/dbus-python/dbus-python-0.84.0.ebuild
[modify] https://crrev.com/2bc7eddf6d945170534c1c7c8f6a72f27652f9ff/dev-python/dbus-python/Manifest
[add] https://crrev.com/2bc7eddf6d945170534c1c7c8f6a72f27652f9ff/metadata/md5-cache/dev-python/dbus-python-1.2.0-r1

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/60f3d4ee8f673d00783689deb08142ccee682c2b

commit 60f3d4ee8f673d00783689deb08142ccee682c2b
Author: Daniel Wang <wonderfly@google.com>
Date: Sat Apr 22 04:57:29 2017

sys-libs/libnih: uprev so it will be rebuilt by sdk

As part of the dbus upgrade, the nih-dbus-tool in the sdk needs to be
rebuilt against the new dbus. Since there hasn't been a new release of
libnih, nor a new rev on Gentoo upstream, I am simply uprevving it with
no functional change.

BUG=b:34841890,  chromium:704365 
TEST=trybots against chromiumos-sdk, x86-mario-release, lakitu-release
    and daisy-release.
CQ-DEPEND=CL:461717

Change-Id: I8fffa2027dcb715d9009456cedf9ad22c2654823
Reviewed-on: https://chromium-review.googlesource.com/461216
Commit-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/60f3d4ee8f673d00783689deb08142ccee682c2b/sys-libs/libnih/libnih-1.0.3-r4.ebuild

Status: Fixed (was: Started)
Update: dbus has been upgraded to 1.10.12 in chromiumos-overlay, and I see that a new Chrome was built with it and an uprev happened. There were a couple compat hacks we had to include in the upgrade. vapier@ suggested that we remove them once the upgrade sticks. So let's see.


Project Member

Comment 22 by bugdroid1@chromium.org, May 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/40880f01b143f32eb42ef151db4630d1d495265d

commit 40880f01b143f32eb42ef151db4630d1d495265d
Author: Mike Frysinger <vapier@chromium.org>
Date: Fri May 26 00:15:55 2017

dbus: drop Base version hack

Now that Chrome has uprevved, we can drop this hack.

BUG= chromium:704365 
TEST=precq passes

Change-Id: I00ae58a5b95488e5124e5446594545f4dd633e43
Reviewed-on: https://chromium-review.googlesource.com/514803
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Ben Chan <benchan@chromium.org>

[delete] https://crrev.com/6e27f1f7d0d90dac34a26bf97c4d6a39eac968d7/sys-apps/dbus/files/dbus-1.10.12-export-symbols-in-base-namespace.patch
[modify] https://crrev.com/40880f01b143f32eb42ef151db4630d1d495265d/sys-apps/dbus/dbus-1.10.12.ebuild
[rename] https://crrev.com/40880f01b143f32eb42ef151db4630d1d495265d/sys-apps/dbus/dbus-1.10.12-r5.ebuild

Project Member

Comment 23 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/8cd06cea704d27bac99e18290bc7097611cfafb7

commit 8cd06cea704d27bac99e18290bc7097611cfafb7
Author: Daniel Wang <wonderfly@google.com>
Date: Tue Jun 27 09:32:18 2017

[autotest]dbus_send: Drop the compat regex in the output parsing logic

Now that dbus is upgraded to 1.10.12, we can drop the compat logic.

BUG= chromium:704365 
TEST=python client/common_lib/cros/dbus_send_unittest.py
TEST=test_that -b amd64-generic-goofy ... peerd_DiscoverServices peerd_AdvertiseServices
TEST=trybot for amd64-generic-goofy-release

Change-Id: I2294d78b32c49e9ab44f1bdef6d10432dabba416
Reviewed-on: https://chromium-review.googlesource.com/487263
Commit-Ready: Daniel Wang <wonderfly@google.com>
Tested-by: Daniel Wang <wonderfly@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/8cd06cea704d27bac99e18290bc7097611cfafb7/client/common_lib/cros/dbus_send.py
[modify] https://crrev.com/8cd06cea704d27bac99e18290bc7097611cfafb7/client/common_lib/cros/dbus_send_unittest.py

Labels: VerifyIn-61

Comment 25 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment