commit 5899eca95080cd35ecadf5da3b9576460425b81b from: Omar Polo date: Tue Feb 20 20:11:57 2024 UTC revamp a bit the makefile commit - a01cd9148fe065a76e0ec70cf76b0d9f59862dbe commit + 5899eca95080cd35ecadf5da3b9576460425b81b blob - ee94aa1222f2a16743cda31b4124cabc028e2e6b blob + bf7efae3c1fcd2dfb722f00f90e5dbd6041603a3 --- README.md +++ README.md @@ -3,22 +3,17 @@ Telescope is a Emacs/w3m-inspired browser for the "small internet" that supports Gemini, Gopher and Finger. -Features: +In features some expected stuff (tabs, bookmarks, history, client +certificates, ...) with an UI that's very much Emacs and w3m inspired, +and a privsep design. - - tabs - - bookmarks - - privsep - - minibuffer live narrowing - - multiple protocols support - - fully customizable - - client certificates - There are still various things missing or, if you prefer, various things that you can help develop :) + - other "smol internet" protocols - subscriptions - - tofu oob verification - - add other GUIs: at the moment it uses only ncurses, but telescope + - TOFU out-of-band verification and/or DANE + - multiple UIs: at the moment it uses only ncurses, but telescope shouldn't be restricted to TTYs only! [![asciicast](https://asciinema.org/a/426862.svg)](https://asciinema.org/a/426862) @@ -31,19 +26,19 @@ writing browsers or server is easy and thus a plethora exists. I myself routinely switch between a couple of them, depending on my mood. -More browsers brings more stability as it became more difficult to -change the protocol, too. +More browsers means more choice for the users, and more stability for +the protocol too. However, Telescope was ultimately written for fun, on a whim, just to -play with ncurses, libtls, libevent and the macros from `sys/queue.h`, +play with ncurses, libtls, async I/O and the macros from `sys/queue.h`, but I'd like to finish it into a complete Gemini browser. ## Goals - Fun: hacking on Telescope should be fun. - - Clean: write readable and clean code mostly following the style(9) - guideline. Don't become a kitchen sink. + - Clean: write readable and clean code mostly following the OpenBSD + style(9) guideline. Don't become a kitchen sink. - Secure: write secure code with privilege separation to mitigate the security risks of possible bugs. - Fast: it features a modern, fast, event-based asynchronous I/O @@ -70,22 +65,23 @@ Most of the time, the `trusted` level is enough, but w appropriate users should be able to verify out-of-band the certificate. -At the moment there is no UI for oob-verification though. +At the moment there is no UI for out-of-band verification though. ## Building -Telescope depends on ncursesw, libtls (from either LibreSSL or -libretls), libevent (either v1 or v2) and pkg-config. +Telescope depends on ncursesw, libtls or libretls, and pkg-config. [libgrapheme][libgrapheme] is an optional dependency: there's a -bundled copy but it's reccomended to install it if available. When -building from a git checkout, yacc (or bison) is also needed. +bundled copy but it's reccomended to install it with a package manager +if available. When building from a git checkout, yacc (or bison) is +also needed. -To build from a release tarball just execute: +To build execute: + $ ./autogen.sh # only from git checkouts $ ./configure $ make - $ sudo make install + $ sudo make install # eventually The configure script has optional support for building with libraries provided by your distribution instead of using the bundled versions: @@ -93,21 +89,6 @@ provided by your distribution instead of using the bun - `--with-libbsd`: link with [libbsd][libbsd] - `--with-libimsg`: link with the [imsg-compat][imsg-compat] library -If you want to build from the git checkout, something that's -discouraged for users that don't intend to hack on telescope - - $ ./autogen.sh - $ ./configure - $ make - $ sudo make install # eventually - -Please keep in mind that the main branch, from time to time, may be -accidentally broken on some platforms. Telescope is developed -primarily on OpenBSD/amd64 and commits on the main branch don't get -always tested in other OSes. Before tagging a release however, a -comprehensive testing on various platforms is done to ensure -everything is working as intended. - [libbsd]: https://libbsd.freedesktop.org [imsg-compat]: https://github.com/bsd-ac/imsg-compat [libgrapheme]: https://libs.suckless.org/libgrapheme/ @@ -130,13 +111,16 @@ Telescope stores user files according to the [XDG Base Specification][xdg] by default. The usage and contents of these files are described in [the man page](telescope.1), under "FILES". -Only one instance of Telescope can be running at time per user. +At the moment, only one instance of Telescope can be running at time per +user. ## License Telescope is distributed under a BSD-style licence. The main code is -under the ISC but for files under `compat/` it varies. +either under the ISC or is Public Domain, but some files under `compat/` +are 3-Clause BSD or MIT. See the first few lines of every file or +`about:license` inside telescope for the copyright information. `data/emoji.txt` is copyright © 2022 Unicode, Inc. and distributed under the [UNICODE, Inc license agreement][unicode-license].