]> git.pld-linux.org Git - packages/3DLDF.git/commitdiff
- added gcc 5 fixes from Debian auto/th/3DLDF-2.0.3-5
authorJan Rękorajski <baggins@pld-linux.org>
Sun, 27 Dec 2015 10:19:13 +0000 (11:19 +0100)
committerJan Rękorajski <baggins@pld-linux.org>
Sun, 27 Dec 2015 10:19:13 +0000 (11:19 +0100)
- rel 5

3DLDF.spec
upstream-cleanup-permissive_cxx_code.patch [new file with mode: 0644]
upstream-gcc-init_priority.patch [new file with mode: 0644]
upstream-sys-std_numeric_limits.patch [new file with mode: 0644]
upstream-w2help2man.patch [new file with mode: 0644]

index 3993ed8d928efd1d3503893d43d6075590c9be97..6449deabec5f6a2306c03b4bf7066a2ac4c4140f 100644 (file)
@@ -2,12 +2,16 @@ Summary:      Three-dimensional drawing with MetaPost output
 Summary(pl.UTF-8):     Tworzenie trójwymiarowej grafiki z wyjściem w formacie MetaPost
 Name:          3DLDF
 Version:       2.0.3
-Release:       4
+Release:       5
 License:       GPL v2+
 Group:         Applications/Graphics
 Source0:       http://ftp.gnu.org/gnu/3dldf/%{name}-%{version}.tar.gz
 # Source0-md5: 5e669f4efd3d576d42308ba61619a63f
 Patch0:                %{name}-info.patch
+Patch1:                upstream-cleanup-permissive_cxx_code.patch
+Patch2:                upstream-gcc-init_priority.patch
+Patch3:                upstream-sys-std_numeric_limits.patch
+Patch4:                upstream-w2help2man.patch
 URL:           http://www.gnu.org/software/3dldf/
 # ps2pdf
 BuildRequires: ghostscript
@@ -33,6 +37,10 @@ w TeXu.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 %build
 # only 3dlfb binary uses libs, symbols are messed - no sense in building shared libs
