[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(&paramdatafile,"%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