[opensuse-buildservice] [pull] sparc updates to build-service
Hi, these are remaining patches that were needed/useful during the now-completed SPARC build. The following changes since commit 6468ab77d54bd8e9546377a9deff83f13b971011: Stephan Kulow (1): catch errors in looking for changes are available in the git repository at: git://dev.medozas.de/suse-build-service master Jan Engelhardt (6): dist: set +x bits on files obsworker: use sysfs instead to get number of CPUs obsworker: use nice level 18 by default, not 19 obs-server, webui: update SPARC definitions bs_sched: add default ExportFilters for SPARC bs_sched: add option for faster turnaround by using single-depth deps dist/obsworker | 4 +- dist/sysconfig.obs-worker | 7 +++- src/backend/BSConfig.pm.template | 5 +++ src/backend/bs_dispatch | 4 +- src/backend/bs_sched | 33 +++++++++++++++++++- src/backend/bs_worker | 10 +++++- src/webui/app/views/project/add_target.rhtml | 2 +- .../app/views/project/add_target.rhtml.template | 2 +- 8 files changed, 56 insertions(+), 11 deletions(-) mode change 100644 => 100755 dist/bugz-login mode change 100644 => 100755 dist/obs_import_srcdebtree mode change 100644 => 100755 dist/obs_import_srcrpmtree mode change 100644 => 100755 dist/obs_mirror_project mode change 100644 => 100755 dist/obs_mirror_project.py mode change 100644 => 100755 dist/obs_project_srcimport mode change 100644 => 100755 dist/obs_project_update mode change 100644 => 100755 dist/obsapisetup mode change 100644 => 100755 dist/obsdispatcher mode change 100644 => 100755 dist/obspublisher mode change 100644 => 100755 dist/obsrepserver mode change 100644 => 100755 dist/obsscheduler mode change 100644 => 100755 dist/obsservice mode change 100644 => 100755 dist/obssigner mode change 100644 => 100755 dist/obssrcserver mode change 100644 => 100755 dist/obsstoragesetup mode change 100644 => 100755 dist/obswarden mode change 100644 => 100755 dist/obsworker -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Signed-off-by: Jan Engelhardt
merged this one Am Montag, 12. April 2010 22:27:50 schrieb Jan Engelhardt:
Signed-off-by: Jan Engelhardt
--- 0 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 dist/bugz-login mode change 100644 => 100755 dist/obs_import_srcdebtree mode change 100644 => 100755 dist/obs_import_srcrpmtree mode change 100644 => 100755 dist/obs_mirror_project mode change 100644 => 100755 dist/obs_mirror_project.py mode change 100644 => 100755 dist/obs_project_srcimport mode change 100644 => 100755 dist/obs_project_update mode change 100644 => 100755 dist/obsapisetup mode change 100644 => 100755 dist/obsdispatcher mode change 100644 => 100755 dist/obspublisher mode change 100644 => 100755 dist/obsrepserver mode change 100644 => 100755 dist/obsscheduler mode change 100644 => 100755 dist/obsservice mode change 100644 => 100755 dist/obssigner mode change 100644 => 100755 dist/obssrcserver mode change 100644 => 100755 dist/obsstoragesetup mode change 100644 => 100755 dist/obswarden mode change 100644 => 100755 dist/obsworker diff --git a/dist/bugz-login b/dist/bugz-login old mode 100644 new mode 100755 diff --git a/dist/obs_import_srcdebtree b/dist/obs_import_srcdebtree old mode 100644 new mode 100755 diff --git a/dist/obs_import_srcrpmtree b/dist/obs_import_srcrpmtree old mode 100644 new mode 100755 diff --git a/dist/obs_mirror_project b/dist/obs_mirror_project old mode 100644 new mode 100755 diff --git a/dist/obs_mirror_project.py b/dist/obs_mirror_project.py old mode 100644 new mode 100755 diff --git a/dist/obs_project_srcimport b/dist/obs_project_srcimport old mode 100644 new mode 100755 diff --git a/dist/obs_project_update b/dist/obs_project_update old mode 100644 new mode 100755 diff --git a/dist/obsapisetup b/dist/obsapisetup old mode 100644 new mode 100755 diff --git a/dist/obsdispatcher b/dist/obsdispatcher old mode 100644 new mode 100755 diff --git a/dist/obspublisher b/dist/obspublisher old mode 100644 new mode 100755 diff --git a/dist/obsrepserver b/dist/obsrepserver old mode 100644 new mode 100755 diff --git a/dist/obsscheduler b/dist/obsscheduler old mode 100644 new mode 100755 diff --git a/dist/obsservice b/dist/obsservice old mode 100644 new mode 100755 diff --git a/dist/obssigner b/dist/obssigner old mode 100644 new mode 100755 diff --git a/dist/obssrcserver b/dist/obssrcserver old mode 100644 new mode 100755 diff --git a/dist/obsstoragesetup b/dist/obsstoragesetup old mode 100644 new mode 100755 diff --git a/dist/obswarden b/dist/obswarden old mode 100644 new mode 100755 diff --git a/dist/obsworker b/dist/obsworker old mode 100644 new mode 100755
-- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Grepping for ^processor in /proc/cpuinfo produces a zero result on
sparc64, so don't do it. Use sysfs instead.
Signed-off-by: Jan Engelhardt
On 4/12/2010 at 22:27, Jan Engelhardt
wrote: Grepping for ^processor in /proc/cpuinfo produces a zero result on sparc64, so don't do it. Use sysfs instead. Signed-off-by: Jan Engelhardt
--- dist/obsworker | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dist/obsworker b/dist/obsworker index d7a77c2..295f19c 100755 --- a/dist/obsworker +++ b/dist/obsworker @@ -151,7 +151,7 @@ case "$1" in NUM="$OBS_WORKER_INSTANCES" else # start one build backend per CPU - NUM=`grep -i ^processor /proc/cpuinfo | wc -l` + NUM=$(ls /sys/devices/system/cpu/cpu* | wc -l)
Are you sure that is supposed to be the same result? Example: dle3ams@3120-2914:~> grep -i ^processor /proc/cpuinfo | wc -l 2 dle3ams@3120-2914:~> ls /sys/devices/system/cpu/cpu* | wc -l 24 Dare to tell me where I got my other 22 CPUs from ? :) At best you'd probably want something like: ls -d /sys/devices/system/cpu/cpu[0-9]* | wc -l if you really want to use sysfs in this way. Dominique -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Montag, 12. April 2010 22:27:51 schrieb Jan Engelhardt:
Grepping for ^processor in /proc/cpuinfo produces a zero result on sparc64, so don't do it. Use sysfs instead.
Signed-off-by: Jan Engelhardt
--- dist/obsworker | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dist/obsworker b/dist/obsworker index d7a77c2..295f19c 100755 --- a/dist/obsworker +++ b/dist/obsworker @@ -151,7 +151,7 @@ case "$1" in NUM="$OBS_WORKER_INSTANCES" else # start one build backend per CPU - NUM=`grep -i ^processor /proc/cpuinfo | wc -l` + NUM=$(ls /sys/devices/system/cpu/cpu* | wc -l) fi
That sounds wrong. This expression gives 10 on my single core machine. And even with -d added to the ls, it still shows cpuidle there Greetings, Stephan -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tue, Apr 13, 2010 at 09:30:13AM +0200, Stephan Kulow wrote:
Am Montag, 12. April 2010 22:27:51 schrieb Jan Engelhardt:
Grepping for ^processor in /proc/cpuinfo produces a zero result on sparc64, so don't do it. Use sysfs instead.
Signed-off-by: Jan Engelhardt
--- dist/obsworker | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dist/obsworker b/dist/obsworker index d7a77c2..295f19c 100755 --- a/dist/obsworker +++ b/dist/obsworker @@ -151,7 +151,7 @@ case "$1" in NUM="$OBS_WORKER_INSTANCES" else # start one build backend per CPU - NUM=`grep -i ^processor /proc/cpuinfo | wc -l` + NUM=$(ls /sys/devices/system/cpu/cpu* | wc -l) fi
That sounds wrong. This expression gives 10 on my single core machine. And even with -d added to the ls, it still shows cpuidle there
echo /sys/devices/system/cpu/cpu*|wc -w perhaps. Ciao, Marcus -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On 4/13/2010 at 9:31, Marcus Meissner
wrote: On Tue, Apr 13, 2010 at 09:30:13AM +0200, Stephan Kulow wrote: Am Montag, 12. April 2010 22:27:51 schrieb Jan Engelhardt: Grepping for ^processor in /proc/cpuinfo produces a zero result on sparc64, so don't do it. Use sysfs instead. Signed-off-by: Jan Engelhardt
--- dist/obsworker | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dist/obsworker b/dist/obsworker index d7a77c2..295f19c 100755 --- a/dist/obsworker +++ b/dist/obsworker @@ -151,7 +151,7 @@ case "$1" in NUM="$OBS_WORKER_INSTANCES" else # start one build backend per CPU - NUM=`grep -i ^processor /proc/cpuinfo | wc -l` + NUM=$(ls /sys/devices/system/cpu/cpu* | wc -l) fi
That sounds wrong. This expression gives 10 on my single core machine. And even with -d added to the ls, it still shows cpuidle there
echo /sys/devices/system/cpu/cpu*|wc -w
Still gives me for 4 as a result. I stay with my suggestion from my other mail (if it needs to be changed): ls -d /sys/devices/system/cpu/cpu[0-9]* | wc -l This makes sure all the non cpu<num> directories like cpufreq and cpuidle are excluded. Dominique -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Dienstag, 13. April 2010 09:35:19 schrieb Dominique Leuenberger:
On 4/13/2010 at 9:31, Marcus Meissner
wrote: On Tue, Apr 13, 2010 at 09:30:13AM +0200, Stephan Kulow wrote: Am Montag, 12. April 2010 22:27:51 schrieb Jan Engelhardt: Grepping for ^processor in /proc/cpuinfo produces a zero result on sparc64, so don't do it. Use sysfs instead. Signed-off-by: Jan Engelhardt
--- dist/obsworker | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dist/obsworker b/dist/obsworker index d7a77c2..295f19c 100755 --- a/dist/obsworker +++ b/dist/obsworker @@ -151,7 +151,7 @@ case "$1" in NUM="$OBS_WORKER_INSTANCES" else # start one build backend per CPU - NUM=`grep -i ^processor /proc/cpuinfo | wc -l` + NUM=$(ls /sys/devices/system/cpu/cpu* | wc -l) fi
That sounds wrong. This expression gives 10 on my single core machine. And even with -d added to the ls, it still shows cpuidle there
echo /sys/devices/system/cpu/cpu*|wc -w
Still gives me for 4 as a result.
I stay with my suggestion from my other mail (if it needs to be changed): ls -d /sys/devices/system/cpu/cpu[0-9]* | wc -l This makes sure all the non cpu<num> directories like cpufreq and cpuidle are excluded.
Sounds good, changed in master branch. bye adrian -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tue, Apr 13, Stephan Kulow wrote:
Grepping for ^processor in /proc/cpuinfo produces a zero result on sparc64, so don't do it. Use sysfs instead.
Signed-off-by: Jan Engelhardt
--- dist/obsworker | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dist/obsworker b/dist/obsworker index d7a77c2..295f19c 100755 --- a/dist/obsworker +++ b/dist/obsworker @@ -151,7 +151,7 @@ case "$1" in NUM="$OBS_WORKER_INSTANCES" else # start one build backend per CPU - NUM=`grep -i ^processor /proc/cpuinfo | wc -l` + NUM=$(ls /sys/devices/system/cpu/cpu* | wc -l) fi
That sounds wrong. This expression gives 10 on my single core machine. And even with -d added to the ls, it still shows cpuidle there
Strange, that works on all my machines, at least when exluding that idle cpu. cpu=( /sys/devices/system/cpu/cpu[0-9]* ) && echo ${#cpu[@]} -- With best regards, Carsten Hoeger
perl's testsuite for example depends on the level after the nice
switch it does be lower than before - which is not the case when run
with 19.
Signed-off-by: Jan Engelhardt
merged. Am Montag, 12. April 2010 22:27:52 schrieb Jan Engelhardt:
perl's testsuite for example depends on the level after the nice switch it does be lower than before - which is not the case when run with 19.
Signed-off-by: Jan Engelhardt
--- dist/obsworker | 2 +- dist/sysconfig.obs-worker | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dist/obsworker b/dist/obsworker index 295f19c..ad2f82d 100755 --- a/dist/obsworker +++ b/dist/obsworker @@ -54,7 +54,7 @@ fi if [ -n "$OBS_WORKER_NICE_LEVEL" ]; then OBS_NICE=$OBS_WORKER_NICE_LEVEL else - OBS_NICE=19 + OBS_NICE=18 fi
if [ -n "$OBS_REPO_SERVERS" ]; then diff --git a/dist/sysconfig.obs-worker b/dist/sysconfig.obs-worker index 3838d3c..b5e9345 100644 --- a/dist/sysconfig.obs-worker +++ b/dist/sysconfig.obs-worker @@ -118,13 +118,16 @@ OBS_CACHE_SIZE="" ## Path: Applications/OBS ## Description: Defines the nice level of running workers ## Type: integer -## Default: 19 +## Default: 18 ## Config: OBS # # Nicenesses range from -20 (most favorable scheduling) to 19 (least # favorable). +# Default to 18 as some testsuites depend on being able to switch to +# one priority below (19) _and_ having changed the numeric level +# (so going from 19->19 makes them fail). # -OBS_WORKER_NICE_LEVEL=19 +OBS_WORKER_NICE_LEVEL=18
## Path: Applications/OBS ## Description: Set used VM type by worker
-- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Practical experience has shown that these changes are needed to have
sparcv9 be built correctly.
Signed-off-by: Jan Engelhardt
This has not yet been merged, because of: Am Montag, 12. April 2010 22:27:53 schrieb Jan Engelhardt: ...
diff --git a/src/backend/bs_worker b/src/backend/bs_worker index 6feb6bd..f779e37 100755 --- a/src/backend/bs_worker +++ b/src/backend/bs_worker ... @@ -1393,6 +1394,8 @@ sub dobuild { push @args, '--release', "$release" if defined $release; push @args, '--debug' if $buildinfo->{'debuginfo'}; push @args, '--arch', $arch; + # target can be different from arch (e.g. target=sparcv9, arch=sparc64) + push @args, '--target', $target; push @args, '--jobs', $jobs if $jobs; push @args, '--reason', "Building $buildinfo->{'package'} for project '$projid' repository '$repoid' arch '$arch' srcmd5 '$buildinfo->{'srcmd5'}'"; push @args, '--disturl', $disturl;
This can have been side effects. Michael mumbled something about buggy rpm versions in some distros. You may want to make this for sparc only for now. The webui changes were also not anymore applying on current master. -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tuesday 2010-04-13 10:51, Adrian Schröter wrote:
The webui changes were also not anymore applying on current master.
Inconceivable, someone changed it while I was preparing the submission! -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Adrian Schröter wrote:
Am Montag, 12. April 2010 22:27:53 schrieb Jan Engelhardt: ...
diff --git a/src/backend/bs_worker b/src/backend/bs_worker index 6feb6bd..f779e37 100755 --- a/src/backend/bs_worker +++ b/src/backend/bs_worker ... @@ -1393,6 +1394,8 @@ sub dobuild { push @args, '--release', "$release" if defined $release; push @args, '--debug' if $buildinfo->{'debuginfo'}; push @args, '--arch', $arch; + # target can be different from arch (e.g. target=sparcv9, arch=sparc64) + push @args, '--target', $target; push @args, '--jobs', $jobs if $jobs; push @args, '--reason', "Building $buildinfo->{'package'} for project '$projid' repository '$repoid' arch '$arch' srcmd5 '$buildinfo->{'srcmd5'}'"; push @args, '--disturl', $disturl;
This can have been side effects. Michael mumbled something about buggy rpm versions in some distros. You may want to make this for sparc only for now.
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too. cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Ludwig Nussel wrote:
Adrian Schröter wrote:
Am Montag, 12. April 2010 22:27:53 schrieb Jan Engelhardt: ...
diff --git a/src/backend/bs_worker b/src/backend/bs_worker index 6feb6bd..f779e37 100755 --- a/src/backend/bs_worker +++ b/src/backend/bs_worker
...
@@ -1393,6 +1394,8 @@ sub dobuild { push @args, '--release', "$release" if defined $release; push @args, '--debug' if $buildinfo->{'debuginfo'}; push @args, '--arch', $arch; + # target can be different from arch (e.g. target=sparcv9, arch=sparc64) + push @args, '--target', $target; push @args, '--jobs', $jobs if $jobs; push @args, '--reason', "Building $buildinfo->{'package'} for project '$projid' repository '$repoid' arch '$arch' srcmd5 '$buildinfo->{'srcmd5'}'"; push @args, '--disturl', $disturl;
This can have been side effects. Michael mumbled something about buggy rpm versions in some distros. You may want to make this for sparc only for now.
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
cu Ludwig
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM. Martin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Martin Mohring wrote:
Ludwig Nussel wrote:
Adrian Schröter wrote:
Am Montag, 12. April 2010 22:27:53 schrieb Jan Engelhardt: ...
diff --git a/src/backend/bs_worker b/src/backend/bs_worker index 6feb6bd..f779e37 100755 --- a/src/backend/bs_worker +++ b/src/backend/bs_worker
...
@@ -1393,6 +1394,8 @@ sub dobuild { push @args, '--release', "$release" if defined $release; push @args, '--debug' if $buildinfo->{'debuginfo'}; push @args, '--arch', $arch; + # target can be different from arch (e.g. target=sparcv9, arch=sparc64) + push @args, '--target', $target; push @args, '--jobs', $jobs if $jobs; push @args, '--reason', "Building $buildinfo->{'package'} for project '$projid' repository '$repoid' arch '$arch' srcmd5 '$buildinfo->{'srcmd5'}'"; push @args, '--disturl', $disturl;
This can have been side effects. Michael mumbled something about buggy rpm versions in some distros. You may want to make this for sparc only for now.
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-) 1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
Adrian Schröter wrote:
Am Montag, 12. April 2010 22:27:53 schrieb Jan Engelhardt: ...
diff --git a/src/backend/bs_worker b/src/backend/bs_worker index 6feb6bd..f779e37 100755 --- a/src/backend/bs_worker +++ b/src/backend/bs_worker
...
@@ -1393,6 +1394,8 @@ sub dobuild { push @args, '--release', "$release" if defined $release; push @args, '--debug' if $buildinfo->{'debuginfo'}; push @args, '--arch', $arch; + # target can be different from arch (e.g. target=sparcv9, arch=sparc64) + push @args, '--target', $target; push @args, '--jobs', $jobs if $jobs; push @args, '--reason', "Building $buildinfo->{'package'} for project '$projid' repository '$repoid' arch '$arch' srcmd5 '$buildinfo->{'srcmd5'}'"; push @args, '--disturl', $disturl;
This can have been side effects. Michael mumbled something about buggy rpm versions in some distros. You may want to make this for sparc only for now.
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-)
1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then
cu Ludwig
Ok. Let me say it another way: Yes, it is of course a hack (and the #arm is a hack). But how does the "solution" instead of the hack look like? I the only solution we found is to pass in worst case the full triple to rpm. If the implementation of this is a hack, lets fix it. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Martin Mohring wrote:
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-)
1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then
Ok. Let me say it another way: Yes, it is of course a hack (and the #arm is a hack). But how does the "solution" instead of the hack look like? I the only solution we found is to pass in worst case the full triple to rpm. If the implementation of this is a hack, lets fix it.
Well, I guess that solution is fine if it integrates with ABUILD_TARGET_ARCH. I'd probably rename the option to 'defaulttarget' or just 'target' instead of 'changetarget' though. cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Tuesday 2010-04-13 19:20, Ludwig Nussel wrote:
Ludwig Nussel wrote:
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-)
1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then
Ok. Let me say it another way: Yes, it is of course a hack (and the #arm is a hack). But how does the "solution" instead of the hack look like? I the only solution we found is to pass in worst case the full triple to rpm. If the implementation of this is a hack, lets fix it.
Well, I guess that solution is fine if it integrates with ABUILD_TARGET_ARCH. I'd probably rename the option to 'defaulttarget' or just 'target' instead of 'changetarget' though.
Since there's so much forte in discussion, why can't it be thrown onto rpm to fix the bug[1]? :-) [1] http://rpm.org/ticket/119 -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Jan Engelhardt wrote:
On Tuesday 2010-04-13 19:20, Ludwig Nussel wrote:
Ludwig Nussel wrote:
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-)
1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then
Ok. Let me say it another way: Yes, it is of course a hack (and the #arm is a hack). But how does the "solution" instead of the hack look like? I the only solution we found is to pass in worst case the full triple to rpm. If the implementation of this is a hack, lets fix it.
Well, I guess that solution is fine if it integrates with ABUILD_TARGET_ARCH. I'd probably rename the option to 'defaulttarget' or just 'target' instead of 'changetarget' though.
Since there's so much forte in discussion, why can't it be thrown onto rpm to fix the bug[1]? :-)
Because there are 30+ distros out there that are affected we want to still support. Nobody fixes rpm there *after the release*. Its only 4+ ARM based ones on Fedora alone. Martin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Dienstag, 13. April 2010 19:20:00 schrieb Ludwig Nussel:
Martin Mohring wrote:
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-)
1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then
Ok. Let me say it another way: Yes, it is of course a hack (and the #arm is a hack). But how does the "solution" instead of the hack look like? I the only solution we found is to pass in worst case the full triple to rpm. If the implementation of this is a hack, lets fix it.
Well, I guess that solution is fine if it integrates with ABUILD_TARGET_ARCH. I'd probably rename the option to 'defaulttarget' or just 'target' instead of 'changetarget' though.
So if we just talk about _naming_ ... where's the issue ? I'd be fine with e.g. "targetplatform" at this this is what it actually contains. (an btw. 'changetarget' is what it does ... ) And yes, we can merge any double variables setting --target in the end. And the "#arm" was done by intention at that time do don't play with the "wrong" arches on build.o.o . My 0,02 € ... Best, Jan-Simon -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-)
1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then
Ok. Let me say it another way: Yes, it is of course a hack (and the #arm is a hack). But how does the "solution" instead of the hack look like? I the only solution we found is to pass in worst case the full triple to rpm. If the implementation of this is a hack, lets fix it.
Well, I guess that solution is fine if it integrates with ABUILD_TARGET_ARCH. I'd probably rename the option to 'defaulttarget' or just 'target' instead of 'changetarget' though.
Since --target is buggy in rpm anyways what about using buildarchtranslate instead? The default rpmrc on 11.2 contains the line "buildarchtranslate: armv5tel: armv4l". Which is the reason you need to change the target I guess. 'getoptflags' writes a ~/.rpmrc anyways so if we'd change it to also extract buildarchtranslate from the config you could specify "buildarchtranslate: armv5tel: armv5tel" in the prjconf instead of having to pass --target to rpmbiuld. cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Wednesday 2010-04-14 17:57, Ludwig Nussel wrote:
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Since --target is buggy in rpm anyways what about using buildarchtranslate instead?
As long as it sets %build_host to sparcv9/armXel-suse-linux and produces rpms with "%{ARCH}" expanding to sparcv9/armXel - because that's essentially the point of --target these days. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Mittwoch, 14. April 2010 17:57:21 schrieb Ludwig Nussel:
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
There's a hack for ARM in the build script, it looks at 'changetarget' in prjconf in order to define the target I think. Maybe that feature could be used here too.
This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-)
1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then
Ok. Let me say it another way: Yes, it is of course a hack (and the #arm is a hack). But how does the "solution" instead of the hack look like? I the only solution we found is to pass in worst case the full triple to rpm. If the implementation of this is a hack, lets fix it.
Well, I guess that solution is fine if it integrates with ABUILD_TARGET_ARCH. I'd probably rename the option to 'defaulttarget' or just 'target' instead of 'changetarget' though.
Since --target is buggy in rpm anyways what about using buildarchtranslate instead? The default rpmrc on 11.2 contains the line "buildarchtranslate: armv5tel: armv4l". Which is the reason you need to change the target I guess. 'getoptflags' writes a ~/.rpmrc anyways so if we'd change it to also extract buildarchtranslate from the config you could specify "buildarchtranslate: armv5tel: armv5tel" in the prjconf instead of having to pass --target to rpmbiuld.
Nack. Partly. The reason is: qemu-user advertizes armv7 as cpu and rpm's autodetection would (try to) build armv7 even on armv5 userspace (btw - cool for bootstrapping). Also think vice versa. Older qemu-user advertized armv5 but also executed armv7. But the idea is good, lets elaborate it further. The point is: we need to make _sure_ the architecture chosen gets built and not screwed up by e.g. autodetection returning "wrong" results - which is not the fault of the autodetection per se. And keep in mind: it has to work with different distros ! Lets look at an example: So we'd need to set for arm buildarchtranslate: armv5tel: armv5tel buildarchtranslate: armv5tevl: armv5tel [...]tejl tejvl ... whatever other string. Mess! buildarchtranslate: armv6l: armv5tel buildarchtranslate: armv6vl: armv5tel buildarchtranslate: armv7l: armv5tel buildarchtranslate: armv7vl: armv5tel basically all arches that _might_ show up within the autodetection (emulated or native). An we'd have to make sure that part of the macro inclusion chain wins also for conflicting definitions. Is that easier than one --target ?? Best, Jan-Simon -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Jan-Simon Möller wrote:
Am Mittwoch, 14. April 2010 17:57:21 schrieb Ludwig Nussel:
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
Martin Mohring wrote:
Ludwig Nussel wrote:
> There's a hack for ARM in the build script, it looks at > 'changetarget' in prjconf in order to define the target I think. > Maybe that feature could be used here too. > > This is not a hack, it is due to the behavior of rpm. We found no other way working with all rpm versions to handle this. And: the problem solved with this is not limited to ARM.
Atm it is both a hack (conflicts with ABUILD_TARGET_ARCH AFAICS) and is limited to ARM :-)
1613 # case arm, extract changetarget 1614 # this is restricted to arm to make sure it doesn't interfere with x86 1615 if [ "$BUILD_ARCH" != "${BUILD_ARCH#arm}" ]; then
Ok. Let me say it another way: Yes, it is of course a hack (and the #arm is a hack). But how does the "solution" instead of the hack look like? I the only solution we found is to pass in worst case the full triple to rpm. If the implementation of this is a hack, lets fix it.
Well, I guess that solution is fine if it integrates with ABUILD_TARGET_ARCH. I'd probably rename the option to 'defaulttarget' or just 'target' instead of 'changetarget' though.
Since --target is buggy in rpm anyways what about using buildarchtranslate instead? The default rpmrc on 11.2 contains the line "buildarchtranslate: armv5tel: armv4l". Which is the reason you need to change the target I guess. 'getoptflags' writes a ~/.rpmrc anyways so if we'd change it to also extract buildarchtranslate from the config you could specify "buildarchtranslate: armv5tel: armv5tel" in the prjconf instead of having to pass --target to rpmbiuld.
Nack. Partly. The reason is: qemu-user advertizes armv7 as cpu and rpm's autodetection would (try to) build armv7 even on armv5 userspace (btw - cool for bootstrapping). Also think vice versa. Older qemu-user advertized armv5 but also executed armv7. But the idea is good, lets elaborate it further.
The point is: we need to make _sure_ the architecture chosen gets built and not screwed up by e.g. autodetection returning "wrong" results - which is not the fault of the autodetection per se. And keep in mind: it has to work with different distros !
Lets look at an example: So we'd need to set for arm
buildarchtranslate: armv5tel: armv5tel buildarchtranslate: armv5tevl: armv5tel [...]tejl tejvl ... whatever other string. Mess! buildarchtranslate: armv6l: armv5tel buildarchtranslate: armv6vl: armv5tel buildarchtranslate: armv7l: armv5tel buildarchtranslate: armv7vl: armv5tel
basically all arches that _might_ show up within the autodetection (emulated or native). An we'd have to make sure that part of the macro inclusion chain wins also for conflicting definitions.
Is that easier than one --target ??
Best, Jan-Simon
my 2 cent also: Last but not least: for boostrapping, it is *always needed to be able to force a specific architecture independent of the host*. That is not only true for ARM but also for other systems. Like x86. Martin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Jan-Simon Möller wrote:
Am Mittwoch, 14. April 2010 17:57:21 schrieb Ludwig Nussel:
Since --target is buggy in rpm anyways what about using buildarchtranslate instead? [...] So we'd need to set for arm
buildarchtranslate: armv5tel: armv5tel buildarchtranslate: armv5tevl: armv5tel [...]tejl tejvl ... whatever other string. Mess! buildarchtranslate: armv6l: armv5tel buildarchtranslate: armv6vl: armv5tel buildarchtranslate: armv7l: armv5tel buildarchtranslate: armv7vl: armv5tel
Just curious, what's the meaning of all those suffixes?
basically all arches that _might_ show up within the autodetection (emulated or native). An we'd have to make sure that part of the macro inclusion chain wins also for conflicting definitions.
Don't you need to fix that in rpmrc anyways to allow use of rpmbuild on the target distro independent of the build service? cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.de/ SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Am Donnerstag, 15. April 2010 08:55:04 schrieb Ludwig Nussel:
Jan-Simon Möller wrote:
Am Mittwoch, 14. April 2010 17:57:21 schrieb Ludwig Nussel:
Since --target is buggy in rpm anyways what about using buildarchtranslate instead?
[...] So we'd need to set for arm
buildarchtranslate: armv5tel: armv5tel buildarchtranslate: armv5tevl: armv5tel [...]tejl tejvl ... whatever other string. Mess! buildarchtranslate: armv6l: armv5tel buildarchtranslate: armv6vl: armv5tel buildarchtranslate: armv7l: armv5tel buildarchtranslate: armv7vl: armv5tel
Just curious, what's the meaning of all those suffixes? Older (v5) arm chips had different feature sets added - depending on application/reuirements: t = thumb (reduced size code/higher density) e = eabi ( successor of "old" oabi) l = little endian j = jazelle (java speedup) v = vfp (fp enging) and there's meantime vfp/vfpv3/vfpv3-d16/simd/neon ... And there might be even others, but these are the common flags.
Best, Jan-Simon -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Friday 2010-04-16 00:45, Jan-Simon Möller wrote:
Just curious, what's the meaning of all those suffixes?
Older (v5) arm chips had different feature sets added - depending on application/reuirements: t = thumb (reduced size code/higher density) e = eabi ( successor of "old" oabi) l = little endian j = jazelle (java speedup) v = vfp (fp enging) and there's meantime vfp/vfpv3/vfpv3-d16/simd/neon ... And there might be even others, but these are the common flags.
Hm. If x86 did it like that for all its flags, we'd have a mess. :) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Fri, 16 Apr 2010 00:56:32 +0200 (CEST), Jan Engelhardt
Hm. If x86 did it like that for all its flags, we'd have a mess. :)
No x86 processor comes in such varieties as ARM CPUs. That is oine of the reasons why ARM is currently the market leader in embedded Processors. Philipp -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Signed-off-by: Jan Engelhardt
merged. Am Montag, 12. April 2010 22:27:54 schrieb Jan Engelhardt:
Signed-off-by: Jan Engelhardt
--- src/backend/bs_sched | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/src/backend/bs_sched b/src/backend/bs_sched index fb0cc7f..ded6bd0 100755 --- a/src/backend/bs_sched +++ b/src/backend/bs_sched @@ -897,6 +897,33 @@ my %default_exportfilters = ( '-debuginfo-.*\.rpm$' => [], '-debugsource-.*\.rpm$' => [], }, + 'sparc' => { + # discard is intended - sparcv9 target is better suited for 64-bit baselibs + '\.sparc64\.rpm$' => [], + '-debuginfo-.*\.rpm$' => [], + '-debugsource-.*\.rpm$' => [], + }, + 'sparcv8' => $default_exportfilters{'sparc'}, + 'sparcv9' => { + '\.sparc64\.rpm$' => [ 'sparc64' ], + '-debuginfo-.*\.rpm$' => [], + '-debugsource-.*\.rpm$' => [], + }, + 'sparcv9v' => { + '\.sparc64v\.rpm$' => [ 'sparc64v' ], + '-debuginfo-.*\.rpm$' => [], + '-debugsource-.*\.rpm$' => [], + }, + 'sparc64' => { + '\.sparcv9\.rpm$' => [ 'sparcv9' ], + '-debuginfo-.*\.rpm$' => [], + '-debugsource-.*\.rpm$' => [], + }, + 'sparc64v' => { + '\.sparcv9v\.rpm$' => [ 'sparcv9v' ], + '-debuginfo-.*\.rpm$' => [], + '-debugsource-.*\.rpm$' => [], + }, );
#
-- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
The build service would "needlessy" recompile core packages (glibc,
gcc, etc.) over and over because of new deep dependencies (e.g.
+glibc/gcc/libcloog0...). This patch adds a bsconfig flag to turn off
this sort of nested dependencies and get a bootstrap done in a timely
manner.
Signed-off-by: Jan Engelhardt
On Mon, Apr 12, 2010 at 10:27:55PM +0200, Jan Engelhardt wrote:
The build service would "needlessy" recompile core packages (glibc, gcc, etc.) over and over because of new deep dependencies (e.g. +glibc/gcc/libcloog0...). This patch adds a bsconfig flag to turn off this sort of nested dependencies and get a bootstrap done in a timely manner.
This shouldn't be a global option, but configurable in the project configuration: - only source changes - direct dependencies only - full dependencies Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Michael Schroeder wrote:
On Mon, Apr 12, 2010 at 10:27:55PM +0200, Jan Engelhardt wrote:
The build service would "needlessy" recompile core packages (glibc, gcc, etc.) over and over because of new deep dependencies (e.g. +glibc/gcc/libcloog0...). This patch adds a bsconfig flag to turn off this sort of nested dependencies and get a bootstrap done in a timely manner.
This shouldn't be a global option, but configurable in the project configuration: - only source changes - direct dependencies only - full dependencies
Cheers, Michael.
I would like this to be a project based configuration option inside meta prjconf. Then the developer of a project can decide what option he wants to choose. Martin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
merged. Am Montag, 12. April 2010 22:27:49 schrieb Jan Engelhardt:
Hi,
these are remaining patches that were needed/useful during the now-completed SPARC build.
The following changes since commit 6468ab77d54bd8e9546377a9deff83f13b971011: Stephan Kulow (1): catch errors in looking for changes
are available in the git repository at:
git://dev.medozas.de/suse-build-service master
Jan Engelhardt (6): dist: set +x bits on files obsworker: use sysfs instead to get number of CPUs obsworker: use nice level 18 by default, not 19 obs-server, webui: update SPARC definitions bs_sched: add default ExportFilters for SPARC bs_sched: add option for faster turnaround by using single-depth deps
dist/obsworker | 4 +- dist/sysconfig.obs-worker | 7 +++- src/backend/BSConfig.pm.template | 5 +++ src/backend/bs_dispatch | 4 +- src/backend/bs_sched | 33 +++++++++++++++++++- src/backend/bs_worker | 10 +++++- src/webui/app/views/project/add_target.rhtml | 2 +- .../app/views/project/add_target.rhtml.template | 2 +- 8 files changed, 56 insertions(+), 11 deletions(-) mode change 100644 => 100755 dist/bugz-login mode change 100644 => 100755 dist/obs_import_srcdebtree mode change 100644 => 100755 dist/obs_import_srcrpmtree mode change 100644 => 100755 dist/obs_mirror_project mode change 100644 => 100755 dist/obs_mirror_project.py mode change 100644 => 100755 dist/obs_project_srcimport mode change 100644 => 100755 dist/obs_project_update mode change 100644 => 100755 dist/obsapisetup mode change 100644 => 100755 dist/obsdispatcher mode change 100644 => 100755 dist/obspublisher mode change 100644 => 100755 dist/obsrepserver mode change 100644 => 100755 dist/obsscheduler mode change 100644 => 100755 dist/obsservice mode change 100644 => 100755 dist/obssigner mode change 100644 => 100755 dist/obssrcserver mode change 100644 => 100755 dist/obsstoragesetup mode change 100644 => 100755 dist/obswarden mode change 100644 => 100755 dist/obsworker
-- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (11)
-
Adrian Schröter
-
Carsten Hoeger
-
Dominique Leuenberger
-
Jan Engelhardt
-
Jan-Simon Möller
-
Ludwig Nussel
-
Marcus Meissner
-
Martin Mohring
-
Michael Schroeder
-
Philipp Thomas
-
Stephan Kulow