RB_USER_INSTALL to the rescue

Posted by Robert Gogolok Sat, 10 Oct 2009 01:23:00 GMT

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

Posted by Robert Gogolok Tue, 15 Jan 2008 08:47:00 GMT

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

Posted by Robert Gogolok Mon, 07 Jan 2008 23:17:00 GMT

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).

Rinderbox: Version 0.1 2

Posted by Robert Gogolok Sun, 02 Dec 2007 07:55:00 GMT

I've uploaded today the first public release of Rinderbox, version 0.1. Rinderbox is a web frontend to Tinderbox, a package building system for FreeBSD ports.

Rinderbox in version 0.1 only supports the basic stuff. Have a look at the demo site...

Bcfg2 0.9.4 released

Posted by Robert Gogolok Tue, 26 Jun 2007 03:24:00 GMT

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

Posted by Robert Gogolok Sat, 23 Jun 2007 17:58:00 GMT

/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

Posted by Robert Gogolok Sat, 02 Jun 2007 00:34:00 GMT

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

Posted by Robert Gogolok Tue, 20 Feb 2007 05:29:00 GMT

I submitted a port for lxml - commited a few hours ago - in preparation for bcfg2 client and server ports.

[print/hplip] wrong usage of options

Posted by Robert Gogolok Fri, 19 Jan 2007 05:42:00 GMT

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

...

rubygem-rails: wrong RUN_DEPENDS if WITH_MEMCACHE_CLIENT enabled

Posted by Robert Gogolok Mon, 08 Jan 2007 04:24:00 GMT

Thanks to tinderbox I've found a new bug in www/rubygem-rails, see 107660.