+# TODO
+# - package emacs stuff
+#
Summary: GNU smalltalk
Summary(pl.UTF-8): GNU smalltalk
Name: smalltalk
-Version: 3.0.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: dbd1bc308dda3a4ef936dce2b78faa5a
+Source0: https://ftp.gnu.org/gnu/smalltalk/%{name}-%{version}.tar.xz
+# Source0-md5: 772d2ac09f96dda203d49f0b80bc58f3
Source1: %{name}.desktop
Source2: %{name}.png
-Patch0: %{name}-PACKAGE.patch
-Patch1: %{name}-proc.patch
+Patch0: %{name}-proc.patch
+Patch1: %{name}-info.patch
URL: http://www.gnu.org/software/smalltalk/
+BuildRequires: OpenGL-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: gmp-devel
+BuildRequires: gnutls-devel
BuildRequires: gtk+2-devel >= 1:2.0.0
+BuildRequires: libffi-devel
BuildRequires: libltdl-devel
+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
%description sqlite3 -l pl.UTF-8
Moduł Sqlite3 dla GNU Smalltalka.
+%package sdl
+Summary: SDL module for GNU Smalltalk
+Summary(pl.UTF-8): Moduł SDL dla GNU Smalltalka
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description sdl
+SDL module for GNU Smalltalk.
+
+%description sdl -l pl.UTF-8
+Moduł SDL dla GNU Smalltalka.
+
+%package opengl
+Summary: OpenGL module for GNU Smalltalk
+Summary(pl.UTF-8): Moduł OpenGL dla GNU Smalltalka
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description opengl
+openGL module for GNU Smalltalk.
+
+%description opengl -l pl.UTF-8
+Moduł OpenGL dla GNU Smalltalka.
+
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
-
-rm -f config/libtool.m4
+%patch1 -p1
%build
-cd libffi
-%{__aclocal} -I ../build-aux
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-cd ../sigsegv
-%{__aclocal} -I ../build-aux
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-cd ../snprintfv
-%{__aclocal} -I ../build-aux
-%{__autoconf}
-%{__autoheader}
-# intentionally no automake here
-cd ..
-%{__libtoolize}
-%{__aclocal} -I snprintfv -I build-aux
-%{__autoconf}
-%{__automake}
%configure \
- --enable-gtk=yes \
+ AWK=gawk \
+ CPPFLAGS="-DUSE_INTERP_RESULT %{rpmcppflags}" \
--enable-disassembler \
- AWK=gawk
+ --enable-gtk \
+ --enable-preemption \
+ --with-imagedir=/var/lib/smalltalk \
+ --with-system-libffi \
+ --with-system-libsigsegv \
+ --without-emacs
# gtk things are generated improperly when some locale are set
%{__make} \
+ LIBTHREAD="-lpthread" \
LC_ALL=C
%install
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-ln -sf ../../bin/gst $RPM_BUILD_ROOT%{_datadir}/gnu-smalltalk/gst
+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}/gnu-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) %{_libdir}/libsigsegv.so.*.*.*
-%dir %{_libdir}/gnu-smalltalk
-%{_libdir}/gnu-smalltalk/libc.la
-%attr(755,root,root) %{_libdir}/gnu-smalltalk/digest*.so
-%{_libdir}/gnu-smalltalk/digest.la
-%attr(755,root,root) %{_libdir}/gnu-smalltalk/i18n*.so
-%{_libdir}/gnu-smalltalk/i18n.la
-%attr(755,root,root) %{_libdir}/gnu-smalltalk/iconv*.so
-%{_libdir}/gnu-smalltalk/iconv.la
-%attr(755,root,root) %{_libdir}/gnu-smalltalk/tcp*.so
-%{_libdir}/gnu-smalltalk/tcp.la
-%attr(755,root,root) %{_libdir}/gnu-smalltalk/zlib*.so
-%{_libdir}/gnu-smalltalk/zlib.la
-%{_libdir}/gnu-smalltalk/deb
-%{_libdir}/gnu-smalltalk/lslR
-%{_libdir}/gnu-smalltalk/mailfs
-%{_libdir}/gnu-smalltalk/patchfs
-%{_libdir}/gnu-smalltalk/uar
-%{_libdir}/gnu-smalltalk/ucpio
-%{_libdir}/gnu-smalltalk/ulha
-%{_libdir}/gnu-smalltalk/urar
-%{_libdir}/gnu-smalltalk/utar
-%{_libdir}/gnu-smalltalk/uzip
-%{_libdir}/gnu-smalltalk/uzoo
-%{_datadir}/gnu-smalltalk
-%{_infodir}/gst*
+%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/digest.la
+%attr(755,root,root) %{_libdir}/smalltalk/i18n*.so
+%{_libdir}/smalltalk/i18n.la
+%attr(755,root,root) %{_libdir}/smalltalk/iconv*.so
+%{_libdir}/smalltalk/iconv.la
+%attr(755,root,root) %{_libdir}/smalltalk/zlib*.so
+%{_libdir}/smalltalk/zlib.la
+%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
+%{_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/gnu-smalltalk
-/var/lib/gnu-smalltalk/gst.im
+%dir /var/lib/smalltalk
+/var/lib/smalltalk/gst.im
%files devel
%defattr(644,root,root,755)
%attr (755,root,root) %{_bindir}/gst-config
%attr (755,root,root) %{_bindir}/gst-package
%attr(755,root,root) %{_libdir}/libgst.so
-%attr(755,root,root) %{_libdir}/libsigsegv.so
%{_libdir}/libgst.la
-%{_libdir}/libsigsegv.la
-%{_includedir}/*.h
+%{_includedir}/gst.h
+%{_includedir}/gstpub.h
%{_aclocaldir}/gst.m4
%{_aclocaldir}/gst-package.m4
%{_pkgconfigdir}/gnu-smalltalk.pc
%files static
%defattr(644,root,root,755)
%{_libdir}/libgst.a
-%{_libdir}/libsigsegv.a
%files tk
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/gnu-smalltalk/blox-tk*.so
-%{_libdir}/gnu-smalltalk/blox-tk.la
+%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}/gnu-smalltalk/gdbm*.so
-%{_libdir}/gnu-smalltalk/gdbm.la
+%attr(755,root,root) %{_libdir}/smalltalk/gdbm*.so
+%{_libdir}/smalltalk/gdbm.la
%files gtk
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/gnu-smalltalk/gst-gtk*.so
-%{_libdir}/gnu-smalltalk/gst-gtk.la
+%attr(755,root,root) %{_libdir}/smalltalk/gst-gtk*.so
+%{_libdir}/smalltalk/gst-gtk.la
%files sqlite3
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/gnu-smalltalk/dbd-sqlite3*.so
-%{_libdir}/gnu-smalltalk/dbd-sqlite3.la
+%attr(755,root,root) %{_libdir}/smalltalk/dbd-sqlite3*.so
+%{_libdir}/smalltalk/dbd-sqlite3.la
+
+%files sdl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/smalltalk/sdl*.so
+%{_libdir}/smalltalk/sdl.la
+
+%files opengl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/smalltalk/gstglut*.so
+%{_libdir}/smalltalk/gstglut.la
+%attr(755,root,root) %{_libdir}/smalltalk/gstopengl*.so
+%{_libdir}/smalltalk/gstopengl.la