<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi Sayid,<br>
<br>
Cyrus has been updated to reflect OpenIO latest version. The solution evolved a lot since the 1.0.1 you mention!<br>
If you prefer using a release number, the <b>2.0.0.c1</b> should be your current choice: it is the first candidate for a release scheduled for 2016/04, destined to be a stable branch on the long term.<br>
<br>
Feel free to ask if you need any additional information.<br>
<br>
--<br>
Jean-Francois<br>
<div><br>
</div>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div style="direction: ltr;" id="divRpF780724"><font color="#000000" face="Tahoma" size="2"><b>De :</b> Cyrus-devel [cyrus-devel-bounces+jean-francois.smigielski=openio.io@lists.andrew.cmu.edu] de la part de Sayid Munawar via Cyrus-devel [cyrus-devel@lists.andrew.cmu.edu]<br>
<b>Date d'envoi :</b> mardi 15 mars 2016 21:27<br>
<b>À :</b> Cyrus Devel<br>
<b>Objet :</b> Fwd: Object Storage alpha lands on master<br>
</font><br>
</div>
<div></div>
<div>
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr">Hi, i've just tried to compile cyrus with openio, and it gave this error:
<div><br>
</div>
<div>
<div><font face="monospace, monospace">libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./lib -I. -I./lib -DLIBEXEC_DIR=\"/usr/cyrus/libexec\" -DSBIN_DIR=\"/usr/cyrus/sbin\" -DSYSCONF_DIR=\"/etc\" -DHAVE_CONFIG_H -I/usr/include/libxml2 -I/usr/include/postgresql
 -fPIC -fvisibility=hidden -g -O2 -I/usr/include -MT imap/imap_libcyrus_imap_la-objectstore_openio.lo -MD -MP -MF imap/.deps/imap_libcyrus_imap_la-objectstore_openio.Tpo -c imap/objectstore_openio.c  -fPIC -DPIC -o imap/.libs/imap_libcyrus_imap_la-objectstore_openio.o</font></div>
