[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-current
Subject:    Re: make install[kernel|world] from read only /usr/obj possible ?
From:       Warner Losh <imp () bsdimp ! com>
Date:       2022-05-24 19:04:06
Message-ID: CANCZdfpF_keGwXAzFsv+5GwpBcmYfHDUbai--juaydLQp3RGXg () mail ! gmail ! com
[Download RAW message or body]

Sorry for the top post...

It should work. It has worked in the past. This is a regression.

Warner

On Tue, May 24, 2022, 12:59 PM mike tancsa <mike@sentex.net> wrote:

> On RELENG_12, I was able to mount via NFS /usr/obj and src and do an
> installworld on read only mounts. However, with RELENG_13 and above, I
> get permission denied errors. The install seems to continue just fine,
> but I am not sure if something subtle is being missed. Looking at what
> gets installed, the kernel modules get installed just fine.  However, it
> seems installworld has some problems with static libs (.a files). They
> dont seem to get re-installed. However, not sure if thats by design as
> doing a quick checksum, there is no difference on the build server and
> target of the ~ 700 .a files I checked in /usr/lib32 and /usr/lib. So
> despite the time stamps being off, maybe it just does not bother to
> update the target if they have not changed?
> 
> e.g.
> 
> make KERNCONF=vtnet installkernel
> 
> 
> make warning: /usr/obj/usr/src: Permission denied.
> make[1] warning: /usr/src/: Permission denied.
> make[2] warning: /usr/obj/usr/src/amd64.amd64: Permission denied.
> --------------------------------------------------------------
> > > > Install check kernel
> --------------------------------------------------------------
> --------------------------------------------------------------
> > > > Installing kernel vtnet on Tue May 24 13:50:52 EDT 2022
> --------------------------------------------------------------
> cd /usr/obj/usr/src/amd64.amd64/sys/vtnet;  MACHINE_ARCH=amd64
> MACHINE=amd64  CPUTYPE= CC="cc -target x86_64-unknown-freebsd13.1
> --sysroot=/usr/obj/usr/src/amd64.amd64/tmp
> -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" CXX="c++  -target
> x86_64-unknown-freebsd13.1 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp
> -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin"  CPP="cpp -target
> x86_64-unknown-freebsd13.1 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp
> -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin"  AS="as" AR="ar"
> ELFCTL="elfctl" LD="ld"  LLVM_LINK="" NM=nm OBJCOPY="objcopy"
> RANLIB=ranlib STRINGS=  SIZE="size" STRIPBIN="strip"
> PATH=/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin: \
> /usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr \
> /sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/t \
> mp/legacy/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin
>  
> make  KERNEL=kernel install
> make[2] warning: /usr/obj/usr/src/amd64.amd64/sys/vtnet: Permission denied.
> thiskernel=`sysctl -n kern.bootfile || echo /boot/kernel/kernel` ;  if [
> ! "`dirname "$thiskernel"`" -ef /boot/kernel ] ; then chflags -R noschg
> /boot/kernel ;  rm -rf /boot/kernel ;  rm -rf /usr/lib/debug/boot/kernel
> ;  else  if [ -d /boot/kernel.old ] ; then  chflags -R noschg
> /boot/kernel.old ;  rm -rf /boot/kernel.old ;  fi ;  mv /boot/kernel
> /boot/kernel.old ;  if [ -n "/usr/lib/debug" -a  -d
> /usr/lib/debug/boot/kernel ]; then  rm -rf
> /usr/lib/debug/boot/kernel.old ;  mv /usr/lib/debug/boot/kernel
> /usr/lib/debug/boot/kernel.old ;  fi ; sysctl
> kern.bootfile=/boot/kernel.old/"`basename "$thiskernel"`" ;  fi
> kern.bootfile: /boot/kernel/kernel -> /boot/kernel.old/kernel
> mkdir -p /boot/kernel
> install -p -m 555 -o root -g wheel kernel /boot/kernel/
> mkdir -p /usr/lib/debug/boot/kernel
> install -p -m 555 -o root -g wheel kernel.debug /usr/lib/debug/boot/kernel/
> cd /usr/src/sys/modules;
> MAKEOBJDIRPREFIX=/usr/obj/usr/src/amd64.amd64/sys/vtnet/modules
> KMODDIR=/boot/kernel MACHINE_CPUARCH=amd64 MACHINE=amd64
> MACHINE_ARCH=amd64 MODULES_EXTRA="" WITHOUT_MODULES="" ARCH_FLAGS=""
> DEBUG_FLAGS="-g" __MPATH=""
> KERNBUILDDIR="/usr/obj/usr/src/amd64.amd64/sys/vtnet"
> SYSDIR="/usr/src/sys" MODULE_TIED=yes WITH_CTF="1" KCSAN_ENABLED="yes"
> COMPAT_FREEBSD32_ENABLED="yes" make  install
> make[3] warning:
> /usr/obj/usr/src/amd64.amd64/sys/vtnet/modules/usr/src/sys/modules:
> Permission denied.
> ===> aac (install)
> make[4] warning:
> /usr/obj/usr/src/amd64.amd64/sys/vtnet/modules/usr/src/sys/modules/aac:
> Permission denied.
> install -T release -o root -g wheel -m 555   aac.ko /boot/kernel/
> install -T dbg -o root -g wheel -m 555   aac.ko.debug
> /usr/lib/debug/boot/kernel/
> ===> aacraid (install)
> make[4] warning:
> /usr/obj/usr/src/amd64.amd64/sys/vtnet/modules/usr/src/sys/modules/aacraid:
> 
> Permission denied.
> install -T release -o root -g wheel -m 555   aacraid.ko /boot/kernel/
> install -T dbg -o root -g wheel -m 555   aacraid.ko.debug
> /usr/lib/debug/boot/kernel/
> ===> accf_data (install)
> make[4] warning:
> /usr/obj/usr/src/amd64.amd64/sys/vtnet/modules/usr/src/sys/modules/accf_data:
> 
> Permission denied.
> 
> 
> eg.
> 
> 0{git}% ls -l /usr/lib32/libhei*
> -r--r--r--  1 root  wheel  - 53622 Mar 17 20:02 /usr/lib32/libheimbase.a
> lrwxr-xr-x  1 root  wheel  -    17 May 24 17:11
> /usr/lib32/libheimbase.so -> libheimbase.so.11
> -r--r--r--  1 root  wheel  - 13224 May 24 17:11
> /usr/lib32/libheimbase.so.11
> -r--r--r--  1 root  wheel  - 54966 Mar 17 20:02 /usr/lib32/libheimbase_p.a
> -r--r--r--  1 root  wheel  - 67598 Mar 17 20:02 /usr/lib32/libheimntlm.a
> lrwxr-xr-x  1 root  wheel  -    17 May 24 17:11
> /usr/lib32/libheimntlm.so -> libheimntlm.so.11
> -r--r--r--  1 root  wheel  - 23840 May 24 17:11
> /usr/lib32/libheimntlm.so.11
> -r--r--r--  1 root  wheel  - 68746 Mar 17 20:02 /usr/lib32/libheimntlm_p.a
> 0{git}%
> 
> 
> Looking at the pcap, nothing stands out as to what the problem might be.
> Looking at the replies, the ERROR is just "ERROR: No such file or
> directory" and doesnt correlate to the permission denied errors
> 
> reading from file nfs.pcap, link-type EN10MB (Ethernet)
> 2 xid  reply ok
> 3371 xid  reply ok getattr CHR 11734062556 ids
> 951 xid  reply ok getattr CHR 12231260544 ids
> 626 xid  reply ok getattr ERROR: No such
> 2 xid  reply ok getattr FIFO 10432271160 ids
> 6758 xid  reply ok getattr FIFO 10731272141 ids
> 165 xid  reply ok getattr FIFO 11433667553 ids
> 214 xid  reply ok getattr FIFO 12231260544 ids
> 3373 xid  reply ok getattr LNK 10333067563 ids
> 2 xid  reply ok getattr LNK 12231267145 ids
> 2 xid  reply ok getattr unk-ft 10 10536061550
> 2 xid  reply ok getattr unk-ft 13 10334462541
> 2 xid  reply ok getattr unk-ft 15 12231261554
> 673 xid  reply ok getattr unk-ft 6 10130661545
> 879 xid  reply ok getattr unk-ft 6 11433667553
> 126 xid  reply ok getattr unk-ft 8 12231260544
> 2 xid  reply ok null
> 
> 
> 
> 


[Attachment #3 (text/html)]

<div dir="auto">Sorry for the top post...<div dir="auto"><br></div><div dir="auto">It \
should work. It has worked in the past. This is a regression.  </div><div \
dir="auto"><br></div><div dir="auto">Warner  </div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 24, 2022, 12:59 PM \
mike tancsa &lt;<a href="mailto:mike@sentex.net">mike@sentex.net</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 \
.8ex;border-left:1px #ccc solid;padding-left:1ex">On RELENG_12, I was able to mount \
via NFS /usr/obj and src and do an <br> installworld on read only mounts. However, \
with RELENG_13 and above, I <br> get permission denied errors. The install seems to \
continue just fine, <br> but I am not sure if something subtle is being missed. \
Looking at what <br> gets installed, the kernel modules get installed just fine.   \
However, it <br> seems installworld has some problems with static libs (.a files). \
They <br> dont seem to get re-installed. However, not sure if thats by design as <br>
doing a quick checksum, there is no difference on the build server and <br>
target of the ~ 700 .a files I checked in /usr/lib32 and /usr/lib. So <br>
despite the time stamps being off, maybe it just does not bother to <br>
update the target if they have not changed?<br>
<br>
e.g.<br>
<br>
make KERNCONF=vtnet installkernel<br>
<br>
<br>
make warning: /usr/obj/usr/src: Permission denied.<br>
make[1] warning: /usr/src/: Permission denied.<br>
make[2] warning: /usr/obj/usr/src/amd64.amd64: Permission denied.<br>
--------------------------------------------------------------<br>
  &gt;&gt;&gt; Install check kernel<br>
--------------------------------------------------------------<br>
--------------------------------------------------------------<br>
  &gt;&gt;&gt; Installing kernel vtnet on Tue May 24 13:50:52 EDT 2022<br>
--------------------------------------------------------------<br>
cd /usr/obj/usr/src/amd64.amd64/sys/vtnet;   MACHINE_ARCH=amd64 <br>
MACHINE=amd64   CPUTYPE= CC=&quot;cc -target x86_64-unknown-freebsd13.1 <br>
--sysroot=/usr/obj/usr/src/amd64.amd64/tmp <br>
-B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin&quot; CXX=&quot;c++   -target <br>
x86_64-unknown-freebsd13.1 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp <br>
-B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin&quot;   CPP=&quot;cpp -target <br>
x86_64-unknown-freebsd13.1 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp <br>
-B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin&quot;   AS=&quot;as&quot; \
AR=&quot;ar&quot; <br> ELFCTL=&quot;elfctl&quot; LD=&quot;ld&quot;   \
LLVM_LINK=&quot;&quot; NM=nm OBJCOPY=&quot;objcopy&quot; <br> RANLIB=ranlib STRINGS=  \
SIZE=&quot;size&quot; STRIPBIN=&quot;strip&quot; <br> \
PATH=/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:/u \
sr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbi \
n:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/leg \
acy/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin \
<br> make   KERNEL=kernel install<br>
make[2] warning: /usr/obj/usr/src/amd64.amd64/sys/vtnet: Permission denied.<br>
thiskernel=`sysctl -n kern.bootfile || echo /boot/kernel/kernel` ;   if [ <br>
! &quot;`dirname &quot;$thiskernel&quot;`&quot; -ef /boot/kernel ] ; then chflags -R \
                noschg <br>
/boot/kernel ;   rm -rf /boot/kernel ;   rm -rf /usr/lib/debug/boot/kernel <br>
;   else   if [ -d /boot/kernel.old ] ; then   chflags -R noschg <br>
/boot/kernel.old ;   rm -rf /boot/kernel.old ;   fi ;   mv /boot/kernel <br>
/boot/kernel.old ;   if [ -n &quot;/usr/lib/debug&quot; -a   -d <br>
/usr/lib/debug/boot/kernel ]; then   rm -rf <br>
/usr/lib/debug/boot/kernel.old ;   mv /usr/lib/debug/boot/kernel <br>
/usr/lib/debug/boot/kernel.old ;   fi ; sysctl <br>
kern.bootfile=/boot/kernel.old/&quot;`basename &quot;$thiskernel&quot;`&quot; ;   \
                fi<br>
kern.bootfile: /boot/kernel/kernel -&gt; /boot/kernel.old/kernel<br>
mkdir -p /boot/kernel<br>
install -p -m 555 -o root -g wheel kernel /boot/kernel/<br>
mkdir -p /usr/lib/debug/boot/kernel<br>
install -p -m 555 -o root -g wheel kernel.debug /usr/lib/debug/boot/kernel/<br>
cd /usr/src/sys/modules; <br>
MAKEOBJDIRPREFIX=/usr/obj/usr/src/amd64.amd64/sys/vtnet/modules <br>
KMODDIR=/boot/kernel MACHINE_CPUARCH=amd64 MACHINE=amd64 <br>
MACHINE_ARCH=amd64 MODULES_EXTRA=&quot;&quot; WITHOUT_MODULES=&quot;&quot; \
ARCH_FLAGS=&quot;&quot; <br> DEBUG_FLAGS=&quot;-g&quot; __MPATH=&quot;&quot; <br>
KERNBUILDDIR=&quot;/usr/obj/usr/src/amd64.amd64/sys/vtnet&quot; <br>
SYSDIR=&quot;/usr/src/sys&quot; MODULE_TIED=yes WITH_CTF=&quot;1&quot; \
KCSAN_ENABLED=&quot;yes&quot; <br> COMPAT_FREEBSD32_ENABLED=&quot;yes&quot; make   \
install<br> make[3] warning: <br>
/usr/obj/usr/src/amd64.amd64/sys/vtnet/modules/usr/src/sys/modules: <br>
Permission denied.<br>
===&gt; aac (install)<br>
make[4] warning: <br>
/usr/obj/usr/src/amd64.amd64/sys/vtnet/modules/usr/src/sys/modules/aac: <br>
Permission denied.<br>
install -T release -o root -g wheel -m 555     aac.ko /boot/kernel/<br>
install -T dbg -o root -g wheel -m 555     aac.ko.debug <br>
/usr/lib/debug/boot/kernel/<br>
===&gt; aacraid (install)<br>
make[4] warning: <br>
/usr/obj/usr/src/amd64.amd64/sys/vtnet/modules/usr/src/sys/modules/aacraid: <br>
Permission denied.<br>
install -T release -o root -g wheel -m 555     aacraid.ko /boot/kernel/<br>
install -T dbg -o root -g wheel -m 555     aacraid.ko.debug <br>
/usr/lib/debug/boot/kernel/<br>
===&gt; accf_data (install)<br>
make[4] warning: <br>
/usr/obj/usr/src/amd64.amd64/sys/vtnet/modules/usr/src/sys/modules/accf_data: <br>
Permission denied.<br>
<br>
<br>
eg.<br>
<br>
0{git}% ls -l /usr/lib32/libhei*<br>
-r--r--r--   1 root   wheel   - 53622 Mar 17 20:02 /usr/lib32/libheimbase.a<br>
lrwxr-xr-x   1 root   wheel   -       17 May 24 17:11 <br>
/usr/lib32/libheimbase.so -&gt; libheimbase.so.11<br>
-r--r--r--   1 root   wheel   - 13224 May 24 17:11 /usr/lib32/libheimbase.so.11<br>
-r--r--r--   1 root   wheel   - 54966 Mar 17 20:02 /usr/lib32/libheimbase_p.a<br>
-r--r--r--   1 root   wheel   - 67598 Mar 17 20:02 /usr/lib32/libheimntlm.a<br>
lrwxr-xr-x   1 root   wheel   -       17 May 24 17:11 <br>
/usr/lib32/libheimntlm.so -&gt; libheimntlm.so.11<br>
-r--r--r--   1 root   wheel   - 23840 May 24 17:11 /usr/lib32/libheimntlm.so.11<br>
-r--r--r--   1 root   wheel   - 68746 Mar 17 20:02 /usr/lib32/libheimntlm_p.a<br>
0{git}%<br>
<br>
<br>
Looking at the pcap, nothing stands out as to what the problem might be. <br>
Looking at the replies, the ERROR is just &quot;ERROR: No such file or <br>
directory&quot; and doesnt correlate to the permission denied errors<br>
<br>
reading from file nfs.pcap, link-type EN10MB (Ethernet)<br>
       2 xid   reply ok<br>
3371 xid   reply ok getattr CHR 11734062556 ids<br>
    951 xid   reply ok getattr CHR 12231260544 ids<br>
    626 xid   reply ok getattr ERROR: No such<br>
       2 xid   reply ok getattr FIFO 10432271160 ids<br>
6758 xid   reply ok getattr FIFO 10731272141 ids<br>
    165 xid   reply ok getattr FIFO 11433667553 ids<br>
    214 xid   reply ok getattr FIFO 12231260544 ids<br>
3373 xid   reply ok getattr LNK 10333067563 ids<br>
       2 xid   reply ok getattr LNK 12231267145 ids<br>
       2 xid   reply ok getattr unk-ft 10 10536061550<br>
       2 xid   reply ok getattr unk-ft 13 10334462541<br>
       2 xid   reply ok getattr unk-ft 15 12231261554<br>
    673 xid   reply ok getattr unk-ft 6 10130661545<br>
    879 xid   reply ok getattr unk-ft 6 11433667553<br>
    126 xid   reply ok getattr unk-ft 8 12231260544<br>
       2 xid   reply ok null<br>
<br>
<br>
<br>
</blockquote></div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic