[liblouis-liblouisxml] Re: [liblouis/liblouis]

  • From: Bert Frees <bertfrees@xxxxxxxxx>
  • To: liblouis-liblouisxml@xxxxxxxxxxxxx
  • Date: Tue, 21 Apr 2015 13:15:42 +0200

Thanks Michael,

Some additions:

In order for liblouisutdml.dylib to find liblouis.dylib it is not enough to put
them in the same directory AFAIK, at least not on all systems. The path of
liblouis.dylib inside the liblouisutdml.dylib executable must be a relative one:
"@loader_path/liblouis.dylib". This can be done at link time, or you can change
it afterwards using install_name_tool.

To get the command line tools to find liblouis.dylib follow the exact same
procedure.



Michael Whapples writes:

I suspect on the listing files needed to run liblouis and liblouisutdml
on the Mac, nobody has a definitive list as it really depends upon what
you need.

As an example, the absolute minimum to run liblouis is the
liblouis.dylib file. However this would require you to do programmatic
access to LibLouis through its C API. Also to be useful you would need
some LibLouis tables.

This minimum is what JLouis my Java bindings for LibLouis is distributed
with, the liblouis.dylib is bundled into the main JAR and tables are in
a separate artifact zip. Due to JLouis using JNA for access to native
libraries, and JNA using libffi, one does not actually need the liblouis
headers for compiling JLouis, something which is not normally possible
with normal C code compilation (obviously if your C code used libffi
then no headers would be required). I don't think that headers would
ever be needed at runtime, so it depends whether your installer is for
developers or just end users whether you want to include liblouis headers.

As to the placement of the liblouis.dylib file, again this depends where
your application using the library is going to look. Using JLouis as an
example, it can search a custom path one can specify with the system
property jlouis.library.path, then it searches the systems standard
library path and then if all else fails it loads the one from the JLouis
jar. Due to the different ways that liblouis can be compiled (eg. UCS2
or UCS4, the need for the library to match the architecture of the JVM,
etc), I want to adjust how JLouis does its loading so that it misses out
the standard system library path search.

An additional note as I mentioned architecture, you may want to look at
making your installer include a fat binary (sometimes referred to as a
universal binary) which includes images for all architectures. Either
look at combining single architecture binaries into one library with
lipo or compile with multiple architectures (I have done this easily
enough with clang, I believe you may be able to do it with gcc).

However in the past I believe you may have mentioned that you want to
use liblouis through the command line tools. I am less familiar with how
to set these up on the Mac. Similar situation for liblouisutdml. I have
only really used these on linux systems where either they came through
the package manager or installing from source was fairly simple.

My feeling is that for LibLouisUTDML, at least for the library, you just
need the liblouisutdml.dylib file and if you install it in the same
location then it should be able to find liblouis.dylib. In Java (I
assume for other languages) if the liblouisutdml library file has
trouble loading the liblouis.dylib, you can help encourage things along
by explicitly loading it in your application which establishes the link
(eg. in Java use System.load giving the absolute path of the
liblouis.dylib). As my memory goes, this is what we did in BrailleBlaster.

Personally I would recommend if possible that applications bundle there
own private copies of liblouis and liblouisutdml, as BrailleBlaster
does. The reason being that as I mentioned liblouis can be compiled in a
number of incompatible ways and what is the right way for a system
install I don't know. One thing is certain, an installer such as you
describe probably will not be deemed the official install which people
should target compiling against.

Due to not knowing about the commandline tools working, I will let
others provide details on that.

I hope some of what I have said is useful to you.

Michael Whapples

On 20/04/2015 21:08, Greg Kearney wrote:
OK let's clear up a few things here. First off you can not use libloius
tables in the Mac VoiceOver Braille functions. They will not work. As far as
I am aware there is no consumer method of installing new tables into
VoiceOver.

Second, take it from me installing Liblouis and Liblouisutdml on to a Mac is
far from a trivial matter. At best it requires installing XCode and the
Homebrew package installer. At worst it is a nightmare of chasing down
dependencies and modifying compiler scripts. It is not something that the
general consumer would ever want to undertake.

I will state this again as I often do: If someone out there will tell me
what the minimum files are for Liblouis and Liblouisutdml to run on a Mac I
would be more than happy to build an installer that norm humans can use
without requiring them to become programmers. No one has ever been able to
answer that simple question and I'm beginning to think it's because no one
really knows what those file are. Either that or we just want to keep it a
mystery so that no one but our programmer buddies can ever make use of
Liblouis.

It's really too bad Liblouis and Liblouisutdml are very good tools when you
get them to work and all manner of interesting applications might be
developed but without a means of getting it installed independent of
developer mojo they will never see the light of day.


Commonwealth Braille & Talking Book Cooperative
Greg Kearney, General Manager
#320, 185-911 Yates Street
Victoria, BC V8V 4Y9
CANADA
Email: info@xxxxxxxxx

U.S. Address
21908 Almaden Av.
Cupertino, CA 95014
UNITED STATES
Email: gkearney@xxxxxxxxx




On Apr 20, 2015, at 12:57 PM, Chenelle Hancock <filmchenelle1977@xxxxxxxxx>
wrote:

Hello,
This is Chenelle,
I am new to downloading tables onto my Mac so I have no idea about how to
do it exactly? I would need step-by-step instructions on how to do so
properly.

Sent from my iPhone

On Apr 20, 2015, at 2:32 PM, Bert Frees <bertfrees@xxxxxxxxx> wrote:

Hi Chenelle,

We seem to have a Russian table, it's called ru-ru-g1.utb. However I have
no
idea how one can download a liblouis table via VoiceOver Utility. Does
that even
make sense? Can someone explain? What is the reason you can't use the
table that
comes with VoiceOver? The VoiceOver on my Mac OS 10.9 supports Russian, so
I
assume your version, which is newer, also supports it.

Regards,
Bert



Chenelle Hancock writes:

Hello friend

This issue now, I wanted to know was there a brill Russian table out there
that I can download onto my Mac? I have a Mac 2010 with Yosemite and I'm
trying to download the table via my voice over utilities menu and I am not
having any luck with it. So I thought I would email you! To see if there
were
any Russian brown tables I can use to read Russian braille on my mac.

Sincerely, Chenelle thank you so much and have a great day
For a description of the software, to download it and links to
project pages go to http://liblouis.org
For a description of the software, to download it and links to
project pages go to http://liblouis.org
For a description of the software, to download it and links to
project pages go to http://liblouis.org

For a description of the software, to download it and links to
project pages go to http://liblouis.org

For a description of the software, to download it and links to
project pages go to http://liblouis.org

Other related posts: