commit 2a66e01b0db27adccf8d31da7e0798ee89f5dd058041f5ac5bdc84e264cb8f9d Author: OBS User mrdocs Date: Tue Feb 5 18:30:59 2013 +0000 Accepting request 151137 from home:toganm:testing Racket is Lisp/scheme like language comes with lots goodies with packages helping to learn programming or develop applications. The intention is to submit Racket to Factory, so it can be part of the next release after 12.3 Thanks Togan OBS-URL: https://build.opensuse.org/request/show/151137 OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/racket?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-pkg-collects-path.patch b/0001-pkg-collects-path.patch new file mode 100644 index 0000000..3825a74 --- /dev/null +++ b/0001-pkg-collects-path.patch @@ -0,0 +1,33 @@ +From bb3373b08eef415cb3533a6a9b8e1b8c54c79e4e Mon Sep 17 00:00:00 2001 +From: David Bremner +Date: Mon, 25 Apr 2011 07:32:21 -0300 +Subject: [PATCH] pkg/collects-path + +Patch configure script to set collectsdir to /usr/share/racket/collects. + +collectsdir is hardcoded to ${libdir}/collects in the configure +script, but we want to install the collects (which are mostly +arch-independent) into /usr/share, and symlink the small number of +exceptions into /usr/lib/racket/collects/$foo + +Signed-off-by: David Bremner +--- + src/configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/configure b/src/configure +index 64a8fef..6861d54 100755 +--- a/src/configure ++++ b/src/configure +@@ -2264,7 +2264,7 @@ else + prefix="${ac_default_prefix}" + fi + libpltdir="${libdir}/racket" +- collectsdir="${libdir}/racket/collects" ++ collectsdir="${datadir}/racket/collects" + includepltdir="${includedir}/racket" + docdir="${datadir}/racket/doc" + MAKE_COPYTREE=copytree +-- +1.7.10 + diff --git a/drracket.desktop b/drracket.desktop new file mode 100644 index 0000000..08273a6 --- /dev/null +++ b/drracket.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=DrRacket +Categories=Development;IDE; +GenericName=Scheme programming +Comment=Programming environment for the Scheme programming language +Exec=drracket +Terminal=false +Icon=drracket +Type=Application +Encoding=UTF-8 diff --git a/drracket.png b/drracket.png new file mode 100644 index 0000000..47215ed --- /dev/null +++ b/drracket.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e902d7be3d63fbabe5ca3fb1ca94290694f70bdf259501cd85f372156a7599a +size 6717 diff --git a/racket-5.3.2-src-unix.tgz b/racket-5.3.2-src-unix.tgz new file mode 100644 index 0000000..acbf197 --- /dev/null +++ b/racket-5.3.2-src-unix.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfbb4d305388c23bd80352a18b19a3746a8e402a23e0081416cd6f61b55701fb +size 18903002 diff --git a/racket-5.3.rpmlintrc b/racket-5.3.rpmlintrc new file mode 100644 index 0000000..fc4a530 --- /dev/null +++ b/racket-5.3.rpmlintrc @@ -0,0 +1 @@ +addFilter("unexpanded-macro /usr/share/racket/collects/srfi/") diff --git a/racket-completion.bash b/racket-completion.bash new file mode 100644 index 0000000..b3e682f --- /dev/null +++ b/racket-completion.bash @@ -0,0 +1,181 @@ +# -*- mode: shell-script; sh-basic-offset: 2; indent-tabs-mode: nil -*- +# ex: ts=2 sw=2 noet filetype=sh + +# To enable this, add the following line to ~/.bash_completion +# +# source $PLTHOME/collects/meta/contrib/completion/racket-completion.bash +# +# Change $PLTHOME to whatever references your Racket installation. You +# will need to make sure that you have bash completions enabled, usually +# with "source /etc/bash_completion". + +# This completes only *.{rkt,ss,scm,scrbl} files unless there are none, +# in which case it completes other things. +_racket_filedir() { + COMPREPLY=() + _filedir "@(rkt|rktl|ss|scm|scrbl)" + if [[ "${#COMPREPLY[@]}" -eq 0 ]]; then _filedir; fi +} + +_find_exe() { + local exename="$1" + local dir="$(dirname "${COMP_WORDS[0]}")" + local exe="$(basename "${COMP_WORDS[0]}")" + if [[ "$dir" != "." || "${COMP_WORDS[0]}" = "$dir/$exe" ]]; then + echo "$dir/$exename" + else + echo "$exename" + fi +} + +_racket() { + local cur prev singleopts doubleopts + COMPREPLY=() + cur="$(_get_cword)" + prev="${COMP_WORDS[COMP_CWORD-1]}" + doubleopts="--help --version --eval --load --require --lib --script" + doubleopts+=" --require-script --main --repl --no-lib --version --warn" + doubleopts+=" --syslog --collects --search --addon --no-compiled" + doubleopts+=" --no-init-file" + singleopts="-h -e -f -t -l -p -r -u -k -m -i -n -v -W -L -X -S -A -I -U" + singleopts+=" -N -j -d -b -c -q" + warnlevels="none fatal error warning info debug" + + # if "--" is already given, complete all kind of files, but no options + for (( i=0; i < ${#COMP_WORDS[@]}-1; i++ )); do + if [[ "${COMP_WORDS[i]}" == "--" ]]; then _racket_filedir; return; fi + done + + # -k takes *two* integer arguments + if [[ 2 < "${#COMP_WORDS[@]}" ]]; then + if [[ "${COMP_WORDS[COMP_CWORD-2]}" == "-k" ]]; then return; fi + fi + + case "$cur" in + "--"* ) + COMPREPLY=( $(compgen -W "$doubleopts" -- "$cur") ) + ;; + "-"* ) + COMPREPLY=( $(compgen -W "$singleopts" -- "$cur") ) + ;; + * ) + case "$prev" in + # these do not take anything completable as arguments + "--help" | "-h" | "-e" | "--eval" | "-p" | "-k" ) + ;; + # these take dirs (not files) as arguments + "-X" | "-S" | "-A" | "--collects" | "--search" | "--addon" ) + _filedir -d + ;; + # these take warnlevels as arguments + "-W" | "--warn" | "-L" | "--syslog" ) + COMPREPLY=( $(compgen -W "$warnlevels" -- "$cur") ) + ;; + # otherwise, just a file + * ) + _racket_filedir + ;; + esac + ;; + esac +} + +complete -F _racket racket +complete -F _racket gracket +complete -F _racket gracket-text + +_raco_cmd="$(_find_exe "raco")" + +_raco_planet() { + local cur="${COMP_WORDS[COMP_CWORD]}" + local planetcmds=$( + printf '%s\n' "--help" + "${_raco_cmd}" planet --help 2>&1 | awk '/^ *raco planet / { print $3 }' + ) + COMPREPLY=( $(compgen -W "$planetcmds" -- "$cur") ) +} + +_raco_cmds=$() +_racket_cmd="$(_find_exe "racket")" + +_raco_help() { + local cur="${COMP_WORDS[COMP_CWORD]}" + if [[ ${#_raco_cmds[@]} -eq 0 ]]; then + _raco_cmds=$( + echo "help" + "$_racket_cmd" -e '(begin (require raco/all-tools) + (for ([(k v) (all-tools)]) (printf "~a\n" k)))' + ) + fi + COMPREPLY=( $(compgen -W "$_raco_cmds" -- "$cur") ) +} + +_racket_collects_dirs=() + +_complete_collects() { + local cur="$1" + if [[ "${#_racket_collects_dirs[@]}" -eq 0 ]]; then + _racket_collects_dirs=( + $( $_racket_cmd -e + '(for-each displayln (current-library-collection-paths))' ) + ) + fi + local wordlist="" + for dir in "${_racket_collects_dirs[@]}"; do + wordlist="$wordlist $(for x in $(compgen -d "$dir"); do basename "$x"; done)" + done + COMPREPLY=( $(compgen -W "$wordlist" -- "$cur") ) +} + +_raco_setup() +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + local prev="${COMP_WORDS[COMP_CWORD-1]}" + + if [[ "$COMP_CWORD" -eq 2 ]]; then + _complete_collects ${cur} + else + case "${prev}" in + # specifying a particular collection + "-l" ) _complete_collects "$cur" ;; + * ) _filedir ;; + esac + fi +} + +_raco() { + COMPREPLY=() + local cur="${COMP_WORDS[COMP_CWORD]}" + + # + # Complete the arguments to some of the basic commands. + # + local makeopts="--disable-inline --no-deps -p --prefix --no-prim -v -vv --help -h" + + if [[ "$COMP_CWORD" -eq 1 ]]; then + # removing the empty string on the next line breaks things. such as my brain. + _raco_cmds="$( + echo "help" + $_racket_cmd -e '(begin (require raco/all-tools) + (for ([(k v) (all-tools)]) (printf "~a\n" k)))')" + COMPREPLY=($(compgen -W "$_raco_cmds" -- "$cur")) + elif [[ "$COMP_CWORD" -ge 2 ]]; then + # Here we'll handle the main raco commands + local prev="${COMP_WORDS[1]}" + case "$prev" in + "make" ) + case "$cur" in + "-"* ) COMPREPLY=( $(compgen -W "$makeopts" -- "$cur") ) ;; + * ) _filedir ;; + esac ;; + "planet" ) _raco_planet ;; + "help" ) _raco_help ;; + "setup" ) _raco_setup ;; + * ) _filedir ;; + esac + else + _filedir + fi +} + +complete -F _raco raco diff --git a/racket.changes b/racket.changes new file mode 100644 index 0000000..03bf17b --- /dev/null +++ b/racket.changes @@ -0,0 +1,94 @@ +------------------------------------------------------------------- +Fri Feb 1 11:16:05 UTC 2013 - toganm@opensuse.org + +- Update to 5.3.2 release for details see changelog.txt and News + + * Changed case to use equal? instead of eqv? + * Changed log-message to support a name argument + * Changed the synchronization result of a log receiver to include an + event name + * Added exn:fail:filesystem:errno and exn:fail:network:errno + * Added phantom byte strings + * Added 'word mode to system-type + * Added arguments to impersonate-prompt-tag and chaperone-prompt-tag + to support interposition on non-composable continuation results + * Add #fx() and #fl() reader forms for flvectors and fxvectors + * racket/unsafe/ops: added unsafe-cons-list + * racket/gui: added get-current-mouse-state, and added + display-changed to frame% + * racket/serialize: fxvectors and flvectors are serializable + * racket/net: added uri-path-segment-unreserved-encode + * racket/url: added current-url-encode-mode + * racket/date: fixed 'iso-8601 date formatting + * scribble/tag: added + * scribble/base: added make-section-tag, taglet? + r5rs, r6rs: fixed case and cond to disallow internal definitions + in clauses + * ffi/com: added com-get-property* + * file/untar: added + * file/untgz: added + * file/unzip: added + * compiler/zo-structs: generalize flonum? field to type + field in localref, let-one, and fun + * compiler/zo-structs: added a constantness field to module-variable + +------------------------------------------------------------------- +Thu Nov 8 09:28:40 UTC 2012 - toganm@opensuse.org + +- Update to 5.3.1 release for details see changelog and News + + * Changed make-log-receiver to accept a logger name as an event + filter + * Addded define-logger + * Changed -W, -L, PLTSTDERR, and PLTSYSLOG to support log filters + of the form " = ..." + * Changed log-error, etc., to support format mode + * Added racket/format, which is re-exported by racket + * Added #:break and #:final clauses to for forms + * Added exn:break:hang-up and exn:break:terminate, added extra + argument to break-thread and place-break, and redirect SIGTERM + and SIGHUP as breaks + * Add #:fill option to for/vector, for*/vector, for/flvector, + for*/flvector, for/fxvector, and for*/fxvector + * Added PLTCOMPILEDROOTS and --compiled/-R command-line flag + * Added reroot-path + * Changed a thread's initial prompt to use the default handler + (instead of accepting and ignoring abort arguments) + * ffi/unsafe: added cpointer-gcable? + * racket/class: added dynamic-get-field and dynamic-set-field! + * racket/set: added set-first and set-rest, sets are streams + * racket/require-transformer: an import's module path can be syntax + * scribble/base: add items/c + * scribble/decode: add spliceof + * syntax/for-body: added + +- drop racket-glibc-2.16.patch + +------------------------------------------------------------------- +Thu Oct 11 15:10:49 UTC 2012 - toganm@opensuse.org + +- enabled documentation + +------------------------------------------------------------------- +Wed Aug 8 08:03:24 UTC 2012 - toganm@opensuse.org + +- Update to official 5.3 release + +------------------------------------------------------------------- +Wed Aug 1 10:18:40 UTC 2012 - toganm@opensuse.org + +- split packaging + +------------------------------------------------------------------- +Thu Jul 26 22:34:05 UTC 2012 - toganm@opensuse.org + +- Use the upcoming version 5.3.0.16 from nightly builds + * add racket.desktop + * disable documentation as it breaks the build +- TODO + * fix the rpmlint warnings for srfi + +------------------------------------------------------------------- +Tue May 1 14:08:37 UTC 2012 - toganm@opensuse.org + +- Initial packaging for racket-lang diff --git a/racket.spec b/racket.spec new file mode 100644 index 0000000..f050b51 --- /dev/null +++ b/racket.spec @@ -0,0 +1,380 @@ +# +# spec file for package racket +# +# 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.2 +Release: 0 +Summary: Scheme implementation with teaching tools +License: LGPL-2.1+ +Group: Development/Languages/Scheme +Url: http://racket-lang.org +Source0: %name-%version-src-unix.tgz +Source1: drracket.desktop +Source2: racket-completion.bash +Source3: racket-5.3.rpmlintrc +Source4: drracket.png +# PATCH-FIX-OPENSUSE taken from debian package author David Bremner +Patch0: 0001-pkg-collects-path.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: chrpath +BuildRequires: desktop-file-utils +BuildRequires: fdupes +BuildRequires: gcc-c++ +BuildRequires: libjpeg-devel +BuildRequires: update-desktop-files +BuildRequires: ImageMagick +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(ice) +BuildRequires: pkgconfig(libffi) +BuildRequires: libpng-devel +BuildRequires: librsvg-devel +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(openssl) +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) +BuildRequires: pkgconfig(pixman-1) >= 0.22.0 +BuildRequires: ghostscript-fonts-std +%if 0%{?suse_version} == 1220 +BuildRequires: libexpat1 +%endif + +# 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 + +%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 ) <