File racket.spec of Package racket

#
# spec file for package racket
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2012, 2013 Togan Muftuoglu toganm@opensuse.org
#
# 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 http://bugs.opensuse.org/
#


Name:           racket
Version:        5.3.6
Release:        0
Summary:        Scheme implementation with teaching tools
License:        LGPL-2.1+ and GPL-3.0+
Group:          Development/Languages/Scheme
Url:            http://racket-lang.org
Source0:        http://download.racket-lang.org/installers/%version/%name/%name-%version-src-unix.tgz
Source1:        drracket.desktop
Source2:        racket-completion.bash
Source3:        racket-5.3.rpmlintrc
Source4:        drracket.png
# PATCH-FIX-OPENSUSE based on debian package toganm@opensuse.org 
Patch0:         0001-Fix-install-path-for-doc-and-collects.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  ImageMagick
BuildRequires:  chrpath
BuildRequires:  desktop-file-utils
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  ghostscript-fonts-std
BuildRequires:  libexpat1
BuildRequires:  libjpeg-devel
BuildRequires:  librsvg-devel
BuildRequires:  libtool
BuildRequires:  update-desktop-files
BuildRequires:  pkgconfig(cairo)
BuildRequires:  pkgconfig(fontconfig)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  pkgconfig(gtk+-2.0)
BuildRequires:  pkgconfig(ice)
BuildRequires:  pkgconfig(libffi)
BuildRequires:  pkgconfig(libpng)
BuildRequires:  pkgconfig(openssl)
BuildRequires:  pkgconfig(pango)
BuildRequires:  pkgconfig(pixman-1) >= 0.22.0
BuildRequires:  pkgconfig(sm)
BuildRequires:  pkgconfig(sqlite3)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xaw7)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xft)
BuildRequires:  pkgconfig(xmu)
BuildRequires:  pkgconfig(xrender)
BuildRequires:  pkgconfig(xt)
BuildRequires:  pkgconfig(zlib)

# maggia has this
# Disable the debug package since otherwise a build would create the following
# error message:
#  *** ERROR: same build ID in nonidentical files!
#          /usr/bin/mzscheme
#     and  /usr/bin/mred
# this should be set from the obs
#%%define debug_package %%{nil}

%description
Racket (formerly called PLT Scheme) is a multi-paradigm programming language
in the Lisp/Scheme family, that also serves as a platform for language
creation, design, and implementation.

The programming language is known for its powerful macro system which enables
the creation of embedded and domain-specific languages, language constructs
such as classes or modules, and separate dialects of Racket enable different
semantics.


%package -n drracket
Summary:        Racket Scheme graphical development environment
Group:          Development/Languages/Scheme
Requires:       %{name} = %{version}-%{release}

%description -n drracket
DrRacket is the graphical development environment for creating
Racket applications.

%package games
Summary:        Sample games from Racket Scheme
Group:          Amusements/Games/Other
Requires:       %{name} = %{version}-%{release}

%description games
This package contains sample games from Racket project.


%package webserver
Summary:        Webserver from Racket
Group:          Productivity/Networking/Web/Servers
Requires:       %{name} = %{version}-%{release}

%description webserver
Webserver from Racket Scheme.


%package devel
Summary:        Development header files for PLT
Group:          Development/Languages/Scheme
Requires:       %{name} = %{version}-%{release}
Requires:       glibc-devel
Requires:       libffi-devel

%description devel
This package contains the symlinks, headers and object files needed to
compile and link programs which use PLT.


%prep
%setup -q
%patch0 -p1

cp %{S:1} src/.
cp %{S:2} src/.
cp %{S:4} src/.

## debian had licence isssue before enabling these check

# ( while  read -r name ; do
#     rm -r $name
# done ) <<EOF
# collects/tests/racket/benchmarks/common/psyntax-input.txt
# collects/tests/xml/clark-tests
# collects/tests/racket/benchmarks/common/maze.sch
# collects/tests/racket/benchmarks/common/maze2.sch
# collects/tests/racket/benchmarks/common/typed/maze2.rktl
# collects/tests/racket/testing.rktl
# collects/tests/utils/mz-testing.rkt
# EOF

