summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog29
-rw-r--r--debian/patches/mount-bind.patch113
-rw-r--r--debian/patches/series1
3 files changed, 139 insertions, 4 deletions
diff --git a/debian/changelog b/debian/changelog
index 208f77d3..7e786038 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,30 @@
-hurd (1:0.5.git20140326-2) UNRELEASED; urgency=medium
+hurd (1:0.5.git20140526-2) UNRELEASED; urgency=medium
- * control: bump gnumach-dev dependency to get mutable memory object types
- translation functions.
+ [ Gabriele Giacone ]
+ * patches/mount-bind.patch: Fix uninitialized value.
- -- Samuel Thibault <sthibault@debian.org> Wed, 26 Mar 2014 13:12:42 +0100
+ -- Samuel Thibault <sthibault@debian.org> Tue, 27 May 2014 22:06:43 +0200
+
+hurd (1:0.5.git20140526-1) unstable; urgency=medium
+
+ [ Samuel Thibault ]
+ * New upstream snapshot.
+ - Breaks old netdde, which needs to be rebuilt due to libports ABI change.
+ - patches/libmachdev.patch: Drop patch, fixed upstream.
+ * control: bump gnumach-dev dependency to get mutable memory object, device
+ and notify types translation functions. Make hurd-libs0.3 "Breaks" old
+ glibcs which needed libports_revert_stacksize.patch.
+
+ [ Justus Winter ]
+ * patches/libports_revert_stacksize.patch: Drop patch, not needed any more.
+
+ [ Pino Toscano ]
+ * control: remove unused gcc-4.7 build dependency. (Closes: #748000)
+
+ [ Gabriele Giacone ]
+ * patches/mount-bind.patch: Add bind option to our mount tool.
+
+ -- Samuel Thibault <sthibault@debian.org> Sun, 25 May 2014 20:07:01 +0000
hurd (1:0.5.git20140326-1) unstable; urgency=medium
diff --git a/debian/patches/mount-bind.patch b/debian/patches/mount-bind.patch
new file mode 100644
index 00000000..2a470c65
--- /dev/null
+++ b/debian/patches/mount-bind.patch
@@ -0,0 +1,113 @@
+This is waiting for gg0's copyright assignment completion
+
+From: Gabriele Giacone <1o5g4r8o@gmail.com>
+
+* utils/mount.c (parse_opt): Add -B/--bind/--firmlink/-o bind mount
+ options. (do_mount): Do not pass bind mount option to settrans, set
+ firmlink fstype. (main): Likewise.
+---
+ utils/mount.c | 38 +++++++++++++++++++++++++++++++-------
+ 1 file changed, 31 insertions(+), 7 deletions(-)
+
+diff --git a/utils/mount.c b/utils/mount.c
+index df77c66..e6893cb 100644
+--- a/utils/mount.c
++++ b/utils/mount.c
+@@ -64,6 +64,8 @@ static const struct argp_option argp_opts[] =
+ {"no-mtab", 'n', 0, 0, "Do not update /etc/mtab"},
+ {"test-opts", 'O', "OPTIONS", 0,
+ "Only mount fstab entries matching the given set of options"},
++ {"bind", 'B', 0, 0, "Bind mount, firmlink"},
++ {"firmlink", 0, 0, OPTION_ALIAS},
+ {"fake", 'f', 0, 0, "Do not actually mount, just pretend"},
+ {0, 0}
+ };
+@@ -87,6 +89,7 @@ parse_opt (int key, char *arg, struct argp_state *state)
+ case 'r': ARGZ (add (&options, &options_len, "ro"));
+ case 'w': ARGZ (add (&options, &options_len, "rw"));
+ case 'u': ARGZ (add (&options, &options_len, "update"));
++ case 'B': ARGZ (add (&options, &options_len, "bind"));
+ case 'o': ARGZ (add_sep (&options, &options_len, arg, ','));
+ case 'v': ++verbose; break;
+ #undef ARGZ
+@@ -250,12 +253,20 @@ do_mount (struct fs *fs, int remount)
+ /* Append the fstab options to any specified on the command line. */
+ ARGZ (create_sep (fs->mntent.mnt_opts, ',', &mntopts, &mntopts_len));
+
+- /* Remove the `noauto' option, since it's for us not the filesystem. */
++ /* Remove the `noauto' and `bind' options, since they're for us not the
++ filesystem. */
+ for (o = mntopts; o; o = argz_next (mntopts, mntopts_len, o))
+- if (!strcmp (o, MNTOPT_NOAUTO))
+- break;
+- if (o)
+- argz_delete (&mntopts, &mntopts_len, o);
++ {
++ if (strcmp (o, MNTOPT_NOAUTO) == 0)
++ argz_delete (&mntopts, &mntopts_len, o);
++ if (strcmp (o, "bind") == 0)
++ {
++ fs->mntent.mnt_type = strdup ("firmlink");
++ if (! fs->mntent.mnt_type)
++ error (3, ENOMEM, "failed to allocate memory");
++ argz_delete (&mntopts, &mntopts_len, o);
++ }
++ }
+
+ ARGZ (append (&mntopts, &mntopts_len, options, options_len));
+ }
+@@ -273,7 +284,7 @@ do_mount (struct fs *fs, int remount)
+ }
+ else if (strcmp (o, "defaults") != 0 &&
+ strcmp (o, "loop") != 0 &&
+- strcmp (o, "exec") != 0)
++ strcmp (o, "exec") != 0 && strlen (o) != 0)
+ {
+ /* Prepend `--' to the option to make a long option switch,
+ e.g. `--ro' or `--rsize=1024'. */
+@@ -572,7 +583,7 @@ do_query (struct fs *fs)
+ int
+ main (int argc, char **argv)
+ {
+- unsigned int remount;
++ unsigned int remount, firmlink = 0;
+ struct fstab *fstab;
+ struct fs *fs;
+ error_t err;
+@@ -598,6 +609,15 @@ main (int argc, char **argv)
+ if (err)
+ error (3, ENOMEM, "collecting mount options");
+
++ /* Do not pass `bind' option to firmlink translator */
++ char *opt = NULL;
++ while ((opt = argz_next (options, options_len, opt)))
++ if (strcmp (opt, "bind") == 0)
++ {
++ firmlink = 1;
++ argz_delete(&options, &options_len, opt);
++ }
++
+ if (device) /* two-argument form */
+ {
+ struct mntent m =
+@@ -608,6 +628,8 @@ main (int argc, char **argv)
+ mnt_opts: 0,
+ mnt_freq: 0, mnt_passno: 0
+ };
++ if (firmlink)
++ m.mnt_type = strdup ("firmlink");
+
+ err = fstab_add_mntent (fstab, &m, &fs);
+ if (err)
+@@ -625,6 +647,8 @@ main (int argc, char **argv)
+ mnt_opts: 0,
+ mnt_freq: 0, mnt_passno: 0
+ };
++ if (firmlink)
++ m.mnt_type = strdup ("firmlink");
+
+ err = fstab_add_mntent (fstab, &m, &fs);
+ if (err)
+--
+2.0.0.rc2
+
diff --git a/debian/patches/series b/debian/patches/series
index b7fcf557..c69d9670 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -34,6 +34,7 @@ libdde_pr_cont.patch
libdde_rx_queue.patch
libdde_rcu.patch
mount.patch
+mount-bind.patch
proc_set_init_task.patch
newRPC.patch
xkb-compat.patch