Elementary OS Plank

Hi. One of the best dockbars is this one of Elementary OS. His name is Plank. Is there anyone who could try to port it? It is similar with this of Mac OS and it's amazing!
 
Hi,

In the past, I worked on this port, see my private repository:

Be careful, they are outdated (new LIB_DEPENDS syntax, and header, etc.). MASTER_SITES must refer to launchpad.net, and you need to install x11-toolkits/gtk30. But feel free to take maintenance.

With Xfce, you must activate the compositor, otherwise you'll get a black background behind dockbars.
 
The problem is that stack on gobject-introspection. It says that it needs version 1.8 and we have 1.36 so that is not going further.
 
By many programming standards, version 1.36 is newer than 1.8. These are not treated like normal decimal numbers, the portion after the decimal is considered a whole number. So 36 is greater than 8. If version 1.80 is needed, it would have that trailing zero.
 
I think I'm close to having Plank at least fully building. AFAIK I have all of the dependencies built and installed, but am running into Plank itself finding both the GTK-2.0 and GTK-3.0 headers and getting confused. Hopefully will have something to show soon :D
 
sk8harddiefast said:
When you made it, tell me. Isn't just the best dock ever made? Also can you create a port of plank?

When I have something actually working I'll definitely be posting it here. Right now I'm working on Plank, so yes there will be a port when I'm finished. Ultimately I'd like to get most of the Elementary OS DE ported over, but I would like to have a fully Docky vs vanilla Plank.

EDIT: That should read: "Docky". :OOO
 
Another update:
Spent some time tonight working on Plank. I can now build, but cannot run. Here is the output:
Code:
[INFO 21:26:18.757151] [AbstractMain] Plank version: 0.5.0
[INFO 21:26:18.757304] [AbstractMain] Kernel version: 10.0-RELEASE
[INFO 21:26:18.757350] [AbstractMain] GLib version: 2.39.91
[INFO 21:26:18.757436] [AbstractMain] GTK+ version: 3.11.8
[INFO 21:26:18.757478] [AbstractMain] Wnck version: 3.4.7
[INFO 21:26:18.757524] [AbstractMain] Cairo version: 1.12.16
[INFO 21:26:18.757569] [AbstractMain] Pango version: 1.34.1
[WARN 21:26:18.757809] [Gtk] GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

The problem being of course:
Code:
[WARN 21:26:18.757809] [Gtk] GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

Obviously I have something goofed up where GTK+2.x and GTK+3.x are being used. Any tips appreciated!
 
NuSkooler said:
The problem being of course:
Code:
[WARN 21:26:18.757809] [Gtk] GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
Obviously I have something goofed up where GTK+2.x and GTK+3.x are being used. Any tips appreciated!
It's not clear which program you are trying to execute, but ldd(1) will show the shared libraries used by a given program/executable. Can you pastebin more of the build output? And also post your Makefile(s)?
 
trh411 said:
It's not clear which program you are trying to execute, but ldd(1) will show the shared libraries used by a given program/executable. Can you pastebin more of the build output? And also post your Makefile(s)?

This is when attempting to run plank. Getting the dependencies for Plank to build requires a lot of libraries and Makefiles -- which are you interested in? When I get home tonight I can post the output of the Plank build itself if that would help. I'll also check out ldd on plank.
 
Here is the output of ldd /usr/local/bin/plank: Pastebin

Suspicious:
Code:
ldd /usr/local/bin/plank | grep gtk
	libgtk-x11-2.0.so.0 => /usr/local/lib/libgtk-x11-2.0.so.0 (0x80136d000)
	libgtk-3.so.0 => /usr/local/lib/libgtk-3.so.0 (0x8034f2000)
 
Here is Plank in my repo. Warning: It's still a bit messy with some hardcoded paths :beergrin

Let me know if you need anything else to offer clues.

I have ported/installed everything you listed, but perhaps one of them is messed up. AFAIK the only issue right now is the double link of GTK+ (2 and 3).
 
NuSkooler said:
Here is Plank in my repo. Warning: It's still a bit messy with some hardcoded paths :beergrin

Let me know if you need anything else to offer clues.

I have ported/installed everything you listed, but perhaps one of them is messed up. AFAIK the only issue right now is the double link of GTK+ (2 and 3).


Hi , i try make this port , but get error
sorry my english is not very good


root@freebsd:/usr/ports/x11-wm/plank # make
===> plank-0.5.0 depends on executable: valac - found
===> plank-0.5.0 depends on executable: gmake - found
===> plank-0.5.0 depends on executable: update-desktop-database - found
===> plank-0.5.0 depends on executable: gtk-update-icon-cache - found
===> plank-0.5.0 depends on file: /usr/local/bin/intltool-extract - found
===> plank-0.5.0 depends on shared library: libintl.so - found
===> plank-0.5.0 depends on shared library: libatk-1.0.so - found
===> plank-0.5.0 depends on shared library: libgdk_pixbuf-2.0.so - found
===> plank-0.5.0 depends on shared library: libglib-2.0.so - found
===> plank-0.5.0 depends on shared library: libpcre.so - found
===> plank-0.5.0 depends on shared library: libgtk-3.so - found
===> plank-0.5.0 depends on shared library: libpango-1.0.so - found
===> plank-0.5.0 depends on shared library: bamf.0 - found
===> plank-0.5.0 depends on shared library: unique-1.0.2 - found
===> plank-0.5.0 depends on shared library: gee.2 - not found
===> Verifying install for gee.2 in /usr/ports/devel/libgee
===> Returning to build of plank-0.5.0
Error: shared library "gee.2" does not exist
*** Error code 1

