Hello Brian,

Just tested arm64 build; updated these packages:

- gjs_1.67.2-2ubuntu2_arm64.deb

fprietog@fpgrpi:~$ apt-cache policy gjs
gjs:
  Instalados: 1.67.2-2ubuntu2
  Candidato:  1.67.2-2ubuntu2
  Tabla de versión:
 *** 1.67.2-2ubuntu2 100
        100 /var/lib/dpkg/status
     1.67.2-2ubuntu1 500
        500 http://ports.ubuntu.com/ubuntu-ports hirsute/main arm64 Packages

- libgjs0g_1.67.2-2ubuntu2_arm64.deb

fprietog@fpgrpi:~$ apt-cache policy libgjs0g
libgjs0g:
  Instalados: 1.67.2-2ubuntu2
  Candidato:  1.67.2-2ubuntu2
  Tabla de versión:
 *** 1.67.2-2ubuntu2 100
        100 /var/lib/dpkg/status
     1.67.2-2ubuntu1 500
        500 http://ports.ubuntu.com/ubuntu-ports hirsute/main arm64 Packages

And, after reboot, the problem reported is solved:

1./ Test case:
fprietog@fpgrpi:~$ gjs -c 
"imports.gi.Gio._promisify(imports.gi.Gio._LocalFilePrototype, 'delete_async', 
'delete_finish');
   print(imports.gi.Gio.File.new_for_path('/').delete_async(0, null));" && echo 
GJS works
[object Promise]
GJS works

2./ The error shown in every boot as also gone.

3./ The indicator-multiload app now is working as expected

I'll test amd64 build when available.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to gjs in Ubuntu.
https://bugs.launchpad.net/bugs/1923267

Title:
  Gjs promises on Gio.File operations don't work anymore after upgrading
  libglib2.0-0 2.67.5-2 to 2.68.0-1 (and indicator-multiload app broke)

Status in gjs package in Ubuntu:
  Fix Committed
Status in gnome-shell-extension-appindicator package in Ubuntu:
  Won't Fix
Status in gjs source package in Hirsute:
  Fix Committed

Bug description:
  [ Impact ]

  As per glib commit
  https://gitlab.gnome.org/GNOME/glib/-/commit/d52728f99
  Gio.File.new_for_path("") returns a GDummyFile implementation, while
  Gio._promisify relies on it being a LocalFile, so we don't promisify
  the right methods.

  [ Test case ]

  gjs -c "imports.gi.Gio._promisify(imports.gi.Gio._LocalFilePrototype, 
'delete_async', 'delete_finish');
     print(imports.gi.Gio.File.new_for_path('/').delete_async(0, null));" && 
echo GJS works

  Should write on terminal:

  [object Promise]
  GJS works

  In the bugged version would instead just:

  (gjs:226393): Gjs-CRITICAL **: 16:45:51.396: JS ERROR: TypeError: method 
Gio.File.delete_async: At least 3 arguments required, but only 2 passed
  @<command line>:2:48

  (gjs:226393): Gjs-CRITICAL **: 16:45:51.396: Script <command line>
  threw an exception

  
  [ Regression potential ]

  Gjs apps are slower in starting up, or not act properly when / is not
  a local location.

  ---

  
  Problem tested in two different environments:
  - Ubuntu 21.04 Beta amd64
  - Ubuntu 21.04 Beta arm64 (Raspberry Pi 4B 8GB)

  After upgrading these packages:

  libglib2.0-0    2.67.5-2 to 2.68.0-1
  libglib2.0-bin  2.67.5-2 to 2.68.0-1
  libglib2.0-data 2.67.5-2 to 2.68.0-1

  The app indicator-multiload (0.4-0ubuntu5) doesn't work showing only
  three dots (...) instead of the graphic expected. It's throwing error
  messages to the system journal every second or so (depends of the
  refresh interval selected in the app settings):

  abr 10 01:08:06 fpgrpi ubuntu-appindicat...@ubuntu.com[1487]:
  multiload, Impossible to read image from path '/run/user/1026
  /multiload-icons-Wc8kck/icons/indicator-multiload-graphs-0.png':
  TypeError: method Gio.File.read_async: At least 3 arguments required,
  but only 2 passed

  Don't know if this is a documented change of that method and the bug
  should be open for the indicator-multiload app. Please, if that's the
  case just let me know to do it.

  Thanks and best reagrds

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gjs/+bug/1923267/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to