lynx-dev
[Top][All Lists]
Advanced

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

lynx-dev Building the latest devel release of lynx on OS/2


From: Ilya Zakharevich
Subject: lynx-dev Building the latest devel release of lynx on OS/2
Date: Wed, 18 Nov 1998 03:26:12 -0500 (EST)

Short summary: To build on OS/2 is possible, not deadly hard, but
hard, and there are many bugs (some patches included).  I'm not on
lynx-dev mailing list, so try to include me if you reply.

(I did not try to build with configure-as-shipped, but applied my
fixer to obvious problems in autoconf-generate scripts.  Get one from
   ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/convert_configure.pl
)

Successfully compiled (without gettext) with

   configure.cmd --with-screen=ncurses  --enable-persistent-cookies=yes \
        --enable-color-style=yes --enable-default-colors=yes \
        --enable-gzip-help=yes --enable-externs=yes --enable-gzip-help=yes \
        --prefix=f:/emx.add  |& tee 00c5

(Edit ./Makefile to comment 'cd po' command, and set INSTALL_* to cp)

   make CC=gcc HOSTCC=gcc
   make install
   make install-help

(Fails due to 'mkdir f:', but next time succeeds):

   make install-help

Extended comments:

a) Makefile in ./po assumes that ':' is a directory separator;
=========================================================
b) Makefile in ./po assumes that msgfmt is present 
        (Possible solution: in the main Makefile disable descending
                into ./po if msgfmt not present);
=========================================================
c) A lot of options in configure --help list unreadable defaults, like
        DirEd, partial-display etc.
        It is a double negative problem?  I cannot understand why

--disable-dired          enable optional directory-editor, DirEd (default: on)

        results in

checking if directory-editor code should be used... yes

        Does it mean (default: enable)?  Maybe 

                    disable optional directory-editor, DirEd (default: enabled)

        would be better.
=========================================================
d) --disable-extended-dtd (in --help) is not valid at all
=========================================================
e) I did not find it stated what are "the most user-friendly" options
        to Configure.
   I found the options stated above, do not know where this is good enough.
=========================================================
f) A lot of messages like 
        ../cfg_defs.h:212: warning: unknown escape sequence `\U'
=========================================================
g) How to set SYSTEM_MAIL=sendmail (it is present on PATH)?
=========================================================
h) The patch below enables gunzip on system without hardlinks:

--- configure~  Tue Nov 17 06:20:42 1998
+++ configure   Tue Nov 17 17:58:44 1998
@@ -4061,6 +4061,9 @@ else
   test -z "$ac_cv_path_UNCOMPRESS" && ac_cv_path_UNCOMPRESS="$UNCOMPRESS"
   ;;
 esac
+fi
+if test "$ac_cv_path_UNCOMPRESS" = gunzip -a "$GZIP" != "gzip"; then
+  ac_cv_path_UNCOMPRESS="$GZIP -d"
 fi
 UNCOMPRESS="$ac_cv_path_UNCOMPRESS"
 if test -n "$UNCOMPRESS"; then
=========================================================
i) A non-portable construct is used (does not work with pdksh),
   here is -x trace:

+ eval 'ac_maketemp="make"'
+ ac_maketemp="make"
configure.cmd: ac_maketemp="make": not found
=========================================================
j) HELP_FILE may be written to lynx.cfg without a slash, like
   HELPFILE:file://localhostf:/emx.add/lib/lynx_help/lynx_help_main.html.gz

(note no / between localhost and f:).
=========================================================
h) Big compressed help files did not work.  There must be better ways
   to do this, but the following patches fixes things:

--- ./WWW/Library/Implementation/HTFile.c~      Tue Nov 10 14:47:38 1998
+++ ./WWW/Library/Implementation/HTFile.c       Wed Nov 18 02:25:58 1998
@@ -2204,7 +2204,13 @@ PUBLIC int HTLoadFile ARGS4(
 */
 #endif /* HAVE_READDIR */
        {
+#  ifdef __EMX__
+           int len = strlen(localname);
+           int bin = ((len > 3) && !strcasecomp(localname + len - 3, ".gz"));
+           FILE * fp = fopen(localname, (bin ? "rb" : "r"));
+#  else        /* !( defined __EMX__ ) */ 
            FILE * fp = fopen(localname, "r");
+#  endif
 
            CTRACE (tfp, "HTLoadFile: Opening `%s' gives %p\n",
                                 localname, (void*)fp);
=========================================================
k) In fact compressed files-support requires that the decompression
   program contains backslashes in its name.  Again, the solution
   below may be not that universal, but it works, and allows lynx
   coexist with non-Unixish shells:

--- ./src/LYUtils.c~    Mon Nov 16 17:59:26 1998
+++ ./src/LYUtils.c     Wed Nov 18 02:56:38 1998
@@ -6039,6 +6039,7 @@ PUBLIC int LYSystem ARGS1(
        char *, command)
 {
     int code;
+    int do_free = 0;
 
     fflush(stdout);
     fflush(stderr);
@@ -6051,6 +6052,29 @@ PUBLIC int LYSystem ARGS1(
 #ifdef VMS
     code = DCLsystem(command);
 #else
+#  ifdef __EMX__                       /* XXXX Should be LY_CONVERT_SLASH? */
+    /* Configure writes commands which contain direct slashes.
+       Native command-(non)-shell will not tolerate this. */
+    {
+       char *space = command, *slash = command;
+       while (*space && *space != ' ' && *space != '\t')
+           space++;
+       while (slash < space && *slash != '/')
+           slash++;
+       if (slash != space) {
+           char *old = command;
+
+           command = NULL;
+           StrAllocCopy(command, old);
+           do_free = 1;
+           slash = (slash - old) + command - 1;
+           space = (space - old) + command;
+           while (++slash < space)
+               if (*slash == '/') 
+                   *slash = '\\';
+       }
+    }
+#  endif
     code = system(command);
 #endif
 
@@ -6062,6 +6086,8 @@ PUBLIC int LYSystem ARGS1(
     fflush(stdout);
     fflush(stderr);
 
+    if (do_free)
+       FREE(command);
     return code;
 }
 
=========================================================
l)  -use_mouse option works, but USE_MOUSE: TRUE directive in lynx config
    file does not.
=========================================================
m) Mouse supports kinda works, but is very primitive.  Mouse does not
   work in popup-menus (for selection), I get a wrong behaviour if
   there are two input fields on the same row, and cannot
   mouse-navigate *inside* an input field.

   Is it "works as it can", or a problem with EMX port?

Ilya

reply via email to

[Prev in Thread] Current Thread [Next in Thread]