aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2024-11-05 01:29:53 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-11-05 12:32:04 +0300
commit9cce7d263ea3f2984a619cdfcb54d264c6a4c51d (patch)
tree363314a72aa4fc3fda435086c8deb522aef247ec /.github
parent36c7526d60319289954bb0b49e9f4cb2c6dfe9da (diff)
downloadsciteco-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.yml19
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 ./