Comments (28)
Please note this ticket and see if you can fix some of these issues in our current master branch.
from amissl.
@jens-maus OPENSSL_cleanup() was in pretty much the right place and did not crash here - maybe something else was broken which you have since fixed. I moved it to the more technically correct position though.
Regarding AmiSSLAbort(), this was used only in SAS/C as far as I can tell. When linking AmiSSL.library abort() and _XCEXIT() were mapped to call AmiSSLAbort(). The OpenSSL code used to rely on abort() a fair bit. Not sure what happened with the OS4 port to be honest. OpenSSL has been cleaned up since then though. I see somebody added libcmt/abort.c, which essentially replaces AmiSSLAbort(), and probably abort() should actually call OPENSSL_showfatal() (which itself replaced OpenSSLDie()).
from amissl.
OK, forget the last bit - OPENSSL_die() calls OPENSSL_showfatal() and abort(). Probably the only change required is to just remove AmiSSLAbort, which is no longer required.
from amissl.
Ok, thanks for the explanation. This makes sense. Thus I removed AmiSSLAbort() now completely. Also thanks for the OpenSSL_cleanup() fix. So only a few things remain apart from general cleanup, etc.
from amissl.
Regarding IIntuition/BIO_vsnprintf in amisslmaster.library, it links fine here without them. It would only have been an issue if fprintf() was being used somewhere, which it isn't. Perhaps you had some debug code somewhere (in libcmt() perhaps)?
from amissl.
Well, here I am still getting a linker error like:
$ make -j1 OS=os4
[...]
LD build_os4/amisslmaster.library
./build_os4/libcmt/libcmt.a(fprintf.o): In function `fprintf':
fprintf.c:19: undefined reference to `BIO_vsnprintf'
fprintf.c:29: undefined reference to `IIntuition'
fprintf.c:29: undefined reference to `IIntuition'
collect2: ld returned 1 exit status
Makefile:448: recipe for target 'build_os4/amisslmaster.library' failed
When compiling without debug framework (make -j1 OS=os4 DEBUG=
) it works, though. However, it is strange since I think I never used fprintf() directly?!?! So the question really is where does this fprintf() come from??!
from amissl.
assert-->abort-->perror-->fprintf
Not sure on the ideal solution - also need to consider OPENSSL_die() which displays an error itself before calling abort() which displays another error.
from amissl.
Ok, but what wonders me is that assert() should normally be eeplaced by ASSERT() of our own debug framework and I dunno why this redefinition of assert() doesn't work (look at debug.h)
from amissl.
Yes, but the ASSERT() macro calls abort()
from amissl.
Have a look for my latest changes, I think I found a proper way to deal with that by simply using vsnprintf() directly (which we have now in libcmt) and also opening intuition.library in amisslmaster directly.
from amissl.
Yes, looks OK to me - that was one solution I was thinking of, but was unsure of the state of vsnprintf and whether you perhaps wanted to redirect the abort() output to kprintf() in debug builds. So, I'm happy to go with what you think is best. Hopefully, it is code that will never get called anyway.
from amissl.
@tboeckel
Can you please take care of point 7 (make release) of our todo list?
from amissl.
Please note that point 6 (travis support) has been integrated.
from amissl.
Has point 7 actually been started? I can look into this, but I don't want to start if somebody else already has and hasn't committed the changes.
from amissl.
I shall start work modifying the installer script if there are no objections? I'll use something like your codesets library installer as a reference. Which OS versions will be supported in the initial release - just OS3 and OS4?
from amissl.
No objections from my side. Just go ahead.
from amissl.
Ok. How about the install location? It was always the case that the libs went in AmiSSL:Libs and certs in AmiSSL:Certs where AmiSSL: could be chosen by the user in the installer. However, the version that shipped with OS4 had the libs in LIBS: and AmiSSL: was assigned to DEVS:AmiSSL as it was integrated as a system component. Which way do you think we should go for v4?
from amissl.
After thinking about this some more, do we even need the AmiSSL: assign at all? Would it be better to install the libs in LIBS: on all systems, like on OS4, instead of allowing the user to choose to install elsewhere?
However, applications do need to know where to find the certs... Perhaps amisslmaster.library could set the assign or we could add an API call(s) so apps can obtain the drawer. Or apps could be changed to use DEVS:AmiSSL/certs instead of AmiSSL:certs.
Also, not sure if DEVS:AmiSSL was the best place to put the certs - perhaps they should be moved to LIBS: AmiSSL?
from amissl.
What about DEVS:Internet/certs?
It should be available on all AMigaOS derivates(?)...and other programs (YAM, browsers?) could make use of this general path in future versions without putting their own versions (probably even outdated) in other places (easier to keep track of updates too).
imho
from amissl.
Back from a short skiing vacation I think that we shouldn't touch the default locations for the global certificates, library locations, etc. at this time. The locations are unfortunately different for all the different AmigaOS incarnations, however, they are somehow fixed now. Thus, OS4 puts the libs directly to LIBS: while on OS3 AmiSSL was always relative to the AmiSSL: assign. The same goes for the global certificate directory. Changing this behaviour now would IMHO just make things more complicated.
@Futaura It would be great if you could work on getting the installer script in a state that it actually works on all platforms. I simply lack the time for that. This, and the missing make release
target is actually the last minor thing why there haven't been any new AmiSSLv4 release yet. Technically AmiSSLv4 should be at a state to actually release it to the public. So just have a look at the current installer script (https://github.com/jens-maus/amissl/blob/master/dist/Install-AmiSSL). So looking forward to your changes.
from amissl.
I guess that kind of makes sense, especially where backwards compatibility is concerned, although maintaining a different Installation layout for OS4 itself complicates matters. Anyway, the installer is pretty much done.
What about the SDK? Are we going to include all the developer files in the release archive instead of maintaining a separate archive like before?
from amissl.
@Futaura Ok, then please checkin your changed installer script ASAP and do your changes incremental rather than checkin in thousand of lines of changes at once.
And yes, one file fits it all. We are in 2017 now, so all people should be able to handle a multiple MB large file where the SDK is always shipped with.
from amissl.
Sorry - I was adding it right after I posted my message, but I had trouble with simplegit not being able to push. Not sure what broke, but it took me this long to figure out a workaround. Install script is there now.
from amissl.
Perfect, then we just need someone taking care of the make release
target which will compile+construct a full lha distribution archive in one run and then also have some people testing this archive and your installer script.
from amissl.
I can take a look at that - I could probably take care of most of it, but you'll probably need to tweak it a little for your build environment.
from amissl.
I could help with testing at the very least... Sorry I can't help more at the moment, I'm in the middle of a few other projects (but I've been monitoring this one closely). :)
from amissl.
I've added a 'make release' target now: e84ef9f
It is in by no means finished and the script is completely untested so may contain typos, but it is a start. Some things left to take care of are icons and stripping the binaries. Also unsure of whether to release the autoinit libs - the old SDK did have them for OS4 only (newlib and clib2 versions).
from amissl.
Thanks to @Futaura for the make release and installer script. I did some final latest modifications to both and are about to release 4.0 ASAP.
from amissl.
Related Issues (20)
- Cannot compile SDL example
- 64bit arguments passing with 68k .library ABI HOT 2
- openssl/asn1.h header redefinitions in Storm C 4 HOT 5
- Update installer to allow installation even while AmiSSL is in use HOT 8
- Optional installation of include? HOT 3
- vbcc proto/inline issues HOT 7
- Random generator init is very slow HOT 11
- OpenSSL speed output order issue when redirected HOT 15
- 68000 version missing HOT 7
- OpenSSL 3.0 / AmiSSL v5 HOT 8
- const const in header files HOT 2
- interfaces/amissl.h:4320:73: error: duplicate βconstβ HOT 1
- libamisslstubs.a missing a few stubs HOT 15
- AmiSSL version defines mismatches HOT 5
- Split Installer
- AMISSL_INLINE_H doesn't fully work with the 5.x SDK's HOT 12
- Big SSL/TLS connect performance regression in AmiSSL 5.x HOT 25
- FTPS stops working with ZitaFTP Server from version 5.4 HOT 13
- Example https Crashes on Vanilla AmigaOS v3.2 Installation on WinUAE HOT 3
- PatchWork Reports InitSemaphore "Structure Is Not Cleared" HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from amissl.