Commit Graph

138 Commits

Author SHA1 Message Date
nick black
84ae45ef39
remove all libsixel crap #200 2020-06-05 04:19:56 -04:00
Nick Black
ebcba82d4b
Fully general ncvisual layer (#647)
This represents an essentially complete rewrite of ncvisual and associated code. It had two major goals:

Improve the ncvisual API based off lessons learned, pursuant to the upcoming API freeze. In particular, I wanted to:

decouple ncvisuals from ncplanes. It should be possible to render a ncvisual to multiple planes, with different scaling each time. It should be possible to create an ncvisual without a plane, etc.
normalize the various ways of constructing an ncvisual -- file, memory, plane, etc.
Support multiple blitters, from 7-bit ASCII to Sixel. This required writing the blitters in several cases, and they're not yet in their final implementations (but the API is fine)
I have not yet unified Plots and Visuals, and might not, given that the Plot code works fine. We could at this point implement Plots in terms of Visuals, though -- the blitter backend range has been unified. Sixel is not yet implemented, though it is listed.

There is a new POC tool, blitter. It renders its arguments using all possible blitter+scaling combinations. Another new POC, resize, displays its argument, then resizes it to the screen size and displays that, explicitly making use of ncvisual_resize() rather than a scaling parameter to ncvisual_render().

This also eliminates some memory leaks and bugs we were seeing in trunk, and brings in Sixel scaffolding.

The C++ wrapper will also need patching back up; I cut most of it down while wrestling with this crap, urk.

Closes #638, #562, and #622.
2020-05-28 21:16:58 -04:00
Nick Black
478ebadd64 Revert "Change DSO versioning scheme"
This reverts commit 51205551f5.
2020-05-28 17:31:22 -04:00
Marek Habersack
51205551f5 Change DSO versioning scheme
This commit introduces the same shared library versioning scheme as used
by the SDL library.  The advantage is that different versions of
notcurses can be installed alongside each other (which is not an
unlikely scenario, as SDL itself certifies) and that, if the versioning
protocol is followed, any change to ABI will produce a DSO whose name
will not break any applications linked against any previous version.
2020-05-28 15:15:53 -04:00
nick black
32d3ae91c8
v1.4.2.3 2020-05-17 09:01:53 -04:00
nick black
3e4e16f516
sign tags in release.sh 2020-05-17 08:12:26 -04:00
nick black
38e67abd9d
v1.4.2 2020-05-17 07:29:10 -04:00
nick black
5a46aee74b
release.sh: NEWS not CHANGELOG 2020-05-10 21:38:46 -04:00
nick black
76d29ac4cc
Export notcurses_LIBRARIES in CMake 2020-05-09 05:51:00 -04:00
nick black
4460d8fc59
release.sh: clean up downloaded tarball 2020-05-07 01:51:25 -04:00
nick black
52428b9f27
release.sh: search for OLDVERSION following sed 2020-05-07 01:37:52 -04:00
nick black
ab2a57df1f
move notcurses spec to fedora packaging repo 2020-04-30 16:09:59 -04:00
nick black
92ea6bac6f
fedora: blank line between changelog entries in specfile 2020-04-28 23:56:57 -04:00
nick black
4bee994c36
fedora: own /usr/share/notcurses 2020-04-28 23:14:52 -04:00
nick black
5072cbdf33
fedora: explicitly set 0755 on notcurses.py 2020-04-28 23:12:15 -04:00
nick black
663eb73485
fedora: move binaries/data into notcurses-utils #548 2020-04-28 22:37:29 -04:00
nick black
18242d74a4
fedora: update DFSG GPG signature URI 2020-04-26 21:56:23 -04:00
nick black
05753bd91a
v1.3.3 2020-04-26 21:25:23 -04:00
nick black
1d2bd97c3d
fedora: correct data target directory, sheesh 2020-04-25 19:31:51 -04:00
nick black
c129eb1680
fedora: fix up -data description 2020-04-25 19:22:53 -04:00
nick black
f0e4a98277
fedora: install noarch data rpm 2020-04-25 19:12:18 -04:00
nick black
008c28f172
fedora changelog 2020-04-25 18:32:40 -04:00
nick black
33eaaffd1f
fedora: install notcurses-view 2020-04-25 18:31:19 -04:00
nick black
10ddebe730
fedora: use dfsg signature file 2020-04-25 18:17:18 -04:00
nick black
2e449addad
fedora: use DFSG_BUILD=on 2020-04-25 17:49:50 -04:00
nick black
fefd044005
Fedora: new upstream version 2020-04-25 17:46:13 -04:00
nick black
544cd61394
fedora: correct signature path 2020-04-25 17:44:09 -04:00
nick black
3ae860df04
fedora: install USAGE.md and OTHERS.md 2020-04-25 17:35:21 -04:00
nick black
045149b0ac
use nick-black.com in specfile, save a 301 2020-04-25 16:55:15 -04:00
Nick Black
9a075ae5d0
Support image decoding with OpenImageIO #453 (#534)
* fedora: dep on OpenImageIO, and use it
* fedora: dep on libqrcodegen-devel
* fedora: BuildRequires OpenEXR-devel
* tight check on USE_MULTIMEDIA
* CMake: enable notcurses-view for ffmpeg OR oiio
* notcurses-view: don't reach into libav
* oiio: ncvisual_render() #453
* oiio: need our own properly-offset ncvisual_plane()
* `visual` poc: accept optional command line argument
* oiio: work for 3-channel images #453
* oiio: destroy ncvisual's plane if we own it #453
* notcurses_visual.3: s/FFmpeg/multimedia/g
2020-04-25 15:52:23 -04:00
nick black
851dc0bb9a Take back fedora release version 2020-04-24 12:20:13 -04:00
nick black
ddfa62db70 get USE_MULTIMEDIA differentiated 2020-04-24 04:17:56 -04:00
nick black
d81b3ef0cf start factoring out FFMpeg for OIIO plug #453 2020-04-24 04:17:56 -04:00
nick black
ee21f4e9ed
fedora: use DFSG source tarball 2020-04-21 05:36:13 -04:00
nick black
7791eec65e
fedora: update spec for review feedback 2020-04-21 05:12:11 -04:00
Nick Black
fe8034b5e0
ncfdplane, fileroller PoC, ncfdplane unit tests, qrcodes #24 #514 (#524)
* first draft of ncsubproc spec
* qrcode first draft #24
* demo: add qrcode demo skeleton, entries #24
* qrcode demo #24
* fedora python build changes from @dcantrell
* ncplane_qrcode() works #24
* add some flash to the qrcode demo #24
* drone: use newest builders
* fix up rgb PoC
* drop jungle demo to 100Hz target
* add fd.c
* ncfd skeletons
* more ncfdplane #514
* ncfdp i/o loop
* ncfp: improve uinit test, write core
* firm up ncfdplane #514
* fileroller PoC #514
* ncplane: allow '\n' in stream when scrolling #523
2020-04-20 23:26:41 -04:00
nick black
23e8126b17
fedora python build changes from @dcantrell 2020-04-20 06:43:12 -04:00
nick black
1dad2c6b50
v1.3.2 2020-04-19 02:24:03 -04:00
nick black
4ce208931c
little release script 2020-04-19 02:23:08 -04:00
nick black
e00ef4aca9
prep for 1.3.1 2020-04-18 00:35:15 -04:00
Nick Black
50e0870432 Revert "Prevent -I/usr/usr/include in the pkg-config files."
This reverts commit d294dc7dc9.
2020-04-17 22:25:58 -04:00
David Cantrell
d294dc7dc9 Prevent -I/usr/usr/include in the pkg-config files. 2020-04-17 22:12:07 -04:00
nick black
d6ba4b35a6
fedora: don't provoke 'installed but unpackaged' bah 2020-04-14 12:34:07 -04:00
nick black
d1360e891b
fedora: don't install notcurses-view man page 2020-04-14 12:27:00 -04:00
nick black
43fafb1a61
fedora: don't install notcurses-tester man page 2020-04-14 12:25:26 -04:00
nick black
86e225dc4c prep for 1.3.0 #460 2020-04-11 22:00:34 -04:00
nick black
55195b8ed0 fedora: use python_sitearch, install all python #462 2020-04-11 02:05:44 -04:00
nick black
9c9011c4cd fedora: really fix python #462 2020-04-11 02:02:04 -04:00
nick black
e222f213af
fedora: see if we can't apply the arch fix 2020-04-11 13:53:33 -04:00
nick black
2c4f17bc65
keep a copy of our arch PKGBUILD 2020-04-11 13:48:04 -04:00
nick black
24a9343b0b
prep for 1.2.9 2020-04-11 12:39:54 -04:00
nick black
bd226960d9
fedoraspec: just list header directories 2020-04-11 12:28:43 -04:00
nick black
4a56b7935f
rpmspec: s/srcname/name/g 2020-04-11 12:25:22 -04:00
nick black
5008f3513f
rpmspec: strip quotation marks 2020-04-11 12:24:03 -04:00
nick black
c6494382d9
Fedora specfile: list directories, use wildcards 2020-04-11 12:17:15 -04:00
nick black
8fdf3d393a
Fedora specfile: Incorporate A Iwicki's feedback
Split out the python demo and wrappers into their own package,
python3-notcurses. Make an archful dependency for the devel
package to the main library. Comment up test disabling.
2020-04-11 12:10:44 -04:00
nick black
606cea4897
fedora: add egg-info to spec file #462 2020-04-10 22:56:06 -04:00
nick black
edf1bddea3
fedora: move binaries and S1 man pages to main rpm #467 2020-04-10 22:46:07 -04:00
nick black
69b716f7f8 prep for 1.2.8 2020-04-10 16:19:41 -04:00
nick black
9577c4afa0
fedora: add ncpp include files to package 2020-04-10 13:22:36 -04:00
nick black
0ecd69ce26
fedora: fix specfile notcurses-tetris.1.gz path 2020-04-10 13:17:14 -04:00
nick black
9a202b558e
remove colloquy from specfile, README 2020-04-10 13:08:22 -04:00
nick black
c4f4e60b88
fedora: fix path for package signature 2020-04-10 12:53:41 -04:00
nick black
f28ccce12d
s/direct color/TrueColor/g 2020-04-10 12:37:12 -04:00
nick black
89809d5b59 prep for 1.2.7 2020-04-09 20:21:33 -04:00
David Cantrell
6123b789dd Change notcurses.spec to follow Fedora Packaging Policy
More or less.  Here's a list of things I changed:
* Single line BuildRequires which is more of a convention than a
  requirement.
* Drop make from BuildRequires.  That's one we do actually provide.
* Use pkgconfig(ncurses) to get the ncurses-devel BuildRequires.
* Add a 'devel' subject and move development files there.
* Add a 'static' package for the .a libraries which is common
  for other packages that provide static libraries.
* Add doc files using %doc
* -DUSE_TEST=off -> -DUSE_TESTS=off
* Use %autosetup in %setup which covers adding patches in the future
  for downstream packaging.
* Use path macros in %files
* Correct the date format in the %changelog entry
* Use the 1.2.6 release as an example

Things that could use more consideration:
* The release artifacts don't match what GitHub provides.  Their
  automated download link gives you notcurses-1.2.6.tar.gz but the URL
  calls it v1.2.6.tar.gz.
* There is no signature file uploaded.
* notcurses-tester and notcurses-viewer do not build.
* Should the demo programs go in the main package or devel.  I felt
  devel was more appropriate.
* Should the packaging be further refined to split out the C++ runtime
  and static libraries to separate subpackages?

I did some local test runs using mock.  I ran the SRPM through rpmlint
which would happen when the package is submitted for inclusion.

For the download archive and signature, I create new release posts on
my github projects and create a separate tarball and sign that and
upload them there.  It is separate from the GitHub automated
make-me-a-tarball download link.  That might be what you're planning
on doing.
2020-04-08 21:36:30 -04:00
nick black
9cc185e98a
fedora: USE_TESTS in specfile, not USE_TEST, ugh 2020-04-08 11:46:33 -04:00
nick black
b9462bcda6
drop notcurses-keyplot from specfile 2020-04-08 09:41:12 -04:00
Nick Black
c2a645e9af
Rust wrapper work (#454)
* packaging: s/libtinfo/Terminfo/g
* rust: add stddim_yx()
* rust: check for valid init in unit tests
* rust: serialize up tests
* constify notcurses_term_dim_yx()
* rust: add dim wrappers
* remove notcurses_resize() from public API #367
* call notcurses_resize() from notcurses_refresh() #367
2020-04-08 05:39:41 -04:00
Nick Black
d66549d362
Prep for Fedora packaging (#452)
* jungle demo should be available outside of DFSG builds
* libav: blitters don't need FFMpeg
* CMake: threads independent of ffmpeg
* CMake: add USE_TESTS option to disable tests #450
* tetris: work without ffmpeg
* fedora: flesh out specfile #328
* menu poc: don't use ffmpeg at all
* compile PoCs with binary/include
* multiselect PoC: work without ffmpeg
2020-04-08 02:12:46 -04:00
nick black
3f493691d0
Debian: pass USE_PYTHON=off to cmake #363 2020-02-22 22:22:54 -05:00
nick black
3483f019e3
NOTCURSES_SHARE: purely a C thing now #363 2020-02-22 21:50:33 -05:00
Nick Black
e6637e81cc
Prep for serious rusting #101 (#354)
* CMake: add USE_PANDOC, USE_DOXYGEN options #101
* README: mention rust
* start integrating rust into build #101
* CMake: add USE_NETWORK option for cargo
* Debian: build-dep on doxygen
* rust: colloquy checks in Cargo.lock
* extract NCKEY defines into their own include
* colloquy: use clap to parse CLI args
* CMake: unify option namespace
* Python: update include path
* Rust: fix up --frozen workings for -DUSE_NETWORK=off
* CMake: abstract out colloquy a little
* Sync direct.hh to the New Way
2020-02-18 12:36:16 -05:00
nick black
124004c87c add nplane_polyfill_yx() #340 2020-02-14 05:38:08 -05:00
nick black
36440ee278
python: sync ncselector declarations 2020-02-12 09:15:21 -05:00
nick black
d8c42d4d1e
ncmenu_selected() fills in an ncinput #333 2020-02-12 09:11:28 -05:00
nick black
013e453e70
sync up setup.py 2020-02-10 01:31:43 -05:00
nick black
53df21b977
python: run sdist in build process 2020-02-08 23:31:51 -05:00
nick black
64e5840d34 Debian: pass -DDFSG_BUILD to CMake #316 2020-02-04 23:18:40 -05:00
Marek Habersack
75a90461dd Add C++ bindings 2020-01-22 06:47:43 -05:00
nick black
1be4025289
CMake: true fix for #208, use NOTCURSES_SHARE 2020-01-09 05:51:18 -05:00
nick black
a170e4334a
cmake: write install prefix #208 2020-01-05 04:53:43 -05:00
nick black
fabbb96cb5
pull weird whitespace from pkgconfig input 2020-01-04 21:21:45 -05:00
nick black
cb2bf16a73 support building sans ffmpeg #153 2019-12-25 02:24:10 -05:00
nick black
17d7d8a8c5
release guide 2019-11-28 22:21:16 -05:00
nick black
0c8f54d728 test video 2019-11-26 20:23:40 -05:00
nick black
f20e8fde4b add notcurses_image_open() #23 2019-11-26 20:23:40 -05:00
nick black
70df86ba17
version string, notcurses_version() 2019-11-17 05:04:41 -05:00