[Piuparts-commits] [SCM] piuparts git repository branch, master, updated. 0.47-41-ga9fc1b0

Andreas Beckmann debian at abeckmann.de
Fri Nov 30 11:20:25 UTC 2012


The following commit has been merged in the master branch:
commit a7f2df45e0850a8b71c66eddf528b7770c67bb1a
Author: Andreas Beckmann <debian at abeckmann.de>
Date:   Fri Nov 2 21:19:10 2012 +0100

    new known problem: installs_over_symlink
    
    installing something in a directory that is a symlink in an already
    installed package is the start of many nasty issues ...
    
    (note: piuparts covers only the cases where such behavior is
    unavoidable due to dependencies, if you install more than just a
    minimal set of packages, the errors will probably multiply)
    
    Signed-off-by: Andreas Beckmann <debian at abeckmann.de>

diff --git a/debian/changelog b/debian/changelog
index 2c7b150..145db6d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -17,6 +17,7 @@ piuparts (0.48) UNRELEASED; urgency=low
   * piuparts-report.py:
   * detect_piuparts_issues: Catch the chroot running out of space.
   * New bug template: copyright_file_missing_after_upgrade.
+  * New known problem: Installing something over existing symlinks.
 
  -- Andreas Beckmann <debian at abeckmann.de>  Sat, 29 Sep 2012 14:42:10 +0200
 
diff --git a/known_problems/installs_over_symlink_error.conf b/known_problems/installs_over_symlink_error.conf
new file mode 100644
index 0000000..2f0a62d
--- /dev/null
+++ b/known_problems/installs_over_symlink_error.conf
@@ -0,0 +1,15 @@
+#
+# detect packages which have the string "dirname part contains a symlink" in their logs
+#
+COMMAND='grep "dirname part contains a symlink"'
+WHERE='fail bugged affected'
+ISSUE=0
+HEADER='Packages that install something over existing symlinks'
+HELPTEXT='
+<p>Installing anything over a symlink opens a can of worms -
+   this causes problems on upgrades while switching between directory and symlink
+   or if the symlink is ever changed.<br />
+Piuparts looks at all $pathname known to dpkg and checks for
+<pre>$(dirname $pathname) != $(readlink $(dirname $pathname))</pre>
+</p>
+'
diff --git a/known_problems/installs_over_symlink_issue.conf b/known_problems/installs_over_symlink_issue.conf
new file mode 100644
index 0000000..b080fac
--- /dev/null
+++ b/known_problems/installs_over_symlink_issue.conf
@@ -0,0 +1,15 @@
+#
+# detect packages which have the string "dirname part contains a symlink" in their logs
+#
+COMMAND='grep "dirname part contains a symlink"'
+WHERE='pass'
+ISSUE=1
+HEADER='Packages that install something over existing symlinks'
+HELPTEXT='
+<p>Installing anything over a symlink opens a can of worms -
+   this causes problems on upgrades while switching between directory and symlink
+   or if the symlink is ever changed.<br />
+Piuparts looks at all $pathname known to dpkg and checks for
+<pre>$(dirname $pathname) != $(readlink $(dirname $pathname))</pre>
+</p>
+'
diff --git a/piuparts-report.py b/piuparts-report.py
index f05ad85..e11d954 100644
--- a/piuparts-report.py
+++ b/piuparts-report.py
@@ -346,6 +346,7 @@ linktarget_by_template = [
     ("owned_files_after_purge_issue.tpl", "but logfile contains owned files existing after purge"),
     ("unowned_files_after_purge_issue.tpl", "but logfile contains unowned files after purge"),
     ("maintainer_script_issue.tpl", "but logfile contains maintainer script failures"),
+    ("installs_over_symlink_issue.tpl", "but package installs something over existing symlinks"),
     ("broken_symlinks_issue.tpl", "but logfile contains 'broken symlinks'"),
     ("packages_have_been_kept_back_issue.tpl", "but logfile contains 'packages have been kept back'"),
 
@@ -376,6 +377,7 @@ linktarget_by_template = [
     ("unknown_purge_error.tpl", "due to purge failed due to an unknown reason"),
     ("cron_error_after_removal_error.tpl", "due to errors from cronjob after removal"),
     ("logrotate_error_after_removal_error.tpl", "due to errors from logrotate after removal"),
+    ("installs_over_symlink_error.tpl", "...and package installs something over existing symlinks"),
     ("broken_symlinks_error.tpl", "...and logfile also contains 'broken symlinks'"),
     ("unknown_failures.tpl", "due to unclassified failures"),
 ]

-- 
piuparts git repository



More information about the Piuparts-commits mailing list