Architecture specific change in rpms/racket.git
by githook-noreply@fedoraproject.org
The package rpms/racket.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/racket.git/commit/?id=d8294ba5f81....
Change:
+%ifarch %{arm} s390x
Thanks.
Full change:
============
commit d8294ba5f813dbfd99e60e85a5803514ab4489aa
Author: dbenoit <dbenoit(a)redhat.com>
Date: Wed Aug 28 17:37:06 2019 -0400
update to 7.4
diff --git a/.gitignore b/.gitignore
index 4fd1ad5..dd3082f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
/racket-7.0-src.tgz
+/racket-7.4-src.tgz
diff --git a/racket-7.0-fix-doc-open-url.patch b/racket-7.0-fix-doc-open-url.patch
deleted file mode 100644
index 93f5f98..0000000
--- a/racket-7.0-fix-doc-open-url.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-diff -ruN racket-7.0/doc/racket-doc-installed racket-7.0.docfix/doc/racket-doc-installed
---- racket-7.0/doc/racket-doc-installed 1969-12-31 19:00:00.000000000 -0500
-+++ racket-7.0.docfix/doc/racket-doc-installed 2018-09-21 14:57:42.002194864 -0400
-@@ -0,0 +1,3 @@
-+# do not modify this file
-+# racket uses this file to determine whether
-+# the racket-doc package is installed
-diff -ruN racket-7.0/share/pkgs/scribble-lib/help/search.rkt racket-7.0.docfix/share/pkgs/scribble-lib/help/search.rkt
---- racket-7.0/share/pkgs/scribble-lib/help/search.rkt 2018-07-27 11:33:46.000000000 -0400
-+++ racket-7.0.docfix/share/pkgs/scribble-lib/help/search.rkt 2018-09-21 15:25:16.110996675 -0400
-@@ -17,33 +17,39 @@
- #:notify [notify void])
- (define open-url (get-doc-open-url))
- (cond
-- [open-url
-- (define dest-url (let ([u (string->url open-url)])
-- (combine-url/relative
-- u
-- (string-join
-- (for/list ([s (explode-path sub)])
-- (if (path? s)
-- (path-element->string s)
-- (format "~a" s)))
-- "/"))))
-- (notify (url->string dest-url))
-- (send-url (url->string
-- (struct-copy url dest-url
-- [fragment (or fragment
-- (url-fragment dest-url))]
-- [query (append
-- (url-query dest-url)
-- (if query
-- (url-query
-- (string->url
-- (format "q?~a" query)))
-- null))])))]
-- [else
-- (let* ([path (build-path (find-user-doc-dir) sub)]
-- [path (if (file-exists? path) path (build-path (find-doc-dir) sub))])
-- (notify path)
-- (send-url/file path #:fragment fragment #:query query))]))
-+ [open-url
-+ (define dest-url (let ([u (string->url open-url)])
-+ (combine-url/relative
-+ u
-+ (string-join
-+ (for/list ([s (explode-path sub)])
-+ (if (path? s)
-+ (path-element->string s)
-+ (format "~a" s)))
-+ "/"))))
-+ (notify (url->string dest-url))
-+ (send-url (url->string
-+ (struct-copy url dest-url
-+ [fragment (or fragment
-+ (url-fragment dest-url))]
-+ [query (append
-+ (url-query dest-url)
-+ (if query
-+ (url-query
-+ (string->url
-+ (format "q?~a" query)))
-+ null))])))]
-+ [else
-+ (let* ([path (build-path (find-user-doc-dir) sub)]
-+ [path (if (file-exists? path) path (build-path (find-doc-dir) sub))])
-+ (notify path)
-+ (if (and (file-exists? path)
-+ (file-exists? (build-path (find-doc-dir) "racket-doc-installed")))
-+ (send-url/file path #:fragment fragment #:query query)
-+ (let ([part (lambda (pfx x) (if x (string-append pfx x) ""))])
-+ (send-url (string-append
-+ "https://docs.racket-lang.org/"
-+ sub (part "#" fragment) (part "?" query))))))]))
-
- ;; This is an example of changing this code to use the online manuals.
- ;; Normally, it's better to set `doc-open-url` in "etc/config.rktd",
diff --git a/racket-7.0-remove-nonfree.patch b/racket-7.0-remove-nonfree.patch
deleted file mode 100644
index 778001a..0000000
--- a/racket-7.0-remove-nonfree.patch
+++ /dev/null
@@ -1,1074 +0,0 @@
-diff -urN racket-7.0.orig/share/links.rktd racket-7.0/share/links.rktd
---- racket-7.0.orig/share/links.rktd 2018-08-03 15:23:48.604561727 -0400
-+++ racket-7.0/share/links.rktd 2018-08-03 15:23:45.481540939 -0400
-@@ -175,9 +175,7 @@
- ("sasl" "pkgs/sasl-doc")
- (root "pkgs/slideshow-exe")
- (root "pkgs/slideshow-plugin")
-- (root "pkgs/srfi-lib-nonfree")
- (root "pkgs/srfi-doc")
-- (root "pkgs/srfi-doc-nonfree")
- (root "pkgs/syntax-color-doc")
- (root "pkgs/web-server-lib")
- (root "pkgs/unix-socket-lib")
-diff -urN racket-7.0.orig/share/pkgs/srfi/info.rkt racket-7.0/share/pkgs/srfi/info.rkt
---- racket-7.0.orig/share/pkgs/srfi/info.rkt 2018-08-03 15:23:48.891563638 -0400
-+++ racket-7.0/share/pkgs/srfi/info.rkt 2018-08-03 15:23:45.424540559 -0400
-@@ -1 +1 @@
--(module info setup/infotab (#%module-begin (define package-content-state (quote (built "7.0"))) (define collection (quote multi)) (define deps (quote ("srfi-lib" "srfi-lib-nonfree" "srfi-doc" "srfi-doc-nonfree"))) (define implies (quote ("srfi-lib" "srfi-lib-nonfree" "srfi-doc" "srfi-doc-nonfree"))) (define pkg-desc "Legacy SRFI (Scheme) libraries") (define pkg-authors (quote (mflatt noel chongkai jay)))))
-+(module info setup/infotab (#%module-begin (define package-content-state (quote (built "7.0"))) (define collection (quote multi)) (define deps (quote ("srfi-lib" "srfi-doc"))) (define implies (quote ("srfi-lib" "srfi-doc"))) (define pkg-desc "Legacy SRFI (Scheme) libraries") (define pkg-authors (quote (mflatt noel chongkai jay)))))
-diff -urN racket-7.0.orig/share/pkgs/srfi-doc-nonfree/info.rkt racket-7.0/share/pkgs/srfi-doc-nonfree/info.rkt
---- racket-7.0.orig/share/pkgs/srfi-doc-nonfree/info.rkt 2018-08-03 15:23:48.895563664 -0400
-+++ racket-7.0/share/pkgs/srfi-doc-nonfree/info.rkt 1969-12-31 19:00:00.000000000 -0500
-@@ -1 +0,0 @@
--(module info setup/infotab (#%module-begin (define package-content-state (quote (built "7.0"))) (define collection (quote multi)) (define build-deps (quote ("mzscheme-doc" "scheme-lib" "base" "scribble-lib" "srfi-doc" "srfi-lib-nonfree" "racket-doc" "r5rs-doc" "r6rs-doc" "compatibility-lib"))) (define update-implies (quote ("srfi-lib-nonfree"))) (define pkg-desc "documentation part of \"srfi nonfree\"") (define pkg-authors (quote (mflatt noel chongkai jay)))))
-diff -urN racket-7.0.orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/info.rkt racket-7.0/share/pkgs/srfi-doc-nonfree/srfi/scribblings/info.rkt
---- racket-7.0.orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/info.rkt 2018-08-03 15:23:48.895563664 -0400
-+++ racket-7.0/share/pkgs/srfi-doc-nonfree/srfi/scribblings/info.rkt 1969-12-31 19:00:00.000000000 -0500
-@@ -1,3 +0,0 @@
--#lang info
--
--(define scribblings '(("srfi-nf.scrbl" (multi-page) (library 100))))
-diff -urN racket-7.0.orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-nf.scrbl racket-7.0/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-nf.scrbl
---- racket-7.0.orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-nf.scrbl 2018-08-03 15:23:48.895563664 -0400
-+++ racket-7.0/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-nf.scrbl 1969-12-31 19:00:00.000000000 -0500
-@@ -1,66 +0,0 @@
--#lang scribble/doc
--@(require srfi/scribblings/util
-- scribble/manual
-- scribble/eval
-- scriblib/render-cond
-- scribble/core
-- scribble/html-properties
-- (for-syntax scheme/base)
-- (for-label scheme/base
-- racket/stream))
--
--@; ----------------------------------------------------------------------
--
--@title{SRFI Nonfree Libraries and Documentation}
--
--The @link[#:style srfi-std "http://srfi.schemers.org/"]{Scheme Requests for
--Implementation} (a.k.a. @deftech{SRFI}) process allows individual
--members of the Scheme community to propose libraries and extensions to
--be supported by multiple Scheme implementations.
--
--Racket is distributed with implementations of many SRFIs, most of
--which can be implemented as libraries. To import the bindings of SRFI
--@math{n}, use
--
--@racketblock[
--(require @#,elem{@racketidfont{srfi/}@math{n}})
--]
--
--This document lists the SRFIs that are supported by Racket and
--provides a link to the original SRFI specification (which is also
--distributed as part of Racket's documentation).
--
--The following SRFI specification documents are licensed restrictively.
--
--@table-of-contents[]
--
--
--@; ----------------------------------------
--
--@srfi[5]{A compatible let form with signatures and rest arguments}
--
--@redirect[5 '(
-- (let #t "unnamed")
--)]
--
--Racket provides this SRFI in the @racket[srfi-lib-nonfree] package.
--
--@; ----------------------------------------
--
--@srfi[29]{Localization}
--
--@redirect[29 '(
-- (current-language #f "current-language")
-- (current-country #f "current-country")
-- (current-locale-details #f "current-locale-details")
-- (declare-bundle! #f "declare-bundle!")
-- (store-bundle #f "store-bundle")
-- (load-bundle! #f "load-bundle!")
-- (localized-template #f "localized-template")
--)]
--
--Racket provides a free implementation of this SRFI in the @racket[srfi-lib] package. Only the SRFI specification document is nonfree.
--
--@; ----------------------------------------
--
--@index-section[]
-diff -urN racket-7.0.orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-29.html racket-7.0/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-29.html
---- racket-7.0.orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-29.html 2018-08-03 15:23:48.895563664 -0400
-+++ racket-7.0/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-29.html 1969-12-31 19:00:00.000000000 -0500
-@@ -1,507 +0,0 @@
--<!DOCTYPE html PUBLIC "-//IETF//DTD HTML//EN">
--<html>
-- <head>
-- <meta name="generator" content="HTML Tidy, see www.w3.org">
-- <title>SRFI 29: Localization</title>
-- <meta name="author" content="Scott G. Miller">
-- <meta name="description" content="Localization">
-- </head>
-- <body>
-- <H1>Title</H1>
--
-- SRFI 29: Localization
--
-- <H1>Author</H1>
--
-- Scott G. Miller
--
-- <H1>Abstract</H1>
--
-- This document specifies an interface to retrieving and
-- displaying locale sensitive messages. A Scheme program can
-- register one or more translations of templated messages, and
-- then write Scheme code that can transparently retrieve the
-- appropriate message for the locale under which the Scheme
-- system is running. <br>
--
--
-- <H1>Rationale</H1>
--
-- <p>As any programmer that has ever had to deal with making his
-- or her code readable in more than one locale, the process of
-- sufficiently abstracting program messages from their
-- presentation to the user is non-trivial without help from the
-- programming language. Most modern programming language
-- libraries do provide some mechanism for performing this
-- separation.</p>
--
-- <p>A portable API that allows a piece of code to run without
-- modification in different countries and under different
-- languages is a must for any non-trivial software project.
-- The interface should separate the logic of a program from
-- the myriad of translations that may be necessary.</p>
--
-- <p>The interface described in this document provides such
-- functionality. The underlying implementation is also allowed to
-- use whatever datastructures it likes to provide access to the
-- translations in the most efficient manner possible. In
-- addition, the implementation is provided with standardized
-- functions that programs will use for accessing an external,
-- unspecified repository of translations.</p>
--
-- <p>This interface <i>does not</i> cover all aspects of
-- localization, including support for non-latin characters,
-- number and date formatting, etc. Such functionality is the
-- scope of a future SRFI that may extend this one.</p>
--
-- <H1>Dependencies</H1>
--
-- An SRFI-29 conformant implementation must also implement
-- SRFI-28, Basic Format Strings. Message templates are strings
-- that must be processed by the <tt>format</tt> function
-- specified in that SRFI.
--
-- <H1>Specification</H1>
--
-- <h3>Message Bundles</h3>
--
-- <p>A Message Bundle is a set of message templates and their
-- identifying keys. Each bundle contains one or more such
-- key/value pairs. The bundle itself is associated with a
-- <i>bundle specifier</i> which uniquely identifies the
-- bundle.</p>
--
-- <h3>Bundle Specifiers</h3>
--
-- <p>A Bundle Specifier is a Scheme list that describes, in order
-- of importance, the package and locale of a message bundle.
-- In most cases, a locale specifier will have between one
-- and three elements. The first element is a symbol denoting the
-- package for which this bundle applies. The second and third
-- elements denote a <i>locale</i>. The second element (first
-- element of the locale) if present, is the two letter, ISO 639-1
-- language code for the bundle. The third element, if present, is
-- a two letter ISO 3166-1 country code. In some cases, a
-- fourth element may be present, specifying the encoding used for
-- the bundle. All bundle specifier elements are Scheme
-- symbols.</p>
--
-- <p>If only one translation is provided, it should be designated
-- only by a package name, for example <tt>(mathlib)</tt>. This
-- translation is called the <i>default</i> translation.</p>
--
-- <h3>Bundle Searching</h3>
--
-- <p>When a message template is retrieved from a bundle, the
-- Scheme implementation will provide the locale under which the
-- system is currently running. When the template is retrieved,
-- the package name will be specified. The Scheme system should
-- construct a Bundle Specifier from the provided package name and
-- the active locale. For example, when retrieving a message
-- template for French Canadian, in the <tt>mathlib</tt> package,
-- the bundle specifier '<tt>(mathlib fr ca)</tt>' is used. A
-- program may also retrieve the elements of the current locale
-- using the no-argument procedures:</p>
--
-- <p><b><a name="current-language"></a><tt>current-language</tt></b> <tt>->
-- <i>symbol</i></tt><br>
-- <tt><b>current-language</b> <i>symbol</i> ->
-- undefined</tt><br>
-- </p>
--
-- <blockquote>
-- When given no arguments, returns the current ISO 639-1
-- language code as a symbol. If provided with an
-- argument, the current language is set to that named by the
-- symbol for the currently executing Scheme thread (or for the
-- entire Scheme system if such a distinction is not possible).
--
-- </blockquote>
--
-- <p><b><a name="current-country"></a><tt>current-country</tt></b> <tt>->
-- <i>symbol</i></tt><br>
-- <tt><b>current-country</b> <i>symbol</i> ->
-- undefined</tt><br>
-- </p>
--
-- <blockquote>
-- returns the current ISO 3166-1 country code as a symbol.
-- If provided with an argument, the current country is
-- set to that named by the symbol for the currently executing
-- Scheme thread (or for the entire Scheme system if such a
-- distinction is not possible).
-- </blockquote>
--
-- <p><b><a name="current-locale-details"></a><tt>current-locale-details</tt></b> <tt>-> <i>list of
-- symbol</i></tt>s<br>
-- <tt><b>current-locale-details</b> <i>list-of-symbols</i> ->
-- undefined</tt><br>
-- </p>
--
-- <blockquote>
-- Returns a list of additional locale details as a list of
-- symbols. This list may contain information about
-- encodings or other more specific information. If
-- provided with an argument, the current locale details are set
-- to those given in the currently executing Scheme thread (or
-- for the entire Scheme system if such a distinction is not
-- possible).
-- </blockquote>
--
-- <p>The Scheme System should first check for a bundle with the
-- exact name provided. If no such bundle is found, the last
-- element from the list is removed and a search is tried for a
-- bundle with that name. If no bundle is then found, the list is
-- shortened by removing the last element again. If no message is
-- found and the bundle specifier is now the empty list, an error
-- should be raised.</p>
--
-- <p>The reason for this search order is to provide the most
-- locale sensitive template possible, but to fall back on more
-- general templates if a translation has not yet been provided
-- for the given locale.</p>
--
-- <h3>Message Templates</h3>
--
-- <p>A message template is a localized message that may or may
-- not contain one of a number of formatting codes. A message
-- template is a Scheme string. The string is of a form that can
-- be processed by the <tt>format</tt> procedure found in many
-- Scheme systems and formally specified in SRFI-28 (Basic Format
-- Strings).</p>
--
-- <p>This SRFI also extends SRFI-28 to provide an additional
-- <tt>format</tt> escape code:</p>
--
-- <blockquote>
-- <tt>~[n]@*</tt> - Causes a value-requiring escape code that
-- follows this code immediately to reference the [N]'th
-- optional value absolutely, rather than the next unconsumed
-- value. The referenced value is <i>not</i> consumed.
-- </blockquote>
-- This extension allows optional values to be positionally
-- referenced, so that message templates can be constructed that
-- can produce the proper word ordering for a language.
--
-- <h3>Preparing Bundles</h3>
-- Before a bundle may be used by the Scheme system to retrieve
-- localized template messages, they must be made available to the
-- Scheme system. This SRFI specifies a way to portably
-- define the bundles, as well as store them in and retrieve them
-- from an unspecified system which may be provided by resources
-- outside the Scheme system.<br>
--
--
-- <p><b><a name="declare-bundle!"></a><tt>declare-bundle!</tt></b> <tt><i>bundle-specifier
-- association-list</i> -> undefined<br>
-- </tt></p>
--
-- <blockquote>
-- Declares a new bundle named by the given bundle-specifier.
-- The contents of the bundle are defined by the provided
-- association list. The list contains associations
-- between Scheme symbols and the message templates (Scheme
-- strings) they name. If a bundle already exists with the
-- given name, it is overwritten with the newly declared
-- bundle.<br>
-- </blockquote>
-- <tt><a name="store-bundle"></a><b>store-bundle</b> <i>bundle-specifier</i> ->
-- boolean</tt><br>
--
--
-- <blockquote>
-- Attempts to store a bundle named by the given bundle
-- specifier, and previously made available using
-- <tt>declare-bundle!</tt> or <tt>load-bundle!</tt>, in an
-- unspecified mechanism that may be persistent across Scheme
-- system restarts. If successful, a non-false value is
-- returned. If unsuccessful, <tt>#f</tt> is returned.<br>
-- </blockquote>
-- <tt><a name="load-bundle!"></a><b>load-bundle!</b> <i>bundle-specifier</i> ->
-- boolean</tt><br>
--
--
-- <blockquote>
-- Attempts to retrieve a bundle from an unspecified mechanism
-- which stores bundles outside the Scheme system. If the
-- bundle was retrieved successfully, the function returns a
-- non-false value, and the bundle is immediately available to
-- the Scheme system. If the bundle could not be found or loaded
-- successfully, the function returns <tt>#f</tt>, and the
-- Scheme system's bundle registry remains unaffected.<br>
-- </blockquote>
-- A compliant Scheme system may choose not to provide any
-- external mechanism to store localized bundles. If it does
-- not, it must still provide implementations for
-- <tt>store-bundle</tt> and <tt>load-bundle!</tt>. In such a
-- case, both functions must return <tt>#f</tt> regardless of the
-- arguments given. Users of this SRFI should recognize that the
-- inability to load or store a localized bundle in an external
-- repository is <i>not</i> a fatal error.<br>
--
--
-- <h3>Retrieving Localized Message Templates</h3>
--
-- <p><a name="localized-template"></a><b><tt>localized-template</tt></b> <i><tt>package-name
-- message-template-name</tt></i> <tt>-> <i>string or #f<br>
-- </i></tt></p>
--
-- <blockquote>
-- Retrieves a localized message template for the given package
-- name and the given message template name (both symbols).
-- If no such message could be found, false (#f) is
-- returned.<br>
-- <br>
-- </blockquote>
-- After retrieving a template, the calling program can use
-- <tt>format</tt> to produce a string that can be displayed to
-- the user.<br>
--
--
-- <h2>Examples</h2>
-- The below example makes use of SRFI-29 to display simple,
-- localized messages. It also defines its bundles in such a
-- way that the Scheme system may store and retrieve the bundles
-- from a more efficient system catalog, if available.<br>
--
--<pre>
--(let ((translations
-- '(((en) . ((time . "Its ~a, ~a.")
-- (goodbye . "Goodbye, ~a.")))
-- ((fr) . ((time . "~1@*~a, c'est ~a.")
-- (goodbye . "Au revoir, ~a."))))))
-- (for-each (lambda (translation)
-- (let ((bundle-name (cons 'hello-program (car translation))))
-- (if (not (load-bundle! bundle-name))
-- (begin
-- (declare-bundle! bundle-name (cdr translation))
-- (store-bundle! bundle-name)))))
-- translations))
--
--(define localized-message
-- (lambda (message-name . args)
-- (apply format (cons (localized-template 'hello-program
-- message-name)
-- args))))
--
--(let ((myname "Fred"))
-- (display (localized-message 'time "12:00" myname))
-- (display #\newline)
--
-- (display (localized-message 'goodbye myname))
-- (display #\newline))
--
--;; Displays (English):
--;; Its 12:00, Fred.
--;; Goodbye, Fred.
--;;
--;; French:
--;; Fred, c'est 12:00.
--;; Au revoir, Fred.
--</pre>
--
-- <H1>Implementation</H1>
--
-- <p>The implementation requires that the Scheme system provide a
-- definition for <tt>current-language</tt> and
-- <tt>current-country</tt> capable of distinguishing the correct
-- locale present during a Scheme session. The definitions of
-- those functions in the reference implementation are not capable
-- of that distinction. Their implementation is provided only so
-- that the following code can run in any R4RS scheme system.
-- <br>
-- </p>
--
-- <p>In addition, the below implementation of a compliant
-- <tt>format</tt> requires SRFI-6 (Basic String Ports) and
-- SRFI-23 (Error reporting)</p>
--<pre>
--;; The association list in which bundles will be stored
--(define *localization-bundles* '())
--
--;; The current-language and current-country functions provided
--;; here must be rewritten for each Scheme system to default to the
--;; actual locale of the session
--(define current-language
-- (let ((current-language-value 'en))
-- (lambda args
-- (if (null? args)
-- current-language-value
-- (set! current-language-value (car args))))))
--
--(define current-country
-- (let ((current-country-value 'us))
-- (lambda args
-- (if (null? args)
-- current-country-value
-- (set! current-country-value (car args))))))
--
--;; The load-bundle! and store-bundle! both return #f in this
--;; reference implementation. A compliant implementation need
--;; not rewrite these procedures.
--(define load-bundle!
-- (lambda (bundle-specifier)
-- #f))
--
--(define store-bundle!
-- (lambda (bundle-specifier)
-- #f))
--
--;; Declare a bundle of templates with a given bundle specifier
--(define declare-bundle!
-- (letrec ((remove-old-bundle
-- (lambda (specifier bundle)
-- (cond ((null? bundle) '())
-- ((equal? (caar bundle) specifier)
-- (cdr bundle))
-- (else (cons (car bundle)
-- (remove-old-bundle specifier
-- (cdr bundle))))))))
-- (lambda (bundle-specifier bundle-assoc-list)
-- (set! *localization-bundles*
-- (cons (cons bundle-specifier bundle-assoc-list)
-- (remove-old-bundle bundle-specifier
-- *localization-bundles*))))))
--
--;;Retrieve a localized template given its package name and a template name
--(define localized-template
-- (letrec ((rdc
-- (lambda (ls)
-- (if (null? (cdr ls))
-- '()
-- (cons (car ls) (rdc (cdr ls))))))
-- (find-bundle
-- (lambda (specifier template-name)
-- (cond ((assoc specifier *localization-bundles*) =>
-- (lambda (bundle) bundle))
-- ((null? specifier) #f)
-- (else (find-bundle (rdc specifier)
-- template-name))))))
-- (lambda (package-name template-name)
-- (let loop ((specifier (cons package-name
-- (list (current-language)
-- (current-country)))))
-- (and (not (null? specifier))
-- (let ((bundle (find-bundle specifier template-name)))
-- (and bundle
-- (cond ((assq template-name bundle) => cdr)
-- ((null? (cdr specifier)) #f)
-- (else (loop (rdc specifier)))))))))))
--
--;;An SRFI-28 and SRFI-29 compliant version of format. It requires
--;;SRFI-23 for error reporting.
--(define format
-- (lambda (format-string . objects)
-- (let ((buffer (open-output-string)))
-- (let loop ((format-list (string->list format-string))
-- (objects objects)
-- (object-override #f))
-- (cond ((null? format-list) (get-output-string buffer))
-- ((char=? (car format-list) #\~)
-- (cond ((null? (cdr format-list))
-- (error 'format "Incomplete escape sequence"))
-- ((char-numeric? (cadr format-list))
-- (let posloop ((fl (cddr format-list))
-- (pos (string->number
-- (string (cadr format-list)))))
-- (cond ((null? fl)
-- (error 'format "Incomplete escape sequence"))
-- ((and (eq? (car fl) '#\@)
-- (null? (cdr fl)))
-- (error 'format "Incomplete escape sequence"))
-- ((and (eq? (car fl) '#\@)
-- (eq? (cadr fl) '#\*))
-- (loop (cddr fl) objects (list-ref objects pos)))
-- (else
-- (posloop (cdr fl)
-- (+ (* 10 pos)
-- (string->number
-- (string (car fl)))))))))
-- (else
-- (case (cadr format-list)
-- ((#\a)
-- (cond (object-override
-- (begin
-- (display object-override buffer)
-- (loop (cddr format-list) objects #f)))
-- ((null? objects)
-- (error 'format "No value for escape sequence"))
-- (else
-- (begin
-- (display (car objects) buffer)
-- (loop (cddr format-list)
-- (cdr objects) #f)))))
-- ((#\s)
-- (cond (object-override
-- (begin
-- (display object-override buffer)
-- (loop (cddr format-list) objects #f)))
-- ((null? objects)
-- (error 'format "No value for escape sequence"))
-- (else
-- (begin
-- (write (car objects) buffer)
-- (loop (cddr format-list)
-- (cdr objects) #f)))))
-- ((#\%)
-- (if object-override
-- (error 'format "Escape sequence following positional override does not require a value"))
-- (display #\newline buffer)
-- (loop (cddr format-list) objects #f))
-- ((#\~)
-- (if object-override
-- (error 'format "Escape sequence following positional override does not require a value"))
-- (display #\~ buffer)
-- (loop (cddr format-list) objects #f))
-- (else
-- (error 'format "Unrecognized escape sequence"))))))
-- (else (display (car format-list) buffer)
-- (loop (cdr format-list) objects #f)))))))
--
--</pre>
--
-- <H1>Copyright</H1>
--
-- Copyright (C) Scott G. Miller (2002). All Rights Reserved.
--
-- <p>This document and translations of it may be copied and
-- furnished to others, and derivative works that comment on or
-- otherwise explain it or assist in its implementation may be
-- prepared, copied, published and distributed, in whole or in
-- part, without restriction of any kind, provided that the above
-- copyright notice and this paragraph are included on all such
-- copies and derivative works. However, this document itself may
-- not be modified in any way, such as by removing the copyright
-- notice or references to the Scheme Request For Implementation
-- process or editors, except as needed for the purpose of
-- developing SRFIs in which case the procedures for copyrights
-- defined in the SRFI process must be followed, or as required to
-- translate it into languages other than English.</p>
--
-- <p>The limited permissions granted above are perpetual and will
-- not be revoked by the authors or their successors or
-- assigns.</p>
--
-- <p>This document and the information contained herein is
-- provided on an "AS IS" basis and THE AUTHOR AND THE SRFI
-- EDITORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
-- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
-- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES
-- OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.</p>
-- <hr>
--
-- <address>
-- Editor: <a href="mailto:srfi-editors@srfi.schemers.org">David
-- Rush</a>
-- </address>
--
-- <address>
-- Author: <a href="mailto:scgmille@freenetproject.org">Scott G.
-- Miller</a>
-- </address>
-- <!-- Created: Tue Sep 29 19:20:08 EDT 1998 -->
-- <!-- hhmts start -->Last modified: Mon Jun 17 12:00:08 Pacific
-- Daylight Time 2002 <!-- hhmts end --> <br>
-- </body>
--</html>
--
-diff -urN racket-7.0.orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-5.html racket-7.0/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-5.html
---- racket-7.0.orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-5.html 2018-08-03 15:23:48.895563664 -0400
-+++ racket-7.0/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-5.html 1969-12-31 19:00:00.000000000 -0500
-@@ -1,345 +0,0 @@
--<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.2//EN">
--<html>
--<head>
-- <title>SRFI 5: A compatible let form with signatures and rest arguments</title>
--</head>
--<body>
--
--<H1>Title</H1>
--
--SRFI-5: A compatible <code>let</code> form with signatures and rest arguments
--
--<H1>Author</H1>
--
--Andy Gaynor
--
--<H1>Status</H1>
--
--This SRFI is currently in ``final'' status. To see an explanation of each status that a SRFI can hold, see <A HREF="http://srfi.schemers.org/srfi-process.html">here</A>.
--You can access the discussion on this SRFI via <A HREF="http://srfi.schemers.org/srfi-5/mail-archive/maillist.html">the archive of the mailing list</A>.
--<P><UL>
--<LI>Received: 1999/2/2
--<LI>Draft: 1999/2/10-1999/04/12
--<LI>Final: 1999/4/26
--<LI>Revised reference implementation: 2003/01/27
--</UL>
--
--<H1>Abstract</H1>
--
--The <i>named-let</i> incarnation of the <code>let</code> form has two slight
--inconsistencies with the <code>define</code> form. As defined, the <code>let</code>
--form makes no accommodation for rest arguments, an issue of functionality
--and consistency. As defined, the <code>let</code> form does not accommodate
--signature-style syntax, an issue of aesthetics and consistency. Both
--issues are addressed here in a manner which is compatible with the traditional
--<code>let</code> form but for minor extensions.
--
--<H1>Rationale</H1>
--
--<H2>Signature-style Syntax</H2>
--
--Consider the following two equivalent definitions:
--
--<p><pre>
--(define fibonacci
-- (lambda (n i f0 f1)
-- (if (= i n)
-- f0
-- (fibonacci n (+ i 1) f1 (+ f0 f1)))))
--
--(define (fibonacci n i f0 f1)
-- (if (= i n)
-- f0
-- (fibonacci n (+ i 1) f1 (+ f0 f1))))
--</pre>
--
--Although there is a named-let analog for the former form, there is none
--for the latter. To wit, suppose one wished to compute the 10th element
--of the Fibonacci sequence using a named let:
--
--<p>
--<pre>
--(let fibonacci ((n 10) (i 0) (f0 0) (f1 1))
-- (if (= i n)
-- f0
-- (fibonacci n (+ i 1) f1 (+ f0 f1))))
--Values: 55
--</pre>
--
--As it stands, one cannot equivalently write
--
--<p>
--<pre>
--(let (fibonacci (n 10) (i 0) (f0 0) (f1 1))
-- (if (= i n)
-- f0
-- (fibonacci n (+ i 1) f1 (+ f0 f1))))
--</pre>
--
--which is consistent with <code>define</code>'s signature-style form.
--<p>Those that favor the signature style may prefer this extension.
--In any case, it may be more appropriate to include all bound names within
--the binding section. As presented, this straightforward extension
--introduces no ambiguity or incompatibility with the existing definition
--of let.
--
--<H2>Rest Arguments</H2>
--
--As it stands, one cannot write a named let with rest arguments, as in
--
--<p>
--<pre>
--(let (blast (port (current-output-port)) . (x (+ 1 2) 4 5))
-- (if (null? x)
-- 'just-a-silly-contrived-example
-- (begin
-- (write (car x) port)
-- (apply blast port (cdr x)))))
--</pre>
--
--otherwise equivalent to
--
--<p>
--<pre>
--(letrec ((blast (lambda (port . x)
-- (if (null? x)
-- 'just-a-silly-contrived-example
-- (begin
-- (write (car x) port)
-- (apply blast port (cdr x)))))))
-- (blast (current-output-port) (+ 1 2) 4 5))
--</pre>
--
--While this example is rather contrived, the functionality is not.
--There are several times when the author has used this construct in practice.
--Regardless, there is little reason to deny the <code>let</code> form access to
--all the features of lambda functionality.
--
--<H2>Symbols in Binding Sections</H2>
--
--Both the features above rely upon the placement of symbols in <code>let</code>
--binding lists (this statement is intentially simplistic). The only
--other apparent use of such symbol placement is to tersely bind variables
--to unspecified values. For example, one might desire to use
--<code>(let (foo bar baz) ...)</code>
--to bind <code>foo</code>, <code>bar</code>, and <code>baz</code> to
--unspecified values.
--
--<p>This usage is considered less important in light of the rationales
--presented above, and an alternate syntax is immediately apparent, as
--in <code>(let ((foo) (bar) (baz)) ...)</code> This may even
--be preferable, consistently parenthesizing normal binding clauses.
--
--<H1>Specification</H1>
--
--<H2>Syntax</H2>
--
--<p>
--A formal specification of the syntax follows. Below, body, expression,
--and identifier are free. Each instantiation of binding-name must be
--unique.
--</p>
--
--<p>
--<pre>
-- let = "(" "let" let-bindings body ")"
-- expressions = nothing | expression expressions
-- let-bindings = let-name bindings
-- |"(" let-name "." bindings ")"
-- let-name = identifier
-- bindings = "(" ")"
-- | rest-binding
-- | "(" normal-bindings ["." rest-binding] ")"
--normal-bindings = nothing
-- | normal-binding normal-bindings
--normal-binding = "(" binding-name expression ")"
-- binding-name = identifier
-- rest-binding = "(" binding-name expressions ")"
--</pre>
--
--<p>
--For clarity and convenience, an informal specification follows.
--</p>
--
--<ol>
--<li><a name="unnamed">Unnamed</a>
--
--<p><pre>
--(let ((<parameter> <argument>)...)
-- <body>...)
--</pre>
--</li>
--
--<li><a name="named-non-sig">
--Named, non-signature-style, no rest argument</a>
--
--<p><pre>
--(let <name> ((<parameter> <argument>)...)
-- <body>...)
--</pre>
--</li>
--
--<li><a name="named-sig">Named, signature-style, no rest argument</a>
--
--<p><pre>
--(let (<name> (<parameter> <argument>)...)
-- <body>...)
--</pre>
--</li>
--
--<li><a name="named-non-sig-rest">Named, non-signature-style, rest argument</a>
--
--<p><pre>
--(let <name> ((<parameter> <argument>)...
--
--. (<rest-parameter> <rest-argument>...))
-- <body>...)
--</pre>
--
--<li><a name="named-sig-rest">Named, signature-style, rest argument</a>
--
--<p><pre>
--(let (<name> (<parameter> <argument>)...
--
--. (<rest-parameter> <rest-argument>...))
-- <body>...)
--</pre>
--</li>
--</ol>
--
--<H2>Semantics</H2>
--
--Let <code>$lambda</code> and <code>$letrec</code> be hygienic bindings for the <code>lambda</code>
--and <code>letrec</code> forms, respectively.
--
--<ul>
--<li>For informal syntax 1:
--
--<p><pre>
--(($lambda (<parameter>...) <body>...) <argument>...)
--</pre>
--</li>
--
--<li>For informal syntaxes 2 and 3:
--
--<p>
--<pre>
--($letrec ((<name> ($lambda (<parameter>...) <body>...)))
-- (<name> <argument>...))
--</pre>
--</li>
--
--<li>For informal syntaxes 4 and 5:
--
--<p>
--<pre>
--($letrec ((<name> ($lambda (<parameter>...
--
--. <rest-parameter>) <body>...)))
-- (<name> <argument>... <rest-argument>...))
--</pre>
--</li>
--</ul>
--
--<H1>Implementation</H1>
--
--Here is an implementation using <code>SYNTAX-RULES</code>.
--
--<p>
--<pre>
--;; Use your own standard let.
--;; Or call a lambda.
--;; (define-syntax standard-let
--;;
--;; (syntax-rules ()
--;;
--;; ((let ((var val) ...) body ...)
--;; ((lambda (var ...) body ...) val ...))))
--
--(define-syntax let
--
-- (syntax-rules ()
--
-- ;; No bindings: use standard-let.
-- ((let () body ...)
-- (standard-let () body ...))
-- ;; Or call a lambda.
-- ;; ((lambda () body ...))
--
-- ;; All standard bindings: use standard-let.
-- ((let ((var val) ...) body ...)
-- (standard-let ((var val) ...) body ...))
-- ;; Or call a lambda.
-- ;; ((lambda (var ...) body ...) val ...)
--
-- ;; One standard binding: loop.
-- ;; The all-standard-bindings clause didn't match,
-- ;; so there must be a rest binding.
-- ((let ((var val) . bindings) body ...)
-- (let-loop #f bindings (var) (val) (body ...)))
--
-- ;; Signature-style name: loop.
-- ((let (name binding ...) body ...)
-- (let-loop name (binding ...) () () (body ...)))
--
-- ;; defun-style name: loop.
-- ((let name bindings body ...)
-- (let-loop name bindings () () (body ...)))))
--
--(define-syntax let-loop
--
-- (syntax-rules ()
--
-- ;; Standard binding: destructure and loop.
-- ((let-loop name ((var0 val0) binding ...) (var ... ) (val ... ) body)
-- (let-loop name ( binding ...) (var ... var0) (val ... val0) body))
--
-- ;; Rest binding, no name: use standard-let, listing the rest values.
-- ;; Because of let's first clause, there is no "no bindings, no name" clause.
-- ((let-loop #f (rest-var rest-val ...) (var ...) (val ...) body)
-- (standard-let ((var val) ... (rest-var (list rest-val ...))) . body))
-- ;; Or call a lambda with a rest parameter on all values.
-- ;; ((lambda (var ... . rest-var) . body) val ... rest-val ...))
-- ;; Or use one of several other reasonable alternatives.
--
-- ;; No bindings, name: call a letrec'ed lambda.
-- ((let-loop name () (var ...) (val ...) body)
-- ((letrec ((name (lambda (var ...) . body)))
-- name)
-- val ...))
--
-- ;; Rest binding, name: call a letrec'ed lambda.
-- ((let-loop name (rest-var rest-val ...) (var ...) (val ...) body)
-- ((letrec ((name (lambda (var ... . rest-var) . body)))
-- name)
-- val ... rest-val ...))))
--</pre>
--
--
--<H1>Copyright</H1>
--
--Copyright (C) Andy Gaynor (1999). All Rights Reserved.
--<p>This document and translations of it may be copied and furnished to
--others, and derivative works that comment on or otherwise explain it or
--assist in its implementation may be prepared, copied, published and distributed,
--in whole or in part, without restriction of any kind, provided that the
--above copyright notice and this paragraph are included on all such copies
--and derivative works. However, this document itself may not be modified
--in any way, such as by removing the copyright notice or references to the
--Scheme Request For Implementation process or editors, except as needed
--for the purpose of developing SRFIs in which case the procedures for copyrights
--defined in the SRFI process must be followed, or as required to translate
--it into languages other than English.
--<p>The limited permissions granted above are perpetual and will not be
--revoked by the authors or their successors or assigns.
--<p>This document and the information contained herein is provided on an
--"AS IS" basis and THE AUTHOR AND THE SRFI EDITORS DISCLAIM ALL WARRANTIES,
--EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE
--USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
--WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
--
-- <hr>
-- <address>Editor: <a href="mailto:srfi-editors@srfi.schemers.org">Mike Sperber</a></address>
--
--</body>
--</html>
-diff -urN racket-7.0.orig/share/pkgs/srfi-lib-nonfree/info.rkt racket-7.0/share/pkgs/srfi-lib-nonfree/info.rkt
---- racket-7.0.orig/share/pkgs/srfi-lib-nonfree/info.rkt 2018-08-03 15:23:48.906563738 -0400
-+++ racket-7.0/share/pkgs/srfi-lib-nonfree/info.rkt 1969-12-31 19:00:00.000000000 -0500
-@@ -1 +0,0 @@
--(module info setup/infotab (#%module-begin (define package-content-state (quote (built "7.0"))) (define collection (quote multi)) (define deps (quote ("scheme-lib" "base" "r6rs-lib" "srfi-lib" "compatibility-lib"))) (define pkg-desc "implementation (no documentation) part of \"srfi nonfree\"") (define pkg-authors (quote (mflatt noel chongkai jay)))))
-diff -urN racket-7.0.orig/share/pkgs/srfi-lib-nonfree/srfi/%3a5/let.rkt racket-7.0/share/pkgs/srfi-lib-nonfree/srfi/%3a5/let.rkt
---- racket-7.0.orig/share/pkgs/srfi-lib-nonfree/srfi/%3a5/let.rkt 2018-08-03 15:23:48.906563738 -0400
-+++ racket-7.0/share/pkgs/srfi-lib-nonfree/srfi/%3a5/let.rkt 1969-12-31 19:00:00.000000000 -0500
-@@ -1 +0,0 @@
--#lang s-exp srfi/provider srfi/%3a5
-diff -urN racket-7.0.orig/share/pkgs/srfi-lib-nonfree/srfi/%3a5.rkt racket-7.0/share/pkgs/srfi-lib-nonfree/srfi/%3a5.rkt
---- racket-7.0.orig/share/pkgs/srfi-lib-nonfree/srfi/%3a5.rkt 2018-08-03 15:23:48.906563738 -0400
-+++ racket-7.0/share/pkgs/srfi-lib-nonfree/srfi/%3a5.rkt 1969-12-31 19:00:00.000000000 -0500
-@@ -1,3 +0,0 @@
--#lang s-exp srfi/provider srfi/5
--
--;; FIXME: "rest arguments" need to generate mutable lists
-diff -urN racket-7.0.orig/share/pkgs/srfi-lib-nonfree/srfi/5/let.rkt racket-7.0/share/pkgs/srfi-lib-nonfree/srfi/5/let.rkt
---- racket-7.0.orig/share/pkgs/srfi-lib-nonfree/srfi/5/let.rkt 2018-08-03 15:23:48.906563738 -0400
-+++ racket-7.0/share/pkgs/srfi-lib-nonfree/srfi/5/let.rkt 1969-12-31 19:00:00.000000000 -0500
-@@ -1,86 +0,0 @@
--;;;
--;;; <let.rkt> ---- SRFI 5 A compatible let form with signatures and rest arguments
--;;; Time-stamp: <03/04/08 09:56:06 solsona>
--;;;
--;;; Usually, I would add a copyright notice, and the announce that
--;;; this code is under the LGPL licence. Nevertheless, I only did the
--;;; port to PLT Scheme v200, and here is the copyright notice,
--;;; comments, and licence from the original source:
--;;;
--;;; Copyright (C) Andy Gaynor (1999-2003)
--;;;
--;;; The version of my-let here was cleaned up by: Paul Schlie <schlie(a)attbi.com>.
--;;; Renamed to s:let by Eli Barzilay
--
--#lang scheme/base
--(provide s:let)
--
--(define-syntax s:let
-- (syntax-rules ()
-- ;; standard
-- ((s:let () body ...)
-- (let () body ...))
-- ((s:let ((var val) ...) body ...)
-- (let ((var val) ...) body ...))
--
-- ;; rest style
-- ((s:let ((var val) . bindings) body ...)
-- (let-loop #f bindings (var) (val) (body ...)))
--
-- ;; signature style
-- ((s:let (name bindings ...) body ...)
-- (let-loop name (bindings ...) () () (body ...)))
--
-- ;; standard named style
-- ((s:let name (bindings ...) body ...)
-- (let-loop name (bindings ...) () () (body ...)))
--
-- ))
--
--;; A loop to walk down the list of bindings.
--
--(define-syntax let-loop
-- (syntax-rules ()
--
-- ;; No more bindings - make a LETREC.
-- ((let-loop name () (vars ...) (vals ...) body)
-- ((letrec ((name (lambda (vars ...) . body)))
-- name)
-- vals ...))
--
-- ;; Rest binding, no name
-- ((let-loop #f (rest-var rest-val ...) (var ...) (val ...) body)
-- (let ((var val) ... (rest-var (list rest-val ...))) . body))
--
-- ;; Process a (var val) pair.
-- ((let-loop name ((var val) more ...) (vars ...) (vals ...) body)
-- (let-loop name (more ...) (vars ... var) (vals ... val) body))
--
-- ;; End with a rest variable - make a LETREC.
-- ((let-loop name (rest-var rest-vals ...) (vars ...) (vals ...) body)
-- ((letrec ((name (lambda (vars ... . rest-var) . body)))
-- name)
-- vals ... rest-vals ...))))
--
--;; Four loops - normal and `signature-style', each with and without a rest
--;; binding.
--;;
--;;(let fibonacci ((n 10) (i 0) (f0 0) (f1 1))
--;; (if (= i n)
--;; f0
--;; (fibonacci n (+ i 1) f1 (+ f0 f1))))
--;;
--;;(let (fibonacci (n 10) (i 0) (f0 0) (f1 1))
--;; (if (= i n)
--;; f0
--;; (fibonacci n (+ i 1) f1 (+ f0 f1))))
--;;
--;;(let fibonacci ((n 10) (i 0) . (f 0 1))
--;; (if (= i n)
--;; (car f)
--;; (fibonacci n (+ i 1) (cadr f) (+ (car f) (cadr f)))))
--;;
--;;(let (fibonacci (n 10) (i 0) . (f 0 1))
--;; (if (= i n)
--;; (car f)
--;; (fibonacci n (+ i 1) (cadr f) (+ (car f) (cadr f)))))
-diff -urN racket-7.0.orig/share/pkgs/srfi-lib-nonfree/srfi/5.rkt racket-7.0/share/pkgs/srfi-lib-nonfree/srfi/5.rkt
---- racket-7.0.orig/share/pkgs/srfi-lib-nonfree/srfi/5.rkt 2018-08-03 15:23:48.906563738 -0400
-+++ racket-7.0/share/pkgs/srfi-lib-nonfree/srfi/5.rkt 1969-12-31 19:00:00.000000000 -0500
-@@ -1,2 +0,0 @@
--;; module loader for SRFI-5
--#lang s-exp srfi/provider srfi/5/let #:unprefix s:
diff --git a/racket-7.4-remove-nonfree.patch b/racket-7.4-remove-nonfree.patch
new file mode 100644
index 0000000..b670cbc
--- /dev/null
+++ b/racket-7.4-remove-nonfree.patch
@@ -0,0 +1,967 @@
+diff -urN racket-7.4-orig/share/links.rktd racket-7.4-remove-nonfree/share/links.rktd
+--- racket-7.4-orig/share/links.rktd 2019-08-03 23:31:24.000000000 -0400
++++ racket-7.4-remove-nonfree/share/links.rktd 2019-08-28 09:27:21.416018118 -0400
+@@ -177,7 +177,6 @@
+ (root "pkgs/slideshow-exe")
+ (root "pkgs/slideshow-plugin")
+ (root "pkgs/srfi-doc")
+- (root "pkgs/srfi-doc-nonfree")
+ (root "pkgs/syntax-color-doc")
+ (root "pkgs/web-server-lib")
+ (root "pkgs/unix-socket-lib")
+diff -urN racket-7.4-orig/share/pkgs/pkgs.rktd racket-7.4-remove-nonfree/share/pkgs/pkgs.rktd
+--- racket-7.4-orig/share/pkgs/pkgs.rktd 2019-08-03 23:31:24.000000000 -0400
++++ racket-7.4-remove-nonfree/share/pkgs/pkgs.rktd 2019-08-28 09:28:17.804384118 -0400
+@@ -1 +1 @@
+-#hash(("2d" . #s(pkg-info (catalog "2d") "fc82a7bd227d7f3b8852351fc6bf34948a7750b8" #t)) ("2d-doc" . #s((sc-pkg-info pkg-info 3) (catalog "2d-doc") "209614ab3da685f46ece52c2efdf976f1e7697b1" #t "2d")) ("2d-lib" . #s((sc-pkg-info pkg-info 3) (catalog "2d-lib") "8f5dd908df23ee2a698b178971be4e18d1937393" #t "2d")) ("algol60" . #s((sc-pkg-info pkg-info 3) (catalog "algol60") "5a67faec1e3f59e98d5d5c4ee4687a9e9a34962f" #t "algol60")) ("at-exp-lib" . #s(pkg-info (catalog "at-exp-lib") "68787a39b1d862726969eb03e54c6fcbab05d8d4" #t)) ("base" . #s(pkg-info (catalog "base") "249d2a371f12382b1360dd7a77702fb28551133b" #t)) ("cext-lib" . #s(pkg-info (catalog "cext-lib") "1ce5c3f8ef512216a402de1e139a242cf6593999" #t)) ("class-iop-lib" . #s(pkg-info (catalog "class-iop-lib") "29c5747600fa93d2dac540e3381291e45fa09300" #t)) ("compatibility" . #s(pkg-info (catalog "compatibility") "0fd2da43b30b0f27aaafa5d67af21ddf7fe02dd6" #t)) ("compatibility-doc" . #s(pkg-info (catalog "compatibility-doc") "fee62d07a8e143615c24f365c7c48c30e1eebe8c" #t)) ("compatibility-lib" . #s(pkg-info (catalog "compatibility-lib") "8d1011f2f86192a07714e4088ff5e23ca794471a" #t)) ("compiler" . #s(pkg-info (catalog "compiler") "b1a38a648d3cb1adaca66e1d9fb2a3636421f4f8" #t)) ("compiler-lib" . #s(pkg-info (catalog "compiler-lib") "b60403b4873befa5811e5fabb65970a24e0bb950" #t)) ("contract-profile" . #s((sc-pkg-info pkg-info 3) (catalog "contract-profile") "001eec9d842dcd35b6f082934e614ba86a2ab4c0" #t "contract-profile")) ("data" . #s(pkg-info (catalog "data") "98ef519ebf74d40ba645d00933e47fa0a516c96f" #t)) ("data-doc" . #s(pkg-info (catalog "data-doc") "ebfdbebb77721a087efc803f30bec6afe2292097" #t)) ("data-enumerate-lib" . #s(pkg-info (catalog "data-enumerate-lib") "f70dcd6ce6d7b14d1f1cc76b908df7cb2fd61929" #t)) ("data-lib" . #s(pkg-info (catalog "data-lib") "7fb6940020f610c669df432877213bfe79caebc7" #t)) ("datalog" . #s((sc-pkg-info pkg-info 3) (catalog "datalog") "411342493d6022b7d74f7e13955dfdfcf6e62f91" #t "datalog")) ("db" . #s(pkg-info (catalog "db") "13af2037227b04af20e85e2fef78cc9686fc6e3d" #t)) ("db-doc" . #s(pkg-info (catalog "db-doc") "ed6cb9e0f165f5e390347d9a979f994c80e09e6a" #t)) ("db-lib" . #s(pkg-info (catalog "db-lib") "5c97b5ac2a3cf661d85cd7177029ce4686a9391e" #t)) ("deinprogramm" . #s(pkg-info (catalog "deinprogramm") "9e908294790f919de34f67ab3321f57a53f52e36" #t)) ("deinprogramm-signature" . #s(pkg-info (catalog "deinprogramm-signature") "433e0dc1f4f74ef73074ce1c387b06e9e260e212" #t)) ("distributed-places" . #s(pkg-info (catalog "distributed-places") "145c1cedf46768adf061fade24893965840f1643" #t)) ("distributed-places-doc" . #s(pkg-info (catalog "distributed-places-doc") "fda0badbab4441172b33ae31c3b2272ce59bcd3c" #t)) ("distributed-places-lib" . #s(pkg-info (catalog "distributed-places-lib") "db733a858f67c295196d3d5e62d4d1047dbe10c4" #t)) ("draw" . #s(pkg-info (catalog "draw") "1e57984e4a7e93fc30e6f42382b3bdf2d5162759" #t)) ("draw-doc" . #s(pkg-info (catalog "draw-doc") "e7348bde06b88e4261d46eeeb7a1b69cb1c4b5bb" #t)) ("draw-lib" . #s(pkg-info (catalog "draw-lib") "8343a0e4d9c082e2b5da7f36590f3d6f81a90815" #t)) ("drracket" . #s(pkg-info (catalog "drracket") "0233b83af527c6866ce458d5869c02f1c3148569" #t)) ("drracket-plugin-lib" . #s(pkg-info (catalog "drracket-plugin-lib") "c4715aa5984bf8dfe48d44038b4eb81525f7cac7" #t)) ("drracket-tool" . #s(pkg-info (catalog "drracket-tool") "93dcb297ed4ad62cf4605d632da64023bdfc1e69" #t)) ("drracket-tool-doc" . #s(pkg-info (catalog "drracket-tool-doc") "f44fa4ef2a14aaff04d3b26d5b4a701678e42b68" #t)) ("drracket-tool-lib" . #s(pkg-info (catalog "drracket-tool-lib") "f3ca7e15b2592b40c4aaf734cf00126d71e0876d" #t)) ("ds-store" . #s((sc-pkg-info pkg-info 3) (catalog "ds-store") "f3b74900e431d9ca6ee1038fb7dd1e08d759b009" #t "ds-store")) ("ds-store-doc" . #s((sc-pkg-info pkg-info 3) (catalog "ds-store-doc") "06b754e0bc7ed6bd6ebf26b8ab4b3ae223ff9e3d" #t "ds-store")) ("ds-store-lib" . #s((sc-pkg-info pkg-info 3) (catalog "ds-store-lib") "517b5f727a5df1d7230cfeae5c208433d9717d2a" #t "ds-store")) ("dynext-lib" . #s(pkg-info (catalog "dynext-lib") "6327a91cf80c504524e1de84f2613263e62da80e" #t)) ("eli-tester" . #s(pkg-info (catalog "eli-tester") "0c9bfc31ad180898a7f10af252009084b0de30eb" #t)) ("eopl" . #s((sc-pkg-info pkg-info 3) (catalog "eopl") "b7725c60cac4f51be2fefef5bc393857c07dc0af" #t "eopl")) ("errortrace" . #s(pkg-info (catalog "errortrace") "f8d7f00c7dacc7d1bb2bc99c76129798319881e7" #t)) ("errortrace-doc" . #s(pkg-info (catalog "errortrace-doc") "aea79310a7f250d43325f82467b4c4126338a425" #t)) ("errortrace-lib" . #s(pkg-info (catalog "errortrace-lib") "0b7417f006208d6c8fb5f4fa61e1099a970f1fc2" #t)) ("frtime" . #s((sc-pkg-info pkg-info 3) (catalog "frtime") "83bf86eb4a5f6b1a2f53ac8f7b0c265ca8e27839" #t "frtime")) ("future-visualizer" . #s(pkg-info (catalog "future-visualizer") "76bc592353681f3d673841d65230deecd901ee8f" #t)) ("future-visualizer-typed" . #s(pkg-info (catalog "future-visualizer-typed") "a1698d4264a5267ac49b2451211e3391216a4e82" #t)) ("games" . #s((sc-pkg-info pkg-info 3) (catalog "games") "0ad78fb4ec37b6f19435b7599a566c1bb2e5847c" #t "games")) ("gui" . #s(pkg-info (catalog "gui") "a74759a9030789bdea8a324bd69cad5e162c5937" #t)) ("gui-doc" . #s(pkg-info (catalog "gui-doc") "e79b96b5ded5e81a5beeb33d905d7e7ccd893074" #t)) ("gui-lib" . #s(pkg-info (catalog "gui-lib") "35c5e9a5dd69ba6839210d49e6c967ba418e9cc4" #t)) ("gui-pkg-manager-lib" . #s(pkg-info (catalog "gui-pkg-manager-lib") "1e0d8a3f2a60642e785c0459108f1be6034dbcb1" #t)) ("htdp" . #s(pkg-info (catalog "htdp") "6e222eff85bae1b326f4282d8b82fc5c83202cfe" #t)) ("htdp-doc" . #s(pkg-info (catalog "htdp-doc") "e5892b0ae846f64e997e34ae2afb165b35f290b9" #t)) ("htdp-lib" . #s(pkg-info (catalog "htdp-lib") "1f18bce701e14d76fa2e4f14f8cded185b00a66d" #t)) ("html" . #s(pkg-info (catalog "html") "59ab0bddd4935969e2af0469ad48a9c30f33ef60" #t)) ("html-doc" . #s(pkg-info (catalog "html-doc") "3cd2a18da0b91b209d196f0cf669f2e59829d2bc" #t)) ("html-lib" . #s(pkg-info (catalog "html-lib") "2b17b0447932ee0a5287581269d24b5e3e9dcbb5" #t)) ("icons" . #s((sc-pkg-info pkg-info 3) (catalog "icons") "77e8f436f370ce8d88aa39622c5921664b56845b" #t "icons")) ("images" . #s(pkg-info (catalog "images") "98c6a0e120eb1115db9d376759b245db0591b07b" #t)) ("images-doc" . #s(pkg-info (catalog "images-doc") "99e114a7c7e234b6eaa23f99f863d03986bd62b5" #t)) ("images-gui-lib" . #s(pkg-info (catalog "images-gui-lib") "fef0ec840d82ed975370087fdcb049e0cce8e339" #t)) ("images-lib" . #s(pkg-info (catalog "images-lib") "9dcdc2e2388c63063a4a161e09585119d8d18e88" #t)) ("lazy" . #s((sc-pkg-info pkg-info 3) (catalog "lazy") "8038fc1a353a1618a5c19feecd7de1150719a9fc" #t "lazy")) ("macro-debugger" . #s(pkg-info (catalog "macro-debugger") "448277bb97132d25236deb785dce8c81933235d2" #t)) ("macro-debugger-text-lib" . #s(pkg-info (catalog "macro-debugger-text-lib") "0549dc476d9f071569d59359dbe6e4039f8af250" #t)) ("main-distribution" . #s(pkg-info (catalog "main-distribution") "3d0f4e0314c4b437feb7c3b86ff69cf20ad1e0f0" #f)) ("make" . #s((sc-pkg-info pkg-info 3) (catalog "make") "93e3f1b4144e3a04392b753cedc34c7c49e63fe5" #t "make")) ("math" . #s(pkg-info (catalog "math") "bc288b3ed293e90ef3a4eb05971d388265dc7065" #t)) ("math-doc" . #s(pkg-info (catalog "math-doc") "119b215101c0f1f82b6d28e06f5288812f38f2c3" #t)) ("math-lib" . #s(pkg-info (catalog "math-lib") "4e159abc47c306364ad02549853c1ddf82d6f8a2" #t)) ("mysterx" . #s((sc-pkg-info pkg-info 3) (catalog "mysterx") "23487c08b23cb7d965b97b0c45e6e3553854b869" #t "mysterx")) ("mzcom" . #s((sc-pkg-info pkg-info 3) (catalog "mzcom") "ac97bd1dc80a2f867d17f75254a8bbb9faa24afd" #t "mzcom")) ("mzscheme" . #s(pkg-info (catalog "mzscheme") "2a45b98e73f899324f2c5678d93df74f1792d23c" #t)) ("mzscheme-doc" . #s(pkg-info (catalog "mzscheme-doc") "de48e8b819047025177fac06b6f254e6f939fd23" #t)) ("mzscheme-lib" . #s(pkg-info (catalog "mzscheme-lib") "a6a2ec7fd0946a46c5368dbe1d7602419f8e7b53" #t)) ("net" . #s(pkg-info (catalog "net") "5df16fb466651bbb270a30296b1e8ee5f86af6fe" #t)) ("net-cookies" . #s(pkg-info (catalog "net-cookies") "51f6db09a36adbeb73e6bfc25bcd7d2123cc563e" #t)) ("net-cookies-doc" . #s(pkg-info (catalog "net-cookies-doc") "c1380af8407ce13dc993830db20250d7348117a8" #t)) ("net-cookies-lib" . #s(pkg-info (catalog "net-cookies-lib") "12f95b8fa1d9d562cd2bc7b499dd2fdc7111d122" #t)) ("net-doc" . #s(pkg-info (catalog "net-doc") "effd2e00136f037f9c524e25973ffa0b4b5f6ab8" #t)) ("net-lib" . #s(pkg-info (catalog "net-lib") "c0e7e3b3d55d067fa1fa3d13736877f33fe4fe76" #t)) ("optimization-coach" . #s(pkg-info (catalog "optimization-coach") "79ef3e4ec8de133f6f0b1838218b9478ba22d9bc" #t)) ("option-contract" . #s(pkg-info (catalog "option-contract") "14f8553d264972db98ecb25007f0c62f72c88837" #t)) ("option-contract-doc" . #s(pkg-info (catalog "option-contract-doc") "12d4da169785f5af1e8e38357713656385b4a75d" #t)) ("option-contract-lib" . #s(pkg-info (catalog "option-contract-lib") "f01bff6dccd0e6cf8721ac9cf3a819c5a9fd25b7" #t)) ("parser-tools" . #s(pkg-info (catalog "parser-tools") "7c90da6b7e8b13a5faed4d196f29f74d24c308a3" #t)) ("parser-tools-doc" . #s(pkg-info (catalog "parser-tools-doc") "d3d05e4f5f175f790775c835317034e8f6b6394e" #t)) ("parser-tools-lib" . #s(pkg-info (catalog "parser-tools-lib") "22eaaae7d2dc79755eaf96029554ebb48fb7ccaf" #t)) ("pconvert-lib" . #s(pkg-info (catalog "pconvert-lib") "cf75aa36ac881f36c9f845f9b3d5c75bb016caac" #t)) ("pict" . #s(pkg-info (catalog "pict") "b58b1e3ff96f16f62a8ca6e52efcf143d02c2552" #t)) ("pict-doc" . #s(pkg-info (catalog "pict-doc") "8e95db03fae67b105bd6afdce6c4dfcaf587c2c9" #t)) ("pict-lib" . #s(pkg-info (catalog "pict-lib") "2abed1569d91f15fa61d95e11f53d5cbbef610e1" #t)) ("pict-snip" . #s(pkg-info (catalog "pict-snip") "07039265dc698b136044724e4802b64517ba5209" #t)) ("pict-snip-doc" . #s(pkg-info (catalog "pict-snip-doc") "2453a4852fc2987b42f4ad4f6e92a1a448418db5" #t)) ("pict-snip-lib" . #s(pkg-info (catalog "pict-snip-lib") "28f4f45649589e010ab6c6cdc3e82ac9ff1fbe7f" #t)) ("picturing-programs" . #s(pkg-info (catalog "picturing-programs") "325870110f44e006c228f41619b5c77f331b82a1" #t)) ("plai" . #s(pkg-info (catalog "plai") "6ac6f533410efd33f655d51314228c77c83172ac" #t)) ("plai-doc" . #s((sc-pkg-info pkg-info 3) (catalog "plai-doc") "c8363060f66e1bd1ddc72c8271e86cf3fcbeff9e" #t "plai")) ("plai-lib" . #s((sc-pkg-info pkg-info 3) (catalog "plai-lib") "978f240e75c6ad1a4843a010fe250d9977e93339" #t "plai")) ("planet" . #s(pkg-info (catalog "planet") "e1a53854ddae4cf4eef667a91f3c944eb1481371" #t)) ("planet-doc" . #s(pkg-info (catalog "planet-doc") "0356d590361d2b909c717e97dc4f9eb2b567461a" #t)) ("planet-lib" . #s(pkg-info (catalog "planet-lib") "a0993c8b1c3ae0f08f75a6e70d785dfa3e7adf66" #t)) ("plot" . #s(pkg-info (catalog "plot") "898a4c570ed38396d684f260efa240d66accead9" #t)) ("plot-compat" . #s(pkg-info (catalog "plot-compat") "01b129e6ee41080f090c02054d07c7856ae2c06c" #t)) ("plot-doc" . #s(pkg-info (catalog "plot-doc") "70b006d5da401955e00000fcf6a3aacc296cd687" #t)) ("plot-gui-lib" . #s(pkg-info (catalog "plot-gui-lib") "57d49ac10de7a4d2520fe8a3c625eb91e6af8359" #t)) ("plot-lib" . #s(pkg-info (catalog "plot-lib") "84fecbb718ed024176c79f271f30579f5d753339" #t)) ("preprocessor" . #s((sc-pkg-info pkg-info 3) (catalog "preprocessor") "38fc7981a096322c67e4f7d9afac6f1fe664529e" #t "preprocessor")) ("profile" . #s(pkg-info (catalog "profile") "2183f9722eb2efbe2c8feb400b73602ad97fe221" #t)) ("profile-doc" . #s(pkg-info (catalog "profile-doc") "1d7c7dd2ad37e0d6c842cf30c7a01a631b18a39e" #t)) ("profile-lib" . #s((sc-pkg-info pkg-info 3) (catalog "profile-lib") "4eed8ba01f406d199604b3727c405c2bf368a617" #t "profile")) ("quickscript" . #s((sc-pkg-info pkg-info 3) (catalog "quickscript") "0c531a78067442fb5ac2b404f92c92427cff8bec" #t "quickscript")) ("r5rs" . #s(pkg-info (catalog "r5rs") "febae235a352df6df59a2e2c45b8658322793103" #t)) ("r5rs-doc" . #s(pkg-info (catalog "r5rs-doc") "3b842a310c928a0647b0c29cb3eabe215270f8e2" #t)) ("r5rs-lib" . #s(pkg-info (catalog "r5rs-lib") "9fcc4ebda67e44abd34e6c97a1448cd9a3947b77" #t)) ("r6rs" . #s(pkg-info (catalog "r6rs") "2ba0a84b06e7ab0ab49308fb6b58c23b29e39662" #t)) ("r6rs-doc" . #s(pkg-info (catalog "r6rs-doc") "972c5762a28dd773190c7aa46f9b972ac7c4c44e" #t)) ("r6rs-lib" . #s(pkg-info (catalog "r6rs-lib") "0a80a45a9666924b02b7e41002b3122b0b0606e3" #t)) ("racket-cheat" . #s((sc-pkg-info pkg-info 3) (catalog "racket-cheat") "11ef1c76f6459d0039e13cdc04326f5c54c28714" #t "racket-cheat")) ("racket-doc" . #s(pkg-info (catalog "racket-doc") "7c41f0b0ae91a7d77da4d4f15c2e5e2f6ab5c689" #t)) ("racket-index" . #s(pkg-info (catalog "racket-index") "ec294cafcf79f9a7034d02b4b3ff8c2e2a717622" #t)) ("racket-lib" . #s(pkg-info (catalog "racket-lib") "addde48592db0ba3db8686c37951f20c7112d368" #f)) ("racklog" . #s((sc-pkg-info pkg-info 3) (catalog "racklog") "a587b4aa82ff470e0646185cce033900e1bdafa8" #t "racklog")) ("rackunit" . #s(pkg-info (catalog "rackunit") "4b9de5253bfc93a4ba11e527bed3314d48ab0fc8" #t)) ("rackunit-doc" . #s(pkg-info (catalog "rackunit-doc") "26d22124d6eab4c79b73d778deef7b9bc73c2dec" #t)) ("rackunit-gui" . #s(pkg-info (catalog "rackunit-gui") "4cb8bc7487ff6bd55f653708d51f29fb75b490e2" #t)) ("rackunit-lib" . #s(pkg-info (catalog "rackunit-lib") "0069571fffeb268232fab1db7e9c6e8ea124f1ac" #t)) ("rackunit-plugin-lib" . #s(pkg-info (catalog "rackunit-plugin-lib") "a663951f3c13e3a6c0228949d97c6b2eef4a5b6c" #t)) ("rackunit-typed" . #s((sc-pkg-info pkg-info 3) (catalog "rackunit-typed") "d3ea39520e71e1fdcdaee0a4218575592c44a41a" #t "typed")) ("readline" . #s(pkg-info (catalog "readline") "4c7e66cd27cf4408832c87e3ee86df7a6eefa09d" #t)) ("readline-doc" . #s(pkg-info (catalog "readline-doc") "3bded5f74e621afb05b47f4fb05e455d8c2ee3f7" #t)) ("readline-lib" . #s(pkg-info (catalog "readline-lib") "a5182fa3edd32b9d63e6c355ccb372e0310a9d6d" #t)) ("realm" . #s((sc-pkg-info pkg-info 3) (catalog "realm") "f013fc3db6882ece583015d48f0ad8e1e971601d" #t "realm")) ("redex" . #s(pkg-info (catalog "redex") "57c8ddc62fd86b0ede08e92a7e47d35527768e99" #t)) ("redex-benchmark" . #s(pkg-info (catalog "redex-benchmark") "2433d94442a5f32f16d152656b168d1e6218aaa7" #t)) ("redex-doc" . #s(pkg-info (catalog "redex-doc") "6cedd1cfdc891d7ac3b46fcfe7767a4681443515" #t)) ("redex-examples" . #s(pkg-info (catalog "redex-examples") "98a38101bd790fa6bd8ff16ce8e2fb65245cb87c" #t)) ("redex-gui-lib" . #s(pkg-info (catalog "redex-gui-lib") "80083d5cded16afb0d45a59cdd655ddd396b8685" #t)) ("redex-lib" . #s(pkg-info (catalog "redex-lib") "04c6bc3954bf30293e0b5cfe76294a799e2f1aae" #t)) ("redex-pict-lib" . #s(pkg-info (catalog "redex-pict-lib") "9b13a5976edd63728d8914fc20bffb5ad981302f" #t)) ("sandbox-lib" . #s(pkg-info (catalog "sandbox-lib") "5b6080ff4052f881c343f6ccc847f860acb501a9" #t)) ("sasl" . #s((sc-pkg-info pkg-info 3) (catalog "sasl") "8dc49968c1ef11c5dd77f56c5979453a36d2c750" #t "sasl")) ("sasl-doc" . #s((sc-pkg-info pkg-info 3) (catalog "sasl-doc") "02b6cf131a97af9caa622a77592bb851f5d58fa3" #t "sasl")) ("sasl-lib" . #s((sc-pkg-info pkg-info 3) (catalog "sasl-lib") "d4ecdad04e42658a69d70d2f7d5eadae7ed7d16e" #t "sasl")) ("scheme-lib" . #s(pkg-info (catalog "scheme-lib") "22e71c59ac20b09cd156062ce0fb0afb86aaa851" #t)) ("schemeunit" . #s((sc-pkg-info pkg-info 3) (catalog "schemeunit") "03986b499744194a9e06a66dfe988bed9fb8cc40" #t "schemeunit")) ("scribble" . #s(pkg-info (catalog "scribble") "862cac10d6934b0dca35b4ebace9ffa0faa3a381" #t)) ("scribble-doc" . #s(pkg-info (catalog "scribble-doc") "fc38088b2924e7d902ceafc94243fd3ca2a52b45" #t)) ("scribble-html-lib" . #s(pkg-info (catalog "scribble-html-lib") "13105ce2064fa963c535187a657792e1ec95d284" #t)) ("scribble-lib" . #s(pkg-info (catalog "scribble-lib") "9be1c71d1c0f3f0d41031416689f012a16ba535a" #t)) ("scribble-text-lib" . #s(pkg-info (catalog "scribble-text-lib") "1d816dcc95b5f6d77ff6633b82a6dd40f7effe4e" #t)) ("serialize-cstruct-lib" . #s(pkg-info (catalog "serialize-cstruct-lib") "caeab596cb494273bcb84b917205a66bd06d0528" #t)) ("sgl" . #s((sc-pkg-info pkg-info 3) (catalog "sgl") "a2feb4952e01c7e02af068978ade81d0a213e035" #t "sgl")) ("shell-completion" . #s((sc-pkg-info pkg-info 3) (catalog "shell-completion") "900d6f81d7f78d17ac1789436c36a3314f09fcec" #t "shell-completion")) ("slatex" . #s((sc-pkg-info pkg-info 3) (catalog "slatex") "7a36270767b37d0336b4d72c7ca89140f395f9af" #t "slatex")) ("slideshow" . #s(pkg-info (catalog "slideshow") "62d9fa5b5fc8f1b82fb7acae427e474488fb1c2a" #t)) ("slideshow-doc" . #s(pkg-info (catalog "slideshow-doc") "d023178269517583e08ea3afc13bd8e867e86eaa" #t)) ("slideshow-exe" . #s(pkg-info (catalog "slideshow-exe") "4764478f8f62ba0a9d66ef064945af605cac48cc" #t)) ("slideshow-lib" . #s(pkg-info (catalog "slideshow-lib") "b7d301d8496d23dd950606d50a2c9565067f77f5" #t)) ("slideshow-plugin" . #s(pkg-info (catalog "slideshow-plugin") "50fe3549998180cf9391d355fce67c1b95fee846" #t)) ("snip" . #s(pkg-info (catalog "snip") "f6401933decce0674344953461fc80be6b600748" #t)) ("snip-lib" . #s(pkg-info (catalog "snip-lib") "8cf6a919d5d9021f782423b3712a0e73cf93842a" #t)) ("source-syntax" . #s((sc-pkg-info pkg-info 3) (catalog "source-syntax") "b6dde72b228b3e8e7da35fbc25cce395c8dce9cb" #t "syntax")) ("srfi" . #s(pkg-info (catalog "srfi") "810795b1c70213bba3e3f02c29c0ec0be774d551" #t)) ("srfi-doc" . #s(pkg-info (catalog "srfi-doc") "9bcb860c00d8023421c3ab3e2785ab8ee92b8f9d" #t)) ("srfi-doc-nonfree" . #s(pkg-info (catalog "srfi-doc-nonfree") "6ac01197bd6a33c21ff69684704e73739708d92c" #t)) ("srfi-lib" . #s(pkg-info (catalog "srfi-lib") "8dd9d951c94054ec60a4e1d59fa2c1a462e8fff6" #t)) ("srfi-lite-lib" . #s(pkg-info (catalog "srfi-lite-lib") "2a40a8ecf4a2368b6c84d8f0bdd1c72df4f3cc7f" #t)) ("string-constants" . #s(pkg-info (catalog "string-constants") "602234aee270ea040b993f8146548aa0c835ee41" #t)) ("string-constants-doc" . #s(pkg-info (catalog "string-constants-doc") "627c9a564c187d9dbd2a1c6de302e38ed8cd105e" #t)) ("string-constants-lib" . #s(pkg-info (catalog "string-constants-lib") "85764e7ecf8df819142221a84380340c23607e18" #t)) ("swindle" . #s((sc-pkg-info pkg-info 3) (catalog "swindle") "56793a3d43336a0dfc1fb6d4933a6a7d0a6f18a6" #t "swindle")) ("syntax-color" . #s(pkg-info (catalog "syntax-color") "0ab7c010c146aacbc26f81d73050e5dcb1ec44a4" #t)) ("syntax-color-doc" . #s(pkg-info (catalog "syntax-color-doc") "ebc23963c2f235893a2ae998311c439ca5f2de5e" #t)) ("syntax-color-lib" . #s(pkg-info (catalog "syntax-color-lib") "c496941837238109ebf69e6a2a3740136baf077e" #t)) ("testing-util-lib" . #s(pkg-info (catalog "testing-util-lib") "6ad76708f90cc3938a72d556458f92cde3e30578" #t)) ("tex-table" . #s((sc-pkg-info pkg-info 3) (catalog "tex-table") "c6127491120f723f26dbba30d217e4f2aeb12084" #t "mrlib")) ("trace" . #s((sc-pkg-info pkg-info 3) (catalog "trace") "953c7b5e344cfc8859006ffbfce4fdf360647d81" #t "trace")) ("typed-racket" . #s(pkg-info (catalog "typed-racket") "7896fb7492e6230f58d73d202ce9e6f77e3f98b7" #t)) ("typed-racket-compatibility" . #s(pkg-info (catalog "typed-racket-compatibility") "1bf2425d25d54c653d693290f41e9587847357a6" #t)) ("typed-racket-doc" . #s(pkg-info (catalog "typed-racket-doc") "d338099f40c47dbfb62f699206e99cfdfa7e32d6" #t)) ("typed-racket-lib" . #s(pkg-info (catalog "typed-racket-lib") "3eff82ebcceeab467c35cf19044013c83a47bd32" #t)) ("typed-racket-more" . #s(pkg-info (catalog "typed-racket-more") "600a695a0f59fe2740cf9e2080a13e25310a5114" #t)) ("unix-socket" . #s(pkg-info (catalog "unix-socket") "c015b6081883e19b3f1d2343bddca9895499832c" #t)) ("unix-socket-doc" . #s(pkg-info (catalog "unix-socket-doc") "b5d7f058cd0984aef1d8214968e79c202b972636" #t)) ("unix-socket-lib" . #s(pkg-info (catalog "unix-socket-lib") "e8d16e6cf98e03dc141ce410e7fddb83eb420e54" #t)) ("web-server" . #s(pkg-info (catalog "web-server") "9e01035046e279382ab2c1aa5c3f68d7533afd64" #t)) ("web-server-doc" . #s(pkg-info (catalog "web-server-doc") "afb48732580aaf70f2d13dc0f3115f25672a0fb6" #t)) ("web-server-lib" . #s(pkg-info (catalog "web-server-lib") "1fb4a0c9718b0e835d730f92289f9855018dfee3" #t)) ("wxme" . #s(pkg-info (catalog "wxme") "a56f70bd66b595d03baa8fb60046c3826b3abaaa" #t)) ("wxme-lib" . #s(pkg-info (catalog "wxme-lib") "75d7ad58da6d6fe5e3b5d81fe3f1e73b37460ae5" #t)) ("xrepl" . #s(pkg-info (catalog "xrepl") "c577bf792fde613ada8dc08f3b76b9daf3fc6814" #t)) ("xrepl-doc" . #s(pkg-info (catalog "xrepl-doc") "1724207363217dc4e931ac92e017c594a7a2a44b" #t)) ("xrepl-lib" . #s(pkg-info (catalog "xrepl-lib") "829e38b7ffcd0508842871b5aa354a531ddee4fa" #t)) ("zo-lib" . #s(pkg-info (catalog "zo-lib") "0f00c96ccaf933002e5c1e9f6b9e8856cbcd04eb" #t)))
++#hash(("2d" . #s(pkg-info (catalog "2d") "fc82a7bd227d7f3b8852351fc6bf34948a7750b8" #t)) ("2d-doc" . #s((sc-pkg-info pkg-info 3) (catalog "2d-doc") "209614ab3da685f46ece52c2efdf976f1e7697b1" #t "2d")) ("2d-lib" . #s((sc-pkg-info pkg-info 3) (catalog "2d-lib") "8f5dd908df23ee2a698b178971be4e18d1937393" #t "2d")) ("algol60" . #s((sc-pkg-info pkg-info 3) (catalog "algol60") "5a67faec1e3f59e98d5d5c4ee4687a9e9a34962f" #t "algol60")) ("at-exp-lib" . #s(pkg-info (catalog "at-exp-lib") "68787a39b1d862726969eb03e54c6fcbab05d8d4" #t)) ("base" . #s(pkg-info (catalog "base") "249d2a371f12382b1360dd7a77702fb28551133b" #t)) ("cext-lib" . #s(pkg-info (catalog "cext-lib") "1ce5c3f8ef512216a402de1e139a242cf6593999" #t)) ("class-iop-lib" . #s(pkg-info (catalog "class-iop-lib") "29c5747600fa93d2dac540e3381291e45fa09300" #t)) ("compatibility" . #s(pkg-info (catalog "compatibility") "0fd2da43b30b0f27aaafa5d67af21ddf7fe02dd6" #t)) ("compatibility-doc" . #s(pkg-info (catalog "compatibility-doc") "fee62d07a8e143615c24f365c7c48c30e1eebe8c" #t)) ("compatibility-lib" . #s(pkg-info (catalog "compatibility-lib") "8d1011f2f86192a07714e4088ff5e23ca794471a" #t)) ("compiler" . #s(pkg-info (catalog "compiler") "b1a38a648d3cb1adaca66e1d9fb2a3636421f4f8" #t)) ("compiler-lib" . #s(pkg-info (catalog "compiler-lib") "b60403b4873befa5811e5fabb65970a24e0bb950" #t)) ("contract-profile" . #s((sc-pkg-info pkg-info 3) (catalog "contract-profile") "001eec9d842dcd35b6f082934e614ba86a2ab4c0" #t "contract-profile")) ("data" . #s(pkg-info (catalog "data") "98ef519ebf74d40ba645d00933e47fa0a516c96f" #t)) ("data-doc" . #s(pkg-info (catalog "data-doc") "ebfdbebb77721a087efc803f30bec6afe2292097" #t)) ("data-enumerate-lib" . #s(pkg-info (catalog "data-enumerate-lib") "f70dcd6ce6d7b14d1f1cc76b908df7cb2fd61929" #t)) ("data-lib" . #s(pkg-info (catalog "data-lib") "7fb6940020f610c669df432877213bfe79caebc7" #t)) ("datalog" . #s((sc-pkg-info pkg-info 3) (catalog "datalog") "411342493d6022b7d74f7e13955dfdfcf6e62f91" #t "datalog")) ("db" . #s(pkg-info (catalog "db") "13af2037227b04af20e85e2fef78cc9686fc6e3d" #t)) ("db-doc" . #s(pkg-info (catalog "db-doc") "ed6cb9e0f165f5e390347d9a979f994c80e09e6a" #t)) ("db-lib" . #s(pkg-info (catalog "db-lib") "5c97b5ac2a3cf661d85cd7177029ce4686a9391e" #t)) ("deinprogramm" . #s(pkg-info (catalog "deinprogramm") "9e908294790f919de34f67ab3321f57a53f52e36" #t)) ("deinprogramm-signature" . #s(pkg-info (catalog "deinprogramm-signature") "433e0dc1f4f74ef73074ce1c387b06e9e260e212" #t)) ("distributed-places" . #s(pkg-info (catalog "distributed-places") "145c1cedf46768adf061fade24893965840f1643" #t)) ("distributed-places-doc" . #s(pkg-info (catalog "distributed-places-doc") "fda0badbab4441172b33ae31c3b2272ce59bcd3c" #t)) ("distributed-places-lib" . #s(pkg-info (catalog "distributed-places-lib") "db733a858f67c295196d3d5e62d4d1047dbe10c4" #t)) ("draw" . #s(pkg-info (catalog "draw") "1e57984e4a7e93fc30e6f42382b3bdf2d5162759" #t)) ("draw-doc" . #s(pkg-info (catalog "draw-doc") "e7348bde06b88e4261d46eeeb7a1b69cb1c4b5bb" #t)) ("draw-lib" . #s(pkg-info (catalog "draw-lib") "8343a0e4d9c082e2b5da7f36590f3d6f81a90815" #t)) ("drracket" . #s(pkg-info (catalog "drracket") "0233b83af527c6866ce458d5869c02f1c3148569" #t)) ("drracket-plugin-lib" . #s(pkg-info (catalog "drracket-plugin-lib") "c4715aa5984bf8dfe48d44038b4eb81525f7cac7" #t)) ("drracket-tool" . #s(pkg-info (catalog "drracket-tool") "93dcb297ed4ad62cf4605d632da64023bdfc1e69" #t)) ("drracket-tool-doc" . #s(pkg-info (catalog "drracket-tool-doc") "f44fa4ef2a14aaff04d3b26d5b4a701678e42b68" #t)) ("drracket-tool-lib" . #s(pkg-info (catalog "drracket-tool-lib") "f3ca7e15b2592b40c4aaf734cf00126d71e0876d" #t)) ("ds-store" . #s((sc-pkg-info pkg-info 3) (catalog "ds-store") "f3b74900e431d9ca6ee1038fb7dd1e08d759b009" #t "ds-store")) ("ds-store-doc" . #s((sc-pkg-info pkg-info 3) (catalog "ds-store-doc") "06b754e0bc7ed6bd6ebf26b8ab4b3ae223ff9e3d" #t "ds-store")) ("ds-store-lib" . #s((sc-pkg-info pkg-info 3) (catalog "ds-store-lib") "517b5f727a5df1d7230cfeae5c208433d9717d2a" #t "ds-store")) ("dynext-lib" . #s(pkg-info (catalog "dynext-lib") "6327a91cf80c504524e1de84f2613263e62da80e" #t)) ("eli-tester" . #s(pkg-info (catalog "eli-tester") "0c9bfc31ad180898a7f10af252009084b0de30eb" #t)) ("eopl" . #s((sc-pkg-info pkg-info 3) (catalog "eopl") "b7725c60cac4f51be2fefef5bc393857c07dc0af" #t "eopl")) ("errortrace" . #s(pkg-info (catalog "errortrace") "f8d7f00c7dacc7d1bb2bc99c76129798319881e7" #t)) ("errortrace-doc" . #s(pkg-info (catalog "errortrace-doc") "aea79310a7f250d43325f82467b4c4126338a425" #t)) ("errortrace-lib" . #s(pkg-info (catalog "errortrace-lib") "0b7417f006208d6c8fb5f4fa61e1099a970f1fc2" #t)) ("frtime" . #s((sc-pkg-info pkg-info 3) (catalog "frtime") "83bf86eb4a5f6b1a2f53ac8f7b0c265ca8e27839" #t "frtime")) ("future-visualizer" . #s(pkg-info (catalog "future-visualizer") "76bc592353681f3d673841d65230deecd901ee8f" #t)) ("future-visualizer-typed" . #s(pkg-info (catalog "future-visualizer-typed") "a1698d4264a5267ac49b2451211e3391216a4e82" #t)) ("games" . #s((sc-pkg-info pkg-info 3) (catalog "games") "0ad78fb4ec37b6f19435b7599a566c1bb2e5847c" #t "games")) ("gui" . #s(pkg-info (catalog "gui") "a74759a9030789bdea8a324bd69cad5e162c5937" #t)) ("gui-doc" . #s(pkg-info (catalog "gui-doc") "e79b96b5ded5e81a5beeb33d905d7e7ccd893074" #t)) ("gui-lib" . #s(pkg-info (catalog "gui-lib") "35c5e9a5dd69ba6839210d49e6c967ba418e9cc4" #t)) ("gui-pkg-manager-lib" . #s(pkg-info (catalog "gui-pkg-manager-lib") "1e0d8a3f2a60642e785c0459108f1be6034dbcb1" #t)) ("htdp" . #s(pkg-info (catalog "htdp") "6e222eff85bae1b326f4282d8b82fc5c83202cfe" #t)) ("htdp-doc" . #s(pkg-info (catalog "htdp-doc") "e5892b0ae846f64e997e34ae2afb165b35f290b9" #t)) ("htdp-lib" . #s(pkg-info (catalog "htdp-lib") "1f18bce701e14d76fa2e4f14f8cded185b00a66d" #t)) ("html" . #s(pkg-info (catalog "html") "59ab0bddd4935969e2af0469ad48a9c30f33ef60" #t)) ("html-doc" . #s(pkg-info (catalog "html-doc") "3cd2a18da0b91b209d196f0cf669f2e59829d2bc" #t)) ("html-lib" . #s(pkg-info (catalog "html-lib") "2b17b0447932ee0a5287581269d24b5e3e9dcbb5" #t)) ("icons" . #s((sc-pkg-info pkg-info 3) (catalog "icons") "77e8f436f370ce8d88aa39622c5921664b56845b" #t "icons")) ("images" . #s(pkg-info (catalog "images") "98c6a0e120eb1115db9d376759b245db0591b07b" #t)) ("images-doc" . #s(pkg-info (catalog "images-doc") "99e114a7c7e234b6eaa23f99f863d03986bd62b5" #t)) ("images-gui-lib" . #s(pkg-info (catalog "images-gui-lib") "fef0ec840d82ed975370087fdcb049e0cce8e339" #t)) ("images-lib" . #s(pkg-info (catalog "images-lib") "9dcdc2e2388c63063a4a161e09585119d8d18e88" #t)) ("lazy" . #s((sc-pkg-info pkg-info 3) (catalog "lazy") "8038fc1a353a1618a5c19feecd7de1150719a9fc" #t "lazy")) ("macro-debugger" . #s(pkg-info (catalog "macro-debugger") "448277bb97132d25236deb785dce8c81933235d2" #t)) ("macro-debugger-text-lib" . #s(pkg-info (catalog "macro-debugger-text-lib") "0549dc476d9f071569d59359dbe6e4039f8af250" #t)) ("main-distribution" . #s(pkg-info (catalog "main-distribution") "3d0f4e0314c4b437feb7c3b86ff69cf20ad1e0f0" #f)) ("make" . #s((sc-pkg-info pkg-info 3) (catalog "make") "93e3f1b4144e3a04392b753cedc34c7c49e63fe5" #t "make")) ("math" . #s(pkg-info (catalog "math") "bc288b3ed293e90ef3a4eb05971d388265dc7065" #t)) ("math-doc" . #s(pkg-info (catalog "math-doc") "119b215101c0f1f82b6d28e06f5288812f38f2c3" #t)) ("math-lib" . #s(pkg-info (catalog "math-lib") "4e159abc47c306364ad02549853c1ddf82d6f8a2" #t)) ("mysterx" . #s((sc-pkg-info pkg-info 3) (catalog "mysterx") "23487c08b23cb7d965b97b0c45e6e3553854b869" #t "mysterx")) ("mzcom" . #s((sc-pkg-info pkg-info 3) (catalog "mzcom") "ac97bd1dc80a2f867d17f75254a8bbb9faa24afd" #t "mzcom")) ("mzscheme" . #s(pkg-info (catalog "mzscheme") "2a45b98e73f899324f2c5678d93df74f1792d23c" #t)) ("mzscheme-doc" . #s(pkg-info (catalog "mzscheme-doc") "de48e8b819047025177fac06b6f254e6f939fd23" #t)) ("mzscheme-lib" . #s(pkg-info (catalog "mzscheme-lib") "a6a2ec7fd0946a46c5368dbe1d7602419f8e7b53" #t)) ("net" . #s(pkg-info (catalog "net") "5df16fb466651bbb270a30296b1e8ee5f86af6fe" #t)) ("net-cookies" . #s(pkg-info (catalog "net-cookies") "51f6db09a36adbeb73e6bfc25bcd7d2123cc563e" #t)) ("net-cookies-doc" . #s(pkg-info (catalog "net-cookies-doc") "c1380af8407ce13dc993830db20250d7348117a8" #t)) ("net-cookies-lib" . #s(pkg-info (catalog "net-cookies-lib") "12f95b8fa1d9d562cd2bc7b499dd2fdc7111d122" #t)) ("net-doc" . #s(pkg-info (catalog "net-doc") "effd2e00136f037f9c524e25973ffa0b4b5f6ab8" #t)) ("net-lib" . #s(pkg-info (catalog "net-lib") "c0e7e3b3d55d067fa1fa3d13736877f33fe4fe76" #t)) ("optimization-coach" . #s(pkg-info (catalog "optimization-coach") "79ef3e4ec8de133f6f0b1838218b9478ba22d9bc" #t)) ("option-contract" . #s(pkg-info (catalog "option-contract") "14f8553d264972db98ecb25007f0c62f72c88837" #t)) ("option-contract-doc" . #s(pkg-info (catalog "option-contract-doc") "12d4da169785f5af1e8e38357713656385b4a75d" #t)) ("option-contract-lib" . #s(pkg-info (catalog "option-contract-lib") "f01bff6dccd0e6cf8721ac9cf3a819c5a9fd25b7" #t)) ("parser-tools" . #s(pkg-info (catalog "parser-tools") "7c90da6b7e8b13a5faed4d196f29f74d24c308a3" #t)) ("parser-tools-doc" . #s(pkg-info (catalog "parser-tools-doc") "d3d05e4f5f175f790775c835317034e8f6b6394e" #t)) ("parser-tools-lib" . #s(pkg-info (catalog "parser-tools-lib") "22eaaae7d2dc79755eaf96029554ebb48fb7ccaf" #t)) ("pconvert-lib" . #s(pkg-info (catalog "pconvert-lib") "cf75aa36ac881f36c9f845f9b3d5c75bb016caac" #t)) ("pict" . #s(pkg-info (catalog "pict") "b58b1e3ff96f16f62a8ca6e52efcf143d02c2552" #t)) ("pict-doc" . #s(pkg-info (catalog "pict-doc") "8e95db03fae67b105bd6afdce6c4dfcaf587c2c9" #t)) ("pict-lib" . #s(pkg-info (catalog "pict-lib") "2abed1569d91f15fa61d95e11f53d5cbbef610e1" #t)) ("pict-snip" . #s(pkg-info (catalog "pict-snip") "07039265dc698b136044724e4802b64517ba5209" #t)) ("pict-snip-doc" . #s(pkg-info (catalog "pict-snip-doc") "2453a4852fc2987b42f4ad4f6e92a1a448418db5" #t)) ("pict-snip-lib" . #s(pkg-info (catalog "pict-snip-lib") "28f4f45649589e010ab6c6cdc3e82ac9ff1fbe7f" #t)) ("picturing-programs" . #s(pkg-info (catalog "picturing-programs") "325870110f44e006c228f41619b5c77f331b82a1" #t)) ("plai" . #s(pkg-info (catalog "plai") "6ac6f533410efd33f655d51314228c77c83172ac" #t)) ("plai-doc" . #s((sc-pkg-info pkg-info 3) (catalog "plai-doc") "c8363060f66e1bd1ddc72c8271e86cf3fcbeff9e" #t "plai")) ("plai-lib" . #s((sc-pkg-info pkg-info 3) (catalog "plai-lib") "978f240e75c6ad1a4843a010fe250d9977e93339" #t "plai")) ("planet" . #s(pkg-info (catalog "planet") "e1a53854ddae4cf4eef667a91f3c944eb1481371" #t)) ("planet-doc" . #s(pkg-info (catalog "planet-doc") "0356d590361d2b909c717e97dc4f9eb2b567461a" #t)) ("planet-lib" . #s(pkg-info (catalog "planet-lib") "a0993c8b1c3ae0f08f75a6e70d785dfa3e7adf66" #t)) ("plot" . #s(pkg-info (catalog "plot") "898a4c570ed38396d684f260efa240d66accead9" #t)) ("plot-compat" . #s(pkg-info (catalog "plot-compat") "01b129e6ee41080f090c02054d07c7856ae2c06c" #t)) ("plot-doc" . #s(pkg-info (catalog "plot-doc") "70b006d5da401955e00000fcf6a3aacc296cd687" #t)) ("plot-gui-lib" . #s(pkg-info (catalog "plot-gui-lib") "57d49ac10de7a4d2520fe8a3c625eb91e6af8359" #t)) ("plot-lib" . #s(pkg-info (catalog "plot-lib") "84fecbb718ed024176c79f271f30579f5d753339" #t)) ("preprocessor" . #s((sc-pkg-info pkg-info 3) (catalog "preprocessor") "38fc7981a096322c67e4f7d9afac6f1fe664529e" #t "preprocessor")) ("profile" . #s(pkg-info (catalog "profile") "2183f9722eb2efbe2c8feb400b73602ad97fe221" #t)) ("profile-doc" . #s(pkg-info (catalog "profile-doc") "1d7c7dd2ad37e0d6c842cf30c7a01a631b18a39e" #t)) ("profile-lib" . #s((sc-pkg-info pkg-info 3) (catalog "profile-lib") "4eed8ba01f406d199604b3727c405c2bf368a617" #t "profile")) ("quickscript" . #s((sc-pkg-info pkg-info 3) (catalog "quickscript") "0c531a78067442fb5ac2b404f92c92427cff8bec" #t "quickscript")) ("r5rs" . #s(pkg-info (catalog "r5rs") "febae235a352df6df59a2e2c45b8658322793103" #t)) ("r5rs-doc" . #s(pkg-info (catalog "r5rs-doc") "3b842a310c928a0647b0c29cb3eabe215270f8e2" #t)) ("r5rs-lib" . #s(pkg-info (catalog "r5rs-lib") "9fcc4ebda67e44abd34e6c97a1448cd9a3947b77" #t)) ("r6rs" . #s(pkg-info (catalog "r6rs") "2ba0a84b06e7ab0ab49308fb6b58c23b29e39662" #t)) ("r6rs-doc" . #s(pkg-info (catalog "r6rs-doc") "972c5762a28dd773190c7aa46f9b972ac7c4c44e" #t)) ("r6rs-lib" . #s(pkg-info (catalog "r6rs-lib") "0a80a45a9666924b02b7e41002b3122b0b0606e3" #t)) ("racket-cheat" . #s((sc-pkg-info pkg-info 3) (catalog "racket-cheat") "11ef1c76f6459d0039e13cdc04326f5c54c28714" #t "racket-cheat")) ("racket-doc" . #s(pkg-info (catalog "racket-doc") "7c41f0b0ae91a7d77da4d4f15c2e5e2f6ab5c689" #t)) ("racket-index" . #s(pkg-info (catalog "racket-index") "ec294cafcf79f9a7034d02b4b3ff8c2e2a717622" #t)) ("racket-lib" . #s(pkg-info (catalog "racket-lib") "addde48592db0ba3db8686c37951f20c7112d368" #f)) ("racklog" . #s((sc-pkg-info pkg-info 3) (catalog "racklog") "a587b4aa82ff470e0646185cce033900e1bdafa8" #t "racklog")) ("rackunit" . #s(pkg-info (catalog "rackunit") "4b9de5253bfc93a4ba11e527bed3314d48ab0fc8" #t)) ("rackunit-doc" . #s(pkg-info (catalog "rackunit-doc") "26d22124d6eab4c79b73d778deef7b9bc73c2dec" #t)) ("rackunit-gui" . #s(pkg-info (catalog "rackunit-gui") "4cb8bc7487ff6bd55f653708d51f29fb75b490e2" #t)) ("rackunit-lib" . #s(pkg-info (catalog "rackunit-lib") "0069571fffeb268232fab1db7e9c6e8ea124f1ac" #t)) ("rackunit-plugin-lib" . #s(pkg-info (catalog "rackunit-plugin-lib") "a663951f3c13e3a6c0228949d97c6b2eef4a5b6c" #t)) ("rackunit-typed" . #s((sc-pkg-info pkg-info 3) (catalog "rackunit-typed") "d3ea39520e71e1fdcdaee0a4218575592c44a41a" #t "typed")) ("readline" . #s(pkg-info (catalog "readline") "4c7e66cd27cf4408832c87e3ee86df7a6eefa09d" #t)) ("readline-doc" . #s(pkg-info (catalog "readline-doc") "3bded5f74e621afb05b47f4fb05e455d8c2ee3f7" #t)) ("readline-lib" . #s(pkg-info (catalog "readline-lib") "a5182fa3edd32b9d63e6c355ccb372e0310a9d6d" #t)) ("realm" . #s((sc-pkg-info pkg-info 3) (catalog "realm") "f013fc3db6882ece583015d48f0ad8e1e971601d" #t "realm")) ("redex" . #s(pkg-info (catalog "redex") "57c8ddc62fd86b0ede08e92a7e47d35527768e99" #t)) ("redex-benchmark" . #s(pkg-info (catalog "redex-benchmark") "2433d94442a5f32f16d152656b168d1e6218aaa7" #t)) ("redex-doc" . #s(pkg-info (catalog "redex-doc") "6cedd1cfdc891d7ac3b46fcfe7767a4681443515" #t)) ("redex-examples" . #s(pkg-info (catalog "redex-examples") "98a38101bd790fa6bd8ff16ce8e2fb65245cb87c" #t)) ("redex-gui-lib" . #s(pkg-info (catalog "redex-gui-lib") "80083d5cded16afb0d45a59cdd655ddd396b8685" #t)) ("redex-lib" . #s(pkg-info (catalog "redex-lib") "04c6bc3954bf30293e0b5cfe76294a799e2f1aae" #t)) ("redex-pict-lib" . #s(pkg-info (catalog "redex-pict-lib") "9b13a5976edd63728d8914fc20bffb5ad981302f" #t)) ("sandbox-lib" . #s(pkg-info (catalog "sandbox-lib") "5b6080ff4052f881c343f6ccc847f860acb501a9" #t)) ("sasl" . #s((sc-pkg-info pkg-info 3) (catalog "sasl") "8dc49968c1ef11c5dd77f56c5979453a36d2c750" #t "sasl")) ("sasl-doc" . #s((sc-pkg-info pkg-info 3) (catalog "sasl-doc") "02b6cf131a97af9caa622a77592bb851f5d58fa3" #t "sasl")) ("sasl-lib" . #s((sc-pkg-info pkg-info 3) (catalog "sasl-lib") "d4ecdad04e42658a69d70d2f7d5eadae7ed7d16e" #t "sasl")) ("scheme-lib" . #s(pkg-info (catalog "scheme-lib") "22e71c59ac20b09cd156062ce0fb0afb86aaa851" #t)) ("schemeunit" . #s((sc-pkg-info pkg-info 3) (catalog "schemeunit") "03986b499744194a9e06a66dfe988bed9fb8cc40" #t "schemeunit")) ("scribble" . #s(pkg-info (catalog "scribble") "862cac10d6934b0dca35b4ebace9ffa0faa3a381" #t)) ("scribble-doc" . #s(pkg-info (catalog "scribble-doc") "fc38088b2924e7d902ceafc94243fd3ca2a52b45" #t)) ("scribble-html-lib" . #s(pkg-info (catalog "scribble-html-lib") "13105ce2064fa963c535187a657792e1ec95d284" #t)) ("scribble-lib" . #s(pkg-info (catalog "scribble-lib") "9be1c71d1c0f3f0d41031416689f012a16ba535a" #t)) ("scribble-text-lib" . #s(pkg-info (catalog "scribble-text-lib") "1d816dcc95b5f6d77ff6633b82a6dd40f7effe4e" #t)) ("serialize-cstruct-lib" . #s(pkg-info (catalog "serialize-cstruct-lib") "caeab596cb494273bcb84b917205a66bd06d0528" #t)) ("sgl" . #s((sc-pkg-info pkg-info 3) (catalog "sgl") "a2feb4952e01c7e02af068978ade81d0a213e035" #t "sgl")) ("shell-completion" . #s((sc-pkg-info pkg-info 3) (catalog "shell-completion") "900d6f81d7f78d17ac1789436c36a3314f09fcec" #t "shell-completion")) ("slatex" . #s((sc-pkg-info pkg-info 3) (catalog "slatex") "7a36270767b37d0336b4d72c7ca89140f395f9af" #t "slatex")) ("slideshow" . #s(pkg-info (catalog "slideshow") "62d9fa5b5fc8f1b82fb7acae427e474488fb1c2a" #t)) ("slideshow-doc" . #s(pkg-info (catalog "slideshow-doc") "d023178269517583e08ea3afc13bd8e867e86eaa" #t)) ("slideshow-exe" . #s(pkg-info (catalog "slideshow-exe") "4764478f8f62ba0a9d66ef064945af605cac48cc" #t)) ("slideshow-lib" . #s(pkg-info (catalog "slideshow-lib") "b7d301d8496d23dd950606d50a2c9565067f77f5" #t)) ("slideshow-plugin" . #s(pkg-info (catalog "slideshow-plugin") "50fe3549998180cf9391d355fce67c1b95fee846" #t)) ("snip" . #s(pkg-info (catalog "snip") "f6401933decce0674344953461fc80be6b600748" #t)) ("snip-lib" . #s(pkg-info (catalog "snip-lib") "8cf6a919d5d9021f782423b3712a0e73cf93842a" #t)) ("source-syntax" . #s((sc-pkg-info pkg-info 3) (catalog "source-syntax") "b6dde72b228b3e8e7da35fbc25cce395c8dce9cb" #t "syntax")) ("srfi" . #s(pkg-info (catalog "srfi") "810795b1c70213bba3e3f02c29c0ec0be774d551" #t)) ("srfi-doc" . #s(pkg-info (catalog "srfi-doc") "9bcb860c00d8023421c3ab3e2785ab8ee92b8f9d" #t)) ("srfi-lib" . #s(pkg-info (catalog "srfi-lib") "8dd9d951c94054ec60a4e1d59fa2c1a462e8fff6" #t)) ("srfi-lite-lib" . #s(pkg-info (catalog "srfi-lite-lib") "2a40a8ecf4a2368b6c84d8f0bdd1c72df4f3cc7f" #t)) ("string-constants" . #s(pkg-info (catalog "string-constants") "602234aee270ea040b993f8146548aa0c835ee41" #t)) ("string-constants-doc" . #s(pkg-info (catalog "string-constants-doc") "627c9a564c187d9dbd2a1c6de302e38ed8cd105e" #t)) ("string-constants-lib" . #s(pkg-info (catalog "string-constants-lib") "85764e7ecf8df819142221a84380340c23607e18" #t)) ("swindle" . #s((sc-pkg-info pkg-info 3) (catalog "swindle") "56793a3d43336a0dfc1fb6d4933a6a7d0a6f18a6" #t "swindle")) ("syntax-color" . #s(pkg-info (catalog "syntax-color") "0ab7c010c146aacbc26f81d73050e5dcb1ec44a4" #t)) ("syntax-color-doc" . #s(pkg-info (catalog "syntax-color-doc") "ebc23963c2f235893a2ae998311c439ca5f2de5e" #t)) ("syntax-color-lib" . #s(pkg-info (catalog "syntax-color-lib") "c496941837238109ebf69e6a2a3740136baf077e" #t)) ("testing-util-lib" . #s(pkg-info (catalog "testing-util-lib") "6ad76708f90cc3938a72d556458f92cde3e30578" #t)) ("tex-table" . #s((sc-pkg-info pkg-info 3) (catalog "tex-table") "c6127491120f723f26dbba30d217e4f2aeb12084" #t "mrlib")) ("trace" . #s((sc-pkg-info pkg-info 3) (catalog "trace") "953c7b5e344cfc8859006ffbfce4fdf360647d81" #t "trace")) ("typed-racket" . #s(pkg-info (catalog "typed-racket") "7896fb7492e6230f58d73d202ce9e6f77e3f98b7" #t)) ("typed-racket-compatibility" . #s(pkg-info (catalog "typed-racket-compatibility") "1bf2425d25d54c653d693290f41e9587847357a6" #t)) ("typed-racket-doc" . #s(pkg-info (catalog "typed-racket-doc") "d338099f40c47dbfb62f699206e99cfdfa7e32d6" #t)) ("typed-racket-lib" . #s(pkg-info (catalog "typed-racket-lib") "3eff82ebcceeab467c35cf19044013c83a47bd32" #t)) ("typed-racket-more" . #s(pkg-info (catalog "typed-racket-more") "600a695a0f59fe2740cf9e2080a13e25310a5114" #t)) ("unix-socket" . #s(pkg-info (catalog "unix-socket") "c015b6081883e19b3f1d2343bddca9895499832c" #t)) ("unix-socket-doc" . #s(pkg-info (catalog "unix-socket-doc") "b5d7f058cd0984aef1d8214968e79c202b972636" #t)) ("unix-socket-lib" . #s(pkg-info (catalog "unix-socket-lib") "e8d16e6cf98e03dc141ce410e7fddb83eb420e54" #t)) ("web-server" . #s(pkg-info (catalog "web-server") "9e01035046e279382ab2c1aa5c3f68d7533afd64" #t)) ("web-server-doc" . #s(pkg-info (catalog "web-server-doc") "afb48732580aaf70f2d13dc0f3115f25672a0fb6" #t)) ("web-server-lib" . #s(pkg-info (catalog "web-server-lib") "1fb4a0c9718b0e835d730f92289f9855018dfee3" #t)) ("wxme" . #s(pkg-info (catalog "wxme") "a56f70bd66b595d03baa8fb60046c3826b3abaaa" #t)) ("wxme-lib" . #s(pkg-info (catalog "wxme-lib") "75d7ad58da6d6fe5e3b5d81fe3f1e73b37460ae5" #t)) ("xrepl" . #s(pkg-info (catalog "xrepl") "c577bf792fde613ada8dc08f3b76b9daf3fc6814" #t)) ("xrepl-doc" . #s(pkg-info (catalog "xrepl-doc") "1724207363217dc4e931ac92e017c594a7a2a44b" #t)) ("xrepl-lib" . #s(pkg-info (catalog "xrepl-lib") "829e38b7ffcd0508842871b5aa354a531ddee4fa" #t)) ("zo-lib" . #s(pkg-info (catalog "zo-lib") "0f00c96ccaf933002e5c1e9f6b9e8856cbcd04eb" #t)))
+diff -urN racket-7.4-orig/share/pkgs/srfi/info.rkt racket-7.4-remove-nonfree/share/pkgs/srfi/info.rkt
+--- racket-7.4-orig/share/pkgs/srfi/info.rkt 2019-08-03 23:24:08.000000000 -0400
++++ racket-7.4-remove-nonfree/share/pkgs/srfi/info.rkt 2019-08-28 09:26:35.582382386 -0400
+@@ -1 +1 @@
+-(module info setup/infotab (#%module-begin (define package-content-state (quote (built "7.4"))) (define collection (quote multi)) (define deps (quote ("srfi-lib" "srfi-doc" "srfi-doc-nonfree"))) (define implies (quote ("srfi-lib" "srfi-doc" "srfi-doc-nonfree"))) (define pkg-desc "Legacy SRFI (Scheme) libraries") (define pkg-authors (quote (mflatt noel chongkai jay)))))
++(module info setup/infotab (#%module-begin (define package-content-state (quote (built "7.4"))) (define collection (quote multi)) (define deps (quote ("srfi-lib" "srfi-doc"))) (define implies (quote ("srfi-lib" "srfi-doc"))) (define pkg-desc "Legacy SRFI (Scheme) libraries") (define pkg-authors (quote (mflatt noel chongkai jay)))))
+diff -urN racket-7.4-orig/share/pkgs/srfi-doc-nonfree/info.rkt racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/info.rkt
+--- racket-7.4-orig/share/pkgs/srfi-doc-nonfree/info.rkt 2019-08-03 23:24:10.000000000 -0400
++++ racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/info.rkt 1969-12-31 19:00:00.000000000 -0500
+@@ -1 +0,0 @@
+-(module info setup/infotab (#%module-begin (define package-content-state (quote (built "7.4"))) (define collection (quote multi)) (define build-deps (quote ("mzscheme-doc" "scheme-lib" "base" "scribble-lib" "srfi-doc" "racket-doc" "r5rs-doc" "r6rs-doc" "compatibility-lib"))) (define pkg-desc "non-free documentation for \"srfi-lib\"") (define pkg-authors (quote (mflatt noel chongkai jay)))))
+diff -urN racket-7.4-orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/info.rkt racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/srfi/scribblings/info.rkt
+--- racket-7.4-orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/info.rkt 2019-08-03 21:32:26.000000000 -0400
++++ racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/srfi/scribblings/info.rkt 1969-12-31 19:00:00.000000000 -0500
+@@ -1,3 +0,0 @@
+-#lang info
+-
+-(define scribblings '(("srfi-nf.scrbl" (multi-page) (library 100))))
+diff -urN racket-7.4-orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-nf.scrbl racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-nf.scrbl
+--- racket-7.4-orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-nf.scrbl 2019-08-03 21:32:26.000000000 -0400
++++ racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-nf.scrbl 1969-12-31 19:00:00.000000000 -0500
+@@ -1,68 +0,0 @@
+-#lang scribble/doc
+-@(require srfi/scribblings/util
+- scribble/manual
+- scribble/eval
+- scriblib/render-cond
+- scribble/core
+- scribble/html-properties
+- (for-syntax scheme/base)
+- (for-label scheme/base
+- racket/stream))
+-
+-@; ----------------------------------------------------------------------
+-
+-@title{SRFI Nonfree Libraries and Documentation}
+-
+-The @link[#:style srfi-std "http://srfi.schemers.org/"]{Scheme Requests for
+-Implementation} (a.k.a. @deftech{SRFI}) process allows individual
+-members of the Scheme community to propose libraries and extensions to
+-be supported by multiple Scheme implementations.
+-
+-Racket is distributed with implementations of many SRFIs, most of
+-which can be implemented as libraries. To import the bindings of SRFI
+-@math{n}, use
+-
+-@racketblock[
+-(require @#,elem{@racketidfont{srfi/}@math{n}})
+-]
+-
+-This document lists the SRFIs that are supported by Racket and
+-provides a link to the original SRFI specification (which is also
+-distributed as part of Racket's documentation).
+-
+-The following SRFI specification documents are licensed restrictively.
+-
+-@table-of-contents[]
+-
+-
+-@; ----------------------------------------
+-
+-@srfi[5]{A compatible let form with signatures and rest arguments}
+-
+-@redirect[5 '(
+- (let #t "unnamed")
+-)]
+-
+-Racket provides a free implementation of this SRFI in the @racket[srfi-lib] package.
+-Only the SRFI specification document is nonfree.
+-
+-@; ----------------------------------------
+-
+-@srfi[29]{Localization}
+-
+-@redirect[29 '(
+- (current-language #f "current-language")
+- (current-country #f "current-country")
+- (current-locale-details #f "current-locale-details")
+- (declare-bundle! #f "declare-bundle!")
+- (store-bundle #f "store-bundle")
+- (load-bundle! #f "load-bundle!")
+- (localized-template #f "localized-template")
+-)]
+-
+-Racket provides a free implementation of this SRFI in the @racket[srfi-lib] package.
+-Only the SRFI specification document is nonfree.
+-
+-@; ----------------------------------------
+-
+-@index-section[]
+diff -urN racket-7.4-orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-29.html racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-29.html
+--- racket-7.4-orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-29.html 2019-08-03 21:32:26.000000000 -0400
++++ racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-29.html 1969-12-31 19:00:00.000000000 -0500
+@@ -1,507 +0,0 @@
+-<!DOCTYPE html PUBLIC "-//IETF//DTD HTML//EN">
+-<html>
+- <head>
+- <meta name="generator" content="HTML Tidy, see www.w3.org">
+- <title>SRFI 29: Localization</title>
+- <meta name="author" content="Scott G. Miller">
+- <meta name="description" content="Localization">
+- </head>
+- <body>
+- <H1>Title</H1>
+-
+- SRFI 29: Localization
+-
+- <H1>Author</H1>
+-
+- Scott G. Miller
+-
+- <H1>Abstract</H1>
+-
+- This document specifies an interface to retrieving and
+- displaying locale sensitive messages. A Scheme program can
+- register one or more translations of templated messages, and
+- then write Scheme code that can transparently retrieve the
+- appropriate message for the locale under which the Scheme
+- system is running. <br>
+-
+-
+- <H1>Rationale</H1>
+-
+- <p>As any programmer that has ever had to deal with making his
+- or her code readable in more than one locale, the process of
+- sufficiently abstracting program messages from their
+- presentation to the user is non-trivial without help from the
+- programming language. Most modern programming language
+- libraries do provide some mechanism for performing this
+- separation.</p>
+-
+- <p>A portable API that allows a piece of code to run without
+- modification in different countries and under different
+- languages is a must for any non-trivial software project.
+- The interface should separate the logic of a program from
+- the myriad of translations that may be necessary.</p>
+-
+- <p>The interface described in this document provides such
+- functionality. The underlying implementation is also allowed to
+- use whatever datastructures it likes to provide access to the
+- translations in the most efficient manner possible. In
+- addition, the implementation is provided with standardized
+- functions that programs will use for accessing an external,
+- unspecified repository of translations.</p>
+-
+- <p>This interface <i>does not</i> cover all aspects of
+- localization, including support for non-latin characters,
+- number and date formatting, etc. Such functionality is the
+- scope of a future SRFI that may extend this one.</p>
+-
+- <H1>Dependencies</H1>
+-
+- An SRFI-29 conformant implementation must also implement
+- SRFI-28, Basic Format Strings. Message templates are strings
+- that must be processed by the <tt>format</tt> function
+- specified in that SRFI.
+-
+- <H1>Specification</H1>
+-
+- <h3>Message Bundles</h3>
+-
+- <p>A Message Bundle is a set of message templates and their
+- identifying keys. Each bundle contains one or more such
+- key/value pairs. The bundle itself is associated with a
+- <i>bundle specifier</i> which uniquely identifies the
+- bundle.</p>
+-
+- <h3>Bundle Specifiers</h3>
+-
+- <p>A Bundle Specifier is a Scheme list that describes, in order
+- of importance, the package and locale of a message bundle.
+- In most cases, a locale specifier will have between one
+- and three elements. The first element is a symbol denoting the
+- package for which this bundle applies. The second and third
+- elements denote a <i>locale</i>. The second element (first
+- element of the locale) if present, is the two letter, ISO 639-1
+- language code for the bundle. The third element, if present, is
+- a two letter ISO 3166-1 country code. In some cases, a
+- fourth element may be present, specifying the encoding used for
+- the bundle. All bundle specifier elements are Scheme
+- symbols.</p>
+-
+- <p>If only one translation is provided, it should be designated
+- only by a package name, for example <tt>(mathlib)</tt>. This
+- translation is called the <i>default</i> translation.</p>
+-
+- <h3>Bundle Searching</h3>
+-
+- <p>When a message template is retrieved from a bundle, the
+- Scheme implementation will provide the locale under which the
+- system is currently running. When the template is retrieved,
+- the package name will be specified. The Scheme system should
+- construct a Bundle Specifier from the provided package name and
+- the active locale. For example, when retrieving a message
+- template for French Canadian, in the <tt>mathlib</tt> package,
+- the bundle specifier '<tt>(mathlib fr ca)</tt>' is used. A
+- program may also retrieve the elements of the current locale
+- using the no-argument procedures:</p>
+-
+- <p><b><a name="current-language"></a><tt>current-language</tt></b> <tt>->
+- <i>symbol</i></tt><br>
+- <tt><b>current-language</b> <i>symbol</i> ->
+- undefined</tt><br>
+- </p>
+-
+- <blockquote>
+- When given no arguments, returns the current ISO 639-1
+- language code as a symbol. If provided with an
+- argument, the current language is set to that named by the
+- symbol for the currently executing Scheme thread (or for the
+- entire Scheme system if such a distinction is not possible).
+-
+- </blockquote>
+-
+- <p><b><a name="current-country"></a><tt>current-country</tt></b> <tt>->
+- <i>symbol</i></tt><br>
+- <tt><b>current-country</b> <i>symbol</i> ->
+- undefined</tt><br>
+- </p>
+-
+- <blockquote>
+- returns the current ISO 3166-1 country code as a symbol.
+- If provided with an argument, the current country is
+- set to that named by the symbol for the currently executing
+- Scheme thread (or for the entire Scheme system if such a
+- distinction is not possible).
+- </blockquote>
+-
+- <p><b><a name="current-locale-details"></a><tt>current-locale-details</tt></b> <tt>-> <i>list of
+- symbol</i></tt>s<br>
+- <tt><b>current-locale-details</b> <i>list-of-symbols</i> ->
+- undefined</tt><br>
+- </p>
+-
+- <blockquote>
+- Returns a list of additional locale details as a list of
+- symbols. This list may contain information about
+- encodings or other more specific information. If
+- provided with an argument, the current locale details are set
+- to those given in the currently executing Scheme thread (or
+- for the entire Scheme system if such a distinction is not
+- possible).
+- </blockquote>
+-
+- <p>The Scheme System should first check for a bundle with the
+- exact name provided. If no such bundle is found, the last
+- element from the list is removed and a search is tried for a
+- bundle with that name. If no bundle is then found, the list is
+- shortened by removing the last element again. If no message is
+- found and the bundle specifier is now the empty list, an error
+- should be raised.</p>
+-
+- <p>The reason for this search order is to provide the most
+- locale sensitive template possible, but to fall back on more
+- general templates if a translation has not yet been provided
+- for the given locale.</p>
+-
+- <h3>Message Templates</h3>
+-
+- <p>A message template is a localized message that may or may
+- not contain one of a number of formatting codes. A message
+- template is a Scheme string. The string is of a form that can
+- be processed by the <tt>format</tt> procedure found in many
+- Scheme systems and formally specified in SRFI-28 (Basic Format
+- Strings).</p>
+-
+- <p>This SRFI also extends SRFI-28 to provide an additional
+- <tt>format</tt> escape code:</p>
+-
+- <blockquote>
+- <tt>~[n]@*</tt> - Causes a value-requiring escape code that
+- follows this code immediately to reference the [N]'th
+- optional value absolutely, rather than the next unconsumed
+- value. The referenced value is <i>not</i> consumed.
+- </blockquote>
+- This extension allows optional values to be positionally
+- referenced, so that message templates can be constructed that
+- can produce the proper word ordering for a language.
+-
+- <h3>Preparing Bundles</h3>
+- Before a bundle may be used by the Scheme system to retrieve
+- localized template messages, they must be made available to the
+- Scheme system. This SRFI specifies a way to portably
+- define the bundles, as well as store them in and retrieve them
+- from an unspecified system which may be provided by resources
+- outside the Scheme system.<br>
+-
+-
+- <p><b><a name="declare-bundle!"></a><tt>declare-bundle!</tt></b> <tt><i>bundle-specifier
+- association-list</i> -> undefined<br>
+- </tt></p>
+-
+- <blockquote>
+- Declares a new bundle named by the given bundle-specifier.
+- The contents of the bundle are defined by the provided
+- association list. The list contains associations
+- between Scheme symbols and the message templates (Scheme
+- strings) they name. If a bundle already exists with the
+- given name, it is overwritten with the newly declared
+- bundle.<br>
+- </blockquote>
+- <tt><a name="store-bundle"></a><b>store-bundle</b> <i>bundle-specifier</i> ->
+- boolean</tt><br>
+-
+-
+- <blockquote>
+- Attempts to store a bundle named by the given bundle
+- specifier, and previously made available using
+- <tt>declare-bundle!</tt> or <tt>load-bundle!</tt>, in an
+- unspecified mechanism that may be persistent across Scheme
+- system restarts. If successful, a non-false value is
+- returned. If unsuccessful, <tt>#f</tt> is returned.<br>
+- </blockquote>
+- <tt><a name="load-bundle!"></a><b>load-bundle!</b> <i>bundle-specifier</i> ->
+- boolean</tt><br>
+-
+-
+- <blockquote>
+- Attempts to retrieve a bundle from an unspecified mechanism
+- which stores bundles outside the Scheme system. If the
+- bundle was retrieved successfully, the function returns a
+- non-false value, and the bundle is immediately available to
+- the Scheme system. If the bundle could not be found or loaded
+- successfully, the function returns <tt>#f</tt>, and the
+- Scheme system's bundle registry remains unaffected.<br>
+- </blockquote>
+- A compliant Scheme system may choose not to provide any
+- external mechanism to store localized bundles. If it does
+- not, it must still provide implementations for
+- <tt>store-bundle</tt> and <tt>load-bundle!</tt>. In such a
+- case, both functions must return <tt>#f</tt> regardless of the
+- arguments given. Users of this SRFI should recognize that the
+- inability to load or store a localized bundle in an external
+- repository is <i>not</i> a fatal error.<br>
+-
+-
+- <h3>Retrieving Localized Message Templates</h3>
+-
+- <p><a name="localized-template"></a><b><tt>localized-template</tt></b> <i><tt>package-name
+- message-template-name</tt></i> <tt>-> <i>string or #f<br>
+- </i></tt></p>
+-
+- <blockquote>
+- Retrieves a localized message template for the given package
+- name and the given message template name (both symbols).
+- If no such message could be found, false (#f) is
+- returned.<br>
+- <br>
+- </blockquote>
+- After retrieving a template, the calling program can use
+- <tt>format</tt> to produce a string that can be displayed to
+- the user.<br>
+-
+-
+- <h2>Examples</h2>
+- The below example makes use of SRFI-29 to display simple,
+- localized messages. It also defines its bundles in such a
+- way that the Scheme system may store and retrieve the bundles
+- from a more efficient system catalog, if available.<br>
+-
+-<pre>
+-(let ((translations
+- '(((en) . ((time . "Its ~a, ~a.")
+- (goodbye . "Goodbye, ~a.")))
+- ((fr) . ((time . "~1@*~a, c'est ~a.")
+- (goodbye . "Au revoir, ~a."))))))
+- (for-each (lambda (translation)
+- (let ((bundle-name (cons 'hello-program (car translation))))
+- (if (not (load-bundle! bundle-name))
+- (begin
+- (declare-bundle! bundle-name (cdr translation))
+- (store-bundle! bundle-name)))))
+- translations))
+-
+-(define localized-message
+- (lambda (message-name . args)
+- (apply format (cons (localized-template 'hello-program
+- message-name)
+- args))))
+-
+-(let ((myname "Fred"))
+- (display (localized-message 'time "12:00" myname))
+- (display #\newline)
+-
+- (display (localized-message 'goodbye myname))
+- (display #\newline))
+-
+-;; Displays (English):
+-;; Its 12:00, Fred.
+-;; Goodbye, Fred.
+-;;
+-;; French:
+-;; Fred, c'est 12:00.
+-;; Au revoir, Fred.
+-</pre>
+-
+- <H1>Implementation</H1>
+-
+- <p>The implementation requires that the Scheme system provide a
+- definition for <tt>current-language</tt> and
+- <tt>current-country</tt> capable of distinguishing the correct
+- locale present during a Scheme session. The definitions of
+- those functions in the reference implementation are not capable
+- of that distinction. Their implementation is provided only so
+- that the following code can run in any R4RS scheme system.
+- <br>
+- </p>
+-
+- <p>In addition, the below implementation of a compliant
+- <tt>format</tt> requires SRFI-6 (Basic String Ports) and
+- SRFI-23 (Error reporting)</p>
+-<pre>
+-;; The association list in which bundles will be stored
+-(define *localization-bundles* '())
+-
+-;; The current-language and current-country functions provided
+-;; here must be rewritten for each Scheme system to default to the
+-;; actual locale of the session
+-(define current-language
+- (let ((current-language-value 'en))
+- (lambda args
+- (if (null? args)
+- current-language-value
+- (set! current-language-value (car args))))))
+-
+-(define current-country
+- (let ((current-country-value 'us))
+- (lambda args
+- (if (null? args)
+- current-country-value
+- (set! current-country-value (car args))))))
+-
+-;; The load-bundle! and store-bundle! both return #f in this
+-;; reference implementation. A compliant implementation need
+-;; not rewrite these procedures.
+-(define load-bundle!
+- (lambda (bundle-specifier)
+- #f))
+-
+-(define store-bundle!
+- (lambda (bundle-specifier)
+- #f))
+-
+-;; Declare a bundle of templates with a given bundle specifier
+-(define declare-bundle!
+- (letrec ((remove-old-bundle
+- (lambda (specifier bundle)
+- (cond ((null? bundle) '())
+- ((equal? (caar bundle) specifier)
+- (cdr bundle))
+- (else (cons (car bundle)
+- (remove-old-bundle specifier
+- (cdr bundle))))))))
+- (lambda (bundle-specifier bundle-assoc-list)
+- (set! *localization-bundles*
+- (cons (cons bundle-specifier bundle-assoc-list)
+- (remove-old-bundle bundle-specifier
+- *localization-bundles*))))))
+-
+-;;Retrieve a localized template given its package name and a template name
+-(define localized-template
+- (letrec ((rdc
+- (lambda (ls)
+- (if (null? (cdr ls))
+- '()
+- (cons (car ls) (rdc (cdr ls))))))
+- (find-bundle
+- (lambda (specifier template-name)
+- (cond ((assoc specifier *localization-bundles*) =>
+- (lambda (bundle) bundle))
+- ((null? specifier) #f)
+- (else (find-bundle (rdc specifier)
+- template-name))))))
+- (lambda (package-name template-name)
+- (let loop ((specifier (cons package-name
+- (list (current-language)
+- (current-country)))))
+- (and (not (null? specifier))
+- (let ((bundle (find-bundle specifier template-name)))
+- (and bundle
+- (cond ((assq template-name bundle) => cdr)
+- ((null? (cdr specifier)) #f)
+- (else (loop (rdc specifier)))))))))))
+-
+-;;An SRFI-28 and SRFI-29 compliant version of format. It requires
+-;;SRFI-23 for error reporting.
+-(define format
+- (lambda (format-string . objects)
+- (let ((buffer (open-output-string)))
+- (let loop ((format-list (string->list format-string))
+- (objects objects)
+- (object-override #f))
+- (cond ((null? format-list) (get-output-string buffer))
+- ((char=? (car format-list) #\~)
+- (cond ((null? (cdr format-list))
+- (error 'format "Incomplete escape sequence"))
+- ((char-numeric? (cadr format-list))
+- (let posloop ((fl (cddr format-list))
+- (pos (string->number
+- (string (cadr format-list)))))
+- (cond ((null? fl)
+- (error 'format "Incomplete escape sequence"))
+- ((and (eq? (car fl) '#\@)
+- (null? (cdr fl)))
+- (error 'format "Incomplete escape sequence"))
+- ((and (eq? (car fl) '#\@)
+- (eq? (cadr fl) '#\*))
+- (loop (cddr fl) objects (list-ref objects pos)))
+- (else
+- (posloop (cdr fl)
+- (+ (* 10 pos)
+- (string->number
+- (string (car fl)))))))))
+- (else
+- (case (cadr format-list)
+- ((#\a)
+- (cond (object-override
+- (begin
+- (display object-override buffer)
+- (loop (cddr format-list) objects #f)))
+- ((null? objects)
+- (error 'format "No value for escape sequence"))
+- (else
+- (begin
+- (display (car objects) buffer)
+- (loop (cddr format-list)
+- (cdr objects) #f)))))
+- ((#\s)
+- (cond (object-override
+- (begin
+- (display object-override buffer)
+- (loop (cddr format-list) objects #f)))
+- ((null? objects)
+- (error 'format "No value for escape sequence"))
+- (else
+- (begin
+- (write (car objects) buffer)
+- (loop (cddr format-list)
+- (cdr objects) #f)))))
+- ((#\%)
+- (if object-override
+- (error 'format "Escape sequence following positional override does not require a value"))
+- (display #\newline buffer)
+- (loop (cddr format-list) objects #f))
+- ((#\~)
+- (if object-override
+- (error 'format "Escape sequence following positional override does not require a value"))
+- (display #\~ buffer)
+- (loop (cddr format-list) objects #f))
+- (else
+- (error 'format "Unrecognized escape sequence"))))))
+- (else (display (car format-list) buffer)
+- (loop (cdr format-list) objects #f)))))))
+-
+-</pre>
+-
+- <H1>Copyright</H1>
+-
+- Copyright (C) Scott G. Miller (2002). All Rights Reserved.
+-
+- <p>This document and translations of it may be copied and
+- furnished to others, and derivative works that comment on or
+- otherwise explain it or assist in its implementation may be
+- prepared, copied, published and distributed, in whole or in
+- part, without restriction of any kind, provided that the above
+- copyright notice and this paragraph are included on all such
+- copies and derivative works. However, this document itself may
+- not be modified in any way, such as by removing the copyright
+- notice or references to the Scheme Request For Implementation
+- process or editors, except as needed for the purpose of
+- developing SRFIs in which case the procedures for copyrights
+- defined in the SRFI process must be followed, or as required to
+- translate it into languages other than English.</p>
+-
+- <p>The limited permissions granted above are perpetual and will
+- not be revoked by the authors or their successors or
+- assigns.</p>
+-
+- <p>This document and the information contained herein is
+- provided on an "AS IS" basis and THE AUTHOR AND THE SRFI
+- EDITORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES
+- OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.</p>
+- <hr>
+-
+- <address>
+- Editor: <a href="mailto:srfi-editors@srfi.schemers.org">David
+- Rush</a>
+- </address>
+-
+- <address>
+- Author: <a href="mailto:scgmille@freenetproject.org">Scott G.
+- Miller</a>
+- </address>
+- <!-- Created: Tue Sep 29 19:20:08 EDT 1998 -->
+- <!-- hhmts start -->Last modified: Mon Jun 17 12:00:08 Pacific
+- Daylight Time 2002 <!-- hhmts end --> <br>
+- </body>
+-</html>
+-
+diff -urN racket-7.4-orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-5.html racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-5.html
+--- racket-7.4-orig/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-5.html 2019-08-03 21:32:26.000000000 -0400
++++ racket-7.4-remove-nonfree/share/pkgs/srfi-doc-nonfree/srfi/scribblings/srfi-std/srfi-5.html 1969-12-31 19:00:00.000000000 -0500
+@@ -1,345 +0,0 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.2//EN">
+-<html>
+-<head>
+- <title>SRFI 5: A compatible let form with signatures and rest arguments</title>
+-</head>
+-<body>
+-
+-<H1>Title</H1>
+-
+-SRFI-5: A compatible <code>let</code> form with signatures and rest arguments
+-
+-<H1>Author</H1>
+-
+-Andy Gaynor
+-
+-<H1>Status</H1>
+-
+-This SRFI is currently in ``final'' status. To see an explanation of each status that a SRFI can hold, see <A HREF="http://srfi.schemers.org/srfi-process.html">here</A>.
+-You can access the discussion on this SRFI via <A HREF="http://srfi.schemers.org/srfi-5/mail-archive/maillist.html">the archive of the mailing list</A>.
+-<P><UL>
+-<LI>Received: 1999/2/2
+-<LI>Draft: 1999/2/10-1999/04/12
+-<LI>Final: 1999/4/26
+-<LI>Revised reference implementation: 2003/01/27
+-</UL>
+-
+-<H1>Abstract</H1>
+-
+-The <i>named-let</i> incarnation of the <code>let</code> form has two slight
+-inconsistencies with the <code>define</code> form. As defined, the <code>let</code>
+-form makes no accommodation for rest arguments, an issue of functionality
+-and consistency. As defined, the <code>let</code> form does not accommodate
+-signature-style syntax, an issue of aesthetics and consistency. Both
+-issues are addressed here in a manner which is compatible with the traditional
+-<code>let</code> form but for minor extensions.
+-
+-<H1>Rationale</H1>
+-
+-<H2>Signature-style Syntax</H2>
+-
+-Consider the following two equivalent definitions:
+-
+-<p><pre>
+-(define fibonacci
+- (lambda (n i f0 f1)
+- (if (= i n)
+- f0
+- (fibonacci n (+ i 1) f1 (+ f0 f1)))))
+-
+-(define (fibonacci n i f0 f1)
+- (if (= i n)
+- f0
+- (fibonacci n (+ i 1) f1 (+ f0 f1))))
+-</pre>
+-
+-Although there is a named-let analog for the former form, there is none
+-for the latter. To wit, suppose one wished to compute the 10th element
+-of the Fibonacci sequence using a named let:
+-
+-<p>
+-<pre>
+-(let fibonacci ((n 10) (i 0) (f0 0) (f1 1))
+- (if (= i n)
+- f0
+- (fibonacci n (+ i 1) f1 (+ f0 f1))))
+-Values: 55
+-</pre>
+-
+-As it stands, one cannot equivalently write
+-
+-<p>
+-<pre>
+-(let (fibonacci (n 10) (i 0) (f0 0) (f1 1))
+- (if (= i n)
+- f0
+- (fibonacci n (+ i 1) f1 (+ f0 f1))))
+-</pre>
+-
+-which is consistent with <code>define</code>'s signature-style form.
+-<p>Those that favor the signature style may prefer this extension.
+-In any case, it may be more appropriate to include all bound names within
+-the binding section. As presented, this straightforward extension
+-introduces no ambiguity or incompatibility with the existing definition
+-of let.
+-
+-<H2>Rest Arguments</H2>
+-
+-As it stands, one cannot write a named let with rest arguments, as in
+-
+-<p>
+-<pre>
+-(let (blast (port (current-output-port)) . (x (+ 1 2) 4 5))
+- (if (null? x)
+- 'just-a-silly-contrived-example
+- (begin
+- (write (car x) port)
+- (apply blast port (cdr x)))))
+-</pre>
+-
+-otherwise equivalent to
+-
+-<p>
+-<pre>
+-(letrec ((blast (lambda (port . x)
+- (if (null? x)
+- 'just-a-silly-contrived-example
+- (begin
+- (write (car x) port)
+- (apply blast port (cdr x)))))))
+- (blast (current-output-port) (+ 1 2) 4 5))
+-</pre>
+-
+-While this example is rather contrived, the functionality is not.
+-There are several times when the author has used this construct in practice.
+-Regardless, there is little reason to deny the <code>let</code> form access to
+-all the features of lambda functionality.
+-
+-<H2>Symbols in Binding Sections</H2>
+-
+-Both the features above rely upon the placement of symbols in <code>let</code>
+-binding lists (this statement is intentially simplistic). The only
+-other apparent use of such symbol placement is to tersely bind variables
+-to unspecified values. For example, one might desire to use
+-<code>(let (foo bar baz) ...)</code>
+-to bind <code>foo</code>, <code>bar</code>, and <code>baz</code> to
+-unspecified values.
+-
+-<p>This usage is considered less important in light of the rationales
+-presented above, and an alternate syntax is immediately apparent, as
+-in <code>(let ((foo) (bar) (baz)) ...)</code> This may even
+-be preferable, consistently parenthesizing normal binding clauses.
+-
+-<H1>Specification</H1>
+-
+-<H2>Syntax</H2>
+-
+-<p>
+-A formal specification of the syntax follows. Below, body, expression,
+-and identifier are free. Each instantiation of binding-name must be
+-unique.
+-</p>
+-
+-<p>
+-<pre>
+- let = "(" "let" let-bindings body ")"
+- expressions = nothing | expression expressions
+- let-bindings = let-name bindings
+- |"(" let-name "." bindings ")"
+- let-name = identifier
+- bindings = "(" ")"
+- | rest-binding
+- | "(" normal-bindings ["." rest-binding] ")"
+-normal-bindings = nothing
+- | normal-binding normal-bindings
+-normal-binding = "(" binding-name expression ")"
+- binding-name = identifier
+- rest-binding = "(" binding-name expressions ")"
+-</pre>
+-
+-<p>
+-For clarity and convenience, an informal specification follows.
+-</p>
+-
+-<ol>
+-<li><a name="unnamed">Unnamed</a>
+-
+-<p><pre>
+-(let ((<parameter> <argument>)...)
+- <body>...)
+-</pre>
+-</li>
+-
+-<li><a name="named-non-sig">
+-Named, non-signature-style, no rest argument</a>
+-
+-<p><pre>
+-(let <name> ((<parameter> <argument>)...)
+- <body>...)
+-</pre>
+-</li>
+-
+-<li><a name="named-sig">Named, signature-style, no rest argument</a>
+-
+-<p><pre>
+-(let (<name> (<parameter> <argument>)...)
+- <body>...)
+-</pre>
+-</li>
+-
+-<li><a name="named-non-sig-rest">Named, non-signature-style, rest argument</a>
+-
+-<p><pre>
+-(let <name> ((<parameter> <argument>)...
+-
+-. (<rest-parameter> <rest-argument>...))
+- <body>...)
+-</pre>
+-
+-<li><a name="named-sig-rest">Named, signature-style, rest argument</a>
+-
+-<p><pre>
+-(let (<name> (<parameter> <argument>)...
+-
+-. (<rest-parameter> <rest-argument>...))
+- <body>...)
+-</pre>
+-</li>
+-</ol>
+-
+-<H2>Semantics</H2>
+-
+-Let <code>$lambda</code> and <code>$letrec</code> be hygienic bindings for the <code>lambda</code>
+-and <code>letrec</code> forms, respectively.
+-
+-<ul>
+-<li>For informal syntax 1:
+-
+-<p><pre>
+-(($lambda (<parameter>...) <body>...) <argument>...)
+-</pre>
+-</li>
+-
+-<li>For informal syntaxes 2 and 3:
+-
+-<p>
+-<pre>
+-($letrec ((<name> ($lambda (<parameter>...) <body>...)))
+- (<name> <argument>...))
+-</pre>
+-</li>
+-
+-<li>For informal syntaxes 4 and 5:
+-
+-<p>
+-<pre>
+-($letrec ((<name> ($lambda (<parameter>...
+-
+-. <rest-parameter>) <body>...)))
+- (<name> <argument>... <rest-argument>...))
+-</pre>
+-</li>
+-</ul>
+-
+-<H1>Implementation</H1>
+-
+-Here is an implementation using <code>SYNTAX-RULES</code>.
+-
+-<p>
+-<pre>
+-;; Use your own standard let.
+-;; Or call a lambda.
+-;; (define-syntax standard-let
+-;;
+-;; (syntax-rules ()
+-;;
+-;; ((let ((var val) ...) body ...)
+-;; ((lambda (var ...) body ...) val ...))))
+-
+-(define-syntax let
+-
+- (syntax-rules ()
+-
+- ;; No bindings: use standard-let.
+- ((let () body ...)
+- (standard-let () body ...))
+- ;; Or call a lambda.
+- ;; ((lambda () body ...))
+-
+- ;; All standard bindings: use standard-let.
+- ((let ((var val) ...) body ...)
+- (standard-let ((var val) ...) body ...))
+- ;; Or call a lambda.
+- ;; ((lambda (var ...) body ...) val ...)
+-
+- ;; One standard binding: loop.
+- ;; The all-standard-bindings clause didn't match,
+- ;; so there must be a rest binding.
+- ((let ((var val) . bindings) body ...)
+- (let-loop #f bindings (var) (val) (body ...)))
+-
+- ;; Signature-style name: loop.
+- ((let (name binding ...) body ...)
+- (let-loop name (binding ...) () () (body ...)))
+-
+- ;; defun-style name: loop.
+- ((let name bindings body ...)
+- (let-loop name bindings () () (body ...)))))
+-
+-(define-syntax let-loop
+-
+- (syntax-rules ()
+-
+- ;; Standard binding: destructure and loop.
+- ((let-loop name ((var0 val0) binding ...) (var ... ) (val ... ) body)
+- (let-loop name ( binding ...) (var ... var0) (val ... val0) body))
+-
+- ;; Rest binding, no name: use standard-let, listing the rest values.
+- ;; Because of let's first clause, there is no "no bindings, no name" clause.
+- ((let-loop #f (rest-var rest-val ...) (var ...) (val ...) body)
+- (standard-let ((var val) ... (rest-var (list rest-val ...))) . body))
+- ;; Or call a lambda with a rest parameter on all values.
+- ;; ((lambda (var ... . rest-var) . body) val ... rest-val ...))
+- ;; Or use one of several other reasonable alternatives.
+-
+- ;; No bindings, name: call a letrec'ed lambda.
+- ((let-loop name () (var ...) (val ...) body)
+- ((letrec ((name (lambda (var ...) . body)))
+- name)
+- val ...))
+-
+- ;; Rest binding, name: call a letrec'ed lambda.
+- ((let-loop name (rest-var rest-val ...) (var ...) (val ...) body)
+- ((letrec ((name (lambda (var ... . rest-var) . body)))
+- name)
+- val ... rest-val ...))))
+-</pre>
+-
+-
+-<H1>Copyright</H1>
+-
+-Copyright (C) Andy Gaynor (1999). All Rights Reserved.
+-<p>This document and translations of it may be copied and furnished to
+-others, and derivative works that comment on or otherwise explain it or
+-assist in its implementation may be prepared, copied, published and distributed,
+-in whole or in part, without restriction of any kind, provided that the
+-above copyright notice and this paragraph are included on all such copies
+-and derivative works. However, this document itself may not be modified
+-in any way, such as by removing the copyright notice or references to the
+-Scheme Request For Implementation process or editors, except as needed
+-for the purpose of developing SRFIs in which case the procedures for copyrights
+-defined in the SRFI process must be followed, or as required to translate
+-it into languages other than English.
+-<p>The limited permissions granted above are perpetual and will not be
+-revoked by the authors or their successors or assigns.
+-<p>This document and the information contained herein is provided on an
+-"AS IS" basis and THE AUTHOR AND THE SRFI EDITORS DISCLAIM ALL WARRANTIES,
+-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE
+-USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+-WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+-
+- <hr>
+- <address>Editor: <a href="mailto:srfi-editors@srfi.schemers.org">Mike Sperber</a></address>
+-
+-</body>
+-</html>
diff --git a/racket.spec b/racket.spec
index c3d1235..7a76a0b 100644
--- a/racket.spec
+++ b/racket.spec
@@ -1,6 +1,6 @@
Name: racket
-Version: 7.0
-Release: 8%{?dist}
+Version: 7.4
+Release: 1%{?dist}
Summary: General purpose programming language
License: GPLv3 and LGPLv3 and MIT
@@ -13,15 +13,12 @@ Source0: https://mirror.racket-lang.org/installers/%{version}/%{name}-%{v
# is safe, since the removed components are
# extra elements which nothing else in the
# package depends on.
-Patch0: racket-7.0-remove-nonfree.patch
+# Note: SRFI 5 was replaced with a FOSS implementation. Only
+# nonfree docs need to be removed by this patch now.
+Patch0: racket-7.4-remove-nonfree.patch
-# Update racket-doc/search to use https://docs.racket-lang.org
-# when no docs exist locally
-# https://github.com/racket/scribble/pull/164 (open)
-Patch1: racket-7.0-fix-doc-open-url.patch
-
-# Issue Building for s390x, armv7hl, and ppc64 in koji
-ExcludeArch: s390x %{arm} ppc64
+# Issue Building for armv7hl in koji
+ExcludeArch: %{arm} s390x
# To compile the program
BuildRequires: gcc
@@ -81,7 +78,14 @@ cd src
export CFLAGS=$(echo $CFLAGS | sed -e "s/-mfpmath=sse *//")
%endif
+# do not use generations on architectures
+# where it is broken
+# (this is currently a no-op, since arm and s390x are not enabled yet.
+# It is art of a fix that will land in a future release)
%configure \
+%ifarch %{arm} s390x
+ --disable-generations \
+%endif
--enable-pthread \
--enable-shared \
--enable-libffi \
@@ -244,6 +248,11 @@ A local installation of the Racket documentation system.
%{_datadir}/doc/racket
%changelog
+* Wed Aug 28 2019 David Benoit <dbenoit(a)redhat.com> - 7.4.1
+- Update package version
+- Remove doc-open-url patch (fixed upstream)
+- Update remove-nonfree patch
+
* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 7.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
diff --git a/sources b/sources
index e43e6a3..433eb3e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (racket-7.0-src.tgz) = 98be3a7f0fbe38ae5febd2a9a3c81baede7dd7b3f3a9ed3ce68321389a68f74c6a8e24170013f7ca4fd725a79a3d5cfbda2e26f0f75163076e3b98f43094507f
+SHA512 (racket-7.4-src.tgz) = a5ef2ce3157bee3b12abcaeeb4c1ec3b41e78fb6ec04d399e3505a38234a73a098398bb762a99ffef7bc01301aef8db559cbd47c043365df8711fccdc3386df0