version 1.1.1.1.2.2, 2011/07/21 08:07:12
|
version 1.2.4.10, 2012/06/05 14:09:46
|
Line 35 NEWKERN="${REL}/kernel"
|
Line 35 NEWKERN="${REL}/kernel"
|
clean_elwix() |
clean_elwix() |
{ |
{ |
echo "+++ Clean csh from ELWIX World ..." |
echo "+++ Clean csh from ELWIX World ..." |
rm -rf ${BSDOBJ}/usr/src/bin/csh/* | # rm -rf ${BSDOBJ}/usr/src/bin/csh/* |
| rm -rf $BSDOBJ/elwix |
|
|
echo "+++ Clean ELWIX RootFS firmware ..." |
echo "+++ Clean ELWIX RootFS firmware ..." |
rm -rf $MKDIR |
rm -rf $MKDIR |
mkdir $MKDIR |
mkdir $MKDIR |
|
|
echo "+++ Clean RootFS directory ..." |
echo "+++ Clean RootFS directory ..." |
|
chflags -R noschg $ROOTFS |
rm -rf $ROOTFS |
rm -rf $ROOTFS |
mkdir $ROOTFS |
mkdir $ROOTFS |
|
|
Line 57 prepare_elwix()
|
Line 59 prepare_elwix()
|
# Auto-generated Makefile include for crungegen |
# Auto-generated Makefile include for crungegen |
# !!! Dont edit by hand !!! |
# !!! Dont edit by hand !!! |
# |
# |
#BUILDOPTS += TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ} | |
CRUNCH_SUPPRESS_LINK_-sh= 1 | #CRUNCH_SUPPRESS_LINK_-sh= 1 |
CRUNCH_SUPPRESS_LINK_-csh= 1 | #CRUNCH_SUPPRESS_LINK_-csh= 1 |
CRUNCH_SUPPRESS_LINK_-tcsh= 1 | #CRUNCH_SUPPRESS_LINK_-tcsh= 1 |
| |
LIBS += -L${WORLD}/lib -L${WORLD}/usr/lib |
LIBS += -L${WORLD}/lib -L${WORLD}/usr/lib |
_EOF |
_EOF |
cat >$ROOTFS_CONF <<_EOF |
cat >$ROOTFS_CONF <<_EOF |
|
srcdirs ${BSDSRC}/tools/tools ${BSDSRC}/tools/tools/ath |
|
srcdirs ${BSDSRC}/release/picobsd/tinyware |
srcdirs ${BSDSRC}/bin ${BSDSRC}/sbin ${BSDSRC}/libexec ${BSDSRC}/cddl/sbin ${BSDSRC}/sbin/ggate |
srcdirs ${BSDSRC}/bin ${BSDSRC}/sbin ${BSDSRC}/libexec ${BSDSRC}/cddl/sbin ${BSDSRC}/sbin/ggate |
#buildopts -DRESCUE CRUNCH_CFLAGS=-DRESCUE TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ} | srcdirs ${BSDSRC}/usr.bin ${BSDSRC}/usr.sbin ${BSDSRC}/usr.sbin/wpa |
buildopts TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ} | srcdirs ${BSDSRC}/secure/usr.bin ${BSDSRC}/secure/usr.sbin ${BSDSRC}/secure/libexec |
| |
| buildopts -DNO_PAM -DNO_KERBEROS WITHOUT_PAM_SUPPORT=yes WITHOUT_KERBEROS_SUPPORT=yes WITHOUT_KERBEROS=yes |
| buildopts TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MAKEOBJDIRPREFIX=${BSDOBJ}/elwix |
_EOF |
_EOF |
cat $CFGDIR/$ROOTFS_CONF >>$ROOTFS_CONF |
cat $CFGDIR/$ROOTFS_CONF >>$ROOTFS_CONF |
|
|
crunchgen -f -p $BSDOBJ -h $MKDIR/$MKH -m $MKF -c elwix.c -e elwix $ROOTFS_CONF | . ${CENV} |
| install -d ${BSDOBJ}/elwix |
| crunchgen -f -o -p ${BSDOBJ}/elwix -h $MKDIR/$MKH -m $MKF -c elwix.c -e elwix $ROOTFS_CONF |
cd - |
cd - |
} |
} |
|
|
Line 78 build_elwix()
|
Line 88 build_elwix()
|
{ |
{ |
echo "+++ Build ELWIX RootFS firmware ..." |
echo "+++ Build ELWIX RootFS firmware ..." |
cd $MKDIR |
cd $MKDIR |
|
. ${CENV} |
|
MAKEOBJDIRPREFIX=${BSDOBJ}/elwix |
make -f $MKF clean |
make -f $MKF clean |
make -f $MKF |
make -f $MKF |
|
if [ $? -ne 0 ]; then |
|
exit 1 |
|
fi |
cd - |
cd - |
} |
} |
|
|
Line 92 build_rootdir()
|
Line 107 build_rootdir()
|
install -d dev; |
install -d dev; |
install -d elwix; |
install -d elwix; |
install -d elwix/etc; |
install -d elwix/etc; |
|
install -d libexec; |
install -d mnt; |
install -d mnt; |
install -d -m 0555 proc; |
install -d -m 0555 proc; |
install -d sbin; |
install -d sbin; |
install -d system; |
install -d system; |
install -d -m 1777 tmp; |
install -d -m 1777 tmp; |
install -d usr; |
install -d usr; |
|
install -d usr/bin; |
|
install -d usr/lib; |
|
install -d usr/libexec; |
|
install -d usr/sbin; |
install -d var; |
install -d var; |
|
|
ln -fs /usr/lib lib; |
ln -fs /usr/lib lib; |
ln -fs /usr/libexec libexec; |
|
|
|
ln -fs /elwix/etc etc; |
ln -fs /elwix/etc etc; |
ln -fs /elwix/exports exports; |
ln -fs /elwix/exports exports; |
Line 114 build_rootdir()
|
Line 133 build_rootdir()
|
|
|
install_rootfs() |
install_rootfs() |
{ |
{ |
PRG="/sbin/elwix" |
|
BIN="${ROOTFS}/bin" |
BIN="${ROOTFS}/bin" |
SBIN="${ROOTFS}/sbin" |
SBIN="${ROOTFS}/sbin" |
|
UBIN="${ROOTFS}/usr/bin" |
|
LIBEXEC="${ROOTFS}/usr/libexec" |
ETC="${ROOTFS}/elwix/etc" |
ETC="${ROOTFS}/elwix/etc" |
|
|
|
PRG="/sbin/elwix" |
|
LNPRG="${SBIN}/elwix" |
|
|
echo "+++ Install ELWIX into RootFS directory ..." |
echo "+++ Install ELWIX into RootFS directory ..." |
install $MKDIR/elwix $SBIN |
install $MKDIR/elwix $SBIN |
|
|
Line 126 install_rootfs()
|
Line 149 install_rootfs()
|
|
|
InstallDir ${ROOTFS_ETC} $ETC |
InstallDir ${ROOTFS_ETC} $ETC |
|
|
ln -s /usr/sbin/nologin $SBIN | # ln -s /usr/sbin/nologin $SBIN |
|
|
ln -s $PRG $BIN/test | ln $LNPRG $BIN/csh |
ln -s $PRG $BIN/\[ | ln $LNPRG $BIN/tcsh |
ln -s $PRG $BIN/cat | ln $LNPRG $BIN/-tcsh |
ln -s $PRG $BIN/chflags | |
ln -s $PRG $BIN/chio | |
ln -s $PRG $BIN/chmod | |
ln -s $PRG $BIN/cp | |
ln -s $PRG $BIN/csh | |
ln -s $PRG $BIN/tcsh | |
ln -s $PRG $BIN/date | |
ln -s $PRG $BIN/dd | |
ln -s $PRG $BIN/df | |
ln -s $PRG $BIN/domainname | |
ln -s $PRG $BIN/echo | |
ln -s $PRG $BIN/expr | |
ln -s $PRG $BIN/getfacl | |
ln -s $PRG $BIN/hostname | |
ln -s $PRG $BIN/kenv | |
ln -s $PRG $BIN/kill | |
ln -s $PRG $BIN/ln | |
ln -s $PRG $BIN/link | |
ln -s $PRG $BIN/ls | |
ln -s $PRG $BIN/mkdir | |
ln -s $PRG $BIN/mv | |
ln -s $PRG $BIN/pax | |
ln -s $PRG $BIN/pkill | |
ln -s $PRG $BIN/pgrep | |
ln -s $PRG $BIN/sh | |
ln -s $PRG $BIN/-sh | |
ln -s $PRG $BIN/-tcsh | |
ln -s $PRG $BIN/ps | |
ln -s $PRG $BIN/pwait | |
ln -s $PRG $BIN/pwd | |
ln -s $PRG $BIN/realpath | |
ln -s $PRG $BIN/rm | |
ln -s $PRG $BIN/unlink | |
ln -s $PRG $BIN/rmdir | |
ln -s $PRG $BIN/setfacl | |
ln -s $PRG $BIN/sleep | |
ln -s $PRG $BIN/stty | |
ln -s $PRG $BIN/sync | |
ln -s $PRG $BIN/uuidgen | |
|
|
ln -s $PRG $SBIN/adjkerntz | ln $LNPRG $BIN/test |
ln -s $PRG $SBIN/atacontrol | ln $LNPRG $BIN/\[ |
ln -s $PRG $SBIN/badsect | ln $LNPRG $BIN/cat |
ln -s $PRG $SBIN/bsdlabel | ln $LNPRG $BIN/chflags |
ln -s $PRG $SBIN/disklabel | ln $LNPRG $BIN/chio |
ln -s $PRG $SBIN/camcontrol | ln $LNPRG $BIN/chmod |
ln -s $PRG $SBIN/ccdconfig | ln $LNPRG $BIN/cp |
ln -s $PRG $SBIN/comcontrol | ln $LNPRG $BIN/date |
ln -s $PRG $SBIN/conscontrol | ln $LNPRG $BIN/dd |
ln -s $PRG $SBIN/devfs | ln $LNPRG $BIN/df |
ln -s $PRG $SBIN/dhclient | ln $LNPRG $BIN/domainname |
ln -s $PRG $SBIN/dmesg | ln $LNPRG $BIN/echo |
ln -s $PRG $SBIN/dump | ln $LNPRG $BIN/expr |
ln -s $PRG $SBIN/rdump | ln $LNPRG $BIN/hostname |
ln -s $PRG $SBIN/dumpfs | ln $LNPRG $BIN/kenv |
ln -s $PRG $SBIN/dumpon | ln $LNPRG $BIN/kill |
ln -s $PRG $SBIN/fdisk | ln $LNPRG $BIN/ln |
ln -s $PRG $SBIN/ffsinfo | ln $LNPRG $BIN/link |
ln -s $PRG $SBIN/fsck | ln $LNPRG $BIN/ls |
ln -s $PRG $SBIN/fsck_ffs | ln $LNPRG $BIN/mkdir |
ln -s $PRG $SBIN/fsck_ufs | ln $LNPRG $BIN/mv |
ln -s $PRG $SBIN/fsck_4.2bsd | ln $LNPRG $BIN/pax |
ln -s $PRG $SBIN/fsck_msdosfs | ln $LNPRG $BIN/pkill |
ln -s $PRG $SBIN/gbde | ln $LNPRG $BIN/pgrep |
ln -s $PRG $SBIN/ggatec | ln $LNPRG $BIN/sh |
ln -s $PRG $SBIN/ggated | ln $LNPRG $BIN/-sh |
ln -s $PRG $SBIN/ggatel | ln $LNPRG $BIN/ps |
ln -s $PRG $SBIN/-geom | ln $LNPRG $BIN/pwait |
ln -s $PRG $SBIN/glabel | ln $LNPRG $BIN/pwd |
ln -s $PRG $SBIN/gpart | ln $LNPRG $BIN/realpath |
ln -s $PRG $SBIN/growfs | ln $LNPRG $BIN/rm |
ln -s $PRG $SBIN/hastctl | ln $LNPRG $BIN/unlink |
ln -s $PRG $SBIN/hastd | ln $LNPRG $BIN/rmdir |
ln -s $PRG $SBIN/ifconfig | ln $LNPRG $BIN/sleep |
ln -s $PRG $SBIN/init | ln $LNPRG $BIN/stty |
ln -s $PRG $SBIN/ipfw | ln $LNPRG $BIN/sync |
ln -s $PRG $SBIN/iscontrol | ln $LNPRG $BIN/uuidgen |
ln -s $PRG $SBIN/kldconfig | |
ln -s $PRG $SBIN/kldload | |
ln -s $PRG $SBIN/kldstat | |
ln -s $PRG $SBIN/kldunload | |
ln -s $PRG $SBIN/ldconfig | |
ln -s $PRG $SBIN/md5 | |
ln -s $PRG $SBIN/sha1 | |
ln -s $PRG $SBIN/sha256 | |
ln -s $PRG $SBIN/rmd160 | |
ln -s $PRG $SBIN/mdconfig | |
ln -s $PRG $SBIN/mdmfs | |
ln -s $PRG $SBIN/mount_mfs | |
ln -s $PRG $SBIN/mknod | |
ln -s $PRG $SBIN/mksnap_ffs | |
ln -s $PRG $SBIN/mount | |
ln -s $PRG $SBIN/mount_cd9660 | |
ln -s $PRG $SBIN/mount_msdosfs | |
ln -s $PRG $SBIN/mount_nfs | |
ln -s $PRG $SBIN/mount_ntfs | |
ln -s $PRG $SBIN/mount_nullfs | |
ln -s $PRG $SBIN/mount_udf | |
ln -s $PRG $SBIN/mount_unionfs | |
ln -s $PRG $SBIN/natd | |
ln -s $PRG $SBIN/newfs | |
ln -s $PRG $SBIN/newfs_msdos | |
ln -s $PRG $SBIN/nfsiod | |
ln -s $PRG $SBIN/nos-tun | |
ln -s $PRG $SBIN/pfctl | |
ln -s $PRG $SBIN/pflogd | |
ln -s $PRG $SBIN/ping | |
ln -s $PRG $SBIN/ping6 | |
ln -s $PRG $SBIN/quotacheck | |
ln -s $PRG $SBIN/reboot | |
ln -s $PRG $SBIN/halt | |
ln -s $PRG $SBIN/fastboot | |
ln -s $PRG $SBIN/fasthalt | |
ln -s $PRG $SBIN/recoverdisk | |
ln -s $PRG $SBIN/restore | |
ln -s $PRG $SBIN/rrestore | |
ln -s $PRG $SBIN/route | |
ln -s $PRG $SBIN/rtsol | |
ln -s $PRG $SBIN/savecore | |
ln -s $PRG $SBIN/setkey | |
ln -s $PRG $SBIN/shutdown | |
ln -s $PRG $SBIN/spppcontrol | |
ln -s $PRG $SBIN/swapon | |
ln -s $PRG $SBIN/swapoff | |
ln -s $PRG $SBIN/swapctl | |
ln -s $PRG $SBIN/sysctl | |
ln -s $PRG $SBIN/tunefs | |
ln -s $PRG $SBIN/umount | |
ln -s $PRG $SBIN/zfs | |
ln -s $PRG $SBIN/zpool | |
|
|
|
ln $LNPRG $BIN/true |
|
ln $LNPRG $BIN/false |
|
ln $LNPRG $BIN/basename |
|
ln $LNPRG $BIN/tail |
|
ln $LNPRG $BIN/nc |
|
ln $LNPRG $BIN/w |
|
ln $LNPRG $BIN/head |
|
ln $LNPRG $BIN/uname |
|
ln $LNPRG $BIN/tset |
|
ln $LNPRG $BIN/vmstat |
|
ln $LNPRG $BIN/systat |
|
ln $LNPRG $BIN/tput |
|
ln $LNPRG $BIN/grep |
|
ln $LNPRG $BIN/awk |
|
ln $LNPRG $BIN/less |
|
ln $LNPRG $BIN/gzip |
|
ln $LNPRG $BIN/cap_mkdb |
|
ln $LNPRG $BIN/sed |
|
ln $LNPRG $BIN/vi |
|
ln $LNPRG $BIN/du |
|
ln $LNPRG $BIN/getopt |
|
ln $LNPRG $BIN/logger |
|
ln $LNPRG $BIN/nice |
|
ln $LNPRG $BIN/nohup |
|
ln $LNPRG $BIN/seq |
|
ln $LNPRG $BIN/sockstat |
|
ln $LNPRG $BIN/stat |
|
ln $LNPRG $BIN/tee |
|
ln $LNPRG $BIN/tftp |
|
ln $LNPRG $BIN/touch |
|
ln $LNPRG $BIN/wc |
|
ln $LNPRG $BIN/xargs |
|
ln $LNPRG $BIN/printenv |
|
ln $LNPRG $BIN/egrep |
|
ln $LNPRG $BIN/fgrep |
|
ln $LNPRG $BIN/tar |
|
ln $LNPRG $BIN/cpio |
|
ln $LNPRG $BIN/nawk |
|
ln $LNPRG $BIN/gunzip |
|
ln $LNPRG $BIN/gzcat |
|
ln $LNPRG $BIN/zcat |
|
ln $LNPRG $BIN/more |
|
ln $LNPRG $BIN/reset |
|
ln $LNPRG $BIN/readlink |
|
ln $LNPRG $BIN/uptime |
|
ln $LNPRG $BIN/bzip2 |
|
ln $LNPRG $BIN/bunzip2 |
|
ln $LNPRG $BIN/bzcat |
|
|
|
ln $LNPRG $SBIN/atacontrol |
|
ln $LNPRG $SBIN/bsdlabel |
|
ln $LNPRG $SBIN/disklabel |
|
ln $LNPRG $SBIN/camcontrol |
|
ln $LNPRG $SBIN/comcontrol |
|
ln $LNPRG $SBIN/conscontrol |
|
ln $LNPRG $SBIN/devfs |
|
ln $LNPRG $SBIN/dhclient |
|
ln $LNPRG $SBIN/dmesg |
|
ln $LNPRG $SBIN/dump |
|
ln $LNPRG $SBIN/rdump |
|
ln $LNPRG $SBIN/dumpon |
|
ln $LNPRG $SBIN/fdisk |
|
ln $LNPRG $SBIN/fsck |
|
ln $LNPRG $SBIN/fsck_ffs |
|
ln $LNPRG $SBIN/fsck_ufs |
|
ln $LNPRG $SBIN/fsck_4.2bsd |
|
ln $LNPRG $SBIN/fsck_msdosfs |
|
ln $LNPRG $SBIN/-geom |
|
ln $LNPRG $SBIN/glabel |
|
ln $LNPRG $SBIN/gpart |
|
ln $LNPRG $SBIN/growfs |
|
ln $LNPRG $SBIN/hastctl |
|
ln $LNPRG $SBIN/hastd |
|
ln $LNPRG $SBIN/ifconfig |
|
ln $LNPRG $SBIN/init |
|
ln $LNPRG $SBIN/ipfw |
|
ln $LNPRG $SBIN/iscontrol |
|
ln $LNPRG $SBIN/kldconfig |
|
ln $LNPRG $SBIN/kldload |
|
ln $LNPRG $SBIN/kldstat |
|
ln $LNPRG $SBIN/kldunload |
|
ln $LNPRG $SBIN/ldconfig |
|
ln $LNPRG $SBIN/md5 |
|
ln $LNPRG $SBIN/sha1 |
|
ln $LNPRG $SBIN/sha256 |
|
ln $LNPRG $SBIN/rmd160 |
|
ln $LNPRG $SBIN/mdconfig |
|
ln $LNPRG $SBIN/mdmfs |
|
ln $LNPRG $SBIN/mount_mfs |
|
ln $LNPRG $SBIN/mknod |
|
ln $LNPRG $SBIN/mksnap_ffs |
|
ln $LNPRG $SBIN/mount |
|
ln $LNPRG $SBIN/mount_cd9660 |
|
ln $LNPRG $SBIN/mount_msdosfs |
|
ln $LNPRG $SBIN/mount_nfs |
|
ln $LNPRG $SBIN/mount_ntfs |
|
ln $LNPRG $SBIN/mount_nullfs |
|
ln $LNPRG $SBIN/mount_udf |
|
ln $LNPRG $SBIN/mount_unionfs |
|
ln $LNPRG $SBIN/newfs |
|
ln $LNPRG $SBIN/newfs_msdos |
|
ln $LNPRG $SBIN/nfsiod |
|
ln $LNPRG $SBIN/nos-tun |
|
ln $LNPRG $SBIN/pfctl |
|
ln $LNPRG $SBIN/pflogd |
|
ln $LNPRG $SBIN/quotacheck |
|
ln $LNPRG $SBIN/reboot |
|
ln $LNPRG $SBIN/halt |
|
ln $LNPRG $SBIN/fastboot |
|
ln $LNPRG $SBIN/fasthalt |
|
ln $LNPRG $SBIN/recoverdisk |
|
ln $LNPRG $SBIN/restore |
|
ln $LNPRG $SBIN/rrestore |
|
ln $LNPRG $SBIN/route |
|
ln $LNPRG $SBIN/rtsol |
|
ln $LNPRG $SBIN/shutdown |
|
ln $LNPRG $SBIN/savecore |
|
ln $LNPRG $SBIN/swapon |
|
ln $LNPRG $SBIN/swapoff |
|
ln $LNPRG $SBIN/swapctl |
|
ln $LNPRG $SBIN/sysctl |
|
ln $LNPRG $SBIN/tunefs |
|
ln $LNPRG $SBIN/umount |
|
ln $LNPRG $SBIN/zfs |
|
ln $LNPRG $SBIN/zpool |
|
|
|
ln $LNPRG $SBIN/ping |
|
ln $LNPRG $SBIN/ping6 |
|
ln $LNPRG $SBIN/traceroute |
|
ln $LNPRG $SBIN/traceroute6 |
|
|
|
ln $LNPRG $SBIN/chown |
|
ln $LNPRG $SBIN/pwd_mkdb |
|
ln $LNPRG $SBIN/arp |
|
ln $LNPRG $SBIN/gpioctl |
|
ln $LNPRG $SBIN/hostapd |
|
ln $LNPRG $SBIN/hostapd_cli |
|
ln $LNPRG $SBIN/wpa_supplicant |
|
ln $LNPRG $SBIN/wpa_cli |
|
ln $LNPRG $SBIN/wpa_passphrase |
|
ln $LNPRG $SBIN/wake |
|
ln $LNPRG $SBIN/watchdog |
|
ln $LNPRG $SBIN/watchdogd |
|
ln $LNPRG $SBIN/inetd |
|
ln $LNPRG $SBIN/wlandebug |
|
ln $LNPRG $SBIN/chroot |
|
ln $LNPRG $SBIN/i2c |
|
ln $LNPRG $SBIN/iostat |
|
ln $LNPRG $SBIN/jail |
|
ln $LNPRG $SBIN/jexec |
|
ln $LNPRG $SBIN/jls |
|
ln $LNPRG $SBIN/ndp |
|
ln $LNPRG $SBIN/newsyslog |
|
ln $LNPRG $SBIN/nologin |
|
ln $LNPRG $SBIN/pstat |
|
ln $LNPRG $SBIN/rtadvctl |
|
ln $LNPRG $SBIN/rtadvd |
|
ln $LNPRG $SBIN/rtsold |
|
ln $LNPRG $SBIN/syslogd |
|
ln $LNPRG $SBIN/setfib |
|
ln $LNPRG $SBIN/swapinfo |
|
ln $LNPRG $SBIN/chgrp |
|
|
|
ln $LNPRG $UBIN/login |
|
ln $LNPRG $UBIN/passwd |
|
|
|
ln $LNPRG $LIBEXEC/getty |
|
ln $LNPRG $LIBEXEC/tftpd |
|
|
|
strip -s $LNPRG |
|
|
chown -hR root:wheel $ROOTFS |
chown -hR root:wheel $ROOTFS |
|
|
|
echo "+++ ELWIX clean CVS tags ..." |
|
CleanCVS $ETC |
|
CleanCVS $ETC/etc |
} |
} |
|
|
build_image() |
build_image() |
Line 296 if SnitVer ${WORLD}/elwix.ver; then
|
Line 402 if SnitVer ${WORLD}/elwix.ver; then
|
build_rootdir |
build_rootdir |
install_rootfs |
install_rootfs |
|
|
build_image | build_image && install_image |
install_image | |
else |
else |
echo "Skipped ELWIX RootFS build ..." |
echo "Skipped ELWIX RootFS build ..." |
fi |
fi |