<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <br>
    <div class="moz-cite-prefix">On 03/01/2016 04:56 PM, Fabio Fantoni
      wrote:<br>
    </div>
    <blockquote cite="mid:56D5BBBF.8040505@m2r.biz" type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      Il 29/02/2016 21:51, Yury Shvedov ha scritto:<br>
      <blockquote cite="mid:56D4AF58.8070802@lvk.cs.msu.su" type="cite">
        <meta content="text/html; charset=utf-8"
          http-equiv="Content-Type">
        Hi, Fabio!<br>
        <br>
        I managed to compile and run compositor-spice with the latest
        weston master branch. See last <a moz-do-not-send="true"
href="https://github.com/ein-shved/compositor-spice/commit/585cbd281fd4c4685df83d22d60ec5670479b474">commit</a>.<br>
        <br>
        Here, how I did it:<br>
        <br>
        export PREFIX=$HOME/usr #setup prefix variable. You can choose
        another or use default one<br>
        <br>
        sh autogen.sh --prefix=$PREFIX --disable-weston-launch
        --enable-spice-compositor #configure with different preffix,
        spice-compositor and without weston-launch to install as normal
        user<br>
        <br>
        make -j8 && make install && ./src/weston
        --backend=spice-backend.so #compile project with 8 threads,
        install modules and run weston with spice-compositor.<br>
        <br>
        <br>
        On another terminal run<br>
        spicy --display=:0 -h localhost -p 5912 # to connect to spice
        server.<br>
        <br>
        Please try it by yourself and let me know the results!<br>
        <br>
        This is only the first step. Next we need to remove all
        unnecessary code, change backend to good weston coding style,
        move to new spice API and check it with valgrind and unit-tests.
        <br>
        <br>
        After that we will think about optimization. Firstly, make all
        of it like in RDP.<br>
      </blockquote>
      <br>
      Thanks, also today I not have <span id="result_box"
        class="short_text" lang="en"><span class="hps">enough free-time
          for test it but </span></span><span id="result_box"
        class="short_text" lang="en"><span class="hps">at maximum I'll
          do it in the weekend.<br>
          I'll also try it in lan changing listen from localhost to
          '0.0.0.0' (any) and in the weekend I'll try to make host and
          port configurable with weston.ini.<br>
        </span></span></blockquote>
    I suppose, weston_config handles configuration from both argument
    list and weston.ini. So, regarding to compositor-spice.c:349, you
    can configure them with <b>host</b> and <b>port</b> parameters.
    Maybe we should use weston_backend_config? Anyway this is the point
    to start from.<br>
    <blockquote cite="mid:56D5BBBF.8040505@m2r.biz" type="cite"><span
        id="result_box" class="short_text" lang="en"><span class="hps">
          After probably I'll also try to add image compression and
          authentication (user and password only initially) support.<br>
        </span></span></blockquote>
    Ok, till then I hope I'll upgrade code to the new Spice API.<br>
    <blockquote cite="mid:56D5BBBF.8040505@m2r.biz" type="cite"><span
        id="result_box" class="short_text" lang="en"><span class="hps">
          About repository keep the method you prefer, I'll keep all
          changes ready for upstream post for review in another branch,
          for example now I did fast a commit based on your latest
          changes with a small description (to improve):<br>
          <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/Fantu/compositor-spice/commit/56719743370e2387b75ca31434dfc3bbb9d735f0">https://github.com/Fantu/compositor-spice/commit/56719743370e2387b75ca31434dfc3bbb9d735f0</a><br>
          (based on your commit 585cbd2 - Restore mouse motion)<br>
          When will be enough good we'll start to post it to mailing
          list (with git format-patch and git send-email or different if
          required) for review.<br>
        </span></span></blockquote>
    I think, now I understand what are you doing. I cant understand, why
    are you keeping changes ready for upstream code? Why not to do it
    when it became realy needed to post it to mailing list?<br>
    <blockquote cite="mid:56D5BBBF.8040505@m2r.biz" type="cite"><span
        id="result_box" class="short_text" lang="en"><span class="hps">
        </span></span><br>
      <blockquote cite="mid:56D4AF58.8070802@lvk.cs.msu.su" type="cite">
        <br>
        <div class="moz-cite-prefix">On 02/29/2016 05:07 PM, Yury
          Shvedov wrote:<br>
        </div>
        <blockquote cite="mid:56D46CBB.5060907@lvk.cs.msu.su"
          type="cite">
          <meta content="text/html; charset=utf-8"
            http-equiv="Content-Type">
          <br>
          <br>
          <div class="moz-cite-prefix">On 02/29/2016 04:39 PM, Fabio
            Fantoni wrote:<br>
          </div>
          <blockquote cite="mid:56D4664F.5050408@m2r.biz" type="cite">
            <meta content="text/html; charset=utf-8"
              http-equiv="Content-Type">
            Il 29/02/2016 16:01, Yury Shvedov ha scritto:<br>
            <blockquote cite="mid:56D45D54.4010504@lvk.cs.msu.su"
              type="cite">
              <meta content="text/html; charset=utf-8"
                http-equiv="Content-Type">
              Unfortunately, it is bit complex for me, to understand
              what are you trying to do and why do you dancing with
              diff's instead of just simple merge.<br>
            </blockquote>
            <br>
            Sorry for my bad english.<br>
          </blockquote>
          Don't worry, your English is pretty good. Not worse then my
          =). <br>
          You didn't fully explain what are you trying to do. Can you?<br>
          <blockquote cite="mid:56D4664F.5050408@m2r.biz" type="cite">
            As you not rebase all your commits on top is difficult find
            all your changes from upstream, <span id="result_box"
              class="" lang="en"><span class="hps">so I</span> <span
                class="hps">did a</span> <span class="hps">quick</span>
              <span class="hps">diff</span> <span class="hps">from your</span>
              <span class="hps">branch</span> <span class="hps">to the</span>
              <span class="hps">last upstream commit</span> <span
                class="hps">corresponding.<br>
              </span></span></blockquote>
          <i>git diff master spice</i> will show you all the changes.<br>
          <blockquote cite="mid:56D4664F.5050408@m2r.biz" type="cite"><span
              id="result_box" class="" lang="en"><span class="hps"> </span></span><span
              id="result_box" class="" lang="en"><span class="hps"><span
                  id="result_box" class="" lang="en"><span class="hps">Usually</span>
                  <span class="hps">I keep</span> <span class="hps">do
                  </span><span class="hps">rebase</span> <span
                    class="hps">of my</span> <span class="hps">patch</span>es
                  <span class="hps atn">(</span><span>with git</span> <span
                    class="hps">rebase -i</span><span>)</span> and other
                  patches in development to test <span class="hps">always</span>
                  <span class="hps">queued</span> <span class="hps">to</span>
                  <span class="hps">upstream commits</span> </span></span></span><span
              id="result_box" class="" lang="en"><span class="hps"><span
                  id="result_box" class="" lang="en"><span class="hps"><span
                      id="result_box" class="" lang="en"><span
                        class="hps">to make it easier</span> and faster
                      <span class="hps">update</span> <span class="hps">them,

                        have it ready to post upstream for review any
                        version and add the</span> <span class="hps">new

                        upstream</span> <span class="hps">commits</span>
                      <span class="hps">until my patches are</span> <span
                        class="hps">accepted upstream.<br>
                        For example: <a moz-do-not-send="true"
                          class="moz-txt-link-freetext"
                          href="https://github.com/Fantu/Xen/commits/rebase/m2r-testing-4.6">https://github.com/Fantu/Xen/commits/rebase/m2r-testing-4.6</a><br>
                        Probably will be good also for your project (I
                        can do it in newer branch).<br>
                      </span></span></span></span></span></span></blockquote>
          I don't suppose myself the master of git but in my opinion
          using git rebase is a bad practice:<br>
          <ul>
            <li>rebase can rewrite the history. It can take the part of chain and move fully in another place. While merge doesn't changes history. It simply creates new commit on top of two branches</li>
            <li>with rebase in case of conflict you have to resolve them in many commits, while with merge you need to resolve conflict once at the top</li>
            <li>sometimes you need to perform code changing while action. In rebase you have to do it in several commits, while with merge - only in one</li>
            <li>rolling back the rebase could be really painful 
