aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2024-05-22 19:52:33 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-05-22 19:53:08 +0300
commitb6d1e87092eabb464f33c5087b698672f5251948 (patch)
treeddc43fce73006299209047fe9c59b85506afa6cc
parent8c79ce1e1639edf1eae0c8323fd301948ebb84e3 (diff)
downloadsciteco-b6d1e87092eabb464f33c5087b698672f5251948.tar.gz
build and upload AppImages as part of nightly builds
-rw-r--r--.github/workflows/nightly.yml18
-rwxr-xr-xAppImage/curses.yml31
-rwxr-xr-xAppImage/gtk.yml29
-rw-r--r--README4
-rw-r--r--TODO5
5 files changed, 82 insertions, 5 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index ba5af31..c202623 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -47,12 +47,26 @@ jobs:
cp debian-temp/sciteco-gtk_*.deb sciteco-gtk_nightly_${{matrix.os}}_amd64.deb
cp debian-temp/sciteco-common_*.deb sciteco-common_nightly_${{matrix.os}}_all.deb
- - name: Archive Debian/Ubuntu Packages
+ - name: Build AppImages
+ # Should always be on the oldest supported Ubuntu
+ if: matrix.os == 'ubuntu-20.04'
+ run: |
+ cd AppImage
+ wget -O pkg2appimage.AppImage \
+ "https://github.com/AppImageCommunity/pkg2appimage/releases/download/continuous/pkg2appimage--x86_64.AppImage"
+ chmod +x pkg2appimage.AppImage
+ ./pkg2appimage.AppImage curses.yml
+ mv out/*.AppImage sciteco-curses_nightly_x86_64.AppImage
+ ./pkg2appimage.AppImage gtk.yml
+ mv out/*.AppImage sciteco-gtk_nightly_x86_64.AppImage
+ chmod a+x *.AppImage
+
+ - name: Archive Debian/Ubuntu Packages and AppImages
uses: pyTooling/Actions/releaser@v1.0.5
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: nightly
- files: ./*.deb
+ files: ./*.deb ./AppImage/*.AppImage
macos:
runs-on: macos-12
diff --git a/AppImage/curses.yml b/AppImage/curses.yml
new file mode 100755
index 0000000..d219c0b
--- /dev/null
+++ b/AppImage/curses.yml
@@ -0,0 +1,31 @@
+app: sciteco-curses
+
+# We currently use paths hardcoded at build-time.
+# Alternatively, it would be possible to customize the AppRun script or
+# add a wrapper that sets $SCITECOPATH.
+union: true
+
+ingredients:
+ packages:
+ - sciteco-curses
+ dist: focal
+ sources:
+ - deb http://archive.ubuntu.com/ubuntu/ focal main universe
+# ppas:
+# - robin-haberkorn/sciteco
+ script:
+ - wget -c "https://github.com/rhaberkorn/sciteco/releases/download/nightly/sciteco-common_nightly_ubuntu-20.04_all.deb"
+ - wget -c "https://github.com/rhaberkorn/sciteco/releases/download/nightly/sciteco-curses_nightly_ubuntu-20.04_all.deb"
+ post_script:
+ - dpkg -I sciteco-curses*.deb | grep "Version:" | cut -d':' -f2 | cut -d'+' -f1 | sed 's/^[ ]*//g' >VERSION
+
+script:
+ # This is currently not installed by sciteco-curses.
+ # FIXME: There should perhaps be a unique name in the desktop file, so it does not conflict with the Gtk version.
+ - wget -O sciteco-curses.desktop -c "https://raw.githubusercontent.com/rhaberkorn/sciteco/master/src/sciteco.desktop"
+ - sed -i -e 's@gsciteco@sciteco@g' sciteco-curses.desktop
+ - echo 'Terminal=true' >>sciteco-curses.desktop
+ - wget -O sciteco.png -c "https://raw.githubusercontent.com/rhaberkorn/sciteco/master/ico/sciteco-256.png"
+ # Thinning: These documentation files are pointless.
+ # SciTECO comes with its own online help system.
+ - rm -rf ./usr/share/doc ./usr/share/man
diff --git a/AppImage/gtk.yml b/AppImage/gtk.yml
new file mode 100755
index 0000000..b6304bf
--- /dev/null
+++ b/AppImage/gtk.yml
@@ -0,0 +1,29 @@
+app: sciteco-gtk
+
+# We currently use paths hardcoded at build-time.
+# Alternatively, it would be possible to customize the AppRun script or
+# add a wrapper that sets $SCITECOPATH.
+union: true
+
+ingredients:
+ packages:
+ - sciteco-gtk
+ dist: focal
+ sources:
+ - deb http://archive.ubuntu.com/ubuntu/ focal main universe
+# ppas:
+# - robin-haberkorn/sciteco
+ script:
+ - wget -c "https://github.com/rhaberkorn/sciteco/releases/download/nightly/sciteco-common_nightly_ubuntu-20.04_all.deb"
+ - wget -c "https://github.com/rhaberkorn/sciteco/releases/download/nightly/sciteco-gtk_nightly_ubuntu-20.04_all.deb"
+ post_script:
+ - dpkg -I sciteco-gtk*.deb | grep "Version:" | cut -d':' -f2 | cut -d'+' -f1 | sed 's/^[ ]*//g' >VERSION
+
+script:
+ # FIXME: There should perhaps be a unique name in the desktop file, so it does not conflict with the Curses version.
+ - mv ./usr/share/applications/sciteco.desktop ./sciteco-gtk.desktop
+ - cp ./usr/share/icons/hicolor/256x256/apps/sciteco.png ./sciteco.png
+ - rm -rf ./usr/share/icons
+ # Thinning: These documentation files are pointless.
+ # SciTECO comes with its own online help system.
+ - rm -rf ./usr/share/doc ./usr/share/man
diff --git a/README b/README
index 0c74250..ea16ba0 100644
--- a/README
+++ b/README
@@ -115,12 +115,12 @@ There are prebuilt binary packages and source bundles for your convenience:
[`sciteco` package from this layer](https://github.com/rhaberkorn/meta-rhaberkorn).
* [Chocolatey package](https://community.chocolatey.org/packages/SciTECO)
for Windows users.
-* The official [SciTECO homepage](http://sciteco.sf.net/) is a live demo.
These releases may be quite outdated and not all of them are provided or tested by the author.
So you may also try out the [nightly builds](https://github.com/rhaberkorn/sciteco/releases/tag/nightly) -
they represent the repository's HEAD commit but may well be unstable.
-Both ncurses and Gtk+ packages are provided both for Ubuntu and Windows.
+Both ncurses and Gtk+ packages are provided for Ubuntu, generic Linux
+(in the form of [AppImages](https://appimage.org/)) and Windows.
For [Mac OS X](https://github.com/rhaberkorn/sciteco/wiki/Mac-OS-Support),
we currently only provide *experimental* ncurses builds.
diff --git a/TODO b/TODO
index 95b7b71..357044f 100644
--- a/TODO
+++ b/TODO
@@ -454,11 +454,11 @@ Features:
A new private key has already been registered on Launchpad and
Github. We just need to integrate with CI.
See also https://github.com/marketplace/actions/import-gpg
- * AppImage for Linux
* 64-bit Windows builds
* Mac OS Arm64 builds either separately or via universal binary.
See https://codetinkering.com/switch-homebrew-arm-x86/
Target flag: `-target arm64-apple-macos11`
+ * Get into AppImageHub.
* Linux: Relocatable binaries instead of hardcoding the library path.
This makes it possible to run builds installed via
`make install DESTDIR=...` and will aid in creating AppImages.
@@ -485,6 +485,9 @@ Features:
https://github.com/fpjohnston/TECO-64/blob/master/doc/oper.md
However, instead of introducing a separate parser state, better
use operators like ~=, ~< etc.
+ * It should be possible to disable auto-completions of one-character
+ register names, so that we can map the idention macro to M<TAB>.
+ * fnkeys.tes: Rubin/Rubout via cursor keys?
Optimizations:
* Use SC_DOCUMENTOPTION_STYLES_NONE in batch mode.