erlangpack / bcrypt Goto Github PK
View Code? Open in Web Editor NEWThis project forked from smarkets/erlang-bcrypt
Erlang wrapper for OpenBSD's Blowfish password hashing code
Home Page: https://hex.pm/packages/bcrypt
License: Other
This project forked from smarkets/erlang-bcrypt
Erlang wrapper for OpenBSD's Blowfish password hashing code
Home Page: https://hex.pm/packages/bcrypt
License: Other
I get this error when trying to use this on Ubuntu.
Assume there is some mismatch on underlying version of software installed, but what?
Anybody have any ideas on this?
{ok, Salt} = bcrypt:gen_salt().
** exception exit: {noproc,{gen_server,call,
[nif_pool,
{checkout,#Ref<0.199613538.3797417985.209039>,true},
5000]}}
==> bcrypt.app.src : deprecated field maintainers found
[60](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:61)
Publishing bcrypt 1.2.0 to hexpm
[61](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:62)
Description: An Erlang wrapper (NIF or port program) for the OpenBSD password scheme, bcrypt.
[62](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:63)
Dependencies:
[63](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:64)
poolboy 1.5.2
[64](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:65)
Included files:
[65](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:66)
LICENSE
[66](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:67)
README.md
[67](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:68)
c_src
[68](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:69)
c_src/Makefile
[69](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:70)
c_src/async_queue.c
[70](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:71)
c_src/async_queue.h
[71](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:72)
c_src/bcrypt.c
[72](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:73)
c_src/bcrypt_nif.c
[73](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:74)
c_src/bcrypt_nif.h
[74](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:75)
c_src/bcrypt_port.c
[75](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:76)
c_src/blowfish.c
[76](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:77)
c_src/erl_blf.h
[77](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:78)
priv
[78](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:79)
priv/.gitignore
[79](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:80)
rebar.config
[80](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:81)
rebar.lock
[81](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:82)
src
[82](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:83)
src/bcrypt.app.src
[83](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:84)
src/bcrypt.erl
[84](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:85)
src/bcrypt_app.erl
[85](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:86)
src/bcrypt_nif.erl
[86](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:87)
src/bcrypt_nif_pool_sup.erl
[87](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:88)
src/bcrypt_nif_worker.erl
[88](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:89)
src/bcrypt_pool.erl
[89](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:90)
src/bcrypt_port.erl
[90](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:91)
src/bcrypt_port_sup.erl
[91](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:92)
src/bcrypt_sup.erl
[92](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:93)
Licenses: MIT
[93](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:94)
Links:
[94](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:95)
Github: https://github.com/erlangpack/bcrypt
[95](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:96)
Build tools: rebar3
[96](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:97)
Be aware, you are publishing to the public Hexpm repository.
[97](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:98)
Before publishing, please read Hex CoC: https://hex.pm/policies/codeofconduct
[98](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:99)
===> Published bcrypt 1.2.0
[99](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:100)
===> You are using erlang/OTP '23', but this plugin requires at least erlang/OTP 24.==> bcrypt.app.src : deprecated field maintainers found
[60](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:61)
Publishing bcrypt 1.2.0 to hexpm
[61](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:62)
Description: An Erlang wrapper (NIF or port program) for the OpenBSD password scheme, bcrypt.
[62](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:63)
Dependencies:
[63](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:64)
poolboy 1.5.2
[64](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:65)
Included files:
[65](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:66)
LICENSE
[66](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:67)
README.md
[67](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:68)
c_src
[68](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:69)
c_src/Makefile
[69](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:70)
c_src/async_queue.c
[70](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:71)
c_src/async_queue.h
[71](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:72)
c_src/bcrypt.c
[72](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:73)
c_src/bcrypt_nif.c
[73](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:74)
c_src/bcrypt_nif.h
[74](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:75)
c_src/bcrypt_port.c
[75](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:76)
c_src/blowfish.c
[76](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:77)
c_src/erl_blf.h
[77](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:78)
priv
[78](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:79)
priv/.gitignore
[79](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:80)
rebar.config
[80](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:81)
rebar.lock
[81](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:82)
src
[82](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:83)
src/bcrypt.app.src
[83](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:84)
src/bcrypt.erl
[84](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:85)
src/bcrypt_app.erl
[85](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:86)
src/bcrypt_nif.erl
[86](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:87)
src/bcrypt_nif_pool_sup.erl
[87](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:88)
src/bcrypt_nif_worker.erl
[88](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:89)
src/bcrypt_pool.erl
[89](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:90)
src/bcrypt_port.erl
[90](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:91)
src/bcrypt_port_sup.erl
[91](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:92)
src/bcrypt_sup.erl
[92](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:93)
Licenses: MIT
[93](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:94)
Links:
[94](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:95)
Github: https://github.com/erlangpack/bcrypt
[95](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:96)
Build tools: rebar3
[96](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:97)
Be aware, you are publishing to the public Hexpm repository.
[97](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:98)
Before publishing, please read Hex CoC: https://hex.pm/policies/codeofconduct
[98](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:99)
===> Published bcrypt 1.2.0
[99](https://github.com/erlangpack/bcrypt/actions/runs/4294120289/jobs/7482709138#step:4:100)
===> You are using erlang/OTP '23', but this plugin requires at least erlang/OTP 24.
See: zotonic/zotonic#2472
Main issue is that types like u_int32_t
are not defined.
Due to the way bcrypt is compiled on a Mac, the result is always a x86_64 build, even though the underlying erlang system is build for arm_64.
Check if we can use:
https://github.com/openbsd/src/blob/master/lib/libc/crypt/bcrypt.c
and
https://github.com/openbsd/src/blob/master/lib/libc/crypt/blowfish.c
See also #22
Hello!
Is there a way to reconfigure this library at runtime? It seems that the application env is read when the process pool is started so future changes to the configuration do not get used.
Thanks,
Louis
===> Compiling bcrypt
make: Entering directory '/home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src'
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-11.2/include/ -I /usr/lib/erlang/lib/erl_interface-4.0.2/include -c -o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt_port.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt_port.c
In file included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33:0,
from /usr/include/stdio.h:27,
from /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt_port.c:17:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-11.2/include/ -I /usr/lib/erlang/lib/erl_interface-4.0.2/include -c -o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt_nif.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt_nif.c
In file included from /usr/include/assert.h:35:0,
from /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt_nif.c:17:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-11.2/include/ -I /usr/lib/erlang/lib/erl_interface-4.0.2/include -c -o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.c
In file included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33:0,
from /usr/include/stdio.h:27,
from /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.c:48:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
/home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.c: In function �encode_salt�:
/home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.c:137:31: warning: �__builtin___snprintf_chk� output may be truncated before the last format character [-Wformat-truncation=]
snprintf(salt + 4, 4, "%2.2u$", logr);
^
In file included from /usr/include/stdio.h:862:0,
from /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.c:48:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: �__builtin___snprintf_chk� output between 4 and 5 bytes into a destination of size 4
return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__bos (__s), __fmt, __va_arg_pack ());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.c: In function �ts_bcrypt�:
/home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.c:241:36: warning: �__builtin___snprintf_chk� output may be truncated before the last format character [-Wformat-truncation=]
snprintf(encrypted + i, 4, "%2.2u$", logr);
^
In file included from /usr/include/stdio.h:862:0,
from /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.c:48:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: �__builtin___snprintf_chk� output between 4 and 5 bytes into a destination of size 4
return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__bos (__s), __fmt, __va_arg_pack ());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-11.2/include/ -I /usr/lib/erlang/lib/erl_interface-4.0.2/include -c -o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/async_queue.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/async_queue.c
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:25:0,
from /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/async_queue.h:36,
from /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/async_queue.c:32:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-11.2/include/ -I /usr/lib/erlang/lib/erl_interface-4.0.2/include -c -o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/blowfish.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/blowfish.c
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:25:0,
from /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/blowfish.c:47:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
cc /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt_port.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt_nif.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/bcrypt.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/async_queue.o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/blowfish.o -shared -L /usr/lib/erlang/lib/erl_interface-4.0.2/lib -lei -lpthread -o /home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src/../priv/bcrypt_nif.so
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_BSD_SOURCE -fPIC -I /usr/lib/erlang/erts-11.2/include/ -I /usr/lib/erlang/lib/erl_interface-4.0.2/include bcrypt_port.o bcrypt.o blowfish.o -L /usr/lib/erlang/lib/erl_interface-4.0.2/lib -lei -lpthread -o ../priv/bcrypt
make: Leaving directory '/home/drasko/erlang/zenith/zenith/_build/default/lib/bcrypt/c_src'
I have Erlang 24.2 installed, and I'm getting linker errors when building bcrypt
:
make
/usr/bin/rebar3 compile
===> Verifying dependencies...
===> Fetching poolboy v1.5.2
===> Analyzing applications...
===> Compiling poolboy
make[1]: Entering directory '/home/whitelynx/Development/Other/bcrypt/c_src'
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_DEFAULT_SOURCE -fPIC -I /usr/lib/erlang/erts-12.2/include/ -I /usr/lib/erlang/lib/erl_interface-5.1/include -c -o bcrypt_port.o bcrypt_port.c
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_DEFAULT_SOURCE -fPIC -I /usr/lib/erlang/erts-12.2/include/ -I /usr/lib/erlang/lib/erl_interface-5.1/include -c -o blowfish.o blowfish.c
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_DEFAULT_SOURCE -fPIC -I /usr/lib/erlang/erts-12.2/include/ -I /usr/lib/erlang/lib/erl_interface-5.1/include -c -o bcrypt_nif.o bcrypt_nif.c
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_DEFAULT_SOURCE -fPIC -I /usr/lib/erlang/erts-12.2/include/ -I /usr/lib/erlang/lib/erl_interface-5.1/include -c -o bcrypt.o bcrypt.c
bcrypt.c: In function ‘encode_salt’:
bcrypt.c:137:38: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
137 | snprintf(salt + 4, 4, "%2.2u$", logr);
| ^
bcrypt.c:137:9: note: ‘snprintf’ output between 4 and 5 bytes into a destination of size 4
137 | snprintf(salt + 4, 4, "%2.2u$", logr);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bcrypt.c: In function ‘ts_bcrypt’:
bcrypt.c:241:43: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
241 | snprintf(encrypted + i, 4, "%2.2u$", logr);
| ^
bcrypt.c:241:9: note: ‘snprintf’ output between 4 and 5 bytes into a destination of size 4
241 | snprintf(encrypted + i, 4, "%2.2u$", logr);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_DEFAULT_SOURCE -fPIC -I /usr/lib/erlang/erts-12.2/include/ -I /usr/lib/erlang/lib/erl_interface-5.1/include -c -o async_queue.o async_queue.c
cc ./bcrypt_port.o ./blowfish.o ./bcrypt_nif.o ./bcrypt.o ./async_queue.o -shared -L /usr/lib/erlang/lib/erl_interface-5.1/lib -lei -lpthread -o ./../priv/bcrypt_nif.so
cc -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes -D_DEFAULT_SOURCE -fPIC -I /usr/lib/erlang/erts-12.2/include/ -I /usr/lib/erlang/lib/erl_interface-5.1/include bcrypt_port.o bcrypt.o blowfish.o -L /usr/lib/erlang/lib/erl_interface-5.1/lib -lei -lpthread -o ../priv/bcrypt
/usr/bin/ld: bcrypt_port.o: in function `process_reply':
bcrypt_port.c:(.text+0x5a): undefined reference to `ei_x_new_with_version'
/usr/bin/ld: bcrypt_port.c:(.text+0x6f): undefined reference to `ei_x_encode_tuple_header'
/usr/bin/ld: bcrypt_port.c:(.text+0x82): undefined reference to `ei_x_encode_long'
/usr/bin/ld: bcrypt_port.c:(.text+0x9f): undefined reference to `ei_x_encode_binary'
/usr/bin/ld: bcrypt_port.c:(.text+0x164): undefined reference to `ei_x_free'
/usr/bin/ld: bcrypt_port.o: in function `process_error_reply':
bcrypt_port.c:(.text+0x1ea): undefined reference to `ei_x_new_with_version'
/usr/bin/ld: bcrypt_port.c:(.text+0x1ff): undefined reference to `ei_x_encode_tuple_header'
/usr/bin/ld: bcrypt_port.c:(.text+0x212): undefined reference to `ei_x_encode_long'
/usr/bin/ld: bcrypt_port.c:(.text+0x225): undefined reference to `ei_x_encode_atom'
/usr/bin/ld: bcrypt_port.c:(.text+0x2f4): undefined reference to `ei_x_free'
/usr/bin/ld: bcrypt_port.o: in function `loop':
bcrypt_port.c:(.text+0x482): undefined reference to `ei_decode_version'
/usr/bin/ld: bcrypt_port.c:(.text+0x49d): undefined reference to `ei_decode_tuple_header'
/usr/bin/ld: bcrypt_port.c:(.text+0x4c0): undefined reference to `ei_decode_long'
/usr/bin/ld: bcrypt_port.c:(.text+0x4d6): undefined reference to `ei_decode_tuple_header'
/usr/bin/ld: bcrypt_port.c:(.text+0x501): undefined reference to `ei_get_type'
/usr/bin/ld: bcrypt_port.c:(.text+0x538): undefined reference to `ei_decode_binary'
/usr/bin/ld: bcrypt_port.c:(.text+0x55a): undefined reference to `ei_decode_long'
/usr/bin/ld: bcrypt_port.c:(.text+0x5a9): undefined reference to `ei_get_type'
/usr/bin/ld: bcrypt_port.c:(.text+0x5db): undefined reference to `ei_decode_binary'
/usr/bin/ld: bcrypt_port.o: in function `main':
bcrypt_port.c:(.text.startup+0x5): undefined reference to `ei_init'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:70: ../priv/bcrypt] Error 1
make[1]: Leaving directory '/home/whitelynx/Development/Other/bcrypt/c_src'
===> Hook for compile failed!
make: *** [Makefile:9: compile] Error 1
drasko@Mando:~/erlang/abstract$ make
make[1]: Entering directory '/home/drasko/erlang/abstract/deps/bcrypt'
CC=cc make -C c_src
make[2]: Entering directory '/home/drasko/erlang/abstract/deps/bcrypt/c_src'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/drasko/erlang/abstract/deps/bcrypt/c_src'
cc -o priv/bcrypt_drv.so c_src/async_queue.o c_src/bcrypt.o c_src/bcrypt_nif.o c_src/bcrypt_port.o c_src/blowfish.o -L "/usr/lib/erlang/lib/erl_interface-4.0.1/lib" -lerl_interface -lei -shared
/usr/bin/ld: cannot find -lerl_interface
collect2: error: ld returned 1 exit status
make[2]: *** [c_src/Makefile.erlang.mk:21: priv/bcrypt_drv.so] Error 1
make[1]: *** [Makefile:27: pre-app] Error 2
make[1]: Leaving directory '/home/drasko/erlang/abstract/deps/bcrypt'
make: *** [erlang.mk:4441: deps] Error 2
Erlang version:
drasko@Mando:~/erlang/abstract$ erl
Erlang/OTP 23 [erts-11.1.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V11.1.3 (abort with ^G)
1>
@Licenser and @siepkes we have released 1.1.0 - but I now realize that our new Makefile
(based on erlang-mk) does not include any special options for Solaris or SmartOS.
UNAME_SYS := $(shell uname -s)
ifeq ($(UNAME_SYS), Darwin)
CC ?= cc
CFLAGS ?= -O3 -std=c99 -arch x86_64 -Wall -Wmissing-prototypes
LDFLAGS ?= -arch x86_64 -flat_namespace -undefined suppress
DRV_LDFLAGS = -flat_namespace -undefined suppress $(ERL_LDFLAGS)
else ifeq ($(UNAME_SYS), FreeBSD)
CC ?= cc
CFLAGS ?= -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes
DRV_LDFLAGS = $(ERL_LDFLAGS)
else ifeq ($(UNAME_SYS), Linux)
CC ?= gcc
CFLAGS ?= -O3 -std=c99 -finline-functions -Wall -Wmissing-prototypes
DRV_LDFLAGS = $(ERL_LDFLAGS)
endif
Could you have a look?
experience if missing C compiler dependencies is not very good.
After someone setups for elixir development, this is the experience:
==> bcrypt_elixir
could not compile dependency :bcrypt_elixir, "mix compile" failed. Errors may have been logged above.
There's no errors above. that is all the output. And this is a essential beginner step from the official guide.
I not that familiar with erl/rebar development but i can help if guided.
OTP 23 deprecated erl_interface and this package now fails with:
===> Compiling /Users/codeadict/dev/bcrypt/c_src/bcrypt_port.c
===> /Users/codeadict/dev/bcrypt/c_src/bcrypt_port.c:20:10: fatal error: 'erl_interface.h' file not found
#include <erl_interface.h>
^~~~~~~~~~~~~~~~~
1 error generated.
Would you consider a 1.1.5
release for Hex to incorporate #26?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.