From 487e584a18b90a413d4f866c51501ae56b552af5 Mon Sep 17 00:00:00 2001 From: Efstathios Iosifidis Date: Tue, 12 Sep 2017 19:52:49 +0000 Subject: [PATCH 01/24] Update Greek translation --- po/el.po | 99 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 48 deletions(-) diff --git a/po/el.po b/po/el.po index b2dc8a5d..a8004079 100644 --- a/po/el.po +++ b/po/el.po @@ -18,190 +18,193 @@ msgid "" msgstr "" "Project-Id-Version: el\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" "product=libgtop&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2013-12-19 14:39+0000\n" -"PO-Revision-Date: 2014-07-09 13:59+0200\n" -"Last-Translator: Tom Tryfonidis \n" +"POT-Creation-Date: 2017-04-07 11:26+0000\n" +"PO-Revision-Date: 2017-09-09 10:35+0200\n" +"Last-Translator: Efstathios Iosifidis \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.6.5\n" +"X-Generator: Poedit 1.5.7\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "ανάγνωση %d byte" msgstr[1] "ανάγνωση %d bytes" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "ανάγνωση μεγέθους δεδομένων" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "ανάγνωση %lu byte δεδομένων" msgstr[1] "ανάγνωση %lu bytes δεδομένων" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "εγγραφή %d byte" msgstr[1] "εγγραφή %d bytes" -#: ../src/daemon/gnuserv.c:455 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "Ενεργοποίηση αποσφαλμάτωσης" -#: ../src/daemon/gnuserv.c:457 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "Ενεργοποίηση αναλυτικής εξόδου" -#: ../src/daemon/gnuserv.c:459 -msgid "Don't fork into background" +#: src/daemon/gnuserv.c:460 +#| msgid "Don't fork into background" +msgid "Don’t fork into background" msgstr "Να μη γίνει διακλάδωση στο παρασκήνιο" -#: ../src/daemon/gnuserv.c:461 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "Εκτελεσμένο από το inetd" -#: ../src/daemon/gnuserv.c:495 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" +#| msgid "" +#| "Run '%s --help' to see a full list of available command line options.\n" +msgid "Run “%s --help” to see a full list of available command line options.\n" msgstr "" -"Εκτελέστε '%s --help' για να δείτε μια πλήρη λίστα των διαθέσιμων επιλογών " +"Εκτελέστε «%s --help» για να δείτε μια πλήρη λίστα των διαθέσιμων επιλογών " "της γραμμής εντολών.\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "Κλείσιμο" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "Διακοπή" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "Έξοδος" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "Μη επιτρεπτή εντολή" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "Παγίδευση παρακολούθησης" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "Εγκατάλειψη" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "Σφάλμα EMT" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "Εξαίρεση κινητής υποδιαστολής" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "Βίαιος τερματισμός" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "Σφάλμα διαύλου" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "Παραβίαση κατάτμησης" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "Ακατάλληλο όρισμα σε κλήση συστήματος" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "Κατεστραμμένη διοχέτευση" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "Ξυπνητήρι" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "Τερματισμός" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "Επείγουσα συνθήκη σε υποδοχέα" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "Διακοπή" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "Διακοπή πληκτρολογίου" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "Συνέχεια" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "Έχει αλλάξει η κατάσταση της θυγατρικής διεργασίας" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "Ανάγνωση παρασκηνίου από tty" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "Εγγραφή παρασκηνίου σε tty" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "Η I/O είναι τώρα δυνατή" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "Έχει ξεπεραστεί το όριο της CPU" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "Έχει ξεπεραστεί το όριο μεγέθους αρχείου" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "Εικονικό ξυπνητήρι" -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "Έλεγχος απόδοσης ξυπνητηριού" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "Αλλαγή μεγέθους παραθύρου" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "Αίτηση πληροφορίας" # sysdeps/names/procsignal.c:49 -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "Σήμα 1 οριζόμενο από το χρήστη" # sysdeps/names/procsignal.c:49 -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "Σήμα 2 οριζόμενο από το χρήστη" From 93080274092ce0b48184d8e3c8b4972497fee844 Mon Sep 17 00:00:00 2001 From: Arash Mousavi Date: Fri, 29 Sep 2017 19:26:59 +0330 Subject: [PATCH 02/24] [L10N] Update Persian translation --- po/fa.po | 133 ++++++++++++++++++++++--------------------------------- 1 file changed, 53 insertions(+), 80 deletions(-) diff --git a/po/fa.po b/po/fa.po index ccbb3e28..eb80c39e 100644 --- a/po/fa.po +++ b/po/fa.po @@ -3,14 +3,15 @@ # Copyright (C) 2003, 2005 Sharif FarsiWeb, Inc. # Roozbeh Pournader , 2003. # Azin Azadi , 2005. -# Arash Mousavi , 2010, 2011. +# Arash Mousavi , 2010, 2011, 2017. # msgid "" msgstr "" "Project-Id-Version: libgtop HEAD\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-04-04 20:06+0000\n" -"PO-Revision-Date: 2011-04-24 17:45+0330\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=libgtop&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-04-07 11:26+0000\n" +"PO-Revision-Date: 2017-09-29 19:25+0330\n" "Last-Translator: Arash Mousavi \n" "Language-Team: Persian \n" "Language: fa\n" @@ -18,205 +19,177 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Poedit-Language: Persian\n" -"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" "X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 2.0.4\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "خوانده شد %Id بایت" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "‌اندازه‌ی داده‌های خوانده شده" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "%lu بایت اطلاعات خوانده شد" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "%Id بایت نوشته شد" -#: ../src/daemon/gnuserv.c:455 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "به کار انداختن اشکال‌زدایی" -#: ../src/daemon/gnuserv.c:457 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "به کار انداختن خروجی مفصل" -#: ../src/daemon/gnuserv.c:459 -msgid "Don't fork into background" +#: src/daemon/gnuserv.c:460 +msgid "Don’t fork into background" msgstr "عدم انشعاب در پس‌زمینه" -#: ../src/daemon/gnuserv.c:461 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "از inetd احضار شد" -#: ../src/daemon/gnuserv.c:495 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" -msgstr "برای نمایش تمام گزینه‌های موجود خط فرمان «%s --help» را اجرا کنید.\n" +msgid "" +"Run “%s --help” to see a full list of available command line " +"options.\n" +msgstr "" +"برای نمایش تمام گزینه‌های موجود خط فرمان «%s --help» را اجرا " +"کنید.\n" -#: ../sysdeps/osf1/siglist.c:27 -#: ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "معوق گذاشتن" -#: ../sysdeps/osf1/siglist.c:28 -#: ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "وقفه" -#: ../sysdeps/osf1/siglist.c:29 -#: ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "خروج" -#: ../sysdeps/osf1/siglist.c:30 -#: ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "دستورالعمل غیرمجاز" -#: ../sysdeps/osf1/siglist.c:31 -#: ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "ردگیری تله" -#: ../sysdeps/osf1/siglist.c:32 -#: ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "قطع کردن" -#: ../sysdeps/osf1/siglist.c:33 -#: ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "خطای EMT" -#: ../sysdeps/osf1/siglist.c:34 -#: ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "استثنای ممیز شناور" -#: ../sysdeps/osf1/siglist.c:35 -#: ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "خاموش کردن" -#: ../sysdeps/osf1/siglist.c:36 -#: ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "خطای گذرگاه" -#: ../sysdeps/osf1/siglist.c:37 -#: ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "تخلف قطعه قطعه کردن" -#: ../sysdeps/osf1/siglist.c:38 -#: ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "آرگومان بد به فراخوانی سیستم" -#: ../sysdeps/osf1/siglist.c:39 -#: ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "لوله‌ی شکسته" -#: ../sysdeps/osf1/siglist.c:40 -#: ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "ساعت زنگی" -#: ../sysdeps/osf1/siglist.c:41 -#: ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "پایان دادن" -#: ../sysdeps/osf1/siglist.c:42 -#: ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "وضعیت اورژانس برای سوکت" -#: ../sysdeps/osf1/siglist.c:43 -#: ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "توقف" -#: ../sysdeps/osf1/siglist.c:44 -#: ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "توقف صفحه‌کلید" -#: ../sysdeps/osf1/siglist.c:45 -#: ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "ادامه" -#: ../sysdeps/osf1/siglist.c:46 -#: ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "وضعیت بچه عوض شد" -#: ../sysdeps/osf1/siglist.c:47 -#: ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "خواندن پس‌زمینه از tty" -#: ../sysdeps/osf1/siglist.c:48 -#: ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "نوشتن پس‌زمینه در tty" -#: ../sysdeps/osf1/siglist.c:49 -#: ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "ورودی/خروجی اکنون امکان دارد" -#: ../sysdeps/osf1/siglist.c:50 -#: ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "بیشتر از محدودیت واحد پردازش مرکزی شد" -#: ../sysdeps/osf1/siglist.c:51 -#: ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "بیشتر از محدودیت اندازه‌ی پرونده شد" -#: ../sysdeps/osf1/siglist.c:52 -#: ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "ساعت هشدار مجازی" -#: ../sysdeps/osf1/siglist.c:53 -#: ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "درحال تنظیم زنگ هشدار" -#: ../sysdeps/osf1/siglist.c:54 -#: ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "تغییر اندازه‌ی پنجره" -#: ../sysdeps/osf1/siglist.c:55 -#: ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "درخواست اطلاعات" -#: ../sysdeps/osf1/siglist.c:56 -#: ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "سیگنال تعریف شده توسط کاربر ۱" -#: ../sysdeps/osf1/siglist.c:57 -#: ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "سیگنال تعریف شده توسط کاربر ۲" From d61659c143660e5fdb08f27a07abfe7d9bae6f8d Mon Sep 17 00:00:00 2001 From: Xavi Ivars Date: Thu, 5 Oct 2017 14:35:35 +0200 Subject: [PATCH 03/24] [l10n] Updated Catalan (Valencian) translation --- po/ca@valencia.po | 96 ++++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/po/ca@valencia.po b/po/ca@valencia.po index 25c9b50f..bb907b23 100644 --- a/po/ca@valencia.po +++ b/po/ca@valencia.po @@ -7,186 +7,188 @@ msgid "" msgstr "" "Project-Id-Version: libgtop 2.9.91\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-10 21:12+0200\n" -"PO-Revision-Date: 2011-04-04 22:04+0200\n" -"Last-Translator: Jordi Mallach \n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=libgtop&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-09-09 12:15+0000\n" +"PO-Revision-Date: 2017-09-01 00:54+0200\n" +"Last-Translator: Xavi Ivars \n" "Language-Team: Catalan \n" -"Language: ca@valencia\n" +"Language: ca-valencia\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n!=1;\n" +"X-Generator: Poedit 1.8.11\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "s'ha llegit %d byte" msgstr[1] "s'ha llegit %d octets" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "llig la mida de les dades" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "s'ha llegit %lu byte de dades" msgstr[1] "s'ha llegit %lu octets de dades" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "s'ha escrit %d byte" msgstr[1] "s'ha escrit %d octets" -#: ../src/daemon/gnuserv.c:455 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "Activa la depuració" -#: ../src/daemon/gnuserv.c:457 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "Activa l'eixida detallada" -#: ../src/daemon/gnuserv.c:459 -msgid "Don't fork into background" +#: src/daemon/gnuserv.c:460 +msgid "Don’t fork into background" msgstr "No bifurquis al segon pla" -#: ../src/daemon/gnuserv.c:461 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "Ha estat cridat des d'inetd" -#: ../src/daemon/gnuserv.c:495 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" +msgid "Run “%s --help” to see a full list of available command line options.\n" msgstr "" "Executeu «%s --help» per veure una llista completa de les opcions " "disponibles de la línia d'ordes.\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "Termina" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "Interromp" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "Ix" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "Instrucció il·legal" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "Captura traça" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "Interromp" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "Error EMT" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "Excepció de coma flotant" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "Mata" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "Error de bus" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "Violació de segment" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "Argument erroni a una crida al sistema" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "Conducte trencat" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "Alarma del rellotge" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "Terminació" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "Condició urgent en socket" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "Parada" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "Parada de teclat" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "Continua" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "L'estat del fill ha canviat" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "Lectura de tty en segon pla" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "Escriptura a tty en segon pla" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "E/S ara és possible" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "Límit de CPU excedit" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "Límit de mida de fitxer excedit" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "Alarma del rellotge virtual" -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "Alarma del rellotge perfilada" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "Canvi de la mida de la finestra" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "Sol·licitud d'informació" -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "Senyal 1 definit per l'usuari" -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "Senyal 2 definit per l'usuari" From aa4b2dc5eebfcad2db25d36664415c6dbff12aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Urban=C4=8Di=C4=8D?= Date: Fri, 20 Oct 2017 16:58:26 +0200 Subject: [PATCH 04/24] Updated Slovenian translation --- po/sl.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/sl.po b/po/sl.po index a6e041af..32ef34fb 100644 --- a/po/sl.po +++ b/po/sl.po @@ -4,7 +4,7 @@ # # Andraž Tori , 2000. # Matic Žgur , 2006. -# Matej Urbančič , 2007–2017. +# Matej Urbančič , + 2007–2017. # msgid "" msgstr "" @@ -73,7 +73,7 @@ msgstr "Poklican s programom inetd" #: src/daemon/gnuserv.c:498 #, c-format msgid "Run “%s --help” to see a full list of available command line options.\n" -msgstr "Za popoln seznam možnosti ukazne vrstice zaženite '%s --help'.\n" +msgstr "Za popoln seznam možnosti ukazne vrstice zaženite »%s --help«.\n" #: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" From 286db6d137cb7b7200159b11105fe8501bfc2d7e Mon Sep 17 00:00:00 2001 From: Kjartan Maraas Date: Mon, 6 Nov 2017 15:01:17 +0100 Subject: [PATCH 05/24] =?UTF-8?q?Updated=20Norwegian=20bokm=C3=A5l=20trans?= =?UTF-8?q?lation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- po/nb.po | 94 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/po/nb.po b/po/nb.po index 077ed2ea..74952178 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1,13 +1,13 @@ # Norwegian bokmål translation for libgtop # Copyright (C) 1998-2004 Free Software Foundation, Inc. -# Kjartan Maraas , 1998-2012. +# Kjartan Maraas , 1998-2017. # msgid "" msgstr "" -"Project-Id-Version: libgtop 2.28.x\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-01-28 16:53+0100\n" -"PO-Revision-Date: 2012-01-28 16:54+0100\n" +"Project-Id-Version: libgtop 3.26.x\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=libgtop&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-04-07 11:26+0000\n" +"PO-Revision-Date: 2017-11-06 15:01+0100\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian bokmål \n" "Language: nb\n" @@ -16,174 +16,174 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "les %d byte" msgstr[1] "les %d bytes" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "les størrelse på data" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "leste %lu byte med data" msgstr[1] "leste %lu bytes med data" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "skrev %d byte" msgstr[1] "skrev %d bytes" -#: ../src/daemon/gnuserv.c:455 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "Slå på avlusing" -#: ../src/daemon/gnuserv.c:457 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "Slå på utfyllende utskrift" -#: ../src/daemon/gnuserv.c:459 -msgid "Don't fork into background" +#: src/daemon/gnuserv.c:460 +msgid "Don’t fork into background" msgstr "Ikke forgren til bakgrunnen" -#: ../src/daemon/gnuserv.c:461 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "Kalt fra inetd" -#: ../src/daemon/gnuserv.c:495 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" +msgid "Run “%s --help” to see a full list of available command line options.\n" msgstr "" "Kjør '%s --help' for å se en full liste av tilgjengelige " "kommandolinjeflagg.\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "Frakobling" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "Avbrudd" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "Avslutt" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "Ugyldig instruksjon" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "Spor felle" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "Aborter" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "EMT-feil" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "Flyttallsunntak" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "Drep" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "Buss-feil" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "Segmentoverskridelse" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "Ugyldig argument til systemkall" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "Brukket rør" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "Alarmklokke" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "Terminering" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "Viktig tilstand på socket" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "Stopp" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "Tastaturstopp" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "Fortsett" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "Barnets status er endret" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "Lesing fra tty i bakgrunnen" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "Skriving til tty i bakgrunnen" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "I/O nå mulig" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "CPU-grense oversteget" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "Grense for filstørrelse overskredet" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "Virtuell alarmklokke" -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "Profilerer alarmklokken" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "Endring i vindusstørrelse" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "Informasjonsforespørsel" -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "Brukerdefinert signal 1" -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "Brukerdefinert signal 2" From 32a02dfcdb8e8e5aa4437f8b786d908e39baef38 Mon Sep 17 00:00:00 2001 From: Hannie Dumoleyn Date: Mon, 6 Nov 2017 16:33:03 +0000 Subject: [PATCH 06/24] Update Dutch translation --- po/nl.po | 101 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 52 insertions(+), 49 deletions(-) diff --git a/po/nl.po b/po/nl.po index 45640299..070d74d1 100644 --- a/po/nl.po +++ b/po/nl.po @@ -3,190 +3,193 @@ # Gert Dewit # Jeroen van der Vegt , 2003 # Tino Meinen , 2005 +# Nathan Follens , 2017 # msgid "" msgstr "" "Project-Id-Version: libgtop CVS\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-07-17 18:54+0200\n" -"PO-Revision-Date: 2007-07-17 18:54+0200 \n" -"Last-Translator: Wouter Bolsterlee \n" -"Language-Team: Dutch \n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=libgtop&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-08-22 20:26+0000\n" +"PO-Revision-Date: 2017-08-24 20:46+0200\n" +"Last-Translator: Nathan Follens \n" +"Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.3\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "%d byte gelezen" msgstr[1] "%d bytes gelezen" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "grootte van de gelezen data" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "%lu byte gelezen" msgstr[1] "%lu bytes gelezen" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "%d byte geschreven" msgstr[1] "%d bytes geschreven" -#: ../src/daemon/gnuserv.c:458 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "Debuggen inschakelen" -#: ../src/daemon/gnuserv.c:460 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "Extra uitvoer inschakelen" # niet naar achtergrond/niet naar achtergrond 'forken' -#: ../src/daemon/gnuserv.c:462 -msgid "Don't fork into background" -msgstr "Niet naar de achtergrond 'forken'" +#: src/daemon/gnuserv.c:460 +msgid "Don’t fork into background" +msgstr "Niet naar de achtergrond ‘forken’" -#: ../src/daemon/gnuserv.c:464 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "Aangeroepen vanuit inetd" -#: ../src/daemon/gnuserv.c:498 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" -msgstr "Start '%s --help' voor een lijst met opdrachtregelopties.\n" +msgid "Run “%s --help” to see a full list of available command line options.\n" +msgstr "Start “%s --help” voor een lijst met opdrachtregelopties.\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "Ophangen" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "Onderbreken" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "Afsluiten" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "Verboden instruktie" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "Trace trap" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "Afbreken" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "EMT fout" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "Floating-point uitzondering" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "Vernietigen" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "Busfout" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "Segmentatiefout" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "Verkeerd argument voor systeemaanroep" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "Gebroken pipe" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "Wekker" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "Beëindiging" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "Dringende situatie bij de socket" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "Stoppen" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "Keyboard stop" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "Doorgaan" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "De status van de dochter is veranderd" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "In de achtergrond wordt tty uitgelezen" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "In de achtergrond wordt naar tty geschreven" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "I/O is nu mogelijk" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "Processor begrenzing overschreden" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "Limiet bestandsomvang overschreden" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "Virtuele wekker" # profileringswekker/profielwekker -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "Profiling-wekker" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "Wijziging venstergrootte" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "Verzoek om informatie" -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "Door gebruiker gedefinieerd signaal 1" -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "Door gebruiker gedefinieerd signaal 2" From b31bce292bb22b968b760ce70766a6dd2da1b525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Thu, 25 Jan 2018 10:49:05 +0100 Subject: [PATCH 07/24] Add Robert and fix my email in AUTHORS. --- AUTHORS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 27f1043c..043baa5f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,3 +1,4 @@ Martin Baulig (martin@home-of-linux.org) Drazen Kacar (dave@srce.hr) -Benoît Dejean (tazforever@dlfp.org) +Benoît Dejean (bdejean@gmail.com) +Robert Roth (robert.roth.off@gmail.com) From 42b049f338363f92c1e93b4549fc944098eae674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Fri, 9 Feb 2018 18:54:30 +0100 Subject: [PATCH 08/24] Fix darwin build by adding dummy proc_io implementation. https://gitlab.gnome.org/GNOME/libgtop/issues/36 --- sysdeps/darwin/Makefile.am | 3 ++- sysdeps/darwin/glibtop_server.h | 1 + sysdeps/darwin/procio.c | 44 +++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 sysdeps/darwin/procio.c diff --git a/sysdeps/darwin/Makefile.am b/sysdeps/darwin/Makefile.am index 046658a5..dab61b29 100644 --- a/sysdeps/darwin/Makefile.am +++ b/sysdeps/darwin/Makefile.am @@ -8,7 +8,8 @@ libgtop_sysdeps_suid_2_0_la_SOURCES = open.c close.c \ cpu.c mem.c swap.c uptime.c loadavg.c shm_limits.c msg_limits.c \ sem_limits.c procaffinity.c proclist.c procstate.c procuid.c proctime.c \ procmem.c procsignal.c prockernel.c procsegment.c procargs.c \ -procmap.c netload.c ppp.c netlist.c procopenfiles.c procwd.c +procmap.c netload.c ppp.c netlist.c procopenfiles.c procwd.c \ +procio.c libgtopinclude_HEADERS = glibtop_server.h glibtop_machine.h libgtopincludedir = $(includedir)/libgtop-2.0 diff --git a/sysdeps/darwin/glibtop_server.h b/sysdeps/darwin/glibtop_server.h index 6235bc36..8cf44c79 100644 --- a/sysdeps/darwin/glibtop_server.h +++ b/sysdeps/darwin/glibtop_server.h @@ -45,6 +45,7 @@ G_BEGIN_DECLS #define GLIBTOP_SUID_PPP (1 << GLIBTOP_SYSDEPS_PPP) #define GLIBTOP_SUID_PROC_WD (1 << GLIBTOP_SYSDEPS_PROC_WD) #define GLIBTOP_SUID_PROC_AFFINITY 0 +#define GLIBTOP_SUID_PROC_IO 0 G_END_DECLS diff --git a/sysdeps/darwin/procio.c b/sysdeps/darwin/procio.c new file mode 100644 index 00000000..4cd647cb --- /dev/null +++ b/sysdeps/darwin/procio.c @@ -0,0 +1,44 @@ +/* Copyright (C) 2018 Benoît Dejean + This file is part of LibGTop. + + Contributed by Benoît Dejean , February 2018. + + LibGTop is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, + or (at your option) any later version. + + LibGTop is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with LibGTop; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include +#include +#include +#include + +static const unsigned long _glibtop_sysdeps_proc_io; + +/* Init function. */ + +void +_glibtop_init_proc_io_s (glibtop *server) +{ + server->sysdeps.proc_io = _glibtop_sysdeps_proc_io; +} + +/* Provides detailed information about a process. */ + +void +glibtop_get_proc_io_s (glibtop *server, glibtop_proc_io *buf, pid_t pid) +{ + memset (buf, 0, sizeof (glibtop_proc_io)); + buf->flags = _glibtop_sysdeps_proc_io; +} From f80b08a86503a75d7fe72ac8e9e67aeec7a2be37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jiri=20Gr=C3=B6nroos?= Date: Sat, 3 Mar 2018 16:19:43 +0000 Subject: [PATCH 09/24] Update Finnish translation --- po/fi.po | 97 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 50 insertions(+), 47 deletions(-) diff --git a/po/fi.po b/po/fi.po index 65180f26..4a855e37 100644 --- a/po/fi.po +++ b/po/fi.po @@ -8,184 +8,187 @@ msgid "" msgstr "" "Project-Id-Version: libgtop 1.90.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-08-06 16:33+0300\n" -"PO-Revision-Date: 2005-01-29 15:17+0200\n" -"Last-Translator: Pauli Virtanen \n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" +"POT-Creation-Date: 2018-01-25 10:19+0000\n" +"PO-Revision-Date: 2018-03-03 18:19+0200\n" +"Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.7.1\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "%d tavun luku" msgstr[1] "%d tavun luku" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "datan koon luku" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "%lu tavun luku" msgstr[1] "%lu tavun luku" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "%d tavun kirjoitus" msgstr[1] "%d tavun kirjoitus" -#: ../src/daemon/gnuserv.c:458 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "Käytä virheenetsintää" -#: ../src/daemon/gnuserv.c:460 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "Näytä lisätietoja" -#: ../src/daemon/gnuserv.c:462 -msgid "Don't fork into background" +#: src/daemon/gnuserv.c:460 +#, fuzzy +#| msgid "Don't fork into background" +msgid "Don’t fork into background" msgstr "Älä käynnistä taustaprosessia" -#: ../src/daemon/gnuserv.c:464 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "Käynnistetty inetd-prosssista" -#: ../src/daemon/gnuserv.c:498 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" -msgstr "Katso kaikki valitsimet käyttäen komentoa \"%s --help\".\n" +msgid "Run “%s --help” to see a full list of available command line options.\n" +msgstr "Katso kaikki valitsimet käyttäen komentoa “%s --help”.\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "Katkeaminen" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "Keskeytys" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "Lopetus" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "Virheellinen käsky" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "Jäljitys" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "Peruminen" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "EMT-virhe" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "Liukulukupoikkeus" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "Tappo" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "Väylävirhe" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "Muistinkäsittelyvirhe" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "Virheellinen järjestelmäkutsun parametri" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "Rikkinäinen putki" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "Ajastin" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "Sulkeutuminen" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "Kiireellinen tilanne pistokkeessa" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "Pysäytys" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "Näppäimistöpysäytys" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "Jatkaminen" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "Lapsen tila muuttunut" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "Tty:n taustaluku" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "Tty:n taustakirjoitus" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "I/O nyt mahdollista" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "CPU-raja ylittyi" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "Tiedoston kokoraja ylittyi" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "Valeajastin" -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "Profilointiajastin" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "Ikkunan koon muutos" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "Tietojen pyyntö" -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "Käyttäjän määrittelemä signaali 1" -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "Käyttäjän määrittelemä signaali 2" From b450bbc67c31bd6e2d111261dd8d8baa66635405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Sat, 17 Feb 2018 10:03:02 +0100 Subject: [PATCH 10/24] Try to fix all format flags in pprint example. --- examples/mountlist.c | 2 +- examples/netload.c | 24 +++--- examples/pprint.c | 179 ++++++++++++++++++++++--------------------- examples/procmap.c | 8 +- 4 files changed, 109 insertions(+), 104 deletions(-) diff --git a/examples/mountlist.c b/examples/mountlist.c index 13570f8f..bbb005fc 100644 --- a/examples/mountlist.c +++ b/examples/mountlist.c @@ -99,7 +99,7 @@ main (int argc, char *argv []) glibtop_get_fsusage (&fsusage, mount_entries [index].mountdir); - printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n", + printf ("%-16s %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9d\n", mount_entries [index].mountdir, fsusage.blocks, fsusage.bfree, fsusage.bavail, fsusage.files, diff --git a/examples/netload.c b/examples/netload.c index 6bd97865..979b245d 100644 --- a/examples/netload.c +++ b/examples/netload.c @@ -118,22 +118,22 @@ main (int argc, char *argv []) "\tAddress:\t\t0x%08x - %s\n" "\tSubnet:\t\t\t0x%08x - %s\n\n" "\tMTU:\t\t\t%d\n" - "\tCollisions:\t\t%llu\n\n" - "\tPackets In:\t\t%llu\n" - "\tPackets Out:\t\t%llu\n" - "\tPackets Total:\t\t%llu\n\n" - "\tBytes In:\t\t%llu\n" - "\tBytes Out:\t\t%llu\n" - "\tBytes Total:\t\t%llu\n\n" - "\tErrors In:\t\t%llu\n" - "\tErrors Out:\t\t%llu\n" - "\tErrors Total:\t\t%llu\n\n" + "\tCollisions:\t\t%" G_GUINT64_FORMAT "\n\n" + "\tPackets In:\t\t%" G_GUINT64_FORMAT "\n" + "\tPackets Out:\t\t%" G_GUINT64_FORMAT "\n" + "\tPackets Total:\t\t%" G_GUINT64_FORMAT "\n\n" + "\tBytes In:\t\t%" G_GUINT64_FORMAT "\n" + "\tBytes Out:\t\t%" G_GUINT64_FORMAT "\n" + "\tBytes Total:\t\t%" G_GUINT64_FORMAT "\n\n" + "\tErrors In:\t\t%" G_GUINT64_FORMAT "\n" + "\tErrors Out:\t\t%" G_GUINT64_FORMAT "\n" + "\tErrors Total:\t\t%" G_GUINT64_FORMAT "\n\n" "\tAddress6:\t\t%s\n" "\tPrefix6:\t\t%s\n" "\tScope6:\t\t\t%#03x\n\n" "\tHarware Address:\t%s\n\n", - netload.flags, - netload.if_flags, + (unsigned long long)netload.flags, + (unsigned long long)netload.if_flags, (guint32) netload.address, address_string, (guint32) netload.subnet, subnet_string, netload.mtu, diff --git a/examples/pprint.c b/examples/pprint.c index 683afde8..3bb65177 100644 --- a/examples/pprint.c +++ b/examples/pprint.c @@ -18,9 +18,14 @@ #define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \ (unsigned long) sizeof buf) -#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \ +#define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = %" FORMAT "\n", \ (unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA) +#define PPRINT_GUINT64(DATA) PPRINT(DATA, G_GUINT64_FORMAT) + +#define PPRINT_FLAGS(DATA) printf("\t%4lu B %3lu " "flags" " = " "%#llx" "\n", \ +(unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), (unsigned long long)buf.DATA) + #define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \ size_t i; \ printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \ @@ -32,7 +37,7 @@ do { i++; } while (i < SIZE && !buf.ARRAY[i]); \ printf("..., "); \ } else { \ - printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \ + printf(".%zd = %" FORMAT ", ", i, buf.ARRAY[i]); \ } \ } \ printf("}\n"); \ @@ -70,8 +75,8 @@ static void pprint_get_sysinfo(void) buf = glibtop_get_sysinfo(); HEADER_PPRINT(glibtop_get_sysinfo); - //PPRINT(flags, "%#llx"); - // PPRINT(ncpu, "%llu"); + //PPRINT_FLAGS(flags); + // PPRINT_GUINT64(ncpu); PPRINT_ENTRY_ARRAY(cpuinfo, buf->ncpu); FOOTER_PPRINT(); } @@ -83,25 +88,25 @@ static void pprint_get_cpu(void) glibtop_get_cpu(&buf); HEADER_PPRINT(glibtop_get_cpu); - PPRINT(flags, "%#llx"); - PPRINT(total, "%llu"); - PPRINT(user, "%llu"); - PPRINT(nice, "%llu"); - PPRINT(sys, "%llu"); - PPRINT(idle, "%llu"); - PPRINT(iowait, "%llu"); - PPRINT(irq, "%llu"); - PPRINT(softirq, "%llu"); - PPRINT(frequency, "%llu"); - PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu"); - PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu"); - PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu"); - PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu"); - PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu"); - PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu"); - PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu"); - PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu"); - PPRINT(xcpu_flags, "%llx"); + PPRINT_FLAGS(flags); + PPRINT_GUINT64(total); + PPRINT_GUINT64(user); + PPRINT_GUINT64(nice); + PPRINT_GUINT64(sys); + PPRINT_GUINT64(idle); + PPRINT_GUINT64(iowait); + PPRINT_GUINT64(irq); + PPRINT_GUINT64(softirq); + PPRINT_GUINT64(frequency); + PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, G_GUINT64_FORMAT); + PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, G_GUINT64_FORMAT); + PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, G_GUINT64_FORMAT); + PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, G_GUINT64_FORMAT); + PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, G_GUINT64_FORMAT); + PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, G_GUINT64_FORMAT); + PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, G_GUINT64_FORMAT); + PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, G_GUINT64_FORMAT); + PPRINT_FLAGS(xcpu_flags); FOOTER_PPRINT(); } @@ -115,15 +120,15 @@ static void pprint_get_fsusage(const char *mountpoint) HEADER_PPRINT(glibtop_get_fsusage); printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint); - PPRINT(flags, "%#llx"); - PPRINT(blocks, "%llu"); - PPRINT(bfree, "%llu"); - PPRINT(bavail, "%llu"); - PPRINT(files, "%llu"); - PPRINT(ffree, "%llu"); - PPRINT(block_size, "%u"); - PPRINT(read, "%llu"); - PPRINT(write, "%llu"); + PPRINT_FLAGS(flags); + PPRINT_GUINT64(blocks); + PPRINT_GUINT64(bfree); + PPRINT_GUINT64(bavail); + PPRINT_GUINT64(files); + PPRINT_GUINT64(ffree); + PPRINT(block_size, "u"); + PPRINT_GUINT64(read); + PPRINT_GUINT64(write); FOOTER_PPRINT(); } @@ -136,11 +141,11 @@ static void pprint_get_loadavg(void) glibtop_get_loadavg(&buf); HEADER_PPRINT(glibtop_get_loadavg); - PPRINT(flags, "%#llx"); - PPRINT_ARRAY(loadavg, 3, "%f"); - PPRINT(nr_running, "%llu"); - PPRINT(nr_tasks, "%llu"); - PPRINT(last_pid, "%llu"); + PPRINT_FLAGS(flags); + PPRINT_ARRAY(loadavg, 3, "f"); + PPRINT_GUINT64(nr_running); + PPRINT_GUINT64(nr_tasks); + PPRINT_GUINT64(last_pid); FOOTER_PPRINT(); } @@ -153,15 +158,15 @@ static void pprint_get_mem(void) glibtop_get_mem(&buf); HEADER_PPRINT(glibtop_get_mem); - PPRINT(flags, "%#llx"); - PPRINT(total, "%llu"); - PPRINT(used, "%llu"); - PPRINT(free, "%llu"); - PPRINT(shared, "%llu"); - PPRINT(buffer, "%llu"); - PPRINT(cached, "%llu"); - PPRINT(user, "%llu"); - PPRINT(locked, "%llu"); + PPRINT_FLAGS(flags); + PPRINT_GUINT64(total); + PPRINT_GUINT64(used); + PPRINT_GUINT64(free); + PPRINT_GUINT64(shared); + PPRINT_GUINT64(buffer); + PPRINT_GUINT64(cached); + PPRINT_GUINT64(user); + PPRINT_GUINT64(locked); FOOTER_PPRINT(); } @@ -177,12 +182,12 @@ static void pprint_get_mountlist(gboolean allfs) HEADER_PPRINT(glibtop_get_mountlist); printf("glibtop_get_mountlist (allfs = %d)\n", allfs); - PPRINT(flags, "%#llx"); - PPRINT(number, "%llu"); - PPRINT(total, "%llu"); - PPRINT(size, "%llu"); + PPRINT_FLAGS(flags); + PPRINT_GUINT64(number); + PPRINT_GUINT64(total); + PPRINT_GUINT64(size); - printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number); + printf("\t%4" G_GUINT64_FORMAT " B entries[%" G_GUINT64_FORMAT "] = \n\t\t{\n", buf.total, buf.number); for(i = 0; i < buf.number; ++i) { @@ -190,7 +195,7 @@ static void pprint_get_mountlist(gboolean allfs) " .devname = \"%s\"," " .mountir = \"%s\"," " .type = \"%s\" }\n", - (unsigned long) i, entries[i].dev, + (unsigned long) i, (unsigned long long)entries[i].dev, entries[i].devname, entries[i].mountdir, entries[i].type); @@ -211,14 +216,14 @@ static void pprint_get_msg_limits(void) glibtop_get_msg_limits(&buf); HEADER_PPRINT(glibtop_get_msg_limits); - PPRINT(flags, "%#llx"); - PPRINT(msgpool, "%llu"); - PPRINT(msgmap, "%llu"); - PPRINT(msgmax, "%llu"); - PPRINT(msgmnb, "%llu"); - PPRINT(msgmni, "%llu"); - PPRINT(msgssz, "%llu"); - PPRINT(msgtql, "%llu"); + PPRINT_FLAGS(flags); + PPRINT_GUINT64(msgpool); + PPRINT_GUINT64(msgmap); + PPRINT_GUINT64(msgmax); + PPRINT_GUINT64(msgmnb); + PPRINT_GUINT64(msgmni); + PPRINT_GUINT64(msgssz); + PPRINT_GUINT64(msgtql); FOOTER_PPRINT(); } @@ -232,7 +237,7 @@ static void pprint_get_netload(const char *iface) HEADER_PPRINT(glibtop_get_netload); printf("glibtop_get_netload (iface = \"%s\")\n", iface); - PPRINT(flags, "%#llx"); + PPRINT_FLAGS(flags); FOOTER_PPRINT(); } @@ -266,12 +271,12 @@ static void pprint_get_swap(void) glibtop_get_swap(&buf); HEADER_PPRINT(glibtop_get_swap); - PPRINT(flags, "%#llx"); - PPRINT(total, "%llu"); - PPRINT(used, "%llu"); - PPRINT(free, "%llu"); - PPRINT(pagein, "%llu"); - PPRINT(pageout, "%llu"); + PPRINT_FLAGS(flags); + PPRINT_GUINT64(total); + PPRINT_GUINT64(used); + PPRINT_GUINT64(free); + PPRINT_GUINT64(pagein); + PPRINT_GUINT64(pageout); FOOTER_PPRINT(); } @@ -284,10 +289,10 @@ static void pprint_get_uptime(void) glibtop_get_uptime(&buf); HEADER_PPRINT(glibtop_get_uptime); - PPRINT(flags, "%#llx"); - PPRINT(uptime, "%f"); - PPRINT(idletime, "%f"); - PPRINT(boot_time, "%llu"); + PPRINT_FLAGS(flags); + PPRINT(uptime, "f"); + PPRINT(idletime, "f"); + PPRINT_GUINT64(boot_time); FOOTER_PPRINT(); } @@ -301,12 +306,12 @@ static void pprint_get_proc_kernel(pid_t pid) glibtop_get_proc_kernel(&buf, pid); HEADER_PPRINT(glibtop_get_proc_kernel); - PPRINT(flags, "%#llx"); - PPRINT(k_flags, "%llu"); - PPRINT(min_flt, "%llu"); - PPRINT(maj_flt, "%llu"); - PPRINT(cmin_flt, "%llu"); - PPRINT(cmaj_flt, "%llu"); + PPRINT_FLAGS(flags); + PPRINT_GUINT64(k_flags); + PPRINT_GUINT64(min_flt); + PPRINT_GUINT64(maj_flt); + PPRINT_GUINT64(cmin_flt); + PPRINT_GUINT64(cmaj_flt); FOOTER_PPRINT(); } @@ -318,13 +323,13 @@ static void pprint_get_proc_mem(pid_t pid) glibtop_get_proc_mem(&buf, pid); HEADER_PPRINT(glibtop_get_proc_mem); - PPRINT(flags, "%#llx"); - PPRINT(size, "%llu"); - PPRINT(vsize, "%llu"); - PPRINT(resident, "%llu"); - PPRINT(share, "%llu"); - PPRINT(rss, "%llu"); - PPRINT(rss_rlim, "%llu"); + PPRINT_FLAGS(flags); + PPRINT_GUINT64(size); + PPRINT_GUINT64(vsize); + PPRINT_GUINT64(resident); + PPRINT_GUINT64(share); + PPRINT_GUINT64(rss); + PPRINT_GUINT64(rss_rlim); FOOTER_PPRINT(); } @@ -338,9 +343,9 @@ static void pprint_get_proc_affinity(pid_t pid) cpus = glibtop_get_proc_affinity(&buf, pid); HEADER_PPRINT(glibtop_get_proc_affinity); - PPRINT(flags, "%#llx"); - PPRINT(number, "%u"); - PPRINT(all, "%d"); + PPRINT_FLAGS(flags); + PPRINT(number, "u"); + PPRINT(all, "d"); printf("\taffinity="); for (i = 0; i < buf.number; i++) { diff --git a/examples/procmap.c b/examples/procmap.c index b32555bd..25bd2f79 100644 --- a/examples/procmap.c +++ b/examples/procmap.c @@ -162,10 +162,10 @@ main (int argc, char *argv []) fputc('\n', stderr); - g_print("smaps flags:%#llx size:%lluKiB rss:%lluKiB " - "shared_clean:%lluKib shared_dirty:%lluKiB " - "private_clean:%lluKiB private_dirty: %lluKiB\n", - maps[i].flags, + g_print("smaps flags:%#llx size:%" G_GUINT64_FORMAT "KiB rss:%" G_GUINT64_FORMAT "KiB " + "shared_clean:%" G_GUINT64_FORMAT "Kib shared_dirty:%" G_GUINT64_FORMAT "KiB " + "private_clean:%" G_GUINT64_FORMAT "KiB private_dirty: %" G_GUINT64_FORMAT "KiB\n", + (unsigned long long)maps[i].flags, maps[i].size >> 10, maps[i].rss >> 10, maps[i].shared_clean >> 10, From c65cb3e46b271535fc475f4ba3118d60b17a450c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Wed, 7 Mar 2018 19:37:28 +0100 Subject: [PATCH 11/24] Rename GLIBTOP_SUID_PROC_FILE to GLIBTOP_SUID_PROC_OPEN_FILES. The previous name is incorrect and inconsistent with the code generated by lib.pl. Also add missing hooks. This symbol, although exposed in public headers is not part of the API and is only used internally. --- include/glibtop/procopenfiles.h | 4 ++-- lib/sysdeps.c | 7 +++++++ sysdeps/cygwin/glibtop_server.h | 2 +- sysdeps/linux/glibtop_server.h | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/include/glibtop/procopenfiles.h b/include/glibtop/procopenfiles.h index 31320ebe..4bcc2fda 100644 --- a/include/glibtop/procopenfiles.h +++ b/include/glibtop/procopenfiles.h @@ -105,7 +105,7 @@ struct _glibtop_proc_open_files glibtop_open_files_entry * glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid); -#if GLIBTOP_SUID_PROC_FILE +#if GLIBTOP_SUID_PROC_OPEN_FILES #define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_p #else #define glibtop_get_proc_open_files_r glibtop_get_proc_open_files_s @@ -124,7 +124,7 @@ glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid); glibtop_open_files_entry * glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); -#if GLIBTOP_SUID_PROC_FILE +#if GLIBTOP_SUID_PROC_OPEN_FILES void _glibtop_init_proc_open_files_p (glibtop *server); diff --git a/lib/sysdeps.c b/lib/sysdeps.c index e942fd4a..2a761576 100644 --- a/lib/sysdeps.c +++ b/lib/sysdeps.c @@ -44,6 +44,7 @@ GLIBTOP_SUID_PROC_KERNEL + GLIBTOP_SUID_PROC_SEGMENT + GLIBTOP_SUID_PROC_ARGS + GLIBTOP_SUID_PROC_MAP + +GLIBTOP_SUID_PROC_OPEN_FILES + GLIBTOP_SUID_NETLOAD + GLIBTOP_SUID_NETLIST + GLIBTOP_SUID_PROC_WD + @@ -123,6 +124,9 @@ const _glibtop_init_func_t _glibtop_init_hook_s [] = { #endif #if !GLIBTOP_SUID_PROC_IO _glibtop_init_proc_io_s, +#endif +#if !GLIBTOP_SUID_PROC_OPEN_FILES + _glibtop_init_proc_open_files_s, #endif NULL }; @@ -199,6 +203,9 @@ const _glibtop_init_func_t _glibtop_init_hook_p [] = { #endif #if GLIBTOP_SUID_PROC_IO _glibtop_init_proc_io_p, +#endif +#if GLIBTOP_SUID_PROC_OPEN_FILES + _glibtop_init_proc_open_files_p, #endif NULL }; diff --git a/sysdeps/cygwin/glibtop_server.h b/sysdeps/cygwin/glibtop_server.h index b1f20f94..bfd7cc65 100644 --- a/sysdeps/cygwin/glibtop_server.h +++ b/sysdeps/cygwin/glibtop_server.h @@ -45,6 +45,6 @@ #define GLIBTOP_SUID_PROC_AFFINITY 0 #define GLIBTOP_SUID_PROC_WD 0 #define GLIBTOP_SUID_PPP 0 -#define GLIBTOP_SUID_PROC_FILE 0 +#define GLIBTOP_SUID_PROC_OPEN_FILES 0 #endif /* __CYGWIN__GLIBTOP_SERVER_H__ */ diff --git a/sysdeps/linux/glibtop_server.h b/sysdeps/linux/glibtop_server.h index 8e591eab..6240d5de 100644 --- a/sysdeps/linux/glibtop_server.h +++ b/sysdeps/linux/glibtop_server.h @@ -45,7 +45,7 @@ #define GLIBTOP_SUID_PROC_WD 0 #define GLIBTOP_SUID_PROC_AFFINITY 0 #define GLIBTOP_SUID_PPP 0 -#define GLIBTOP_SUID_PROC_FILE 0 +#define GLIBTOP_SUID_PROC_OPEN_FILES 0 #define GLIBTOP_SUID_PROC_IO 0 #endif /* __LINUX__GLIBTOP_SERVER_H__ */ From 4f36c74b68759599fe86009be9d54c6ba8d0c652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Wed, 7 Mar 2018 20:47:44 +0100 Subject: [PATCH 12/24] Fix build on freebsd and darwin. --- .gitignore | 5 ++++- sysdeps/darwin/glibtop_server.h | 1 + sysdeps/freebsd/glibtop_server.h | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5446f725..5d981f26 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,9 @@ *.in *.la *.lo +*.new *.o +*.old *.out *.patch *.pot @@ -24,6 +26,7 @@ INSTALL Makefile Makevars.template Rules-quot +\#*\# aclocal.m4 autom4te.cache/ compile @@ -55,6 +58,7 @@ doc/texinfo.tex doc/version.texi examples/affinity examples/df +examples/diskio examples/first examples/free examples/mountlist @@ -70,7 +74,6 @@ examples/smp examples/sysdeps examples/timings examples/wd -examples/diskio gtk-doc.make install-sh lib/GTop-2.0.gir diff --git a/sysdeps/darwin/glibtop_server.h b/sysdeps/darwin/glibtop_server.h index 8cf44c79..92c433ab 100644 --- a/sysdeps/darwin/glibtop_server.h +++ b/sysdeps/darwin/glibtop_server.h @@ -46,6 +46,7 @@ G_BEGIN_DECLS #define GLIBTOP_SUID_PROC_WD (1 << GLIBTOP_SYSDEPS_PROC_WD) #define GLIBTOP_SUID_PROC_AFFINITY 0 #define GLIBTOP_SUID_PROC_IO 0 +#define GLIBTOP_SUID_PROC_OPEN_FILES 0 G_END_DECLS diff --git a/sysdeps/freebsd/glibtop_server.h b/sysdeps/freebsd/glibtop_server.h index d908ea7c..86a02eea 100644 --- a/sysdeps/freebsd/glibtop_server.h +++ b/sysdeps/freebsd/glibtop_server.h @@ -48,6 +48,7 @@ G_BEGIN_DECLS #define GLIBTOP_SUID_PROC_WD 0 #define GLIBTOP_SUID_PROC_AFFINITY 0 #define GLIBTOP_SUID_PROC_IO (1 << GLIBTOP_SYSDEPS_PROC_IO) +#define GLIBTOP_SUID_PROC_OPEN_FILES 0 G_END_DECLS From cab8791fdd6a174b1aea06410214800a774a729b Mon Sep 17 00:00:00 2001 From: Chao-Hsiung Liao Date: Sat, 10 Mar 2018 12:05:24 +0000 Subject: [PATCH 13/24] Update Chinese (Taiwan) translation --- po/zh_TW.po | 93 +++++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/po/zh_TW.po b/po/zh_TW.po index ebb273b6..66419675 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -5,9 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: libgtop 2.25.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-02-09 08:05+0800\n" -"PO-Revision-Date: 2008-02-14 23:04+0800\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" +"POT-Creation-Date: 2018-02-11 08:14+0000\n" +"PO-Revision-Date: 2018-02-28 20:16+0800\n" "Last-Translator: Abel Cheung \n" "Language-Team: Chinese (Taiwan) \n" "Language: zh_TW\n" @@ -15,171 +15,172 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.6\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "讀入 %d 位元組" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "讀入資料大小" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "讀入 %lu 位元組的資料" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "寫入 %d 位元組" -#: ../src/daemon/gnuserv.c:455 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "啟用除錯碼" -#: ../src/daemon/gnuserv.c:457 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "顯示詳細的輸出訊息" -#: ../src/daemon/gnuserv.c:459 -msgid "Don't fork into background" +#: src/daemon/gnuserv.c:460 +msgid "Don’t fork into background" msgstr "不要放置於背景執行" -#: ../src/daemon/gnuserv.c:461 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "透過 inetd 執行" -#: ../src/daemon/gnuserv.c:495 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" -msgstr "請執行‘%s --help’查看完整的指令列選項清單。\n" +msgid "Run “%s --help” to see a full list of available command line options.\n" +msgstr "請執行 「%s --help」 查看完整的指令列選項清單。\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "掛斷(Hangup)" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "中斷(Interrupt)" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "結束" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "不合法硬體指示" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "TRAP 硬體錯誤" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "不正常中止" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "EMT 硬體錯誤" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "浮點數運算出現例外情況" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "強行中止 (Kill)" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "匯流排錯誤" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "記憶體區段錯誤" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "系統函式參數錯誤" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "管線中斷" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "系統時鐘訊號" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "強行中止 (Term)" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "socket 緊急情況" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "暫停進程" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "鍵盤停止" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "繼續進程" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "副進程狀態已改變" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "背景進程從 tty 讀入資料" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "背景進程向 tty 輸出資料" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "可重新進行輸入/輸出" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "超過 CPU 限制" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "超過檔案大小限制" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "虛擬時鐘訊號" -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "效能測試計時器週期結束" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "更改視窗尺寸" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "要求進程資訊" -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "用戶自定訊號 1" -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "用戶自定訊號 2" From ec662d01dac16b817981da9ace55230441ef4cd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Sat, 17 Feb 2018 10:21:30 +0100 Subject: [PATCH 14/24] Make linux build with server. Add suid infrastructure. Demo proc_map. --- libgtop-sysdeps.m4 | 3 +- sysdeps/linux/Makefile.am | 6 ++- sysdeps/linux/glibtop_machine.h | 4 ++ sysdeps/linux/glibtop_server.h | 2 +- sysdeps/linux/glibtop_suid.h | 49 ++++++++++++++++++++ sysdeps/linux/procmap.c | 12 ++++- sysdeps/linux/suid_open.c | 80 +++++++++++++++++++++++++++++++++ 7 files changed, 150 insertions(+), 6 deletions(-) create mode 100644 sysdeps/linux/glibtop_suid.h create mode 100644 sysdeps/linux/suid_open.c diff --git a/libgtop-sysdeps.m4 b/libgtop-sysdeps.m4 index 421af0c0..fff7af6a 100644 --- a/libgtop-sysdeps.m4 +++ b/libgtop-sysdeps.m4 @@ -33,9 +33,10 @@ AC_DEFUN([GNOME_LIBGTOP_SYSDEPS],[ linux*) libgtop_sysdeps_dir=linux libgtop_have_sysinfo=yes - libgtop_need_server=no + libgtop_need_server=yes libgtop_sysdeps_private_mountlist=yes libgtop_sysdeps_private_fsusage=yes + libgtop_postinstall='chown root $(bindir)/libgtop_server2 && chmod 4755 $(bindir)/libgtop_server2' ;; netbsd*|bsdi*) libgtop_sysdeps_dir=bsd diff --git a/sysdeps/linux/Makefile.am b/sysdeps/linux/Makefile.am index 7baabe0b..fdd54696 100644 --- a/sysdeps/linux/Makefile.am +++ b/sysdeps/linux/Makefile.am @@ -1,6 +1,6 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ -noinst_LTLIBRARIES = libgtop_sysdeps-2.0.la +noinst_LTLIBRARIES = libgtop_sysdeps-2.0.la libgtop_sysdeps_suid-2.0.la EXTRA_DIST = procmap_smaps.gperf procmap_smaps.c @@ -17,7 +17,9 @@ libgtop_sysdeps_2_0_la_LIBADD = @GLIB_LIBS@ # libgtop_sysdeps_2_0_la_LDFLAGS = $(LT_VERSION_INFO) -libgtopinclude_HEADERS = glibtop_server.h glibtop_machine.h +libgtop_sysdeps_suid_2_0_la_SOURCES = suid_open.c + +libgtopinclude_HEADERS = glibtop_server.h glibtop_machine.h glibtop_suid.h libgtopincludedir = $(includedir)/libgtop-2.0 noinst_HEADERS = glibtop_private.h diff --git a/sysdeps/linux/glibtop_machine.h b/sysdeps/linux/glibtop_machine.h index 5c1daad0..ad3f5f83 100644 --- a/sysdeps/linux/glibtop_machine.h +++ b/sysdeps/linux/glibtop_machine.h @@ -28,6 +28,10 @@ G_BEGIN_DECLS struct _glibtop_machine { + uid_t uid; + uid_t euid; + gid_t gid; + gid_t egid; }; G_END_DECLS diff --git a/sysdeps/linux/glibtop_server.h b/sysdeps/linux/glibtop_server.h index 6240d5de..75f63160 100644 --- a/sysdeps/linux/glibtop_server.h +++ b/sysdeps/linux/glibtop_server.h @@ -39,7 +39,7 @@ #define GLIBTOP_SUID_PROC_KERNEL 0 #define GLIBTOP_SUID_PROC_SEGMENT 0 #define GLIBTOP_SUID_PROC_ARGS 0 -#define GLIBTOP_SUID_PROC_MAP 0 +#define GLIBTOP_SUID_PROC_MAP (1 << GLIBTOP_SYSDEPS_PROC_MAP) #define GLIBTOP_SUID_NETLOAD 0 #define GLIBTOP_SUID_NETLIST 0 #define GLIBTOP_SUID_PROC_WD 0 diff --git a/sysdeps/linux/glibtop_suid.h b/sysdeps/linux/glibtop_suid.h new file mode 100644 index 00000000..b64f1645 --- /dev/null +++ b/sysdeps/linux/glibtop_suid.h @@ -0,0 +1,49 @@ +/* Copyright (C) 2018 Benoît Dejean + + LibGTop is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, + or (at your option) any later version. + + LibGTop is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with LibGTop; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef __GLIBTOP_SUID_H__ +#define __GLIBTOP_SUID_H__ + +G_BEGIN_DECLS + +#include + +static inline void glibtop_suid_enter (glibtop *server) { + glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); + setreuid (server->machine->uid, server->machine->euid); + glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); +}; + +static inline void glibtop_suid_leave (glibtop *server) { + glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); + if (setreuid (server->machine->euid, server->machine->uid)) + _exit (1); + glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); +}; + +void +glibtop_init_p (glibtop *server, const unsigned long features, + const unsigned flags); +void +glibtop_open_p (glibtop *server, const char *program_name, + const unsigned long features, + const unsigned flags); + +G_END_DECLS + +#endif diff --git a/sysdeps/linux/procmap.c b/sysdeps/linux/procmap.c index 546d08af..cbbd5c42 100644 --- a/sysdeps/linux/procmap.c +++ b/sysdeps/linux/procmap.c @@ -30,6 +30,7 @@ #include #include "glibtop_private.h" +#include "glibtop_suid.h" #include "procmap_smaps.c" @@ -60,7 +61,7 @@ static const unsigned long _glibtop_sysdeps_map_entry_smaps = /* Init function. */ void -_glibtop_init_proc_map_s (glibtop *server) +_glibtop_init_proc_map_p (glibtop *server) { server->sysdeps.proc_map = _glibtop_sysdeps_proc_map; } @@ -184,7 +185,7 @@ parse_line(char* line, glibtop_map_entry * -glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid) +glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid) { char procfilename[GLIBTOP_MAP_FILENAME_LEN+1]; @@ -214,10 +215,17 @@ glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid) snprintf (procfilename, sizeof procfilename, filename, (unsigned)pid); + glibtop_suid_enter (server); + if((maps = fopen (procfilename, "r")) == NULL) { + glibtop_suid_leave (server); return (glibtop_map_entry*) g_array_free(entry_list, TRUE); } + glibtop_debug("opened %p", maps); + + glibtop_suid_leave (server); + while(TRUE) { unsigned long perm; diff --git a/sysdeps/linux/suid_open.c b/sysdeps/linux/suid_open.c new file mode 100644 index 00000000..91b22569 --- /dev/null +++ b/sysdeps/linux/suid_open.c @@ -0,0 +1,80 @@ +/* Copyright (C) 2018 Benoît Dejean + + LibGTop is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, + or (at your option) any later version. + + LibGTop is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with LibGTop; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include +#include +#include +#include +#include +#include +#include + + +/* !!! THIS FUNCTION RUNS SUID ROOT - CHANGE WITH CAUTION !!! */ + +void +glibtop_init_p (glibtop *server, const unsigned long features, + const unsigned flags) +{ + const _glibtop_init_func_t *init_fkt; + + if (server == NULL) + glibtop_error_r (NULL, "glibtop_init_p (server == NULL)"); + + /* Do the initialization, but only if not already initialized. */ + + if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) { + glibtop_open_p (server, "glibtop", features, flags); + + for (init_fkt = _glibtop_init_hook_p; *init_fkt; init_fkt++) + (*init_fkt) (server); + + server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS; + } +} + +void +glibtop_open_p (glibtop *server, const char *program_name, + const unsigned long features, + const unsigned flags) +{ + glibtop_debug ("glibtop_open_p ()"); + + /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */ + server->machine->uid = getuid (); + server->machine->euid = geteuid (); + server->machine->gid = getgid (); + server->machine->egid = getegid (); + + /* Drop priviledges. */ + + glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); + + if (setreuid (server->machine->euid, server->machine->uid)) + _exit (1); + + if (setregid (server->machine->egid, server->machine->gid)) + _exit (1); + + glibtop_debug ("uid=%d euid=%d gid=%d egid=%d", getuid(), geteuid(), getgid(), getegid()); + + /* !!! END OF SUID ROOT PART !!! */ + + /* Our effective uid is now those of the user invoking the server, + * so we do no longer have any priviledges. */ +} From e4335d4db28491c256d80efb63492d83d0560a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Mon, 26 Mar 2018 18:14:58 +0200 Subject: [PATCH 15/24] glibtop_get_proc_map on Linux doesn't need to be SUID. Revert this proof of concept. Add C file with comments to document how to make a call SUID. --- sysdeps/linux/glibtop_server.h | 2 +- sysdeps/linux/procmap.c | 12 +- sysdeps/linux/procmap.c.suid_example | 334 +++++++++++++++++++++++++++ 3 files changed, 337 insertions(+), 11 deletions(-) create mode 100644 sysdeps/linux/procmap.c.suid_example diff --git a/sysdeps/linux/glibtop_server.h b/sysdeps/linux/glibtop_server.h index 75f63160..6240d5de 100644 --- a/sysdeps/linux/glibtop_server.h +++ b/sysdeps/linux/glibtop_server.h @@ -39,7 +39,7 @@ #define GLIBTOP_SUID_PROC_KERNEL 0 #define GLIBTOP_SUID_PROC_SEGMENT 0 #define GLIBTOP_SUID_PROC_ARGS 0 -#define GLIBTOP_SUID_PROC_MAP (1 << GLIBTOP_SYSDEPS_PROC_MAP) +#define GLIBTOP_SUID_PROC_MAP 0 #define GLIBTOP_SUID_NETLOAD 0 #define GLIBTOP_SUID_NETLIST 0 #define GLIBTOP_SUID_PROC_WD 0 diff --git a/sysdeps/linux/procmap.c b/sysdeps/linux/procmap.c index cbbd5c42..546d08af 100644 --- a/sysdeps/linux/procmap.c +++ b/sysdeps/linux/procmap.c @@ -30,7 +30,6 @@ #include #include "glibtop_private.h" -#include "glibtop_suid.h" #include "procmap_smaps.c" @@ -61,7 +60,7 @@ static const unsigned long _glibtop_sysdeps_map_entry_smaps = /* Init function. */ void -_glibtop_init_proc_map_p (glibtop *server) +_glibtop_init_proc_map_s (glibtop *server) { server->sysdeps.proc_map = _glibtop_sysdeps_proc_map; } @@ -185,7 +184,7 @@ parse_line(char* line, glibtop_map_entry * -glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid) +glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid) { char procfilename[GLIBTOP_MAP_FILENAME_LEN+1]; @@ -215,17 +214,10 @@ glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid) snprintf (procfilename, sizeof procfilename, filename, (unsigned)pid); - glibtop_suid_enter (server); - if((maps = fopen (procfilename, "r")) == NULL) { - glibtop_suid_leave (server); return (glibtop_map_entry*) g_array_free(entry_list, TRUE); } - glibtop_debug("opened %p", maps); - - glibtop_suid_leave (server); - while(TRUE) { unsigned long perm; diff --git a/sysdeps/linux/procmap.c.suid_example b/sysdeps/linux/procmap.c.suid_example new file mode 100644 index 00000000..07a7a680 --- /dev/null +++ b/sysdeps/linux/procmap.c.suid_example @@ -0,0 +1,334 @@ +/* +Don't forget to set + #define GLIBTOP_SUID_PROC_MAP (1 << GLIBTOP_SYSDEPS_PROC_MAP) +in sysdeps/linux/glibtop_server.h + +Make sure to pair each glibtop_suid_enter with a glibtop_suid_leave. +*/ + +/* Copyright (C) 1998-99 Martin Baulig + This file is part of LibGTop 1.0. + + Contributed by Martin Baulig , April 1998. + + LibGTop is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, + or (at your option) any later version. + + LibGTop is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with LibGTop; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include +#include + +#include +#include +#include + +#include +#include + +#include "glibtop_private.h" +#include "glibtop_suid.h" + +#include "procmap_smaps.c" + +#define MAPS_FILE "/proc/%u/maps" +#define SMAPS_FILE "/proc/%u/smaps" + + +#define PROC_MAPS_FORMAT "%16" G_GINT64_MODIFIER "x-%16" G_GINT64_MODIFIER "x %4c %16" G_GINT64_MODIFIER "x %02hx:%02hx %" G_GINT64_MODIFIER "u%*[ ]%n" + + +static const unsigned long _glibtop_sysdeps_proc_map = +(1L << GLIBTOP_PROC_MAP_NUMBER) + (1L << GLIBTOP_PROC_MAP_TOTAL) + +(1L << GLIBTOP_PROC_MAP_SIZE); + +static const unsigned long _glibtop_sysdeps_map_entry = +(1L << GLIBTOP_MAP_ENTRY_START) + (1L << GLIBTOP_MAP_ENTRY_END) + +(1L << GLIBTOP_MAP_ENTRY_OFFSET) + (1L << GLIBTOP_MAP_ENTRY_PERM) + +(1L << GLIBTOP_MAP_ENTRY_INODE) + (1L << GLIBTOP_MAP_ENTRY_DEVICE) + +(1L << GLIBTOP_MAP_ENTRY_FILENAME); + +static const unsigned long _glibtop_sysdeps_map_entry_smaps = +(1UL << GLIBTOP_MAP_ENTRY_SIZE) + (1UL << GLIBTOP_MAP_ENTRY_RSS) + +(1UL << GLIBTOP_MAP_ENTRY_PSS) + (1UL << GLIBTOP_MAP_ENTRY_SWAP) + +(1UL << GLIBTOP_MAP_ENTRY_SHARED_DIRTY) + (1UL << GLIBTOP_MAP_ENTRY_SHARED_CLEAN) + +(1UL << GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY) + (1UL << GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN); + + +/* Init function. */ + +void +_glibtop_init_proc_map_p (glibtop *server) +{ + server->sysdeps.proc_map = _glibtop_sysdeps_proc_map; +} + +/* Provides detailed information about a process. */ + + +static const char* +is_smap_value(const char* s) +{ + for ( ; *s; ++s) { + + if (isspace(*s)) + return NULL; + + if (*s == ':') + return s; + } + + return NULL; +} + + +/* + Returns whether line is a 'value' line + and add if we know its meaning +*/ +static gboolean +parse_smaps(glibtop_map_entry *entry, const char* line) +{ + + const struct smap_value* smap; + size_t len; + const char* colon; + + if ((colon = is_smap_value(line)) == NULL) + return FALSE; + + len = colon - line; + smap = _glibtop_find_smap(line, len); + +// g_debug("smap %s -> %p", line, smap); + + if (smap) { + char *offset; + guint64 *value; + + offset = (void*) entry; + offset += smap->offset; + value = (void*) offset; + + *value = get_scaled(line + len, NULL); + } + + return TRUE; +} + + +/* + sscanf is too slow + and system-monitor calls procmap for each pid every second + + manual parsing is faster + + error checking is weaker +*/ + +static gboolean +parse_line(char* line, + guint64* start, guint64* end, char flags[4], guint64* offset, + gushort* dev_major, gushort* dev_minor, guint64* inode, + char** filename) +{ + /* %16llx-%16llx %4c %16llx %02hx:%02hx %llu%*[ ]%n */ + + char *p, *next; + + p = line; + + *start = strtoull(p, &p, 16); + + if (G_UNLIKELY(*p != '-')) + return FALSE; + p++; + + *end = strtoull(p, &p, 16); + + p = next_token(p); + + memcpy(flags, p, 4); + p += 4; + + *offset = strtoull(p, &p, 16); + + *dev_major = strtoul(p, &p, 16); + + if (G_UNLIKELY(*p != ':')) + return FALSE; + p++; + + *dev_minor = strtoul(p, &p, 16); + + *inode = strtoull(p, &p, 10); + + p = next_token(p); + + *filename = p; + + for ( ; *p; p++) { + if (*p == '\n') { + *p = '\0'; + break; + } + } + + return TRUE; +} + + + + + +glibtop_map_entry * +glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid) +{ + char procfilename[GLIBTOP_MAP_FILENAME_LEN+1]; + + /* + default size of 100 maybe inaccurate. + It's the average number of entry per process on my laptop + */ + + size_t added = 0, entry_list_capacity = 100; + GArray *entry_list = g_array_sized_new(FALSE, FALSE, + sizeof(glibtop_map_entry), + entry_list_capacity); + FILE *maps; + const char *filename; + gboolean has_smaps; + char *line = NULL; + size_t line_size = 0; + + memset (buf, 0, sizeof (glibtop_proc_map)); + + has_smaps = server->os_version_code >= LINUX_VERSION_CODE(2, 6, 14); + + if (has_smaps) + filename = SMAPS_FILE; + else + filename = MAPS_FILE; + + snprintf (procfilename, sizeof procfilename, filename, (unsigned)pid); + + glibtop_suid_enter (server); + + if((maps = fopen (procfilename, "r")) == NULL) { + glibtop_suid_leave (server); + return (glibtop_map_entry*) g_array_free(entry_list, TRUE); + } + + glibtop_debug("opened %p", maps); + + glibtop_suid_leave (server); + + while(TRUE) + { + unsigned long perm; + /* int line_end; */ + + unsigned short dev_major, dev_minor; + guint64 start, end, offset, inode; + char flags[4]; + char *filename; + + glibtop_map_entry *entry; + + if (getline(&line, &line_size, maps) == -1) + break; + + new_entry_line: + + if (!parse_line(line, + &start, &end, flags, &offset, + &dev_major, &dev_minor, &inode, &filename)) + continue; + + /* + if (sscanf(line, PROC_MAPS_FORMAT, + &start, &end, flags, &offset, + &dev_major, &dev_minor, &inode, &line_end) != 7) + continue; + + filename = line + line_end; + g_strstrip(filename); + */ + + /* Compute access permissions. */ + perm = 0; + + if (flags [0] == 'r') + perm |= GLIBTOP_MAP_PERM_READ; + + if (flags [1] == 'w') + perm |= GLIBTOP_MAP_PERM_WRITE; + + if (flags [2] == 'x') + perm |= GLIBTOP_MAP_PERM_EXECUTE; + + if (flags [3] == 's') + perm |= GLIBTOP_MAP_PERM_SHARED; + else if (flags [3] == 'p') + perm |= GLIBTOP_MAP_PERM_PRIVATE; + + /* + avoid copying the entry, grow by 1 and point to the last + element. + */ + + if (G_UNLIKELY(added >= entry_list_capacity)) { + entry_list_capacity *= 2; + g_array_set_size(entry_list, entry_list_capacity); + } + + entry = &g_array_index(entry_list, glibtop_map_entry, added++); + + entry->flags = _glibtop_sysdeps_map_entry; + entry->start = start; + entry->end = end; + entry->offset = offset; + entry->perm = perm; + entry->device = MKDEV(dev_major, dev_minor); + entry->inode = inode; + g_strlcpy(entry->filename, filename, sizeof entry->filename); + + if (has_smaps) { + ssize_t ret; + entry->flags |= _glibtop_sysdeps_map_entry_smaps; + + while ((ret = getline(&line, &line_size, maps)) != -1) { + if (!parse_smaps(entry, line)) + goto new_entry_line; + } + + if (ret == -1) + goto eof; + } + } + +eof: + + g_array_set_size(entry_list, added); + free(line); + fclose (maps); + + buf->flags = _glibtop_sysdeps_proc_map; + + buf->number = added; + buf->size = sizeof (glibtop_map_entry); + buf->total = buf->number * buf->size; + + return (glibtop_map_entry*) g_array_free(entry_list, FALSE); +} From ec6a87e670c1f10bdf3bba729bb9a9da3a2ba119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Mon, 26 Mar 2018 18:28:39 +0200 Subject: [PATCH 16/24] Bump version number and SO libgtop_revision. --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 40ba5f46..9fe7363b 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ dnl Configure script for the Gnome library dnl m4_define([libgtop_major_version], [2]) -m4_define([libgtop_minor_version], [38]) +m4_define([libgtop_minor_version], [39]) m4_define([libgtop_micro_version], [0]) m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version]) @@ -12,7 +12,7 @@ m4_define([libgtop_current], [11]) dnl increment any time the source changes; set to dnl 0 if you increment CURRENT -m4_define([libgtop_revision], [0]) +m4_define([libgtop_revision], [1]) dnl increment if any interfaces have been added; set to 0 dnl if any interfaces have been removed. removal has From 35a0ba8e27082ef059a6713b92679a64fca522b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20=C8=98erb=C4=83nescu?= Date: Mon, 26 Mar 2018 20:38:41 +0000 Subject: [PATCH 17/24] Update Romanian translation --- po/ro.po | 102 +++++++++++++++++++++++++++---------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/po/ro.po b/po/ro.po index b7d3038b..5f2ebc69 100644 --- a/po/ro.po +++ b/po/ro.po @@ -1,23 +1,24 @@ # Romanian translation for libgtop # Copyright (C) 2003 - 2009, Free Software Foundation, Inc. # Mișu Moldovan , 2003 - 2009. -# +# Daniel Șerbănescu , 2018. msgid "" msgstr "" "Project-Id-Version: libgtop\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-13 08:49+0100\n" -"PO-Revision-Date: 2009-09-20 00:44+0300\n" -"Last-Translator: Mișu Moldovan \n" -"Language-Team: Romanian \n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" +"POT-Creation-Date: 2018-03-26 20:36+0000\n" +"PO-Revision-Date: 2018-03-25 14:30+0200\n" +"Last-Translator: Daniel Șerbănescu \n" +"Language-Team: Gnome Romanian Translation Team\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" -"2:1))\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);;\n" +"X-Generator: Virtaal 0.7.1\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" @@ -25,11 +26,11 @@ msgstr[0] "s-a citit un octet" msgstr[1] "s-au citit %d octeți" msgstr[2] "s-au citit %d de octeți" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "mărime date citite" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" @@ -37,7 +38,7 @@ msgstr[0] "s-a citit un octet de date" msgstr[1] "s-au citit %lu octeți de date" msgstr[2] "s-au citit %lu de octeți de date" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" @@ -45,148 +46,147 @@ msgstr[0] "s-a scris un octet" msgstr[1] "s-au scris %d octeți" msgstr[2] "s-au scris %d de octeți" -#: ../src/daemon/gnuserv.c:458 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "Activează depanarea" -#: ../src/daemon/gnuserv.c:460 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "Mesaje de ieșire explicite" -#: ../src/daemon/gnuserv.c:462 -msgid "Don't fork into background" +#: src/daemon/gnuserv.c:460 +msgid "Don’t fork into background" msgstr "Nu clona în fundal" -#: ../src/daemon/gnuserv.c:464 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "Pornit de inetd" -#: ../src/daemon/gnuserv.c:498 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" +msgid "Run “%s --help” to see a full list of available command line options.\n" msgstr "Încercați „%s --help” pentru a vedea o listă completă a opțiunilor.\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "Terminare" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "Întrerupere" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "Ieșire" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "Instrucțiune ilegală" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "Punct de oprire întâlnit" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "Renunță" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "Eroare EMT" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "Excepție în virgulă mobilă" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "Omoară" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "Eroare de bus" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "Violare a segmentului" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "Argument greșit în apelul de sistem" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "Filtru nefuncțional" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "Ceas de alarmă" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "Terminare" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "Condiție de urgență în socket" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "Stop" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "Întrerupere de la tastatură" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "Continuă" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "Starea copilului s-a schimbat" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "Citire în fundal de la tty" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "Scriere în fundal către tty" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "Operațiile I/O sunt acum posibile" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "Limită depășită CPU" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "Limită depășită mărime fișier" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "Ceas de alarmă virtual" -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "Ceas de alarmă pentru „profiling”" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "Schimbare de mărime a ferestrei" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "Cerere de informație" -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "Semnal 1 definit de utilizator" -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "Semnal 2 definit de utilizator" - From 40144f390857476f19cf37fcf812f3e2de177873 Mon Sep 17 00:00:00 2001 From: Mingcong Bai Date: Mon, 21 May 2018 14:31:20 +0000 Subject: [PATCH 18/24] Update Chinese (China) translation --- po/zh_CN.po | 104 +++++++++++++++++++++++++++------------------------- 1 file changed, 54 insertions(+), 50 deletions(-) diff --git a/po/zh_CN.po b/po/zh_CN.po index 2ae53cf4..a264de62 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1,187 +1,191 @@ # translation of libgtop.po to simplified chinese. # Copyright (C) 2001,2003 Free Software Foundation, Inc. # Dillion Chen , 2003. -# Funda Wang , 2004 +# Funda Wang , 2004. +# Mingcong Bai , 2017. # msgid "" msgstr "" "Project-Id-Version: libgtop\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-05-14 03:41+0100\n" -"PO-Revision-Date: 2007-09-07 17:29+0800\n" -"Last-Translator: Funda Wang \n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=libgtop&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-04-07 11:45+0000\n" +"PO-Revision-Date: 2017-06-10 14:27+0800\n" +"Last-Translator: Mingcong Bai \n" "Language-Team: zh_CN \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.2\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "读取 %d 字节" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "读取数据大小" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "读取了 %lu 字节数据" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "写入了 %d 字节" -#: ../src/daemon/gnuserv.c:458 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "允许调试" -#: ../src/daemon/gnuserv.c:460 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "允许详细输出" -#: ../src/daemon/gnuserv.c:462 -msgid "Don't fork into background" -msgstr "不能在后台生成子进程" +#: src/daemon/gnuserv.c:460 +msgid "Don’t fork into background" +msgstr "不要在后台生成子进程" -#: ../src/daemon/gnuserv.c:464 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "从 inetd 调用" -#: ../src/daemon/gnuserv.c:498 +#: src/daemon/gnuserv.c:498 #, c-format -msgid "Run '%s --help' to see a full list of available command line options.\n" -msgstr "" -"运行“%s --help”可查看可用命令行选项的完整列表\n" +msgid "" +"Run “%s --help” to see a full list of available command line " +"options.\n" +msgstr "运行“%s --help”可查看可用命令行选项的完整列表。\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "挂起" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "中断" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "退出" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "非法指令" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "跟踪陷阱" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "中止" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "EMT 错误" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "浮点意外" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "杀死" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "总线错误" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "进程段异常" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "系统调用参数错误" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "损坏的通道" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "警告时钟" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "终止" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "套接字紧急条件" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "停止" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "键盘停止" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "继续" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "子状态变更" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "后台从 tty 读取" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "后台写到 tty" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "现可以 I/O" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "达到 CPU 限制" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "达到文件大小限制" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "虚拟警报时钟" -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "个性化警报时钟" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "窗口大小更改" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "信息请求" -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "用户自定义信号 1" -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "用户自定义信号 2" From 7c811a7826bc2faca8799df322cfdc26bd9f0c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Sun, 22 Jul 2018 12:23:11 +0200 Subject: [PATCH 19/24] Fixed 3 old compile warnings. --- sysdeps/linux/procmap.c | 2 +- sysdeps/linux/procmem.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sysdeps/linux/procmap.c b/sysdeps/linux/procmap.c index 546d08af..05eb2ddd 100644 --- a/sysdeps/linux/procmap.c +++ b/sysdeps/linux/procmap.c @@ -136,7 +136,7 @@ parse_line(char* line, { /* %16llx-%16llx %4c %16llx %02hx:%02hx %llu%*[ ]%n */ - char *p, *next; + char *p; p = line; diff --git a/sysdeps/linux/procmem.c b/sysdeps/linux/procmem.c index 523fd62a..0250cd9b 100644 --- a/sysdeps/linux/procmem.c +++ b/sysdeps/linux/procmem.c @@ -35,7 +35,7 @@ static const unsigned long _glibtop_sysdeps_proc_mem_pss = static unsigned long -get_pss(glibtop* server, pid_t pid) +G_GNUC_UNUSED get_pss(glibtop* server, pid_t pid) { char filepath[128]; FILE* smaps; @@ -86,7 +86,7 @@ glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid) memset (buf, 0, sizeof (glibtop_proc_mem)); - /* As of 2.6.24 in fs/proc/*.c + /* As of 2.6.24 in fs/proc/ *.c == rss vs. resident == From 69f7b164217bb40713f610b3a2804e6d9765826c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Dr=C4=85g?= Date: Thu, 16 Aug 2018 20:21:24 +0200 Subject: [PATCH 20/24] Update MSGID_BUGS_ADDRESS in po/Makevars --- po/Makevars | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/Makevars b/po/Makevars index 86b32a68..1e571841 100644 --- a/po/Makevars +++ b/po/Makevars @@ -18,7 +18,7 @@ XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. -COPYRIGHT_HOLDER = libgtop contributors +COPYRIGHT_HOLDER = libgtop authors # This tells whether or not to prepend "GNU " prefix to the package # name that gets inserted into the header of the $(DOMAIN).pot file. @@ -41,7 +41,7 @@ PACKAGE_GNU = no # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. -MSGID_BUGS_ADDRESS = https://bugzilla.gnome.org/enter_bug.cgi?product=libgtop&keywords=I18N+L10N&component=general +MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/libgtop/issues # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. @@ -51,7 +51,7 @@ EXTRA_LOCALE_CATEGORIES = # context. Possible values are "yes" and "no". Set this to yes if the # package uses functions taking also a message context, like pgettext(), or # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. -USE_MSGCTXT = no +USE_MSGCTXT = yes # These options get passed to msgmerge. # Useful options are in particular: From bb118fa9d6d3ceb35db36bdcaa85cfc78c28997d Mon Sep 17 00:00:00 2001 From: Ting-Wei Lan Date: Thu, 25 Oct 2018 00:30:12 +0800 Subject: [PATCH 21/24] freebsd: Support laundry memory and ZFS ARC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FreeBSD 11.1 removes cache memory and adds laundry memory. The MIB of cache memory still exists, but its value is always set to zero. According to the man page of top(1), the value of laundry memory means number of dirty pages queued for laundering, suggesting that it should be added to the 'user' in libgtop because it cannot be freed immediately without writing out data. Laundry memory was part of inactive memory in older FreeBSD releases. FreeBSD systems running on ZFS usually have a large portion of memory used as ZFS ARC, which has similar purpose to buffer cache of other filesystems. ZFS ARC can usually be freed quickly when the system needs more memory, so we don't want to put it in 'user' in libgtop. However, both buffer cache and ZFS ARC are parts of wired memory, and wired memory is counted in 'user'. Therefore, we subtract the size of ZFS ARC from wired memory when calculating 'user' value, making it more useful to FreeBSD users. This patch is based on the patch submiited three years ago by Benoît Dejean . https://bugzilla.gnome.org/show_bug.cgi?id=748928 https://gitlab.gnome.org/GNOME/libgtop/issues/31 --- sysdeps/freebsd/mem.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/sysdeps/freebsd/mem.c b/sysdeps/freebsd/mem.c index 22f560ed..fa7e86b6 100644 --- a/sysdeps/freebsd/mem.c +++ b/sysdeps/freebsd/mem.c @@ -55,6 +55,16 @@ static gulong mem_get_by_bytes (glibtop *server, const char *name) { return result; } +static gulong try_mem_get_by_bytes (glibtop *server, const char *name) { + gulong result = 0; + size_t len = sizeof (result); + + if (sysctlbyname (name, &result, &len, NULL, 0)) { + return 0; + } + return result; +} + static gulong mem_get_by_pages (glibtop *server, const char *name) { guint result = 0; size_t len = sizeof (result); @@ -71,29 +81,35 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf) gulong memtotal; gulong memactive; gulong meminactive; + gulong memlaundry; gulong memwired; gulong memcached; gulong membuffer; gulong memfree; + gulong zfs_arc_size; memset (buf, 0, sizeof *buf); memtotal = mem_get_by_bytes (server, "hw.physmem"); memactive = mem_get_by_pages (server, "vm.stats.vm.v_active_count"); meminactive = mem_get_by_pages (server, "vm.stats.vm.v_inactive_count"); + memlaundry = mem_get_by_pages (server, "vm.stats.vm.v_laundry_count"); memwired = mem_get_by_pages (server, "vm.stats.vm.v_wire_count"); memcached = mem_get_by_pages (server, "vm.stats.vm.v_cache_count"); membuffer = mem_get_by_bytes (server, "vfs.bufspace"); memfree = mem_get_by_pages (server, "vm.stats.vm.v_free_count"); + zfs_arc_size = try_mem_get_by_bytes (server, "kstat.zfs.misc.arcstats.size"); + buf->total = memtotal; buf->used = memtotal - memfree; buf->free = memfree; buf->shared = 0; buf->buffer = membuffer; - buf->cached = memcached; + buf->cached = memcached + zfs_arc_size; buf->locked = 0; - buf->user = memactive + memwired; + buf->user = memactive + memlaundry + memwired - zfs_arc_size; + buf->flags = _glibtop_sysdeps_mem; } From 8e4c9c197b2c9d82bafbfe535519ff74220fa576 Mon Sep 17 00:00:00 2001 From: Balasankar C Date: Fri, 26 Oct 2018 15:13:16 +0000 Subject: [PATCH 22/24] Update Malayalam translation --- po/ml.po | 101 ++++++++++++++++++++++++++----------------------------- 1 file changed, 48 insertions(+), 53 deletions(-) diff --git a/po/ml.po b/po/ml.po index 4b0d0292..588a1f88 100644 --- a/po/ml.po +++ b/po/ml.po @@ -7,189 +7,184 @@ msgid "" msgstr "" "Project-Id-Version: libgtop.master.ml\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop&component=general\n" -"POT-Creation-Date: 2009-04-17 10:17+0000\n" -"PO-Revision-Date: 2009-09-12 20:37+0530\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" +"POT-Creation-Date: 2018-01-25 10:19+0000\n" +"PO-Revision-Date: 2018-10-26 19:49+0530\n" "Last-Translator: \n" -"Language-Team: \n" +"Language-Team: \n" "Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: Poedit 2.2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"\n" -#: ../lib/read.c:51 +#: lib/read.c:49 #, c-format msgid "read %d byte" msgid_plural "read %d bytes" msgstr[0] "%d ബൈറ്റ് വായിക്കുക" msgstr[1] "%d ബൈറ്റ്സ് വായിക്കുക" -#: ../lib/read_data.c:51 +#: lib/read_data.c:49 msgid "read data size" msgstr "ഡേറ്റായുടെ വലിപ്പം വായിക്കുക" -#: ../lib/read_data.c:70 +#: lib/read_data.c:66 #, c-format msgid "read %lu byte of data" msgid_plural "read %lu bytes of data" msgstr[0] "%lu ബൈറ്റ് ഡേറ്റാ വായിക്കുക" msgstr[1] "%lu ബൈറ്റ്സ് ഡേറ്റാ വായിക്കുക" -#: ../lib/write.c:51 +#: lib/write.c:49 #, c-format msgid "wrote %d byte" msgid_plural "wrote %d bytes" msgstr[0] "%d ബൈറ്റ് എഴുതി" msgstr[1] "%d ബൈറ്റ്സ് എഴുതി" -#: ../src/daemon/gnuserv.c:455 +#: src/daemon/gnuserv.c:456 msgid "Enable debugging" msgstr "ഡീബഗ്ഗിങ് പ്രവര്‍ത്തന സജ്ജമാക്കുക" -#: ../src/daemon/gnuserv.c:457 +#: src/daemon/gnuserv.c:458 msgid "Enable verbose output" msgstr "വര്‍ബറോസ് ഔട്ട് പുട്ട് പ്രവര്‍ത്തന സജ്ജമാക്കുക" -#: ../src/daemon/gnuserv.c:459 -msgid "Don't fork into background" -msgstr "പശ്ചാത്തലത്തിലേക്ക് fork ചെയ്യുവാന്‍ പാടില്ല" +#: src/daemon/gnuserv.c:460 +msgid "Don’t fork into background" +msgstr "പശ്ചാത്തലത്തിലേക്ക് ഫോർക് ചെയ്യുവാന്‍ പാടില്ല" -#: ../src/daemon/gnuserv.c:461 +#: src/daemon/gnuserv.c:462 msgid "Invoked from inetd" msgstr "inetd-ല്‍ നിന്നുമുളള വിളി" -#: ../src/daemon/gnuserv.c:495 +#: src/daemon/gnuserv.c:498 #, c-format -#| msgid "" -#| "Error on option %s: %s.\n" -#| "Run '%s --help' to see a full list of available command line options.\n" -msgid "Run '%s --help' to see a full list of available command line options.\n" +msgid "Run “%s --help” to see a full list of available command line options.\n" msgstr "ലഭ്യമായ കമാന്‍ഡ് ലൈന്‍ ഉപാധികളുടെ മുഴുവന്‍ പട്ടികയ്ക്ക് '%s --help' പ്രവര്‍ത്തിപ്പിക്കുക.\n" -#: ../sysdeps/osf1/siglist.c:27 ../sysdeps/sun4/siglist.c:27 +#: sysdeps/osf1/siglist.c:27 sysdeps/sun4/siglist.c:27 msgid "Hangup" msgstr "അവസാനിപ്പിക്കുക" -#: ../sysdeps/osf1/siglist.c:28 ../sysdeps/sun4/siglist.c:28 +#: sysdeps/osf1/siglist.c:28 sysdeps/sun4/siglist.c:28 msgid "Interrupt" msgstr "ഇന്‍ററപ്റ്റ്" -#: ../sysdeps/osf1/siglist.c:29 ../sysdeps/sun4/siglist.c:29 +#: sysdeps/osf1/siglist.c:29 sysdeps/sun4/siglist.c:29 msgid "Quit" msgstr "പുറത്ത് കടക്കുക" -#: ../sysdeps/osf1/siglist.c:30 ../sysdeps/sun4/siglist.c:30 +#: sysdeps/osf1/siglist.c:30 sysdeps/sun4/siglist.c:30 msgid "Illegal instruction" msgstr "തെറ്റായ നിര്‍ദ്ദേശം" -#: ../sysdeps/osf1/siglist.c:31 ../sysdeps/sun4/siglist.c:31 +#: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" msgstr "തടസ്സം കണ്ടുപിടിക്കുക" -#: ../sysdeps/osf1/siglist.c:32 ../sysdeps/sun4/siglist.c:32 +#: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" msgstr "നിര്‍ത്തലാക്കുക" -#: ../sysdeps/osf1/siglist.c:33 ../sysdeps/sun4/siglist.c:33 +#: sysdeps/osf1/siglist.c:33 sysdeps/sun4/siglist.c:33 msgid "EMT error" msgstr "EMT പിശക്" -#: ../sysdeps/osf1/siglist.c:34 ../sysdeps/sun4/siglist.c:34 +#: sysdeps/osf1/siglist.c:34 sysdeps/sun4/siglist.c:34 msgid "Floating-point exception" msgstr "ഫ്ളോട്ടിങ്-പോയിന്‍റ് എക്സെപ്ഷന്‍" -#: ../sysdeps/osf1/siglist.c:35 ../sysdeps/sun4/siglist.c:35 +#: sysdeps/osf1/siglist.c:35 sysdeps/sun4/siglist.c:35 msgid "Kill" msgstr "അവസാനിപ്പിക്കുക" -#: ../sysdeps/osf1/siglist.c:36 ../sysdeps/sun4/siglist.c:36 +#: sysdeps/osf1/siglist.c:36 sysdeps/sun4/siglist.c:36 msgid "Bus error" msgstr "ബസില്‍ പിശക്" -#: ../sysdeps/osf1/siglist.c:37 ../sysdeps/sun4/siglist.c:37 +#: sysdeps/osf1/siglist.c:37 sysdeps/sun4/siglist.c:37 msgid "Segmentation violation" msgstr "സെഗ്മന്‍റേഷനില്‍ തെറ്റ്" -#: ../sysdeps/osf1/siglist.c:38 ../sysdeps/sun4/siglist.c:38 +#: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" msgstr "സിസ്റ്റം കോളിലേക്ക് തെറ്റായ ആര്‍ഗ്യുമെന്‍റ്" -#: ../sysdeps/osf1/siglist.c:39 ../sysdeps/sun4/siglist.c:39 +#: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" msgstr "പൊട്ടിയ പൈപ്പ്" -#: ../sysdeps/osf1/siglist.c:40 ../sysdeps/sun4/siglist.c:40 +#: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" msgstr "അലാറം ക്ളോക്ക്" -#: ../sysdeps/osf1/siglist.c:41 ../sysdeps/sun4/siglist.c:41 +#: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" msgstr "അവസാനിപ്പിക്കല്‍" -#: ../sysdeps/osf1/siglist.c:42 ../sysdeps/sun4/siglist.c:42 +#: sysdeps/osf1/siglist.c:42 sysdeps/sun4/siglist.c:42 msgid "Urgent condition on socket" msgstr "സോക്കന്‍റില്‍ ഗുരുതരമായ അവസ്ഥ" -#: ../sysdeps/osf1/siglist.c:43 ../sysdeps/sun4/siglist.c:43 +#: sysdeps/osf1/siglist.c:43 sysdeps/sun4/siglist.c:43 msgid "Stop" msgstr "നിര്‍ത്തുക" -#: ../sysdeps/osf1/siglist.c:44 ../sysdeps/sun4/siglist.c:44 +#: sysdeps/osf1/siglist.c:44 sysdeps/sun4/siglist.c:44 msgid "Keyboard stop" msgstr "കീബോര്‍ഡ് നിര്‍ത്തുക" -#: ../sysdeps/osf1/siglist.c:45 ../sysdeps/sun4/siglist.c:45 +#: sysdeps/osf1/siglist.c:45 sysdeps/sun4/siglist.c:45 msgid "Continue" msgstr "തുടരുക" -#: ../sysdeps/osf1/siglist.c:46 ../sysdeps/sun4/siglist.c:46 +#: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" msgstr "ചൈള്‍ഡിന്‍റെ അവസ്ഥ മാറിയിരിക്കുന്നു" -#: ../sysdeps/osf1/siglist.c:47 ../sysdeps/sun4/siglist.c:47 +#: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" msgstr "tty-ല്‍ നിന്നും പശ്ചാത്തലം വായിക്കുക" -#: ../sysdeps/osf1/siglist.c:48 ../sysdeps/sun4/siglist.c:48 +#: sysdeps/osf1/siglist.c:48 sysdeps/sun4/siglist.c:48 msgid "Background write to tty" msgstr "tty-ലേക്ക് പശ്ചാത്തലം എഴുതുക" -#: ../sysdeps/osf1/siglist.c:49 ../sysdeps/sun4/siglist.c:49 +#: sysdeps/osf1/siglist.c:49 sysdeps/sun4/siglist.c:49 msgid "I/O now possible" msgstr "I/O ഇപ്പോള്‍ സാധ്യമാണ്" -#: ../sysdeps/osf1/siglist.c:50 ../sysdeps/sun4/siglist.c:50 +#: sysdeps/osf1/siglist.c:50 sysdeps/sun4/siglist.c:50 msgid "CPU limit exceeded" msgstr "CPU പരിമിധി കവിഞ്ഞു" -#: ../sysdeps/osf1/siglist.c:51 ../sysdeps/sun4/siglist.c:51 +#: sysdeps/osf1/siglist.c:51 sysdeps/sun4/siglist.c:51 msgid "File size limit exceeded" msgstr "ഫയലിന്‍റെ വലിപ്പ പരിമിധി കവിഞ്ഞു" -#: ../sysdeps/osf1/siglist.c:52 ../sysdeps/sun4/siglist.c:52 +#: sysdeps/osf1/siglist.c:52 sysdeps/sun4/siglist.c:52 msgid "Virtual alarm clock" msgstr "വിര്‍ച്ച്വല്‍ അലാറം ക്ളോക്ക്" -#: ../sysdeps/osf1/siglist.c:53 ../sysdeps/sun4/siglist.c:53 +#: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" msgstr "അലാറം ക്ളോക്ക് പ്രൊഫൈല്‍ ചെയ്യുന്നു" -#: ../sysdeps/osf1/siglist.c:54 ../sysdeps/sun4/siglist.c:54 +#: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" msgstr "ജീലകത്തിന്‍റെ വലിപ്പത്തലുളള മാറ്റം" -#: ../sysdeps/osf1/siglist.c:55 ../sysdeps/sun4/siglist.c:55 +#: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" msgstr "വിവരങ്ങള്‍ക്കായുളള അഭ്യര്‍ത്ഥന" -#: ../sysdeps/osf1/siglist.c:56 ../sysdeps/sun4/siglist.c:56 +#: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" msgstr "യൂസര്‍ ഡിഫൈന്‍ഡ് സിഗ്നല്‍ 1" -#: ../sysdeps/osf1/siglist.c:57 ../sysdeps/sun4/siglist.c:57 +#: sysdeps/osf1/siglist.c:57 sysdeps/sun4/siglist.c:57 msgid "User defined signal 2" msgstr "യൂസര്‍ ഡിഫൈന്‍ഡ് സിഗ്നല്‍ 2" - From 77912eae1da071eab8efe19906e54de68e0e4764 Mon Sep 17 00:00:00 2001 From: Charles Monzat Date: Sat, 29 Dec 2018 14:53:23 +0000 Subject: [PATCH 23/24] Update French translation --- po/fr.po | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/po/fr.po b/po/fr.po index 237be17c..fa8c4f0b 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,21 +7,22 @@ # Christophe Merlet , 2000-2004. # Benoit Dejean , 2004. # Stéphane Raimbault , 2007. +# Charles Monzat , 2018. # msgid "" msgstr "" "Project-Id-Version: libgtop 2.9.91\n" -"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" -"product=libgtop&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2017-04-07 11:45+0000\n" -"PO-Revision-Date: 2017-08-15 09:18+0200\n" -"Last-Translator: Stéphane Raimbault \n" -"Language-Team: GNOME French Team \n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/libgtop/issues\n" +"POT-Creation-Date: 2018-01-25 10:19+0000\n" +"PO-Revision-Date: 2018-11-19 13:23+0100\n" +"Last-Translator: Charles Monzat \n" +"Language-Team: français \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n>1;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Gtranslator 3.30.0\n" #: lib/read.c:49 #, c-format @@ -89,7 +90,7 @@ msgstr "Instruction illégale" #: sysdeps/osf1/siglist.c:31 sysdeps/sun4/siglist.c:31 msgid "Trace trap" -msgstr "Point d'arrêt rencontré" +msgstr "Point d’arrêt rencontré" #: sysdeps/osf1/siglist.c:32 sysdeps/sun4/siglist.c:32 msgid "Abort" @@ -117,7 +118,7 @@ msgstr "Violation de segmentation" #: sysdeps/osf1/siglist.c:38 sysdeps/sun4/siglist.c:38 msgid "Bad argument to system call" -msgstr "Mauvais argument d'appel système" +msgstr "Mauvais argument d’appel système" #: sysdeps/osf1/siglist.c:39 sysdeps/sun4/siglist.c:39 msgid "Broken pipe" @@ -125,7 +126,7 @@ msgstr "Tube cassé" #: sysdeps/osf1/siglist.c:40 sysdeps/sun4/siglist.c:40 msgid "Alarm clock" -msgstr "Alarme d'horloge" +msgstr "Alarme d’horloge" #: sysdeps/osf1/siglist.c:41 sysdeps/sun4/siglist.c:41 msgid "Termination" @@ -149,7 +150,7 @@ msgstr "Continuer" #: sysdeps/osf1/siglist.c:46 sysdeps/sun4/siglist.c:46 msgid "Child status has changed" -msgstr "L'état du fils a changé" +msgstr "L’état du fils a changé" #: sysdeps/osf1/siglist.c:47 sysdeps/sun4/siglist.c:47 msgid "Background read from tty" @@ -177,7 +178,7 @@ msgstr "Alarme virtuelle" #: sysdeps/osf1/siglist.c:53 sysdeps/sun4/siglist.c:53 msgid "Profiling alarm clock" -msgstr "Profile de l'alarme" +msgstr "Profil de l’alarme" #: sysdeps/osf1/siglist.c:54 sysdeps/sun4/siglist.c:54 msgid "Window size change" @@ -185,7 +186,7 @@ msgstr "Redimensionnement de la fenêtre" #: sysdeps/osf1/siglist.c:55 sysdeps/sun4/siglist.c:55 msgid "Information request" -msgstr "Demande d'information" +msgstr "Demande d’information" #: sysdeps/osf1/siglist.c:56 sysdeps/sun4/siglist.c:56 msgid "User defined signal 1" From 30c771151d162155afd730604f685b769545f042 Mon Sep 17 00:00:00 2001 From: Robert Roth Date: Mon, 4 Feb 2019 22:27:23 +0200 Subject: [PATCH 24/24] Prepared release 2.39.90 --- NEWS | 12 ++++++++++++ configure.ac | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 3135df7b..31fa0de8 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,15 @@ +04 February 2019: Overview of changes in 2.39.90 +================================================ + +* Updated translations +* FreeBSD: + - added support for laundry memory + - added support for ZFS ARC +* Fixed compile warnings +* Fix build on FreeBSD and darwin +* Linux: + - get procmap doesn't need suid + 11 September 2017: Overview of changes in 2.38.0 ================================================ diff --git a/configure.ac b/configure.ac index 9fe7363b..ade5c440 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ dnl m4_define([libgtop_major_version], [2]) m4_define([libgtop_minor_version], [39]) -m4_define([libgtop_micro_version], [0]) +m4_define([libgtop_micro_version], [90]) m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version]) dnl increment if the interface has additions, changes, removals.