</li>
            <li>I already had problems with rebase, so now I use it only when it is realy needed and when I can't use merge (never).
</li>
          </ul>
          <br>
          <blockquote cite="mid:56D4664F.5050408@m2r.biz" type="cite"><span
              id="result_box" class="" lang="en"><span class="hps"><span
                  id="result_box" class="" lang="en"><span class="hps"><span
                      id="result_box" class="" lang="en"><span
                        class="hps"> <br>
                        Look other answer/questions below please.<br>
                        <br>
                      </span></span></span></span></span></span>
            <blockquote cite="mid:56D45D54.4010504@lvk.cs.msu.su"
              type="cite"> <br>
              Anyway, I gave you an edit-access to my repository. If you
              want, you can work with it directly on your own branch. I
              hope, this will make things simpler for you.<br>
              <br>
              See answers in quote.<br>
              <br>
              <div class="moz-cite-prefix">On 02/29/2016 03:32 PM, Fabio
                Fantoni wrote:<br>
              </div>
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <meta content="text/html; charset=utf-8"
                  http-equiv="Content-Type">
                Il 29/02/2016 12:26, Yury Shvedov ha scritto:<br>
                <blockquote cite="mid:56D42AE1.3030003@lvk.cs.msu.su"
                  type="cite">Hi, Fabio! <br>
                  <br>
                  Take look at my latest commit It now merged with
                  latest master version and successfully compiles with
                  ./configure --enable-spice-compositor. <br>
                  But unfortunately it doesn't work due to new spice
                  API. I hope, this evening it will!. <br>
                </blockquote>
                <br>
                Thanks for your work about it.<br>
                I make the new diff in other test branch:<br>
                <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/Fantu/compositor-spice/tree/test2">https://github.com/Fantu/compositor-spice/tree/test2</a><br>
                And I have some questions:<br>
                <meta name="qrichtext" content="1">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><!--StartFragment-->- src/Makefile.am was removed in newer weston and now unused, I suppose</p>
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to be removed</p>
              </blockquote>
              Did I fogot to do it in my repo? Oh yes! My bad! I will!<br>
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Makefile.am missed monitor renderer additions, must be added or monitor renderer is not</p>
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">needed anymore?</p>
              </blockquote>
              Its doesn't used by spice, so if there no monitor renderer
              additions in original weston repo, then it is not needed
              anymore.<br>
            </blockquote>
            <br>
            Monitor renderer seems something added by you with this
            project:<br>
            <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/ein-shved/compositor-spice/commit/72072ed2671dd400068d48b4f5048855fb066938">https://github.com/ein-shved/compositor-spice/commit/72072ed2671dd400068d48b4f5048855fb066938</a><br>
            There isn't a commit description about, I not understand if
            it something additional for sharing monitor like a new
            weston plugin I saw (screen sharing) or it is different and
            required for spice compositor.<br>
            Can you do a small <span id="result_box" class="short_text"
              lang="en"><span class="hps">little explanation</span> <span
                class="hps">if possible please?</span></span><br>
            <br>
          </blockquote>
          Ouch! I remembered now! I developed this instrument to spy on
          wayland clients in developing purposes. I shell move its code
          to another branch.<br>
          <blockquote cite="mid:56D4664F.5050408@m2r.biz" type="cite">
            <blockquote cite="mid:56D45D54.4010504@lvk.cs.msu.su"
              type="cite">
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- src/compositor-rdp.c: I suppose is not needed and not related changes</p>
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to be removed, right?</p>
              </blockquote>
              Why? It is just another part of weston. If you don't need
              it just don't pass --enable-rd-compositor to configure.<br>
            </blockquote>
            <br>
            I talked only about few lines changed by one of your commit.<br>
          </blockquote>
          Sorry for misunderstanding. Will take a look.<br>
          <blockquote cite="mid:56D4664F.5050408@m2r.biz" type="cite"> <br>
            <blockquote cite="mid:56D45D54.4010504@lvk.cs.msu.su"
              type="cite">
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- src/spice/Makefile.am: I suppose is unused now that thing are added in</p>
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Makefile.am, to be removed, right?</p>
              </blockquote>
              Yes, the same as src/Makefile.am<br>
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
</p>
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
Can be the monitor renderer missed/incomplete the cause of "run test" failed?</p>
              </blockquote>
              I didn't try tests, so can't answer. Will look at evening.<br>
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
About spice-server api I did't found good docs to make update simply and fast but with a fast search I found this xspice (similar project for xorg instead) commit that probably can be faster update some deprecrated spice functions:
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://cgit.freedesktop.org/xorg/driver/xf86-video-qxl/commit/?id=70884bd353c34c0be23c2b21eec320cd8c637f4f">https://cgit.freedesktop.org/xorg/driver/xf86-video-qxl/commit/?id=70884bd353c34c0be23c2b21eec320cd8c637f4f</a></p>
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">I don't have sufficent free time for try to change it and test build/use today.</p>
              </blockquote>
              I spend much time for reading spice source code to
              understand its API far in 2013. To understand it you have
              to read sources as I. I remember that in fact spice
              protocol is - to say simple - drawing API. You can draw
              stuff from spice-server on spice-client's screen. Anyway
              we need to learn new api, reading example source code as I
              did.<br>
              <br>
              I did simple <a moz-do-not-send="true"
                href="https://github.com/ein-shved/qxl-test">example</a>
              then to practice on spice API.<br>
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
After update to newer api I suppose will be good add also a required spice-server version check in configure based on newer api, I found this that seems will make fast see at what version was added any api:
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://cgit.freedesktop.org/spice/spice/tree/server/spice-server.syms">https://cgit.freedesktop.org/spice/spice/tree/server/spice-server.syms</a></p>
              </blockquote>
              Yes of course we will!<br>
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
</p>
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
Another important note if you don't know it, spice-server recently is under heavy changes, latest version (0.13.0) is like a "devel snapshot".
Latest stable version that I think is good to use also with this project for now is 0.12.6.</p>
              </blockquote>
              Yes, I don't. Is it possible for you to assemble all
              documents and links on this topic, you found?<br>
              <blockquote cite="mid:56D45660.60101@m2r.biz" type="cite">
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
</p>
                <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
Thanks for any reply and sorry for my bad english.
<!--EndFragment--></p>
                <meta http-equiv="Content-Type" content="text/html;
                  charset=utf-8">
                <style type="text/css">
p, li { white-space: pre-wrap; }
</style><br>
                <br>
                <blockquote cite="mid:56D42AE1.3030003@lvk.cs.msu.su"
                  type="cite"> <br>
                  On 02/29/2016 12:22 PM, Daniel Stone wrote: <br>
                  <blockquote type="cite">Hi Fabio, <br>
                    <br>
                    On 27 February 2016 at 18:02, Fabio Fantoni <a
                      moz-do-not-send="true"
                      class="moz-txt-link-rfc2396E"
                      href="mailto:fabio.fantoni@m2r.biz"><a class="moz-txt-link-rfc2396E" href="mailto:fabio.fantoni@m2r.biz"><fabio.fantoni@m2r.biz></a></a>
                    wrote: <br>
                    <blockquote type="cite">Hi, long time ago I saw an
                      interesting project for weston, the spice <br>
                      compositor: <br>
                      <a moz-do-not-send="true"
                        class="moz-txt-link-freetext"
                        href="https://github.com/ein-shved/compositor-spice">https://github.com/ein-shved/compositor-spice</a>
                      <br>
                      It is now abandoned because the developer has been
                      involved in another <br>
                      project. <br>
                      As no other has continued it, despite my low
                      knowledge and time I would try <br>
                      to update, test and possibly improve it. <br>
                    </blockquote>
                    Great! <br>
                    <br>
                    <blockquote type="cite">I did a new branch with only
                      2 commit on top of latest upstream commit: <br>
                      <a moz-do-not-send="true"
                        class="moz-txt-link-freetext"
                        href="https://github.com/Fantu/compositor-spice/commits/test">https://github.com/Fantu/compositor-spice/commits/test</a>
                      <br>
                      and I tried to do a fast rebase on latest upstream
                      commit (1.10) instead of <br>
                      master (development branch) for decrease the risk
                      regression on first <br>
                      build/use tests: <br>
                      <a moz-do-not-send="true"
                        class="moz-txt-link-freetext"
