[FFE] notcurses 1.7.4 for ubuntu 20.10
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
notcurses (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Hello. I'd like to request a Feature Freeze Exception for 20.10 per the instructions at https:/
Ubuntu 20.10 currently has notcurses 1.7.0, imported directly from Debian (where I'm the maintainer, as well as the upstream author). This is a kinda unfortunate pick; it has two annoying (though not grave/serious) bugs, but more importantly lacks the recent 1.7.x API changes, pursuant to 2.0 (to be released next month).
All year, I've claimed that Notcurses would commit to backwards compatibility and API stability starting with the 2.0 release, and retained free right to mutate the API until then. 1.7.4 (currently available in Debian/Fedora/Arch) is the last expected release prior to 2.0. Its API is thus expected to be equal to the final, stable 2.0 API. By importing 1.7.4 to 20.10, 20.10 will ship with the same API other distros (and newer versions of Ubuntu) will be implementing. Given that 20.10 is the first Ubuntu to contain Notcurses, this means a sweetly unified surface across all distros.
I have prepared a 1.7.4 for Ubuntu 20.10, and can upload it under the Sponsorship Process. The 1.7.4 packages are available via https:/
Testing: install the notcurses-bin package and run `notcurses-demo`. It works fine. There's also an `autopkgtest` file in the `debian/` folder. I'll attach the pbuilder output shortly.
Diff of upstream NEWS.md:
* 1.7.4 (2020-09-20)
* All `_rgb_clipped()` functions have been renamed `_rgb8_clipped()`, to
match the changes made in 1.7.2. Sorry, I ought have done this before.
* `ncplane_create()` has been introduced, taking a `struct ncplane_options`
parameter. This replaces `ncplane_
`ncplane_
removed in the future. To align a place as previously done with
`ncplane_
* The `ncplane_options` struct includes a function pointer member,
`resizecb`. If not `NULL`, this function will be called after the parent
plane is resized. See `notcurses_plane.3` for more information.
* `ncplane_
`resizecb`. It realigns the plane against its parent.
* `NCCHANNEL_
the other declarations.
* 1.7.3 (2020-09-19)
* API changes pursuant to 2.0 API finalization:
* `mbswidth()` has been renamed `ncstrwidth()`.
* The long-promised/
all widgets, has been effected. Sorry, there was no getting around this
one. Pretty much all widgets have slightly changed, because pretty much all
widgets previously behaved slightly differently:
* `ncselector_
of the provided `ncplane`. On an error in these functions, the `ncplane`
will be destroyed. Otherwise, the `ncplane` is destroyed by
* `ncselector_
parameters. Just place the `ncplane`.
* `ncselector_
have lost their `bgchannels` members. Just set the base character for
the `ncplane`.
* `ncreader_options` has lost its `echannels`, `eattrword`, `egc`,
`physrows`, and `physcols` fields. Just set the base character and size
for the `ncplane`.
* Functions which set a 24-bit RGB value have had the suffix `g` replaced
with `g_rgb`. Functions which set three 8-bit RGB components have had the
suffix `rgb` replaced with `rgb8`. This was done because e.g.
`channels_
sight. Failure to make the necessary conversions will result in compiler
errors. See https:/
* Functions ending in `_stainable()` now end in `_stained()`.
* `ncplane_
added in the interest of orthogonality.
* `ncplane_
`const char* name` argument. `ncplane_bound()` and `ncplane_
have both been eliminated. `ncplane_new()` now accepts an `ncplane*`
instead of a `notcurses*`. All functionality exposed by the removed
functions is thus now present in `ncplane_new()`.
* `ncplane_
a `const char* name` argument.
* 1.7.2 (2020-09-09)
* Exported `ncvisual_
`NCBLIT_
* Added `NCREADER_
terminal cursor visible, and manage the cursor's placement.
* 1.7.1 (2020-08-31)
* Renamed `CELL_SIMPLE_
`cell_
* Renamed `ncplane_
`ncplane_
and `ncplane_
Hello Nick. Thank you for your FFe request! Seeing that groovy is the first Ubuntu series to include notcurses, I think it should be safe to pull in 1.7.4 at this moment. With my ubuntu-release hat on, I approve this FFe.
I guess I could even sync this from Debian for you, if you have confirmed that the package build successfully on groovy.