+# TODO
+# - package emacs stuff
+#
Summary: GNU smalltalk
Summary(pl.UTF-8): GNU smalltalk
Name: smalltalk
-Version: 3.1
-Release: 0.1
-License: GPL
+Version: 3.2.5
+Release: 12
+License: GPL v2+
Group: Development/Languages
-Source0: ftp://ftp.gnu.org/pub/gnu/smalltalk/%{name}-%{version}.tar.gz
-# Source0-md5: fb4630a86fc47c893cf9eb9adccd4851
+Source0: https://ftp.gnu.org/gnu/smalltalk/%{name}-%{version}.tar.xz
+# Source0-md5: 772d2ac09f96dda203d49f0b80bc58f3
Source1: %{name}.desktop
Source2: %{name}.png
Patch0: %{name}-proc.patch
+Patch1: %{name}-info.patch
URL: http://www.gnu.org/software/smalltalk/
BuildRequires: OpenGL-devel
-BuildRequires: SDL-devel
+BuildRequires: OpenGL-glut-devel
+BuildRequires: SDL-devel >= 1.2
BuildRequires: atk-devel >= 1.0.0
-BuildRequires: autoconf >= 2.52
-BuildRequires: automake
+BuildRequires: autoconf >= 2.63
+BuildRequires: automake >= 1:1.11
+BuildRequires: expat-devel >= 1.95
BuildRequires: gawk
BuildRequires: gdbm-devel
BuildRequires: glib2-devel >= 2.0.0
-BuildRequires: glut-devel
+BuildRequires: gmp-devel
+BuildRequires: gnutls-devel
BuildRequires: gtk+2-devel >= 1:2.0.0
BuildRequires: libffi-devel
BuildRequires: libltdl-devel
-BuildRequires: libsigsegv
+BuildRequires: libsigsegv-devel
BuildRequires: libtool >= 2:1.5
BuildRequires: ncurses-devel >= 5.0
BuildRequires: pango-devel >= 1:1.0.0
BuildRequires: readline-devel >= 4.2
BuildRequires: sqlite3-devel
BuildRequires: rpmbuild(macros) >= 1.213
+BuildRequires: tcl-devel >= 8.4
BuildRequires: texinfo
BuildRequires: tk-devel >= 8.4
-#BuildRequires: xemacs
+BuildRequires: zlib-devel
Requires(post,postun): /sbin/ldconfig
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# smalltalk uses -Wno-format (see GST_PROG_CC in configure.ac)
+%define filterout_c -Wformat -Werror=format-security
+
%description
GNU Smalltalk is a Free (or Open Source) implementation that closely
follows the Smalltalk-80 language as described in the book
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: gmp-devel
+Requires: libffi-devel
+Requires: libltdl-devel
+Requires: libsigsegv-devel
Requires: readline-devel
%description devel
%description tk -l pl.UTF-8
Moduł blox-tk dla GNU Smalltalka.
+%package expat
+Summary: Expat module for GNU Smalltalk
+Summary(pl.UTF-8): Moduł Expat dla GNU Smalltalka
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description expat
+Expat module for GNU Smalltalk.
+
+%description expat -l pl.UTF-8
+Moduł Expat dla GNU Smalltalka.
+
%package gdbm
Summary: GDBM module for GNU Smalltalk
Summary(pl.UTF-8): Moduł GDBM dla GNU Smalltalka
Moduł SDL dla GNU Smalltalka.
%package opengl
-summary: OpenGL module for GNU Smalltalk
+Summary: OpenGL module for GNU Smalltalk
Summary(pl.UTF-8): Moduł OpenGL dla GNU Smalltalka
Group: Libraries
Requires: %{name} = %{version}-%{release}
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
%configure \
- --enable-gtk=yes \
+ AWK=gawk \
+ CPPFLAGS="-DUSE_INTERP_RESULT %{rpmcppflags}" \
--enable-disassembler \
+ --enable-gtk \
--enable-preemption \
+ --with-imagedir=/var/lib/smalltalk \
--with-system-libffi \
--with-system-libsigsegv \
- AWK=gawk
+ --without-emacs
# gtk things are generated improperly when some locale are set
%{__make} \
+ LIBTHREAD="-lpthread" \
LC_ALL=C
%install
ln -sf ../../bin/gst $RPM_BUILD_ROOT%{_datadir}/smalltalk/gst
-install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
-install %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}
# no static modules (*.la used by ltdl)
-rm -f $RPM_BUILD_ROOT%{_libdir}/smalltalk/*.a
-# doesn't belong here
-rm -rf $RPM_BUILD_ROOT{%{_aclocaldir}/snprintfv.m4,%{_includedir}/snprintfv}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/smalltalk/*.a
%clean
rm -rf $RPM_BUILD_ROOT
%doc AUTHORS NEWS README THANKS
%attr(755,root,root) %{_bindir}/gst
%attr(755,root,root) %{_bindir}/gst-blox
+%attr(755,root,root) %{_bindir}/gst-browser
%attr(755,root,root) %{_bindir}/gst-convert
%attr(755,root,root) %{_bindir}/gst-doc
%attr(755,root,root) %{_bindir}/gst-load
+%attr(755,root,root) %{_bindir}/gst-profile
%attr(755,root,root) %{_bindir}/gst-reload
%attr(755,root,root) %{_bindir}/gst-remote
%attr(755,root,root) %{_bindir}/gst-sunit
%attr(755,root,root) %{_libdir}/libgst.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgst.so.7
%dir %{_libdir}/smalltalk
%{_libdir}/smalltalk/libc.la
%attr(755,root,root) %{_libdir}/smalltalk/digest*.so
%{_libdir}/smalltalk/iconv.la
%attr(755,root,root) %{_libdir}/smalltalk/zlib*.so
%{_libdir}/smalltalk/zlib.la
-%attr(755,root,root) %{_libdir}/smalltalk/sockets*.so
-%{_libdir}/smalltalk/sockets.la
-%attr(755,root,root) %{_libdir}/smalltalk/vfs/*
+%if "%{_libexecdir}" != "%{_libdir}"
+%dir %{_libexecdir}/smalltalk
+%endif
+%attr(755,root,root) %{_libexecdir}/smalltalk/gnutls-wrapper
+%dir %{_libexecdir}/smalltalk/vfs
+%attr(755,root,root) %{_libexecdir}/smalltalk/vfs/*
%{_datadir}/smalltalk
-%{_infodir}/gst*
+%{_desktopdir}/smalltalk.desktop
+%{_pixmapsdir}/smalltalk.png
+%{_infodir}/gst.info*
+%{_infodir}/gst-base.info*
+%{_infodir}/gst-libs.info*
%{_mandir}/man1/gst.1*
%{_mandir}/man1/gst-convert.1*
%{_mandir}/man1/gst-doc.1*
%{_mandir}/man1/gst-load.1*
+%{_mandir}/man1/gst-profile.1*
%{_mandir}/man1/gst-reload.1*
%{_mandir}/man1/gst-sunit.1*
-%{_desktopdir}/*.desktop
-%{_pixmapsdir}/*
%dir /var/lib/smalltalk
/var/lib/smalltalk/gst.im
%attr (755,root,root) %{_bindir}/gst-package
%attr(755,root,root) %{_libdir}/libgst.so
%{_libdir}/libgst.la
-%{_includedir}/*.h
+%{_includedir}/gst.h
+%{_includedir}/gstpub.h
%{_aclocaldir}/gst.m4
%{_aclocaldir}/gst-package.m4
%{_pkgconfigdir}/gnu-smalltalk.pc
%attr(755,root,root) %{_libdir}/smalltalk/blox-tk*.so
%{_libdir}/smalltalk/blox-tk.la
+%files expat
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/smalltalk/expat*.so
+%{_libdir}/smalltalk/expat.la
+
%files gdbm
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/smalltalk/gdbm*.so