Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems installing #949

Open
martinber opened this issue Jan 22, 2023 · 0 comments
Open

Problems installing #949

martinber opened this issue Jan 22, 2023 · 0 comments

Comments

@martinber
Copy link

Hello, I'm trying to install rugged in Termux for Android and I'm having problems:

Running gem install rugged, or downloading the github repo and running gem install -g produces:

LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib /data/data/com.termux/files/usr/bin/make
[  0%] Building C object deps/http-parser/CMakeFiles/http-parser.dir/http_parser.c.o
[  0%] Built target http-parser
[  0%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_byte_order.c.o
[  1%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_chartables.c.o
[  1%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_compile.c.o
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/pcre/pcre_compile.c:4558:7: warning: variable 'class_has_8bitchar' set but not used [-Wunused-but-set-variable]
  int class_has_8bitchar;
      ^
1 warning generated.
[  2%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_config.c.o
[  2%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_dfa_exec.c.o
[  3%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_exec.c.o
[  3%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_fullinfo.c.o
[  4%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_get.c.o
[  4%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_globals.c.o
[  5%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_jit_compile.c.o
[  5%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_maketables.c.o
[  6%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_newline.c.o
[  6%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_ord2utf8.c.o
[  7%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_refcount.c.o
[  7%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_string_utils.c.o
[  8%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_study.c.o
[  8%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_tables.c.o
[  9%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_ucd.c.o
[  9%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_valid_utf8.c.o
[ 10%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_version.c.o
[ 10%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_xclass.c.o
[ 11%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcreposix.c.o
[ 11%] Built target pcre
[ 11%] Building C object deps/ntlmclient/CMakeFiles/ntlmclient.dir/ntlm.c.o
[ 12%] Building C object deps/ntlmclient/CMakeFiles/ntlmclient.dir/util.c.o
[ 12%] Building C object deps/ntlmclient/CMakeFiles/ntlmclient.dir/unicode_builtin.c.o
[ 13%] Building C object deps/ntlmclient/CMakeFiles/ntlmclient.dir/crypt_openssl.c.o
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:130:35: warning: 'DES_set_key' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.des_set_key_fn = DES_set_key;
                                         ^
/data/data/com.termux/files/usr/include/openssl/des.h:185:1: note: 'DES_set_key' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:131:39: warning: 'DES_ecb_encrypt' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.des_ecb_encrypt_fn = DES_ecb_encrypt;
                                             ^
/data/data/com.termux/files/usr/include/openssl/des.h:104:1: note: 'DES_ecb_encrypt' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:135:36: warning: 'HMAC_CTX_new' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.hmac_ctx_new_fn = HMAC_CTX_new;
                                          ^
/data/data/com.termux/files/usr/include/openssl/hmac.h:33:1: note: 'HMAC_CTX_new' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 HMAC_CTX *HMAC_CTX_new(void);
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:136:37: warning: 'HMAC_CTX_free' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.hmac_ctx_free_fn = HMAC_CTX_free;
                                           ^
/data/data/com.termux/files/usr/include/openssl/hmac.h:35:1: note: 'HMAC_CTX_free' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx);
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:137:38: warning: 'HMAC_CTX_reset' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.hmac_ctx_reset_fn = HMAC_CTX_reset;
                                            ^
/data/data/com.termux/files/usr/include/openssl/hmac.h:34:1: note: 'HMAC_CTX_reset' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int HMAC_CTX_reset(HMAC_CTX *ctx);
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:139:36: warning: 'HMAC_Init_ex' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.hmac_init_ex_fn = HMAC_Init_ex;
                                          ^
/data/data/com.termux/files/usr/include/openssl/hmac.h:43:1: note: 'HMAC_Init_ex' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:140:35: warning: 'HMAC_Update' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.hmac_update_fn = HMAC_Update;
                                         ^
/data/data/com.termux/files/usr/include/openssl/hmac.h:45:1: note: 'HMAC_Update' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data,
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:141:34: warning: 'HMAC_Final' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.hmac_final_fn = HMAC_Final;
                                        ^
/data/data/com.termux/files/usr/include/openssl/hmac.h:47:1: note: 'HMAC_Final' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 int HMAC_Final(HMAC_CTX *ctx, unsigned char *md,
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
/data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/deps/ntlmclient/crypt_openssl.c:142:27: warning: 'MD4' is deprecated [-Wdeprecated-declarations]
        ntlm->crypt_ctx.md4_fn = MD4;
                                 ^
/data/data/com.termux/files/usr/include/openssl/md4.h:53:1: note: 'MD4' has been explicitly marked deprecated here
OSSL_DEPRECATEDIN_3_0 unsigned char *MD4(const unsigned char *d, size_t n,
^
/data/data/com.termux/files/usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
#   define OSSL_DEPRECATEDIN_3_0                OSSL_DEPRECATED(3.0)
                                                ^
/data/data/com.termux/files/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
#     define OSSL_DEPRECATED(since) __attribute__((deprecated))
                                                   ^
9 warnings generated.
[ 13%] Built target ntlmclient
[ 14%] Building C object src/libgit2/CMakeFiles/libgit2.dir/annotated_commit.c.o
In file included from /data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/src/libgit2/annotated_commit.c:8:
In file included from /data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/src/libgit2/annotated_commit.h:10:
In file included from /data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/src/libgit2/common.h:10:
In file included from /data/data/com.termux/files/usr/lib/ruby/gems/3.2.0/gems/rugged-1.5.1/vendor/libgit2/src/util/git2_util.h:96:
In file included from /data/data/com.termux/files/usr/include/arpa/inet.h:32:
In file included from /data/data/com.termux/files/usr/include/netinet/in.h:45:
In file included from /data/data/com.termux/files/usr/include/linux/in.h:238:
In file included from /data/data/com.termux/files/usr/include/aarch64-linux-android/asm/byteorder.h:24:
In file included from /data/data/com.termux/files/usr/include/linux/byteorder/little_endian.h:29:
/data/data/com.termux/files/usr/include/linux/swab.h:40:8: error: unknown type name 'inline'
static inline __attribute__((__const__)) __u32 __fswahw32(__u32 val) {
       ^
/data/data/com.termux/files/usr/include/linux/swab.h:40:47: error: expected ';' after top level declarator
static inline __attribute__((__const__)) __u32 __fswahw32(__u32 val) {
                                              ^
2 errors generated.
make[2]: *** [src/libgit2/CMakeFiles/libgit2.dir/build.make:76: src/libgit2/CMakeFiles/libgit2.dir/annotated_commit.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:265: src/libgit2/CMakeFiles/libgit2.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

That looks like a problem related to the fact that I'm using clang instead of gcc maybe? or a problem with Termux and not your fault?

Then I tried running gem install -g -- --use-system-libraries and I get this:

LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib pkg-config --exists libgit2
LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib pkg-config --libs libgit2 |
=> "-L/data/data/com.termux/files/usr/lib -lgit2\n"
LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib "aarch64-linux-android-clang -o conftest -I/data/data/com.termux/files/usr/include/ruby-3.2.0/aarch64-linux-android -I/data/data/com.termux/files/usr/include/ruby-3.2.0/ruby/backward -I/data/data/com.termux/files/usr/include/ruby-3.2.0 -I.  -I/data/data/com.termux/files/usr/include   -fstack-protector-strong -Oz -fno-strict-aliasing -fdeclspec -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wundef -fPIC  -g -O3 -Wall -Wno-comment conftest.c  -L. -L/data/data/com.termux/files/usr/lib -L. -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -fopenmp -static-openmp -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -Wl,--no-as-needed,-landroid-support,--as-needed -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed     -lruby  -lm  -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return !!argv[argc];
6: }
/* end */

LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib "aarch64-linux-android-clang -o conftest -I/data/data/com.termux/files/usr/include/ruby-3.2.0/aarch64-linux-android -I/data/data/com.termux/files/usr/include/ruby-3.2.0/ruby/backward -I/data/data/com.termux/files/usr/include/ruby-3.2.0 -I.  -I/data/data/com.termux/files/usr/include   -fstack-protector-strong -Oz -fno-strict-aliasing -fdeclspec -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wundef -fPIC  -g -O3 -Wall -Wno-comment conftest.c  -L. -L/data/data/com.termux/files/usr/lib -L. -L/data/data/com.termux/files/usr/lib -Wl,-rpath=/data/data/com.termux/files/usr/lib -fopenmp -static-openmp -Wl,--enable-new-dtags -Wl,--as-needed -Wl,-z,relro,-z,now -Wl,--no-as-needed,-landroid-support,--as-needed -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed     -lruby -L/data/data/com.termux/files/usr/lib -lgit2 -lm  -lc"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return !!argv[argc];
6: }
/* end */

LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib pkg-config --cflags-only-I libgit2 |
=> "-I/data/data/com.termux/files/usr/include\n"
LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib pkg-config --cflags-only-other libgit2 |
=> "\n"
LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib pkg-config --libs-only-l libgit2 |
=> "-lgit2\n"
package configuration for libgit2
incflags: -I/data/data/com.termux/files/usr/include
cflags: 
ldflags: -L/data/data/com.termux/files/usr/lib
libs: -lgit2

LD_LIBRARY_PATH=.:/data/data/com.termux/files/usr/lib "aarch64-linux-android-clang -I/data/data/com.termux/files/usr/include/ruby-3.2.0/aarch64-linux-android -I/data/data/com.termux/files/usr/include/ruby-3.2.0/ruby/backward -I/data/data/com.termux/files/usr/include/ruby-3.2.0 -I. -I/data/data/com.termux/files/usr/include  -I/data/data/com.termux/files/usr/include   -fstack-protector-strong -Oz -fno-strict-aliasing -fdeclspec -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wundef -fPIC  -g -O3 -Wall -Wno-comment    -c conftest.c"
conftest.c:5:27: error: invalid token at start of a preprocessor expression
#if LIBGIT2_VER_MAJOR !=  || LIBGIT2_VER_MINOR !=
                          ^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <git2/version.h>
4: 
5: #if LIBGIT2_VER_MAJOR !=  || LIBGIT2_VER_MINOR !=
6: #error libgit2 version is not compatible
7: #endif
/* end */

This time I don't know what is happening. I have the libgit2 package installed which includes the .h headers. If I read /usr/include/git2/version.h I see that the version is 1.5.1, and the version of rugged is 1.5.1 too.

Apparently it is a problem in ext/rugged/extconf.rb. I tried to edit it but apparently my changes are not used when I run gem install again

Any ideas? Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant