coldfix / udiskie

Automounter for removable media
MIT License
880 stars 54 forks source link

lost notifications with upgrade from 0.6.4--->1.1.1 gentoo #47

Closed thunderrd closed 10 years ago

thunderrd commented 10 years ago

coldfix, with this week's update in portage, I seem to have lost all notifications. However, udiskie does seem to mount/unmount properly, so no actual functionality is lost. I notice the dependency on notify-python is gone now, but I doubt that is the culprit here, because adding it with the new version does not change things. However, downgrading to 0.6.4 pulls in notify-python, and solves the issue.

I am running xmonad with trayer, and it has worked perfectly through several versions of udiskie, so the problem is related to the upgrade.

I've read the new documentation and tried passing -n as well. I notice that the notification daemon is 'optional'. What should I be using (libnotify is installed ATM), and does it require configuration? Nothing has been necessary in the past.

This is the bug I have filed in gentoo's bugzilla, but I don't know if it is an actual ebuild bug because of a forgotten dependency or just some new configuration that I have not done: https://bugs.gentoo.org/show_bug.cgi?id=519026

coldfix commented 10 years ago

Hey, thanks for your well-written reports. According to your the line from gi.repository import Notify fails. This imports the replacement for python-notify. So, we will need to find out, why this import fails.

I don't know about any configuration that libnotify requires, I didn't do anything on my system. So here are my thoughts, what might have gone wrong:

coldfix commented 10 years ago

Is there a package like gir1.2-notify-0.7 in your repositories? https://answers.launchpad.net/rb-fileorganizer/+question/181418

thunderrd commented 10 years ago

OK, one at a time:

1- virtual/notification-daemon is installed, and yes, I agree it is likely not the issue. But what are alternatives to notification-daemon package I can try?

2- pygobject-3.12.2

3- udiskie fails to import Notify when started in X as well:


thunderrd@Q6600:~$ udiskie -nv
DEBUG [2014-08-05 21:31:26,482] udiskie.config: Failed to read config file: [Errno 2] No such file or directory: '/home/thunderrd/.config/udiskie/config.yml'
DEBUG [2014-08-05 21:31:26,484] udiskie.config: Failed to read config file: [Errno 2] No such file or directory: '/home/thunderrd/.config/udiskie/config.json'
WARNING [2014-08-05 21:31:26,565] udiskie.cli: Failed to connect UDisks1 dbus service..
Falling back to UDisks2 [experimental].
DEBUG [2014-08-05 21:31:26,702] udiskie.config: IgnoreDevice(match={'is_block': False}, value=True) created
DEBUG [2014-08-05 21:31:26,702] udiskie.config: IgnoreDevice(match={'is_external': False}, value=True) created
DEBUG [2014-08-05 21:31:26,703] udiskie.config: IgnoreDevice(match={'is_ignored': True}, value=True) created
ERROR [2014-08-05 21:31:26,703] root: Could not find any typelib for Notify
Traceback (most recent call last):
  File "/usr/lib/python-exec/python2.7/udiskie", line 9, in <module>
    load_entry_point('udiskie==2', 'console_scripts', 'udiskie')()
  File "/usr/lib64/python2.7/site-packages/udiskie/cli.py", line 204, in main
    return cls(argv).run()
  File "/usr/lib64/python2.7/site-packages/udiskie/cli.py", line 178, in __init__
    self._init(config, options)
  File "/usr/lib64/python2.7/site-packages/udiskie/cli.py", line 319, in _init
    from gi.repository import Notify
ImportError: cannot import name Notify

4- no package for 'gir' in portage, but there are references that are in overlays which aren't supported.

thunderrd commented 10 years ago

Oh, and I forgot: yes, I use .xinitrc/startx

coldfix commented 10 years ago

Hey,

  1. sounds like virtual/notification-daemon is a virtual package that is satisfied by any notification daemon, such as notify-osd, dunst, mate-notification-daemon or others. You can try one of those, but it will probably not help.
  2. I have the same version, so this is not the problem either
  3. So the problem is not, that the X server was not started, either.

It looks like there is still some package missing. I am not sure which, though. I will probably be able to do some more research tomorrow or on Thursday. If you figure it out in the meantime, even better :) Sorry for your trouble.

thunderrd commented 10 years ago

It's no trouble at all; udiskie works fine and mounts, and that is the important part.

I'll continue to look at it as I have time. If it turns out to be a missing package, I'll append the bug so the package maintainer fixes the ebuild.

coldfix commented 10 years ago

Do you have the following file (or similar) on your machine /usr/lib/girepository-1.0/Notify-0.7.typelib? (or lib64)

Update: According to http://www.portagefilelist.de/site/query/file that file is provided by x11-libs/libnotify which you say you have installed? So, I'm still confused whats causing that error..

Are you running udiskie as python2 or python3 a.t.m.? Maybe the other one works.

thunderrd commented 10 years ago

Looks like no:

root@Q6600: ~# locate girepository
/usr/include/gobject-introspection-1.0/girepository.h
/usr/lib64/girepository-1.0
/usr/lib64/libgirepository-1.0.so
/usr/lib64/libgirepository-1.0.so.1
/usr/lib64/libgirepository-1.0.so.1.0.0
/usr/lib64/girepository-1.0/Atk-1.0.typelib
/usr/lib64/girepository-1.0/DBus-1.0.typelib
/usr/lib64/girepository-1.0/DBusGLib-1.0.typelib
/usr/lib64/girepository-1.0/GIRepository-2.0.typelib
/usr/lib64/girepository-1.0/GL-1.0.typelib
/usr/lib64/girepository-1.0/GLib-2.0.typelib
/usr/lib64/girepository-1.0/GModule-2.0.typelib
/usr/lib64/girepository-1.0/GObject-2.0.typelib
/usr/lib64/girepository-1.0/Gdk-2.0.typelib
/usr/lib64/girepository-1.0/Gdk-3.0.typelib
/usr/lib64/girepository-1.0/GdkPixbuf-2.0.typelib
/usr/lib64/girepository-1.0/GdkX11-2.0.typelib
/usr/lib64/girepository-1.0/GdkX11-3.0.typelib
/usr/lib64/girepository-1.0/Gio-2.0.typelib
/usr/lib64/girepository-1.0/GnomeKeyring-1.0.typelib
/usr/lib64/girepository-1.0/Gtk-2.0.typelib
/usr/lib64/girepository-1.0/Gtk-3.0.typelib
/usr/lib64/girepository-1.0/Pango-1.0.typelib
/usr/lib64/girepository-1.0/PangoCairo-1.0.typelib
/usr/lib64/girepository-1.0/PangoFT2-1.0.typelib
/usr/lib64/girepository-1.0/PangoXft-1.0.typelib
/usr/lib64/girepository-1.0/cairo-1.0.typelib
/usr/lib64/girepository-1.0/fontconfig-2.0.typelib
/usr/lib64/girepository-1.0/freetype2-2.0.typelib
/usr/lib64/girepository-1.0/libxml2-2.0.typelib
/usr/lib64/girepository-1.0/win32-1.0.typelib
/usr/lib64/girepository-1.0/xfixes-4.0.typelib
/usr/lib64/girepository-1.0/xft-2.0.typelib
/usr/lib64/girepository-1.0/xlib-2.0.typelib
/usr/lib64/girepository-1.0/xrandr-1.3.typelib

On Wed, Aug 6, 2014 at 4:50 PM, Thomas G. notifications@github.com wrote:

Do you have the following file (or similar) on your machine /usr/lib/girepository-1.0/Notify-0.7.typelib? (or lib64)

thunderrd commented 10 years ago

root@Q6600: ~# emerge -av udiskie libnotify

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-fs/udiskie-1.1.1  PYTHON_TARGETS="python2_7" 0 KiB
[ebuild   R    ] x11-libs/libnotify-0.7.6  USE="-introspection {-test}" 0 KiB

Total: 2 packages (2 reinstalls), Size of downloads: 0 KiB

#####################

Looks like the gentoo package requires python-2.7, and it is forced by the ebuild, so basically, I can't compile with python 3:


root@Q6600: ~# PYTHON_TARGETS="3.3" emerge -av udiskie

These are the packages that would be merged, in order:

Calculating dependencies \

!!! Problem resolving dependencies for sys-fs/udiskie                                                                                      ... done!

!!! The ebuild selected to satisfy "udiskie" has unmet requirements.
- sys-fs/udiskie-1.1.1::gentoo USE="" ABI_X86="64" PYTHON_TARGETS="-python2_7"

  The following REQUIRED_USE flag constraints are unsatisfied:
    python_targets_python2_7

  The above constraints are a subset of the following complete expression:
    any-of ( python_targets_python2_7 )
thunderrd commented 10 years ago

The file you are after does not seem to be installed when building libnotify. Here is the build log of libnotify:

root@Q6600: ~# emerge -av libnotify

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] x11-libs/libnotify-0.7.6  USE="-introspection {-test}" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No] 

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) x11-libs/libnotify-0.7.6::gentoo
 * libnotify-0.7.6.tar.xz SHA256 SHA512 WHIRLPOOL size ;-) ...                                                                        [ ok ]
>>> Unpacking source...
>>> Unpacking libnotify-0.7.6.tar.xz to /var/tmp/portage/x11-libs/libnotify-0.7.6/work
>>> Source unpacked in /var/tmp/portage/x11-libs/libnotify-0.7.6/work
>>> Preparing source in /var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6 ...
 * Running eautoreconf in '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6' ...
 * Skipping 'gtkdocize --copy' due gtkdocize not installed
 * Running libtoolize --install --copy --force --automake ...                                                                         [ ok ]
 * Running aclocal -I m4 ...                                                                                                          [ ok ]
 * Running autoconf ...                                                                                                               [ ok ]
 * Running autoheader ...                                                                                                             [ ok ]
 * Running automake --add-missing --copy --force-missing ...                                                                          [ ok ]
 * Running elibtoolize in: libnotify-0.7.6/
 *   Applying target-nm/2.4.2 patch ...
 * Running elibtoolize in: libnotify-0.7.6/build-aux/
 *   Applying portage/1.2.0 patch ...
 *   Applying sed/1.5.6 patch ...
 *   Applying as-needed/2.4.2 patch ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6 ...
 * econf: updating libnotify-0.7.6/build-aux/config.sub with /usr/share/gnuconfig/config.sub
 * econf: updating libnotify-0.7.6/build-aux/config.guess with /usr/share/gnuconfig/config.guess
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --disable-silent-rules --disable-dependency-tracking --disable-static --disable-introspection
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes
checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking whether x86_64-pc-linux-gnu-gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of x86_64-pc-linux-gnu-gcc... none
checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E
checking whether make sets $(MAKE)... (cached) yes
checking whether ln -s works... yes
checking for an ANSI C-conforming const... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for size_t... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by x86_64-pc-linux-gnu-gcc... /usr/x86_64-pc-linux-gnu/bin/ld
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/x86_64-pc-linux-gnu-nm -B
checking the name lister (/usr/bin/x86_64-pc-linux-gnu-nm -B) interface... BSD nm
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r
checking for x86_64-pc-linux-gnu-objdump... x86_64-pc-linux-gnu-objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-pc-linux-gnu-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-pc-linux-gnu-ar... x86_64-pc-linux-gnu-ar
checking for archiver @FILE support... @
checking for x86_64-pc-linux-gnu-strip... x86_64-pc-linux-gnu-strip
checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib
checking command to parse /usr/bin/x86_64-pc-linux-gnu-nm -B output from x86_64-pc-linux-gnu-gcc object... ok
checking for sysroot... no
checking for x86_64-pc-linux-gnu-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if x86_64-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC -DPIC
checking if x86_64-pc-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes
checking if x86_64-pc-linux-gnu-gcc static flag -static works... yes
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... yes
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... (cached) yes
checking whether the x86_64-pc-linux-gnu-gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for x86_64-pc-linux-gnu-pkg-config... /usr/bin/x86_64-pc-linux-gnu-pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for PACKAGE... yes
checking for gobject-introspection... no (disabled, use --enable-introspection to enable)
checking for gtkdoc-check... no
checking for gtkdoc-rebase... /usr/bin/gtkdoc-rebase
checking for gtkdoc-mkpdf... no
checking whether to build gtk-doc documentation... no
checking for xmlto... /usr/bin/xmlto
checking whether to build DocBook documentation... yes
checking for more warnings... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating docs/Makefile
config.status: creating docs/reference/Makefile
config.status: creating libnotify.pc
config.status: creating libnotify/Makefile
config.status: creating libnotify/notify-features.h
config.status: creating tests/Makefile
config.status: creating tools/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands

                    libnotify 0.7.6
                    ========================

    prefix:                   /usr
    exec_prefix:              ${prefix}
        bindir:                   ${exec_prefix}/bin
        datadir:                  /usr/share
    source code location:     .
    cflags:               -march=native -O2 -pipe

        Build docs:               no

