Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2019-01-10 Thread Bob Friesenhahn

On Fri, 11 Jan 2019, benta...@chez.com wrote:

Ok, I just needed a few more minutes obviously so I found where this options 
were defined by default :

CMakeLists.txt:add_gcc_compiler_flags("-fvisibility=hidden")
CMakeLists.txt:add_gcc_compiler_cxxflags("-fvisibility-inlines-hidden")

commented them out and compiled it


There are Solaris linker options which do similar things.  It would be 
good to find those options and use them instead so that the library 
ABI is similar to Linux, without a bunch of exposed private symbols.


Using the hidden symbols actually makes the code smaller and load 
faster.


Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/
Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt

___
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss


Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2019-01-10 Thread bentahyr
Ok, I just needed a few more minutes obviously so I found where this 
options were defined by default :

CMakeLists.txt:add_gcc_compiler_flags("-fvisibility=hidden")
CMakeLists.txt:add_gcc_compiler_cxxflags("-fvisibility-inlines-hidden")

commented them out and compiled it

Et voila! It works (64bits as well), I finally have auto type function 
available which is quite cool.

I think I'm ready to try to package it.
Should I do 1PR for libargon2 and 1PR for KeepassXC  or 1 PR for both 
libargon2 and KeepassXC ?

64 bits build only or both 32/64 bits ?

Best regards.
Ben

Le 2019-01-11 11:17, benta...@chez.com a écrit :

Hi all,
I'm coming back to this and spent nearly 1.5 day on this. They used to
have this issue on netbsd and first solved it by removing compilation
option related to symbol visibility, then removed that hack later on
but I cannot figure out how they work it out to not use the hack.

http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/security/keepassxc/Makefile.diff?only_with_tag=MAIN=text=1.1=text=1.2

Basically, I would like to try to compile without -fvisibility=hidden
but I cannot get my head around how to make it through cmake
The only packages (curl, gnome2-atk) in OI-userland having something
to do with this option are using autoconfigure and diabling it is part
of the configure script.

What would be the way to force cmake to tell gcc not to use
-fvisibility=hidden ?

Best regards.
Ben

On 05/12/2018 10:43, benta...@chez.com wrote:


The issue on autotype is related to QT.
The plugin for autotype doesn't load at start :
$ LANG=en_US.UTF-8 LD_LIBRARY_PATH=/usr/lib/qt/5.8/lib:/usr/local/lib 
/usr/local/bin/keepassxc

Qt: Session management error: Could not open network socket
Warning: using insecure memory!
Couldn't load translations.
Unable to load auto-type plugin:
Cannot resolve symbol "qt_plugin_instance" in 
/usr/local/lib/keepassxc/libkeepassx-autotype-xcb.so: (ld.so.1: 
keepassxc: fatal: qt_plugin_instance: can't find symbol)

QObject::startTimer: Timers cannot have negative interval

I have to add the LD_LIBRARY_PATH for QT, so I suspect I miss a few 
other path, though :

/usr/lib/qt/5.8/lib$ LANG=en_US.UTF-8 grep -R qt_plugin_instance *
Binary file amd64/libQt5DesignerComponents.so.5.8.0 matches
Binary file amd64/libQt5DesignerComponents.so.5 matches
Binary file amd64/libQt5Core.so.5.8 matches
Binary file amd64/libQt5DesignerComponents.so matches
Binary file amd64/libQt5DesignerComponents.so.5.8 matches
Binary file amd64/libQt5Core.so.5 matches
Binary file amd64/libQt5Core.so.5.8.0 matches
Binary file amd64/libQt5Core.so matches
Binary file libQt5Core.so matches
Binary file libQt5Core.so.5 matches
Binary file libQt5Core.so.5.8 matches
Binary file libQt5Core.so.5.8.0 matches
Binary file libQt5DesignerComponents.so matches
Binary file libQt5DesignerComponents.so.5 matches
Binary file libQt5DesignerComponents.so.5.8 matches
Binary file libQt5DesignerComponents.so.5.8.0 matches

I'm not sure why it doesn't find the symbol

Best regards.
Ben

On 04/12/2018 10:38, benta...@chez.com wrote:

This is not perfect, this is what's left to do :
- 64bits keepassxc and libargon2
- autotype doesn't work, option (menu entries, shortcut) not present

libargon2 compiles out of the box
https://github.com/P-H-C/phc-winner-argon2

cmake :
- cmake linker flags -lsocket -lnsl -lrt -lresolv
- cmake didn't find QT5 config utilities, I had to point it to the 
directory
- did compilation with GCC7 but I think default GCC6 should work as 
well

- due to GCC7, I added -I /usr/gcc/7/include/c++/7.3.0 to CXX_FLAGS

keepassxc patch :
 cut here 
--- src/totp/totp.cpp   2018-08-23 03:25:04.0 +
+++ src/totp/totp.cpp.mod   2018-12-04 09:09:32.413168641 +
@@ -164,7 +164,7 @@
direction = 1;
startpos = 0;

}
-quint32 digitsPower = pow(encoder.alphabet.size(), digits);
+quint32 digitsPower = pow(double (encoder.alphabet.size()), 
digits);


quint64 password = binary % digitsPower;
QString retval(int(digits), encoder.alphabet[0]);
 cut here 

Best regards.
Ben

On 04/12/2018 09:29, Till Wegmüller wrote:

Nice work.

I would also be interested in it.

Could you Publish a patch or put a makefile into OI Userland?

Thanks and Greetings
Till
On 12/03/18 09:28 PM, benta...@chez.com wrote:

Thanks Bob and Alexander, I think I start to understand.

grep digits ../../src/totp/totp.cpp
[...]
quint8 digits = encoder.digits == 0 ? numDigits : encoder.digits;
[...]

From my 30 years old rusty knowledge of C++, this mean that digits is
supposed to be a 'quint8' which is most probably QT version of the 
'int'
and as Bob noticed the pow function expects 'int', 'float', or 
'double'


From Alexander reference, I should have
quint32 digitsPower = pow(encoder.alphabet.size(), int(digits));

In that particular case it was 'encoder.alphabet.size()'  which 
appeared

ambiguous, using 'double (encoder.alphabet.size())' made it. 'digits'
was ok so far

Bottom line is I could compile and execute it, 

Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2019-01-10 Thread bentahyr

Hi all,
I'm coming back to this and spent nearly 1.5 day on this. They used to 
have this issue on netbsd and first solved it by removing compilation 
option related to symbol visibility, then removed that hack later on but 
I cannot figure out how they work it out to not use the hack.


http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/security/keepassxc/Makefile.diff?only_with_tag=MAIN=text=1.1=text=1.2

Basically, I would like to try to compile without -fvisibility=hidden 
but I cannot get my head around how to make it through cmake
The only packages (curl, gnome2-atk) in OI-userland having something to 
do with this option are using autoconfigure and diabling it is part of 
the configure script.


What would be the way to force cmake to tell gcc not to use 
-fvisibility=hidden ?


Best regards.
Ben

On 05/12/2018 10:43, benta...@chez.com wrote:


The issue on autotype is related to QT.
The plugin for autotype doesn't load at start :
$ LANG=en_US.UTF-8 LD_LIBRARY_PATH=/usr/lib/qt/5.8/lib:/usr/local/lib 
/usr/local/bin/keepassxc

Qt: Session management error: Could not open network socket
Warning: using insecure memory!
Couldn't load translations.
Unable to load auto-type plugin:
Cannot resolve symbol "qt_plugin_instance" in 
/usr/local/lib/keepassxc/libkeepassx-autotype-xcb.so: (ld.so.1: 
keepassxc: fatal: qt_plugin_instance: can't find symbol)

QObject::startTimer: Timers cannot have negative interval

I have to add the LD_LIBRARY_PATH for QT, so I suspect I miss a few 
other path, though :

/usr/lib/qt/5.8/lib$ LANG=en_US.UTF-8 grep -R qt_plugin_instance *
Binary file amd64/libQt5DesignerComponents.so.5.8.0 matches
Binary file amd64/libQt5DesignerComponents.so.5 matches
Binary file amd64/libQt5Core.so.5.8 matches
Binary file amd64/libQt5DesignerComponents.so matches
Binary file amd64/libQt5DesignerComponents.so.5.8 matches
Binary file amd64/libQt5Core.so.5 matches
Binary file amd64/libQt5Core.so.5.8.0 matches
Binary file amd64/libQt5Core.so matches
Binary file libQt5Core.so matches
Binary file libQt5Core.so.5 matches
Binary file libQt5Core.so.5.8 matches
Binary file libQt5Core.so.5.8.0 matches
Binary file libQt5DesignerComponents.so matches
Binary file libQt5DesignerComponents.so.5 matches
Binary file libQt5DesignerComponents.so.5.8 matches
Binary file libQt5DesignerComponents.so.5.8.0 matches

I'm not sure why it doesn't find the symbol

Best regards.
Ben

On 04/12/2018 10:38, benta...@chez.com wrote:

This is not perfect, this is what's left to do :
- 64bits keepassxc and libargon2
- autotype doesn't work, option (menu entries, shortcut) not present

libargon2 compiles out of the box
https://github.com/P-H-C/phc-winner-argon2

cmake :
- cmake linker flags -lsocket -lnsl -lrt -lresolv
- cmake didn't find QT5 config utilities, I had to point it to the 
directory
- did compilation with GCC7 but I think default GCC6 should work as 
well

- due to GCC7, I added -I /usr/gcc/7/include/c++/7.3.0 to CXX_FLAGS

keepassxc patch :
 cut here 
--- src/totp/totp.cpp   2018-08-23 03:25:04.0 +
+++ src/totp/totp.cpp.mod   2018-12-04 09:09:32.413168641 +
@@ -164,7 +164,7 @@
direction = 1;
startpos = 0;

}
-quint32 digitsPower = pow(encoder.alphabet.size(), digits);
+quint32 digitsPower = pow(double (encoder.alphabet.size()), 
digits);


quint64 password = binary % digitsPower;
QString retval(int(digits), encoder.alphabet[0]);
 cut here 

Best regards.
Ben

On 04/12/2018 09:29, Till Wegmüller wrote:

Nice work.

I would also be interested in it.

Could you Publish a patch or put a makefile into OI Userland?

Thanks and Greetings
Till
On 12/03/18 09:28 PM, benta...@chez.com wrote:

Thanks Bob and Alexander, I think I start to understand.

grep digits ../../src/totp/totp.cpp
[...]
quint8 digits = encoder.digits == 0 ? numDigits : encoder.digits;
[...]

From my 30 years old rusty knowledge of C++, this mean that digits is
supposed to be a 'quint8' which is most probably QT version of the 
'int'

and as Bob noticed the pow function expects 'int', 'float', or 'double'

From Alexander reference, I should have
quint32 digitsPower = pow(encoder.alphabet.size(), int(digits));

In that particular case it was 'encoder.alphabet.size()'  which 
appeared

ambiguous, using 'double (encoder.alphabet.size())' made it. 'digits'
was ok so far

Bottom line is I could compile and execute it, it is nice to have it
native (works with wine).

Thanks both of you.
Best regards.
Ben

On 04/12/2018 03:21, Bob Friesenhahn wrote:

On Mon, 3 Dec 2018, benta...@chez.com wrote:

Hello,
'static QString Totp::generateTotp(QByteArray, quint64, quint8,
quint8)':
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call
of overloaded 'pow(int, quint8&)' is ambiguous
quint32 digitsPower = pow(encoder.alphabet.size(), digits);

What is the declared storage type of the 'digits' argument?  From
reading the header, it appears that it must be of type 'int', 'float',
or 'double'.  Any other type would require a 

Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2018-12-04 Thread bentahyr

The issue on autotype is related to QT.
The plugin for autotype doesn't load at start :
$ LANG=en_US.UTF-8 LD_LIBRARY_PATH=/usr/lib/qt/5.8/lib:/usr/local/lib 
/usr/local/bin/keepassxc

