You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(4) |
Dec
(8) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(7) |
Feb
(17) |
Mar
(12) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Stewart H. <she...@us...> - 2005-03-21 10:10:49
|
Update of /cvsroot/multisync/multisync/plugins/kdepim_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16291 Modified Files: Tag: branch_08X kaddrbook.cpp Log Message: Tweaked the previous patch so that incoming custom X-KDEADDRESSBOOK fields are also honoured. Index: kaddrbook.cpp =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/kdepim_plugin/src/Attic/kaddrbook.cpp,v retrieving revision 1.1.2.9 retrieving revision 1.1.2.10 diff -u -d -r1.1.2.9 -r1.1.2.10 --- kaddrbook.cpp 17 Mar 2005 00:01:35 -0000 1.1.2.9 +++ kaddrbook.cpp 21 Mar 2005 10:10:36 -0000 1.1.2.10 @@ -366,16 +366,19 @@ //Other plugins are unlikely to support the KDE addressbook non-standard vcard //fields (X-KADDRESSBOOK-*) and so we must merge those fields from our current //copy back into back into the incoming vcard. + //We do this in a way that gives precedence to any custom data that may arrive + //in the incoming vcard. This could happen if we are synchronising two KDE + //Addressbooks for example. KABC::Addressee addressee_old = addressbookptr->findByUid(QString(obj->uid)); if (!addressee_old.isEmpty()) { - QStringList customs = addressee_old.customs(); + QStringList customs = addressee_old.customs() + addressee.customs(); addressee.setCustoms(customs); if (multisync_debug) for (QStringList::Iterator it=customs.begin(); it!=customs.end(); ++it) - cout << "kdepim_plugin: retaining" << *it << "\n"; - } + cout << "kdepim_plugin: custom " << *it << "\n"; + } // replace the current entry in the KDE addressbook with this one addressbookptr->insertAddressee(addressee); |
From: Stewart H. <she...@us...> - 2005-03-17 00:01:54
|
Update of /cvsroot/multisync/multisync/plugins/kdepim_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29488 Modified Files: Tag: branch_08X kaddrbook.cpp Log Message: Changes the plugin so that custom KDE Addressbook vcard fields are not deleted by the sync engine when the other plugin does not support them. Index: kaddrbook.cpp =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/kdepim_plugin/src/Attic/kaddrbook.cpp,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -d -r1.1.2.8 -r1.1.2.9 --- kaddrbook.cpp 5 Mar 2005 05:00:53 -0000 1.1.2.8 +++ kaddrbook.cpp 17 Mar 2005 00:01:35 -0000 1.1.2.9 @@ -363,6 +363,20 @@ //other device, we need to set the KDE UID as supplied by the sync engine. addressee.setUid(QString(obj->uid)); + //Other plugins are unlikely to support the KDE addressbook non-standard vcard + //fields (X-KADDRESSBOOK-*) and so we must merge those fields from our current + //copy back into back into the incoming vcard. + KABC::Addressee addressee_old = addressbookptr->findByUid(QString(obj->uid)); + if (!addressee_old.isEmpty()) + { + QStringList customs = addressee_old.customs(); + addressee.setCustoms(customs); + + if (multisync_debug) + for (QStringList::Iterator it=customs.begin(); it!=customs.end(); ++it) + cout << "kdepim_plugin: retaining" << *it << "\n"; + } + // replace the current entry in the KDE addressbook with this one addressbookptr->insertAddressee(addressee); |
From: Stewart H. <she...@us...> - 2005-03-13 11:08:36
|
Update of /cvsroot/multisync/multisync/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15990 Added Files: Tag: branch_08X plugin_howto.txt Log Message: --- NEW FILE: plugin_howto.txt --- Multisync Plugin How-to ----------------------- This HOWTO gives some background information to developers wishing to write new plugins for Multisync 0.8x. It was originally written in March 2004 by Stewart Heitmann <she...@us...>, with extra sections added in March 2005. Overview -------- The Multisync sync-engine manages the comparison and merging of PIM objects (VCARDS, VCALENDARS, etc) between pairs of external devices and/or applications that each contain an internal store of PIM entries. The internal stores are referred to as "databases", and the external devices and applications are collectively termed as "devices". Each pair of devices being synchronized is known as a "sync pair", and a single device may belong to multiple sync pairs simultaneously. About plugins ------------- Every type of "device" requires its own multisync plugin to act as interface between the sync-engine and the device's internal PIM database. Note that each plugin may be required to service multiple instances of identical devices or even multiple instance of the same physical device so it should not rely on global static data in its implementation. About UIDs ---------- Each device usually (but not always) assigns a unique identifier (UID) for each object in its database. The sync-engine uses these UIDs to match PIM objects during the synchronization process. If the device does not natively support UIDs then the multisync plugin should generate a UID for each database object as it deems fit. The sync-engine maintains its own internal mappings of the UIDs between the plugins of each sync pair. It ensures that each plugin is only ever presented with its own UIDs (not the UIDs of other plugins). The only exception is for new PIM objects, which the sync-engine presents to the plugin with a NULL UID. The plugin is expected to assign its own UID to these objects and report the new UID back to the sync-engine. In short, the sync-engine isolates the plugin from issues of UID uniqueness across devices. Plugin data structure --------------------- Each plugin defines a struct of the form: typedef struct { client_connection commondata; <private data goes here> } myplugin_connection; This structure is returned by the plugin's sync_connect() function which is called by the sync-engine whenever the device is added to a new sync-pair (or whenever a device in a sync-pair is re-connected). It must be allocated using g_malloc() as the sync-engine will use g_free() to de-allocate it later. The sync-engine expects the "client_connection" data member to be the first element of the struct so be sure not to put anything before it. The rest of the struct should be used to store all data pertinent to this instance of the plugin. The sync-engine will pass a pointer to this structure in all subsequent callbacks to the plugin. For instance, some of the more interesting callbacks are: void sync_disconnect(myplugin_connection *conn); void get_changes(myplugin_connection *conn, sync_object_type newdbs); void syncobj_modify_list(myplugin_connection *conn, GList *changes); void sync_done(myplugin_connection *conn, gboolean success); Note the "myplugin_connection *conn" parameters are actually passed by the sync-engine as "void *" but we pre-cast them in the function declarations for our own convenience. See the plugin-API.c file supplied with multisync for the full list of plugin callbacks. The get_changes() callback -------------------------- When the sync-engine wishes to synchronize the devices of a sync-pair, it first calls the get_changes() callback of each plugin to ascertain which objects in the device's database have been altered. void get_changes(myplugin_connection *conn, sync_object_type newdbs); The plugin should respond with a list containing copies of those database objects that have been modified, added, or deleted since the last time the database was synchronized. That is, since the last time the sync-engine called the plugin's sync_done() callback. Alternatively, the sync-engine will set the appropriate bit (SYNC_OBJECT_TYPE_CALENDAR, SYNC_OBJECT_TYPE_PHONEBOOK, SYNC_OBJECT_TYPE_TODO) in the "newdbs" parameter if it wishes the plugin to return all objects in its database rather than only those that have changed. This will happen when the other device in the sync-pair has lost all of its data and needs to be refreshed from scratch. The list of changes must be accumulated as GList of changed_object structs typedef struct { char *comp; // The PIM object data in VCARD or VCALENDAR string format. char *uid; // The plugins unique ID for this PIM object. char *removepriority; // Word to sort on for removal when database is full. int change_type; // One of SYNC_OBJ_MODIFIED, SYNC_OBJ_ADDED, etc sync_object_type object_type; //The data type of this object } changed_object; each one allocated with g_malloc(). Furthermore, this list must be encapsulated in a change_info struct, which incidentally must also be allocated using g_malloc(). typedef struct { GList *changes; // List of changed_object's sync_object_type newdbs; // Set the bit for the corresponding type // if the database is not recognized or has been reset. } change_info; Once the change_info structure is complete, it is returned to the sync-engine using sync_set_requestdata() function. When constructing changed_object structs for ADDED and MODIFIED database objects, the "changed_object.comp" data member should point to a newly gmalloc'ed string containing the data for the object. The sync-engine uses this data when comparing and merging modified objects from either device in the sync-pair. The string should be formatted as a VCARD or VCALENDAR string as appropriate to its object type. For example, a vcard would appear as "BEGIN:VCARD\nEMAIL;TYPE=PREF:fo...@fo...\nFN:Foo Bar\nN:Bar;Foo;;;\n VERSION:3.0\nEND:VCARD\n" Objects marked as DELETE however may have "changed_object.comp" set to NULL. The "changed_object.uid" data member should always point to a newly gmalloc'ed string containing the UID assigned to that object by the device. This is regardless of whether the object is marked as ADDED, MODIFIED, or DELETE. The syncobj_modify_list() callback ---------------------------------- Once the sync-engine has determined the differences between the two devices of a sync pair it calls syncobj_modify_list() with a list of changes for the plugin to replicate on the device. void syncobj_modify_list(kdepim_connection *conn, GList *changes) Each item in the "changes" list is a "changed_object" struct (as seen above). As the plugin applies these changes to the device it should accumulate a list of "syncobj_modify_result" structs in which to record the success of each change. This list is returned to the sync-engine with the sync_set_requestdata() function upon completion of all modifications. typedef struct { sync_msg_type result; // The result of the operation char *returnuid; // Returns UID for a new entry as a gmalloc'ed string. } syncobj_modify_result; Each object in the "changes" list whose "change_type" is SYNC_OBJ_HARDDELETED or SYNC_OBJ_SOFTDELETED can simply be deleted from the device. For those objects whose "change_type" is SYNC_OBJ_MODIFIED, the corresponding object (according to UID) on the device should have their contents replaced with the contents of the changed_object's "comp" string. Similarly, those objects whose "change_type" is SYNC_OBJ_ADDED use the data in the "comp" string as the new record, however in this case the device will generate a UID for the new object. The plugin should inform the sync-engine of the new UID by returning a gmalloc'ed copy of it in the changed_object's "returnuid" variable. The "returnuid" variable should be set to NULL for other types of changes. Handling non-standard VCARD fields ---------------------------------- The multisync 0.8x sync engine has a design problem that causes non-standard VCARD fields to be deleted from both ends of a sync-pair. The current design presumes that each plugin will handle all VCARD fields that it gives them. Often a plugin will scan the incoming the VCARD and ignore any fields that it does not support. This does not become a problem until the plugin returns a copy of the VCARD back to the sync engine. At that point, the sync engine detects a difference between the VCARD it originally sent the plugin and the one it received back. The sync engine presumes that the difference was caused by the user deliberately deleting the missing field and promptly removes that field from the VCARDS of both plugins in the sync pair. As a result, multisync becomes an accidental censor that deletes any field within a VCARD that is not supported by exactly both plugins. As an example, imagine two plugins, A and B, and suppose plugin A supports a hypothetical X-PLUGINA-CUSTOM field that is ignored by plugin B. Say that, prior to synchromisation, plugin A contains a new VCARD Plugin A: "BEGIN:VCARD\nX-PLUGINA-CUSTOM=mystuff\n:END:VCARD\n" Plugin B: During synchronisation, plugin B recieves a copy of the new VCARD but ignores the "X-PLUGINA-CUSTOM=mystuff\n" field within it. Plugin A: "BEGIN:VCARD\nX-PLUGINA-CUSTOM=mystuff\n:END:VCARD\n" Plugin B: "BEGIN:VCARD\n:END:VCARD\n" Later, when the two plugins are synchronised again, the sync engine sees that plugin B has removed the X-PLUGINA-CUSTOM field from its version of the VCARD and the sync engine duly removes the same from plugin A's copy. Plugin A: "BEGIN:VCARD\n:END:VCARD\n" Plugin B: "BEGIN:VCARD\n:END:VCARD\n" The result is the loss of the X-PLUGINA-CUSTOM field from the originating device. There's no convenient solution to this problem in the current multisync 0.8x framework. The safest thing for a plugin to do is to NOT discard unrecognised fields but rather retain them in the VCARD regardless. Unfortunately not all devices will be capable of storing all VCARD fields they encounter. The ideal fix to this problem would require plugins to register their capabilities with the sync engine when they connect, so that the sync engine does not send any fields to a plugin that it knows the plugin cannot handle. However, such a drastic change to the plugin architecture is unlikely for the 0.8x branch and is left for future versions of multisync to address. In the meantime, plugin developers are encouraged not to discard unknown VCARD fields if they can help it. Cross-matching popular custom VCARD fields ------------------------------------------ Many popular VCARD applications have custom X- fields with similar purposes and it would be nice if multisync plugins could share these too. It has been agreed among the multisync developers, in principle, to handle these by defining a set of intermediate X-MULTISYNC fields onto which plugins can map their corresponding custom X- fields when communicating with the sync engine. X-MULTISYNC-OFFICE X-MULTISYNC-MANAGER X-MULTISYNC-ASSISTANT X-MULTISYNC-SPOUSE X-MULTISYNC-PROFESSION X-MULTISYNC-ANNIVERSARY X-MULTISYNC-DEPARTMENT However, no plugins have actually implemented this mapping, as no suitable VCARD parser library has yet been identified. Until then, cross-matching custom X- fields remains wishful thinking. |
From: Stewart H. <she...@us...> - 2005-03-13 06:03:23
|
Update of /cvsroot/multisync/multisync/plugins/kdepim_plugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11520 Modified Files: Tag: branch_08X README Log Message: Improved build instructions for FreeBSD Index: README =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/kdepim_plugin/Attic/README,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -d -r1.1.2.3 -r1.1.2.4 --- README 21 Aug 2004 03:22:27 -0000 1.1.2.3 +++ README 13 Mar 2005 06:03:08 -0000 1.1.2.4 @@ -31,8 +31,18 @@ FreeBSD notes ------------- -The FreeBSD port of multisync is installed into /usr/X11R6/ rather than /usr/local/ -so you should specify --prefix=/usr/X11R6 when you configure the kdepim plugin. - $ ./autogen.sh --prefix=/usr/X11R6 +The autogen.sh script does not work under FreeBSD so we must reconfigure +manually. - \ No newline at end of file + $ cd kdepim_plugin + $ aclocal15 + $ autoreconf253 -if + $ ./configure --prefix=/usr/X11R6 + $ make + $ su + $ make install + +Note that under FreeBSD multisync is installed under /usr/X11R6/ rather than +/usr/local/ as is the case with Linux. + + |
From: Markus M. <ms...@us...> - 2005-03-07 02:37:26
|
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10457 Modified Files: Tag: branch_08X README Log Message: documentation update Index: README =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/README,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -d -r1.1.2.2 -r1.1.2.3 --- README 7 Mar 2005 01:51:31 -0000 1.1.2.2 +++ README 7 Mar 2005 02:37:15 -0000 1.1.2.3 @@ -4,15 +4,111 @@ (C) 2005 by Markus Meyer Licensed under the GNU GPL + 1. Does it work? Yes, it does. You can sync one or more calendars, both local and on WebDAV -servers. I am syncing my S55 phone with it, and it works fine. However, +servers. I sync my S55 phone with it, and it works fine. However, since it has not been widely tested, consider it beta or even alpha quality code. Therefore it is recommended to make frequent backups of your data. -2. Where are the settings? -There is no graphical settings dialog yet. Configuration is done via -environment variables. The following variables are defined: +2. Will it also sync my contacts and todo items? + +No. It currently only syncs calendar appointments. But if you are a +programmer, you're of course welcome to extend it. + + +3. What are the known limitations? + +- In every Mozilla Calendar file that you want to use with the plugin, + you should always have at least one item. If the calendar is empty, + Mozilla Calendar will create a calendar file of zero size, which the + plugin cannot interpret correctly. This is a real bug and should be + fixed soon. + +- Both this plugin and Mozilla Calendar can lose data, if there is + a network transfer error when the calendars are downloaded / uploaded + over WebDAV. So always keep backups at hand. I actually had it + happen that Mozilla Calendar worked fine for me multiple weeks, then + all of a sudden it lost half of my appointments. So now I have a script + that makes backups of my Mozilla Calendars every day, but only if they + have increased in size. + +- Mozilla Calendar doesn't yet recognize automatically if the calendar + files have changed. So after syncing, Mozilla Calendar will still + show your old data. If you use WebDAV, just press Ctrl+R to read + the new data from server after syncing. If you use local calendars, + it's probably easiest to hide (unselect) the calendar in the calendar + list, then select it again. + +- There are a lot of printf statements in the code, which lead to much + debug output to the console everytime a sync is done. These will be + removed over time. + +- (Only interesting for programmers) The code has been hacked in a + few nights during my exams, so there are many things that could + be solved in a better way. + + +4. Help! It complains about some "Neon" library. + +You need to have Neon installed. Neon is a library which is used for +WebDAV support. It is planned to make the installation of Neon optional, +but currently, you need it, whether you're planning to use WebDAV or not. +The easiest thing is probably to download Neon's source code from + +http://www.webdav.org/neon/ +Last version tested was 0.24.7. You can install neon systemwide by +issuing these commands: + +tar zxvf neon-0.24.7.tar.gz +cd neon-0.24.7 +./configure +make +sudo make install + + +5. Where are the settings? + +There is no graphical settings dialog yet. Currently, configuration +is done via environment variables. The following variables are +defined: + +MULTISYNC_SUNBIRD_CALENDARS + This is a list of calendars you want to sync, separated by + semicolons (";"). These can either be local files, or WebDAV + locations (starting with "http://"). SSL ("https://") is not + yet supported. Note that since the shell uses the semicolon + as a special character, you have two quote the whole variable + when e.g. using the "export" command. + +MULTISYNC_SUNBIRD_DEFAULT_CALENDAR + If you have more than one calendar defined, this defines which + of them is your default calendar. This is just the name of the + .ics file (without the whole path). Look below for an explanation + why it's useful to have a default calendar. If you don't define + a default calendar, the first calendar in the list is used. + +MULTISYNC_SUNBIRD_WEBDAV_USERNAME +MULTISYNC_SUNBIRD_WEBDAV_PASSWORD + The username and password that should be used to log into the + WebDAV server. You don't need these if you're using local + calendars. + +If you want to avoid setting all these environment variables +everytime you use MultiSync, you can create a small shell script, +which first sets these variables, and then starts MultiSync. + + +6. What's the point of having multiple calendars? My mobile phone only + supports one single calendar! + +If you configure multiple calendars for use with this plugin, the +software will automagically merge these calendars into one single +calendar for use in your device (the "remote end"). However, if you +change or delete an item on the remote end, it will properly find +its way back into the exact calendar it came from. When you add +a new item at the remote end, this item is added to the default +calendar (which can be set by the user). |
From: Markus M. <ms...@us...> - 2005-03-07 01:51:46
|
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30137 Modified Files: Tag: branch_08X Makefile README config.h config.h.in config.log config.status configure configure.in libtool Log Message: added webdav support Index: config.h =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/config.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- config.h 4 Feb 2005 09:50:53 -0000 1.1.2.1 +++ config.h 7 Mar 2005 01:51:31 -0000 1.1.2.2 @@ -1,36 +1,170 @@ /* config.h. Generated by configure. */ /* config.h.in. Generated from configure.in by autoheader. */ +/* Define to specific EGD socket path */ +/* #undef EGD_PATH */ + +/* Define if EGD should be supported */ +/* #undef ENABLE_EGD */ + +/* Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise */ +/* #undef GSS_C_NT_HOSTBASED_SERVICE */ + +/* Define to 1 if you have the <arpa/inet.h> header file. */ +/* #undef HAVE_ARPA_INET_H */ + +/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't. + */ +/* #undef HAVE_DECL_STPCPY */ + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#define HAVE_DECL_STRERROR_R 1 + /* Define to 1 if you have the <dlfcn.h> header file. */ #define HAVE_DLFCN_H 1 +/* Define to 1 if you have the <errno.h> header file. */ +#define HAVE_ERRNO_H 1 + +/* Define to 1 if you have the `gai_strerror' function. */ +/* #undef HAVE_GAI_STRERROR */ + +/* Define to 1 if you have the `getaddrinfo' function. */ +/* #undef HAVE_GETADDRINFO */ + +/* Define if GSSAPI support is enabled */ +/* #undef HAVE_GSSAPI */ + +/* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */ +/* #undef HAVE_GSSAPI_GSSAPI_GENERIC_H */ + +/* Define to 1 if you have the <gssapi/gssapi.h> header file. */ +/* #undef HAVE_GSSAPI_GSSAPI_H */ + +/* Define to 1 if you have the <gssapi.h> header file. */ +/* #undef HAVE_GSSAPI_H */ + +/* Define to 1 if you have the `gss_init_sec_context' function. */ +/* #undef HAVE_GSS_INIT_SEC_CONTEXT */ + +/* Define to 1 if you have the `hstrerror' function. */ +/* #undef HAVE_HSTRERROR */ + +/* Define to 1 if you have the `inet_ntop' function. */ +/* #undef HAVE_INET_NTOP */ + /* Define to 1 if you have the <inttypes.h> header file. */ #define HAVE_INTTYPES_H 1 +/* Define to 1 if you have the <limits.h> header file. */ +/* #undef HAVE_LIMITS_H */ + /* Define to 1 if you have the <memory.h> header file. */ #define HAVE_MEMORY_H 1 +/* Define to 1 if you have the <netdb.h> header file. */ +/* #undef HAVE_NETDB_H */ + +/* Define to 1 if you have the <netinet/in.h> header file. */ +/* #undef HAVE_NETINET_IN_H */ + +/* Define to 1 if you have the <netinet/tcp.h> header file. */ +/* #undef HAVE_NETINET_TCP_H */ + +/* Define to 1 if you have the <openssl/opensslv.h> header file. */ +/* #undef HAVE_OPENSSL_OPENSSLV_H */ + +/* Define to 1 if you have the <openssl/ssl.h> header file. */ +/* #undef HAVE_OPENSSL_SSL_H */ + +/* Define to 1 if you have the `setsockopt' function. */ +/* #undef HAVE_SETSOCKOPT */ + +/* Define to 1 if you have the `setvbuf' function. */ +/* #undef HAVE_SETVBUF */ + +/* Define to 1 if you have the `signal' function. */ +/* #undef HAVE_SIGNAL */ + +/* Define to 1 if you have the <signal.h> header file. */ +/* #undef HAVE_SIGNAL_H */ + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* Define to 1 if you have the <socks.h> header file. */ +/* #undef HAVE_SOCKS_H */ + +/* Define to 1 if you have the <stdarg.h> header file. */ +#define HAVE_STDARG_H 1 + /* Define to 1 if you have the <stdint.h> header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the <stdlib.h> header file. */ #define HAVE_STDLIB_H 1 +/* Define to 1 if you have the `stpcpy' function. */ +/* #undef HAVE_STPCPY */ + +/* Define to 1 if you have the `strcasecmp' function. */ +/* #undef HAVE_STRCASECMP */ + +/* Define to 1 if you have the `strerror_r' function. */ +#define HAVE_STRERROR_R 1 + /* Define to 1 if you have the <strings.h> header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the <string.h> header file. */ #define HAVE_STRING_H 1 +/* Define to 1 if `tm_gmtoff' is member of `struct tm'. */ +/* #undef HAVE_STRUCT_TM_TM_GMTOFF */ + +/* Define to 1 if you have the <sys/select.h> header file. */ +/* #undef HAVE_SYS_SELECT_H */ + +/* Define to 1 if you have the <sys/socket.h> header file. */ +/* #undef HAVE_SYS_SOCKET_H */ + /* Define to 1 if you have the <sys/stat.h> header file. */ #define HAVE_SYS_STAT_H 1 +/* Define to 1 if you have the <sys/time.h> header file. */ +/* #undef HAVE_SYS_TIME_H */ + /* Define to 1 if you have the <sys/types.h> header file. */ #define HAVE_SYS_TYPES_H 1 +/* Define to 1 if you have the <trio.h> header file. */ +/* #undef HAVE_TRIO_H */ + /* Define to 1 if you have the <unistd.h> header file. */ #define HAVE_UNISTD_H 1 +/* Define to 1 if you have the `vsnprintf' function. */ +#define HAVE_VSNPRINTF 1 + +/* Define to be the neon version string */ +#define NEON_VERSION "0.24.7" + +/* Define to be major number of neon version */ +#define NEON_VERSION_MAJOR (0) + +/* Define to be minor number of neon version */ +#define NEON_VERSION_MINOR (24) + +/* Define to be printf format string for off_t */ +#define NE_FMT_OFF_T "ld" + +/* Define to be printf format string for size_t */ +#define NE_FMT_SIZE_T "u" + +/* Define to be printf format string for ssize_t */ +#define NE_FMT_SSIZE_T "d" + /* Name of package */ #define PACKAGE "sunbird_plugin" @@ -49,8 +183,56 @@ /* Define to the version of this package. */ #define PACKAGE_VERSION "" +/* The size of a `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of a `long', as computed by sizeof. */ +#define SIZEOF_LONG 4 + +/* The size of a `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of a `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 4 + +/* The size of a `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 4 + +/* The size of a `ssize_t', as computed by sizeof. */ +#define SIZEOF_SSIZE_T 4 + /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 +/* Define to 1 if strerror_r returns char *. */ +#define STRERROR_R_CHAR_P 1 + +/* Define if getaddrinfo supports AI_ADDRCONFIG */ +/* #undef USE_GAI_ADDRCONFIG */ + +/* Define if getaddrinfo() should be used */ +/* #undef USE_GETADDRINFO */ + /* Version number of package */ #define VERSION "0.82" + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +/* #undef WORDS_BIGENDIAN */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define as `__inline' if that's what the C compiler calls it, or to nothing + if it is not supported. */ +/* #undef inline */ + +/* Define to `long' if <sys/types.h> does not define. */ +/* #undef off_t */ + +/* Define to `unsigned' if <sys/types.h> does not define. */ +/* #undef size_t */ + +#if defined(HAVE_STPCPY) && !HAVE_DECL_STPCPY && !defined(stpcpy) +char *stpcpy(char *, const char *); +#endif Index: config.h.in =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/config.h.in,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- config.h.in 4 Feb 2005 09:50:53 -0000 1.1.2.1 +++ config.h.in 7 Mar 2005 01:51:31 -0000 1.1.2.2 @@ -1,35 +1,169 @@ /* config.h.in. Generated from configure.in by autoheader. */ +/* Define to specific EGD socket path */ +#undef EGD_PATH + +/* Define if EGD should be supported */ +#undef ENABLE_EGD + +/* Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise */ +#undef GSS_C_NT_HOSTBASED_SERVICE + +/* Define to 1 if you have the <arpa/inet.h> header file. */ +#undef HAVE_ARPA_INET_H + +/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't. + */ +#undef HAVE_DECL_STPCPY + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#undef HAVE_DECL_STRERROR_R + /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H +/* Define to 1 if you have the <errno.h> header file. */ +#undef HAVE_ERRNO_H + +/* Define to 1 if you have the `gai_strerror' function. */ +#undef HAVE_GAI_STRERROR + +/* Define to 1 if you have the `getaddrinfo' function. */ +#undef HAVE_GETADDRINFO + +/* Define if GSSAPI support is enabled */ +#undef HAVE_GSSAPI + +/* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */ +#undef HAVE_GSSAPI_GSSAPI_GENERIC_H + +/* Define to 1 if you have the <gssapi/gssapi.h> header file. */ +#undef HAVE_GSSAPI_GSSAPI_H + +/* Define to 1 if you have the <gssapi.h> header file. */ +#undef HAVE_GSSAPI_H + +/* Define to 1 if you have the `gss_init_sec_context' function. */ +#undef HAVE_GSS_INIT_SEC_CONTEXT + +/* Define to 1 if you have the `hstrerror' function. */ +#undef HAVE_HSTRERROR + +/* Define to 1 if you have the `inet_ntop' function. */ +#undef HAVE_INET_NTOP + /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Define to 1 if you have the <limits.h> header file. */ +#undef HAVE_LIMITS_H + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H +/* Define to 1 if you have the <netdb.h> header file. */ +#undef HAVE_NETDB_H + +/* Define to 1 if you have the <netinet/in.h> header file. */ +#undef HAVE_NETINET_IN_H + +/* Define to 1 if you have the <netinet/tcp.h> header file. */ +#undef HAVE_NETINET_TCP_H + +/* Define to 1 if you have the <openssl/opensslv.h> header file. */ +#undef HAVE_OPENSSL_OPENSSLV_H + +/* Define to 1 if you have the <openssl/ssl.h> header file. */ +#undef HAVE_OPENSSL_SSL_H + +/* Define to 1 if you have the `setsockopt' function. */ +#undef HAVE_SETSOCKOPT + +/* Define to 1 if you have the `setvbuf' function. */ +#undef HAVE_SETVBUF + +/* Define to 1 if you have the `signal' function. */ +#undef HAVE_SIGNAL + +/* Define to 1 if you have the <signal.h> header file. */ +#undef HAVE_SIGNAL_H + +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* Define to 1 if you have the <socks.h> header file. */ +#undef HAVE_SOCKS_H + +/* Define to 1 if you have the <stdarg.h> header file. */ +#undef HAVE_STDARG_H + /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H +/* Define to 1 if you have the `stpcpy' function. */ +#undef HAVE_STPCPY + +/* Define to 1 if you have the `strcasecmp' function. */ +#undef HAVE_STRCASECMP + +/* Define to 1 if you have the `strerror_r' function. */ +#undef HAVE_STRERROR_R + /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H +/* Define to 1 if `tm_gmtoff' is member of `struct tm'. */ +#undef HAVE_STRUCT_TM_TM_GMTOFF + +/* Define to 1 if you have the <sys/select.h> header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#undef HAVE_SYS_SOCKET_H + /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H +/* Define to 1 if you have the <sys/time.h> header file. */ +#undef HAVE_SYS_TIME_H + /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H +/* Define to 1 if you have the <trio.h> header file. */ +#undef HAVE_TRIO_H + /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H +/* Define to 1 if you have the `vsnprintf' function. */ +#undef HAVE_VSNPRINTF + +/* Define to be the neon version string */ +#undef NEON_VERSION + +/* Define to be major number of neon version */ +#undef NEON_VERSION_MAJOR + +/* Define to be minor number of neon version */ +#undef NEON_VERSION_MINOR + +/* Define to be printf format string for off_t */ +#undef NE_FMT_OFF_T + +/* Define to be printf format string for size_t */ +#undef NE_FMT_SIZE_T + +/* Define to be printf format string for ssize_t */ +#undef NE_FMT_SSIZE_T + /* Name of package */ #undef PACKAGE @@ -48,8 +182,56 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION +/* The size of a `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of a `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of a `long long', as computed by sizeof. */ +#undef SIZEOF_LONG_LONG + +/* The size of a `off_t', as computed by sizeof. */ +#undef SIZEOF_OFF_T + +/* The size of a `size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* The size of a `ssize_t', as computed by sizeof. */ +#undef SIZEOF_SSIZE_T + /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS +/* Define to 1 if strerror_r returns char *. */ +#undef STRERROR_R_CHAR_P + +/* Define if getaddrinfo supports AI_ADDRCONFIG */ +#undef USE_GAI_ADDRCONFIG + +/* Define if getaddrinfo() should be used */ +#undef USE_GETADDRINFO + /* Version number of package */ #undef VERSION + +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#undef WORDS_BIGENDIAN + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define as `__inline' if that's what the C compiler calls it, or to nothing + if it is not supported. */ +#undef inline + +/* Define to `long' if <sys/types.h> does not define. */ +#undef off_t + +/* Define to `unsigned' if <sys/types.h> does not define. */ +#undef size_t + +#if defined(HAVE_STPCPY) && !HAVE_DECL_STPCPY && !defined(stpcpy) +char *stpcpy(char *, const char *); +#endif Index: configure =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/configure,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- configure 4 Feb 2005 09:50:53 -0000 1.1.2.1 +++ configure 7 Mar 2005 01:51:31 -0000 1.1.2.2 @@ -467,7 +467,7 @@ # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE PKG_CONFIG PACKAGE_CFLAGS PACKAGE_LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE CPP EGREP build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S ECHO RANLIB ac_ct_RANLIB LIBTOOL MULTISYNC_VERSION LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE PKG_CONFIG PACKAGE_CFLAGS PACKAGE_LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE CPP EGREP build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S ECHO RANLIB ac_ct_RANLIB LIBTOOL NEON_CONFIG LIBOBJS NEON_SUPPORTS_ZLIB NEON_SUPPORTS_SSL KRB5_CONFIG NEON_CFLAGS NEON_LIBS NEON_LTLIBS NEON_BUILD_BUNDLED MULTISYNC_VERSION LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1019,6 +1019,11 @@ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld default=no [...7259 lines suppressed...] @@ -9433,8 +16638,16 @@ s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@LIBTOOL@,$LIBTOOL,;t t -s,@MULTISYNC_VERSION@,$MULTISYNC_VERSION,;t t +s,@NEON_CONFIG@,$NEON_CONFIG,;t t s,@LIBOBJS@,$LIBOBJS,;t t +s,@NEON_SUPPORTS_ZLIB@,$NEON_SUPPORTS_ZLIB,;t t +s,@NEON_SUPPORTS_SSL@,$NEON_SUPPORTS_SSL,;t t +s,@KRB5_CONFIG@,$KRB5_CONFIG,;t t +s,@NEON_CFLAGS@,$NEON_CFLAGS,;t t +s,@NEON_LIBS@,$NEON_LIBS,;t t +s,@NEON_LTLIBS@,$NEON_LTLIBS,;t t +s,@NEON_BUILD_BUNDLED@,$NEON_BUILD_BUNDLED,;t t +s,@MULTISYNC_VERSION@,$MULTISYNC_VERSION,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF Index: configure.in =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/configure.in,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- configure.in 4 Feb 2005 09:50:53 -0000 1.1.2.1 +++ configure.in 7 Mar 2005 01:51:32 -0000 1.1.2.2 @@ -1,5 +1,7 @@ dnl Process this file with autoconf to produce a configure script. +m4_include([macros/neon.m4]) + AC_INIT(configure.in) AM_INIT_AUTOMAKE(sunbird_plugin, 0.82) AM_CONFIG_HEADER(config.h) @@ -14,6 +16,7 @@ AM_PROG_CC_STDC AC_HEADER_STDC AC_PROG_LIBTOOL +NEON_LIBRARY dnl Info for the RPM MULTISYNC_TOP="../.." Index: Makefile =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/Makefile,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- Makefile 4 Feb 2005 09:50:53 -0000 1.1.2.1 +++ Makefile 7 Mar 2005 01:51:31 -0000 1.1.2.2 @@ -75,7 +75,7 @@ INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s LIBTOOL = $(SHELL) $(top_builddir)/libtool LN_S = ln -s -MULTISYNC_VERSION = 0.82 +MULTISYNC_VERSION = OBJDUMP = @OBJDUMP@ PACKAGE = sunbird_plugin PACKAGE_CFLAGS = -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/libxml2 Index: config.status =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/config.status,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- config.status 4 Feb 2005 09:50:53 -0000 1.1.2.1 +++ config.status 7 Mar 2005 01:51:31 -0000 1.1.2.2 @@ -504,7 +504,7 @@ s,@PACKAGE_CFLAGS@,-DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/libxml2 ,;t t s,@PACKAGE_LIBS@,-pthread -Wl,--export-dynamic -L/usr/X11R6/lib -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lxml2 -lpthread -lz -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -lXext -latk-1.0 -lgdk_pixbuf-2.0 -lXcursor -lpangoxft-1.0 -lXft -lfreetype -lXrender -lfontconfig -lpangox-1.0 -lX11 -lpango-1.0 -lbonobo-2 -lgconf-2 -lgnomevfs-2 -lbonobo-activation -lORBit-2 -lgobject-2.0 -lgthread-2.0 -lm -lgmodule-2.0 -ldl -lglib-2.0 ,;t t s,@CC@,gcc,;t t -s,@CFLAGS@,-g -O2,;t t +s,@CFLAGS@,-g -O2 -I/usr/local/include/neon -DNEON_ZLIB,;t t s,@LDFLAGS@,,;t t s,@CPPFLAGS@,,;t t s,@ac_ct_CC@,gcc,;t t @@ -532,8 +532,16 @@ s,@RANLIB@,ranlib,;t t s,@ac_ct_RANLIB@,ranlib,;t t s,@LIBTOOL@,$(SHELL) $(top_builddir)/libtool,;t t -s,@MULTISYNC_VERSION@,0.82,;t t +s,@NEON_CONFIG@,/usr/local/bin/neon-config,;t t s,@LIBOBJS@,,;t t +s,@NEON_SUPPORTS_ZLIB@,yes,;t t +s,@NEON_SUPPORTS_SSL@,no,;t t +s,@KRB5_CONFIG@,,;t t +s,@NEON_CFLAGS@,,;t t +s,@NEON_LIBS@, -L/usr/local/lib -lneon -lz -L/usr/kerberos/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lxml2 -lz -lpthread -lm,;t t +s,@NEON_LTLIBS@,,;t t +s,@NEON_BUILD_BUNDLED@,yes,;t t +s,@MULTISYNC_VERSION@,,;t t s,@LTLIBOBJS@,,;t t CEOF @@ -827,6 +835,36 @@ ${ac_dA}HAVE_STDINT_H${ac_dB}HAVE_STDINT_H${ac_dC}1${ac_dD} ${ac_dA}HAVE_UNISTD_H${ac_dB}HAVE_UNISTD_H${ac_dC}1${ac_dD} ${ac_dA}HAVE_DLFCN_H${ac_dB}HAVE_DLFCN_H${ac_dC}1${ac_dD} +${ac_dA}SIZEOF_INT${ac_dB}SIZEOF_INT${ac_dC}4${ac_dD} +${ac_dA}SIZEOF_LONG${ac_dB}SIZEOF_LONG${ac_dC}4${ac_dD} +${ac_dA}SIZEOF_LONG_LONG${ac_dB}SIZEOF_LONG_LONG${ac_dC}8${ac_dD} +${ac_dA}HAVE_ERRNO_H${ac_dB}HAVE_ERRNO_H${ac_dC}1${ac_dD} +${ac_dA}HAVE_STDARG_H${ac_dB}HAVE_STDARG_H${ac_dC}1${ac_dD} +${ac_dA}HAVE_STRING_H${ac_dB}HAVE_STRING_H${ac_dC}1${ac_dD} +${ac_dA}HAVE_STDLIB_H${ac_dB}HAVE_STDLIB_H${ac_dC}1${ac_dD} +${ac_dA}SIZEOF_SIZE_T${ac_dB}SIZEOF_SIZE_T${ac_dC}4${ac_dD} +${ac_dA}NE_FMT_SIZE_T${ac_dB}NE_FMT_SIZE_T${ac_dC}"u"${ac_dD} +${ac_dA}SIZEOF_OFF_T${ac_dB}SIZEOF_OFF_T${ac_dC}4${ac_dD} +${ac_dA}NE_FMT_OFF_T${ac_dB}NE_FMT_OFF_T${ac_dC}"ld"${ac_dD} +${ac_dA}SIZEOF_SSIZE_T${ac_dB}SIZEOF_SSIZE_T${ac_dC}4${ac_dD} +${ac_dA}NE_FMT_SSIZE_T${ac_dB}NE_FMT_SSIZE_T${ac_dC}"d"${ac_dD} +${ac_dA}HAVE_DECL_STRERROR_R${ac_dB}HAVE_DECL_STRERROR_R${ac_dC}1${ac_dD} +${ac_dA}HAVE_STRERROR_R${ac_dB}HAVE_STRERROR_R${ac_dC}1${ac_dD} +${ac_dA}STRERROR_R_CHAR_P${ac_dB}STRERROR_R_CHAR_P${ac_dC}1${ac_dD} +${ac_dA}HAVE_SNPRINTF${ac_dB}HAVE_SNPRINTF${ac_dC}1${ac_dD} +${ac_dA}HAVE_VSNPRINTF${ac_dB}HAVE_VSNPRINTF${ac_dC}1${ac_dD} +${ac_dA}NEON_VERSION${ac_dB}NEON_VERSION${ac_dC}"0.24.7"${ac_dD} +${ac_dA}NEON_VERSION_MAJOR${ac_dB}NEON_VERSION_MAJOR${ac_dC}(0)${ac_dD} +CEOF + sed -f $tmp/defines.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + cat >$tmp/defines.sed <<CEOF +/^[ ]*#[ ]*define/!b +t clr +: clr +${ac_dA}NEON_VERSION_MINOR${ac_dB}NEON_VERSION_MINOR${ac_dC}(24)${ac_dD} CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in @@ -857,6 +895,36 @@ ${ac_uA}HAVE_STDINT_H${ac_uB}HAVE_STDINT_H${ac_uC}1${ac_uD} ${ac_uA}HAVE_UNISTD_H${ac_uB}HAVE_UNISTD_H${ac_uC}1${ac_uD} ${ac_uA}HAVE_DLFCN_H${ac_uB}HAVE_DLFCN_H${ac_uC}1${ac_uD} +${ac_uA}SIZEOF_INT${ac_uB}SIZEOF_INT${ac_uC}4${ac_uD} +${ac_uA}SIZEOF_LONG${ac_uB}SIZEOF_LONG${ac_uC}4${ac_uD} +${ac_uA}SIZEOF_LONG_LONG${ac_uB}SIZEOF_LONG_LONG${ac_uC}8${ac_uD} +${ac_uA}HAVE_ERRNO_H${ac_uB}HAVE_ERRNO_H${ac_uC}1${ac_uD} +${ac_uA}HAVE_STDARG_H${ac_uB}HAVE_STDARG_H${ac_uC}1${ac_uD} +${ac_uA}HAVE_STRING_H${ac_uB}HAVE_STRING_H${ac_uC}1${ac_uD} +${ac_uA}HAVE_STDLIB_H${ac_uB}HAVE_STDLIB_H${ac_uC}1${ac_uD} +${ac_uA}SIZEOF_SIZE_T${ac_uB}SIZEOF_SIZE_T${ac_uC}4${ac_uD} +${ac_uA}NE_FMT_SIZE_T${ac_uB}NE_FMT_SIZE_T${ac_uC}"u"${ac_uD} +${ac_uA}SIZEOF_OFF_T${ac_uB}SIZEOF_OFF_T${ac_uC}4${ac_uD} +${ac_uA}NE_FMT_OFF_T${ac_uB}NE_FMT_OFF_T${ac_uC}"ld"${ac_uD} +${ac_uA}SIZEOF_SSIZE_T${ac_uB}SIZEOF_SSIZE_T${ac_uC}4${ac_uD} +${ac_uA}NE_FMT_SSIZE_T${ac_uB}NE_FMT_SSIZE_T${ac_uC}"d"${ac_uD} +${ac_uA}HAVE_DECL_STRERROR_R${ac_uB}HAVE_DECL_STRERROR_R${ac_uC}1${ac_uD} +${ac_uA}HAVE_STRERROR_R${ac_uB}HAVE_STRERROR_R${ac_uC}1${ac_uD} +${ac_uA}STRERROR_R_CHAR_P${ac_uB}STRERROR_R_CHAR_P${ac_uC}1${ac_uD} +${ac_uA}HAVE_SNPRINTF${ac_uB}HAVE_SNPRINTF${ac_uC}1${ac_uD} +${ac_uA}HAVE_VSNPRINTF${ac_uB}HAVE_VSNPRINTF${ac_uC}1${ac_uD} +${ac_uA}NEON_VERSION${ac_uB}NEON_VERSION${ac_uC}"0.24.7"${ac_uD} +${ac_uA}NEON_VERSION_MAJOR${ac_uB}NEON_VERSION_MAJOR${ac_uC}(0)${ac_uD} +CEOF + sed -f $tmp/undefs.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in + + cat >$tmp/undefs.sed <<CEOF +/^[ ]*#[ ]*undef/!b +t clr +: clr +${ac_uA}NEON_VERSION_MINOR${ac_uB}NEON_VERSION_MINOR${ac_uC}(24)${ac_uD} s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out Index: config.log =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/config.log,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- config.log 4 Feb 2005 09:50:53 -0000 1.1.2.1 +++ config.log 7 Mar 2005 01:51:31 -0000 1.1.2.2 @@ -46,98 +46,98 @@ ## Core tests. ## ## ----------- ## -configure:1476: checking for a BSD-compatible install -configure:1530: result: /usr/bin/install -c -configure:1541: checking whether build environment is sane -configure:1584: result: yes -configure:1617: checking for gawk -configure:1633: found /bin/gawk -configure:1643: result: gawk -configure:1653: checking whether make sets $(MAKE) [...1045 lines suppressed...] +#define SIZEOF_SIZE_T 4 +#define SIZEOF_SSIZE_T 4 #define STDC_HEADERS 1 +#define STRERROR_R_CHAR_P 1 #define VERSION "0.82" configure: exit 0 @@ -625,9 +969,9 @@ CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = - $ ./config.status config.h + $ ./config.status src/Makefile depfiles on markus -config.status:771: creating config.h -config.status:878: config.h is unchanged +config.status:675: creating src/Makefile +config.status:1052: executing depfiles commands Index: libtool =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/libtool,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- libtool 4 Feb 2005 09:50:54 -0000 1.1.2.1 +++ libtool 7 Mar 2005 01:51:32 -0000 1.1.2.2 @@ -1605,7 +1605,7 @@ ;; -shrext) - prev=shrext + prev=shrext_cmds continue ;; @@ -3038,7 +3038,7 @@ case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) @@ -3050,7 +3050,7 @@ if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` @@ -3806,7 +3806,7 @@ fi # Get the real and link names of the library. - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" Index: README =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/Attic/README,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- README 4 Feb 2005 09:50:53 -0000 1.1.2.1 +++ README 7 Mar 2005 01:51:31 -0000 1.1.2.2 @@ -1 +1,18 @@ -This is a plugin for syncing Mozilla Calendar / Sunbird. +Plugin for syncing with Mozilla Calendar / Sunbird +-------------------------------------------------- + +(C) 2005 by Markus Meyer +Licensed under the GNU GPL + +1. Does it work? + +Yes, it does. You can sync one or more calendars, both local and on WebDAV +servers. I am syncing my S55 phone with it, and it works fine. However, +since it has not been widely tested, consider it beta or even alpha quality +code. Therefore it is recommended to make frequent backups of your data. + +2. Where are the settings? + +There is no graphical settings dialog yet. Configuration is done via +environment variables. The following variables are defined: + |
From: Markus M. <ms...@us...> - 2005-03-07 01:51:45
|
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin/macros In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30137/macros Added Files: Tag: branch_08X neon-test.m4 neon-xml-parser.m4 neon.m4 socklen-arg-type.m4 Log Message: added webdav support --- NEW FILE: neon-xml-parser.m4 --- # Copyright (C) 1998-2004 Joe Orton <jo...@ma...> -*- autoconf -*- # # This file is free software; you may copy and/or distribute it with # or without modifications, as long as this notice is preserved. # This software is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. # The above license applies to THIS FILE ONLY, the neon library code # itself may be copied and distributed under the terms of the GNU # LGPL, see COPYING.LIB for more details # This file is part of the neon HTTP/WebDAV client library. # See http://www.webdav.org/neon/ for the latest version. # Please send any feedback to <ne...@we...> # Check for XML parser, supporting libxml 2.x and expat 1.95.x, # or a bundled copy of expat. # * Bundled expat if a directory name argument is passed # -> expat dir must contain minimal expat sources, i.e. # xmltok, xmlparse sub-directories. See sitecopy/cadaver for # examples of how to do this. # # Usage: # NEON_XML_PARSER() # or # NEON_XML_PARSER(expat-dir) dnl Find expat: run $1 if found, else $2 AC_DEFUN([NE_XML_EXPAT], [ AC_CHECK_HEADER(expat.h, [AC_CHECK_LIB(expat, XML_SetXmlDeclHandler, [ AC_DEFINE(HAVE_EXPAT, 1, [Define if you have expat]) neon_xml_parser_message="expat" NEON_LIBS="$NEON_LIBS -lexpat" neon_xml_parser=expat ], [$1])], [$1]) ]) dnl Find libxml2: run $1 if found, else $2 AC_DEFUN([NE_XML_LIBXML2], [ AC_CHECK_PROG(XML2_CONFIG, xml2-config, xml2-config) if test -n "$XML2_CONFIG"; then neon_xml_parser_message="libxml `$XML2_CONFIG --version`" AC_DEFINE(HAVE_LIBXML, 1, [Define if you have libxml]) # xml2-config in some versions erroneously includes -I/include # in the --cflags output. CPPFLAGS="$CPPFLAGS `$XML2_CONFIG --cflags | sed 's| -I/include||g'`" NEON_LIBS="$NEON_LIBS `$XML2_CONFIG --libs | sed 's|-L/usr/lib ||g'`" AC_CHECK_HEADERS(libxml/xmlversion.h libxml/parser.h,,[ AC_MSG_ERROR([could not find parser.h, libxml installation problem?])]) neon_xml_parser=libxml2 else $1 fi ]) dnl Configure for a bundled expat build. AC_DEFUN([NE_XML_BUNDLED_EXPAT], [ AC_REQUIRE([AC_C_BIGENDIAN]) # Define XML_BYTE_ORDER for expat sources. if test $ac_cv_c_bigendian = "yes"; then ne_xml_border=21 else ne_xml_border=12 fi # mini-expat doesn't pick up config.h CPPFLAGS="$CPPFLAGS -DXML_BYTE_ORDER=$ne_xml_border -DXML_DTD -I$1/xmlparse -I$1/xmltok" # Use the bundled expat sources AC_LIBOBJ($1/xmltok/xmltok) AC_LIBOBJ($1/xmltok/xmlrole) AC_LIBOBJ($1/xmlparse/xmlparse) AC_LIBOBJ($1/xmlparse/hashtable) AC_DEFINE(HAVE_EXPAT) AC_DEFINE(HAVE_XMLPARSE_H, 1, [Define if using expat which includes xmlparse.h]) ]) AC_DEFUN([NEON_XML_PARSER], [ dnl Switches to force choice of library AC_ARG_WITH([libxml2], AC_HELP_STRING([--with-libxml2], [force use of libxml 2.x])) AC_ARG_WITH([expat], AC_HELP_STRING([--with-expat], [force use of expat])) dnl Flag to force choice of included expat, if available. ifelse($#, 1, [ AC_ARG_WITH([included-expat], AC_HELP_STRING([--with-included-expat], [use bundled expat sources]),, with_included_expat=no)], with_included_expat=no) if test "$NEON_NEED_XML_PARSER" = "yes"; then # Find an XML parser neon_xml_parser=none # Forced choice of expat: case $with_expat in yes) NE_XML_EXPAT([AC_MSG_ERROR([expat library not found, cannot proceed])]) ;; no) ;; */libexpat.la) # Special case for Subversion ne_expdir=`echo $with_expat | sed 's:/libexpat.la$::'` AC_DEFINE(HAVE_EXPAT) CPPFLAGS="$CPPFLAGS -I$ne_expdir" if test "x${NEON_TARGET}" = "xlibneon.la"; then NEON_LTLIBS=$with_expat else # no dependency on libexpat => crippled libneon, so do partial install ALLOW_INSTALL=lib fi neon_xml_parser=expat neon_xml_parser_message="expat in $ne_expdir" ;; /*) AC_MSG_ERROR([--with-expat does not take a directory argument]) ;; esac # If expat wasn't specifically enabled and libxml was: if test "${neon_xml_parser}-${with_libxml}-${with_included_expat}" = "none-yes-no"; then NE_XML_LIBXML2( [AC_MSG_ERROR([libxml2.x library not found, cannot proceed])]) fi # Otherwise, by default search for libxml2 then expat: if test "${neon_xml_parser}-${with_included_expat}" = "none-no"; then NE_XML_LIBXML2([NE_XML_EXPAT([:])]) fi # If an XML parser still has not been found, fail or use the bundled expat if test "$neon_xml_parser" = "none"; then m4_if($1, [], [AC_MSG_ERROR([no XML parser was found: expat or libxml 2.x required])], [# Configure the bundled copy of expat NE_XML_BUNDLED_EXPAT($1) neon_xml_parser_message="bundled expat in $1"]) fi AC_MSG_NOTICE([XML parser used: $neon_xml_parser_message]) fi ]) --- NEW FILE: neon-test.m4 --- # Copyright (C) 2001-2002 Joe Orton <jo...@ma...> -*- autoconf -*- # # This file is free software; you may copy and/or distribute it with # or without modifications, as long as this notice is preserved. # This software is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. # The above license applies to THIS FILE ONLY, the neon library code # itself may be copied and distributed under the terms of the GNU # LGPL, see COPYING.LIB for more details # This file is part of the neon HTTP/WebDAV client library. # See http://www.webdav.org/neon/ for the latest version. # Please send any feedback to <ne...@we...> # Tests needed for the neon-test common test code. AC_DEFUN([NEON_TEST], [ AC_REQUIRE([NEON_COMMON_CHECKS]) AC_REQUIRE([AC_TYPE_PID_T]) AC_REQUIRE([AC_HEADER_TIME]) dnl NEON_XML_PARSER may add things (e.g. -I/usr/local/include) to dnl CPPFLAGS which make "gcc -Werror" fail in NEON_FORMAT; suggest dnl this macro is used first. AC_BEFORE([$0], [NEON_XML_PARSER]) AC_CHECK_HEADERS(sys/time.h) AC_CHECK_FUNCS(pipe isatty usleep shutdown) AC_REQUIRE([NE_FIND_AR]) NEON_FORMAT(time_t, [ #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #endif]) ]) --- NEW FILE: neon.m4 --- # Copyright (C) 1998-2004 Joe Orton <jo...@ma...> -*- autoconf -*- # # This file is free software; you may copy and/or distribute it with # or without modifications, as long as this notice is preserved. # This software is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. # The above license applies to THIS FILE ONLY, the neon library code # itself may be copied and distributed under the terms of the GNU # LGPL, see COPYING.LIB for more details # This file is part of the neon HTTP/WebDAV client library. # See http://www.webdav.org/neon/ for the latest version. # Please send any feedback to <ne...@we...> # # Usage: # # NEON_LIBRARY # or NEON_BUNDLED(srcdir, [ACTIONS-IF-BUNDLED], [ACTIONS-IF-NOT_BUNDLED]) # or NEON_VPATH_BUNDLED(srcdir, builddir, # [ACTIONS-IF-BUNDLED], [ACTIONS-IF-NOT-BUNDLED]) # # where srcdir is the location of bundled neon 'src' directory. # If using a VPATH-enabled build, builddir is the location of the # build directory corresponding to srcdir. # # If a bundled build *is* being used, ACTIONS-IF-BUNDLED will be # evaluated. These actions should ensure that 'make' is run # in srcdir, and that one of NEON_NORMAL_BUILD or NEON_LIBTOOL_BUILD # is called. # # After calling one of the above macros, if the NEON_NEED_XML_PARSER # variable is set to "yes", then you must configure an XML parser # too. You can do this your own way, or do it easily using the # NEON_XML_PARSER() macro. Example usage for where we have bundled the # neon sources in a directory called libneon, and bundled expat # sources in a directory called 'expat'. # # NEON_BUNDLED(libneon, [ # NEON_XML_PARSER(expat) # NEON_NORMAL_BUILD # ]) # # Alternatively, for a simple standalone app with neon as a # dependancy, use just: # # NEON_LIBRARY # # and rely on the user installing neon correctly. # # You are free to configure an XML parser any other way you like, # but the end result must be, either expat or libxml will get linked # in, and HAVE_EXPAT or HAVE_LIBXML is defined appropriately. # # To set up the bundled build environment, call # # NEON_NORMAL_BUILD # or # NEON_LIBTOOL_BUILD # # depending on whether you are using libtool to build, or not. # Both these macros take an optional argument specifying the set # of object files you wish to build: if the argument is not given, # all of neon will be built. AC_DEFUN([NEON_BUNDLED],[ neon_bundled_srcdir=$1 neon_bundled_builddir=$1 NEON_COMMON_BUNDLED([$2], [$3]) ]) AC_DEFUN([NEON_VPATH_BUNDLED],[ neon_bundled_srcdir=$1 neon_bundled_builddir=$2 NEON_COMMON_BUNDLED([$3], [$4]) ]) AC_DEFUN([NEON_COMMON_BUNDLED],[ AC_PREREQ(2.50) AC_ARG_WITH(included-neon, AC_HELP_STRING([--with-included-neon], [force use of included neon library]), [neon_force_included="$withval"], [neon_force_included="no"]) NEON_COMMON # The colons are here so there is something to evaluate # in case the argument was not passed. if test "$neon_force_included" = "yes"; then : $1 else : $2 fi ]) dnl Not got any bundled sources: AC_DEFUN([NEON_LIBRARY],[ AC_PREREQ(2.50) neon_force_included=no neon_bundled_srcdir= neon_bundled_builddir= NEON_COMMON ]) AC_DEFUN([NEON_VERSIONS], [ # Define the current versions. NEON_VERSION_MAJOR=0 NEON_VERSION_MINOR=24 NEON_VERSION_RELEASE=7 NEON_VERSION_TAG= NEON_VERSION="${NEON_VERSION_MAJOR}.${NEON_VERSION_MINOR}.${NEON_VERSION_RELEASE}${NEON_VERSION_TAG}" # libtool library interface versioning. Release policy dictates that # for neon 0.x.y, each x brings an incompatible interface change, and # each y brings no interface change, and since this policy has been # followed since 0.1, x == CURRENT, y == RELEASE, 0 == AGE. For # 1.x.y, this will become N + x == CURRENT, y == RELEASE, x == AGE, # where N is constant (and equal to CURRENT + 1 from the final 0.x # release) NEON_INTERFACE_VERSION="${NEON_VERSION_MINOR}:${NEON_VERSION_RELEASE}:0" AC_DEFINE_UNQUOTED(NEON_VERSION, "${NEON_VERSION}", [Define to be the neon version string]) AC_DEFINE_UNQUOTED(NEON_VERSION_MAJOR, [(${NEON_VERSION_MAJOR})], [Define to be major number of neon version]) AC_DEFINE_UNQUOTED(NEON_VERSION_MINOR, [(${NEON_VERSION_MINOR})], [Define to be minor number of neon version]) ]) dnl Define the minimum required version AC_DEFUN([NEON_REQUIRE], [ neon_require_major=$1 neon_require_minor=$2 ]) dnl Check that the external library found in a given location dnl matches the min. required version (if any). Requires that dnl NEON_CONFIG be set the the full path of a valid neon-config dnl script dnl dnl Usage: dnl NEON_CHECK_VERSION(ACTIONS-IF-OKAY, ACTIONS-IF-FAILURE) dnl AC_DEFUN([NEON_CHECK_VERSION], [ if test "x$neon_require_major" = "x"; then # Nothing to check. ne_goodver=yes ne_libver="(version unknown)" else # Check whether the library is of required version ne_save_LIBS="$LIBS" ne_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS `$NEON_CONFIG --cflags`" LIBS="$LIBS `$NEON_CONFIG --libs`" ne_libver=`$NEON_CONFIG --version | sed -e "s/neon //g"` # Check whether it's possible to link against neon AC_CACHE_CHECK([linking against neon], [ne_cv_lib_neon], AC_TRY_LINK_FUNC([ne_version_match], [ne_cv_lib_neon=yes], [ne_cv_lib_neon=no])) if test "$ne_cv_lib_neon" = "yes"; then # Now check whether the neon library version is satisfactory AC_CACHE_CHECK([neon library version], [ne_cv_lib_neonver], AC_TRY_RUN([#include <ne_utils.h> int main(int argc, char **argv) { return ne_version_match($neon_require_major, $neon_require_minor); }], ne_cv_lib_neonver=yes, ne_cv_lib_neonver=no)) fi ne_goodver=$ne_cv_lib_neonver LIBS=$ne_save_LIBS CFLAGS=$ne_save_CFLAGS fi if test "$ne_goodver" = "yes"; then AC_MSG_NOTICE([using neon library $ne_libver]) $1 else AC_MSG_NOTICE([incompatible neon library version $ne_libver: wanted $neon_require_major.$neon_require_minor]) $2 fi]) dnl NEON_CHECK_SUPPORT(feature, var) AC_DEFUN([NEON_CHECK_SUPPORT], [ if $NEON_CONFIG --support $1 >/dev/null; then neon_$1_message="supported by neon" $2=yes else neon_$1_message="not supported by neon" $2=no fi ]) AC_DEFUN([NEON_USE_EXTERNAL], [ # Configure to use an external neon, given a neon-config script # found at $NEON_CONFIG. neon_prefix=`$NEON_CONFIG --prefix` NEON_CHECK_VERSION([ CFLAGS="$CFLAGS `$NEON_CONFIG --cflags`" NEON_LIBS="$NEON_LIBS `$NEON_CONFIG --libs`" neon_library_message="library in ${neon_prefix} (`$NEON_CONFIG --version`)" neon_xml_parser_message="using whatever neon uses" NEON_CHECK_SUPPORT([ssl], [NEON_SUPPORTS_SSL]) NEON_CHECK_SUPPORT([zlib], [NEON_SUPPORTS_ZLIB]) neon_got_library=yes ], [neon_got_library=no]) ]) AC_DEFUN([NEON_COMMON],[ AC_REQUIRE([NEON_COMMON_CHECKS]) NEON_VERSIONS AC_ARG_WITH(neon, [ --with-neon[[=DIR]] specify location of neon library], [case $withval in yes|no) neon_force_external=$withval; neon_ext_path= ;; *) neon_force_external=yes; neon_ext_path=$withval ;; esac;], [ neon_force_external=no neon_ext_path= ]) if test "$neon_force_included" = "no"; then # There is no included neon source directory, or --with-included-neon # wasn't given (so we're not forced to use it). # Default to no external neon. neon_got_library=no if test "x$neon_ext_path" = "x"; then AC_PATH_PROG([NEON_CONFIG], neon-config, none) if test "x${NEON_CONFIG}" = "xnone"; then AC_MSG_NOTICE([no external neon library found]) elif test -x "${NEON_CONFIG}"; then NEON_USE_EXTERNAL else AC_MSG_NOTICE([ignoring non-executable ${NEON_CONFIG}]) fi else AC_MSG_CHECKING([for neon library in $neon_ext_path]) NEON_CONFIG="$neon_ext_path/bin/neon-config" if test -x ${NEON_CONFIG}; then AC_MSG_RESULT([found]) NEON_USE_EXTERNAL else AC_MSG_RESULT([not found]) # ...will fail since force_external=yes fi fi if test "$neon_got_library" = "no"; then if test $neon_force_external = yes; then AC_MSG_ERROR([could not use external neon library]) elif test -n "$neon_bundled_srcdir"; then # Couldn't find external neon, forced to use bundled sources neon_force_included="yes" else # Couldn't find neon, and don't have bundled sources AC_MSG_ERROR(could not find neon) fi fi fi # This isn't a simple 'else' branch, since neon_force_included # is set to yes if the search fails. if test "$neon_force_included" = "yes"; then AC_MSG_NOTICE([using bundled neon ($NEON_VERSION)]) NEON_BUILD_BUNDLED="yes" LIBNEON_SOURCE_CHECKS CFLAGS="$CFLAGS -I$neon_bundled_srcdir" NEON_LIBS="-L$neon_bundled_builddir -lneon $NEON_LIBS" NEON_NEED_XML_PARSER=yes neon_library_message="included libneon (${NEON_VERSION})" else # Don't need to configure an XML parser NEON_NEED_XML_PARSER=no NEON_BUILD_BUNDLED="yes" fi AC_SUBST(NEON_BUILD_BUNDLED) ]) dnl AC_SEARCH_LIBS done differently. Usage: dnl NE_SEARCH_LIBS(function, libnames, [extralibs], [actions-if-not-found], dnl [actions-if-found]) dnl Tries to find 'function' by linking againt `-lLIB $NEON_LIBS' for each dnl LIB in libnames. If link fails and 'extralibs' is given, will also dnl try linking against `-lLIB extralibs $NEON_LIBS`. dnl Once link succeeds, `-lLIB [extralibs]` is prepended to $NEON_LIBS, and dnl `actions-if-found' are executed, if given. dnl If link never succeeds, run `actions-if-not-found', if given, else dnl give an error and fail configure. AC_DEFUN([NE_SEARCH_LIBS], [ AC_CACHE_CHECK([for library containing $1], [ne_cv_libsfor_$1], [ AC_TRY_LINK_FUNC($1, [ne_cv_libsfor_$1="none needed"], [ ne_sl_save_LIBS=$LIBS ne_cv_libsfor_$1="not found" for lib in $2; do LIBS="$ne_sl_save_LIBS -l$lib $NEON_LIBS" AC_TRY_LINK_FUNC($1, [ne_cv_libsfor_$1="-l$lib"; break]) m4_if($3, [], [], dnl If $3 is specified, then... [LIBS="$ne_sl_save_LIBS -l$lib $3 $NEON_LIBS" AC_TRY_LINK_FUNC($1, [ne_cv_libsfor_$1="-l$lib $3"; break])]) done LIBS=$ne_sl_save_LIBS])]) if test "$ne_cv_libsfor_$1" = "not found"; then m4_if($4, [], [AC_MSG_ERROR([could not find library containing $1])], [$4]) elif test "$ne_cv_libsfor_$1" != "none needed"; then NEON_LIBS="$ne_cv_libsfor_$1 $NEON_LIBS" $5 fi]) dnl Check for presence and suitability of zlib library AC_DEFUN([NEON_ZLIB], [ AC_ARG_WITH(zlib, AC_HELP_STRING([--without-zlib], [disable zlib support]), ne_use_zlib=$withval, ne_use_zlib=yes) NEON_SUPPORTS_ZLIB=no AC_SUBST(NEON_SUPPORTS_ZLIB) if test "$ne_use_zlib" = "yes"; then AC_CHECK_HEADER(zlib.h, [ AC_CHECK_LIB(z, inflate, [ NEON_LIBS="$NEON_LIBS -lz" NEON_CFLAGS="$NEON_CFLAGS -DNEON_ZLIB" NEON_SUPPORTS_ZLIB=yes neon_zlib_message="found in -lz" ], [neon_zlib_message="zlib not found"]) ], [neon_zlib_message="zlib not found"]) else neon_zlib_message="zlib disabled" fi ]) AC_DEFUN([NE_MACOSX], [ # Check for Darwin, which needs extra cpp and linker flags. AC_CACHE_CHECK([for Darwin], ne_cv_os_macosx, [ case `uname -s 2>/dev/null` in Darwin) ne_cv_os_macosx=yes ;; *) ne_cv_os_macosx=no ;; esac]) if test $ne_cv_os_macosx = yes; then CPPFLAGS="$CPPFLAGS -no-cpp-precomp" LDFLAGS="$LDFLAGS -flat_namespace" fi ]) AC_DEFUN([NEON_COMMON_CHECKS], [ # These checks are done whether or not the bundled neon build # is used. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_PROG_CC_STDC]) AC_REQUIRE([AC_LANG_C]) AC_REQUIRE([AC_ISC_POSIX]) AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_C_CONST]) AC_REQUIRE([AC_TYPE_SIZE_T]) AC_REQUIRE([AC_TYPE_OFF_T]) AC_REQUIRE([NE_MACOSX]) AC_REQUIRE([AC_PROG_MAKE_SET]) AC_REQUIRE([AC_HEADER_STDC]) AC_CHECK_HEADERS([errno.h stdarg.h string.h stdlib.h]) NEON_FORMAT(size_t,,u) dnl size_t is unsigned; use %u formats NEON_FORMAT(off_t) NEON_FORMAT(ssize_t) ]) AC_DEFUN([NEON_FORMAT_PREP], [ AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) if test "$GCC" = "yes"; then AC_CACHE_CHECK([for gcc -Wformat -Werror sanity], ne_cv_cc_werror, [ # See whether a simple test program will compile without errors. ne_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -Wformat -Werror" AC_TRY_COMPILE([#include <sys/types.h> #include <stdio.h>], [int i = 42; printf("%d", i);], [ne_cv_cc_werror=yes], [ne_cv_cc_werror=no]) CPPFLAGS=$ne_save_CPPFLAGS]) ne_fmt_trycompile=$ne_cv_cc_werror else ne_fmt_trycompile=no fi ]) dnl NEON_FORMAT(TYPE[, HEADERS[, [SPECIFIER]]) dnl dnl This macro finds out which modifier is needed to create a dnl printf format string suitable for printing integer type TYPE (which dnl may be an int, long, or long long). dnl The default specifier is 'd', if SPECIFIER is not given. dnl TYPE may be defined in HEADERS; sys/types.h is always used first. AC_DEFUN([NEON_FORMAT], [ AC_REQUIRE([NEON_FORMAT_PREP]) AC_CHECK_SIZEOF($1, [$2]) dnl Work out which specifier character to use m4_ifdef([ne_spec], [m4_undefine([ne_spec])]) m4_if($#, 3, [m4_define(ne_spec,$3)], [m4_define(ne_spec,d)]) AC_CACHE_CHECK([how to print $1], [ne_cv_fmt_$1], [ ne_cv_fmt_$1=none if test $ne_fmt_trycompile = yes; then oflags="$CPPFLAGS" # Consider format string mismatches as errors CPPFLAGS="$CPPFLAGS -Wformat -Werror" dnl obscured for m4 quoting: "for str in d ld qd; do" for str in ne_spec l]ne_spec[ q]ne_spec[; do AC_TRY_COMPILE([#include <sys/types.h> $2 #include <stdio.h>], [$1 i = 1; printf("%$str", i);], [ne_cv_fmt_$1=$str; break]) done CPPFLAGS=$oflags else # Best guess. Don't have to be too precise since we probably won't # get a warning message anyway. case $ac_cv_sizeof_$1 in $ac_cv_sizeof_int) ne_cv_fmt_$1="ne_spec" ;; $ac_cv_sizeof_long) ne_cv_fmt_$1="l]ne_spec[" ;; $ac_cv_sizeof_long_long) ne_cv_fmt_$1="ll]ne_spec[" ;; esac fi ]) if test "x$ne_cv_fmt_$1" = "xnone"; then AC_MSG_ERROR([format string for $1 not found]) fi AC_DEFINE_UNQUOTED([NE_FMT_]translit($1, a-z, A-Z), "$ne_cv_fmt_$1", [Define to be printf format string for $1]) ]) dnl Wrapper for AC_CHECK_FUNCS; uses libraries from $NEON_LIBS. AC_DEFUN([NE_CHECK_FUNCS], [ ne_cf_save_LIBS=$LIBS LIBS="$LIBS $NEON_LIBS" AC_CHECK_FUNCS($@) LIBS=$ne_cf_save_LIBS]) dnl Checks needed when compiling the neon source. AC_DEFUN([LIBNEON_SOURCE_CHECKS], [ dnl Run all the normal C language/compiler tests AC_REQUIRE([NEON_COMMON_CHECKS]) dnl Needed for building the MD5 code. AC_REQUIRE([AC_C_BIGENDIAN]) dnl Is strerror_r present; if so, which variant AC_REQUIRE([AC_FUNC_STRERROR_R]) AC_CHECK_HEADERS([strings.h sys/time.h limits.h sys/select.h arpa/inet.h \ signal.h sys/socket.h netinet/in.h netinet/tcp.h netdb.h]) AC_REQUIRE([NE_SNPRINTF]) AC_REPLACE_FUNCS(strcasecmp) AC_CHECK_FUNCS(signal setvbuf setsockopt stpcpy) if test "$ac_cv_func_stpcpy" = "yes"; then AC_CHECK_DECLS(stpcpy) fi # Modern AIXes with the "Linux-like" libc have an undeclared stpcpy AH_BOTTOM([#if defined(HAVE_STPCPY) && !HAVE_DECL_STPCPY && !defined(stpcpy) char *stpcpy(char *, const char *); #endif]) # Unixware 7 can only link gethostbyname with -lnsl -lsocket # Pick up -lsocket first, then the gethostbyname check will work. # QNX has gethostbyname in -lsocket. BeOS only has it in -lbind. NE_SEARCH_LIBS(socket, socket inet) NE_SEARCH_LIBS(gethostbyname, socket nsl bind) # Enable getaddrinfo() support only if all the necessary functions # are found. ne_enable_gai=yes NE_CHECK_FUNCS(getaddrinfo gai_strerror inet_ntop,,[ne_enable_gai=no; break]) if test $ne_enable_gai = yes; then AC_DEFINE(USE_GETADDRINFO, 1, [Define if getaddrinfo() should be used]) AC_CACHE_CHECK([for working AI_ADDRCONFIG], [ne_cv_gai_addrconfig], [ AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>], [struct addrinfo hints = {0}, *result; hints.ai_flags = AI_ADDRCONFIG; if (getaddrinfo("localhost", NULL, &hints, &result) != 0) return 1;])], ne_cv_gai_addrconfig=yes, ne_cv_gai_addrconfig=no)]) if test $ne_cv_gai_addrconfig = yes; then AC_DEFINE(USE_GAI_ADDRCONFIG, 1, [Define if getaddrinfo supports AI_ADDRCONFIG]) fi else # Checks for non-getaddrinfo() based resolver interfaces. NE_SEARCH_LIBS(hstrerror, resolv,,[:]) NE_CHECK_FUNCS(hstrerror) # Older Unixes don't declare h_errno. AC_CHECK_DECL(h_errno,,,[#define _XOPEN_SOURCE_EXTENDED 1 #include <netdb.h>]) fi AC_CHECK_MEMBERS(struct tm.tm_gmtoff,, AC_MSG_WARN([no timezone handling in date parsing on this platform]), [#include <time.h>]) ifdef([neon_no_zlib], [ neon_zlib_message="zlib disabled" NEON_SUPPORTS_ZLIB=no ], [ NEON_ZLIB() ]) # Conditionally enable ACL support AC_MSG_CHECKING([whether to enable ACL support in neon]) if test "x$neon_no_acl" = "xyes"; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) NEON_EXTRAOBJS="$NEON_EXTRAOBJS ne_acl" fi NEON_SSL() NEON_SOCKS() NEON_GSSAPI() AC_SUBST(NEON_CFLAGS) AC_SUBST(NEON_LIBS) AC_SUBST(NEON_LTLIBS) ]) dnl Call to put lib/snprintf.o in LIBOBJS and define HAVE_SNPRINTF_H dnl if snprintf isn't in libc. AC_DEFUN([NEON_REPLACE_SNPRINTF], [ # Check for snprintf AC_CHECK_FUNC(snprintf,,[ AC_DEFINE(HAVE_SNPRINTF_H, 1, [Define if need to include snprintf.h]) AC_LIBOBJ(lib/snprintf)]) ]) dnl turn off webdav, boo hoo. AC_DEFUN([NEON_WITHOUT_WEBDAV], [ neon_no_webdav=yes neon_no_acl=yes NEON_NEED_XML_PARSER=no neon_xml_parser_message="none needed" ]) dnl Turn off zlib support AC_DEFUN([NEON_WITHOUT_ZLIB], [ define(neon_no_zlib, yes) ]) AC_DEFUN([NEON_WITHOUT_ACL], [ # Turn off ACL support neon_no_acl=yes ]) dnl Common macro to NEON_LIBTOOL_BUILD and NEON_NORMAL_BUILD dnl Sets NEONOBJS appropriately if it has not already been set. dnl dnl NOT FOR EXTERNAL USE: use LIBTOOL_BUILD or NORMAL_BUILD. dnl AC_DEFUN([NEON_COMMON_BUILD], [ # Using the default set of object files to build. # Add the extension to EXTRAOBJS ne="$NEON_EXTRAOBJS" NEON_EXTRAOBJS= for o in $ne; do NEON_EXTRAOBJS="$NEON_EXTRAOBJS $o.$NEON_OBJEXT" done AC_MSG_CHECKING(whether to enable WebDAV support in neon) dnl Did they want DAV support? if test "x$neon_no_webdav" = "xyes"; then # No WebDAV support AC_MSG_RESULT(no) NEONOBJS="$NEONOBJS \$(NEON_BASEOBJS)" NEON_CFLAGS="$NEON_CFLAGS -DNEON_NODAV" NEON_SUPPORTS_DAV=no AC_DEFINE(NEON_NODAV, 1, [Enable if built without WebDAV support]) else # WebDAV support NEON_SUPPORTS_DAV=yes NEONOBJS="$NEONOBJS \$(NEON_DAVOBJS)" # Turn on DAV locking please then. AC_DEFINE(USE_DAV_LOCKS, 1, [Support WebDAV locking through the library]) AC_MSG_RESULT(yes) fi AC_SUBST(NEON_TARGET) AC_SUBST(NEON_OBJEXT) AC_SUBST(NEONOBJS) AC_SUBST(NEON_EXTRAOBJS) AC_SUBST(NEON_LINK_FLAGS) AC_SUBST(NEON_SUPPORTS_DAV) ]) # The libtoolized build case: AC_DEFUN([NEON_LIBTOOL_BUILD], [ NEON_TARGET=libneon.la NEON_OBJEXT=lo NEON_COMMON_BUILD($#, $*) ]) dnl Find 'ar' and 'ranlib', fail if ar isn't found. AC_DEFUN([NE_FIND_AR], [ # Search in /usr/ccs/bin for Solaris ne_PATH=$PATH:/usr/ccs/bin AC_PATH_TOOL(AR, ar, notfound, $ne_PATH) if test "x$AR" = "xnotfound"; then AC_MSG_ERROR([could not find ar tool]) fi AC_PATH_TOOL(RANLIB, ranlib, :, $ne_PATH) ]) # The non-libtool build case: AC_DEFUN([NEON_NORMAL_BUILD], [ NEON_TARGET=libneon.a NEON_OBJEXT=o AC_REQUIRE([NE_FIND_AR]) NEON_COMMON_BUILD($#, $*) ]) AC_DEFUN([NE_SNPRINTF], [ AC_CHECK_FUNCS(snprintf vsnprintf,,[ ne_save_LIBS=$LIBS LIBS="$LIBS -lm" # Always need -lm AC_CHECK_LIB(trio, trio_vsnprintf, [AC_CHECK_HEADERS(trio.h,, AC_MSG_ERROR([trio installation problem? libtrio found but not trio.h])) AC_MSG_NOTICE(using trio printf replacement library) NEON_LIBS="$NEON_LIBS -ltrio -lm" NEON_CFLAGS="$NEON_CFLAGS -DNEON_TRIO"], [AC_MSG_NOTICE([no vsnprintf/snprintf detected in C library]) AC_MSG_ERROR([Install the trio library from http://daniel.haxx.se/trio/])]) LIBS=$ne_save_LIBS break ])]) dnl Usage: NE_CHECK_SSLVER(variable, version-string, version-hex) dnl Define 'variable' to 'yes' if OpenSSL version is >= version-hex AC_DEFUN([NE_CHECK_SSLVER], [ AC_CACHE_CHECK([OpenSSL version is >= $2], $1, [ AC_EGREP_CPP(good, [#include <openssl/opensslv.h> #if OPENSSL_VERSION_NUMBER >= $3 good #endif], [$1=yes], [$1=no])])]) dnl Less noisy replacement for PKG_CHECK_MODULES AC_DEFUN([NE_PKG_CONFIG], [ AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test "$PKG_CONFIG" = "no"; then : Not using pkg-config $4 else AC_CACHE_CHECK([for $2 pkg-config data], ne_cv_pkg_$2, [if $PKG_CONFIG $2; then ne_cv_pkg_$2=yes else ne_cv_pkg_$2=no fi]) if test "$ne_cv_pkg_$2" = "yes"; then $1_CFLAGS=`$PKG_CONFIG --cflags $2` $1_LIBS=`$PKG_CONFIG --libs $2` : Using provided pkg-config data $3 else : No pkg-config for $2 provided $4 fi fi]) dnl Check for OpenSSL AC_DEFUN([NEON_SSL], [ AC_ARG_WITH(ssl, [AC_HELP_STRING([--with-ssl], [enable OpenSSL support])]) AC_ARG_WITH(egd, [[ --with-egd[=PATH] enable EGD support [using EGD socket at PATH]]]) case $with_ssl in yes) NE_PKG_CONFIG(NE_SSL, openssl, [AC_MSG_NOTICE(using SSL library configuration from pkg-config) CPPFLAGS="$CPPFLAGS ${NE_SSL_CFLAGS}" NEON_LIBS="$NEON_LIBS ${NE_SSL_LIBS}"], [# libcrypto may require -ldl if using the OpenSSL ENGINE branch NE_SEARCH_LIBS(RSA_new, crypto, -ldl) NE_SEARCH_LIBS(SSL_library_init, ssl)]) AC_CHECK_HEADERS(openssl/ssl.h openssl/opensslv.h,, [AC_MSG_ERROR([OpenSSL headers not found, cannot enable SSL support])]) # Enable EGD support if using 0.9.7 or newer NE_CHECK_SSLVER(ne_cv_lib_ssl097, 0.9.7, 0x00907000L) if test "$ne_cv_lib_ssl097" = "yes"; then AC_MSG_NOTICE([OpenSSL >= 0.9.7; EGD support not needed in neon]) neon_ssl_message="OpenSSL (0.9.7 or later)" else # Fail if OpenSSL is older than 0.9.6 NE_CHECK_SSLVER(ne_cv_lib_ssl096, 0.9.6, 0x00906000L) if test "$ne_cv_lib_ssl096" != "yes"; then AC_MSG_ERROR([OpenSSL 0.9.6 or later is required]) fi neon_ssl_message="OpenSSL (0.9.6 or later)" case "$with_egd" in yes|no) ne_cv_lib_sslegd=$with_egd ;; /*) ne_cv_lib_sslegd=yes AC_DEFINE_UNQUOTED([EGD_PATH], "$with_egd", [Define to specific EGD socket path]) ;; *) # Guess whether EGD support is needed AC_CACHE_CHECK([whether to enable EGD support], [ne_cv_lib_sslegd], [if test -r /dev/random || test -r /dev/urandom; then ne_cv_lib_sslegd=no else ne_cv_lib_sslegd=yes fi]) ;; esac if test "$ne_cv_lib_sslegd" = "yes"; then AC_MSG_NOTICE([EGD support enabled for seeding OpenSSL PRNG]) AC_DEFINE([ENABLE_EGD], 1, [Define if EGD should be supported]) fi fi NEON_SUPPORTS_SSL=yes NEON_CFLAGS="$NEON_CFLAGS -DNEON_SSL" NEON_EXTRAOBJS="$NEON_EXTRAOBJS ne_openssl" ;; *) # Default to off; only create crypto-enabled binaries if requested. neon_ssl_message="No SSL support" NEON_SUPPORTS_SSL=no NEON_EXTRAOBJS="$NEON_EXTRAOBJS ne_stubssl" ;; esac AC_SUBST(NEON_SUPPORTS_SSL) ]) dnl Check for Kerberos installation AC_DEFUN([NEON_GSSAPI], [ AC_PATH_PROG([KRB5_CONFIG], krb5-config, none, $PATH:/usr/kerberos/bin) if test "x$KRB5_CONFIG" != "xnone"; then ne_save_CPPFLAGS=$CPPFLAGS ne_save_LIBS=$NEON_LIBS NEON_LIBS="$NEON_LIBS `${KRB5_CONFIG} --libs gssapi`" CPPFLAGS="$CPPFLAGS `${KRB5_CONFIG} --cflags gssapi`" # MIT and Heimdal put gssapi.h in different places AC_CHECK_HEADERS(gssapi/gssapi.h gssapi.h, [ NE_CHECK_FUNCS(gss_init_sec_context, [ ne_save_CPPFLAGS=$CPPFLAGS ne_save_LIBS=$NEON_LIBS AC_MSG_NOTICE([GSSAPI authentication support enabled]) AC_DEFINE(HAVE_GSSAPI, 1, [Define if GSSAPI support is enabled]) AC_CHECK_HEADERS(gssapi/gssapi_generic.h) # MIT Kerberos lacks GSS_C_NT_HOSTBASED_SERVICE AC_CHECK_DECL([GSS_C_NT_HOSTBASED_SERVICE],, [AC_DEFINE([GSS_C_NT_HOSTBASED_SERVICE], gss_nt_service_name, [Define if GSS_C_NT_HOSTBASED_SERVICE is not defined otherwise])], [#ifdef HAVE_GSSAPI_GSSAPI_H #include <gssapi/gssapi.h> #else #include <gssapi.h> #endif])]) break ]) CPPFLAGS=$ne_save_CPPFLAGS NEON_LIBS=$ne_save_LIBS fi]) dnl Adds an --enable-warnings argument to configure to allow enabling dnl compiler warnings AC_DEFUN([NEON_WARNINGS],[ AC_REQUIRE([AC_PROG_CC]) dnl so that $GCC is set AC_ARG_ENABLE(warnings, AC_HELP_STRING(--enable-warnings, [enable compiler warnings])) if test "$enable_warnings" = "yes"; then case $GCC:`uname` in yes:*) CFLAGS="$CFLAGS -Wall -ansi-pedantic -Wmissing-declarations -Winline -Wshadow -Wreturn-type -Wsign-compare -Wundef -Wpointer-arith -Wcast-align -Wbad-function-cast -Wimplicit-prototypes -Wformat-security" if test -z "$with_ssl" -o "$with_ssl" = "no"; then # OpenSSL headers fail strict prototypes checks CFLAGS="$CFLAGS -Wstrict-prototypes" fi ;; no:OSF1) CFLAGS="$CFLAGS -check -msg_disable returnchecks -msg_disable alignment -msg_disable overflow" ;; no:IRIX) CFLAGS="$CFLAGS -fullwarn" ;; no:UnixWare) CFLAGS="$CFLAGS -v" ;; *) AC_MSG_WARN([warning flags unknown for compiler on this platform]) ;; esac fi ]) dnl Adds an --disable-debug argument to configure to allow disabling dnl debugging messages. dnl Usage: dnl NEON_WARNINGS([actions-if-debug-enabled], [actions-if-debug-disabled]) dnl AC_DEFUN([NEON_DEBUG], [ AC_ARG_ENABLE(debug, AC_HELP_STRING(--disable-debug,[disable runtime debugging messages])) # default is to enable debugging case $enable_debug in no) AC_MSG_NOTICE([debugging is disabled]) $2 ;; *) AC_MSG_NOTICE([debugging is enabled]) AC_DEFINE(NE_DEBUGGING, 1, [Define to enable debugging]) $1 ;; esac]) dnl Macro to optionally enable socks support AC_DEFUN([NEON_SOCKS], [ AC_ARG_WITH([socks], AC_HELP_STRING([--with-socks],[use SOCKSv5 library])) if test "$with_socks" = "yes"; then ne_save_LIBS=$LIBS AC_CHECK_HEADERS(socks.h, [AC_CHECK_LIB(socks5, connect, [AC_MSG_NOTICE([SOCKSv5 support enabled])], [AC_MSG_ERROR([could not find libsocks5 for SOCKS support])])], [AC_MSG_ERROR([could not find socks.h for SOCKS support])]) CFLAGS="$CFLAGS -DNEON_SOCKS" NEON_LIBS="$NEON_LIBS -lsocks5" LIBS=$ne_save_LIBS fi]) AC_DEFUN([NEON_WITH_LIBS], [ AC_ARG_WITH([libs], [[ --with-libs=DIR[:DIR2...] look for support libraries in DIR/{bin,lib,include}]], [case $with_libs in yes|no) AC_MSG_ERROR([--with-libs must be passed a directory argument]) ;; *) ne_save_IFS=$IFS; IFS=: for dir in $with_libs; do ne_add_CPPFLAGS="$ne_add_CPPFLAGS -I${dir}/include" ne_add_LDFLAGS="$ne_add_LDFLAGS -L${dir}/lib" ne_add_PATH="${ne_add_PATH}${dir}/bin:" done IFS=$ne_save_IFS CPPFLAGS="${ne_add_CPPFLAGS} $CPPFLAGS" LDFLAGS="${ne_add_LDFLAGS} $LDFLAGS" PATH=${ne_add_PATH}$PATH ;; esac])]) --- NEW FILE: socklen-arg-type.m4 --- dnl This function is (C) 1997,98,99 Stephan Kulow (co...@kd...) dnl Modifications (C) Joe Orton 1999,2000 AC_DEFUN([SOCKLEN_ARG_TYPE],[ dnl Check for the type of the third argument of getsockname AC_MSG_CHECKING(for the third argument of getsockname) AC_CACHE_VAL(ac_cv_ksize_t, [AC_TRY_COMPILE([ #include <sys/types.h> #include <sys/socket.h> ],[ socklen_t a=0; getsockname(0,(struct sockaddr*)0, &a); ], ac_cv_ksize_t=socklen_t, ac_cv_ksize_t=) if test -z "$ac_cv_ksize_t"; then ac_safe_cflags="$CFLAGS" if test "$GCC" = "yes"; then CFLAGS="-Werror $CFLAGS" fi AC_TRY_COMPILE([ #include <sys/types.h> #include <sys/socket.h> ],[ int a=0; getsockname(0,(struct sockaddr*)0, &a); ], ac_cv_ksize_t=int, ac_cv_ksize_t=size_t) CFLAGS="$ac_safe_cflags" fi ]) if test -z "$ac_cv_ksize_t"; then ac_cv_ksize_t=int fi AC_MSG_RESULT($ac_cv_ksize_t) AC_DEFINE_UNQUOTED(ksize_t, $ac_cv_ksize_t, [Define to be the type of the third argument to getsockname]) ]) |
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30137/src Modified Files: Tag: branch_08X Makefile Makefile.am Makefile.in sunbird_plugin.c tools.c Added Files: Tag: branch_08X webdav.c webdav.h Log Message: added webdav support Index: sunbird_plugin.c =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/sunbird_plugin.c,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -d -r1.1.2.2 -r1.1.2.3 --- sunbird_plugin.c 6 Mar 2005 01:30:49 -0000 1.1.2.2 +++ sunbird_plugin.c 7 Mar 2005 01:51:33 -0000 1.1.2.3 @@ -24,19 +24,77 @@ */ #include "sunbird_plugin.h" +#include "webdav.h" + +int do_webdav(ical_connection* conn, int upload) +{ + const char* username = g_getenv("MULTISYNC_SUNBIRD_WEBDAV_USERNAME"); + const char* password = g_getenv("MULTISYNC_SUNBIRD_WEBDAV_PASSWORD"); + int result = TRUE, tmpresult; + GList *f, *l; + GList* links = get_calendar_files_list(conn, TRUE); + GList* files = get_calendar_files_list(conn, FALSE); + + printf("--- do_webdav BEGIN ---\n"); + + if (!username || !password) + { + printf("WARNING: MULTISYNC_SUNBIRD_WEBDAV_USERNAME or MULTISYNC_SUNBIRD_WEBDAV_PASSWORD\n"); + printf(" not set, disabling WebDAV transfer...\n"); + return FALSE; + } + + l = g_list_first(links); + f = g_list_first(files); + while (l) + { + if (strncmp((char*)l->data, "http://", 7) == 0) + { + if (upload) + { + printf("Uploading %s -> %s\n", (char*)f->data, (char*)l->data); + tmpresult = webdav_upload((char*)f->data, (char*)l->data, (char*)username, (char*)password); + } else + { + printf("Downloading %s -> %s\n", (char*)l->data, (char*)f->data); + tmpresult = webdav_download((char*)f->data, (char*)l->data, (char*)username, (char*)password); + } + + if (tmpresult != WEBDAV_SUCCESS) + { + printf("ERROR: webdav function returned status %i\n", tmpresult); + result = FALSE; + } + } + + l = l->next; + f = f->next; + } + + free_string_list(files); + free_string_list(links); + + printf("--- do_webdav END ---\n"); + + return result; +} ical_connection* sync_connect(sync_pair* handle, connection_type type, sync_object_type object_types) { ical_connection *conn; - + + printf("*** sync_connect ***\n"); conn = g_malloc0(sizeof(ical_connection)); g_assert(conn); conn->sync_pair = handle; conn->commondata.object_types = object_types; conn->pending_changes = NULL; + /* FIXME: Error handling for webdav transfer */ + do_webdav(conn, 0); + sync_set_requestdone(conn->sync_pair); return conn; } @@ -44,6 +102,8 @@ void sync_disconnect(ical_connection *conn) { sync_pair *sync_pair = conn->sync_pair; + + printf("*** sync_disconnect ***\n"); if (conn->pending_changes) { @@ -56,7 +116,7 @@ sync_set_requestdone(sync_pair); } -GList* get_calendar_files_list() +GList* get_calendar_files_list(ical_connection* conn, int preserve_hyperlinks) { /* FIXME: We need an option dialog for that */ /* FIXME: We also should not use strtok (not multithread-safe) */ @@ -67,8 +127,31 @@ { char* pch; - for (pch = (char*)strtok(calendars_env->str, ":"); pch; pch = (char*)strtok(NULL, ":")) - files = g_list_append(files, (char*)strdup(pch)); + for (pch = (char*)strtok(calendars_env->str, ";"); pch; pch = (char*)strtok(NULL, ";")) + { + char* s; + + if (preserve_hyperlinks || strncmp(pch, "http://", 7) != 0) + { + /* Return string as-is */ + s = (char*)strdup(pch); + } else + { + /* Get base name, and preceed with data directory */ + GString* gstr; + char* p = pch + strlen(pch); + + while (p > pch && *p != '/') + p--; + + gstr = g_string_new(sync_get_datapath(conn->sync_pair)); + g_string_append(gstr, p); + s = (char*)strdup(gstr->str); + g_string_free(gstr, TRUE); + } + + files = g_list_append(files, s); + } g_string_free(calendars_env, TRUE); calendars_env = NULL; } @@ -85,12 +168,14 @@ void write_changes_to_calendars(GList* entries, ical_connection* conn) { char keyfile[256]; - GList* files = get_calendar_files_list(), *calendars = NULL, *cur, *cur2, *curfile, *curcal, *cached_entries = NULL; + GList* files = get_calendar_files_list(conn, FALSE), *calendars = NULL, *cur, *cur2, *curfile, *curcal, *cached_entries = NULL; GString *default_calendar = g_string_new(g_getenv("MULTISYNC_SUNBIRD_DEFAULT_CALENDAR")); + printf("--- write_changes_to_calendars ---\n"); + if (!files) return; - if (!default_calendar) + if (!(default_calendar && strlen(default_calendar->str) > 0)) { char *basename_ptr = (char*)strdup((char*)g_list_first(files)->data); char *basename = basename_ptr + strlen(basename_ptr) - 1; @@ -99,7 +184,7 @@ default_calendar = g_string_new(basename); free(basename_ptr); - printf("WARNING: MULTISYNC_SUNBIRD_DEFAULT_CALENDAR not set, using first calendar: %s", default_calendar->str); + printf("WARNING: MULTISYNC_SUNBIRD_DEFAULT_CALENDAR not set, using first calendar: %s\n", default_calendar->str); } strcpy(keyfile, sync_get_datapath(conn->sync_pair)); @@ -252,6 +337,8 @@ char keyfile[256]; GList *entries = NULL, *cached_entries = NULL, *files = NULL, *cur, *cur2; + printf("--- get_calendar_changes BEGIN ---\n"); + /* Free previous pending changes, if any */ if (conn->pending_changes) { @@ -260,7 +347,7 @@ conn->pending_changes = NULL; } - files = get_calendar_files_list(); + files = get_calendar_files_list(conn, FALSE); if (!files) return FALSE; @@ -395,6 +482,8 @@ free_events_list(entries); printf("Done!\n"); + printf("--- get_calendar_changes END (SUCCESS) ---\n"); + return TRUE; err: @@ -403,6 +492,8 @@ free_events_list(cached_entries); free_events_list(entries); printf("Done!\n"); + + printf("--- get_calendar_changes END (WITH ERROR) ---\n"); return FALSE; } @@ -451,6 +542,8 @@ syncobj_modify_result *result; GList *results = NULL; char* last_modified; + + printf("--- syncobj_modify_list BEGIN ---\n"); for (node = g_list_first(changes); node; node = node->next) { @@ -461,16 +554,25 @@ { calendar_entry* entry = (calendar_entry*)g_malloc0(sizeof(calendar_entry)); + entry->remote_change_type = obj->change_type; + if (obj->comp) entry->data = g_string_new(obj->comp); else - entry->data = NULL; // no data provided + { + /* No data provided, so we assume that the entry is deleted */ + /* This is needed because e.g. IRMC plugin always uses change_type == SYNC_OBJ_MODIFIED */ + entry->remote_change_type = SYNC_OBJ_HARDDELETED; + entry->data = NULL; + } if (obj->uid && strlen(obj->uid) > 0) + { entry->id = g_string_new(obj->uid); - else + } else { - char *s, buf[256]; + /* We don't have an ID yet, so always create a new entry */ + entry->remote_change_type = SYNC_OBJ_ADDED; /* Create ID */ entry->id = create_new_uid(); @@ -480,18 +582,35 @@ else printf("ERROR: Out of memory!\n"); - printf("Created new UID=%s for entry\n", entry->id->str); + printf("Created new id '%s' for entry\n", entry->id->str); + } + + /* Always add ID as "UID" to vcard, if not there already */ + if (entry->data) + { + char* uid = sync_get_key_data(entry->data->str, "UID"); + if (uid) + { + if (strcmp(uid, entry->id->str) != 0) + { + /* If this happens, something has gone totally wrong */ + printf("ERROR: uid='%s' not the same as id='%s'\n", uid, entry->id->str); + } + g_free(uid); + } else + { + /* Add UID to VCARD */ + char *s, buf[256]; - /* Add UID to VCARD */ - sprintf(buf, "BEGIN:VEVENT\r\nUID:%s", entry->id->str); - s = strstr(entry->data->str, "BEGIN:VEVENT"); - g_string_erase(entry->data, 0, s - entry->data->str + 12); - g_string_insert(entry->data, 0, buf); + sprintf(buf, "BEGIN:VEVENT\r\nUID:%s", entry->id->str); + s = strstr(entry->data->str, "BEGIN:VEVENT"); + g_string_erase(entry->data, 0, s - entry->data->str + 12); + g_string_insert(entry->data, 0, buf); + } } entry->last_modified = NULL; // will eventually be set later entry->sourcefile = NULL; // unknown at this stage - entry->remote_change_type = obj->change_type; if (obj->change_type == SYNC_OBJ_HARDDELETED) entry->deleted = 1; @@ -524,8 +643,8 @@ printf("entry->id = %s\n", entry->id->str); else printf("entry has no id\n"); - if (entry->data->str) - printf("entry->data = %s\n", entry->data->str); + if (entry->data) + printf("entry->data:\n%s\n", entry->data->str); else printf("entry has no data\n"); } else @@ -540,7 +659,7 @@ results = g_list_append(results, result); } - printf("syncobj_modify_list END\n"); + printf("--- syncobj_modify_list END\n ---"); sync_set_requestdata(results, conn->sync_pair); } @@ -589,7 +708,7 @@ GList* cur2; calendar_entry *e = (calendar_entry*)cur->data; - if (e->deleted) + if (e->deleted || e->remote_change_type == SYNC_OBJ_HARDDELETED) { /* Delete entry from cached entries list */ for (cur2 = g_list_first(cached_entries); cur2; cur2 = cur2->next) @@ -644,6 +763,9 @@ } free_events_list(cached_entries); + + /* FIXME: Error handling for webdav transfer */ + do_webdav(conn, 1); } else { printf("Sync done, no changes\n"); @@ -654,7 +776,7 @@ gboolean always_connected() { - return TRUE; + return FALSE; } char* short_name() Index: Makefile.am =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/Makefile.am,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- Makefile.am 4 Feb 2005 09:50:55 -0000 1.1.2.1 +++ Makefile.am 7 Mar 2005 01:51:33 -0000 1.1.2.2 @@ -11,7 +11,10 @@ libsunbird_plugin_la_SOURCES = \ tools.c tools.h \ - sunbird_plugin.c sunbird_plugin.h + sunbird_plugin.c sunbird_plugin.h \ + webdav.c webdav.h -#libbackup_plugin_la_LIBADD = @PACKAGE_LIBS@ +NEON_LIBS = `neon-config --libs` + +libsunbird_plugin_la_LIBADD = @PACKAGE_LIBS@ @NEON_LIBS@ --- NEW FILE: webdav.h --- #define WEBDAV_SUCCESS 0 /* Request succeeded */ #define WEBDAV_ERROR_INIT 1 /* Could not init 'neon' library */ #define WEBDAV_ERROR_CONNECT 2 /* Could not connect to server */ #define WEBDAV_ERROR_RESSOURCE 3 /* Cannot read or write file */ #define WEBDAV_ERROR_FILE_NOT_FOUND 4 /* Local file not found */ #define WEBDAV_ERROR_INVALID_PARAMETER 5 /* Parameter not in valid range */ #define WEBDAV_ERROR_OUT_OF_MEMORY 6 /* Out of memory */ /* Download a file from a server */ int webdav_download(char* filename, char* url, char* username, char* password); /* Upload a file to a server */ int webdav_upload(char* filename, char* url, char* username, char* password); Index: Makefile.in =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/Makefile.in,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- Makefile.in 4 Feb 2005 09:50:55 -0000 1.1.2.1 +++ Makefile.in 7 Mar 2005 01:51:33 -0000 1.1.2.2 @@ -100,8 +100,13 @@ libsunbird_plugin_la_SOURCES = \ tools.c tools.h \ - sunbird_plugin.c sunbird_plugin.h + sunbird_plugin.c sunbird_plugin.h \ + webdav.c webdav.h + +NEON_LIBS = `neon-config --libs` + +libsunbird_plugin_la_LIBADD = @PACKAGE_LIBS@ @NEON_LIBS@ subdir = src mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h @@ -109,8 +114,8 @@ LTLIBRARIES = $(lib_LTLIBRARIES) libsunbird_plugin_la_LDFLAGS = -libsunbird_plugin_la_LIBADD = -am_libsunbird_plugin_la_OBJECTS = tools.lo sunbird_plugin.lo +libsunbird_plugin_la_DEPENDENCIES = +am_libsunbird_plugin_la_OBJECTS = tools.lo sunbird_plugin.lo webdav.lo libsunbird_plugin_la_OBJECTS = $(am_libsunbird_plugin_la_OBJECTS) DEFS = @DEFS@ @@ -121,7 +126,7 @@ depcomp = $(SHELL) $(top_srcdir)/../../depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/sunbird_plugin.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/tools.Plo +@AMDEP_TRUE@ ./$(DEPDIR)/tools.Plo ./$(DEPDIR)/webdav.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ @@ -182,6 +187,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sunbird_plugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tools.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/webdav.Plo@am__quote@ distclean-depend: -rm -rf ./$(DEPDIR) @@ -358,8 +364,6 @@ mostlyclean-generic mostlyclean-libtool tags uninstall \ uninstall-am uninstall-info-am uninstall-libLTLIBRARIES - -#libbackup_plugin_la_LIBADD = @PACKAGE_LIBS@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: Index: tools.c =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/tools.c,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -d -r1.1.2.2 -r1.1.2.3 --- tools.c 6 Mar 2005 01:30:49 -0000 1.1.2.2 +++ tools.c 7 Mar 2005 01:51:33 -0000 1.1.2.3 @@ -165,6 +165,7 @@ int read_icalendar_file(char* filename, GList **entries_ptr) { + int num_entries = 0; int buf_size = 4096, len; char buf[buf_size]; FILE* f; @@ -203,6 +204,7 @@ { char *uid, *last_modified, *dtend, *x_sourcefile, *x_deleted, *vcal; + num_entries++; g_string_append(cur_entry->data, "\nEND:VEVENT\nEND:VCALENDAR\n"); vcal = cur_entry->data->str; @@ -217,7 +219,8 @@ { cur_entry->id = g_string_new(uid); g_free(uid); - } + } else + printf("WARNING: %i. entry in %s has no UID\n", num_entries, filename); if (last_modified) { @@ -315,6 +318,8 @@ { char *line, *begin_vevent = NULL; char *curpos = calendar->str; + + printf("patching calendar (change_type: %i)\n", change_type); while (*curpos) { @@ -332,6 +337,8 @@ if (strcmp(line, "END:VCALENDAR") == 0) { /* We must insert new stuff right before this last line */ + printf("end of calendar at %i\n", curpos-calendar->str); + if (change_type == SYNC_OBJ_MODIFIED || change_type == SYNC_OBJ_ADDED) { int insertpos = curpos - calendar->str; @@ -341,22 +348,40 @@ g_string_insert(calendar, insertpos, "\r\n"); g_string_insert(calendar, insertpos, stripped_data->str); g_string_free(stripped_data, TRUE); - return; // We are finished } + + printf("done patching calendar\n"); + return; } if (strcmp(line, "BEGIN:VEVENT") == 0) + { + printf("begin of vevent at %i\n", curpos-calendar->str); begin_vevent = curpos; + } if (strcmp(line, "END:VEVENT") == 0) { - char* event_id; - int len = curpos+strlen(curpos)-begin_vevent; + char *event_id, *nlpos; + int len = curpos-begin_vevent+strlen("END:VEVENT"); char* vcard = (char*)g_malloc0((len+1)*sizeof(char)); vcard[len] = 0; memcpy(vcard, begin_vevent, len); + printf("end of vevent at %i\n", curpos-calendar->str); + + /* sync_get_key_data() does not work when value for data is on the next line, */ + /* so just remove the newlines and the space to get the UID. */ + nlpos = strstr(vcard, "UID\r\n :"); + if (nlpos) + { + /* Remove the '\r\n ' */ + int ofs = nlpos+6-vcard; + memmove(nlpos+3, nlpos+6, len-ofs+1); // also copy the null-byte at the end + } + event_id = sync_get_key_data(vcard, "UID"); + if (event_id) { if (strcmp(event_id,id) == 0) @@ -365,13 +390,13 @@ int end_pos = (curpos - calendar->str) + strlen(line) + 2; /* Skip additional \r\n */ printf("Found event with ID %s, removing old instance\n", id); g_string_erase(calendar, begin_pos, end_pos-begin_pos); - curpos = calendar->str + begin_pos; + pos2 = calendar->str + begin_pos; } g_free(event_id); } else { - printf("ERROR: VEVENT has no ID!?\n"); + printf("ERROR: VEVENT has no ID!\n*** Dumping data: ***\n%s\n*** End dump ***\n", vcard); } g_free(vcard); @@ -381,6 +406,8 @@ g_free(line); curpos = pos2; } + + printf("ERROR: EOF while trying to patch calendar (no END:VCALENDAR found)!\n"); } GString* create_new_uid() Index: Makefile =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/Makefile,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -u -d -r1.1.2.2 -r1.1.2.3 --- Makefile 6 Mar 2005 01:30:49 -0000 1.1.2.2 +++ Makefile 7 Mar 2005 01:51:33 -0000 1.1.2.3 @@ -100,8 +100,13 @@ libsunbird_plugin_la_SOURCES = \ tools.c tools.h \ - sunbird_plugin.c sunbird_plugin.h + sunbird_plugin.c sunbird_plugin.h \ + webdav.c webdav.h + +NEON_LIBS = `neon-config --libs` + +libsunbird_plugin_la_LIBADD = -pthread -Wl,--export-dynamic -L/usr/X11R6/lib -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lxml2 -lpthread -lz -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -lXext -latk-1.0 -lgdk_pixbuf-2.0 -lXcursor -lpangoxft-1.0 -lXft -lfreetype -lXrender -lfontconfig -lpangox-1.0 -lX11 -lpango-1.0 -lbonobo-2 -lgconf-2 -lgnomevfs-2 -lbonobo-activation -lORBit-2 -lgobject-2.0 -lgthread-2.0 -lm -lgmodule-2.0 -ldl -lglib-2.0 -L/usr/local/lib -lneon -lz -L/usr/kerberos/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lxml2 -lz -lpthread -lm subdir = src mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h @@ -109,8 +114,8 @@ LTLIBRARIES = $(lib_LTLIBRARIES) libsunbird_plugin_la_LDFLAGS = -libsunbird_plugin_la_LIBADD = -am_libsunbird_plugin_la_OBJECTS = tools.lo sunbird_plugin.lo +libsunbird_plugin_la_DEPENDENCIES = +am_libsunbird_plugin_la_OBJECTS = tools.lo sunbird_plugin.lo webdav.lo libsunbird_plugin_la_OBJECTS = $(am_libsunbird_plugin_la_OBJECTS) DEFS = -DHAVE_CONFIG_H @@ -121,7 +126,7 @@ depcomp = $(SHELL) $(top_srcdir)/../../depcomp am__depfiles_maybe = depfiles DEP_FILES = ./$(DEPDIR)/sunbird_plugin.Plo \ - ./$(DEPDIR)/tools.Plo + ./$(DEPDIR)/tools.Plo ./$(DEPDIR)/webdav.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ @@ -129,7 +134,7 @@ CCLD = $(CC) LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -CFLAGS = -g -O2 +CFLAGS = -g -O2 -I/usr/local/include/neon -DNEON_ZLIB DIST_SOURCES = $(libsunbird_plugin_la_SOURCES) DIST_COMMON = Makefile.am Makefile.in SOURCES = $(libsunbird_plugin_la_SOURCES) @@ -182,6 +187,7 @@ include ./$(DEPDIR)/sunbird_plugin.Plo include ./$(DEPDIR)/tools.Plo +include ./$(DEPDIR)/webdav.Plo distclean-depend: -rm -rf ./$(DEPDIR) @@ -358,8 +364,6 @@ mostlyclean-generic mostlyclean-libtool tags uninstall \ uninstall-am uninstall-info-am uninstall-libLTLIBRARIES - -#libbackup_plugin_la_LIBADD = -pthread -Wl,--export-dynamic -L/usr/X11R6/lib -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lxml2 -lpthread -lz -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -lXext -latk-1.0 -lgdk_pixbuf-2.0 -lXcursor -lpangoxft-1.0 -lXft -lfreetype -lXrender -lfontconfig -lpangox-1.0 -lX11 -lpango-1.0 -lbonobo-2 -lgconf-2 -lgnomevfs-2 -lbonobo-activation -lORBit-2 -lgobject-2.0 -lgthread-2.0 -lm -lgmodule-2.0 -ldl -lglib-2.0 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: --- NEW FILE: webdav.c --- #include "webdav.h" #include <neon/ne_socket.h> #include <neon/ne_session.h> #include <neon/ne_request.h> static char auth_username[100]; static char auth_password[100]; static int neon_initialized = 0; static int webdav_server_auth(void* userdata, const char *realm, int attempts, char *username, char *password) { strcpy(username, auth_username); strcpy(password, auth_password); return attempts; } static int init_neon() { if (!neon_initialized) neon_initialized = (ne_sock_init() == 0); return neon_initialized; } static int webdav_spliturl(char* url, char* server, char* path) { char *p1, *p2; p1 = strstr(url, "://"); if (!p1) return 0; p1 += 3; p2 = strstr(p1, "/"); if (!p2) return 0; strcpy(server, p1); server[p2-p1] = 0; strcpy(path, p2); return 1; } int webdav_download(char* filename, char* url, char* username, char* password) { char server[256], path[256]; int result; ne_session* sess; ne_request* req; FILE* f; if (strlen(url) > 255 || strlen(username) > 99 || strlen(password) > 99) return WEBDAV_ERROR_INVALID_PARAMETER; if (!webdav_spliturl(url, server, path)) return WEBDAV_ERROR_INVALID_PARAMETER; f = fopen(filename, "w"); if (!f) return WEBDAV_ERROR_FILE_NOT_FOUND; strcpy(auth_username, username); strcpy(auth_password, password); if (!init_neon()) return WEBDAV_ERROR_INIT; sess = ne_session_create("http", server, 80); if (!sess) return WEBDAV_ERROR_CONNECT; ne_set_server_auth(sess, webdav_server_auth, 0); result = ne_get(sess, path, fileno(f)) ? WEBDAV_ERROR_RESSOURCE : WEBDAV_SUCCESS; fclose(f); ne_session_destroy(sess); return result; } int webdav_upload(char* filename, char* url, char* username, char* password) { char server[256], path[256], *buf; int result; int filesize; ne_session* sess; ne_request* req; FILE* f; if (strlen(url) > 255 || strlen(username) > 99 || strlen(password) > 99) return WEBDAV_ERROR_INVALID_PARAMETER; if (!webdav_spliturl(url, server, path)) return WEBDAV_ERROR_INVALID_PARAMETER; f = fopen(filename, "r"); if (!f) return WEBDAV_ERROR_FILE_NOT_FOUND; fseek(f, 0, SEEK_END); filesize = ftell(f); rewind(f); buf = (char*)malloc(filesize); if (!buf) { fclose(f); return WEBDAV_ERROR_OUT_OF_MEMORY; } fread(buf, 1, filesize, f); fclose(f); strcpy(auth_username, username); strcpy(auth_password, password); if (!init_neon()) return WEBDAV_ERROR_INIT; sess = ne_session_create("http", server, 80); if (!sess) { free(buf); return WEBDAV_ERROR_CONNECT; } ne_set_server_auth(sess, webdav_server_auth, 0); req = ne_request_create(sess, "PUT", path); ne_set_request_body_buffer(req, buf, filesize); if (ne_request_dispatch(req) != 0) { ne_request_destroy(req); ne_session_destroy(sess); free(buf); return WEBDAV_ERROR_RESSOURCE; } result = ne_get_status(req)->code; ne_request_destroy(req); ne_session_destroy(sess); free(buf); if (result < 200 || result > 299) return WEBDAV_ERROR_RESSOURCE; else return WEBDAV_SUCCESS; } |
From: Markus M. <ms...@us...> - 2005-03-07 00:47:23
|
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin/macros In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14695/macros Log Message: Directory /cvsroot/multisync/multisync/plugins/sunbird_plugin/macros added to the repository --> Using per-directory sticky tag `branch_08X' |
From: Markus M. <ms...@us...> - 2005-03-06 01:31:02
|
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32055 Modified Files: Tag: branch_08X Makefile sunbird_plugin.c sunbird_plugin.h tools.c tools.h Log Message: Initial support for two-way-sync Index: tools.h =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/tools.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- tools.h 4 Feb 2005 09:50:55 -0000 1.1.2.1 +++ tools.h 6 Mar 2005 01:30:49 -0000 1.1.2.2 @@ -10,6 +10,8 @@ GString* data; /* The actual entry data in iCalendar format */ GString* remove_priority; int deleted; /* Notification that entry has been deleted */ + int remote_change_type; /* Remote change type, one of SYNC_OBJ_MODIFIED/ADDED/HARDDELETED, + or 0, when this is a notification of a local change */ } calendar_entry; /* @@ -33,6 +35,16 @@ /* Free a list of strings (list of char* pointers, not GStrings) */ void free_string_list(GList *lst); +/* Patch a calendar file (held in memory as a string), + adding/deleting/modifying the given entry */ +void patch_calendar(GString* calendar, int change_type, char* id, char* data); + +/* Return a new UID as a GString */ +GString* create_new_uid(); + +/* Extract the first VEVENT from this VCARD (and remove BEGIN:VCARD/END:VCARD) */ +GString* extract_first_vevent(char* data); + /* Note that this function, despite its name, will at the moment not read every icalendar file, because it doesn't really parse the file, but Index: sunbird_plugin.c =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/sunbird_plugin.c,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- sunbird_plugin.c 4 Feb 2005 09:50:55 -0000 1.1.2.1 +++ sunbird_plugin.c 6 Mar 2005 01:30:49 -0000 1.1.2.2 @@ -56,22 +56,13 @@ sync_set_requestdone(sync_pair); } -int get_calendar_changes(GList** changes_ptr, sync_object_type* retnewdbs_ptr, ical_connection* conn) +GList* get_calendar_files_list() { - char keyfile[256]; - GString* calendars_env = g_string_new(g_getenv("MULTISYNC_SUNBIRD_CALENDARS")); - GList *entries = NULL, *cached_entries = NULL, *files = NULL, *cur, *cur2; - - /* Free previous pending changes, if any */ - if (conn->pending_changes) - { - printf("Warning: Resetting pending changes\n"); - free_events_list(conn->pending_changes); - conn->pending_changes = NULL; - } - /* FIXME: We need an option dialog for that */ /* FIXME: We also should not use strtok (not multithread-safe) */ + GList* files = NULL; + GString* calendars_env = g_string_new(g_getenv("MULTISYNC_SUNBIRD_CALENDARS")); + if (calendars_env) { char* pch; @@ -86,9 +77,193 @@ { printf("ERROR: List of calendars not set. Set MULTISYNC_SUNBIRD_CALENDARS\n"); printf(" to a list of ics files or URLs, separated with colons (':')"); - return FALSE; } + + return files; +} + +void write_changes_to_calendars(GList* entries, ical_connection* conn) +{ + char keyfile[256]; + GList* files = get_calendar_files_list(), *calendars = NULL, *cur, *cur2, *curfile, *curcal, *cached_entries = NULL; + GString *default_calendar = g_string_new(g_getenv("MULTISYNC_SUNBIRD_DEFAULT_CALENDAR")); + + if (!files) + return; + if (!default_calendar) + { + char *basename_ptr = (char*)strdup((char*)g_list_first(files)->data); + char *basename = basename_ptr + strlen(basename_ptr) - 1; + while (basename > basename_ptr && *(basename-1) != '/') + basename--; + default_calendar = g_string_new(basename); + free(basename_ptr); + + printf("WARNING: MULTISYNC_SUNBIRD_DEFAULT_CALENDAR not set, using first calendar: %s", default_calendar->str); + } + + strcpy(keyfile, sync_get_datapath(conn->sync_pair)); + strcat(keyfile, "/mozilla_keyfile.ics"); + + printf("Reading keyfile '%s'...\n", keyfile); + + if (!read_icalendar_file(keyfile, &cached_entries)) + { + printf("WARNING: Keyfile not found!\n"); + } + + printf("Reading all calendars into memory...\n"); + for (cur = g_list_first(files); cur; cur = cur->next) + { + int filesize; + char *filename = (char*)cur->data, *buffer; + FILE* f = fopen(filename, "r"); + if (!f) + { + printf("ERROR: Could not read file: %s\n", filename); + return; + } + + fseek(f, 0, SEEK_END); + filesize = ftell(f); + rewind(f); + buffer = (char*)g_malloc0(filesize+1); + if (!buffer) + { + printf("ERROR: Out of memory\n"); + return; + } + fread(buffer,1,filesize,f); + fclose(f); + buffer[filesize] = 0; /* end of string delimiter */ + + calendars = g_list_append(calendars, g_string_new(buffer)); + } + + for (cur = g_list_first(entries); cur; cur = cur->next) + { + calendar_entry* e = (calendar_entry*)cur->data; + + /* Find name of source file for this object */ + if (e->remote_change_type == SYNC_OBJ_ADDED) + { + /* This is a new object, source file is always the default calendar */ + printf("Scheduling new object %s for adding to default calendar %s\n", e->id->str, default_calendar->str); + e->sourcefile = g_string_new(default_calendar->str); + } else if (e->remote_change_type == SYNC_OBJ_HARDDELETED || e->remote_change_type == SYNC_OBJ_MODIFIED) + { + /* This is an old object, look it up in the key file */ + for (cur2 = g_list_first(cached_entries); cur2; cur2 = cur2->next) + { + calendar_entry* e2 = (calendar_entry*)cur2->data; + + if (strcmp(e2->id->str, e->id->str) == 0) + { + e->sourcefile = g_string_new(e2->sourcefile->str); + printf("Modified/Deleted object %s (%s) has been looked up in keyfile\n", + e->id->str, e->sourcefile->str); + break; + } + } + + if (!e->sourcefile) + { + printf("Warning: Object %s could not be found in keyfile, although change mode is SYNC_OBJ_MODIFIED.\n", + e->id->str); + printf(" Adding the object to the default calendar\n"); + e->sourcefile = g_string_new(default_calendar->str); + } + } + + /* Find correct calendar for this object */ + curfile = g_list_first(files); + curcal = g_list_first(calendars); + while (curfile) + { + char* filepath = (char*)curfile->data; + char* calendarname; + + if (e->sourcefile) + { + calendarname = e->sourcefile->str; + + if (strlen(filepath) >= strlen(calendarname) && + strcmp(calendarname, filepath + strlen(filepath) - strlen(calendarname)) == 0) + { + /* This is the correct calendar */ + break; + } + } + + curfile = curfile->next; + curcal = curcal->next; + } + + if (!curcal) + { + printf("ERROR: Calendar not found for object %s, changes to this object are not synced!\n", e->id->str); + } else if (e->remote_change_type == SYNC_OBJ_ADDED || e->remote_change_type == SYNC_OBJ_MODIFIED || + e->remote_change_type == SYNC_OBJ_HARDDELETED) + { + printf("Adding/Modifying/Deleting object %s (%s) \n", e->id->str, e->sourcefile->str); + + GString* calcontent = (GString*)curcal->data; + patch_calendar(calcontent, e->remote_change_type, e->id->str, e->data ? e->data->str : NULL); + + printf("Done.\n"); + } + } + + printf("Writing all calendars to disk...\n"); + curcal = g_list_first(calendars); + for (cur = g_list_first(files); cur; cur = cur->next) + { + char *textdata = (char*)(((GString*)curcal->data)->str); + char *filename = (char*)cur->data; + FILE* f = fopen(filename, "w"); + + if (!f) + { + printf("ERROR: Could not open file for writing: %s\n", filename); + return; + } + + fwrite(textdata, 1, strlen(textdata), f); + fclose(f); + curcal = curcal->next; + } + + if (calendars) + { + for (cur = g_list_first(calendars); cur; cur = cur->next) + { + GString* s = (GString*)cur->data; + g_string_free(s, TRUE); + } + g_list_free(calendars); + } + + free_string_list(files); + free_events_list(cached_entries); +} + +int get_calendar_changes(GList** changes_ptr, sync_object_type* retnewdbs_ptr, ical_connection* conn) +{ + char keyfile[256]; + GList *entries = NULL, *cached_entries = NULL, *files = NULL, *cur, *cur2; + /* Free previous pending changes, if any */ + if (conn->pending_changes) + { + printf("Warning: Resetting pending changes\n"); + free_events_list(conn->pending_changes); + conn->pending_changes = NULL; + } + + files = get_calendar_files_list(); + if (!files) + return FALSE; + strcpy(keyfile, sync_get_datapath(conn->sync_pair)); strcat(keyfile, "/mozilla_keyfile.ics"); @@ -275,50 +450,96 @@ GList *node; syncobj_modify_result *result; GList *results = NULL; - GString *default_calendar = g_string_new(g_getenv("MULTISYNC_SUNBIRD_DEFAULT_CALENDAR")); - - if (!default_calendar || strlen(default_calendar->str) == 0) - { - printf("WARNING! Default calendar not set. Writing changes to the first calendar found\n"); - printf(" To set the default calendar file, set MULTISYNC_SUNBIRD_DEFAULT_CALENDAR\n"); - } + char* last_modified; for (node = g_list_first(changes); node; node = node->next) { + char* returnuid = NULL; changed_object *obj = (changed_object*)node->data; if (obj->object_type == SYNC_OBJECT_TYPE_CALENDAR) { - printf("syncobj_modify_list got new calendar entry\n"); + calendar_entry* entry = (calendar_entry*)g_malloc0(sizeof(calendar_entry)); - if (obj->change_type == SYNC_OBJ_ADDED) - { - printf("sync_object_modify_list adding entry\n"); - } else if (obj->change_type == SYNC_OBJ_MODIFIED) - { - printf("sync_object_modify_list modifying entry\n"); - } else if (obj->change_type == SYNC_OBJ_HARDDELETED) + if (obj->comp) + entry->data = g_string_new(obj->comp); + else + entry->data = NULL; // no data provided + + if (obj->uid && strlen(obj->uid) > 0) + entry->id = g_string_new(obj->uid); + else { - printf("sync_object_modify_list (hard-)deleting entry\n"); - } else if (obj->change_type == SYNC_OBJ_SOFTDELETED) + char *s, buf[256]; + + /* Create ID */ + entry->id = create_new_uid(); + returnuid = (char*)g_malloc0(strlen(entry->id->str)+1); + if (returnuid) + strcpy(returnuid, entry->id->str); + else + printf("ERROR: Out of memory!\n"); + + printf("Created new UID=%s for entry\n", entry->id->str); + + /* Add UID to VCARD */ + sprintf(buf, "BEGIN:VEVENT\r\nUID:%s", entry->id->str); + s = strstr(entry->data->str, "BEGIN:VEVENT"); + g_string_erase(entry->data, 0, s - entry->data->str + 12); + g_string_insert(entry->data, 0, buf); + } + + entry->last_modified = NULL; // will eventually be set later + entry->sourcefile = NULL; // unknown at this stage + entry->remote_change_type = obj->change_type; + + if (obj->change_type == SYNC_OBJ_HARDDELETED) + entry->deleted = 1; + else + entry->deleted = 0; + + if (obj->removepriority) + entry->remove_priority = g_string_new(obj->removepriority); + else + entry->remove_priority = g_string_new("(none)"); + + if (obj->comp) { - /* FIXME: We should not deleted the object here, but we could */ - /* remember that it has been soft deleted so we don't */ - /* propagate future changes to it. */ + last_modified = sync_get_key_data(obj->comp, "LAST-MODIFIED"); + if (last_modified) + { + entry->last_modified = g_string_new(last_modified); + g_free(last_modified); + } } - } else + + if (!entry->last_modified) + entry->last_modified = g_string_new("(new)"); /* we need a last-modified entry in the key file */ + + conn->pending_changes = g_list_append(conn->pending_changes, entry); + + printf("*** syncobj_modify_list recorded new change ***\n"); + printf("entry->remote_change_type = %i\n", entry->remote_change_type); + if (entry->id) + printf("entry->id = %s\n", entry->id->str); + else + printf("entry has no id\n"); + if (entry->data->str) + printf("entry->data = %s\n", entry->data->str); + else + printf("entry has no data\n"); + } else { printf("Warning: syncobj_modify_list got other object than calendar entry\n"); } - /* We create just a dummy result because we do not really return useful results */ + /* Create result */ result = (syncobj_modify_result*)g_malloc0(sizeof(syncobj_modify_result)); memset(result, 0, sizeof(syncobj_modify_result)); + result->returnuid = returnuid; results = g_list_append(results, result); } - g_string_free(default_calendar, TRUE); - printf("syncobj_modify_list END\n"); sync_set_requestdata(results, conn->sync_pair); @@ -336,7 +557,22 @@ if (conn->pending_changes) { char keyfile[256]; - GList *cached_entries = NULL, *cur; + GList *cached_entries = NULL, *cur, *remote_changes = NULL; + + for (cur = g_list_first(conn->pending_changes); cur; cur = cur->next) + { + calendar_entry *e = (calendar_entry*)cur->data; + if (e->remote_change_type != 0) + remote_changes = g_list_append(remote_changes, e); + } + + if (remote_changes) + { + printf("Writing remote changes to calendars...\n"); + write_changes_to_calendars(remote_changes, conn); + g_list_free(remote_changes); // don't delete contents + printf("Done writing remote changes to calendars.\n"); + } printf("Sync done, remembering changes\n"); Index: sunbird_plugin.h =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/sunbird_plugin.h,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- sunbird_plugin.h 4 Feb 2005 09:50:55 -0000 1.1.2.1 +++ sunbird_plugin.h 6 Mar 2005 01:30:49 -0000 1.1.2.2 @@ -24,6 +24,7 @@ void plugin_init(void); sync_object_type object_types(); int plugin_API_version(void); +GList* get_calendar_files_list(); /* User functions */ int get_calendar_changes(GList** changes_ptr, sync_object_type* retnewdbs_ptr, ical_connection* conn); Index: tools.c =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/tools.c,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- tools.c 4 Feb 2005 09:50:55 -0000 1.1.2.1 +++ tools.c 6 Mar 2005 01:30:49 -0000 1.1.2.2 @@ -25,6 +25,8 @@ #include "tools.h" +static unsigned int uidcounter = 1; + void free_calendar_entry(calendar_entry* e) { g_string_free(e->id, TRUE); @@ -142,6 +144,7 @@ { calendar_entry* new_entry = (calendar_entry*)g_malloc0(sizeof(calendar_entry)); + new_entry->remote_change_type = e->remote_change_type; new_entry->id = g_string_new(e->id->str); new_entry->sourcefile = g_string_new(e->sourcefile->str); new_entry->last_modified = g_string_new(e->last_modified->str); @@ -162,8 +165,6 @@ int read_icalendar_file(char* filename, GList **entries_ptr) { - int next_is_id = 0, next_is_last_modified = 0, next_is_remove_priority = 0; - int next_is_deleted = 0, next_is_sourcefile = 0; int buf_size = 4096, len; char buf[buf_size]; FILE* f; @@ -178,7 +179,7 @@ basename = basename_ptr + strlen(basename_ptr) - 1; while (basename > basename_ptr && *(basename-1) != '/') basename--; - + while (!feof(f)) { if (!fgets(buf, buf_size, f)) @@ -191,37 +192,6 @@ buf[len] = 0; } - if (next_is_id) - { - next_is_id = 0; - cur_entry->id = g_string_new(buf+2); // skip " :" - } - if (next_is_last_modified) - { - next_is_last_modified = 0; - cur_entry->last_modified = g_string_new(buf+2); // skip " :" - } - if (next_is_remove_priority) - { - next_is_remove_priority = 0; - cur_entry->remove_priority = g_string_new(buf+2); // skip " :" - } - if (next_is_sourcefile) - { - /* Only present in key files, not in real calendars */ - next_is_sourcefile = 0; - cur_entry->sourcefile = g_string_new(buf+2); // skip " :" - } - if (next_is_deleted) - { - /* Only present in key files, not in real calendars */ - next_is_deleted = 0; - if (buf[2] == '0') - cur_entry->deleted = 0; - else - cur_entry->deleted = 1; - } - if (strcmp(buf, "BEGIN:VEVENT") == 0) { cur_entry = (calendar_entry*)g_malloc0(sizeof(calendar_entry)); @@ -231,15 +201,55 @@ if (strcmp(buf, "END:VEVENT") == 0) { - /* Last-modified info can be missing, if the item */ - /* was never modified. */ - if (!cur_entry->last_modified) + char *uid, *last_modified, *dtend, *x_sourcefile, *x_deleted, *vcal; + + + g_string_append(cur_entry->data, "\nEND:VEVENT\nEND:VCALENDAR\n"); + vcal = cur_entry->data->str; + + uid = sync_get_key_data(vcal, "UID"); + last_modified = sync_get_key_data(vcal, "LAST-MODIFIED"); + dtend = sync_get_key_data(vcal, "DTEND"); + x_sourcefile = sync_get_key_data(vcal, "X-SOURCEFILE"); + x_deleted = sync_get_key_data(vcal, "X-DELETED"); + + if (uid) + { + cur_entry->id = g_string_new(uid); + g_free(uid); + } + + if (last_modified) + { + cur_entry->last_modified = g_string_new(last_modified); + g_free(last_modified); + } else { + /* default last-modified tag */ cur_entry->last_modified = g_string_new("(new)"); } - g_string_append(cur_entry->data, "\nEND:VEVENT\nEND:VCALENDAR\n"); + if (dtend) + { + cur_entry->remove_priority = g_string_new(dtend); + g_free(dtend); + } + if (x_sourcefile) + { + cur_entry->sourcefile = g_string_new(x_sourcefile); + g_free(x_sourcefile); + } + + if (x_deleted) + { + if (x_deleted[0] == '0') + cur_entry->deleted = 0; + else + cur_entry->deleted = 1; + g_free(x_deleted); + } + *entries_ptr = g_list_append(*entries_ptr, cur_entry); cur_entry = NULL; } @@ -265,17 +275,6 @@ g_string_append(cur_entry->data, buf); } - - if (strcmp(buf, "UID") == 0) - next_is_id = 1; - if (strcmp(buf, "LAST-MODIFIED") == 0) - next_is_last_modified = 1; - if (strcmp(buf, "DTEND") == 0) - next_is_remove_priority = 1; - if (strcmp(buf, "X-SOURCEFILE") == 0) - next_is_sourcefile = 1; - if (strcmp(buf, "X-DELETED") == 0) - next_is_deleted = 1; } } @@ -299,4 +298,94 @@ return p; } +GString* extract_first_vevent(char* data) +{ + GString* g = g_string_new(data); + char *s; + s = strstr(g->str, "BEGIN:VEVENT"); + if (s) + g_string_erase(g, 0, s-g->str); + s = strstr(g->str, "END:VEVENT"); + if (s) + g_string_truncate(g, s-g->str+10); + return g; +} +void patch_calendar(GString* calendar, int change_type, char* id, char* data) +{ + char *line, *begin_vevent = NULL; + char *curpos = calendar->str; + + while (*curpos) + { + char *pos2 = curpos; + while (*pos2 != 0 && *pos2 != '\r' && *pos2 != '\n') + pos2++; + + line = (char*)g_malloc0((pos2-curpos+1)*sizeof(char)); + line[pos2-curpos] = 0; + memcpy(line, curpos, pos2-curpos); + + while (*pos2 == '\r' || *pos2 == '\n') + pos2++; + + if (strcmp(line, "END:VCALENDAR") == 0) + { + /* We must insert new stuff right before this last line */ + if (change_type == SYNC_OBJ_MODIFIED || change_type == SYNC_OBJ_ADDED) + { + int insertpos = curpos - calendar->str; + GString* stripped_data = extract_first_vevent(data); + printf("Adding changed/new event with ID %s to calendar at position %i (len=%i)\n", + id, insertpos, strlen(calendar->str)); + g_string_insert(calendar, insertpos, "\r\n"); + g_string_insert(calendar, insertpos, stripped_data->str); + g_string_free(stripped_data, TRUE); + return; // We are finished + } + } + + if (strcmp(line, "BEGIN:VEVENT") == 0) + begin_vevent = curpos; + + if (strcmp(line, "END:VEVENT") == 0) + { + char* event_id; + int len = curpos+strlen(curpos)-begin_vevent; + char* vcard = (char*)g_malloc0((len+1)*sizeof(char)); + vcard[len] = 0; + memcpy(vcard, begin_vevent, len); + + event_id = sync_get_key_data(vcard, "UID"); + if (event_id) + { + if (strcmp(event_id,id) == 0) + { + int begin_pos = begin_vevent - calendar->str; + int end_pos = (curpos - calendar->str) + strlen(line) + 2; /* Skip additional \r\n */ + printf("Found event with ID %s, removing old instance\n", id); + g_string_erase(calendar, begin_pos, end_pos-begin_pos); + curpos = calendar->str + begin_pos; + } + + g_free(event_id); + } else + { + printf("ERROR: VEVENT has no ID!?\n"); + } + + g_free(vcard); + begin_vevent = NULL; + } + + g_free(line); + curpos = pos2; + } +} + +GString* create_new_uid() +{ + char s[256]; + sprintf(s, "t%ic%i", (int)time(NULL), uidcounter++); + return g_string_new(s); +} Index: Makefile =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/sunbird_plugin/src/Attic/Makefile,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- Makefile 4 Feb 2005 09:50:55 -0000 1.1.2.1 +++ Makefile 6 Mar 2005 01:30:49 -0000 1.1.2.2 @@ -77,7 +77,7 @@ INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s LIBTOOL = $(SHELL) $(top_builddir)/libtool LN_S = ln -s -MULTISYNC_VERSION = 0.82 +MULTISYNC_VERSION = OBJDUMP = @OBJDUMP@ PACKAGE = sunbird_plugin PACKAGE_CFLAGS = -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/libxml2 |
From: Stewart H. <she...@us...> - 2005-03-05 05:01:16
|
Update of /cvsroot/multisync/multisync/plugins/kdepim_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7921/plugins/kdepim_plugin/src Modified Files: Tag: branch_08X kaddrbook.cpp Log Message: Added UTF8 support to the plugin. Thanks to Benoît Pothier for this contribution. Index: kaddrbook.cpp =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/kdepim_plugin/src/Attic/kaddrbook.cpp,v retrieving revision 1.1.2.7 retrieving revision 1.1.2.8 diff -u -d -r1.1.2.7 -r1.1.2.8 --- kaddrbook.cpp 30 Dec 2004 05:01:48 -0000 1.1.2.7 +++ kaddrbook.cpp 5 Mar 2005 05:00:53 -0000 1.1.2.8 @@ -260,7 +260,7 @@ QString card = converter.createVCard(*it); // gmalloc a copy of the VCARD string - chobj->comp = g_strdup(card.latin1()); + chobj->comp = g_strdup(card.utf8()); if (multisync_debug) printf("%s",chobj->comp); @@ -357,7 +357,7 @@ // convert VCARD string from obj->comp into an Addresse object. // KABC::VCardConverter doesnt do VCARD unfolding so we must do it ourselves first. unfold_vcard(obj->comp); - KABC::Addressee addressee = converter.parseVCard(QString(obj->comp)); + KABC::Addressee addressee = converter.parseVCard(QString(obj->comp).utf8()); //At this point the UID in the addressee object belongs to the //other device, we need to set the KDE UID as supplied by the sync engine. @@ -381,7 +381,7 @@ // convert VCARD string from obj->comp into an Addresse object // KABC::VCardConverter doesnt do VCARD unfolding so we must do it ourselves first. unfold_vcard(obj->comp); - KABC::Addressee addressee = converter.parseVCard(QString(obj->comp)); + KABC::Addressee addressee = converter.parseVCard(QString(obj->comp).utf8()); //At this point the UID in the addressee object belongs to the //other device and needs to be replaced by one that is unique |
From: Stewart H. <she...@us...> - 2005-03-05 04:59:16
|
Update of /cvsroot/multisync/multisync/plugins/kdepim_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7566/plugins/kdepim_plugin/src Modified Files: Tag: branch_08X kdeplugin.c Log Message: Added some extra debug messages when the plugin is connecting and MULTISYNC_DEBUG is defined. Index: kdeplugin.c =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/kdepim_plugin/src/Attic/kdeplugin.c,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -d -r1.1.2.3 -r1.1.2.4 --- kdeplugin.c 8 Jul 2004 08:00:56 -0000 1.1.2.3 +++ kdeplugin.c 5 Mar 2005 04:59:04 -0000 1.1.2.4 @@ -45,11 +45,21 @@ conn->kaddrbook = kaddrbook_connect(sync_get_datapath(handle)); if (!(conn->kaddrbook)) - sync_set_requestmsgerror(SYNC_MSG_CONNECTIONERROR, "Couldn't connect to KDE addressbook", conn->syncpair); + { + if (getenv ("MULTISYNC_DEBUG")) + printf("kdepim_plugin: %s() kaddrbook_connect FAILED\n",__FUNCTION__); + sync_set_requestmsgerror(SYNC_MSG_CONNECTIONERROR, "Couldn't connect to KDE addressbook", handle); + } else - sync_set_requestdone(conn->syncpair); + { + if (getenv ("MULTISYNC_DEBUG")) + printf("kdepim_plugin: %s() kaddrbook_connect OK\n",__FUNCTION__); + sync_set_requestdone(handle); + } /* Return kde_connection object to the sync engine */ + if (getenv ("MULTISYNC_DEBUG")) + printf("kdepim_plugin: %s() kaddrbook_connect returns %p\n",__FUNCTION__,conn); return(conn); } |
From: Phil B. <pb...@us...> - 2005-02-20 14:26:19
|
Update of /cvsroot/multisync/multisync/plugins/gpe_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25830 Modified Files: Tag: branch_08X Makefile.am Log Message: add config.c to SOURCES Index: Makefile.am =================================================================== RCS file: /cvsroot/multisync/multisync/plugins/gpe_plugin/src/Attic/Makefile.am,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -d -r1.1.2.1 -r1.1.2.2 --- Makefile.am 18 Feb 2005 09:54:02 -0000 1.1.2.1 +++ Makefile.am 20 Feb 2005 14:26:10 -0000 1.1.2.2 @@ -24,7 +24,7 @@ lib_LTLIBRARIES = libgpe_sync.la libgpe_sync_la_SOURCES = \ - gpe_sync.c calendar.c connection.c contacts.c todo.c gui.c + gpe_sync.c calendar.c connection.c contacts.c todo.c gui.c config.c libgpe_sync_la_LIBADD = -lnsqlc @PACKAGE_LIBS@ |
From: Phil B. <pb...@us...> - 2005-02-20 14:03:38
|
Update of /cvsroot/multisync/multisync/specs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20494 Added Files: Tag: branch_08X multisync-gpe.spec.in Log Message: add missing file --- NEW FILE: multisync-gpe.spec.in --- Name : multisync-gpe Version : @VERSION@ Release : 1 Group : Applications/Productivity Summary : GPE plugin for MultiSync Copyright : GPL Requires: multisync = @MULTISYNC_VERSION@ BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root %description This is a plugin for Multisync that allows you to sync GPE devices. The MultiSync homepage can be found at http://multisync.sourceforge.net %define _unpackaged_files_terminate_build 0 %define _missing_doc_files_terminate_build 0 %files @prefix@/lib/multisync/libgpe_sync.so.0.0.0 @prefix@/lib/multisync/libgpe_sync.so.0 @prefix@/lib/multisync/libgpe_sync.so %install rm -rf %{buildroot} mkdir -p $RPM_BUILD_ROOT/@prefix@/lib/multisync/ cp -a @prefix@/lib/multisync/libgpe_sync.so.0.0.0 $RPM_BUILD_ROOT/@prefix@/lib/multisync/ cp -a @prefix@/lib/multisync/libgpe_sync.so.0 $RPM_BUILD_ROOT/@prefix@/lib/multisync/ cp -a @prefix@/lib/multisync/libgpe_sync.so $RPM_BUILD_ROOT/@prefix@/lib/multisync/ strip $RPM_BUILD_ROOT/@prefix@/lib/multisync/libgpe_sync.so.0.0.0 |
Update of /cvsroot/multisync/multisync/plugins/gpe_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30033/src Added Files: Tag: branch_08X Makefile.am calendar.c config.c connection.c contacts.c gpe_sync.c gui.c todo.c Log Message: Initial revision of gpe_plugin --- NEW FILE: contacts.c --- /* * MultiSync GPE Plugin * Copyright (C) 2004 Phil Blundell <pb...@ne...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; */ #include <stdlib.h> #include <errno.h> #include <glib.h> #include <libintl.h> #include <stdio.h> #include <string.h> #include "gpe_sync.h" #include <gpe/vcard.h> #include <gpe/tag-db.h> GList * contacts_get_changes (struct db *db, int newdb) { GList *data = NULL; GSList *list, *i; if (newdb) list = fetch_uid_list (db->db, "select distinct urn from contacts_urn"); else list = fetch_uid_list (db->db, "select urn from contacts where (tag='modified' or tag='MODIFIED') and value>%d", db->last_timestamp); for (i = list; i; i = i->next) { GSList *tags; MIMEDirVCard *vcard; gchar *string; changed_object *obj; int urn = (int)i->data; tags = fetch_tag_data (db->db, "select tag,value from contacts where urn=%d", urn); vcard = vcard_from_tags (tags); gpe_tag_list_free (tags); string = mimedir_vcard_write_to_string (vcard); g_object_unref (vcard); obj = g_malloc0 (sizeof (*obj)); obj->comp = string; obj->uid = g_strdup_printf ("%d", urn); obj->object_type = SYNC_OBJECT_TYPE_PHONEBOOK; obj->change_type = SYNC_OBJ_MODIFIED; data = g_list_append (data, obj); } g_slist_free (list); return data; } gboolean contacts_push_object (struct db *db, const char *obj, const char *uid, char *returnuid, int *returnuidlen, GError **err) { GSList *tags; MIMEDirVCard *vcard; int id; vcard = mimedir_vcard_new_from_string (obj, err); if (vcard == NULL) return FALSE; tags = vcard_to_tags (vcard); if (uid) id = atoi (uid); else { char *errmsg; if (nsqlc_exec (db->db, "insert into contacts_urn values (NULL)", NULL, NULL, &errmsg)) return FALSE; id = nsqlc_last_insert_rowid (db->db); } store_tag_data (db->db, "contacts", id, tags, TRUE); sprintf (returnuid, "%d", id); *returnuidlen = strlen (returnuid); return TRUE; } gboolean contacts_delete_object (struct db *db, const char *uid, gboolean soft) { nsqlc_exec_printf (db->db, "delete from contacts where urn='%q'", NULL, NULL, NULL, uid); nsqlc_exec_printf (db->db, "delete from contacts_urn where urn='%q'", NULL, NULL, NULL, uid); return TRUE; } struct db contacts_db = { .type = SYNC_OBJECT_TYPE_PHONEBOOK, .name = "contacts", .get_changes = contacts_get_changes, .push_object = contacts_push_object, .delete_object = contacts_delete_object, }; void contacts_init (void) { db_list = g_slist_append (db_list, &contacts_db); } --- NEW FILE: calendar.c --- /* * MultiSync GPE Plugin * Copyright (C) 2004 Phil Blundell <pb...@ne...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; */ #include <stdlib.h> #include <errno.h> #include <glib.h> #include <libintl.h> #include <stdio.h> #include <string.h> #include "gpe_sync.h" #include <gpe/vevent.h> #include <gpe/tag-db.h> #include <mimedir/mimedir-vcal.h> GList * calendar_get_changes (struct db *db, int newdb) { GList *data = NULL; GSList *list, *i; if (newdb) list = fetch_uid_list (db->db, "select distinct uid from calendar_urn"); else list = fetch_uid_list (db->db, "select uid from calendar where (tag='modified' or tag='MODIFIED') and value>%d", db->last_timestamp); for (i = list; i; i = i->next) { GSList *tags; MIMEDirVCal *vcal; MIMEDirVEvent *vevent; gchar *string; changed_object *obj; int urn = (int)i->data; tags = fetch_tag_data (db->db, "select tag,value from calendar where uid=%d", urn); vevent = vevent_from_tags (tags); gpe_tag_list_free (tags); vcal = mimedir_vcal_new (); mimedir_vcal_add_component (vcal, MIMEDIR_VCOMPONENT (vevent)); string = mimedir_vcal_write_to_string (vcal); g_object_unref (vcal); obj = g_malloc0 (sizeof (*obj)); obj->comp = string; obj->uid = g_strdup_printf ("%d", urn); obj->object_type = SYNC_OBJECT_TYPE_CALENDAR; obj->change_type = SYNC_OBJ_MODIFIED; data = g_list_append (data, obj); } g_slist_free (list); return data; } gboolean calendar_push_object (struct db *db, const char *obj, const char *uid, char *returnuid, int *returnuidlen, GError **err) { GSList *list, *tags; MIMEDirVEvent *vevent; MIMEDirVCal *vcal; int id; vcal = mimedir_vcal_new_from_string (obj, err); if (vcal == NULL) return FALSE; list = mimedir_vcal_get_event_list (vcal); if (list == NULL) { g_object_unref (vcal); return FALSE; } vevent = MIMEDIR_VEVENT (list->data); tags = vevent_to_tags (vevent); if (uid) id = atoi (uid); else { char *errmsg; if (nsqlc_exec (db->db, "insert into calendar_urn values (NULL)", NULL, NULL, &errmsg)) return FALSE; id = nsqlc_last_insert_rowid (db->db); } mimedir_vcal_free_component_list (list); g_object_unref (vcal); store_tag_data (db->db, "calendar", id, tags, TRUE); sprintf (returnuid, "%d", id); *returnuidlen = strlen (returnuid); return TRUE; } gboolean calendar_delete_object (struct db *db, const char *uid, gboolean soft) { nsqlc_exec_printf (db->db, "delete from calendar where uid='%q'", NULL, NULL, NULL, uid); nsqlc_exec_printf (db->db, "delete from calendar_urn where uid='%q'", NULL, NULL, NULL, uid); return TRUE; } struct db calendar_db = { .type = SYNC_OBJECT_TYPE_CALENDAR, .name = "calendar", .get_changes = calendar_get_changes, .push_object = calendar_push_object, .delete_object = calendar_delete_object, }; void calendar_init (void) { db_list = g_slist_append (db_list, &calendar_db); } --- NEW FILE: todo.c --- /* * MultiSync GPE Plugin * Copyright (C) 2004 Phil Blundell <pb...@ne...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; */ #include <stdlib.h> #include <errno.h> #include <glib.h> #include <libintl.h> #include <stdio.h> #include <string.h> #include "gpe_sync.h" #include <gpe/vtodo.h> #include <gpe/tag-db.h> #include <mimedir/mimedir-vcal.h> GList * todo_get_changes (struct db *db, int newdb) { GList *data = NULL; GSList *list, *i; if (newdb) list = fetch_uid_list (db->db, "select distinct uid from todo_urn"); else list = fetch_uid_list (db->db, "select uid from todo where (tag='modified' or tag='MODIFIED') and value>%d", db->last_timestamp); for (i = list; i; i = i->next) { GSList *tags; MIMEDirVCal *vcal; MIMEDirVTodo *vtodo; gchar *string; changed_object *obj; int urn = (int)i->data; tags = fetch_tag_data (db->db, "select tag,value from todo where uid=%d", urn); vtodo = vtodo_from_tags (tags); gpe_tag_list_free (tags); vcal = mimedir_vcal_new (); mimedir_vcal_add_component (vcal, MIMEDIR_VCOMPONENT (vtodo)); string = mimedir_vcal_write_to_string (vcal); g_object_unref (vcal); obj = g_malloc0 (sizeof (*obj)); obj->comp = string; obj->uid = g_strdup_printf ("todo-%d", urn); obj->object_type = SYNC_OBJECT_TYPE_TODO; obj->change_type = SYNC_OBJ_MODIFIED; data = g_list_append (data, obj); } g_slist_free (list); return data; } gboolean todo_push_object (struct db *db, const char *obj, const char *uid, char *returnuid, int *returnuidlen, GError **err) { GSList *list, *tags; MIMEDirVTodo *vtodo; MIMEDirVCal *vcal; int id; vcal = mimedir_vcal_new_from_string (obj, err); if (vcal == NULL) return FALSE; list = mimedir_vcal_get_todo_list (vcal); if (list == NULL) { g_object_unref (vcal); return FALSE; } vtodo = MIMEDIR_VTODO (list->data); tags = vtodo_to_tags (vtodo); if (uid) sscanf (uid, "todo-%d", &id); else { char *errmsg; if (nsqlc_exec (db->db, "insert into todo_urn values (NULL)", NULL, NULL, &errmsg)) return FALSE; id = nsqlc_last_insert_rowid (db->db); } mimedir_vcal_free_component_list (list); g_object_unref (vcal); nsqlc_exec_printf (db->db, "delete from todo where uid='%q'", NULL, NULL, NULL, uid); store_tag_data (db->db, "todo", id, tags, FALSE); sprintf (returnuid, "%d", id); *returnuidlen = strlen (returnuid); return TRUE; } gboolean todo_delete_object (struct db *db, const char *uid, gboolean soft) { nsqlc_exec_printf (db->db, "delete from todo where uid='%q'", NULL, NULL, NULL, uid); nsqlc_exec_printf (db->db, "delete from todo_urn where uid='%q'", NULL, NULL, NULL, uid); return TRUE; } struct db todo_db = { .type = SYNC_OBJECT_TYPE_TODO, .name = "todo", .get_changes = todo_get_changes, .push_object = todo_push_object, .delete_object = todo_delete_object, }; void todo_init (void) { db_list = g_slist_append (db_list, &todo_db); } --- NEW FILE: Makefile.am --- ## Process this file with automake to produce Makefile.in libdir=$(prefix)/lib/multisync PLUGINDIR = $(libdir) if GPE_DBG_FLAGS GPE_CFLAGS = -g -D_GPE_PRINT_DEBUG -D_GPE_LOG_DEBUG else GPE_CFLAGS = -O2 endif MULTISYNC_HOME = "$(prefix)/include/multisync" AM_CFLAGS = $(GPE_CFLAGS) -DPLUGINDIR=\"$(PLUGINDIR)\" -DPREFIX=\"$(prefix)\" INCLUDES = \ -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ -I../../../src/libversit -I$(top_srcdir) -I$(top_srcdir)/intl -I$(top_srcdir)/../../include \ -I$(MULTISYNC_HOME) \ @PACKAGE_CFLAGS@ lib_LTLIBRARIES = libgpe_sync.la libgpe_sync_la_SOURCES = \ gpe_sync.c calendar.c connection.c contacts.c todo.c gui.c libgpe_sync_la_LIBADD = -lnsqlc @PACKAGE_LIBS@ --- NEW FILE: gpe_sync.c --- /* * MultiSync GPE Plugin * Copyright (C) 2004 Phil Blundell <pb...@ne...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; */ #include <stdlib.h> #include <errno.h> #include <glib.h> #include <libintl.h> #include <stdio.h> #include <string.h> #include "multisync.h" #include "gpe_sync.h" /* this should match MULTISYNC_API_VER in * multisync.h if everything is up to date */ #define GPE_MULTISYNC_API_VER (3) #define _(x) gettext(x) GSList *db_list; /****************************************************************** The following functions are called by the syncengine thread, and syncengine expects an asynchronous answer using on of // Success sync_set_requestdone(sync_pair*); // General failure (equal to sync_set_requestmsg(SYNC_MSG_REQFAILED,...)) sync_set_requestfailed(sync_pair*); // General failure with specific log string sync_set_requestfailederror(char*, sync_pair*); // Success with data sync_set_requestdata(gpointer data, sync_pair*); // General return (with either failure or other request) sync_set_requestmsg(sync_msg_type, sync_pair*); // General return with log string sync_set_requestmsgerror(sync_msg_type, char*, sync_pair*); // General return with data pointere sync_set_requestdatamsg(gpointer data, sync_msg_type, sync_pair*); (Yes, there are lots of them for convenience.) These functions do not have to be called from this thread. If your client uses the gtk main loop, use gtk_idle_add() to call your real function and let that function call sync_set_requestsomething() when done. ******************************************************************/ /* sync_connect() This is called once every time the sync engine tries to get changes from the two plugins, or only once if always_connected() returns true. Typically, this is where you should try to connect to the device to be synchronized, as well as load any options and so on. The returned struct must contain a client_connection commondata; first for common MultiSync data. NOTE: Oddly enough (for historical reasons) this callback MUST return the connection handle from this function call (and NOT by using sync_set_requestdata()). The sync engine still waits for a sync_set_requestdone() call (or _requestfailed) before continuing. */ gpe_conn* sync_connect (sync_pair* handle, connection_type type, sync_object_type object_types) { gpe_conn *conn = NULL; conn = g_malloc0 (sizeof (gpe_conn)); g_assert (conn); conn->sync_pair = handle; conn->commondata.object_types = object_types; pthread_create (&conn->thread, NULL, gpe_do_connect, conn); return conn; } /* sync_disconnect() Called by the sync engine to free the connection handle and disconnect from the database client. */ void sync_disconnect (gpe_conn *conn) { GSList *i; sync_pair *sync_pair = conn->sync_pair; GPE_DEBUG(conn, "sync_disconnect"); for (i = db_list; i; i = i->next) { struct db *db = i->data; gpe_disconnect (db); } /* cleanup memory from the connection */ if (conn->device_addr) g_free (conn->device_addr); if (conn->username) g_free (conn->username); g_free (conn); sync_set_requestdone (sync_pair); } /* get_changes() The most important function in the plugin. This function is called periodically by the sync engine to poll for changes in the database to be synchronized. The function should return a pointer to a gmalloc'ed change_info struct (which will be freed by the sync engine after usage). using sync_set_requestdata(change_info*, sync_pair*). For all data types set in the argument "newdbs", ALL entries should be returned. This is used when the other end reports that a database has been reset (by e.g. selecting "Reset all data" in a mobile phone.) Testing for a data type is simply done by if (newdbs & SYNC_OBJECT_TYPE_SOMETHING) ... The "commondata" field of the connection handle contains the field commondata.object_types which specifies which data types should be synchronized. Only return changes from these data types. The changes reported by this function should be the remembered and rereported every time until sync_done() (see below) has been called with a success value. This ensures that no changes get lost if some connection fails. */ void get_changes (gpe_conn *conn, sync_object_type newdbs) { conn->newdbs = newdbs; pthread_create (&conn->thread, NULL, gpe_do_get_changes, conn); } /* syncobj_modify() Modify or add an object in the database. This is called by the sync engine when a change has been reported in the other end. Arguments: object A string containing the actual data of the object. E.g. for an objtype of SYNC_OBJECT_TYPE_CALENDAR, this is a vCALENDAR 2.0 string (see RFC 2445). uid The unique ID of this entry. If it is new (i.e. the sync engine has not seen it before), this is NULL. objtype The data type of this object. returnuid If uid is NULL, then the ID of the newly created object should be returned in this buffer (if non-NULL). The length of the ID should be returned in returnuidlen. */ void syncobj_modify (gpe_conn *conn, char* object, char *uid, sync_object_type objtype, char *returnuid, int *returnuidlen) { GError *err = NULL; GSList *i; GPE_DEBUG (conn, "syncobj_modify"); for (i = db_list; i; i = i->next) { struct db *db = i->data; if (objtype & db->type) db->push_object (db, object, uid, returnuid, returnuidlen, &err); } sync_set_requestdone (conn->sync_pair); } /* syncobj_delete() Delete an object from the database. If the argument softdelete is true, then this object is deleted by the sync engine for storage reasons. */ void syncobj_delete (gpe_conn *conn, char *uid, sync_object_type objtype, int softdelete) { gboolean soft = softdelete ? TRUE : FALSE; GSList *i; GPE_DEBUG (conn, "syncobj_delete"); if (!uid) { GPE_DEBUG (conn, "item to delete not specified by syncengine"); sync_set_requestfailed (conn->sync_pair); return; } for (i = db_list; i; i = i->next) { struct db *db = i->data; if (objtype & db->type) db->delete_object (db, uid, soft); } sync_set_requestdone (conn->sync_pair); } /* syncobj_get_recurring() This is a very optional function which may very well be removed in the future. It should return a list of all recurrence instance of an object (such as all instances of a recurring calendar event). The recurring events should be returned as a GList of changed_objects with change type SYNC_OBJ_RECUR. */ void syncobj_get_recurring (gpe_conn *conn, changed_object *obj) { GPE_DEBUG(conn, "syncobj_get_recurring"); /* * not implemented */ sync_set_requestdata (NULL, conn->sync_pair); } /* sync_done() This function is called by the sync engine after a synchronization has been completed. If success is true, the sync was successful, and all changes reported by get_changes can be forgot. If your database is based on a change counter, this can be done by simply saving the new change counter. */ void sync_done (gpe_conn *conn, gboolean success) { GSList *i; for (i = db_list; i; i = i->next) { struct db *db = i->data; if (db->changed) { gchar *filename; FILE *fp; filename = g_strdup_printf ("%s/%s", sync_get_datapath (conn->sync_pair), db->name); fp = fopen (filename, "w"); if (fp) { fprintf (fp, "%d\n", (int)db->current_timestamp); fclose (fp); } g_free (filename); } } sync_set_requestdone (conn->sync_pair); } /*********************************************************************** The following functions are synchronous, i.e. the syncengine expects an immedieate answer without using sync_set_requestsomething() ************************************************************************/ /* always_connected() Return TRUE if this client does not have to be polled (i.e. can be constantly connected). */ gboolean always_connected (void) { return FALSE; } /* short_name() Return a short plugin name for internal use. */ char * short_name (void) { return "gpe"; } /* long_name() Return a long name which can be shown to the user. */ char * long_name (void) { return _("GPE"); } /* plugin_info() Return an even longer description of what this plugin does. This will be shown next to the drop-down menu in the sync pair options. */ char * plugin_info (void) { return _("This plugin allows you to synchronize with the GPE Palmtop Environment"); } /* plugin_init() Initialize the plugin. Called once upon loading of the plugin (NOT once per sync pair). */ void plugin_init (void) { calendar_init (); todo_init (); contacts_init (); } /* object_types() Return the data types this plugin can handle. */ sync_object_type object_types (void) { return SYNC_OBJECT_TYPE_CALENDAR | SYNC_OBJECT_TYPE_TODO | SYNC_OBJECT_TYPE_PHONEBOOK; } /* plugin_API_version() Return the MultiSync API version for which the plugin was compiled. It is defined in multisync.h as MULTISYNC_API_VER. Do not use return(MULTISYNC_API_VER), though, as the plugin will then get valid after a simple recompilation. This may not be all that is needed. */ int plugin_API_version (void) { return GPE_MULTISYNC_API_VER; } --- NEW FILE: gui.c --- /* * MultiSync GPE Plugin * Copyright (C) 2004 Phil Blundell <pb...@ne...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; */ #include "config.h" #include <gtk/gtk.h> #include <glade/glade.h> #include "gpe_sync.h" void cancel_clicked (GtkWidget *w, GtkWidget *data) { gtk_widget_destroy (data); } void ok_clicked (GtkWidget *w, GtkWidget *data) { gpe_conn *conn; conn = g_object_get_data (G_OBJECT (data), "conn"); g_free (conn->username); g_free (conn->device_addr); w = g_object_get_data (G_OBJECT (data), "username"); conn->username = gtk_editable_get_chars (GTK_EDITABLE (w), 0, -1); w = g_object_get_data (G_OBJECT (data), "addr"); conn->device_addr = gtk_editable_get_chars (GTK_EDITABLE (GTK_COMBO (w)->entry), 0, -1); gpe_save_config (conn); gtk_widget_destroy (data); } void delete_window (GtkWidget *w) { gpe_conn *conn; conn = g_object_get_data (G_OBJECT (w), "conn"); g_free (conn->username); g_free (conn->device_addr); g_free (conn); sync_plugin_window_closed (); } GtkWidget* open_option_window (sync_pair *pair, connection_type type) { GladeXML *xml; gchar *filename; GtkWidget *config_window; GtkWidget *w; gpe_conn *conn; filename = g_build_filename (PREFIX, "share", PACKAGE_NAME, "gpe_sync.glade", NULL); xml = glade_xml_new (filename, NULL, NULL); g_free (filename); if (xml == NULL) return FALSE; conn = g_malloc0 (sizeof (*conn)); conn->sync_pair = pair; config_window = glade_xml_get_widget (xml, "gpe_config"); gpe_load_config (conn); g_object_set_data (G_OBJECT (config_window), "conn", conn); g_signal_connect (G_OBJECT (config_window), "destroy", G_CALLBACK (delete_window), NULL); w = glade_xml_get_widget (xml, "entry1"); gtk_entry_set_text (GTK_ENTRY (w), conn->username); g_object_set_data (G_OBJECT (config_window), "username", w); w = glade_xml_get_widget (xml, "combo1"); gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (w)->entry), conn->device_addr); g_object_set_data (G_OBJECT (config_window), "addr", w); w = glade_xml_get_widget (xml, "cancelbutton1"); g_signal_connect (G_OBJECT (w), "clicked", G_CALLBACK (cancel_clicked), config_window); w = glade_xml_get_widget (xml, "okbutton1"); g_signal_connect (G_OBJECT (w), "clicked", G_CALLBACK (ok_clicked), config_window); g_object_unref (G_OBJECT (xml)); return config_window; } --- NEW FILE: config.c --- /* * MultiSync GPE Plugin * Copyright (C) 2004 Phil Blundell <pb...@ne...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; */ #include <stdlib.h> #include <errno.h> #include <glib.h> #include <libintl.h> #include <stdio.h> #include <string.h> #include "multisync.h" #include "gpe_sync.h" gchar * gpe_config_path (gpe_conn *conn) { gchar *filename; filename = g_strdup_printf ("%s/%s", sync_get_datapath (conn->sync_pair), "gpe_config.dat"); return filename; } gboolean gpe_load_config (gpe_conn *conn) { gchar *path; FILE *fp; path = gpe_config_path (conn); fp = fopen (path, "r"); if (fp) { char buf[256]; if (fgets (buf, sizeof (buf), fp)) { buf [strlen (buf) - 1] = 0; conn->device_addr = g_strdup (buf); } if (fgets (buf, sizeof (buf), fp)) { buf [strlen (buf) - 1] = 0; conn->username = g_strdup (buf); } fclose (fp); } else { conn->username = g_strdup (g_get_user_name ()); conn->device_addr = g_strdup ("localhost"); } g_free (path); return TRUE; } gboolean gpe_save_config (gpe_conn *conn) { gchar *path; FILE *fp; path = gpe_config_path (conn); fprintf (stderr, "Saving config to %s\n", path); fp = fopen (path, "w"); if (fp) { fprintf (fp, "%s\n", conn->device_addr); fprintf (fp, "%s\n", conn->username); fclose (fp); } g_free (path); return TRUE; } --- NEW FILE: connection.c --- /* * MultiSync GPE Plugin * Copyright (C) 2004 Phil Blundell <pb...@ne...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; */ #include <stdlib.h> #include <errno.h> #include <glib.h> #include <libintl.h> #include <stdio.h> #include <string.h> #include <fcntl.h> #include "gpe_sync.h" #include <gpe/tag-db.h> #define _(x) gettext(x) nsqlc * gpe_connect_one (gpe_conn *conn, const gchar *db, char **err) { gchar *path; nsqlc *r; path = g_strdup_printf ("%s@%s:.gpe/%s", conn->username, conn->device_addr, db); fprintf (stderr, "connecting to %s\n", path); r = nsqlc_open_ssh (path, O_RDWR, err); g_free (path); return r; } void * gpe_do_connect (void *_conn) { GSList *i; char* errmsg = NULL; gboolean failed = FALSE; gpe_conn *conn; conn = (gpe_conn *)_conn; GPE_DEBUG(conn, "sync_connect"); /* load the connection attributes */ if (! gpe_load_config (conn)) { /* failure */ errmsg = g_strdup (_("Failed to load configuration")); sync_set_requestfailederror (errmsg, conn->sync_pair); pthread_exit (0); } for (i = db_list; i; i = i->next) { struct db *db = i->data; db->db = gpe_connect_one (conn, db->name, &errmsg); if (!db->db) { failed = TRUE; break; } } if (failed) { for (i = db_list; i; i = i->next) { struct db *db = i->data; gpe_disconnect (db); } sync_set_requestfailederror (g_strdup (errmsg), conn->sync_pair); pthread_exit (0); } sync_set_requestdone (conn->sync_pair); pthread_exit (0); } void gpe_disconnect (struct db *db) { if (db->db) nsqlc_close (db->db); db->db = NULL; } void * gpe_do_get_changes (void *_conn) { GSList *i; GList *changes = NULL; sync_object_type retnewdbs = 0; change_info *chinfo; gpe_conn *conn; sync_object_type newdbs; conn = (gpe_conn *)_conn; newdbs = conn->newdbs; GPE_DEBUG(conn, "get_changes"); for (i = db_list; i; i = i->next) { struct db *db = i->data; gchar *filename; FILE *fp; db->last_timestamp = 0; filename = g_strdup_printf ("%s/%s", sync_get_datapath (conn->sync_pair), db->name); fp = fopen (filename, "r"); if (fp) { int i; if (fscanf (fp, "%d", &i)) db->last_timestamp = i; fclose (fp); } g_free (filename); nsqlc_get_time (db->db, &db->current_timestamp, NULL); if (conn->commondata.object_types & db->type) { GList *local_changes = db->get_changes (db, newdbs & db->type); if (local_changes) { db->changed = TRUE; changes = g_list_concat (changes, local_changes); } } } /* Allocate the change_info struct */ chinfo = g_malloc0 (sizeof (change_info)); chinfo->changes = changes; /* Did we detect any reset databases */ chinfo->newdbs = retnewdbs; sync_set_requestdata (chinfo, conn->sync_pair); pthread_exit (0); } static int fetch_callback (void *arg, int argc, char **argv, char **names) { if (argc == 2) { GSList **data = (GSList **)arg; gpe_tag_pair *p = g_malloc (sizeof (*p)); p->tag = g_strdup (argv[0]); p->value = g_strdup (argv[1]); *data = g_slist_prepend (*data, p); } return 0; } GSList * fetch_tag_data (nsqlc *db, const gchar *query_str, guint id) { GSList *data = NULL; nsqlc_exec_printf (db, query_str, fetch_callback, &data, NULL, id); return data; } gboolean store_tag_data (nsqlc *db, const gchar *table, guint id, GSList *tags, gboolean delete) { if (delete) nsqlc_exec_printf (db, "delete from '%q' where urn=%d", NULL, NULL, NULL, table, id); while (tags) { gpe_tag_pair *p = tags->data; nsqlc_exec_printf (db, "insert into '%q' values (%d, '%q', '%q')", NULL, NULL, NULL, table, id, p->tag, p->value); tags = tags->next; } return TRUE; } static int fetch_uid_callback (void *arg, int argc, char **argv, char **names) { if (argc == 1) { GSList **data = (GSList **)arg; *data = g_slist_prepend (*data, (void *)atoi (argv[0])); } return 0; } GSList * fetch_uid_list (nsqlc *db, const gchar *query, ...) { GSList *data = NULL; va_list ap; va_start (ap, query); nsqlc_exec_vprintf (db, query, fetch_uid_callback, &data, NULL, ap); va_end (ap); return data; } |
From: Armin B. <az...@us...> - 2005-02-18 09:54:11
|
Update of /cvsroot/multisync/multisync/plugins/gpe_plugin/po In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30033/po Added Files: Tag: branch_08X Makefile.in Makefile.in.in Log Message: Initial revision of gpe_plugin --- NEW FILE: Makefile.in --- # Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <dr...@gn...> # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. PACKAGE = gpe_plugin VERSION = 0.1 # These two variables depend on the location of this directory. subdir = po top_builddir = .. SHELL = /bin/sh srcdir = . top_srcdir = .. prefix = /usr/local exec_prefix = ${prefix} datadir = ${prefix}/share localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/po INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` CC = gcc GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge DEFS = -DHAVE_CONFIG_H CFLAGS = -g -O2 CPPFLAGS = INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ $(POFILES) $(GMOFILES) POTFILES = \ CATALOGS = @CATALOGS@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(PACKAGE).pot $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) --statistics -o $$file $< all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: # Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ --add-comments --keyword=_ --keyword=N_ \ --files-from=$(srcdir)/POTFILES.in \ && test ! -f $(PACKAGE).po \ || ( rm -f $(srcdir)/$(PACKAGE).pot \ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkinstalldirs) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $(DESTDIR)$$dir; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ echo "installing $(srcdir)/$$cat as" \ "$(DESTDIR)$$dir/$(PACKAGE).mo"; \ fi; \ done # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ done if test "$(PACKAGE)" = "gettext"; then \ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi check: all dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(PACKAGE).po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ cp -p $$dir/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(PACKAGE).pot if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ cd $(srcdir); \ catalogs='$(GMOFILES)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \ mv -f $$lang.new.po $$lang.po; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$lang.new.po; \ fi; \ done $(MAKE) update-gmo update-gmo: Makefile $(GMOFILES) @: Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: --- NEW FILE: Makefile.in.in --- # Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <dr...@gn...> # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. PACKAGE = @PACKAGE@ VERSION = @VERSION@ # These two variables depend on the location of this directory. subdir = po top_builddir = .. SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` CC = @CC@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge DEFS = @DEFS@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ $(POFILES) $(GMOFILES) POTFILES = \ CATALOGS = @CATALOGS@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(PACKAGE).pot $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) --statistics -o $$file $< all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: # Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ --add-comments --keyword=_ --keyword=N_ \ --files-from=$(srcdir)/POTFILES.in \ && test ! -f $(PACKAGE).po \ || ( rm -f $(srcdir)/$(PACKAGE).pot \ && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkinstalldirs) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $(DESTDIR)$$dir; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ echo "installing $(srcdir)/$$cat as" \ "$(DESTDIR)$$dir/$(PACKAGE).mo"; \ fi; \ done # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ done if test "$(PACKAGE)" = "gettext"; then \ rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi check: all dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(PACKAGE).po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ cp -p $$dir/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(PACKAGE).pot if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ cd $(srcdir); \ catalogs='$(GMOFILES)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\.gmo$$//'`; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \ mv -f $$lang.new.po $$lang.po; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$lang.new.po; \ fi; \ done $(MAKE) update-gmo update-gmo: Makefile $(GMOFILES) @: Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: |
Update of /cvsroot/multisync/multisync/plugins/gpe_plugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30033 Added Files: Tag: branch_08X Makefile Makefile.am Makefile.in README aclocal.m4 autogen.sh config.guess config.h config.h.in config.log config.status config.sub configure configure.in depcomp gpe_sync.glade gpe_sync.gladep gpe_sync.h install-sh libgpevtype-0.9.tar.gz libnsqlc-0.2.tar.gz libtool ltmain.sh missing mkinstalldirs stamp-h1 Log Message: Initial revision of gpe_plugin --- NEW FILE: mkinstalldirs --- #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman <fri...@pr...> # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here --- NEW FILE: configure --- #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for gpe_plugin 0.1. # # Report bugs to <gp...@ha...>. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. [...21638 lines suppressed...] # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi --- NEW FILE: missing --- #! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pi...@ir...>, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.4 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 --- NEW FILE: gpe_sync.gladep --- <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> <!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd"> <glade-project> <name></name> <program_name></program_name> </glade-project> --- NEW FILE: gpe_sync.h --- /* * MultiSync GPE Plugin * Copyright (C) 2004 Phil Blundell <pb...@ne...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; */ #include "multisync.h" #include <gpe/nsqlc.h> #include <glib.h> typedef struct { client_connection commondata; sync_pair *sync_pair; char* device_addr; char* username; pthread_t thread; sync_object_type newdbs; /* XXX */ } gpe_conn; struct db { const gchar *name; int type; GList *(*get_changes)(struct db *db, int newdb); gboolean (*push_object)(struct db *db, const char *obj, const char *uid, char *returnuid, int *returnuidlen, GError **err); gboolean (*delete_object)(struct db *db, const char *uid, gboolean soft); nsqlc *db; time_t last_timestamp; time_t current_timestamp; gboolean changed; }; #define GPE_DEBUG(conn, x) fprintf (stderr, "%s\n", (x)) extern GSList *db_list; extern void gpe_disconnect (struct db *db); extern gboolean gpe_load_config (gpe_conn *conn); extern gboolean gpe_save_config (gpe_conn *conn); extern GSList *fetch_uid_list (nsqlc *db, const gchar *query, ...); extern GSList *fetch_tag_data (nsqlc *db, const gchar *query_str, guint id); extern gboolean store_tag_data (nsqlc *db, const gchar *table, guint id, GSList *tags, gboolean delete); extern void calendar_init (void); extern void todo_init (void); extern void contacts_init (void); extern void *gpe_do_get_changes (void *conn); extern void *gpe_do_connect (void *conn); --- NEW FILE: config.status --- #! /bin/sh # Generated by configure. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=${CONFIG_SHELL-/bin/sh} ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which [...1174 lines suppressed...] sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done { (exit 0); exit 0; } --- NEW FILE: libnsqlc-0.2.tar.gz --- (This appears to be a binary file; contents omitted.) --- NEW FILE: libtool --- #! /bin/sh # libtoolT - Provide generalized library-building support services. # Generated automatically by (GNU gpe_plugin 0.1) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit <go...@gn...>, 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of [...7329 lines suppressed...] # Fix the shell variable $srcfile for the compiler. fix_srcfile_path="" # Set to yes if exported symbols are required. always_export_symbols=no # The commands to list exported symbols. export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds="" # Symbols that should not be listed in the preloaded symbols. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Symbols that must always be exported. include_expsyms="" # ### END LIBTOOL TAG CONFIG: F77 --- NEW FILE: depcomp --- #! /bin/sh # depcomp - compile a program generating dependencies as side-effects # Copyright 1999, 2000, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva <ol...@dc...>. if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. if test -z "$depfile"; then base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` dir=`echo "$object" | sed 's,/.*$,/,'` if test "$dir" = "$object"; then dir= fi # FIXME: should be _deps on DOS. depfile="$dir.deps/$base" fi tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 --- NEW FILE: aclocal.m4 --- # generated automatically by aclocal 1.7.9 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # Do all the work for Automake. -*- Autoconf -*- # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 [...6931 lines suppressed...] cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done SED=$lt_cv_path_SED ]) AC_MSG_RESULT([$SED]) ]) --- NEW FILE: config.h.in --- /* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `nsqlc' library (-lnsqlc). */ #undef HAVE_LIBNSQLC /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION --- NEW FILE: Makefile.am --- ## Process this file with automake to produce Makefile.in SUBDIRS = src gpedatadir=@GPE_DATADIR@ gpedata_DATA = gpe_sync.glade EXTRA_DIST = \ autogen.sh \ gpe_sync.glade \ gpe_sync.gladep install-data-local: @$(NORMAL_INSTALL) if test -d $(srcdir)/pixmaps; then \ $(mkinstalldirs) $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \ for pixmap in $(srcdir)/pixmaps/*; do \ if test -f $$pixmap; then \ $(INSTALL_DATA) $$pixmap $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \ fi \ done \ fi dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ for pixmap in pixmaps/*; do \ if test -f $$pixmap; then \ cp -p $$pixmap $(distdir)/pixmaps; \ fi \ done \ fi --- NEW FILE: config.h --- /* config.h. Generated by configure. */ /* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if you have the <dlfcn.h> header file. */ #define HAVE_DLFCN_H 1 /* Define to 1 if you have the <inttypes.h> header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the `nsqlc' library (-lnsqlc). */ #define HAVE_LIBNSQLC 1 /* Define to 1 if you have the <memory.h> header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the <stdint.h> header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the <stdlib.h> header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the <strings.h> header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the <string.h> header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the <sys/stat.h> header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the <sys/types.h> header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the <unistd.h> header file. */ #define HAVE_UNISTD_H 1 /* Name of package */ #define PACKAGE "gpe_plugin" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "gp...@ha..." /* Define to the full name of this package. */ #define PACKAGE_NAME "gpe_plugin" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "gpe_plugin 0.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gpe_plugin" /* Define to the version of this package. */ #define PACKAGE_VERSION "0.1" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Version number of package */ #define VERSION "0.1" --- NEW FILE: Makefile.in --- # Makefile.in generated by automake 1.7.9 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ GPE_DATADIR = @GPE_DATADIR@ GPE_DBG_FLAGS_FALSE = @GPE_DBG_FLAGS_FALSE@ GPE_DBG_FLAGS_TRUE = @GPE_DBG_FLAGS_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MULTISYNC_VERSION = @MULTISYNC_VERSION@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUBDIRS = src gpedatadir = @GPE_DATADIR@ gpedata_DATA = gpe_sync.glade EXTRA_DIST = \ autogen.sh \ gpe_sync.glade \ gpe_sync.gladep subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = ../../specs/multisync-gpe.spec DIST_SOURCES = DATA = $(gpedata_DATA) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure \ Makefile.am aclocal.m4 config.guess config.h.in config.sub \ configure configure.in depcomp install-sh ltmain.sh missing \ mkinstalldirs DIST_SUBDIRS = $(SUBDIRS) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): configure.in cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOHEADER) touch $(srcdir)/config.h.in distclean-hdr: -rm -f config.h stamp-h1 ../../specs/multisync-gpe.spec: $(top_builddir)/config.status $(top_srcdir)/../../specs/multisync-gpe.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: gpedataDATA_INSTALL = $(INSTALL_DATA) install-gpedataDATA: $(gpedata_DATA) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(gpedatadir) @list='$(gpedata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(gpedataDATA_INSTALL) $$d$$p $(DESTDIR)$(gpedatadir)/$$f"; \ $(gpedataDATA_INSTALL) $$d$$p $(DESTDIR)$(gpedatadir)/$$f; \ done uninstall-gpedataDATA: @$(NORMAL_UNINSTALL) @list='$(gpedata_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(gpedatadir)/$$f"; \ rm -f $(DESTDIR)$(gpedatadir)/$$f; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = . distdir = $(PACKAGE)-$(VERSION) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkinstalldirs) $(distdir)/../../specs $(distdir)/po @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist $(am__remove_distdir) GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ && rm -f $(distdir).tar.gz \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(gpedatadir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-data-local install-gpedataDATA install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-gpedataDATA uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive ctags \ ctags-recursive dist dist-all dist-bzip2 dist-gzip distcheck \ distclean distclean-generic distclean-hdr distclean-libtool \ distclean-recursive distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-data install-data-am \ install-data-local install-data-recursive install-exec \ install-exec-am install-exec-recursive install-gpedataDATA \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am \ pdf-recursive ps ps-am ps-recursive tags tags-recursive \ uninstall uninstall-am uninstall-gpedataDATA uninstall-info-am \ uninstall-info-recursive uninstall-recursive install-data-local: @$(NORMAL_INSTALL) if test -d $(srcdir)/pixmaps; then \ $(mkinstalldirs) $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \ for pixmap in $(srcdir)/pixmaps/*; do \ if test -f $$pixmap; then \ $(INSTALL_DATA) $$pixmap $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \ fi \ done \ fi dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ for pixmap in pixmaps/*; do \ if test -f $$pixmap; then \ cp -p $$pixmap $(distdir)/pixmaps; \ fi \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: --- NEW FILE: configure.in --- dnl Process this file with autoconf to produce a configure script. AC_INIT(gpe_plugin, 0.1, gp...@ha...) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_CONFIG_HEADER(config.h) AC_ISC_POSIX AC_PROG_CC AM_PROG_CC_STDC AC_HEADER_STDC pkg_modules="libgnomeui-2.0 gtk+-2.0 glib-2.0 libgpevtype libglade-2.0" PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) GPE_DATADIR=${datadir}/gpe_plugin AC_SUBST(GPE_DATADIR) dnl Add extra flags if in debug mode AC_ARG_ENABLE(debug, [--enable-debug Enable debugging - useful only for developers and testers], DBG_FLAGS="yes", DBG_FLAGS="no", ) AM_CONDITIONAL(GPE_DBG_FLAGS, test "$DBG_FLAGS" = "yes") CPPFLAGS="${GTK_CFLAGS} ${GNOME_INCLUDEDIR} ${ORBIT_CFLAGS} ${BONOBO_CFLAGS}" dnl GETTEXT_PACKAGE=gpe_sync dnl AC_SUBST(GETTEXT_PACKAGE) dnl AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE") dnl Add the languages which your application supports here. dnl ALL_LINGUAS="" dnl AM_GLIB_GNU_GETTEXT AC_PROG_LIBTOOL dnl gpe_sync required libraries AC_CHECK_LIB(nsqlc,nsqlc_exec,,AC_MSG_ERROR([You must have libnsqlc installed.])) dnl Info for the RPM MULTISYNC_TOP="../.." AC_SUBST(VERSION) AC_SUBST(prefix) MULTISYNC_VERSION=`grep "#define VERSION" ${MULTISYNC_TOP}/config.h | sed -e 's/#define VERSION //g' | sed -e 's/\"//g'` AC_SUBST(MULTISYNC_VERSION) AC_OUTPUT([ Makefile src/Makefile po/Makefile.in ../../specs/multisync-gpe.spec ]) --- NEW FILE: libgpevtype-0.9.tar.gz --- (This appears to be a binary file; contents omitted.) --- NEW FILE: config.guess --- #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. timestamp='2004-07-19' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software [...1410 lines suppressed...] /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: --- NEW FILE: confi... [truncated message content] |
From: Armin B. <az...@us...> - 2005-02-18 09:50:22
|
Update of /cvsroot/multisync/multisync/plugins/gpe_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29453/src Log Message: Directory /cvsroot/multisync/multisync/plugins/gpe_plugin/src added to the repository --> Using per-directory sticky tag `branch_08X' |
From: Armin B. <az...@us...> - 2005-02-18 09:50:22
|
Update of /cvsroot/multisync/multisync/plugins/gpe_plugin/po In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29453/po Log Message: Directory /cvsroot/multisync/multisync/plugins/gpe_plugin/po added to the repository --> Using per-directory sticky tag `branch_08X' |
From: Armin B. <az...@us...> - 2005-02-18 09:50:21
|
Update of /cvsroot/multisync/multisync/plugins/gpe_plugin/autom4te.cache In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29453/autom4te.cache Log Message: Directory /cvsroot/multisync/multisync/plugins/gpe_plugin/autom4te.cache added to the repository --> Using per-directory sticky tag `branch_08X' |
From: Armin B. <az...@us...> - 2005-02-18 09:49:32
|
Update of /cvsroot/multisync/multisync/plugins/gpe_plugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29157/gpe_plugin Log Message: Directory /cvsroot/multisync/multisync/plugins/gpe_plugin added to the repository --> Using per-directory sticky tag `branch_08X' |
From: Markus M. <ms...@us...> - 2005-02-04 10:38:18
|
Update of /cvsroot/multisync/multisync/specs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20865 Added Files: Tag: branch_08X multisync-sunbird.spec.in Log Message: initial revision --- NEW FILE: multisync-sunbird.spec.in --- Name : multisync-sunbird Version : @VERSION@ Release : 1 Group : Applications/Productivity Summary : A Mozilla Sunbird plugin for MultiSync Copyright : GPL Requires: multisync = @MULTISYNC_VERSION@ BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root %description This is a MultiSync plugin which can connect to Mozilla Sunbird The MultiSync homepage can be found at http://multisync.sourceforge.net %define _unpackaged_files_terminate_build 0 %define _missing_doc_files_terminate_build 0 %files @prefix@/lib/multisync/libsunbird_plugin.so.0.0.0 @prefix@/lib/multisync/libsunbird_plugin.so.0 @prefix@/lib/multisync/libsunbird_plugin.so %install rm -rf %{buildroot} mkdir -p $RPM_BUILD_ROOT/@prefix@/lib/multisync/ cp -a @prefix@/lib/multisync/libsunbird_plugin.so.0.0.0 $RPM_BUILD_ROOT/@prefix@/lib/multisync/ cp -a @prefix@/lib/multisync/libsunbird_plugin.so.0 $RPM_BUILD_ROOT/@prefix@/lib/multisync/ cp -a @prefix@/lib/multisync/libsunbird_plugin.so $RPM_BUILD_ROOT/@prefix@/lib/multisync/ strip $RPM_BUILD_ROOT/@prefix@/lib/multisync/libsunbird_plugin.so.0.0.0 |
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11588/sunbird_plugin/src Added Files: Tag: branch_08X Makefile Makefile.am Makefile.in sunbird_plugin.c sunbird_plugin.h tools.c tools.h Log Message: initial revision --- NEW FILE: tools.h --- #include <stdlib.h> #include <glib.h> #include <multisync.h> /* Holds information about calendars */ typedef struct { GString* id; /* iCalendar id */ GString* sourcefile; /* Source calendar file (.ics) */ GString* last_modified; /* as iCalendar format date */ GString* data; /* The actual entry data in iCalendar format */ GString* remove_priority; int deleted; /* Notification that entry has been deleted */ } calendar_entry; /* Duplicate string in a GString. Returns NULL, if GString is also NULL, otherwise it returns a pointer to char* which must be freed after use. */ char* copy_from_g_string(GString* str); /* Only for debugging */ void dump_calendar_entries(GList* entries); /* Free memory for calendar entry */ void free_calendar_entry(calendar_entry* e); /* Make exact copy of calendar entry and its contents */ calendar_entry* clone_calendar_entry(calendar_entry* e); /* Free a list of events, including their contents */ void free_events_list(GList *lst); /* Free a list of strings (list of char* pointers, not GStrings) */ void free_string_list(GList *lst); /* Note that this function, despite its name, will at the moment not read every icalendar file, because it doesn't really parse the file, but assumes the structure Mozilla Calendar uses when it writes these files. */ int read_icalendar_file(char* filename, GList **entries_ptr); /* Write a file which remembers all the keys which have already been synced and their last modification date. This is essentially a "pseudo-vcalendar-file" and only used internally by the plugin. */ int write_key_file(char* filename, GList *entries); --- NEW FILE: sunbird_plugin.c --- /* MultiSync Plugin for Mozilla Sunbird Copyright (C) 2005 Markus Meyer <me...@me...> Derived from the API demo for MultiSync, which is Copyright (C) 2002-2003 Bo Lincoln <li...@ly...> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS SOFTWARE IS DISCLAIMED. */ #include "sunbird_plugin.h" ical_connection* sync_connect(sync_pair* handle, connection_type type, sync_object_type object_types) { ical_connection *conn; conn = g_malloc0(sizeof(ical_connection)); g_assert(conn); conn->sync_pair = handle; conn->commondata.object_types = object_types; conn->pending_changes = NULL; sync_set_requestdone(conn->sync_pair); return conn; } void sync_disconnect(ical_connection *conn) { sync_pair *sync_pair = conn->sync_pair; if (conn->pending_changes) { printf("Warning: Discarding pending changes\n"); free_events_list(conn->pending_changes); conn->pending_changes = NULL; } g_free(conn); sync_set_requestdone(sync_pair); } int get_calendar_changes(GList** changes_ptr, sync_object_type* retnewdbs_ptr, ical_connection* conn) { char keyfile[256]; GString* calendars_env = g_string_new(g_getenv("MULTISYNC_SUNBIRD_CALENDARS")); GList *entries = NULL, *cached_entries = NULL, *files = NULL, *cur, *cur2; /* Free previous pending changes, if any */ if (conn->pending_changes) { printf("Warning: Resetting pending changes\n"); free_events_list(conn->pending_changes); conn->pending_changes = NULL; } /* FIXME: We need an option dialog for that */ /* FIXME: We also should not use strtok (not multithread-safe) */ if (calendars_env) { char* pch; for (pch = (char*)strtok(calendars_env->str, ":"); pch; pch = (char*)strtok(NULL, ":")) files = g_list_append(files, (char*)strdup(pch)); g_string_free(calendars_env, TRUE); calendars_env = NULL; } if (!files) { printf("ERROR: List of calendars not set. Set MULTISYNC_SUNBIRD_CALENDARS\n"); printf(" to a list of ics files or URLs, separated with colons (':')"); return FALSE; } strcpy(keyfile, sync_get_datapath(conn->sync_pair)); strcat(keyfile, "/mozilla_keyfile.ics"); printf("Reading keyfile '%s'...\n", keyfile); if (!read_icalendar_file(keyfile, &cached_entries)) { printf("Keyfile not found, doing complete resync!\n"); *retnewdbs_ptr = SYNC_OBJECT_TYPE_CALENDAR; } printf("Reading calendar files...\n"); for (cur = g_list_first(files); cur; cur = cur->next) { char* filename = (char*)cur->data; printf("Reading calendar file '%s'...\n", filename); if (!read_icalendar_file(filename, &entries)) { printf("Error reading calendar file!\n"); sync_set_requestfailed(conn->sync_pair); goto err; } } printf("Syncing entries...\n"); /* For all entries check, if they are already cached, new or modified */ for (cur = g_list_first(entries); cur; cur = cur->next) { changed_object* obj = NULL; calendar_entry* cached = NULL; calendar_entry* e = (calendar_entry*)cur->data; /* Is this entry already cached? */ for (cur2 = g_list_first(cached_entries); cur2; cur2 = cur2->next) { calendar_entry* e2 = (calendar_entry*)cur2->data; if (strcmp(e2->id->str, e->id->str) == 0) { cached = e2; break; } } if (cached) { /* This element is already cached, check if it has been modified */ if (strcmp(cached->last_modified->str, e->last_modified->str) != 0) { /* This element has been modified, notify the sync engine */ printf("Entry %s has been modified\n", e->id->str); obj = (changed_object*)g_malloc0(sizeof(changed_object)); obj->change_type = SYNC_OBJ_MODIFIED; } } else { /* This element is not already cached, notify the sync engine */ printf("Entry %s is new\n", e->id->str); obj = (changed_object*)g_malloc0(sizeof(changed_object)); obj->change_type = SYNC_OBJ_ADDED; } if (obj) { /* Complete entry */ obj->comp = copy_from_g_string(e->data); obj->uid = copy_from_g_string(e->id); obj->removepriority = copy_from_g_string(e->remove_priority); obj->object_type = SYNC_OBJECT_TYPE_CALENDAR; /* Add it to list of changes */ *changes_ptr = g_list_append(*changes_ptr, obj); /* Add it to "pending-changes" entries */ conn->pending_changes = g_list_append(conn->pending_changes, clone_calendar_entry(e)); } } /* For all cached entries check if they have been deleted in the real calendar */ for (cur = g_list_first(cached_entries); cur; cur = cur->next) { int found = 0; calendar_entry* e = (calendar_entry*)cur->data; for (cur2 = g_list_first(entries); cur2; cur2 = cur2->next) { calendar_entry* e2 = (calendar_entry*)cur2->data; if (strcmp(e2->id->str, e->id->str) == 0) { found = 1; break; } } if (!found) { /* This entry has been deleted in the real calendar, since it is in the */ /* cached entries but not in the real calendar entries, notify sync engine */ changed_object* obj; printf("Entry %s was deleted\n", e->id->str); calendar_entry* deleted_entry = clone_calendar_entry(e); deleted_entry->deleted = 1; conn->pending_changes = g_list_append(conn->pending_changes, deleted_entry); obj = (changed_object*)g_malloc0(sizeof(changed_object)); obj->change_type = SYNC_OBJ_HARDDELETED; obj->uid = copy_from_g_string(e->id); obj->comp = NULL; obj->removepriority = NULL; obj->object_type = SYNC_OBJECT_TYPE_CALENDAR; *changes_ptr = g_list_append(*changes_ptr, obj); } } printf("Done!\n"); printf("Freeing lists...\n"); free_string_list(files); free_events_list(cached_entries); free_events_list(entries); printf("Done!\n"); return TRUE; err: printf("Freeing lists...\n"); free_string_list(files); free_events_list(cached_entries); free_events_list(entries); printf("Done!\n"); return FALSE; } void get_changes(ical_connection *conn, sync_object_type newdbs) { GList *changes = NULL; sync_object_type retnewdbs = 0; change_info *chinfo; if (conn->commondata.object_types & SYNC_OBJECT_TYPE_CALENDAR) { if (!get_calendar_changes(&changes, &retnewdbs, conn)) { sync_set_requestfailed(conn->sync_pair); return; } } chinfo = g_malloc0(sizeof(change_info)); chinfo->changes = changes; chinfo->newdbs = retnewdbs; sync_set_requestdata(chinfo, conn->sync_pair); } void syncobj_modify(ical_connection *conn, char* object, char *uid, sync_object_type objtype, char *returnuid, int *returnuidlen) { printf("ERROR: syncobj_modify called although syncobj_modify_list is implemented\n"); sync_set_requestfailed(conn->sync_pair); } void syncobj_delete(ical_connection *conn, char *uid, sync_object_type objtype, int softdelete) { printf("ERROR: syncobj_delete called although syncobj_modify_list is implemented\n"); sync_set_requestfailed(conn->sync_pair); } void syncobj_modify_list(ical_connection *conn, GList *changes) { GList *node; syncobj_modify_result *result; GList *results = NULL; GString *default_calendar = g_string_new(g_getenv("MULTISYNC_SUNBIRD_DEFAULT_CALENDAR")); if (!default_calendar || strlen(default_calendar->str) == 0) { printf("WARNING! Default calendar not set. Writing changes to the first calendar found\n"); printf(" To set the default calendar file, set MULTISYNC_SUNBIRD_DEFAULT_CALENDAR\n"); } for (node = g_list_first(changes); node; node = node->next) { changed_object *obj = (changed_object*)node->data; if (obj->object_type == SYNC_OBJECT_TYPE_CALENDAR) { printf("syncobj_modify_list got new calendar entry\n"); if (obj->change_type == SYNC_OBJ_ADDED) { printf("sync_object_modify_list adding entry\n"); } else if (obj->change_type == SYNC_OBJ_MODIFIED) { printf("sync_object_modify_list modifying entry\n"); } else if (obj->change_type == SYNC_OBJ_HARDDELETED) { printf("sync_object_modify_list (hard-)deleting entry\n"); } else if (obj->change_type == SYNC_OBJ_SOFTDELETED) { /* FIXME: We should not deleted the object here, but we could */ /* remember that it has been soft deleted so we don't */ /* propagate future changes to it. */ } } else { printf("Warning: syncobj_modify_list got other object than calendar entry\n"); } /* We create just a dummy result because we do not really return useful results */ result = (syncobj_modify_result*)g_malloc0(sizeof(syncobj_modify_result)); memset(result, 0, sizeof(syncobj_modify_result)); results = g_list_append(results, result); } g_string_free(default_calendar, TRUE); printf("syncobj_modify_list END\n"); sync_set_requestdata(results, conn->sync_pair); } void syncobj_get_recurring(ical_connection *conn, changed_object *obj) { /* FIXME ? */ sync_set_requestdata(NULL,conn->sync_pair); } void sync_done(ical_connection *conn, gboolean success) { if (conn->pending_changes) { char keyfile[256]; GList *cached_entries = NULL, *cur; printf("Sync done, remembering changes\n"); strcpy(keyfile, sync_get_datapath(conn->sync_pair)); strcat(keyfile, "/mozilla_keyfile.ics"); printf("Reading keyfile '%s'...\n", keyfile); if (!read_icalendar_file(keyfile, &cached_entries)) printf("Keyfile not found, creating new one\n"); printf("Merging changes with keyfile\n"); for (cur = g_list_first(conn->pending_changes); cur; cur = cur->next) { GList* cur2; calendar_entry *e = (calendar_entry*)cur->data; if (e->deleted) { /* Delete entry from cached entries list */ for (cur2 = g_list_first(cached_entries); cur2; cur2 = cur2->next) { calendar_entry *e2 = (calendar_entry*)cur2->data; if (strcmp(e2->id->str, e->id->str) == 0) { /* This is the entry, delete it */ printf("Removing entry %s\n", e2->id->str); cached_entries = g_list_remove(cached_entries, e2); free_calendar_entry(e2); break; } } } else { /* Modify/Add entry to cached list */ /* Check if entry is already in cached list. */ for (cur2 = g_list_first(cached_entries); cur2; cur2 = cur2->next) { calendar_entry *e2 = (calendar_entry*)cur2->data; if (strcmp(e2->id->str, e->id->str) == 0) { /* Entry already in cached entries list, delete it */ printf("Temporarily removing modifed entry %s\n", e2->id->str); cached_entries = g_list_remove(cached_entries, e2); free_calendar_entry(e2); break; } } /* Append entry */ printf("Appending entry %s\n", e->id->str); cached_entries = g_list_append(cached_entries, e); } } /* Notice that we do not delete the list entries because they are now in the cached_entries list */ g_list_free(conn->pending_changes); conn->pending_changes = NULL; printf("Writing keyfile '%s'...\n", keyfile); if (write_key_file(keyfile, cached_entries)) { printf("Keyfile written succesfully.\n"); } else { printf("ERROR: Error writing key file, but what should I do?\n"); } free_events_list(cached_entries); } else { printf("Sync done, no changes\n"); } sync_set_requestdone(conn->sync_pair); } gboolean always_connected() { return TRUE; } char* short_name() { return "sunbird-sync"; } char* long_name() { return "Mozilla Calendar"; } char* plugin_info(void) { return "Synchronisation with one or more Mozilla Calendar (Sunbird) calendars"; } void plugin_init(void) { } sync_object_type object_types() { /* We only handle calendar appointments at the moment */ return SYNC_OBJECT_TYPE_CALENDAR; } int plugin_API_version(void) { return 3; } --- NEW FILE: Makefile.am --- ## Process this file with automake to produce Makefile.in # not a nice way to do it libdir=$(prefix)/lib/multisync INCLUDES = \ -DPACKAGE_DATA_DIR=\""$(datadir)/multisync"\" \ @PACKAGE_CFLAGS@ -I$(top_srcdir)/include \ -I../../../include lib_LTLIBRARIES = libsunbird_plugin.la libsunbird_plugin_la_SOURCES = \ tools.c tools.h \ sunbird_plugin.c sunbird_plugin.h #libbackup_plugin_la_LIBADD = @PACKAGE_LIBS@ --- NEW FILE: Makefile.in --- # Makefile.in generated by automake 1.6.3 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ PATH_SEPARATOR = @PATH_SEPARATOR@ # not a nice way to do it libdir = $(prefix)/lib/multisync AMTAR = @AMTAR@ AS = @AS@ AWK = @AWK@ CC = @CC@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ MULTISYNC_VERSION = @MULTISYNC_VERSION@ OBJDUMP = @OBJDUMP@ PACKAGE = @PACKAGE@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ STRIP = @STRIP@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ install_sh = @install_sh@ INCLUDES = \ -DPACKAGE_DATA_DIR=\""$(datadir)/multisync"\" \ @PACKAGE_CFLAGS@ -I$(top_srcdir)/include \ -I../../../include lib_LTLIBRARIES = libsunbird_plugin.la libsunbird_plugin_la_SOURCES = \ tools.c tools.h \ sunbird_plugin.c sunbird_plugin.h subdir = src mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(lib_LTLIBRARIES) libsunbird_plugin_la_LDFLAGS = libsunbird_plugin_la_LIBADD = am_libsunbird_plugin_la_OBJECTS = tools.lo sunbird_plugin.lo libsunbird_plugin_la_OBJECTS = $(am_libsunbird_plugin_la_OBJECTS) DEFS = @DEFS@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ depcomp = $(SHELL) $(top_srcdir)/../../depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/sunbird_plugin.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/tools.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ CFLAGS = @CFLAGS@ DIST_SOURCES = $(libsunbird_plugin_la_SOURCES) DIST_COMMON = Makefile.am Makefile.in SOURCES = $(libsunbird_plugin_la_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) libLTLIBRARIES_INSTALL = $(INSTALL) install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test -z "$dir" && dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsunbird_plugin.la: $(libsunbird_plugin_la_OBJECTS) $(libsunbird_plugin_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libsunbird_plugin_la_LDFLAGS) $(libsunbird_plugin_la_OBJECTS) $(libsunbird_plugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sunbird_plugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tools.Plo@am__quote@ distclean-depend: -rm -rf ./$(DEPDIR) .c.o: @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< .c.obj: @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(COMPILE) -c `cygpath -w $<` .c.lo: @AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< CCDEPMODE = @CCDEPMODE@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: $(mkinstalldirs) $(DESTDIR)$(libdir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-compile distclean-depend \ distclean-generic distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES .PHONY: GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool distclean distclean-compile \ distclean-depend distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool tags uninstall \ uninstall-am uninstall-info-am uninstall-libLTLIBRARIES #libbackup_plugin_la_LIBADD = @PACKAGE_LIBS@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: --- NEW FILE: sunbird_plugin.h --- #include "tools.h" /* Main connection struct */ typedef struct { client_connection commondata; // Data the syncengine handles for us sync_pair *sync_pair; // The syncengine struct GList *pending_changes; // The recorded changes to the key file that are pending until sync_done } ical_connection; /* Standard MultiSync plugin API */ ical_connection* sync_connect(sync_pair* handle, connection_type type, sync_object_type object_types); void sync_disconnect(ical_connection *conn); void get_changes(ical_connection *conn, sync_object_type newdbs); void syncobj_modify(ical_connection *conn, char* object, char *uid, sync_object_type objtype, char *returnuid, int *returnuidlen); void syncobj_delete(ical_connection *conn, char *uid, sync_object_type objtype, int softdelete); void syncobj_modify_list(ical_connection *conn, GList *changes); void syncobj_get_recurring(ical_connection *conn, changed_object *obj); void sync_done(ical_connection *conn, gboolean success); gboolean always_connected(); char* short_name(); char* long_name(); char* plugin_info(void); void plugin_init(void); sync_object_type object_types(); int plugin_API_version(void); /* User functions */ int get_calendar_changes(GList** changes_ptr, sync_object_type* retnewdbs_ptr, ical_connection* conn); --- NEW FILE: tools.c --- /* MultiSync Plugin for Mozilla Sunbird Copyright (C) 2005 Markus Meyer <me...@me...> Derived from the API demo for MultiSync, which is Copyright (C) 2002-2003 Bo Lincoln <li...@ly...> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS SOFTWARE IS DISCLAIMED. */ #include "tools.h" void free_calendar_entry(calendar_entry* e) { g_string_free(e->id, TRUE); g_string_free(e->sourcefile, TRUE); g_string_free(e->last_modified, TRUE); if (e->data) g_string_free(e->data, TRUE); if (e->remove_priority) g_string_free(e->remove_priority, TRUE); g_free(e); } void free_events_list(GList *lst) { GList* cur; if (!lst) return; for (cur = g_list_first(lst); cur; cur = cur->next) free_calendar_entry((calendar_entry*)cur->data); g_list_free(lst); } int write_key_file(char* filename, GList *entries) { GList* cur; FILE* f; f = fopen(filename, "w"); if (!f) return 0; fprintf(f, "BEGIN:VCALENDAR\nVERSION:2.0\n"); for (cur = g_list_first(entries); cur; cur = cur->next) { calendar_entry* e = (calendar_entry*)cur->data; fprintf(f, "BEGIN:VEVENT\n"); fprintf(f, "UID\n"); fprintf(f, " :%s\n", e->id->str); fprintf(f, "LAST-MODIFIED\n"); fprintf(f, " :%s\n", e->last_modified->str); fprintf(f, "X-SOURCEFILE\n"); fprintf(f, " :%s\n", e->sourcefile->str); fprintf(f, "X-DELETED\n"); if (e->deleted) fprintf(f, " :1\n"); else fprintf(f, " :0\n"); fprintf(f, "END:VEVENT\n"); } fprintf(f, "END:VCALENDAR\n"); fclose(f); return 1; } void dump_calendar_entries(GList* entries) { GList* cur; printf("\n*** DEBUG DUMP OF CALENDAR ENTRIES ***\n"); if (entries) { for (cur = g_list_first(entries); cur; cur = cur->next) { calendar_entry* e = (calendar_entry*)cur->data; if (e) { if (e->id) printf("entry id = %s\n", e->id->str); else printf("ERROR: id is null pointer\n"); if (e->last_modified) printf("last modified: %s\n", e->last_modified->str); else printf("ERROR: last modified is null pointer\n"); if (e->sourcefile) printf("sourcefile: %s\n", e->sourcefile->str); else printf("ERROR: sourcefile is null pointer\n"); printf("deleted: %i\n", e->deleted); } else { printf("ERROR: element is null pointer\n"); } } } printf("*** END DEBUG DUMP ***\n\n"); } void free_string_list(GList *lst) { GList* cur; if (!lst) return; for (cur = g_list_first(lst); cur; cur = cur->next) { g_free(cur->data); } g_list_free(lst); } calendar_entry* clone_calendar_entry(calendar_entry* e) { calendar_entry* new_entry = (calendar_entry*)g_malloc0(sizeof(calendar_entry)); new_entry->id = g_string_new(e->id->str); new_entry->sourcefile = g_string_new(e->sourcefile->str); new_entry->last_modified = g_string_new(e->last_modified->str); new_entry->deleted = e->deleted; if (e->data) new_entry->data = g_string_new(e->data->str); else new_entry->data = NULL; if (e->remove_priority) new_entry->remove_priority = g_string_new(e->remove_priority->str); else new_entry->remove_priority = NULL; return new_entry; } int read_icalendar_file(char* filename, GList **entries_ptr) { int next_is_id = 0, next_is_last_modified = 0, next_is_remove_priority = 0; int next_is_deleted = 0, next_is_sourcefile = 0; int buf_size = 4096, len; char buf[buf_size]; FILE* f; calendar_entry *cur_entry = NULL; char *basename_ptr, *basename; f = fopen(filename, "r"); if (!f) return 0; basename_ptr = (char*)strdup(filename); basename = basename_ptr + strlen(basename_ptr) - 1; while (basename > basename_ptr && *(basename-1) != '/') basename--; while (!feof(f)) { if (!fgets(buf, buf_size, f)) break; len = strlen(buf); while (len > 0 && (buf[len-1] == '\n' || buf[len-1] == '\r')) { len--; buf[len] = 0; } if (next_is_id) { next_is_id = 0; cur_entry->id = g_string_new(buf+2); // skip " :" } if (next_is_last_modified) { next_is_last_modified = 0; cur_entry->last_modified = g_string_new(buf+2); // skip " :" } if (next_is_remove_priority) { next_is_remove_priority = 0; cur_entry->remove_priority = g_string_new(buf+2); // skip " :" } if (next_is_sourcefile) { /* Only present in key files, not in real calendars */ next_is_sourcefile = 0; cur_entry->sourcefile = g_string_new(buf+2); // skip " :" } if (next_is_deleted) { /* Only present in key files, not in real calendars */ next_is_deleted = 0; if (buf[2] == '0') cur_entry->deleted = 0; else cur_entry->deleted = 1; } if (strcmp(buf, "BEGIN:VEVENT") == 0) { cur_entry = (calendar_entry*)g_malloc0(sizeof(calendar_entry)); memset(cur_entry, 0, sizeof(calendar_entry)); cur_entry->sourcefile = g_string_new(basename); } if (strcmp(buf, "END:VEVENT") == 0) { /* Last-modified info can be missing, if the item */ /* was never modified. */ if (!cur_entry->last_modified) { cur_entry->last_modified = g_string_new("(new)"); } g_string_append(cur_entry->data, "\nEND:VEVENT\nEND:VCALENDAR\n"); *entries_ptr = g_list_append(*entries_ptr, cur_entry); cur_entry = NULL; } if (cur_entry) { if (strlen(buf) > 2 && buf[0] == ' ' && buf[1] == ':') { /* Merge this line with the previous one. This e.g. merges CLASS :PUBLIC into CLASS:PUBLIC */ g_string_append(cur_entry->data, buf+1); } else { if (cur_entry->data) g_string_append(cur_entry->data, "\n"); else cur_entry->data = g_string_new("BEGIN:VCALENDAR\nVERSION:2.0\n"); g_string_append(cur_entry->data, buf); } if (strcmp(buf, "UID") == 0) next_is_id = 1; if (strcmp(buf, "LAST-MODIFIED") == 0) next_is_last_modified = 1; if (strcmp(buf, "DTEND") == 0) next_is_remove_priority = 1; if (strcmp(buf, "X-SOURCEFILE") == 0) next_is_sourcefile = 1; if (strcmp(buf, "X-DELETED") == 0) next_is_deleted = 1; } } free(basename_ptr); fclose(f); return 1; } char* copy_from_g_string(GString* str) { char* p; if (!str) return NULL; p = (char*)g_malloc0(str->len + 1); if (p) memcpy(p, str->str, str->len + 1); return p; } --- NEW FILE: Makefile --- # Makefile.in generated by automake 1.6.3 from Makefile.am. # src/Makefile. Generated from Makefile.in by configure. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = /bin/sh srcdir = . top_srcdir = .. prefix = /usr/local exec_prefix = ${prefix} bindir = ${exec_prefix}/bin sbindir = ${exec_prefix}/sbin libexecdir = ${exec_prefix}/libexec datadir = ${prefix}/share sysconfdir = ${prefix}/etc sharedstatedir = ${prefix}/com localstatedir = ${prefix}/var infodir = ${prefix}/info mandir = ${prefix}/man includedir = ${prefix}/include oldincludedir = /usr/include pkgdatadir = $(datadir)/sunbird_plugin pkglibdir = $(libdir)/sunbird_plugin pkgincludedir = $(includedir)/sunbird_plugin top_builddir = .. ACLOCAL = ${SHELL} /home/markus/multisync/missing --run aclocal-1.6 AUTOCONF = ${SHELL} /home/markus/multisync/missing --run autoconf AUTOMAKE = ${SHELL} /home/markus/multisync/missing --run automake-1.6 AUTOHEADER = ${SHELL} /home/markus/multisync/missing --run autoheader am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL} INSTALL_DATA = ${INSTALL} -m 644 install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = ${INSTALL} INSTALL_HEADER = $(INSTALL_DATA) transform = s,x,x, NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = host_triplet = i686-pc-linux-gnu EXEEXT = OBJEXT = o PATH_SEPARATOR = : # not a nice way to do it libdir = $(prefix)/lib/multisync AMTAR = ${SHELL} /home/markus/multisync/missing --run tar AS = @AS@ AWK = gawk CC = gcc DEPDIR = .deps DLLTOOL = @DLLTOOL@ ECHO = echo INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s LIBTOOL = $(SHELL) $(top_builddir)/libtool LN_S = ln -s MULTISYNC_VERSION = 0.82 OBJDUMP = @OBJDUMP@ PACKAGE = sunbird_plugin PACKAGE_CFLAGS = -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/libxml2 PACKAGE_LIBS = -pthread -Wl,--export-dynamic -L/usr/X11R6/lib -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lxml2 -lpthread -lz -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -lXext -latk-1.0 -lgdk_pixbuf-2.0 -lXcursor -lpangoxft-1.0 -lXft -lfreetype -lXrender -lfontconfig -lpangox-1.0 -lX11 -lpango-1.0 -lbonobo-2 -lgconf-2 -lgnomevfs-2 -lbonobo-activation -lORBit-2 -lgobject-2.0 -lgthread-2.0 -lm -lgmodule-2.0 -ldl -lglib-2.0 PKG_CONFIG = /usr/bin/pkg-config RANLIB = ranlib STRIP = strip VERSION = 0.82 am__include = include am__quote = install_sh = /home/markus/multisync/install-sh INCLUDES = \ -DPACKAGE_DATA_DIR=\""$(datadir)/multisync"\" \ -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/libxml2 -I$(top_srcdir)/include \ -I../../../include lib_LTLIBRARIES = libsunbird_plugin.la libsunbird_plugin_la_SOURCES = \ tools.c tools.h \ sunbird_plugin.c sunbird_plugin.h subdir = src mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(lib_LTLIBRARIES) libsunbird_plugin_la_LDFLAGS = libsunbird_plugin_la_LIBADD = am_libsunbird_plugin_la_OBJECTS = tools.lo sunbird_plugin.lo libsunbird_plugin_la_OBJECTS = $(am_libsunbird_plugin_la_OBJECTS) DEFS = -DHAVE_CONFIG_H DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) CPPFLAGS = LDFLAGS = LIBS = depcomp = $(SHELL) $(top_srcdir)/../../depcomp am__depfiles_maybe = depfiles DEP_FILES = ./$(DEPDIR)/sunbird_plugin.Plo \ ./$(DEPDIR)/tools.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ CFLAGS = -g -O2 DIST_SOURCES = $(libsunbird_plugin_la_SOURCES) DIST_COMMON = Makefile.am Makefile.in SOURCES = $(libsunbird_plugin_la_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) libLTLIBRARIES_INSTALL = $(INSTALL) install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test -z "$dir" && dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libsunbird_plugin.la: $(libsunbird_plugin_la_OBJECTS) $(libsunbird_plugin_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(libsunbird_plugin_la_LDFLAGS) $(libsunbird_plugin_la_OBJECTS) $(libsunbird_plugin_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c include ./$(DEPDIR)/sunbird_plugin.Plo include ./$(DEPDIR)/tools.Plo distclean-depend: -rm -rf ./$(DEPDIR) .c.o: source='$<' object='$@' libtool=no \ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \ $(CCDEPMODE) $(depcomp) \ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< .c.obj: source='$<' object='$@' libtool=no \ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \ $(CCDEPMODE) $(depcomp) \ $(COMPILE) -c `cygpath -w $<` .c.lo: source='$<' object='$@' libtool=yes \ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' \ $(CCDEPMODE) $(depcomp) \ $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< CCDEPMODE = depmode=gcc3 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: $(mkinstalldirs) $(DESTDIR)$(libdir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-compile distclean-depend \ distclean-generic distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES .PHONY: GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool distclean distclean-compile \ distclean-depend distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool tags uninstall \ uninstall-am uninstall-info-am uninstall-libLTLIBRARIES #libbackup_plugin_la_LIBADD = -pthread -Wl,--export-dynamic -L/usr/X11R6/lib -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lxml2 -lpthread -lz -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -lXext -latk-1.0 -lgdk_pixbuf-2.0 -lXcursor -lpangoxft-1.0 -lXft -lfreetype -lXrender -lfontconfig -lpangox-1.0 -lX11 -lpango-1.0 -lbonobo-2 -lgconf-2 -lgnomevfs-2 -lbonobo-activation -lORBit-2 -lgobject-2.0 -lgthread-2.0 -lm -lgmodule-2.0 -ldl -lglib-2.0 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: |
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11588/sunbird_plugin Added Files: Tag: branch_08X AUTHORS COPYING ChangeLog INSTALL Makefile Makefile.am Makefile.in NEWS README aclocal.m4 autogen.sh config.h config.h.in config.log config.status configure configure.in libtool stamp-h.in stamp-h1 Log Message: initial revision --- NEW FILE: config.h --- /* config.h. Generated by configure. */ /* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if you have the <dlfcn.h> header file. */ #define HAVE_DLFCN_H 1 /* Define to 1 if you have the <inttypes.h> header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the <memory.h> header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the <stdint.h> header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the <stdlib.h> header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the <strings.h> header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the <string.h> header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the <sys/stat.h> header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the <sys/types.h> header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the <unistd.h> header file. */ #define HAVE_UNISTD_H 1 /* Name of package */ #define PACKAGE "sunbird_plugin" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "" /* Define to the full name of this package. */ #define PACKAGE_NAME "" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "" /* Define to the version of this package. */ #define PACKAGE_VERSION "" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Version number of package */ #define VERSION "0.82" --- NEW FILE: stamp-h.in --- timestamp --- NEW FILE: config.h.in --- /* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION --- NEW FILE: configure --- #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.57. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' [...10013 lines suppressed...] # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi --- NEW FILE: COPYING --- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS --- NEW FILE: configure.in --- dnl Process this file with autoconf to produce a configure script. AC_INIT(configure.in) AM_INIT_AUTOMAKE(sunbird_plugin, 0.82) AM_CONFIG_HEADER(config.h) pkg_modules="libgnomeui-2.0 glib-2.0" PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) AC_SUBST(PACKAGE_CFLAGS) AC_SUBST(PACKAGE_LIBS) AC_ISC_POSIX AC_PROG_CC AM_PROG_CC_STDC AC_HEADER_STDC AC_PROG_LIBTOOL dnl Info for the RPM MULTISYNC_TOP="../.." AC_SUBST(VERSION) AC_SUBST(prefix) MULTISYNC_VERSION=`grep "#define VERSION" ${MULTISYNC_TOP}/config.h | sed -e 's/#define VERSION //g' | sed -e 's/\"//g'` AC_SUBST(MULTISYNC_VERSION) AC_OUTPUT([ Makefile src/Makefile ${MULTISYNC_TOP}/specs/multisync-sunbird.spec ]) --- NEW FILE: Makefile.in --- # Makefile.in generated by automake 1.6.3 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ EXEEXT = @EXEEXT@ OBJEXT = @OBJEXT@ PATH_SEPARATOR = @PATH_SEPARATOR@ AMTAR = @AMTAR@ AS = @AS@ AWK = @AWK@ CC = @CC@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ ECHO = @ECHO@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ MULTISYNC_VERSION = @MULTISYNC_VERSION@ OBJDUMP = @OBJDUMP@ PACKAGE = @PACKAGE@ PACKAGE_CFLAGS = @PACKAGE_CFLAGS@ PACKAGE_LIBS = @PACKAGE_LIBS@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ STRIP = @STRIP@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ install_sh = @install_sh@ SUBDIRS = src EXTRA_DIST = \ autogen.sh subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = ${MULTISYNC_TOP}/specs/multisync-sunbird.spec DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ uninstall-info-recursive all-recursive install-data-recursive \ install-exec-recursive installdirs-recursive install-recursive \ uninstall-recursive check-recursive installcheck-recursive DIST_COMMON = README ../../config.guess ../../config.sub \ ../../install-sh ../../ltmain.sh ../../missing \ ../../mkinstalldirs AUTHORS COPYING ChangeLog INSTALL \ Makefile.am Makefile.in NEWS aclocal.m4 config.h.in configure \ configure.in DIST_SUBDIRS = $(SUBDIRS) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): configure.in cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOHEADER) touch $(srcdir)/config.h.in distclean-hdr: -rm -f config.h stamp-h1 ${MULTISYNC_TOP}/specs/multisync-sunbird.spec: $(top_builddir)/config.status $(top_srcdir)/${MULTISYNC_TOP}/specs/multisync-sunbird.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ETAGS = etags ETAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = . distdir = $(PACKAGE)-$(VERSION) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } GZIP_ENV = --best distcleancheck_listfiles = find . -type f -print distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkinstalldirs) $(distdir)/${MULTISYNC_TOP}/specs $(distdir)/../.. @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="${top_distdir}" distdir="$(distdir)" \ dist-hook -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist $(am__remove_distdir) GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/=build mkdir $(distdir)/=inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \ && cd $(distdir)/=build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ find $$dc_install_base -type f -print ; \ exit 1; } >&2 ) \ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ && rm -f $(distdir).tar.gz \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' distcleancheck: distclean if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-data-local install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf autom4te.cache maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive dist dist-all \ dist-gzip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-recursive distclean-tags \ distcleancheck distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-data install-data-am \ install-data-local install-data-recursive install-exec \ install-exec-am install-exec-recursive install-info \ install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-recursive install-data-local: @$(NORMAL_INSTALL) if test -d $(srcdir)/pixmaps; then \ $(mkinstalldirs) $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \ for pixmap in $(srcdir)/pixmaps/*; do \ if test -f $$pixmap; then \ $(INSTALL_DATA) $$pixmap $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \ fi \ done \ fi dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ for pixmap in pixmaps/*; do \ if test -f $$pixmap; then \ cp -p $$pixmap $(distdir)/pixmaps; \ fi \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: --- NEW FILE: Makefile --- # Makefile.in generated by automake 1.6.3 from Makefile.am. # Makefile. Generated from Makefile.in by configure. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. SHELL = /bin/sh srcdir = . top_srcdir = . prefix = /usr/local exec_prefix = ${prefix} bindir = ${exec_prefix}/bin sbindir = ${exec_prefix}/sbin libexecdir = ${exec_prefix}/libexec datadir = ${prefix}/share sysconfdir = ${prefix}/etc sharedstatedir = ${prefix}/com localstatedir = ${prefix}/var libdir = ${exec_prefix}/lib infodir = ${prefix}/info mandir = ${prefix}/man includedir = ${prefix}/include oldincludedir = /usr/include pkgdatadir = $(datadir)/sunbird_plugin pkglibdir = $(libdir)/sunbird_plugin pkgincludedir = $(includedir)/sunbird_plugin top_builddir = . ACLOCAL = ${SHELL} /home/markus/multisync/missing --run aclocal-1.6 AUTOCONF = ${SHELL} /home/markus/multisync/missing --run autoconf AUTOMAKE = ${SHELL} /home/markus/multisync/missing --run automake-1.6 AUTOHEADER = ${SHELL} /home/markus/multisync/missing --run autoheader am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL} INSTALL_DATA = ${INSTALL} -m 644 install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = ${INSTALL} INSTALL_HEADER = $(INSTALL_DATA) transform = s,x,x, NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = host_triplet = i686-pc-linux-gnu EXEEXT = OBJEXT = o PATH_SEPARATOR = : AMTAR = ${SHELL} /home/markus/multisync/missing --run tar AS = @AS@ AWK = gawk CC = gcc DEPDIR = .deps DLLTOOL = @DLLTOOL@ ECHO = echo INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s LIBTOOL = $(SHELL) $(top_builddir)/libtool LN_S = ln -s MULTISYNC_VERSION = 0.82 OBJDUMP = @OBJDUMP@ PACKAGE = sunbird_plugin PACKAGE_CFLAGS = -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/libxml2 PACKAGE_LIBS = -pthread -Wl,--export-dynamic -L/usr/X11R6/lib -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lxml2 -lpthread -lz -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -lXext -latk-1.0 -lgdk_pixbuf-2.0 -lXcursor -lpangoxft-1.0 -lXft -lfreetype -lXrender -lfontconfig -lpangox-1.0 -lX11 -lpango-1.0 -lbonobo-2 -lgconf-2 -lgnomevfs-2 -lbonobo-activation -lORBit-2 -lgobject-2.0 -lgthread-2.0 -lm -lgmodule-2.0 -ldl -lglib-2.0 PKG_CONFIG = /usr/bin/pkg-config RANLIB = ranlib STRIP = strip VERSION = 0.82 am__include = include am__quote = install_sh = /home/markus/multisync/install-sh SUBDIRS = src EXTRA_DIST = \ autogen.sh subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = ${MULTISYNC_TOP}/specs/multisync-sunbird.spec DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ uninstall-info-recursive all-recursive install-data-recursive \ install-exec-recursive installdirs-recursive install-recursive \ uninstall-recursive check-recursive installcheck-recursive DIST_COMMON = README ../../config.guess ../../config.sub \ ../../install-sh ../../ltmain.sh ../../missing \ ../../mkinstalldirs AUTHORS COPYING ChangeLog INSTALL \ Makefile.am Makefile.in NEWS aclocal.m4 config.h.in configure \ configure.in DIST_SUBDIRS = $(SUBDIRS) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): configure.in cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && $(AUTOHEADER) touch $(srcdir)/config.h.in distclean-hdr: -rm -f config.h stamp-h1 ${MULTISYNC_TOP}/specs/multisync-sunbird.spec: $(top_builddir)/config.status $(top_srcdir)/${MULTISYNC_TOP}/specs/multisync-sunbird.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ETAGS = etags ETAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = . distdir = $(PACKAGE)-$(VERSION) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } GZIP_ENV = --best distcleancheck_listfiles = find . -type f -print distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkinstalldirs) $(distdir)/${MULTISYNC_TOP}/specs $(distdir)/../.. @list='$(DISTFILES)'; for file in $$list; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="${top_distdir}" distdir="$(distdir)" \ dist-hook -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist $(am__remove_distdir) GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/=build mkdir $(distdir)/=inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \ && cd $(distdir)/=build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ find $$dc_install_base -type f -print ; \ exit 1; } >&2 ) \ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ && rm -f $(distdir).tar.gz \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' distcleancheck: distclean if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-data-local install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf autom4te.cache maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive dist dist-all \ dist-gzip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-recursive distclean-tags \ distcleancheck distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-data install-data-am \ install-data-local install-data-recursive install-exec \ install-exec-am install-exec-recursive install-info \ install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-recursive install-data-local: @$(NORMAL_INSTALL) if test -d $(srcdir)/pixmaps; then \ $(mkinstalldirs) $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \ for pixmap in $(srcdir)/pixmaps/*; do \ if test -f $$pixmap; then \ $(INSTALL_DATA) $$pixmap $(DESTDIR)$(datadir)/pixmaps/$(PACKAGE); \ fi \ done \ fi dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ for pixmap in pixmaps/*; do \ if test -f $$pixmap; then \ cp -p $$pixmap $(distdir)/pixmaps; \ fi \ done \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: --- NEW FILE: ChangeLog --- --- NEW FILE: config.status --- #! /bin/sh # Generated by configure. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=${CONFIG_SHELL-/bin/sh} ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which [...1042 lines suppressed...] sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done { (exit 0); exit 0; } --- NEW FILE: config.log --- This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by configure, which was generated by GNU Autoconf 2.57. Invocation command line was $ ./configure --enable-maintainer-mode ## --------- ## ## Platform. ## ## --------- ## hostname = markus uname -m = i686 uname -r = 2.4.20-8 uname -s = Linux uname -v = #1 Thu Mar 13 17:54:28 EST 2003 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = i686 /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /opt/ecos/gnutools/i386-elf/bin PATH: /opt/ecos/ecos-2.0/tools/bin PATH: /usr/local/jdk1.5.0/bin PATH: /usr/local/kde/bin PATH: /usr/local/mozilla PATH: /usr/local/j2re1.4.1/bin PATH: /bin PATH: /usr/bin PATH: /usr/bin/X11 PATH: /usr/X11R6/bin PATH: /usr/local/bin PATH: /opt/X11R6/bin PATH: /usr/bin ## ----------- ## ## Core tests. ## ## ----------- ## configure:1476: checking for a BSD-compatible install configure:1530: result: /usr/bin/install -c configure:1541: checking whether build environment is sane configure:1584: result: yes configure:1617: checking for gawk configure:1633: found /bin/gawk configure:1643: result: gawk configure:1653: checking whether make sets $(MAKE) configure:1673: result: yes configure:1832: checking for pkg-config configure:1850: found /usr/bin/pkg-config configure:1863: result: /usr/bin/pkg-config configure:1880: checking for libgnomeui-2.0 glib-2.0 configure:1884: result: yes configure:1888: checking PACKAGE_CFLAGS configure:1891: result: -DORBIT2=1 -pthread -I/usr/include/libgnomeui-2.0 -I/usr/include/libgnome-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/libbonoboui-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include -I/usr/include/bonobo-activation-2.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/X11R6/include -I/usr/include/libxml2 configure:1894: checking PACKAGE_LIBS configure:1897: result: -pthread -Wl,--export-dynamic -L/usr/X11R6/lib -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lxml2 -lpthread -lz -lgnomecanvas-2 -lgnome-2 -lpopt -lart_lgpl_2 -lpangoft2-1.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -lXext -latk-1.0 -lgdk_pixbuf-2.0 -lXcursor -lpangoxft-1.0 -lXft -lfreetype -lXrender -lfontconfig -lpangox-1.0 -lX11 -lpango-1.0 -lbonobo-2 -lgconf-2 -lgnomevfs-2 -lbonobo-activation -lORBit-2 -lgobject-2.0 -lgthread-2.0 -lm -lgmodule-2.0 -ldl -lglib-2.0 configure:1947: checking for style of include used by make configure:1975: result: GNU configure:2046: checking for gcc configure:2062: found /usr/bin/gcc configure:2072: result: gcc configure:2316: checking for C compiler version configure:2319: gcc --version </dev/null >&5 gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:2322: $? = 0 configure:2324: gcc -v </dev/null >&5 Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux Thread model: posix gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5) configure:2327: $? = 0 configure:2329: gcc -V </dev/null >&5 gcc: argument to `-V' is missing configure:2332: $? = 1 configure:2356: checking for C compiler default output configure:2359: gcc conftest.c >&5 configure:2362: $? = 0 configure:2408: result: a.out configure:2413: checking whether the C compiler works configure:2419: ./a.out configure:2422: $? = 0 configure:2439: result: yes configure:2446: checking whether we are cross compiling configure:2448: result: no configure:2451: checking for suffix of executables configure:2453: gcc -o conftest conftest.c >&5 configure:2456: $? = 0 configure:2481: result: configure:2487: checking for suffix of object files configure:2509: gcc -c conftest.c >&5 configure:2512: $? = 0 configure:2534: result: o configure:2538: checking whether we are using the GNU C compiler configure:2563: gcc -c conftest.c >&5 configure:2566: $? = 0 configure:2569: test -s conftest.o configure:2572: $? = 0 configure:2585: result: yes configure:2591: checking whether gcc accepts -g configure:2613: gcc -c -g conftest.c >&5 configure:2616: $? = 0 configure:2619: test -s conftest.o configure:2622: $? = 0 configure:2633: result: yes configure:2650: checking for gcc option to accept ANSI C configure:2711: gcc -c -g -O2 conftest.c >&5 configure:2714: $? = 0 configure:2717: test -s conftest.o configure:2720: $? = 0 configure:2738: result: none needed configure:2756: gcc -c -g -O2 conftest.c >&5 conftest.c:2: parse error before "me" configure:2759: $? = 1 configure: failed program was: | #ifndef __cplusplus | choke me | #endif configure:2870: checking dependency style of gcc configure:2932: result: gcc3 configure:2939: checking for strerror in -lcposix configure:2970: gcc -o conftest -g -O2 conftest.c -lcposix >&5 /usr/bin/ld: cannot find -lcposix collect2: ld returned 1 exit status configure:2973: $? = 1 configure: failed program was: | #line 2946 "configure" | /* confdefs.h. */ | | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE "sunbird_plugin" | #define VERSION "0.82" | /* end confdefs.h. */ | | /* Override any gcc2 internal prototype to avoid an error. */ | #ifdef __cplusplus | extern "C" | #endif | /* We use char because int might match the return type of a gcc2 | builtin and then its argument prototype would still apply. */ | char strerror (); | int | main () | { | strerror (); | ; | return 0; | } configure:2991: result: no configure:3045: checking for gcc configure:3071: result: gcc configure:3315: checking for C compiler version configure:3318: gcc --version </dev/null >&5 gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:3321: $? = 0 configure:3323: gcc -v </dev/null >&5 Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux Thread model: posix gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5) configure:3326: $? = 0 configure:3328: gcc -V </dev/null >&5 gcc: argument to `-V' is missing configure:3331: $? = 1 configure:3334: checking whether we are using the GNU C compiler configure:3381: result: yes configure:3387: checking whether gcc accepts -g configure:3429: result: yes configure:3446: checking for gcc option to accept ANSI C configure:3534: result: none needed configure:3552: gcc -c -g -O2 conftest.c >&5 conftest.c:2: parse error before "me" configure:3555: $? = 1 configure: failed program was: | #ifndef __cplusplus | choke me | #endif configure:3666: checking dependency style of gcc configure:3728: result: gcc3 configure:3736: checking for gcc option to accept ANSI C configure:3800: gcc -c -g -O2 conftest.c >&5 configure:3803: $? = 0 configure:3806: test -s conftest.o configure:3809: $? = 0 configure:3824: result: none needed c... [truncated message content] |
From: Markus M. <ms...@us...> - 2005-02-04 09:46:41
|
Update of /cvsroot/multisync/multisync/plugins/sunbird_plugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10755/src Log Message: Directory /cvsroot/multisync/multisync/plugins/sunbird_plugin/src added to the repository --> Using per-directory sticky tag `branch_08X' |