Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gnome3: 3.24 → 3.26 #29392

Merged
merged 40 commits into from Nov 29, 2017
Merged

gnome3: 3.24 → 3.26 #29392

merged 40 commits into from Nov 29, 2017

Conversation

jtojnar
Copy link
Contributor

@jtojnar jtojnar commented Sep 14, 2017

Current state

It does not build yet, I am creating a PR to avoid duplicated work. Help and patches encouraged.

GDM only shows a black screen.

Ready for testing, please report any issues.

  • Move gnome3 directory (Merge gnome3: only maintain single GNOME 3 package set #29397)
  • Review dleyna (gnome3: Add dleyna service #28826)
  • Review meson-absolute-gir (meson: pass library install paths to g-ir-scanner #31453)
  • Review schema-override-variable (glib: Add variable for overriding schemas #31683)
  • Fix libgda to work with GLib (for anjuta)
  • Figure out how to prevent conflicts between meson setup hooks and ./configure (see gnome-software) Cannot reproduce at the moment.
  • Package flatpak (for now building gnome-software without it)
  • Switch to meson
    • epiphany
    • gnome-bluetooth
    • gnome-calendar
    • gnome-color-manager (not packaged)
    • gnome-disk-utility
    • gnome-font-viewer
    • gnome-screenshot (only unstable 3.25 available)
    • gnome-shell
    • gnome-tweak-tool
    • libgxps
    • nautilus
    • nautilus-sendto
    • polari
    • simple-scan
    • totem
    • totem-pl-parser
    • colord
    • gnome-clocks
    • gnome-dictionary
    • gnome-software
    • json-glib
    • geocode-glib (only unstable 3.25 available)
    • gom aka GObject Data Mapper (not packaged)
    • graphene (not packaged)
    • gnome-todo (not packaged)
    • gnome-multi-writer (not packaged)
    • jsonrpc-glib (not packaged)
    • libdazzle (not packaged)
    • gnome-builder (not packaged)
    • gnome-recipes (not packaged)
    • atk (still supports autotools)
    • clutter-gtk (still supports autotools)
    • fwupd (still supports autotools)
    • gdk-pixbuf (still supports autotools)
    • gstreamer (still supports autotools)
    • gst-plugins-bad (still supports autotools)
    • gst-plugins-base (still supports autotools)
    • gst-plugins-good (still supports autotools)
    • gtk+ (still supports autotools)
    • libgepub (still supports autotools)
    • libinput (still supports autotools)
    • pango (still supports autotools)
    • gnome-backgrounds (still supports autotools)
  • Bump vala dependencies
  • Fix libhttpseverywhere
  • Move simple-scan from top-level to gnome3 package set
  • Check if mutter builds on x86 (https://bugzilla.gnome.org/show_bug.cgi?id=749876) – we had a patch (4053dcd) but it no longer applies
  • Figure out why intltool does not play with spice-gtk (they migrated to gettext without mentioning it in the changelog)
  • Clean-up webkitgtk postConfigure and patches (this will take ages, maybe leave it for someone with more performant PC)
  • Extract my lazy substituteInPlace into patches
  • Upgrade
  • Figure out why setting rpath does not work for polari
  • Figure out why gdm does not start
  • Figure out why does not json_glib generate introspection files (it does now, no idea what I’ve seen)
  • Rebase onto [wip] Various GNOME 3.26 libraries: update #30371 (the libraries excepting gjs libgepub)
  • Remove gitg update in favour of libgit2: 0.25.1 -> 0.26.0 #31119
  • Figure out why toggling natural scrolling does not work (not a GNOME regression, see Changing mouse settings in GNOME does not work #31670)
  • Figure out why extraGSettingsOverrides do not work
  • Testing

@lheckemann
Copy link
Member

Oh boy, just when we've got 3.24 in... :D

@vcunat
Copy link
Member

vcunat commented Sep 14, 2017

FWIW, it seems that meson may tend to cause troubles by not adding RPATH.

@jtojnar jtojnar changed the base branch from master to staging September 14, 2017 21:55
@jtojnar jtojnar force-pushed the gnome-3.26 branch 3 times, most recently from 0ebbc6d to acf628e Compare September 14, 2017 22:10
@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 15, 2017

@lheckemann Well, the PR is still largely incomplete. I encourage anyone to try to build a package or open a PR against my branch. The main bottleneck for me is the build time so if we can distribute the packages between multiple people we will have Manchester sooner.

@vcunat We will have to update the build files as suggested upstream or patch the binaries as you did in efeef04.

@vcunat
Copy link
Member

vcunat commented Sep 15, 2017

Well, you based the branch on a staging commit that hasn't even been evaluated by Hydra. If you instead based e.g. on two commits earlier (d94c7f5), there would be noticeably less to rebuild.

@jtojnar jtojnar force-pushed the gnome-3.26 branch 5 times, most recently from a87a0d0 to 77bedc5 Compare September 16, 2017 03:30
@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 16, 2017

The rpaths are indeed bothersome. Is there a way other than listing transitive buildInputs manually?

@vcunat
Copy link
Member

vcunat commented Sep 16, 2017

Do they not support building without meson anymore? (until we find a real solution for meson)

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 16, 2017 via email

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 16, 2017

I tried wrapping polari but for some reason it tries to find the library in $out/lib instead of $out/lib/polari where it is stored:

 $ result/bin/polari 

** (.:12632): WARNING **: Failed to load shared library '/nix/store/mlfxkrkkw8kxp9kr4qmf99dmd5mrcfnz-polari-3.26.0/lib/libpolari-1.0.so' referenced by the typelib: /nix/store/mlfxkrkkw8kxp9kr4qmf99dmd5mrcfnz-polari-3.26.0/lib/libpolari-1.0.so: cannot open shared object file: No such file or directory

(.:12632): Gjs-WARNING **: JS ERROR: Error: Unsupported type void, deriving from fundamental void
@resource:///org/gnome/Polari/js/mainWindow.js:117:1
@resource:///org/gnome/Polari/js/application.js:12:7
@resource:///org/gnome/Polari/js/main.js:18:7
start@resource:///org/gnome/gjs/modules/package.js:205:5
@<main>:1:1

** Message: Execution of start() threw exception: JS_EvaluateScript() failed

Edit: I am running the following code to make sure there are no libraries missing from rpath:

for elf in result/bin/.*-wrapped result/libexec/.*-wrapped result/lib/**.so
    ldd -r "$elf" | grep 'not found'
end

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 17, 2017

I fixed gnome-software, though one plug-in contains libgio-2.0.so.0 twice and cannot find one of them, not sure it is of any concern.

$ ldd result/lib/gs-plugins-11/libgs_plugin_ubuntuone.so
    linux-vdso.so.1 (0x00007ffcb9944000)
    libgobject-2.0.so.0 => /nix/store/achna55hhdnk82slqa9rzd9mzg0y8xcs-glib-2.54.0/lib/libgobject-2.0.so.0 (0x00007fb56bd1a000)
    libglib-2.0.so.0 => /nix/store/achna55hhdnk82slqa9rzd9mzg0y8xcs-glib-2.54.0/lib/libglib-2.0.so.0 (0x00007fb56ba05000)
    libjson-glib-1.0.so.0 => /nix/store/pdmqrdi8vsx5n4vr3s0hw3q33p9iz2yx-json-glib-1.4.2/lib/libjson-glib-1.0.so.0 (0x00007fb56b7dd000)
    libsoup-2.4.so.1 => /nix/store/zfy6knhldhflk9sjdvg6iplr06kh2b7j-libsoup-2.59.90.1/lib/libsoup-2.4.so.1 (0x00007fb56b4ed000)
    libc.so.6 => /nix/store/sgjc1147vi5hd57ck9xgck5xjkydg5lz-glibc-2.25/lib/libc.so.6 (0x00007fb56b14e000)
    libpcre.so.1 => /nix/store/nqx8hjlw731k1ycqv3za4hdi2fg0qbs7-pcre-8.40/lib/libpcre.so.1 (0x00007fb56aedb000)
    libpthread.so.0 => /nix/store/bwax7l3946zn3l806727sd1fk8ssjgpv-glibc-2.25-49/lib/libpthread.so.0 (0x00007fb56acbd000)
    libffi.so.6 => /nix/store/irwfliq3dmrc8hhaqxk658jrx64r0zkj-libffi-3.2.1/lib/../lib64/libffi.so.6 (0x00007fb56aab4000)
    libgio-2.0.so.0 => not found
    libgio-2.0.so.0 => /nix/store/achna55hhdnk82slqa9rzd9mzg0y8xcs-glib-2.54.0/lib/libgio-2.0.so.0 (0x00007fb56a719000)
    libgmodule-2.0.so.0 => /nix/store/achna55hhdnk82slqa9rzd9mzg0y8xcs-glib-2.54.0/lib/libgmodule-2.0.so.0 (0x00007fb56a515000)
    libresolv.so.2 => /nix/store/bwax7l3946zn3l806727sd1fk8ssjgpv-glibc-2.25-49/lib/libresolv.so.2 (0x00007fb56a2ff000)
    libmount.so.1 => /nix/store/pr69pbfvl86g25x2pg2xf5xwh60dv7fl-util-linux-2.30/lib/libmount.so.1 (0x00007fb56a0ab000)
    libblkid.so.1 => /nix/store/pr69pbfvl86g25x2pg2xf5xwh60dv7fl-util-linux-2.30/lib/libblkid.so.1 (0x00007fb569e60000)
    libuuid.so.1 => /nix/store/pr69pbfvl86g25x2pg2xf5xwh60dv7fl-util-linux-2.30/lib/libuuid.so.1 (0x00007fb569c5b000)
    librt.so.1 => /nix/store/bwax7l3946zn3l806727sd1fk8ssjgpv-glibc-2.25-49/lib/librt.so.1 (0x00007fb569a53000)
    libxml2.so.2 => /nix/store/7kzghzh693a94kcgc4kshcv8a81q0j4i-libxml2-2.9.4/lib/libxml2.so.2 (0x00007fb5696ee000)
    libz.so.1 => /nix/store/6gxad5pia43zdcy0bc1ba8bxh7fhfpsg-zlib-1.2.11/lib/libz.so.1 (0x00007fb5694d7000)
    libm.so.6 => /nix/store/bwax7l3946zn3l806727sd1fk8ssjgpv-glibc-2.25-49/lib/libm.so.6 (0x00007fb5691c4000)
    libsqlite3.so.0 => /nix/store/lxdm6klbizw7w4glv6xfcbyc1kwd8nn4-sqlite-3.20.0/lib/libsqlite3.so.0 (0x00007fb568ec3000)
    libdl.so.2 => /nix/store/bwax7l3946zn3l806727sd1fk8ssjgpv-glibc-2.25-49/lib/libdl.so.2 (0x00007fb568cbf000)
    /nix/store/sgjc1147vi5hd57ck9xgck5xjkydg5lz-glibc-2.25/lib64/ld-linux-x86-64.so.2 (0x00007fb56c172000)

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 18, 2017

I finished fixing the meson build for the rest of the apps except for epiphany gnome-shell and gnome-tweak-tool, which depend on webkitgtk unconditionally (directly or via gnome-online-accounts). Will let build it overnight.

I also had some troubles with totem, which requires a debian specific pycompile script, for now I am skipping the python compilation.

@etu
Copy link
Contributor

etu commented Sep 18, 2017

Is there any chance that an upgrade of gnome also could resolve #14318? Might be out of scope, but since stuff are remade it might be a good time?

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 18, 2017

@etu sorry, I do not yet understand how those things work. Maybe later.

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 19, 2017

I have fixed epiphany then got stuck on gnome-shell for a while. Turns out meson build hook changes the directory so the preBuild hook needs to look one level up.

Now all derivations requiring meson should build and be wrapped correctly – well except for polari, that will require further debugging (see above).

Edit: Everything looks green except for gpaste, which for some reason cannot find mutter-clutter, even though mutter, which contains that pc file is in build depends.

checking for mutter-clutter-0 gjs-1.0 >= 1.48.0... no
configure: error: Package requirements (mutter-clutter-0 gjs-1.0 >= 1.48.0) were not met:

No package 'mutter-clutter-0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables JS_EXTENSION_CFLAGS
and JS_EXTENSION_LIBS to avoid the need to call pkg-config.

Edit2: GPaste 3.26 was released 3 days ago, which fixes compatibility with GNOME 3.26.

Also Bijiben does not build with the new tracker. I am marking it as broken since it was pretty buggy anyway.

Edit3: There is something weird happening with intltool in spice-gtk, for now it is building without gettext support.

Edit4: Apparently gnome-font-viewer will release 3.26 soon, we are not done yet.

Edit5: It was actually already released. And now it is packaged too. Commence testing!

Edit6: GNOME Shell immediately sigtraps on missing gsettings schemas.

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 19, 2017

Would it be possible to get hydra to build this branch so that users could test this more easily?

@vcunat
Copy link
Member

vcunat commented Sep 19, 2017

Yes, I think so. It will probably take some time, as it has lower scheduling shares than most other branches.

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 19, 2017

Thanks.

I did some more tinkering and managed to make gdm display cursor. Unfortunately I have no idea how to fix it. These two messages stand out:

Sep 19 13:12:54 kaiser .gnome-shell-wr[997]: Failed to create backend: Unable to open display, DISPLAY not set
Sep 19 13:12:54 kaiser gnome-session[987]: gnome-session-binary[987]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Sep 19 13:12:54 kaiser gnome-session-binary[987]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Sep 19 13:12:54 kaiser gnome-session-binary[987]: Unrecoverable failure in required component org.gnome.Shell.desktop
Sep 19 13:12:54 kaiser gdm[914]: GdmDisplay: display lasted 0.994540 seconds
Sep 19 13:12:57 kaiser .gnome-shell-wr[1036]: Execution of main.js threw exception: JS_EvaluateScript() failed
Sep 19 13:12:57 kaiser gnome-session[1029]: gnome-session-binary[1029]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1

Rest of the log:
https://gist.github.com/jtojnar/965502b0ba657b265303a33bab9157ba

@vcunat
Copy link
Member

vcunat commented Sep 19, 2017

Just in case, so you don't do the same again, I have some simpler updates, often related to GTK+. I plan to stage them as soon as I get to run my system on it.

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 19, 2017

@vcunat I have already upgraded glib as it was required by some apps. It also switched to Python 3 and the upgrade will break libgnome, libgnomeui and libgda.

@vcunat
Copy link
Member

vcunat commented Sep 20, 2017

Well, your updated glib won't build when sandboxed, as shown on the Hydra jobset I created.

@jtojnar
Copy link
Contributor Author

jtojnar commented Sep 21, 2017

For now, I will try to run GNOME with SSDM or something. Hydra also found some more issues but I cannot reproduce them locally, even with sandboxing enabled.

NixOS generates /etc/dbus-1/system.conf including the configuration
of all the dbus derivations. Unfortunately, colord places the configuration
into $out/share instead of expected $out/etc.

This commit patches colord to use the expected path.

hughsie/colord#61
For some reason, the GNOME 3.26 update broke the overrides. It turns
out the overrides now need to come before the overridden schemas in the
XDG_DATA_DIRS variable. This is not possible in general due to applications
prefixing the variable (e.g. in wrapGAppsHook).

To fix this, a new environment variable NIX_GSETTINGS_OVERRIDES_DIR
was introduced. It has greater priority than XDG_DATA_DIRS but lower
than GSETTINGS_SCHEMA_DIR. A separate variable was chosen in order not
to block the built-in one for users.
For some reason, the GNOME 3.26 update broke the overrides. It turns
out the overrides now need to come before the overridden schemas in the
XDG_DATA_DIRS variable. This is not possible in general due to applications
prefixing the variable (e.g. in wrapGAppsHook).

To fix this, a new environment variable NIX_GSETTINGS_OVERRIDES_DIR
was introduced. It has greater priority than XDG_DATA_DIRS but lower
than GSETTINGS_SCHEMA_DIR. A separate variable was chosen in order not
to block the built-in one for users.
* Fixes some GNOME segfaults
@jtojnar
Copy link
Contributor Author

jtojnar commented Nov 26, 2017

More updates:

  • gnome3.epiphany: 3.26.2 → 3.26.3
  • gnome3.libgames-support: 1.2.1 → 1.2.3

@eqyiel
Copy link
Contributor

eqyiel commented Nov 26, 2017

Can we move this forward? Even if there is stuff left to do, I think this is a huge improvement over the current state of GNOME on nixos-unstable.

@jtojnar
Copy link
Contributor Author

jtojnar commented Nov 26, 2017

@eqyiel There are no known regressions, we are just waiting for a review on the glib patch.

vcunat added a commit that referenced this pull request Nov 27, 2017
It might be slightly confusing that a couple of the changes will be twice
in the history, but let's merge this way.
@jtojnar jtojnar moved this from Ready to Done in GNOME Nov 27, 2017
@vcunat vcunat merged commit e69a324 into NixOS:master Nov 29, 2017
@orivej
Copy link
Contributor

orivej commented Nov 29, 2017

The switch of the default vala in 5a3b7ef broke some things: gencfsm (d643183), libskk (6c82383). (This may not be exhaustive.)

@vcunat
Copy link
Member

vcunat commented Nov 29, 2017

From past experience, packages should not depend on vala but on particular major version.

@jtojnar
Copy link
Contributor Author

jtojnar commented Nov 29, 2017

After grepping vala and then trying to build the discovered derivations, it seems the two were the only one. And yes, outside of GNOME, one is supposed to use fixed version.

@jtojnar jtojnar deleted the gnome-3.26 branch November 29, 2017 11:04
@bjornfor
Copy link
Contributor

Thanks for all the hard work!

@jtojnar jtojnar mentioned this pull request Dec 2, 2017
8 tasks
@jtojnar
Copy link
Contributor Author

jtojnar commented Dec 2, 2017

One bug that we missed: thumbnail creation became broken. Will be fixed in #32246

@jtojnar jtojnar mentioned this pull request Oct 2, 2019
20 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: GNOME GNOME desktop environment and its underlying platform 10.rebuild-darwin: 501+ 10.rebuild-linux: 501+
Projects
GNOME
  
Done
Development

Successfully merging this pull request may close these issues.

None yet