Permalink
Switch branches/tags
release-16.03-start last-glibc-2.13 binary backups/0.12-release@15293 backups/0.11-release@9315 backups/0.10-release@6725 backups/0.9-release@4651 backups/0.8-release@2530 backups/0.7-release@2398 backups/0.6-release@1775 backups/0.5.1-release@996 backups/0.5-stable@34171 backups/0.5-release@989 backups/xorg-7.5@18179 backups/x86_64-darwin@34171 backups/x-updates@26704 backups/x-updates@22736 backups/usability@34170 backups/udev-173@28837 backups/stdenv-updates@34093 backups/stdenv-updates@32824 backups/stdenv-updates@19858 backups/stdenv-updates@18281 backups/stdenv-updates@15332 backups/stdenv-updates@12144 backups/stdenv-updates@10965 backups/stdenv-updates2@18282 backups/stdenv-updates2@18273 backups/stdenv-updates-merge@10849 backups/stdenv-bootstrap-20100825@23426 backups/pure-python@34174 backups/parallel-building-merger@34171 backups/one-click@2549 backups/nixos-pkgs@34170 backups/multitask-builds@34175 backups/multiple-outputs-sandbox@34172 backups/modular-python@26697 backups/master@10848 backups/master@59 backups/mass-update-01@31456 backups/martin@828 backups/martin2@34171 backups/logistics@34171 backups/libpng15@32782 backups/kmod-no-lib-modules@34172 backups/kmod-MODULE_DIR@33576 backups/kernel-config@19023 backups/kde-4.7@34170 backups/glib-2.30@32938 backups/glib-2.30-take2@33502 backups/freebsd-losser@34171 backups/drop-kde4.5@30929 backups/darwin-without-xcode@34172 backups/darwin-updates@34176 backups/cve-2010-3856@34170 backups/armv5tel-linux@18007 17.03 16.09 16.09-beta 16.03 16.03-beta 15.09 15.09-beta 0.14 0.13 0.12 0.11 0.10 0.9 0.8 0.7 0.6 0.5.1 0.5 0.4 0.3 0.2 0.1
Nothing to show
Commits on Jul 18, 2017
  1. broadcom_sta: Add patch for supporting Linux 4.12

    The patch is from Arch Linux at:
    
    https://aur.archlinux.org/cgit/aur.git/tree/linux412.patch?h=broadcom-wl
    
    Tested this by building against the following attributes:
    
      * linuxPackages.broadcom_sta
      * linuxPackages_latest.broadcom_sta
      * pkgsI686Linux.linuxPackages.broadcom_sta
      * pkgsI686Linux.linuxPackages_latest.broadcom_sta
    
    I have not tested whether this works at runtime, because I do not posess
    the hardware.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jul 18, 2017
Commits on Jul 16, 2017
  1. nixos/taskserver: Fix manual PKI management

    The helper tool had a very early check whether the automatically created
    CA key/cert are available and thus it would abort if the key was
    unavailable even though we don't need or even want to have the CA key.
    
    Unfortunately our NixOS test didn't catch this, because it was just
    switching from a configuration with an automatically created CA to a
    manual configuration without deleting the generated keys and certs.
    
    This is done now in the tests and it's also fixed in the helper tool.
    
    Reported-by: @jpotier
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jul 16, 2017
Commits on Jul 4, 2017
  1. virtualbox: Add patch for Linux 4.12

    Compiling the kernel modules on Linux 4.12 fails, so I've included an
    upstream patch from:
    
    https://www.virtualbox.org/changeset/66927/vbox
    
    The patch is applied against the guest additions as well, where we need
    to transform the patch a bit so that we get CR LF line endings (DOS
    format), which is what is the case for the guest additions ISO.
    
    I've tested this with all the subtests of the "virtualbox" NixOS VM
    tests and they all succeed on x86_64-linux.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jul 4, 2017
Commits on Jul 3, 2017
  1. nixos/xserver: Allow more than one keyboard layout

    Regression introduced by 44c64fe.
    
    The services.xserver.layout option allows to specify more than one
    layout separated by comma, which the commit above didn't take into
    account.
    
    This is very similar to @lheckemann's pull request (#26984) but differs
    in the following ways:
    
      * Print out the full list available layouts (as suggested by @0xABAB
        in [1]).
      * Loop over $layout using the default IFS (and thus no need for
        escaping ${cfg.layout}), because the layouts won't contain white
        spaces.
      * Re-do the error message, which now uses multiple echos instead of a
        heredoc, so the line is wrapped according to the viewers terminal
        width.
    
    I've tested this with several good and bad layouts and also against the
    keymap NixOS VM subtests.
    
    [1]: #26984 (comment)
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Fixes: #26961
    Closes: #26984
    aszlig committed Jul 3, 2017
  2. nixos/xserver: Document the layouts sed expression

    This was brought up by @0xABAB in #26984 by the following comment:
    
    #26984 (comment)
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jul 3, 2017
Commits on Jun 28, 2017
  1. nixos/xserver: Don't use exec in xkb-layouts-exist

    First of all, thanks to @pbogdan for getting this problem reproduced:
    
    2014db3#commitcomment-22815396
    
    Also thanks to @vcunat for bringing this to my attention:
    
    44c64fe#commitcomment-22813503
    
    Although it is not entirely clear why Nix has killed the build prior to
    finishing, it seems to be related to the process substition I was using.
    
    So instead of using "exec touch", let's wrap this inside an if so we
    don't exit too early.
    
    Tested this against all sub-tests in nixos/tests/keymap.nix and also a
    few configurations with wrong keyboard layout definitions.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jun 28, 2017
Commits on Jun 25, 2017
  1. chromium: Add installation of libGLESv2.so

    The following errors occur when you start Chromium prior to this commit:
    
    [2534:2534:0625/202928.673160:ERROR:gl_implementation.cc(246)] Failed to
    load .../libexec/chromium/swiftshader/libGLESv2.so:
    ../libexec/chromium/swiftshader/libGLESv2.so: cannot open shared object
    file: No such file or directory
    [2534:2534:0625/202928.674434:ERROR:gpu_child_thread.cc(174)] Exiting
    GPU process due to errors during initialization
    
    While in theory we do not strictly need libGLESv2.so, in practice this
    means that the GPU process isn't starting up at all which in turn leads
    to crawling rendering performance on some sites.
    
    So let's install all shared libraries in swiftshader.
    
    I've tested this with the chromium.stable NixOS VM test and also locally
    on my machine and the errors as well as the performance issues are gone.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jun 25, 2017
Commits on Jun 23, 2017
  1. krita: Fix build dependencies

    First of all, we need a newer version of Vc, because at least version
    1.1.0 is required for Krita 3.1.3.
    
    Also, qtmultimedia and qtx11extras were missing.
    
    Built and tested successfully on my machine.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Cc: @abbradar
    aszlig committed Jun 23, 2017
  2. virtualbox: Rebase hardened.patch on top of 5.1.22

    The merge of the version bump in
    6fb9f89 didn't take care of our patch
    for the hardening mode and thus enabling VirtualBox without also
    force-disabling hardening mode will result in a build error.
    
    While the patch is largely identical with the old version, I've removed
    one particular change around the following code:
    
        if (pFsObjState->Stat.st_mode & S_IWOTH)
            return supR3HardenedSetError3(VERR_SUPLIB_WORLD_WRITABLE, pErrInfo,
                                          "World writable: '", pszPath, "'");
    
    In the old version of the patch we have checked whether the path is
    within the Nix store and suppressed the error return if that's the case.
    
    The reason why I did that in the first place was because we had a bunch
    of symlinks which were writable.
    
    In VirtualBox 5.1.22 the code specifically checks whether the file is a
    symlink, so we can safely drop our change.
    
    Tested via all of the "virtualbox" NixOS VM subtests and they now all
    succeed.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jun 23, 2017
  3. github/pr-template: Add note about NixOS tests

    On several occasions I've seen people bumping packages which have NixOS
    tests but without actually running them.
    
    While this probably won't prevent such occasions entirely, at least it
    serves as an additional checklist item so contributors don't forget
    about these tests.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jun 23, 2017
Commits on Jun 22, 2017
  1. electrum: Unify protobuf dependencies

    Since 9c57f3b bumped the protobuf
    version because the new upstream requires it, electrum now gets
    protobuf3_0 *and* protobuf3_2 instead of just one version.
    
    This leads to the following build errer:
    
    Found duplicated packages in closure for dependency 'protobuf':
      protobuf 3.0.2 (...-python2.7-protobuf-3.0.2/lib/python2.7/site-packages)
      protobuf 3.2.0 (...-python2.7-protobuf-3.2.0/lib/python2.7/site-packages)
    
    Using protobuf3_2 for keepkey and electrum fixes the build.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Cc: @np
    aszlig committed Jun 22, 2017
  2. python-modules/trezor: Fix build

    Regression introduced by 76beb08.
    
    With version 0.7.15 a few additional dependencies are needed by trezor,
    mainly a newer version of protobuf bindings and requests.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Cc: @np
    aszlig committed Jun 22, 2017
  3. nixos/tests/sddm: Fix detecting login screen

    Tesseract seems to have a hard time detecting the "ALICE FOOBAR" text,
    so let's match on "Select your user and enter password" instead.
    
    Ran the test on x86_64-linux and it now succeeds.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jun 22, 2017
  4. vlock: Don't try to install setuid binary

    With newer Nix it's (fortunately) no longer possible to create a file
    with setuid bits, even though the permissions are fixed later the build
    will fail during installPhase already.
    
    I've verified whether the contents of the output path are the same as
    before this change and the contents match.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jun 22, 2017
  5. nixos/release-combined: Add keymap tests

    We really want to break channel updates whenever we break something like
    this, because this actually will hit machines out there and can be very
    much annoying (we had broken keymaps a few times which is why I
    introduced these tests in the first place).
    
    Just to be sure I don't break channel updates with this commit, I ran
    all of the keymap tests and they all succeeded.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jun 22, 2017
  6. nixos/xserver: Improve checking keyboard layout

    Enumerating the symbols directory doesn't include variants, so we're now
    basically doing what "localectl list-x11-keymap-layouts" does but we use
    sed instead.
    
    The reason I'm not using localectl directly is because the path to
    rules/base.lst is hardcoded in the systemd source.
    
    Of course, the XKB specification allows for much more complicated rules,
    but at least this should cover the most basic ones including variants.
    
    So the sed expression itself is just for listing the available layouts
    and variants and we use a grep with -xF to match only full lines without
    interpreting regular expressions.
    
    This should again allow to set "dvorak" as the layout option.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Cc: @lheckemann
    Fixes: #25526
    aszlig committed Jun 22, 2017
Commits on Jun 21, 2017
  1. pyopenssl: 16.2.0 -> 17.0.0 and fix tests

    Upstream changes:
    
     * Added OpenSSL.X509Store.set_time() to set a custom verification time
       when verifying certificate chains. pyca/pyopenssl#567
     * Added a collection of functions for working with OCSP stapling. None
       of these functions make it possible to validate OCSP assertions, only
       to staple them into the handshake and to retrieve the stapled
       assertion if provided. Users will need to write their own code to
       handle OCSP assertions. We specifically added:
       Context.set_ocsp_server_callback, Context.set_ocsp_client_callback,
       and Connection.request_ocsp. pyca/pyopenssl#580
     * Changed the SSL module's memory allocation policy to avoid zeroing
       memory it allocates when unnecessary. This reduces CPU usage and
       memory allocation time by an amount proportional to the size of the
       allocation. For applications that process a lot of TLS data or that
       use very lage allocations this can provide considerable performance
       improvements. pyca/pyopenssl#578
     * Automatically set SSL_CTX_set_ecdh_auto() on OpenSSL.SSL.Context.
       pyca/pyopenssl#575
     * Fix empty exceptions from OpenSSL.crypto.load_privatekey().
       pyca/pyopenssl#581
    
    The full upstream changelog can be found at:
    
    https://pyopenssl.readthedocs.io/en/17.0.0/changelog.html
    
    I've also added a patch from pyca/pyopenssl#637 in order to fix the
    tests, which was the main reason for the version bump because that patch
    won't apply for 16.2.0.
    
    According to the upstream changelog there should be no
    backwards-incompatible changes, but I've tested building against some of
    the packages depending on pyopenssl anyway. Regardless of this, the
    build for pyopenssl fails right now anyway, so the worst that could
    happen via this commit would be that we break something that's already
    broken.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Jun 21, 2017
