Is the source in a distro-specific RPM the same as the sourcecode in a TAR.GZ or BZ2?
Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Well! WELL!! That just takes my cake, and EATS it too!
All this time, I have been scouring the planet for -devel things I don't need? I simply need the main ingredient?? Such as in this example, I would just need 'control-center' but NOT 'control-center AND control-center-devel' ???
SHeeeeeessshHSHSHHS.. Ack!
Well.. Maybe I will have another go at this thing then.. Thanks for that
The files you need are in gnome-libs, control center, bonobo activation, bonobo, ORBit, GTK+ (for GTK2), and glib. It's just that the GNOME developers don't split things into userland files and development files because they don't provide precompiled binaries and libraries like the distros do.
But if you want to build Control Center, you'll have a long list of dependencies to satisfy before you get to Control Center itself.
Let me quote my second post in this threadBut if you want to build Control Center, you'll have a long list of dependencies to satisfy before you get to Control Center itself.
#$@%# --- When I read that post, and I did read it, I thought you meant that the stuff I needed was in those FOLDERS on the FTP server, NOT in those specific packages :O
Ok, maybe I'm missing something - but yes, to compile "control-center-2.17.tar.gz" you actually have to compile _everything_ in the list above control-center.
Some way or another: You just have to go through the list and check what you've already got (X for example) and what you lack and what you lack has to be installed more or less in order of the list (until a certain point, after that it mostly doesn't matter anymore.)
And for the stuff you lack, you get the source-tar.gzs and source-tar.bz2s and you'll be fine.
Ok, maybe I'm missing something - but yes, to compile "control-center-2.17.tar.gz" you actually have to compile _everything_ in the list above control-center.
Some way or another: You just have to go through the list and check what you've already got (X for example) and what you lack and what you lack has to be installed more or less in order of the list (until a certain point, after that it mostly doesn't matter anymore.)
And for the stuff you lack, you get the source-tar.gzs and source-tar.bz2s and you'll be fine.
(Just some minor editing in the source, maybe.. )
If you're not using a source-based distro, you may have the userland portion of the packages, but not the development files. For example, you probably have X Windows installed and "it works because it's magical." However, if you don't have the development files, you'll need those. So you'll probably find that you need to install every package in the list above Control Center (including X Windows) before you can build Control Center.
So what is the difference between <package> and <package>-dev(el)? An example is probably best. Take a look at the Ubuntu userland package libgnome2-0. What's provided by this package is the libraries themselves and some documentation. Now take a look at the Ubuntu development package libgnome2-dev. See any differences? The key differences for building other packages are the header files (*.h) and the metadata file (*.pc).
The header files are important because the define to other programs what is contained in the libgnome library. Other packages include libgnome functions by referencing these header files in #include statements. For example
Code:
#include <libgnome.h>
The metadata files are used by the pkg-config utility and contains various information about installed libraries such as parameters for the C and C++ compiler, parameters for the linker, package version, and installed location of various portions of the package. These metadata files are not really that exciting. Here's the one for libpng on my box
You don't need the information in the headers or metadata files to execute the binary or dynamically load the library, so most non-source distros strip them out into a separate -dev(el) package to be used by people developing software.
Now, download the libgnome tarball from the GNOME repositories and unpack it. Poke around and you'll find all the header files and a libgnome.pc.in file from whence the libgnome.pc file is created when you execute the configure script for libgnome.
<snip>
You don't need the information in the headers or metadata files to execute the binary or dynamically load the library, so most non-source distros strip them out into a separate -dev(el) package to be used by people developing software.
<snip>
Excellent explanation. This is something that annoys the life out of me about packaged software. The dev files should be for developers only, but all too often one of the dependencies you absolutely must have is a dev file. Lazy programming or lazy packaging?
IMHO the headers don't take up an enormous amount of hdd space. My /usr/include only contains about 100MB of files. Why not just install the dev(el) stuff with the binary package? Non-developers won't even know the stuff is there. The package maintainers provide one tarball with everything everyone needs. Why not keep it that way?
IMHO the headers don't take up an enormous amount of hdd space. My /usr/include only contains about 100MB of files. Why not just install the dev(el) stuff with the binary package? Non-developers won't even know the stuff is there. The package maintainers provide one tarball with everything everyone needs. Why not keep it that way?
I couldn't agree more with this sentiment. I'm hardly concerned with what disk space some header files might occupy. It would be a lot simpler to just have the stuff in one tarball. Those who don't need it would not even know it was there, and the odd time ya DO need it, there it is.
You have to ask the distributors eg RH why, but I suspect it's historical.
In the early days of Linux cpu/RAM/HDD capabilities were extremely limited, so you didn't want anything you didn't absolutely need.
I personally absolutely don't like the separation of "devel" and "hello, user".
(Let's put small embedded systems and real space saving issues aside.)
How many users who like simplified GUIs and exhaustive pre-configuration actually care wether there're somewhere some header files or not?
Chrism: I don't remember my early distributions to be distributed that way. Especially as early distributions had been rather small in terms of number of packages there was no need to separate this. I remember just X sometimes being separeted that way.
Later some distribution started this, I don't remember which one exactly.
I don't specifically remember that far back myself, but you do sometimes find that old 'guidelines' still exist that have been superceded by technology eg 'swap should be 2 x RAM'.
As I said, you'd have to ask a distro maker.
It may be that as distros started being used by non-tech people, they decided to only distribute binaries by default, rather than inc devel, as most people didn't compile their own systems from scratch (even now).
Think pkg mgrs for rpm, dpkg etc.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.