Closed Bug 1228558 Opened 9 years ago Closed 9 years ago

Can't build Gtk+2 Firefox on TC

Categories

(Release Engineering :: General, defect)

defect
Not set
normal

Tracking

(firefox45 fixed)

RESOLVED FIXED
Tracking Status
firefox45 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(3 files, 1 obsolete file)

See https://treeherder.mozilla.org/#/jobs?repo=try&revision=0838c59f163f for the error. I narrowed it down to (at least) gdk-pixbuf2-devel.i686 being missing. I don't know if other things are missing.

This can be reproduced by editing build/unix/mozconfig.gtk, and following the instructions at the top of the file, then pushing to try with -p linux.
From my understanding, we don't need to support gtk+2 in automation (ESR, etc. will remain on Buildbot, so we're only talking about current and future versions of Firefox).

So, you can build it on TC, but the images we're using don't support it.  If you'd like to build something non-standard in TC, you can -- you just need to design a docker image with the necessary support.
The interesting thing is that the failure doesn't happen on linux64 because the corresponding .x86_64 package is installed. Why not simply fix the asymmetry? It is still necessary to be able to build Gtk+2 builds for the time being, and requiring to design a docker image just for that when the current image is so close to being able to do it is a big bummer.
We do install gtk2 for both arches:

install gtk2-devel.i686
install gtk2-devel.x86_64
install gtk2.i686
install gtk2.x86_64

so perhaps whatever ends up requiring gdk-pixbuf2-devel.x86_64 doesn't have an i686 twin.

I'd be happy to review a patch to add that package and any others required to the image.
Here's the list of -devel packages where the x86_64 variant is installed but a i686 variant is not:
bzip2-devel-1.0.5-7.el6_0.x86_64
c-ares19-devel-1.9.1-5.el6.3.x86_64
db4-devel-4.7.25-20.el6_7.x86_64
gdbm-devel-1.8.0-38.el6.x86_64
gdk-pixbuf2-devel-2.24.1-6.el6_7.x86_64
gettext-devel-0.17-18.el6.x86_64
hal-devel-0.5.14-14.el6.x86_64
http-parser-devel-2.0-4.20121128gitcd01361.el6.x86_64
keyutils-libs-devel-1.4-5.el6.x86_64
krb5-devel-1.10.3-42.el6.x86_64
libcom_err-devel-1.41.12-22.el6.x86_64
libselinux-devel-2.0.94-5.8.el6.x86_64
libsepol-devel-2.0.41-4.el6.x86_64
libuuid-devel-2.17.2-12.18.el6.x86_64
libuv-devel-0.10.34-1.el6.x86_64
nodejs-devel-0.10.36-3.el6.x86_64
openssl-devel-1.0.1e-42.el6.x86_64
perl-devel-5.10.1-141.el6.x86_64
sqlite-devel-3.6.20-1.el6_7.2.x86_64
v8-devel-3.14.5.10-17.el6.x86_64

Looks like only gdk-pixbuf2-devel is really all that would matter for Firefox. I question the presence of those others -devel packages entirely. Maybe it would make sense to actively remove them. I'll leave that up to you.
Assignee: nobody → mh+mozilla
Attachment #8693854 - Flags: review?(dustin)
Comment on attachment 8693854 [details] [diff] [review]
Explicitly install gdk-pixbuf2-devel for both i686 and x86_64 in centos6 docker image

This looks good.  Did you test it in try, or locally?

It needs a version bump for this image, chained through to centos6-build-upd, and desktop-build.  With that in place I can rebuild the images and push them to the docker hub, then land the patch.
Attachment #8693854 - Flags: review?(dustin) → feedback+
(In reply to Dustin J. Mitchell [:dustin] from comment #6)
> Comment on attachment 8693854 [details] [diff] [review]
> Explicitly install gdk-pixbuf2-devel for both i686 and x86_64 in centos6
> docker image
> 
> This looks good.  Did you test it in try, or locally?

Neither, I started a shell in the save docker image as used in the failing builder, and got the list from comment 4, from which it seems gdk-pixbuf2-devel is the only missing bit. I also have no idea how to test this on try. I guess it involves creating a docker image somehow, which seems a bit suboptimal (that is, I'd rather iterate with extra steps running before the build and that would install the extra packages)
 
> It needs a version bump for this image, chained through to
> centos6-build-upd, and desktop-build.

Is that documented somewhere, or do you have to remind people every time there is an update? I think I figured it out, but it's cumbersome and error-prone. A helper script would definitely help here.
We're almost to the point of automatically building images -- we can build one image, but don't yet have support for chains of images like you're seeing here.  So once that's in place it will work as you expect.
Attachment #8693986 - Flags: review?(dustin) → review+
How does landing this work? I guess the image needs to be created first?
Flags: needinfo?(dustin)
I'm doing that now
Flags: needinfo?(dustin)
Comment on attachment 8694866 [details]
MozReview Request: Bug 1228558: update to taskcluster-vcs@2.3.18 since it works; r?jonasfj

https://reviewboard.mozilla.org/r/26911/#review24325

::: testing/docker/centos6-build/system-setup.sh:428
(Diff revision 1)
> -npm install -g taskcluster-vcs@2.3.12
> +npm install -g taskcluster-vcs@2.3.18

If you want an exact version, you should keep a shrinkwrap file.. So all dependencies are locked too.

Anyways, this is no worse than what was already there :)

r+
Attachment #8694866 - Flags: review?(jopsen) → review+
OK -- images are built and pushed.  If you want to land your patch along with mine, either squashed or separately, please do!  Sorry for the delay -- including npm in an image build process was not the best idea.
Component: General Automation → General
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: