commit 52794a727f78317ae84bfe324f10908579459ff495c08dcefe234944b6e37a6f Author: Michael Vetter Date: Mon Sep 9 06:20:55 2024 +0000 - Update to 1.14.3: * Sixel transparency has been reenabled for still frames. Animations will be pre-composited on an opaque background to prevent flicker/glitchiness (#211) * Now supports the Ghostty terminal, defaulting to the Kitty graphics protocol there. * Bug fixes: #185 Chafa version 1.14 breaks image preview on lf. #210 Crash with -f sixels. #211 Sixels are too small in Windows Terminal. #212 Aspect-preserving calculations are off in some cases. [unfiled] Inconsistent fraction parsing in CLI arguments. [unfiled] A few small memory leaks in the JPEG XL loader. OBS-URL: https://build.opensuse.org/package/show/graphics/chafa?expand=0&rev=47 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/chafa-1.14.1.tar.xz b/chafa-1.14.1.tar.xz new file mode 100644 index 0000000..bb89573 --- /dev/null +++ b/chafa-1.14.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24707f59e544cec85d7a1993854672136b05271f86954248c5d8a42e221f6f25 +size 991656 diff --git a/chafa-1.14.2.tar.xz b/chafa-1.14.2.tar.xz new file mode 100644 index 0000000..b763625 --- /dev/null +++ b/chafa-1.14.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a28d308074e25597e21bf280747461ac695ae715f2f327eb0e0f0435967f8b3 +size 992440 diff --git a/chafa-1.14.3.tar.xz b/chafa-1.14.3.tar.xz new file mode 100644 index 0000000..1759365 --- /dev/null +++ b/chafa-1.14.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3d5530a96c8e55eea180448896e973093e0302f4cbde45d028179af8cfd90f3 +size 992392 diff --git a/chafa.changes b/chafa.changes new file mode 100644 index 0000000..edf0baf --- /dev/null +++ b/chafa.changes @@ -0,0 +1,460 @@ +------------------------------------------------------------------- +Mon Sep 9 06:19:53 UTC 2024 - Michael Vetter + +- Update to 1.14.3: + * Sixel transparency has been reenabled for still frames. Animations + will be pre-composited on an opaque background to prevent flicker/glitchiness (#211) + * Now supports the Ghostty terminal, defaulting to the Kitty graphics protocol there. + * Bug fixes: + #185 Chafa version 1.14 breaks image preview on lf. + #210 Crash with -f sixels. + #211 Sixels are too small in Windows Terminal. + #212 Aspect-preserving calculations are off in some cases. + [unfiled] Inconsistent fraction parsing in CLI arguments. + [unfiled] A few small memory leaks in the JPEG XL loader. + +------------------------------------------------------------------- +Fri Jul 26 05:54:17 UTC 2024 - Michael Vetter + +- Update to 1.14.2: + * #203 Chafa 1.14.1 fails to build on i686 + * #205 Symbols mode not working since 1.14.1 + * #206 Crash when importing more than 32767 glyphs + * Fix erroneous base64 encoding of final byte in some circumstances + +------------------------------------------------------------------- +Tue Jun 18 05:52:35 UTC 2024 - Michael Vetter + +- Update to 1.14.1: + * A JPEG XL (.jxl) loader was added using libjxl (#188). + * Added detection of the Eat "Emulate a Terminal" Emacs terminal. + * Symbols mode was sped up significantly on AVX2-capable platforms. + * Tests: A new test driver was added. It will log the specifics + of any failures, which aids debugging of CI builds. + * Bug fixes: + #189 Fix installation of zsh completions. + #190 Fix a small memory leak in ChafaCanvas. + #192 Wrong sixel padding in some circumstances. + #195 tmux passthrough enabled when already set. + #196 iTerm mode not enabled automatically. + +------------------------------------------------------------------- +Tue May 21 04:38:30 UTC 2024 - pallas wept + +- Enable optional image formats + * jpeg + * svg + * tiff + * webp + +------------------------------------------------------------------- +Mon Jan 8 20:19:46 UTC 2024 - Joshua Smith + +- Update to 1.14.0: + * Removed ImageMagick loader support. Packagers can now remove + this dependency + * Polite mode is now off by default. The new default eliminates + cursor flicker and makes the output more robust against unusual + terminal settings. The old behavior can be restored with + --polite on. + * Added image loaders for the AVIF and QOI formats. + * sRGB gamma is now handled correctly in scaling operations. + * New option: --passthrough=. This allows + passing graphics protocols like Sixels, iTerm and Kitty through + a terminal multiplexer. It will be enabled automatically for + Kitty, and can be enabled manually for other protocols with + more limited support + * New option: --view-size=. Specifies width and height of + the viewport, overriding the detected terminal size + * New option: --fit-width. Fits images to the width of the + viewport, allowing them to be taller than the viewport's height + * New option: --relative=. Enables relative cursor + positioning. Useful if you've pre-positioned the cursor at a + particular offset where you want frames to appear, but tends to + make the output illegible in pagers, e.g. less -R + * New option: --exact-size=. Preserves the input + pixel size when possible. Useful to avoid artifacts caused + by resampling + * New symbol selector: imported. This selects glyphs loaded with + --glyph-file + * Fontgen: Added a BDF font writer + * Fontgen: Cleanup and modernization + * The help text and manual page were overhauled for readability, + and the API documentation now includes symbol indexes by version + and deprecation status. + * Added a zsh completion script + * Fix "unknown file format" when using AVIF on stdin + * Fix broken linking with libwebp-1.3.1 + * Fix make check with --without-tools + * Fix --duration not working well with still images + * Fix sixel rendering of animations + * Fix operator precedence in geometry calculation + +------------------------------------------------------------------- +Mon May 22 06:24:38 UTC 2023 - Michael Vetter + +- Update to 1.12.5: + * Fix #123 crash on canvas created with chafa_canvas_new_similar() + * Fix #141 distortion when rowstride is not a multiple of 4 + * Fix missing comma in --help output + +------------------------------------------------------------------- +Sun Nov 13 20:17:11 UTC 2022 - Michael Vetter + +- Update to 1.12.4: + * MS Windows: Added support for Unicode command-line arguments. + * MS Windows: Enabled support for building a DLL. + * Improved quality of accelerated symbol picking (the default + with -w 6 and lower), especially along sharp edges. + * The XWD loader now supports unaligned image data, which can + occur when the header is of an uneven length. Such images + will no longer be rejected. + * Bug fixes: + - #100[1] Reading image data from stdin fails on Windows + - #104[3] Artifacts with transparent animations on Kitty + - #108[5] Bad interaction with lolcat + - #112[7] Bad documentation for -c default + - #113[9] Autogen/build fails on CentOS 7 (partial solution) + - huntr.dev: Uncontrolled memory allocation in lodepng + - [unfiled] -lm should not be in pkg-config Libs: list + - [unfiled] The --watch switch was broken with the + introduction of --animate. + +------------------------------------------------------------------- +Mon Jul 4 11:52:17 UTC 2022 - Michael Vetter + +- Update to 1.12.3: + * Increased GLib minimum version to 2.26. + * Enabled a few compiler warnings not included in -Wall -Wextra + in order to catch more potential issues early. Also started + using -Werror selectively. + * Silenced deprecation warnings for older GLib APIs that we + would like to keep using a bit longer. + * Fix #96 Regression: Fails to build on Linux/Debian + +------------------------------------------------------------------- +Mon Jul 4 11:51:53 UTC 2022 - Michael Vetter + +- Update to 1.12.2: + * Made everything compile for the x86_64-w64-mingw32 target using gcc. + * Added support for the Windows 10 Command Prompt. + * Improved error reporting. + +------------------------------------------------------------------- +Mon Jun 20 07:53:37 UTC 2022 - Michael Vetter + +- Update to 1.12.1: + * Increased GLib minimum version to 2.20. + * Added 12 new test inputs, including bad inputs to handle gracefully. + * Added a few symbols to API documentation that were accidentally left out. + * Bug fixes: + + huntr.dev CVE-2022-2061: Out-of-bounds read in libnsgif's lzw_decode() + + [unfiled] Undefined behavior in libnsgif due to uninitialized frame fields. + + [unfiled] Signed integer overflow in chafa_pack_color(). + + [unfiled] Integer overflow in normalization pass on some images. + + [unfiled] Potential unaligned access with corrupt XWD images. + + [unfiled] Integer overflow in quantization on some images. + + [unfiled] Calculating offset from NULL pointer in LodePNG. + +------------------------------------------------------------------- +Mon Jun 6 09:22:07 UTC 2022 - Michael Vetter + +- Update to 1.12.0: + * The ImageMagick dependency is now optional and deprecated. + Packagers are encouraged to drop the ImageMagick dependency (--without-imagemagick) + and add direct dependencies on relevant image codecs. + ImageMagick support will be removed in a future release. + * Added image loaders for the following formats: JPEG, SVG, TIFF, WebP. + Like the existing GIF, PNG and XWD loaders, these are much faster and + generally safer than their ImageMagick counterparts. If ImageMagick is + enabled, it will be used as a fallback. Supported image loaders will + be listed in the --version output. + * Implemented a 16/8 mode producing 8 colors and an additional 8 bright + foreground-only colors for a total of 16 foreground and 8 background colors. + When using ANSI escape sequences in symbol mode, the sequence for bold + text is used to enable bright colors. This scheme corresponds to that of + the IBM PC's VGA hardware text modes and was popular with terminal + emulators in the late 1980s to early 2000s. + With a few tweaks, output from this mode can be turned into ANSI art scene + .ANS files compatible with utilities like the wonderful Ansilove[2], e.g: + $ chafa -f symbols -c 16/8 -s 80 --symbols space+solid+half --fill stipple \ + in.jpg | tr -d '\n' | iconv -c -f utf8 -t cp437 > out.ans + $ ansilove out.ans -o out.png + * New builtin Latin symbols (available with --symbols latin). This class + comprises most of the symbols from the Latin-1 Supplement, Latin Extended-A + and -B, IPA Extensions and Spacing Modifier Letters plus a few Latin-like + symbols from other ranges, using Terminus as the reference font. + The ASCII class is also a subset of this class. + * Reworked ASCII symbols to be more representative of modern terminal fonts. + As with the other Latin ranges, the reference font is now Terminus. + * New option: --scale . This takes a real number specifying the on-screen + scaling factor relative to the input's pixel size, respecting the terminal + size. The special argument 'max' will fit the output to the terminal. + The defaults are 1.0 for iTerm, Kitty and sixels, and 4.0 for symbols. #84 + * Deprecated option: --zoom. Use --scale max instead. + * Added a battery of simple tests that can be run with make check. + * Made configure friendlier. It's now more lenient with dependencies, and the + summary is more detailed and colorized if possible. + * Bug fixes: + - #62 Too big alloc on bogus terminal dimensions + - huntr.dev: Null pointer dereference caused by calling post_func on unused + batch entries + - [unfiled] Small memory leaks when using iTerm and Kitty formats. + - [unfiled] Wide symbol coverages leaked in symbol map destructor. + - [unfiled] No error code if files failed to load. + +------------------------------------------------------------------- +Thu May 5 08:32:33 UTC 2022 - Michael Vetter + +- Update to 1.10.3: + * Improved input validation in the XWD loader. + * huntr.dev: Buffer over-read when compiled with -O0 or non-x86 target + +------------------------------------------------------------------- +Mon Apr 25 08:21:26 UTC 2022 - Michael Vetter + +- Update to 1.10.2: + * Added disclosure guidelines in SECURITY.md + * Fix huntr.dev: Null pointer dereference in libnsgif with crafted GIF file + * [unfiled] File magic would not effectively rule out internal loaders. + * [unfiled] Very big images could cause absurd allocation requests + triggering an abort in the loader. + +------------------------------------------------------------------- +Mon Apr 4 10:37:27 UTC 2022 - Michael Vetter + +- Update to 0.10.1: + * #87 Garbled last row of pixels on some images + * [unfiled] Correctly label new functions since 1.10 + +------------------------------------------------------------------- +Mon Mar 21 11:08:11 UTC 2022 - Michael Vetter + +- Update to 0.10.0: + * New option: --animate . On by default. Can be turned off + to replace animations with a still frame #79. + * New option: --center or -C . Off by default. Can + be turned on to center images #83. + * New options: --margin-bottom and --margin-right . These + permit using all available space (with --margin-bottom 0) or some + smaller amount #61. + * New option: --polite . On by default. Can be turned off to + correct issues caused by previous terminal state (e.g. no sixel scrolling) + and improve presentation (e.g. by temporarily hiding the cursor). This can + leave the terminal in an altered state, which is somewhat rude. + * New option: --threads . Allows manually specifying the number of threads to + use. Defaults to one per detected logical CPU core. + * When invoked with redirected input and no arguments, act like a + filter as if invoked with -. + * If input or output is being redirected, default to playing animations only once + instead of looping forever. This can be overridden with -d inf. + * Replaced obsolete Autoconf macros. + * Improved image loaders: + + GIF: Load GIF87a images as well as GIF89a. + + PNG: Add an internal copy of LodePNG, bypassing ImageMagick. + This improves performance and helps with eventually phasing out the latter. + + XWD: Support images generated by convert. + * Improved terminal support: + + Contour: Enable sixel support. + + foot: Open-ended TERM string matching. + + Konsole: Enable sixel support. + + WezTerm: Enable sixel support. + * Bug fixes: + + #76 Smolscale uses too much stack space. + + #81 Chafa --version is returned to stderr, not stdout. + + [unfiled] Potential memory overrun when using Floyd-Steinberg dithering + in symbols mode. + + [unfiled] iTerm2 compatibility issue with WezTerm and possi + +------------------------------------------------------------------- +Wed Sep 1 10:08:10 UTC 2021 - Michael Vetter + +- Update to 1.8.0: + * Added basic support for the Kitty and iTerm2 graphics protocols. + These are enabled automatically when corresponding terminal support + is detected, or manually with -f kitty or -f iterm. + * Implemented an 8-color mode, selectable with -c 8 + * Implemented a foreground-only switch, --fg-only. This produces + character art using foreground colors only, and will avoid + modifying or resetting the background color. Looks best with + non-contiguous symbols (e.g. ascii). + * Added builtins for Japanese kana fullwidth symbols. These can + now be used without loading any external fonts (try -c none --symbols wide). + * Added builtins for legacy computer symbols (mainly wedges and + sextant blocks). These were widely used in PETSCII and Teletext, + and can be enabled using --symbols or --fill with their respective + tags: legacy, wedge and sextant (@hodefoting). + * Since there is a growing number of builtin symbols that may not + be available everywhere, the default selection has been restricted + to the widely supported block and border sets. + * If possible, we now select a visually blank character from the + specified symbol/fill sets instead of hardcoding ASCII space for + featureless cells. One practical upshot of this is that the constant-width + braille range can be used to produce consistent images even in contexts + with variable-width fonts. U+2800 (BRAILLE PATTERN BLANK) will then be used in blank cells. + * Improved terminal size detection when used with pipelines and redirection. + This should now produce an image properly sized for your terminal: + curl https://i.imgur.com/WFDEFVg.jpeg | chafa - | tee out + * ChafaCanvas gained API functions for programmatically getting and + setting character cell contents. These are used in a new example + in tests/ncurses.c demonstrating ncurses integration. + * Made --disable-rpath the default in order to simplify packaging. + * Added a HACKING file featuring a much needed release checklist. + * Improved terminal support: + + Ctx will now use optimizing REP sequences at high -O levels. + + foot now defaults to sixels. + + iTerm2 now defaults to the iTerm2 protocol. + + Kitty now defaults to the Kitty protocol. + + st now defaults to truecolor symbols. + * Bug fixes: + + #44 Missing error handling on stdout writes. + + [unfiled] Solid symbols erroneously replaced by fill in FGBG mode. + + [unfiled] Integer formatter was not using fast path for 8-bit values. + +------------------------------------------------------------------- +Mon Jun 7 18:30:46 UTC 2021 - Michael Vetter + +- Update to 1.6.1: + * Add NOCONFIGURE variable to autogen.sh to skip configure + Bug fixes: + * #50 SIGBUS while loading huge GIFs + * #52 Produces small glitches in output with some images + * #54 Haiku port fails on 32bit + * [unfiled] Exclude RTL code points that could break the output. + * [unfiled] Apple Terminal lacks truecolor support, so make it + default to 256 colors + * [unfiled] Fix typo affecting middle dot symbol. + +------------------------------------------------------------------- +Fri Jan 15 08:39:16 UTC 2021 - Michael Vetter + +- Update to 1.6.0: + * Added support for fullwidth symbols that take up two character + cells. These are common in East Asian scripts. Single-cell and + double-cell symbols can be mixed, and -f symbols mode will use + both if possible. + * New symbol tags: alpha, digit, alnum, narrow, wide, ambiguous, + ugly, bad. "Ambiguous" symbols have uncertain widths and may + render poorly in some terminals. "Ugly" denotes symbols that + are unsuitable for Chafa's cell-based graphics (multicolor + emoji, ideographic descriptors, etc). "Bad" is a superset of + these two categories. Bad symbols are always excluded unless + explicitly enabled with e.g. CHAFA_SYMBOL_TAG_BAD (--symbols + +bad in the frontend). + * The font loader (--glyph-file option) now does a better job + with proportional fonts. + * Added options for controlling lossless optimization of output. + Currently, attribute reuse and character repetition (REP + sequence) are implemented. + * Added -O option to the frontend. This controls the optimization + level. + * Added a simple abstraction layer for terminal control sequences + (ChafaTermInfo and ChafaTermDb). This allows for improved + terminal support. + * FbTerm is now supported with TERM=fbterm in the environment. + * Bug fixes: + - #43 Fix signal handler. + - [unfiled] Crash when invalid font paths were passed on command line. + - [unfiled] Small typo in fontgen's READM). + - [unfiled] Bad contrast adjustment in images with transparency. + +------------------------------------------------------------------- +Sun Apr 12 21:17:36 UTC 2020 - Michael Vetter + +- Update to 1.4.1: + * Added configure option --disable-rpath. This allows packagers to + prevent the hard-coded library search path from being embedded in + the chafa command-line tool (Mo Zhou, #39). + * Added defaults for the yaft terminal. + Bug fixes: + * #40 - Fails to build on hurd-i386 + other i386 (reported by Mo + Zhou). + * [unfiled] - Rare failed assert with mostly transparent sixel image + (reported by Reddit user spryfigure). + * [unfiled] - Minor typo in function docstring. + + +------------------------------------------------------------------- +Thu Apr 2 08:08:26 UTC 2020 - Michael Vetter + +- Update to 1.4.0: + * Added sixel graphics support. Chafa will automatically produce sixels + if the connected terminal supports it. It can also be forced using the + new -f or --format flag. This is a new implementation written from the + ground up to maximize throughput. + * Added the --glyph-file option, which loads glyph-symbol mappings from + any file format supported by FreeType (TTF, PCF, etc). This allows for + custom font support and improved symbol selection. + * Added the --speed option specifying animation speed. It accepts a + unitless multiplier, a specific number of frames per second, or max + for maximum throughput. + * There are now two ways to assign colors to symbol cells. Formerly, + this was done based on the average color of the covered area. The new + default is to use the median color, which produces sharper edges, + but is slightly more prone to high-frequency noise. The new option + --color-extractor selects the method to employ. + * When displaying multiple files, the default delay between files has + been changed from three seconds to zero. Animations will still play + through once. This can be overridden on the chafa command line with -d + or --duration. + * Minor tweaks to built-in symbols. + Performance improvements: + * Halved pixel storage requirements from 64 bits to 32 bits, + resulting in significant memory savings. + * Now builds with -ffast-math, yielding a big speedup for DIN99d. + +------------------------------------------------------------------- +Wed Mar 4 06:39:45 UTC 2020 - Michael Vetter + +- Update to 1.2.2: + * Fix #34 Cannot compile example + +------------------------------------------------------------------- +Sat Aug 24 06:28:14 UTC 2019 - Jan Engelhardt + +- Update descriptions. +- Avoid double-shipping documentation, and make docs noarch. + +------------------------------------------------------------------- +Tue Aug 20 07:23:02 UTC 2019 - mvetter@suse.com + +- Update to 1.2.1: + * Detect kitty and mlterm virtual terminals and apply optimal + defaults accordingly + * Make Automake build more strict and fix a few compatibility nits + * Fix #30 - Failed to build on hurd-i386 + * Fix crash on certain broken GIFs + +------------------------------------------------------------------- +Mon Aug 5 07:10:33 UTC 2019 - mvetter@suse.com + +- Update to 1.2.0: + * Added --dither, --dither-grain and --dither-intensity options. + These allow for sub-cell dithering in quantized modes (none, + 2, 16, 240 and 256). Especially beneficial when used with + -p off. + * Added API for ordered and diffusion-based dithering in quantization. + * Added API support for multiple 8bpc pixel modes: RGB, BGR, RGBA, + BGRA, ARGB, ABGR with either premultiplied or unassociated alpha channels. + * Smooth scaling is now done internally, meaning libchafa + consumers no longer need to prescale images. + * Implemented a machine learning tool that can generate custom + fonts for efficient image reproduction from a provided dataset. + This is left uninstalled since it's still experimental + * Throughput improvements: + + GIF animations now start playing instantly. + + GIF CPU overhead reduced by 75%, peak memory use down 95%-99% (!). + + XWD common case CPU overhead down 60-70%, peak memory down 70%. + + Additional halving of CPU overhead in 240- and 256-color modes. + + Streamlined pixel pipeline for better parallelization. + * Installation instructions: + + New: Guix (Guy Fleury Iteriteka). + + New: openSUSE (@jubalh). + * Bug fixes: + + [unfiled] Certain SVGs had transparency replaced with a white background (nemo). + + [unfiled] -lm dependency belongs in libchafa, not frontend. + +------------------------------------------------------------------- +Fri Feb 8 11:47:49 UTC 2019 - mvetter@suse.com + +- Initial package chafa 1.0.1 for openSUSE diff --git a/chafa.spec b/chafa.spec new file mode 100644 index 0000000..2487996 --- /dev/null +++ b/chafa.spec @@ -0,0 +1,112 @@ +# +# spec file for package chafa +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: chafa +Version: 1.14.3 +Release: 0 +Summary: Image-to-text converter for terminal +License: LGPL-3.0-or-later +Group: Amusements/Toys/Graphics +URL: https://hpjansson.org/chafa/ +Source0: https://github.com/hpjansson/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz +BuildRequires: freetype2-devel +BuildRequires: gcc +BuildRequires: glib2-devel >= 2.26 +BuildRequires: gtk-doc +BuildRequires: libjpeg-devel +BuildRequires: librsvg-devel +BuildRequires: libtiff-devel +BuildRequires: libtool +BuildRequires: libwebp-devel +Requires: libchafa0 = %{version} + +%description +Chafa is a command-line utility that converts all kinds of images, including +animated image formats like GIFs, into ANSI/Unicode character output that can +be displayed in a terminal. + +%package -n libchafa0 +Summary: Shared library for %{name} +Group: Development/Libraries/C and C++ + +%description -n libchafa0 +The core of Chafa which converts all kinds of images, including +animated image formats like GIFs, into ANSI/Unicode characters. + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries/C and C++ +Requires: libchafa0 = %{version} + +%description devel +Development files for %{name}. + +%package doc +Summary: Chafa documentation +Group: Documentation/HTML +Recommends: %{name}-devel +BuildArch: noarch + +%description doc +Documentation for %{name}. + +%prep +%setup -q +autoreconf -ivf + +# rpath +sed -i -e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ + -e 's|runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \ + -e "s|runpath_var='LD_RUN_PATH'|runpath_var=DIE_RPATH_DIE|g" \ + configure + +%build +%configure --disable-rpath +%make_build + +%install +%make_install +rm -rf %{buildroot}%{_libdir}/libchafa.{a,la} + +%post -n libchafa0 -p /sbin/ldconfig +%postun -n libchafa0 -p /sbin/ldconfig + +%files +%license COPYING.LESSER +%doc README* NEWS +%{_bindir}/%{name} +%{_mandir}/man1/%{name}.1%{?ext_man} + +%files -n libchafa0 +%license COPYING.LESSER +%{_libdir}/lib%{name}.so.0* + +%files devel +%license COPYING.LESSER +%{_includedir}/%{name}/ +%{_libdir}/pkgconfig/%{name}.pc +%{_libdir}/lib%{name}.so +%dir %{_libdir}/chafa/ +%{_libdir}/chafa/include/ + +%files doc +%doc AUTHORS +%license COPYING.LESSER +%doc %{_datadir}/gtk-doc/html/%{name} + +%changelog