## cancel test removal for testing
rm -rf collects/tests
rm -rf collects/{mysterx,mzcom}
rm -rf collects/2htdp/tests
rm -rf collects/htdp/tests
rm -rf collects/browser/tests
rm -rf collects/data/tests
rm -rf collects/file/tests
rm -rf collects/games/tests
rm -rf collects/help/tests
rm -rf collects/images/tests
rm -rf collects/json/tests
rm -rf collects/launcher/tests
rm -rf collects/macro-debugger/tests
rm -rf collects/picturing-programs/tests
rm -rf collects/plot/tests
rm -rf collects/redex/tests
rm -rf collects/r6rs/tests
rm -rf collects/slatex/tests
rm -rf collects/string-constants/tests
rm -rf collects/teachpack/tests
rm -rf collects/typed/tests
rm -rf collects/unstable/tests

find collects/*/examples -name *.c | xargs rm -rf
find collects/*/examples -name *.cxx | xargs rm -rf
find collects/*/examples -name *.c | xargs rm -rf
find collects/*/examples -name *.cxx | xargs rm -rf

%build
cd src

%configure  --enable-shared --disable-static --docdir=%_defaultdocdir/%name --disable-strip --enable-places --enable-lt="/usr/bin/libtool"

%{__make}  %{?_smp_mflags} VERBOSE=1 

%install
cd src

# use the following if setting extra plt_setup options
# export LD_LIBRARY_PATH=%%buildroot%%{_libdir}
# export PLT_SETUP_OPTIONS="-j 1 "

install -d %buildroot/%_datadir/doc/%name/

%make_install  

# Fix the rpath error.
chrpath --delete %buildroot%{_bindir}/gracket
chrpath --delete %buildroot%{_bindir}/racket

find %buildroot -size 0 | xargs rm -f
# we do not need *.la and *.a files

find %{buildroot}%{_libdir} -name "*.la" -delete
find %{buildroot}%{_libdir} -name "*.a" -delete

install -d %buildroot/etc/bash_completion.d/
install -m 644 %{S:2} %buildroot/etc/bash_completion.d/%name

# somehow some files are installed with mode 666
find %buildroot%_defaultdocdir/%name  -perm 666 -type f -exec chmod 644 {} \;

chmod -x %buildroot/%_datadir/%name/collects/2htdp/utest/xrun

%suse_update_desktop_file -i drracket

%fdupes -s %buildroot/%_datadir/%name/
%fdupes -s %buildroot%_bindir/
%fdupes -s %buildroot/%_defaultdocdir/%name

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

#
# TODO with racket 5.6 files section will need reorganization
#

