build system glue scripts and requirements
by seth vidal
hi folks,
So right now I think things with mach and yum are working for building
fedora extras. The packages _seem_ like they're coming out right and
things seem functional enough. The second part that I need help and
input on is the glue scripts and requirements for having automatic
triggering of builds for packagers.
The questions I have:
1. if this is meant to run on the red hat boxes in the PHX coloc, what
does that infrastructure look like? What features does it have? Can we
assume all the build boxes have access to the cvs tree? Do we need to
worry about pushing srpms around?
2. How do folks want packagers to send notices about builds? Just a
cvs tag? A webpage? A gpg-signed email with specific content? A custom
xmpp/jabber-client to send a custom message to a listening build client
across an xmpp infrastructure? :)
3. What things am I missing or not understanding about what is needed
from the build system? The requirements I've been working under
are/were:
- self hosting on Fedora Core
- not crazy
What else do I need to think about?
4. Who else is interested in working on this and getting things
progressing more? The yum changes to mach are just a hackjob to get a
problem solved for the short term. However, I'd like to continue down
this general line of development. so <buffy>Where do we go from
here?</buffy>
Thanks,
-sv
18 years, 7 months
Issues on x86_64 host
by Matthias Saou
Hi,
When I try to install the latest yum modified mach on an x86_64 FC
Development (as of last week, yum 2.3.2) it then tricks me into thinking
that the roots I set up are fine (no errors in the output) when they're
not ;-)
I recall having had the same problem on an RHEL4 host for all roots too,
which I worked around by manually installing all missing packages, most
with --noscripts... and at one point things started to work.
But now, although the "mach setup minimal" reported nothing unusual, here
is what I get right after when trying "mach yum groupinstall build-
minimal" :
[dude@darkside easytag]$ mach setup minimal Preparing root
Making /dev devices
Installing group 'minimal' ..................
[dude@darkside easytag]$ mach setup minimal
[dude@darkside easytag]$ mach yum groupinstall build-minimal
Setting up Group Process
Setting up repositories
core 100% |=========================| 1.1 kB 00:00
freshrpms 100% |=========================| 951 B 00:00
updates 100% |=========================| 951 B 00:00
groups 100% |=========================| 1.1 kB 00:00
Setting up repositories
Reading repository metadata in from local files
Passing package list to Install Process
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package rpm.x86_64 0:4.3.2-21 set to be updated
---> Package initscripts.x86_64 0:7.93.7-1 set to be updated
--> Running transaction check
--> Processing Dependency: fileutils for package: initscripts
--> Processing Dependency: kernel >= 2.6 for package: initscripts
--> Processing Dependency: sh-utils for package: initscripts
--> Processing Dependency: fileutils for package: rpm
--> Processing Dependency: /sbin/runuser for package: initscripts
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package kernel.x86_64 0:2.6.11-1.14_FC3 set to be installed
---> Package coreutils.x86_64 0:5.2.1-31 set to be updated
--> Running transaction check
--> Processing Dependency: pam >= 0.66-12 for package: coreutils
--> Processing Dependency: libpam_misc.so.0()(64bit) for package: coreutils
--> Processing Dependency: libpam.so.0()(64bit) for package: coreutils
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package pam.x86_64 0:0.77-66.2 set to be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
initscripts x86_64 7.93.7-1 updates 1.1
M rpm x86_64 4.3.2-21 core
566 k Installing for dependencies:
coreutils x86_64 5.2.1-31 core 2.9
M kernel x86_64 2.6.11-1.14_FC3 updates
17 M pam x86_64 0.77-66.2 updates
1.9 M
Transaction Summary
=============================================================================
Install 5 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 24 M
Downloading Packages:
Running Transaction Test
warning: pam-0.77-66.2: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
error: %pre(coreutils-5.2.1-31.x86_64) scriptlet failed, exit status 255
error: install: %pre scriptlet failed (2), skipping coreutils-5.2.1-31
error: %pre(kernel-2.6.11-1.14_FC3.x86_64) scriptlet failed, exit status
255 error: install: %pre scriptlet failed (2), skipping
kernel-2.6.11-1.14_FC3 error: %pre(pam-0.77-66.2.x86_64) scriptlet failed,
exit status 255 error: install: %pre scriptlet failed (2), skipping
pam-0.77-66.2 error: %pre(rpm-4.3.2-21.x86_64) scriptlet failed, exit
status 255 error: install: %pre scriptlet failed (2), skipping
rpm-4.3.2-21 error: %pre(initscripts-7.93.7-1.x86_64) scriptlet failed,
exit status 255 error: install: %pre scriptlet failed (2), skipping
initscripts-7.93.7-1
Installed: initscripts.x86_64 0:7.93.7-1 rpm.x86_64 0:4.3.2-21
Dependency Installed: coreutils.x86_64 0:5.2.1-31 kernel.x86_64
0:2.6.11-1.14_FC3 pam.x86_64 0:0.77-66.2 Complete!
[dude@darkside easytag]$
(sorry if things get all wrapped around :-/)
Now the other weird thing is that if I "manually" use "mach rpm -ivh" for
all those exact packages, it works fine. It seems that it fails only
through yum :-( Given the trivial content of some of these scriplets, I'm
really confused! The glibc-kernheaders which fails the same way is :
preinstall scriptlet (using /bin/sh):
[ -L /usr/include/linux ] && rm -f /usr/include/linux || :
[ -L /usr/include/asm ] && rm -f /usr/include/asm || :
exit 0
I really don't see how that manages to fail :-(
If I try to "mach chroot" after manually installing what is missing from
the "minimal" group, it works, but "yum groupinstall build-base" then
fails with other packages, same for the main build group.
Any ideas? Seth, you're building packages on an x86_64, aren't you?
Matthias
--
Clean custom Red Hat Linux rpm packages : http://freshrpms.net/
Fedora Core release 3 (Heidelberg) - Linux kernel 2.6.11-1.14_FC3
Load : 0.19 0.22 0.30
18 years, 7 months
Some runuser problems
by Matthias Saou
Hi,
I'm having trouble setting up an FC2 root with the current mach/yum build
system. First, it seems to configuration regarding "/sbin/runuser" being
overwritten for FC3 and FC Dev roots it redundant, as runuser is the
default in the main mach file. But the problem is that it's in there with
"@SBINDIR@/runuser" whereas it's always installed as "/sbin/runuser". I
think hardcoding it as "/sbin/runuser" in mach.in would be an acceptable
solution, otherwise a new configure check and replace should probably be
done.
Now, I've added this to my "fedora-2-i386" file :
config['fedora-2-i386-core'] = {'runuser': '/bin/su'}
But it seems that it's not taken into account, and I really don't
understand why. If I change the main runuser definition in /usr/bin/mach
to /bin/su, then all works fine. I'm really puzzled on that one, and am
wondering what I could be doing wrong. Any ideas?
Matthias
--
Clean custom Red Hat Linux rpm packages : http://freshrpms.net/
Fedora Core release 3 (Heidelberg) - Linux kernel 2.6.11-1.14_FC3
Load : 0.68 1.13 1.39
18 years, 7 months
Strange i386/x86_64 behavior
by Matthias Saou
Hi,
I'm currently recompiling a bunch of packages for RHEL4 x86_64 and finally
tried out the latest mach+yum snapshot. After quite a few problems with %
pre scriplets failing, and packages being skipped, I finally got a build
root working.
I've rebuilt quite a few packages, no problems until I tried php...
I get a few i386 packages installed, for a reason that is beyond me! It's
100% reproducible :
- If I specify only the package names, the i386 versions get installed :-(
$ mach yum install libstdc++-devel ncurses-devel zlib-devel pam-devel
Setting up Install Process
Setting up Repos
mach-local 100% |=========================| 951 B 00:00
os 100% |=========================| 951 B 00:00
updates 100% |=========================| 951 B 00:00
groups 100% |=========================| 1.1 kB 00:00
egwn 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
mach-local: ################################################## 43/43
os : ################################################## 1591/1591
updates : ################################################## 138/138
egwn : ################################################## 40/40
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package pam-devel.i386 0:0.77-65.1 set to be updated
---> Package zlib-devel.i386 0:1.2.1.2-1 set to be updated
---> Package libstdc++-devel.i386 0:3.4.3-9.EL4 set to be updated
---> Package ncurses-devel.i386 0:5.4-13 set to be updated
--> Running transaction check
Dependencies Resolved
Transaction Listing:
Install: libstdc++-devel.i386 0:3.4.3-9.EL4 - os
Install: ncurses-devel.i386 0:5.4-13 - os
Install: pam-devel.i386 0:0.77-65.1 - os
Install: zlib-devel.i386 0:1.2.1.2-1 - os
Total download size: 10 M
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: ncurses-devel 100 % done 1/5
Installing: pam-devel 100 % done 2/5
Installing: zlib-devel 100 % done 3/5
Installing: libstdc++-devel 100 % done 4/5
Completing update for libstdc++-devel - 5/5
Installed: libstdc++-devel.i386 0:3.4.3-9.EL4 ncurses-devel.i386 0:5.4-13
pam-devel.i386 0:0.77-65.1 zlib-devel.i386 0:1.2.1.2-1 Complete!
- If I specify x86_64 for all packages, it works as expected :
$ /usr/sbin/mach-helper rpm --root /var/lib/mach/roots/redhat-el4-x86_64-
os '-e' 'ncurses-devel.i386' 'zlib-devel.i386' 'pam-devel.i386' 'libstdc++-
devel.i386' error: Failed dependencies: libstdc++-devel = 3.4.3 is needed
by (installed) gcc-c++-3.4.3-9.EL4.x86_64 $ mach rpm -Uvh /var/lib/mach/
roots/redhat-el4-x86_64-os/var/cache/mach/os/packages/libstdc++-
devel-3.4.3-9.EL4.x86_64.rpm warning: /var/lib/mach/roots/redhat-el4-
x86_64-os/var/cache/mach/os/packages/libstdc++-
devel-3.4.3-9.EL4.x86_64.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...
################################################## libstdc++-
devel ################################################## $ /
usr/sbin/mach-helper rpm --root /var/lib/mach/roots/redhat-el4-x86_64-os '-
e' 'ncurses-devel.i386' 'zlib-devel.i386' 'pam-devel.i386' 'libstdc++-
devel.i386' $ mach yum install libstdc++-devel.x86_64 ncurses-devel.x86_64
zlib-devel.x86_64 pam-devel.x86_64 Setting up Install Process Setting up
Repos mach-local 100% |=========================| 951 B
00:00 os 100% |=========================| 951 B
00:00 updates 100% |=========================| 951 B
00:00 groups 100% |=========================| 1.1 kB
00:00 egwn 100% |=========================| 951 B
00:00 Reading repository metadata in from local files mach-local:
################################################## 43/43 os :
################################################## 1591/1591 updates :
################################################## 138/138 egwn :
################################################## 40/40 Parsing package
install arguments Nothing to do
I'm really confused as to why yum chooses to install those i386 files when
the arch isn't specified... I'll try to get yum to be more verbose and try
to find out.
Matthias
--
Clean custom Red Hat Linux rpm packages : http://freshrpms.net/
Fedora Core release 3 (Heidelberg) - Linux kernel 2.6.11-1.14_FC3
Load : 0.40 0.25 0.31
18 years, 7 months
devpts in mach buildroots
by Ville Skyttä
perl-IPC-Run from Extras devel CVS fails its test suite when built with
mach. It needs pseudo tty's and the mach chroot doesn't have devpts
mounted, /dev/ptmx alone is not enough.
The attached quick and dirty patch adds devpts mounting to mach
buildroots. perl-IPC-Run builds fine here with it applied.
What do you think, would this be an useful/acceptable addition to mach?
18 years, 7 months
new mach+yum pkgs
by seth vidal
Hi Folks,
some new mach+yum pkgs are up:
http://linux.duke.edu/~skvidal/mach/pkgs/
Changes:
- fix for traceback when rebuilding srpm when spec file in srpm is mode
600
- add in:
lrwxrwxrwx 1 root root 15 Apr 17 2003 fd -> ../proc/self/fd
crw-rw-rw- 1 root root 1, 7 Dec 11 15:49 full
crw-rw-rw- 1 root root 1, 3 Dec 11 15:49 null
crw-rw-rw- 1 root root 5, 2 Dec 11 15:49 ptmx
crw-r--r-- 1 root root 1, 8 Dec 11 15:49 random
crw-rw-rw- 1 root root 5, 0 Dec 11 15:49 tty
crw-r--r-- 1 root root 1, 9 Dec 11 15:49 urandom
crw-rw-rw- 1 root root 1, 5 Dec 11 15:49 zero
to /dev in chroots to make sure builds work :)
- make the command 'mach yum' actually work
At this point I'll probably check the code in as 'extras-buildsys-temp'
or something equally as obviously named. Can anyone here tell me if I
can even make new modules in /cvs/fedora?
-sv
18 years, 8 months