Re: fix xlockmore build with clang

2017-02-02 Thread Matthieu Herrb
On Fri, Feb 03, 2017 at 05:40:47PM +1100, Jonathan Gray wrote:
> On Fri, Feb 03, 2017 at 07:30:17AM +0100, Matthieu Herrb wrote:
> > On Thu, Feb 02, 2017 at 01:45:36PM +1100, Jonathan Gray wrote:
> > > Sync some xlockmore files with the 5.50 release to fix build errors
> > > with clang of the form:
> > 
> > Sure, ok.
> > 
> > I remember I had more changes to make when trying clang from ports on
> > xenocara during g2k16, but it may be that clang got more gcc
> > compatible since then.
> 
> Or upstreams started adding clang fixes?  Either way this was the only
> clang specific change I needed to build all of xenocara on arm64.
> 
> On a related note the xlock upstream seems to have moved:

Yes, ok. It's going to require some effort to merge it though. We've
a lot of local patches to xlock already. I'd rather replace it with
something that doesn't do fancy graphics (or do it with proper
sandboxing).

> 
> Index: 3RDPARTY
> ===
> RCS file: /cvs/xenocara/3RDPARTY,v
> retrieving revision 1.283
> diff -u -p -r1.283 3RDPARTY
> --- 3RDPARTY  21 Jan 2017 16:17:24 -  1.283
> +++ 3RDPARTY  3 Feb 2017 06:37:50 -
> @@ -44,9 +44,9 @@ Archive Site:   http://dejavu-fonts.org/
>  
>  Package: xlockmore
>  Version: 5.22
> -Current Vers:5.47
> -Maintainer:  bagl...@tux.org
> -Archive Site:http://www.tux.org/~bagleyd/latest/
> +Current Vers:5.50
> +Maintainer:  David A. Bagley
> +Archive Site:http://sillycycle.com/xlock/
>  
>  Package: xkeyboard-config
>  Version: 2.19

-- 
Matthieu Herrb


signature.asc
Description: PGP signature


Re: fix xlockmore build with clang

2017-02-02 Thread Jonathan Gray
On Fri, Feb 03, 2017 at 07:30:17AM +0100, Matthieu Herrb wrote:
> On Thu, Feb 02, 2017 at 01:45:36PM +1100, Jonathan Gray wrote:
> > Sync some xlockmore files with the 5.50 release to fix build errors
> > with clang of the form:
> 
> Sure, ok.
> 
> I remember I had more changes to make when trying clang from ports on
> xenocara during g2k16, but it may be that clang got more gcc
> compatible since then.

Or upstreams started adding clang fixes?  Either way this was the only
clang specific change I needed to build all of xenocara on arm64.

On a related note the xlock upstream seems to have moved:

Index: 3RDPARTY
===
RCS file: /cvs/xenocara/3RDPARTY,v
retrieving revision 1.283
diff -u -p -r1.283 3RDPARTY
--- 3RDPARTY21 Jan 2017 16:17:24 -  1.283
+++ 3RDPARTY3 Feb 2017 06:37:50 -
@@ -44,9 +44,9 @@ Archive Site: http://dejavu-fonts.org/
 
 Package:   xlockmore
 Version:   5.22
-Current Vers:  5.47
-Maintainer:bagl...@tux.org
-Archive Site:  http://www.tux.org/~bagleyd/latest/
+Current Vers:  5.50
+Maintainer:David A. Bagley
+Archive Site:  http://sillycycle.com/xlock/
 
 Package:   xkeyboard-config
 Version:   2.19



Re: fix xlockmore build with clang

2017-02-02 Thread Matthieu Herrb
On Thu, Feb 02, 2017 at 01:45:36PM +1100, Jonathan Gray wrote:
> Sync some xlockmore files with the 5.50 release to fix build errors
> with clang of the form:

Sure, ok.

I remember I had more changes to make when trying clang from ports on
xenocara during g2k16, but it may be that clang got more gcc
compatible since then.

