1. 05 Jan, 2019 2 commits
  2. 30 Aug, 2018 1 commit
    • Eduardo Lima (Etrunko)'s avatar
      Add support for building with meson/ninja · 7a87356b
      Eduardo Lima (Etrunko) authored
      In a comparison with current autotools build system, meson/ninja
      provides a huge improvement in build speed, while keeping the same
      functionalities currently available and being considered more user
      friendly.
      
      The new system coexists within the same repository with the current one,
      so we can do more extensive testing of its functionality before deciding
      if the old system can be removed, or for some reason, has to stay for
      good.
      
      - Meson: https://mesonbuild.com
      
        This is the equivalent of autogen/configure step in autotools. It
        generates the files that will be used by ninja to actually build the
        source code.
      
        The project has received lots of traction recently, with many GNOME
        projects willing to move to this new build system. The following wiki
        page has more details of the status of the many projects being ported:
      
          https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting
      
        Meson has a python-like syntax, easy to read, and the documentation
        on the project is very complete, with a dedicated page on how to port
        from autotools, explaining how most common use cases can be
        implemented using meson.
      
          http://mesonbuild.com/Porting-from-autotools.html
      
        Other important sources of information:
      
          http://mesonbuild.com/howtox.html
          http://mesonbuild.com/Syntax.html
          http://mesonbuild.com/Reference-manual.html
      
      - Ninja: https://ninja-build.org
      
        Ninja is the equivalent of make in an autotools setup, which actually
        builds the source code. It has being used by large and complex
        projects such as Google Chrome, Android and LLVM. There is not much to
        say about ninja (other than it is much faster than make) because we
        won't interact directly with it as much, as meson does the middle man
        job here. The reasoning for creating ninja in the first place is
        explained on the following post:
      
          http://neugierig.org/software/chromium/notes/2011/02/ninja.html
      
        Also its manual provides more in-depth information about the design
        principles:
      
          https://ninja-build.org/manual.html
      
      - Basic workflow:
      
        Meson package is available for most if not all distros, so, taking
        Fedora as an example, we only need to run:
      
          # dnf -y install meson ninja-build.
      
        With Meson, building in-tree is not possible at all, so we need to
        pass a directory as argument to meson where we want the build to be
        done. This has the advantage of creating builds with different options
        under the same parent directory, e.g.:
      
          $ meson ./build --prefix=/usr
          $ meson ./build-extra -Dextra-checks=true -Dalignment-checks=true
      
        After configuration is done, we call ninja to actually do the build.
      
          $ ninja -C ./build
          $ ninja -C ./build install
      
        Ninja defaults to parallel builds, and this can be changed with the -j
        flag.
      
          $ ninja -j 10 -C ./build
      
      - Hacking:
      
        * meson.build: Mandatory for the project root and usually found under
                       each directory you want something to be built.
      
        * meson_options.txt: Options that can interfere with the result of the
                             build.
      Signed-off-by: default avatarEduardo Lima (Etrunko) <etrunko@redhat.com>
      Acked-by: Victor Toso's avatarVictor Toso <victortoso@redhat.com>
      7a87356b
  3. 01 Aug, 2018 1 commit
  4. 17 Jul, 2017 1 commit
  5. 12 Jul, 2017 2 commits
  6. 23 Jan, 2017 1 commit
  7. 07 Sep, 2016 1 commit
  8. 01 Sep, 2016 1 commit
  9. 19 Aug, 2016 1 commit
  10. 18 Mar, 2016 1 commit
  11. 11 Mar, 2016 1 commit
  12. 25 Sep, 2015 1 commit
  13. 23 Sep, 2015 1 commit
  14. 19 Jun, 2015 1 commit
  15. 18 Jun, 2015 1 commit
  16. 08 Jun, 2015 1 commit
    • Marc-André Lureau's avatar
      Move gtk/ -> src/ · caf28401
      Marc-André Lureau authored
      For historical reasons, the code was placed under gtk/ subdirectory.
      If it was always bugging you, bug no more!
      caf28401
  17. 30 Oct, 2014 1 commit
  18. 10 Oct, 2014 1 commit
  19. 19 Mar, 2014 1 commit
    • Marc-André Lureau's avatar
      Add webdav channel · 382ecfa1
      Marc-André Lureau authored
      See spice-common for protocol details.  phodav, a webdav server library,
      is imported thanks to a submodule, until this project has a stable API
      and releases.
      
      The webdav channel is reponsible for handling port events and
      multiplexing the request streams. Extra care has been made to avoid
      blocking and to enable some fairness between concurrent streams, however
      this has been particularly tricky and is likely to have some issues
      left.
      
      The webdav server is run in a seperate thread, using libsoup. The client
      communication is done via a local tcp socket, but protected to only
      accept local connection and with a pretty strong password.
      
      The home directory is exported for the remote to browse, which seems to
      be a sensible default atm.
      382ecfa1
  20. 24 Jun, 2013 1 commit
  21. 10 Apr, 2013 1 commit
  22. 10 Jul, 2012 1 commit
  23. 08 Mar, 2012 1 commit
  24. 20 Feb, 2012 1 commit
  25. 31 Jan, 2012 1 commit
  26. 15 Jan, 2012 1 commit
  27. 18 Jul, 2011 1 commit
  28. 07 Jun, 2011 1 commit
    • Christophe Fergeau's avatar
      add really basic GDK GnomeRR backend · 8b7c15ae
      Christophe Fergeau authored
      It doesn't know about available resolutions, nor about clones,
      rotations, ..., it can't trigger resolution changes, but hopefully
      it will be enough for basic GnomeRR support in the mac port.
      8b7c15ae
  29. 15 Apr, 2011 1 commit
  30. 14 Jan, 2011 1 commit
  31. 25 Nov, 2010 3 commits
  32. 24 Nov, 2010 1 commit