Package Details: libfyba 4.1.1-2

Git Clone URL: https://aur.archlinux.org/libfyba.git (read-only, click to copy)
Package Base: libfyba
Description: Library for reading and writing to the national Norwegian geographical SOSI-format
Upstream URL: https://github.com/kartverket/fyba
Keywords: library openstreetmap
Licenses: custom
Submitter: ekkelett
Maintainer: ekkelett
Last Packager: ekkelett
Votes: 1
Popularity: 0.000000
First Submitted: 2015-04-20 06:28
Last Updated: 2015-06-09 06:01

Latest Comments

ekkelett commented on 2021-05-31 06:19

Thank you for the report, @dreieck, and @hinerk, too, for that matter. I'll see if I can't have a look at it, although it's been ages since I used the libfyba library myself. Co-maintainers would be nice if someone uses the library frequently.

dreieck commented on 2021-05-29 10:25

Fails to build for me:

make  all-recursive
[...]
[...]
[...]
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. --pedantic -Wno-long-long -Wall -O2 -D_FILE_OFFSET_BITS=64 -DUNIX -DLINUX -fPIC -Wno-write-strings -g0 -march=x86-64 -mtune=native -O3 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fomit-frame-pointer -fPIC -fpermissive -MT DELFILE.lo -MD -MP -MF .deps/DELFILE.Tpo -c DELFILE.cpp  -fPIC -DPIC -o .libs/DELFILE.o
UT1.cpp: In function ‘short int UT_ReadLineNoComm(FILE*, short int, char*)’:
UT1.cpp:615:24: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
  615 |         register char *cp=NULL;
      |                        ^~
In file included from /usr/include/c++/11.1.0/bits/specfun.h:45,
                 from /usr/include/c++/11.1.0/cmath:1927,
                 from /usr/include/c++/11.1.0/math.h:36,
                 from UT4.cpp:11:
/usr/include/c++/11.1.0/bits/stl_algobase.h:278:56: error: macro "min" passed 3 arguments, but takes just 2
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |                                                        ^
       ^~~~~~~~~~~~~~~~~~~~~
[...]
[...]
[...]
In file included from /usr/include/c++/11.1.0/bits/specfun.h:46,
                 from /usr/include/c++/11.1.0/cmath:1927,
                 from /usr/include/c++/11.1.0/math.h:36,
                 from UT2.cpp:11:
/usr/include/c++/11.1.0/limits:1826:7: error: ‘constexpr’ static data member ‘max’ must have an initializer
 1826 |       max() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MAX__; }
      |       ^~~
/usr/include/c++/11.1.0/limits:1826:7: error: expected ‘;’ at end of member declaration
 1826 |       max() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MAX__; }
      |       ^~~
      |          ;
In file included from /usr/include/c++/11.1.0/cstring:41,
                 from stdafx.h:8,
                 from UT2.cpp:9:
/usr/include/c++/11.1.0/limits:1826:13: error: expected unqualified-id before ‘noexcept’
 1826 |       max() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MAX__; }
      |             ^~~~~~~~~~~~~~~~~~~~~
In file included from stdafx.h:9,
                 from UT2.cpp:9:
/usr/include/c++/11.1.0/tr1/bessel_function.tcc: In function ‘void std::__detail::__bessel_jn(_Tp, _Tp, _Tp&, _Tp&, _Tp&, _Tp&)’:
fyut.h:128:18: error: expected unqualified-id before ‘(’ token
  128 | #define max(a,b) (((a) > (b)) ? (a) : (b))
      |                  ^
/usr/include/c++/11.1.0/tr1/ell_integral.tcc: In function ‘_Tp std::__detail::__ellint_rf(_Tp, _Tp, _Tp)’:
fyut.h:128:18: error: expected unqualified-id before ‘(’ token
  128 | #define max(a,b) (((a) > (b)) ? (a) : (b))
      |                  ^
fyut.h:128:18: error: expected unqualified-id before ‘(’ token
  128 | #define max(a,b) (((a) > (b)) ? (a) : (b))
      |                  ^
/usr/include/c++/11.1.0/tr1/ell_integral.tcc: In function ‘_Tp std::__detail::__ellint_rd(_Tp, _Tp, _Tp)’:
fyut.h:128:18: error: expected unqualified-id before ‘(’ token
  128 | #define max(a,b) (((a) > (b)) ? (a) : (b))
      |                  ^
fyut.h:128:18: error: expected unqualified-id before ‘(’ token
  128 | #define max(a,b) (((a) > (b)) ? (a) : (b))
      |                  ^
/usr/include/c++/11.1.0/tr1/ell_integral.tcc: In function ‘_Tp std::__detail::__ellint_rj(_Tp, _Tp, _Tp, _Tp)’:
fyut.h:128:18: error: expected unqualified-id before ‘(’ token
  128 | #define max(a,b) (((a) > (b)) ? (a) : (b))
      |                  ^
fyut.h:128:18: error: expected unqualified-id before ‘(’ token
  128 | #define max(a,b) (((a) > (b)) ? (a) : (b))
      |                  ^
fyut.h:128:18: error: expected unqualified-id before ‘(’ token
  128 | #define max(a,b) (((a) > (b)) ? (a) : (b))
      |                  ^
In file included from /usr/include/c++/11.1.0/math.h:36,
                 from UT2.cpp:11:
/usr/include/c++/11.1.0/cmath: At global scope:
/usr/include/c++/11.1.0/cmath:1930:1: error: expected declaration before ‘}’ token
 1930 | } // extern "C++"
      | ^
UT2.cpp: In function ‘char UT_StrToken(char*, short int, short int*, short int, char*)’:
UT2.cpp:78:20: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
   78 |     register short it;
      |                    ^~
make[2]: *** [Makefile:487: UT2.lo] Error 1
make[2]: Leaving directory '/[...]/libfyba/src/fyba-4.1.1/src/UT'
make[1]: *** [Makefile:459: all-recursive] Error 1
make[1]: Leaving directory '/[...]/libfyba/src/fyba-4.1.1'
make: *** [Makefile:368: all] Error 2

Full make output: → Here.

hinerk commented on 2017-06-19 20:19

I had a little struggle with compiling this one. Reason for failing to build seems to be the redefinition of min and max, which does not only takes affect on the source - it does also overwrite the use of min/max in all included system libraries. Since I have only rudimentary knowledge regarding C++, I hacked arround by letting the preprocessor run over the source and then removing the define sections in the source code. This results in the following build() block in my PKGBUILD:

build() {
cd "fyba-${pkgver}"
sed '1,/LICENSE/d' README > LICENSE
autoreconf --force --install
./configure --prefix=/usr
for i in $(grep -rlE '( |\()(min|max)\('|grep -vE 'fyut.h');do
g++ -E $i -I src/UT/ -I include/ > $i
done
for i in $(grep -rlE '( |\()(min|max)\('); do
sed -i -E 's/#define (min|max).+//g' $i
done
make
}

I also enabled staticlibs and libtools in /etc/makepkg.conf to create .a files, which I need to compile gdal with sosi support