%files
%defattr(-,root,root,-)
%doc README
%_bindir/mzc
%_bindir/mzpp
%_bindir/mzscheme
%_bindir/mztext
%_bindir/plt-r5rs
%_bindir/plt-r6rs
%_bindir/racket
%_bindir/raco
%_bindir/scribble
%_bindir/setup-plt
%_bindir/swindle
%_libdir/*.so
%_libdir/%name/mzdyn3m.o
%_datadir/%name/collects/at-exp
%_datadir/%name/collects/compatibility
%_datadir/%name/collects/compiler
%_datadir/%name/collects/config
%_datadir/%name/collects/data
%_datadir/%name/collects/db
%_datadir/%name/collects/dynext
%_datadir/%name/collects/errortrace
%_datadir/%name/collects/ffi
%_datadir/%name/collects/file
%_datadir/%name/collects/html
%_datadir/%name/collects/info-domain
%_datadir/%name/collects/json
%_datadir/%name/collects/launcher
%_datadir/%name/collects/make
%_datadir/%name/collects/math
%_datadir/%name/collects/mzlib
%_datadir/%name/collects/mzscheme
%_datadir/%name/collects/net
%_datadir/%name/collects/openssl
%_datadir/%name/collects/parser-tools
%_datadir/%name/collects/pkg
%_datadir/%name/collects/planet
%_datadir/%name/collects/preprocessor
%_datadir/%name/collects/profile
%_datadir/%name/collects/r5rs
%_datadir/%name/collects/r6rs
%_datadir/%name/collects/racket
%_datadir/%name/collects/raco
%_datadir/%name/collects/reader
%_datadir/%name/collects/realm
%_datadir/%name/collects/readline
%_datadir/%name/collects/rnrs
%_datadir/%name/collects/s-exp
%_datadir/%name/collects/scheme
%_datadir/%name/collects/scribble
%_datadir/%name/collects/setup
%_datadir/%name/collects/srfi
%_datadir/%name/collects/swindle
%_datadir/%name/collects/syntax
%_datadir/%name/collects/trace
%_datadir/%name/collects/unstable
%_datadir/%name/collects/version
%_datadir/%name/collects/wxme
%_datadir/%name/collects/xml
%_datadir/%name/collects/xrepl
%exclude %_bindir/plt-games
%exclude %_datadir/%name/collects/games
%exclude %_bindir/slideshow
%exclude %_datadir/%name/collects/slideshow
%exclude %_bindir/plt-web-server
%exclude %_datadir/%name/collects/web-server
%dir %_datadir/%name/collects
%_libdir/%name/starter

%{_mandir}/man1/mz*

%{_mandir}/man1/racket*
%{_mandir}/man1/raco*
%{_mandir}/man1/setup-plt*
%dir %_libdir/%name
%dir %_datadir/%name
%dir %_sysconfdir/bash_completion.d/
%_sysconfdir/bash_completion.d/%name

%files games
%defattr(-,root,root,-)
%_bindir/plt-games
%_datadir/%name/collects/games
%dir %_datadir/%name/collects/games

%files webserver
%defattr(-,root,root,-)
%_bindir/plt-web-server
%_datadir/%name/collects/web-server
%dir %_datadir/%name/collects/web-server

%files devel
%defattr(-,root,root,-)
%_includedir/%name/*
%{_libdir}/%{name}/buildinfo
%dir %_includedir/%name

%files -n drracket
%defattr(-,root,root,-)
%_bindir/drracket
%_bindir/gracket
%_bindir/gracket-text
%_bindir/mred
%_bindir/mred-text
%_bindir/pdf-slatex
%_bindir/plt-help
%_bindir/slatex
%_bindir/slideshow

%_mandir/man1/drracket*
%_mandir/man1/gracket*
%_mandir/man1/mred*
%_mandir/man1/plt-help*
%_datadir/%name/collects/2htdp
%_datadir/%name/collects/algol60
%_datadir/%name/collects/browser
%_datadir/%name/collects/datalog
%_datadir/%name/collects/defaults
%_datadir/%name/collects/deinprogramm
%_datadir/%name/collects/drracket
%_datadir/%name/collects/drscheme
%_datadir/%name/collects/embedded-gui
%_datadir/%name/collects/eopl
%_datadir/%name/collects/framework
%_datadir/%name/collects/frtime
%_datadir/%name/collects/future-visualizer
%_datadir/%name/collects/graphics
%_datadir/%name/collects/gui-debugger
%_datadir/%name/collects/help
%_datadir/%name/collects/hierlist
%_datadir/%name/collects/htdp
%_datadir/%name/collects/icons
%_datadir/%name/collects/images
%_datadir/%name/collects/lang
%_datadir/%name/collects/lazy
%_datadir/%name/collects/macro-debugger
%_datadir/%name/collects/mred
%_datadir/%name/collects/mrlib
%_datadir/%name/collects/picturing-programs
%_datadir/%name/collects/plai
%_datadir/%name/collects/plot
%_datadir/%name/collects/racklog
%_datadir/%name/collects/rackunit
%_datadir/%name/collects/redex
%_datadir/%name/collects/schemeunit
%_datadir/%name/collects/scriblib
%_datadir/%name/collects/scribblings
%_datadir/%name/collects/sgl
%_datadir/%name/collects/slatex
%_datadir/%name/collects/slideshow
%_datadir/%name/collects/stepper
%_datadir/%name/collects/string-constants
%_datadir/%name/collects/syntax-color
%_datadir/%name/collects/teachpack
%_datadir/%name/collects/test-engine
%_datadir/%name/collects/texpict
%_datadir/%name/collects/typed-racket
%_datadir/%name/collects/typed-scheme
%_datadir/%name/collects/typed
%_datadir/applications/drracket.desktop
%_datadir/pixmaps/drracket.png

%changelog
openSUSE Build Service is sponsored by