Issues packaging on NixOS
I'm attempting to package onboard for NixOS and I keep running into an issue when the setup.py script executes the 'symlink_
I was wondering if someone could advise on what the problem might be, or at least a way I could get around the symlink issue.
I have opened up a pull request on the NixOS github https:/
error: [Errno 2] No such file or directory: 'Onboard/
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Onboard Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- John
- Solved:
- Last query:
- Last reply:
Revision history for this message
![]() |
#1 |
This is probably DistUtilsExtra trying to make sense of the attic files and failing. I'm not sure what exactly happens, you would have to look at auto.py for that.
However the easy fix is to simply delete the offending file(s). Nothing in the attic folder is even used. We should probably remove the whole folder, just to be safe.
Revision history for this message
![]() |
#2 |
OK, Onboard/
Revision history for this message
![]() |
#3 |
Ok, removed Onboard/
running build_scripts
creating build/scripts-3.5
copying and adjusting onboard -> build/scripts-3.5
copying and adjusting onboard-settings -> build/scripts-3.5
changing mode of build/scripts-
changing mode of build/scripts-
running build_i18n
intltool-update -p -g onboard
error: [Errno 2] No such file or directory: 'Onboard/
Revision history for this message
![]() |
#4 |
Your distutils-extra really wants python files to have a py extension. This isn't supposed to happen. What version is this? Mine is
apt-cache policy python3-
python3-
Installed: 2.40
Candidate: 2.40
Revision history for this message
![]() |
#5 |
python3.
Would renaming them to *.py help?
Revision history for this message
![]() |
#6 |
Possibly, but I'd rather not. Those are self-contained command line tools, a whole bunch of them in two folders. A py extension just to appease auto.py seems silly. And this hasn't been an issue on Ubuntu, Debian, Arch, Mageia...
I think at this point we have to figure out what exactly is going on. Something must be different. Let me try to install a NixOS partition and attempt to build from source.
Is that NixOS 17.03, or do I need a development version?
Revision history for this message
![]() |
#7 |
I meant I could try to rename them in the NixOS package only and see if it builds... I'll give it a shot.
It's 17.03.
Revision history for this message
![]() |
#8 |
So I tried that, added to the prebuild:
rm -r Onboard/
sed -i 's:/bin/
for file in Onboard/
cp onboard-settings onboard-settings.py
Now i'm getting this error:
setting SOURCE_DATE_EPOCH to timestamp 1487282339 of file onboard-
patching sources
configuring
building
found dconf version 0.26.0
Traceback (most recent call last):
File "nix_run_setup.py", line 8, in <module>
exec(
File "setup.py", line 440, in <module>
'build_ext': build_ext_custom},
File "/nix/store/
distutils.
File "/nix/store/
_setup_
File "/nix/store/
_Distributi
File "/nix/store/
getattr(
File "/nix/store/
distutils.
File "/nix/store/
raise ValueError("illegal provides specification: %r" % value)
ValueError: illegal provides specification: 'onboard-settings'
Revision history for this message
![]() |
#9 |
split_provision() rings a bell. It's been a while, but I believe this time it's trying to extract version information from onboard-settings' file name and fails. The dash threw auto.py off, IIRC.
Revision history for this message
![]() |
#10 |
intltool was missing from default.nix. auto.py would create temporary links of python files without extension and then error out due to missing intltool-update before it could clean them up again. That's where the initial *py naming confusion came from.
"ValueError: illegal provides specification: 'onboard-settings'" doesn't happen anymore either after that. Didn't look into it anymore.
./setup.py build runs through now, but there are more problems:
The shebangs of all executable scripts would have to be rewritten from
#!/usr/bin/python3
to
#!/usr/bin/env python3
as there are no fixed paths in NixOS. If Francesco has no objections, I'll do this in trunk. I believe shebangs are rewritten anyway during the debian package build.
And the gsettings schema file would need to be installed. Something like
cp data/org.
glib-compile-
in a NixOS kind of way. I haven't figured out how to do this yet.
If you want to customize onboard's default preferences you can install a gsettings schema override too. This could give the super keys a NixOS specific label for example. There is an example file in the project:
onboard-
Is goes in the same folder as the schema file, for example
cp onboard-
Alternatively, add it's contents to an existing global NixOS override file.
Revision history for this message
![]() |
#11 |
My modified onboard/
{ stdenv, fetchurl, bash, gtk3, python3, hunspell, isocodes, libcanberra_gtk3, xorg, libxkbcommon, python35Packages, libudev, gnome3, pkgconfig, intltool
}:
python35Package
name = "onboard-
majorVersion = "1.4";
version = "${majorVersion
src = fetchurl {
url = "https:/
sha256 = "01cae1ac5b1ef1
};
propagatedBuild
preBuild = ''
rm -r Onboard/
sed -i 's:/bin/
#for file in Onboard/
#cp onboard-settings onboard-settings.py
'';
meta = {
homepage = https:/
description = "An onscreen keyboard useful for tablet PC users and for mobility impaired users.";
license = stdenv.
};
}
Revision history for this message
![]() |
#12 |
There are some Nix specific functions that do some of that, patching the shebangs automatically and running gsettings. I did my best to use them.
Here is my updated code that works better.
---
{ fetchurl
, gtk3
, gnome3
, libcanberra_gtk3
, libudev
, hunspell
, isocodes
, pkgconfig
, xorg
, libxkbcommon
, python3
, python35Packages
, stdenv
, bash
, intltool
, wrapGAppsHook
, glib
}:
python35Package
name = "onboard-
majorVersion = "1.4";
version = "${majorVersion
src = fetchurl {
url = "https:/
sha256 = "01cae1ac5b1ef1
};
propagatedBui
gtk3
gnome3.dconf
libcanberra
libudev
bash
hunspell
isocodes
pkgconfig
xorg.libXtst
xorg.libxkbfile
libxkbcommon
intltool
wrapGAppsHook
python3
python35Pac
python35Pac
python35Pac
python35Pac
python35Pac
glib
];
preBuild = ''
rm -r Onboard/
patchShebangs .
substituteI
'';
postInstall = ''
${glib.
cp onboard-
'';
meta = {
homepage = https:/
description = "An onscreen keyboard useful for tablet PC users and for mobility impaired users.";
license = stdenv.
};
}
---
It now builds completely but I am getting the following error when run.
---
Traceback (most recent call last):
File "/nix/store/
from Onboard.OnboardGtk import OnboardGtk as Onboard
File "/nix/store/
require_
File "/nix/store/
gi.
File "/nix/store/
raise ValueError(
ValueError: Namespace Gtk not available
Revision history for this message
![]() |
#13 |
Great, getting closer.
Is Gtk-3.0.typelib installed? On Ubuntu this is a separate package gir1.2-gtk-3.0 that contains
/usr/lib/
/usr/lib/
/usr/lib/
Onboard uses all of these and a couple other typelibs:
grep gir debian/control
Depends: gir1.2-
Recommends: gir1.2-
appindicator3 is for the status icon - optional if the desktop environment is fine with the old GtkStatusIcon. I believe KDE Plasma needs it.
Atspi is for auto-show, word suggestions and others, but not strictly required for a plain keyboard.
Revision history for this message
![]() |
#14 |
I'm still having trouble getting this packaged. I'm doing what I thought I needed to do to set the typelibs.
I've been setting:
wrapProgram "$out/bin/onboard" \
--prefix PYTHONPATH : "$PYTHONPATH" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
But it doesn't seem to help.
I'm still getting this error:
Traceback (most recent call last):
File "/nix/store/
from Onboard.OnboardGtk import OnboardGtk as Onboard
File "/nix/store/
require_
File "/nix/store/
gi.
File "/nix/store/
raise ValueError(
ValueError: Namespace Gtk not available
Revision history for this message
![]() |
#15 |
Continued:
---
Maybe as the creator of the software you'd have a bit more insight into what might be going wrong.
The setup I'm still trying to get working, https:/
---
{ config
, pkgs ? import <nixpkgs> {}
, fetchurl
, gtk3
, gnome3
, libcanberra_gtk3
, libudev
, hunspell
, isocodes
, pkgconfig
, xorg
, libxkbcommon
, python3
, python35Packages
, stdenv
, bash
, intltool
, glib
}:
python35Package
name = "onboard-
majorVersion = "1.4";
version = "${majorVersion
src = fetchurl {
url = "https:/
sha256 = "01cae1ac5b1ef1
};
doCheck = false;
propagatedBui
gtk3
gnome3.dconf
libcanberra
libudev
bash
hunspell
isocodes
pkgconfig
xorg.libXtst
xorg.libxkbfile
libxkbcommon
intltool
python3
python35Pac
python35Pac
python35Pac
python35Pac
python35Pac
python35Pac
python35Pac
glib
];
preBuild = ''
rm -r Onboard/
patchShebangs .
substituteI
'';
postInstall = ''
cp onboard-
${glib.
wrapProgram $out/bin/onboard \
--set PYTHONPATH "$PYTHONPATH" \
--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH"
'';
meta = {
homepage = https:/
description = "An onscreen keyboard useful for tablet PC users and for mobility impaired users.";
license = stdenv.
};
}
--
Revision history for this message
![]() |
#16 |
I had a look at how typelibs are located. libgirepository
GI_TYPELIB_PATH and GOBJECT_
https:/
Ubuntu adds a hard-coded third one "/usr/lib/
I believe GI_TYPELIB_PATH should be left for users to override and not really be set by packages. AFAICT it usually doesn't even exist until a user decides he needs it. I happen to override it currently to point at a staging area that eases development in gnome-shell.
I think GOBJECT_
GOBJECT_
which on my system is:
/usr/lib/
locate Gtk-3 | grep .typelib
/usr/lib/
GOBJECT_
AS_AC_EXPAND(
GOBJECT_
From the autoconf docs:
— Variable: libdir
The directory for installing object code libraries.
https:/
That's how far I came, anyway. If Gtk-3.0.typelib exists, it might just be that the girepository package is configured incorrectly, pointing to the wrong libdir.
Here's a one-liner to test available Gtk typelibs without running Onboard:
python3 -c 'import gi; r=gi.Repository
['3.0', '2.0']
Revision history for this message
![]() |
#17 |
Okay, I finally made some progress. Adding the packages gobjectIntrospe
** (.onboard-
17:05:26.646 WARNING Onboard.Keyboard: Atspi typelib missing, at-spi key-synth unavailable
17:05:26.656 WARNING Onboard.
17:05:26.682 WARNING Config: mousetweaks GSettings schema not found, mousetweaks integration disabled.
Traceback (most recent call last):
File "/nix/store/
ob = Onboard()
File "/nix/store/
self.init()
File "/nix/store/
config.init()
File "/nix/store/
self.
File "/nix/store/
assert(result) # warn early when the installation dir wasn't found
AssertionError
Revision history for this message
![]() |
#18 |
Yay, almost there. That error is Onboard looking for "/usr/share/
These two lines in Onboard/Config.py would have to be modified:
INSTALL_DIR = "/usr/share/
LOCAL_INSTALL_DIR = "/usr/local/
Onboard needs only one of them, the first one found to exist wins.
I came across
https:/
where something similar is done with
substituteInPlace $out/usr/
--replace /usr/share/atom $out/bin
> ** (.onboard-
> org.freedesktop
> 17:05:26.646 WARNING Onboard.Keyboard: Atspi typelib missing, at-spi key-synth unavailable
> 17:05:26.656 WARNING Onboard.
These are due to Atspi-2.0.typelib missing. It should start up anyway for now, just with reduced functionality.
> 17:05:26.682 WARNING Config: mousetweaks GSettings schema not found, mousetweaks
mousetweaks is optional too, but the hover click button won't work without it.
Revision history for this message
![]() |
#19 |
That helps, I fixed that one but there must be a lot of hard-coded paths because I found some more. I'll have to look through and replace all of them. For now I'm getting this error:
** (.onboard-
15:01:33.962 WARNING Onboard.Keyboard: Atspi typelib missing, at-spi key-synth unavailable
15:01:33.971 WARNING Onboard.
15:01:33.998 WARNING Config: mousetweaks GSettings schema not found, mousetweaks integration disabled.
(onboard:10173): dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:
(onboard:10173): Gtk-WARNING **: Theme parsing error: gtk.css:68:35: The style property GtkButton:
(onboard:10173): Gtk-WARNING **: Theme parsing error: gtk.css:69:35: The style property GtkButton:
(onboard:10173): Gtk-WARNING **: Theme parsing error: gtk.css:73:46: The style property GtkScrolledWind
Traceback (most recent call last):
File "/nix/store/
ob = Onboard()
File "/nix/store/
self.init()
File "/nix/store/
self.
File "/nix/store/
self.keyboard = Keyboard(self)
File "/nix/store/
WordSuggest
File "/nix/store/
self.
File "/nix/store/
(onboard:10173): dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:
self._iso_codes = ISOCodes()
File "/nix/store/
self.
File "/nix/store/
self.
File "/nix/store/
with open_utf8(
File "/nix/store/
return open(filename, mode=mode, encoding="UTF-8")
FileNotFoundError: [Errno 2] No such file or directory: '/usr/share/
Must be a similar idea
Revision history for this message
![]() |
#20 |
Right, there are more. ISOCodes, the hunspell backend of SpellChecker, Indicator opening yelp... They should all probably use a common root for /usr. Then you would have to replace just one location in Config.py. I'll look into that. Could you post your latest default.nix? I might want to test that in NixOS.
Revision history for this message
![]() |
#21 |
Great news! I finally got it running! I grepped through all the different code and found all the different paths that are pointing to hardcoded locations. There were quite a few of them.
If you want to see my current code, my private repository is here: https:/
Also, the pull request, which I update a bit less often, is here: https:/
I've been updating the pull repository every so often.
---
The current code that runs on my machine is the following:
---
{ config
, pkgs
, fetchurl
, gtk3
, gnome3
, libcanberra_gtk3
, libudev
, hunspell
, isocodes
, pkgconfig
, xorg
, libxkbcommon
, python3
, python35Packages
, stdenv
, bash
, intltool
, glib
, gobjectIntrospe
, gsettings_
, wrapGAppsHook
}:
python35Packa
name = "onboard-
majorVersion = "1.4";
version = "${majorVersion
src = fetchurl {
url = "https:/
sha256 = "01cae1ac5b1ef1
};
doCheck = false;
propagatedB
gtk3
gnome3.dconf
libcanber
libudev
bash
hunspell
isocodes
pkgconfig
xorg.libXtst
xorg.
libxkbcommon
intltool
python3
python35P
python35P
python35P
python35P
python35P
python35P
python35P
glib
gobjectIn
gsettings
wrapGAppsHook
];
preBuild = ''
rm -r Onboard/
patchShebangs .
patchShebangs ./Onboard/
patchShebangs ./scripts/
patchShebangs ./Onboard/test/
patchShebangs ./Onboard/
patchShebangs ./Onboard/
patchShebangs ./Onboard/
patchShebangs ./Onboard/
substitut
substitut
substitut
substitut
substitut
substitut
substitut
substitut
substitut
substitut
substitut
substitut
'';
postInstall = ''
cp onboard-
$
addToSear
addToSear
'';
meta = {
homepage = https:/
description = "An onscreen keyboard useful for tablet PC users and for mobility impaired users.";
license = stdenv.
};
}
---
I put the error message I'm getting in the leaves commit, but I guess I'll also post it here. This is what happens when you try to access the preferences:
---
** (.onboard-
17:45:29.394 WARNING Onboard.Keyboard: Atspi typelib missing, at-spi key-synth unavailable
17:45:29.404 WARNING Onboard.
17:45:29.434 WARNING Config: mousetweaks GSettings schema not found, mousetweaks integration disabled.
(onboard:19926): dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:
(onboard:19926): Gtk-WARNING **: Theme parsing error: gtk.css:68:35: The style property GtkButton:
(onboard:19926): Gtk-WARNING **: Theme parsing error: gtk.css:69:35: The style property GtkButton:
(onboard:19926): Gtk-WARNING **: Theme parsing error: gtk.css:73:46: The style property GtkScrolledWind
(onboard:19926): dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:
Traceback (most recent call last):
File "/nix/store/
callback(ev)
File "/nix/store/
self.
File "/nix/store/
self.
File "/nix/store/
self.
File "/nix/store/
self.
File "/nix/store/
not sequence.
File "/nix/store/
self.
File "/nix/store/
self.
File "/nix/store/
self.
File "/nix/store/
self.
File "/nix/store/
controller.
File "/nix/store/
run_
File "/nix/store/
a =__import__(script)
File "/nix/store/
export PATH=/nix/
^
SyntaxError: invalid syntax
---
Revision history for this message
![]() |
#22 |
Awesome, made it!
SpellChecker.py has /usr/lib paths too, you might want to replace these as well.
I'm not sure about the error. Is this an issue with variable substitution in PATH? Does
echo $PATH
still contain the PATH variable? That shouldn't happen.
In order to get word suggestions, auto-show, etc. you may want to try setting up AT-SPI. The Debian package names are gir1.2-atspi-2.0 libgail-common libatk-adaptor qt-at-spi llibreoffice-gtk3 and for Java applications libatk-wrapper-java (often skipped due to large number of dependencies).
The goal is to get the AT-SPI registry running
ps aux | grep -i [a]t-spi
user 2455 0.0 0.0 349476 6292 ? Sl 08:02 0:00 /usr/lib/
user 2467 0.0 0.0 45984 4912 ? S 08:02 0:02 /usr/bin/
user 2480 0.0 0.0 218212 6832 ? Sl 08:02 0:01 /usr/lib/
Orca needs all this too, so if accessibility is a topic in NixOS at all, the bulk of the work might have been done already.
Revision history for this message
![]() |
#23 |
Does
python3 -c "import scripts.
open preferences?
Revision history for this message
![]() |
#24 |
I'm not really concerned with word suggestions or auto show personally, so if it includes a lot of dependencies maybe I'll leave it out for now. It can always be added later if someone requested. Orca doesn't seem to be in Nixpkgs either so I'm not sure if everything would be there for it anyway.
---
python3 -c "import scripts.
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'scripts'
---
I'll replace the other paths as well, hopefully that fixes the error.
That error with the large path variable is related to the script that acts as a wrapper to run onboard. It's a script that sets up the correct environment and calls the actual filed that it's renamed to .<filename>-wrapped
---
cat /nix/store/
#! /nix/store/
export PATH=/nix/
exec -a "$0" "/nix/store/
Revision history for this message
![]() |
#25 |
> python3 -c "import scripts.
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> ImportError: No module named 'scripts'
This will only work from the source directory, where "scripts" is a sub-directory of the current directory.
> That error with the large path variable is related to the script that acts as a wrapper to run onboard.
Ah, I see, that's explains it. sokSettings is imported by Onboard and thus is expected to be pure Python. I's not ran like a sub-process, it's a sub-module that extends Onboard. The wrapping is probably not needed. I would remove it and try again.
> I'm not really concerned with word suggestions or auto show personally
OK, though people will probably ask you how to enable it eventually ;). I'll be around.
Revision history for this message
![]() |
#26 |
Ah, that makes sense. I ran what you said. Looks like that's the issue.
---
python3 -c "import scripts.
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/nix/store/
export PATH=/nix/
^
SyntaxError: invalid syntax
Revision history for this message
![]() |
#27 |
Maybe just remove the shebang from sokSettings. I'm not quite sure why it is there anyway. Probably for historical reasons. It's not needed AFAICT.
I fact I just removed it in trunk. We'll see if anything misses it, but it seems fine so far.
Revision history for this message
![]() |
#28 |
This question was expired because it remained in the 'Open' state without activity for the last 15 days.
Revision history for this message
![]() |
#29 |
Currently the problem is related to all files being wrapped so I can't find an easy way to not wrap that file. Hopefully the next release will work properly for me.
https:/
Revision history for this message
![]() |
#30 |
What about #27? Is sokSettings.py still being wrapped if you remove its shebang and executable permissions?
Revision history for this message
![]() |
#31 |
So I was able to get it to stop being wrapped, now when I open settings I end up with this error:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'Onboard'
Revision history for this message
![]() |
#32 |
Hmm, there's no wrapping of
PYTHON_EXECUTABLE -c "from Onboard.settings import Settings\ns = Settings(False)"
of course. I suppose for this to be Nix friendly it would have to launch a wrap-able executable like onboard-settings.
In sokSettings.py, does it help if you replace the lines
GLib.
with
GLib.
Disadvantage is probably that the first onboard-settings found in PATH is launched. So Onboard has to be properly installed and it won't just open the onboard-settings from the source directory as usual.
Revision history for this message
![]() |
#33 |
Well, now there's good news and bad news. Good news, the setting application actually runs.
When I set it as you told me to it ran, but I knew a way to get it to execute the right path so I did hardcoded it to execute the specific executable of the just built package by referencing the place in the store with '$out':
substitut
--replace "#!/usr/
--replace "PYTHON_
--replace '"-cfrom Onboard.settings import Settings\ns = Settings(False)"' ""
This ends up giving us the following code:
def run():
GLib.
---
The issue is the settings application doesn't do anything. It won't change any settings. I tried it both with the store path, and with just 'onboard-settings'.
It doesn't seem to be giving any error input during the settings prompt, but this is the output I get from the run:
** (.onboard-
03:04:43.860 WARNING Onboard.Keyboard: Atspi typelib missing, at-spi key-synth unavailable
03:04:43.869 WARNING Onboard.
03:04:43.895 WARNING Config: mousetweaks GSettings schema not found, mousetweaks integration disabled.
(onboard:22376): dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:
(onboard:22376): Gtk-WARNING **: Theme parsing error: gtk.css:68:35: The style property GtkButton:
(onboard:22376): Gtk-WARNING **: Theme parsing error: gtk.css:69:35: The style property GtkButton:
(onboard:22376): Gtk-WARNING **: Theme parsing error: gtk.css:73:46: The style property GtkScrolledWind
(onboard:22376): dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:
** (.onboard-
03:04:49.921 WARNING Onboard.
03:04:49.946 WARNING Config: mousetweaks GSettings schema not found, mousetweaks integration disabled.
(.onboard-
(.onboard-
(.onboard-
(.onboard-
(.onboard-
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Revision history for this message
![]() |
#34 |
I'm wondering if it could be related to the fact that the store is considered read only? Is anything actually saved in the onboard install location at runtime?
Revision history for this message
![]() |
#35 |
No, nothing is written to the install location. The two places things are saved at are
- the dconf database (through GIO aka GSettings) for preferences
- ${XDG_DATA_
That list of warnings is growing, I see. I'll have to go over the Gtk deprecations again at some point. Last time I couldn't remove some due to incompatibilities with past Ubuntu releases.
Anyway, the only ominous ones are dconf warnings:
(.onboard-
GSettings uses dconf as its default backend to store stuff. No dconf, no reading/writing of things in onboard-settings. I suppose libdconf is installed, else Onboard wouldn't build.
However /usr/share/
Revision history for this message
![]() |
#36 |
Do things like
gsettings get org.onboard layout
work?
Or try running dconf-editor for the same with a GUI tool.
Revision history for this message
![]() |
#37 |
I don't seem to have the GSettings tool. What is it that should Supply that for onboard?
Revision history for this message
![]() |
#38 |
gsettings is not really related to Onboard, we're just using it as a means to store preferences, as do many other (Gtk-) applications. The package for the gsettings tool seems to be "libglib2.0-bin" here and for the GUI tool "dconf-editor".
dpkg -S /usr/bin/gsettings
libglib2.0-bin: /usr/bin/gsettings
dpkg -S /usr/bin/
dconf-editor: /usr/bin/
Both are not really required for Onboard, though. They might just help testing/exploring gsettings+dconf.
You can do without: if this one-liner works, onboard-settings should as well:
python3 -c 'from gi.repository import Gio; s=Gio.Settings(
Revision history for this message
![]() |
#39 |
Do I have to do that from a certain directory? When I try it I just get:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'gi'
Revision history for this message
![]() |
#40 |
Not really. Can't you somehow get a shell with the environment onboard and onboard-settings are run in? I faintly remember that being possible. Found in my notes:
git clone https:/
nix-shell nixpkgs/ --attr onboard
Then I can
python3 -c 'from gi.repository import Gio; s=Gio.Settings(
(process:8740): GLib-GIO-ERROR **: Settings schema 'org.onboard' is not installed
The import from gi works, but Onboard's schema is not installed. You had solved that before, though, so it might work better for you.
Revision history for this message
![]() |
#41 |
Before it was in the 'scripts' directory, i'm not sure where I should be running it from for the new command you gave me.
I'm having trouble with the schema install. I posted an issue https:/
Revision history for this message
![]() |
#42 |
Awesome news! https:/
It looks like the problem I was getting with the settings was not related to the glib schema compilation. I found out that the fix was to install gnome3.dconf system-wide. For some reason just adding it to buildInputs doesn't work.
I reverted the schema back to how it was before, which seems to be working.
The on-screen keyboard is now in a usable state. I'm now working on getting rid of the remaining warnings that show up at the start of the program.
Revision history for this message
![]() |
#43 |
Got rid of last few warnings! https:/
Thanks for all the help!
Revision history for this message
![]() |
#44 |
Excellent! You're very welcome. Ask if you need anything.
Revision history for this message
![]() |
#45 |
Continuing the work on the packaging, could you explain how the spell checking is used in onboard? In particular, I am interested in how I can test it and how the backend is chosen.
We were also trying to increase the number of passing tests: See the log https:/