Re: building release images broken?

From: Rodney W. Grimes <freebsd-rwg_at_pdx.rh.CN85.dnsmgr.net>
Date: Sun, 18 Nov 2018 16:41:59 -0800 (PST)
> On 11/17/18 5:35 PM, Michael Butler wrote:
> > Any clues as to what's broken here? I'm trying to build a CD and/or DVD
> > image.
> > 
> > My tree is at SVN r340525.
> > 
> > --------------------------------------------------------------
> >>>> Kernel build for GENERIC completed on Sat Nov 17 22:19:48 UTC 2018
> > --------------------------------------------------------------
> > make -C /usr/src/release  obj
> > make -C /usr/src/release  ftp cdrom dvdrom memstick.img mini-memstick.img
> > `ftp' is up to date.
> > sh /usr/src/release/amd64/mkisoimages.sh -b 13_0_CURRENT_amd64_CD
> > disc1.iso disc1
> > 200+0 records in
> > 200+0 records out
> > 819200 bytes transferred in 0.003692 secs (221856674 bytes/sec)
> > newfs_msdos: cannot get number of sectors per track: Operation not supported
> > newfs_msdos: cannot get number of heads: Operation not supported
> > /dev/md0: 1557 sectors in 1557 FAT12 clusters (512 bytes/cluster)
> > BytesPerSec=512 SecPerClust=1 ResSectors=1 FATs=2 RootDirEnts=512
> > Sectors=1600 Media=0xf8 FATsecs=5 SecPerTrack=63 Heads=1 HiddenSecs=0
> > mkdir: efi: File exists
> > *** Error code 1
> > 
> > Stop.
> > make[1]: stopped in /usr/src/release
> > *** Error code 1
> > 
> > Stop.
> > make: stopped in /usr/src/release
> 
> Answering my own question .. seems there's one 'mkdir' without the '-p'
> option .. this fixes it ..
> 
> 
> *** release/amd64/mkisoimages.sh~       Mon Oct 22 16:41:26 2018
> --- release/amd64/mkisoimages.sh        Sun Nov 18 11:42:09 2018
> ***************
> *** 46,52 ****
>         dd if=/dev/zero of=efiboot.img bs=4k count=200
>         device=`mdconfig -a -t vnode -f efiboot.img`
>         newfs_msdos -F 12 -m 0xf8 /dev/$device
> !       mkdir efi
>         mount -t msdosfs /dev/$device efi
>         mkdir -p efi/efi/boot
>         cp -p "$BASEBITSDIR/boot/loader.efi" efi/efi/boot/bootx64.efi
> --- 46,52 ----
>         dd if=/dev/zero of=efiboot.img bs=4k count=200
>         device=`mdconfig -a -t vnode -f efiboot.img`
>         newfs_msdos -F 12 -m 0xf8 /dev/$device
> !       mkdir -p efi

Though this does infact prevent the error the larger question
is what has gone wrong in the Makefile such that this directory
already exists when you get to this point in the Makefile,
as it appears from the lack of -p or other logic to detect
an already existing directory it is not expected to already
be present.

Traditionally -p is used when your creating a path
to a directory, not just a single directory, so it
appears very odd to me to even see a mkdir -p <dirname>,
which would probably be the same as _at_mkdir <dirname>.

How did this directory get created?
Why is it existing when we get to this line?

>         mount -t msdosfs /dev/$device efi
>         mkdir -p efi/efi/boot
>         cp -p "$BASEBITSDIR/boot/loader.efi" efi/efi/boot/bootx64.efi
> 
> 
-- 
Rod Grimes                                                 rgrimes_at_freebsd.org
Received on Sun Nov 18 2018 - 23:54:15 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:19 UTC