I am not a software developer. I am a day-to-day home computer user and I like to have my system running, up-to-date, and capable of all that the installed software is capable of (given any hardware limitations).
So...
What are bindings? Do I need all of them? Which ones do I need? What if I don't have some of them installed?
I am confused and yum info package does not make it any clearer: qt bindings to python, kde3 bindings to python, qscintilla pyqt4 bindings, etc.
What do they do? Are they just for software development, or do these programs need to be 'bound' to eachother to get the software to function with all of it's intended features?
A while back, when we were upgrading to kde-4.3.90, I had to uninstall a number of these various and sundry bindings to python to get the upgrade to work. I cannot notice any difference without them. As far as I am able to ascertain, they don't appear to be required. Now, a few, well... qscintilla-python, are again available and I am asking myself: should I slavishly reinstall all of these packages when they don't seem to actually do anything? Or are they really doing something more subtle that is not immediately apparent?
On Sunday 17 January 2010 15:38:47 Petrus de Calguarium wrote:
What are bindings?
<snip<
What do they do? Are they just for software development, or do these programs need to be 'bound' to eachother to get the software to function with all of it's intended features?
Yes, a lot of these are for software development. For example qt python binding is useful for python programmer who wants to be able to use QT libraries for graphical stuff, probably similarly KDE python binding. QScintilla is a QT port of scintilla editor, so presumably QScintilla-python binding is a way for accessing the editor function / libraries via python programming language.
C++ is the predominant/native programming language used for development that uses QT libraries for graphical stuff (KDE being a specific example). But Python (in this specific case) is very popular and a lot easier to use too for something appropriate with its domain. The binding allows a programmer to keep using Python, for example, keep all the benefits of high-level language, yet uses a graphical libraries such as QT for user interface and get the same look-and-feel as the rest of KDE GUI. So maybe think of the bindings libraries as the glue to connect libraries build with different programming languages to be accessible among each other. There are other bindings as well, for exampel GTK Python binding, QT Java binding, etc.
So in sort, you're right that you probably don't need all those binding libraries unless you're doing software development, and even then, software development that needs a way to call those different libraries from the native programming language you use.
I hope that make sense and helps explaining some.
AC
On Sun 17 January 2010 1:36:07 pm Armelius Cameron wrote:
Yes, a lot of these are for software development
No, they are not just for software development. Applications use them at runtime. Say you write a Plasma widget in python.
Plasma doesn't speak python by default, and python has no knowledge of any KDE or Qt libraries, functions, or anything, because the libraries are written in a language that these don't understand.
Along come bindings. These give various languages (in the case of PyQt, PyKDE4 and PyQt4 it is Python) an interface to call the functions that exist in the C++ libraries for Qt3, KDE and Qt4.
Think of it as a translator of sorts, or an "international" adapter that allows you to use your power cords in other nations with different plugs :)
Ryan
On Sunday 17 January 2010 17:26:04 Ryan Rix wrote:
On Sun 17 January 2010 1:36:07 pm Armelius Cameron wrote:
Yes, a lot of these are for software development
No, they are not just for software development. Applications use them at runtime. Say you write a Plasma widget in python.
Doh... yes, of course, you're right :). If any of the applications one is trying to run use any of these bindings, then the libraries are needed during runtime. RPM Yum dependencies should take care of that via dependencies, hopefully.
AC
For some reason gmane isn't posting the responses to my query. I didn't realize you guys had responded until now, many hours later, when I decided to check at:
http://lists.fedoraproject.org/pipermail/kde/2010-January/005358.html
-
So, I guess, as was pointed out, I do sometimes need bindings, even merely to run a program, not only to write it.
Is there a way to know which of the myriad bindings packages I need to install on my system? I realize that yum ought to take care of it when I install or update, but...
What about when I run rpm -e some-binding? Does rpm know that some-binding.rpm was pulled in by yum for some other program?
I had a fair number of these bindings on my system, of the form x-python, y-python, z-python and so on. I never explicitly installed them, so yum must have pulled them in as dependencies for some program, but when I installed kde-4.3.90, there were problems that I managed to resolve with rpm -e x-python y-python z-python etc.
rpm allowed me to remove them, so what happened? Did rpm 'forget' that they were dependencies, or are they no longer dependencies?
On Sunday 17 January 2010 19:53:17 Petrus de Calguarium wrote:
So, I guess, as was pointed out, I do sometimes need bindings, even merely to run a program, not only to write it.
I guess to be more precise: Yes, you need this binding libraries if you happen to run program that needs them. This should be taken care of by dependencies when you install the program that needs the binding libraries via 'yum' or 'rpm' (someone correct me if that's not the case). Otherwise, no, you don't need to have various python or whatever language binding installed in your system if you don't plan to develop software or write program that uses particular binding libraries.
Is there a way to know which of the myriad bindings packages I need to install on my system?
Not sure, on top of my head. As you said yourself, yum should take care of it. If yum didn't , then it'd be obvious when you try to run some program and get an error of some libraries not found.
What about when I run rpm -e some-binding? Does rpm know that some-binding.rpm was pulled in by yum for some other program?
It should. "rpm" knows about dependencies. It shouldn't allow you to remove something by doing "rpm -e some-binding" if that particular package is needed by other program.
I had a fair number of these bindings on my system, of the form x-python, y-python, z-python and so on. I never explicitly installed them, so yum must have pulled them in as dependencies for some program, but when I installed kde-4.3.90, there were problems that I managed to resolve with rpm -e x-python y-python z-python etc.
Did you maybe install "Software Development" group during initial install ? Not sure.
rpm allowed me to remove them, so what happened? Did rpm 'forget' that they were dependencies, or are they no longer dependencies?
rpm itself knows about dependencies, so if the package were set up correctly it shouldn't let you remove a package via "rpm -e package" if it's needed by other thing. Yum actually just helps you pulls rpm packages that you need, but the dependencies information itself is in rpm (someone correct me if I am wrong here).
AC
Thanks (gmane still isn't showing your response). You have cleared up my misgivings.
Since rpm -e allowed me to remove a package, then it must not be required by any currently installed program, and I have likely not damaged anything by removing these apparently unrequired packages, so I need not reinstall them.
By the way, I also uninstalled PyQt and PyKDE (I have PyQt4 and PyKDE4) and rpm never complained, so I presume my system does not need them for anything (I am trying to keep my system clean of any old kde3 stuff, as much as possible).
On 01/17/2010 09:46 PM, Petrus de Calguarium wrote:
Thanks (gmane still isn't showing your response). You have cleared up my misgivings.
http://lists.fedoraproject.org/pipermail/kde/2010-January/005311.html
Since rpm -e allowed me to remove a package, then it must not be required by any currently installed program, and I have likely not damaged anything by removing these apparently unrequired packages, so I need not reinstall them.
By the way, I also uninstalled PyQt and PyKDE (I have PyQt4 and PyKDE4) and rpm never complained, so I presume my system does not need them for anything (I am trying to keep my system clean of any old kde3 stuff, as much as possible).
kde mailing list kde@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/kde New to KDE4? - get help from http://userbase.kde.org
On Mon, Jan 18, 2010 at 01:46, Petrus de Calguarium kwhiskerz@gmail.com wrote:
Thanks (gmane still isn't showing your response). You have cleared up my misgivings.
Since rpm -e allowed me to remove a package, then it must not be required by any currently installed program, and I have likely not damaged anything by removing these apparently unrequired packages, so I need not reinstall them. [...]
The exception to that is things like applets that you get through "Get New Stuff". Yum/rpm only tracks dependencies between rpms. If you install something else manually (applets installed through get new stuff often contain python scripts for instance) then yum/rpm has no way to track that so if you uninstall bindings that are needed by an applet the appropriate applets will start giving an error. If however you haven't installed such things then it won't matter if you remove the bindings.