File wordgrinder.spec of Package wordgrinder

#
# spec file for package wordgrinder
#
# Copyright (c) 2023 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:           wordgrinder
Version:        0.9+git20230310.c1434c2
Release:        0
Summary:        Unicode aware Character Cell Word Processor
License:        MIT
Group:          Productivity/Text/Editors
URL:            https://github.com/davidgiven/wordgrinder
Source:         %{name}-%{version}.tar.gz
BuildRequires:  ImageMagick
BuildRequires:  gcc-c++
BuildRequires:  libSDL2_ttf-devel
BuildRequires:  lua-devel
BuildRequires:  lua-luafilesystem
BuildRequires:  make
BuildRequires:  ninja
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(SDL2_ttf)
BuildRequires:  pkgconfig(glfw3)
BuildRequires:  pkgconfig(ncurses)
BuildRequires:  pkgconfig(sdl2)
BuildRequires:  pkgconfig(xft)
BuildRequires:  pkgconfig(zlib)
### Local builds complain about vim conflict:
#   ./.osc/_buildconfig-openSUSE_Tumbleweed-x86_64:Substitute: obs:cli_debug_packages gdb vim strace less rzsz
# This is required to provide xxd; fails to build without it.
# 20221114: openSUSE:Leap:15.4 is providing 1.34.1 but openSUSE:Leap:15.4:Update is providing 1.35.0
#   temporarily removing openSUSE:Leap:15.4:Update/standard from 15.4 definition @ https://build.opensuse.org/repositories/home:sbradnick
#
#			localhost:~ #  zypper search --details busybox
#			Loading repository data...
#			Reading installed packages...
#			
#			S | Name              | Type       | Version             | Arch   | Repository
#			--+-------------------+------------+---------------------+--------+-------------------------------------------------------------
#			  | busybox           | package    | 1.35.0-150400.3.3.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
#			  | busybox           | package    | 1.34.1-150400.1.8   | x86_64 | Main Repository
#			  | busybox           | srcpackage | 1.35.0-150400.3.3.1 | noarch | Update repository with updates from SUSE Linux Enterprise 15
#			  | busybox-k8s-yaml  | package    | 1.0-bp154.1.20      | noarch | Main Repository
#			  | busybox-static    | package    | 1.35.0-150400.3.3.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
#			  | busybox-static    | package    | 1.34.1-150400.1.8   | x86_64 | Main Repository
#			  | busybox-testsuite | package    | 1.35.0-150400.3.3.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
#			  | busybox-testsuite | package    | 1.34.1-150400.1.8   | x86_64 | Main Repository
#			  | busybox-warewulf3 | package    | 1.35.0-150400.3.3.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
#			  | busybox-warewulf3 | package    | 1.34.1-150400.1.8   | x86_64 | Main Repository
#
#####
BuildRequires:  -vim
### Swapping out "busybox-vi" for "busybox" in lieu of "hack"
#BuildRequires:  busybox-vi
BuildRequires:  busybox
#####

%description
WordGrinder is a simple, Unicode-aware word processor that runs on the
console. It's designed to get the hell out of your way and let you write;
it does very little, but what it does it does well.

It supports basic paragraph styles, basic character styles, basic screen
markup, a menu interface that means you don't have to remember complex
key sequences, HTML import and export, and some other useful features.

WordGrinder does not require X. It runs in a terminal. (But there's a
version which uses X if you want it.)

%prep
%setup -q

%build
### "hack" to account for 20221114 busybox oddity
mkdir ~/bin
export PATH=$HOME/bin:$PATH
ln -s /usr/bin/busybox ~/bin/xxd
which xxd
#####
%make_build \
  CXXFLAGS="%%{optflags} -fPIE -pie" \
  DESTDIR=%{buildroot} \
  DOCDIR=%{buildroot}%{_docdir} \
  PREFIX=%{buildroot}%{_prefix} \
  %{?_smp_mflags}

%install
%make_install
mkdir -p %{buildroot}%{_docdir}/%{name}
mv -v %{buildroot}/usr/doc/%{name}/README.wg %{buildroot}%{_docdir}/%{name}/README.wg
mkdir -p %{buildroot}%{_mandir}/man1
mv -v %{buildroot}/usr/man/man1/*wordgrinder* %{buildroot}%{_mandir}/man1/

%files
%dir %{_docdir}/%{name}
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/256x256
%dir %{_datadir}/icons/hicolor/256x256/apps
%{_bindir}/wordgrinder
%{_bindir}/xwordgrinder
%{_mandir}/man1/wordgrinder.1*
%{_mandir}/man1/xwordgrinder.1*
%{_docdir}/%{name}/README.wg
%{_datadir}/icons/hicolor/256x256/apps/wordgrinder.png
%{_datadir}/mime/packages/wordgrinder.xml
%{_datadir}/applications/*.desktop

%changelog
openSUSE Build Service is sponsored by