Skip to content

Commit

Permalink
debug build scripts post modules (#24696)
Browse files Browse the repository at this point in the history
* debug build scripts

* x

* x

* x

* x

* skip notary

* x
  • Loading branch information
joshblum committed Nov 22, 2021
1 parent a66861b commit cb632cb
Show file tree
Hide file tree
Showing 9 changed files with 110 additions and 119 deletions.
34 changes: 16 additions & 18 deletions README.md
@@ -1,6 +1,6 @@
## Keybase [![Build Status](https://travis-ci.org/keybase/client.svg?branch=master)](https://travis-ci.org/keybase/client) [![Build status](https://ci.appveyor.com/api/projects/status/90mxorxtj6vixnum/branch/master?svg=true)](https://ci.appveyor.com/project/keybase/client-x5qrt/branch/master)
## Keybase [![Build Status](https://travis-ci.com/keybase/client.svg?branch=master)](https://travis-ci.org/keybase/client) [![Build status](https://ci.appveyor.com/api/projects/status/90mxorxtj6vixnum/branch/master?svg=true)](https://ci.appveyor.com/project/keybase/client-x5qrt/branch/master)

Hi, and welcome to the Keybase client repo. All our client apps (macOS,
Hi, and welcome to the Keybase client repo. All our client apps (macOS,
Windows, Linux, iOS, and Android) are being actively developed in this
repository. Please, dig around.

Expand All @@ -9,23 +9,22 @@ repository. Please, dig around.
We'd love you to read our source code.

But - some of the things in this repo are explorations, and the app you build
from source just *might not do what it says it's doing*. So, if you just want
from source just _might not do what it says it's doing_. So, if you just want
to install Keybase on your computer, you should **[monitor our releases](https://keybase.io/download)** for macOS, Linux, or Windows.

If you're interested in our Docker image releases, please check out **[the Docker README](packaging/linux/docker/README.md)**.

![Sharing](https://keybase.io/images/github/repo_share.png?)


### Code Layout

* **go**: Core crypto libraries; the Keybase service; the command line client. [Learn More](go/README.md)
* **shared/{android,ios}**: Android and iOS apps developed with [React Native](https://facebook.github.io/react-native/).
* **shared/desktop**: Desktop application for macOS, Linux, and Windows, made with the [Electron](https://github.com/atom/electron) framework, sharing React code with react-native.
* **packaging**: Scripts for releasing packages across the various platforms.
* **protocol**: Defines the protocol for communication for clients to the Keybase services. Uses [Avro](http://avro.apache.org/docs/1.7.7/). [Learn More](protocol/README.md)
* **media**: Icons, graphics, media for Keybase apps.
* **osx**: The macOS Keybase.app, development parallel to an Electron-based application above. [Learn More](osx/README.md)
- **go**: Core crypto libraries; the Keybase service; the command line client. [Learn More](go/README.md)
- **shared/{android,ios}**: Android and iOS apps developed with [React Native](https://facebook.github.io/react-native/).
- **shared/desktop**: Desktop application for macOS, Linux, and Windows, made with the [Electron](https://github.com/atom/electron) framework, sharing React code with react-native.
- **packaging**: Scripts for releasing packages across the various platforms.
- **protocol**: Defines the protocol for communication for clients to the Keybase services. Uses [Avro](http://avro.apache.org/docs/1.7.7/). [Learn More](protocol/README.md)
- **media**: Icons, graphics, media for Keybase apps.
- **osx**: The macOS Keybase.app, development parallel to an Electron-based application above. [Learn More](osx/README.md)

### Problems?

Expand All @@ -44,7 +43,7 @@ We check and update both frequently.

### License

Most code is released under the New BSD (3 Clause) License. If subdirectories
Most code is released under the New BSD (3 Clause) License. If subdirectories
include a different license, that license applies instead.

### Development Guidelines
Expand All @@ -53,11 +52,11 @@ We check all git commits with pre-commit hooks generated via
[pre-commit.com](http://pre-commit.com) pre-commit hooks.
To enable use of these pre-commit hooks:

* [Install](http://pre-commit.com/#install) the `pre-commit` utility. For some common cases:
* `pip install pre-commit`
* `brew install pre-commit`
* Remove any existing pre-commit hooks via `rm .git/hooks/pre-commit`
* Configure via `pre-commit install`
- [Install](http://pre-commit.com/#install) the `pre-commit` utility. For some common cases:
- `pip install pre-commit`
- `brew install pre-commit`
- Remove any existing pre-commit hooks via `rm .git/hooks/pre-commit`
- Configure via `pre-commit install`

Then proceed as normal.

Expand All @@ -69,7 +68,6 @@ risk to do so without a review first. If your PR is successfully reviewed by a
member of the Keybase team, then we will merge your commits to a branch on our
primary fork and build from there.


### Cryptography Notice

This distribution includes cryptographic software. The country in which you
Expand Down
36 changes: 15 additions & 21 deletions browser/README.md
Expand Up @@ -2,7 +2,6 @@

**Status**: Beta. Ready for public testing.


## Releasing a new version

There's a handy `Makefile` that will do most of the work (assuming you have
Expand All @@ -18,12 +17,10 @@ whatever the current version is set in the `manifest.json`).
Upload that file to the Chrome or Firefox extension dashboard, hit publish, and
we're done.


## Manual Install and QA

Build a fresh extension to load into your browsers:


```shell
$ yarn
$ make
Expand All @@ -33,21 +30,20 @@ $ make

You can add the extension in development mode:

* Open Chrome to `chrome://extensions/`
* Make sure "Developer mode" is checked
* "Load unpacked extension..."
* Open this directory

- Open Chrome to `chrome://extensions/`
- Make sure "Developer mode" is checked
- "Load unpacked extension..."
- Open this directory

### Firefox Install

You can add the extension in development mode:

* Open Firefox to `about:debugging#addons`
* "Load Temporary Add-on"
* Open this directory
- Open Firefox to `about:debugging#addons`
- "Load Temporary Add-on"
- Open this directory
the extension
* You can ignore the `Reading manifest: Error processing permissions...` error,
- You can ignore the `Reading manifest: Error processing permissions...` error,
FireFox does not support all the WebExtensions features yet.

### Quick QA Check
Expand All @@ -56,19 +52,18 @@ Once you have development versions of the extension in your browsers, run
through the following to quickly QA any changes you have made. Check that the
button appears and you can chat `joshblum` on:

* [keybase.io](https://keybase.io/joshblum)
* [reddit](https://www.reddit.com/user/joshblum)
* [HN](https://news.ycombinator.com/user?id=josh_blum)
* [GitHub](https://github.com/joshblum)
* [Twitter](https://twitter.com/blumua)
* [Facebook](https://www.facebook.com/ccoyne77)
- [keybase.io](https://keybase.io/joshblum)
- [reddit](https://www.reddit.com/user/joshblum)
- [HN](https://news.ycombinator.com/user?id=josh_blum)
- [GitHub](https://github.com/joshblum)
- [Twitter](https://twitter.com/blumua)
- [Facebook](https://www.facebook.com/ccoyne77)

Note: Reddit is doing a large redesign and this affects the extension. If you
are making any changes you should test against the old and new designs. You can
toggle which experience you get by visiting https://www.reddit.com/prefs and
toggle which experience you get by visiting https://www.reddit.com/prefs and
selecting "Use the redesign as my default experience".


### KBNM

This extension relies on `kbnm` (which lives in `../go/kbnm` of this repo). It
Expand Down Expand Up @@ -99,7 +94,6 @@ $ $GOPATH/bin/kbnm uninstall
```


## License

This code shares the same license as the repository.
4 changes: 2 additions & 2 deletions go/README.md
@@ -1,7 +1,7 @@
## Keybase [![Build Status](https://travis-ci.org/keybase/client.svg?branch=master)](https://travis-ci.org/keybase/client) [![Build status](https://ci.appveyor.com/api/projects/status/90mxorxtj6vixnum/branch/master?svg=true)](https://ci.appveyor.com/project/keybase/client-x5qrt/branch/master)

This repository contains the Keybase core crypto libraries, command-line
utility, and local Keybase service. All code is written in the [Go
utility, and local Keybase service. All code is written in the [Go
Language](https://golang.org), making heavy use of Go's
[OpenPGP](https://godoc.org/golang.org/x/crypto/openpgp) and
[NaCl](https://godoc.org/golang.org/x/crypto/nacl)
Expand All @@ -26,7 +26,7 @@ instructions](https://keybase.io/download).
### Building

Here's how to build the command line client on Linux or OSX. You need to
have both Git and **Go 1.9 or higher** installed. (Run `go version` to
have both Git and **Go 1.15 or higher** installed. (Run `go version` to
see what version you have.)

```bash
Expand Down
120 changes: 59 additions & 61 deletions go/kbfs/README.md
Expand Up @@ -14,86 +14,86 @@ service](https://github.com/keybase/client/tree/master/go).
### Architecture

This client allows you to mount KBFS as a proper filesystem at some
mountpoint on your local device (by default, `/keybase/`). It
mountpoint on your local device (by default, `/keybase/`). It
communicates locally with the Keybase service, and remotely with three
types of KBFS servers (block servers, metadata servers, and key
servers).

The code is organized as follows:

* [cache](cache/): Generic cache data structures.
* [data](data/): Data structures and logic for KBFS file and directory data.
* [dokan](dokan/): Helper code for running Dokan filesystems on Windows.
* [env](env/): Code to implement libkbfs.Context in terms of libkb.
* [favorites](favorites/): Data structures for the favorited lists of
- [cache](cache/): Generic cache data structures.
- [data](data/): Data structures and logic for KBFS file and directory data.
- [dokan](dokan/): Helper code for running Dokan filesystems on Windows.
- [env](env/): Code to implement libkbfs.Context in terms of libkb.
- [favorites](favorites/): Data structures for the favorited lists of
top-level folders (TLFs) that appear under private/, public/, and
team/.
* [fsrpc](fsrpc/): RPC interfaces that connected clients can call in KBFS,
- [fsrpc](fsrpc/): RPC interfaces that connected clients can call in KBFS,
to do certain operations, such as listing files.
* [idutil](idutil/): Basic data structures, interfaces, and helper
- [idutil](idutil/): Basic data structures, interfaces, and helper
code for dealing with identity data for users and teams.
* [ioutil](ioutil/): Helper functions for I/O.
* [kbfsblock](kbfsblock/): Types and functions to work with KBFS blocks.
* [kbfscodec](kbfscodec/): Interfaces and types used for serialization in KBFS.
* [kbfscrypto](kbfscrypto/): KBFS-specific cryptographic types and functions.
* [kbfsdokan](kbfsdokan/): The main executable for running KBFS on
- [ioutil](ioutil/): Helper functions for I/O.
- [kbfsblock](kbfsblock/): Types and functions to work with KBFS blocks.
- [kbfscodec](kbfscodec/): Interfaces and types used for serialization in KBFS.
- [kbfscrypto](kbfscrypto/): KBFS-specific cryptographic types and functions.
- [kbfsdokan](kbfsdokan/): The main executable for running KBFS on
Windows.
* [kbfsfuse](kbfsfuse/): The main executable for running KBFS on Linux
- [kbfsfuse](kbfsfuse/): The main executable for running KBFS on Linux
and OS X.
* [kbfsgit](kbfsgit/): The main executable for the Keybase git remote helper.
* [kbfshash](kbfshash/): An implementation of the KBFS hash spec.
* [kbfsmd](kbfsmd/): Types and functions to work with KBFS TLF metadata.
* [kbfssync](kbfssync/): KBFS-specific synchronization primitives.
* [kbfstool](kbfstool/): A thin command line utility for interacting with KBFS
- [kbfsgit](kbfsgit/): The main executable for the Keybase git remote helper.
- [kbfshash](kbfshash/): An implementation of the KBFS hash spec.
- [kbfsmd](kbfsmd/): Types and functions to work with KBFS TLF metadata.
- [kbfssync](kbfssync/): KBFS-specific synchronization primitives.
- [kbfstool](kbfstool/): A thin command line utility for interacting with KBFS
without using a filesystem mountpoint.
* [kbpagesconfig](kbpagesconfig/): Configuration code for Keybase Pages.
* [kbpagesd](kbpagesd/): The main executable for Keybase Pages.
* [libcontext](ldbutils/): KBFS-specific levelDB utility code.
* [libcontext](libcontext/): KBFS-specific context helper code.
* [libdokan](libdokan/): Library code gluing together KBFS and the
- [kbpagesconfig](kbpagesconfig/): Configuration code for Keybase Pages.
- [kbpagesd](kbpagesd/): The main executable for Keybase Pages.
- [libcontext](ldbutils/): KBFS-specific levelDB utility code.
- [libcontext](libcontext/): KBFS-specific context helper code.
- [libdokan](libdokan/): Library code gluing together KBFS and the
Dokan protocol.
* [libfs](libfs/): Common library code useful to any filesystem
- [libfs](libfs/): Common library code useful to any filesystem
presentation layer for KBFS.
* [libfuse](libfuse/): Library code gluing together KBFS and the FUSE
- [libfuse](libfuse/): Library code gluing together KBFS and the FUSE
protocol.
* [libgit](libgit/): Library for git-related logic.
* [libhttpserver](libhttpserver/): Library for serving KBFS files with
- [libgit](libgit/): Library for git-related logic.
- [libhttpserver](libhttpserver/): Library for serving KBFS files with
a local HTTP server.
* [libkey](libkey/): Library for managing KBFS server keys and key metadata.
* [libkbfs](libkbfs/): The core logic for KBFS.
* [libmime](libmime/): Library for determining the MIME types of KBFS
- [libkey](libkey/): Library for managing KBFS server keys and key metadata.
- [libkbfs](libkbfs/): The core logic for KBFS.
- [libmime](libmime/): Library for determining the MIME types of KBFS
files.
* [libpages](libpages/): Library for the logic behind Keybase Pages.
* [metricsutil](metricsutil/): Helper code for collecting metrics.
* [redirector](redirector/): The executable that redirects user FUSe
requests to the correct user KBFS mount. The redirector is usually
- [libpages](libpages/): Library for the logic behind Keybase Pages.
- [metricsutil](metricsutil/): Helper code for collecting metrics.
- [redirector](redirector/): The executable that redirects user FUSe
requests to the correct user KBFS mount. The redirector is usually
mounted at `/keybase` on Linux and macOS.
* [simplefs](simplefs/): A simple RPC-based interface to KBFS.
* [stderrutils](stderrutils/): A simple library for dealing with
- [simplefs](simplefs/): A simple RPC-based interface to KBFS.
- [stderrutils](stderrutils/): A simple library for dealing with
stderr on different platforms.
* [sysutils](sysutils/): Library for dealing with platform-specific
- [sysutils](sysutils/): Library for dealing with platform-specific
systems stuff.
* [test](test/): A test harness with a domain-specific test language
- [test](test/): A test harness with a domain-specific test language
and tests in that language.
* [tlf](tlf/): Code and structures for top-level folders (TLFs).
* [tlfhandle](tlfhandle/): The data structure for "Handles" to
- [tlf](tlf/): Code and structures for top-level folders (TLFs).
- [tlfhandle](tlfhandle/): The data structure for "Handles" to
top-level folders (TLFs), which represent an identifier for each
TLF, containing all the user or team IDs associated with the it.

### Status

KBFS currently works on both Linux (at least Debian, Ubuntu and Arch),
OS X, and Windows. It is approaching release ready, though currently
it is still in alpha. There may still be bugs, so please keep backups
of any important data you store in KBFS. Currently our pre-built
OS X, and Windows. It is approaching release ready, though currently
it is still in alpha. There may still be bugs, so please keep backups
of any important data you store in KBFS. Currently our pre-built
packages are available by invitation only.

KBFS depends in part on the following awesome technologies to present
a mountpoint on your device:

* [FUSE](https://github.com/libfuse/) (on Linux)
* [FUSE for OS X](https://osxfuse.github.io/) (on OS X)
* [Dokany](https://github.com/dokan-dev/dokany) (on Windows)
- [FUSE](https://github.com/libfuse/) (on Linux)
- [FUSE for OS X](https://osxfuse.github.io/) (on OS X)
- [Dokany](https://github.com/dokan-dev/dokany) (on Windows)

See [our vendor directory](vendor/) for a complete list of open source
packages KBFS uses.
Expand All @@ -106,12 +106,12 @@ Currently, our server implementations are not open source.

Prerequisites:

* [Go 1.7](https://golang.org/dl/) or higher.
* A running Keybase client service (see [instructions](https://github.com/keybase/client/tree/master/go)).
* On OS X, you may have to [install FUSE yourself](https://osxfuse.github.io/).
* You may need to pass the `--use-system-fuse` flag to `kbfsfuse` if
- [Go 1.15](https://golang.org/dl/) or higher.
- A running Keybase client service (see [instructions](https://github.com/keybase/client/tree/master/go)).
- On OS X, you may have to [install FUSE yourself](https://osxfuse.github.io/).
- You may need to pass the `--use-system-fuse` flag to `kbfsfuse` if
you install FUSE yourself.
* Then, mount KBFS at `/keybase/` as follows:
- Then, mount KBFS at `/keybase/` as follows:

```bash
cd kbfsfuse
Expand All @@ -122,7 +122,7 @@ Prerequisites:

Note that our pre-built packages for OS X include a branded version of
FUSE for OS X, to ensure that it doesn't conflict with other local
FUSE installations. It is still open source -- see
FUSE installations. It is still open source -- see
[here](https://github.com/keybase/client/blob/master/osx/Fuse/build.sh)
to see how we build it.

Expand All @@ -133,7 +133,7 @@ See our [kbfsdokan](kbfsdokan/) documentation.
#### On FreeBSD:

There are instructions for getting KBFS running on FreeBSD
[here](https://wiki.freebsd.org/Ports/security/kbfs). This is a
[here](https://wiki.freebsd.org/Ports/security/kbfs). This is a
user-supported effort, which is not officially supported by the
Keybase team at the moment.

Expand All @@ -159,7 +159,7 @@ with: "strib", "max", "chris", and "fred".)

### Code style

We require all code to pass `gofmt` and `govet`. You can install our
We require all code to pass `gofmt` and `govet`. You can install our
precommit hooks to make sure your code passes `gofmt` and `govet`:

```bash
Expand All @@ -168,7 +168,7 @@ ln -s $GOPATH/src/github.com/keybase/client/git-hooks/pre-commit $GOPATH/src/git
```

Though it doesn't happen automatically, we also expect your code to be
as "lint-free" as possible. Running golint is easy from the top-level
as "lint-free" as possible. Running golint is easy from the top-level
kbfs directory:

```bash
Expand All @@ -179,7 +179,7 @@ make lint
### Vendoring

KBFS vendors all of its dependencies into the local `vendor`
directory. To add or update dependencies, use the `govendor` tool, as
directory. To add or update dependencies, use the `govendor` tool, as
follows:

```bash
Expand Down Expand Up @@ -211,10 +211,8 @@ we should probably change it.)

### Licensing

Most code is released under the New BSD (3 Clause) License. If
Most code is released under the New BSD (3 Clause) License. If
subdirectories include a different license, that license applies
instead. (Specifically, [dokan/dokan_header](dokan/dokan_header) and
instead. (Specifically, [dokan/dokan_header](dokan/dokan_header) and
most subdirectories in [vendor](vendor/) are released under their own
licenses.)


0 comments on commit cb632cb

Please sign in to comment.