On 7/6/2018 12:29 AM, don fisher wrote:
I have been searching trying to discover why so many of my 42.3 applications fail in leap 15. As a test I rebooted my system so things would be fresh, and then executed:
pstree -p -n
With Thunderbird, Firefox, Rhythmbox, fvwm2, a terminal an a few others, there were 438 different processes spawned. Just Firefox was responsible for 238 processes. Rhythmbox, one of my problem apps, had 10 processes.
I would like to find documentation describing how one would write an application and all of the synchronization requirements linked by gdbus and the other protocols. I am currently rereading the systemd documentation which gives some of the desired information at startup. What I would like is a document that ended with a cookbook giving a full example of an application. For example a simple window with a push button in it.
I am sure people do write code for opensuse, or else we wouldn't need such a software development environment. The only documentation I can find relates to setting up the environment and system management.
Thanks, and it doesn't have to be free. I will buy a book if available. Don
Wow! You definitely have the "Go Big or Go Home!" attitude. That's admirable. Either I don't understand the scope of what you are asking or you are asking for a whole lot more than you think you are?? For starters, which language would you like to write it it? That will make a whole lot of difference in the tools you have to talk to all the various associated processes in. What toolkit? Gtk+, Qt, X11, wxwidgets? What is the app supposed to do? An app with just a push button is fairly simple, but how you go about doing it is wildly different between Gtk+2.0, Gtk+3.0, Qt4, Qt5, or just good old Xwindows. There are a number of good tutorials for each. For example a Gtk+2 window with a button in it that just quits the app could be as short as: #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; /* pointer for main window */ GtkWidget *halign; /* pointer for alignment object */ GtkWidget *btn; /* pointer for button */ gtk_init(&argc, &argv); /* the normal gtk initialization */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); /* create main window */ gtk_window_set_title(GTK_WINDOW(window), "GtkButton"); /* set title */ gtk_window_set_default_size(GTK_WINDOW(window), 230, 150); /* size */ gtk_container_set_border_width(GTK_CONTAINER(window), 15);/* border */ /* window position on screen */ gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); halign = gtk_alignment_new(0, 0, 0, 0); /* alignment top left */ gtk_container_add(GTK_CONTAINER(window), halign); /* add to window */ btn = gtk_button_new_with_label("Quit"); /* new button "Quit" */ gtk_widget_set_size_request(btn, 70, 30);/* button size */ gtk_container_add(GTK_CONTAINER(halign), btn); /* add to alignment */ g_signal_connect(G_OBJECT(btn), "clicked", /* respond to clicked */ G_CALLBACK(gtk_main_quit), G_OBJECT(window)); g_signal_connect(G_OBJECT(window), "destroy", /* handle titlebar X */ G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(window); /* make it all visible */ gtk_main(); /* run the loop to respond to events (like click) */ return 0; } (save as mygtkapp.c) Which you could compile with $ gcc -Wall -Wextra -o mygtkapp mygtkapp.c `pkg-config --cflags --libs gtk+-2.0` (with gtk2-devel, libgtk-2_0-0 and pkg-config installed) Kdevelop used to come with a built-in tutorial that showed you how to do the same thing with KDE/Qt. I haven't checked whether the current works. But you can basically pick your toolkit you want to work with, and then search "tookit tutorial examples" in your favorite search engine and get a good smattering of pages. (and don't forget to search "tookit manual" to get a link to the manual and API for whatever you are using) -- David C. Rankin, J.D.,P.E. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org