Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Yaft][0.0.4] - New Package #261

Merged
merged 16 commits into from
Apr 12, 2021
Merged

[Yaft][0.0.4] - New Package #261

merged 16 commits into from
Apr 12, 2021

Conversation

timower
Copy link

@timower timower commented Jan 25, 2021

Adds a new terminal emulator based on Yaft.

@LinusCDE
Copy link
Member

LinusCDE commented Jan 25, 2021

Hi. First thanks for the contribution. Having a faster on-device terminal emulator sounds really cool!

I failed to build the package to test it though. It's the first time of me building something with the new python based build-system. Though the error seems to be because of a cmake configuration problem.

Output of running FLAGS=--verbose make yaft
╭─linus@HomeLX /tmp/tol1/toltec  ‹add_yaft›
╰─$ FLAGS=--verbose make yaft
./scripts/package_build.py --verbose "yaft"
[   DEBUG] docker.utils.config: Trying paths: ['/home/linus/.docker/config.json', '/home/linus/.dockercfg']
[   DEBUG] docker.utils.config: No config file found
[   DEBUG] docker.utils.config: Trying paths: ['/home/linus/.docker/config.json', '/home/linus/.dockercfg']
[   DEBUG] docker.utils.config: No config file found
[   DEBUG] urllib3.connectionpool: http://localhost:None "GET /version HTTP/1.1" 200 833
[    INFO] toltec.builder: yaft: Fetching source files
[   DEBUG] urllib3.connectionpool: Starting new HTTPS connection (1): github.com:443
[   DEBUG] urllib3.connectionpool: https://github.com:443 "GET /timower/rM2-stuff/archive/0a5ff42551dab208c1937d9b10396f30e8e982ba.zip HTTP/1.1" 302 156
[   DEBUG] urllib3.connectionpool: Starting new HTTPS connection (1): codeload.github.com:443
[   DEBUG] urllib3.connectionpool: https://codeload.github.com:443 "GET /timower/rM2-stuff/zip/0a5ff42551dab208c1937d9b10396f30e8e982ba HTTP/1.1" 200 None
[    INFO] toltec.builder: yaft: Skipping prepare (nothing to do)
[    INFO] toltec.builder: yaft: Building artifacts
[   DEBUG] urllib3.connectionpool: http://localhost:None "POST /v1.41/containers/create HTTP/1.1" 201 88
[   DEBUG] urllib3.connectionpool: http://localhost:None "GET /v1.41/containers/39723ed22ed9f169b5039976167ce8c4b5454ee12af7bba41e9c474b6aba3d08/json HTTP/1.1" 200 None
[   DEBUG] urllib3.connectionpool: http://localhost:None "POST /v1.41/containers/39723ed22ed9f169b5039976167ce8c4b5454ee12af7bba41e9c474b6aba3d08/start HTTP/1.1" 204 0
[   DEBUG] urllib3.connectionpool: http://localhost:None "GET /v1.41/containers/39723ed22ed9f169b5039976167ce8c4b5454ee12af7bba41e9c474b6aba3d08/logs?stderr=1&stdout=1&timestamps=0&follow=1&tail=all HTTP/1.1" 200 None
[   DEBUG] urllib3.connectionpool: http://localhost:None "GET /v1.41/containers/39723ed22ed9f169b5039976167ce8c4b5454ee12af7bba41e9c474b6aba3d08/json HTTP/1.1" 200 None
[   DEBUG] toltec.builder: yaft: -- The CXX compiler identification is GNU 8.3.0
[   DEBUG] toltec.builder: yaft: -- Check for working CXX compiler: /usr/bin/c++
[   DEBUG] toltec.builder: yaft: -- Check for working CXX compiler: /usr/bin/c++ -- works
[   DEBUG] toltec.builder: yaft: -- Detecting CXX compiler ABI info
[   DEBUG] toltec.builder: yaft: -- Detecting CXX compiler ABI info - done
[   DEBUG] toltec.builder: yaft: -- Detecting CXX compile features
[   DEBUG] toltec.builder: yaft: -- Detecting CXX compile features - done
[   DEBUG] toltec.builder: yaft: -- The C compiler identification is GNU 8.3.0
[   DEBUG] toltec.builder: yaft: -- Check for working C compiler: /usr/bin/cc
[   DEBUG] toltec.builder: yaft: -- Check for working C compiler: /usr/bin/cc -- works
[   DEBUG] toltec.builder: yaft: -- Detecting C compiler ABI info
[   DEBUG] toltec.builder: yaft: -- Detecting C compiler ABI info - done
[   DEBUG] toltec.builder: yaft: -- Detecting C compile features
[   DEBUG] toltec.builder: yaft: -- Detecting C compile features - done
[   DEBUG] toltec.builder: yaft: CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
[   DEBUG] toltec.builder: yaft: Please set them or make sure they are set and tested correctly in the CMake files:
[   DEBUG] toltec.builder: yaft: /src/libs/rMlib/LIBEVDEV_INCLUDE_DIR
[   DEBUG] toltec.builder: yaft: used as include directory in directory /src/libs/rMlib
[   DEBUG] toltec.builder: yaft: LIBEVDEV_LIBRARY
[   DEBUG] toltec.builder: yaft: linked by target "rMlib" in directory /src/libs/rMlib
[   DEBUG] toltec.builder: yaft:
[   DEBUG] toltec.builder: yaft: -- Configuring incomplete, errors occurred!
[   DEBUG] toltec.builder: yaft: See also "/src/build/CMakeFiles/CMakeOutput.log".
[   DEBUG] urllib3.connectionpool: http://localhost:None "POST /v1.41/containers/39723ed22ed9f169b5039976167ce8c4b5454ee12af7bba41e9c474b6aba3d08/wait HTTP/1.1" 200 None
[   DEBUG] urllib3.connectionpool: http://localhost:None "DELETE /v1.41/containers/39723ed22ed9f169b5039976167ce8c4b5454ee12af7bba41e9c474b6aba3d08?v=False&link=False&force=False HTTP/1.1" 204 0
Traceback (most recent call last):
  File "/tmp/tol1/toltec/./scripts/package_build.py", line 33, in <module>
    if not builder.make(
  File "/tmp/tol1/toltec/scripts/toltec/builder.py", line 126, in make
    self._build(adapter, recipe, src_dir)
  File "/tmp/tol1/toltec/scripts/toltec/builder.py", line 264, in _build
    for line in logs:
  File "/tmp/tol1/toltec/scripts/toltec/bash.py", line 412, in run_script_in_container
    raise ScriptError(f"Script exited with code {result['StatusCode']}")
toltec.bash.ScriptError: Script exited with code 1
make: *** [Makefile:62: yaft] Fehler 1

I also tried building the package from source. Seems that I'm missing some nix specific toolchain?


@matteodelabre Any reason for the new system to fail on retris in ci? Seems like an incomplete url.

EDIT: Fixed broken formatting of this comment

@timower
Copy link
Author

timower commented Jan 25, 2021

Thanks for having a look, indeed libevdev seems to be missing from the base toolchain. It is included on the reMarkable though, so this seems like a toolchain error.

@matteodelabre matteodelabre added the packages Add or improve packages of the repository label Jan 26, 2021
Copy link
Member

@matteodelabre matteodelabre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some metadata nits. Thanks for the PR!

package/yaft/package Outdated Show resolved Hide resolved
package/yaft/package Outdated Show resolved Hide resolved
package/yaft/package Show resolved Hide resolved
package/yaft/package Outdated Show resolved Hide resolved
@timower timower changed the title [Yaft][0.0.1] - New Package [Yaft/Tilem][0.0.2] - New Package Jan 26, 2021
Eeems
Eeems previously requested changes Jan 26, 2021
package/timower-stuff/package Outdated Show resolved Hide resolved
@matteodelabre
Copy link
Member

What’s the rationale behind switching to a binary package @timower? When possible, we prefer building from source.

@timower
Copy link
Author

timower commented Feb 1, 2021

What’s the rationale behind switching to a binary package @timower? When possible, we prefer building from source.

Just so the build script is in one location. I'll update the pull request when I have time, for now I'll just leave it as a draft here.
(Also, I was looking into using GH actions to automatically create a PR when a tag gets pushed to my repo).

@Eeems
Copy link
Member

Eeems commented Mar 16, 2021

@timower Any further progress on this? I'd love to have yaft added so I don't have to use fingerterm anymore :)

@timower
Copy link
Author

timower commented Mar 16, 2021

@timower Any further progress on this? I'd love to have yaft added so I don't have to use fingerterm anymore :)

I can update the PR this weekend probably. The only major issue right now is rm1 support (timower/rM2-stuff#3)

@Eeems
Copy link
Member

Eeems commented Mar 16, 2021

Hmm, well if I can get some time I might try to help with rM1 support. Since that's all I have.

@raisjn
Copy link
Contributor

raisjn commented Apr 4, 2021

rM1 is now supported in yaft, so we should revisit this

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \
-DCMAKE_INSTALL_PREFIX="$pkgdir"
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@matteodelabre It seems $pkgdir is not available during build, but I think it should be

@timower timower changed the title [Yaft/Tilem][0.0.2] - New Package [Yaft][0.0.4] - New Package Apr 11, 2021
@timower timower marked this pull request as ready for review April 11, 2021 20:58
Copy link
Contributor

@raisjn raisjn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i tested this on rM1 and rM2 by installing it, then opening yaft and typing in a few commands / tab completions (cd, ls, etc) - works well, is nice and snappy, thank you for contributing it!

@raisjn raisjn dismissed stale reviews from Eeems and matteodelabre April 12, 2021 02:30

package is split into only yaft now

@Eeems
Copy link
Member

Eeems commented Apr 12, 2021

There is no application registration file(s) included, so I can't launch it from oxide or remux. Are you planning on including one @timower?

@raisjn
Copy link
Contributor

raisjn commented Apr 12, 2021

there are draft files and an icon, afaict, but not in the toltec PR. (and i think i saw a commit for them in timower's repo earlier today)

reMarkable: ~/ opkg files yaft
Package yaft (0.0.4-1) is installed on root and has the following files:
/opt/etc/draft/icons/yaft.png
/opt/share/terminfo/y/yaft-256color
/opt/etc/draft/yaft.draft
/opt/bin/yaft
reMarkable: ~/ cat /opt/etc/draft/yaft.draft
# Copyright (c) 2020 The Toltec Contributors
# SPDX-License-Identifier: MIT

name=yaft
desc=Framebuffer terminal emulator with an on-screen touch keyboard
call=/opt/bin/yaft
term=:
imgFile=yaft

@timower
Copy link
Author

timower commented Apr 12, 2021

Indeed, I moved the draft files to my repo. So maintaining this package should be as easy as updating the sources url and checksum

@raisjn raisjn merged commit 860b439 into toltec-dev:testing Apr 12, 2021
danshick pushed a commit to danshick/toltec that referenced this pull request May 5, 2021
*  add yaft terminal emulator
Co-authored-by: Mattéo Delabre <spam@delab.re>
Co-authored-by: Nathaniel van Diepen <Eeems@users.noreply.github.com>
danshick added a commit to danshick/toltec that referenced this pull request May 5, 2021
LinusCDE pushed a commit that referenced this pull request Jun 3, 2021
*  add yaft terminal emulator
Co-authored-by: Mattéo Delabre <spam@delab.re>
Co-authored-by: Nathaniel van Diepen <Eeems@users.noreply.github.com>
matteodelabre added a commit that referenced this pull request Jul 21, 2021
Important notices:

* When upgrading, users should run `opkg update && opkg upgrade` **twice** because of the changes introduced by this merge. (#310)
* Toltec **no longer supports** OS releases **earlier than 2.6**. You can check your current OS version in the settings panel. Please upgrade to 2.6 or newer after upgrading your Toltec install. (#366)
* To re-enable Toltec, **run `toltecctl reenable`** instead of the previous `entware-reenable` script that has been removed with this update.

Major change: The repository is now split into architecture subfolders. The `rmall` subfolder contains packages that can run both on reMarkable 1 and reMarkable 2 without modification. The `rm1` and `rm2` subfolders contain packages that are specific to each of the two devices. This change requires updating the Opkg configuration to point to the appropriate architectures. The migration is automated by placing an upgrade to the `toltec-bootstrap` package in the root folder of the repo that contains a migration script. (Note that this package is not generated automatically by our build system but will be added manually by the server administrator.)

New packages:

* bash-completion - 2.11-3 (#277, #375)
* display - 1.0.1-7 _(replaces the server part of the old rm2fb package)_ (#310)
* fuse - 1.0.0-2 (#331)
* gocryptfs - 2.0-beta2 (#318)
* innernet - 1.3.1-2 (#350, #358, #361)
* netsurf - 0.4.0-1 (#339)
* puzzles - 0.2.2-2 (#326)
* remarkable-stylus - 0.0.3-1 (#383)
* rm2fb-client - 1.0.1-7 _(replaces the client part of the old rm2fb package)_ (#310)
* tilem - 0.0.7-1 (#352)
* toltec-completion - 0.2.0-1 (#277)
* yaft - 0.0.4-3 (#261, #353)
* zoneinfo-utils - 2021a-2 (#182)

Updated packages:

* appmarkable - 0.0.0-11
* bufshot - 0.1.0-5
* calculator - 0.0.0-15
* chessmarkable - 0.7.1-2 (#362, #373)
* ddvk-hacks - 23.02-1 (#385)
* draft - 0.2.0-20
* evtest - 1.34-3
* fbink fbdepth fbink-doom - 1.23.1-4
* fingerterm - 1.3.5-14
* genie - 0.1.5-3
* harmony - 0.1.3-3
* iago - 0.1.0-4
* keywriter - 0.1.0-3
* koreader - 2021.06-1 (#330, #348, #357, #378)
* lamp - 0.1.0-4
* libdlib libdlib-dev - 19.21-2
* libvncserver libvncclient libvncserver-dev - 0.9.13-2
* mines - 0.1.2-4
* nao - 0.1.3-3
* oxide erode fret rot tarnish decay corrupt anxiety - 2.2-1 (#382)
* plato - 0.9.17-2 (#344)
* quickjs - 2020.11.08-2
* recrossable - 0.0.0-7
* remarkable-splash - 1.0-5
* remux - 0.1.9-3
* restream - 1.1-2
* retris - 0.6.3-3
* rmservewacominput - 0.3.0-2
* simple - 0.1.4-3
* templatectl - 0.1.3-3
* toltec-bootstrap - 0.1.0-1 _(includes toltecctl)_ (#379)
* vnsee - 0.4.0-2 (#355)
* wikipedia - 0.1.0-3
* wireguard - 1.0.20210219-2
* xochitl - 0.0.0-7 (#383, #382, #386)
* zshelf - 0.3.1-3

Website: The source files and scripts used for generating the website have been transferred to a separate repository (<https://github.com/toltec-dev/web>). A website rebuild is triggered automatically from this repository’s workflow when the stable branch is updated, so that the displayed checksum of the bootstrap script is always accurate.
matteodelabre added a commit that referenced this pull request Jul 31, 2021
Important notices:

* When upgrading, users should run `opkg update && opkg upgrade` **twice** because of the changes introduced by this merge. (#310)
* Toltec **no longer supports** OS releases **earlier than 2.6**. You can check your current OS version in the settings panel. If you’re still running on 2.5 or earlier, please upgrade to 2.6 or newer after upgrading your Toltec install. (#366)

Less important notices:

* To re-enable Toltec after a system upgrade, **run `toltecctl reenable`** instead of the previous `entware-reenable` script that has been removed with this update.
* You can now easily uninstall Toltec by running `toltec uninstall`.
* This release marks the end of our work towards transitioning to a new repository layout. This means that **stable will be updated more frequently from now on.** If you switched to the testing branch because stable has been outdated for a few months, and if you prefer to run stable releases, you can go back to the stable branch by running `toltecctl switch-branch stable`.

Layout change: The repository is now split into architecture subfolders. The `rmall` subfolder contains packages that can run both on reMarkable 1 and reMarkable 2 without modification. The `rm1` and `rm2` subfolders contain packages that are specific to each of the two devices. This change requires updating the Opkg configuration to point to the appropriate architectures. The migration is automated by placing an upgrade to the `toltec-bootstrap` package in the root folder of the repo that contains a migration script.

New packages:

* bash-completion - 2.11-3 (#277, #375)
* display - 1.0.1-7 _(replaces the server part of the old rm2fb package)_ (#310)
* fuse - 1.0.0-3 (#331)
* gocryptfs - 2.0-beta2 (#318)
* innernet-client - 1.3.1-2 (#350, #358, #361)
* netsurf - 0.4.0-2 (#339)
* puzzles - 0.2.2-3 (#326)
* remarkable-stylus - 0.0.3-1 (#383)
* rm2fb-client - 1.0.1-7 _(replaces the client part of the old rm2fb package)_ (#310)
* tilem - 0.0.7-2 (#352)
* toltec-completion - 0.2.0-1 (#277)
* yaft - 0.0.4-4 (#261, #353)
* zoneinfo-utils - 2021a-2 (#182)

Updated packages:

* appmarkable - 0.0.0-11
* bufshot - 0.1.0-5
* calculator - 0.0.0-15
* chessmarkable - 0.8.0-1 (#362, #373, #392)
* ddvk-hacks - 23.02-1 (#385)
* draft - 0.2.0-20
* evtest - 1.34-3
* fbink fbdepth fbink-doom - 1.23.2-1 (#387)
* fingerterm - 1.3.5-14
* genie - 0.1.5-3
* harmony - 0.1.3-3
* iago - 0.1.0-4
* keywriter - 0.1.0-3
* koreader - 2021.07-1 (#330, #348, #357, #378, #389)
* lamp - 0.1.0-4
* libdlib libdlib-dev - 19.21-2
* libvncserver libvncclient libvncserver-dev - 0.9.13-2
* mines - 0.1.2-4
* nao - 0.1.3-3
* oxide erode fret rot tarnish decay corrupt anxiety - 2.2.1-1 (#382)
* plato - 0.9.17-2 (#344)
* quickjs - 2020.11.08-2
* recrossable - 0.0.0-7
* remarkable-splash - 1.0-5
* remux - 0.1.9-4
* restream - 1.1-2
* retris - 0.6.3-3
* rmservewacominput - 0.3.0-2
* simple - 0.1.4-3
* templatectl - 0.1.3-3
* toltec-bootstrap - 0.1.0-1 _(includes toltecctl)_ (#379)
* vnsee - 0.4.0-2 (#355)
* wikipedia - 0.1.0-3
* wireguard - 1.0.20210219-2
* xochitl - 0.0.0-7 (#383, #382, #386)
* zshelf - 0.3.1-3

Website: The source files and scripts used for generating the website have been transferred to a separate repository (<https://github.com/toltec-dev/web>). A website rebuild is triggered automatically from this repository’s workflow when the stable branch is updated, so that the displayed checksum of the bootstrap script is always accurate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages Add or improve packages of the repository
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants