QA/Bibisect/Windows

    From The Document Foundation Wiki
    < QA‎ | Bibisect

    This page provides information about using our Bibisect repositories on computers running MS Windows.

    Introduction

    Our bibisect repositories were originally built on Ubuntu 64bit machines, and most of our repositories still target GNU/Linux systems. We now have a few repositories built for Windows, and are adding more in time.

    If you're testing cross-platform and wish to test Windows bugs on a different OS, one option is to set up a virtual machine running macOS (see #VM below).

    Limitations

    Unlike GNU/Linux and macOS, there are some speed issues with Git running on Windows. The speed of git may somewhat influence the speed at which one can switch between LibreOffice versions while bibisecting, but will not affect the operation of LibreOffice or the speed of the program.

    Choosing a Bibisect repository

    As you can see in the #Versions table below, there are many different bibisect repositories covering different commit ranges. If you find a bug in LibreOffice 4.4.4, you'll want to download the bibisect-win32-5.0 repository, as it covers: "The range from 4.4 branch point to 5.0 branch point"

    It's possible that the bug in LO 4.4.4 predates the 4.4 branch point, at which point you'll want to download an additional (earlier) bibisect repository. We maintain separate bibisect repositories to both speed up the use of the repository and to make it possible to download just one piece of the commit range.

    Don't have a bug to bibisect yet? Find documented regressions in the list here.

    Setting up Environment

    Before we download the bibisect repository, let's make sure your machine has the right software installed. For all OSes, you'll need to install git. On Windows, we suggest that you install Git for Windows. When installing Git for Windows, it is a good idea to select the option ”Checkout as-is, commit Unix-style line endings” because this is required, if you ever get into LibreOffice development.

    Previously, we recommended Cygwin, but running git under it is rather slow. Note that you can't mix Cygwin and Git for Windows when dealing with a specific repository.

    Note: msvcr120.dll Visual C++ Redistributable Packages for Visual Studio 2013 is required for LibreOffice 5.0 or higher.

    Downloading Bibisect Repository

    Because we are a distributed, community project, we have created and hosted bibisect repositories on different servers. Although the exact procedures for downloading the repositories may differ slightly, most repositories may be retrieved via regular download from a web server or directly via git.

    In bibisect-win32-5.1, due to the backslash (possibly related to this issue) you might get this error:

    error: invalid path 'instdir/program/python-core-3.3.3/lib\__pycache__/quopri.cpython-33.pyc'
    fatal: unable to checkout working tree
    warning: Clone succeeded, but checkout failed.

    You have to do this config change:

    git config core.protectNTFS false

    and then

    git reset --hard

    From a Web Server

    For inactive repositories we have git bundles to download and clone locally. Individual instructions are available on each repository webpage, such as https://bibisect.libreoffice.org/win32-5.0

    Download command to use with PowerShell on Windows:

    Invoke-WebRequest -Uri https://bibisect.libreoffice.org/win32-x.x.git-bundle -OutFile win32-x.x.git-bundle -Resume

    Using Git

    Live repositories are available from our Bibisect hosting. You may clone a bibisect repository as you would any other git repository:

    git clone https://bibisect.libreoffice.org/win32-5.0.git

    Please be aware that the original download may be several gigabytes, so please make sure you're on a fast Internet connection and are reasonably certain that you will not experience network interruption. Because of the mechanics of git repositories, if the initial clone is interrupted, I believe that you'll have to start the clone all over again :-( Otherwise you can always download the bundle and refresh later. Check the instruction on the repository webpage for details.

    After the first clone, further updates to the git repository will be smaller, and will depend on how frequently the Tinderbox adds commits to the repository and how many days you wait before updating your repository.

    Update your repository with

    git checkout master && git pull

    Bibisecting the Bug

    With a bug and test procedures in hand, and a downloaded and unpacked git repository ready to go, it's finally time to start bibisecting!

    Open a terminal, cd to your git repository, and checkout the latest commit:

    git checkout latest
    instdir/program/soffice

    If "latest" tag does not exist, you can use "master". If no tags exist in the repository, you can check the instructions for creating them.

    If the bug does not appear in that version, put a comment on the bug saying "Regression does not appear in latest version of <name of bibisect repository>, e.g. bibisect-win32-5.0 and must be younger" and add bibisected and bibisectedNewer to the Keywords. You've now completed your bibisection! If there is a newer bibisect repository available, please consider downloading it and testing the bug again.

    If the bug does appear in the latest version, continue.

    After testing with the latest build, we next test with the oldest build included in the repo and check that the regression is not there:

    git checkout oldest
    instdir/program/soffice

    If the bug is already present at this point, it is not a regression in the range covered by the repo, but an even older bug.

    First, put a comment on the bug saying "Regression does appear in oldest version of <name of bibisect repository> and must be older"

    If you are using the bibisect-win32-5.0 repo, then:

    1. Add the word preBibisect to the Keywords, and
    2. Set the version of LibreOffice in the bug report to 5.0.0.0.alpha0+ Master

    If you are using another (newer) bibisect repo, please try downloading and testing with bibisect-win32-5.0.

    If the bug does not appear in the oldest version, this means it is a regression in the range covered by the download and we can corner it down very well (hooray!). We will now leverage one of git's built-in tools to perform a binary search:

    git bisect start latest oldest

    Then repeat these commands:

    instdir/program/soffice
    git bisect good # if the bug is not there
    git bisect bad  # if the bug is there

    NB: From time to time, the currently check-out version of LibreOffice may fail to start. This can happen because, although the bibisect repo includes only successful builds, a successful build is not guaranteed to really work. In those cases, you'll want to skip a particular build:

    git bisect skip # if you cannot get far enough to try the bug

    After several repetitions, git will print out something like this:

        9625329ea5a7e3e8475cd21c07726beec20573bd is the first bad commit
        commit 9625329ea5a7e3e8475cd21c07726beec20573bd
        Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
        Date:   Thu Dec 8 12:29:59 2011 +0100
    
            source-hash-2d19e9bb07ccff3134f855812dddfda5c07b1fe4
           
            commit 2d19e9bb07ccff3134f855812dddfda5c07b1fe4
            Author:     Jan Holesovsky <kendy@suse.cz>
            AuthorDate: Wed Nov 16 14:17:03 2011 +0100
            Commit:     Jan Holesovsky <kendy@suse.cz>
            CommitDate: Wed Nov 16 14:21:33 2011 +0100
           
                Kill one usage of chrel.sed to fix build.
    

    We'll want to append this useful information to the bug report. (The source-hash-2d19e9bb07ccff3134f855812dddfda5c07b1fe4 line is the important piece, but please copy-in the entire message to a new comment).

    With our testing complete, please add the tag bibisected to the Keywords so that this bug will no longer appear in the list of bugs that need bibisecting.

    Adding missing tags for oldest and latest commits

    Sometimes a bibisect repo does not have any tags. In this situation you can git bisect start using the latest and oldest commit hashes, but you might find it convenient to create tags for them. Sometimes only the latest tag is missing in which case you can use "master".

    Run

    git log

    Copy the commit hash from the topmost commit and use it for the tagging command (replace example hash with what you've got in your clipboard):

    git tag latest e3f920c8fe63c14ebb83ca9c4a86247043b054df

    Run

    git log --reverse

    Again, copy the topmost commit hash and:

    git tag oldest 633bfe84509c1953415e5dd0f564098a16890131

    Now you can list your tags with:

    git tag -l

    Tutorial

    See a step-by-step bibisect tutorial (which includes a video in which Windows and PowerShell are used).

    VM

    Testing Windows bugs inside a VM is a great way to leverage the large number of bibisect repositories available for this platform if you're using macOS or GNU/Linux as your host OS.

    Suggested setup:

    • Virtualization Software: VirtualBox
    • Guest OS: Windows 7 or later
    • (Virtual) Hard drive: at least 40GB (some bibisect repositories are over 10GB each)

    Versions

    Built on Version Maintainer Commit range from Commit range to Commits in range Number of builds Download links Download size Comments
    Windows 32bit
    bibisect-win32-4.3
    Cloph fc8f44e8 2d13cf60 12910+672 builds TDF: repo 8.42GiB libreoffice-4-2-branch-point up to libreoffice-4-3-branch-point. Fetch commit notes: git fetch origin refs/notes/commits:refs/notes/commits Do regular bibisect with tag oldest and latest, and if you end up on a commit that has a note attached, do as it says (continue between the tags fixup_oldest and fixup_latest)
    Windows 32bit
    bibisect-win32-4.4
    Cloph dea4a3b9 3f94c9e9 1010 builds TDF: repo 3.71GiB libreoffice-4-3-branch-point up to libreoffice-4-4-branch-point with an interval of ~8 commits.
    Windows 32bit
    bibisect-win32-5.0
    Norbert Thiebaud 57d6b92b 87ac0b1e 8652 builds TDF: repo 4.87GiB libreoffice-4-4-branch-point to libreoffice-5-0-branch-point and then libreoffice-5-0
    Windows 32bit
    bibisect-win32-5.1
    Norbert Thiebaud ab465b90 5616d22b 9383 builds TDF: repo 5.37GiB libreoffice-5-0-branch-point to libreoffice-5-1-branch-point and then libreoffice-5-1
    Windows 32bit
    bibisect-win32-5.2
    Norbert Thiebaud 49c2b980 e5ebc3d7 8819 builds TDF: repo 4.58GiB libreoffice-5-1-branch-point to libreoffice-5-2-branch-point and then libreoffice-5-2
    Windows 32bit
    bibisect-win32-5.3
    Norbert Thiebaud 5b168b3f e7738ab7 8039 builds TDF: repo 4.34GiB libreoffice-5-2-branch-point to libreoffice-5-3-branch-point and then libreoffice-5-3
    Windows 32bit
    bibisect-win32-5.4
    Xisco Fauli 4136757b 534fd9aa 7647 builds TDF: repo 3.30GiB libreoffice-5-3-branch-point to libreoffice-5-4-branch-point and then libreoffice-5-4
    Windows 32bit
    bibisect-win32-6.0
    Xisco Fauli 9feb7f70 c30963b8 8608 builds TDF: repo 3.98GiB libreoffice-5-4-branch-point to libreoffice-6-0-branch-point and then libreoffice-6-0
    Windows 32bit
    bibisect-win32-6.1
    Xisco Fauli 6eeac353 5b3765f4 8845 builds TDF: repo 5.05GiB libreoffice-6-0-branch-point to libreoffice-6-1-branch-point and then libreoffice-6-1
    Windows 32bit
    bibisect-win32-6.2
    Xisco Fauli 3a801799 5f01fe15 8553 builds TDF: repo 6.84GiB libreoffice-6-1-branch-point to libreoffice-6-2-branch-point and then libreoffice-6-2
    Windows 32bit
    bibisect-win32-6.3
    Xisco Fauli a20a2d7e 13152ad8 7492 builds TDF: repo 7.25GiB libreoffice-6-2-branch-point to libreoffice-6-3-branch-point and then libreoffice-6-3
    Windows 64bit
    bibisect-win64-6.4
    Xisco Fauli c98b1f1c 188ddcd4 6894 builds TDF: repo 10.5GiB libreoffice-6-3-branch-point to libreoffice-6-4-branch-point and then libreoffice-6-4
    Windows 64bit
    bibisect-win64-7.0
    Xisco Fauli 9bc848cf 2891e91a 6816 builds TDF: repo 13.13GiB libreoffice-6-4-branch-point to libreoffice-7-0-branch-point and then libreoffice-7-0
    Windows 64bit
    bibisect-win64-7.1
    Xisco Fauli 574c5709 a94b5827 7013 builds TDF: repo 11.81GiB libreoffice-7-0-branch-point to libreoffice-7-1-branch-point and then libreoffice-7-1.
    Windows 64bit
    bibisect-win64-7.2
    Xisco Fauli 738bcf5e ffa09959 7877 builds TDF: repo 11.65GiB libreoffice-7-1-branch-point to libreoffice-7-2-branch-point and then libreoffice-7-2.
    Windows 64bit
    bibisect-win64-7.3
    Xisco Fauli ff2ba77f e1ad83dd 6997 builds TDF: repo 11.25GiB libreoffice-7-2-branch-point to libreoffice-7-3-branch-point and then libreoffice-7-3.
    Windows 64bit
    bibisect-win64-7.4
    Xisco Fauli 436f14c2 f8ba7c6f 7788 builds TDF: repo 9.83GiB libreoffice-7-3-branch-point to libreoffice-7-4-branch-point and then libreoffice-7-4.
    Windows 64bit
    bibisect-win64-7.5
    Xisco Fauli c94961c6 TDF: repo 7.86 GiB libreoffice-7-4-branch-point to libreoffice-7-5-branch-point and then libreoffice-7-5.
    Windows 64bit
    bibisect-win64-7.6
    Xisco Fauli 1c629ca0 TDF: repo libreoffice-7-5-branch-point to libreoffice-7-6-branch-point and then libreoffice-7-6.
    Windows 64bit
    bibisect-win64-24.2
    Xisco Fauli 6f227b0d TDF: repo libreoffice-7-6-branch-point to libreoffice-24-2-branch-point and then libreoffice-24-2.
    Windows 64bit
    bibisect-win64-24.8
    Xisco Fauli 898d5d47 TDF: repo libreoffice-24-2-branch-point to latest master.
    Releases
    releases
    Xisco Fauli 321 releases TDF: repo 17+ GB Release builds of OOo 3.3.0, LO 3.3.0 - LO 6.4.7.2. To bisect versions 4.2 and older, you can't use Windows Git. Instead, you need to use Cygwin's git package. To be sure, check in Cygwin shell that git --version does not include the string "windows". You can use Cygwin's Git from PowerShell, if you want to.

    Testing Versions

    These are for testing purposes only.

    Build on Version Maintainer Auto-fed? Commit range from Commit range to Commits in range Number of builds Download links Download size Bibisected bugs in range Comments
    WIN
    win 2013-12-13_2013-12-19
    Cloph? No ? ? ? ? TDF: repo 3.5GB not active, for testing only


    How to fix 'instdir/cache/opengl_device.log' error

    This happens with bibisect-win32-6.2 due to an untracked file

    error: The following untracked working tree files would be overwritten by checkout:
            instdir/cache/opengl_device.log
    Please move or remove them before you switch branches.
    Aborting
    

    Fix:

    rm instdir/cache/opengl_device.log