)]}'
{"tools/fixup_stuff.sh":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"65975340ec6997b16a20a8db8136be81c4aa6ef3","unresolved":false,"context_lines":[{"line_number":95,"context_line":"# Python Packages"},{"line_number":96,"context_line":"# ---------------"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"# get_package_path python-package    # in import notation"},{"line_number":99,"context_line":"function get_package_path {"},{"line_number":100,"context_line":"    local package\u003d$1"},{"line_number":101,"context_line":"    echo $(python -c \"import os; import $package; print(os.path.split(os.path.realpath($package.__file__))[0])\")"},{"line_number":102,"context_line":"}"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Pre-install affected packages so we can fix the permissions"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3fa7e38b_628a9a65","side":"PARENT","line":102,"range":{"start_line":98,"start_character":0,"end_line":102,"end_character":1},"updated":"2020-01-24 18:17:20.000000000","message":"in fact we could drop this (no raw python!)...","commit_id":"f9a6986b90f896f2c0d122ae2572411f9c13f506"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"3abfb4c9c95f5f2ac5b6f07a417fd84b11b4290a","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"# Pre-install affected packages so we can fix the permissions"},{"line_number":106,"context_line":"# These can go away once we are confident that pip 1.4.1+ is available everywhere"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"function fixup_python_packages {"},{"line_number":109,"context_line":"    # Fix prettytable 0.7.2 permissions"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3fa7e38b_823eb6b3","side":"PARENT","line":106,"range":{"start_line":106,"start_character":47,"end_line":106,"end_character":56},"updated":"2020-01-24 18:08:26.000000000","message":"lolz","commit_id":"f9a6986b90f896f2c0d122ae2572411f9c13f506"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e0ff239b3199cdeca5ff2d44bfd9a4163002bb07","unresolved":false,"context_lines":[{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"# All distro and package specific hacks go in here"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"# - prettytable 0.7.2 permissions are 600 in the package and"},{"line_number":10,"context_line":"#   pip 1.4 doesn\u0027t fix it (1.3 did)"},{"line_number":11,"context_line":"#"},{"line_number":12,"context_line":"# - httplib2 0.8 permissions are 600 in the package and"},{"line_number":13,"context_line":"#   pip 1.4 doesn\u0027t fix it (1.3 did)"},{"line_number":14,"context_line":"#"},{"line_number":15,"context_line":"# - Fedora:"},{"line_number":16,"context_line":"#   - set selinux not enforcing"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3fa7e38b_027f26de","line":13,"range":{"start_line":9,"start_character":0,"end_line":13,"end_character":36},"updated":"2020-01-24 19:02:27.000000000","message":"also this for followup, heh","commit_id":"8b6cbd197fbde5653fc898e8c8ea24431665f48d"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"65975340ec6997b16a20a8db8136be81c4aa6ef3","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        fi"},{"line_number":139,"context_line":"    fi"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    if  [[ \"$os_VENDOR\" \u003d\u003d \"Fedora\" ]] \u0026\u0026 [[ \"$os_RELEASE\" -ge \"22\" ]]; then"},{"line_number":142,"context_line":"        # requests ships vendored version of chardet/urllib3, but on"},{"line_number":143,"context_line":"        # fedora these are symlinked back to the primary versions to"},{"line_number":144,"context_line":"        # avoid duplication of code on disk.  This is fine when"},{"line_number":145,"context_line":"        # maintainers keep things in sync, but since devstack takes"},{"line_number":146,"context_line":"        # over and installs later versions via pip we can end up with"},{"line_number":147,"context_line":"        # incompatible versions."},{"line_number":148,"context_line":"        #"},{"line_number":149,"context_line":"        # The rpm package is not removed to preserve the dependent"},{"line_number":150,"context_line":"        # packages like cloud-init; rather we remove the symlinks and"},{"line_number":151,"context_line":"        # force a re-install of requests so the vendored versions it"},{"line_number":152,"context_line":"        # wants are present."},{"line_number":153,"context_line":"        #"},{"line_number":154,"context_line":"        # Realted issues:"},{"line_number":155,"context_line":"        # https://bugs.launchpad.net/glance/+bug/1476770"},{"line_number":156,"context_line":"        # https://bugzilla.redhat.com/show_bug.cgi?id\u003d1253823"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        base_path\u003d$(get_package_path requests)/packages"},{"line_number":159,"context_line":"        if [ -L $base_path/chardet -o -L $base_path/urllib3 ]; then"},{"line_number":160,"context_line":"            sudo rm -f $base_path/{chardet,urllib3}"},{"line_number":161,"context_line":"            # install requests with the bundled urllib3 to avoid conflicts"},{"line_number":162,"context_line":"            pip_install --upgrade --force-reinstall requests"},{"line_number":163,"context_line":"        fi"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    fi"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    # Since pip10, pip will refuse to uninstall files from packages"},{"line_number":168,"context_line":"    # that were created with distutils (rather than more modern"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3fa7e38b_e2ebea0d","line":165,"range":{"start_line":141,"start_character":0,"end_line":165,"end_character":6},"updated":"2020-01-24 18:17:20.000000000","message":"... by also dropping this (weird if still relevant but needs testing first)","commit_id":"8b6cbd197fbde5653fc898e8c8ea24431665f48d"}]}
