commit 3170f77f5eb87c80f2708ca2146cd6d1f773607595984aba8ef7c2929d9d6fc3 Author: Fred Fu Date: Tue Jun 4 15:15:25 2024 +0000 Accepting request 1169536 from home:cboltz:branches:devel:languages:misc - add mzdyn3m.o which gets built on s390x (possibly replacing mzdyn3m.lo) This time I even have a successful build :-) (see openSUSE_Factory_zSystems) As a side note: there is a very long time in the build without any output: [ 13s] cc -O2 -DZUO_LIB_PATH='"'".././zuo/lib"'"' -o bin/zuo ./zuo/zuo.c [ 9616s] bin/zuo . all MAKE="/usr/bin/make" Depending on the load on the mainframe, this time can even be longer, and causes the build to abort because there's no output for a very long time. From the openSUSE_Factory / s390x build log (which seems to have a shorter timeout of "only" 90 minutes): [ 12s] cc -O2 -DZUO_LIB_PATH='"'".././zuo/lib"'"' -o bin/zuo ./zuo/zuo.c [ 5417s] qemu-system-s390x: terminating on signal 15 from pid 99276 () If there is a way to make that cc call faster and/or more verbose, please do it ;-) OBS-URL: https://build.opensuse.org/request/show/1169536 OBS-URL: https://build.opensuse.org/package/show/devel:languages:misc/racket?expand=0&rev=86 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/_constraints b/_constraints new file mode 100644 index 0000000..4b58efc --- /dev/null +++ b/_constraints @@ -0,0 +1,31 @@ + + + kvm + SLOW_CPU + + 4 + + 4 + + + 6 + + + 1 + + + + + i586 + x86_64 + + + + mmx + sse + sse2 + ssse3 + + + + diff --git a/racket-8.13-src.tgz b/racket-8.13-src.tgz new file mode 100644 index 0000000..e94e283 --- /dev/null +++ b/racket-8.13-src.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:001e04920440b6589cf62d5677d18cc2ff6ae8fbaf77e63b8a8cf20890685fbc +size 34088892 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-doc.patch b/racket-doc.patch new file mode 100644 index 0000000..95eb07e --- /dev/null +++ b/racket-doc.patch @@ -0,0 +1,16 @@ +--- + share/pkgs/scribble-lib/help/search.rkt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- share/pkgs/scribble-lib/help/search.rkt ++++ share/pkgs/scribble-lib/help/search.rkt +@@ -47,7 +47,8 @@ + ;; Doesn't exist, but notify and then fall back below: + (build-path (find-doc-dir) sub))) + (notify path) +- (if (file-exists? path) ++ (if (and (file-exists? path) ++ (file-exists? (build-path (find-doc-dir) "docindex.sqlite"))) + (send-url/file path #:fragment fragment #:query query) + (let ([part (lambda (pfx x) (if x (string-append pfx x) ""))]) + (send-url (string-append diff --git a/racket-rpmlintrc b/racket-rpmlintrc new file mode 100644 index 0000000..21d527d --- /dev/null +++ b/racket-rpmlintrc @@ -0,0 +1,6 @@ +addFilter(".*E:.*explicit-lib-dependency.*lib.*") +addFilter(".*E:.*zero-length.*") +addFilter(".*W:.*hidden-file-or-dir.*/usr/share/racket/pkgs/.LOCKpkgs.rktd") +addFilter(".*E:.*script-without-shebang.*/starter-sh.*") +addFilter(".*E:.*script-without-shebang.*/setup-core.*") +addFilter(".*E:.*non-executable-script.*/usr/share/racket/pkgs/htdp-lib/2htdp/uchat/xrun.*") diff --git a/racket.changes b/racket.changes new file mode 100644 index 0000000..97efd39 --- /dev/null +++ b/racket.changes @@ -0,0 +1,862 @@ +------------------------------------------------------------------- +Fri May 24 13:46:41 UTC 2024 - Martin Schreiner + +- Update to 8.13. + +- Changes from 8.13: + * The racket/treelist and racket/mutable-treelist libraries provide + list-like containers that support many operations in effectively + constant time, including appending and extracting sub-lists without + mutating the given list. Treelists are implemented as RRB Vectors, + invented by Stucki, Riompf, Ureche, and Bagwell. + + * The hash-filter-keys and hash-filter-values functions allow users + to filter hashes using a predicate on either keys or values. + + * The vector-extend and vector*-extend functions provide a way to + pre-populate the prefix of a newly allocated vector using the + elements of an existing vector. + + * Command-line raco setup, package update, and package installation + use terminal control (when available) to show what they are working + on more compactly and with a progress bar. + + * Racket v8.13 uses Unicode 15.1 for character and string + operations. + + * Machine-specific cross-module optimization allows improved support for + static generation of foreign-function bindings. + + * The scribble/acmart language uses v2.01, which avoids errors + concerning the hyperref package in some latex installations. + +- Changes from 8.12: + * The "Die Macht der Abstraktion" language levels are no longer + present, replaced by the "Schreibe dein Programm" language levels + which have been available for several years. + + * The release fixes a problem with the binding structure of the + for/fold form in the rare situation when an iteration clause + identifier shadowed an accumulator identifier. This change may break + code that depends on the old binding structure. + + * Racket automatically sets the close-on-exec flag when opening a file, on + systems where this is available. This change lowers the cost of avoiding + problems that can occur when file descriptors become accidentally shared + between processes. + + * Match includes hash and hash* patterns. + + * The vector-set/copy function allows creation of a new vector that + differs at only one index. This change also adds vector-append and + vector-copy primitives. + + * The pregexp-quote function brings the functionality of + regexp-quote to pregexps. + + * The C FFI convention-based converter supports PascalCase and + camelCase in addition to an underscore-based convention. + + * The racket/case library allows case-like forms that use different + equality comparisons, such as eq? and equal-always?. + + * Scribble rendering to HTML adds linking and information buttons + when hovering over heading titles. + + * The interval-map data structure supports iterator functions in the + style of gen:ordered-dict. + +------------------------------------------------------------------- +Sun Apr 21 12:57:42 UTC 2024 - Christian Boltz + +- add mzdyn3m.o which gets built on s390x (possibly replacing mzdyn3m.lo) + +------------------------------------------------------------------- +Sun Apr 7 16:45:21 UTC 2024 - Christian Boltz + +- mzdyn3m.lo no longer gets built for s390x, remove it from %files + +------------------------------------------------------------------- +Fri Feb 23 11:29:47 UTC 2024 - Dominique Leuenberger + +- Use %autosetup macro. Allows to eliminate the usage of deprecated + %patchN. + +------------------------------------------------------------------- +Sat Dec 16 09:35:49 UTC 2023 - Dirk Müller + +- update to 8.11.1: + * This bug-fix release repairs a problem with building from source + when using the “builtpkgs” source distribution + +------------------------------------------------------------------- +Wed Nov 15 18:17:43 UTC 2023 - Fred Fu + +- Update to 8.11: + + * Match clauses can include a #:do option to allow evaluation of code and + bindings before a following #:when clause. + + * JSON Serialization supports indentation with an #:indent option to + write-json. Cf. https://docs.racket-lang.org/json/index.html#%28def._%28%28lib._json%2Fmain..rkt%29._write-json%29%29 + + * An initiate-sequence function simplifies the creation of + sequences. Cf. https://docs.racket-lang.org/reference/sequences.html#%28def._%28%28lib._racket%2Fsequence..rkt%29._initiate-sequence%29%29 + + * The :do-in form allows an inner definition + sequence. Cf. https://docs.racket-lang.org/reference/for.html#%28form._%28%28lib.racket%2Fprivate%2Fbase..rkt%29.~3ado-in%29%29 + + * The redex-define form allows pattern-matching in PLT Redex using a + define-like syntax. + Cf. https://docs.racket-lang.org/redex/reference.html#%28form._%28%28lib._redex%2Freduction-semantics..rkt%29._redex-define%29%29 + + * Racket and Chez Scheme use Robert L. Smith’s “Algorithm 116” for division of + complex numbers. Cf. https://dl.acm.org/doi/10.1145/368637.368661 + + * DrRacket has indentation guides that provide visual cues indicating how code + is indented and grouped, accessible by using (-shift-i). + + * “Comment-out” menu items can be specific to the #lang used by the current + file. + Cf. https://docs.racket-lang.org/framework/Text.html#%28def._%28%28lib._framework%2Fmain..rkt%29._text~3aindent-guides~3c~25~3e%29%29 + + * Unused identifiers have a tooltip indicating that they have no bound + occurrences. + + * Quickscript includes a new form of scripting in the form of “hook” functions + that can be attached to existing + events. Cf. https://docs.racket-lang.org/quickscript/index.html#%28part._.Hooks%29 + + * Plots include plot-inset and plot-legend-padding parameters to control the + amount of space left unused around the plot edge and plot + legend. Cf. https://docs.racket-lang.org/plot/params.html#%28def._%28%28lib._plot%2Fmain..rkt%29._plot-inset%29%29 + + * There are many other documentation improvements, optimizations, and bug fixes! + +------------------------------------------------------------------- +Fri Aug 18 20:18:56 UTC 2023 - Matthias Eliasson + +- Update to 8.10: + * syntax/parse no longer always compiles its patterns; this release + includes an interpreter which is used to reduce code size + * Racket includes primitives [im]mutable-string?, [im]mutable-bytes?, + [im]mutable-vector?, [im]mutable-box?, and [im]mutable-hash? + (cf. + https://docs.racket-lang.org/reference/booleans.html#%28mod-path._racket%2Fmutability%29) + * Redex adds judgment-form->rule-names (cf. + https://docs.racket-lang.org/redex/reference.html#%28def._%28%28lib._redex%2Freduction-semantics..rkt%29._judgment-form-~3erule-names%29%29) + * Fasl and compiled code allow fxvectors and flvectors + * DrRacket allows #lang-specific customization of the definition + navigation popdown (cf. + https://docs.racket-lang.org/tools/drracket_language.html#%28idx._%28gentag._55._%28lib._scribblings%2Ftools%2Ftools..scrbl%29%29%29) + * Racket and DrRacket include Finnish internationalization + * Check Syntax binding arrows are drawn for names bound with + define-local-member-name + * Many other improvements and bug fixes are included, including to + the scribble and plot packages +- Remove config.sub since the fix is now included in upstream release + +------------------------------------------------------------------- +Sun May 13 15:17:43 UTC 2023 - Fred Fu +- Update to 8.9: + * The HtDP student languages come with checked signatures. Programmers can + express signatures in a formal notation, and these signatures are checked at + run-time (in a performance-neutral manner). The addition of this formal + language associates meaning with several names that had no meaning before. — + This feature is experimental, and we may amend or retract it later. (cf. 2 + Beginning Student with List Abbreviations 27) + + * Switching into and out of dark mode is handled better on Mac OS and Linux. + + * Racket uses Unicode 15.0 for character and string operations. + + * The racket/hash-code library provides support for combining hash + codes. (cf. 4.1 Equality 5) + + * A language module can have a configure-expand submodule that is dynamically + required to configure a parameterization before expansion of another + module. (cf. 18.1 Running Racket or GRacket 1) + + * stream-cons supports multiple values. (cf. 4.16.2 Streams 5) + + * unit/c subcontracts may depend on bindings from any imported or exported + signature. Additionally, bindings’ contracts are enforced within + subcontracts, and violations blame the contract itself (like ->i). (cf. 7.9 + Unit Contracts 2) + + * racket/class provides the dynamic-instantiate procedure for instantiating a + class with a dynamic list of by-name initialization arguments. (cf. 6.3 + Creating Objects 2) + + * TCP output block buffering implies TCP_NODELAY. (cf. 15.3.1 TCP 3) + + * Submodules and Check Syntax require arrows work better together. + + * Typed Racket's shallow check generation is improved. + + * Many other improvements and bug fixes are included! + +------------------------------------------------------------------- +Wed Feb 15 21:17:43 UTC 2023 - Fred Fu +- Update to 8.8: + * The dependent contract form, ->i, supports a #:param element that specifies + dependencies for parameter values that are set during the dynamic extent of + the function call. + + * The copy-file library function supports permission-management arguments. + + * Pressing -return in DrRacket’s interactions window makes it easier to + edit and enter expressions without sending them to be evaluated. + + * The numeric comparison operators (=, etc.) require at least two arguments in + the “How To Design Programs” teaching languages. + + * Redex has improved typesetting when customized renders are used in certain + multi-line situations. + + * We have fixed many bugs, and written lots of documentation. + +------------------------------------------------------------------- +Wed Dec 14 09:55:06 UTC 2022 - Andreas Schwab + +- Update config.sub from upstream + +------------------------------------------------------------------- +Mon Dec 5 10:17:43 UTC 2022 - Fred Fu +- Update to 8.7: + * Typed Racket offers Shallow and Optional modes for its gradual + types. These modes lower the cost of interacting with untyped code, + but provide less protection against buggy interactions. + + * Racket uses Unicode 14.0 for character and string operations, and + includes grapheme operations. DrRacket supports emojis. + + * Racket supports RV64G (RISC-V). + + * Programmers can disable definition shadowing using + `(#%declare #:require=define)`. + + * The module dependency graphs available using raco dependencies-graph + and DrRacket's Module browser are faster and have new package + filtering support. + + * DrRacket is more responsive when killing programs that produce a lot + of output. + + * Plot 3D allows negative altitude values (e.g., looking at the plot + from "below"). + + * The `scriblib/bibtex` and `scriblib/autobib` libraries support DOIs. + + * There are many other repairs and improvements! + +------------------------------------------------------------------- +Thu Aug 18 10:17:43 UTC 2022 - Andreas Schwab + +- Fix file list + +------------------------------------------------------------------------- +Fri Aug 12 21:26:11 UTC 2022 - Fred Fu + +- Update to 8.6: + * Racket has an “equal-always?” primitive that equates values that will stay + the same even if mutated. See + https://docs.racket-lang.org/reference/Equality.html#%28def.%28%28quote.~23~25kernel%29._equal-always~3f%29%29 + + * This release uses a new build system, Zuo, which is implemented as a little + language, in accordance with the ideas of Language Oriented Programming + (LOP). The implementation has a single C file (plus libraries implemented in + Zuo), so it compiles easily. The zuo/build library is modeled on make and + Shake for tracking dependencies and build steps. See + https://docs.racket-lang.org/zuo/index.html and + https://racket.discourse.group/t/new-build-system-pushed-to-git-repo/873 + + * Racket supports stencil vectors, which associate a virtual bitmask with a + vector, enabling certain mask-equipped update operations. See + https://docs.racket-lang.org/reference/stencil_vectors.html + + * Racket supports Arm64 machines running Windows. + + * Redex has support for simultaneous substitutions. See + https://docs.racket-lang.org/redex/reference.html#%28form._%28%28lib._redex%2Freduction-semantics..rkt%29._substitute%29%29 + + * The Web Server provides control over the maximum number of concurrent + connections via its “safety limits” construct. See + https://docs.racket-lang.org/web-server-internal/dispatch-server-unit.html#%28part._safety-limits%29 + + * The Web Server has improved logging performance and improved request parsing performance, reducing tail latencies. + + * The Web Server supports logging response status code via + web-server/dispatchers/dispatch-logresp. See + https://docs.racket-lang.org/web-server-internal/dispatch-logresp.html + + * The db library supports custom types for PostgreSQL connections; see + pg-custom-type for details. See + https://docs.racket-lang.org/db/util.html#%28def._%28%28lib._db%2Futil%2Fpostgresql..rkt%29._pg-custom-type%29%29 + + * The release includes many other repairs and changes! + +- Remove patch racket-amsmath-mathabx.patch, since the conflict between modern + amsmath and mathabx LaTeX styles has been resolved in the upstream + +------------------------------------------------------------------- +Thu Jun 9 07:01:25 UTC 2022 - Dr. Werner Fink + +- Add patch racket-amsmath-mathabx.patch + * Avoid conflict between modern amsmath and mathabx LaTeX styles to + get e.g. scsh build again + +------------------------------------------------------------------------- +Sun May 8 18:26:11 UTC 2022 - Fred Fu +- Update to 8.5: + * Racket's new `-y` flag automatically keeps compiled files up to date, + reducing subsequent load times. + + * Error-message realms allow Racket-hosted languages to adapt and + rewrite error messages to make sense in a particular context. + + * Nonprivileged users can control package installation scope using an + "other-version" directory in the addon-dir. + + * Racket CS runs on platforms where native-code generation is not + currently supported (e.g., s390x or ppc64). See "README.txt" in the + source distribution for more information on the --enable-pb flag to + configure. + + * DrRacket's new 'Reopen Closed Tab' file menu item will open previously + closed tabs. + + * Typed Racket has support for the `xml` library; use `typed/xml`. + + * Rackunit reports source locations for failed test cases in the + Typed Racket language. + + * Plot has violin plots and improved box-and-whisker plots. + + * Boxes are supported alongside lists, vectors etc. in place-channel + messages. + + * Those who manually configure Racket CS to use Zlib compression for + compiled code should be aware of CVE-2018-25032; the next release and + the current snapshot builds use a newer, safer version of zlib. + + * The release includes many other repairs and changes! + +- Spec changes: + * add google-roboto-fonts to the build dependencies. Fonts are required for + the following two cases: 1. making scribble documents 2. compiling programs + that depend on font-related library (e.g. racket/draw) at compile time. + +------------------------------------------------------------------- +Sat Apr 16 15:26:11 UTC 2022 - Fred Fu +- Fix bug for boo#1198475 + * add a new build dependency, `ncurses-devel`, to enable `expeditor` + +------------------------------------------------------------------- +Sun Mar 6 15:26:11 UTC 2022 - Fred Fu +- Update to 8.4: + * Command-line Racket provides a new expression editor by default for + its read-eval-print loop (REPL). The new REPL is based on the Chez + Scheme expression editor, but extended to use the same + language-sensitive syntax coloring and indentation tools as DrRacket. + * Typed Racket adds a kind system, preventing programmers from + writing nonsensical type expressions. It checks whether type + constructors are correctly applied to arguments, and separates + type constructors from polymorphic types. The `:kind` form enables + checking the kind of a type expression at the REPL. The new system + also correctly rejects some ill-formed recursive types. + * Racket has a `file-or-directory-stat` for unified information about + file-system objects. + * DrRacket shows the region affected by an `#;` S-expression comment + by fading the commented-out region. + * Racket on Chez has faster multiplication and division for some + numbers. + * Web server: The files dispatcher supports all standard caching-related + HTTP response headers (e.g., Cache-Control). + * Web server: A new dispatcher captures the common pattern of processing + HTTP requests and responses in a layered fashion. + * The Web Server supports use of the Cache-Control header, and includes + a new wrapping dispatcher. + * Expander: add "portal" syntax to support new forms of syntax object + binding. + * Documentation search is improved. + * Some hash operations support an optional `try-order?` argument. + * The plot-metrics interface has documentation. + * Fonts support OpenType feature settings. + * The Gui library has improved support for Wayland. + * The computation of quadratic roots is further improved. + * The `set/c` contract adds support for random generation. + * DrRacket's interactions window supports #lang-specific coloring + and indentation. + * DrRacket's parenthesis-based keyboard shortcuts change based on + the parentheses that each different #lang uses. + * The release includes many other bug repairs and other improvements! + + Transition/Update notes: + * To turn off expeditor and make Racket's REPL go back to the old + editline/readline-based editor, use the command + + ,input readline + + and then restart Racket. Get back to the new expression editor with + + ,input expeditor + + To toggle color mode for the new expression editor, use one of the + following, which does not require restarting Racket: + + ,color #false + ,color #true + + * Support for comment fading in DrRacket requires an increment to + the "WXME" format version so files with non-text content written + by DrRacket v8.4 will open only in v8.4 and later. This does not + affect files that consist only of unicode text. + * The addition of the kind system to Typed Racket means that certain + mild abuses of the type system no longer type check, most notably + the 'application' of a polymorphic type. + +- Spec changes: + * fix the path to locate a list of html files where references of + %{build-root} need to removed + * add more html files to the list above + * remove the command that deletes `.LOCKpkgs.rktd`, so users will not + have to manually create this file as a root user in order to successfully + run `raco` or `drracket`. + +- RPMlintrc changes: + * remove unused filters. + * add a filter to ignore warnings on `.LOCKpkgs.rktd` + +------------------------------------------------------------------- +Wed Dec 1 12:26:11 UTC 2021 - Fred Fu +- Update to 8.3: + * Racket removes syntax arming and disarming in favor of a simpler system of + protected syntax operations, along with other updates to the syntax system. + * DrRacket has improved support for custom #lang languages. + * Typed Racket improves precision for type-checking of non-polymorphic + structures, existential types, and certain binding forms. + * Scribble HTML output gains a button to show / hide the table of contents on + mobile platforms. + * Redex’s stepper’s GUI shows IO-judgment form rule names. + * Many bug fixes! +- Remove dont-strip.patch, since --disable-strip has been repaired or improved + in 8.3. + +------------------------------------------------------------------- +Sun Oct 10 07:26:11 UTC 2021 - Fred Fu +- Update to 8.2: + * Racket CS improved the performance of large-integer arithmetic. + * Racket has improved support for layered and tethered installation. + * Racket CS supports nonatomic allocation via ffi/unsafe. + * Cross-compilation works fully with the raco cross tool, which + is distributed separately as the “raco-cross” package. + * DrRacket has performance improvements when editing files with + picts containing large bitmaps. + * Typed Racket more consistently refines field types of + non-polymorphic structs. + * Printing of values is unified across the teaching language + implementations and the stepper. +- Rebase racket-doc.patch + +------------------------------------------------------------------- +Wed Jun 16 07:26:11 UTC 2021 - Dr. Werner Fink + +- Fix for bug boo#1187288 + * Do not remove pre-compiled and compresse object files (*.zo) as + with 8.1 those are mandatory for a functional racket installation +- Enforce the usage of the system libraries libz and liblz4 + +------------------------------------------------------------------- +Mon May 31 08:09:50 UTC 2021 - Paolo Stivanin + +- Update to 8.1: + * DrRacket tabs can be dragged, and have new close buttons. + * Racket CS supports cross-compilation using raco exe. + * Racket CS supports Android on 32-bit and 64-bit ARM processors. + * The database library supports running queries in OS threads. + * Check-Syntax arrows correctly identify the definition site of + identifiers with contracts. + * Racket CS performance has improved for structure predicates + and accessors + * Racket CS is faster at multiplying extremely large numbers + and dividing large integers. + * Racket CS allows callbacks to raise exceptions if they are + annotated with #:callback-exns?. + * New ephemeron hash tables simplify the implementation of + tables where keys can refer to values. + * Typed Racket supports for/foldr. + * The stepper works for #lang htdp/*sl. + * Struct signatures work for the ASL teaching language. + +------------------------------------------------------------------- +Tue Apr 27 11:34:54 UTC 2021 - Paolo Stivanin + +- Update to 8.0: + * Racket CS is the default implementation + (except for ppc64le and s390x) + * Racket CS has better parallel garbage collection, a 10%–30% reduction + in the size of generated code, and various targeted optimizations. + * A rewrite of the test-engine package allows the #lang versions of + teaching languages to produce linked test-failure messages. + * The release comes with a new mark-up DSL for composing text to appear + in the REPL (simple-tree-text-markup). + * Redex has an added define-overriding-judgment form and improved + error source location reporting. + * Windows scrolling speed reflects the system preference. + * The db package uses the utf8mb4 charset for MySQL connections. +- Rebase dont-strip.patch + +------------------------------------------------------------------- +Fri Aug 21 13:14:06 UTC 2020 - Paolo Stivanin + +- Update to 7.8: +* Racket CS supports AArch32 and AArch64, including places and + futures. +* Racket CS supports an "incremental" garbage-collection mode that can + eliminate long GC pauses for some applications, such as animations and + interactive games. +* Racket CS unboxes local floating-point arithmetic +* DrRacket's spell check features lower overhead and has fewer bugs. +* Web Server performance under high concurrency is better by up to an + order of magnitude +* The math library includes the Kronecker product. +* The new prop:struct-field-info property provides static information + about field names. +* In `plot`, the legend font and the plot font can be controlled + independently, and error-bars have an `#:invert?` option. +* Racket CS uses a new HAMT implementation, dramatically reducing the memory + required for immutable hash tables. +* GC callbacks are reliably called on major collections in Racket CS. + Also, Garbage collection is 10-20% faster. +* DrRacket can recover much more quickly from errors involving large + stack traces. +* Call-with-current-language allows more reliable tests for language + level code. +* Use of the Cairo library can be multi-threaded. +* DrRacket's scrolling has been made more responsive. +* DrRacket's dark mode support is improved for Mac OS and Unix. +* The Web Server provides fine-grained control over various aspects of + handling client connections (timeouts, buffer sizes, maximum header + counts, etc.) via the new "safety limits" construct. +* The Web Server's handling of large files is improved, and its + latency for long-running request handlers is reduced. + +------------------------------------------------------------------- +Tue Mar 24 13:53:40 UTC 2020 - Adrian Schröter + +- adapt _constraints, sse3 never existed, but this is not anymore + ignored in OBS + +------------------------------------------------------------------- +Tue Jul 16 07:38:56 UTC 2019 - Jonathan Brielmaier + +- Update to 7.3: + * There is a new set of teaching languages for the upcoming + German-language textbook "Schreibe Dein Programm!" + * Racket's IO system has been refactored to improve performance + and simplify internal design. + * Racket's JSON reader is dramatically faster. + * The `plot` library includes color map support for renderers. + * The Racket web library has improved support for 307 redirects. + * The Racket web server provides better response messages by default + for common status codes. + * The `pict` library includes a `shear` function. +- remove patches: + * extflvector-length-inlined.patch: included in release +- clean up spec file + * %foo -> %{foo} + * remove %defattr + * multiple other smaller clean ups + +- Remove extflvector-length-inlined.patch + +------------------------------------------------------------------- +Wed Apr 3 14:22:44 UTC 2019 - Andreas Schwab + +- dont-strip.patch: don't strip libraries + +------------------------------------------------------------------- +Mon Apr 1 11:32:05 UTC 2019 - Dr. Werner Fink + +- Add patch extflvector-length-inlined.patch from upstream commit + 80f84f21 to get extflvector-length work even on i586 +- Add patch racket-doc.patch to be able to split package into + main and doc pacakges + +------------------------------------------------------------------- +Fri Mar 29 12:55:43 UTC 2019 - Dr. Werner Fink + +- Spec file clean up +- Try to get it work on some ix86 CPU versions + +------------------------------------------------------------------- +Wed Mar 27 18:12:23 UTC 2019 - Dr. Werner Fink + +- Require some missed libraries and certificates for build + as well as for installation even if rmplint cries +- Update to racket 7.2 + * The contract system supports collapsible contracts, which avoid + repeated wrappers in certain pathological situations. Thanks to Daniel + Feltey. + * Quickscript, a scripting tool for DrRacket, has become part of the + standard distribution. Thanks to Laurent Orseau. + * The web server's built-in configuration for serving static files + recognizes the ".mjs" extension for JavaScript modules. + * The `data/enumerate` library supports an additional form of + subtraction via `but-not/e`, following Yorgey and Foner's ICFP'18 + paper. Thanks to Max New. + * The `letrec.rkt` example model in Redex has been changed to more + closely match Racket, which led to some bug fixes in Racket's + implementation of `letrec` and `set!`. + * The racklog library has seen a number of improvements, including fixes + to logic variable binding, logic variables containing predicates being + applicable, and the introduction of an `%andmap` higher-order predicate. + +------------------------------------------------------------------- +Thu Nov 29 22:02:09 UTC 2018 - Tomasz Olszewski + +- Downgrade to Racket 7.1 + * 7.1.0.1 was only a snapshot release and is already gone from + Racket mirrors + +------------------------------------------------------------------- +Sat Oct 13 17:43:25 UTC 2018 - sean@suspend.net + +- Update to Racket 7.1.0.1 + * Syntax (#') now supports new template subforms: ~@ and ~? + * Interactive overlays can be added to plots produced by plot-snip + * Added contrcat-equivalent?, a way to compare contracts + * Lazy Racket supports functions with keyword arguments + + +------------------------------------------------------------------- +Mon Jun 25 09:43:21 UTC 2018 - schwab@suse.de + +- gc-aarch64.patch: remove obsolete patch, this GC implementation is no + longer used. + +------------------------------------------------------------------- +Wed Dec 27 08:46:28 UTC 2017 - kgronlund@suse.com + +- Update to Racket 6.11 + * Typed Racket supports refinement types and dependent function types. + * DrRacket’s Program Contour is significantly more efficient + * The web-server/formlets library produces formlets that are serializable + * The db library supports the Cassandra database +- Ensure more system resources when building package + +------------------------------------------------------------------- +Sun Sep 24 21:10:21 UTC 2017 - olszewst@gmail.com + +- Racket version bumped to 6.10.1. +- Spec changes + * Drop --collectsdir in %configure in favour of --prefix (%configure + would fail otherwise) + * Drop 0-size file guard. This used to delete lock files (LOCKpkgs.rktd) + lack of which would result in errors in many contexts, including + basic usage of both DrRacket and raco (package manager) + * Drop %_datadir/%name/collects from %dir, because parent folder is already + included in another %dir entry. This fixes a warning about collects folder + being listed twice. + * Added reference to starter-sh. + * Drop DrRacket's -singleInstance option from %suse_update_desktop_file. This + option caused error messages coming from %suse_update_desktop_file itself. + +------------------------------------------------------------------- +Sat Mar 11 22:37:03 UTC 2017 - sfalken@opensuse.org + +- Edited %files to explicity package %{_docdir}/%{name} to clear + unpackaged files builderror in openSUSE:Factory + +------------------------------------------------------------------- +Fri Jul 29 09:00:45 UTC 2016 - jengelh@inai.de + +- Guard 0-size deletion by -type f, as other types can have + size 0 too. Run spec-beautifier to bring (almost) all macro uses + into same style. + +------------------------------------------------------------------- +Mon Jul 25 00:10:49 UTC 2016 - kgronlund@suse.com + +- Update to Racket 6.6 + +------------------------------------------------------------------- +Sat May 3 01:37:00 UTC 2014 - MihailJP + +- Spec changes + * Collection 'config' should be included in main package + +------------------------------------------------------------------- +Sun Aug 11 20:59:59 UTC 2013 - schwab@suse.de + +- gc-aarch64.patch: add support for aarch64 + +------------------------------------------------------------------- +Sat Aug 10 13:58:09 UTC 2013 - toganm@opensuse.org + +- Update to Racket 5.3.6 + * This is a bug fix release. It eliminates errors from v5.3.5 + that people have found over the summer. +- Spec changes + * remove libpng16.patch and libpng16-adjustment.patch + * rather then use of mirrors for source downloads use the main + site as mirrors are not uptodate + +------------------------------------------------------------------- +Tue Jun 18 12:13:38 UTC 2013 - toganm@opensuse.org + +- Update to Racket v5.3.5 + + * This is a special-purpose release to match the arrival of "Realm of + Racket" in bookstores. Racket v.5.3.5 adds a single `realm' + collection to the v5.3.4 release. The new collection contains the + source code that readers of Realm may wish to use for experiments. + +- Add racket to the requires of webserver subpackage + +------------------------------------------------------------------- +Fri May 17 06:16:25 UTC 2013 - toganm@opensuse.org + +- Added backported patches libpn16.patch and libpng16-adjustment.patch + correcting libpn16 +- Fix randomly generated mode 666 documentation files + +------------------------------------------------------------------- +Tue May 14 14:33:37 UTC 2013 - toganm@opensuse.org + +- Update to 5.3.4 release for details see changelog.txt and News + + * Extflonums (80-bit floating-point numbers) are supported on some + x86/x86_64 platforms -- including Windows, and including platforms + where Racket is compiled to use SSE instructions for flonum + arithmetic. Thanks to Michael Filonenko. + * Tally Maze: a new game based an enumeration of 2d mazes. + * The Optimization Coach, a DrRacket plugin, has been moved from the + Racket distribution to the Racket package repository. Install it + with: raco pkg install optimization-coach + * Redex: `define-union-language' now merges productions when + languages define the same nonterminals. Thanks to William Bowman. + * The `srfi/19' library is now compatible with the date structure + type exported by `racket/base'. + +- Packaging changes + * 0001-Fix-install-path-for-doc-and-collects.patch based on debian + patch but correct doc install directory as well, this patch also + enable the removal of 0001-pkg-collects-path.patch + * For Factory use libpng12 as racket is not compatible with + libpng16 + * Include libtools to BuildRequires, not to depend on bundled software + in the source package + * Include full URL for the source package + +------------------------------------------------------------------- +Fri Mar 15 15:04:42 UTC 2013 - cfarrell@suse.com + +- license update: LGPL-2.1+ and GPL-3.0+ + testsuite contains GPL-3.0+ licensed code + +------------------------------------------------------------------- +Sat Feb 16 09:07:11 UTC 2013 - toganm@opensuse.org + +- Update to 5.3.3 release for details see changelog.txt and News + + * This is a bug-fix release to address a flaw in DrRacket v5.3.2 + concerning interactions between the contour window and the syntax + coloring. + + +------------------------------------------------------------------- +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..bf9886d --- /dev/null +++ b/racket.spec @@ -0,0 +1,315 @@ +# +# spec file for package racket +# +# Copyright (c) 2024 SUSE LLC +# 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 https://bugs.opensuse.org/ +# + + +Name: racket +Version: 8.13 +Release: 0 +Summary: Scheme implementation with teaching tools +License: Apache-2.0 OR MIT +Group: Development/Languages/Scheme +URL: http://racket-lang.org +Source0: http://download.racket-lang.org/installers/%{version}/%{name}-%{version}-src.tgz +Source2: racket-completion.bash +Source3: racket-rpmlintrc +Patch0: racket-doc.patch +BuildRequires: ImageMagick +BuildRequires: ca-certificates +BuildRequires: chrpath +BuildRequires: fdupes +BuildRequires: gcc-c++ +BuildRequires: ghostscript-fonts-std +BuildRequires: google-roboto-fonts +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(glib-2.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(ice) +BuildRequires: pkgconfig(libedit) +BuildRequires: pkgconfig(libffi) +BuildRequires: pkgconfig(liblz4) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(ncurses) +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) +# The rpmbuild does not detect those! +Requires: libcairo2 +Requires: libedit0 +Requires: libglib-2_0-0 +Requires: libgtk-3-0 +Requires: libpango-1_0-0 +Requires: libsqlite3-0 +Provides: %{name}-drracket = %{version}-%{release} +Provides: %{name}-games = %{version}-%{release} +Provides: %{name}-webserver = %{version}-%{release} +Recommends: racket-doc = %{version}-%{release} + +%define add_optflags(a:f:t:p:w:W:d:g:O:A:C:D:E:H:i:M:n:P:U:u:l:s:X:B:I:L:b:V:m:x:c:S:E:o:v:) \ +%global optflags %{optflags} %{**} + +# 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 doc +Summary: Documentation HTML files for Racket +Group: Development/Languages/Scheme +Provides: %{name}:%{_docdir}/%{name}/docindex.sqlite +BuildArch: noarch + +%description doc +A local installation of the Racket documentation system. + +%package devel +Summary: Development header files for Racket +Group: Development/Languages/Scheme +Requires: %{name} = %{version}-%{release} +Requires: glibc-devel +Requires: libffi-devel +Recommends: %{name}-doc = %{version}-%{release} + +%description devel +This package contains the symlinks, headers and object files needed to +compile and link programs which use Racket. + +%prep +%autosetup -p0 + +cp -p %{SOURCE2} src/ + +%build +cd src/ + +%add_optflags -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=500 -fno-gcse -Wno-stringop-overread +%configure \ + --prefix="%{_prefix}" \ + --exec-prefix="%{_prefix}" \ + --libdir=%{_libdir} \ + --docdir="%{_defaultdocdir}/%{name}" \ + --enable-shared \ +%ifarch ppc64 ppc64le s390x + --enable-bcdefault \ +%endif + --disable-static \ + --disable-strip \ + --enable-places \ + --enable-lt="%{_bindir}/libtool" \ + --enable-libz \ + --enable-liblz4 \ + --enable-pthread +%make_build + +%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 + +# we do not need *.la and *.a files +find %{buildroot}%{_libdir} -name "*.la" -delete +find %{buildroot}%{_libdir} -name "*.a" -delete + +# make system clear +for bin in mred mzscheme racket +do + test -e $bin || continue + chrpath --delete %{buildroot}%{_bindir}/$bin || : +done +for bin in gracket starter +do + test -e $bin || continue + chrpath --delete %{buildroot}%{_libdir}/$bin || : +done +for bin in c-printf crypt esd magick sndfile tcl xmmsctrl xosd +do + bin=%{buildroot}%{_datadir}/%{name}/pkgs/racket-doc/ffi/examples/use-${bin}.rkt + test -e $bin || continue + sed -ri '1s@(/usr/bin/)env +@\1@p' $bin + chmod 755 $bin +done + +files_to_filter=" +syntax/module-helpers +rackunit/api +reference/collects +guide/exns +math/array_broadcasting +math/array_construct +math/array_convert +math/array_fold +math/array_indexing +math/array_nonstrict +math/array_pointwise +math/array_quick +math/array_sequences +math/array_slicing +math/array_strict +math/array_transform +math/array_types +math/matrix_construction +math/matrix_intro +math/matrix_poly +math/stats +ts-reference/Typed_Classes +" +for html in $files_to_filter +do + html=%{buildroot}%{_docdir}/%{name}/${html}.html + test -e $html || continue + sed -ri 's@%{buildroot}@@g' $html +done + +# Bash completion +install -Dm 644 %{SOURCE2} %{buildroot}%{_datadir}/bash_completion/completions/%{name} +install -Dm 644 %{_builddir}/%{name}-%{version}/share/pkgs/drracket/drracket/drracket.png %{buildroot}%{_datadir}/pixmaps/drracket.png + +# rewrite path in .desktop files +%suse_update_desktop_file -c drracket "DrRacket" "DrRacket is an interactive, integrated, graphical programming environment for the Racket programming languages" "%{_bindir}/drracket" "drracket" Development IDE +%suse_update_desktop_file -c slideshow "Slideshow" "Slideshow is a Racket-based tool for writing slide presentations as programs" "%{_bindir}/slideshow" "drracket" Development Documentation + +# Due package split we do this explicit to support older rpm version as well +install -m 0644 ../README %{buildroot}%{_docdir}/%{name}/README + +%fdupes %{buildroot}%{_prefix} + +%post +/sbin/ldconfig +%desktop_database_post + +%postun +/sbin/ldconfig +%desktop_database_postun + +%files +%doc %dir %{_docdir}/%{name} +%doc %{_docdir}/%{name}/README +%{_bindir}/drracket +%{_bindir}/gracket +%{_bindir}/gracket-text +%{_bindir}/mred +%{_bindir}/mred-text +%{_bindir}/mzc +%{_bindir}/mzpp +%{_bindir}/mzscheme +%{_bindir}/mztext +%{_bindir}/pdf-slatex +%{_bindir}/plt-games +%{_bindir}/plt-help +%{_bindir}/plt-r5rs +%{_bindir}/plt-r6rs +%{_bindir}/plt-web-server +%{_bindir}/racket +%{_bindir}/raco +%{_bindir}/scribble +%{_bindir}/setup-plt +%{_bindir}/slatex +%{_bindir}/slideshow +%{_bindir}/swindle +%{_libdir}/%{name}/starter +%{_libdir}/%{name}/gracket +%{_libdir}/%{name}/starter-sh +%verify(not md5 size mtime) %{_libdir}/%{name}/*.rktd +%dir %{_libdir}/%{name}/compiled/ +%{_libdir}/%{name}/compiled/* +%ifnarch ppc64 ppc64le s390x +%{_libdir}/%{name}/petite.boot +%{_libdir}/%{name}/racket.boot +%{_libdir}/%{name}/scheme.boot +%endif +%ifarch ppc64 ppc64le s390x +%{_libdir}/libracket3m* +%{_libdir}/%{name}/buildinfo +%endif +%ifarch s390x +%{_libdir}/%{name}/mzdyn3m.o +%endif +%ifarch ppc64 ppc64le +%{_libdir}/%{name}/mzdyn3m.lo +%endif +%{_mandir}/man1/mz* +%{_mandir}/man1/racket* +%{_mandir}/man1/raco* +%{_mandir}/man1/setup-plt* +%{_mandir}/man1/drracket* +%{_mandir}/man1/gracket* +%{_mandir}/man1/mred* +%{_mandir}/man1/plt-help* +%dir %{_libdir}/%{name} +%dir %{_datadir}/%{name} +%dir %{_datadir}/bash_completion +%dir %{_datadir}/bash_completion/completions +%{_datadir}/bash_completion/completions/%{name} +%{_datadir}/applications/drracket.desktop +%{_datadir}/applications/slideshow.desktop +%{_datadir}/pixmaps/drracket.png +%exclude %dir %{_datadir}/%{name}/pkgs/mzscheme-lib/mzscheme/examples/ +%exclude %{_datadir}/%{name}/pkgs/mzscheme-lib/mzscheme/examples/*.c* +%verify(not md5 size mtime) %{_datadir}/%{name}/*.rktd +%verify(not md5 size mtime) %{_datadir}/%{name}/pkgs/*.rktd +%{_datadir}/%{name}/* +%dir %{_sysconfdir}/%{name} +%config %{_sysconfdir}/%{name}/config.rktd + +%files doc +%doc %{_docdir}/%{name}/* +%exclude %{_docdir}/%{name}/README + +%files devel +%{_includedir}/%{name}/* +%dir %{_includedir}/%{name} +%dir %{_datadir}/%{name}/pkgs/mzscheme-lib/mzscheme/examples/ +%{_datadir}/%{name}/pkgs/mzscheme-lib/mzscheme/examples/*.c* + +%changelog