<div><font face="monospace, monospace">imap/objectstore_openio.c: In function 'objectstore_put':</font></div>
<div><font face="monospace, monospace">imap/objectstore_openio.c:195:42: warning: passing argument 2 of 'oio_sds_upload_from_file' from incompatible pointer type</font></div>
<div><font face="monospace, monospace">     err = oio_sds_upload_from_file (sds, &ul_dst, fname, 0, 0);</font></div>
<div><font face="monospace, monospace">                                          ^</font></div>
<div><font face="monospace, monospace">In file included from imap/objectstore_openio.c:49:0:</font></div>
<div><font face="monospace, monospace">/usr/include/oio_sds.h:250:21: note: expected 'struct oio_url_s *' but argument is of type 'struct oio_sds_ul_dst_s *'</font></div>
<div><font face="monospace, monospace"> struct oio_error_s* oio_sds_upload_from_file (struct oio_sds_s *sds,</font></div>
<div><font face="monospace, monospace">                     ^</font></div>
<div><font face="monospace, monospace">imap/objectstore_openio.c:195:11: error: too many arguments to function 'oio_sds_upload_from_file'</font></div>
<div><font face="monospace, monospace">     err = oio_sds_upload_from_file (sds, &ul_dst, fname, 0, 0);</font></div>
<div><font face="monospace, monospace">           ^</font></div>
<div><font face="monospace, monospace">In file included from imap/objectstore_openio.c:49:0:</font></div>
<div><font face="monospace, monospace">/usr/include/oio_sds.h:250:21: note: declared here</font></div>
<div><font face="monospace, monospace"> struct oio_error_s* oio_sds_upload_from_file (struct oio_sds_s *sds,</font></div>
<div><font face="monospace, monospace">                     ^</font></div>
<div><font face="monospace, monospace">Makefile:4679: recipe for target 'imap/imap_libcyrus_imap_la-objectstore_openio.lo' failed</font></div>
<div><font face="monospace, monospace">make[2]: *** [imap/imap_libcyrus_imap_la-objectstore_openio.lo] Error 1</font></div>
<div><font face="monospace, monospace">make[2]: Leaving directory '/opt/cyrus-imapd'</font></div>
<div><font face="monospace, monospace">Makefile:5800: recipe for target 'all-recursive' failed</font></div>
<div><font face="monospace, monospace">make[1]: *** [all-recursive] Error 1</font></div>
<div><font face="monospace, monospace">make[1]: Leaving directory '/opt/cyrus-imapd'</font></div>
<div><font face="monospace, monospace">Makefile:2511: recipe for target 'all' failed</font></div>
<div><font face="monospace, monospace">make: *** [all] Error 2</font></div>
</div>
<div>
<div><font face="monospace, monospace">root@jessie:/opt/cyrus-imapd# </font></div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>any clue how to fix this ?</div>
<div><br>
</div>
<div>OS: debian jessie amd64</div>
<div>openio-sds installed version 1.0.1-1</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div class="HOEnZb">
<div class="h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Mar 14, 2016 at 4:14 PM, Bron Gondwana via Cyrus-devel
<span dir="ltr"><<a href="mailto:cyrus-devel@lists.andrew.cmu.edu" target="_blank">cyrus-devel@lists.andrew.cmu.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<u></u>
<div>
<div style="font-family:Arial">There were a couple of nits around style:<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">+    int remove_temp_spool_file = 0 ;<br>
</div>
<div style="font-family:Arial">+    int object_storage_enabled = 0 ;<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">(we don't put a space before the ; anywhere in the rest of the codebase)<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">And some <br>
</div>
<div style="font-family:Arial">}<br>
</div>
<div style="font-family:Arial">else<br>
</div>
<div style="font-family:Arial">{<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">or<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">if (condition)<br>
</div>
<div style="font-family:Arial">{<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">We cuddle the brace like this:<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">}<br>
</div>
<div style="font-family:Arial">else {<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">if (condition) {<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">Pretty much exclusively.  But those can be fixed easily enough.  The important thing for me was to check that the non-object storage paths are the same, and they read identically to me.<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">I've done a build and Cassandane test run, and I'm happy with it. Pushing a merge of that branch to master now.  Sorry about taking so long to get to this.<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">Meeting in just under 2 hours, might see you there :)<br>
</div>
<div> </div>
<div style="font-family:Arial">Bron.<br>
</div>
<div> </div>
<div>On Wed, Feb 24, 2016, at 01:39, Raymond Poitras wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div style="font-family:Arial">Hi Bron<br>
</div>
<div> </div>
<div>Sorry for the delay and thank you for pushing this work to master.<br>
</div>
<div> </div>
<div>A) While doing this, some of the logic was broken.  (This is now fix.)<br>
</div>
<div>B) The new solution works very well with a mix of archive (in object storage) and non archive (on regular spool) emails.<br>
</div>
<div>C) Unarchive have been fix.  (was used previously to remove email from object storage.  Now a new function is used for that).<br>
</div>
<div>D) Include reconstruct support.  Works very well if message.db file is reliable.<br>
</div>
<div> </div>
<div>Please let me know if you can update master again from here <a href="https://github.com/RaymondPo/cyrus-imapd/tree/Cyrus-OpenIO" target="_blank">https://github.com/RaymondPo/cyrus-imapd/tree/Cyrus-OpenIO</a><br>
</div>
<div> </div>
<div>When is the next meeting? Jean-Francois and I would like to attend<br>
</div>
<div> </div>
<div>Regards<br>
</div>
<div>Raymond<br>
</div>
<div> </div>
</div>
<div>
<div style="font-family:Arial"> </div>
<div>
<div style="font-family:Arial">2015-10-13 8:03 GMT-04:00 Bron Gondwana <span dir="ltr">
<<a href="mailto:brong@fastmail.fm" target="_blank">brong@fastmail.fm</a>></span>:<br>
</div>
<blockquote style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<div style="font-family:Arial">I've pushed the objectstorage code based on Raymond and Jean-Francois's work to master.  It's almost exactly what was on Raymond's branch with just a couple of modifications.<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">1) updated for some API changes I'd made to archiving in append.c<br>
</div>
<div style="font-family:Arial">2) fixed compilation under warn-unused-variables<br>
</div>
<div style="font-family:Arial">3) normalised logic between append_fromstage and append_copy for handling objectstorage errors by creating non-ARCHIVED files.<br>
</div>
<div style="font-family:Arial">4) fixed file copy in mailbox_archive to work the same way as the file moves, where it correctly passes the source/destination file to objectstorage and gets the file back, so unarchive works.<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">WARNING WARNING WARNING: while I've tested that normal operation and normal archive file operation (non-objectstorage) works correctly with Cassandane and FastMail experimental branch, I haven't done more than rudimentary testing
 with the dummy objectstorage.<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">I'm almost positive that reconstruct won't work correctly with object storage turned on right now.<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">This is still very much work in progress - but putting it on master means that the code will be maintained and updated as other API changes are made.<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">Thanks Raymond and Jean-Francois for all your work on this.  I hope it gets more testing and use.<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">Cheers,<br>
</div>
<div style="font-family:Arial"> </div>
<div style="font-family:Arial">Bron.<span><font color="#888888"><br>
</font></span></div>
<span><font color="#888888">
<div style="font-family:Arial"><span><span style="color:rgb(136,136,136)"><br>
--<br>
  Bron Gondwana<br>
  <a href="mailto:brong@fastmail.fm" target="_blank">brong@fastmail.fm</a></span></span></div>
</font></span></blockquote>
</div>
<span><font color="#888888"></font></span></div>
<span><font color="#888888"></font></span></blockquote>
<span><font color="#888888">
<div style="font-family:Arial"> </div>
<div>
<div>-- <br>
</div>
<div>  Bron Gondwana<br>
</div>
<div>  <a href="mailto:brong@fastmail.fm" target="_blank">brong@fastmail.fm</a><br>
</div>
<div> </div>
</div>
<div style="font-family:Arial"> </div>
</font></span></div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
<br>
</div>
</div>
</div>
</div>
</body>
</html>