Commits on Jun 18, 2017
  1. chromium: Allow to put extensions in system path

    This should allow us to easily add system-wide Chromium extensions via a
    NixOS configuration similar to this:
    
    { pkgs, ... }: {
      environment.pathsToLink = [ "/share/chromium/extensions" ];
      environment.systemPackages = [ pkgs.my-shiny-extension ];
    }
    
    For more details about what Chromium expects within that directory, see:
    
    https://developer.chrome.com/extensions/external_extensions
    
    I've introduced this because of a personal desire to gain more control
    about which extensions are installed and what they are able to do. All
    of the extensions I use are free software, but despite that it's useful
    to either easily patch them and also prevent unwanted automatic updates.
    
    Tested this using the NixOS "chromium.stable" test on x86_64-linux.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Cc: @offlinehacker because of #21050
    aszlig committed Jun 18, 2017
Commits on May 2, 2017
  1. Merge pull request #15353 (improve xrandrHeads)

    When you have a setup consisting of multiple monitors, the default is
    that the first monitor detected by xrandr is set to the primary monitor.
    
    However this may not be the monitor you need to be set as primary. In
    fact this monitor set to primary may in fact be disconnected.
    
    This has happened for the original submitter of the pull request and it
    affected these programs:
    
     * XMonad: Gets confused with Super + {w,e,r}
     * SDDM: Puts the login screen on the wrong monitor, and does not
             currently duplicate the login screen on all monitors
     * XMobar: Puts the XMobar on the wrong monitor, as it only puts the
               taskbar on the primary monitor
    
    These changes should fix that not only by setting a primary monitor in
    xrandrHeads but also make it possible to make a different monitor the
    primary one.
    
    The changes are also backwards-compatible.
    aszlig committed May 2, 2017
Commits on Apr 25, 2017
  1. nixos/grub: Add another example for extraEntries

    Someone on IRC wanted to boot Fedora from another disk. While I'm not
    too familiar with UEFI booting in conjunction with GRUB2 it took some
    time to get it to work.
    
    So in order to safe others from frustration I'm adding this as another
    example to the extraEntries option.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 25, 2017
Commits on Apr 24, 2017
  1. nixos/xserver: Document xrandrHeads.apply

    It was asked by @CMCDragonkai to elaborate on that, so let's just do
    this by actually providing a code comment.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 24, 2017
  2. nixos/doc: Improve release notes for xrandrHeads

    The xrandrHeads option has been there since a long time, so there is no
    need to advertise it as a new feature.
    
    Instead, let's focus on just what has changed, which is that we now
    assign one head to be primary.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 24, 2017
  3. nixos/xserver: Fix up/refactor xrandrHeads option

    Using invalid module options in the submodule isn't very nice, because
    it doesn't give very useful errors in case of type mismatch, also we
    don't get descriptions of these options as they're effecively
    nonexistent to the module system. Another downside of this is that
    merging of these options isn't done correctly as well (eg. for
    types.lines).
    
    So we now have proper submodules for each xrandrHead and we also use
    corcedTo in the type of xrandrHeads so that we can populate the
    submodule's "output" option in case a plain string is defined for a list
    item.
    
    Instead of silently skipping multiple primary heads, we now have an
    assertion, which displays a message and aborts configuration evaluation
    appropriately.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 24, 2017
Commits on Apr 23, 2017
  1. wine-staging: Fix SHA256 hash

    In c6b3c66, the unstable version has
    been bumped to 2.6.
    
    Unfortunately the staging source is re-using the version attribute from
    the unstable source and thus has been bumped as well.
    
    I have built wineStaging on x86_64-linux and it now succeeds.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Cc: @FRidh
    aszlig committed Apr 23, 2017
  2. nixos: Add a VM test for the SLiM display manager

    This is currently our default display manager, so I'm adding this to the
    "tested" job as well to ensure we don't ship broken revisions where X is
    most likely not working.
    
    The test uses a custom SLiM theme that's specifically tailored for good
    OCR results (mainly white background and black fonts without anything
    else), because our default NixOS theme has a very small contrast between
    background and fonts in some places.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 23, 2017
  3. nixos/slim: Implement logging to journal

    The main change here is a patch of SLiM to tread a log file of
    /dev/stderr specially in that it now uses std::cerr instead of a file
    for logging.
    
    This allows us to set the logfile to stderr in NixOS for the generated
    SLiM configuration file and we now get logging to the systemd journal.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 23, 2017