> 
> c++ -c  -DHAVE_CONFIG_H 
> -DDEF_FILESEARCHPATH=\"/usr/X11R6/share/X11/app-defaults/%N%C%S:/usr/X11R6/share/X11/app-defaults/%N%S\"
>  -I. -I.. -I../.. -I/usr/xenocara/app/xlockmore/xlock/ 
> -I/usr/xenocara/app/xlockmore -I/usr/X11R6/include  -I/usr/X11R6/include 
> -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -I/usr/X11R6/include -g 
> -O2 /usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc
> /usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc:31:47: error: use of 
> overloaded operator '^' is ambiguous
>   (with operand types 'class TwoJet' and 'int')
>   FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v),
>~~~^
> Index: modes/glx/i_figureeight.cc
> ===
> RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_figureeight.cc,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 i_figureeight.cc
> --- modes/glx/i_figureeight.cc26 Nov 2006 11:08:51 -  1.1.1.1
> +++ modes/glx/i_figureeight.cc2 Feb 2017 02:19:08 -
> @@ -28,7 +28,7 @@ TwoJetVec AddFigureEight(ThreeJetVec p, 
>TwoJetVec w = Normalize(Cross(h, du))*(TwoJet(size)*1.1);
>return RotateZ(
>  TwoJetVec(p) +
> -  FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v),
> +  FigureEight(w, h, du*D(size, 0)*(D(u, 0)^((double)-1)), form, v),
>  v*(1./n_strips)
>);
>  }
> Index: modes/glx/i_sphere.cc
> ===
> RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_sphere.cc,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 i_sphere.cc
> --- modes/glx/i_sphere.cc 26 Nov 2006 11:08:51 -  1.1.1.1
> +++ modes/glx/i_sphere.cc 2 Feb 2017 02:21:33 -
> @@ -28,16 +28,16 @@ ThreeJet Param1(ThreeJet x) {
>double offset = 0;
>x %= 4;
>if (x > 2) { x = x+(-2); offset = 2; }
> -  if (x <= 1) return x*2 + (x^2)*(-1) + offset;
> -  else return (x^2) + x*(-2) + (2 + offset);
> +  if (x <= 1) return x*2 + (x^(double)2)*(-1) + offset;
> +  else return (x^(double)2) + x*(-2) + (2 + offset);
>  }
>  
>  ThreeJet Param2(ThreeJet x) {
>double offset = 0;
>x %= 4;
>if (x > 2) { x = x+(-2); offset = 2; }
> -  if (x <= 1) return (x^2) + offset;
> -  else return (x^2)*(-1) + x*4 + (-2 + offset);
> +  if (x <= 1) return (x^(double)2) + offset;
> +  else return (x^(double)2)*(-1) + x*4 + (-2 + offset);
>  }
>  
>  static inline ThreeJet TInterp(double x) {
> @@ -48,7 +48,7 @@ ThreeJet UInterp(ThreeJet x) {
>x %= 2;
>if (x > 1)
>  x = x*(-1) + 2;
> -  return (x^2)*3 + (x^3) * (-2);
> +  return (x^(double)2)*3 + (x^(double)3) * (-2);
>  }
>  
>  #define FFPOW 3
> @@ -59,7 +59,7 @@ ThreeJet FFInterp(ThreeJet x) {
>x = x*1.06 + -0.05;
>if (x < 0) return ThreeJet(0, 0, 0);
>else if (x > 1) return ThreeJet(0, 0, 0) + 1;
> -  else return (x ^ (FFPOW-1)) * (FFPOW) + (x^FFPOW) * (-FFPOW+1);
> +  else return (x ^ (double)(FFPOW-1)) * (FFPOW) + (x^(double)FFPOW) * 
> (-FFPOW+1);
>  }
>  
>  #define FSPOW 3
> @@ -67,7 +67,7 @@ ThreeJet FSInterp(ThreeJet x) {
>x %= 2;
>if (x > 1)
>  x = x*(-1) + 2;
> -  return ((x ^ (FSPOW-1)) * (FSPOW) + (x^FSPOW) * (-FSPOW+1)) * (-0.2);
> +  return ((x ^ (double)(FSPOW-1)) * (FSPOW) + (x^(double)FSPOW) * 
> (-FSPOW+1)) * (-0.2);
>  }
>  
>  ThreeJetVec Stage0(ThreeJet u, ThreeJet v) {
> Index: modes/glx/i_threejetvec.cc
> ===
> RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_threejetvec.cc,v
> retrieving revision 1.1.1.1
> diff -u -p -r1.1.1.1 i_threejetvec.cc
> --- modes/glx/i_threejetvec.cc26 Nov 2006 11:08:51 -  1.1.1.1
> +++ modes/glx/i_threejetvec.cc2 Feb 2017 02:23:09 -
> @@ -63,10 +63,10 @@ ThreeJetVec Normalize(ThreeJetVec v) {
>  
>  ThreeJetVec RotateZ(ThreeJetVec v, ThreeJet angle) {
>ThreeJetVec result;
> -  ThreeJet s,c;
> +  ThreeJet s, c;
>s = Sin (angle);
>c = Cos (angle);
> -  result.x =  v.x*c + v.y*s;
> +  result.x = v.x*c + v.y*s;
>result.y = v.x*s*-1 + v.y*c;
>result.z = v.z;
>return result;
> @@ -79,13 +79,13 @@ ThreeJetVec RotateY(ThreeJetVec v, Three
>c = Cos (angle);
>result.x = v.x*c + v.z*s*-1;
>result.y = v.y;
> -  result.z = v.x*s + v.z*c;
> +  result.z = v.x*s + v.z*c;
>return result;
>  }
>  
>  ThreeJetVec RotateX(ThreeJetVec v, ThreeJet angle) {
>ThreeJetVec result;
> -  ThreeJet s,c;
> +  ThreeJet s, c;
>s = Sin (angle);
>c = Cos (angle);
>result.x = v.x;
> @@ -100,5 +100,5 @@ ThreeJetVec 

fix xlockmore build with clang

2017-02-01 Thread Jonathan Gray
Sync some xlockmore files with the 5.50 release to fix build errors
with clang of the form:

c++ -c  -DHAVE_CONFIG_H 
-DDEF_FILESEARCHPATH=\"/usr/X11R6/share/X11/app-defaults/%N%C%S:/usr/X11R6/share/X11/app-defaults/%N%S\"
 -I. -I.. -I../.. -I/usr/xenocara/app/xlockmore/xlock/ 
-I/usr/xenocara/app/xlockmore -I/usr/X11R6/include  -I/usr/X11R6/include 
-I/usr/X11R6/include/freetype2 -I/usr/X11R6/include -I/usr/X11R6/include -g -O2 
/usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc
/usr/xenocara/app/xlockmore/modes/glx/./i_figureeight.cc:31:47: error: use of 
overloaded operator '^' is ambiguous
  (with operand types 'class TwoJet' and 'int')
  FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v),
   ~~~^
Index: modes/glx/i_figureeight.cc
===
RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_figureeight.cc,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 i_figureeight.cc
--- modes/glx/i_figureeight.cc  26 Nov 2006 11:08:51 -  1.1.1.1
+++ modes/glx/i_figureeight.cc  2 Feb 2017 02:19:08 -
@@ -28,7 +28,7 @@ TwoJetVec AddFigureEight(ThreeJetVec p, 
   TwoJetVec w = Normalize(Cross(h, du))*(TwoJet(size)*1.1);
   return RotateZ(
 TwoJetVec(p) +
-  FigureEight(w, h, du*D(size, 0)*(D(u, 0)^(-1)), form, v),
+  FigureEight(w, h, du*D(size, 0)*(D(u, 0)^((double)-1)), form, v),
 v*(1./n_strips)
   );
 }
Index: modes/glx/i_sphere.cc
===
RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_sphere.cc,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 i_sphere.cc
--- modes/glx/i_sphere.cc   26 Nov 2006 11:08:51 -  1.1.1.1
+++ modes/glx/i_sphere.cc   2 Feb 2017 02:21:33 -
@@ -28,16 +28,16 @@ ThreeJet Param1(ThreeJet x) {
   double offset = 0;
   x %= 4;
   if (x > 2) { x = x+(-2); offset = 2; }
-  if (x <= 1) return x*2 + (x^2)*(-1) + offset;
-  else return (x^2) + x*(-2) + (2 + offset);
+  if (x <= 1) return x*2 + (x^(double)2)*(-1) + offset;
+  else return (x^(double)2) + x*(-2) + (2 + offset);
 }
 
 ThreeJet Param2(ThreeJet x) {
   double offset = 0;
   x %= 4;
   if (x > 2) { x = x+(-2); offset = 2; }
-  if (x <= 1) return (x^2) + offset;
-  else return (x^2)*(-1) + x*4 + (-2 + offset);
+  if (x <= 1) return (x^(double)2) + offset;
+  else return (x^(double)2)*(-1) + x*4 + (-2 + offset);
 }
 
 static inline ThreeJet TInterp(double x) {
@@ -48,7 +48,7 @@ ThreeJet UInterp(ThreeJet x) {
   x %= 2;
   if (x > 1)
 x = x*(-1) + 2;
-  return (x^2)*3 + (x^3) * (-2);
+  return (x^(double)2)*3 + (x^(double)3) * (-2);
 }
 
 #define FFPOW 3
@@ -59,7 +59,7 @@ ThreeJet FFInterp(ThreeJet x) {
   x = x*1.06 + -0.05;
   if (x < 0) return ThreeJet(0, 0, 0);
   else if (x > 1) return ThreeJet(0, 0, 0) + 1;
-  else return (x ^ (FFPOW-1)) * (FFPOW) + (x^FFPOW) * (-FFPOW+1);
+  else return (x ^ (double)(FFPOW-1)) * (FFPOW) + (x^(double)FFPOW) * 
(-FFPOW+1);
 }
 
 #define FSPOW 3
@@ -67,7 +67,7 @@ ThreeJet FSInterp(ThreeJet x) {
   x %= 2;
   if (x > 1)
 x = x*(-1) + 2;
-  return ((x ^ (FSPOW-1)) * (FSPOW) + (x^FSPOW) * (-FSPOW+1)) * (-0.2);
+  return ((x ^ (double)(FSPOW-1)) * (FSPOW) + (x^(double)FSPOW) * (-FSPOW+1)) 
* (-0.2);
 }
 
 ThreeJetVec Stage0(ThreeJet u, ThreeJet v) {
Index: modes/glx/i_threejetvec.cc
===
RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_threejetvec.cc,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 i_threejetvec.cc
--- modes/glx/i_threejetvec.cc  26 Nov 2006 11:08:51 -  1.1.1.1
+++ modes/glx/i_threejetvec.cc  2 Feb 2017 02:23:09 -
@@ -63,10 +63,10 @@ ThreeJetVec Normalize(ThreeJetVec v) {
 
 ThreeJetVec RotateZ(ThreeJetVec v, ThreeJet angle) {
   ThreeJetVec result;
-  ThreeJet s,c;
+  ThreeJet s, c;
   s = Sin (angle);
   c = Cos (angle);
-  result.x =  v.x*c + v.y*s;
+  result.x = v.x*c + v.y*s;
   result.y = v.x*s*-1 + v.y*c;
   result.z = v.z;
   return result;
@@ -79,13 +79,13 @@ ThreeJetVec RotateY(ThreeJetVec v, Three
   c = Cos (angle);
   result.x = v.x*c + v.z*s*-1;
   result.y = v.y;
-  result.z = v.x*s + v.z*c;
+  result.z = v.x*s + v.z*c;
   return result;
 }
 
 ThreeJetVec RotateX(ThreeJetVec v, ThreeJet angle) {
   ThreeJetVec result;
-  ThreeJet s,c;
+  ThreeJet s, c;
   s = Sin (angle);
   c = Cos (angle);
   result.x = v.x;
@@ -100,5 +100,5 @@ ThreeJetVec InterpolateVec(ThreeJetVec v
 
 ThreeJet Length(ThreeJetVec v)
 {
-  return (v.x^2 + v.y^2) ^ (.5);
+  return (v.x * v.x + v.y * v.y) ^ (.5);
 }
Index: modes/glx/i_twojetvec.cc
===
RCS file: /cvs/xenocara/app/xlockmore/modes/glx/i_twojetvec.cc,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 i_twojetvec.cc
--- modes/glx/i_twojetvec.cc26 Nov 2006 11:08:51 -  1.1.1.1
+++ modes/glx/i_twojetvec.cc2 Feb 2017 02:23:57 -
@@ -55,10 +55,10