[sympow] 01/01: Imported Debian patch 1.023-8: #848246 fix + README.Debian
Jerome Benoit
calculus-guest at moszumanska.debian.org
Mon Dec 26 15:40:17 UTC 2016
This is an automated email from the git hooks/post-receive script.
calculus-guest pushed a commit to branch master
in repository sympow.
commit 6e6bbe6f556b000029e2529842e89f87289849ab
Author: Jerome Benoit <calculus at rezozer.net>
Date: Mon Dec 26 15:13:03 2016 +0000
Imported Debian patch 1.023-8: #848246 fix + README.Debian
---
debian/adhoc/contrib/sympow-new_data-job-generate | 2 +-
debian/changelog | 15 +++
debian/man/sympow.h2m | 2 +-
debian/patches/debianization-help2man.patch | 2 +-
debian/patches/upstream-C2help2man.patch | 2 +-
debian/patches/upstream-endiantuple.patch | 2 +-
...pstream-floating_point-rounding_precision.patch | 8 +-
debian/patches/upstream-on_fly_new_data.patch | 2 +-
.../upstream-sage-Configure-adapted2debian.patch | 2 +-
debian/patches/upstream-sage-execlp.patch | 2 +-
debian/patches/upstream-sage-fpu.patch | 2 +-
.../patches/upstream-script-new_data-prune.patch | 2 +-
debian/patches/upstream-system_wide.patch | 125 +++++++++++++++------
debian/patches/upstream-versiontuple.patch | 10 +-
debian/sympow-data.README.Debian | 43 +++++++
15 files changed, 169 insertions(+), 52 deletions(-)
diff --git a/debian/adhoc/contrib/sympow-new_data-job-generate b/debian/adhoc/contrib/sympow-new_data-job-generate
index 62d3d07..679edc9 100755
--- a/debian/adhoc/contrib/sympow-new_data-job-generate
+++ b/debian/adhoc/contrib/sympow-new_data-job-generate
@@ -5,7 +5,7 @@
## usage: sympow-new_data-job-generate PARAMETERFILE [GENERATEDSCRIPTNAME]
## PARAMETERFILE:
## data file containing one sympow new_data like third parameter per line;
-## lines begining with # being discarded.
+## lines beginning with # being discarded.
## GENERATEDSCRIPTNAME:
## name of the generated script (default: `sympow-new_data.job').
##
diff --git a/debian/changelog b/debian/changelog
index 0d0f987..92e0119 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+sympow (1.023-8) unstable; urgency=medium
+
+ * Bug fix release (Closes: #848246), see d/p/upstream-system_wide.patch
+ below.
+ * Debianization:
+ - debian/patches/*:
+ - d/p/upstream-system_wide.patch, the cachedir can now be created
+ on the fly;
+ - Origin fields, correct.
+ - debian/sympow-data.README.Debian, introduce;
+ - debian/man/sympow.h2m, refresh;
+ - spelling errors as detected by lintian(1) and other typos, correct.
+
+ -- Jerome Benoit <calculus at rezozer.net> Mon, 26 Dec 2016 15:25:29 +0000
+
sympow (1.023-7) unstable; urgency=medium
* Serious bug fix version (Closes: #823572), thanks to Andreas Beckmann
diff --git a/debian/man/sympow.h2m b/debian/man/sympow.h2m
index 9f9542f..fa70567 100644
--- a/debian/man/sympow.h2m
+++ b/debian/man/sympow.h2m
@@ -2,7 +2,7 @@
Mark Watkins
[COPYRIGHT]
-Copyright \(co 2005-2014 by Mark Watkins
+Copyright \(co 2005-2016 by Mark Watkins
[SEE ALSO]
.BR gp (1)
diff --git a/debian/patches/debianization-help2man.patch b/debian/patches/debianization-help2man.patch
index 72850b5..cd7b4a6 100644
--- a/debian/patches/debianization-help2man.patch
+++ b/debian/patches/debianization-help2man.patch
@@ -1,7 +1,7 @@
Description: debianization -- help2man
Generate the help2man man page for the program sympow.
This is a Debian centric patch.
-Origin: debian
+Origin: vendor, Debian
Author: Jerome Benoit <calculus at rezozer.net>
Last-Update: 2014-10-25
diff --git a/debian/patches/upstream-C2help2man.patch b/debian/patches/upstream-C2help2man.patch
index 428229a..1b15d9f 100644
--- a/debian/patches/upstream-C2help2man.patch
+++ b/debian/patches/upstream-C2help2man.patch
@@ -1,7 +1,7 @@
Description: format usages and helps
Attempt to format and harmonize the help message of the sympow program
wrt UN*X customs in view to employ help2man to generate a manpage.
-Origin: debian
+Origin: vendor, Debian
Author: Jerome Benoit <calculus at rezozer.net>
Last-Update: 2014-09-27
diff --git a/debian/patches/upstream-endiantuple.patch b/debian/patches/upstream-endiantuple.patch
index 1a890b4..fa71295 100644
--- a/debian/patches/upstream-endiantuple.patch
+++ b/debian/patches/upstream-endiantuple.patch
@@ -3,7 +3,7 @@ Description: endian-tuple
material inspired by the software fontconfig (configure.ac
and fcarch.h). Ideally ENDIANTUPLE might be provided by
an appropriate tool as dpkg-architecture(1).
-Origin: debian
+Origin: vendor, Debian
Author: Jerome Benoit <calculus at rezozer.net>
Last-Update: 2014-10-06
diff --git a/debian/patches/upstream-floating_point-rounding_precision.patch b/debian/patches/upstream-floating_point-rounding_precision.patch
index ab6f8ec..5967ba8 100644
--- a/debian/patches/upstream-floating_point-rounding_precision.patch
+++ b/debian/patches/upstream-floating_point-rounding_precision.patch
@@ -1,9 +1,9 @@
Description: floating-point rounding precision
Refresh and revisit the floating-point rounding precision set up by
- considering the C99 floating-point enviroment <fenv.h> (ISO C99 7.6)
+ considering the C99 floating-point environment <fenv.h> (ISO C99 7.6)
if applicable, or the FPU Control material <fpu_control.h>, or
the former material as last resort.
-Origin: debian
+Origin: vendor, Debian
Author: Jerome Benoit <calculus at rezozer.net>
Last-Update: 2014-10-25
@@ -81,7 +81,7 @@ Last-Update: 2014-10-25
- local status=0
- if $CC $ORIGINALCFLAGS $CFLAGS -O3 $flag config/fpubits1.c config/fpubits2.c fpu.c -o config/fpubits 2>/dev/null; then
+ local flag=$1 # first argument: C FLAG to test
-+ local bypassfputest=${2:-nobypass} # second argument: wether or not bypass the numerical test (default: not)
++ local bypassfputest=${2:-nobypass} # second argument: whether or not bypass the numerical test (default: not)
+ local status=0
+ if $CC $ORIGINALCFLAGS -Werror $CFLAGS -O3 $flag config/fpubits1.c config/fpubits2.c fpu.c -o config/fpubits 2>/dev/null; then
# Compiled successfully, now run it
@@ -122,7 +122,7 @@ Last-Update: 2014-10-25
+ try_add_CFLAG $FLAG bypass && break
+done
+
-+# Select the most apropriate FPU control scheme
++# Select the most appropriate FPU control scheme
+for FLAG in '-DISOC99_FENV' '-DFPUCONTROLH' '-Dx86'; do
try_add_CFLAG $FLAG && break
done
diff --git a/debian/patches/upstream-on_fly_new_data.patch b/debian/patches/upstream-on_fly_new_data.patch
index 5a1ec28..799a5d8 100644
--- a/debian/patches/upstream-on_fly_new_data.patch
+++ b/debian/patches/upstream-on_fly_new_data.patch
@@ -1,6 +1,6 @@
Description: on fly new_data
Implement on fly generation for data mesh files.
-Origin: debian
+Origin: vendor, Debian
Author: Jerome Benoit <calculus at rezozer.net>
Last-Update: 2014-09-27
diff --git a/debian/patches/upstream-sage-Configure-adapted2debian.patch b/debian/patches/upstream-sage-Configure-adapted2debian.patch
index a456499..d0daa12 100644
--- a/debian/patches/upstream-sage-Configure-adapted2debian.patch
+++ b/debian/patches/upstream-sage-Configure-adapted2debian.patch
@@ -6,7 +6,7 @@ Description: Configure
Comment:
This patch reinvents the wheel: autotools might be considered instead,
Jerome Benoit <calculus at rezozer.net>.
-Origin: sage/debian
+Origin: vendor, Sage+Debian
Author:
David Kirkby
Jerome Benoit <calculus at rezozer.net>
diff --git a/debian/patches/upstream-sage-execlp.patch b/debian/patches/upstream-sage-execlp.patch
index b17ae73..d67e517 100644
--- a/debian/patches/upstream-sage-execlp.patch
+++ b/debian/patches/upstream-sage-execlp.patch
@@ -4,7 +4,7 @@ Description: execlp
before.
(Description extracted by hand from the Sage material as at the
time of writing; Jerome Benoit <calculus at rezozer.net>, 2014-09-26.)
-Origin: sage
+Origin: vendor, Sage
Last-Update: 2011-10-17
--- a/generate.c
diff --git a/debian/patches/upstream-sage-fpu.patch b/debian/patches/upstream-sage-fpu.patch
index d8c0f8d..7c5f6a1 100644
--- a/debian/patches/upstream-sage-fpu.patch
+++ b/debian/patches/upstream-sage-fpu.patch
@@ -6,7 +6,7 @@ Description: fpu
on Solaris 10 x86, OpenSolaris on x86 and Cygwin.
(Description extracted by hand from the Sage material as at the
time of writing; Jerome Benoit <calculus at rezozer.net>, 2014-09-26.)
-Origin: sage
+Origin: vendor, Sage
Author: David Kirkby
Last-Update: 2011-10-19
diff --git a/debian/patches/upstream-script-new_data-prune.patch b/debian/patches/upstream-script-new_data-prune.patch
index 8634969..bd40acc 100644
--- a/debian/patches/upstream-script-new_data-prune.patch
+++ b/debian/patches/upstream-script-new_data-prune.patch
@@ -7,7 +7,7 @@ Description: script new_data prune
does not need to be trimmed;
- use the system function to pipe the GP
material.
-Origin: debian
+Origin: vendor, Debian
Author: Jerome Benoit <calculus at rezozer.net>
Last-Update: 2014-10-24
diff --git a/debian/patches/upstream-system_wide.patch b/debian/patches/upstream-system_wide.patch
index 81055d3..a076304 100644
--- a/debian/patches/upstream-system_wide.patch
+++ b/debian/patches/upstream-system_wide.patch
@@ -5,26 +5,33 @@ Description: system wide scheme
(typically PKGDATADIR is /usr/share/sympow);
- generated plain data mesh files are recorded in CACHEDIR/datafiles
(by default CACHEDIR is HOME/.sympow);
- - binary data mesh files are created on fly and stored in cache directories,
- the ones from the precomputed plain data mesh files are stored in
- PKGCACHEDIR/datafiles/ENDIANTUPLE
- (typilcally PKGCACHEDIR is /var/cache, and ENDIANTUPLE is a tuple
- characterizing the architecture endianess or so for double floats)
- and the ones from the generated plain data meshes are put in
- CACHEDIR/datafiles/ENDIANTUPLE;
+ - binary data mesh files are created on the fly and stored in cache
+ directories, the ones from the precomputed plain data mesh files are
+ stored in PKGCACHEDIR/datafiles/ENDIANTUPLE (typilcally PKGCACHEDIR
+ is /var/cache/sympow, and ENDIANTUPLE is a tuple characterizing the
+ architecture endianness or so for double floats) and the ones from the
+ generated plain data meshes are put in CACHEDIR/datafiles/ENDIANTUPLE;
- the register data file param_data is in CACHEDIR/datafiles;
- the data in CACHEDIR/datafiles are authoritative;
- the employed script is in PKGLIBDIR (typically /usr/lib/sympow);
- - CACHEDIR, PKGCACHEDIR, PKGLIBDIR, and PKGDATADIR
- can be set via environment variables;
+ - CACHEDIR, PKGCACHEDIR, PKGLIBDIR, and PKGDATADIR can be set via
+ environment variables with their respective name prepended with
+ SYMPOW_ (it is recommended to set absolute paths whenever possible);
+ - the basename of CACHEDIR must begin with `sympow' (typically `sympow');
+ - CACHEDIR is created on the fly with respect to permissions and privileges
+ whenever the following conditions are satisfied: (i) it terminates with at
+ least three directory separators (the creation is group-centric when the
+ number of separators is greater or equal to six, user-centric otherwise),
+ (ii) its parent directory exists (its basename either begins with `sympow'
+ or is implicitly assumed to be `sympow');
- ENDIANTUPLE is set by default to bin.
-Origin: debian
+Origin: vendor, Debian
Author: Jerome Benoit <calculus at rezozer.net>
-Last-Update: 2014-10-24
+Last-Update: 2016-12-26
--- a/sympow.h
+++ b/sympow.h
-@@ -1,9 +1,48 @@
+@@ -1,9 +1,51 @@
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
@@ -53,17 +60,20 @@ Last-Update: 2014-10-24
+#define VARPREFIX "/var/local"
+#endif
+
++#ifndef PKGFOLDER
++#define PKGFOLDER "sympow"
++#endif
+#ifndef PKGDATADIR
-+#define PKGDATADIR PREFIX "/share/sympow"
++#define PKGDATADIR PREFIX "/share/" PKGFOLDER
+#endif
+#ifndef PKGLIBDIR
-+#define PKGLIBDIR PREFIX "/lib/sympow"
++#define PKGLIBDIR PREFIX "/lib/" PKGFOLDER
+#endif
+#ifndef PKGCACHEDIR
-+#define PKGCACHEDIR VARPREFIX "/cache/sympow"
++#define PKGCACHEDIR VARPREFIX "/cache/" PKGFOLDER
+#endif
+#ifndef PKGHOMECACHEDIR
-+#define PKGHOMECACHEDIR ".sympow"
++#define PKGHOMECACHEDIR "." PKGFOLDER
+#endif
+
+#ifndef ENDIANTUPLE
@@ -73,7 +83,7 @@ Last-Update: 2014-10-24
#define TRUE 1
#define FALSE 0
#define VERBOSE_DEFAULT 1
-@@ -19,6 +58,7 @@
+@@ -19,6 +61,7 @@
#define A0PT 20 /* about zero power series terms */
#define minimum(a,b) ((a)<(b))?(a):(b)
#define ISA_NUMBER(x) ((x>='0') && (x<='9'))
@@ -81,7 +91,7 @@ Last-Update: 2014-10-24
typedef double QD[4];
extern QD QD_pi,QD_twopi,QD_sqrtpi,QD_log2,QD_one,QD_e,QD_zero;
-@@ -46,6 +86,24 @@
+@@ -46,6 +89,24 @@
const char *VERBOSE2option[3];
@@ -106,7 +116,7 @@ Last-Update: 2014-10-24
/* analrank.c */
void prep_analrank(llint,int);
-@@ -111,7 +169,7 @@
+@@ -111,7 +172,7 @@
void new_sympow_pari(char*);
void new_sympow_s2(char*);
void rewarp_params();
@@ -117,7 +127,7 @@ Last-Update: 2014-10-24
--- a/main.c
+++ b/main.c
-@@ -1,6 +1,145 @@
+@@ -1,6 +1,194 @@
#include "sympow.h"
#define DEBUG (FALSE || GLOBAL_DEBUG)
@@ -166,13 +176,63 @@ Last-Update: 2014-10-24
+ if ((info.st_mode & S_IRWXO)==S_IRWXO) status|=2;
+ return status;}
+
++static char *dupxgetxenvdir(const char *name, size_t extra, int *flag)
++{const char *ename=getenv(name); char * tname=NULL;
++ if ((ename!=NULL)&&(*ename!='\0'))
++ {const size_t lenghtof_ename=strlen(ename);
++ char *magichead=NULL; size_t lentgthof_magichead=0; char *dum=NULL;
++ tname=(char *)(malloc(lenghtof_ename+extra+1)); strcpy(tname,ename);
++ magichead=tname+lenghtof_ename;
++ while ((magichead!=tname)&&(*(dum=magichead-1)=='/')) {magichead=dum; ++lentgthof_magichead;}
++ if (magichead!=tname) {*magichead='\0'; if (flag!=NULL) *flag=(int)(lentgthof_magichead/3);}
++ else {*(tname+1)='\0'; if (flag!=NULL) *flag=0;}
++ }
++ else {if (flag!=NULL) *flag=0;}
++ return tname;}
++
++static const char *strlastitem(const char *string, int c) {
++ const char *item=NULL;
++ if (string!=NULL) {item=strrchr(string,c); if (item == NULL) item=string; else ++item;}
++ return (item); }
++
++char * dupdirname(const char *name) {
++ char * foldername=NULL;
++ if ((name != NULL) && (*name != '\0')) {
++ const char *eofn=name+strlen(name);
++ /*while ((eofn!=name)&&(*(--eofn)=='/')) ;*/
++ while ((eofn!=name)&&(*eofn!='/')) --eofn;
++ if (eofn!=name) {
++ const size_t ublofn=eofn-name;
++ size_t cdx=0; const char * dim=NULL; char * dam=NULL; int flag=0;
++ foldername=(char *)(malloc(ublofn)); memset(foldername,'\0',ublofn);
++ for(cdx=0,dim=name,dam=foldername;cdx<ublofn;++dim,++cdx) {
++ if (*dim == '/') flag=1;
++ else {if (flag) {*dam='/'; ++dam; flag=0;} *dam=*dim; ++dam;}}
++ if (flag) *dam='/';
++ }
++ else {foldername=strdup((*name != '/')?".":"/");}}
++ return foldername;}
++
+static void prepare_main(char *argv0)
-+{char *env_pkgdir; struct stat infod, infodb, infof;
++{char *env_pkgdir; struct stat infod, infodb, infof; int flag;
+ invocationname=argv0;
+ env_pkgdir=getenv(SYMPOW_ENV_PKGDATADIR); pkgdatadir=(env_pkgdir!=NULL)?env_pkgdir:PKGDATADIR;
+ env_pkgdir=getenv(SYMPOW_ENV_PKGLIBDIR); pkglibdir=(env_pkgdir!=NULL)?env_pkgdir:PKGLIBDIR;
+ env_pkgdir=getenv(SYMPOW_ENV_PKGCACHEDIR); pkgcachedir=(env_pkgdir!=NULL)?env_pkgdir:PKGCACHEDIR;
-+ if ((env_pkgdir=getenv(SYMPOW_ENV_CACHEDIR))!=NULL) cachedir=strdup(env_pkgdir);
++ datauid=getuid();
++ if ((cachedir=dupxgetxenvdir(SYMPOW_ENV_CACHEDIR,sizeof(PKGFOLDER),&flag))!=NULL) {
++ if (strncmp(strlastitem(cachedir,'/'),PKGFOLDER,sizeof(PKGFOLDER)-1)) {strcat(cachedir,"/"PKGFOLDER);};
++ if ((flag)&&(stat(cachedir,&infod))) {char *parcachedir=dupdirname(cachedir);
++ if (stat(parcachedir,&infod)) {fprintf(stderr,"**ERROR** parent cache directory %s does not exist\n",parcachedir); exit(-1);}
++ if (!S_ISDIR(infod.st_mode)) {fprintf(stderr,"**ERROR** parent cache directory %s exists but is not a directory\n",parcachedir); exit(-1);}
++ if (access(parcachedir,(R_OK|W_OK|X_OK))) {fprintf(stderr,"**ERROR** parent cache directory %s yields insufficient permissions\n",parcachedir); exit(-1);}
++ if (1<flag) {int os=ownership(infod); mode_t mask=umask(ownership2mask[os]);
++ if (mkdir(cachedir,infod.st_mode)) {fprintf(stderr,"**ERROR** failed to create cache folder %s\n",cachedir); exit(-1);}
++ if (os&1) {chown(cachedir,datauid,infod.st_gid);}
++ umask(mask);}
++ else {if (mkdir(cachedir,(S_IRWXU|S_IRGRP|S_IXGRP))) {fprintf(stderr,"**ERROR** failed to create cache folder %s\n",cachedir); exit(-1);}}
++ free(parcachedir);}
++ }
+ else if ((env_pkgdir=getenv("HOME"))!=NULL) {asprintf(&cachedir,"%s/"PKGHOMECACHEDIR,env_pkgdir);
+ if (stat(cachedir,&infod)) {if (mkdir(cachedir,(S_IRWXU|S_IRGRP|S_IXGRP)))
+ {fprintf(stderr,"**ERROR** failed to create local cache folder %s\n",cachedir); exit(-1);}}
@@ -200,24 +260,23 @@ Last-Update: 2014-10-24
+ asprintf(&datafilesbindir,"%s/"ENDIANTUPLE,datafilesdir);
+ asprintf(&newdatascript,"%s/new_data",pkglibdir);
+ asprintf(¶mdatafile,"%s/param_data",datafilesdir);
-+ datauid=getuid();
+ if (stat(datafilesdir,&infod))
+ {if (stat(cachedir,&infod)) {fprintf(stderr,"**ERROR** cache directory %s does not exist\n",cachedir); exit(-1);}
-+ if (!S_ISDIR(infod.st_mode)) {fprintf(stderr,"**ERROR** %s exists but is not a directory\n",cachedir); exit(-1);}
-+ if (access(cachedir,(R_OK|W_OK|X_OK))) {fprintf(stderr,"**ERROR** %s yields insufficient permissions\n",cachedir); exit(-1);}
++ if (!S_ISDIR(infod.st_mode)) {fprintf(stderr,"**ERROR** cache directory %s exists but is not a directory\n",cachedir); exit(-1);}
++ if (access(cachedir,(R_OK|W_OK|X_OK))) {fprintf(stderr,"**ERROR** cache directory %s yields insufficient permissions\n",cachedir); exit(-1);}
+ int os=ownership(infod); umask(ownership2mask[os]);
+ if (mkdir(datafilesdir,infod.st_mode)) {fprintf(stderr,"**ERROR** failed to create data cache folder %s\n",datafilesdir); exit(-1);}
+ if (os&1) {chown(datafilesdir,datauid,infod.st_gid);}
+ stat(datafilesdir,&infod);
+ }
+ else
-+ {if (!S_ISDIR(infod.st_mode)) {fprintf(stderr,"**ERROR** %s exists but is not a directory\n",datafilesdir); exit(-1);}
-+ if (access(datafilesdir,(R_OK|W_OK|X_OK))) {fprintf(stderr,"**ERROR** %s yields insufficient permissions\n",datafilesdir); exit(-1);}}
++ {if (!S_ISDIR(infod.st_mode)) {fprintf(stderr,"**ERROR** data cache folder %s exists but is not a directory\n",datafilesdir); exit(-1);}
++ if (access(datafilesdir,(R_OK|W_OK|X_OK))) {fprintf(stderr,"**ERROR** data cache folder %s yields insufficient permissions\n",datafilesdir); exit(-1);}}
+ if (stat(datafilesbindir,&infodb))
+ {if (mkdir(datafilesbindir,infod.st_mode)) {fprintf(stderr,"**ERROR** failed to create data bin cache folder %s\n",datafilesbindir); exit(-1);}}
+ else
-+ {if (!S_ISDIR(infodb.st_mode)) {fprintf(stderr,"**ERROR** %s exists but is not a directory\n",datafilesbindir); exit(-1);}
-+ if (access(datafilesbindir,(R_OK|W_OK|X_OK))) {fprintf(stderr,"**ERROR** %s yields insufficient permissions\n",datafilesbindir); exit(-1);}}
++ {if (!S_ISDIR(infodb.st_mode)) {fprintf(stderr,"**ERROR** data bin cache folder %s exists but is not a directory\n",datafilesbindir); exit(-1);}
++ if (access(datafilesbindir,(R_OK|W_OK|X_OK))) {fprintf(stderr,"**ERROR** data bin cache folder %s yields insufficient permissions\n",datafilesbindir); exit(-1);}}
+ umask(MASK);
+ if (stat(paramdatafile,&infof))
+ {int fd=-1; datamode= infod.st_mode & ~(S_ISVTX);
@@ -263,7 +322,7 @@ Last-Update: 2014-10-24
int main(int argc,char **argv)
{char INSTRING[1024]="2w3s1p32,3bp16d1,4p8\0",CSTR[1024]="\0",LSTR[1024]="\0";
char TYPE[16]; int i=1; llint NT,UB=(((llint) 1)<<45);
-@@ -8,6 +147,7 @@
+@@ -8,6 +196,7 @@
NO_QT=FALSE; VERBOSE=VERBOSE_DEFAULT; GLOBAL=TRUE; HECKE=FALSE; TWIST=FALSE; AP_SAVE=0;
CM_CASE=FALSE; GET=malloc(1024); COND0=1; fp3=0; fp2=0; MAX_TABLE=1<<27;
MODDEG=FALSE; ANAL_RANK=FALSE; ZEROCHECK=FALSE; RERUN=FALSE; QD_CHECK=TRUE;
@@ -271,7 +330,7 @@ Last-Update: 2014-10-24
#if defined(ISOC99_FENV) || defined(FPUCONTROLH) || defined(x86)
fpu_53bits();
#endif
-@@ -20,6 +160,7 @@
+@@ -20,6 +209,7 @@
else if (!strcmp(argv[i],"-verbose")) {VERBOSE=2; i++;}
else if (!strcmp(argv[i],"-help")) help_message();
else if (!strcmp(argv[i],"-version")) { printf("%s\n",VERSION); exit(0);}
@@ -279,7 +338,7 @@ Last-Update: 2014-10-24
else if (!strcmp(argv[i],"-curve")) {strcpy(CSTR,argv[i+1]); i+=2;}
else if (!strcmp(argv[i],"-label")) {strcpy(LSTR,argv[i+1]); i+=2;}
else if (!strcmp(argv[i],"-info")) {info=i+1; i+=3;}
-@@ -35,26 +176,26 @@
+@@ -35,26 +225,26 @@
else if (!strcmp(argv[i],"-analrank")) {ANAL_RANK=TRUE; i++;}
else if (!strcmp(argv[i],"-sloppy")) {SLOPPY=atoi(argv[i+1]); i+=2;}
else if (!strcmp(argv[i],"-rootno")) {ROOTNO=atoi(argv[i+1]); i+=2;}
@@ -314,7 +373,7 @@ Last-Update: 2014-10-24
init_primes(); if (!CSTR[0]) getline0(stdin,CSTR,256); curve_init(CSTR,LSTR);
if (HECKE && !CM_CASE) errorit("Curve does not have CM");
if (NO_CM && CM_CASE) errorit("Curve has CM");
-@@ -74,4 +215,6 @@
+@@ -74,4 +264,6 @@
if (ZEROCHECK)
{NUM_SUMS=0; WHICH=0; free_data(); RERUN=TRUE;
NT=process_string(INSTRING,UB); go(NT,NT);}
diff --git a/debian/patches/upstream-versiontuple.patch b/debian/patches/upstream-versiontuple.patch
index 43943ef..deafb52 100644
--- a/debian/patches/upstream-versiontuple.patch
+++ b/debian/patches/upstream-versiontuple.patch
@@ -5,14 +5,14 @@ Description: version-tuple
An option is added to display the release version numbers
as formatted in the upstream source, Major version number
and minor version number concatenated with a dot at the
- time of writting.
-Origin: debian
+ time of writing.
+Origin: vendor, Debian
Author: Jerome Benoit <calculus at rezozer.net>
Last-Update: 2014-10-25
--- a/main.c
+++ b/main.c
-@@ -142,7 +142,7 @@
+@@ -191,7 +191,7 @@
int main(int argc,char **argv)
{char INSTRING[1024]="2w3s1p32,3bp16d1,4p8\0",CSTR[1024]="\0",LSTR[1024]="\0";
@@ -21,7 +21,7 @@ Last-Update: 2014-10-25
int NO_CM=FALSE,info=0,ROOTNO=FALSE,SLOPPY=0,QD_CHECK;
NO_QT=FALSE; VERBOSE=VERBOSE_DEFAULT; GLOBAL=TRUE; HECKE=FALSE; TWIST=FALSE; AP_SAVE=0;
CM_CASE=FALSE; GET=malloc(1024); COND0=1; fp3=0; fp2=0; MAX_TABLE=1<<27;
-@@ -151,7 +151,7 @@
+@@ -200,7 +200,7 @@
#if defined(ISOC99_FENV) || defined(FPUCONTROLH) || defined(x86)
fpu_53bits();
#endif
@@ -30,7 +30,7 @@ Last-Update: 2014-10-25
while(i<argc)
{if (!strcmp(argv[i],"-quiet")) {VERBOSE=0; i++;}
else if ((!strcmp(argv[i],"-sympow")) || (!strcmp(argv[i],"-sp")))
-@@ -159,8 +159,9 @@
+@@ -208,8 +208,9 @@
else if (!strcmp(argv[i],"-terse")) {VERBOSE=1; i++;}
else if (!strcmp(argv[i],"-verbose")) {VERBOSE=2; i++;}
else if (!strcmp(argv[i],"-help")) help_message();
diff --git a/debian/sympow-data.README.Debian b/debian/sympow-data.README.Debian
new file mode 100644
index 0000000..3d88dd7
--- /dev/null
+++ b/debian/sympow-data.README.Debian
@@ -0,0 +1,43 @@
+Debian specific setup
+=====================
+
+`SymPow', as distributed by Debian, runs as any regular executable,
+that is to say, not in an esoteric manner: intermediate computing
+steps that were meant to be executed `by hand' by end-users are now
+launched on the fly. It also comes with a larger set of precomputed
+data which are now managed system wide rather than locally.
+
+The user-computed plain data mesh files and their binary counter parts,
+are placed by default in the cache directory HOME/.sympow . This default/
+historical cache folder can be overridden through the environment variable
+SYMPOW_CACHEDIR: the basename of the so passed path is assumed to begin
+with `sympow', otherwise the effective path is assumed to be
+SYMPOW_CACHEDIR/sympow.
+
+If the cache folder SYMPOW_CACHEDIR (or SYMPOW_CACHEDIR/sympow) does not
+exists, then it is created on the fly with respect to permissions and
+privileges whenever the following conditions are satisfied:
+ (i) it terminates with at least three directory separators (the creation
+ is group-centric when the number of separators is greater or equal to six,
+ user-centric otherwise);
+ (ii) its parent directory exists.
+Along the same vain, the default/historical cache directory HOME/.sympow will
+be created on the fly if it is nonexistent (the creation is user-centric).
+
+The precomputed plain data mesh files are distributed in /usr/share/sympow;
+this default directory can be overridden through the environment variable
+SYMPOW_PKGDATADIR. Their binary counter parts, the binary data mesh files,
+are created on the fly and stored in the cache directory /var/cache/sympow;
+this default directory can be overrident through the environment variable
+SYMPOW_PKGCACHEDIR. The scripts effectivelly employed to compute data can be
+found in /usr/lib/sympow; this default directory can be overridden through
+the environment variable SYMPOW_PKGLIBDIR. Please note that the environment
+variables introduced here, viz SYMPOW_{PKGDATADIR,PKGLIBDIR,PKGCACHEDIR},
+are meant for advance usage or debugging.
+
+The data in SYMPOW_CACHEDIR{,/sympow} are authoritative.
+
+For minutes details, you want to peruse the associated patches as distributed
+within the Debian source ball: d/p/upstream-{system_wide,on_fly_new_data}.patch .
+
+ -- Jerome Benoit <calculus at rezozer.net> Mon, 26 Dec 2016 14:50:03 +0000
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/sympow.git
More information about the debian-science-commits
mailing list