Commit Graph

452 Commits

Author SHA1 Message Date
Simone Basso
90d15c1c09
refactor: build miniooni from toplevel (#203)
* refactor: build miniooni from toplevel

Of course, also move the specific test checking whether we are
still able of building miniooni.

Part of https://github.com/ooni/probe/issues/1335

* build for current branch just to confirm

* fix: correct the path where linux/arm binary is

* okay, it works, we can remove the special rule
2021-02-02 15:34:03 +01:00
Simone Basso
47dd063b77
fix: add missing files causing tests to fail (#202)
* fix: add missing files causing tests to fail

See https://github.com/ooni/probe/issues/1335#issuecomment-771559718

* fix: toggle verbose so we better understand the tests output
2021-02-02 14:18:22 +01:00
Simone Basso
d57c78bc71
chore: merge probe-engine into probe-cli (#201)
This is how I did it:

1. `git clone https://github.com/ooni/probe-engine internal/engine`

2. ```
(cd internal/engine && git describe --tags)
v0.23.0
```

3. `nvim go.mod` (merging `go.mod` with `internal/engine/go.mod`

4. `rm -rf internal/.git internal/engine/go.{mod,sum}`

5. `git add internal/engine`

6. `find . -type f -name \*.go -exec sed -i 's@/ooni/probe-engine@/ooni/probe-cli/v3/internal/engine@g' {} \;`

7. `go build ./...` (passes)

8. `go test -race ./...` (temporary failure on RiseupVPN)

9. `go mod tidy`

10. this commit message

Once this piece of work is done, we can build a new version of `ooniprobe` that
is using `internal/engine` directly. We need to do more work to ensure all the
other functionality in `probe-engine` (e.g. making mobile packages) are still WAI.

Part of https://github.com/ooni/probe/issues/1335
2021-02-02 12:05:47 +01:00
Simone Basso
b1ce300c8d
fix: import path should be github.com/ooni/probe-cli/v3 (#200)
See https://github.com/ooni/probe/issues/1335#issuecomment-771499511
2021-02-02 10:32:46 +01:00
Simone Basso
faa9308b1e
fix(build.sh): clarify for what Linux archs we build (#198)
See https://github.com/ooni/probe/issues/807#issuecomment-766941585
2021-01-25 17:45:26 +01:00
Arturo Filastò
b84fe2c7e3
Merge pull request #197 from ooni/fix-list-ui
Fixup the rightpad on the list command
2021-01-22 13:48:54 +01:00
Arturo Filastò
06699445a7 Fixup the rightpad on the list command 2021-01-22 12:46:57 +01:00
Simone Basso
f2af3db193
fix(show): make sure we quote URL/query (#196) 2021-01-22 12:14:19 +01:00
Simone Basso
9577d7e11e
chore: 3.5.0-alpha for the master branch 2021-01-20 14:06:12 +01:00
Simone Basso
795f3be44e
chore: release 3.4.0 (#195)
This release only contains updates in debian packaging. All other platforms
could safely continue to use 3.2.0 or 3.3.0.

I didn't want to make a path release, though, because I didn't want to convey
the meaning that something was fixed.

Related to https://github.com/ooni/ooni.org/issues/677
2021-01-20 13:31:54 +01:00
Simone Basso
4b557a0899
build.sh: build windows/386 and linux/386, update Debian packaging (#193)
* feat(build.sh): build for windows/386

Part of https://github.com/ooni/probe/issues/1315

* fix(build.sh): docker pull so we have latest image

Part of https://github.com/ooni/probe/issues/1315

* fix(build.sh): apk update && apk upgrade to have latest packages

It does not currently seem necessary. But let's be defensive.

Part of https://github.com/ooni/probe/issues/1315.

* fix(windows.yml): for now disable windows/386

It's working locally but not remotely on Windows. We need to
figure out how to install the 386 compiler.

Part of https://github.com/ooni/probe/issues/1315.

* feat(build.sh): build for windows/386

Part of https://github.com/ooni/probe/issues/1315.

* fix(linux.yml): try to enable experimental docker flags

Related to https://github.com/ooni/probe/issues/1315.

See also https://github.com/actions/virtual-environments/issues/368#issuecomment-713588127.

* fix(debian): try to have single workflow with experimental docker

More commits probably needed.

Part of https://github.com/ooni/ooni.org/issues/677.

* remove restriction on the branch name

* maybe we need a pattern also for branches

* less stringent constraints

* consolidated debian workflow into a single workflow

* further fix the debian workflow

* only run debian action for specific branches or tags

* fix(build.sh): package the 386 windows version properly
2021-01-20 13:09:37 +01:00
Simone Basso
dc6b492986
chore: v3.4.0-alpha for the main branch 2021-01-19 20:36:38 +01:00
Simone Basso
4853ddf810
chore: bless v3.3.0 (#194) 2021-01-19 20:25:00 +01:00
Simone Basso
504a4e79d4
feat: implement darwin launch agent (#192)
* feat: sketch out periodic command

* feat: sketch out periodic command for macOS

* feat: implement darwin's launch agent

* refactor: better way to run on darwin

Make sure we have code that builds on all platforms.

* fix(run): max 10 URLs with darwin in unattended mode

* feat: add support for seeing/streaming logs

* feat: implement the status command and add usage hints

* feat(periodic): run onboarding if needed

* fix: no too confusing function names

* fix: s/periodic/autorun/

Discussed earlier this morning with @hellais.

* fix: we cannot show logs before Big Sur

Bug reported by @hellais.
2021-01-14 18:32:05 +01:00
Simone Basso
6fbad8555f
chore: set version to 3.3.0-alpha 2021-01-13 00:47:12 +01:00
Simone Basso
40d5f86698
chore: bless 3.2.0 (#191) 2021-01-13 00:40:48 +01:00
Simone Basso
acfa429127
chore: update deps (probe-engine 0.22.0 et al.) (#190)
The CloseReport method is gone. We don't need to close reports
anymore with the new OONI backend.

The InputsRequired flags now is InputsOrQueryTestLists.
2021-01-13 00:25:25 +01:00
Arturo Filastò
af4cbd1846
Implement support for not writing to disk and fetching measurements f… (#189)
* Implement support for not writing to disk and fetching measurements from the API

* Handle case of input not being set

* Comment about exposing raw_measurement in probe-engine

* Add basic test for GetMeasurementJSON

* Update internal/database/actions.go

Co-authored-by: Simone Basso <bassosimone@gmail.com>
2021-01-11 19:59:20 +01:00
Arturo Filastò
4ac1e5f5d4
Merge pull request #188 from ooni/informed-consent-migration
Implement informed consent migration using the config file
2021-01-11 11:07:31 +01:00
Arturo Filastò
5cfce6acd0 Implement informed consent migration using the config file 2021-01-08 14:14:14 +01:00
Federico Ceratto
8df91ecb1b
debian: run as a daemon, ask informed consent (#162)
* Set verbose mode, depend on adduser

* Run as daemon

* Generate manpage

* Implement informed consent

* Set version

* Switch format to native

* Set environment

* Update packaging

* Create test and release pipelines

* Update debian/ooniprobe-cli.service

Co-authored-by: Simone Basso <bassosimone@gmail.com>

* Update debian/ooniprobe-cli.service

Co-authored-by: Simone Basso <bassosimone@gmail.com>

* Update debian/ooniprobe.conf.disabled

Co-authored-by: Simone Basso <bassosimone@gmail.com>

* fix(linux-debian-packages): build also on pull requests

Otherwise there's no way for us to test :^).

* fix(debian/control): ubuntu 20.04 has debhelper 12

See https://packages.ubuntu.com/focal/debhelper

* fix(debian/control): debhelper-compat relations doesn't work the way I thought

* Update debian/ooniprobe-cli.timer

Co-authored-by: Simone Basso <bassosimone@gmail.com>
2020-12-15 13:05:13 +01:00
Arturo Filastò
862e27efcd
Update Readme.md 2020-12-09 12:52:57 +01:00
Arturo Filastò
72a3fa0bca
Update Readme.md 2020-12-09 12:51:59 +01:00
Arturo Filastò
5b838ec188
Update plist file 2020-12-09 12:51:28 +01:00
Simone Basso
fa9ac93804
fix(Readme.md): issues badge lands us on issue tracker
Before it was landing us onto the badge itself, which is quite useless :-).
2020-12-08 17:46:24 +01:00
Simone Basso
b9e619b22e
chore(Readme): add badge pointing to issue tracker
While there improve the wording around opening issues.
2020-12-08 17:45:10 +01:00
Simone Basso
1f5f6efd85
chore(Readme): say where to report issues 2020-12-08 17:39:50 +01:00
Simone Basso
1a4b70c9aa chore: we're now at 3.2.0-alpha 2020-12-08 15:59:48 +01:00
Simone Basso
c9ea92fc53
chore: bless 3.1.0 (#186) 2020-12-07 19:42:13 +01:00
cyBerta
9192ead36d
cli: expose riseupvpn (#171) 2020-12-07 17:14:48 +01:00
Simone Basso
a8070edc27
chore: update dependencies (#185) 2020-12-07 11:51:09 +01:00
Simone Basso
cb58fb5b79
go get -v github.com/ooni/probe-engine@f8284475147 (#184) 2020-12-04 14:36:52 +01:00
Simone Basso
d402cd9090
feat: implement the unattended group (#183)
We don't want to run performance in the background because this
causes too much traffic towards m-lab servers.

When we'll have the check-in API, this will be the entry point we'll
use to contact such an API and get things to do.

Part of https://github.com/ooni/probe/issues/1289.
2020-12-01 16:52:12 +01:00
Simone Basso
60d08eef3b
refactor: move code to run group in nettests package (#182)
Part of https://github.com/ooni/probe/issues/1289
2020-12-01 15:04:04 +01:00
Simone Basso
2381c50dc5
feat: implement syslog logging (#181)
* feat: implement syslog logging

With this functionality in tree, macOS users could easily access
ooniprobe logs by filtering by process name in the console app.

Part of https://github.com/ooni/probe/issues/1289

* fix: build on windows

* fix: all build issues
2020-12-01 13:31:15 +01:00
Simone Basso
cfd3b8f9b2
feat(cli/run): read inputs from file/cmdline (#180)
This diff introduces the possibility of specifying --input-file file
multiple times to force ooniprobe to read inputs from file.

Like we do for miniooni, the file shall contain a single entry per
line and this entry should be a URL for websites.

Likewise, one can specify --input URL multiple times.

This implementation is a very simple, initial implementation and there
is a bunch of changes I'd like to add on top of it.

And also perhaps a bunch of cleanups.

I've chosen to expose these flag _only_ for websites for now.

Part of https://github.com/ooni/probe/issues/1283.
2020-12-01 07:21:33 +01:00
Simone Basso
a324e94973
refactor(webconnectivity): use engine.InputLoader (#179)
This diff pins to ooni/probe-engine@3049779878
and starts using the recently introduced probe-engine APIs.

Namely, here, we use the InputLoader for loading URLs.

I've confirmed manually everything is still working as intended.

Part of https://github.com/ooni/probe/issues/1283.

(In particular, the InputLoader is the abstraction allowing us to load
input from several sources, including command line flags and external
files.)
2020-11-30 15:39:25 +01:00
Simone Basso
2fc160b202
cleanup(nettests): remove unused OnDataUsage (#178)
Part of https://github.com/ooni/probe/issues/1283
2020-11-26 19:12:27 +01:00
Simone Basso
95906fbcce
feat: use ooni/probe-engine@286613b74e and cleanup (#177)
* feat: use ooni/probe-engine@286613b74e and cleanup

1. zap unused configuration settings from the config file but do not
bump the version number because doing that _may_ interact in unexpected
ways with probe-desktop (hence https://github.com/ooni/probe/issues/1297)
and also because we've just _removed_ stuff for now, therefore any
previous configuration file will continue to work, except that we'll
be ignoring a bunch of options. In a future version of probe-cli I'll
spend some time to further improve config file management.

2. accordingly, make sure all current configuration files that are around
in the tree are current and only feature supported options.

3. update to ooni/probe-engine@286613b74e, which contains a bunch of
APIs that should allow us to simplify the interaction between the cli and
the engine, by sharing code more cleverly.

4. zap GetTestKeys because now we use code in probe-engine instead.

5. zap LogSummary because it was not being used.

6. the main change related to cleaning up the config and to the update
to the latest probe-engine is that include_{cc,asn,ip} settings are
gone and we now share the CC and the ASN and we never share the IP addr.

Reference issue: https://github.com/ooni/probe/issues/1283.

After this change is landed, there's a bunch more work to do to further
unify cli and engine. The final state will be that the cli uses ~the code
used by miniooni, so it will have a bunch of desirable options.

* fix: bindata after recent changes
2020-11-26 18:48:20 +01:00
Simone Basso
e4ef279b80
fix(onboard): fail if input is /dev/null (#176)
When the input is /dev/null, every read returns EOF. In general, it
may also happen that read doesn't work as intended. So, the robust thing
to do here is to ensure that we check the return values. By doing that
we notice of io.EOF errors and we don't proceed with the onboarding.

This diff fixes the issue described by https://github.com/ooni/probe/issues/1281
however it may be that we also want (in the near or not-so-near future)
to stop onboarding if the input terminal is not a tty. This is however a
possible future evolution that should not prevent us for committing and
merging this simple fix that unblocks creating a Debian package.
2020-11-24 09:19:34 +01:00
Simone Basso
7a4397555b
Merge pull request #175 from ooni/testing
Start increasing testing and code coverage
2020-11-20 12:59:35 +01:00
Simone Basso
7eedf4d947 feat(geoip, info): write comprehensive unit tests 2020-11-20 12:19:51 +01:00
Simone Basso
fa803300bb refactor(ooni): introduce interfaces for testability 2020-11-20 12:19:51 +01:00
Simone Basso
c55f67273e
chore: set version to 3.0.12-alpha (#172)
* chore: set version to 3.0.12-alpha

I need to bless 3.0.11 now to pin to ooni/probe-engine v0.20.2.

* chore: update all dependencies

Most notably, pin to ooni/probe-engine 0.20.2.
2020-11-17 18:22:46 +01:00
Simone Basso
9e238c27dd
refactor(internal/ooni): Context => Probe (#170)
Closes https://github.com/ooni/probe/issues/939
2020-11-13 19:01:06 +01:00
Simone Basso
163922e001
refactor: run go fmt ./... (#169) 2020-11-13 18:42:10 +01:00
Simone Basso
c81393b31a
refactor: move ooni into the internal package (#168)
With this commit we've reorganised the package structure. Now I will
go more in depth and perform further refactoring.
2020-11-13 17:47:29 +01:00
Simone Basso
bc85efa6e5
refactor: version is now an internal package (#167)
Like for previous commits, just refactoring/yak shaving.
2020-11-13 17:37:06 +01:00
Simone Basso
a4ae94b5ec
refactor: now utils is an internal package (#166)
Let us make internal everything because this is not a library.
2020-11-13 17:28:02 +01:00
Simone Basso
a58dff3050
refactor: nettests is now an internal package (#165)
I'm moving everything into internal packages since this ain't a library.

While there, remove typo that was causing a build breakage.
2020-11-13 17:14:26 +01:00