Package: update-notifier Severity: grave Tags: l10n, patch Hi,
I've found that ALL localized message files (update-notifier.mo) and more were NOT included in package. All the files are stayed debian/tmp directory, but not specify to install in debian/update-notifier.install file. So, see attached file. I've added patch for 4 area. - debian/changelog :) - update debian/patches/002_i18n_update.diff for ja.po - remove unnecessary lines from debian/patches/04_fix_gksu_usage.diff to be enable re-build package - update debian/update-notifier.install to install files from debian/tmp Could you review it, please? -- Regards, Hideki Yamane henrich @ debian.or.jp/iijmio-mail.jp http://wiki.debian.org/HidekiYamane
diff -urN update-notifier-0.70.7.debian.orig/debian/changelog update-notifier-0.70.7.debian/debian/changelog --- update-notifier-0.70.7.debian.orig/debian/changelog 2008-10-21 19:02:04.000000000 +0900 +++ update-notifier-0.70.7.debian/debian/changelog 2008-10-21 18:57:10.000000000 +0900 @@ -1,3 +1,19 @@ +update-notifier (0.70.7.debian-4.1) unstable; urgency=low + + * Non-maintainer upload. + * debian/update-notifier.install + - add localized message + (as /usr/share/locale/*/LC_MESSAGES/update-notifier.mo) + - add /usr/lib/update-notifier/{apt-cdrom-check,apt-check,cddistupgrader} + - add /usr/share/icons/hicolor/*/apps/*.png + - add /etc/xdg/autostart/update-notifier.desktop + * debian/patches/002_i18n_update.diff + - update ja.po + * debian/patches/04_fix_gksu_usage.diff + - remove unnecessary patch line for src/update-notifier.c.orig.rej + + -- Hideki Yamane (Debian-JP) <[EMAIL PROTECTED]> Tue, 21 Oct 2008 18:55:34 +0900 + update-notifier (0.70.7.debian-4) unstable; urgency=low * 002_i18n_update.diff: diff -urN update-notifier-0.70.7.debian.orig/debian/patches/002_i18n_update.diff update-notifier-0.70.7.debian/debian/patches/002_i18n_update.diff --- update-notifier-0.70.7.debian.orig/debian/patches/002_i18n_update.diff 2008-10-21 19:02:04.000000000 +0900 +++ update-notifier-0.70.7.debian/debian/patches/002_i18n_update.diff 2008-10-21 15:19:36.000000000 +0900 @@ -1015,35 +1015,6 @@ #: ../src/hal.c:74 #, fuzzy -diff -pruN po.orig/ja.po po/ja.po ---- po.orig/ja.po 2008-01-08 17:40:27.000000000 +0100 -+++ po/ja.po 2008-09-17 12:12:01.772835653 +0200 -@@ -61,9 +61,10 @@ msgid "" - "\n" - "Would you like to open it with the package manager?" - msgstr "" --"<span weight=\"bold\" size=\"larger\">Ubuntu ã® CD ãæ¤åºãã¾ãã</span> \n" -+"<span weight=\"bold\" size=\"larger\">A volume with software packages has " -+"been detected.</span>\n" - "\n" --"ããã±ã¼ã¸ããã¼ã¸ã£ãèµ·åãã¦ãã ããã" -+"Would you like to open it with the package manager?" - - #: ../src/hal.c:59 ../src/hal.c:72 ../src/hal.c:88 ../src/hal.c:106 - #: ../src/update.c:29 -@@ -82,9 +83,10 @@ msgid "" - "\n" - "Would you like to try to upgrade from it automatically? " - msgstr "" --"<span weight=\"bold\" size=\"larger\">Ubuntu ã® CD ãæ¤åºãã¾ãã</span> \n" -+"<span weight=\"bold\" size=\"larger\">A distribution volume with software " -+"packages has been detected.</span>\n" - "\n" --"ããã±ã¼ã¸ããã¼ã¸ã£ãèµ·åãã¦ãã ããã" -+"Would you like to try to upgrade from it automatically? " - - #: ../src/hal.c:74 - #, fuzzy diff -pruN po.orig/pl.po po/pl.po --- po.orig/pl.po 2008-01-08 17:40:27.000000000 +0100 +++ po/pl.po 2008-09-17 12:12:01.772835653 +0200 @@ -1394,3 +1365,193 @@ +"If this is disabled, the user will not be notified about pending apport " +"crash reports." +msgstr "妿ç¦ç¨ï¼ç¨æ·å°æ æ³æ¶å°å°æ¥ç apport å´©æºæ¥åéç¥ã" + +diff -pruN po.orig/ja.po po/ja.po +--- po.orig/es.po 2008-10-21 14:44:07.000000000 +0900 ++++ po/ja.po 2008-10-21 14:49:03.000000000 +0900 +@@ -8,7 +8,7 @@ + msgstr "" + "Project-Id-Version: update-notifier VERSION\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2008-01-08 17:40+0100\n" ++"POT-Creation-Date: 2008-10-21 12:53+0900\n" + "PO-Revision-Date: 2008-10-18 14:18+0000\n" + "Last-Translator: Hideki Yamane (Debian-JP) <[EMAIL PROTECTED]>\n" + "Language-Team: <[EMAIL PROTECTED]>\n" +@@ -69,16 +69,16 @@ + "\n" + "ããã±ã¼ã¸ããã¼ã¸ã£ã§éãã¾ããï¼" + +-#: ../src/hal.c:59 ../src/hal.c:72 ../src/hal.c:88 ../src/hal.c:106 +-#: ../src/update.c:29 ++#: ../src/hal.c:59 ../src/hal.c:73 ../src/hal.c:89 ../src/hal.c:107 ++#: ../src/update.c:28 + msgid "Start package manager" + msgstr "ããã±ã¼ã¸ããã¼ã¸ã£ãèµ·å" + +-#: ../src/hal.c:64 ++#: ../src/hal.c:65 + msgid "Upgrade volume detected" + msgstr "ã¢ããã°ã¬ã¼ãããªã¥ã¼ã ãæ¤åºããã¾ãã" + +-#: ../src/hal.c:65 ++#: ../src/hal.c:66 + msgid "" + "<span weight=\"bold\" size=\"larger\">A distribution volume with software " + "packages has been detected.</span>\n" +@@ -90,15 +90,15 @@ + "\n" + "èªåã§ã¢ããã°ã¬ã¼ããè¡ãã¾ããï¼ " + +-#: ../src/hal.c:74 ++#: ../src/hal.c:75 + msgid "Run upgrade" + msgstr "ã¢ããã°ã¬ã¼ããå®è¡" + +-#: ../src/hal.c:80 ++#: ../src/hal.c:81 + msgid "Addon volume detected" + msgstr "追å ããªã¥ã¼ã ãèªèãã¾ãã" + +-#: ../src/hal.c:81 ++#: ../src/hal.c:82 + msgid "" + "<span weight=\"bold\" size=\"larger\">An addon volume with software " + "applications has been detected.</span>\n" +@@ -110,15 +110,15 @@ + "\n" + "ããªã¥ã¼ã ã®ä¸èº«ã確èªããããã¤ã³ã¹ãã¼ã«ããããã¾ããï¼ " + +-#: ../src/hal.c:90 ++#: ../src/hal.c:91 + msgid "Start addon installer" + msgstr "ã¢ããªã³ã¤ã³ã¹ãã¼ã©ãéå§ãã¾ã" + +-#: ../src/hal.c:97 ++#: ../src/hal.c:98 + msgid "APTonCD volume detected" + msgstr "APTonCD ããªã¥ã¼ã ãè¦ã¤ããã¾ãã" + +-#: ../src/hal.c:98 ++#: ../src/hal.c:99 + msgid "" + "<span weight=\"bold\" size=\"larger\">A volume with unofficial software " + "packages has been detected.</span>\n" +@@ -130,11 +130,11 @@ + "\n" + "ããã±ã¼ã¸ããã¼ã¸ã£ãç¨ãã¦éãã¾ããï¼" + +-#: ../src/hooks.c:46 ../src/hooks.c:513 ++#: ../src/hooks.c:46 ../src/hooks.c:516 + msgid "Information available" + msgstr "æ å ±ãããã¾ã" + +-#: ../src/hooks.c:514 ++#: ../src/hooks.c:517 + msgid "Click on the notification icon to show the available information.\n" + msgstr "éç¥ã¢ã¤ã³ã³ãã¯ãªãã¯ãã¦æ å ±ã表示ãã¦ãã ããã\n" + +@@ -152,50 +152,50 @@ + "\n" + "éç¥ã¢ã¤ã³ã³ãã¯ãªãã¯ãã¦åèµ·åã宿½ãã¦ãã ããã" + +-#: ../src/update.c:21 ++#: ../src/update.c:20 + msgid "Show updates" + msgstr "ã¢ãããã¼ãã®è¡¨ç¤º" + +-#: ../src/update.c:25 ++#: ../src/update.c:24 + msgid "Install all updates" + msgstr "ãã¹ã¦ã®ã¢ãããã¼ããã¤ã³ã¹ãã¼ã«" + +-#: ../src/update.c:28 ++#: ../src/update.c:27 + msgid "Check for updates" + msgstr "ã¢ãããã¼ãã®ãã§ãã¯" + +-#: ../src/update.c:66 ++#: ../src/update.c:67 + #, c-format + msgid "There is %i update available" + msgid_plural "There are %i updates available" + msgstr[0] "%i åã®ã¢ãããã¼ããããã¾ã" + +-#: ../src/update.c:134 ++#: ../src/update.c:135 + msgid "Show notifications" + msgstr "éç¥ã®è¡¨ç¤º" + + #. and update the tooltip +-#: ../src/update.c:179 ++#: ../src/update.c:180 + msgid "A package manager is working" + msgstr "ããã±ã¼ã¸ããã¼ã¸ã£ãèµ·åä¸ã§ã" + +-#: ../src/update.c:220 ++#: ../src/update.c:221 + msgid "Software updates available" + msgstr "æ°ããã¢ãããã¼ããããã¾ã" + +-#: ../src/update.c:221 ++#: ../src/update.c:222 + msgid "Click on the notification icon to show the available updates.\n" + msgstr "éç¥ã¢ã¤ã³ã³ãã¯ãªãã¯ãã¦ã¢ãããã¼ãã表示ãã¦ãã ããã\n" + + #: ../src/update.c:259 + msgid "" + "The update information is outdated. This may be caused by network problems. " +-"Please update manually by click on this icon and then selecting 'Check'." ++"Please update manually by clicking on this icon and then selecting 'Check'." + msgstr "" +-"æ´æ°æ å ±ãå¤ããªã£ã¦ãã¾ãããããã¯ã¼ã¯æ¥ç¶ã«åé¡ãããããããã¾ããã" +-"ãã®ã¢ã¤ã³ã³ãã¯ãªãã¯ãããã®å¾ãåãã§ãã¯ããã¿ã³ãæ¼ãã¦ãã ããã" ++"æ´æ°æ å ±ãå¤ããªã£ã¦ãã¾ãããããã¯ã¼ã¯æ¥ç¶ã«åé¡ãããããããã¾ããããã®" ++"ã¢ã¤ã³ã³ãã¯ãªãã¯ãã¦ãåãã§ãã¯ããã¿ã³ãæ¼ãã¦ãã ããã" + +-#: ../src/update.c:292 ++#: ../src/update.c:301 + #, c-format + msgid "" + "An error occurred, please run Package Manager from the right-click menu or " +@@ -206,7 +206,7 @@ + "ã±ã¼ã¸ããã¼ã¸ã£ãèµ·åããä½ãèµ·ãã£ãã®ã確èªãã¦ãã ããã\n" + "ã¨ã©ã¼ã¡ãã»ã¼ã¸ã¯æ¬¡ã®éãã§ã: '%s'" + +-#: ../src/update.c:299 ++#: ../src/update.c:308 + msgid "" + "An error occurred, please run Package Manager from the right-click menu or " + "apt-get in a terminal to see what is wrong." +@@ -214,19 +214,19 @@ + "ã¨ã©ã¼ãçºçãã¾ãããã¡ãã¥ã¼ãå³ã¯ãªãã¯ãããã端æ«ã§apt-getãå®è¡ãã¦ãã" + "ã±ã¼ã¸ããã¼ã¸ã£ãèµ·åããä½ãèµ·ãã£ãã®ã確èªãã¦ãã ããã" + +-#: ../src/update.c:303 ++#: ../src/update.c:312 + msgid "This usually means that your installed packages have unmet dependencies" +-msgstr "ããã¯ã¤ã³ã¹ãã¼ã«ããããã±ã¼ã¸ã®ä¾åæ§ãæºãããªãç¶æ ã¨æ¨æ¸¬ã§ãã¾ã" ++msgstr "大æµã®å ´åã¯ã¤ã³ã¹ãã¼ã«ããããã±ã¼ã¸ã®ä¾åé¢ä¿ã«ä¸æ´åãèµ·ãã¦ãã¾ãã" + +-#: ../src/update.c:316 +-msgid "Error communicating with the backend. Please report this as a bug." +-msgstr "" ++#: ../src/update.c:325 ++msgid "A problem occurred when checking for the updates." ++msgstr "æ´æ°ã確èªãã¦ããéã«ã¨ã©ã¼ãåé¡ãçºçãã¾ããã" + +-#: ../src/update-notifier.c:260 ++#: ../src/update-notifier.c:271 + msgid "Internal error" + msgstr "å é¨ã¨ã©ã¼" + +-#: ../src/update-notifier.c:403 ++#: ../src/update-notifier.c:418 + msgid "update-notifier" + msgstr "update-notifier" + +@@ -285,4 +285,3 @@ + "If this is disabled, the user will not be notified about pending apport " + "crash reports." + msgstr "ãããç¡å¹ã«ããã¨ãapport ã¯ã©ãã·ã¥ã¬ãã¼ãã®å»¶æã®éç¥ããã¾ããã" +- diff -urN update-notifier-0.70.7.debian.orig/debian/patches/04_fix_gksu_usage.diff update-notifier-0.70.7.debian/debian/patches/04_fix_gksu_usage.diff --- update-notifier-0.70.7.debian.orig/debian/patches/04_fix_gksu_usage.diff 2008-10-21 19:02:04.000000000 +0900 +++ update-notifier-0.70.7.debian/debian/patches/04_fix_gksu_usage.diff 2008-10-21 18:58:35.000000000 +0900 @@ -41,471 +41,3 @@ g_spawn_async (NULL, argv, NULL, 0, NULL, NULL, NULL, NULL); } -diff -urN update-notifier-0.70.7.debian/src/update-notifier.c.orig.rej update-notifier-0.70.7.debian.new/src/update-notifier.c.orig.rej ---- update-notifier-0.70.7.debian/src/update-notifier.c.orig.rej 1970-01-01 01:00:00.000000000 +0100 -+++ update-notifier-0.70.7.debian.new/src/update-notifier.c.orig.rej 2008-04-06 10:46:47.000000000 +0200 -@@ -0,0 +1,464 @@ -+*************** -+*** 0 **** -+--- 1,461 ---- -++ /* update-notifier.c -++ * Copyright (C) 2004 Lukas Lipka <[EMAIL PROTECTED]> -++ * (C) 2004 Michael Vogt <[EMAIL PROTECTED]> -++ * (C) 2004 Michiel Sikkes <[EMAIL PROTECTED]> -++ * (C) 2004-2006 Canonical -++ * -++ * This library is free software; you can redistribute it and/or -++ * modify it under the terms of the GNU Lesser General Public -++ * License as published by the Free Software Foundation; either -++ * version 2 of the License, or (at your option) any later version. -++ * -++ * This library 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 -++ * Lesser General Public License for more details. -++ * -++ * You should have received a copy of the GNU Lesser General Public -++ * License along with this library; if not, write to the -++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, -++ * Boston, MA 02111-1307, USA. -++ */ -++ -++ #ifdef HAVE_CONFIG_H -++ #include "config.h" -++ #endif -++ -++ #include <signal.h> -++ #include <gnome.h> -++ #include <grp.h> -++ #include <pwd.h> -++ #include <limits.h> -++ #include <glib.h> -++ #include <glib/gstdio.h> -++ #include <gtk/gtk.h> -++ #include <glade/glade.h> -++ #include <libgnomevfs/gnome-vfs.h> -++ #include <libgnomevfs/gnome-vfs-utils.h> -++ #include <libgnomevfs/gnome-vfs-monitor.h> -++ -++ #include "update-notifier.h" -++ #include "hal.h" -++ #include "update.h" -++ #include "hooks.h" -++ #include "reboot.h" -++ #include "crash.h" -++ #include "avahi.h" -++ -++ /* some prototypes */ -++ extern gboolean up_get_clipboard (void); -++ gboolean update_timer_finished(gpointer data); -++ -++ // the time when we check for fam events -++ #define TIMEOUT_FAM 1000*5 /* 5 sec */ -++ -++ // the timeout (in msec) for apt-get update (changes in -++ // /var/lib/apt/lists{/partial}) -++ #define TIMEOUT_APT_GET_UPDATE 1000*30 /* 30 sec */ -++ -++ // the timeout (in sec) when a further activity from dpkg/apt -++ // causes the applet to "ungray" -++ #define TIMEOUT_APT_RUN 120 /* 120 sec */ -++ -++ -++ void invoke(gchar *cmd, gchar *desktop, gboolean with_gksu) -++ { -++ if(with_gksu) -++ invoke_with_gksu(cmd, desktop, FALSE); -++ else -++ g_spawn_command_line_async(cmd, NULL); -++ } -++ -++ void -++ invoke_with_gksu(gchar *cmd, gchar *descr, gboolean whole_message) -++ { -++ //g_print("invoke_update_manager ()\n"); -++ gchar *argv[5]; -++ argv[0] = "/usr/bin/gksu"; -++ argv[1] = whole_message ? "--message" : "--desktop"; -++ argv[2] = descr; -++ argv[3] = cmd; -++ argv[4] = NULL; -++ -++ g_spawn_async (NULL, argv, NULL, 0, NULL, NULL, NULL, NULL); -++ } -++ -++ -++ -++ gboolean -++ trayapplet_create (TrayApplet *un, char *name) -++ { -++ //g_print("trayicon_create()\n"); -++ -++ /* setup widgets */ -++ un->tray_icon = gtk_status_icon_new_from_icon_name (name); -++ un->name = name; -++ gtk_status_icon_set_visible (un->tray_icon, FALSE); -++ -++ return TRUE; -++ } -++ -++ -++ /* -++ the following files change: -++ on "install": -++ - /var/lib/dpkg/lock -++ - /var/lib/dpkg/ * -++ - /var/lib/update-notifier/dpkg-run-stamp -++ on "update": -++ - /var/lib/apt/lists/lock -++ - /var/lib/apt/lists/ * -++ - /var/lib/dpkg/lock -++ */ -++ void -++ monitor_cb(GnomeVFSMonitorHandle *handle, -++ const gchar *monitor_uri, -++ const gchar *info_uri, -++ GnomeVFSMonitorEventType event_type, -++ gpointer user_data) -++ { -++ UpgradeNotifier *un = (UpgradeNotifier*)user_data; -++ -++ #if 0 -++ g_print("monitor_uri: %s\n", monitor_uri); -++ g_print("info_uri: %s\n", info_uri); -++ g_print("event_type: %i\n",event_type); -++ #endif -++ -++ // we ignore lock file events because we can only get -++ // when a lock was taken, but not when it was removed -++ if(g_str_has_suffix(info_uri, "lock")) -++ return; -++ -++ // look for apt-get install/update -++ if(g_str_has_prefix(info_uri,"file:///var/lib/apt/") -++ || g_str_has_prefix(info_uri,"file:///var/cache/apt/") -++ || strcmp(info_uri,"file:///var/lib/dpkg/status") == 0) { -++ un->apt_get_runing=TRUE; -++ } -++ if(strstr(info_uri, "/var/lib/update-notifier/dpkg-run-stamp")) { -++ un->dpkg_was_run = TRUE; -++ } -++ if(strstr(info_uri, REBOOT_FILE)) { -++ //g_print("reboot required\n"); -++ un->reboot_pending = TRUE; -++ } -++ if(strstr(info_uri, HOOKS_DIR)) { -++ //g_print("new hook!\n"); -++ un->hook_pending = TRUE; -++ } -++ if(strstr(info_uri, CRASHREPORT_DIR)) { -++ //g_print("crashreport found\n"); -++ un->crashreport_pending = TRUE; -++ } -++ if(strstr(info_uri, UNICAST_LOCAL_AVAHI_FILE)) { -++ //g_print("avahi disabled due to unicast .local domain\n"); -++ un->unicast_local_avahi_pending = TRUE; -++ } -++ } -++ -++ /* -++ * We periodically check here what actions happend in this "time-slice". -++ * This can be: -++ * - dpkg_was_run=TRUE: set when apt wrote the "dpkg-run-stamp" file -++ * - apt_get_runing: set when apt/dpkg activity is detected (in the -++ * lists-dir, archive-cache, or /var/lib/dpkg/status -++ * - hook_pending: we have new upgrade hoook information -++ * - reboot_pending: we need to reboot -++ * - crashreport_pending: we have a new crashreport -++ * - unicast_local_avahi_pending: avahi got disabled due to a unicast .local domain -++ * -++ */ -++ gboolean file_monitor_periodic_check(gpointer data) -++ -++ { -++ UpgradeNotifier *un = (UpgradeNotifier *)data; -++ -++ // we are not ready yet, wait for the next timeslice -++ if((un->update == NULL) || (un->reboot == NULL) || (un->crashreport == NULL)) -++ return TRUE; -++ -++ // DPkg::Post-Invoke has written a stamp file, that means a install/remove -++ // operation finished, we can show hooks/reboot notifications then -++ if(un->dpkg_was_run) { -++ -++ // check updates -++ update_check(un->update); -++ -++ // any apt-get update must be finished, otherwise -++ // apt-get install wouldn't be finished -++ update_apt_is_running(un->update, FALSE); -++ if(un->update_finished_timer > 0) -++ g_source_remove(un->update_finished_timer); -++ -++ // show pending hooks/reboots -++ if(un->hook_pending) { -++ //g_print("checking hooks now\n"); -++ check_update_hooks(un->hook); -++ un->hook_pending = FALSE; -++ } -++ if(un->reboot_pending) { -++ //g_print("checking reboot now\n"); -++ reboot_check (un->reboot); -++ un->reboot_pending = FALSE; -++ } -++ -++ // apt must be finished when a new stamp file was writen, so we -++ // reset the apt_get_runing time-slice field because its not -++ // important anymore (it finished runing) -++ // -++ // This may leave a 5s race condition when a apt-get install finished -++ // and something new (apt-get) was started -++ un->apt_get_runing = FALSE; -++ un->last_apt_action = 0; -++ } -++ -++ // apt-get update/install or dpkg is runing (and updates files in -++ // it's list/cache dir) or in /var/lib/dpkg/status -++ if(un->apt_get_runing) -++ update_apt_is_running(un->update, TRUE); -++ -++ // update time information for apt/dpkg -++ time_t now = time(NULL); -++ if(un->apt_get_runing) -++ un->last_apt_action = now; -++ -++ // no apt operation for a long time -++ if(un->last_apt_action > 0 && -++ (now - un->last_apt_action) > TIMEOUT_APT_RUN) { -++ update_apt_is_running(un->update, FALSE); -++ update_check(un->update); -++ un->last_apt_action = 0; -++ } -++ -++ if(un->crashreport_pending) { -++ g_print("checking for valid crashreport now\n"); -++ crashreport_check (un->crashreport); -++ un->crashreport_pending = FALSE; -++ } -++ -++ if(un->unicast_local_avahi_pending) { -++ g_print("checking for disabled avahi due to unicast .local domain now\n"); -++ avahi_disabled_check (); -++ un->unicast_local_avahi_pending = FALSE; -++ } -++ -++ // reset the bitfields (for the next "time-slice") -++ un->dpkg_was_run = FALSE; -++ un->apt_get_runing = FALSE; -++ -++ return TRUE; -++ } -++ -++ -++ -++ -++ /* u_abort seems like an internal error notification. -++ * End user might not understand the message at all */ -++ void u_abort(gchar *msg) -++ { -++ msg = g_strdup_printf("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s\n", _("Internal error"), msg); -++ gtk_dialog_run(GTK_DIALOG(gtk_message_dialog_new_with_markup(NULL,0, -++ GTK_MESSAGE_ERROR, -++ GTK_BUTTONS_CLOSE, -++ msg))); -++ g_free(msg); -++ exit(1); -++ } -++ -++ // FIXME: get the apt directories with apt-config or something -++ gboolean monitor_init(UpgradeNotifier *un) -++ { -++ int i; -++ GnomeVFSResult res; -++ GnomeVFSMonitorHandle *monitor_handle; -++ -++ // monitor thise dirs -++ static const char *monitor_dirs[] = { -++ "/var/lib/apt/lists/", "/var/lib/apt/list/partial", -++ "/var/cache/apt/archives/", "/var/cache/apt/archives/partial", -++ HOOKS_DIR, -++ CRASHREPORT_DIR, -++ NULL}; -++ for(i=0;monitor_dirs[i] != NULL;i++) { -++ res = gnome_vfs_monitor_add(&monitor_handle, -++ monitor_dirs[i], -++ GNOME_VFS_MONITOR_DIRECTORY, -++ monitor_cb, un); -++ } -++ -++ // and those files -++ static const char *monitor_files[] = { -++ "/var/lib/dpkg/status", -++ "/var/lib/update-notifier/dpkg-run-stamp", -++ REBOOT_FILE, -++ UNICAST_LOCAL_AVAHI_FILE, -++ NULL}; -++ for(i=0;monitor_files[i] != NULL;i++) { -++ res = gnome_vfs_monitor_add(&monitor_handle, -++ monitor_files[i], -++ GNOME_VFS_MONITOR_FILE, -++ monitor_cb, un); -++ } -++ -++ g_timeout_add (TIMEOUT_FAM, (GSourceFunc)file_monitor_periodic_check, un); -++ -++ -++ return TRUE; -++ } -++ -++ -++ -++ -++ static gboolean -++ tray_icons_init(UpgradeNotifier *un) -++ { -++ //g_debug("tray_icons_init"); -++ -++ /* new upates tray icon */ -++ un->update = g_new0 (TrayApplet, 1); -++ -++ trayapplet_create(un->update, "software-update-available"); -++ update_tray_icon_init(un->update); -++ -++ /* update hook icon*/ -++ un->hook = g_new0 (TrayApplet, 1); -++ trayapplet_create(un->hook, "hook-notifier"); -++ hook_tray_icon_init(un->hook); -++ -++ /* reboot required icon */ -++ un->reboot = g_new0 (TrayApplet, 1); -++ trayapplet_create(un->reboot, "reboot-notifier"); -++ reboot_tray_icon_init(un->reboot); -++ -++ /* crashreport detected icon */ -++ un->crashreport = g_new0 (TrayApplet, 1); -++ trayapplet_create(un->crashreport, "apport"); -++ crashreport_tray_icon_init(un->crashreport); -++ -++ return FALSE; // for the tray_destroyed_cb -++ } -++ -++ // this function checks if the user is in the admin group -++ // if there is no admin group, we return true becuase there -++ // is no way to figure if the user is a admin or not -++ gboolean -++ in_admin_group() -++ { -++ int i, ng = 0; -++ gid_t *groups = NULL; -++ -++ struct group *grp = getgrnam("admin"); -++ if(grp == NULL) -++ return TRUE; -++ -++ ng = getgroups (0, NULL); -++ groups = (gid_t *) malloc (ng * sizeof (gid_t)); -++ -++ i = getgroups (ng, groups); -++ if (i != ng) { -++ free (groups); -++ return TRUE; -++ } -++ -++ for(i=0;i<ng;i++) { -++ if(groups[i] == grp->gr_gid) { -++ free(groups); -++ return TRUE; -++ } -++ } -++ -++ if(groups != NULL) -++ free(groups); -++ -++ return FALSE; -++ } -++ -++ static GOptionEntry entries[] = -++ { -++ { "debug-hooks", 0, 0, G_OPTION_ARG_NONE, &HOOK_DEBUG, "Enable hooks debugging"}, -++ { NULL } -++ }; -++ -++ int -++ main (int argc, char *argv[]) -++ { -++ GnomeClient *client; -++ UpgradeNotifier *un; -++ -++ // option parsing -++ GOptionContext *context; -++ context = g_option_context_new (" - inform about updates"); -++ g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); -++ gnome_program_init (PACKAGE, PACKAGE_VERSION, -++ LIBGNOMEUI_MODULE, -++ argc, argv, -++ GNOME_PARAM_GOPTION_CONTEXT, context, -++ GNOME_PARAM_NONE); -++ notify_init("update-notifier"); -++ bindtextdomain(PACKAGE, PACKAGE_LOCALE_DIR); -++ bind_textdomain_codeset(PACKAGE, "UTF-8"); -++ textdomain(PACKAGE); -++ -++ g_set_application_name (_("update-notifier")); -++ gtk_window_set_default_icon_name ("update-notifier"); -++ -++ //g_print("starting update-notifier\n"); -++ -++ // check if we should run at all (see HideAdminTools spec -++ // on https://wiki.ubuntu.com/HideAdminToolsToUsers) -++ if(!in_admin_group()) { -++ g_warning("not starting because user is not in admin group\n"); -++ exit(0); -++ } -++ -++ client = gnome_master_client (); -++ if (up_get_clipboard ()) -++ gnome_client_set_restart_style (client, GNOME_RESTART_ANYWAY); -++ else { -++ gnome_client_set_restart_style (client, GNOME_RESTART_NEVER); -++ g_warning ("already running?\n"); -++ return 1; -++ } -++ -++ /* Make sure we die when the session dies */ -++ g_signal_connect (G_OBJECT (client), "die", -++ G_CALLBACK (gtk_main_quit), NULL); -++ -++ /* Create the UpgradeNotifier object */ -++ un = g_new0 (UpgradeNotifier, 1); -++ -++ // check for .update-notifier dir and create if needed -++ gchar *dirname = g_strdup_printf("%s/.update-notifier", -++ g_get_home_dir()); -++ if(!g_file_test(dirname, G_FILE_TEST_IS_DIR)) -++ g_mkdir(dirname, 0700); -++ g_free(dirname); -++ -++ // create the icons with a timeout -++ //g_timeout_add(5000, (GSourceFunc)(tray_icons_init), un); -++ tray_icons_init(un); -++ -++ // initial check for avahi -++ avahi_disabled_check(); -++ -++ // init hal (needs to be done _after_ the icons are created) -++ /* setup hal so that inserted cdroms can be checked */ -++ LibHalContext *hal_ctx = up_do_hal_init(); -++ if (!hal_ctx) { -++ u_abort("failed to initialize HAL!\n"); -++ return 1; -++ } -++ libhal_ctx_set_user_data(hal_ctx, un); -++ -++ // init fam -++ monitor_init(un); -++ -++ /* Start the main gtk loop */ -++ gtk_main (); -++ -++ return 0; -++ } diff -urN update-notifier-0.70.7.debian.orig/debian/update-notifier.install update-notifier-0.70.7.debian/debian/update-notifier.install --- update-notifier-0.70.7.debian.orig/debian/update-notifier.install 2008-10-21 19:02:04.000000000 +0900 +++ update-notifier-0.70.7.debian/debian/update-notifier.install 2008-10-21 18:47:56.000000000 +0900 @@ -1,2 +1,13 @@ usr/bin/update-notifier usr/lib/update-notifier/gdm-signal +usr/lib/update-notifier/apt-cdrom-check +usr/lib/update-notifier/apt-check +usr/lib/update-notifier/cddistupgrader +usr/share/icons/hicolor/16x16/apps/* +usr/share/icons/hicolor/22x22/apps/* +usr/share/icons/hicolor/24x24/apps/* +usr/share/icons/hicolor/48x48/apps/* +etc/xdg/autostart/update-notifier.desktop +usr/share/update-notifier/glade/*.glade +usr/share/gconf/schemas/update-notifier.schemas +usr/share/locale/*/LC_MESSAGES/update-notifier.mo
pgpHZnaWkRC5r.pgp
Description: PGP signature