Opened 3 years ago

Closed 3 years ago

#20364 closed task (fixed)

Update debian/ubuntu packages of ooniprobe to 2.0.0

Reported by: hellais Owned by: irl
Priority: Medium Milestone:
Component: Archived/Ooni Version:
Severity: Normal Keywords:
Cc: irl Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

A new version of ooniprobe (2.0.0) is now out:
https://pypi.python.org/pypi/ooniprobe/2.0.0

It would be great if we could get an updated debian/ubuntu package for it too.

This major release makes a lot of changes this will make packaging a bit more tricky.

Basically now scheduling of tests is no longer handled by cron, but by the ooniprobe-agent system daemon.

This means that we will have to cleanup the crontab from old ooniprobe related entries and configure a systemd or equivalent script to make the agent start at boot.

You can see how we do this in lepidopter: https://github.com/TheTorProject/lepidopter/blob/master/lepidopter-fh/etc/systemd/system/ooniprobe.service

Let me know of how I can help out in any way to move this forward.

Child Tickets

Change History (11)

comment:1 Changed 3 years ago by hellais

Type: defecttask

comment:2 Changed 3 years ago by irl

Cool. This might actually lead to simplifying packaging.

Should the systemd service be installed disabled by default then? Or does it do a check on startup that it was wanted by looking at a conf file?

comment:3 Changed 3 years ago by irl

Status: newaccepted

comment:4 Changed 3 years ago by hellais

Thanks for accepting this!

Should the systemd service be installed disabled by default then? Or does it do a check on startup that it was wanted by looking at a conf file?

I am not sure what would be the "least surprising" way to go about this. What does tor do when it's installed? Does it configure the service to run by default?

When it's started the first time it is setup so that it's actually not running any tests so the user actually has to go through the informed consent procedure (by either running ooniprobe -z from the command line or by visiting http://127.0.0.1:8842/) to make it run any measurement.

I see two options for going about this:

1) We make the startup of the system service an option that the user can opt in via an interactive step of the setup process (like it is now for the configuration of the cronjob)

2) We make it startup by default, but inform in some way (maybe with a dialog or just printing a line on post install) that they will have to login to http://127.0.0.1:8842/ to agree to the informed consent before it will do anything.

comment:5 Changed 3 years ago by irl

I think, as long as it doesn't run any tests by default, running the agent by default is OK.

We can provide a /usr/share/doc/ooniprobe/README.Debian to cover how to configure ooniprobe to run tests, and we can also give a NEWS entry that will be displayed on upgrade to let users know that their previous cron job will be removed and that they will need to tell ooniprobe to run measurements.

Tor starts up and runs by default, but until you connect to the SOCKS port it won't send any traffic over the circuits, though they are built. If you're installing ooniprobe, I think it's reasonable to assume that users want to run it.

comment:6 in reply to:  5 Changed 3 years ago by hellais

Replying to irl:

I think, as long as it doesn't run any tests by default, running the agent by default is OK.

We can provide a /usr/share/doc/ooniprobe/README.Debian to cover how to configure ooniprobe to run tests, and we can also give a NEWS entry that will be displayed on upgrade to let users know that their previous cron job will be removed and that they will need to tell ooniprobe to run measurements.

Tor starts up and runs by default, but until you connect to the SOCKS port it won't send any traffic over the circuits, though they are built. If you're installing ooniprobe, I think it's reasonable to assume that users want to run it.

Yes all this makes a lot of sense. Let's go with it.

comment:7 Changed 3 years ago by irl

I've been working today on the packaging of ooniprobe 2.x in Debian. I've got a package building and it's almost ready for upload to Debian unstable.

There is still some testing to be done for upgrade scenarios. There may also be some more backport work to be done before looking at backporting ooniprobe itself.

I have hit an issue with the web UI in that I cannot find the sources for the files in:

https://github.com/TheTorProject/ooni-probe/tree/master/ooni/ui/web/client

How do I go about building these files? Without the sources they're not Debian Free Software Guidelines compliant.

comment:8 Changed 3 years ago by hellais

Thanks for all of this!

How do I go about building these files? Without the sources they're not Debian Free Software Guidelines compliant.

You can find the sources and instructions to build these from source in the ooni-wui repository: https://github.com/TheTorProject/ooni-wui.

To build from source you will have to checkout that repo and run:

npm install
gulp build

You will then have in the dist/build directory all the built sources.

comment:9 Changed 3 years ago by irl

Ok cool.

I'll have to build a second package for the Web UI assets then, do you see any problem with the ooniprobe package being built without the Web UI assets present and then having a hard dependency on the package containing the built assets?

comment:10 Changed 3 years ago by irl

All dependencies are now waiting for inclusion in jessie-backports (uploaded to NEW). sid (debian and deb.tpo), stretch (on deb.tpo only, awaiting migration) and jessie (on deb.tpo only, awaiting migration and dependency inclusion) now have packages available for 2.0.2 fixing up some maintainer script bugs in the packaging also.

Completion blocked   Package ooniprobe 2.0.2 for Debian jessie-backports
by tasks:            Package klein backport for torporject.org trusty
                     Package klein backport for torporject.org xenial
                     Package certifi backport for torporject.org xenial
                     Package certifi backport for torporject.org trusty
                     Package ooniprobe backport for torporject.org xenial
                     Package ooniprobe backport for torporject.org trusty
                     Package ooniprobe backport for torporject.org yakkety

comment:11 Changed 3 years ago by irl

Resolution: fixed
Status: acceptedclosed

All suites now have ooniprobe 2.0.2-1 (or a backport of the same).

http://deb.torproject.org/torproject.org/pool/main/o/ooniprobe/

Note: See TracTickets for help on using tickets.