davidgiven / wordgrinder

A word processor which gets the hell out of your way and lets you get some work done.
http://cowlark.com/wordgrinder
827 stars 53 forks source link

How to build Dev release #255

Open curable-online opened 6 months ago

curable-online commented 6 months ago

I just tried to compile and build dev release source code, But so far it wasn't successful. It's what I receive:

[3/236] MULTIBIN src/lua+luacode
FAILED: .obj/src/lua+luacode/script_table.h
mkdir -p .obj/src/lua+luacode && sh tools/multibin2c.sh script_table src/lua/_prologue.lua src/lua/objects.lua src/lua/events.lua src/lua/margin.lua src/lua/main.lua src/lua/xml.lua src/lua/utils.lua src/lua/redraw.lua src/lua/settings.lua src/lua/document.lua src/lua/documentset.lua src/lua/paragraph.lua src/lua/forms.lua src/lua/ui.lua src/lua/browser.lua src/lua/html.lua src/lua/xpattern.lua src/lua/fileio.lua src/lua/export.lua src/lua/export/text.lua src/lua/export/html.lua src/lua/export/latex.lua src/lua/export/troff.lua src/lua/export/opendocument.lua src/lua/export/org.lua src/lua/export/markdown.lua src/lua/import.lua src/lua/import/html.lua src/lua/import/text.lua src/lua/import/opendocument.lua src/lua/import/markdown.lua src/lua/navigate.lua src/lua/addons/goto.lua src/lua/addons/autosave.lua src/lua/addons/docsetman.lua src/lua/addons/gui.lua src/lua/addons/scrapbook.lua src/lua/addons/statusbar_charstyle.lua src/lua/addons/statusbar_pagecount.lua src/lua/addons/statusbar_position.lua src/lua/addons/statusbar_wordcount.lua src/lua/addons/debug.lua src/lua/addons/look-and-feel.lua src/lua/addons/keymapoverride.lua src/lua/addons/smartquotes.lua src/lua/addons/undo.lua src/lua/addons/spillchocker.lua src/lua/addons/templates.lua src/lua/addons/directories.lua src/lua/addons/recents.lua src/lua/colours.lua src/lua/menu.lua src/lua/cli.lua > .obj/src/lua+luacode/script_table.h
tools/multibin2c.sh: line 16: xxd: command not found
[12/236] CXX third_party/luau+luau/Autocomplete.cpp
ninja: build stopped: subcommand failed.
make: *** [Makefile:22: all] Error 1

I tried to build both on my machine and a clean chroot and both produces the same error. I tried building with lua52/lua53/lua54 and lua*-filesystem packages installed which didn't change anything. Also, tried with and without running ./configure at first, but it just changed the error to:

ninja: error: .obj/build.ninja:727: multiple rules generate .obj/luau_analyse

make: *** [Makefile:22: all] Error 1
curable-online commented 6 months ago

By the way, trying to run configure file without having glfw installed gives me this error:

Autodetecting a sensible configuration...
Autoconfiguring a basic Unix build with glfw
Package glfw3 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glfw3.pc'
to the PKG_CONFIG_PATH environment variable
Package 'glfw3', required by 'virtual:world', not found
Package glfw3 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glfw3.pc'
to the PKG_CONFIG_PATH environment variable
Package 'glfw3', required by 'virtual:world', not found
No OpenGL found
curable-online commented 6 months ago

Issuing make after ./configure without glfw results to the same error:

ninja: error: .obj/build.ninja:727: multiple rules generate .obj/luau_analyse

make: *** [Makefile:22: all] Error 1
curable-online commented 6 months ago

The clean Chroot has the following packages on ArchLinux:

