bugGNU Octave - Bugs: bug #57157, [octave forge] (octclip) error...

 
 

bug #57157: [octave forge] (octclip) error running `make' for octclip,

Submitted by:  None
Submitted on:  Sun 03 Nov 2019 12:39:54 PM UTC  
 
Category:  Octave Forge Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  None Assigned to:  None
Originator Name:  vlg Originator Email:  -email is unavailable-
Open/Closed:  Open Release:  5.1.0
Operating System:  GNU/Linux

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Thu 07 Nov 2019 08:45:21 PM UTC, comment #9: 

_chunky to move, zoom in and out_

Octave's performance as regards drawing patches is pathetic at best. Lines etc. is much much better. But it also depends on your graphics HW.
Anyway that is one reason that shapedraw.m tries to draw patches and polylines as much as possible as one variable rather than split them up and draw one by one.

"Fixing" the current packages will probably mean replacing some functions by their dev versions. But there is some entanglement that has to be sorted out.
Plus, I'm unsure if clipping polylines is already in geometry-3.0.0 (I guess not, IIRC I patched the clipper library only later on).

Philip Nienhuis <philipnienhuis>
Project Member
Thu 07 Nov 2019 10:53:55 AM UTC, comment #8: 

Oh, sweet. I'd like to switch to the dev version, but the core pkg function doesn't seem to have that as an option, so probably local files have to be overwritten or something.

     mapping  |   1.2.1 |
    geometry  |   3.0.0 |

it's not that it's bothering me, but octave just halts on trying to read the landuse or roads files, which are ~70MB, even the small railroads is chunky to move, zoom in and out of when the whole is loaded.

Thanks

Anonymous
Wed 06 Nov 2019 04:05:18 PM UTC, comment #7: 

It's perhaps of little comfort to you, but with dev mapping, geometry & matgeom pkgs I get attached picture. (grey = full file, blue = BoundingBox & clipped).

From your description I get it that clipping simply does not work (any more?).
By the end of this week I might have time to see what can be fixed in the existing mapping and geometry packages. As I wrote it's all fixed in the coming releases, but it's hard to isolate just the fixes for what is bothering you.
Just FTR, what versions of mapping and geometry pkg do you have? (just do "pkg list mapping" and "pkg list geometry")


Philip Nienhuis <philipnienhuis>
Project Member
Tue 05 Nov 2019 03:53:42 PM UTC, comment #6: 

comment #5:

> You could start with interchanging the X,Y coordinates of the bounding box....
>

I noticed the mix-up afterwards.
Nevertheless, it yields the same if switched- longitudes extended a far beyond bbox edges, whereas latitude is nigh alright.
Could be because most of the railway tracks as W-E in Bulgaria, hence it doesn't want to cut them..?

Anonymous
Tue 05 Nov 2019 02:30:54 PM UTC, comment #5: 

You could start with interchanging the X,Y coordinates of the bounding box....

Philip Nienhuis <philipnienhuis>
Project Member
Tue 05 Nov 2019 08:28:18 AM UTC, comment #4: 

comment #3:

> I'd appreciate if you could submit an example of dysfunctional clipping using shaperead.m so I can check it with the next mapping package release.
>

Files courtesy of openstreetmap- http://download.geofabrik.de/europe/bulgaria-latest-free.shp.zip

pkg load geometry mapping octclip io
mm = shaperead ('gis_osm_railways_free_1', 'oct', 'BoundingBox', [42, 23; 43, 24] , 'Clip', true);
figure ();
shapedraw (mm);
print (1, '1.png');% included my result


Anonymous
Mon 04 Nov 2019 10:23:13 PM UTC, comment #3: 

"The sheer amount of clipping functions in the geometry pkg is scary."

Yeah I agree somewhat. There was also a promising polyclip option based on the Boost library which was fairly fast but unfortunately not very stable.
Basically there are just two options, clipper and mrf, but I agree the number of calling functions is large.
In a next geometry package the matlab-compatible function polybool should be able to wrap it all.

The current geometry package has some bugs due to later changes inside core Octave. But they're easily solved by downloading the relevant private functions from the repo, I've fixed various bugs there.
We're all waiting for a new geometry package release; once there I'll release a new mapping package with many other bug fixes as well. Those new versions also feature polyline clipping.

shaperead's bounding box option doesn't do any clipping, exactly like the one from Matlab. Any polygon with a vertex in the bounding box gets included.

I'd appreciate if you could submit an example of dysfunctional clipping using shaperead.m so I can check it with the next mapping package release.

Philip Nienhuis <philipnienhuis>
Project Member
Mon 04 Nov 2019 10:21:36 AM UTC, comment #2: 

comment #1:

> No fix here, but if you want/need polygon clipping, the mapping + geometry package combo supports that as well with much better Matlab compatibility, and support for clipping nested polygons (i.e., with holes) that octclip is lacking.

hm, I have GIS files from openstreetmap for a country, but I need the data for only one city, the 'BoundingBox' property of shaperead doesn't clip lines/polygons, and the 'Clip', true property doesn't change it that much either. The coords of the railway file I use for testing never exactly fit the geo coords longitude-wise. This being on w10, where octclip did install.

The sheer amount of clipping functions in the geometry pkg is scary.

Anonymous
Sun 03 Nov 2019 05:39:51 PM UTC, comment #1: 

No fix here, but if you want/need polygon clipping, the mapping + geometry package combo supports that as well with much better Matlab compatibility, and support for clipping nested polygons (i.e., with holes) that octclip is lacking.

Philip Nienhuis <philipnienhuis>
Project Member
Sun 03 Nov 2019 12:39:54 PM UTC, original submission:  

octave:1> pkg install -forge octclip
fgeneral.c: In function 'Minimo':
fgeneral.c:275:13: error: 'nDatos' not specified in enclosing 'parallel'
  275 |     for(i=0;i<nDatos;i++)
      |             ^
fgeneral.c:269:9: error: enclosing 'parallel'
  269 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c:278:16: error: 'incDatos' not specified in enclosing 'parallel'
  278 |         pos = i*incDatos;
      |               ~^~~~~~~~~
fgeneral.c:269:9: error: enclosing 'parallel'
  269 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c: In function 'Maximo':
fgeneral.c:314:13: error: 'nDatos' not specified in enclosing 'parallel'
  314 |     for(i=0;i<nDatos;i++)
      |             ^
fgeneral.c:308:9: error: enclosing 'parallel'
  308 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c:317:16: error: 'incDatos' not specified in enclosing 'parallel'
  317 |         pos = i*incDatos;
      |               ~^~~~~~~~~
fgeneral.c:308:9: error: enclosing 'parallel'
  308 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c: In function 'MinimoAbs':
fgeneral.c:353:13: error: 'nDatos' not specified in enclosing 'parallel'
  353 |     for(i=0;i<nDatos;i++)
      |             ^
fgeneral.c:347:9: error: enclosing 'parallel'
  347 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c:356:16: error: 'incDatos' not specified in enclosing 'parallel'
  356 |         pos = i*incDatos;
      |               ~^~~~~~~~~
fgeneral.c:347:9: error: enclosing 'parallel'
  347 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c: In function 'MaximoAbs':
fgeneral.c:392:13: error: 'nDatos' not specified in enclosing 'parallel'
  392 |     for(i=0;i<nDatos;i++)
      |             ^
fgeneral.c:386:9: error: enclosing 'parallel'
  386 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c:395:16: error: 'incDatos' not specified in enclosing 'parallel'
  395 |         pos = i*incDatos;
      |               ~^~~~~~~~~
fgeneral.c:386:9: error: enclosing 'parallel'
  386 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c: In function 'MinimoSizeT':
fgeneral.c:431:13: error: 'nDatos' not specified in enclosing 'parallel'
  431 |     for(i=0;i<nDatos;i++)
      |             ^
fgeneral.c:425:9: error: enclosing 'parallel'
  425 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c:434:16: error: 'incDatos' not specified in enclosing 'parallel'
  434 |         pos = i*incDatos;
      |               ~^~~~~~~~~
fgeneral.c:425:9: error: enclosing 'parallel'
  425 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c: In function 'MaximoSizeT':
fgeneral.c:470:13: error: 'nDatos' not specified in enclosing 'parallel'
  470 |     for(i=0;i<nDatos;i++)
      |             ^
fgeneral.c:464:9: error: enclosing 'parallel'
  464 | #pragma omp parallel for default(none) \
      |         ^~~
fgeneral.c:473:16: error: 'incDatos' not specified in enclosing 'parallel'
  473 |         pos = i*incDatos;
      |               ~^~~~~~~~~
fgeneral.c:464:9: error: enclosing 'parallel'
  464 | #pragma omp parallel for default(none) \
      |         ^~~
make: *** [Makefile:26: compile] Error 1
make: Entering directory '/tmp/oct-WnqF0s/octclip-1.0.8/src'
mkoctfile -c -I. calctopo.c -o calctopo.o
mkoctfile -c -I. compilador.c -o compilador.o
mkoctfile -c -I. dpeucker.c -o dpeucker.o
mkoctfile -c -I. errores.c -o errores.o
mkoctfile -c -I. eucli.c -o eucli.o
mkoctfile -c -I. fgeneral.c -o fgeneral.o
make: Leaving directory '/tmp/oct-WnqF0s/octclip-1.0.8/src'

pkg: error running `make' for the octclip package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 441 column 9

I don't get why, I had a similar error for some other package I was installing, and realized I hadn't installed make, or some hidden dependency, or some library.. Anyways, octclip doesn't install- knowing there's a parallel pkg, I tried it to no avail

octave:2> pkg install -forge parallel
configure: WARNING: TLS disabled since gnutls/gnutls.h not found or not compilable
pconnect.cc: In function 'octave_value_list Fpconnect(const octave_value_list&, int)':
pconnect.cc:536:35: error: 'octave_env' has not been declared
  536 |           std::string directory = octave_env::get_current_directory ();
      |                                   ^~~~~~~~~~
In file included from parallel-gnutls.h:135,
                 from pserver.cc:49:
pserver.cc: In function 'void reval_loop(octave_parallel_stream&)':
pserver.cc:142:55: warning: 'octave_value_list octave::eval_string(const string&, bool, int&, int)' is deprecated: [5]: use 'octave::interpreter::eval_string' instead [-Wdeprecated-declarations]
  142 |       SET_ERR (OCTAVE__EVAL_STRING (s, false, p_err, 0), err);
      |                                                       ^
error-helpers.h:116:9: note: in definition of macro 'SET_ERR'
  116 |         code ; \
      |         ^~~~
In file included from oct-alt-includes.h:33,
                 from config.h:258,
                 from pserver.cc:26:
/usr/include/octave-5.1.0/octave/../octave/parse.h:589:3: note: declared here
  589 |   eval_string (const std::string&, bool silent, int& parse_status, int nargout);
      |   ^~~~~~~~~~~
In file included from parallel-gnutls.h:135,
                 from pserver.cc:49:
pserver.cc:142:55: warning: 'octave_value_list octave::eval_string(const string&, bool, int&, int)' is deprecated: [5]: use 'octave::interpreter::eval_string' instead [-Wdeprecated-declarations]
  142 |       SET_ERR (OCTAVE__EVAL_STRING (s, false, p_err, 0), err);
      |                                                       ^
error-helpers.h:116:9: note: in definition of macro 'SET_ERR'
  116 |         code ; \
      |         ^~~~
In file included from oct-alt-includes.h:33,
                 from config.h:258,
                 from pserver.cc:26:
/usr/include/octave-5.1.0/octave/../octave/parse.h:589:3: note: declared here
  589 |   eval_string (const std::string&, bool silent, int& parse_status, int nargout);
      |   ^~~~~~~~~~~
pserver.cc:172:13: error: 'command_editor' has not been declared
  172 |             command_editor::increment_current_command_number ();
      |             ^~~~~~~~~~~~~~
pserver.cc: In function 'octave_value_list Fpserver(const octave_value_list&, int)':
pserver.cc:1119:23: error: 'octave_env' has not been declared
1119 |           int cd_ok = octave_env::chdir (directory.c_str ());
      |                       ^~~~~~~~~~
pserver.cc:1122:13: error: 'octave_env' has not been declared
1122 |             octave_env::chdir ("/tmp");
      |             ^~~~~~~~~~
make: *** [Makefile:150: pconnect.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [Makefile:150: pserver.o] Error 1
make: Entering directory '/tmp/oct-ivATht/parallel-3.1.3/src'
CXX="g++" CXXFLAGS="-fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe   -g  " /usr/bin/mkoctfile-5.1.0 -c pconnect.cc
CXX="g++" CXXFLAGS="-fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe   -g  " /usr/bin/mkoctfile-5.1.0 -c pserver.cc
CXX="g++" CXXFLAGS="-fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe   -g  " /usr/bin/mkoctfile-5.1.0 -c sclose.cc
CXX="g++" CXXFLAGS="-fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe   -g  " /usr/bin/mkoctfile-5.1.0 -c reval.cc
make: Leaving directory '/tmp/oct-ivATht/parallel-3.1.3/src'

pkg: error running `make' for the parallel package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 441 column 9

I tried dl'ing and installing for the archive, tried building, nothing worked. I've nigh no knowledge of what I'm doing, or doing wrong, help would be appreciated...

Weirdly enough, the packages install fine on a win10 using the make from chocolately. On Void Linux, however..

Here is the list of packages I have installed, if it matters any:

Package Name    | Version | Installation directory
----------------+---------+-----------------------
data-smoothing  |   1.3.0 | /usr/share/octave/packages/data-smoothing-1.3.0
     financial  |   0.5.3 | /usr/share/octave/packages/financial-0.5.3
       general  |   2.1.0 | /usr/share/octave/packages/general-2.1.0
      geometry  |   3.0.0 | /usr/share/octave/packages/geometry-3.0.0
           gsl  |   2.1.1 | /usr/share/octave/packages/gsl-2.1.1
         image  |  2.10.0 | /usr/share/octave/packages/image-2.10.0
            io  |  2.4.13 | /usr/share/octave/packages/io-2.4.13
     level-set  |   0.3.0 | /usr/share/octave/packages/level-set-0.3.0
       mapping  |   1.2.1 | /usr/share/octave/packages/mapping-1.2.1
           mvn  |   1.1.0 | /usr/share/octave/packages/mvn-1.1.0
         optim  |   1.6.0 | /usr/share/octave/packages/optim-1.6.0
   optiminterp  |   0.3.5 | /usr/share/octave/packages/optiminterp-0.3.5
       splines  |   1.3.3 | /usr/share/octave/packages/splines-1.3.3
    statistics  |   1.4.1 | /usr/share/octave/packages/statistics-1.4.1
        struct  |  1.0.16 | /usr/share/octave/packages/struct-1.0.16
      symbolic  |   2.8.0 | /usr/share/octave/packages/symbolic-2.8.0

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #47809:  Bulg_railws.png added by philipnienhuis (41KiB - image/png)
file #47807:  1.png added by None (50KiB - image/png)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by siko1056 (Updated the item)
  • -email is unavailable- added by None (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-11-06 philipnienhuis Attached File- => Added Bulg_railws.png, #47809
    2019-11-05 None Attached File- => Added 1.png, #47807
    2019-11-03 siko1056 Summaryerror running `make' for octclip, => [octave forge] (octclip) error running `make' for octclip,

    Back to the top


    Powered by Savane 3.5