href="https://github.com/Fantu/compositor-spice/commits/rebase/spice-1.10">https://github.com/Fantu/compositor-spice/commits/rebase/spice-1.10</a>
                      <br>
                      <br>
                      Solving conflict about configure and makefile
                      parts I have some doubts (as <br>
                      also reported in the description of each commit):
                      <br>
                      About first commit (Add Spice compositor) <br>
                      <a moz-do-not-send="true"
                        class="moz-txt-link-freetext"
href="https://github.com/Fantu/compositor-spice/commit/f589ab264e80d43fa0853770481b6ddcadf5505b">https://github.com/Fantu/compositor-spice/commit/f589ab264e80d43fa0853770481b6ddcadf5505b</a>
                      <br>
                      - in configure.ac some changes seems strange,
                      including LIBS and CFLAGS that <br>
                      seems "double" <br>
                    </blockquote>
                    I think this can be removed. Usually setting
                    LIBS/CFLAGS and <br>
                    foo_save_LIBS/foo_save_CFLAGS is used for an
                    AC_CHECK_* call, which <br>
                    relies on LIBS and CFLAGS already being set. I guess
                    there may have <br>
                    been a call here which has since been removed. <br>
                    <br>
                    <blockquote type="cite">About the second commit
                      (Monitor renderer) <br>
                      <a moz-do-not-send="true"
                        class="moz-txt-link-freetext"
