Admin/makerpm
author wenzelm
Wed, 20 Sep 2000 21:20:01 +0200
changeset 10039 1eb980d64ba3
parent 10014 d41ab495ab14
child 10068 46db6fde4ee3
permissions -rwxr-xr-x
tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10014
d41ab495ab14 removed -x option;
wenzelm
parents: 9925
diff changeset
     1
#!/bin/bash
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
     2
#
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
     3
# $Id$
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
     4
#
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
     5
# makerpm -- make Isabelle rpm packages for Linux/x86 from the distribution.
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
     6
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
     7
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
     8
## global settings
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
     9
8853
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    10
FAKE_BUILD=""
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    11
DISTBASE=~/tmp/isadist
6499
2fd912486990 use /usr/share and /usr/bin;
wenzelm
parents: 6495
diff changeset
    12
ROOT=/usr/share
2fd912486990 use /usr/share and /usr/bin;
wenzelm
parents: 6495
diff changeset
    13
BIN=/usr/bin
9925
wenzelm
parents: 8853
diff changeset
    14
RPMRELEASE=1
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    15
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    16
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    17
## diagnostics
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    18
9925
wenzelm
parents: 8853
diff changeset
    19
PRG=$(basename "$0")
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    20
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    21
function usage()
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    22
{
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    23
  echo
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    24
  echo "Usage: $PRG ARCHIVE"
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    25
  echo
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    26
  echo "Make Isabelle rpm packages for Linux/x86 from the distribution archives."
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    27
  echo
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    28
  exit 1
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    29
}
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    30
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    31
function fail()
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    32
{
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    33
  echo "$1" >&2
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    34
  exit 2
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    35
}
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    36
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    37
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    38
## process command line
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    39
9925
wenzelm
parents: 8853
diff changeset
    40
[ "$#" -gt 1 ] && usage
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    41
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    42
ARCHIVE="$1"; shift
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    43
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    44
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    45
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    46
## main
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    47
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    48
[ ! -f "$ARCHIVE" ] && fail "Bad archive file $ARCHIVE"
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    49
ARCHIVE_BASE=$(basename "$ARCHIVE")
9925
wenzelm
parents: 8853
diff changeset
    50
ARCHIVE_DIR=$(cd $(dirname "$ARCHIVE"); echo "$PWD")
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    51
ARCHIVE_FULL=$ARCHIVE_DIR/$ARCHIVE_BASE
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    52
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    53
ISABELLE_NAME=$(basename "$ARCHIVE_BASE" .tar.gz)
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    54
ISABELLE_HOME="$ROOT/$ISABELLE_NAME"
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    55
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    56
PDF_ARCHIVE_FULL="$ARCHIVE_DIR/${ISABELLE_NAME}_pdf.tar.gz"
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    57
[ ! -f "$PDF_ARCHIVE_FULL" ] && PDF_ARCHIVE_FULL=""
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    58
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    59
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    60
# prep
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    61
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    62
TMP="/tmp/isabelle-makerpm$$"
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    63
for D in "BUILD$ROOT" RPMS/i386 SOURCES SPECS SRPMS; do mkdir -p "$TMP/$D"; done
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    64
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    65
cd "$TMP/BUILD$ROOT"
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    66
tar -xpzf "$ARCHIVE_FULL"
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    67
[ -n "$PDF_ARCHIVE_FULL" ] && tar -xpzf "$PDF_ARCHIVE_FULL"
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    68
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    69
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    70
# build
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    71
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    72
cd "$TMP/BUILD$ROOT/$ISABELLE_NAME"
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
    73
( env BASH_PATH=/bin/bash PERL_PATH=/usr/bin/perl ./configure )
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    74
COMPILER=$(./bin/isatool getenv -b ML_IDENTIFIER)
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    75
8853
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    76
if [ -n "$FAKE_BUILD" ]; then
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    77
  mkdir -p heaps/${COMPILER}
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    78
  touch heaps/${COMPILER}/HOL
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    79
  touch heaps/${COMPILER}/HOL-Real
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    80
  touch heaps/${COMPILER}/ZF
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    81
else
10039
wenzelm
parents: 10014
diff changeset
    82
  ./build -b -m HOL-Real HOL
wenzelm
parents: 10014
diff changeset
    83
  ./build -b ZF
8853
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    84
  rm -f heaps/${COMPILER}/Pure heaps/${COMPILER}/FOL heaps/${COMPILER}/TLA
079f607dc3dd FAKE_BUILD;
wenzelm
parents: 8317
diff changeset
    85
fi
8046
91587887bcbf accommodate current version of rpm;
wenzelm
parents: 7992
diff changeset
    86
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    87
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    88
# rpm spec
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    89
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    90
RPMVERSION=$(echo "$ISABELLE_NAME" | perl -w \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    91
  -e '$name = <STDIN>;' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    92
  -e 'if ($name =~ m/^Isabelle(\d+)$/) {' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    93
  -e '  $rpmversion = "$1";' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    94
  -e '} elsif ($name =~ m/^Isabelle(\d+)-(\d+)$/) {' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    95
  -e '  $rpmversion = "$1p$2";' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    96
  -e '} elsif ($name =~ m/^Isabelle_(\d+)-(\w+)-(\d+)$/) {' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    97
  -e '  $rpmversion = "$1$2$3";' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    98
  -e '} else {' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
    99
  -e '  $rpmversion = "";' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   100
  -e '};' \
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   101
  -e 'print $rpmversion;')
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   102
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   103
[ -z "$RPMVERSION" ] && fail "Unable to derive package version from $ISABELLE_NAME"
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   104
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   105
cat >$TMP/SPECS/isabelle.spec <<EOF
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   106
Summary:	Isabelle Theorem Proving Environment
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   107
Name:		isabelle
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   108
Version:	$RPMVERSION
7992
6f49fe89bfe1 RPMRELEASE;
wenzelm
parents: 7488
diff changeset
   109
Release:	$RPMRELEASE
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   110
Group:		Applications/Math
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   111
Copyright:	University of Cambridge Computer Laboratory
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   112
Url:		http://www.cl.cam.ac.uk/Research/HVG/Isabelle/
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   113
Packager:	Markus Wenzel <wenzelm@in.tum.de>
7312
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   114
Prefix:		$ROOT
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   115
BuildRoot:	$TMP/BUILD
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   116
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   117
%description
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   118
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   119
This package contains the full source distribution of Isabelle
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   120
together with documentation.  To make it actually run you still need
8317
wenzelm
parents: 8046
diff changeset
   121
the ML compiler and any of the precompiled Isabelle object-logics
wenzelm
parents: 8046
diff changeset
   122
(e.g. package isabelle-HOL).
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   123
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   124
Isabelle is a popular generic theorem proving environment developed at
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   125
Cambridge University (Larry Paulson) and TU Munich (Tobias Nipkow).
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   126
The system can be viewed from two main perspectives.  On the one hand
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   127
it may serve as a generic framework for rapid prototyping of deductive
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   128
systems.  On the other hand, major existing logics like Isabelle/HOL
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   129
provide a theorem proving environment ready to use for sizable
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   130
applications.
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   131
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   132
The Isabelle distribution includes a large body of object logics and
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   133
other examples (see also the Isabelle theory library at
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   134
http://www.cl.cam.ac.uk/Research/HVG/Isabelle/library/).  Isabelle/HOL
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   135
is a version of classical higher-order logic resembling that of the
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   136
HOL System.  Isabelle/HOLCF adds Scott's Logic for Computable
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   137
Functions (domain theory) to HOL.  Isabelle/FOL provides basic
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   138
classical and intuitionistic first-order logic.  It is polymorphic.
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   139
Isabelle/ZF offers a formulation of Zermelo-Fraenkel set theory on top
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   140
of FOL.
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   141
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   142
Isabelle/HOL is currently the best developed object logic, including
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   143
an extensive library of (concrete) mathematics, and various packages
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   144
for advanced definitional concepts (like (co-)inductive sets and
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   145
types, well-founded recursion etc.).  The distribution also includes
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   146
some large applications, for example correctness proofs of
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   147
cryptographic protocols (HOL/Auth) or communication protocols
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   148
(HOLCF/IOA).
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   149
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   150
Isabelle/ZF provides another starting point for applications, with a
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   151
slightly less developed library.  Its definitional packages are
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   152
similar to those of Isabelle/HOL.  Untyped ZF provides more advanced
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   153
constructions for sets than simply-typed HOL.
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   154
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   155
Logics are not hard-wired into Isabelle, but formulated within
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   156
Isabelle's meta logic: Isabelle/Pure.  There are quite a lot of
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   157
syntactic and deductive tools available in generic Isabelle.  Isabelle
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   158
proof tools provide a high degree of automation.
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   159
10039
wenzelm
parents: 10014
diff changeset
   160
By virtue of the Isabelle/Isar subsystem, interactive proof
wenzelm
parents: 10014
diff changeset
   161
development may be performed both via traditional tactic scripts, or
wenzelm
parents: 10014
diff changeset
   162
actual human readable (formal) proof texts.  The resulting theory
wenzelm
parents: 10014
diff changeset
   163
developments may be presented in high quality as (PDF)LaTeX documents,
wenzelm
parents: 10014
diff changeset
   164
accommodating both printed copies and WWW browsing.
wenzelm
parents: 10014
diff changeset
   165
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   166
%package	HOL
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   167
Summary:	Isabelle Theorem Proving Environment -- Higher-Order Logic
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   168
Group:		Applications/Math
6567
8338dd394144 fixed reqs?
wenzelm
parents: 6562
diff changeset
   169
Requires:       isabelle
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   170
%description HOL
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   171
This package contains a binary image of the HOL object-logic for Isabelle.
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   172
7312
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   173
%package	HOL-Real
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   174
Summary:	Isabelle Theorem Proving Environment -- Higher-Order Logic
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   175
Group:		Applications/Math
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   176
Requires:       isabelle
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   177
%description HOL-Real
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   178
This package contains a binary image of the HOL object-logic for Isabelle,
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   179
including support for real numbers.
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   180
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   181
%package	ZF
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   182
Summary:	Isabelle Theorem Proving Environment -- Zermelo-Fraenkel set theory
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   183
Group:		Applications/Math
6567
8338dd394144 fixed reqs?
wenzelm
parents: 6562
diff changeset
   184
Requires:       isabelle
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   185
%description ZF
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   186
This package contains a binary image of the ZF object-logic for Isabelle.
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   187
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   188
%package	pdfdocs
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   189
Summary:	Isabelle Theorem Proving Environment -- PDF documentation
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   190
Group:		Applications/Math
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   191
Requires:       isabelle
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   192
%description pdfdocs
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   193
This package contains the Isabelle documentation in PDF.  Note that
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   194
the dvi version is already part of the base package.
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   195
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   196
%prep
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   197
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   198
%build
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   199
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   200
%install
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   201
7312
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   202
%post
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   203
\$RPM_INSTALL_PREFIX/$ISABELLE_NAME/bin/isatool install -p $BIN
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   204
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   205
%post HOL
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   206
%post HOL-Real
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   207
%post ZF
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   208
%post pdfdocs
7312
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   209
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   210
%postun
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   211
rm -f $BIN/Isabelle $BIN/isabelle $BIN/isatool
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   212
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   213
%postun HOL
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   214
%postun HOL-Real
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   215
%postun ZF
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   216
%postun pdfdocs
7312
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   217
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   218
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   219
%files HOL
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   220
$ISABELLE_HOME/heaps/${COMPILER}/HOL
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   221
7312
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   222
%files HOL-Real
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   223
$ISABELLE_HOME/heaps/${COMPILER}/HOL-Real
523fb2832b30 added HOL-Real;
wenzelm
parents: 6608
diff changeset
   224
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   225
%files ZF
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   226
$ISABELLE_HOME/heaps/${COMPILER}/ZF
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   227
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   228
%files pdfdocs
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   229
EOF
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   230
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   231
for F in $(ls -1 doc/*.pdf); do
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   232
  echo "$ISABELLE_HOME/$F" >>$TMP/SPECS/isabelle.spec
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   233
done
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   234
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   235
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   236
cat >>$TMP/SPECS/isabelle.spec <<EOF
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   237
%files
7337
wenzelm
parents: 7314
diff changeset
   238
%dir $ISABELLE_HOME
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   239
%dir $ISABELLE_HOME/doc
7337
wenzelm
parents: 7314
diff changeset
   240
%dir $ISABELLE_HOME/heaps
wenzelm
parents: 7314
diff changeset
   241
%dir $ISABELLE_HOME/heaps/${COMPILER}
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   242
EOF
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   243
7488
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   244
for F in $(ls -1 | grep -v heaps | grep -v browser_info | grep -v doc); do
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   245
  echo "$ISABELLE_HOME/$F" >>$TMP/SPECS/isabelle.spec
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   246
done
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   247
c49d17fac066 isabelle-pdfdocs;
wenzelm
parents: 7337
diff changeset
   248
for F in $(ls -1 doc/* | grep -v pdf); do
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   249
  echo "$ISABELLE_HOME/$F" >>$TMP/SPECS/isabelle.spec
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   250
done
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   251
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   252
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   253
# invoke rpm
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   254
6561
793b33191ce3 try chown root:root;
wenzelm
parents: 6499
diff changeset
   255
chown -R root:root "$TMP" || chgrp -R isabelle "$TMP"
6495
d3b8440e1d47 chgrp isabelle;
wenzelm
parents: 6485
diff changeset
   256
8046
91587887bcbf accommodate current version of rpm;
wenzelm
parents: 7992
diff changeset
   257
rpm -bb "$TMP/SPECS/isabelle.spec"
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   258
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   259
mkdir -p "$DISTBASE/rpm"
8046
91587887bcbf accommodate current version of rpm;
wenzelm
parents: 7992
diff changeset
   260
cd /usr/src/packages/RPMS/i386
91587887bcbf accommodate current version of rpm;
wenzelm
parents: 7992
diff changeset
   261
mv "isabelle-$RPMVERSION-${RPMRELEASE}.i386.rpm" "$DISTBASE/rpm/isabelle.rpm"
91587887bcbf accommodate current version of rpm;
wenzelm
parents: 7992
diff changeset
   262
mv "isabelle-HOL-$RPMVERSION-${RPMRELEASE}.i386.rpm" "$DISTBASE/rpm/isabelle-HOL.i386.rpm"
91587887bcbf accommodate current version of rpm;
wenzelm
parents: 7992
diff changeset
   263
mv "isabelle-HOL-Real-$RPMVERSION-${RPMRELEASE}.i386.rpm" "$DISTBASE/rpm/isabelle-HOL-Real.i386.rpm"
91587887bcbf accommodate current version of rpm;
wenzelm
parents: 7992
diff changeset
   264
mv "isabelle-ZF-$RPMVERSION-${RPMRELEASE}.i386.rpm" "$DISTBASE/rpm/isabelle-ZF.i386.rpm"
91587887bcbf accommodate current version of rpm;
wenzelm
parents: 7992
diff changeset
   265
mv "isabelle-pdfdocs-$RPMVERSION-${RPMRELEASE}.i386.rpm" "$DISTBASE/rpm/isabelle-pdfdocs.rpm"
6485
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   266
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   267
# clean up
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   268
cd /
0d334465f29a make Isabelle rpm packages for Linux/x86 from the distribution;
wenzelm
parents:
diff changeset
   269
rm -rf "$TMP"