Qt: Session management error: Could not open network socket
Warning: using insecure memory!
Couldn't load translations.
Unable to load auto-type plugin:
Cannot resolve symbol "qt_plugin_instance" in 
/usr/local/lib/keepassxc/libkeepassx-autotype-xcb.so: (ld.so.1: 
keepassxc: fatal: qt_plugin_instance: can't find symbol)

QObject::startTimer: Timers cannot have negative interval

I have to add the LD_LIBRARY_PATH for QT, so I suspect I miss a few 
other path, though :

/usr/lib/qt/5.8/lib$ LANG=en_US.UTF-8 grep -R qt_plugin_instance *
Binary file amd64/libQt5DesignerComponents.so.5.8.0 matches
Binary file amd64/libQt5DesignerComponents.so.5 matches
Binary file amd64/libQt5Core.so.5.8 matches
Binary file amd64/libQt5DesignerComponents.so matches
Binary file amd64/libQt5DesignerComponents.so.5.8 matches
Binary file amd64/libQt5Core.so.5 matches
Binary file amd64/libQt5Core.so.5.8.0 matches
Binary file amd64/libQt5Core.so matches
Binary file libQt5Core.so matches
Binary file libQt5Core.so.5 matches
Binary file libQt5Core.so.5.8 matches
Binary file libQt5Core.so.5.8.0 matches
Binary file libQt5DesignerComponents.so matches
Binary file libQt5DesignerComponents.so.5 matches
Binary file libQt5DesignerComponents.so.5.8 matches
Binary file libQt5DesignerComponents.so.5.8.0 matches

I'm not sure why it doesn't find the symbol

Best regards.
Ben

On 04/12/2018 10:38, benta...@chez.com wrote:


This is not perfect, this is what's left to do :
- 64bits keepassxc and libargon2
- autotype doesn't work, option (menu entries, shortcut) not present

libargon2 compiles out of the box
https://github.com/P-H-C/phc-winner-argon2

cmake :
- cmake linker flags -lsocket -lnsl -lrt -lresolv
- cmake didn't find QT5 config utilities, I had to point it to the 
directory
- did compilation with GCC7 but I think default GCC6 should work as 
well

- due to GCC7, I added -I /usr/gcc/7/include/c++/7.3.0 to CXX_FLAGS

keepassxc patch :
 cut here 
--- src/totp/totp.cpp   2018-08-23 03:25:04.0 +
+++ src/totp/totp.cpp.mod   2018-12-04 09:09:32.413168641 +
@@ -164,7 +164,7 @@
direction = 1;
startpos = 0;

}
-quint32 digitsPower = pow(encoder.alphabet.size(), digits);
+quint32 digitsPower = pow(double (encoder.alphabet.size()), 
digits);


quint64 password = binary % digitsPower;
QString retval(int(digits), encoder.alphabet[0]);
 cut here 

Best regards.
Ben

On 04/12/2018 09:29, Till Wegmüller wrote:


Nice work.

I would also be interested in it.

Could you Publish a patch or put a makefile into OI Userland?

Thanks and Greetings
Till
On 12/03/18 09:28 PM, benta...@chez.com wrote:

Thanks Bob and Alexander, I think I start to understand.

grep digits ../../src/totp/totp.cpp
[...]
quint8 digits = encoder.digits == 0 ? numDigits : encoder.digits;
[...]

From my 30 years old rusty knowledge of C++, this mean that digits is
supposed to be a 'quint8' which is most probably QT version of the 
'int'
and as Bob noticed the pow function expects 'int', 'float', or 
'double'


From Alexander reference, I should have
quint32 digitsPower = pow(encoder.alphabet.size(), int(digits));

In that particular case it was 'encoder.alphabet.size()'  which 
appeared

ambiguous, using 'double (encoder.alphabet.size())' made it. 'digits'
was ok so far

Bottom line is I could compile and execute it, it is nice to have it
native (works with wine).

Thanks both of you.
Best regards.
Ben

On 04/12/2018 03:21, Bob Friesenhahn wrote:

On Mon, 3 Dec 2018, benta...@chez.com wrote:

Hello,
'static QString Totp::generateTotp(QByteArray, quint64, quint8,
quint8)':
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call
of overloaded 'pow(int, quint8&)' is ambiguous
quint32 digitsPower = pow(encoder.alphabet.size(), digits);

What is the declared storage type of the 'digits' argument?  From
reading the header, it appears that it must be of type 'int', 'float',
or 'double'.  Any other type would require a type transformation which
might be ambiguous.

Bob


___
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss


Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2018-12-03 Thread bentahyr

This is not perfect, this is what's left to do :
- 64bits keepassxc and libargon2
- autotype doesn't work, option (menu entries, shortcut) not present

