Hi all, Tony Baechler here.
Someone on the blinux list (I'm sorry, I don't remember who) suggested a
central place with all accessibility packages compiled for all distros and
all architectures. While I initially thought that would be impossible, after
doing some poking around, I think it could be done after a fashion.
In most cases, you install packages from your distro's package manager. The
Orca package might be called gnome-orca or just plain orca, depending.
Likewise, you might have espeak and espeak-ng. It's hard to know what to
install, what versions are available and if they're the latest. What would
be nice is to have a way on any distro to always have the latest a11y
packages without breaking the rest of the system.
Chris pointed me to what might be a solution by mentioning elogind. The
elogind package was intended for the guix package manager. With guix, which
itself was based on nix, you can have full upgrades and rollbacks without
conflicts. They're similar to the BSD ports tree in that they can be
installed on any distro and don't interfere with your existing package
manager. Normal users can install packages. Since each package gets its own
directory, there are never version conflicts and you can have many versions
installed. I encourage you to study these links:
http://www.gnu.org/s/guix
http://nixos.org/nix/
In the later, the nix OS distro could actually be used to build an
accessibility framework. It takes the package management to a new level by
letting you upgrade and rollback configuration files in /etc. I intend to
install one or both on my server to see how they work. The only downside I
see is they currently don't have any accessibility packages included, so
someone (not me) would have to build them. I did see espeak in the nixos
packages collection. Similar to BSD, you can either build everything from
source or install prebuilt binaries if available. Therefore, a central site
could have prebuilt packages for those who want them, but if you want to
build from source, you can. Both guix and nix use a special language,
similar to Gentoo ebuilds or BSD makefiles, so it's just a matter of writing
them.
I see one other problem. The idea would be to be able to install the package
manager and packages on any distro. If you're working with a distro with no
speech, it would be difficult to do the setup without sighted help. There is
an install shell script which could be modified, but one would still have to
know how to start it without speech. I leave that for others to figure out.
A bootable CD or USB image could be an option, but somehow it would have to
find the Linux root partition. If you have speech, like if you install
Ubuntu and have Orca, you just go to a terminal, download the script and run
it. In other words, without any accessibility components installed, I don't
know how one could bootstrap the central a11y system.
Before anyone asks, there are no library conflicts. All libraries and
dependencies are stored in the same place as the package itself. You could,
therefore, run the latest stable Orca which ships with Gnome but you could
also install the latest git master if it's packaged. You should be able to
switch between them. I don't know how this is done, but that's what I read.
I leave it to others to look into this further. I personally like the looks
of nix better. It seems more stable and better tested. If you want guix, you
have to install guile and scheme. With nix, you can run a command which
drops you into a shell with all build dependencies installed, so you can
easily apply patches and build packages from source. It uses "channels" for
packages, so you could create an a11y channel and add it during the
bootstrap process.
I'm interested in further discussion on this. It looks promising if a way
can be found to bootstrap it without speech on any distro. From what I can
tell, it's only for Linux and uses a Linux kernel, but it might be ported to
a BSD system in time.
_______________________________________________
Blinux-list mailing list
Blinux-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/blinux-list