Stop.
make: stopped in /usr/ports/x11-wm/plank
 
NuSkooler said:
Here is Plank in my repo. Warning: It's still a bit messy with some hardcoded paths :beergrin

Let me know if you need anything else to offer clues.

I have ported/installed everything you listed, but perhaps one of them is messed up. AFAIK the only issue right now is the double link of GTK+ (2 and 3).

I updated my own ports of sysutils/bamf and x11-wm/plank. Feel free to use.

Everything compile fine under FreeBSD 9.2 (not tested on 10). I added libwnck3 in LIB_DEPENDS macro instead of USE_GNOME, because this port is not yet in ports tree, and I don't want to update Mk/bsd.gnome.mk.

Sorry in my previous comment, I mistook devel/libgee and devel/libgee06.
 
Hi. On Olivier's port I get this error:
Code:
ember@Unix /usr/olivier-freebsd-ports/x11-wm/plank $ sudo make install clean
===>  License GPLv3 accepted by the user
===>  Found saved configuration for plank-0.5.0
===>   plank-0.5.0 depends on file: /usr/local/sbin/pkg - found
=> plank-0.5.0.tar.xz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch https://launchpadlibrarian.net/156777764/plank-0.5.0.tar.xz
plank-0.5.0.tar.xz                            100% of  878 kB  461 kBps 00m02s
===> Fetching all distfiles required by plank-0.5.0 for building
===>  Extracting for plank-0.5.0
=> SHA256 Checksum OK for plank-0.5.0.tar.xz.
===>  Patching for plank-0.5.0
===>  Applying FreeBSD patches for plank-0.5.0
2 out of 2 hunks failed--saving rejects to lib/Factories/AbstractMain.vala.rej
=> Patch patch-lib_Factories_AbstractMain.vala failed to apply cleanly.
=> Patch(es) patch-data__Makefile.in applied cleanly.
*** Error code 1

Stop.
make[1]: stopped in /usr/olivier-freebsd-ports/x11-wm/plank
*** Error code 1

Stop.
make: stopped in /usr/olivier-freebsd-ports/x11-wm/plank

Now on @NuSkooler port I take this error:

Code:
ember@Unix ~/Desktop/nu-bsd-read-only/ports/x11-wm/plank $ sudo make install clean
===>   plank-0.5.0 depends on executable: valac - found
===>   plank-0.5.0 depends on executable: gmake - found
===>   plank-0.5.0 depends on executable: update-desktop-database - found
===>   plank-0.5.0 depends on executable: gtk-update-icon-cache - found
===>   plank-0.5.0 depends on file: /usr/local/bin/intltool-extract - found
===>   plank-0.5.0 depends on shared library: libintl.so - found
===>   plank-0.5.0 depends on shared library: libatk-1.0.so - found
===>   plank-0.5.0 depends on shared library: libgdk_pixbuf-2.0.so - found
===>   plank-0.5.0 depends on shared library: libglib-2.0.so - found
===>   plank-0.5.0 depends on shared library: libpcre.so - found
===>   plank-0.5.0 depends on shared library: libgtk-3.so - found
===>   plank-0.5.0 depends on shared library: libpango-1.0.so - found
===>   plank-0.5.0 depends on shared library: bamf.0 - not found
===>    Verifying install for bamf.0 in /usr/ports/sysutils/bamf
     => No directory for bamf.0.  Skipping..
===>   plank-0.5.0 depends on shared library: unique-1.0.2 - found
===>   plank-0.5.0 depends on shared library: gee.2 - not found
===>    Verifying install for gee.2 in /usr/ports/devel/libgee
===>   Returning to build of plank-0.5.0
Error: shared library "gee.2" does not exist
*** Error code 1

Stop.
make: stopped in /usr/home/ember/Desktop/nu-bsd-read-only/ports/x11-wm/plank

My uname -a
Code:
FreeBSD Unix 10.0-RELEASE FreeBSD 10.0-RELEASE #0: Sun Mar  2 20:47:34 EET 2014     root@Unix:/usr/obj/usr/src/sys/MYKERNEL  amd64
 
