Cannot build with vte-2.91

Bug #1337962 reported by ManDrive
14
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Sakura
Fix Released
Medium
David Gómez
sakura (Debian)
Fix Released
Unknown

Bug Description

[100%] Building C object CMakeFiles/sakura.dir/src/sakura.o
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:228:2: error: unknown type name 'VteTerminalCursorShape'
  VteTerminalCursorShape cursor_type;
  ^
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c: In function 'sakura_delete_event':
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:861:11: warning: passing argument 1 of 'tcgetpgrp' makes integer from pointer without a cast
    pgid = tcgetpgrp(vte_terminal_get_pty(VTE_TERMINAL(term->vte)));
           ^
In file included from /home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:27:0:
/usr/include/unistd.h:839:16: note: expected 'int' but argument is of type 'struct VtePty *'
 extern __pid_t tcgetpgrp (int __fd) __THROW;
                ^
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c: In function 'sakura_close_tab':
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:1695:9: warning: passing argument 1 of 'tcgetpgrp' makes integer from pointer without a cast
  pgid = tcgetpgrp(vte_terminal_get_pty(VTE_TERMINAL(term->vte)));
         ^
In file included from /home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:27:0:
/usr/include/unistd.h:839:16: note: expected 'int' but argument is of type 'struct VtePty *'
 extern __pid_t tcgetpgrp (int __fd) __THROW;
                ^
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c: In function 'sakura_closebutton_clicked':
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:1751:9: warning: passing argument 1 of 'tcgetpgrp' makes integer from pointer without a cast
  pgid = tcgetpgrp(vte_terminal_get_pty(VTE_TERMINAL(term->vte)));
         ^
In file included from /home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:27:0:
/usr/include/unistd.h:839:16: note: expected 'int' but argument is of type 'struct VtePty *'
 extern __pid_t tcgetpgrp (int __fd) __THROW;
                ^
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c: In function 'sakura_add_tab':
/home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:2667:18: warning: passing argument 2 of 'gtk_scrollbar_new' makes pointer from integer without a cast
  term->scrollbar=gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, vte_terminal_get_adjustment(VTE_TERMINAL(term->vte)));
                  ^
In file included from /usr/include/gtk-3.0/gtk/gtk.h:173:0,
                 from /home/user/rpmbuild/BUILD/sakura-3.1.4/src/sakura.c:38:
/usr/include/gtk-3.0/gtk/gtkscrollbar.h:69:13: note: expected 'struct GtkAdjustment *' but argument is of type 'int'
 GtkWidget * gtk_scrollbar_new (GtkOrientation orientation,
             ^
CMakeFiles/sakura.dir/build.make:57: recipe for target 'CMakeFiles/sakura.dir/src/sakura.o' failed
make[2]: *** [CMakeFiles/sakura.dir/src/sakura.o] Error 1
CMakeFiles/Makefile2:129: recipe for target 'CMakeFiles/sakura.dir/all' failed
make[1]: *** [CMakeFiles/sakura.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.yfR7Ds (%build)

Revision history for this message
David Gómez (dabisu) wrote :

vte-2.91 has a different API. It is not supporte yet in sakura. You need vte-2.90

Changed in sakura:
status: New → Invalid
Revision history for this message
Anatol Pomozov (anatol) wrote :

Are there any unofficial patches that migrate the code to vte2.91? My gut feeling says that it should not that hard to migrate to vte-2.91.

There are distros that already started preparing gnome3.14 and have the newest vte in their repos. Removing "sakura" package from official repositories is non-ideal way to solve this compatibility issue. It is better to apply a patch that moves sakura to vte2.91.

Revision history for this message
David Gómez (dabisu) wrote :

Hi Anatol. I haven't started working on a patch and vte documentation is far from ideal. I will in the future, when i have time and 2.91 starts to replace 2.90. Of course, a patch to migrate to the new version would be welcomed, but no one has send me such a patch yet.

Revision history for this message
Anatol Pomozov (anatol) wrote :

Reopen this ticket to track the vte-2.91 migration.

Changed in sakura:
status: Invalid → New
Revision history for this message
Anatol Pomozov (anatol) wrote :

What minimal version of vte do you support?

I briefly looked at list of changes between 0.36 and 0.38 and it is quite a lot of them. Those that affect sakura:

 - visual bell support has been removed https://bugzilla.gnome.org/show_bug.cgi?id=602726#c19
 - background images support has been removed, it was marked as deprecated since 0.34. Can't google any rationale for this.
 - a lot of deprecated API has been removed.

Revision history for this message
Anatol Pomozov (anatol) wrote :

I was able to compile and run sakura terminal under gnome-3.14 with following patch https://gist.github.com/anatol/0b566007276271dcc733 I am not 100% sure if this is the best way to convert off deprecated/removed vte API.

Revision history for this message
David Gómez (dabisu) wrote :

Thanks for the patch Anatol. I plan to do a release with several bugs fixed recently, and probably after that will port sakura to vte 2.91 (and probably will change then major version number because having vte >= 0.38 would be a prerequisite to compile it)

Changed in sakura:
status: New → Confirmed
assignee: nobody → David Gómez (dabisu)
importance: Undecided → Medium
summary: - Cannot build with pkgconfig(vte-2.91)
+ Cannot build with vte-2.91
Revision history for this message
Egmont Koblinger (egmont-gmail) wrote :

Just to clarify: Background image support was indeed removed. Transparent background is still available (for compositing WMs): just set a background color that has an alpha component, and set an argb visual for the app (see the unofficial gnome-terminal transparency patch in the Fedora and Ubuntu packages).

Revision history for this message
Egmont Koblinger (egmont-gmail) wrote :

Note: vte-0.40 (gnome-3.16) is out.

The API is backwards compatible with 0.38. As an addition, it brings back the word-chars support which was dropped in 0.38.

Internally the biggest change is that the scrollback buffer's contents are written to the disk compressed and encrypted rather than in plaintext. This fixes a privacy issue that many people were concerned about, so it'd be great if you could port to the newest vte api.

Changed in sakura (Debian):
status: Unknown → Confirmed
Revision history for this message
David Gómez (dabisu) wrote :

Thanks Egmont. And sorry to everyone for the looong delay. Finally i had some time to work on it. Right now i have a sakura version with all the deprecated code removed and which finally compiles and links against vte-2.91. I just need to remove some warnings and will upload the code to bzr probably tomorrow, so keep watching!

David Gómez (dabisu)
Changed in sakura:
status: Confirmed → Fix Committed
David Gómez (dabisu)
Changed in sakura:
status: Fix Committed → Fix Released
Changed in sakura (Debian):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.