Speedata: non-interactive desktop publishing

In this particular case go is a meta package/ports, thus I don't even know which version is going to compile/install, therefore I am going to change manually the symlinks and see which pebcak is going to come out... 🤷‍♂️
 
And here is the pebcak:

Code:
Building dynamic library for freebsd
# speedatapublisher/splib
./splib.go:4:10: fatal error: 'lauxlib.h' file not found
#include <lauxlib.h>
         ^~~~~~~~~~~
1 error generated.

exit status 1
rake aborted!
Command failed with status (255): [/usr/home/freezr/Git/publisher/bin/sphelper buildlib]
/usr/home/freezr/Git/publisher/Rakefile:42:in `block in <top (required)>'
Tasks: TOP => buildlib
(See full trace by running task with --trace)

🤦‍♂️
 
Without a real understanding of what I was doing I tried this one:

Code:
SDPRO=yes CFLAGS='-I /usr/local/include' LDFLAGS='-L /usr/local/lib' rake buildlib
go install -ldflags "-X main.basedir=/usr/home/freezr/Git/publisher -s"  speedatapublisher/sphelper/sphelper
/usr/home/freezr/Git/publisher/bin/sphelper buildlib
Building dynamic library for freebsd
# speedatapublisher/splib
./splib.go:4:10: fatal error: 'lauxlib.h' file not found
#include <lauxlib.h>
         ^~~~~~~~~~~
1 error generated.

exit status 1
rake aborted!
Command failed with status (255): [/usr/home/freezr/Git/publisher/bin/sphelper buildlib]
/usr/home/freezr/Git/publisher/Rakefile:42:in `block in <top (required)>'
Tasks: TOP => buildlib
(See full trace by running task with --trace)

But it didn't work the same... 😩
 
ummm... so what happens when you try to run updatedb, followed by locate lauxlib.h ?

It is actually there... 🤔

Code:
plocate lauxlib.h
/usr/local/include/lua53/lauxlib.h
/usr/local/include/lua54/lauxlib.h
/usr/local/include/luajit-2.1/lauxlib.h
/usr/local/include/texlua53/lauxlib.h
/usr/local/include/texluajit/lauxlib.h
/usr/src/contrib/lua/src/lauxlib.h
/usr/src/sys/contrib/openzfs/include/sys/lua/lauxlib.h

Mmmh... 🤔
 
It is actually there... 🤔

Code:
plocate lauxlib.h
/usr/local/include/lua53/lauxlib.h
/usr/local/include/lua54/lauxlib.h
/usr/local/include/luajit-2.1/lauxlib.h
/usr/local/include/texlua53/lauxlib.h
/usr/local/include/texluajit/lauxlib.h
/usr/src/contrib/lua/src/lauxlib.h
/usr/src/sys/contrib/openzfs/include/sys/lua/lauxlib.h

Mmmh... 🤔
This means that the version of golang that you have installed - it's looking in the wrong place for lauxlib.h ... You might want to re-read what covacat wrote about adding $PATH, and maybe look at golang documentation to see how to tell golang to look in the correct place...
 
This means that the version of golang that you have installed - it's looking in the wrong place for lauxlib.h ... You might want to re-read what covacat wrote about adding $PATH, and maybe look at golang documentation to see how to tell golang to look in the correct place...
Useless to say that I read[1] the golang documentation and the thousand websites that state to explain how to do that... 🤦‍♂️

I decided to open a bug reports, perhaps based on covacat patch it is required another fixing... 🤷‍♂️

[1] Reading a documentation doesn't mean that I understand it... 😖
 
Useless to say that I read[1] the golang documentation and the thousand websites that state to explain how to do that... 🤦‍♂️

I decided to open a bug reports, perhaps based on covacat patch it is required another fixing... 🤷‍♂️

[1] Reading a documentation doesn't mean that I understand it... 😖
Y'know, sometimes it helps to go through tutorials and do some practice with the language itself... just to get a hang of what the documentation is talking about. As my own example, I suck at Git. Just reading the documentation of git (which is freely available) is not enough, because it doesn't always make sense to me... so I play with git, follow some simple tutorials, and try to expand my knowledge little by little. For example, git-cherry-pick does not make much sense to me, and no amount of reading documentation and references on that particular git command is going to help me truly understand it - I have to have a better handle on the basics of git and what they can do before I start looking at git-cherry-pick...

Looking up documentation for a random error can be helpful if you already have a good handle on how the whole enchilada is supposed to work. Start simple, then error messages (and how to resolve them) will make more sense as you go on.
 
Patrick from Speedata replied to me:

I am a bit in a hurry, but you can try out changing buildlib.go and add something like this around line 50.

Code:
    case "freebsd":
    cmd.Env = append(cmd.Env, "CGO_CFLAGS=-I/usr/local/include/lua5.3")

(untested)

I'll try it... 🤞

(even though I am not sure to be really capable of)
 
Little recap for version 4.17.16:

  1. Installing go121
  2. Changing the GO symbolic links: from go -> go120 to go -> go121 & from gofmt -> gofmt120 to gofmt -> gofmt121
  3. Modifying the file ../publisher/src/go/sphelper/buildlib/buildlib.go with the following instruction:
At line 43 adding:

Code:
case "freebsd":
    cmd.Env = append(cmd.Env, "CGO_CFLAGS=-I/usr/local/include/lua5.3")

The whole block will look like:

Code:
switch goos {
case "freebsd":
    cmd.Env = append(cmd.Env, "CGO_CFLAGS=-I/usr/local/include/lua5.3")
case "darwin":
    cmd.Env = append(cmd.Env, "CGO_CFLAGS: -I/opt/homebrew/opt/lua@5.3/include/lua")
    cmd.Env = append(cmd.Env, "CGO_LDFLAGS=-undefined dynamic_lookup")
case "linux":
    cmd.Env = append(cmd.Env, "CGO_CFLAGS=-I/usr/include/lua5.3")
case "windows":
    cmd.Env = append(cmd.Env, "CGO_CFLAGS=-I/usr/include/lua5.3")
    cmd.Env = append(cmd.Env, "CGO_LDFLAGS=-llua53w64 -L/luatex-bin/luatex/windows/amd64/default/")
    }

The procedure worked on my end:

Code:
uname -omr && sp --version
FreeBSD 14.0-RELEASE-p5 amd64
Version: 4.17.16

Thanks! 🙏
 
I am interested in Speedata because I am looking for a way to programming catalogs rather than designing them with software like Adobe inDesign.

The traditional way to realize catalogs is very inconvenient, very few flexible, prone to errors, and occupy 70% of my time.
LuaMetaTex is a better choice imho.
I've used LaTeX until I found ConTeXT wich evolved into LuaMetaTex.
The markup is well designed and unlike LaTeX you can use a Grid system for your layout just like inDesign and set up layers to your document.
 
LuaMetaTex is a better choice imho.
I've used LaTeX until I found ConTeXT wich evolved into LuaMetaTex.
The markup is well designed and unlike LaTeX you can use a Grid system for your layout just like inDesign and set up layers to your document.
ConTeXt is an excellent piece of software, true. The speedata Publisher is made to be a fully programmable, non interactive InDesign replacement with all the layout features required to create complex documents. These two can't really be compared.
 
tuxador

ConTeXt/LuaMetaTex is a great tool, but I believe it still follows a cascade paradigm although it is a very articulate software, perhaps to write a book is an excellent choice!

But Speedata Publisher is a total different beast! It is designed to do high-granular-sophisticated layouts, where the representation is separated from the data! Sir frischefarbe knows how much time I have been investing in studying it, and it is just recently that I started to grasp how much is powerful and flexible.

As pure designer I say that Speedata is a great piece of software! 🙏
 
[...]
besides the crude patch you need
ln -s /usr/local/bin/luatex bin/sdluatex

Hi covacat

I sym-linked /usr/local/bin/luatex anywhere but it still unrecognized, any other suggestion?

Code:
sp --jobname=agl06
Run speedata publisher 4.17.16
Can't find sdluatex binary

However
Code:
lrwxr-xr-x  1 root wheel 21 Mar 13 00:05 /bin/sdluatex@ -> /usr/local/bin/luatex
lrwxr-xr-x  1 root wheel 21 Mar 13 00:06 /usr/bin/sdluatex@ -> /usr/local/bin/luatex
lrwxr-xr-x  1 root wheel 21 Mar 13 00:10 /usr/local/bin/sdluatex@ -> /usr/local/bin/luatex

🤷‍♂️
 
Ok I get it, the symbolic link is local, however recompiling the GO binary now fails with another error:

Code:
SDPRO=yes rake buildlib
go install -ldflags "-X main.basedir=/usr/home/zagor/Git/publisher -s"  speedatapublisher/sphelper/sphelper
/usr/home/zagor/Git/publisher/bin/sphelper buildlib
Building dynamic library for freebsd
# speedatapublisher/splib
./splib.go:4:10: fatal error: 'lauxlib.h' file not found
#include <lauxlib.h>
         ^~~~~~~~~~~
1 error generated.

exit status 1
rake aborted!
Command failed with status (255): [/usr/home/zagor/Git/publisher/bin/sphelper buildlib]
/usr/home/zagor/Git/publisher/Rakefile:42:in `block in <top (required)>'
Tasks: TOP => buildlib
(See full trace by running task with --trace)

😭
 
Seriously, just compile the copy in /usr/ports/lang/go122...

According to the golang documentation, you're supposed to first remove all copies of golang from the system, then install a newer version of golang. It really sounds like you have a mix of different versions of golang on your host, some of them not even from the Ports... so a mess of symlinks and different versions make golang a 'no go'... 😩

I expect that whoever ported golang to FreeBSD did a decent job of packaging it for compilation.
 
UPDATES…

With version 4.17.17 you don't need to modify anything.

The new recommendations are:
  1. GO ≥ 121
  2. rake build
  3. export CGO_CFLAGS="-I/usr/local/include/lua53"
  4. rake buildlib
  5. Your ready! 👍
Thanks! 🙏
 
Back
Top