logo

badwolf

minimalist and privacy-oriented web browser based on WebKitGTK git clone https://hacktivis.me/git/badwolf.git

README.md (4618B)


  1. # BadWolf
  2. ```
  3. SPDX-FileCopyrightText: 2019-2022 Badwolf Authors <https://hacktivis.me/projects/badwolf>
  4. SPDX-License-Identifier: BSD-3-Clause
  5. ```
  6. Minimalist and privacy-oriented WebKitGTK+ browser.
  7. Homepage: <https://hacktivis.me/projects/badwolf>
  8. The name is a reference to BBC’s Doctor Who Tv serie, I took it simply because I wanted to have a specie in the name, like some other web browsers do, but doesn’t go into the “gentle” zone.
  9. ## Differencies
  10. Comparing from other small WebKit browsers for unixes found in the wild:
  11. - Independent of environment, should just work if GTK and WebKitGTK does
  12. - Storing data should be:
  13. - explicit and optionnal (ie. Applying preferences doesn't imply Saving to disk)
  14. - not queryabe by WebKit (so the web can't use it)
  15. - done in a standard format (like XBEL for bookmarks)
  16. - Static UI, no element should be added at runtime, this is to avoid potential tracking via viewport changes
  17. - Small codebase, should be possible to read and understand it completely over an afternoon.
  18. - Does not use modal editing (from vi) as that was designed for editing, not browsing
  19. - UTF-8 encoding by default
  20. Motivation from other clients <https://hacktivis.me/articles/www-client%20are%20broken>
  21. ## Contributing
  22. ### Translations
  23. You need to have gettext installed. If you want a GUI, poedit exists and Weblate is a good web platform that I might consider hosting at some point.
  24. - Syncing POT file with the source code: ``make po/messages.pot``
  25. - Syncing PO file with the POT file: ``make po/de.po``
  26. - Initialising a new PO file (example for German, `de_DE`): ``msginit -l de_DE -i po/messages.pot -o po/de.po``
  27. ## Contacts / Discussions
  28. - IRC: `#badwolf-browser` on [GeekNode](https://www.geeknode.org/)
  29. - Matrix (bridge): [#badwolf-browser:matrix.fdn.fr](https://matrix.to/#/#badwolf-browser:matrix.fdn.fr)
  30. ## Repositories
  31. ### git
  32. - Main: <https://hacktivis.me/git/badwolf/>, <git://hacktivis.me/git/badwolf.git>
  33. - Mirror: <https://gitlab.com/lanodan/badWolf.git>, this one can also be used if you prefer tickets/PRs over emails
  34. ### release assets
  35. - Main: <https://hacktivis.me/releases/>
  36. - Mirror: <https://gitlab.com/lanodan/badWolf/tags>
  37. - `*.tar.*` files are tarballs archives to be extracted with a program like `tar(1)`, GNU tar and LibArchive bsdtar are known to work.
  38. - `*.sig` files are OpenPGP signatures done with my [key](https://hacktivis.me/key.asc)(`DDC9 237C 14CF 6F4D D847 F6B3 90D9 3ACC FEFF 61AE`).
  39. - `*.sign` files are minisign (OpenBSD `signify(1)` compatible) signatures, they key used for it can be found at <https://hacktivis.me/releases/signify/> as well as other places (feel free to ping me to get it)
  40. ## Manual Installation
  41. ### Dependencies
  42. - POSIX-compatible Shell (ie. mrsh, dash, lksh)
  43. - POSIX-compatible make(1) (ie. {Free,Net,Open}BSD make, GNU make)
  44. - A pkg-config implementation (pkgconf is recommended)
  45. - C11 Compiler (such as clang or gcc)
  46. - [WebKitGTK](https://webkitgtk.org/), only the latest stable(2.32.0+) is supported
  47. - [libxml-2.0](http://www.xmlsoft.org/), no known version limitation
  48. - (optional, translating) [po4a](https://po4a.org/) to modify manpage translations
  49. - (optional, translating) gettext implementation (such as GNU Gettext)
  50. - (optional, translating) ed(1), the standard editor
  51. - (optional, lint) [mandoc](https://mdocml.bsd.lv/) (the command) for linting the manpage
  52. - (optional, lint) [shellcheck](https://www.shellcheck.net/) for linting the `./configure` script
  53. - (optional, lint) [flawfinder](https://www.dwheeler.com/flawfinder/) for examining C source code for flaws
  54. - (optional, lint) [reuse](https://reuse.software/) for checking REUSE compliance
  55. Note: Packagers can safely ignore the lint dependencies.
  56. ### Compiling
  57. ```
  58. ./configure && make
  59. ```
  60. Note: `configure` is a simple shell script (so not autotools) which supports variables like `PREFIX`.
  61. ### Installing
  62. ```
  63. make install
  64. # DESTDIR is supported
  65. ```
  66. Debian users will probably want to use `checkinstall` instead.
  67. An example AppArmor profile is provided at `usr.bin.badwolf`, please do some long runtime checks before shipping it or a modified version, help can be provided but with no support.
  68. If you modify the icons, you'll need `inkscape` (command line only), to regenerate the bitmap versions. It isn't needed for a normal installation as the bitmap icons are bundled.
  69. ## Notes
  70. Most of the privacy/security stuff will be done with patches against WebKit as quite a lot isn’t into [WebKitSettings](https://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html) and with generic WebKit extensions that should be resuseable.