RB_USER_INSTALL to the rescue
If you try to install gems with extensions as non-root user, you will fail (in general)!
For example, installing hpricot results in the following error message on my FreeBSD 7.2 machine:
make install /usr/bin/install -c -o root -g wheel -m 0755 hpricot_scan.so /home/username/GEMS/gems/hpricot-0.8.1/lib install: /home/username/GEMS/gems/hpricot-0.8.1/lib/hpricot_scan.so: chown/chgrp: Operation not permitted *** Error code 71
The file rbconfig.rb contains some info how you're ruby version has been built.
$ pkg_info -L ruby-1.8.\* | grep rbconfig.rb /usr/local/lib/ruby/1.8/i386-freebsd7/rbconfig.rb
It containes the following interessting line:
CONFIG["INSTALL"] = ENV['RB_USER_INSTALL'] ? '/usr/bin/install -c' : '/usr/bin/install -c -o root -g wheel'
So, by default, gem extensions will be installed as user root of group wheel on my system. On the other hand, if RB_USER_INSTALL gets set as environment variable, gems will install with the permissions of the user calling gem install!
Rinderbox: Version 0.2
I've released rinderbox 0.2 a few minutes ago. Now the latest and failed builds get listed on the main page.
As always have a look at the demo site...
Don't know how to simplify the main page in general yet (hint: there is a nice tinderbox layout by Aron Schlesinger ), but I've added some things to be done for the next release(s) in a TODO file.
bcfg2: FreeBSD port updated to version 0.9.5.2
Boris Samorodov (bsam) commited a few patches related to bcfg2.
First off bcfg2 was updated to version 0.9.5.2. Furthermore patches for py-lxml and py-cheetah allow now the package building of bcfg2 (in tinderbox).Bcfg2 0.9.4 released
Bcfg2 0.9.4 has been released. It's a bug fix release with a small number of new features.
I've fixed many problems one encounters when using bcfg2 under FreeBSD. So give it a try.
I've also implemented initial support for the FreeBSD package system. The FreeBSDPackage tool can recognize which packages and their versions are installed and which packages are out of date using pkg_info and pkg_version. I'm looking forward to improve FreeBSD support for the next major release 0.9.5.
PR 114020 should update the sysutils/py-bcfg2 port in a few hours/days.
UPDATE: The update has been commited.
FreeBSD PXE Installation 1
/etc/inetd.conf
[...] tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /pxeroot [...]
/usr/local/etc/dhcpd.conf
option domain-name "gogolok.de";
option domain-name-servers 192.168.2.100;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style ad-hoc;
log-facility local7;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.100;
next-server 192.168.2.201;
filename "/boot/pxeboot";
}
host laptop {
hardware ethernet 08:00:46:6a:c5:3c;
fixed-address 192.168.2.202;
# option root-path "134.96.240.6:/pxeroot";
}
/etc/exports
[...] /pxeroot/ -ro -alldirs -network 192.168.2.0 -mask 255.255.255.0 [...]
/etc/rc.conf
[...] # dhcp, PXE boot dhcpd_enable="YES" dhcpd_ifaces="re0" inetd_enable="YES" rpcbind_enable="YES" nfs_server_enable="YES" mountd_flags="-r" [...]
Mount FreeBSD 6.3 bootonly iso
$ cd /tmp $ fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/\ 6.3/6.3-RELEASE-i386-bootonly.iso $ sudo mdconfig -a -t vnode -f /tmp/6.3-RELEASE-i386-bootonly.iso -u 4 $ sudo mkdir /pxeroot $ sudo mount_cd9660 /dev/md4 /pxeroot
Start NFS (without rebooting)
$ sudo rpcbind $ sudo nfsd -u -t -n 4 $ sudo mountd -r # or restart machine
Start dhcp and inetd server
$ sudo /etc/rc.d/inetd restart $ sudo /usr/local/etc/rc.d/isc-dhcpd restart
Boot loader
Everything should be setup on the server side, now boot the machine FreeBSD should be installed on using PXE. If DHCP, TFTP and NFS is set up correctly, the FreeBSD boot loader should appear. Press the key '6' for the sixth entry "Escape to loader prompt", then type the following:
set vfs.root.mountfrom="ufs:/dev/md0c" ENTER boot ENTER
The system boots and sysinstall should appear.
[NEW PORT] sysutils/bcfg2: configuration management system written in Python 2
I've submitted a bug report that brings bcfg2 to the FreeBSD ports system.
I've posted also a ticket to the bcfg2 trac system that should make bcfg2-admin init more intuitive. A plugin for the FreeBSD package system is still missing.
UPDATE 02/06/2007 Great, CHAO Shin had the same idea! Also the 'bcfg2-admin' enhancement ticket is commited.
UPDATE 04/06/2007 The port has been commited, welcome sysutils/py-bcfg2. Thanks Miwi!
devel/py-xml: Pythonic binding for the libxml2 and libxslt libraries
[print/hplip] wrong usage of options
Slowly I'm getting my ports list compiled with tinderbox.
This week I've found a bug in the Makefile of print/hplip (Drivers and utilities for HP Printers and All-in-One devices). The port specifies the following option:
...
OPTIONS= GUI "build with Python QT" on
...
.if defined(WITH_GUI)
RUN_DEPENDS+= pylupdate:${PORTSDIR}/x11-toolkits/py-qt
.endif
...
GUI support is enabled by default here. But according to the syntax chapter in the FreeBSD Porter's Handbook one can only test for WITHOUT_* in case of an option which defaults to ON. Testing for WITHOUT_GUI would be right in this case, see PR 108103.
...
.if !defined(WITHOUT_GUI)
RUN_DEPENDS+= pylupdate:${PORTSDIR}/x11-toolkits/py-qt
.endif
...