diff --git a/upstream-cleanup-permissive_cxx_code.patch b/upstream-cleanup-permissive_cxx_code.patch
new file mode 100644 (file)
index 0000000..2fd697d
--- /dev/null
@@ -0,0 +1,300 @@
+Description: permissive code cleanup
+ Clarify C++ permissive code as detected by gcc-5; closes RC bug #777763.
+Origin: debian
+Forwarded: https://savannah.gnu.org/bugs/?44314
+Author: Jerome Benoit <calculus@rezozer.net>
+Last-Update: 2015-06-26
+
+--- a/src/pspglb.web
++++ b/src/pspglb.web
+@@ -5075,12 +5075,7 @@
+ void*
+ polyhedron_path_intersection_func(Polyhedron* p,
+                                   Path* q,
+-                                  void* parameter = 0);  
+-                      
+-template <class C>
+-int
+-show_func(C* c, string text = "", void* parameter = 0);
+-
++                                  void* parameter = 0);
+ void*
+ plane_intersection_func(void* v, void* w, void* parameter = 0);
+--- a/src/io.web
++++ b/src/io.web
+@@ -4937,22 +4937,22 @@
+    template <class C>
+    friend 
+    void*
+-   Scan_Parse::get_point_func(real r, C* c, void* parameter = 0);
++   Scan_Parse::get_point_func(real r, C* c, void* parameter);
+    template <class C>
+    friend
+    void*
+-   Scan_Parse::get_center_func(C* c, void* parameter = 0);
++   Scan_Parse::get_center_func(C* c, void* parameter);
+    template <class C>
+    friend
+    void*
+-   Scan_Parse::get_focus_func(C* c, const unsigned short s = 0, void* parameter = 0);
++   Scan_Parse::get_focus_func(C* c, const unsigned short s, void* parameter);
+    template <class C>
+    friend
+    void*
+-   Scan_Parse::get_vertex_func(C* c, const unsigned short s = 0, void* parameter = 0);
++   Scan_Parse::get_vertex_func(C* c, const unsigned short s, void* parameter);
+ @q **** (4) Functions for |Focuses|.@>   
+@@ -5009,8 +5009,8 @@
+    friend
+    string*
+    Scan_Parse::sub_binary_number_string_func(C c, 
+-                              bool oversize_switch = false,
+-                              Scanner_Node scanner_node = 0);
++                              bool oversize_switch,
++                              Scanner_Node scanner_node);
+ @q **** (4) @>   
+@@ -5035,7 +5035,7 @@
+        int 
+        Scan_Parse::shape_decl_func(Scanner_Node,
+                                    int,
+-                                   C* dummy = 0);
++                                   C*);
+    template <class C>
+      friend
+@@ -5164,7 +5164,7 @@
+ template <class C>
+ friend 
+ void*
+-Scan_Parse::normal_func(C* c, Scanner_Node scanner_node = 0);
++Scan_Parse::normal_func(C* c, Scanner_Node scanner_node);
+ @q **** (4)@> 
+@@ -5226,7 +5226,7 @@
+      Scan_Parse::vector_type_decl(Scanner_Node scanner_node,
+                                        int vector_type_num,
+                                        int array_type_num,
+-                                       C* dummy = 0);
++                                       C* dummy);
+      template <class C>
+@@ -5237,7 +5237,7 @@
+                                            int vector_type_num,
+                                            int array_type_num,
+                                            C* object,
+-                                           bool copy_object = true);
++                                           bool copy_object);
+      template <class C, class D>
+      friend
+@@ -5245,7 +5245,7 @@
+      Scan_Parse::vector_type_assign(Scanner_Node scanner_node,
+                                     Id_Map_Entry_Node entry,
+                                     const Pointer_Vector<D>* object_vector,
+-                                    C* dummy = 0);
++                                    C* dummy);
+      friend
+      int 
+      Scan_Parse::conditional(Scanner_Node scanner_node,
+@@ -5367,7 +5367,7 @@
+      template<class C>
+      friend 
+      int
+-     Scan_Parse::reverse_func(void* v, void* parameter, C* c = 0);
++     Scan_Parse::reverse_func(void* v, void* parameter, C* c);
+      friend 
+@@ -5447,7 +5447,7 @@
+ template<class C>
+ friend 
+ void*
+-standardize_func(C* c, void* v = 0);
++standardize_func(C* c, void* v);
+ friend
+ void*
+@@ -5610,11 +5610,11 @@
+                                    int increment_value,
+                                    const unsigned short conic_section_type,
+                                    C* c, 
+-                                   void* parameter = 0,
+-                                   bool test_points = true,
+-                                   bool rectify_points = true,
+-                                   real tolerance = -1,
+-                                   bool ignore_extra_points = true);
++                                   void* parameter,
++                                   bool test_points,
++                                   bool rectify_points,
++                                   real tolerance,
++                                   bool ignore_extra_points);
+ friend 
+ void* 
+@@ -5677,23 +5677,23 @@
+ template<class C>
+ friend 
+ int
+-Scan_Parse::cull_func(void* v, 
+-                      const unsigned short comparison = 0,
+-                      Scanner_Node scanner_node = 0, 
+-                      real tolerance = -1,
+-                      C* c = 0);
++Scan_Parse::cull_func(void* v,
++                      const unsigned short comparison,
++                      Scanner_Node scanner_node,
++                      real tolerance,
++                      C* c);
+ template<class C>
+ friend
+ int 
+ Scan_Parse::rectify_func(void* v,
+-                         Scanner_Node scanner_node = 0,
+-                         bool do_test = true,
+-                         bool do_cull = true,
+-                         bool do_transform = true,
+-                         real tolerance = -1,
+-                         Transform* t = 0,
+-                         C* c = 0);
++                         Scanner_Node scanner_node,
++                         bool do_test,
++                         bool do_cull,
++                         bool do_transform,
++                         real tolerance,
++                         Transform* t,
++                         C* c);
+ @q ***** (5) |cuboid| expressions.@>  
+ @*4 {\bf cuboid} expressions.
+@@ -5709,12 +5709,12 @@
+ template<class C>
+ friend 
+ void*
+-Scan_Parse::in_cuboid_func(C* c, void* parameter = 0);
++Scan_Parse::in_cuboid_func(C* c, void* parameter);
+ template<class C>
+ friend 
+ void*
+-Scan_Parse::out_cuboid_func(C* c, void* parameter = 0);
++Scan_Parse::out_cuboid_func(C* c, void* parameter);
+ @q ***** (5) Functions for |Polyhedra|.@>   
+ @*4 Functions for {\bf Polyhedra}.
+@@ -6033,7 +6033,7 @@
+ template<class C>
+ friend
+ void*
+-Scan_Parse::is_whatever_func(C* c, void* parameter = 0);
++Scan_Parse::is_whatever_func(C* c, void* parameter);
+ friend
+@@ -6047,10 +6047,10 @@
+ template <class C, class D, class E>
+ friend
+ void*
+-Scan_Parse::intersection_points_func(C* c, 
+-                                     D* d, 
+-                                     void* parameter = 0, 
+-                                     E* e = 0);
++Scan_Parse::intersection_points_func(C* c,
++                                     D* d,
++                                     void* parameter,
++                                     E* e);
+ friend
+ Pointer_Vector<Bool_Point>*
+ Scan_Parse::convert(Bool_Point_Quadruple* bpq, 
+@@ -6061,22 +6061,22 @@
+ template<class C, class D>
+ friend
+ void*
+-Scan_Parse::ellipse_like_intersection_func(C* c, D* d, void* parameter = 0);
++Scan_Parse::ellipse_like_intersection_func(C* c, D* d, void* parameter);
+ template<class C>
+ friend 
+ void*
+-Scan_Parse::ellipse_like_plane_intersection_func(C* c, void* w, void* parameter = 0);
++Scan_Parse::ellipse_like_plane_intersection_func(C* c, void* w, void* parameter);
+ template<class C, class D>
+ friend 
+ void*
+-Scan_Parse::conic_section_intersection_func(C* c, D* d, void* parameter = 0);
++Scan_Parse::conic_section_intersection_func(C* c, D* d, void* parameter);
+ template<class C, class D>
+ friend
+ void*
+-Scan_Parse::polygon_like_intersection_func(C* c, D* d, void* parameter = 0);
++Scan_Parse::polygon_like_intersection_func(C* c, D* d, void* parameter);
+ template<class C>
+@@ -6084,7 +6084,7 @@
+ void*
+ Scan_Parse::ellipsoid_like_plane_intersection_func(C* c,
+                                                    Plane* p,
+-                                                   void* parameter = 0);
++                                                   void* parameter);
+ friend 
+ void*
+ Scan_Parse::sphere_line_intersection_func(Sphere* s,
+@@ -6100,12 +6100,12 @@
+ template<class C>
+ friend 
+ void*
+-Scan_Parse::plane_cast_func(C* c, void* parameter = 0); 
++Scan_Parse::plane_cast_func(C* c, void* parameter);
+ template <class C>
+ friend 
+ void*
+-Scan_Parse::plane_assignment_func(void* entry, C* c, void* parameter = 0);
++Scan_Parse::plane_assignment_func(void* entry, C* c, void* parameter);
+ friend 
+ int
+@@ -6114,7 +6114,7 @@
+ template <class C>
+ friend 
+ int
+-Scan_Parse::show_func(C* c, string text = "", void* parameter = 0);
++Scan_Parse::show_func(C* c, string text, void* parameter);
+ friend
+ void*
+--- a/src/scanprse.web
++++ b/src/scanprse.web
+@@ -6245,7 +6245,7 @@
+ Scan_Parse::vector_type_decl(Scanner_Node scanner_node,
+                              int vector_type_num,
+                              int array_type_num,
+-                             C* dummy = 0)
++                             C* dummy)
+ {
+@@ -8147,8 +8147,8 @@
+ Scan_Parse::cull_func(void* v, 
+                       const unsigned short comparison,
+                       Scanner_Node scanner_node, 
+-                      real tolerance = -1,
+-                      C* c = 0)
++                      real tolerance,
++                      C* c)
+ {
+ @q ***** (5) Preliminaries.@>   
diff --git a/upstream-gcc-init_priority.patch b/upstream-gcc-init_priority.patch
new file mode 100644 (file)
index 0000000..7f3db3f
--- /dev/null
@@ -0,0 +1,80 @@
+Description: random pre-main initialization: prioritize
+ Clarify C++ pre-main initialization with the help of the gcc specific
+ attribute init_priority; closes RC bug #759696.
+Origin: debian
+Author: Jerome Benoit <calculus@rezozer.net>
+Last-Update: 2015-11-23
+
+--- a/src/points.web
++++ b/src/points.web
+@@ -704,18 +704,16 @@
+ @<Global constants@>=
+-extern const Point INVALID_POINT(INVALID_REAL, INVALID_REAL, INVALID_REAL);
+-extern const Point ORIGIN(0, 0, 0);
+-extern const Point_Pair INVALID_POINT_PAIR(INVALID_POINT, INVALID_POINT);
++extern const Point __attribute__((init_priority(500))) INVALID_POINT(INVALID_REAL, INVALID_REAL, INVALID_REAL);
++extern const Point __attribute__((init_priority(500))) ORIGIN(0, 0, 0);
++extern const Point_Pair __attribute__((init_priority(1000))) INVALID_POINT_PAIR(INVALID_POINT, INVALID_POINT);
+-extern const Bool_Point INVALID_BOOL_POINT(false, INVALID_POINT);
+-extern const Bool_Point_Pair INVALID_BOOL_POINT_PAIR(INVALID_BOOL_POINT,
+-                                       INVALID_BOOL_POINT); 
++extern const Bool_Point __attribute__((init_priority(1000))) INVALID_BOOL_POINT(false, INVALID_POINT);
++extern const Bool_Point_Pair __attribute__((init_priority(2000))) INVALID_BOOL_POINT_PAIR(INVALID_BOOL_POINT, INVALID_BOOL_POINT);
+-extern const Bool_Real_Point INVALID_BOOL_REAL_POINT(false, INVALID_REAL,
+-                                       INVALID_POINT);
+-extern const Bool_Point_Quadruple
++extern const Bool_Real_Point __attribute__((init_priority(1000))) INVALID_BOOL_REAL_POINT(false, INVALID_REAL, INVALID_POINT);
++extern const Bool_Point_Quadruple __attribute__((init_priority(2000)))
+    INVALID_BOOL_POINT_QUADRUPLE(INVALID_BOOL_POINT,
+                                 INVALID_BOOL_POINT,
+                                 INVALID_BOOL_POINT,
+--- a/src/lines.web
++++ b/src/lines.web
+@@ -1032,7 +1032,7 @@
+ @q * Global constants for Line.@>
+ @ Global constants for {\bf Line}.
+ @<|Line| global constants@>=
+-extern const Line INVALID_LINE(INVALID_POINT, INVALID_POINT);
++extern const Line __attribute__((init_priority(1000))) INVALID_LINE(INVALID_POINT, INVALID_POINT);
+ @
+ @<Declarations for the header file@>=
+--- a/src/planes.web
++++ b/src/planes.web
+@@ -1617,8 +1617,7 @@
+ @q * (1) Global constants for Plane.@>
+ @* Global constants for {\bf Plane}.
+ @<|Plane| global constants@>=
+-extern const Plane INVALID_PLANE(INVALID_POINT,
+-                                 INVALID_POINT);
++extern const Plane __attribute__((init_priority(1000))) INVALID_PLANE(INVALID_POINT, INVALID_POINT);
+ @
+ @<Declarations for the header file@>=
+--- a/src/complex.web
++++ b/src/complex.web
+@@ -143,7 +143,7 @@
+ @<Global constants@>=
+-extern const Complex INVALID_COMPLEX(INVALID_REAL, INVALID_REAL);
++extern const Complex __attribute__((init_priority(500))) INVALID_COMPLEX(INVALID_REAL, INVALID_REAL);
+ @q *** (3)@>
+ @
+--- a/src/transfor.web
++++ b/src/transfor.web
+@@ -1517,7 +1517,7 @@
+ @q * Global constants. @>
+ @ Global constants.
+ @<Global constants@>=
+-extern const Transform INVALID_TRANSFORM(INVALID_REAL);
++extern const Transform __attribute__((init_priority(500))) INVALID_TRANSFORM(INVALID_REAL);
+ extern const Transform IDENTITY_TRANSFORM;
+ @
diff --git a/upstream-sys-std_numeric_limits.patch b/upstream-sys-std_numeric_limits.patch
new file mode 100644 (file)
index 0000000..25b9445
--- /dev/null
@@ -0,0 +1,34 @@
+Description: system: set second-largest-FP from std::numeric_limits
+ System::get_second_largest <(float|double)> is as transportable as
+ reinterpret_cast , that is, NOT. As suggested in gsltmplt.web ,
+ it is replaced with std::numeric_limits<(float|double)>::max() .
+Origin: debian
+Author: Jerome Benoit <calculus@rezozer.net>
+Last-Update: 2015-11-23
+
+--- a/src/main.web
++++ b/src/main.web
+@@ -1032,10 +1032,20 @@
+   @<Print version, copyright, and license information@>;
+   if (ldf_real_float)
+-    MAX_REAL = System::get_second_largest<float>(FLT_MAX, false);
++    MAX_REAL =
++#if 0
++                      System::get_second_largest<float>(FLT_MAX, false);
++#else
++                      std::numeric_limits<float>::max();
++#endif
+   else if (ldf_real_double)
+-    MAX_REAL = System::get_second_largest<double>(DBL_MAX, false);
+-  
++    MAX_REAL =
++#if 0
++                      System::get_second_largest<double>(DBL_MAX, false);
++#else
++                      std::numeric_limits<double>::max();
++#endif
++
+   MAX_REAL_SQRT = sqrt(MAX_REAL);
+   cerr.setf(ios::fixed, ios::floatfield);
diff --git a/upstream-w2help2man.patch b/upstream-w2help2man.patch
new file mode 100644 (file)
index 0000000..d1e674e
--- /dev/null
@@ -0,0 +1,101 @@
+Description: re-format the help option
+ Attempt to re-format the help option of the 3dldf
+ interpreter wrt to GNU traditions.
+Origin: debian
+Author: Jerome Benoit <calculus@rezozer.net>
+Last-Update: 2014-05-22
+
+--- a/src/main.web
++++ b/src/main.web
+@@ -450,53 +450,44 @@
+         else if (option_index == HELP_INDEX)
+           {
+-            cerr_mutex.lock(); 
+-            cerr << "GNU 3DLDF Version " << VERSION_3DLDF << ". "
+-                 << COPYRIGHT_3DLDF << endl 
+-                 << endl
+-                 << "Valid options for GNU 3DLDF are:" << endl
+-                 << endl
+-                 << "--bison-trace:           Prints information generated by Bison "
+-                 << endl << "                         "
+-                 << "for tracing which parser rules are reduced "
+-                 << endl << "                         "
+-                 << "and the state of the Bison stack." << endl
+-                 << endl
+-                 << "--help:                  Prints this message and exits "
+-                 << "with return value 0." << endl
+-                 << endl
+-                 << "--multithread-input:     Enables the use of multiple "
+-                 << "threads for input."
+-                 << endl
+-                 << endl
+-                 << "--multithread-output:    Enables the use of multiple "
+-                 << "threads for output."
+-                 << endl
+-                 << endl
+-                 << "--multithread-include:   Enables the use of multiple "
+-                 << "threads for input" << endl 
+-                 << "                         files included in other input files."
+-                 << endl
+-                 << endl
+-                 << "--quiet:                 Suppresses some output to standard "
+-                 << "output"
+-                 << endl 
+-                 << "                         and standard error when `3dldf' is run." 
+-                 << endl << endl
+-                 << "--silent:                Suppresses almost all output "
+-                 << "to standard output" << endl
+-                 << "                         and standard error when "
+-                 << "`3dldf' is run."
+-                 << endl << endl
+-                 << "--verbose:               Causes status information to be "
+-                 << "printed to standard output" << endl 
+-                 << "                         when `3dldf' is run."
+-                 << endl << endl 
+-                 << "--version:               Prints the version number of "
+-                 << "GNU 3DLDF" << endl 
+-                 << "                         to standard output and exits with "
+-                 << "return value 0."
+-                 << endl << endl; 
++            cerr_mutex.lock();
++            cerr
++                                                   << "Usage: 3ldf [OPTION]... 3DLDFNAME[.ldf]"
++                                                                 << endl << endl
++                                                   << "This is GNU 3DLDF Version " << VERSION_3DLDF << ". "
++                                                                 << endl
++                                                               << COPYRIGHT_3DLDF << "."
++                                                                 << endl << endl
++                 << "Valid options for GNU 3DLDF are:"
++                                                                 << endl << endl
++                 << "  --bison-trace          Prints information generated by Bison "
++                                                                 << "for tracing which parser rules are reduced "
++                   << "and the state of the Bison stack"
++                                                                 << endl << endl
++                 << "  --multithread-input    Enables the use of multiple threads for input"
++                   << endl << endl
++                 << "  --multithread-output   Enables the use of multiple threads for output"
++                   << endl << endl
++                 << "  --multithread-include  Enables the use of multiple threads for input"
++                   << "files included in other input files"
++                   << endl << endl
++                 << "  --quiet                Suppresses some output to standard output"
++                   << "and standard error when `3dldf' is running"
++                   << endl << endl
++                 << "  --silent               Suppresses almost all output to standard output"
++                   << "and standard error when `3dldf' is running"
++                   << endl << endl
++                 << "  --verbose              Causes status information to be "
++                   << "printed to standard output when `3dldf' is running"
++                   << endl << endl
++                 << "  --help                 Prints this message and exits with return value 0"
++                   << endl << endl
++                 << "  --version              Prints the version number of GNU 3DLDF "
++                   << "to standard output and exits with return value 0"
++                   << endl << endl
++                 << "Report bugs to <" << PACKAGE_BUGREPORT << ">."
++                                                                 << endl
++                 ;
+ #if DEBUG_COMPILE
This page took 0.117771 seconds and 4 git commands to generate.