Permalink
Commits on Aug 18, 2017
  1. Add scan-build for build process

    paraschetal committed Aug 18, 2017
Commits on Jul 23, 2017
  1. Fix hardcoded CC=gcc

    paraschetal committed Jul 23, 2017
Commits on Jul 5, 2017
  1. version 4.0.2

    marmarek committed Jul 5, 2017
Commits on May 31, 2017
  1. xside: Fix handling -n flag - don't crach child process

    marmarek committed May 31, 2017
    When -n flag is used (do not wait for agent connection), or startup
    timeout expires, parent process exits. In such a case, writing
    notification for it to a pipe results in SIGPIPE (pipe is closed).
    Ignore this signal, so it will not kill the process, instead write
    syscall will return EPIPE. Then, we can either handle such error, or
    ignore it when needed.
    
    Fixes QubesOS/qubes-issues#2837
Commits on May 26, 2017
  1. Update path to qrexec-policy

    marmarek committed May 26, 2017
Commits on Apr 18, 2017
Commits on Apr 9, 2017
  1. version 4.0.1

    marmarek committed Apr 9, 2017
  2. rpm: add missing BR: xen-devel

    marmarek committed Apr 9, 2017
    Previously libvchan-xen-devel depended on xen-devel, so it was
    installed anyway...
Commits on Apr 8, 2017
  1. travis: switch to Qubes 4.0

    marmarek committed Apr 8, 2017
Commits on Apr 2, 2017
  1. Merge remote-tracking branch 'qubesos/pr/12'

    marmarek committed Apr 2, 2017
    * qubesos/pr/12:
      Make watch-screen-layout-changes actually exit on SIGTERM
  2. Merge remote-tracking branch 'qubesos/pr/11'

    marmarek committed Apr 2, 2017
    * qubesos/pr/11:
      watch-screen-layout-changes: Remove broken duplicate event check
Commits on Feb 24, 2017
  1. watch-screen-layout-changes: Remove broken duplicate event check

    jaseg
    jaseg committed Feb 21, 2017
    XRandR tends to emit two events for every screen layout change. This
    code tried to catch this case to avoid unnecessary calls to the python
    VM notification tool. Sadly, the check it did based on X server
    timestamps did not work in practice. It did not catch duplicate events
    in case of resolution or screen position changes but only in case of
    screens removed, and it did spuriously catch *both* events in case of
    screens added to the system.
    
    I (jaseg) had a look at other possibilities to do this check, and there
    does not seem to be a simple way purely from information contained in
    the event structure. There are only two fixes I can think of right now:
     1) Fixing upstream (so XRandR only emits one event for each change)
     2) Rolling the xrandr-calling-and-parsing logic in the complimentary
        python script into a bunch of XRandR API calls in this C code and
        doing a simple equality check on both configurations as understood
        by qubes.
    The former sounds like a lot of pain (and unlikely to land anywhere
    usable in a reasonable amount of time) and for now I would like to avoid
    proceeding with the latter as it sounds bug-prone at no great benefit.
  2. Make watch-screen-layout-changes actually exit on SIGTERM

    jaseg
    jaseg committed Feb 21, 2017
    Previously, it would only exit on the next screen layout change after
    SIGTERM.
Commits on Jan 18, 2017
  1. Use just X server display number in shm.id filename, instead of full …

    marmarek committed Jan 18, 2017
    …$DISPLAY
    
    Full $DISPLAY is ambiguous - for example :0 and :0.0 means the same. And
    indeed X server cmdline contains ":0", while $DISPLAY - ":0.0". So, get
    only display number to get the same value regardless of the format. This
    also get rid of ":" from the filename for aesthetic reasons.
    
    Fixes "Use shm.id.$DISPLAY to allow more than single X server"
Commits on Jan 12, 2017
  1. Convert tabs to spaces according to our coding guidelines

    marmarek committed Jan 12, 2017
    No functional change.
  2. xside: report back to the VM fullscreen mode, even if it's emulated

    marmarek committed Jan 12, 2017
    If VM doesn't have permission to switch to fullscreen one of its own
    window, such request is superseded with maximize request. But some
    applications (Firefox at least) expect that when requesting fullscreen
    mode it really got that. Indeed wm-spec does not include any method for
    window manager to refuse such request.
    So, to be slightly more compliant with the specification, report to the
    VM that the window got fullscreen, even if that was actually only
    maximize. At the same time - allow application to exit fullscreen,
    regardless of method how it was achieved (even if application isn't
    allowed to enter it on its own, it's still possible for the user to set
    it using window manager specific action - like some key shortcut, or
    window menu). The last part is somehow tricky, because there are
    multiple cases:
    
    1. Application requested fullscreen, and got real fullscreen. In this
    case exiting fullscreen request should be relayed without change.
    
    2. Application requested fullscreen, which was converted to maximize
    request. In this case exiting fullscreen request should be converted to
    un-maximize request.
    
    3. Application requested fullscreen, which was converted to maximize
    request. But later user switched to real fullscreen. Here exiting
    fullscreen request should be relayed as exiting fullscreen request.
    
    4. User manually switched application to fullscreen, without request for
    that coming from inside of VM. This is very similar to case 3.
    
    Without properly handling exiting fullscreen, the very same problem
    happen (to Firefox) when exiting fullscreen (like pressing Esc to exit
    fullscreen youtube player)...
    
    Fixes QubesOS/qubes-issues#1502
  3. xside: retrieve _NET_WM_STATE_MAXIMIZED_* atoms only once

    marmarek committed Jan 12, 2017
    No functional change.
Commits on Jan 8, 2017
  1. travis: drop debootstrap workaround

    marmarek committed Dec 4, 2016
    Move to qubes-builder
    
    Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
  2. Merge branch 'core3-devel'

    marmarek committed Jan 8, 2017
  3. Use shm.id.$DISPLAY to allow more than single X server

    ij1 committed Jan 4, 2017
    The following cmdlines have been tested using a separate
    wrapper for get_display (not included to this patchset):
    
    Xorg :0 -> Display is ":0"
    Xorg noexplicit -> Display is ":0"
    Xorg :0 dummy -> Display is ":0"
    Xorg :1 -> Display is ":1"
    Xorg :0 :1 -> Display is ":1"
    Xorg :0 dummy :1 -> Display is ":1"
    Xorg : -> cmdline DISPLAY parsing failed
    Error code was 1
    Xorg :a -> cmdline DISPLAY parsing failed
    Error code was 1
    Xorg :a0 -> cmdline DISPLAY parsing failed
    Error code was 1
    Xorg :a :0 -> cmdline DISPLAY parsing failed
    Error code was 1
    Xorg :1.0 -> Display is ":1"
    Xorg 1:1 -> Display is ":0"
    Xorg 1:1 :1 -> Display is ":1"
    :Xorg :1 argv0test -> Display is ":1"
    
    I checked the Xorg argv parsing code than xserver seems to
    take last valid value for DISPLAY when multiple are given
    (perhaps similar selectionis overkill to implement in
    shmoverride but it doesn't add that much to complexity
    either).
  4. Move shm.id file to variables

    ij1 committed Dec 8, 2016
    Should introduce no functional changes
Commits on Nov 26, 2016
  1. Allow copying out of dom0 at qrexec-policy level

    jpouellet committed Nov 26, 2016
    Prior to commit 981a11ce in qubes-core-admin-linux, this was allowed
    accidentally as a bug.
    
    This manifested itself as the silent inability to paste into any AppVM
    after clicking the "Copy to Qubes clipboard" button in the log viewer
    of qubes-manager.
    
    Writing the new clipboard data in dom0 would work fine, and you would
    get a notification that the copy was successful, but the paste path
    would cause is_special_keypress() to bail early without warning due to
    evaluate_clipboard_policy() failing with source_vm = "dom0".
    
    I did not detect this sooner because if qubes-clipboard.bin.source had
    a trailing newline, then evaluate_clipboard_policy() would not fail,
    and my dom0 clipboard-copyout script produced such a trailing newline.
Commits on Nov 19, 2016
  1. version 4.0.0

    marmarek committed Nov 19, 2016
Commits on Nov 18, 2016
  1. Use generic RRScreenChangeNotify instead of other events

    yaqu committed Nov 18, 2016
    When resolution of monitor is increased, XRROutputChangeNotifyEvent
    is not sent, and change remains undetected (if randr>=1.2).
    Instead of using OutputChange/ConfigureNotify events, we should
    monitor RRScreenChangeNotify, which is always.
    
    There is no need to check randr version, as this event is always
    supported.
    
    There is no need to use ConfigureNotify at all, even if randr is
    not available, since qubes-monitor-layout-notify doesn't work
    without randr.
    
    More than one event may be sent after single configuration change
    (OutputChange, CrtcChange). Subsequent events with the same
    timestamps can be skipped.
    
    Fixes QubesOS/qubes-issues#2421
  2. screen-layout-handler: add missing include

    yaqu committed Nov 17, 2016
    fork, close and execvp need unistd.h
  3. Merge remote-tracking branch 'qubesos/pr/7'

    marmarek committed Nov 18, 2016
    * qubesos/pr/7:
      Use table instead of strcmp chain for modifier parsing
Commits on Nov 11, 2016
  1. Merge remote-tracking branch 'qubesos/pr/6'

    marmarek committed Nov 11, 2016
    * qubesos/pr/6:
      Fix documentation link
  2. Merge remote-tracking branch 'qubesos/pr/5'

    marmarek committed Nov 11, 2016
    * qubesos/pr/5:
      Improve readability
  3. Merge remote-tracking branch 'qubesos/pr/3'

    marmarek committed Nov 11, 2016
    * qubesos/pr/3:
      Move /var/run/shm.id to /var/run/qubes/shm.id
  4. Improve readability

    jpouellet committed Nov 11, 2016