diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-11-05 01:29:53 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-11-05 12:32:04 +0300 |
commit | 9cce7d263ea3f2984a619cdfcb54d264c6a4c51d (patch) | |
tree | 363314a72aa4fc3fda435086c8deb522aef247ec /.github | |
parent | 36c7526d60319289954bb0b49e9f4cb2c6dfe9da (diff) | |
download | sciteco-9cce7d263ea3f2984a619cdfcb54d264c6a4c51d.tar.gz |
fully support relocatable binaries, improving AppImages
* You can now specify `--with-scitecodatadir` as a relative path,
that will be interpreted relative to the binary's location.
* Win32 binaries already were relocatable, but this was a Windows-specific
hack. Win32 binaries are now built with `--with-scitecodatadir=.`
since everything is in a single directory.
* Ubuntu packages are now also built `--with-scitecodatadir=../share/sciteco`.
This is not crucial for ordinary installations, but is meant for AppImage creation.
* Since AppImages are now built from relocatable packages,
we no longer need the unionfs-workaround from pkg2appimage.
This should fix the strange root contents when autocompleting in
AppImage builds.
* This might also fix the appimage.github.io CI issues.
I assume that because I could reproduce the issue on FreeBSD's
Linuxulator in dependence of pkg2appimage's "union"-setting.
See https://github.com/AppImage/appimage.github.io/pull/3402
* Determining the binary location actually turned out be hard and
very platform-dependant. There are now implementations for Windows
(which could also read argv[0]), Linux and generic UNIX (which
works on FreeBSD, but I am not sure about the others).
I believe this could also be useful on Mac OS to create app bundles,
but this needs to be tested - currently the Mac OS binaries are
installed into fixed locations and don't use relocation.
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/nightly.yml | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 4a6bc53..52c5425 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -218,9 +218,11 @@ jobs: mkdir build-wingui build-wincon (cd build-wingui ../configure --with-interface=pdcurses-gui --enable-html-manual --program-prefix=g \ + --with-scitecodatadir=. \ PDCURSES_LIBS="-lpdcurses_wingui -lgdi32 -lcomdlg32 -lwinmm") (cd build-wincon ../configure --with-interface=pdcurses --enable-html-manual \ + --with-scitecodatadir=. \ PDCURSES_LIBS="-lpdcurses_wincon -lgdi32 -lwinmm") - name: make @@ -244,9 +246,10 @@ jobs: run: | mkdir temp-bin/ cd temp-bin/ - cp /mingw32/bin/{gsciteco.exe,sciteco.exe,grosciteco.tes,tedoc.tes} ./ - cp -r /mingw32/share/sciteco/{lib,*.tmac} ./ - cp /mingw32/share/sciteco/sample.teco_ini .teco_ini + cp -r /mingw32/bin/{gsciteco.exe,sciteco.exe,grosciteco.tes,tedoc.tes} ./ + # datadir is relative to bindir + cp -r /mingw32/bin/{lib,*.tmac} ./ + cp /mingw32/bin/sample.teco_ini .teco_ini cp -r /mingw32/share/doc/sciteco/* ./ cp ../COPYING ../ChangeLog ./ cp /mingw32/bin/gspawn-win32-helper*.exe ./ @@ -300,7 +303,8 @@ jobs: LDFLAGS: -flto run: | autoreconf -i - ./configure --with-interface=gtk --enable-html-manual + ./configure --with-interface=gtk --enable-html-manual \ + --with-scitecodatadir=. - name: make run: make -j 2 @@ -317,11 +321,12 @@ jobs: mkdir temp-bin cd temp-bin cp /mingw32/bin/{sciteco.exe,grosciteco.tes,tedoc.tes} ./ - cp -r /mingw32/share/sciteco/{lib,*.tmac} ./ + # datadir is relative to bindir + cp -r /mingw32/bin/{lib,*.tmac} ./ # FIXME: Maybe there should be a separate win32/.teco_ini with # a few pre-enabled settings? - cp /mingw32/share/sciteco/sample.teco_ini .teco_ini - cp /mingw32/share/sciteco/fallback.css .teco_css + cp /mingw32/bin/sample.teco_ini .teco_ini + cp /mingw32/bin/fallback.css .teco_css cp -r /mingw32/share/doc/sciteco/* ./ cp ../COPYING ../ChangeLog ./ cp /mingw32/bin/gspawn-win32-helper*.exe ./ |