sebastinas / yafc

Yafc is yet another ftp client (with some handy features)
Other
45 stars 16 forks source link

Configure error on 64-bit Cygwin #41

Closed thorstenkampe closed 10 years ago

thorstenkampe commented 10 years ago

What can I do about the following error? Can I disable a feature or a package?

checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking whether IUCLC is declared... yes
checking whether TCGETS is declared... no
checking whether TIOCGETA is declared... no
configure: error: TCGETS and TIOCGETA are not available
sebastinas commented 10 years ago

If you don't have TCGETS and TIOCGETA available, you can try to build yafc against OpenSSL.

thorstenkampe commented 10 years ago

configure succeeded after installing the devel packages for libssh, openssl and readline. Unfortunately make now fails:

make  all-recursive
make[1]: Entering directory '/cygdrive/f/yafc-1.3.4'
Making all in doc
make[2]: Entering directory '/cygdrive/f/yafc-1.3.4/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/cygdrive/f/yafc-1.3.4/doc'
Making all in po
make[2]: Entering directory '/cygdrive/f/yafc-1.3.4/po'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/cygdrive/f/yafc-1.3.4/po'
make[2]: Entering directory '/cygdrive/f/yafc-1.3.4'
depbase=`echo src/main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -std=gnu99 -DLOCALEDIR=\"/usr/local/share/locale\" -DSYSCONFDIR=\"/usr/local/etc\" -DHAVE_CONFIG_H -I.     -I./src -I./lib -I./src/ftp -I./src/libmhe -I/usr/include -I/usr/include -I/usr/include  -g -O2 -MT src/main.o -MD -MP -MF $depbase.Tpo -c -o src/main.o src/main.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from src/main.c:13:0:
src/syshdr.h:165:21: error: redefinition of typedef 'rl_completion_func_t' with different type
 typedef CPPFunction rl_completion_func_t;
                     ^
In file included from /usr/include/readline/readline.h:36:0,
                 from src/syshdr.h:136,
                 from src/main.c:13:
/usr/include/readline/rltypedefs.h:51:16: note: previous declaration of 'rl_completion_func_t' was here
 typedef char **rl_completion_func_t PARAMS((const char *, int, int));
                ^
Makefile:831: recipe for target 'src/main.o' failed
make[2]: *** [src/main.o] Error 1
make[2]: Leaving directory '/cygdrive/f/yafc-1.3.4'
Makefile:874: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/cygdrive/f/yafc-1.3.4'
Makefile:562: recipe for target 'all' failed
make: *** [all] Error 2
sebastinas commented 10 years ago

Which version of readline is this? Looks like #38 again.

thorstenkampe commented 10 years ago

libreadline-devel 6.2-1

thorstenkampe commented 10 years ago

The readline patch fixes the readline issue. Further during compilation I get:

src/ftp/socket.c: In Funktion »sock_clearerr_in«:
src/ftp/socket.c:195:33: Fehler: dem Makro »clearerr« wurden 2 Argumente übergeben, aber es nimmt nur 1
     sockp->clearerr(sockp, false);
                                 ^
src/ftp/socket.c: In Funktion »sock_clearerr_out«:
src/ftp/socket.c:201:32: Fehler: dem Makro »clearerr« wurden 2 Argumente übergeben, aber es nimmt nur 1
     sockp->clearerr(sockp, true);
                                ^

The error means that the macro was called with two arguments but it only accepts one.

sebastinas commented 10 years ago

Does 1361111 help?

thorstenkampe commented 10 years ago

Yes, compilation works fine now. Unfortunately, make install-strip results in

make[4]: Entering directory '/cygdrive/f/yafc-1.3.4'
 /usr/bin/mkdir -p '/usr/local/bin'
  /bin/sh /home/thorsten/install-sh -c -s yafc.exe '/usr/local/bin'
/bin/sh: /home/thorsten/install-sh: No such file or directory
Makefile:616: recipe for target 'install-binPROGRAMS' failed
make[4]: *** [install-binPROGRAMS] Error 127
make[4]: Leaving directory '/cygdrive/f/yafc-1.3.4'
Makefile:1176: recipe for target 'install-am' failed

make install works fine, though.

sebastinas commented 10 years ago

The path to install-sh looks weird. ./autogen.sh should get you a copy of install-sh in /cygdrive/f/yafc-1.3.4/support. There is also a copy of install-sh in the tarball in the same location. I wonder where the path is coming from.

thorstenkampe commented 10 years ago

I'd consider this solved. It would be great if the requirements for Cygwin would find their way into the documentation and the patches their way into a new release.

By the way: how can I "patch" my local source directory with the updates from GitHub? I downloaded the ZIP file but there was no configure script. So I had to do all the patching manually.

sebastinas commented 10 years ago

If you have glib, automake and autoconf installed, you can just run ./autogen.sh from the git checkout to get configure and friends.

thorstenkampe commented 10 years ago

...and pkg-config...