Brltty contains old ubuntu specific patches to deploy a brltty-setup
tool and initramfs scripts and hooks to use it. I've decided to drop
these in merge
https://code.launchpad.net/~peb/ubuntu/+source/brltty/+git/brltty/+merge/508923
.

# brltty Ubuntu delta - why the dropped features were removed

Context: cleanup of the Ubuntu-specific delta on top of Debian `brltty` 6.7-1
(`pkg/import/6.7-1`). The goal was to split the delta into logical commits and
drop code that no longer works or is no longer useful on modern Ubuntu.

Two platform facts drive most of the reasoning below:

- **Ubuntu installs via Subiquity**, not the classic Debian Installer (`d-i`)
  anymore. The udeb / `finish-install.d` / `in-target` install-time flow
  these features targeted is effectively dead for Ubuntu.
- **Modern initramfs uses `/run/initramfs`**, not the historical
  `/dev/.initramfs`. The latter path exists nowhere on current systems.

---

## 1. `brltty-setup` (`/sbin/brltty-setup`)

Ubuntu-only interactive Braille configuration helper (single local commit,
references `access.ubuntu.com/braille`).

**Why it should not work anymore**

- It invoked `/lib/brltty/brltty.sh -b … -d …` (three call sites) as its 
backend.
- That helper is shipped **only by the `brltty-udeb`** (installer) package:
  `debian/rules` copies it into the udeb with
  `cp debian/brltty-udeb.sh …/lib/brltty/brltty.sh`. The **main `brltty`
  package never ships `/lib/brltty/brltty.sh`.**
- So on any normally installed system, every `brltty-setup` run called a
  non-existent script and could not function.

**Why it wasn't useful**

- Its only in-tree caller was the init-top prompt (also dropped).
- The install-time configuration path it was written for is superseded by
  Subiquity.

---

## 2. Interactive initramfs Braille setup

Files: `debian/initramfs/scripts/init-top/brltty` and
`debian/initramfs/brltty.sh`.

**Why it doesn't work**

- `brltty.sh` wrote its output to **`/dev/.initramfs/brltty.conf`**, a path
  whose parent directory does not exist on modern systems (they use
  `/run/initramfs`). The write went nowhere.
- **Nothing ever read that file.** No consumer anywhere in the boot path.
- `init-top/brltty` prompted interactively and then called `brltty-setup`,
  which was itself broken (see §1).
- It ran in the `init-top` phase, **before udev**, so Braille transport modules
  were generally not yet loaded. This was fragile, even had the rest worked.

**Why it wasn't useful**

- Interactive early-boot Braille configuration is obsolete under Subiquity.
- Real early-boot Braille output is already provided by Debian's own
  `init-premount` script (see §4), so this layer added nothing that worked.

---

## 3. Ubuntu modifications to Debian's initramfs scripts

Ubuntu had modified `debian/initramfs/hooks/brltty.in` and
`debian/initramfs/scripts/init-premount/brltty` (an `OPTION=FRAMEBUFFER` line
and an `else` branch that shipped `brltty.sh` + `brltty-setup` into the
initramfs).

**Why it was removed**

- Those modifications existed **only to support the interactive initramfs 
feature**.
  Now that it's gone, they become dead code.
- Reverting them restores the two files to **byte-identical Debian 6.7-1**
  (verified with `git diff pkg/import/6.7-1 HEAD`), so Ubuntu now carries **zero
  delta** on these files and simply inherits Debian's maintained behaviour. This
  situation transitively applies on 6.9.1+repack-1 which is the newer version 
we merge.

---

## 4. What was kept, and why it's the correct baseline

- **Debian's initramfs integration**. `init-premount/brltty` reads
  `/etc/brltty.conf` and starts the real `brltty` daemon early (e.g. for
  disk-unlock prompts). This is Debian code, shipped in 
`pkg/import/6.9.1+repack-1`, and
  works; Ubuntu should not fork it.
- **udev activation** (`brltty-udev.service`, `brltty.dirs`,
  `brltty.udev.rules.patch`, `clean`, `rules`) and **disabling
  `brltty.service` by default** remain as legitimate Ubuntu delta.

---

## Verification evidence

- `git diff pkg/import/6.9.1+repack-1 HEAD -- debian/initramfs/...` → 
**empty**: the
  remaining initramfs scripts are pristine Debian.
- `git diff --diff-filter=D --name-only pkg/import/6.9.1+repack-1 HEAD` → 
**empty**: no
  Debian-provided file was removed by the Ubuntu branch.
- `brltty-setup`, `initramfs/brltty.sh`, and `init-top/brltty` **do not exist
  in Debian 6.9.1+repack-1**. As they were Ubuntu-only additions, dropping them 
creates
  no divergence from Debian.

---

## Side note: the "enable at install time" claim

The Ubuntu changelog implied `brltty.service` would be *enabled* when Braille is
configured at install time for a non-USB display. In practice only
`dh_installsystemd --no-enable` (the *disable* half) remains, the previous 
non-USB
tricks seem to have been dropped with 31brltty file (see changelog mentions) so 
this
feature mention is moot in the changelog

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2153289

Title:
  Merge brltty from Debian for stonking cycle

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/brltty/+bug/2153289/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to