href="https://github.com/Fantu/compositor-spice/commit/2632b8b8067e46ac69b5ad1bc2164d90ced5e19f">https://github.com/Fantu/compositor-spice/commit/2632b8b8067e46ac69b5ad1bc2164d90ced5e19f</a>
                      <br>
                      - Makefile things seems fully changed, tried to
                      adapt them but I'm not sure <br>
                      if I did it correct. <br>
                      - Add -g to AM_CPPFLAGS in Makefile.am is really
                      needed? not added for now <br>
                    </blockquote>
                    No, this is a debugging feature only. <br>
                    <br>
                    <blockquote type="cite">- add of
                      "-Wl,--wrap=pixman_renderer_init" to LDFLAGS of
                      many other backend <br>
                      is really needed? not added for now, if needed is
                      good understand why to add <br>
                      it also to new things added since this start
                      commit done 3 years ago <br>
                    </blockquote>
                    This should be solved in a different way if
                    required. <br>
                    <br>
                    <blockquote type="cite">- src/compositor-rdp.c
                      changes is really needed? if not I'll remove them
                      <br>
                      <br>
                      I also searched documentation about api and/or
                      internal weston functions <br>
                      changed any versions but I not found them. <br>
                    </blockquote>
                    There is no documentation on the change, no. <br>
                    <br>
                    As you can see, several functions have changed: <br>
                       - weston_output_finish_frame now takes a struct
                    timespec rather than <br>
                    an integer number of milliseconds (trivial
                    conversion) <br>
                       - the output repaint function now returns an
                    integer marking success <br>
                    or failure <br>
                       - the compositor interface has now changed to
                    weston_backend, and <br>
                    you can see examples of the changes required in
                    commit 954f183e <br>
                    <br>
                    Hope this helps: just pick out the warnings and
                    errors one by one, and <br>
                    try to figure them out - searching git commits for
                    anything relevant <br>
                    always helps - until you get something that builds.
                    <br>
                    <br>
                    Cheers, <br>
                    Daniel <br>
                  </blockquote>
                  <br>
                  -- Kind Regards, Yury Shvedov <br>
                </blockquote>
                <br>
              </blockquote>
              <br>
              <div class="moz-signature">-- Kind Regards, Yury Shvedov </div>
            </blockquote>
            <br>
          </blockquote>
          <br>
          <pre class="moz-signature" cols="72">-- 
Kind Regards,
Yury Shvedov </pre>
        </blockquote>
        <br>
        <pre class="moz-signature" cols="72">-- 
Kind Regards,
Yury Shvedov </pre>
      </blockquote>
      <br>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Kind Regards,
Yury Shvedov </pre>
  </body>
</html>