libargon2 compiles out of the box
https://github.com/P-H-C/phc-winner-argon2

cmake :
- cmake linker flags -lsocket -lnsl -lrt -lresolv
- cmake didn't find QT5 config utilities, I had to point it to the 
directory

- did compilation with GCC7 but I think default GCC6 should work as well
- due to GCC7, I added -I /usr/gcc/7/include/c++/7.3.0 to CXX_FLAGS

keepassxc patch :
 cut here 
--- src/totp/totp.cpp   2018-08-23 03:25:04.0 +
+++ src/totp/totp.cpp.mod   2018-12-04 09:09:32.413168641 +
@@ -164,7 +164,7 @@
 direction = 1;
 startpos = 0;

}
-quint32 digitsPower = pow(encoder.alphabet.size(), digits);
+quint32 digitsPower = pow(double (encoder.alphabet.size()), 
digits);


 quint64 password = binary % digitsPower;
 QString retval(int(digits), encoder.alphabet[0]);
 cut here 

Best regards.
Ben

On 04/12/2018 09:29, Till Wegmüller wrote:


Nice work.

I would also be interested in it.

Could you Publish a patch or put a makefile into OI Userland?

Thanks and Greetings
Till
On 12/03/18 09:28 PM, benta...@chez.com wrote:

Thanks Bob and Alexander, I think I start to understand.

grep digits ../../src/totp/totp.cpp
[...]
quint8 digits = encoder.digits == 0 ? numDigits : encoder.digits;
[...]

From my 30 years old rusty knowledge of C++, this mean that digits is
supposed to be a 'quint8' which is most probably QT version of the 
'int'

and as Bob noticed the pow function expects 'int', 'float', or 'double'

From Alexander reference, I should have
quint32 digitsPower = pow(encoder.alphabet.size(), int(digits));

In that particular case it was 'encoder.alphabet.size()'  which 
appeared

ambiguous, using 'double (encoder.alphabet.size())' made it. 'digits'
was ok so far

Bottom line is I could compile and execute it, it is nice to have it
native (works with wine).

Thanks both of you.
Best regards.
Ben

On 04/12/2018 03:21, Bob Friesenhahn wrote:

On Mon, 3 Dec 2018, benta...@chez.com wrote:

Hello,
'static QString Totp::generateTotp(QByteArray, quint64, quint8,
quint8)':
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call
of overloaded 'pow(int, quint8&)' is ambiguous
quint32 digitsPower = pow(encoder.alphabet.size(), digits);

What is the declared storage type of the 'digits' argument?  From
reading the header, it appears that it must be of type 'int', 'float',
or 'double'.  Any other type would require a type transformation which
might be ambiguous.

Bob


___
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss

___
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss

___
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss


Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2018-12-03 Thread Till Wegmüller
Nice work.

I would also be interested in it.

Could you Publish a patch or put a makefile into OI Userland?

Thanks and Greetings
Till
On 12/03/18 09:28 PM, benta...@chez.com wrote:
> Thanks Bob and Alexander, I think I start to understand.
> 
> grep digits ../../src/totp/totp.cpp
> [...]
> quint8 digits = encoder.digits == 0 ? numDigits : encoder.digits;
> [...]
> 
> From my 30 years old rusty knowledge of C++, this mean that digits is
> supposed to be a 'quint8' which is most probably QT version of the 'int'
> and as Bob noticed the pow function expects 'int', 'float', or 'double'
> 
> From Alexander reference, I should have
> quint32 digitsPower = pow(encoder.alphabet.size(), int(digits));
> 
> In that particular case it was 'encoder.alphabet.size()'  which appeared
> ambiguous, using 'double (encoder.alphabet.size())' made it. 'digits'
> was ok so far
> 
> Bottom line is I could compile and execute it, it is nice to have it
> native (works with wine).
> 
> Thanks both of you.
> Best regards.
> Ben
> 
> On 04/12/2018 03:21, Bob Friesenhahn wrote:
> 
>> On Mon, 3 Dec 2018, benta...@chez.com wrote:
>>
>>> Hello,
>>> 'static QString Totp::generateTotp(QByteArray, quint64, quint8,
>>> quint8)':
>>> /home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call
>>> of overloaded 'pow(int, quint8&)' is ambiguous
>>> quint32 digitsPower = pow(encoder.alphabet.size(), digits);
>>
>> What is the declared storage type of the 'digits' argument?  From
>> reading the header, it appears that it must be of type 'int', 'float',
>> or 'double'.  Any other type would require a type transformation which
>> might be ambiguous.
>>
>> Bob
> 
> ___
> openindiana-discuss mailing list
> openindiana-discuss@openindiana.org
> https://openindiana.org/mailman/listinfo/openindiana-discuss

___
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss


Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2018-12-03 Thread bentahyr

Thanks Bob and Alexander, I think I start to understand.

grep digits ../../src/totp/totp.cpp
[...]
quint8 digits = encoder.digits == 0 ? numDigits : encoder.digits;
[...]

From my 30 years old rusty knowledge of C++, this mean that digits is 
supposed to be a 'quint8' which is most probably QT version of the 'int' 
and as Bob noticed the pow function expects 'int', 'float', or 'double'


From Alexander reference, I should have
quint32 digitsPower = pow(encoder.alphabet.size(), int(digits));

In that particular case it was 'encoder.alphabet.size()'  which appeared 
ambiguous, using 'double (encoder.alphabet.size())' made it. 'digits' 
was ok so far


Bottom line is I could compile and execute it, it is nice to have it 
native (works with wine).


Thanks both of you.
Best regards.
Ben

On 04/12/2018 03:21, Bob Friesenhahn wrote:


On Mon, 3 Dec 2018, benta...@chez.com wrote:


Hello,
'static QString Totp::generateTotp(QByteArray, quint64, quint8, 
quint8)':
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call of 
overloaded 'pow(int, quint8&)' is ambiguous

quint32 digitsPower = pow(encoder.alphabet.size(), digits);


What is the declared storage type of the 'digits' argument?  From 
reading the header, it appears that it must be of type 'int', 'float', 
or 'double'.  Any other type would require a type transformation which 
might be ambiguous.


Bob


___
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss


Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2018-12-03 Thread Bob Friesenhahn

On Mon, 3 Dec 2018, benta...@chez.com wrote:


Hello,
'static QString Totp::generateTotp(QByteArray, quint64, quint8, quint8)':
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call of 
overloaded 'pow(int, quint8&)' is ambiguous

quint32 digitsPower = pow(encoder.alphabet.size(), digits);


What is the declared storage type of the 'digits' argument?  From 
reading the header, it appears that it must be of type 'int', 'float', 
or 'double'.  Any other type would require a type transformation which 
might be ambiguous.


Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/
Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt

___
openindiana-discuss mailing list
openindiana-discuss@openindiana.org
https://openindiana.org/mailman/listinfo/openindiana-discuss


Re: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

2018-12-02 Thread Alexander Pyhalov via openindiana-discuss
Hi.

Code likely needs some casts, like in 
https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/library/webkitgtk/patches/03-functions-ambiguity.patch

С уважением,
Александр Пыхалов,
программист отдела телекоммуникационной инфраструктуры
управления информационно-коммуникационной инфраструктуры ЮФУ



От: benta...@chez.com 
Отправлено: 3 декабря 2018 г. 6:07:34
Кому: openindiana-discuss@openindiana.org
Тема: [OpenIndiana-discuss] Compiling KeepassXC on Hipster

Hello,

I'm trying to compile KeepassXC from source using gcc-7 but I fall onto
the following issue :

[ 53%] Building CXX object
src/CMakeFiles/keepassx_core.dir/totp/totp.cpp.o
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp: In static member
function 'static QString Totp::generateTotp(QByteArray, quint64, quint8,
quint8)':
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call of
overloaded 'pow(int, quint8&)' is ambiguous
  quint32 digitsPower = pow(encoder.alphabet.size(), digits);
   ^
In file included from /usr/include/math.h:32:0,
  from /usr/gcc/7/include/c++/7.3.0/bits/std_abs.h:40,
  from /usr/gcc/7/include/c++/7.3.0/cstdlib:77,
  from /usr/gcc/7/include/c++/7.3.0/bits/stl_algo.h:59,
  from /usr/gcc/7/include/c++/7.3.0/algorithm:62,
  from /usr/lib/qt/5.8/include/QtCore/qglobal.h:108,
  from /home/ben/tmp/keepassxc-2.3.4/src/totp/totp.h:22,
  from
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:19:
/usr/include/iso/math_iso.h:84:15: note: candidate: double
std::pow(double, double)
  extern double pow __P((double, double));
^~~
/usr/include/iso/math_iso.h:161:16: note: candidate: double
std::pow(double, int)
   inline double pow(double __X, int __Y) { return
 ^~~
/usr/include/iso/math_iso.h:181:15: note: candidate: float
std::pow(float, float)
   inline float pow(float __X, float __Y) { return __powf(__X, __Y); }
^~~
/usr/include/iso/math_iso.h:182:15: note: candidate: float
std::pow(float, int)
   inline float pow(float __X, int __Y) { return
^~~
/usr/include/iso/math_iso.h:212:21: note: candidate: long double
std::pow(long double, long double)
   inline long double pow(long double __X, long double __Y) { return
  ^~~
/usr/include/iso/math_iso.h:214:21: note: candidate: long double
std::pow(long double, int)
   inline long double pow(long double __X, int __Y) { return
  ^~~
gmake[2]: *** [src/CMakeFiles/keepassx_core.dir/build.make:1545:
src/CMakeFiles/keepassx_core.dir/totp/totp.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:230:
src/CMakeFiles/keepassx_core.dir/all] Error 2
gmake: *** [Makefile:141: all] Error 2

I think KeepassXC code expect pow coming from
/usr/gcc/7/include/c++/7.3.0/complex.h rather than
/usr/include/iso/math_iso.h

I tried to shuffle around the -I on the compiler command line but it
doesn't seem to have any impact

Compile command is :

cd /home/franck/tmp/keepassxc-2.3.4/build/src && /usr/bin/g++-7
-DKEEPASSX_BUILDING_CORE -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB
-DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG
-DQT_NO_EXCEPTIONS -DQT_STRICT_ITERATORS -DQT_WIDGETS_LIB
-I/home/franck/tmp/keepassxc-2.3.4/build/src/keepassx_core_autogen/include
-I/home/franck/tmp/keepassxc-2.3.4/src
-I/home/franck/tmp/keepassxc-2.3.4/build/src
-I/home/franck/tmp/keepassxc-2.3.4/src/zxcvbn -isystem
/usr/lib/qt/5.8/include -isystem /usr/lib/qt/5.8/include/QtCore -isystem
/usr/lib/qt/5.8/./mkspecs/solaris-g++ -isystem
/usr/lib/qt/5.8/include/QtWidgets -isystem /usr/lib/qt/5.8/include/QtGui
-isystem /usr/lib/qt/5.8/include/QtNetwork -isystem
/usr/lib/qt/5.8/include/QtConcurrent -isystem
/usr/lib/qt/5.8/include/QtDBus -fno-common -Wall -Wextra -Wundef
-Wpointer-arith -Wno-long-long -Wformat=2 -Wmissing-format-attribute
-fvisibility=hidden -fvisibility-inlines-hidden -fstack-protector-strong
-fno-exceptions -fno-rtti -Wnon-virtual-dtor -Wold-style-cast
-Woverloaded-virtual -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
-Werror=format-security -Wcast-align -std=c++11 -O3 -DNDEBUG   -fPIC
-std=gnu++11 -o CMakeFiles/keepassx_core.dir/totp/totp.cpp.o -c
/home/franck/tmp/keepassxc-2.3.4/src/totp/totp.cppEPASSX_BUILDING_CORE
-DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB
-DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS
-DQT_STRICT_ITERATORS -DQT_WIDGETS_LIB -I/usr/gcc/7/include/c++/7.3.0
-I/home/franck/tmp/keepassxc-2.3.4/build/src/keepassx_core_autogen/include
-I/home/franck/tmp/keepassxc-2.3.4/src
-I/home/franck/tmp/keepassxc-2.3.4/build/src
-I/home/franck/tmp/keepassxc-2.3.4/src/zxcvbn -isystem
/usr/lib/qt/5.8/include -isystem /usr/lib/qt/5.8/include/QtCore -isystem
/usr/lib/qt/5.8/./mkspecs/solaris-g++ -isystem