Subject: Re: unpriviledged build + parallel builds
To: None <tech-pkg@NetBSD.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 06/03/2005 10:12:59
On Fri, 3 Jun 2005, Hubert Feyrer wrote:

> On Fri, 3 Jun 2005, Jeremy C. Reed wrote:
> > Unprivileged builds basically is just doing bulk builds without superuser
> > permission and then slowly fixing every package that is broken. I see this
> > as a time consuming and tedious process, but definitely worth it.
>
> Close: unprivileged builds are getting a "make install" done properly
> first, probably by using the same tricks as NetBSD's build framework.
> Then get a "make package" DTRT. Then do the bulk build as usual.

I just use the bulk builds framework myself because it made it easy for
trying many packages and then also saving the build logs for the failures.

But now I recall I did do a few changes to mk/bulk so I could run as
non-root -- such as not attempting to remove many directories (since I
didn't have permission in the first place).

And yes, bulk builds do identify other problems too.

> Things to consider:
>   * how/where to install dependencies? (esp. bulk build code uses
>     binary pkgs where possible!)

I installed to my home directory.

>   * how to install files with "special" permissions, e.g. setuid-root,
>     on "make install"?

Yes, those were things to fix.

>   * how to create proper binary pkgs on "make package"?

That is one problem, because my packages had hard-coded my "home"
directory in them.

>   * How to handle files that are not installed by install(1), cp(1)
>     or similar, I'm esp. thinking of some pkgs that have fancy
>     do-install/post-install targets which run application code.
>     Firefox comes to mind.
>
> Some research of all the challenges would be a good first step,
> getting this all in a bulk build is probably the very last thing.

I found it easier to use bulk build versus manually attempting thousands
of packages and it gave me the logs I needed.

Examples of things I found:

- benchmarks/bonnie

 install   -c -s   -o root -g wheel -m 555 bonnie
 /storage1/home/jreed/pkg/bin/bonnie
 install: /storage1/home/jreed/pkg/bin/bonnie: chown/chgrp: Operation not
 permitted

 needs to honor ROOT_USER and ROOT_GROUP or BINOWN and BINGRP

- biology/rasmol

 /usr/bin/install -c -s  rasmol /usr/X11R6/bin/rasmol
 install: /usr/X11R6/bin/rasmol: Permission denied

 should use pkg/bin

- comms/birda

 install   -c -s   -o root -g wheel -m 555 ircomm
 /storage1/home/jreed/pkg/bin/ircomm
install: /storage1/home/jreed/pkg/bin/ircomm: chown/chgrp: Operation not  permitted

 ROOT_USER and ROOT_GROUP should be honoured

- devel/aegis

 chown 3 /storage1/home/jreed/pkg/share/aegis/en/man5/aeustate.5 && chgrp 3
 /storage1/home/jreed/pkg/share/aegis/en/man5/aeustate.5
 chown: /storage1/home/jreed/pkg/share/aegis/en/man5/aeustate.5: Operation
 not permitted

 What is uid 3 and gid 3?

- devel/avltree

 install    -c  -o root -g wheel -m 444  avltree.h
 /storage1/home/jreed/pkg/include/avltree.h
 install: /storage1/home/jreed/pkg/include/avltree.h: chown/chgrp:
 Operation not permitted

 doesn't honor ROOT_USER and ROOT_GROUP or other

- devel/tcllib

 error copying "./apps/dtplite" to "/usr/local/bin/dtplite": permission
 denied
     while executing

 /usr/local/bin is definitely wrong!

- fonts/jmk-fonts/

 + mkdir -p /usr/X11R6/lib/X11/fonts/jmk
 mkdir: /usr/X11R6/lib/X11/fonts/jmk: Permission denied

 Doesn't honor xpkgwedge correctly?

(I posted about all these and others before -- I had too many to fix and
and too many to send-pr at that time.)

Looking at my old emails about this, now I see there are many other issues
related to bulk builds but not unprivileged installs that would get in the
way, such as:

- converters/ack

 install: /storage1/home/jreed/pkg/man/ja_JP.EUC/man1/ack.1: No such file
 or directory

 need to INSTALLATION_DIRS= man/ja_JP.EUC/man1 ?

> Recommended reading:
>   * pkgsrc/mk/bsd.pkg.mk
>   * pkgsrc/mk/*
>   * pkgsrc/mk/*/*

At first I thought the reply was to me. :)


 Jeremy C. Reed

 	  	 	 BSD News, BSD tutorials, BSD links
	  	 	 http://www.bsdnewsletter.com/