Last edited by a moderator:
sk8harddiefast said:
Hi. On Olivier's port I get this error:
Code:
ember@Unix /usr/olivier-freebsd-ports/x11-wm/plank $ sudo make install clean
===>  License GPLv3 accepted by the user
===>  Found saved configuration for plank-0.5.0
===>   plank-0.5.0 depends on file: /usr/local/sbin/pkg - found
=> plank-0.5.0.tar.xz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch https://launchpadlibrarian.net/156777764/plank-0.5.0.tar.xz
plank-0.5.0.tar.xz                            100% of  878 kB  461 kBps 00m02s
===> Fetching all distfiles required by plank-0.5.0 for building
===>  Extracting for plank-0.5.0
=> SHA256 Checksum OK for plank-0.5.0.tar.xz.
===>  Patching for plank-0.5.0
===>  Applying FreeBSD patches for plank-0.5.0
2 out of 2 hunks failed--saving rejects to lib/Factories/AbstractMain.vala.rej
=> Patch patch-lib_Factories_AbstractMain.vala failed to apply cleanly.
=> Patch(es) patch-data__Makefile.in applied cleanly.
*** Error code 1

Stop.
make[1]: stopped in /usr/olivier-freebsd-ports/x11-wm/plank
*** Error code 1

Stop.
make: stopped in /usr/olivier-freebsd-ports/x11-wm/plank

I've just uploaded right patch, sorry.

Now on @NuSkooler port I take this error:

Code:
ember@Unix ~/Desktop/nu-bsd-read-only/ports/x11-wm/plank $ sudo make install clean
===>   plank-0.5.0 depends on executable: valac - found
===>   plank-0.5.0 depends on executable: gmake - found
===>   plank-0.5.0 depends on executable: update-desktop-database - found
===>   plank-0.5.0 depends on executable: gtk-update-icon-cache - found
===>   plank-0.5.0 depends on file: /usr/local/bin/intltool-extract - found
===>   plank-0.5.0 depends on shared library: libintl.so - found
===>   plank-0.5.0 depends on shared library: libatk-1.0.so - found
===>   plank-0.5.0 depends on shared library: libgdk_pixbuf-2.0.so - found
===>   plank-0.5.0 depends on shared library: libglib-2.0.so - found
===>   plank-0.5.0 depends on shared library: libpcre.so - found
===>   plank-0.5.0 depends on shared library: libgtk-3.so - found
===>   plank-0.5.0 depends on shared library: libpango-1.0.so - found
===>   plank-0.5.0 depends on shared library: bamf.0 - not found
===>    Verifying install for bamf.0 in /usr/ports/sysutils/bamf
     => No directory for bamf.0.  Skipping..
===>   plank-0.5.0 depends on shared library: unique-1.0.2 - found
===>   plank-0.5.0 depends on shared library: gee.2 - not found
===>    Verifying install for gee.2 in /usr/ports/devel/libgee
===>   Returning to build of plank-0.5.0
Error: shared library "gee.2" does not exist
*** Error code 1

Stop.
make: stopped in /usr/home/ember/Desktop/nu-bsd-read-only/ports/x11-wm/plank

Don't use port, hosted by @NuSkooler, it's obsolete.

My uname -a
Code:
FreeBSD Unix 10.0-RELEASE FreeBSD 10.0-RELEASE #0: Sun Mar  2 20:47:34 EET 2014     root@Unix:/usr/obj/usr/src/sys/MYKERNEL  amd64
 
Last edited by a moderator:
@olivier: Which portion of my port is obsolete? It's essentially the latest Plank with patches. Since you have a working copy, I'll probably re-do mine based on your work, but that was the original starting point for me anyway.

I'm still chasing the issue of the double GTK+ linking on my box. I don't see where the extra library is coming from. Plank itself brings in the libraries I mention above, but lddtree does not show any others. Yet, my Makefile does not mention GTK+2.

Tonight I'll re-sync from your repo and see how it looks on my end. If we have similar goals here (and to this point, I think we do) perhaps we can divvy up some work.
 
Last edited by a moderator:
NuSkooler said:
@olivier: Which portion of my port is obsolete? It's essentially the latest Plank with patches. Since you have a working copy, I'll probably re-do mine based on your work, but that was the original starting point for me anyway.

Concerning libgee. In ports tree, we have 2 ports:
- devel/libgee06, old API 1.0
- devel/libgee, new API 0.8 (don't ask why)

If you search libgee library on your system like that:

Code:
ls /usr/local/lib | grep libgee
libgee-0.8.la
libgee-0.8.so
libgee-0.8.so.5

Or
Code:
ldconfig -r | grep gee
513:-lgee-0.8.5 => /usr/local/lib/libgee-0.8.so.5

Read pkg-plist of devel/libgee06, it's the same.

gee.2 doesn't exist, so in your Makefile LIB_DEPENDS macro needs to be updated.

Currently, the latest release of Plank supports both API (1.0 and 0.8).
 
Last edited by a moderator:
I've had a bit of time to play with this more, but no real progress. Using either @olivier's or my (updated as per @olivier's comments) port of Plank, it still links in two versions of GTK:
  1. libgtk-x11-2.0.so.0 (the old, which I do not want)
  2. libgtk-3.so.0 (the new, which I do want)

I've even gone as far as setting explicit PLANK_CORE_LIBS but it still manages to find and link the GTK+ 2.0 library... which ultimately warns with the message mentioned before and exits:
Code:
[WARN 21:26:18.757809] [Gtk] GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

Any suggestions? Does anyone else have this running?
 
Last edited by a moderator:
Back
Top