summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-08-26start adding egl protocolvirgilDave Airlie1-0/+13
2015-08-26add cap for egl spice viewerDave Airlie1-0/+1
2015-08-20macros: fix compatibility with non-clang compilersFrediano Ziglio1-0/+4
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-08-20macros: fix alignment issue reported by clangVictor Toso1-1/+1
char_device.c:131:52: warning: cast from 'uint8_t *' (aka 'unsigned char *') to 'SpiceCharDeviceMsgToClientItem *' (aka 'struct SpiceCharDeviceMsgToClientItem *') increases required alignment from 1 to 8 [-Wcast-align] SpiceCharDeviceMsgToClientItem *msg_item = SPICE_CONTAINEROF(item, ^~~~~~~~~~~~~~~~~~~~~~~ ../spice-common/spice-protocol/spice/macros.h:142:6: note: expanded from macro 'SPICE_CONTAINEROF' ((struct_type *)((uint8_t *)(ptr) - SPICE_OFFSETOF(struct_type, member))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2015-08-20macros: verify if __alloc_size__ works with clangVictor Toso1-1/+2
So we can avoid using using an attribute not supported for the compiler. warning: ../spice-common/common/mem.h:91:80: warning: unknown attribute '__alloc_size__' ignored [-Wunknown-attributes] void *spice_malloc0_n(size_t n_blocks, size_t n_block_bytes) SPICE_GNUC_MALLOC SPICE_GNUC_ALLOC_SIZE2(1,2); ../spice-common/spice-protocol/spice/macros.h:52:52: note: expanded from macro 'SPICE_GNUC_ALLOC_SIZE2' #define SPICE_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y))) ^
2015-08-19Fix endianess compatibility with old GCC versionsFrediano Ziglio1-1/+2
GCC 4.4.7 does not define __BYTE_ORDER__ macros so use architecture macro to attempt to detect endianess. Signed-off-by: Frediano Ziglio <fziglio@redhat.com> Reported-by: Swapna Krishnan <skrishna@redhat.com> Tested-by: Swapna Krishnan <skrishna@redhat.com> Acked-by: Uri Lublin <uril@redhat.com>
2015-08-12Use 0xffu everywhere in new SPICE_MAGIC_CONST macroChristophe Fergeau1-2/+2
This should have been squashed in the commit introducing the macro, but I forgot to commit this before pushing it.
2015-08-12Define and use new SPICE_MAGIC_CONST macroFrediano Ziglio7-7/+21
This macro allow to define magic constants without using weird memory tweacks. This remove some possible warning from some compiler and make code more optimized as compiler is able to compute the constant. Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-08-12Detects processor endianess using preprocessorFrediano Ziglio1-0/+55
This allow to define macros based on endianess in public headers Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-08-10build-sys: Make installed spice_codegen.py is executableChristophe Fergeau1-1/+4
Files listed as _DATA in Makefile.am are installed without the executable bit set, files listed as _SCRIPT do get the executable bit set. As spice_codegen.py is meant to be run by spice-protocol users, make sure this bit is set.
2015-08-07build-sys: Make sure aclocal picks up macros in the m4/ dirChristophe Fergeau1-0/+1
Older aclocal version needs to have ACLOCAL_FLAGS defined in Makefile.am in order to be able to pick up macros stored in m4/ in the source directory.
2015-08-07build-sys: Add m4 file for AX_PYTHON_MODULEChristophe Fergeau1-0/+49
This fixes a build failure on older distros (EL6) which do not have this macro readily available.
2015-08-07proto: Use proper type for preferred_compression fieldChristophe Fergeau1-1/+1
No need to use an uint8 typed member, we can directly use the appropriate enum8 type here, which makes everything more explicit.
2015-08-07proto: Rename image_compress to image_compressionChristophe Fergeau1-1/+1
Re-using the SPICE_IMAGE_COMPRESS_ prefix in newer spice-protocol releases is going to cause issues as there will be clashing enum members in older spice-server releases. Using SPICE_IMAGE_COMPRESSION_ as a prefix sidesteps these backward compability issues.
2015-08-07build-sys: Install code generation data/scriptsChristophe Fergeau2-9/+10
spice-common generate code from these python scripts and the installed SPICE .proto. This commit installs them during make install, and adds a codegendir variable to the pkgconfig file so that spice-common can locate the scripts.
2015-08-07build-sys: Add --enable-code-generatorChristophe Fergeau3-1/+41
This flag is only used for git builds, and can usually safely be disabled. When it's enabled, configure.ac will check that python-six and pyparsing are available, and will use these together with the codegen python scripts in order to automatically regenerate enums.h when the .proto files change.
2015-08-07build-sys: Make sure new files are dist'edChristophe Fergeau2-1/+11
The just added .proto files and python code generation code need to be added to EXTRA_DIST in order to be distributed in tarballs, and we need to recurse in the new python_modules directory.
2015-08-07Merge protocol code generation bits from spice-commonChristophe Fergeau10-0/+5983
The history for spice*.proto, spice_codegen.py and python_modules/ was extracted from spice-common using git filter-branch: git filter-branch \ --prune-empty \ --index-filter ' git ls-tree -z -r --name-only --full-tree $GIT_COMMIT \ | grep -z -v "^python_modules/" \ | grep -z -v "^spice.proto" \ | grep -z -v "^spice1.proto" \ | grep -z -v "^spice_codegen.py" \ | xargs -0 -r git rm -f --cached -r ' \ -- \ --all git filter-branch --force \ --prune-empty \ --index-filter ' git rm -f spice-protocol --cached --ignore-unmatch ' \ -- \ --all
2015-08-06Add VD_AGENT_CAP_MONITORS_CONFIG_POSITION capability to client.Sandy Stutsman1-0/+1
This indicates the client's ability to handle multi-monitor configurations that are not multi-head. This commit addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1248196 https://bugzilla.redhat.com/show_bug.cgi?id=1248189
2015-08-04codegen: ptypes.py: keep attribute names in setsUri Lublin1-4/+4
This patch changes the type of 'valid_attributes' and 'attributes_with_arguments'. Both of them are list of different strings and are kept in sets. This was the intention of the original code, but this patch use a specific set([ strings ]) format, instead of { strings }. This fixes the build for me on RHEL-6 (python-2.6.6). Build error is: File "/home/ulublin/git/spice/spice-common/python_modules/ptypes.py", line 67 'end', ^ SyntaxError: invalid syntax
2015-07-29Post-release version bumpChristophe Fergeau1-1/+1
2015-07-29Release 0.12.9Christophe Fergeau1-0/+6
2015-07-23Rename SpiceImageCompress constantsChristophe Fergeau1-12/+12
Having these constants use the same name as the ones in spice-server 0.12.5 causes compilation issues for spice-server users when using spice-server 0.12.5 or older, and spice-protocol 0.12.8.
2015-07-23codegen: Allow to specify C type for index variableFrediano Ziglio1-1/+3
This is to prepare to generate the wireshark dissector which uses glib types instead of the newer C ones (for compatibility with some compilers). Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Check we don't pop too many indexesFrediano Ziglio1-0/+1
2015-07-23codegen: Remove old ptr32 attributeFrediano Ziglio1-4/+0
This attribute is not used in code. Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Do some checks on attributesFrediano Ziglio1-0/+72
Verify that the attribute is known. This could help for instance to avoid some future typo mistakes. We also now have a list of attributes that we can comment for documentation purpose. Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Reuse code to fix attribute from prototype fileFrediano Ziglio1-16/+16
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Remove duplicate variable initializationFrediano Ziglio1-1/+0
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Optimize code indentation and avoid a loopFrediano Ziglio1-2/+1
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Fix typo in variable nameFrediano Ziglio1-1/+1
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Simplify if/else blocksFrediano Ziglio1-18/+11
Blocks were mainly the same, this reduces the amount of code. Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Import six module before first useFrediano Ziglio1-1/+2
The module is used in the initial try/except so make sure it is already imported. Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2015-07-23codegen: Fix enums.h generation with python3Christophe Fergeau1-2/+2
Trying to generate enums.h with python3 results in Traceback (most recent call last): File "./spice_codegen.py", line 217, in <module> write_enums(writer, options.generate_dissector) File "./spice_codegen.py", line 99, in write_enums write_channel_enums(writer, c, False, False) File "./spice_codegen.py", line 17, in write_channel_enums if len(messages) == 0: TypeError: object of type 'filter' has no len() filter() returns an enumerator object in python3 while it used to return a list in python2. Using list(filter()) instead fixes that error. I've checked that the generated enums.h is identical with python2 and python3.
2015-07-20proto: Remove space before tabChristophe Fergeau2-3/+3
There are 3 lines in spice.proto/spice1.proto which start with spaces and then contain a tab. This commit removes the spaces and only keep the tab.
2015-06-30Post-release version bumpChristophe Fergeau1-1/+1
2015-06-30Prepare for spice-protocol 0.12.8 releaseChristophe Fergeau1-0/+9
2015-06-30Add QXL_ESCAPE_MONITOR_CONFIG enumSandy Stutsman1-0/+1
New escape for sending monitor position information from guest to client
2015-06-22Proto: Add preferred compression message and constants.Javier Celaya1-0/+15
When accessing a virtual desktop from different devices, some may have different image compression requirements, e.g. slow devices may prefer the faster LZ4 over GLZ. This message instructs the server to switch the image compression algorithm. This patch also promotes the SPICE_IMAGE_COMPRESS_* constants so that they are available from both the server and the client.
2015-06-01Add a preferred compression capabilityJavier Celaya1-0/+1
2015-06-01Update enums.h for preferred compression messageJavier Celaya1-0/+14
2015-05-27Post-release version bumpChristophe Fergeau1-1/+1
This allows spice-protocol users to depend on the git version. spice-vdagent.git needs a spice-protocol version newer than the latest release for the volume synchronization work or it won't build.
2015-04-14add volume synchronization to protocolVictor Toso1-0/+9
With VD_AGENT_AUDIO_VOLUME_SYNC the client can send volume and mute values to be set in the guest for input or output devices. Currently this is done once after the agent send its capabilities. Related: https://bugzilla.redhat.com/show_bug.cgi?id=1012868
2015-04-14codegen: Use six.PY3 rather than six.PY2Christophe Fergeau2-6/+6
Older versions of python-six (at least 1.3.0) defined six.PY3 but not six.PY2. six.PY2 is only used twice in straightforward tests so it's easy to use six.PY3 instead.
2015-04-01Make spice_codegen.py work on both Python 2 and 3Alexander Wauck6-69/+78
This is a new version of my previous patch that does not include six.py. It's still kind of big, but at least it's all spice-common changes now. There are also a few other fixes that Christophe brought to my attention. Note that six now needs to be installed on the system (python-six on Fedora and Debian, six on PyPI). This *should* be enough to make spice_codegen.py work on both Python 2 and Python 3. The major changes are as follows: * cStringIO.StringIO -> io.StringIO * str vs. unicode updates (io.StringIO doesn't like str) * integer division * foo.has_key(bar) -> bar in foo * import internal_thing -> from . import internal_thing * removed from __future__ import with_statement (might break Python 2.5?) * changed some lambdas to list comprehensions (done by 2to3) * cast some_dict.keys() to list where needed (e.g. for sorting) * use normal type names with isinstance instead of types.WhateverType Signed-off-by: Alexander Wauck <awauck@codeweavers.com>
2014-12-04build-sys: simplify autogenMarc-André Lureau1-157/+10
Use autoreconf, allow out of tree autogen.sh run.
2014-12-04vdi-dev: mark as deprecatedMarc-André Lureau1-0/+4
This interface has long been deprecated, and I don't know of any user. Perhaps the header could even be removed from spice-protocol?
2014-12-02Add LZ4 image compression support.Javier Celaya1-0/+3
- Add a new LZ4 image type to spice.proto. - Add canvas_get_lz4() to common_canvas_base, to get a pixmap from an lz4 image. - Add an enable-lz4 switch to the configure script, disabled by default.
2014-12-02Add LZ4 compression display capability.Javier Celaya2-0/+2
2014-09-18python: Fix -Wsign-compareFabiano Fidêncio1-3/+3
The return of the get_array_size() is used as a limit in a loop, being compared with an unsigned index (indexes are always unsigned). To avoid the -Wsign-compare warning, let's cast the return of the get_array_size() to unsigned and make GCC happier.