[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Build tarsnap on cygwin



To support installing libraries in my home directory, I have this in my
~/.profile

export LD_LIBRARY_PATH=$HOME/.local/lib::$LD_LIBRARY_PATH
export C_INCLUDE_PATH=$HOME/.local/include/:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$HOME/.local/include/:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=$HOME/.local/lib/:$LIBRARY_PATH
export PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig/:$PKG_CONFIG_PATH

They won't all be relevant to this case, but there's no harm in adding all
these lines to a startup file.  Of course, replace $HOME/.local/lib/ with
/usr/local/ in your case.

Cheers,
- Graham Percival

On Mon, Apr 08, 2019 at 11:55:40AM -0400, Bryan Harris wrote:
> Hi all,
> 
> I attempted to build tarsnap on cygwin, but it complained about not finding
> OpenSSL. After trying various cygwin packages that looked like they provided
> it, I did a google search and found a person whose solution was to
> download/build/install OpenSSL from source code.
> 
> When I did that I ran into an OpenSSL bug[1] but they fixed it and now it
> builds and installs (or so it says).
> 
> Unfortunately, tarsnap still says it can't find OpenSSL. Is there an option
> I can give to tarsnap to tell it that it should be looking for OpenSSL in
> /usr/local/ instead of the standard place? Or is there any other advice for
> building tarsnap on cygwin when it says it can't find OpenSSL?
> 
> When I look at the config.log, it complains about gcc .... -lcrypto where it
> can't find crypto. When I look for it, I see it in the location
> /usr/local/lib/libcrypto.a and libcrypto.dll.a.
> 
> $ find /usr/local/ | grep crypto
> /usr/local/bin/cygcrypto-3.dll
> /usr/local/include/openssl/crypto.h
> /usr/local/include/openssl/cryptoerr.h
> *** this one *** /usr/local/lib/libcrypto.a
> *** this one *** /usr/local/lib/libcrypto.dll.a
> /usr/local/lib/pkgconfig/libcrypto.pc
> /usr/local/share/doc/openssl/html/man3/ERR_load_crypto_strings.html
> /usr/local/share/doc/openssl/html/man3/OPENSSL_init_crypto.html
> /usr/local/share/doc/openssl/html/man7/crypto.html
> /usr/local/share/man/man3/ERR_load_crypto_strings.3
> /usr/local/share/man/man3/OPENSSL_init_crypto.3
> /usr/local/share/man/man7/crypto.7
> 
> Any ideas or suggestions greatly appreciated.
> 
> V/r,
> Bryan
> 
> [1] - https://github.com/openssl/openssl/issues/8684
> 
> PS - Here are relevant lines from configure and config.log.
> 
> $ ./configure
> checking build system type... x86_64-unknown-cygwin
> checking host system type... x86_64-unknown-cygwin
> checking target system type... x86_64-unknown-cygwin
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
> checking for gawk... gawk
> checking whether make sets $(MAKE)... yes
> checking whether make supports nested variables... yes
> checking for style of include used by make... GNU
> checking for gcc... gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.exe
> checking for suffix of executables... .exe
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking whether gcc understands -c and -o together... yes
> checking dependency style of gcc... gcc3
> checking for gcc option to accept ISO C99... none needed
> checking for ranlib... ranlib
> checking for strip... strip
> checking how to run the C preprocessor... gcc -E
> checking for grep that handles long lines and -e... /usr/bin/grep
> checking for egrep... /usr/bin/grep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking minix/config.h usability... no
> checking minix/config.h presence... no
> checking for minix/config.h... no
> checking whether it is safe to define __EXTENSIONS__... yes
> checking whether to enable maintainer-specific portions of Makefiles... no
> checking for ANSI C header files... (cached) yes
> checking for dirent.h that defines DIR... yes
> checking for library containing opendir... none required
> checking for sys/wait.h that is POSIX.1 compatible... yes
> checking acl/libacl.h usability... yes
> checking acl/libacl.h presence... yes
> checking for acl/libacl.h... yes
> checking attr/xattr.h usability... yes
> checking attr/xattr.h presence... yes
> checking for attr/xattr.h... yes
> checking ctype.h usability... yes
> checking ctype.h presence... yes
> checking for ctype.h... yes
> checking err.h usability... yes
> checking err.h presence... yes
> checking for err.h... yes
> checking errno.h usability... yes
> checking errno.h presence... yes
> checking for errno.h... yes
> checking fcntl.h usability... yes
> checking fcntl.h presence... yes
> checking for fcntl.h... yes
> checking grp.h usability... yes
> checking grp.h presence... yes
> checking for grp.h... yes
> checking for inttypes.h... (cached) yes
> checking langinfo.h usability... yes
> checking langinfo.h presence... yes
> checking for langinfo.h... yes
> checking limits.h usability... yes
> checking limits.h presence... yes
> checking for limits.h... yes
> checking linux/fs.h usability... no
> checking linux/fs.h presence... no
> checking for linux/fs.h... no
> checking locale.h usability... yes
> checking locale.h presence... yes
> checking for locale.h... yes
> checking paths.h usability... yes
> checking paths.h presence... yes
> checking for paths.h... yes
> checking poll.h usability... yes
> checking poll.h presence... yes
> checking for poll.h... yes
> checking pwd.h usability... yes
> checking pwd.h presence... yes
> checking for pwd.h... yes
> checking regex.h usability... yes
> checking regex.h presence... yes
> checking for regex.h... yes
> checking signal.h usability... yes
> checking signal.h presence... yes
> checking for signal.h... yes
> checking stdarg.h usability... yes
> checking stdarg.h presence... yes
> checking for stdarg.h... yes
> checking for stdint.h... (cached) yes
> checking for stdlib.h... (cached) yes
> checking for string.h... (cached) yes
> checking sys/acl.h usability... yes
> checking sys/acl.h presence... yes
> checking for sys/acl.h... yes
> checking sys/extattr.h usability... no
> checking sys/extattr.h presence... no
> checking for sys/extattr.h... no
> checking sys/ioctl.h usability... yes
> checking sys/ioctl.h presence... yes
> checking for sys/ioctl.h... yes
> checking sys/mkdev.h usability... no
> checking sys/mkdev.h presence... no
> checking for sys/mkdev.h... no
> checking sys/param.h usability... yes
> checking sys/param.h presence... yes
> checking for sys/param.h... yes
> checking sys/poll.h usability... yes
> checking sys/poll.h presence... yes
> checking for sys/poll.h... yes
> checking sys/select.h usability... yes
> checking sys/select.h presence... yes
> checking for sys/select.h... yes
> checking sys/time.h usability... yes
> checking sys/time.h presence... yes
> checking for sys/time.h... yes
> checking sys/utime.h usability... yes
> checking sys/utime.h presence... yes
> checking for sys/utime.h... yes
> checking time.h usability... yes
> checking time.h presence... yes
> checking for time.h... yes
> checking for unistd.h... (cached) yes
> checking utime.h usability... yes
> checking utime.h presence... yes
> checking for utime.h... yes
> checking wchar.h usability... yes
> checking wchar.h presence... yes
> checking for wchar.h... yes
> checking wctype.h usability... yes
> checking wctype.h presence... yes
> checking for wctype.h... yes
> checking windows.h usability... yes
> checking windows.h presence... yes
> checking for windows.h... yes
> checking for clock_gettime in -lrt... yes
> checking for clock_gettime... yes
> checking sys/sysinfo.h usability... yes
> checking sys/sysinfo.h presence... yes
> checking for sys/sysinfo.h... yes
> checking for sysinfo... yes
> checking for struct sysinfo... yes
> checking for struct sysinfo.totalram... yes
> checking for struct sysinfo.mem_unit... yes
> checking for sys/mount.h... yes
> checking for sys/statfs.h... yes
> checking for sys/statvfs.h... yes
> checking for sys/vfs.h... yes
> checking sys/sysctl.h usability... no
> checking sys/sysctl.h presence... no
> checking for sys/sysctl.h... no
> checking for struct statfs.f_fstypename... no
> checking for struct statfs.f_type... yes
> checking for struct statvfs.f_fstypename... no
> checking for struct statvfs.f_basetype... no
> checking linux/magic.h usability... no
> checking linux/magic.h presence... no
> checking for linux/magic.h... no
> checking zlib.h usability... yes
> checking zlib.h presence... yes
> checking for zlib.h... yes
> checking for inflate in -lz... yes
> checking openssl/rsa.h usability... yes
> checking openssl/rsa.h presence... yes
> checking for openssl/rsa.h... yes
> checking for RSA_private_encrypt in -lcrypto... no
> configure: error: *** OpenSSL missing ***
> 
> Relevant lines from config.log:
> 
> configure:6227: checking openssl/rsa.h usability
> configure:6227: gcc -c -g -O2  conftest.c >&5
> configure:6227: $? = 0
> configure:6227: result: yes
> configure:6227: checking openssl/rsa.h presence
> configure:6227: gcc -E  conftest.c
> configure:6227: $? = 0
> configure:6227: result: yes
> configure:6227: checking for openssl/rsa.h
> configure:6227: result: yes
> configure:6229: checking for RSA_private_encrypt in -lcrypto
> configure:6254: gcc -o conftest.exe -g -O2   conftest.c -lcrypto -lz -lrt 
> >&5
> /usr/lib/gcc/x86_64-pc-cygwin/7.4.0/../../../../x86_64-pc-cygwin/bin/ld:
> cannot find -lcrypto
> collect2: error: ld returned 1 exit status
> configure:6254: $? = 1
> configure: failed program was:
> | /* confdefs.h */
> | #define PACKAGE_NAME "tarsnap"
> | #define PACKAGE_TARNAME "tarsnap"
> | #define PACKAGE_VERSION "1.0.39"
> | #define PACKAGE_STRING "tarsnap 1.0.39"
> | #define PACKAGE_BUGREPORT "cperciva@tarsnap.com"
> | #define PACKAGE_URL ""
> | #define PACKAGE "tarsnap"
> | #define VERSION "1.0.39"
> | #define LIBARCHIVE_VERSION_STRING "2.7.0"
> | #define LIBARCHIVE_VERSION_NUMBER "2007000"
>