# # spec file for package newt # # Copyright (c) 2022-2023 ZhuningOS # %define libname lib%{name} %define libsoname %{libname}0_52 %bcond_without python2 Name: newt Version: 0.52.20 Release: 150000.7.2.3 Summary: A library for text mode user interfaces License: LGPL-2.1+ Group: Development/Libraries/C and C++ Url: https://pagure.io/newt Source: https://fedorahosted.org/releases/n/e/newt/%{name}-%{version}.tar.gz Source2: baselibs.conf Source10: %{name}-rpmlintrc # needed for tutorial.pdf BuildRequires: docbook-toys BuildRequires: pkgconfig BuildRequires: popt-devel BuildRequires: python3-devel BuildRequires: slang-devel BuildRequires: texlive-courier BuildRequires: texlive-dvips BuildRequires: texlive-ec BuildRequires: texlive-helvetic BuildRequires: texlive-jadetex BuildRequires: texlive-times %if %{with python2} BuildRequires: python-devel %endif %description Newt is a programming library for color text-mode, widget-based user interfaces. Newt can be used to add stacked windows, entry widgets, checkboxes, radio buttons, labels, plain text fields, scrollbars, etc., to text mode user interfaces. This package also contains a Dialog replacement called whiptail. Newt is based on the slang library. %package -n %{libsoname} Summary: Shared libraries for Nifty Erik's Windowing Toolkit License: LGPL-2.1+ Group: System/Libraries %description -n %{libsoname} This package contains the shared libraries needed by programs built with newt. Newt is a programming library for color text-mode widget-based user interfaces. Newt can be used to add stacked windows, entry widgets, check boxes, radio buttons, labels, plain text fields, scrollbars, etc., to text mode user interfaces. %package devel Summary: Development files for the Newt windowing toolkit License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{libsoname} = %{version} Requires: popt-devel Requires: python3-devel Requires: slang-devel Recommends: %{name} = %{version} %description devel This package contains the header files and libraries necessary for developing applications which use newt. Newt is a development library for text mode user interfaces. Install newt-devel if you want to develop applications which depend on newt. %package doc Summary: Tutorial for Nifty Erik's Windowing Toolkit # the examples need the main package: License: LGPL-2.1+ Group: Documentation/Howto Recommends: %{name} = %{version} BuildArch: noarch %description doc This package contains a tutorial about the Newt windowing toolkit. Newt is a programming library for color text-mode, widget-based user interfaces. Newt can be used to add stacked windows, entry widgets, check boxes, radio buttons, labels, plain text fields, scrollbars, etc., to text mode user interfaces. Newt is based on the slang library. %package static # Please keep the static package as this is requested by another # vendor for his tool. It shouldn't be a problem to keep this # special package. (lrupp) Summary: Static libraries of Nifty Erik's Windowing Toolkit License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} %description static This package contains the static libraries needed to compile programs based on newt which don't need the shared libraries. Install it if you need to link statically with %{libname}. Newt is a programming library for color text-mode widget-based user interfaces. Newt can be used to add stacked windows, entry widgets, check boxes, radio buttons, labels, plain text fields, scrollbars, etc., to text mode user interfaces. %package -n python2-%{name} Summary: Python bindings for newt License: GPL-2.0 AND GPL-2.0+ AND LGPL-2.1+ Group: Development/Languages/Python Requires: %{name} = %{version} Provides: python-%{name} = %{version} Obsoletes: python-%{name} < %{version} Provides: %{name}-python = %{version} Obsoletes: %{name}-python < %{version} %description -n python2-%{name} The python-newt package contains the Python bindings for the newt library providing a python API for creating text mode interfaces. %package -n python3-%{name} Summary: Python 3 bindings for newt License: LGPL-2.1+ Group: Development/Languages/Python Requires: %{name} = %{version}-%{release} %description -n python3-%{name} The python3-newt package contains the Python 3 bindings for the newt library providing a python API for creating text mode interfaces. %prep %setup -q %build # gpm support seems to smash the stack # --with-gpm-support %configure --without-tcl ## make depend make CPPFLAGS="%{optflags} -fPIC" %{?_smp_mflags} all #docbook2txt tutorial.sgml chmod 0644 peanuts.py popcorn.py %install %if %{with python2} pyversions="python%{py_ver}" %else pyversions="" %endif pyversions="$pyversions python%{py3_ver}" make PYTHONVERS="$pyversions" instroot=%{buildroot} DESTDIR=%{buildroot} install install-sh # currently we don't support these languages for lang in ast bal sr@latin wo; do rm -rf %{buildroot}%{_datadir}/locale/$lang done # prepare defaultdocdir with examples and scripts # install -d -m 755 %{buildroot}%{_defaultdocdir}/%{name}/examples # install COPYING file install -m 644 COPYING %{buildroot}%{_defaultdocdir}/%{name}/ # install example scripts install -m 755 peanuts.py %{buildroot}%{_defaultdocdir}/%{name}/examples/ install -m 755 popcorn.py %{buildroot}%{_defaultdocdir}/%{name}/examples/ # # create tutorial.pdf documentation # install -m 644 tutorial.sgml %{buildroot}%{_defaultdocdir}/%{name}/ pushd %{buildroot}%{_defaultdocdir}/%{name}/ 1>/dev/null db2pdf tutorial.sgml rm tutorial.{aux,log,out} CATALOG.* *.dsl popd 1>/dev/null %find_lang %{name} %if %{with python2} %py_compile %{buildroot}/%{python_sitearch} %py_compile -O %{buildroot}/%{python_sitearch} %endif %py3_compile %{buildroot}/%{python3_sitearch} %py3_compile -O %{buildroot}/%{python3_sitearch} # pointless examples rm %{buildroot}%{_defaultdocdir}/%{name}/examples/*.py %post -n %{libsoname} -p /sbin/ldconfig %postun -n %{libsoname} -p /sbin/ldconfig %files -f %{name}.lang %dir %{_defaultdocdir}/%{name} %doc %{_defaultdocdir}/%{name}/COPYING %{_bindir}/whiptail %{_mandir}/man1/whiptail.1* %files -n %{libsoname} %{_libdir}/%{libname}.so.* %files devel %{_includedir}/%{name}.h %{_libdir}/%{libname}.so %{_libdir}/pkgconfig/*.pc %files doc %doc %{_defaultdocdir}/%{name}/tutorial.* %files static %{_libdir}/%{libname}.a %if %{with python2} %files -n python2-%{name} %{python2_sitearch}/* %endif %files -n python3-%{name} %{python3_sitearch}/*.so %{python3_sitearch}/*.py* %{python3_sitearch}/__pycache__/*.py* %changelog