Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uStreamer Debian package: MEGA-TICKET #1353

Closed
jdeanwallace opened this issue Apr 11, 2023 · 3 comments
Closed

uStreamer Debian package: MEGA-TICKET #1353

jdeanwallace opened this issue Apr 11, 2023 · 3 comments
Assignees

Comments

@jdeanwallace
Copy link
Contributor

jdeanwallace commented Apr 11, 2023

This ticket is the result of tiny-pilot/ustreamer-debian#1

Overview

We want to reimplement ansible-role-ustreamer functionality as a Debian package.

Background

We've found that running Ansible is generally a slow process that might not be well suited for installing TinyPilot and TinyPilot related software, like uStreamer. We've already partially migrated our TinyPilot installation away from Ansible to a Debian package and we'd like to do the same with our uStreamer installation. Using a Debian package speeds up the installation process by using simple bash scripts, as opposed to Python in Ansible, and skipping a package installation when the version requirement has already been met.

Milestones

Milestone 1: Install a pre-compiled uStreamer binary via a Debian package, while maintaining the ability to build uStreamer from source

Goal

Avoid building uStreamer on the device, reducing the TinyPilot installation time by about 20s.

This is the highest priority goal because it gives us the most value from migrating uStreamer to a Debian package.

Steps

Milestone 2: Consolidate uStreamer's Ansible role and Debian package with TinyPilot repo

Goal

Avoid making parallel changes (i.e., bumping version numbers) in both ansible-role-ustreamer, and ustreamer-debian repos the ansible-role-ustreamer repo; when we later incrementally migrate uStreamer's Ansible role functionality to the Debian package.

Steps

Milestone 3: Partially migrate uStreamer Ansible role functionality to Debian package

Goal

Migrate highest-impact and/or lowest-effort Ansible tasks to Debian package.

Steps

Milestone 4: Migrate remaining uStreamer Ansible role functionality to Debian package

Goal

Purge uStreamer's Ansible role.

Steps

  • Install yq as part of the uStreamer Debian package

  • Migrate default uStreamer config for TC358743 chips to uStreamer's Debian package postinstall script

    • This gives us enough info to create the /opt/ustreamer-launcher/configs.d/000-defaults.yml file on devices with TC358743 chips
  • Migrate default uStreamer config for non-TC358743 chips to uStreamer's Debian package postinstall script

    • This gives us enough info to create the /opt/ustreamer-launcher/configs.d/000-defaults.yml file on devices with non-TC358743 chips
    • This isn't strictly required, but it would be nice to consolidate all the default uStreamer launcher config in one place
  • Migrate uStreamer launcher script to uStreamer Debian package

    • This requires all dynamically determined uStreamer config (i.e., default config for TC358743 chips) to live within the uStreamer Debian package
    • After this task, all uStreamer's command-line arguments will be consolidated within uStreamer's Debian package
  • Migrate the provisioning of the TC358743 chip, which consists of the following sub-tasks:

    • Migrate /boot/config.txt to uStreamer Debian package

    • Migrate /boot/cmdline.txt to uStreamer Debian package

    • Migrate TC358743 EDID file to uStreamer Debian package

    • Migrate TC358743 EDID loader systemd service to uStreamer Debian package

  • Migrate uStreamer Janus plugin config to uStreamer Debian package

  • Migrate uStreamer systemd service to uStreamer Debian package

  • Install uStreamer Debian package from TinyPilot's Ansible role

  • Purge uStreamer's Ansible role from TinyPilot repo

@mtlynch
Copy link
Contributor

mtlynch commented Jun 5, 2023

@jdeanwallace - When you get a chance, can you create issues for the elements in Milestones 2 and 3 and add them to the 2.6.1 project? Except assume for now that ustreamer-debian will live in a separate repo.

@mtlynch
Copy link
Contributor

mtlynch commented Sep 28, 2023

@jdeanwallace - Is anything left of this or should we close as complete?

@jdeanwallace
Copy link
Contributor Author

This issue is complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants