Initial import.
This commit is contained in:
parent
9a8d96d228
commit
574c3520e5
1
.gitignore
vendored
1
.gitignore
vendored
@ -0,0 +1 @@
|
||||
/gap4r4p12.tar.bz2
|
71
gac.1.in
Normal file
71
gac.1.in
Normal file
@ -0,0 +1,71 @@
|
||||
.TH "GAC" "1" "@VERSION@" "GAP" "User Commands"
|
||||
.SH "NAME"
|
||||
gac \- Compile GAP input files
|
||||
.SH "SYNOPSIS"
|
||||
.B gac
|
||||
[\fI\-d\fP] [\fI\-c|\-C\fP] [\fI\-o <output>\fP] {\fI\-f<option>\fP}
|
||||
\fI<input>\fP ...
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
GAC compiles GAP input files, which must be GAP source code (suffix '.g' or
|
||||
\'.gap'), C source code (suffix '.c'), or compiled code files (suffix '.o').
|
||||
.SH "OPTIONS"
|
||||
If neither \fI\-c\fP nor \fI\-C\fP is given, then gac compiles the code
|
||||
completely, producing a new kernel for static compilation or a dynamically
|
||||
loadable '.so' file for dynamic compilation.
|
||||
.TP
|
||||
\fB\-d\fP, \fB\-\-dynamic\fP
|
||||
Compile for dynamic loading.
|
||||
.TP
|
||||
\fB\-c\fP, \fB\-\-compile\fP
|
||||
Only compile the input files to '.o' object files, which must be further
|
||||
linked to make a static kernel or dynamically loadable module.
|
||||
.TP
|
||||
\fB\-C\fP, \fB\-\-create\-c\fP
|
||||
Only compile the input files to C code, which will require compilation and
|
||||
linking to be usable.
|
||||
.TP
|
||||
\fB\-r\fP
|
||||
Statically compiled files are assumed to be given by pathnames relative to the
|
||||
GAP root, and will be compiled for automatic loading when files are sought
|
||||
relative to the GAP root.
|
||||
.TP
|
||||
\fB\-o\fP, \fB\-\-output\fP \fI<output>\fP
|
||||
Set the name of the output file.
|
||||
.TP
|
||||
\fB\-ffast\-int\-arith\fP
|
||||
Emit code for arithmetic operations which works faster if both operands are
|
||||
small integers, and slower otherwise.
|
||||
.TP
|
||||
\fB\-ffast\-plain\-lists\fP
|
||||
Emit code for list access which works faster if the list is a plain list, and
|
||||
slower otherwise.
|
||||
.TP
|
||||
\fB\-ffast\-list\-funcs\fP
|
||||
Inline the list functions 'Add' and 'Length', for a small speed boost.
|
||||
.TP
|
||||
\fB\-fno\-check\-types\fP
|
||||
Emit no error checks for element types, which improves performance but may
|
||||
result in a crash if an error happens.
|
||||
.TP
|
||||
\fB\-fno\-check\-list\-elms\fP
|
||||
Emit no error checks for list access, which improves performance but may
|
||||
result in a crash if an error happens.
|
||||
.TP
|
||||
\fB\-p\fP \fI<option>\fP
|
||||
Pass the given option to the C compiler.
|
||||
.TP
|
||||
\fB\-P\fP \fI<option>\fP
|
||||
Pass the given option to the C linker.
|
||||
.TP
|
||||
\fB\-k\fP, \fB\-\-gap\-compiler\fP \fI<path>\fP
|
||||
Use the given path to find the GAP binary, instead of the default.
|
||||
.TP
|
||||
\fB\-i\fP, \fB\-\-gap\-include\fP \fI<path>\fP
|
||||
Use the given path to find the GAP header files, instead of the default.
|
||||
.TP
|
||||
\fB\-l\fP, \fB\-\-gap\-binary\fP \fI<path>\fP
|
||||
Use the given path to find the GAP binary directory, instead of the default.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fIgap\fP(1), \fIupdate-gap-workspace\fP(1)
|
65
gap-README.fedora
Normal file
65
gap-README.fedora
Normal file
@ -0,0 +1,65 @@
|
||||
GAP for Fedora
|
||||
Based on "GAP for Debian" by Bill Allombert <ballombe@debian.org>
|
||||
|
||||
|
||||
GAP (http://www.gap-system.org) is a system for computational discrete
|
||||
algebra. Many add-on components ("packages") are available for GAP. Most of
|
||||
them not yet available from Fedora. However, they can be installed locally in
|
||||
any of the following locations:
|
||||
- /usr/local/share/gap/pkg
|
||||
- /usr/local/lib/gap/pkg
|
||||
- ~/gap/pkg
|
||||
|
||||
Some packages must be compiled. The necessary tools are available in the
|
||||
gap-devel package.
|
||||
|
||||
Saved Workspaces, or How to make GAP start faster
|
||||
-------------------------------------------------
|
||||
|
||||
GAP starts slowly because it needs to parse all the libraries installed at
|
||||
start up. To make GAP start faster, it is possible to save the GAP workspace
|
||||
and reload it at the next start up. To support this, Fedora provides a
|
||||
Debian-derived script, update-gap-workspace; see the the
|
||||
update-gap-workspace(1) manual page.
|
||||
|
||||
Colors in the GAP shell
|
||||
-----------------------
|
||||
|
||||
If you would like the GAP shell to display the prompt, input, etc. in color,
|
||||
you can try colorprompt.g by Frank Lübeck. Add this line to ~/.gaprc:
|
||||
|
||||
ColorPrompt(true);
|
||||
|
||||
See /usr/share/gap/lib/colorprompt.g for more information.
|
||||
|
||||
Browsing GAP Documentation
|
||||
--------------------------
|
||||
|
||||
By default, GAP will display documentation in a terminal. Other options are
|
||||
available. Insert one of the following into ~/.gaprc:
|
||||
|
||||
SetHelpViewer("firefox"); # Displays HTML documentation in Firefox
|
||||
SetHelpViewer("konqueror"); # Displays HTML documentation in Konqueror
|
||||
SetHelpViewer("lynx"); # Displays HTML documentation in Lynx
|
||||
SetHelpViewer("w3m"); # Displays HTML documentation in w3m
|
||||
SetHelpViewer("xdvi"); # Displays DVI documentation in xdvi
|
||||
SetHelpViewer("xpdf"); # Displays PDF documentation in xpdf
|
||||
SetHelpViewer("xdghtml"); # Displays HTML documentation using xdg-open
|
||||
SetHelpViewer("xdgdvi"); # Displays DVI documentation using xdg-open
|
||||
SetHelpViewer("xdgpdf"); # Displays PDF documentation using xdg-open
|
||||
|
||||
The last three are Fedora extensions. They use xdg-open to open the
|
||||
documentation files with the user's preferred applications.
|
||||
|
||||
Large GAP libraries are compressed
|
||||
----------------------------------
|
||||
|
||||
To save disk space, the largest GAP libraries are compressed with gzip. GAP
|
||||
automatically decompresses them.
|
||||
|
||||
Supporting GAP
|
||||
--------------
|
||||
|
||||
If you use GAP, please send a short note to support@gap-system.org stating you
|
||||
use the Fedora packages of GAP so the GAP team can keep track of the number of
|
||||
GAP users. This helps them obtain funding for the project.
|
231
gap-alias.patch
Normal file
231
gap-alias.patch
Normal file
@ -0,0 +1,231 @@
|
||||
--- ./src/sysfiles.h.orig 2008-09-02 10:50:38.000000000 -0600
|
||||
+++ ./src/sysfiles.h 2011-08-04 13:57:32.717487674 -0600
|
||||
@@ -46,7 +46,7 @@
|
||||
extern Int SyFindOrLinkGapRootFile (
|
||||
Char * filename,
|
||||
Int4 crc_gap,
|
||||
- Char * result,
|
||||
+ union StringOrInitInfo * result,
|
||||
Int len );
|
||||
|
||||
|
||||
--- ./src/sysfiles.c.orig 2008-12-14 14:25:54.000000000 -0700
|
||||
+++ ./src/sysfiles.c 2011-08-04 14:07:06.846239128 -0600
|
||||
@@ -191,7 +191,7 @@
|
||||
Int SyFindOrLinkGapRootFile (
|
||||
Char * filename,
|
||||
Int4 crc_gap,
|
||||
- Char * result,
|
||||
+ union StringOrInitInfo * result,
|
||||
Int len )
|
||||
{
|
||||
UInt4 crc_dyn = 0;
|
||||
@@ -215,19 +215,19 @@
|
||||
#endif
|
||||
|
||||
/* find the GAP file */
|
||||
- result[0] = '\0';
|
||||
+ result->string[0] = '\0';
|
||||
tmp = SyFindGapRootFile(filename);
|
||||
if ( tmp ) {
|
||||
- SyStrncat( result, tmp, len );
|
||||
+ SyStrncat( result->string, tmp, len );
|
||||
name[0] = '\0';
|
||||
SyStrncat( name, tmp, 255 );
|
||||
}
|
||||
- if ( result[0] ) {
|
||||
- if ( SyIsReadableFile(result) == 0 ) {
|
||||
+ if ( result->string[0] ) {
|
||||
+ if ( SyIsReadableFile(result->string) == 0 ) {
|
||||
found_gap = 1;
|
||||
}
|
||||
else {
|
||||
- result[0] = '\0';
|
||||
+ result->string[0] = '\0';
|
||||
}
|
||||
}
|
||||
if ( ! SyUseModule ) {
|
||||
@@ -389,11 +389,11 @@
|
||||
if (found_dyn)
|
||||
syUnloadLastModule ();
|
||||
#endif
|
||||
- *(StructInitInfo**)result = info_sta;
|
||||
+ result->info = info_sta;
|
||||
return 2;
|
||||
}
|
||||
if ( found_gap && found_dyn ) {
|
||||
- *(StructInitInfo**)result = info_dyn;
|
||||
+ result->info = info_dyn;
|
||||
return 1;
|
||||
}
|
||||
if ( found_gap ) {
|
||||
@@ -404,11 +404,11 @@
|
||||
if (found_dyn)
|
||||
syUnloadLastModule ();
|
||||
#endif
|
||||
- *(StructInitInfo**)result = info_sta;
|
||||
+ result->info = info_sta;
|
||||
return 2;
|
||||
}
|
||||
if ( found_dyn ) {
|
||||
- *(StructInitInfo**)result = info_dyn;
|
||||
+ result->info = info_dyn;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
--- ./src/gap.c.orig 2007-10-04 09:05:16.000000000 -0600
|
||||
+++ ./src/gap.c 2011-08-04 14:09:27.815182164 -0600
|
||||
@@ -1650,7 +1650,7 @@
|
||||
StructInitInfo * info;
|
||||
Int4 crc1;
|
||||
Int4 crc2;
|
||||
- Char result[256];
|
||||
+ union StringOrInitInfo result;
|
||||
Int res;
|
||||
|
||||
|
||||
@@ -1670,7 +1670,7 @@
|
||||
|
||||
/* check if have a statically or dynamically loadable module */
|
||||
crc1 = INT_INTOBJ(crc);
|
||||
- res = SyFindOrLinkGapRootFile(CSTR_STRING(filename), crc1, result, 256);
|
||||
+ res = SyFindOrLinkGapRootFile(CSTR_STRING(filename), crc1, &result, 256);
|
||||
|
||||
/* not found */
|
||||
if ( res == 0 ) {
|
||||
@@ -1685,7 +1685,7 @@
|
||||
Pr( "#I READ_GAP_ROOT: loading '%s' dynamically\n",
|
||||
(Int)CSTR_STRING(filename), 0L );
|
||||
}
|
||||
- info = *(StructInitInfo**)result;
|
||||
+ info = result.info;
|
||||
res = info->initKernel(info);
|
||||
UpdateCopyFopyInfo();
|
||||
res = res || info->initLibrary(info);
|
||||
@@ -1703,7 +1703,7 @@
|
||||
Pr( "#I READ_GAP_ROOT: loading '%s' statically\n",
|
||||
(Int)CSTR_STRING(filename), 0L );
|
||||
}
|
||||
- info = *(StructInitInfo**)result;
|
||||
+ info = result.info;
|
||||
res = info->initKernel(info);
|
||||
UpdateCopyFopyInfo();
|
||||
res = res || info->initLibrary(info);
|
||||
@@ -1721,15 +1721,15 @@
|
||||
|
||||
/* compute the crc value of the original and compare */
|
||||
if ( SyCheckCompletionCrcComp ) {
|
||||
- crc2 = SyGAPCRC(result);
|
||||
+ crc2 = SyGAPCRC(result.string);
|
||||
if ( crc1 != crc2 ) {
|
||||
return INTOBJ_INT(4);
|
||||
}
|
||||
}
|
||||
- /*CCC filename = NEW_STRING( SyStrlen(result) );
|
||||
+ /*CCC filename = NEW_STRING( SyStrlen(result.string) );
|
||||
SyStrncat( CSTR_STRING(filename), result, SyStrlen(result) );CCC*/
|
||||
- len = SyStrlen(result);
|
||||
- C_NEW_STRING(filename, len, result);
|
||||
+ len = SyStrlen(result.string);
|
||||
+ C_NEW_STRING(filename, len, result.string);
|
||||
|
||||
CompThenFuncs = NEW_PLIST( T_PLIST, COMP_THEN_OFFSET );
|
||||
SET_LEN_PLIST( CompThenFuncs, COMP_THEN_OFFSET );
|
||||
--- ./src/system.h.orig 2007-10-06 16:53:20.000000000 -0600
|
||||
+++ ./src/system.h 2011-08-04 14:04:52.971092306 -0600
|
||||
@@ -1105,6 +1105,10 @@
|
||||
|
||||
typedef StructInitInfo* (*InitInfoFunc)(void);
|
||||
|
||||
+union StringOrInitInfo {
|
||||
+ Char string[256];
|
||||
+ StructInitInfo * info;
|
||||
+};
|
||||
|
||||
/****************************************************************************
|
||||
**
|
||||
--- ./src/saveload.c.orig 2002-06-16 06:37:20.000000000 -0600
|
||||
+++ ./src/saveload.c 2011-08-04 13:41:46.547763965 -0600
|
||||
@@ -37,6 +37,11 @@
|
||||
#include "saveload.h" /* saving and loading */
|
||||
#undef INCLUDE_DECLARATION_PART
|
||||
|
||||
+union double_bytes {
|
||||
+ Double d;
|
||||
+ UInt1 bytes[sizeof(Double)];
|
||||
+};
|
||||
+
|
||||
|
||||
/***************************************************************************
|
||||
**
|
||||
@@ -438,19 +443,19 @@
|
||||
void SaveDouble( Double d)
|
||||
{
|
||||
UInt i;
|
||||
- UInt1 buf[sizeof(Double)];
|
||||
- *(Double *)buf = d;
|
||||
+ union double_bytes buf;
|
||||
+ buf.d = d;
|
||||
for (i = 0; i < sizeof(Double); i++)
|
||||
- SAVE_BYTE(buf[i]);
|
||||
+ SAVE_BYTE(buf.bytes[i]);
|
||||
}
|
||||
|
||||
Double LoadDouble( void)
|
||||
{
|
||||
UInt i;
|
||||
- UInt1 buf[sizeof(Double)];
|
||||
+ union double_bytes buf;
|
||||
for (i = 0; i < sizeof(Double); i++)
|
||||
- buf[i] = LOAD_BYTE();
|
||||
- return *(Double *)buf;
|
||||
+ buf.bytes[i] = LOAD_BYTE();
|
||||
+ return buf.d;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
--- ./src/streams.c.orig 2008-09-02 10:52:34.000000000 -0600
|
||||
+++ ./src/streams.c 2011-08-04 14:10:55.735229846 -0600
|
||||
@@ -316,13 +316,13 @@
|
||||
|
||||
Int READ_GAP_ROOT ( Char * filename )
|
||||
{
|
||||
- Char result[256];
|
||||
+ union StringOrInitInfo result;
|
||||
Int res;
|
||||
UInt type;
|
||||
StructInitInfo * info;
|
||||
|
||||
/* try to find the file */
|
||||
- res = SyFindOrLinkGapRootFile( filename, 0L, result, 256 );
|
||||
+ res = SyFindOrLinkGapRootFile( filename, 0L, &result, 256 );
|
||||
|
||||
/* not found */
|
||||
if ( res == 0 ) {
|
||||
@@ -335,7 +335,7 @@
|
||||
Pr( "#I READ_GAP_ROOT: loading '%s' dynamically\n",
|
||||
(Int)filename, 0L );
|
||||
}
|
||||
- info = *(StructInitInfo**)result;
|
||||
+ info = result.info;
|
||||
res = info->initKernel(info);
|
||||
if (!SyRestoring) {
|
||||
UpdateCopyFopyInfo();
|
||||
@@ -356,7 +356,7 @@
|
||||
Pr( "#I READ_GAP_ROOT: loading '%s' statically\n",
|
||||
(Int)filename, 0L );
|
||||
}
|
||||
- info = *(StructInitInfo**)result;
|
||||
+ info = result.info;
|
||||
res = info->initKernel(info);
|
||||
if (!SyRestoring) {
|
||||
UpdateCopyFopyInfo();
|
||||
@@ -388,7 +388,7 @@
|
||||
Pr( "#I READ_GAP_ROOT: loading '%s' as GAP file\n",
|
||||
(Int)filename, 0L );
|
||||
}
|
||||
- if ( OpenInput(result) ) {
|
||||
+ if ( OpenInput(result.string) ) {
|
||||
SySetBuffering(Input->file);
|
||||
while ( 1 ) {
|
||||
ClearError();
|
233
gap-crc.patch
Normal file
233
gap-crc.patch
Normal file
@ -0,0 +1,233 @@
|
||||
--- lib/read3.co.orig 2008-12-15 08:56:40.000000000 -0700
|
||||
+++ lib/read3.co 2011-12-30 15:39:05.989250432 -0700
|
||||
@@ -5172,7 +5172,7 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/grpnames.g"
|
||||
|
||||
-#F file="lib/grpnames.gd" crc=115395428
|
||||
+#F file="lib/grpnames.gd" crc=33537811
|
||||
RANK_FILTER_LIST := [ 33223879, 16, 33223879, 16, 1, 0, 1, 0, 66060696, 21,
|
||||
993, 2, 1, 0, 33223879, 16, 33223879, 16, 1, 0, 1, 0, 65012480, 21, 993, 2,
|
||||
1, 0, 33223879, 16, 33223879, 16, 1, 0, 1, 0, 62915088, 21, 993, 2, 1, 0,
|
||||
@@ -5198,7 +5198,7 @@ RANK_FILTER_LIST := [ 33223879, 16, 332
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/grpnames.gd", 115395428 );
|
||||
+COM_RESULT := COM_FILE( "lib/grpnames.gd", 33537811 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/grpnames.gd\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -6485,12 +6485,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/straight.gd"
|
||||
|
||||
-#F file="lib/memory.gd" crc=-69936802
|
||||
+#F file="lib/memory.gd" crc=-50727669
|
||||
RANK_FILTER_LIST := [ 1985, 1, 1, 0, 1, 0, 56000950, 4, 993, 2, 1, 0 ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/memory.gd", -69936802 );
|
||||
+COM_RESULT := COM_FILE( "lib/memory.gd", -50727669 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/memory.gd\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -8687,12 +8687,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/semiquo.gd"
|
||||
|
||||
-#F file="lib/pager.gd" crc=120998950
|
||||
+#F file="lib/pager.gd" crc=-28594049
|
||||
RANK_FILTER_LIST := [ ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/pager.gd", 120998950 );
|
||||
+COM_RESULT := COM_FILE( "lib/pager.gd", -28594049 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/pager.gd\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -8714,12 +8714,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/pager.gd"
|
||||
|
||||
-#F file="lib/helpbase.gd" crc=-118849687
|
||||
+#F file="lib/helpbase.gd" crc=-88527990
|
||||
RANK_FILTER_LIST := [ ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/helpbase.gd", -118849687 );
|
||||
+COM_RESULT := COM_FILE( "lib/helpbase.gd", -88527990 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/helpbase.gd\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -8767,12 +8767,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/helpbase.gd"
|
||||
|
||||
-#F file="lib/helpview.gd" crc=8491351
|
||||
+#F file="lib/helpview.gd" crc=-1578046
|
||||
RANK_FILTER_LIST := [ ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/helpview.gd", 8491351 );
|
||||
+COM_RESULT := COM_FILE( "lib/helpview.gd", -1578046 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/helpview.gd\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -8823,12 +8823,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/helpt2t.gd"
|
||||
|
||||
-#F file="lib/helpdef.gd" crc=-55952681
|
||||
+#F file="lib/helpdef.gd" crc=66735597
|
||||
RANK_FILTER_LIST := [ ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/helpdef.gd", -55952681 );
|
||||
+COM_RESULT := COM_FILE( "lib/helpdef.gd", 66735597 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/helpdef.gd\"");
|
||||
elif COM_RESULT = 1 then
|
||||
--- lib/read4.co.orig 2008-12-15 08:56:40.000000000 -0700
|
||||
+++ lib/read4.co 2011-12-30 15:39:06.065250381 -0700
|
||||
@@ -84,12 +84,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/methwhy.g"
|
||||
|
||||
-#F file="lib/pager.gi" crc=-122078620
|
||||
+#F file="lib/pager.gi" crc=133116398
|
||||
RANK_FILTER_LIST := [ ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/pager.gi", -122078620 );
|
||||
+COM_RESULT := COM_FILE( "lib/pager.gi", 133116398 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/pager.gi\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -118,12 +118,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/pager.gi"
|
||||
|
||||
-#F file="lib/helpbase.gi" crc=81259865
|
||||
+#F file="lib/helpbase.gi" crc=-62250938
|
||||
RANK_FILTER_LIST := [ ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/helpbase.gi", 81259865 );
|
||||
+COM_RESULT := COM_FILE( "lib/helpbase.gi", -62250938 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/helpbase.gi\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -207,12 +207,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/helpt2t.gi"
|
||||
|
||||
-#F file="lib/helpdef.gi" crc=92366536
|
||||
+#F file="lib/helpdef.gi" crc=110442633
|
||||
RANK_FILTER_LIST := [ ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/helpdef.gi", 92366536 );
|
||||
+COM_RESULT := COM_FILE( "lib/helpdef.gi", 110442633 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/helpdef.gi\"");
|
||||
elif COM_RESULT = 1 then
|
||||
--- lib/read5.co.orig 2008-12-15 08:56:54.000000000 -0700
|
||||
+++ lib/read5.co 2011-12-30 15:39:08.386248776 -0700
|
||||
@@ -4863,12 +4863,12 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/polyrat.gi"
|
||||
|
||||
-#F file="lib/polyconw.gi" crc=-103456530
|
||||
+#F file="lib/polyconw.gi" crc=-104825482
|
||||
RANK_FILTER_LIST := [ ];
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/polyconw.gi", -103456530 );
|
||||
+COM_RESULT := COM_FILE( "lib/polyconw.gi", -104825482 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/polyconw.gi\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -10743,7 +10743,7 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/grpprmcs.gi"
|
||||
|
||||
-#F file="lib/grpnames.gi" crc=-100562243
|
||||
+#F file="lib/grpnames.gi" crc=-3569340
|
||||
RANK_FILTER_LIST := [ 29419057, 21, 29419057, 21, 29419057, 21, 29419057,
|
||||
21, 29419057, 21, 29419057, 21, 29419057, 21, 29419057, 21, 29419057, 21,
|
||||
29419057, 21, 29419057, 21, 29419057, 21, 29419057, 21, 29419057, 21,
|
||||
@@ -10752,7 +10752,7 @@ RANK_FILTER_LIST := [ 29419057, 21, 294
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/grpnames.gi", -100562243 );
|
||||
+COM_RESULT := COM_FILE( "lib/grpnames.gi", -3569340 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/grpnames.gi\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -11617,7 +11617,7 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/grpmat.gi"
|
||||
|
||||
-#F file="lib/grpffmat.gi" crc=-70944848
|
||||
+#F file="lib/grpffmat.gi" crc=-126348146
|
||||
RANK_FILTER_LIST := [ 65760937, 34, 57928553, 19, 65749777, 242, 65749777,
|
||||
242, 65749777, 242, 10987176, 246, 61964548, 248, 58412696, 30, 10987176,
|
||||
246, 58412696, 30, 61964548, 248, 10987176, 246, 61964548, 248, 10987176,
|
||||
@@ -11626,7 +11626,7 @@ RANK_FILTER_LIST := [ 65760937, 34, 579
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/grpffmat.gi", -70944848 );
|
||||
+COM_RESULT := COM_FILE( "lib/grpffmat.gi", -126348146 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/grpffmat.gi\"");
|
||||
elif COM_RESULT = 1 then
|
||||
@@ -12793,7 +12793,7 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/adjoin.gi"
|
||||
|
||||
-#F file="lib/semirel.gi" crc=82907093
|
||||
+#F file="lib/semirel.gi" crc=-45125472
|
||||
RANK_FILTER_LIST := [ 11831026, 13, 11831026, 13, 11831026, 13, 11831026,
|
||||
13, 11831026, 13, 62127694, 11, 47185096, 11, 57146508, 11, 49709012, 10,
|
||||
49709012, 10, 11819866, 15, 1, 0, 11819866, 15, 1, 0, 11819866, 15, 1, 0,
|
||||
@@ -12813,7 +12813,7 @@ RANK_FILTER_LIST := [ 11831026, 13, 118
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/semirel.gi", 82907093 );
|
||||
+COM_RESULT := COM_FILE( "lib/semirel.gi", -45125472 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/semirel.gi\"");
|
||||
elif COM_RESULT = 1 then
|
||||
--- lib/read7.co.orig 2008-12-15 08:56:58.000000000 -0700
|
||||
+++ lib/read7.co 2011-12-30 15:39:08.990248358 -0700
|
||||
@@ -2041,7 +2041,7 @@ Unbind(RANK_FILTER_COUNT);
|
||||
Unbind(COM_RESULT);
|
||||
#E file="lib/straight.gi"
|
||||
|
||||
-#F file="lib/memory.gi" crc=-124009148
|
||||
+#F file="lib/memory.gi" crc=52960952
|
||||
RANK_FILTER_LIST := [ 1985, 1, 61553939, 107, 8193, 2, 1, 0, 1, 0, 61553939,
|
||||
107, 8194, 4, 24857226, 21, 61553939, 107, 61553939, 107, 61553939, 107,
|
||||
61553939, 107, 61553939, 107, 61553939, 107, 61553939, 107, 61553939, 107,
|
||||
@@ -2056,7 +2056,7 @@ RANK_FILTER_LIST := [ 1985, 1, 61553939
|
||||
RANK_FILTER_COUNT := 1;
|
||||
|
||||
#C load module, file, or complete
|
||||
-COM_RESULT := COM_FILE( "lib/memory.gi", -124009148 );
|
||||
+COM_RESULT := COM_FILE( "lib/memory.gi", 52960952 );
|
||||
if COM_RESULT = fail then
|
||||
Error("cannot locate file \"lib/memory.gi\"");
|
||||
elif COM_RESULT = 1 then
|
111
gap-emacs.patch
Normal file
111
gap-emacs.patch
Normal file
@ -0,0 +1,111 @@
|
||||
--- ./etc/emacs/gap-process.el.orig 2005-05-08 01:44:58.000000000 -0600
|
||||
+++ ./etc/emacs/gap-process.el 2011-08-04 15:25:18.327841875 -0600
|
||||
@@ -337,7 +337,9 @@
|
||||
(unwind-protect
|
||||
(progn
|
||||
(with-output-to-temp-buffer "*Completions*"
|
||||
- (print-help-return-message))
|
||||
+ (if (featurep 'xemacs)
|
||||
+ (print-help-return-message)
|
||||
+ (help-print-return-message)))
|
||||
(set-process-filter process 'gap-completions-filter)
|
||||
(process-send-string process (concat gap-completion-ident
|
||||
"\t\t\C-x")))))))
|
||||
@@ -371,8 +373,10 @@
|
||||
(unwind-protect
|
||||
(progn
|
||||
(with-output-to-temp-buffer "*Help*"
|
||||
- (print-help-return-message))
|
||||
- (set-process-filter process 'gap-help-filter)
|
||||
+ (if (featurep 'xemacs)
|
||||
+ (print-help-return-message)
|
||||
+ (help-print-return-message)))
|
||||
+ (set-process-filter process 'gap-help-filter)
|
||||
(process-send-string process (concat "?" topic "\n"))))))
|
||||
|
||||
(defun get-start-process (progm &optional name dir args startfile)
|
||||
@@ -382,17 +386,17 @@
|
||||
containing initial standard input to process."
|
||||
(interactive)
|
||||
(require 'comint)
|
||||
- (setq name (or name (file-name-nondirectory progm)))
|
||||
- (setq buffname (concat "*" name "*"))
|
||||
- (cond ((not (comint-check-proc buffname))
|
||||
- (let ((buff (get-buffer-create buffname)))
|
||||
- (set-buffer buff)
|
||||
- (switch-to-buffer buff)
|
||||
- (if dir (cd dir))
|
||||
- (apply 'make-comint name progm startfile args)))
|
||||
- (t
|
||||
- (switch-to-buffer buffname)
|
||||
- (get-buffer buffname))))
|
||||
+ (let ((name (or name (file-name-nondirectory progm)))
|
||||
+ (buffname (concat "*" name "*")))
|
||||
+ (cond ((not (comint-check-proc buffname))
|
||||
+ (let ((buff (get-buffer-create buffname)))
|
||||
+ (set-buffer buff)
|
||||
+ (switch-to-buffer buff)
|
||||
+ (if dir (cd dir))
|
||||
+ (apply 'make-comint name progm startfile args)))
|
||||
+ (t
|
||||
+ (switch-to-buffer buffname)
|
||||
+ (get-buffer buffname)))))
|
||||
(defun string-strip-chars (string strip)
|
||||
"Take STRING and remove characters in STRIP"
|
||||
(while (> (length strip) 0)
|
||||
--- ./etc/emacs/gap-mode.el.orig 2001-08-15 10:42:16.000000000 -0600
|
||||
+++ ./etc/emacs/gap-mode.el 2011-08-04 15:29:19.482725282 -0600
|
||||
@@ -89,15 +89,6 @@
|
||||
(autoload 'gap-complete "gap-process" nil t)
|
||||
|
||||
|
||||
-;;! Fix member function?!
|
||||
-(defun memberequal (x y)
|
||||
- "Like memq, but uses `equal' for comparison.
|
||||
-This is a subr in Emacs 19."
|
||||
- (while (and y (not (equal x (car y))))
|
||||
- (setq y (cdr y)))
|
||||
- y)
|
||||
-
|
||||
-
|
||||
(defvar gap-indent-brackets t
|
||||
"* Whether to check back for unclosed brackets in determining
|
||||
indentation level. This is good for formatting lists and matrices.")
|
||||
@@ -445,12 +436,12 @@
|
||||
(setq name (buffer-substring (match-beginning 2) (match-end 2)))
|
||||
(goto-char (match-end 0)))
|
||||
(t (error "gap-insert-local-variables incorrect code!")))
|
||||
- (if (not (memberequal name names))
|
||||
+ (if (not (member name names))
|
||||
(setq names (append names (list name))))))
|
||||
(beginning-of-line)
|
||||
(let (lnames)
|
||||
(while (car names)
|
||||
- (if (memberequal (car names) formal)
|
||||
+ (if (member (car names) formal)
|
||||
(setq names (cdr names))
|
||||
(setq lnames (append lnames (list (car names))))
|
||||
(setq names (cdr names))))
|
||||
@@ -527,11 +518,11 @@
|
||||
;;! Now the indentation functions and variables
|
||||
;;
|
||||
|
||||
-(setq gap-end-of-statement
|
||||
+(defconst gap-end-of-statement
|
||||
(concat "\\(;\\|\\<then\\>\\|\\<else\\>\\|\\<do\\>\\|"
|
||||
"\\<repeat\\>\\|\\<function\\>.*(.*)\\)"))
|
||||
|
||||
-(setq gap-increment-indentation-regexp (concat "^[ \t]*\\("
|
||||
+(defconst gap-increment-indentation-regexp (concat "^[ \t]*\\("
|
||||
"if\\>"
|
||||
"\\|else\\>"
|
||||
"\\|elif\\>"
|
||||
@@ -541,7 +532,7 @@
|
||||
"\\|.*\\<function\\>"
|
||||
"\\)"))
|
||||
|
||||
-(setq gap-decrement-indentation-regexp (concat "^[ \t]*\\("
|
||||
+(defconst gap-decrement-indentation-regexp (concat "^[ \t]*\\("
|
||||
"fi\\>"
|
||||
"\\|od\\>"
|
||||
"\\|else\\>"
|
27
gap-env.patch
Normal file
27
gap-env.patch
Normal file
@ -0,0 +1,27 @@
|
||||
--- ./src/system.c.orig 2008-12-15 06:08:32.000000000 -0700
|
||||
+++ ./src/system.c 2011-12-30 16:42:48.444607336 -0700
|
||||
@@ -2042,6 +2042,7 @@ void InitSystem (
|
||||
/* Char * ptr; */ /* pointer to the pre'malloc'ated */
|
||||
/* Char * ptr1; */ /* more pre'malloc'ated */
|
||||
Char * *ptrlist;
|
||||
+ Char * envvar;
|
||||
UInt i; /* loop variable */
|
||||
Int res; /* return from option processing function */
|
||||
#if SYS_MAC_MWC
|
||||
@@ -2299,6 +2300,16 @@ void InitSystem (
|
||||
|
||||
#endif
|
||||
|
||||
+ /* process environment variables */
|
||||
+ envvar = getenv("GAP_DIR");
|
||||
+ if (envvar == NULL)
|
||||
+ envvar = "/usr/share/gap";
|
||||
+ setGapRootPath(&envvar, NULL);
|
||||
+ envvar = getenv("GAP_MEM");
|
||||
+ if (envvar == NULL)
|
||||
+ envvar = "32m";
|
||||
+ storeMemory2(&envvar, &SyStorMin);
|
||||
+
|
||||
/* scan the command line for options */
|
||||
while ( argc > 1 && argv[1][0] == '-' ) {
|
||||
|
44
gap-help.patch
Normal file
44
gap-help.patch
Normal file
@ -0,0 +1,44 @@
|
||||
--- ./lib/helpdef.gi.orig 2008-06-23 04:12:20.000000000 -0600
|
||||
+++ ./lib/helpdef.gi 2011-12-30 15:24:46.334844855 -0700
|
||||
@@ -332,6 +332,11 @@ HELP_BOOK_HANDLER.default.ReadSix := fun
|
||||
res.pdffile := ShallowCopy(fname);
|
||||
Add(res.formats, "pdf");
|
||||
fi;
|
||||
+ fname{[Length(fname)-5..Length(fname)]} := "dvi.gz";
|
||||
+ if IsExistingFile( fname ) = true then
|
||||
+ res.dvifile := ShallowCopy(fname);
|
||||
+ Add(res.formats, "dvi");
|
||||
+ fi;
|
||||
fi;
|
||||
res.directories := Directory(fname{[1..Length(fname)-10]});
|
||||
return res;
|
||||
--- ./lib/helpview.gi.orig 2005-04-20 05:38:02.000000000 -0600
|
||||
+++ ./lib/helpview.gi 2011-12-30 15:30:48.173594656 -0700
|
||||
@@ -283,6 +283,27 @@ show := function(file)
|
||||
end
|
||||
);
|
||||
|
||||
+# View HTML, DVI, or PDF files with xdg-open, which opens documents with the
|
||||
+# user's preferred application.
|
||||
+HELP_VIEWER_INFO.xdghtml := rec(
|
||||
+type := "url",
|
||||
+show := function(url)
|
||||
+ Exec(Concatenation("xdg-open \"", url, "\""));
|
||||
+end
|
||||
+);
|
||||
+HELP_VIEWER_INFO.xdgdvi := rec(
|
||||
+type := "dvi",
|
||||
+show := function(file)
|
||||
+ Exec(Concatenation("xdg-open \"", file, "\""));
|
||||
+end
|
||||
+);
|
||||
+HELP_VIEWER_INFO.xdgpdf := rec(
|
||||
+type := "pdf",
|
||||
+show := function(file)
|
||||
+ Exec(Concatenation("xdg-open \"", file, "\""));
|
||||
+end
|
||||
+);
|
||||
+
|
||||
#############################################################################
|
||||
##
|
||||
#F SetHelpViewer(<viewer>): Set the viewer used for help
|
73
gap-paths.patch
Normal file
73
gap-paths.patch
Normal file
@ -0,0 +1,73 @@
|
||||
--- ./configure.orig 2007-10-04 09:05:16.000000000 -0600
|
||||
+++ ./configure 2012-01-03 16:55:54.417003009 -0700
|
||||
@@ -2764,7 +2764,7 @@ echo "${ECHO_T}no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
-gapdir=`pwd`
|
||||
+gapdir=/usr/share/gap
|
||||
mkdir -p bin
|
||||
ac_config_files="$ac_config_files Makefile sysinfo.gap:sysinfo.in bin/gap.sh:gap.shi"
|
||||
|
||||
--- ./cnf/gac.in.orig 2006-03-05 06:37:06.000000000 -0700
|
||||
+++ ./cnf/gac.in 2012-01-03 16:59:18.237794244 -0700
|
||||
@@ -51,16 +51,16 @@
|
||||
## The option '-P <option>' tells 'gac' to pass the option <option> to the
|
||||
## C linker.
|
||||
##
|
||||
-gap_bin=@gapbin@
|
||||
+gap_bin=/usr/include/gap
|
||||
|
||||
if [ "X${gap_bin}" = "X$0" ]; then
|
||||
gap_dir="../../";
|
||||
gap_compiler="./gap";
|
||||
gap_binary="./";
|
||||
else
|
||||
- gap_dir="${gap_bin}/../..";
|
||||
- gap_compiler="${gap_bin}/gap";
|
||||
- gap_binary="${gap_bin}";
|
||||
+ gap_dir=/usr/lib/gap;
|
||||
+ gap_compiler=/usr/bin/gap;
|
||||
+ gap_binary=${gap_dir}/bin/@gaparch@;
|
||||
fi
|
||||
gap_options=""
|
||||
gap_include="${gap_dir}/src"
|
||||
@@ -111,9 +111,9 @@ gap_compile () {
|
||||
##
|
||||
c_compile () {
|
||||
echo ${c_compiler} $3 -o $1 -I${gap_dir} \
|
||||
- -I${gap_bin} -DCONFIG_H -c $2
|
||||
+ -I${gap_bin} -I${gap_binary} -DCONFIG_H -c $2
|
||||
${c_compiler} $3 -o $1 -I${gap_dir} \
|
||||
- -I${gap_bin} -DCONFIG_H -c $2
|
||||
+ -I${gap_bin} -I${gap_binary} -DCONFIG_H -c $2
|
||||
}
|
||||
|
||||
|
||||
@@ -387,17 +387,17 @@ make_compstat () {
|
||||
objects="${gactmp}/$$compstat.o ${objects}"
|
||||
}
|
||||
|
||||
-make_tmpdir () {
|
||||
- basetmp=${TMPDIR:-/tmp}; #honor the TMPDIR environment variable.
|
||||
- gactmp="$basetmp/gac$$";
|
||||
- mkdir "$gactmp" || exit 1;
|
||||
-}
|
||||
+#make_tmpdir () {
|
||||
+# basetmp=${TMPDIR:-/tmp}; #honor the TMPDIR environment variable.
|
||||
+# gactmp="$basetmp/gac$$";
|
||||
+# mkdir "$gactmp" || exit 1;
|
||||
+#}
|
||||
|
||||
#On systems with mktemp(1) this function is better:
|
||||
-#make_tmpdir ()
|
||||
-#{
|
||||
-# gactmp=`mktemp -d -t "gacXXXXXXX"`;
|
||||
-#}
|
||||
+make_tmpdir ()
|
||||
+{
|
||||
+ gactmp=`mktemp -d -t "gacXXXXXXX"`;
|
||||
+}
|
||||
|
||||
#############################################################################
|
||||
##
|
20
gap-raw.patch
Normal file
20
gap-raw.patch
Normal file
@ -0,0 +1,20 @@
|
||||
--- ./src/sysfiles.c.orig 2008-12-14 14:25:54.000000000 -0700
|
||||
+++ ./src/sysfiles.c 2011-12-30 15:12:00.360374500 -0700
|
||||
@@ -1523,7 +1523,7 @@ extern void syStopraw (
|
||||
** to cooked mode before stopping GAP and back to raw mode when continueing.
|
||||
*/
|
||||
|
||||
-#if !SYS_IS_DARWIN && (SYS_BSD || SYS_MACH || HAVE_SGTTY_H)
|
||||
+#if !HAVE_TERMIOS_H && !SYS_IS_DARWIN && (SYS_BSD || SYS_MACH || HAVE_SGTTY_H)
|
||||
|
||||
#ifndef SYS_SGTTY_H /* terminal control functions */
|
||||
# include <sgtty.h>
|
||||
@@ -2072,7 +2072,7 @@ UInt syStartraw (
|
||||
**
|
||||
*f syStopraw( <fid> ) . . . . . . . . . . . . . . . . . . . . . . BSD/MACH
|
||||
*/
|
||||
-#if !SYS_IS_DARWIN && (SYS_BSD || SYS_MACH || HAVE_SGTTY_H)
|
||||
+#if !HAVE_TERMIOS_H && !SYS_IS_DARWIN && (SYS_BSD || SYS_MACH || HAVE_SGTTY_H)
|
||||
|
||||
void syStopraw (
|
||||
Int fid )
|
123
gap.1.in
Normal file
123
gap.1.in
Normal file
@ -0,0 +1,123 @@
|
||||
.TH "GAP" "1" "@VERSION@" "GAP" "User Commands"
|
||||
.SH "NAME"
|
||||
gap \- Run the Groups, Algorithms and Programming system
|
||||
.SH "SYNOPSIS"
|
||||
.B gap
|
||||
[\fIOPTIONS\fP] [\fIFILES\fP]
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
GAP is a system for computational discrete algebra, with particular emphasis
|
||||
on Computational Group Theory. GAP provides a programming language, a library
|
||||
of thousands of functions implementing algebraic algorithms written in the GAP
|
||||
language as well as large data libraries of algebraic objects. GAP is used in
|
||||
research and teaching for studying groups and their representations, rings,
|
||||
vector spaces, algebras, combinatorial structures, and more.
|
||||
.SH "OPTIONS"
|
||||
Boolean options (b, e, p, q, r, A, D, M, N, O, T, X, and Y) toggle the current
|
||||
value each time they are used. Default actions are indicated first.
|
||||
.PP
|
||||
MEM options indicate a number of bytes. Larger units are indicated with
|
||||
trailing characters: 'k' for kilobytes, m for megabytes, and g for gigabytes.
|
||||
For example, '512k' means 512 kilobytes.
|
||||
.TP
|
||||
\fB\-a\fP \fIMEM\fP
|
||||
Set the amount of preallocated space.
|
||||
.TP
|
||||
\fB\-b\fP
|
||||
Disable/enable the banner.
|
||||
.TP
|
||||
\fB\-c\fP \fIMEM\fP
|
||||
Set the cache size.
|
||||
.TP
|
||||
\fB\-e\fP
|
||||
Disable/enable quitting on Ctrl-D.
|
||||
.TP
|
||||
\fB\-f\fP
|
||||
Force line editing.
|
||||
.TP
|
||||
\fB\-g\fP
|
||||
Show GASMAN messages. If this option is given once, then full garbage
|
||||
collections are shown. If it is given twice, all garbage collections are
|
||||
shown.
|
||||
.TP
|
||||
\fB\-h\fP
|
||||
Print a help message and exit.
|
||||
.TP
|
||||
\fB\-i\fP \fIFILE\fP
|
||||
Load an alternate init file.
|
||||
.TP
|
||||
\fB\-l\fP \fIPATHS\fP
|
||||
Set the GAP root paths. A leading semicolon means to append PATHS to the
|
||||
existing list of root paths. A trailing semicolon means to prepend PATHS.
|
||||
Otherwise, the list of root paths is replaced with PATHS.
|
||||
.TP
|
||||
\fB\-m\fP \fIMEM\fP
|
||||
Set the initial workspace size.
|
||||
.TP
|
||||
\fB\-n\fP
|
||||
Prevent line editing.
|
||||
.TP
|
||||
\fB\-o\fP \fIMEM\fP
|
||||
Set the hint for the maximal workspace size. GAP may allocate more.
|
||||
.TP
|
||||
\fB\-p\fP
|
||||
Enable/disable emitting extra commands to the output to tell a window handler
|
||||
what GAP is doing.
|
||||
.TP
|
||||
\fB\-q\fP
|
||||
Enable/disable quiet mode.
|
||||
.TP
|
||||
\fB\-r\fP
|
||||
Disable/enable reading of the .gaprc file.
|
||||
.TP
|
||||
\fB\-x\fP \fINUM\fP
|
||||
Set the window width to NUM columns.
|
||||
.TP
|
||||
\fB\-y\fP \fINUM\fP
|
||||
Set the window height to NUM rows.
|
||||
.TP
|
||||
\fB\-A\fP
|
||||
Disable/enable autoloading of GAP packages.
|
||||
.TP
|
||||
\fB\-B\fP \fINAME\fP
|
||||
Set the name of the current architecture.
|
||||
.TP
|
||||
\fB\-C\fP \fI<output>\fP \fI<input>\fP \fI<name>\fP
|
||||
Compile an input file with the given name into an output file.
|
||||
.TP
|
||||
\fB\-D\fP
|
||||
Enable/disable debugging the loading of library files.
|
||||
.TP
|
||||
\fB\-K\fP \fIMEM\fP
|
||||
Set the maximal workspace size. GAP never allocates more.
|
||||
.TP
|
||||
\fB\-L\fP \fIFILE\fP
|
||||
Restore a saved workspace.
|
||||
.TP
|
||||
\fB\-M\fP
|
||||
Disable/enable loading of compiled modules.
|
||||
.TP
|
||||
\fB\-N\fP
|
||||
Disable/enable check for completion files.
|
||||
.TP
|
||||
\fB\-O\fP
|
||||
Enable/disable compatibility with GAP 3, by causing false and fail to be the
|
||||
same value.
|
||||
.TP
|
||||
\fB\-R\fP
|
||||
Prevent restoring of workspace (causes -L to be ignored).
|
||||
.TP
|
||||
\fB\-T\fP
|
||||
Disable/enable break loop.
|
||||
.TP
|
||||
\fB\-U\fP \fIOPTIONS\fP
|
||||
Set the compile options for compiling GAP files.
|
||||
.TP
|
||||
\fB\-X\fP
|
||||
Enable/disable CRC while reading completion.
|
||||
.TP
|
||||
\fB\-Y\fP
|
||||
Enable/disable CRC while completing files.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
\fIgac\fP(1), \fIupdate-gap-workspace\fP(1)
|
11
gap.desktop
Normal file
11
gap.desktop
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
[Desktop Entry]
|
||||
Name=GAP
|
||||
GenericName=Computational discrete algebra
|
||||
Comment=Groups, Algorithms, Programming
|
||||
Exec=gap %U
|
||||
Icon=/usr/share/icons/hicolor/32x32/gap.png
|
||||
Terminal=true
|
||||
Type=Application
|
||||
Categories=Education;Science;Math;
|
||||
MimeType=application/x-gap;
|
5
gap.el
Normal file
5
gap.el
Normal file
@ -0,0 +1,5 @@
|
||||
(autoload 'gap-mode "gap-mode" "Gap editing mode" t)
|
||||
(autoload 'gap "gap-process" "Run GAP in emacs buffer" t)
|
||||
(add-to-list 'auto-mode-alist '("\\.g$" . gap-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.gap$" . gap-mode))
|
||||
(setq gap-executable "/usr/bin/gap")
|
421
gap.spec
Normal file
421
gap.spec
Normal file
@ -0,0 +1,421 @@
|
||||
%global upstreamver 4r4p12
|
||||
%global gapdirname gap%(echo %upstreamver | cut -dp -f1)
|
||||
%global gapdir %{_datadir}/gap
|
||||
%global gaparchdir %{_prefix}/lib/gap
|
||||
%global icondir %{_datadir}/icons/hicolor
|
||||
|
||||
Name: gap
|
||||
Version: %(echo %upstreamver | sed -r "s/r|p/./g")
|
||||
Release: 3%{?dist}
|
||||
Summary: Computational discrete algebra
|
||||
|
||||
Group: Applications/Engineering
|
||||
License: GPLv2+
|
||||
URL: http://www.gap-system.org/
|
||||
Source0: ftp://ftp.gap-system.org/pub/gap/gap4/tar.bz2/%{name}%{upstreamver}.tar.bz2
|
||||
Source1: gap-README.fedora
|
||||
Source2: update-gap-workspace
|
||||
Source3: gap.xml
|
||||
Source4: gap.desktop
|
||||
Source5: gap.el
|
||||
Source6: gap.1.in
|
||||
Source7: gac.1.in
|
||||
Source8: update-gap-workspace.1
|
||||
Source9: gap.vim
|
||||
# This patch from Debian rearranges some paths to match Linux conventions.
|
||||
Patch0: gap-paths.patch
|
||||
# This patch from Debian makes GAP use termios controls instead of BSD ioctls
|
||||
# to manage a raw terminal.
|
||||
Patch1: gap-raw.patch
|
||||
# This patch applies a change from Debian to allow help files to be in gzip
|
||||
# compressed DVI files, and also adds support for viewing with xdg-open.
|
||||
Patch2: gap-help.patch
|
||||
# This patch will not be sent upstream. It fixes some CRCs after converting
|
||||
# the source files from ISO8859-1 to UTF-8 and applying the previous patches.
|
||||
Patch3: gap-crc.patch
|
||||
# This patch will not be sent upstream. It makes the main binary read the
|
||||
# environment variables now read by gap.sh, so we can dispose of the shell
|
||||
# script and run the actual binary directly.
|
||||
Patch4: gap-env.patch
|
||||
# This patch was sent upstream 4 Aug 2011. It fixes several places where the
|
||||
# sources violate ANSI C alias analysis rules.
|
||||
Patch5: gap-alias.patch
|
||||
# This patch was sent upstream 4 Aug 2011. It fixes some cosmetic issues in
|
||||
# the Emacs Lisp sources.
|
||||
Patch6: gap-emacs.patch
|
||||
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: netpbm-progs
|
||||
BuildRequires: emacs
|
||||
BuildRequires: xemacs
|
||||
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Requires: %{name}-core%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-online-help = %{version}-%{release}
|
||||
Requires: %{name}-prim-groups = %{version}-%{release}
|
||||
Requires: %{name}-small-groups = %{version}-%{release}
|
||||
Requires: %{name}-trans-groups = %{version}-%{release}
|
||||
|
||||
%description
|
||||
GAP is a system for computational discrete algebra, with particular
|
||||
emphasis on Computational Group Theory. GAP provides a programming
|
||||
language, a library of thousands of functions implementing algebraic
|
||||
algorithms written in the GAP language as well as large data libraries
|
||||
of algebraic objects. GAP is used in research and teaching for studying
|
||||
groups and their representations, rings, vector spaces, algebras,
|
||||
combinatorial structures, and more.
|
||||
|
||||
This is a metapackage that requires the standard GAP components.
|
||||
|
||||
%package libs
|
||||
Summary: Essential GAP libraries
|
||||
Group: Applications/Engineering
|
||||
BuildArch: noarch
|
||||
|
||||
%description libs
|
||||
This package contains the essential GAP libraries: lib and grp.
|
||||
|
||||
%package core
|
||||
Summary: GAP core components
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
# The gap binary executes gunzip
|
||||
Requires: gzip
|
||||
Requires: hicolor-icon-theme
|
||||
|
||||
%description core
|
||||
This package contains the core GAP system.
|
||||
|
||||
%package online-help
|
||||
Summary: Online help for GAP
|
||||
Group: Documentation
|
||||
Requires: %{name}-core = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description online-help
|
||||
This package contains the documentation in TeX format needed for GAP's
|
||||
online help system.
|
||||
|
||||
%package devel
|
||||
Summary: GAP compiler and development files
|
||||
Group: Development/Languages
|
||||
Requires: %{name}-core%{?isa} = %{version}-%{release}
|
||||
Requires: gcc
|
||||
|
||||
%description devel
|
||||
This package contains the GAP compiler (gac) and the header files necessary
|
||||
for developing GAP programs.
|
||||
|
||||
%package prim-groups
|
||||
Summary: Database of primitive groups for GAP
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-core = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description prim-groups
|
||||
This package contains a database of primitive groups for GAP.
|
||||
|
||||
%package small-groups
|
||||
Summary: Database of small groups for GAP
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-core = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description small-groups
|
||||
This package contains a database of groups of small order for GAP. The
|
||||
database includes the group data and identification routines for groups
|
||||
of order up to 2000.
|
||||
|
||||
%package trans-groups
|
||||
Summary: Database of transitive groups for GAP
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-core = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description trans-groups
|
||||
This package contains a database of transitive groups for GAP.
|
||||
|
||||
%package vim
|
||||
Summary: Edit GAP files with VIM
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-core = %{version}-%{release}, vim-filesystem
|
||||
BuildArch: noarch
|
||||
|
||||
%description vim
|
||||
This package provides VIM add-on files to support editing GAP sources.
|
||||
Both syntax highlighting and indentation are supported.
|
||||
|
||||
%package emacs
|
||||
Summary: Edit GAP files with Emacs
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-core = %{version}-%{release}
|
||||
Requires: emacs(bin) >= %{_emacs_version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description emacs
|
||||
This package provides Emacs add-on files to support editing GAP sources
|
||||
and running GAP from within Emacs.
|
||||
|
||||
%package emacs-el
|
||||
Summary: Emacs Lisp source files for GAP
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-emacs = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description emacs-el
|
||||
Emacs Lisp source files for GAP. This package is not needed to use the
|
||||
GAP Emacs support.
|
||||
|
||||
%package xemacs
|
||||
Summary: Edit GAP files with XEmacs
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-core = %{version}-%{release}
|
||||
Requires: xemacs(bin) >= %{_xemacs_version}, xemacs-packages-base
|
||||
BuildArch: noarch
|
||||
|
||||
%description xemacs
|
||||
This package provides XEmacs add-on files to support editing GAP sources
|
||||
and running GAP from within XEmacs.
|
||||
|
||||
%package xemacs-el
|
||||
Summary: XEmacs Lisp source files for GAP
|
||||
Group: Applications/Engineering
|
||||
Requires: %{name}-xemacs = %{version}-%{release}
|
||||
BuildArch: noarch
|
||||
|
||||
%description xemacs-el
|
||||
XEmacs Lisp source files for GAP. This package is not needed to use the
|
||||
GAP XEmacs support.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{gapdirname}
|
||||
%patch0
|
||||
%patch1
|
||||
%patch2
|
||||
%patch3
|
||||
%patch4
|
||||
%patch5
|
||||
%patch6
|
||||
|
||||
# Replace the CFLAGS
|
||||
sed -i "s|gp_cv_cflags=\"-Wall -g -O2\"|gp_cv_cflags='$RPM_OPT_FLAGS -DSYS_DEFAULT_PATHS=\\\\\"%{gapdir}\\\\\"'|" \
|
||||
cnf/configure.out
|
||||
|
||||
# Fix file encodings
|
||||
for f in description4r4p6 etc/gap*.vim etc/README.vim-utils lib/colorprompt.g \
|
||||
lib/grpffmat.gi lib/grpnames.gd lib/grpnames.gi lib/helpbase.* \
|
||||
lib/helpdef.* lib/helpview.* lib/memory.* lib/pager.* \
|
||||
lib/polyconw.gi lib/semirel.gi small/README; do
|
||||
iconv -f iso8859-1 -t utf-8 $f > $f.new
|
||||
touch -f $f $f.new
|
||||
mv -f $f.new $f
|
||||
done
|
||||
|
||||
# Get the README
|
||||
cp -p %{SOURCE1} README.fedora
|
||||
|
||||
%build
|
||||
%configure
|
||||
make %{?_smp_mflags} compile
|
||||
|
||||
# Compress help files
|
||||
find doc -name \*.dvi -o -name \*.toc | xargs gzip --best
|
||||
|
||||
# Compress large group files
|
||||
find -O3 small -mindepth 2 -type f | xargs gzip --best -f
|
||||
gzip --best prim/grps/*.g trans/*.grp
|
||||
|
||||
%install
|
||||
# Get the value of the GAParch variable
|
||||
source ./sysinfo.gap
|
||||
|
||||
# Install the binaries
|
||||
mkdir -p $RPM_BUILD_ROOT%{_bindir}
|
||||
cp -p bin/$GAParch/gap $RPM_BUILD_ROOT%{_bindir}
|
||||
cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}
|
||||
sed -e "s|@gaparch@|$GAParch|" \
|
||||
-e "s| -DSYS_DEFAULT_PATHS=\\\"/usr/share/gap\\\"||" \
|
||||
bin/$GAParch/gac > $RPM_BUILD_ROOT%{_bindir}/gac
|
||||
chmod a+x $RPM_BUILD_ROOT%{_bindir}/ga*
|
||||
|
||||
# Install the data
|
||||
mkdir -p $RPM_BUILD_ROOT%{gapdir}/etc
|
||||
cp -a grp lib prim small trans tst $RPM_BUILD_ROOT%{gapdir}
|
||||
cp -p etc/debug* $RPM_BUILD_ROOT%{gapdir}/etc
|
||||
|
||||
# Install the arch-specific files
|
||||
mkdir -p $RPM_BUILD_ROOT%{gaparchdir}
|
||||
cp -p sysinfo.gap $RPM_BUILD_ROOT%{gaparchdir}
|
||||
|
||||
# Create the system workspace, initially empty
|
||||
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}
|
||||
touch $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/workspace
|
||||
|
||||
# Install the header and object files where the GAP compiler can find them
|
||||
mkdir -p $RPM_BUILD_ROOT%{gaparchdir}/src
|
||||
cp -p src/*.h bin/$GAParch/config.h $RPM_BUILD_ROOT%{gaparchdir}/src
|
||||
mkdir -p $RPM_BUILD_ROOT%{gaparchdir}/bin/$GAParch
|
||||
cp -p bin/$GAParch/*.o $RPM_BUILD_ROOT%{gaparchdir}/bin/$GAParch
|
||||
|
||||
# Make an empty directory to hold the GAP packages
|
||||
mkdir -p $RPM_BUILD_ROOT%{gapdir}/pkg
|
||||
|
||||
# Intall the documentation
|
||||
cp -a doc $RPM_BUILD_ROOT%{gapdir}
|
||||
rm -f $RPM_BUILD_ROOT%{gapdir}/doc/manualindex
|
||||
rm -fr $RPM_BUILD_ROOT%{gapdir}/doc/test
|
||||
|
||||
# Install the icon
|
||||
mkdir -p $RPM_BUILD_ROOT%{icondir}/32x32
|
||||
bmptopnm bin/gapicon.bmp | pnmtopng -compression=9 \
|
||||
> $RPM_BUILD_ROOT%{icondir}/32x32/gap.png
|
||||
|
||||
# Install the MIME type
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/mime/packages
|
||||
cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/mime/packages
|
||||
|
||||
# Install the desktop file
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
|
||||
desktop-file-install --mode=644 --dir=$RPM_BUILD_ROOT%{_datadir}/applications \
|
||||
%{SOURCE4}
|
||||
|
||||
# Install the VIM support
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/indent
|
||||
cp -p etc/gap_indent.vim $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/indent
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
|
||||
cp -p etc/gap.vim $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/syntax
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/ftdetect
|
||||
cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/ftdetect
|
||||
|
||||
# Install the Emacs support
|
||||
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitelispdir}
|
||||
cp -p etc/emacs/gap*.el $RPM_BUILD_ROOT%{_emacs_sitelispdir}
|
||||
pushd $RPM_BUILD_ROOT%{_emacs_sitelispdir}
|
||||
%{_emacs_bytecompile} gap*.el
|
||||
popd
|
||||
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
|
||||
cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_emacs_sitestartdir}
|
||||
|
||||
# Install the XEmacs support
|
||||
mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitelispdir}
|
||||
cp -p etc/emacs/gap*.el $RPM_BUILD_ROOT%{_xemacs_sitelispdir}
|
||||
pushd $RPM_BUILD_ROOT%{_xemacs_sitelispdir}
|
||||
%{_xemacs_bytecompile} gap*.el
|
||||
popd
|
||||
mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitestartdir}
|
||||
cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_xemacs_sitestartdir}
|
||||
|
||||
# Install the man pages
|
||||
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
|
||||
sed "s|@VERSION@|%{version}|" %{SOURCE6} > $RPM_BUILD_ROOT%{_mandir}/man1/gap.1
|
||||
sed "s|@VERSION@|%{version}|" %{SOURCE7} > $RPM_BUILD_ROOT%{_mandir}/man1/gac.1
|
||||
cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_mandir}/man1
|
||||
|
||||
%post core
|
||||
update-mime-database %{_datadir}/mime &>/dev/null ||:
|
||||
touch --no-create %{icondir} >&/dev/null ||:
|
||||
update-desktop-database %{_datadir}/applications &>/dev/null ||:
|
||||
%{_bindir}/update-gap-workspace
|
||||
|
||||
%postun core
|
||||
update-mime-database %{_datadir}/mime &>/dev/null ||:
|
||||
touch --no-create %{icondir} >&/dev/null ||:
|
||||
%{_bindir}/gtk-update-icon-cache %{icondir} >&/dev/null ||:
|
||||
update-desktop-database %{_datadir}/applications &>/dev/null ||:
|
||||
|
||||
%posttrans
|
||||
%{_bindir}/gtk-update-icon-cache %{icondir} >&/dev/null ||:
|
||||
|
||||
%posttrans prim-groups -p %{_bindir}/update-gap-workspace
|
||||
|
||||
%postun prim-groups -p %{_bindir}/update-gap-workspace
|
||||
|
||||
%posttrans small-groups -p %{_bindir}/update-gap-workspace
|
||||
|
||||
%postun small-groups -p %{_bindir}/update-gap-workspace
|
||||
|
||||
%posttrans trans-groups -p %{_bindir}/update-gap-workspace
|
||||
|
||||
%postun trans-groups -p %{_bindir}/update-gap-workspace
|
||||
|
||||
%check
|
||||
sed -e "s|^GAP_DIR=.*|GAP_DIR=$RPM_BUILD_ROOT%{gapdir}|" \
|
||||
-e "s|\$GAP_DIR/bin/\$GAP_PRG|$RPM_BUILD_ROOT%{_bindir}/gap|" \
|
||||
-i bin/gap.sh
|
||||
make testinstall
|
||||
|
||||
%files
|
||||
# No files in the metapackage
|
||||
|
||||
%files libs
|
||||
%doc etc/GPL
|
||||
%dir %{gapdir}
|
||||
%{gapdir}/grp/
|
||||
%{gapdir}/lib/
|
||||
|
||||
%files core
|
||||
%doc README README.fedora description*
|
||||
%{_bindir}/gap
|
||||
%{_bindir}/update-gap-workspace
|
||||
%dir %{gaparchdir}
|
||||
%{gaparchdir}/sysinfo.gap
|
||||
%{gapdir}/pkg/
|
||||
%{_mandir}/man1/gap.1*
|
||||
%{_mandir}/man1/update-gap-workspace.1*
|
||||
%{_datadir}/applications/gap.desktop
|
||||
%{_datadir}/mime/packages/gap.xml
|
||||
%{icondir}/32x32/gap.png
|
||||
%dir %{_localstatedir}/lib/%{name}/
|
||||
%verify(user group mode) %{_localstatedir}/lib/%{name}/workspace
|
||||
|
||||
%files online-help
|
||||
%{gapdir}/doc/
|
||||
|
||||
%files devel
|
||||
%{_bindir}/gac
|
||||
%{gaparchdir}/bin/
|
||||
%{gaparchdir}/src/
|
||||
%{gapdir}/tst/
|
||||
%{_mandir}/man1/gac.1*
|
||||
|
||||
%files prim-groups
|
||||
%{gapdir}/prim/
|
||||
|
||||
%files small-groups
|
||||
%doc small/README
|
||||
%{gapdir}/small/
|
||||
|
||||
%files trans-groups
|
||||
%{gapdir}/trans/
|
||||
|
||||
%files vim
|
||||
%{gapdir}/etc/
|
||||
%{_datadir}/vim/vimfiles/ftdetect/gap.vim
|
||||
%{_datadir}/vim/vimfiles/indent/gap_indent.vim
|
||||
%{_datadir}/vim/vimfiles/syntax/gap.vim
|
||||
|
||||
%files emacs
|
||||
%doc etc/emacs/gap-mode.doc
|
||||
%{_emacs_sitelispdir}/gap*.elc
|
||||
%{_emacs_sitestartdir}/gap.el
|
||||
|
||||
%files emacs-el
|
||||
%{_emacs_sitelispdir}/gap*.el
|
||||
|
||||
%files xemacs
|
||||
%doc etc/emacs/gap-mode.doc
|
||||
%{_xemacs_sitelispdir}/gap*.elc
|
||||
%{_xemacs_sitestartdir}/gap.el
|
||||
|
||||
%files xemacs-el
|
||||
%{_xemacs_sitelispdir}/gap*.el
|
||||
|
||||
%changelog
|
||||
* Wed Jan 11 2012 Jerry James <loganjerry@gmail.com> - 4.4.12-3
|
||||
- Fix problems found on review
|
||||
|
||||
* Tue Jan 3 2012 Jerry James <loganjerry@gmail.com> - 4.4.12-2
|
||||
- Mimic Debian's subpackage structure
|
||||
|
||||
* Wed Oct 12 2011 Jerry James <loganjerry@gmail.com> - 4.4.12-1
|
||||
- Initial RPM
|
1
gap.vim
Normal file
1
gap.vim
Normal file
@ -0,0 +1 @@
|
||||
autocmd BufRead,BufNewFile *.g,*.gi,*.gd set filetype=gap
|
7
gap.xml
Normal file
7
gap.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
|
||||
<mime-type type="application/x-gap">
|
||||
<comment>GAP input</comment>
|
||||
<glob pattern="*.gap"/>
|
||||
</mime-type>
|
||||
</mime-info>
|
36
update-gap-workspace
Executable file
36
update-gap-workspace
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Script borrowed from Debian. Thanks to the Debian packagers.
|
||||
|
||||
set -e
|
||||
|
||||
GAP="/usr/bin/gap"
|
||||
|
||||
if ! test -x "$GAP"; then
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
if test `id -u` = 0; then
|
||||
WORKSPACE=/var/lib/gap/workspace
|
||||
else
|
||||
WORKSPACE=$HOME/gap/workspace
|
||||
fi
|
||||
|
||||
case $1 in
|
||||
delete) echo -n "Deleting GAP workspace $WORKSPACE.gz: "
|
||||
rm -f $WORKSPACE.gz
|
||||
echo "done.";;
|
||||
''|update) echo -n "Updating GAP workspace $WORKSPACE.gz: "
|
||||
rm -f $WORKSPACE.gz
|
||||
mkdir -p `dirname $WORKSPACE`
|
||||
echo 'SaveWorkspace("'$WORKSPACE'");' | $GAP -q -r -R >/dev/null
|
||||
gzip --best $WORKSPACE
|
||||
echo "done.";;
|
||||
*)
|
||||
echo "$0 update"
|
||||
echo " Update GAP workspace in $WORKSPACE.gz"
|
||||
echo
|
||||
echo "$0 delete"
|
||||
echo " Delete GAP workspace in $WORKSPACE.gz"
|
||||
;;
|
||||
esac
|
44
update-gap-workspace.1
Normal file
44
update-gap-workspace.1
Normal file
@ -0,0 +1,44 @@
|
||||
.TH "UPDATE-GAP-WORKSPACE" "1" "July 2003" "GAP" "User Commands"
|
||||
.SH "NAME"
|
||||
update-gap-workspace \- manage a GAP workspace.
|
||||
.SH "SYNOPSIS"
|
||||
\&update-gap-workspace
|
||||
.PP
|
||||
\&update-gap-workspace update
|
||||
.IP
|
||||
Create or update the GAP workspace.
|
||||
.PP
|
||||
\&update-gap-workspace delete
|
||||
.IP
|
||||
Delete the GAP workspace.
|
||||
.SH "DESCRIPTION"
|
||||
At start up, GAP load all libraries and packages available on the system.
|
||||
This take several seconds. To save time, GAP can store the result of
|
||||
this initialisation in a `workspace'.
|
||||
.I update-gap-workspace
|
||||
help to manage such workspaces.
|
||||
.I update-gap-workspace
|
||||
can be run as root to manage the system-wide workspace.
|
||||
.I update-gap-workspace
|
||||
can be run as a normal user. In this case the workspace is stored in
|
||||
$HOME/gap/workspace.gz.
|
||||
.PP
|
||||
Note that you need to rebuild the workspace each time GAP packages are
|
||||
added, removed or updated. To automate that task, if the system-wide
|
||||
workspace exists, it is automatically updated whenever a GAP-related
|
||||
Debian package is installed or upgraded.
|
||||
.PP
|
||||
The gap script will automatically load such workspace at start up.
|
||||
.SH "FILES"
|
||||
.I /var/lib/gap/workspace.gz:
|
||||
.RS
|
||||
The system-wide GAP workspace.
|
||||
.RE
|
||||
.I $HOME/gap/workspace.gz:
|
||||
.RS
|
||||
The user-specific GAP workspace.
|
||||
.SH "SEE ALSO"
|
||||
.I gap(1),
|
||||
.I The \`SaveWorkspace' function in the GAP manual.
|
||||
.SH "AUTHOR"
|
||||
Bill Allombert <ballombe@debian.org>
|
Loading…
Reference in New Issue
Block a user