Commits on Apr 19, 2017
  1. nixos/systemd-boot-builder: Don't write .pyc files

    This has surfaced since d990aa7.
    
    The "simpleUefiGummiboot" installer test fails since this commit,
    because that commit introduced a small check to verify whether the store
    was altered.
    
    While installing NixOS for the first time, the store is usually in
    /mnt/nix/store and without the read-only bind mount that's preventing
    programs from altering the store.
    
    So after nixos-install is done creating the system closure and setting
    it as the active system profile, the bootloader is written from the
    closure inside the chroot. The systemd-boot-builder is invoked during
    this step, which adds .pyc files for various Python modules of the
    Python 3 store path, which in turn invalidates the hash of the Python 3
    store path itself.
    
    At the time the system is booted up again, the nix-store is verified and
    fails with something like this:
    
    path /nix/store/zvm545rqc4d97caqq9h7344bnd06jhzb-python3-3.5.3 was
    modified! expected hash
    b2c975f4b8d197443fbb09690fb3f6545e165dd44c9309d7d6df2fce0579ebeb, got
    bccca19f39c9d26d857ccf1fb72818b2b817967e6d497a25a1283e36ed0acf01
    
    Running the interpreter with the -B argument prevents Python from
    writing those byte code files:
    
    https://docs.python.org/3/using/cmdline.html#cmdoption-B
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 19, 2017
  2. vlc: Fix build for Qt >= 5.7.0

    This basically does something similar than the AUR build:
    
    https://aur.archlinux.org/packages/vlc-qt5/
    
    On our side, all there is to do is to force compiling using C++11 mode
    and use a patch that the AUR package took from the following upstream
    patchwork URL:
    
    https://patches.videolan.org/patch/14061/
    
    Instead of passing CXXFLAGS to the configure script, I'm using sed here
    to make sure we don't override flags figured out by configure.
    
    For example if ./configure is used with CXXFLAGS=-std=c++11 appended or
    prepended, we have something like:
    
    ... -I../include   -std=c++11 -Wall -Wextra -Wsign-compare ...
    
    While if we don't do that at all, we have something like:
    
    ... -I../include   -g -O2 -Wall -Wextra -Wsign-compare ...
    
    Another way would be to use NIX_CFLAGS_COMPILE, but that would affect
    even compilation of C code and thus resulting in a bunch of warnings
    like this:
    
    cc1: warning: command line option '-std=c++11' is valid for C++/ObjC++
                  but not for C
    
    So with our approach the flags during build look much better:
    
    ... -I../include   -std=c++11 -g -O2 -Wall -Wextra -Wsign-compare ...
    
    Another thing I've changed is that the vlc_qt5 attribute in
    all-packages.nix now uses the latest Qt 5 version, because the build for
    Qt >= 5.7.0 is now no longer broken.
    
    I've also ordered the preConfigure attribute before the configureFlags
    attribute, because it makes more sense in terms of context (pre ->
    configure -> post).
    
    Tested by building on x86_64-linux with libsForQt56.vlc, libsForQt58.vlc
    and vlc (the Qt 4 version, just to be sure I didn't accidentally break
    it).
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Cc: @ttuegel
    aszlig committed Apr 19, 2017
Commits on Apr 11, 2017
  1. Revert "sddm: Fix test."

    This reverts commit 0a6a063.
    
    The commit replaced the text to search for from ALICE to BOB, because
    our OCR detection only caught "BOB FOOBAR" but missed "ALICE FOOBAR"
    completely.
    
    With the improvements to our OCR system this no longer is the case and
    the test passes successfully with this reverted.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    Cc: @shlevy
    aszlig committed Apr 11, 2017
  2. nixos/testing: Improve quality of OCR

    First of all, we're now using ImageMagick to improve the screenshot so
    that Tesseract has an esier time to recognize the text. The resulting
    image of this post-processing is a scaled up black-and-white version
    with the backgrounds almost entirely removed and the text edges a bit
    blurred, so the screen shots now more or less resemble an image from a
    scanner rather. This is what Tesseract is trained for by default.
    
    As mentioned in the previous commit we now also use Tesseract 4, which
    further improves the quality of text recognition.
    
    I've spent countless hours just to test different postprocessing
    variants and testing what works best for our tests and this is the one
    that worked best so far. It's certainly not perfect and I'd like to
    avoid the scaling step but we're way better off than before.
    
    In addition to this, the OCR process is now done without an intermediate
    file, solely using pipes.
    
    I've tested this using the following VM tests which have OCR enabled:
    
     * nixos/tests/chromium.nix -A stable
     * nixos/tests/emacs-daemon.nix
     * nixos/tests/installer.nix -A luksroot
     * nixos/tests/lightdm.nix
     * nixos/tests/plasma5.nix
     * nixos/tests/sddm.nix
    
    All of the tests still succeed and comparing some of the recognition
    results to the earlier results it now also detects a lot more text than
    before this commit.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 9, 2017
  3. tesseract: Package version 4.x from Git master

    Tesseract 4 has got a new long short-term memory neural networking based
    OCR engine which really helps a lot in terms of accuracy and our VM
    tests.
    
    I ran the new version across a bunch of different screenshots and
    comparing the results to the 3.x branch and it really makes a big
    difference, especially with various font rendering settings.
    
    The only downside of this is that version 4 hasn't been released yet and
    is in alpha state right now, but it will eventually get there and the
    only solutions that came into my mind sticking to version 3 were really
    sub-par:
    
     * Use several passes with different color negation on the screenshots.
     * Train Tesseract 3 specifically for screenshots. This is sub-par
       because we'd need to do it for Tesseract 4 from scratch again.
     * Change the test systems so that it specifically uses *only* OCR an
       font when displaying. I've actually tried this but this also isn't
       accurate enough with our default font rendering setup.
     * Turn off special font rendering settings for our tests. In
       conjunction with changing to an OCR font this might work but it won't
       catch all the cases, because applications might use their own font
       rendering.
    
    Given that version 4 is faster[1] when it comes to OCR detection and also
    the points just mentioned I think even using the alpha version just for
    tests isn't going to hurt anybody.
    
    [1]: https://github.com/tesseract-ocr/tesseract/wiki/4.0-Accuracy-and-Performance
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 11, 2017
  4. pyocr: Add patch to support Tesseract 3.05.00

    This is from the commit message I've written for the upstream pull
    request (openpaperwork/pyocr#62):
    
        This is a bit more involved, because Tesseract 3.05.00 comes not
        only with improvements but also with a few quirks we need to deal
        with.
    
        The first quirk is that the order arguments of the `tesseract'
        command now matters and the list of configurations has to be at the
        end of the command line. So we add a new attribute tesseract_flags
        to the BaseBuilder class that contains a list of all the flags to
        pass to `tesseract', the tesseract_configs attribute however remains
        pretty much the same but now only really contains a list of configs
        instead of being mixed with flag arguments.
    
        Another quirk has to do with Leptonica >= 1.74 which Tesseract
        3.05.00 now requires. Leptonica has special handling of files that
        reside in /tmp and assumes that it's an internal temporary file of
        Leptonica. In order to deal with it, we now run Tesseract in a
        temporary directory, which contains the input/output files and use
        the relative name of these files because Leptonica only searches for
        path names beginning with /tmp.
    
        Fortunately the last item we need to address is not really a quirk,
        but an API change. In Tesseract 3.05.00 there is now a new function
        called TessBaseAPIDetectOrientationScript(), which doesn't fill the
        OSResults object anymore but now allows to pass the values we're
        interested in directly by reference. We need to use this new
        function because the old function TessBaseAPIDetectOS() now *always*
        returns false.
    
    I've tested this specifically on NixOS and in conjunction with Paperwork
    (the only package that's using pyocr so far) and all the tests of the
    dependency chain are now succeeding. However, I didn't do manual tests
    of Paperwork though.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 9, 2017
  5. pyocr: 0.4.4 -> 0.4.6

    Upstream changes for version 0.4.5:
    
     * Clean up exceptions raised when OCR fails:
     * Now, all tools raise only exceptions inheriting from
       pyocr.PyocrException
     * There is now one and only one TesseractError (shared between
       pyocr.libtesseract and pyocr.tesseract)
    
    Upstream changes for version 0.4.6:
    
     * hOCR outputs: Generate valid XHTML files
    
    The full upstream changelog can be found at:
    
    https://github.com/jflesch/pyocr/blob/master/ChangeLog
    
    Note that because of the version bump of Tesseract neither version 0.4.4
    nor version 0.4.6 succeed to build, so we need to fix this up soon.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 9, 2017
  6. tesseract: 3.04.01 -> 3.05.00

    Upstream changelog:
    
     * Made some fine tuning to the hOCR output.
     * Added TSV as another optional output format.
     * Fixed ABI break introduced in 3.04.00 with the AnalyseLayout()
       method.
     * text2image tool - Enable all OpenType ligatures available in a font.
       This feature requires Pango 1.38 or newer.
     * Training tools - Replaced asserts with tprintf() and exit(1).
     * Fixed Cygwin compatibility.
     * Improved multipage tiff processing.
     * Improved the embedded pdf font (pdf.ttf).
     * Enable selection of OCR engine mode from command line.
     * Changed tesseract command line parameter '-psm' to '--psm'.
     * Added new C API for orientation and script detection, removed the old
       one.
     * Increased minimum autoconf version to 2.59.
     * Removed dead code.
     * Fixed many compiler warning.
     * Fixed memory and resource leaks.
     * Fixed some issues with the 'Cube' OCR engine.
     * Fixed some openCL issues.
     * Added option to build Tesseract with CMake build system.
     * Implemented CPPAN support for easy Windows building.
    
    The upstream URL of the change log is:
    
    https://github.com/tesseract-ocr/tesseract/releases/tag/3.05.00
    
    Tested by building against the following packages that directly depend
    on it:
    
     * vapoursynth (with ocrSupport = true)
     * pyocr (fails)
     * vobsub2srt
    
    Also tested against the following NixOS VM tests that have OCR enabled:
    
     * nixos/tests/chromium.nix -A stable
     * nixos/tests/emacs-daemon.nix
     * nixos/tests/installer.nix -A luksroot
     * nixos/tests/lightdm.nix
     * nixos/tests/plasma5.nix
     * nixos/tests/sddm.nix
    
    All of the packages and tests except pyocr build/succeed on
    x86_64-linux.
    
    Fixing pyocr is outside of the scope of this commit and will happen very
    soon.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 8, 2017
  7. leptonica: 1.72 -> 1.74.1

    The changes are a bit too big to include it here in the commit message,
    so if you want the details of what changed, please visit this URL:
    
    http://leptonica.org/source/version-notes.html
    
    I have also provided openjpeg, giflib and libwebp as dependencies so
    that Leptonica is able to read/write those file formats.
    
    Additionally I've added a patch that uses pkgconfig to resolve all
    dependencies (except giflib), because unlike AC_CHECK_LIB() the
    PKG_CHECK_MODULES() macro defines *_LIBS variables to include the linker
    search path.
    
    Unfortunately that patch alone is not enough, because the *_LIBS
    variable are substituted by the upstream configure.ac to *not* include
    the linker search paths, so we need to remove the AC_SUBST() calls
    within PKG_CHECK_MODULES().
    
    The only dependency that's not yet using PKG_CHECK_MODULES() is giflib,
    because giflib doesn't have a pkg-config description file, therefore
    we're using substituteInPlace to insert the linker search path after the
    lept.pc file was generated by configure.
    
    Another thing that we no longer need is the dependency on libpng version
    1.2, because Leptonica now also works with more recent libpng versions.
    
    Tested by building the package itself and also the following packages
    that immediately depend on leptonica:
    
     * k2pdfopt
     * tesseract
     * jbig2enc
    
    All of these packages succeeded to build on x86_64-linux.
    
    The main reason why I'm bumping Leptonica to version 1.74.1 is that we
    need at least version 1.74 to bump Tesseract to the latest upstream
    version.
    
    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
    aszlig committed Apr 7, 2017