Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 02 May 2014 06:58:22 -0600
From:      Tom Everett <tom@0x544745.com>
To:        Tim Kientzle <tim@kientzle.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: crochet - why does it (try to) change files in /usr/src?
Message-ID:  <5363966E.2070005@0x544745.com>
In-Reply-To: <C091DF3B-A989-4C6E-AC74-181214BC4253@kientzle.com>
References:  <20140501005611.3401d271adf4db31cf8e9246@getmail.no> <C091DF3B-A989-4C6E-AC74-181214BC4253@kientzle.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Previously when I tried to build crochet in an jail I ran into troubles 
creating md devices.  I presume upgrading to these new tools would help 
that too?

> Tim Kientzle <mailto:tim@kientzle.com>
> May 1, 2014 at 10:45 AM
> On Apr 30, 2014, at 3:56 PM, Torfinn Ingolfsen<torfinn.ingolfsen@getmail.no>  wrote:
>
>> ===>  lib/libexpat (cleandir)
>> rm -f bsdxml.h bsdxml_external.h libbsdxml.3.gz libbsdxml.3.cat.gz
>> rm: bsdxml.h: Permission denied
>> rm: bsdxml_external.h: Permission denied
>> *** Error code 1
>>
>> Stop.
>> make[4]: stopped in /usr/src/lib/libexpat
>> (I wasn't running crochet as root, and I suspect it is the reason for failure)
>>
>> Question 1: it look to me like the script is trying to remove stuff (files) from /usr/src. Why is it doing that?
>
> It’s not.
>
> The ‘buildworld’ target is cleaning the appropriate /usr/obj directories in case there was a previous build there.
>
>> Question 2: why does crochet need root?
>
> As for requiring root:
>
>   * In theory, it should not require root.
>
>   * In practice, Crochet relies on the FreeBSD build infrastructure, which until recently did require root.
>
>   * In practice, FreeBSD’s build infrastructure now has most of the necessary tools to do full system builds and installs without requiring root.  (As someone else pointed out, we don’t have tools for constructing disk images with multiple partitions, nor for creating FAT partitions.)
>
>   * In practice, no one has stepped forward with Crochet patches to allow it to work without requiring root.  It should be relatively simple to get Crochet to compile all the pieces without requiring root.  Assembling the final disk image without root privileges will require more effort.
>
> Cheers,
>
> Tim
>
> _______________________________________________
> freebsd-arm@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
> Torfinn Ingolfsen <mailto:torfinn.ingolfsen@getmail.no>
> April 30, 2014 at 4:56 PM
> I'm (finally) trying crochet today. Ultimate goal is to try and build 
> for Cubieboard, but I'm starting with something easy first - RaspberryPi.
>
> First I had to get all the pieces (the script does a very nice job of 
> explaining what what is missing. One possible refinement for a future 
> version would be to list all missing pieces, not just the first one).
> Next I discovered that my world build failed. Lookiing at the log file 
> work/_.buildworld.armv6.log I can see this:
> ===> lib/libexpat (cleandir)
> rm -f bsdxml.h bsdxml_external.h libbsdxml.3.gz libbsdxml.3.cat.gz
> rm: bsdxml.h: Permission denied
> rm: bsdxml_external.h: Permission denied
> *** Error code 1
>
> Stop.
> make[4]: stopped in /usr/src/lib/libexpat
> (I wasn't running crochet as root, and I suspect it is the reason for 
> failure)
>
> Question 1: it look to me like the script is trying to remove stuff 
> (files) from /usr/src. Why is it doing that?
>
> Question 2: why does crochet need root?
> - all prerequisites (that needs root) are already installed
> - the script is installed in ~/work/crochet-freebsd and all building 
> takes place there
> so why does it need root?
>
> Details:
> build machine runs FreeBSD 10.0-release:
> $ uname -a
> FreeBSD kg-v7.kg4.no 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu 
> Jan 16 22:34:59 UTC 2014
> root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
>
> build details:
> $ sh crochet.sh -b RaspberryPi
> Starting at Thu May 1 00:18:36 CEST 2014
> Board: RaspberryPi
> Source version is: r265148
> Building FreeBSD version: 10.0
> Image name is:
> /usr/home/tingo/work/crochet-freebsd/work/FreeBSD-armv6-10.0-RPI-B-r265148.img
> Building FreeBSD version: 10.0
> Object files are at: 
> /usr/home/tingo/work/crochet-freebsd/work/obj/arm.armv6/usr/src
> Found suitable FreeBSD source tree in:
> /usr/src
> Found FreeBSD xdev tools for armv6
> Found U-Boot sources in:
> /usr/home/tingo/work/crochet-freebsd/u-boot-rpi
> Building FreeBSD armv6 world at Thu May 1 00:18:36 CEST 2014
> (Logging to 
> /usr/home/tingo/work/crochet-freebsd/work/_.buildworld.armv6.log)
> Failed to build FreeBSD armv6 world.
> Log in /usr/home/tingo/work/crochet-freebsd/work/_.buildworld.armv6.log
>
> Stop.
> make[2]: stopped in /usr/src
> *** Error code 1
>
> Stop.
> make[1]: stopped in /usr/src
> *** Error code 1
>
> Stop.
> make: stopped in /usr/src



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5363966E.2070005>