[opensuse-buildservice] osc build
On Wed, 30 Jan 2008, Marcus Rueckert wrote:
On 2008-01-30 08:46:56 +0100, Dirk Stoecker wrote:
osc build does not clear the build-environment, when the plattform is changed. So when I switch from 10.2 to 10.3, some packager get deinstalled and installed and the result is a (usually not working) mixed setup.
in the general section of ~/.oscrc add: build-root: /srv/osc/build-root-%(repo)s
then you get one build chroot per repository.
build-root: /srv/osc/build-root-%(repo)s-%(arch)s
is also possible.
now you just have to watch the diskusage.:)
Workarounds are a lot. But the problem is not fixed by these. Under special conditions this bug may cause hard to track build errors, thus I reported it. Saving a "This build environment is xxx"-file somewhere in the build-dir should fix the problem. Ciao -- http://www.dstoecker.eu/ (PGP key available) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 2008-02-01 14:42:08 +0100, Dirk Stoecker wrote:
On Wed, 30 Jan 2008, Marcus Rueckert wrote:
On 2008-01-30 08:46:56 +0100, Dirk Stoecker wrote:
osc build does not clear the build-environment, when the plattform is changed. So when I switch from 10.2 to 10.3, some packager get deinstalled and installed and the result is a (usually not working) mixed setup.
in the general section of ~/.oscrc add: build-root: /srv/osc/build-root-%(repo)s
then you get one build chroot per repository.
build-root: /srv/osc/build-root-%(repo)s-%(arch)s
is also possible.
now you just have to watch the diskusage.:)
Workarounds are a lot. But the problem is not fixed by these. Under special conditions this bug may cause hard to track build errors, thus I reported it. Saving a "This build environment is xxx"-file somewhere in the build-dir should fix the problem.
can you give examples? testcases? please be more detailed. such vague statements dont help us to improve the software. darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Fri, 1 Feb 2008, Marcus Rueckert wrote:
Workarounds are a lot. But the problem is not fixed by these. Under special conditions this bug may cause hard to track build errors, thus I reported it. Saving a "This build environment is xxx"-file somewhere in the build-dir should fix the problem.
can you give examples? testcases? please be more detailed. such vague statements dont help us to improve the software.
Call osc build openSUSE_10.2 i586 whatever.spec Now do a osc build openSUSE_10.3 i586 whatever.spec osc will not recognice, that the build environment is totally different and mixes the requirements, which will usually fail totally. But what if it does not fail? Then the result will be very confusing. Sure "--clean" in the call fixes this. But a better solution would be to have a file e.g. ".environment-type" somewhere (e.g. in build path) and this contains "openSUSE_10.2 i586". Now when the environment is different, it should be cleared. Pretty straightforward I think :-) Ciao -- http://www.dstoecker.eu/ (PGP key available) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Dirk Stoecker <opensuse@dstoecker.de> writes:
Sure "--clean" in the call fixes this. But a better solution would be to have a file e.g. ".environment-type" somewhere (e.g. in build path) and this contains "openSUSE_10.2 i586". Now when the environment is different, it should be cleared. Pretty straightforward I think :-)
I agree --clean is just a workaround, not the solution. I'd strongly prefer build to cache per target project, i.e. have subdirs below .init_b_cache/${repo} and to explicitely know where to pick wich package from. I anticipate this also to be very usefull for image builds where you want to possibly use several versions of the same package. S. -- Susanne Oberhauser +49-911-74053-574 SUSE -- a Novell Business OPS Engineering Maxfeldstraße 5 Processes and Infrastructure Nürnberg SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Mon, 4 Feb 2008, Susanne Oberhauser wrote:
Sure "--clean" in the call fixes this. But a better solution would be to have a file e.g. ".environment-type" somewhere (e.g. in build path) and this contains "openSUSE_10.2 i586". Now when the environment is different, it should be cleared. Pretty straightforward I think :-)
I agree --clean is just a workaround, not the solution.
I'd strongly prefer build to cache per target project, i.e. have subdirs below .init_b_cache/${repo} and to explicitely know where to pick wich package from.
There would be no conflict between these two. When you configure osc to have different subdirs, the flush never happens. But I would not make this default, as it needs more space.
I anticipate this also to be very usefull for image builds where you want to possibly use several versions of the same package.
I do not understand this sentence. Ciao -- http://www.dstoecker.eu/ (PGP key available) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Dirk Stoecker <opensuse@dstoecker.de> writes:
On Mon, 4 Feb 2008, Susanne Oberhauser wrote:
Sure "--clean" in the call fixes this. But a better solution would be to have a file e.g. ".environment-type" somewhere (e.g. in build path) and this contains "openSUSE_10.2 i586". Now when the environment is different, it should be cleared. Pretty straightforward I think :-)
I agree --clean is just a workaround, not the solution.
I'd strongly prefer build to cache per target project, i.e. have subdirs below .init_b_cache/${repo} and to explicitely know where to pick wich package from.
There would be no conflict between these two. When you configure osc to have different subdirs, the flush never happens. But I would not make this default, as it needs more space.
It could make sense to 'outdate' unused files of the cache.
I anticipate this also to be very usefull for image builds where you want to possibly use several versions of the same package.
I do not understand this sentence.
I'd like to build an iso image. This ISO should contain packages from several repositories. The build will take these repositories and somehow merge them on the image. Like for different architectures or for different package versions that are good for different contexts. Think of rails 1.2, 2.0 that you want in parallel. Or of a driver that is tested ok on the new Aldi Laptop in version 4.7.11 which however breaks some Lenovo and the HP ones --- they still need 4.4.44. That means the same package will exist in different incarnations in parallel on the resulting image. So you need to get it into the build sandbox in all these incarnations. hth? S. -- Susanne Oberhauser +49-911-74053-574 SUSE -- a Novell Business OPS Engineering Maxfeldstraße 5 Processes and Infrastructure Nürnberg SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Dirk Stoecker wrote:
Call
osc build openSUSE_10.2 i586 whatever.spec
Now do a
osc build openSUSE_10.3 i586 whatever.spec
osc will not recognice, that the build environment is totally different and mixes the requirements, which will usually fail totally. But what if it does not fail? Then the result will be very confusing.
Sure "--clean" in the call fixes this. But a better solution would be to have a file e.g. ".environment-type" somewhere (e.g. in build path) and this contains "openSUSE_10.2 i586". Now when the environment is different, it should be cleared. Pretty straightforward I think :-)
Well, in case the repositories are very similar, you don't want to rebuild the whole chroot from scratch. E.g. in server:php, we have: openSUSE_10.3 server_apache_openSUSE_10.3 server_database_openSUSE_10.3 which only differ in the apache and mysql version, means you can switch just fine. But I agree that the current way it works isn't exactly what users would expect. What about making the automatic clean configurable? [general] build-root-clean: never # never clean automatically build-root-clean: arch-change # clean when architecture changes build-root-clean: repo-change # clean when repo/arch changes (default) build-root-clean: always # always clean plus a --no-clean option to override the logic. Comments? Michal --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Michal Marek <mmarek@suse.cz> writes:
Well, in case the repositories are very similar, you don't want to rebuild the whole chroot from scratch. E.g. in server:php, we have:
openSUSE_10.3 server_apache_openSUSE_10.3 server_database_openSUSE_10.3
which only differ in the apache and mysql version, means you can switch just fine. But I agree that the current way it works isn't exactly what users would expect.
What about making the automatic clean configurable?
[general] build-root-clean: never # never clean automatically build-root-clean: arch-change # clean when architecture changes build-root-clean: repo-change # clean when repo/arch changes (default) build-root-clean: always # always clean
When the arch changes, then the repos have changed, haven't they? When apckages are updated int he repos, have the repos changed? How about this: build-root: clean # rebuild the root from scratch build-root: update # update the packages that need updates, # fall back to clean if too complex, # default build-root: keep # keep the root as it
plus a --no-clean option to override the logic.
--no-clean as shorthand for --build-root=keep ? --clean as shorthand for --build-root=clean ?
Comments?
Michal --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
-- Susanne Oberhauser +49-911-74053-574 SUSE -- a Novell Business OPS Engineering Maxfeldstraße 5 Processes and Infrastructure Nürnberg SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Susanne Oberhauser wrote:
Michal Marek <mmarek@suse.cz> writes:
What about making the automatic clean configurable?
[general] build-root-clean: never # never clean automatically build-root-clean: arch-change # clean when architecture changes build-root-clean: repo-change # clean when repo/arch changes (default) build-root-clean: always # always clean
When the arch changes, then the repos have changed, haven't they?
When apckages are updated int he repos, have the repos changed?
I meant repository as in <repository> in the project config, in osc it's actually called "platform". osc build openSUSE_Factory i586 # ... two weeks later ... osc build openSUSE_Factory i586 # 1) changes neither repository nor arch osc build openSUSE_10.3 i586 # 2) changes repository osc build openSUSE_10.3 x86_64 # 3) changes architecture 'build-root-clean: always' would clean in all cases 'build-root-clean: repo-change' would clean in 2) and 3) 'build-root-clean: arch-change' would clean in 3)
How about this:
build-root: clean # rebuild the root from scratch build-root: update # update the packages that need updates, # fall back to clean if too complex, # default
Define "too complex"...
build-root: keep # keep the root as it
Well, that's --no-init, but I wonder who would want to put this into his .oscrc.
plus a --no-clean option to override the logic.
--no-clean as shorthand for --build-root=keep ?
No, --no-clean to disable the automatic --clean (the build root would be updated as it is done now). Michal --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Mon, 4 Feb 2008, Michal Marek wrote:
Call
osc build openSUSE_10.2 i586 whatever.spec
Now do a
osc build openSUSE_10.3 i586 whatever.spec
osc will not recognice, that the build environment is totally different and mixes the requirements, which will usually fail totally. But what if it does not fail? Then the result will be very confusing.
Sure "--clean" in the call fixes this. But a better solution would be to have a file e.g. ".environment-type" somewhere (e.g. in build path) and this contains "openSUSE_10.2 i586". Now when the environment is different, it should be cleared. Pretty straightforward I think :-)
Well, in case the repositories are very similar, you don't want to rebuild the whole chroot from scratch. E.g. in server:php, we have:
openSUSE_10.3 server_apache_openSUSE_10.3 server_database_openSUSE_10.3
which only differ in the apache and mysql version, means you can switch just fine. But I agree that the current way it works isn't exactly what users would expect.
What about making the automatic clean configurable?
[general] build-root-clean: never # never clean automatically build-root-clean: arch-change # clean when architecture changes build-root-clean: repo-change # clean when repo/arch changes (default) build-root-clean: always # always clean
plus a --no-clean option to override the logic.
More than one month passed and nothing happend. I still run frequently into corrupt repositories due to changing repo. Any plans to start fixing this? Ciao -- http://www.dstoecker.eu/ (PGP key available) --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 2008-02-02 15:17:16 +0100, Dirk Stoecker wrote:
On Fri, 1 Feb 2008, Marcus Rueckert wrote:
Workarounds are a lot. But the problem is not fixed by these. Under special conditions this bug may cause hard to track build errors, thus I reported it. Saving a "This build environment is xxx"-file somewhere in the build-dir should fix the problem.
can you give examples? testcases? please be more detailed. such vague statements dont help us to improve the software.
Call
osc build openSUSE_10.2 i586 whatever.spec
Now do a
osc build openSUSE_10.3 i586 whatever.spec
osc will not recognice, that the build environment is totally different and mixes the requirements, which will usually fail totally. But what if it does not fail? Then the result will be very confusing.
Sure "--clean" in the call fixes this. But a better solution would be to have a file e.g. ".environment-type" somewhere (e.g. in build path) and this contains "openSUSE_10.2 i586". Now when the environment is different, it should be cleared. Pretty straightforward I think :-)
the problem is not the rpm cache and all that the trouble makers are the rpms _installed_ inside the chroot. and that would be happily solved with just using the build-root option in the .oscrc which i already described on the list. i dont think it should auto clean any chroot. darix -- openSUSE - SUSE Linux is my linux openSUSE is good for you www.opensuse.org --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (4)
-
Dirk Stoecker
-
Marcus Rueckert
-
Michal Marek
-
Susanne Oberhauser