Mailinglist Archive: opensuse-commit (1130 mails)

< Previous Next >
commit util-linux for openSUSE:Factory

Hello community,

here is the log from the commit of package util-linux for openSUSE:Factory
checked in at Tue Aug 2 17:07:02 CEST 2011.



--------
--- util-linux/util-linux.changes 2011-05-03 14:17:05.000000000 +0200
+++ /mounts/work_src_done/STABLE/util-linux/util-linux.changes 2011-08-02
16:03:08.000000000 +0200
@@ -1,0 +2,49 @@
+Mon Aug 1 13:44:21 UTC 2011 - puzel@xxxxxxxxxx
+
+- update to util-linux-2.20-rc1
+ - Release highlights
+ agetty(8):
+ - mingetty features have been merged to agetty
+ chrt(1), taskset(1):
+ - supports new command line option "--all-tasks" to set or
+ retrieve the scheduling attributes of all the tasks (threads)
+ for a given PID
+ dmesg(1):
+ - supports new command line options: --clear, --console-on,
+ --console-off, --ctime, --decode, --facility=<list>,
+ --level=<list>, --show-delta, --notime, --kernel and
+ --userspace
+ fdisk(8):
+ - improved dialogs to be more user-friendly
+ findmnt(8), partx(8), lsblk(8)
+ - support new command line option "--pairs" to enable
+ key="value" output format
+ findmnt(8):
+ - supports new command line options "--poll" and "--timeout" to
+ monitor /proc/self/mountinfo changes
+ ionice(1):
+ - supports human-readable scheduling class names, for example:
+ ionice -c best-effort $PID
+ kill(1):
+ - supports new command line option "-q <sigval>" to use
+ sigqueue(2)
+ - supports real-time signals in formats RT<n>, RTMIN+<n> and
+ RTMAX-<n>
+ lsblk(8):
+ - supports new columns
+ - supports new command line option "-D" to print device discard
+ topology
+ lscpu(8):
+ - improved support for s390 boxes
+ mkfs.minix:
+ - supports minix version 3
+ simpleinit:
+ - this set of deprecated utils has been REMOVED
+ wall(1):
+ - support new command line option "--timeout" to specify write
+ timeout to terminals in seconds.
+- add util-linux-fix-manpages.patch
+- add util-linux-wall-build-with-pie.patch
+- package /sbin/rcuuidd
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
util-linux-2.19.1.tar.bz2

New:
----
util-linux-2.20-rc1.tar.bz2
util-linux-fix-manpages.patch
util-linux-wall-build-with-pie.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ util-linux.spec ++++++
--- /var/tmp/diff_new_pack.YqaqLd/_old 2011-08-02 16:59:17.000000000 +0200
+++ /var/tmp/diff_new_pack.YqaqLd/_new 2011-08-02 16:59:17.000000000 +0200
@@ -19,6 +19,7 @@
%define time_ver 1.7
%define which_ver 2.20
%define adjtimex_ver 1.28
+%define util_linux_tar_ver 2.20-rc1

Name: util-linux
BuildRequires: audit-devel
@@ -30,7 +31,7 @@
BuildRequires: pkg-config
BuildRequires: readline-devel
BuildRequires: zlib-devel
-Version: 2.19.1
+Version: 2.19.91
Release: 1
Url: http://kernel.org/~kzak/util-linux/
Supplements: filesystem(minix)
@@ -43,7 +44,7 @@
AutoReqProv: on
Recommends: %{name}-lang = %{version}
Summary: A collection of basic system utilities
-Source:
ftp://ftp.kernel.org/pub/linux/utils/util-linux/v19/%{name}-%{version}.tar.bz2
+Source:
ftp://ftp.kernel.org/pub/linux/utils/util-linux/v20/%{name}-%{util_linux_tar_ver}.tar.bz2
Source1: util-linux-rpmlintrc
# XXX: make nologin part of login package
Source2: nologin.c
@@ -79,7 +80,9 @@
# 241372 - remove legacy warnings from fdisk
Patch1: util-linux-2.12r-fdisk_remove_bogus_warnings.patch
# crypto patch
-Patch3: util-linux-2.17.1-mount_losetup_crypto.patch
+Patch2: util-linux-2.17.1-mount_losetup_crypto.patch
+Patch3: util-linux-fix-manpages.patch
+Patch4: util-linux-wall-build-with-pie.patch
##
## adjtimex
##
@@ -177,9 +180,11 @@

%lang_package
%prep
-%setup -q -a 9 -b 11 -b 12 -b 13 -n %{name}-%{version}
+%setup -q -a 9 -b 11 -b 12 -b 13 -n %{name}-%{util_linux_tar_ver}
%patch1 -p1
+%patch2 -p1
%patch3 -p1
+%patch4 -p1

#
cd adjtimex-*
@@ -252,7 +257,9 @@
--enable-partx \
--enable-raw \
--enable-write \
+ --enable-line \
--enable-libmount-mount \
+ --disable-mountpoint \
--disable-use-tty-group \
--disable-static \
--disable-silent-rules
@@ -367,6 +374,10 @@
find %{buildroot}%{_mandir}/man8 -regextype posix-egrep \
-regex
".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64|parisc|parisc32|parisc64)\.8.*"
\
-printf "%{_mandir}/man8/%f*\n" >> %{name}.files
+# clock.txt from uuidd is a ghost file
+touch %{buildroot}%{_localstatedir}/lib/libuuid/clock.txt
+# rcuuidd helper
+ln -sf ../..%{_sysconfdir}/init.d/uuidd %{buildroot}%{_sbindir}/rcuuidd

%clean
rm -rf %{buildroot}
@@ -436,12 +447,9 @@
%files -f %{name}.files
# Common files for all archs
%defattr(-,root,root)
-%doc login-utils/README.getty
-%doc login-utils/README.modems-with-agetty
%doc login-utils/README.poeigl
%doc misc-utils/README.cal
%doc misc-utils/README.namei
-%doc misc-utils/README.namei2
%doc mount/README.mount
%doc hwclock/README.hwclock
%doc text-utils/README.col
@@ -626,8 +634,6 @@
%dir %{_datadir}/getopt
%attr (755,root,root) %{_datadir}/getopt/getopt-parse.bash
%attr (755,root,root) %{_datadir}/getopt/getopt-parse.tcsh
-%attr (755,root,root) %{_datadir}/getopt/getopt-test.bash
-%attr (755,root,root) %{_datadir}/getopt/getopt-test.tcsh
%ifnarch ia64
%doc fdisk/README.fdisk
/sbin/fdisk
@@ -683,9 +689,11 @@
%defattr(-, root, root)
%verify(not mode) %attr(0755,root,root) %{_sbindir}/uuidd
%attr(-,uuidd,uuidd) %dir %{_localstatedir}/lib/libuuid
+%ghost %{_localstatedir}/lib/libuuid/clock.txt
%attr(-,uuidd,uuidd) %ghost %dir %{_localstatedir}/run/uuidd
%{_sysconfdir}/init.d/uuidd
%{_mandir}/man8/uuidd.8.gz
+%{_sbindir}/rcuuidd

%files -n libuuid1
%defattr(-, root, root)

++++++ util-linux-2.17.1-mount_losetup_crypto.patch ++++++
--- /var/tmp/diff_new_pack.YqaqLd/_old 2011-08-02 16:59:17.000000000 +0200
+++ /var/tmp/diff_new_pack.YqaqLd/_new 2011-08-02 16:59:17.000000000 +0200
@@ -38,10 +38,10 @@
create mode 100644 mount/sha512.c
create mode 100644 mount/sha512.h

-Index: util-linux-2.19-rc1/mount/Makefile.am
+Index: util-linux-2.20-rc1/mount/Makefile.am
===================================================================
---- util-linux-2.19-rc1.orig/mount/Makefile.am
-+++ util-linux-2.19-rc1/mount/Makefile.am
+--- util-linux-2.20-rc1.orig/mount/Makefile.am
++++ util-linux-2.20-rc1/mount/Makefile.am
@@ -7,7 +7,7 @@ sbin_PROGRAMS = losetup swapon
dist_man_MANS = fstab.5 mount.8 swapoff.8 swapon.8 umount.8 losetup.8

@@ -51,10 +51,10 @@

# generic header for mount and umount
hdrs_mount = fstab.h mount_mntent.h mount_constants.h \
-Index: util-linux-2.19-rc1/mount/lomount.c
+Index: util-linux-2.20-rc1/mount/lomount.c
===================================================================
---- util-linux-2.19-rc1.orig/mount/lomount.c
-+++ util-linux-2.19-rc1/mount/lomount.c
+--- util-linux-2.20-rc1.orig/mount/lomount.c
++++ util-linux-2.20-rc1/mount/lomount.c
@@ -23,6 +23,12 @@
#include "sundries.h"
#include "xmalloc.h"
@@ -68,7 +68,7 @@

#ifdef LOOP_SET_FD

-@@ -464,12 +470,22 @@ show_loop_fd(int fd, char *device) {
+@@ -509,12 +515,22 @@ show_loop_fd(int fd, char *device) {

if (loopinfo64.lo_encrypt_type ||
loopinfo64.lo_crypt_name[0]) {
@@ -94,7 +94,7 @@
}
printf("\n");
return 0;
-@@ -718,7 +734,7 @@ xgetpass(int pfd, const char *prompt) {
+@@ -764,7 +780,7 @@ xgetpass(int pfd, const char *prompt) {
}

if (pass == NULL)
@@ -103,7 +103,7 @@

pass[i] = 0;
return pass;
-@@ -732,6 +748,24 @@ digits_only(const char *s) {
+@@ -778,6 +794,24 @@ digits_only(const char *s) {
return 1;
}

@@ -128,7 +128,7 @@
/*
* return codes:
* 0 - success
-@@ -740,10 +774,11 @@ digits_only(const char *s) {
+@@ -786,10 +820,11 @@ digits_only(const char *s) {
*/
int
set_loop(const char *device, const char *file, unsigned long long offset,
@@ -142,7 +142,7 @@
char *filename;

if (verbose) {
-@@ -781,13 +816,37 @@ set_loop(const char *device, const char
+@@ -827,13 +862,37 @@ set_loop(const char *device, const char
filename = (char *) file;
xstrncpy((char *)loopinfo64.lo_file_name, filename, LO_NAME_SIZE);

@@ -182,7 +182,7 @@
}
}

-@@ -808,20 +867,69 @@ set_loop(const char *device, const char
+@@ -854,20 +913,69 @@ set_loop(const char *device, const char
}
#endif

@@ -264,7 +264,7 @@
}

if (ioctl(fd, LOOP_SET_FD, ffd) < 0) {
-@@ -969,7 +1077,13 @@ usage(FILE *f) {
+@@ -1022,7 +1130,13 @@ usage(FILE *f) {

fprintf(f, _("\nOptions:\n"
" -e | --encryption <type> enable data encryption with specified
<name/num>\n"
@@ -278,7 +278,7 @@
" -o | --offset <num> start at offset <num> into file\n"
" --sizelimit <num> loop limited to only <num> bytes of the file\n"
" -p | --pass-fd <num> read passphrase from file descriptor <num>\n"
-@@ -983,11 +1097,14 @@ usage(FILE *f) {
+@@ -1036,11 +1150,14 @@ usage(FILE *f) {
int
main(int argc, char **argv) {
char *p, *offset, *sizelimit, *encryption, *passfd, *device, *file,
*assoc;
@@ -291,9 +291,9 @@
int pfd = -1;
+ int keysz = 0;
uintmax_t off = 0, slimit = 0;
- struct option longopts[] = {
- { "all", 0, 0, 'a' },
-@@ -996,6 +1113,8 @@ main(int argc, char **argv) {
+
+ static const struct option longopts[] = {
+@@ -1050,6 +1167,8 @@ main(int argc, char **argv) {
{ "encryption", 1, 0, 'e' },
{ "find", 0, 0, 'f' },
{ "help", 0, 0, 'h' },
@@ -302,7 +302,7 @@
{ "associated", 1, 0, 'j' },
{ "offset", 1, 0, 'o' },
{ "sizelimit", 1, 0, 128 },
-@@ -1012,12 +1131,13 @@ main(int argc, char **argv) {
+@@ -1066,12 +1185,13 @@ main(int argc, char **argv) {

capacity = delete = find = all = 0;
assoc = offset = sizelimit = encryption = passfd = NULL;
@@ -317,7 +317,7 @@
longopts, NULL)) != -1) {
switch (c) {
case 'a':
-@@ -1045,6 +1165,12 @@ main(int argc, char **argv) {
+@@ -1099,6 +1219,12 @@ main(int argc, char **argv) {
case 'j':
assoc = optarg;
break;
@@ -330,7 +330,7 @@
case 'o':
offset = optarg;
break;
-@@ -1134,8 +1260,10 @@ main(int argc, char **argv) {
+@@ -1188,8 +1314,10 @@ main(int argc, char **argv) {
else {
if (passfd && sscanf(passfd, "%d", &pfd) != 1)
usage(stderr);
@@ -342,10 +342,10 @@
if (res == 2 && find) {
if (verbose)
printf(_("stolen loop=%s...trying
again\n"),
-Index: util-linux-2.19-rc1/mount/lomount.h
+Index: util-linux-2.20-rc1/mount/lomount.h
===================================================================
---- util-linux-2.19-rc1.orig/mount/lomount.h
-+++ util-linux-2.19-rc1/mount/lomount.h
+--- util-linux-2.20-rc1.orig/mount/lomount.h
++++ util-linux-2.20-rc1/mount/lomount.h
@@ -1,8 +1,8 @@
#ifndef UTIL_LINUX_LOMOUNT_H
#define UTIL_LINUX_LOMOUNT_H
@@ -357,10 +357,10 @@
extern int del_loop(const char *);
extern int is_loop_device(const char *);
extern int is_loop_autoclear(const char *device);
-Index: util-linux-2.19-rc1/mount/losetup.8
+Index: util-linux-2.20-rc1/mount/losetup.8
===================================================================
---- util-linux-2.19-rc1.orig/mount/losetup.8
-+++ util-linux-2.19-rc1/mount/losetup.8
+--- util-linux-2.20-rc1.orig/mount/losetup.8
++++ util-linux-2.20-rc1/mount/losetup.8
@@ -96,9 +96,18 @@ find the first unused loop device. If a
argument is present, use this device. Otherwise, print its name
.IP "\fB\-h, \-\-help\fP"
@@ -389,11 +389,11 @@

Cryptoloop is deprecated in favor of dm-crypt. For more details see
.BR cryptsetup (8).
-Index: util-linux-2.19-rc1/mount/mount.8
+Index: util-linux-2.20-rc1/mount/mount.8
===================================================================
---- util-linux-2.19-rc1.orig/mount/mount.8
-+++ util-linux-2.19-rc1/mount/mount.8
-@@ -901,6 +901,15 @@ Every time the inode is modified, the i_
+--- util-linux-2.20-rc1.orig/mount/mount.8
++++ util-linux-2.20-rc1/mount/mount.8
+@@ -915,6 +915,15 @@ Every time the inode is modified, the i_
.B noiversion
Do not increment the i_version inode field.
.TP
@@ -409,7 +409,7 @@
.B mand
Allow mandatory locks on this filesystem. See
.BR fcntl (2).
-@@ -2623,6 +2632,10 @@ that are really options to
+@@ -2697,6 +2706,10 @@ that are really options to
.BR \%losetup (8).
(These options can be used in addition to those specific
to the filesystem type.)
@@ -420,10 +420,10 @@

Since Linux 2.6.25 is supported auto-destruction of loop devices and
then any loop device allocated by
-Index: util-linux-2.19-rc1/mount/mount.c
+Index: util-linux-2.20-rc1/mount/mount.c
===================================================================
---- util-linux-2.19-rc1.orig/mount/mount.c
-+++ util-linux-2.19-rc1/mount/mount.c
+--- util-linux-2.20-rc1.orig/mount/mount.c
++++ util-linux-2.20-rc1/mount/mount.c
@@ -105,6 +105,9 @@ struct mountargs {
void *data;
};
@@ -437,11 +437,11 @@
@@ -210,6 +213,7 @@ static int opt_nofail = 0;

static const char *opt_loopdev, *opt_vfstype, *opt_offset, *opt_sizelimit,
- *opt_encryption, *opt_speed, *opt_comment, *opt_uhelper;
+ *opt_encryption, *opt_speed, *opt_comment, *opt_uhelper, *opt_helper;
+static const char *opt_keybits, *opt_phash;

static int is_readonly(const char *node);
- static int mounted (const char *spec0, const char *node0);
+ static int mounted (const char *spec0, const char *node0, struct mntentchn
*fstab_mc);
@@ -226,6 +230,8 @@ static struct string_opt_map {
{ "offset=", 0, &opt_offset },
{ "sizelimit=", 0, &opt_sizelimit },
@@ -451,7 +451,7 @@
{ "speed=", 0, &opt_speed },
{ "comment=", 1, &opt_comment },
{ "uhelper=", 0, &opt_uhelper },
-@@ -1208,7 +1214,8 @@ loop_check(const char **spec, const char
+@@ -1224,7 +1230,8 @@ loop_check(const char **spec, const char
*type = opt_vfstype;
}

@@ -461,7 +461,7 @@
*loopfile = *spec;

/* Automatically create a loop device from a regular file if a filesystem
-@@ -1273,7 +1280,7 @@ loop_check(const char **spec, const char
+@@ -1289,7 +1296,7 @@ loop_check(const char **spec, const char
printf(_("mount: going to use the loop device %s\n"), *loopdev);

if ((res = set_loop(*loopdev, *loopfile, offset, sizelimit,
@@ -470,7 +470,7 @@
if (res == 2) {
/* loop dev has been grabbed by some other process,
try again, if not given explicitly */
-@@ -2209,6 +2216,7 @@ static struct option longopts[] = {
+@@ -2269,6 +2276,7 @@ static struct option longopts[] = {
{ "options", 1, 0, 'o' },
{ "test-opts", 1, 0, 'O' },
{ "pass-fd", 1, 0, 'p' },
@@ -478,7 +478,7 @@
{ "types", 1, 0, 't' },
{ "bind", 0, 0, 'B' },
{ "move", 0, 0, 'M' },
-@@ -2372,6 +2380,7 @@ main(int argc, char *argv[]) {
+@@ -2432,6 +2440,7 @@ main(int argc, char *argv[]) {
char *options = NULL, *test_opts = NULL, *node;
const char *spec = NULL;
char *label = NULL;
@@ -486,7 +486,7 @@
char *uuid = NULL;
char *types = NULL;
char *p;
-@@ -2402,7 +2411,7 @@ main(int argc, char *argv[]) {
+@@ -2462,7 +2471,7 @@ main(int argc, char *argv[]) {
initproctitle(argc, argv);
#endif

@@ -495,7 +495,7 @@
longopts, NULL)) != -1) {
switch (c) {
case 'a': /* mount everything in fstab */
-@@ -2423,6 +2432,9 @@ main(int argc, char *argv[]) {
+@@ -2483,6 +2492,9 @@ main(int argc, char *argv[]) {
case 'i':
external_allowed = 0;
break;
@@ -505,7 +505,7 @@
case 'l':
list_with_volumelabel = 1;
break;
-@@ -2573,6 +2585,9 @@ main(int argc, char *argv[]) {
+@@ -2633,6 +2645,9 @@ main(int argc, char *argv[]) {

atexit(unlock_mtab);

@@ -515,10 +515,10 @@
switch (argc+specseen) {
case 0:
/* mount -a */
-Index: util-linux-2.19-rc1/mount/rmd160.c
+Index: util-linux-2.20-rc1/mount/rmd160.c
===================================================================
--- /dev/null
-+++ util-linux-2.19-rc1/mount/rmd160.c
++++ util-linux-2.20-rc1/mount/rmd160.c
@@ -0,0 +1,532 @@
+/* rmd160.c - RIPE-MD160
+ * Copyright (C) 1998 Free Software Foundation, Inc.
@@ -1052,10 +1052,10 @@
+ rmd160_final( &hd );
+ memcpy( outbuf, hd.buf, 20 );
+}
-Index: util-linux-2.19-rc1/mount/rmd160.h
+Index: util-linux-2.20-rc1/mount/rmd160.h
===================================================================
--- /dev/null
-+++ util-linux-2.19-rc1/mount/rmd160.h
++++ util-linux-2.20-rc1/mount/rmd160.h
@@ -0,0 +1,11 @@
+#ifndef RMD160_H
+#define RMD160_H
@@ -1068,10 +1068,10 @@
+#endif /*RMD160_H*/
+
+
-Index: util-linux-2.19-rc1/mount/sha512.c
+Index: util-linux-2.20-rc1/mount/sha512.c
===================================================================
--- /dev/null
-+++ util-linux-2.19-rc1/mount/sha512.c
++++ util-linux-2.20-rc1/mount/sha512.c
@@ -0,0 +1,432 @@
+/*
+ * sha512.c
@@ -1505,10 +1505,10 @@
+ memset(&ctx, 0, sizeof(ctx));
+}
+#endif
-Index: util-linux-2.19-rc1/mount/sha512.h
+Index: util-linux-2.20-rc1/mount/sha512.h
===================================================================
--- /dev/null
-+++ util-linux-2.19-rc1/mount/sha512.h
++++ util-linux-2.20-rc1/mount/sha512.h
@@ -0,0 +1,45 @@
+/*
+ * sha512.h

++++++ util-linux-fix-manpages.patch ++++++
From e20e7ff216288102ae012f6a0e80948e41f59452 Mon Sep 17 00:00:00 2001
From: Petr Uzel <petr.uzel@xxxxxxx>
Date: Mon, 1 Aug 2011 17:42:41 +0200
Subject: [PATCH] look: fix manpage formatting


Signed-off-by: Petr Uzel <petr.uzel@xxxxxxx>
---
misc-utils/look.1 | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

Index: util-linux-2.20-rc1/misc-utils/look.1
===================================================================
--- util-linux-2.20-rc1.orig/misc-utils/look.1
+++ util-linux-2.20-rc1/misc-utils/look.1
@@ -54,9 +54,9 @@ that
is invoked with).
.PP
If
-.Ar file
+.I file
is not specified, the file
-.Pa /usr/share/dict/words
+.I /usr/share/dict/words
is used, only alphanumeric characters are compared and the case of
alphabetic characters is ignored.
.SH OPTIONS
Index: util-linux-2.20-rc1/misc-utils/cal.1
===================================================================
--- util-linux-2.20-rc1.orig/misc-utils/cal.1
+++ util-linux-2.20-rc1/misc-utils/cal.1
@@ -35,9 +35,8 @@
.\" @(#)cal.1 8.1 (Berkeley) 6/6/93
.\"
.TH CAL "1" "June 2011" "util-linux" "User Commands"
-.Sh NAME
-.Nm cal
-.Nd displays a calendar
+.SH NAME
+cal \- displays a calendar
.SH SYNOPSIS
.B cal
[\fIoptions\fR] [[[\fIday\fR] \fImonth\fR] \fIyear\fR]
++++++ util-linux-wall-build-with-pie.patch ++++++
From 0b8743b58e9755079bc5ffa51e9f66c088322596 Mon Sep 17 00:00:00 2001
From: Petr Uzel <petr.uzel@xxxxxxx>
Date: Tue, 2 Aug 2011 15:18:11 +0200
Subject: [PATCH] wall: build with SUID_{C,LD}FLAGS


Signed-off-by: Petr Uzel <petr.uzel@xxxxxxx>
---
term-utils/Makefile.am | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/term-utils/Makefile.am b/term-utils/Makefile.am
index 7b545c3..b423bbd 100644
--- a/term-utils/Makefile.am
+++ b/term-utils/Makefile.am
@@ -55,6 +55,8 @@ if BUILD_WALL
usrbin_exec_PROGRAMS += wall
wall_SOURCES = wall.c ttymsg.c ttymsg.h $(top_srcdir)/lib/strutils.c
dist_man_MANS += wall.1
+wall_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
+wall_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
endif

if BUILD_WRITE
--
1.7.3.4


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >