[opensuse] Re: openSUSE build & testing procedure and faulty pruning of builds causing rpmbuild failures
Greg Freemyer wrote:
openSUSE has moved to a new build paradigm and you are complaining the old one no longer works and you can't use it to build the distro pieces.
I am complaining that one cannot use a standard suse distro machine to do a build of the source packages anymore. It's not about new and old. I get new versions of compiler make, even samba uses a python tool instead of configure/make for samba4, but it still builds on my local OpenSuSE12.1 system. The source packages from OBS are not robust. It is NOT that they don't have requirements listed -- they do -- but they are requiring something that the rpm build system never provisioned for... They are requiring you NOT to have various packages installed *during the build*, because the build can pick up extra available tools to build more support or to optimize the build. Instead of building packages as they would be build by an installed distro, they are building some arbitrary subset that isn't built to work with the entire distro they ship. If that's the case, they should stop shipping those extra packages and sources and stop pretending that this giant collection of RPMs is all one compatible distribution. It's more important, TO ME, to have a distribution that works together that I can use to rebuild itself, than to have "bigger numbers" of packages that I can't really use (but don't know it) because if I do, builds will go awry.
I think this thread (series of threads) have made is clear the core set of openSUSE maintianers simply don't care if the old legacy way still works or not.
Several people have mentioned to me that they and others who no longer post have given up on trying to get their opinions heard, but that they appreciate my efforts, as it bespeaks to many of the issues they brought up, attempted to have addressed, and had ignored.
openSUSE has invested great effort into obs and they are properly proud of it. I think OBS is one of the crown jewels of opensuse.
Of that I have think no one disagrees -- and that's part of the problem. If you had such a nice new toy... and someone didn't want to use it, how well would you respond? I didn't even ask them *NOT* to use it -- I asked them to change their 'base system', from a "minimum necessary" (which will NEVER represent what users have on their machines), to a full development install, which should catch 90% of the interactions between packages during build that can happen to customers -- and allow them to be fixed before they hit the customer. I know this upsets the 'train schedule' theory of product release, but sorry, you can't schedule creative efforts like building machines. Each release is something that has NEVER been done before. It's never been tried -- never been put together "exactly this way" -- to expect that you can predict how long that is going to take reliable is foolish, wishful thinking. How can you predict how long that which has never been done before? One way is to eliminate all complexity and as many unknowns as possible. You can do this by NOT creating a distro, but by building a collection of packages in isolation from each other -- that when run in a particular way (like a script), will give a more specific result. But no longer do you have a distribution that's integrated and designed to work together -- but a collection of packages designed to be run and generated in only certain predictable ways. That's not a personal computer -- that's an appliance. What people are talking about is shifting SuSE from a linux-distro builder to a linux-appliance builder (or a platform for building linux appliances). That would indicate that openSuSE is removing themselves from the linux distro market, and going for a niche subset market, while still telling people they are a linux distro. I wanna know -- when was the decision made to shift away from being a linux distro and become an appliance-OS vendor? Was this made clear to everyone working with opensuse? I didn't realize it until this set of emails, that this was the most likely reason, behind the scenes, for this to occur.... but it makes sense with other projects open Suse has gotten into. I could say more, but I want to address your other points...
The normal way from my perspective to build a package is to checkout a local copy of the package from OBS and use "osc build" to build it.
You've argued that since that interacts with OBS it isn't satisfactory.
No... checking it out from OBS -- let me use svs/cvs/mercurial/git... whatever, osc hasn't worked for me yet. Tried yesturday to install more of those packages and they failed due to the server being down/unreachable. 2012-07-19 14:17:50 <2> Ishtar(2980) [YCP] PackageCallbacks.ycp:2075 Download failed: error 4: File './x86_64/obs-server-2.3.3-5.1.x86_64.rpm' not found on medium 'http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_12.1/' 2012-07-19 14:19:48 <2> Ishtar(2980) [YCP] PackageCallbacks.ycp:2075 Download failed: error 4: File './x86_64/obs-api-2.3.3-5.1.x86_64.rpm' not found on medium 'http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_12.1/' 2012-07-19 14:23:05 <1> Ishtar(2980) [YCP] PackagesUI.ycp:494 Installation summary: Package Installation Failed * Error Message: Packages * Failed Packages: 2 obs-api, obs-server * Installed Packages: 93 MozillaThunderbird, apache2-mod_xforward, augeas, dbus-1-glib-doc, deltarpm, enblend-enfuse, flash-player-gnome, flash-player-kde4... (more) <installed_packages> * Removed Packages: 1 esound-daemon Statistics * Elapsed Time: 03:04 * Total Installed Size: 152.38 MB * Total Downloaded Size: 4.89 MB Details * Installation log <install_log> * Post-Installation log (SUSEconfig) <postinstall_log> Note -- despite my posts here, I am still trying to make progress on multiple fronts, -- including installing the recommended osc packages, which, as you can tell from yesterday's summary, failed.
It is untested for me but working with a source tarball this should work in isolation from OBS.
mkdir ~/osc mkdir ~/osc/my_local_projects cd ~/osc/my_local_projects osc importsrcpkg <source rpm> --local-package cd <package> osc build --local-package
I read in the manpage that the above says it builds locally. So how about it giving the option of producing a shell script that can be run -- since, the above looks like you are running the "local build" through a remote osc session -- will this work when you are not connected online (for example)? (or if osc is down? or you have no working osc connection?)
I do have confidence that if you drop the --local-package options and assuming you have your OBS account initialized (by logging into OBS one time) and you have internet access then something like the above will work except it is more like:
The idea of a local build is so that once you have the sources downloaded, you don't have to be on the internet.
You may not like the new workflow, but to argue openSUSE has lost the ability to build packages locally is simply false. It is just that opensuse has moved to a new paradigm and you are still using the old one.
The new system uses rpmbuild as well, I'm told -- So what directory do I 'cd' to and run my rpmbuild command? -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Linda, On Fri, 20 Jul 2012 19:56:00 -0700, Linda Walsh <suse@tlinx.org>
I am complaining that one cannot use a standard suse distro machine to do a build of the source packages anymore.
You can *IF YOU BUILD THE WAY THAT'S SUPPORTED*. It has been that way for more than a decade.
Instead of building packages as they would be build by an installed distro, they are building some arbitrary subset that isn't built to work with the entire distro they ship.
For the last time: THIS HAS NEVER BEEN A SUPPORTED WAY OF BUILDING PACKAGES.
If you had such a nice new toy... and someone didn't want to use it, how well would you respond?
SUSE's primary focus is on building packages for a distribution and for that, the only reliable way is to build in a defined chrooted environment. If building packages any other way does work it's totally unsupported and more or less pure luck. This has always been so and will not change. This is an open source world, so if you want it working differently you have all the sources and are free to make the changes you want and offer your changes for adoption.
I didn't even ask them *NOT* to use it -- I asked them to change their 'base system', from a "minimum necessary" (which will NEVER represent what users have on their machines), to a full development install, which should catch 90% of the interactions between packages during build that can happen to customers -- and allow them to be fixed before they hit the customer.
This is unacceptable for an automatic build system with limited resources like SUSE uses, first its internal autobuild and then the OBS. Every package that's part of the build environment must be tracked to trigger rebuilds when any package in that environment changes. So you *must* limit the number of packages to the minum required to build the package.
But no longer do you have a distribution that's integrated and designed to work together -- but a collection of packages designed to be run and generated in only certain predictable ways.
That's *your* definition of a distribution, not neccessarily that of others.
That's not a personal computer -- that's an appliance.
Never in the times that the personal computer exists have you been guarantied that any random selection of programs will peacefully coexist.
What people are talking about is shifting SuSE from a linux-distro builder to a linux-appliance builder (or a platform for building linux appliances). That would indicate that openSuSE is removing themselves from the linux distro market, and going for a niche subset market, while still telling people they are a linux distro.
SUSE has always built packages the way you reject, so *if* your accusations would be true, we're not shifting somewhere but have always been there.
No... checking it out from OBS -- let me use svs/cvs/mercurial/git... whatever, osc hasn't worked for me yet.
No, an SCCS like svc or git is no replacement for OBS so you can't really compare them or only in certain parts. So focussing on why OBS doesn't work for you would be much better. As getting OBS to work is as easy as getting yourself an openSUSE account and installing the osc package. It has worked that way for me and for others from day one on, so I'm curious what problems you encountered.
The new system uses rpmbuild as well, I'm told -- So what directory do I 'cd' to and run my rpmbuild command?
Of cause it uses rpmbuild, but in a defined environment containing only a fixed number of base packages plus the packages required to build the one in question. Heck, by default the build environment for factory doesn't even contain autoconf, automake or makeinfo so you have to add explicit BuildRequires to the spec if they are needed. Philipp -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On Friday 20 July 2012 19:56:00 Linda Walsh wrote:
Greg Freemyer wrote:
openSUSE has moved to a new build paradigm and you are complaining the old one no longer works and you can't use it to build the distro pieces.
---
I am complaining that one cannot use a standard suse distro machine to do a build of the source packages anymore.
It's not about new and old. I get new versions of compiler make, even samba uses a python tool instead of configure/make for samba4, but it still builds on my local OpenSuSE12.1 system.
The source packages from OBS are not robust.
You have an extremely weird definition of robust. If by robust you mean "will build no matter what is installed on the system during build" then I don't think there exists any robust package anywhere. Second, you are confusing two things: building a package, and running it. Testing building with different environments is not merely a complete waste of time, it is totally against all engineering principles and I really don't care what your education is. The built package on the other hand has to be tested against lots of different things. This is where compatibility with other packages is actually important. If you want to rebuild a package, good luck and have fun, but for SUSE's packages, the only important things is that the built and shipped packages work. If you find a package that doesn't *run* while another package is installed, and it isn't listed as a conflict in the rpm metadata, this is a very valid bug and will be fixed. The failing builds you mention, not so much Anders -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
participants (3)
-
Anders Johansson
-
Linda Walsh
-
Philipp Thomas