Post by halfmegTell me again, why should I have to deal with hundreds of files and
directories with frequently changing files when 6 files are all that
we need to run Hercules in a DOS window?
Well.. You *CAN* do it.. But then don't expect hercules or any other POSIX
application compiled under cygwin to work as documented.
Post by halfmegAfter thinking about it a bit more, realized LIBTOOL may not be the
rotten egg I like to think of it as. More than likely it is dynamic
binaries instead of static binaries. But then you might, as you
state, create 10 copies of the exact same executable. To our way of
thinking however, CCKD2CKD.bat would be just as good if not smaller
than CCKD2CKD.EXE.LNK for use under Windows.
We could do this.. Indeed.. nothing wrong with this... That will address
issues with *your* specific hand-crafted setup...
Post by halfmegWrong.
Unzip Hercules 3.02 binaries into a single directory, add the six
CYGWIN binaries and Hercules seems to work just fine.
*seems* is the master word here... This may work *today* - and using *your*
particular setup. But should something be changed, then the transition may
be painful.. You may be lacking a DLL somewhere.. Or you may pick up the
wrong DLL.. Or you may wind up with a mixture of various DLLs from different
versions. Furthermore, cygwin defines entries in the registry.. No doubt
cygwin expects the invoking DLLs to be the ones located in the original
installation directory(ies).. (No doubt cygwin defines shared/writeable
sections for such things as IPC.. And this doesn't work with multiple DLLs,
even with the same name (same name, different DLL handles)
This also requires *duplicating* the cygwin DLLs.. We cannot ship them so
this means the DLLs have to be located from the cygwin installation and
copied to your custom directory.. You wind up with a multitude of DLLs, in
different locations.. There is also NO GUARANTEE that copying cygwin DLLs
around is a safe thing to do (I'm pretty sure if you ask the cygwin list
about something that's gone wrong because you copied cygwin DLLs to your
liking - you are likely to get either no answer (at best) - or a nasty
answer).
Also, upgrading cygwin becomes a nightmare.
You are creating a hand-crafted runtime environment.. Don't complain if
things no longer work as expected !
Post by halfmegYou do not have to have a multitude of files and directories which
turn out to be mutually exclusive or modify any paths or environment
variables if you wish to run various release versions of Hercules.
You simply use a different directory for a specific version of
Hercules and execute directly from there.
This doesn't work because
- ELF rpath (runtime path) are absolute
- Modules are loaded from an absolute path (Note : the PE executable Path is
a windowsism (that is, the path from which an executable was fetched for
execution). POSIX doesn't define anything as such - as far as I know).
Post by halfmegJust how would one unzip say, Hercules 3.01 and Hercules 3.02, in the
same environment (both seem to want to go to /usr/local) and be able
to specify which one should run at execute time?
Well, you either
- Compile hercules yourself
- Unzip hercules in a specific directory *AND* specify the absolute path
where to find the loadable modules
This is not a windows/cygwin only issue.. All platforms are affected.
Running different versions of hercules is not the average 'end-user'
concern.. However... this *could* be dealt with (but not in the way you
suggested)..
Post by halfmegPost by Ivan WarrenSo the fact that cygwin should be properly installed in not
an 'artificial' requirement, but rather a true portability
requirement - since hercules *is* a POSIX based application.
To compile Hercules from source on a Windows platform, yes, you need
to install CYGWIN. To run on a Windows platform, no, you only need a
very limited number (6) of CYGWIN files for Hercules to run. If I am
running Hercules on Windows, what need do I have to be concerned with
portability? I am an end-user dude.
If you are an end user, you are better advised NOT to hand tweak your
runtime environment !
Just like.. Oh.. I'm an end user.. I realized MS Word only need the FOO.DLL
and BAR.DLL.. So I copied those to a new directory.. How come things don't
work as stated in the documentation anymore ?
..Or..
I am an end user.. I copied ASSEMBLE MODULE to my A disk... How come can I
no longer assemble my favorite assembler program (since the last upgrade to
CMS) ?
..Or..
I am an end user... I created a copy of /lib/libc.so.6 in my home
directory.. How come bash no longer works ?
.. Or ..
I realized hercules calls cygwin.dll, which in turns calls win32.dll and
kernel32.dll, so I also copies those to my specific hercules directory.. How
come hercules now behaves strangely ?
Sorry, but these are *not* end-user behaviours.. an end-user usually doesn't
try to create a custom environment by copying around system libraries or
executables. And if he does, he is on his own !
Post by halfmegPost by Ivan WarrenSo to keep it simple : Install cygwin as documented, and go from there !
Hmmm, as an end-user, CYGWIN is only a part of my life as Hercules
requires some of it's files to run. It should not require me to
change or alter my path or any variables which may affect other
things on my system. I'm a purist, one application, one directory,
one directory delete and I can start fresh without "you have multiple
instances of cygwin1 installed on your system, search here, do this
and that and maybe we'll work for you after that, then again maybe
not" showing up because perhaps I already use CYGWIN for something
else and am attempting to install the Turnkey CD which has it's own
CYGWIN it wants to execute (sorry to bring your fine work into this
Volker, but this one seems to bite newbies frequently).
If you stick to the documented installation procedure, you don't ever have
to alter or tweak search path or configuration statements (pertaining to
your runtime environment). Only if you hand-craft your execution environment
(like copying runtime DLLs around or install hercules outside its intended
location) do you need to do so.
The Tur(n)key CD provided CYGWIN is a glitch. This comes from a time when we
had a slight different understanding of the cygwin runtime environment (and
the cygwin runtime environment *was* also different).. This will without
doubt be corrected in #4 (since 1- copying cygwin DLLs is not a supported
thing 2- because licensing prohibits distributing the cygwin runtime without
also providing the source. Volker - correct me if I am wrong)..
Post by halfmegNot asking for a pure WIN32, just tell me again why do I need
hundreds if not thousands of files when it seems I really only use 6
of them here?
If you want to be able to have all the files located in one directory, you
*CANNOT* use cygwin (because of various reasons stated above).. and this
*DOES* mean making hercules a pure Win32 application.
Post by halfmegPost by Ivan WarrenLast : Those opinions are my own and do not necesserally reflect
the opinion of the original authors, other developpers or the
community at large.
--Ivan
[1] In stock Windows, LNK are executable if they link to an
executable only when invoked from the "Shell" interface - used for
example by the windows "explorer", not when invoked using a
CreateProcess Win32 API call... TO have it work with the Win 32
createProcess function, you must specify the entire file name (that
is neither CKD2CCKD, not CKD2CCKD.EXE but CKD2CCKD.EXE.LNK).
The current configure and build checks in numerous places whether it
is defined for Windows (CYGWIN) or not IIRC. Can the "LNK" files be
turned into "BAT" which call dasdcopy if it is a Windows build?
Nothing wrong with this.. Just entirelly useless for *end users* - since
they will be installing cygwin & hercules as per documented installation
procedures - and running hercules within the proper runtime environment (at
which point, the .bat files are no longer needed).
If you have a procedure that copies the CYGWIN DLLs around, you may just as
well create your own .BAT files ! But copying the CYGWIN DLLs is just
something I would not recommend !
--Ivan
------------------------ Yahoo! Groups Sponsor --------------------~-->
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/W4wwlB/TM
--------------------------------------------------------------------~->