1. 09 Dec, 2020 2 commits
  2. 01 Dec, 2020 1 commit
  3. 25 Nov, 2020 2 commits
  4. 24 Nov, 2020 2 commits
    • Julian Andres Klode's avatar
      apt_inst.DebFile: Avoid reference cycle with control,data members · a43948f6
      Julian Andres Klode authored
      apt_inst.DebFile provides two members `data` and `control` for
      easy access to those tarballs. Each of those members stores a
      reference to the DebFile as its owner:
              control ----\        |
                           -> deb -|
              data    ----/        |
      This means that whenever a DebFile is successfully constructed,
      and no longer needed, it won't be collected until the GC runs,
      which is bad, as the DebFile holds an open FileFd.
      Introduce a __FileFd wrapper that holds the FileFd and becomes
      the owner of both control and data, and replaces the direct use
      of the FileFd in ArArchive/DebFile:
              control ----\                    \
                           -> __FileFd <- deb -|
              data    ----/                    /
      This avoids the reference cycle, ensuring the memory and file
      descriptor are released by the reference counter as soon as
      the reference count drops to 0.
      A future version should move `apt_inst.__FileFd` to `apt_pkg.FileFd`
      and expose all the methods, such that people can make use of FileFd's
      extensive compression support.
      We have a similar cycle in TagFile that we have yet to address,
      the problem there is arguably more frustrating, as the buffer
      I believe is stored inside the TagFile, and that's really shared
      between the TagSection objects.
      This is related to LP: #1899193 and CVE-2020-27351, but an additional
      hardening measure - the fix for those bugs was for more direct leaks.
    • Julian Andres Klode's avatar
      File descriptor leaks in ArArchive, DebFile, TagFile · 8d53d2bc
      Julian Andres Klode authored
      Fix various file descritor, and memory leaks in ArArchive, DebFile,
      and TagFile by introducing a new PyApt_UniqueObject smart pointer
      that is like a unique_ptr, but backportable to older releases, and
      automatically clears subobjects, so objects with cycles like DebFile
      and TagFile will be released on error paths.
      LP: #1899193
  5. 28 Oct, 2020 1 commit
  6. 27 Oct, 2020 6 commits
  7. 15 Oct, 2020 3 commits
  8. 14 Oct, 2020 1 commit
  9. 30 Sep, 2020 2 commits
  10. 29 Sep, 2020 6 commits
    • Dave Jones's avatar
      Stop mypy whinging · 74ae738d
      Dave Jones authored
      Fix a trivial "unused comment" complaint from mypy
    • Dave Jones's avatar
      Use the cpp domain instead of c · a44b9f10
      Dave Jones authored
      Squash lots of warnings about improper C syntax by switching the docs
      to use the sphinx cpp domain instead (which also required switching
      c:data definitions to cpp:var as the latter domain lacks the "data"
    • Dave Jones's avatar
      Fix highlightlang warnings · a4b8e3bf
      Dave Jones authored
      The highlightlang directive was deprecated in favour of highlight.
      Also fix a warning about parsing a code-block (which is actually an
      e-mail snippet).
    • Dave Jones's avatar
      Fix duplicate definition warning · 2a43f0b2
      Dave Jones authored
      The HashStringList definition is already automatically including
      :members: in its output, so the autoattribute:: redundantly re-defines
      the "usable" attribute, leading to the warning.
    • Dave Jones's avatar
      Fix warning about contents doc · 6b1b70ef
      Dave Jones authored
      At some point in its history, sphinx switched from using contents.rst to
      index.rst as the master document and now warns that if projects aren't
      using index.rst they need to explicitly set master_doc in their
    • Dave Jones's avatar
      Fix ftbfs with sphinx 3.x · dee372b2
      Dave Jones authored
      The defindex.html template has been obsolete for yonks and has been
      removed, unremoved, deprecated, and finally (definitely?) removed as
      of sphinx 3. See https://github.com/sphinx-doc/sphinx/issues/2986 for
      the sordid history :)
  11. 25 Apr, 2020 5 commits
  12. 20 Apr, 2020 3 commits
    • Julian Andres Klode's avatar
      Release 2.1.2 · f025ba4f
      Julian Andres Klode authored
    • Julian Andres Klode's avatar
      Remove Python 2 and old pyflakes hacks · c18d0dc2
      Julian Andres Klode authored
      This includes, but might not be limited to:
      - explicit version checks
      - try/except ImportError wrapping of typing imports
      - referencing imported types like `Type  # pyflakes` because
        older pyflakes stumbled upon them only being used in `# type`
    • Julian Andres Klode's avatar
      Use pybuild to split out -dbg stuff, avoid .install/.files · a4fe0b97
      Julian Andres Klode authored
      Doing this via pybuild is somewhat nasty, as it does not
      allow us to move all the common files into the common
      package itself, so we have to hack around that.
      I'd like to more declaratively state which files belong
      into common, or for pybuild to figure that out itself
      (it ain't hard), but meh, what can I do?
      This fixes the problem where the wildcard that was
      matching debug symbols "d-*" (formerly dm-*) also is
      matching kfreebsd-, and hence caused FTBFS on freebsd.
      Closes: #958118
  13. 16 Apr, 2020 6 commits