acl 2.3.1-3
archlinux-keyring 20231222-1
argon2 20190702-5
attr 2.5.1-3
audit 3.1.2-1
autoconf 2.71-4
automake 1.16.5-2
base 3-2
base-devel 1-1
bash 5.2.021-1
binutils 2.41-3
bison 3.8.2-6
brotli 1.1.0-1
bzip2 1.0.8-5
ca-certificates 20220905-1
ca-certificates-mozilla 3.96.1-1
ca-certificates-utils 20220905-1
coreutils 9.4-2
cryptsetup 2.6.1-3
curl 8.5.0-1
db 6.2.32-1
db5.3 5.3.28-4
dbus 1.14.10-1
debugedit 5.0-5
device-mapper 2.03.22-2
diffutils 3.10-1
e2fsprogs 1.47.0-1
elfutils 0.190-1
expat 2.5.0-1
fakeroot 1.32.2-1
file 5.45-1
filesystem 2023.09.18-1
findutils 4.9.0-3
fish 3.6.4-1
flex 2.6.4-5
gawk 5.3.0-1
gc 8.2.4-1
gcc 13.2.1-3
gcc-libs 13.2.1-3
gdbm 1.23-2
gettext 0.22.4-1
glib2 2.78.3-1
glibc 2.38-7
gmp 6.3.0-1
gnupg 2.4.3-2
gnutls 3.8.2-1
gpgme 1.23.2-1
grep 3.11-1
groff 1.23.0-5
guile 3.0.9-1
gzip 1.13-2
hwdata 0.377-1
iana-etc 20231117-1
icu 74.2-1
iproute2 6.6.0-2
iptables 1:1.8.10-1
iputils 20221126-2
jansson 2.14-2
json-c 0.17-1
kbd 2.6.4-1
keyutils 1.6.3-2
kmod 31-1
krb5 1.20.1-2
libarchive 3.7.2-1
libassuan 2.5.6-1
libbpf 1.3.0-1
libcap 2.69-3
libcap-ng 0.8.3-2
libelf 0.190-1
libevent 2.1.12-4
libffi 3.4.4-1
libgcrypt 1.10.3-1
libgpg-error 1.47-1
libidn2 2.3.4-3
libisl 0.26-1
libksba 1.6.5-1
libldap 2.6.6-2
libmnl 1.0.5-1
libmpc 1.3.1-1
libnetfilter_conntrack 1.0.9-1
libnfnetlink 1.0.2-1
libnftnl 1.2.6-1
libnghttp2 1.58.0-1
libnl 3.9.0-1
libnsl 2.0.1-1
libp11-kit 0.25.3-1
libpcap 1.10.4-1
libpsl 0.21.2-1
libsasl 2.1.28-4
libseccomp 2.5.4-2
libsecret 0.21.2-1
libssh2 1.11.0-1
libsysprof-capture 45.1-1
libtasn1 4.19.0-1
libtirpc 1.3.4-1
libtool 2.4.7+4+g1ec8fa28-6
libunistring 1.1-2
libusb 1.0.26-2
libutempter 1.2.1-4
libverto 0.3.2-4
libxcrypt 4.4.36-1
libxml2 2.12.3-1
licenses 20231215-1
linux-api-headers 6.4-1
lz4 1:1.9.4-1
m4 1.4.19-3
make 4.4.1-2
mpfr 4.2.1-1
namcap 3.4.2-1
ncurses 6.4_20230520-1
nettle 3.9.1-1
ninja 1.11.1-3
npth 1.6-4
openssl 3.2.0-1
p11-kit 0.25.3-1
pacman 6.0.2-8
pacman-mirrorlist 20231001-1
pam 1.5.3-3
pambase 20230918-1
patch 2.7.6-10
pciutils 3.10.0-1
pcre2 10.42-2
perl 5.38.1-1
pinentry 1.2.1-3
pkgconf 2.1.0-2
popt 1.19-1
procps-ng 4.0.4-2
psmisc 23.6-1
pyalpm 0.10.6-5
python 3.11.6-1
python-pyelftools 0.30-1
readline 8.2.007-1
sed 4.9-3
shadow 4.14.2-1
sqlite 3.44.2-2
sudo 1.9.15.p4-1
systemd 255.1-1
systemd-libs 255.1-1
systemd-sysvcompat 255.1-1
tar 1.35-2
texinfo 7.1-2
tpm2-tss 4.0.1-1
tzdata 2023d-1
util-linux 2.39.3-1
util-linux-libs 2.39.3-1
which 2.21-6
xz 5.4.5-1
zlib 1:1.3-2
zstd 1.5.5-1

Which has zlib and ncurses installed.

As I said, I also tried installing with lua and glfw installed as well.

curable-online commented 6 months ago

It would be my pleasure if I can build the Development version and test it.

davidgiven commented 6 months ago

configure is obsolete and shouldn't be there any more --- I'm in the middle of reworking the build system. The docs need updating, too. The definitive set of Debian packages can be found in the .github/workflows/ccpp.yml file:

apt install ninja-build liblua5.1-0-dev liblua5.2-dev liblua5.3-dev libluajit-5.1-dev libncurses-dev zlib1g-dev libopengl-dev libglfw3-dev libcmark-dev imagemagick libfmt-dev
curable-online commented 6 months ago

As I mentioned, I'm on ArchLinux not on Debian. But can use Debian to build and/or run the package through Distrobox or systemd-nspawn.

I have used configure since it was mentioned in Readme.md and was also in the sources. However, Now that I know what packages are exactly needed,

I'm in the middle of reworking the build system.

Should I use configure for building current Dev release or not?

curable-online commented 6 months ago

apt install ninja-build liblua5.1-0-dev liblua5.2-dev liblua5.3-dev libluajit-5.1-dev libncurses-dev zlib1g-dev libopengl-dev libglfw3-dev libcmark-dev imagemagick libfmt-dev

Are all Lua versions necessary? All lua{51,52,53} and luajit?

Current stable release only needed freetype2 and ninja to build without xwordgrinder and needed libx11 and libxft as well for building with X11 frontend. Since it was using built-in Lua if I don't be worng.