>>> Source configured.
>>> Compiling source in /var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6 ...
make -j4 
(CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/build-aux/missing autoheader)
rm -f stamp-h1
touch config.h.in
cd . && /bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make  all-recursive
make[1]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6'
Making all in libnotify
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
( cd . && glib-mkenums \
        --fhead "#ifndef _NOTIFY_ENUM_TYPES_H_\n#define _NOTIFY_ENUM_TYPES_H_\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
        --fprod "/* enumerations from \"@filename@\" */\n" \
        --vhead "GType @enum_name@_get_type(void);\n#define NOTIFY_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
        --ftail "G_END_DECLS\n\n#endif /* _NOTIFY_ENUM_TYPES_H_ */" \
    notify.h notify-features.h notification.h ) > tmp-notify-enum-types.h \
&& (cmp -s tmp-notify-enum-types.h notify-enum-types.h || cp tmp-notify-enum-types.h notify-enum-types.h ) \
&& rm -f tmp-notify-enum-types.h    \
&& echo timestamp > s-enum-types-h
( cd . && glib-mkenums \
        --fhead "#include <libnotify/notify.h>" \
        --fprod "\n/* enumerations from \"@filename@\" */" \
        --vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {"     \
        --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
        --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
    notify.h notify-features.h notification.h ) > tmp-notify-enum-types.c \
&& (cmp -s tmp-notify-enum-types.c notify-enum-types.c || cp tmp-notify-enum-types.c notify-enum-types.c ) \
&& rm -f tmp-notify-enum-types.c \
&& echo timestamp > s-enum-types-c
make  all-am
make[3]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"libnotify\" -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include    -march=native -O2 -pipe -c -o notify.lo notify.c
/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"libnotify\" -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include    -march=native -O2 -pipe -c -o notification.lo notification.c
/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"libnotify\" -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include    -march=native -O2 -pipe -c -o notify-marshal.lo notify-marshal.c
/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I..  -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"libnotify\" -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include    -march=native -O2 -pipe -c -o notify-enum-types.lo notify-enum-types.c
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"libnotify\" -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -march=native -O2 -pipe -c notify.c  -fPIC -DPIC -o .libs/notify.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"libnotify\" -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -march=native -O2 -pipe -c notification.c  -fPIC -DPIC -o .libs/notification.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"libnotify\" -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -march=native -O2 -pipe -c notify-marshal.c  -fPIC -DPIC -o .libs/notify-marshal.o
libtool: compile:  x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I. -I.. -I.. -I.. -DG_LOG_DOMAIN=\"libnotify\" -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -march=native -O2 -pipe -c notify-enum-types.c  -fPIC -DPIC -o .libs/notify-enum-types.o
notify.c: In function 'notify_init':
notify.c:156:9: warning: 'g_type_init' is deprecated (declared at /usr/include/glib-2.0/gobject/gtype.h:667) [-Wdeprecated-declarations]
         g_type_init ();
         ^
/bin/sh ../libtool  --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc  -march=native -O2 -pipe -version-info 4:0:0 -export-symbols-regex "^notify_.*" -Wl,-O1 -Wl,--as-needed -o libnotify.la -rpath /usr/lib64 notify.lo notification.lo notify-enum-types.lo notify-marshal.lo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0  
libtool: link: /usr/bin/x86_64-pc-linux-gnu-nm -B  .libs/notify.o .libs/notification.o .libs/notify-enum-types.o .libs/notify-marshal.o   | sed -n -e 's/^.*[    ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[     ][  ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' | /bin/sed 's/.* //' | sort | uniq > .libs/libnotify.exp
libtool: link: /bin/grep -E -e "^notify_.*" ".libs/libnotify.exp" > ".libs/libnotify.expT"
libtool: link: mv -f ".libs/libnotify.expT" ".libs/libnotify.exp"
libtool: link: echo "{ global:" > .libs/libnotify.ver
libtool: link:  cat .libs/libnotify.exp | sed -e "s/\(.*\)/\1;/" >> .libs/libnotify.ver
libtool: link:  echo "local: *; };" >> .libs/libnotify.ver
libtool: link:  x86_64-pc-linux-gnu-gcc -shared  -fPIC -DPIC  .libs/notify.o .libs/notification.o .libs/notify-enum-types.o .libs/notify-marshal.o   -Wl,--as-needed -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0  -march=native -O2 -Wl,-O1   -Wl,-soname -Wl,libnotify.so.4 -Wl,-version-script -Wl,.libs/libnotify.ver -o .libs/libnotify.so.4.0.0
libtool: link: (cd ".libs" && rm -f "libnotify.so.4" && ln -s "libnotify.so.4.0.0" "libnotify.so.4")
libtool: link: (cd ".libs" && rm -f "libnotify.so" && ln -s "libnotify.so.4.0.0" "libnotify.so")
libtool: link: ( cd ".libs" && rm -f "libnotify.la" && ln -s "../libnotify.la" "libnotify.la" )
make[3]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
Making all in docs
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
Making all in reference
make[3]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs/reference'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs/reference'
make[3]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
Making all in tools
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tools'
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  -I..    -march=native -O2 -pipe -c -o notify-send.o notify-send.c
notify-send.c: In function ‘main’:
notify-send.c:173:9: warning: ‘g_type_init’ is deprecated (declared at /usr/include/glib-2.0/gobject/gtype.h:667) [-Wdeprecated-declarations]
         g_type_init ();
         ^
/bin/sh ../libtool  --tag=CC   --mode=link x86_64-pc-linux-gnu-gcc  -march=native -O2 -pipe  -Wl,-O1 -Wl,--as-needed -o notify-send notify-send.o ../libnotify/libnotify.la -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0  
libtool: link: x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -Wl,-O1 -o .libs/notify-send notify-send.o  -Wl,--as-needed ../libnotify/.libs/libnotify.so -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tools'
Making all in tests
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tests'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tests'
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6'
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6'
make[1]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6'
>>> Source compiled.
>>> Test phase [not enabled]: x11-libs/libnotify-0.7.6

>>> Install libnotify-0.7.6 into /var/tmp/portage/x11-libs/libnotify-0.7.6/image/ category x11-libs
make -j4 DESTDIR=/var/tmp/portage/x11-libs/libnotify-0.7.6/image/ install 
Making install in libnotify
make[1]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
make  install-am
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
make[3]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
 /bin/mkdir -p '/var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/lib64'
 /bin/mkdir -p '/var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/include/libnotify'
 /bin/sh ../libtool   --mode=install /usr/bin/install -c   libnotify.la '/var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/lib64'
 /usr/bin/install -c -m 644 notify.h notify-features.h notification.h notify-enum-types.h '/var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/include/libnotify'
libtool: install: /usr/bin/install -c .libs/libnotify.so.4.0.0 /var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/lib64/libnotify.so.4.0.0
libtool: install: (cd /var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/lib64 && { ln -s -f libnotify.so.4.0.0 libnotify.so.4 || { rm -f libnotify.so.4 && ln -s libnotify.so.4.0.0 libnotify.so.4; }; })
libtool: install: (cd /var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/lib64 && { ln -s -f libnotify.so.4.0.0 libnotify.so || { rm -f libnotify.so && ln -s libnotify.so.4.0.0 libnotify.so; }; })
libtool: install: /usr/bin/install -c .libs/libnotify.lai /var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/lib64/libnotify.la
libtool: install: warning: remember to run `libtool --finish /usr/lib64'
make[3]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
make[1]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/libnotify'
Making install in docs
make[1]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
Making install in reference
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs/reference'
make[3]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs/reference'
make[3]: Nothing to be done for 'install-exec-am'.
 /usr/bin/install -c -m 644 ./html/NotifyNotification.html
 /usr/bin/install -c -m 644 ./html/annotation-glossary.html
 /usr/bin/install -c -m 644 ./html/api-index-deprecated.html
 /usr/bin/install -c -m 644 ./html/api-index-full.html
 /usr/bin/install -c -m 644 ./html/ch01.html
 /usr/bin/install -c -m 644 ./html/home.png
 /usr/bin/install -c -m 644 ./html/index.html
 /usr/bin/install -c -m 644 ./html/index.sgml
 /usr/bin/install -c -m 644 ./html/left.png
 /usr/bin/install -c -m 644 ./html/libnotify-notify.html
 /usr/bin/install -c -m 644 ./html/libnotify.devhelp2
 /usr/bin/install -c -m 644 ./html/right.png
 /usr/bin/install -c -m 644 ./html/style.css
 /usr/bin/install -c -m 644 ./html/up.png
http://developer.gnome.org/libnotify/unstable/ -> /usr/share/gtk-doc/html/libnotify/ (1)
http://library.gnome.org/devel/glib/unstable/ -> /usr/share/gtk-doc/html/glib/ (77)
http://library.gnome.org/devel/gobject/unstable/ -> /usr/share/gtk-doc/html/gobject/ (4)
make[3]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs/reference'
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs/reference'
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
make[3]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
make[1]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/docs'
Making install in tools
make[1]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tools'
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tools'
 /bin/mkdir -p '/var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/bin'
make[2]: Nothing to be done for 'install-data-am'.
  /bin/sh ../libtool   --mode=install /usr/bin/install -c notify-send '/var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/bin'
libtool: install: warning: `../libnotify/libnotify.la' has not been installed in `/usr/lib64'
libtool: install: /usr/bin/install -c .libs/notify-send /var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/bin/notify-send
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tools'
make[1]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tools'
Making install in tests
make[1]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tests'
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tests'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tests'
make[1]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6/tests'
make[1]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6'
make[2]: Entering directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6'
make[2]: Nothing to be done for 'install-exec-am'.
 /bin/mkdir -p '/var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/lib64/pkgconfig'
 /usr/bin/install -c -m 644 libnotify.pc '/var/tmp/portage/x11-libs/libnotify-0.7.6/image//usr/lib64/pkgconfig'
make[2]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6'
make[1]: Leaving directory '/var/tmp/portage/x11-libs/libnotify-0.7.6/work/libnotify-0.7.6'
 * Removing unnecessary /usr/lib64/libnotify.la (no static archive)
>>> Completed installing libnotify-0.7.6 into /var/tmp/portage/x11-libs/libnotify-0.7.6/image/

strip: x86_64-pc-linux-gnu-strip --strip-unneeded -R .comment -R .GCC.command.line -R .note.gnu.gold-version
   usr/lib64/libnotify.so.4.0.0
   usr/bin/libnotify-notify-send
ecompressdir: bzip2 -9 /usr/share/doc

>>> Installing (1 of 1) x11-libs/libnotify-0.7.6::gentoo
 * checking 26 files for package collisions
>>> Merging x11-libs/libnotify-0.7.6 to /
--- /usr/
--- /usr/lib64/
>>> /usr/lib64/libnotify.so.4 -> libnotify.so.4.0.0
>>> /usr/lib64/libnotify.so -> libnotify.so.4.0.0
--- /usr/lib64/pkgconfig/
>>> /usr/lib64/pkgconfig/libnotify.pc
>>> /usr/lib64/libnotify.so.4.0.0
--- /usr/include/
--- /usr/include/libnotify/
>>> /usr/include/libnotify/notify.h
>>> /usr/include/libnotify/notify-features.h
>>> /usr/include/libnotify/notification.h
>>> /usr/include/libnotify/notify-enum-types.h
--- /usr/share/
--- /usr/share/gtk-doc/
--- /usr/share/gtk-doc/html/
--- /usr/share/gtk-doc/html/libnotify/
>>> /usr/share/gtk-doc/html/libnotify/home.png
>>> /usr/share/gtk-doc/html/libnotify/index.sgml
>>> /usr/share/gtk-doc/html/libnotify/left.png
>>> /usr/share/gtk-doc/html/libnotify/libnotify.devhelp2
>>> /usr/share/gtk-doc/html/libnotify/right.png
>>> /usr/share/gtk-doc/html/libnotify/style.css
>>> /usr/share/gtk-doc/html/libnotify/up.png
>>> /usr/share/gtk-doc/html/libnotify/libnotify-notify.html
>>> /usr/share/gtk-doc/html/libnotify/index.html
>>> /usr/share/gtk-doc/html/libnotify/ch01.html
>>> /usr/share/gtk-doc/html/libnotify/api-index-full.html
>>> /usr/share/gtk-doc/html/libnotify/api-index-deprecated.html
>>> /usr/share/gtk-doc/html/libnotify/annotation-glossary.html
>>> /usr/share/gtk-doc/html/libnotify/NotifyNotification.html
--- /usr/share/doc/
--- /usr/share/doc/libnotify-0.7.6/
>>> /usr/share/doc/libnotify-0.7.6/NEWS.bz2
>>> /usr/share/doc/libnotify-0.7.6/ChangeLog.bz2
>>> /usr/share/doc/libnotify-0.7.6/AUTHORS.bz2
--- /usr/bin/
>>> /usr/bin/libnotify-notify-send
>>> Safely unmerging already-installed instance...
No package files given... Grabbing a set.
--- replaced obj /usr/share/gtk-doc/html/libnotify/up.png
--- replaced obj /usr/share/gtk-doc/html/libnotify/style.css
--- replaced obj /usr/share/gtk-doc/html/libnotify/right.png
--- replaced obj /usr/share/gtk-doc/html/libnotify/libnotify.devhelp2
--- replaced obj /usr/share/gtk-doc/html/libnotify/libnotify-notify.html
--- replaced obj /usr/share/gtk-doc/html/libnotify/left.png
--- replaced obj /usr/share/gtk-doc/html/libnotify/index.sgml
--- replaced obj /usr/share/gtk-doc/html/libnotify/index.html
--- replaced obj /usr/share/gtk-doc/html/libnotify/home.png
--- replaced obj /usr/share/gtk-doc/html/libnotify/ch01.html
--- replaced obj /usr/share/gtk-doc/html/libnotify/api-index-full.html
--- replaced obj /usr/share/gtk-doc/html/libnotify/api-index-deprecated.html
--- replaced obj /usr/share/gtk-doc/html/libnotify/annotation-glossary.html
--- replaced obj /usr/share/gtk-doc/html/libnotify/NotifyNotification.html
--- replaced dir /usr/share/gtk-doc/html/libnotify
--- replaced dir /usr/share/gtk-doc/html
--- replaced dir /usr/share/gtk-doc
--- replaced obj /usr/share/doc/libnotify-0.7.6/NEWS.bz2
--- replaced obj /usr/share/doc/libnotify-0.7.6/ChangeLog.bz2
--- replaced obj /usr/share/doc/libnotify-0.7.6/AUTHORS.bz2
--- replaced dir /usr/share/doc/libnotify-0.7.6
--- replaced dir /usr/share/doc
--- replaced dir /usr/share
--- replaced obj /usr/lib64/pkgconfig/libnotify.pc
--- replaced dir /usr/lib64/pkgconfig
--- replaced obj /usr/lib64/libnotify.so.4.0.0
--- replaced sym /usr/lib64/libnotify.so.4
--- replaced sym /usr/lib64/libnotify.so
--- replaced dir /usr/lib64
--- replaced obj /usr/include/libnotify/notify.h
--- replaced obj /usr/include/libnotify/notify-features.h
--- replaced obj /usr/include/libnotify/notify-enum-types.h
--- replaced obj /usr/include/libnotify/notification.h
--- replaced dir /usr/include/libnotify
--- replaced dir /usr/include
--- replaced obj /usr/bin/libnotify-notify-send
--- replaced dir /usr/bin
--- replaced dir /usr
>>> Regenerating /etc/ld.so.cache...
>>> Original instance of package unmerged safely.
>>> x11-libs/libnotify-0.7.6 merged.
>>> Regenerating /etc/ld.so.cache...

>>> Recording x11-libs/libnotify in "world" favorites file...
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.
thunderrd commented 10 years ago

OK, here is something. libnotify is built with USE="-introspection" and does not install any file similar to Notify-0.7.typelib. But, if the package is built with USE="introspection" there is some action:


>>> Installing (1 of 1) x11-libs/libnotify-0.7.6::gentoo
 * checking 28 files for package collisions
>>> Merging x11-libs/libnotify-0.7.6 to /
--- /usr/
--- /usr/lib64/
--- /usr/lib64/girepository-1.0/
>>> /usr/lib64/girepository-1.0/Notify-0.7.typelib
>>> /usr/lib64/libnotify.so.4 -> libnotify.so.4.0.0
>>> /usr/lib64/libnotify.so -> libnotify.so.4.0.0
--- /usr/lib64/pkgconfig/
>>> /usr/lib64/pkgconfig/libnotify.pc
>>> /usr/lib64/libnotify.so.4.0.0
--- /usr/share/
--- /usr/share/gir-1.0/
>>> /usr/share/gir-1.0/Notify-0.7.gir

Could this be what we are after? It's too late here to continue tonight but tomorrow I will check to see if building it with introspection use flag changes the behavior.

I'll email you a text file with both build logs, with and without the "introspection" use flag.

EDIT: Oops, can't do that without an address.
Get the logs here instead: http://pastebin.com/ij679ZWq

coldfix commented 10 years ago

Looks promising! According to http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/libnotify/libnotify-0.7.6.ebuild?view=markup the ebuild is with IUSE="+introspection" though. How does that lead to building with `USE="-introspection"? Did you have gobject-introspection installed before building libnotify? (As I have never used gentoo I don't know anything about its packaging system)

thunderrd commented 10 years ago

Introspection is a newish glib/gnome3 thing, and since I use only a wm and no DE I have the flag disabled globally. I have not needed it - possibly - until now. Tomorrow I will try adding it on a per-package basis to libnotify, build it and try out udiskie.

If it fixes the issue, then I guess the maintainer has to fix the ebuild to include libnotify (+introspection) as a dependency.

gobject-introspection is installed, yes, but only because gtk+ and a few other packages require it.

coldfix commented 10 years ago

Sounds plausible :)

If it fixes the issue, then I guess the maintainer has to fix the ebuild to include libnotify (+introspection) as a dependency.

... technically as an optional dependency, I guess.

Tell me if this works, I will definitely add remarks in the README, so maintainers can pick up on that.

coldfix commented 10 years ago

BTW: please use fenced code blocks in your comments for preformatted text such as logs or code.

thunderrd commented 10 years ago

OK, Thomas, that resolved the issue, and thank you for your input and help.

Building libnotify with USE="-introspection" prevents creation of Notify-0.7-typelib and Notify0.7.gir, and the notifications do not work.

On my machine, since the introspection use flag is disabled globally, libnotify was built without it. Adding it in as a per-package only flag for libnotify yields the tray icon and the notifications.

I will note this on the gentoo bug and point them to this thread. Hopefully they will make a change. There may not be too many folks with -introspection, but it would be good to have it in the README.

Now, one last question, how to disable the tray icon from showing?

coldfix commented 10 years ago

By default, the tray icon does not show. If you enabled it in your config file but want to disable it for one individual run, you can use the -T (--no-tray) flag. If you want it not to show when there is no external device, but appear when one is inserted, use the -s flag.

thunderrd commented 10 years ago

Yup, I saw that on the man page just now.

I've appended the gentoo bug, and directed them here in case they need any specifics.

Thanks for helping.

coldfix commented 10 years ago

Hey, I added a short paragraph in the README, so hopefully the dependencies are now documented a little better. Thanks for your report and investigative work:)