/usr/src/release/release.sh -> ports -> fetch pkg -> Bad system call (core dumped)
Ruslan Garipov
ruslanngaripov at gmail.com
Sun Apr 5 13:07:30 UTC 2020
On 4/4/2020 7:50 PM, Tomasz CEDRO wrote:
> Hello world :-)
>
> I would like to build a 12-STABLE (/usr/src contains
> svn.freebsd.org/base/stable/12) locally on strong machine (24CPU 127GB
> RAM 12-1-RELEASE AMD64), then test changes on my local machine
> (panasonic toughbook i5 laptop 12.1-RELEASE AMD64). This will be used
> for testing kernel patches and driver development/fixes.
>
> The goal is to have separate zroot/ROOT/stable to select and act as
> the FreeBSD base. So far I have zroot/ROOT/default to use FreeBSD
> 12.1-RELEASE. I would like to switch between those to on boot to have
> one base system stable for working and another base system for testing
> on real environment.
>
> I noticed that simple copy of /boot/kernel does not work on my target
> machine. Thus I am trying to create a whole release, put a separate
> system base, then on boot select different zfs container base to boot
> from. I just love ZFS for that! I may even use snapshots to log and
> rollback changes.
>
> Questions:
>
> 1. Is it a good build / testing environment? Maybe there is a simpler
> / better way to cross compile binaries and test on another machine?
> Both are using 12.1-RELEASE AMD64 installations so far. All /usr/local
> should work both with 12.1-RELEASE and 12-STABLE right?
Both machines have the same architecture, therefore it is not a cross
build, I believe. For my direct builds (both build and consumer
machines are x86-64) I use the procedure described in the handbook
(``23.6. Tracking for Multiple Machines''[1]).
>
> 2. When that works, I would like to cross-compile for ARM in a similar
> manner, then attach pyOCD + GDB to debug ARM target. I guess that
> should work too as above?
>
> 3. During /usr/src/release/release.sh I get following error as pasted
> below. Does release.sh update /usr/ports just as it snaps from svn or
> it will use the /usr/porst that are just there and I need to provide
> /usr/ports in a state that will be bindled into a /scratch release?
A quote from release(7) man page:
release.sh checks out the src/, ports/, and doc/ trees to CHROOTDIR...
Therefore, release(7) "ignores" /usr/ports and uses
${CHROOTDIR}/usr/ports. My build machine doesn't have access to the
Internet, therefore, I have to define the PORTS_UPDATE_SKIP variable and
provide ports tree into the ${CHROOTDIR}/usr/ports before
I will call /usr/src/release/release.sh.
>
> ===> docproj-2.0_14 depends on file: /usr/local/sbin/pkg - not found
> ===> License BSD2CLAUSE accepted by the user
> ===> Fetching all distfiles required by pkg-1.14.2 for building
> ===> Extracting for pkg-1.14.2
> ===> License BSD2CLAUSE accepted by the user
> ===> Fetching all distfiles required by pkg-1.14.2 for building
> => SHA256 Checksum mismatch for freebsd-pkg-1.14.2_GH0.tar.gz.
> ===> Refetch for 1 more times files: freebsd-pkg-1.14.2_GH0.tar.gz
> ===> License BSD2CLAUSE accepted by the user
> => freebsd-pkg-1.14.2_GH0.tar.gz doesn't seem to exist in /tmp/distfiles/.
> => Attempting to fetch
> https://codeload.github.com/freebsd/pkg/tar.gz/1.14.2?dummy=/freebsd-pkg-1.14.2_GH0.tar.gz
> freebsd-pkg-1.14.2_GH0.tar.gz Bad system call (core dumped)
/usr/src/release/release.sh defines DISTDIR=/tmp/distfiles when it
installs the textproc/docproj port or a port from the ${EMBEDDEDPORTS}.
As for why fetch(1) fails with bad system call under chrooted
environment -- I don't know. I failed on a port fetching only if I
hadn't provided all necessary distfiles. You have checksum error
message which is causing refetching of the ports-mgmt/pkg port.
Therefore, I believe
${CHROOTDIR}/tmp/distfiles/freebsd-pkg-1.14.2_GH0.tar.gz exists on your
file system (remained from a previous fetch try?)... May be you should
try fetch(1) from the chrooted environment manually, to get any content?
> => Attempting to fetch
> http://distcache.FreeBSD.org/ports-distfiles/freebsd-pkg-1.14.2_GH0.tar.gz
> freebsd-pkg-1.14.2_GH0.tar.gz Bad system call (core dumped)
> => Couldn't fetch it - please try to retrieve this
> => port manually into /tmp/distfiles/ and try again.
> *** Error code 1
>
> Stop.
>
> Any hints and comments are welcome :-)
> Tomek
>
[1]
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/small-lan.html
More information about the freebsd-questions
mailing list