1. 24 Jul, 2019 3 commits
  2. 21 Jul, 2019 10 commits
    • Felix Lechner's avatar
      Remove five tag descriptions for tags not reproducible using dpkg-source. · 47454995
      Felix Lechner authored
      The old suite source is being converted to use standard tools. Some
      tags are then not testable because dpkg-source already catches the
      errors. These five tags could not be reproduced. They were deleted.
      
      The tags are now error messages. If anyone ever sees them, let's
      re-add the tags and use their packages in the test suite.
      
      Gbp-Dch: ignore
      47454995
    • Felix Lechner's avatar
      In checks/testsuite.{desc,pm}, convert three tags to non-recoverable program errors. · 4cb2b9e1
      Felix Lechner authored
      The three tags
      
        debian-tests-control-is-not-a-regular-file
        missing-runtime-tests-field
        syntax-error-in-debian-tests-control
      
      were found to be unreproducible using dpkg-source. They are considered
      untestable in Lintian when using standard tools. The tags were
      converted to non-recoverable errors that cause the program to exit.
      
      The tag messages are now error messages. If anyone ever sees them,
      let's re-add the tags and use their packages in the test suite.
      
      Gbp-Dch: ignore
      4cb2b9e1
    • Felix Lechner's avatar
      In checks/debian-source-dir.{desc,pm}, convert a tag to a non-recoverable program error. · 4e0b1ce6
      Felix Lechner authored
      The tag
      
        unknown-source-format
      
      was found to be unreproducible using dpkg-source. It is considered
      untestable in Lintian when using standard tools. The tag was converted
      to a non-recoverable error that causes the program to exit.
      
      The tag message is now an error message. If anyone ever sees it, let's
      re-add the tag and use their package in the test suite.
      
      Gbp-Dch: ignore
      4e0b1ce6
    • Felix Lechner's avatar
      In checks/control-file.{desc,pm}, convert a tag to a non-recoverable program error. · b86bcd51
      Felix Lechner authored
      The tag
      
        syntax-error-in-control-file
      
      was found to be unreproducible using dpkg-source. It is considered
      untestable in Lintian when using standard tools. The tag was converted
      to a non-recoverable error that causes the program to exit.
      
      The tag message is now an error message. If anyone ever sees it, let's
      re-add the tag and use their package in the test suite.
      
      Gbp-Dch: ignore
      b86bcd51
    • Felix Lechner's avatar
      Delete test debian-source-dir-unknown-source-format; tag cannot be reproduced using dpkg-source. · e01a8f86
      Felix Lechner authored
      The tag 'unknown-source-format' cannot be tested using standard tools.
      The conditions that would be necessary cause dpkg-source to abort with
      the message:
      
      dpkg-source: error: source package format '3.0 (unknown-format)' is invalid
      
      The issue arose when the test was converted to standard tools. (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      e01a8f86
    • Felix Lechner's avatar
      Delete test control-file-duplicate-field; tag cannot be reproduced using dpkg-source. · 00bd64fe
      Felix Lechner authored
      The tag 'syntax-error-in-control-file' cannot be tested using standard
      tools. The conditions that would be necessary cause dpkg-source to
      abort with the message:
      
      dpkg-source: error: syntax error in control-file-duplicate-field-1/debian/control at line 11: duplicate field Depends found
      
      The issue arose when the test was converted to standard tools. (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      00bd64fe
    • Felix Lechner's avatar
      Delete test control-file-syntax-error; tag cannot be reproduced using dpkg-source. · 769117ae
      Felix Lechner authored
      The tag 'syntax-error-in-control-file' cannot be tested using standard
      tools. The conditions that would be necessary cause dpkg-source to
      abort with the message:
      
      dpkg-source: error: syntax error in control-file-syntax-error-1/debian/control at line 11: line with unknown format (not field-colon-value)
      
      The issue arose when the test was converted to standard tools. (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      769117ae
    • Felix Lechner's avatar
      Delete test testsuite-control-syntax-error; tag cannot be reproduced using dpkg-source. · 4f019cb2
      Felix Lechner authored
      The tag 'syntax-error-in-debian-tests-control' cannot be tested using
      standard tools. The conditions that would be necessary cause
      dpkg-source to abort with the message:
      
      dpkg-source: error: syntax error in testsuite-control-syntax-error-1/debian/tests/control at line 1: line with unknown format (not field-colon-value)
      
      The issue arose when the test was converted to standard tools. (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      4f019cb2
    • Felix Lechner's avatar
      Delete test testsuite-control-not-file; tag cannot be reproduced using dpkg-source. · 9ae1abd7
      Felix Lechner authored
      The source tag 'debian-tests-control-is-not-a-regular-file' cannot be
      tested using standard tools. The conditions that would be necessary
      cause dpkg-source to abort with the message:
      
      dpkg-source: error: test control debian/tests/control is not a regular file
      
      The issue arose when the test was converted to standard tools.  (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      9ae1abd7
    • Felix Lechner's avatar
      Delete test testsuite-control-missing-test-field; tag cannot be reproduced using dpkg-source. · ff6a5fef
      Felix Lechner authored
      The source tag 'missing-runtime-tests-field' cannot be tested using
      standard tools. The conditions that would be necessary cause
      dpkg-source to abort with the message:
      
      dpkg-source: error: syntax error in testsuite-control-missing-test-field-1/debian/tests/control at line 1: block lacks either Tests or Test-Command fields
      
      The issue arose when the test was converted to standard tools.  (It
      previously used pattern substitution.) Since most people use standard
      tools, it makes little sense to pursue the test further.
      
      Removes the test. If there is no other way to test the tag, the tag
      may eventually also be removed from Lintian.
      
      Gbp-Dch: ignore
      ff6a5fef
  3. 20 Jul, 2019 18 commits
    • Felix Lechner's avatar
      Again, fix pipeline for stretch-backports by using older process facility in IO::Async. · 866f14b5
      Felix Lechner authored
      The open_process method to Loop was not available in IO::Async 0.71, which is
      the version in stretch. This uses the conventional, and perhaps clearer, way of
      explicitly creating an IO::Async::Process before adding it to the loop.
      
      Addresses two more instances of open_process that were in the code base before
      the changes to collections were accepted. The pipeline for stretch-backports
      may have been broken for a little while.
      
      Should fix the Jenkins pipeline for stretch-backports.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      866f14b5
    • Felix Lechner's avatar
      Fix pipeline for stretch-backports by using older process facility in IO::Async. · ee762627
      Felix Lechner authored
      The open_process method to Loop was not available in IO::Async 0.71,
      which is the version in stretch. This uses the conventional, and
      perhaps clearer, way of explicitly creating an IO::Async::Process
      before adding it to the loop.
      
      Should fix the Jenkins pipeline for stretch-backports.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      ee762627
    • Felix Lechner's avatar
      In collection/unpacked, replace routines based on IPC::Run with IO::Async. · 0ece177f
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      0ece177f
    • Felix Lechner's avatar
      In collection/src-orig-index, replace routines based on IPC::Run with IO::Async. · a4c3312b
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      a4c3312b
    • Felix Lechner's avatar
      In collection/override-file, make changes similar to other surrounding scripts. · 72179b6a
      Felix Lechner authored
      It did not have any IPC::Run related code that needed to be replaced
      with IO::Async. These changes simply make the scripts more consistent.
      
      Gbp-Dch: ignore
      72179b6a
    • Felix Lechner's avatar
      In collection/objdump-info, replace routines based on IPC::Run with IO::Async. · 5dbe6e57
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      5dbe6e57
    • Felix Lechner's avatar
      In collection/strings, replace routines based on IPC::Run with IO::Async. · 83167187
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      83167187
    • Felix Lechner's avatar
      In collection/scripts, make changes similar to other surrounding scripts. · 7eae440e
      Felix Lechner authored
      It did not have any IPC::Run related code that needed to be replaced
      with IO::Async. These changes simply make the scripts more consistent.
      
      Gbp-Dch: ignore
      7eae440e
    • Felix Lechner's avatar
      In collection/src-orig-index, make changes similar to other surrounding scripts. · 21f6ae5c
      Felix Lechner authored
      It did not have any IPC::Run related code that needed to be replaced
      with IO::Async. These changes simply make the scripts more consistent.
      
      Gbp-Dch: ignore
      21f6ae5c
    • Felix Lechner's avatar
      In collection/md5sums, replace routines based on IPC::Run with IO::Async. · ccd876e2
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      ccd876e2
    • Felix Lechner's avatar
      In collection/java-info, replace routines based on IPC::Run with IO::Async. · ecd37c05
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      ecd37c05
    • Felix Lechner's avatar
      In collection/file-info, replace routines based on IPC::Run with IO::Async. · 13e09a9e
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      13e09a9e
    • Felix Lechner's avatar
      In collection/diffstat, replace routines based on IPC::Run with IO::Async. · 590b58a5
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      590b58a5
    • Felix Lechner's avatar
      In collection/changelog-file, replace routines based on IPC::Run with IO::Async. · 0c266ab7
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      0c266ab7
    • Felix Lechner's avatar
      In collection/copyright-file, make changes similar to other surrounding scripts. · 597ceba9
      Felix Lechner authored
      It did not have any IPC::Run related code that needed to be replaced
      with IO::Async. These changes simply make the scripts more consistent.
      
      Gbp-Dch: ignore
      597ceba9
    • Felix Lechner's avatar
      In collection/bin-pkg-control, replace routines based on IPC::Run with IO::Async. · dbd687cf
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      dbd687cf
    • Felix Lechner's avatar
      In collection/ar-info, replace routines based on IPC::Run with IO::Async. · a77ae6ad
      Felix Lechner authored
      Special care was taken to replicate existing code, except that indices
      are processed in memory instead of via file handles. The processes are
      short-lived, so any extra memory consumed should be freed quickly.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      a77ae6ad
    • Felix Lechner's avatar
      Add collection helper functions based on IO::Async. · 39cd0295
      Felix Lechner authored
      This will help with the gradual migration of the collection scripts to
      IO::Async based process management. Provides the following functions:
      
          safe_qx:
      
      The existing helper function safe_qx has to be replaced gradually. It
      may not be mixed with IO::Async (although this new function can). The
      new function, on the other hand, cannot be mixed with older code that
      still uses IPC::Run.
      
      The new function is located in lib/Lintian/Util.pm and not, like the
      old one, in lib/Lintian/Command.pm. The plan is to get rid of the
      latter after a transition period.
      
          gzip:
      
      Takes data from memory, such as an uncompressed file index, and stores
      it in a gzip-compressed file.
      
          gunzip_file
      
      Unzips a file and stores it in another.
      
          sort_file_index:
      
      Sorts a file index in memory. Commonly used function in the collection
      scripts.
      
      This commit is part of an effort to drop IPC::Run from Lintian.
      
      The framework of choice for Lintian is now IO::Async. It performs
      well, but has its own pitfalls: For example, the SIGCHLD handler is
      replaced in the parent, which means that other forms of spawning
      processes may hang.  Also, until version 0.73, nested usage required
      to undefine the loop singleton $IO::Async::Loop::ONE_TRUE_LOOP.
      
      Overall, it is hoped that this change will lead to code simplification
      in the collects. It may also contribute to greater stability on
      lindsay.
      
      Gbp-Dch: ignore
      39cd0295
  4. 19 Jul, 2019 3 commits
    • Felix Lechner's avatar
      Depend and Build-Depend on libio-async-loop-epoll-perl (>= 0.20); limits to buster and later. · ec67f30e
      Felix Lechner authored
      This commit limits Litian to buster and later, due to the availability
      of this library.
      
      This loop performs better than the standard IO::Async::Loop::Poll. It
      also lacks some bugs.
      
      Unfortunately, I cannot remember the details; some files may not have
      been closed properly. The symptom is that the tests run fine until the
      very end when some processes get stuck. The test suite then hangs.
      Child processes using IO::Async will not work properly with the
      standard IO::Async::Loop::Poll, which is probably why the Eloop is
      recommended in APT.
      
      I believe, but am no longer sure, that this also cures a problem with
      flocks not being released in Path::Tiny. More information on that is
      in commit 0e84da82.
      
      This commit is required to convert Lintian away from IPC::Run and to
      IO::Async.
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      ec67f30e
    • Felix Lechner's avatar
      Adjust systemd-general test for recent versions of debhelper. (Closes: #932339) · 3ccd3625
      Felix Lechner authored
      The upgrade of debhelper to version 12.2.2 exposed several issues in Lintian.
      
      First of all, the systemd-general test had to be updated to use
      dh_installsystemd which apparently did not exist when the test was written.
      Second, it had to accommodate an update to dh_installinit which no longer
      allows the naming pattern $daemon.init when '--name=$daemon' is used.
      dh_installinit now requires the file to be called $package.$daemon.init. Some
      other files were also renamed.
      
      All of these issues are fixed here, except the symptom of hanging while
      building test packages, which will be addressed separately in the solution to
      
      This commit causes the unstable pipelines on jenkins and Gitlab to work again.
      
      Gbp-Dch: ignore
      Signed-off-by: Chris Lamb's avatarChris Lamb <lamby@debian.org>
      3ccd3625
    • Chris Lamb's avatar
      Expand the long description of the duplicate-files check to suggest how to... · 31d9ebad
      Chris Lamb authored
      Expand the long description of the duplicate-files check to suggest how to remove them. Thanks to Rebecca Palmer for the suggested text. (Closes: #932411)
      31d9ebad
  5. 18 Jul, 2019 6 commits