From 1960eebc2d021ecf5ffc3f6d4e935d54aa592c72 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Tue, 22 Apr 2008 22:53:53 +0000 Subject: Added support for running on Symbian OS. --- packages/Makefile.am | 2 +- packages/Symbian/bwins/libcurlu.def | 58 ++++++++++++++++++++++++++++++ packages/Symbian/eabi/libcurlu.def | 58 ++++++++++++++++++++++++++++++ packages/Symbian/group/bld.inf | 7 ++++ packages/Symbian/group/curl.iby | 13 +++++++ packages/Symbian/group/curl.mmp | 23 ++++++++++++ packages/Symbian/group/libcurl.iby | 12 +++++++ packages/Symbian/group/libcurl.mmp | 32 +++++++++++++++++ packages/Symbian/readme.txt | 71 +++++++++++++++++++++++++++++++++++++ 9 files changed, 275 insertions(+), 1 deletion(-) create mode 100644 packages/Symbian/bwins/libcurlu.def create mode 100644 packages/Symbian/eabi/libcurlu.def create mode 100644 packages/Symbian/group/bld.inf create mode 100644 packages/Symbian/group/curl.iby create mode 100644 packages/Symbian/group/curl.mmp create mode 100644 packages/Symbian/group/libcurl.iby create mode 100644 packages/Symbian/group/libcurl.mmp create mode 100644 packages/Symbian/readme.txt (limited to 'packages') diff --git a/packages/Makefile.am b/packages/Makefile.am index 2ab707752..df5f7c263 100644 --- a/packages/Makefile.am +++ b/packages/Makefile.am @@ -3,5 +3,5 @@ SUBDIRS = Win32 Linux Solaris EPM DOS AIX vms EXTRA_DIST = README NetWare/get_ver.awk OS400/ccsidcurl.c OS400/ccsidcurl.h \ OS400/curl.inc.in OS400/initscript.sh OS400/makefile.sh OS400/make-include.sh \ OS400/make-lib.sh OS400/make-src.sh OS400/make-tests.sh OS400/os400sys.c \ -OS400/os400sys.h OS400/README.OS400 +OS400/os400sys.h OS400/README.OS400 Symbian diff --git a/packages/Symbian/bwins/libcurlu.def b/packages/Symbian/bwins/libcurlu.def new file mode 100644 index 000000000..0536096e9 --- /dev/null +++ b/packages/Symbian/bwins/libcurlu.def @@ -0,0 +1,58 @@ +EXPORTS + curl_easy_cleanup @ 1 NONAME + curl_easy_duphandle @ 2 NONAME + curl_easy_escape @ 3 NONAME + curl_easy_getinfo @ 4 NONAME + curl_easy_init @ 5 NONAME + curl_easy_pause @ 6 NONAME + curl_easy_perform @ 7 NONAME + curl_easy_reset @ 8 NONAME + curl_easy_setopt @ 9 NONAME + curl_easy_strerror @ 10 NONAME + curl_easy_unescape @ 11 NONAME + curl_escape @ 12 NONAME + curl_formadd @ 13 NONAME + curl_formfree @ 14 NONAME + curl_formget @ 15 NONAME + curl_free @ 16 NONAME + curl_getdate @ 17 NONAME + curl_getenv @ 18 NONAME + curl_global_cleanup @ 19 NONAME + curl_global_init @ 20 NONAME + curl_global_init_mem @ 21 NONAME + curl_maprintf @ 22 NONAME + curl_mfprintf @ 23 NONAME + curl_mprintf @ 24 NONAME + curl_msnprintf @ 25 NONAME + curl_msprintf @ 26 NONAME + curl_multi_add_handle @ 27 NONAME + curl_multi_assign @ 28 NONAME + curl_multi_cleanup @ 29 NONAME + curl_multi_fdset @ 30 NONAME + curl_multi_info_read @ 31 NONAME + curl_multi_init @ 32 NONAME + curl_multi_perform @ 33 NONAME + curl_multi_remove_handle @ 34 NONAME + curl_multi_setopt @ 35 NONAME + curl_multi_socket @ 36 NONAME + curl_multi_socket_action @ 37 NONAME + curl_multi_socket_all @ 38 NONAME + curl_multi_strerror @ 39 NONAME + curl_multi_timeout @ 40 NONAME + curl_mvaprintf @ 41 NONAME + curl_mvfprintf @ 42 NONAME + curl_mvprintf @ 43 NONAME + curl_mvsnprintf @ 44 NONAME + curl_mvsprintf @ 45 NONAME + curl_share_cleanup @ 46 NONAME + curl_share_init @ 47 NONAME + curl_share_setopt @ 48 NONAME + curl_share_strerror @ 49 NONAME + curl_slist_append @ 50 NONAME + curl_slist_free_all @ 51 NONAME + curl_strequal @ 52 NONAME + curl_strnequal @ 53 NONAME + curl_unescape @ 54 NONAME + curl_version @ 55 NONAME + curl_version_info @ 56 NONAME + diff --git a/packages/Symbian/eabi/libcurlu.def b/packages/Symbian/eabi/libcurlu.def new file mode 100644 index 000000000..0536096e9 --- /dev/null +++ b/packages/Symbian/eabi/libcurlu.def @@ -0,0 +1,58 @@ +EXPORTS + curl_easy_cleanup @ 1 NONAME + curl_easy_duphandle @ 2 NONAME + curl_easy_escape @ 3 NONAME + curl_easy_getinfo @ 4 NONAME + curl_easy_init @ 5 NONAME + curl_easy_pause @ 6 NONAME + curl_easy_perform @ 7 NONAME + curl_easy_reset @ 8 NONAME + curl_easy_setopt @ 9 NONAME + curl_easy_strerror @ 10 NONAME + curl_easy_unescape @ 11 NONAME + curl_escape @ 12 NONAME + curl_formadd @ 13 NONAME + curl_formfree @ 14 NONAME + curl_formget @ 15 NONAME + curl_free @ 16 NONAME + curl_getdate @ 17 NONAME + curl_getenv @ 18 NONAME + curl_global_cleanup @ 19 NONAME + curl_global_init @ 20 NONAME + curl_global_init_mem @ 21 NONAME + curl_maprintf @ 22 NONAME + curl_mfprintf @ 23 NONAME + curl_mprintf @ 24 NONAME + curl_msnprintf @ 25 NONAME + curl_msprintf @ 26 NONAME + curl_multi_add_handle @ 27 NONAME + curl_multi_assign @ 28 NONAME + curl_multi_cleanup @ 29 NONAME + curl_multi_fdset @ 30 NONAME + curl_multi_info_read @ 31 NONAME + curl_multi_init @ 32 NONAME + curl_multi_perform @ 33 NONAME + curl_multi_remove_handle @ 34 NONAME + curl_multi_setopt @ 35 NONAME + curl_multi_socket @ 36 NONAME + curl_multi_socket_action @ 37 NONAME + curl_multi_socket_all @ 38 NONAME + curl_multi_strerror @ 39 NONAME + curl_multi_timeout @ 40 NONAME + curl_mvaprintf @ 41 NONAME + curl_mvfprintf @ 42 NONAME + curl_mvprintf @ 43 NONAME + curl_mvsnprintf @ 44 NONAME + curl_mvsprintf @ 45 NONAME + curl_share_cleanup @ 46 NONAME + curl_share_init @ 47 NONAME + curl_share_setopt @ 48 NONAME + curl_share_strerror @ 49 NONAME + curl_slist_append @ 50 NONAME + curl_slist_free_all @ 51 NONAME + curl_strequal @ 52 NONAME + curl_strnequal @ 53 NONAME + curl_unescape @ 54 NONAME + curl_version @ 55 NONAME + curl_version_info @ 56 NONAME + diff --git a/packages/Symbian/group/bld.inf b/packages/Symbian/group/bld.inf new file mode 100644 index 000000000..efba26b3b --- /dev/null +++ b/packages/Symbian/group/bld.inf @@ -0,0 +1,7 @@ +// +// libcurl and curl bld.inf file for Symbian OS +// + +PRJ_MMPFILES + libcurl.mmp + curl.mmp diff --git a/packages/Symbian/group/curl.iby b/packages/Symbian/group/curl.iby new file mode 100644 index 000000000..33eac4ad6 --- /dev/null +++ b/packages/Symbian/group/curl.iby @@ -0,0 +1,13 @@ +// +// curl file transfer utility command-line utility +// + +#ifndef CURL_IBY +#define CURL_IBY + +#include +#include + +file=ABI_DIR\BUILD_DIR\curl.exe System\Programs\curl.exe + +#endif // CURL_IBY diff --git a/packages/Symbian/group/curl.mmp b/packages/Symbian/group/curl.mmp new file mode 100644 index 000000000..6fbaf995e --- /dev/null +++ b/packages/Symbian/group/curl.mmp @@ -0,0 +1,23 @@ +// +// cURL network retrieval client +// + +TARGET curl.exe +TARGETTYPE exe +UID 0x00000000 0x10206442 + +SOURCEPATH ..\..\..\src +SOURCE \ + main.c hugehelp.c urlglob.c writeout.c writeenv.c \ + getpass.c homedir.c curlutil.c + +SYSTEMINCLUDE ..\..\..\include ..\..\..\lib ..\..\..\include\curl \ + \epoc32\include \epoc32\include\stdapis + +LIBRARY euser.lib libc.lib libcurl.lib +STATICLIBRARY libcrt0.lib + +CAPABILITY ALL -Tcb + +EPOCSTACKSIZE 0x18000 + diff --git a/packages/Symbian/group/libcurl.iby b/packages/Symbian/group/libcurl.iby new file mode 100644 index 000000000..6ea4fbb9f --- /dev/null +++ b/packages/Symbian/group/libcurl.iby @@ -0,0 +1,12 @@ +// +// libcurl file transfer DLL +// + +#ifndef LIBCURL_IBY +#define LIBCURL_IBY + +#include + +file=ABI_DIR\BUILD_DIR\libcurl.dll System\Libs\libcurl.dll + +#endif diff --git a/packages/Symbian/group/libcurl.mmp b/packages/Symbian/group/libcurl.mmp new file mode 100644 index 000000000..75f572dab --- /dev/null +++ b/packages/Symbian/group/libcurl.mmp @@ -0,0 +1,32 @@ +// +// libcurl.dll cURL network retrieval client library +// + +TARGET libcurl.dll +TARGETTYPE dll +UID 0x1000008d 0x10206D00 + +MACRO BUILDING_LIBCURL=1 + +SOURCEPATH ..\..\..\lib +SOURCE \ + file.c timeval.c base64.c hostip.c progress.c formdata.c \ + cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \ + ldap.c ssluse.c version.c getenv.c escape.c mprintf.c telnet.c \ + netrc.c getinfo.c transfer.c strequal.c easy.c security.c krb4.c \ + krb5.c memdebug.c http_chunks.c strtok.c connect.c llist.c hash.c \ + multi.c content_encoding.c share.c http_digest.c md5.c \ + http_negotiate.c http_ntlm.c inet_pton.c strtoofft.c strerror.c \ + hostares.c hostasyn.c hostip4.c hostip6.c hostsyn.c hostthre.c \ + inet_ntop.c parsedate.c select.c gtls.c sslgen.c tftp.c splay.c \ + strdup.c socks.c ssh.c nss.c qssl.c + +USERINCLUDE ..\..\..\lib + +SYSTEMINCLUDE ..\..\..\include ..\..\..\include\curl \ + \epoc32\include\stdapis \epoc32\include + +LIBRARY euser.lib libc.lib +CAPABILITY ALL -Tcb + +EPOCALLOWDLLDATA diff --git a/packages/Symbian/readme.txt b/packages/Symbian/readme.txt new file mode 100644 index 000000000..5ce85eada --- /dev/null +++ b/packages/Symbian/readme.txt @@ -0,0 +1,71 @@ +Curl on Symbian OS +================== +This is a basic port of curl and libcurl to Symbian OS. The port is +a straightforward one using Symbian's P.I.P.S. POSIX compatibility +layer. A more complete port would involve writing a Symbian C++ binding, +or wrapping libcurl as a Symbian application server with a C++ API to +handle requests from client applications and creating a GUI application +to allow file transfers. The author has no current plans to do so. + +This means that integration with standard Symbian OS programs can be +tricky, since libcurl isn't designed with Symbian's native asynchronous +message passing idioms in mind. However, it may be possible to use libcurl +in an active object-based application through libcurl's multi interface. +The port is most easily used when porting POSIX applications to Symbian +OS using P.I.P.S. + +libcurl is built as a standard Symbian ordinal-linked DLL, and curl is +built as a text mode EXE application. They have not been Symbian +Signed, which is required in order to install them on most phones. + +Following are some things to keep in mind when using this port. + +curl notes +---------- +When starting curl in the Windows emulator from the Windows command-line, +place a double-dash -- before the first curl command-line option. +e.g. \epoc32\release\winscw\udeb\curl -- -v http://localhost/ +Failure to do so may mean that some of your options won't be correctly +processed. + +Symbian OS does not provide for redirecting the standard I/O streams, so +stdin always comes from the keyboard and stdout always goes to the +console; stderr is thrown away. The standard curl options -o, --stderr +and --trace-ascii can be used to redirect output to a file (or stdout) +instead. + +P.I.P.S. doesn't inherit the current working directory at startup, so you +may need to use the -o option to specify a specific location to store a +downloaded file. + +P.I.P.S. provides no way to disable echoing of characters as they are +entered, so passwords typed in on the console will be visible. + +All screen output disappears after curl exits, so after a transfer completes, +curl waits by default for Enter to pressed before exiting. This behaviour +is suppressed when the -s option is given. + +The "home directory" in Symbian is C:\Private\10206442\. The .curlrc is read +from this directory on startup. + +libcurl notes +------------- +libcurl uses writeable static data, so the EPOCALLOWDLLDATA option is +used in its MMP file, with the corresponding additional memory usage +and limitations on the Windows emulator. + +curl_global_init() *must* be called before any libcurl functions that could +allocate memory (like curl_getenv()). + +P.I.P.S. doesn't support signals or the alarm() call, so some timeouts +(such as the connect timeout) are not honoured. + +P.I.P.S. causes a USER:87 panic if a timeout much longer than half an hour +is selected. + +SSL/TLS encryption is not supported. + + +Dan Fandrich +dan@coneharvesters.com +April 2008 -- cgit v1.2.3