Hi there,

Am 07.06.13 11:45, schrieb Dimitry Bansikov:
> Please fix this bug in debian 7, you need to update package:
> https://github.com/ekenberg/quotatool/issues/9
>  
> Bug was already fixed in version 1.4.13 by quota team.
> - Ignore linux initramfs mount entry for rootfs

I grabed
https://github.com/ekenberg/quotatool/commit/a83c6d0d1bf623234e860dd7bfd3840c812fc32c.patch
and added it to the wheezy package. This solved the problem for me on
Debian Jessie.

A debdiff is attached and the package can be found at:

http://ftp.cyconet.org/debian/archive/unofficial/quotatool/1.4.12-1.1/

It would very welcomed to get that into Debian Jessie. Without it maybe
hard to get quota working proper.

Many thanks, Jan.
-- 
Never write mail to <w...@spamfalle.info>, you have been warned!
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GIT d-- s+: a C+++ UL++++ P+ L+++ E--- W+++ N+++ o++ K++ w--- O M V- PS
PE Y++
PGP++ t-- 5 X R tv- b+ DI D+ G++ e++ h---- r+++ y++++
------END GEEK CODE BLOCK------
diff -Nru quotatool-1.4.12/debian/changelog quotatool-1.4.12/debian/changelog
--- quotatool-1.4.12/debian/changelog   2012-02-26 13:18:20.000000000 +0100
+++ quotatool-1.4.12/debian/changelog   2014-12-12 15:44:26.000000000 +0100
@@ -1,3 +1,10 @@
+quotatool (1.4.12-1.1) unstable; urgency=medium
+
+  * Adding debian/patches/ignore_initramfs.diff takes from upstream
+    (Closes: #711502)
+
+ -- Jan Wagner <w...@cyconet.org>  Fri, 12 Dec 2014 14:27:17 +0100
+
 quotatool (1.4.12-1) unstable; urgency=low
 
   * New upstream release
diff -Nru quotatool-1.4.12/debian/patches/ignore_initramfs.diff 
quotatool-1.4.12/debian/patches/ignore_initramfs.diff
--- quotatool-1.4.12/debian/patches/ignore_initramfs.diff       1970-01-01 
01:00:00.000000000 +0100
+++ quotatool-1.4.12/debian/patches/ignore_initramfs.diff       2014-12-12 
14:49:42.000000000 +0100
@@ -0,0 +1,138 @@
+From a83c6d0d1bf623234e860dd7bfd3840c812fc32c Mon Sep 17 00:00:00 2001
+From: Johan Ekenberg <jo...@ekenberg.se>
+Date: Sat, 22 Dec 2012 21:24:04 +0100
+Subject: [PATCH] Ignore linux initramfs mount entry for rootfs
+
+---
+ src/system.c | 34 ++++++++++++++++++++--------------
+ 1 file changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/src/system.c b/src/system.c
+index e2e236f..38bf1df 100644
+--- a/src/system.c
++++ b/src/system.c
+@@ -48,7 +48,7 @@ struct mntent {
+ 
+ 
+ 
+-/* 
++/*
+  * system_getfs
+  * find and verify the device file for
+  * a given filesystem
+@@ -72,7 +72,7 @@ fs_t *system_getfs (char *fs_spec) {
+ 
+ 
+ #if HAVE_SYS_MNTCTL_H /* AIX, we are again in trouble. */
+-  /* first mntctl call is only for getting the size of 
++  /* first mntctl call is only for getting the size of
+    * vmnt array. is there a better way? */
+   vmnt_retval = mntctl (MCTL_QUERY, sizeof(int), (char*)&vmnt_size);
+   if (vmnt_retval != -1) {
+@@ -102,7 +102,7 @@ fs_t *system_getfs (char *fs_spec) {
+ 
+   /* loop through mtab until we get a match */
+   do {
+-    
++
+     /* read the next entry */
+ #if HAVE_SYS_MNTTAB_H
+     int retval;
+@@ -112,9 +112,9 @@ fs_t *system_getfs (char *fs_spec) {
+     current_fs=getmntent(etc_mtab);
+     if ( ! current_fs ) {
+ #elif HAVE_SYS_MNTCTL_H /* AIX, we are again in trouble. */
+-   current_fs->mnt_special = 
++   current_fs->mnt_special =
+       (char*)vmnt + (vmnt->vmt_data[VMT_OBJECT].vmt_off);
+-   current_fs->mnt_mountp = 
++   current_fs->mnt_mountp =
+       (char*)vmnt + (vmnt->vmt_data[VMT_STUB].vmt_off);
+    current_fs->vmt_flags = vmnt->vmt_flags;
+    vmnt = (struct vmount*) ((char*)vmnt + vmnt->vmt_length);
+@@ -123,10 +123,16 @@ fs_t *system_getfs (char *fs_spec) {
+       output_error ("Filesystem %s does not exist", fs_spec);
+       return NULL;
+     }
+-    
++
+     output_debug ("Checking device '%s', mounted at '%s'",
+                 current_fs->mnt_special, current_fs->mnt_mountp);
+ 
++    /* Ignore 'rootfs' if looking for mountpoint '/' - created and mounted by 
Linux initramfs */
++    if (strcmp("/", fs_spec) == 0 && strcmp(current_fs->mnt_special, 
"rootfs") == 0) {
++        output_debug ("Ignoring initramfs 'rootfs'\n");
++        continue;
++    }
++
+     /* does the name given match the mount pt or device file ? */
+     if ( ! strcmp(current_fs->mnt_special, fs_spec)
+        || ! strcmp(current_fs->mnt_mountp, fs_spec) ) {
+@@ -161,7 +167,7 @@ fs_t *system_getfs (char *fs_spec) {
+       }
+       }
+       else {
+-#endif /* HAVE_MNTENT_H */    
++#endif /* HAVE_MNTENT_H */
+       strncpy (ent->device, current_fs->mnt_special, PATH_MAX-1);
+       strncpy (ent->mount_pt, current_fs->mnt_mountp, PATH_MAX-1);
+ #if HAVE_MNTENT_H
+@@ -171,7 +177,7 @@ fs_t *system_getfs (char *fs_spec) {
+       continue;
+     }
+ 
+-  } while ( ! done ) ;  
++  } while ( ! done ) ;
+ 
+ 
+   /* can we write to the device? */
+@@ -181,7 +187,7 @@ fs_t *system_getfs (char *fs_spec) {
+     output_error ("Filesystem %s is mounted read-only\n", fs_spec);
+     free(current_fs);
+     free(vmnt_buffer);
+-#else 
++#else
+   if ( hasmntopt(current_fs, "ro") ) {
+     output_error ("Filesystem %s is mounted read-only\n", fs_spec);
+     endmntent (etc_mtab);
+@@ -194,7 +200,7 @@ fs_t *system_getfs (char *fs_spec) {
+ #if HAVE_SYS_MNTCTL_H
+   free(current_fs);
+   free(vmnt_buffer);
+-#else 
++#else
+   endmntent (etc_mtab);
+ #endif
+   return ent;
+@@ -212,12 +218,12 @@ uid_t system_getuid (char *user) {
+   char *temp_str;
+   /* seach by name first */
+    pwent = getpwnam (user);
+- 
++
+    if ( pwent == NULL ) {
+ 
+      /* maybe we were given a numerical id */
+      uid = strtol(user, &temp_str, 10);
+-     pwent = getpwuid ((uid_t) uid); 
++     pwent = getpwuid ((uid_t) uid);
+      if ( (user == temp_str) || ( pwent == NULL ) ) {
+        output_error ("User %s does not exist\n", user);
+        return -1;
+@@ -233,7 +239,7 @@ gid_t system_getgid (char *group) {
+   struct group  *grent;
+   int gid;
+   char *temp_str;
+-  
++
+   /* check for group name first */
+   grent = getgrnam (group);
+   if ( grent == NULL ) {
+@@ -245,6 +251,6 @@ gid_t system_getgid (char *group) {
+       return (gid_t) -1;
+       }
+   }
+-  output_info ("group '%s' has gid %d", group, grent->gr_gid);  
++  output_info ("group '%s' has gid %d", group, grent->gr_gid);
+   return (grent->gr_gid);
+ }
diff -Nru quotatool-1.4.12/debian/patches/series 
quotatool-1.4.12/debian/patches/series
--- quotatool-1.4.12/debian/patches/series      1970-01-01 01:00:00.000000000 
+0100
+++ quotatool-1.4.12/debian/patches/series      2014-12-12 14:26:37.000000000 
+0100
@@ -0,0 +1 @@
+ignore_initramfs.diff

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to