svn commit: r207160 - in user/kib/vm6: . bin/ln contrib/tzdata etc
etc/devd etc/mtree include lib lib/libc/stdlib lib/libpkg
lib/libufs lib/libz release/powerpc sbin/devd sbin/dumpfs
sbin/fsck_ffs ...
Konstantin Belousov
kib at FreeBSD.org
Sat Apr 24 21:05:09 UTC 2010
Author: kib
Date: Sat Apr 24 21:05:08 2010
New Revision: 207160
URL: http://svn.freebsd.org/changeset/base/207160
Log:
IFC
Added:
user/kib/vm6/lib/libpkg/
- copied from r207158, head/lib/libpkg/
user/kib/vm6/sbin/fsck_ffs/suj.c
- copied unchanged from r207158, head/sbin/fsck_ffs/suj.c
user/kib/vm6/tools/regression/bin/sh/expansion/trim3.0
- copied unchanged from r207158, head/tools/regression/bin/sh/expansion/trim3.0
user/kib/vm6/tools/test/testfloat/
- copied from r207158, head/tools/test/testfloat/
Deleted:
user/kib/vm6/sys/cddl/dev/cyclic/amd64/
user/kib/vm6/usr.sbin/pkg_install/lib/
Modified:
user/kib/vm6/Makefile.inc1
user/kib/vm6/bin/ln/ln.c
user/kib/vm6/contrib/tzdata/africa
user/kib/vm6/contrib/tzdata/asia
user/kib/vm6/contrib/tzdata/southamerica
user/kib/vm6/etc/devd.conf
user/kib/vm6/etc/devd/uath.conf
user/kib/vm6/etc/mtree/BSD.usr.dist
user/kib/vm6/include/stdlib.h
user/kib/vm6/lib/Makefile
user/kib/vm6/lib/libc/stdlib/realpath.3
user/kib/vm6/lib/libc/stdlib/realpath.c
user/kib/vm6/lib/libufs/Makefile
user/kib/vm6/lib/libufs/cgroup.c
user/kib/vm6/lib/libufs/inode.c
user/kib/vm6/lib/libufs/libufs.h
user/kib/vm6/lib/libufs/sblock.c
user/kib/vm6/lib/libufs/type.c
user/kib/vm6/lib/libz/ChangeLog
user/kib/vm6/lib/libz/README
user/kib/vm6/lib/libz/crc32.c
user/kib/vm6/lib/libz/deflate.c
user/kib/vm6/lib/libz/deflate.h
user/kib/vm6/lib/libz/gzguts.h
user/kib/vm6/lib/libz/gzlib.c
user/kib/vm6/lib/libz/inffast.c
user/kib/vm6/lib/libz/inffast.h
user/kib/vm6/lib/libz/inftrees.c
user/kib/vm6/lib/libz/inftrees.h
user/kib/vm6/lib/libz/trees.c
user/kib/vm6/lib/libz/trees.h
user/kib/vm6/lib/libz/zconf.h
user/kib/vm6/lib/libz/zlib.3
user/kib/vm6/lib/libz/zlib.h
user/kib/vm6/lib/libz/zutil.c
user/kib/vm6/lib/libz/zutil.h
user/kib/vm6/release/powerpc/boot_crunch.conf
user/kib/vm6/sbin/devd/devd.conf.5
user/kib/vm6/sbin/dumpfs/dumpfs.c
user/kib/vm6/sbin/fsck_ffs/Makefile
user/kib/vm6/sbin/fsck_ffs/fsck.h
user/kib/vm6/sbin/fsck_ffs/gjournal.c
user/kib/vm6/sbin/fsck_ffs/main.c
user/kib/vm6/sbin/fsck_ffs/pass5.c
user/kib/vm6/sbin/fsdb/fsdb.c
user/kib/vm6/sbin/fsdb/fsdbutil.c
user/kib/vm6/sbin/geom/class/part/geom_part.c
user/kib/vm6/sbin/geom/class/part/gpart.8
user/kib/vm6/sbin/hastctl/Makefile
user/kib/vm6/sbin/hastd/Makefile
user/kib/vm6/sbin/hastd/hast_proto.c
user/kib/vm6/sbin/ping6/ping6.8
user/kib/vm6/sbin/ping6/ping6.c
user/kib/vm6/sbin/tunefs/Makefile
user/kib/vm6/sbin/tunefs/tunefs.8
user/kib/vm6/sbin/tunefs/tunefs.c
user/kib/vm6/share/examples/Makefile
user/kib/vm6/share/misc/committers-src.dot
user/kib/vm6/share/mk/bsd.cpu.mk
user/kib/vm6/share/mk/bsd.libnames.mk
user/kib/vm6/sys/amd64/amd64/bpf_jit_machdep.c
user/kib/vm6/sys/amd64/amd64/bpf_jit_machdep.h
user/kib/vm6/sys/amd64/amd64/local_apic.c
user/kib/vm6/sys/amd64/amd64/pmap.c
user/kib/vm6/sys/amd64/conf/GENERIC
user/kib/vm6/sys/amd64/ia32/ia32_signal.c
user/kib/vm6/sys/amd64/include/proc.h
user/kib/vm6/sys/arm/arm/pmap.c
user/kib/vm6/sys/arm/conf/DB-78XXX
user/kib/vm6/sys/arm/conf/DB-88F5XXX
user/kib/vm6/sys/arm/conf/DB-88F6XXX
user/kib/vm6/sys/arm/conf/HL200
user/kib/vm6/sys/arm/conf/KB920X
user/kib/vm6/sys/arm/conf/LN2410SBC
user/kib/vm6/sys/arm/conf/SHEEVAPLUG
user/kib/vm6/sys/arm/include/proc.h
user/kib/vm6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
user/kib/vm6/sys/cddl/dev/cyclic/i386/cyclic_machdep.c
user/kib/vm6/sys/compat/freebsd32/freebsd32.h
user/kib/vm6/sys/compat/freebsd32/freebsd32_misc.c
user/kib/vm6/sys/compat/freebsd32/freebsd32_util.h
user/kib/vm6/sys/conf/files.sparc64
user/kib/vm6/sys/conf/files.sun4v
user/kib/vm6/sys/conf/kern.pre.mk
user/kib/vm6/sys/conf/kmod.mk
user/kib/vm6/sys/dev/age/if_age.c
user/kib/vm6/sys/dev/alc/if_alc.c
user/kib/vm6/sys/dev/ale/if_ale.c
user/kib/vm6/sys/dev/drm/ati_pcigart.c
user/kib/vm6/sys/dev/drm/drmP.h
user/kib/vm6/sys/dev/drm/drm_bufs.c
user/kib/vm6/sys/dev/drm/drm_context.c
user/kib/vm6/sys/dev/drm/drm_drv.c
user/kib/vm6/sys/dev/drm/drm_hashtab.c
user/kib/vm6/sys/dev/drm/drm_memory.c
user/kib/vm6/sys/dev/drm/drm_mm.c
user/kib/vm6/sys/dev/drm/drm_scatter.c
user/kib/vm6/sys/dev/drm/drm_sman.c
user/kib/vm6/sys/dev/drm/drm_sysctl.c
user/kib/vm6/sys/dev/drm/drm_vm.c
user/kib/vm6/sys/dev/drm/i915_dma.c
user/kib/vm6/sys/dev/drm/mach64_dma.c
user/kib/vm6/sys/dev/drm/mga_dma.c
user/kib/vm6/sys/dev/drm/mga_warp.c
user/kib/vm6/sys/dev/drm/r128_cce.c
user/kib/vm6/sys/dev/drm/r128_state.c
user/kib/vm6/sys/dev/drm/r600_blit.c
user/kib/vm6/sys/dev/drm/r600_cp.c
user/kib/vm6/sys/dev/drm/radeon_cp.c
user/kib/vm6/sys/dev/drm/radeon_cs.c
user/kib/vm6/sys/dev/drm/radeon_state.c
user/kib/vm6/sys/dev/drm/savage_bci.c
user/kib/vm6/sys/dev/drm/via_dma.c
user/kib/vm6/sys/dev/drm/via_map.c
user/kib/vm6/sys/dev/drm/via_mm.c
user/kib/vm6/sys/dev/fxp/if_fxp.c
user/kib/vm6/sys/dev/iwn/if_iwn.c
user/kib/vm6/sys/dev/msk/if_msk.c
user/kib/vm6/sys/dev/nfe/if_nfe.c
user/kib/vm6/sys/dev/sge/if_sge.c
user/kib/vm6/sys/dev/sis/if_sis.c
user/kib/vm6/sys/dev/sound/usb/uaudio.c
user/kib/vm6/sys/dev/usb/controller/ehci.c
user/kib/vm6/sys/dev/usb/controller/uhci.c
user/kib/vm6/sys/dev/usb/controller/uss820dci.c
user/kib/vm6/sys/dev/usb/input/atp.c
user/kib/vm6/sys/dev/usb/input/uhid.c
user/kib/vm6/sys/dev/usb/input/ukbd.c
user/kib/vm6/sys/dev/usb/input/ums.c
user/kib/vm6/sys/dev/usb/misc/udbp.c
user/kib/vm6/sys/dev/usb/net/if_aue.c
user/kib/vm6/sys/dev/usb/net/if_axe.c
user/kib/vm6/sys/dev/usb/net/if_cdce.c
user/kib/vm6/sys/dev/usb/net/if_cue.c
user/kib/vm6/sys/dev/usb/net/if_kue.c
user/kib/vm6/sys/dev/usb/net/if_rue.c
user/kib/vm6/sys/dev/usb/net/if_udav.c
user/kib/vm6/sys/dev/usb/serial/u3g.c
user/kib/vm6/sys/dev/usb/serial/ubsa.c
user/kib/vm6/sys/dev/usb/serial/ubser.c
user/kib/vm6/sys/dev/usb/serial/uchcom.c
user/kib/vm6/sys/dev/usb/serial/uftdi.c
user/kib/vm6/sys/dev/usb/serial/ulpt.c
user/kib/vm6/sys/dev/usb/serial/umodem.c
user/kib/vm6/sys/dev/usb/serial/umoscom.c
user/kib/vm6/sys/dev/usb/serial/uplcom.c
user/kib/vm6/sys/dev/usb/serial/usb_serial.c
user/kib/vm6/sys/dev/usb/serial/uslcom.c
user/kib/vm6/sys/dev/usb/serial/uvisor.c
user/kib/vm6/sys/dev/usb/serial/uvscom.c
user/kib/vm6/sys/dev/usb/storage/umass.c
user/kib/vm6/sys/dev/usb/storage/urio.c
user/kib/vm6/sys/dev/usb/storage/ustorage_fs.c
user/kib/vm6/sys/dev/usb/usb_compat_linux.c
user/kib/vm6/sys/dev/usb/usb_debug.h
user/kib/vm6/sys/dev/usb/usb_dev.c
user/kib/vm6/sys/dev/usb/usb_device.c
user/kib/vm6/sys/dev/usb/usb_device.h
user/kib/vm6/sys/dev/usb/usb_freebsd.h
user/kib/vm6/sys/dev/usb/usb_generic.c
user/kib/vm6/sys/dev/usb/usb_hub.c
user/kib/vm6/sys/dev/usb/usb_request.c
user/kib/vm6/sys/dev/usb/usb_transfer.c
user/kib/vm6/sys/dev/usb/usb_transfer.h
user/kib/vm6/sys/dev/usb/wlan/if_rum.c
user/kib/vm6/sys/dev/usb/wlan/if_run.c
user/kib/vm6/sys/dev/usb/wlan/if_ural.c
user/kib/vm6/sys/dev/usb/wlan/if_zyd.c
user/kib/vm6/sys/fs/nfs/nfs_var.h
user/kib/vm6/sys/fs/nfsclient/nfs.h
user/kib/vm6/sys/fs/nfsclient/nfs_clbio.c
user/kib/vm6/sys/fs/nfsclient/nfs_clnfsiod.c
user/kib/vm6/sys/fs/nfsclient/nfs_clnode.c
user/kib/vm6/sys/fs/nfsclient/nfs_clrpcops.c
user/kib/vm6/sys/fs/nfsclient/nfs_clstate.c
user/kib/vm6/sys/fs/nfsclient/nfs_clvnops.c
user/kib/vm6/sys/fs/pseudofs/pseudofs_vnops.c
user/kib/vm6/sys/geom/geom_subr.c
user/kib/vm6/sys/geom/part/g_part.c
user/kib/vm6/sys/geom/part/g_part_apm.c
user/kib/vm6/sys/geom/part/g_part_bsd.c
user/kib/vm6/sys/geom/part/g_part_gpt.c
user/kib/vm6/sys/geom/part/g_part_if.m
user/kib/vm6/sys/geom/part/g_part_mbr.c
user/kib/vm6/sys/geom/part/g_part_pc98.c
user/kib/vm6/sys/geom/part/g_part_vtoc8.c
user/kib/vm6/sys/i386/conf/GENERIC
user/kib/vm6/sys/i386/conf/XBOX
user/kib/vm6/sys/i386/i386/bpf_jit_machdep.c
user/kib/vm6/sys/i386/i386/bpf_jit_machdep.h
user/kib/vm6/sys/i386/i386/local_apic.c
user/kib/vm6/sys/i386/i386/pmap.c
user/kib/vm6/sys/i386/include/proc.h
user/kib/vm6/sys/i386/xen/pmap.c
user/kib/vm6/sys/ia64/conf/GENERIC
user/kib/vm6/sys/ia64/ia64/pmap.c
user/kib/vm6/sys/ia64/include/proc.h
user/kib/vm6/sys/kern/kern_clock.c
user/kib/vm6/sys/kern/kern_descrip.c
user/kib/vm6/sys/kern/kern_proc.c
user/kib/vm6/sys/kern/kern_shutdown.c
user/kib/vm6/sys/kern/subr_bus.c
user/kib/vm6/sys/kern/vfs_bio.c
user/kib/vm6/sys/kern/vfs_cache.c
user/kib/vm6/sys/kern/vfs_subr.c
user/kib/vm6/sys/mips/conf/SENTRY5
user/kib/vm6/sys/mips/conf/SWARM
user/kib/vm6/sys/mips/conf/XLR
user/kib/vm6/sys/mips/include/proc.h
user/kib/vm6/sys/mips/include/vmparam.h
user/kib/vm6/sys/mips/mips/exception.S
user/kib/vm6/sys/mips/mips/pmap.c
user/kib/vm6/sys/mips/mips/tick.c
user/kib/vm6/sys/mips/sibyte/sb_machdep.c
user/kib/vm6/sys/modules/cyclic/Makefile
user/kib/vm6/sys/netinet/ip_input.c
user/kib/vm6/sys/netinet/sctp_asconf.c
user/kib/vm6/sys/netinet/sctp_indata.c
user/kib/vm6/sys/netinet/sctputil.c
user/kib/vm6/sys/pc98/cbus/clock.c
user/kib/vm6/sys/pc98/conf/GENERIC
user/kib/vm6/sys/powerpc/aim/mmu_oea.c
user/kib/vm6/sys/powerpc/aim/mmu_oea64.c
user/kib/vm6/sys/powerpc/booke/pmap.c
user/kib/vm6/sys/powerpc/conf/GENERIC
user/kib/vm6/sys/powerpc/conf/MPC85XX
user/kib/vm6/sys/powerpc/include/proc.h
user/kib/vm6/sys/powerpc/powerpc/mmu_if.m
user/kib/vm6/sys/powerpc/powerpc/pmap_dispatch.c
user/kib/vm6/sys/sparc64/conf/GENERIC
user/kib/vm6/sys/sparc64/include/proc.h
user/kib/vm6/sys/sparc64/sparc64/pmap.c
user/kib/vm6/sys/sun4v/conf/GENERIC
user/kib/vm6/sys/sun4v/include/proc.h
user/kib/vm6/sys/sun4v/sun4v/pmap.c
user/kib/vm6/sys/sys/buf.h
user/kib/vm6/sys/sys/dtrace_bsd.h
user/kib/vm6/sys/sys/mount.h
user/kib/vm6/sys/sys/thr.h
user/kib/vm6/sys/sys/user.h
user/kib/vm6/sys/ufs/ffs/ffs_alloc.c
user/kib/vm6/sys/ufs/ffs/ffs_balloc.c
user/kib/vm6/sys/ufs/ffs/ffs_extern.h
user/kib/vm6/sys/ufs/ffs/ffs_inode.c
user/kib/vm6/sys/ufs/ffs/ffs_snapshot.c
user/kib/vm6/sys/ufs/ffs/ffs_softdep.c
user/kib/vm6/sys/ufs/ffs/ffs_subr.c
user/kib/vm6/sys/ufs/ffs/ffs_vfsops.c
user/kib/vm6/sys/ufs/ffs/ffs_vnops.c
user/kib/vm6/sys/ufs/ffs/fs.h
user/kib/vm6/sys/ufs/ffs/softdep.h
user/kib/vm6/sys/ufs/ufs/dinode.h
user/kib/vm6/sys/ufs/ufs/inode.h
user/kib/vm6/sys/ufs/ufs/ufs_dirhash.c
user/kib/vm6/sys/ufs/ufs/ufs_extern.h
user/kib/vm6/sys/ufs/ufs/ufs_lookup.c
user/kib/vm6/sys/ufs/ufs/ufs_vnops.c
user/kib/vm6/sys/ufs/ufs/ufsmount.h
user/kib/vm6/sys/vm/pmap.h
user/kib/vm6/sys/vm/vm_mmap.c
user/kib/vm6/sys/vm/vm_pageout.c
user/kib/vm6/sys/x86/isa/clock.c
user/kib/vm6/tools/regression/bpf/bpf_filter/tests/test0083.h
user/kib/vm6/tools/test/README
user/kib/vm6/tools/tools/netrate/tcpp/tcpp_client.c
user/kib/vm6/tools/tools/netrate/tcpp/tcpp_server.c
user/kib/vm6/usr.bin/stat/stat.1
user/kib/vm6/usr.bin/stat/stat.c
user/kib/vm6/usr.sbin/config/configvers.h
user/kib/vm6/usr.sbin/config/mkmakefile.c
user/kib/vm6/usr.sbin/makefs/ffs/ffs_bswap.c
user/kib/vm6/usr.sbin/pkg_install/Makefile
user/kib/vm6/usr.sbin/pkg_install/Makefile.inc
user/kib/vm6/usr.sbin/pkg_install/add/Makefile
user/kib/vm6/usr.sbin/pkg_install/add/extract.c
user/kib/vm6/usr.sbin/pkg_install/add/futil.c
user/kib/vm6/usr.sbin/pkg_install/add/main.c
user/kib/vm6/usr.sbin/pkg_install/add/perform.c
user/kib/vm6/usr.sbin/pkg_install/create/Makefile
user/kib/vm6/usr.sbin/pkg_install/create/main.c
user/kib/vm6/usr.sbin/pkg_install/create/perform.c
user/kib/vm6/usr.sbin/pkg_install/create/pl.c
user/kib/vm6/usr.sbin/pkg_install/delete/Makefile
user/kib/vm6/usr.sbin/pkg_install/delete/main.c
user/kib/vm6/usr.sbin/pkg_install/delete/perform.c
user/kib/vm6/usr.sbin/pkg_install/info/Makefile
user/kib/vm6/usr.sbin/pkg_install/info/info.h
user/kib/vm6/usr.sbin/pkg_install/info/main.c
user/kib/vm6/usr.sbin/pkg_install/info/perform.c
user/kib/vm6/usr.sbin/pkg_install/info/show.c
user/kib/vm6/usr.sbin/pkg_install/updating/Makefile
user/kib/vm6/usr.sbin/pkg_install/updating/main.c
user/kib/vm6/usr.sbin/pkg_install/version/Makefile
user/kib/vm6/usr.sbin/pkg_install/version/main.c
user/kib/vm6/usr.sbin/pkg_install/version/perform.c
user/kib/vm6/usr.sbin/pmcstat/pmcpl_calltree.c
user/kib/vm6/usr.sbin/sade/disks.c
user/kib/vm6/usr.sbin/sade/menus.c
user/kib/vm6/usr.sbin/sysinstall/disks.c
user/kib/vm6/usr.sbin/sysinstall/menus.c
user/kib/vm6/usr.sbin/sysinstall/tcpip.c
Directory Properties:
user/kib/vm6/ (props changed)
user/kib/vm6/contrib/gnu-sort/ (props changed)
user/kib/vm6/contrib/tzcode/stdtime/ (props changed)
user/kib/vm6/contrib/tzcode/zic/ (props changed)
user/kib/vm6/contrib/tzdata/ (props changed)
user/kib/vm6/lib/libz/ (props changed)
user/kib/vm6/sys/contrib/x86emu/ (props changed)
user/kib/vm6/sys/mips/rmi/debug.h (props changed)
user/kib/vm6/sys/mips/rmi/msgring.h (props changed)
user/kib/vm6/sys/mips/rmi/shared_structs.h (props changed)
user/kib/vm6/sys/mips/rmi/shared_structs_func.h (props changed)
user/kib/vm6/sys/mips/rmi/shared_structs_offsets.h (props changed)
Modified: user/kib/vm6/Makefile.inc1
==============================================================================
--- user/kib/vm6/Makefile.inc1 Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/Makefile.inc1 Sat Apr 24 21:05:08 2010 (r207160)
@@ -259,7 +259,7 @@ WMAKEENV= ${CROSSENV} \
VERSION="${VERSION}" \
INSTALL="sh ${.CURDIR}/tools/install.sh" \
PATH=${TMPPATH}
-.if ${MK_CDDL} == "no" || defined(NO_CTF)
+.if ${MK_CDDL} == "no"
WMAKEENV+= NO_CTF=1
.endif
WMAKE= ${WMAKEENV} ${MAKE} -f Makefile.inc1 DESTDIR=${WORLDTMP}
@@ -780,7 +780,7 @@ buildkernel:
@echo "--------------------------------------------------------------"
cd ${KRNLOBJDIR}/${_kernel}; \
MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \
- ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \
+ ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS \
-f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile
# XXX - Gratuitously builds aicasm in the ``makeoptions NO_MODULES'' case.
.if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules)
@@ -1111,7 +1111,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1
${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \
${_kerberos5_lib_libroken} \
lib/libbz2 lib/libcom_err lib/libcrypt \
- lib/libexpat \
+ lib/libexpat lib/libfetch \
${_lib_libgssapi} ${_lib_libipx} \
lib/libkiconv lib/libkvm lib/libmd \
lib/ncurses/ncurses lib/ncurses/ncursesw \
@@ -1138,6 +1138,7 @@ _cddl_lib= cddl/lib
_secure_lib_libcrypto= secure/lib/libcrypto
_secure_lib_libssl= secure/lib/libssl
lib/libradius__L secure/lib/libssl__L: secure/lib/libcrypto__L
+lib/libfetch__L: secure/lib/libcrypto__L secure/lib/libssl__L lib/libmd__L
.if ${MK_OPENSSH} != "no"
_secure_lib_libssh= secure/lib/libssh
secure/lib/libssh__L: lib/libz__L secure/lib/libcrypto__L lib/libcrypt__L
@@ -1173,7 +1174,7 @@ _lib_libypclnt= lib/libypclnt
.endif
.if ${MK_OPENSSL} == "no"
-lib/libradius__L: lib/libmd__L
+lib/libfetch__L lib/libradius__L: lib/libmd__L
.endif
.for _lib in ${_prereq_libs}
Modified: user/kib/vm6/bin/ln/ln.c
==============================================================================
--- user/kib/vm6/bin/ln/ln.c Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/bin/ln/ln.c Sat Apr 24 21:05:08 2010 (r207160)
@@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$");
#include <err.h>
#include <errno.h>
#include <fcntl.h>
+#include <libgen.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
@@ -226,6 +227,7 @@ linkit(const char *source, const char *t
int ch, exists, first;
char path[PATH_MAX];
char wbuf[PATH_MAX];
+ char bbuf[PATH_MAX];
if (!sflag) {
/* If source doesn't exist, quit now. */
@@ -248,11 +250,9 @@ linkit(const char *source, const char *t
if (isdir ||
(lstat(target, &sb) == 0 && S_ISDIR(sb.st_mode)) ||
(!hflag && stat(target, &sb) == 0 && S_ISDIR(sb.st_mode))) {
- if ((p = strrchr(source, '/')) == NULL)
- p = source;
- else
- ++p;
- if (snprintf(path, sizeof(path), "%s/%s", target, p) >=
+ if (strlcpy(bbuf, source, sizeof(bbuf)) >= sizeof(bbuf) ||
+ (p = basename(bbuf)) == NULL ||
+ snprintf(path, sizeof(path), "%s/%s", target, p) >=
(ssize_t)sizeof(path)) {
errno = ENAMETOOLONG;
warn("%s", source);
@@ -276,15 +276,14 @@ linkit(const char *source, const char *t
* absolute path of the source, by appending `source'
* to the parent directory of the target.
*/
- p = strrchr(target, '/');
- if (p != NULL)
- p++;
- else
- p = target;
- (void)snprintf(wbuf, sizeof(wbuf), "%.*s%s",
- (int)(p - target), target, source);
- if (stat(wbuf, &sb) != 0)
- warn("warning: %s", source);
+ strlcpy(bbuf, target, sizeof(bbuf));
+ p = dirname(bbuf);
+ if (p != NULL) {
+ (void)snprintf(wbuf, sizeof(wbuf), "%s/%s",
+ p, source);
+ if (stat(wbuf, &sb) != 0)
+ warn("warning: %s", source);
+ }
}
}
Modified: user/kib/vm6/contrib/tzdata/africa
==============================================================================
--- user/kib/vm6/contrib/tzdata/africa Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/contrib/tzdata/africa Sat Apr 24 21:05:08 2010 (r207160)
@@ -1,5 +1,5 @@
# <pre>
-# @(#)africa 8.23
+# @(#)africa 8.26
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
@@ -680,6 +680,21 @@ Zone Indian/Mayotte 3:00:56 - LMT 1911 J
# http://www.worldtimezone.com/dst_news/dst_news_morocco03.html
# </a>
+# From Steffen Thorsen (2010-04-13):
+# Several news media in Morocco report that the Ministry of Modernization
+# of Public Sectors has announced that Morocco will have DST from
+# 2010-05-02 to 2010-08-08.
+#
+# Example:
+# <a href="http://www.lavieeco.com/actualites/4099-le-maroc-passera-a-l-heure-d-ete-gmt1-le-2-mai.html">
+# http://www.lavieeco.com/actualites/4099-le-maroc-passera-a-l-heure-d-ete-gmt1-le-2-mai.html
+# </a>
+# (French)
+# Our page:
+# <a href="http://www.timeanddate.com/news/time/morocco-starts-dst-2010.html">
+# http://www.timeanddate.com/news/time/morocco-starts-dst-2010.html
+# </a>
+
# RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Morocco 1939 only - Sep 12 0:00 1:00 S
@@ -701,6 +716,8 @@ Rule Morocco 2008 only - Jun 1 0:00 1:
Rule Morocco 2008 only - Sep 1 0:00 0 -
Rule Morocco 2009 only - Jun 1 0:00 1:00 S
Rule Morocco 2009 only - Aug 21 0:00 0 -
+Rule Morocco 2010 only - May 2 0:00 1:00 S
+Rule Morocco 2010 only - Aug 8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Casablanca -0:30:20 - LMT 1913 Oct 26
0:00 Morocco WE%sT 1984 Mar 16
@@ -942,6 +959,24 @@ Zone Africa/Lome 0:04:52 - LMT 1893
# Therefore, the standard time will be kept unchanged the whole year long."
# So foregoing DST seems to be an exception (albeit one that may be repeated in the future).
+# From Alexander Krivenyshev (2010-03-27):
+# According to some news reports Tunis confirmed not to use DST in 2010
+#
+# (translation):
+# "The Tunisian government has decided to abandon DST, which was scheduled on
+# Sunday...
+# Tunisian authorities had suspended the DST for the first time last year also
+# coincided with the month of Ramadan..."
+#
+# (in Arabic)
+# <a href="http://www.moheet.com/show_news.aspx?nid=358861&pg=1">
+# http://www.moheet.com/show_news.aspx?nid=358861&pg=1
+# <a href="http://www.almadenahnews.com/newss/news.php?c=118&id=38036">
+# http://www.almadenahnews.com/newss/news.php?c=118&id=38036
+# or
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_tunis02.html">
+# http://www.worldtimezone.com/dst_news/dst_news_tunis02.html
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Tunisia 1939 only - Apr 15 23:00s 1:00 S
Rule Tunisia 1939 only - Nov 18 23:00s 0 -
@@ -968,8 +1003,7 @@ Rule Tunisia 2005 only - May 1 0:00s 1
Rule Tunisia 2005 only - Sep 30 1:00s 0 -
Rule Tunisia 2006 2008 - Mar lastSun 2:00s 1:00 S
Rule Tunisia 2006 2008 - Oct lastSun 2:00s 0 -
-Rule Tunisia 2010 max - Mar lastSun 2:00s 1:00 S
-Rule Tunisia 2010 max - Oct lastSun 2:00s 0 -
+
# Shanks & Pottenger give 0:09:20 for Paris Mean Time; go with Howse's
# more precise 0:09:21.
# Shanks & Pottenger say the 1911 switch was on Mar 9; go with Howse's Mar 11.
Modified: user/kib/vm6/contrib/tzdata/asia
==============================================================================
--- user/kib/vm6/contrib/tzdata/asia Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/contrib/tzdata/asia Sat Apr 24 21:05:08 2010 (r207160)
@@ -1,4 +1,4 @@
-# @(#)asia 8.58
+# @(#)asia 8.60
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
@@ -566,6 +566,28 @@ Zone Asia/Hong_Kong 7:36:36 - LMT 1904 O
# was still controlled by Japan. This is hard to believe, but we don't
# have any other information.
+# From smallufo (2010-04-03):
+# According to Taiwan's CWB,
+# <a href="http://www.cwb.gov.tw/V6/astronomy/cdata/summert.htm">
+# http://www.cwb.gov.tw/V6/astronomy/cdata/summert.htm
+# </a>
+# Taipei has DST in 1979 between July 1st and Sep 30.
+
+# From Arthur David Olson (2010-04-07):
+# Here's Google's translation of the table at the bottom of the "summert.htm" page:
+# Decade Name Start and end date
+# Republic of China 34 years to 40 years (AD 1945-1951 years) Summer Time May 1 to September 30
+# 41 years of the Republic of China (AD 1952) Daylight Saving Time March 1 to October 31
+# Republic of China 42 years to 43 years (AD 1953-1954 years) Daylight Saving Time April 1 to October 31
+# In the 44 years to 45 years (AD 1955-1956 years) Daylight Saving Time April 1 to September 30
+# Republic of China 46 years to 48 years (AD 1957-1959) Summer Time April 1 to September 30
+# Republic of China 49 years to 50 years (AD 1960-1961) Summer Time June 1 to September 30
+# Republic of China 51 years to 62 years (AD 1962-1973 years) Stop Summer Time
+# Republic of China 63 years to 64 years (1974-1975 AD) Daylight Saving Time April 1 to September 30
+# Republic of China 65 years to 67 years (1976-1978 AD) Stop Daylight Saving Time
+# Republic of China 68 years (AD 1979) Daylight Saving Time July 1 to September 30
+# Republic of China since 69 years (AD 1980) Stop Daylight Saving Time
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Taiwan 1945 1951 - May 1 0:00 1:00 D
Rule Taiwan 1945 1951 - Oct 1 0:00 0 S
@@ -576,8 +598,9 @@ Rule Taiwan 1955 1961 - Oct 1 0:00 0 S
Rule Taiwan 1960 1961 - Jun 1 0:00 1:00 D
Rule Taiwan 1974 1975 - Apr 1 0:00 1:00 D
Rule Taiwan 1974 1975 - Oct 1 0:00 0 S
-Rule Taiwan 1980 only - Jun 30 0:00 1:00 D
-Rule Taiwan 1980 only - Sep 30 0:00 0 S
+Rule Taiwan 1979 only - Jun 30 0:00 1:00 D
+Rule Taiwan 1979 only - Sep 30 0:00 0 S
+
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Taipei 8:06:00 - LMT 1896 # or Taibei or T'ai-pei
8:00 Taiwan C%sT
@@ -1912,13 +1935,35 @@ Zone Asia/Muscat 3:54:20 - LMT 1920
# [T]he German Consulate General in Karachi reported me today that Pakistan
# will go back to standard time on 1st of November.
+# From Steffen Thorsen (2010-03-26):
+# Steffen Thorsen wrote:
+# > On Thursday (2010-03-25) it was announced that DST would start in
+# > Pakistan on 2010-04-01.
+# >
+# > Then today, the president said that they might have to revert the
+# > decision if it is not supported by the parliament. So at the time
+# > being, it seems unclear if DST will be actually observed or not - but
+# > April 1 could be a more likely date than April 15.
+# Now, it seems that the decision to not observe DST in final:
+#
+# "Govt Withdraws Plan To Advance Clocks"
+# <a href="http://www.apakistannews.com/govt-withdraws-plan-to-advance-clocks-172041">
+# http://www.apakistannews.com/govt-withdraws-plan-to-advance-clocks-172041
+# </a>
+#
+# "People laud PM's announcement to end DST"
+# <a href="http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=99374&Itemid=2">
+# http://www.app.com.pk/en_/index.php?option=com_content&task=view&id=99374&Itemid=2
+# </a>
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Pakistan 2002 only - Apr Sun>=2 0:01 1:00 S
Rule Pakistan 2002 only - Oct Sun>=2 0:01 0 -
Rule Pakistan 2008 only - Jun 1 0:00 1:00 S
Rule Pakistan 2008 only - Nov 1 0:00 0 -
-Rule Pakistan 2009 max - Apr 15 0:00 1:00 S
-Rule Pakistan 2009 max - Nov 1 0:00 0 -
+Rule Pakistan 2009 only - Apr 15 0:00 1:00 S
+Rule Pakistan 2009 only - Nov 1 0:00 0 -
+
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Karachi 4:28:12 - LMT 1907
5:30 - IST 1942 Sep
Modified: user/kib/vm6/contrib/tzdata/southamerica
==============================================================================
--- user/kib/vm6/contrib/tzdata/southamerica Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/contrib/tzdata/southamerica Sat Apr 24 21:05:08 2010 (r207160)
@@ -1,5 +1,5 @@
# <pre>
-# @(#)southamerica 8.43
+# @(#)southamerica 8.44
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
@@ -437,6 +437,27 @@ Rule Arg 2008 only - Oct Sun>=15 0:00 1:
# of the country calls it "ART".
# ...
+# From Alexander Krivenyshev (2010-04-09):
+# According to news reports from El Diario de la Republica Province San
+# Luis, Argentina (standard time UTC-04) will keep Daylight Saving Time
+# after April 11, 2010--will continue to have same time as rest of
+# Argentina (UTC-3) (no DST).
+#
+# Confirmaron la prórroga del huso horario de verano (Spanish)
+# <a href="http://www.eldiariodelarepublica.com/index.php?option=com_content&task=view&id=29383&Itemid=9">
+# http://www.eldiariodelarepublica.com/index.php?option=com_content&task=view&id=29383&Itemid=9
+# </a>
+# or (some English translation):
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_argentina08.html">
+# http://www.worldtimezone.com/dst_news/dst_news_argentina08.html
+# </a>
+
+# From Mariano Absatz (2010-04-12):
+# yes...I can confirm this...and given that San Luis keeps calling
+# UTC-03:00 "summer time", we should't just let San Luis go back to "Arg"
+# rules...San Luis is still using "Western ARgentina Time" and it got
+# stuck on Summer daylight savings time even though the summer is over.
+
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
#
# Buenos Aires (BA), Capital Federal (CF),
@@ -570,8 +591,8 @@ Zone America/Argentina/Mendoza -4:35:16
#
# San Luis (SL)
-Rule SanLuis 2008 max - Mar Sun>=8 0:00 0 -
-Rule SanLuis 2007 max - Oct Sun>=8 0:00 1:00 S
+Rule SanLuis 2008 2009 - Mar Sun>=8 0:00 0 -
+Rule SanLuis 2007 2009 - Oct Sun>=8 0:00 1:00 S
Zone America/Argentina/San_Luis -4:25:24 - LMT 1894 Oct 31
-4:16:48 - CMT 1920 May
Modified: user/kib/vm6/etc/devd.conf
==============================================================================
--- user/kib/vm6/etc/devd.conf Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/etc/devd.conf Sat Apr 24 21:05:08 2010 (r207160)
@@ -138,12 +138,14 @@ attach 100 {
# This entry starts the ColdSync tool in daemon mode. Make sure you have an up
# to date /usr/local/etc/palms. We override the 'listen' settings for port and
# type in /usr/local/etc/coldsync.conf.
-attach 100 {
- device-name "ugen[0-9]+";
- match "vendor" "0x082d";
- match "product" "0x0100";
- match "release" "0x0100";
- action "/usr/local/bin/coldsync -md -p /dev/$device-name -t usb";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x082d";
+ match "product" "0x0100";
+ match "release" "0x0100";
+ action "/usr/local/bin/coldsync -md -p /dev/$cdev -t usb";
};
#
Modified: user/kib/vm6/etc/devd/uath.conf
==============================================================================
--- user/kib/vm6/etc/devd/uath.conf Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/etc/devd/uath.conf Sat Apr 24 21:05:08 2010 (r207160)
@@ -4,117 +4,143 @@
# Accton
# SMCWUSB-G and SMCWUSBT-G2
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x083a";
- match "product" "(0x4505|0x4507)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x083a";
+ match "product" "(0x4505|0x4507)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# Atheros Communications
# AR5523
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x168c";
- match "product" "0x0002";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x168c";
+ match "product" "0x0002";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# Atheros Communications
# AR5523
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x0cf3";
- match "product" "(0x0002|0x0004|0x0006)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0cf3";
+ match "product" "(0x0002|0x0004|0x0006)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# Conceptronic
# AR5523
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x0d8e";
- match "product" "(0x7802|0x7812)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0d8e";
+ match "product" "(0x7802|0x7812)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# D-Link
# DWL-AG132, DWL-G132 and DWL-AG122
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x2001";
- match "product" "(0x3a01|0x3a03|0x3a05)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x2001";
+ match "product" "(0x3a01|0x3a03|0x3a05)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# D-Link
# DWA-120
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x07d1";
- match "product" "0x3a0c";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x07d1";
+ match "product" "0x3a0c";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# Gigaset
# SMCWUSBT-G
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x1690";
- match "product" "(0x0711|0x0713)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x1690";
+ match "product" "(0x0711|0x0713)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# Global Sun Technology
# AR5523
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x16ab";
- match "product" "(0x7802|0x7812)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x16ab";
+ match "product" "(0x7802|0x7812)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# BayNETGEAR
# WG111U
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x0846";
- match "product" "0x4301";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0846";
+ match "product" "0x4301";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# Netgear
# WG111T and WPN111
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x1385";
- match "product" "(0x4251|0x5f01)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x1385";
+ match "product" "(0x4251|0x5f01)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# U-MEDIA Communications
# TEW-444UB and AR5523
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x157e";
- match "product" "(0x3007|0x3206)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x157e";
+ match "product" "(0x3007|0x3206)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# Wistron NeWeb
# AR5523
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x1435";
- match "product" "(0x0827|0x0829)";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x1435";
+ match "product" "(0x0827|0x0829)";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
# Z-Com
# AR5523
-attach 100 {
- device-name "ugen[0-9.]+";
- match "vendor" "0x0cde";
- match "product" "0x0013";
- action "/usr/sbin/uathload -d /dev/$device-name";
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0cde";
+ match "product" "0x0013";
+ action "/usr/sbin/uathload -d /dev/$cdev";
};
Modified: user/kib/vm6/etc/mtree/BSD.usr.dist
==============================================================================
--- user/kib/vm6/etc/mtree/BSD.usr.dist Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/etc/mtree/BSD.usr.dist Sat Apr 24 21:05:08 2010 (r207160)
@@ -219,6 +219,8 @@
..
ibcs2
..
+ indent
+ ..
ipfilter
..
ipfw
Modified: user/kib/vm6/include/stdlib.h
==============================================================================
--- user/kib/vm6/include/stdlib.h Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/include/stdlib.h Sat Apr 24 21:05:08 2010 (r207160)
@@ -155,6 +155,7 @@ void _Exit(int) __dead2;
#if __POSIX_VISIBLE /* >= ??? */
int posix_memalign(void **, size_t, size_t); /* (ADV) */
int rand_r(unsigned *); /* (TSF) */
+char *realpath(const char * __restrict, char * __restrict);
int setenv(const char *, const char *, int);
int unsetenv(const char *);
#endif
@@ -201,7 +202,6 @@ int posix_openpt(int);
char *ptsname(int);
int putenv(char *);
long random(void);
-char *realpath(const char *, char resolved_path[]);
unsigned short
*seed48(unsigned short[3]);
#ifndef _SETKEY_DECLARED
Modified: user/kib/vm6/lib/Makefile
==============================================================================
--- user/kib/vm6/lib/Makefile Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/lib/Makefile Sat Apr 24 21:05:08 2010 (r207160)
@@ -85,6 +85,7 @@ SUBDIR= ${SUBDIR_ORDERED} \
libopie \
libpam \
libpcap \
+ ${_libpkg} \
${_libpmc} \
libproc \
librt \
@@ -197,6 +198,10 @@ _libmp= libmp
_libpmc= libpmc
.endif
+.if ${MK_PKGTOOLS} != "no"
+_libpkg= libpkg
+.endif
+
.if ${MK_SENDMAIL} != "no"
_libmilter= libmilter
_libsm= libsm
Modified: user/kib/vm6/lib/libc/stdlib/realpath.3
==============================================================================
--- user/kib/vm6/lib/libc/stdlib/realpath.3 Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/lib/libc/stdlib/realpath.3 Sat Apr 24 21:05:08 2010 (r207160)
@@ -31,7 +31,7 @@
.\" @(#)realpath.3 8.2 (Berkeley) 2/16/94
.\" $FreeBSD$
.\"
-.Dd February 16, 1994
+.Dd April 19, 2010
.Dt REALPATH 3
.Os
.Sh NAME
@@ -43,7 +43,7 @@
.In sys/param.h
.In stdlib.h
.Ft "char *"
-.Fn realpath "const char *pathname" "char resolved_path[PATH_MAX]"
+.Fn realpath "const char *pathname" "char *resolved_path"
.Sh DESCRIPTION
The
.Fn realpath
@@ -56,15 +56,16 @@ and
in
.Fa pathname ,
and copies the resulting absolute pathname into
-the memory referenced by
+the memory pointed to by
.Fa resolved_path .
The
.Fa resolved_path
argument
.Em must
-refer to a buffer capable of storing at least
+point to a buffer capable of storing at least
.Dv PATH_MAX
-characters.
+characters, or be
+.Dv NULL .
.Pp
The
.Fn realpath
@@ -82,13 +83,22 @@ The
function returns
.Fa resolved_path
on success.
+If the function was supplied
+.Dv NULL
+as
+.Fa resolved_path ,
+and operation did not cause errors, the returned value is
+a null-terminated string in a buffer allocated by a call to
+.Fn malloc 3 .
If an error occurs,
.Fn realpath
returns
.Dv NULL ,
-and
+and if
.Fa resolved_path
-contains the pathname which caused the problem.
+is not
+.Dv NULL ,
+the array that it points to contains the pathname which caused the problem.
.Sh ERRORS
The function
.Fn realpath
@@ -113,6 +123,11 @@ when given a relative
.Fa pathname .
.Sh "SEE ALSO"
.Xr getcwd 3
+.Sh STANDARDS
+The
+.Fn realpath
+function conforms to
+.St -p1003.1-2001 .
.Sh HISTORY
The
.Fn realpath
Modified: user/kib/vm6/lib/libc/stdlib/realpath.c
==============================================================================
--- user/kib/vm6/lib/libc/stdlib/realpath.c Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/lib/libc/stdlib/realpath.c Sat Apr 24 21:05:08 2010 (r207160)
@@ -43,23 +43,37 @@ __FBSDID("$FreeBSD$");
#include "un-namespace.h"
/*
- * char *realpath(const char *path, char resolved[PATH_MAX]);
- *
* Find the real name of path, by removing all ".", ".." and symlink
* components. Returns (resolved) on success, or (NULL) on failure,
* in which case the path which caused trouble is left in (resolved).
*/
char *
-realpath(const char *path, char resolved[PATH_MAX])
+realpath(const char * __restrict path, char * __restrict resolved)
{
struct stat sb;
char *p, *q, *s;
size_t left_len, resolved_len;
unsigned symlinks;
- int serrno, slen;
+ int serrno, slen, m;
char left[PATH_MAX], next_token[PATH_MAX], symlink[PATH_MAX];
+ if (path == NULL) {
+ errno = EINVAL;
+ return (NULL);
+ }
+ if (path[0] == '\0') {
+ errno = ENOENT;
+ return (NULL);
+ }
serrno = errno;
+ if (resolved == NULL) {
+ resolved = malloc(PATH_MAX);
+ if (resolved == NULL)
+ return (NULL);
+ m = 1;
+ } else
+ m = 0;
+
symlinks = 0;
if (path[0] == '/') {
resolved[0] = '/';
@@ -70,13 +84,18 @@ realpath(const char *path, char resolved
left_len = strlcpy(left, path + 1, sizeof(left));
} else {
if (getcwd(resolved, PATH_MAX) == NULL) {
- strlcpy(resolved, ".", PATH_MAX);
+ if (m)
+ free(resolved);
+ else
+ strlcpy(resolved, ".", PATH_MAX);
return (NULL);
}
resolved_len = strlen(resolved);
left_len = strlcpy(left, path, sizeof(left));
}
if (left_len >= sizeof(left) || resolved_len >= PATH_MAX) {
+ if (m)
+ free(resolved);
errno = ENAMETOOLONG;
return (NULL);
}
@@ -92,6 +111,8 @@ realpath(const char *path, char resolved
p = strchr(left, '/');
s = p ? p : left + left_len;
if (s - left >= sizeof(next_token)) {
+ if (m)
+ free(resolved);
errno = ENAMETOOLONG;
return (NULL);
}
@@ -102,6 +123,8 @@ realpath(const char *path, char resolved
memmove(left, s + 1, left_len + 1);
if (resolved[resolved_len - 1] != '/') {
if (resolved_len + 1 >= PATH_MAX) {
+ if (m)
+ free(resolved);
errno = ENAMETOOLONG;
return (NULL);
}
@@ -133,6 +156,8 @@ realpath(const char *path, char resolved
*/
resolved_len = strlcat(resolved, next_token, PATH_MAX);
if (resolved_len >= PATH_MAX) {
+ if (m)
+ free(resolved);
errno = ENAMETOOLONG;
return (NULL);
}
@@ -141,16 +166,23 @@ realpath(const char *path, char resolved
errno = serrno;
return (resolved);
}
+ if (m)
+ free(resolved);
return (NULL);
}
if (S_ISLNK(sb.st_mode)) {
if (symlinks++ > MAXSYMLINKS) {
+ if (m)
+ free(resolved);
errno = ELOOP;
return (NULL);
}
slen = readlink(resolved, symlink, sizeof(symlink) - 1);
- if (slen < 0)
+ if (slen < 0) {
+ if (m)
+ free(resolved);
return (NULL);
+ }
symlink[slen] = '\0';
if (symlink[0] == '/') {
resolved[1] = 0;
@@ -171,6 +203,8 @@ realpath(const char *path, char resolved
if (p != NULL) {
if (symlink[slen - 1] != '/') {
if (slen + 1 >= sizeof(symlink)) {
+ if (m)
+ free(resolved);
errno = ENAMETOOLONG;
return (NULL);
}
@@ -179,6 +213,8 @@ realpath(const char *path, char resolved
}
left_len = strlcat(symlink, left, sizeof(left));
if (left_len >= sizeof(left)) {
+ if (m)
+ free(resolved);
errno = ENAMETOOLONG;
return (NULL);
}
Modified: user/kib/vm6/lib/libufs/Makefile
==============================================================================
--- user/kib/vm6/lib/libufs/Makefile Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/lib/libufs/Makefile Sat Apr 24 21:05:08 2010 (r207160)
@@ -3,7 +3,7 @@
LIB= ufs
SHLIBDIR?= /lib
-SRCS= block.c cgroup.c inode.c sblock.c type.c
+SRCS= block.c cgroup.c inode.c sblock.c type.c ffs_subr.c ffs_tables.c
INCS= libufs.h
MAN= bread.3 cgread.3 libufs.3 sbread.3 ufs_disk_close.3
@@ -16,8 +16,11 @@ MLINKS+= ufs_disk_close.3 ufs_disk_fillo
MLINKS+= ufs_disk_close.3 ufs_disk_fillout_blank.3
MLINKS+= ufs_disk_close.3 ufs_disk_write.3
-WARNS?= 3
+.PATH: ${.CURDIR}/../../sys/ufs/ffs
+WARNS?= 2
+
+DEBUG_FLAGS = -g
CFLAGS+= -D_LIBUFS
.if defined(LIBUFS_DEBUG)
CFLAGS+= -D_LIBUFS_DEBUGGING
Modified: user/kib/vm6/lib/libufs/cgroup.c
==============================================================================
--- user/kib/vm6/lib/libufs/cgroup.c Sat Apr 24 20:39:18 2010 (r207159)
+++ user/kib/vm6/lib/libufs/cgroup.c Sat Apr 24 21:05:08 2010 (r207160)
@@ -40,11 +40,143 @@ __FBSDID("$FreeBSD$");
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <libufs.h>
+ufs2_daddr_t
+cgballoc(struct uufsd *disk)
+{
+ u_int8_t *blksfree;
+ struct cg *cgp;
+ struct fs *fs;
+ long bno;
+
+ fs = &disk->d_fs;
+ cgp = &disk->d_cg;
+ blksfree = cg_blksfree(cgp);
+ for (bno = 0; bno < fs->fs_fpg / fs->fs_frag; bno++)
+ if (ffs_isblock(fs, blksfree, bno))
+ goto gotit;
+ return (0);
+gotit:
+ fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
+ ffs_clrblock(fs, blksfree, (long)bno);
+ ffs_clusteracct(fs, cgp, bno, -1);
+ cgp->cg_cs.cs_nbfree--;
+ fs->fs_cstotal.cs_nbfree--;
+ fs->fs_fmod = 1;
+ return (cgbase(fs, cgp->cg_cgx) + blkstofrags(fs, bno));
+}
+
+int
+cgbfree(struct uufsd *disk, ufs2_daddr_t bno, long size)
+{
+ u_int8_t *blksfree;
+ struct fs *fs;
+ struct cg *cgp;
+ ufs1_daddr_t fragno, cgbno;
+ int i, cg, blk, frags, bbase;
+
+ fs = &disk->d_fs;
+ cg = dtog(fs, bno);
+ if (cgread1(disk, cg) != 1)
+ return (-1);
+ cgp = &disk->d_cg;
+ cgbno = dtogd(fs, bno);
+ blksfree = cg_blksfree(cgp);
+ if (size == fs->fs_bsize) {
+ fragno = fragstoblks(fs, cgbno);
+ ffs_setblock(fs, blksfree, fragno);
+ ffs_clusteracct(fs, cgp, fragno, 1);
+ cgp->cg_cs.cs_nbfree++;
+ fs->fs_cstotal.cs_nbfree++;
+ fs->fs_cs(fs, cg).cs_nbfree++;
+ } else {
+ bbase = cgbno - fragnum(fs, cgbno);
+ /*
+ * decrement the counts associated with the old frags
+ */
+ blk = blkmap(fs, blksfree, bbase);
+ ffs_fragacct(fs, blk, cgp->cg_frsum, -1);
+ /*
+ * deallocate the fragment
+ */
+ frags = numfrags(fs, size);
+ for (i = 0; i < frags; i++)
+ setbit(blksfree, cgbno + i);
+ cgp->cg_cs.cs_nffree += i;
+ fs->fs_cstotal.cs_nffree += i;
+ fs->fs_cs(fs, cg).cs_nffree += i;
+ /*
+ * add back in counts associated with the new frags
+ */
+ blk = blkmap(fs, blksfree, bbase);
+ ffs_fragacct(fs, blk, cgp->cg_frsum, 1);
+ /*
+ * if a complete block has been reassembled, account for it
+ */
+ fragno = fragstoblks(fs, bbase);
+ if (ffs_isblock(fs, blksfree, fragno)) {
+ cgp->cg_cs.cs_nffree -= fs->fs_frag;
+ fs->fs_cstotal.cs_nffree -= fs->fs_frag;
+ fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
+ ffs_clusteracct(fs, cgp, fragno, 1);
+ cgp->cg_cs.cs_nbfree++;
+ fs->fs_cstotal.cs_nbfree++;
+ fs->fs_cs(fs, cg).cs_nbfree++;
+ }
+ }
+ return cgwrite(disk);
+}
+
+ino_t
+cgialloc(struct uufsd *disk)
+{
+ struct ufs2_dinode *dp2;
+ u_int8_t *inosused;
+ struct cg *cgp;
+ struct fs *fs;
+ ino_t ino;
+ int i;
+
+ fs = &disk->d_fs;
+ cgp = &disk->d_cg;
+ inosused = cg_inosused(cgp);
+ for (ino = 0; ino < fs->fs_ipg / NBBY; ino++)
+ if (isclr(inosused, ino))
+ goto gotit;
+ return (0);
+gotit:
+ if (fs->fs_magic == FS_UFS2_MAGIC &&
+ ino + INOPB(fs) > cgp->cg_initediblk &&
+ cgp->cg_initediblk < cgp->cg_niblk) {
+ char block[MAXBSIZE];
+ bzero(block, (int)fs->fs_bsize);
+ dp2 = (struct ufs2_dinode *)█
+ for (i = 0; i < INOPB(fs); i++) {
+ dp2->di_gen = arc4random() / 2 + 1;
+ dp2++;
+ }
+ if (bwrite(disk, ino_to_fsba(fs,
+ cgp->cg_cgx * fs->fs_ipg + cgp->cg_initediblk),
+ block, fs->fs_bsize))
+ return (0);
+ cgp->cg_initediblk += INOPB(fs);
+ }
+
+ setbit(inosused, ino);
+ cgp->cg_irotor = ino;
+ cgp->cg_cs.cs_nifree--;
+ fs->fs_cstotal.cs_nifree--;
+ fs->fs_cs(fs, cgp->cg_cgx).cs_nifree--;
+ fs->fs_fmod = 1;
+
+ return (ino + (cgp->cg_cgx * fs->fs_ipg));
+}
+
int
cgread(struct uufsd *disk)
{
@@ -55,14 +187,12 @@ int
cgread1(struct uufsd *disk, int c)
{
struct fs *fs;
- off_t ccg;
fs = &disk->d_fs;
if ((unsigned)c >= fs->fs_ncg) {
return (0);
}
- ccg = fsbtodb(fs, cgtod(fs, c)) * disk->d_bsize;
if (bread(disk, fsbtodb(fs, cgtod(fs, c)), disk->d_cgunion.d_buf,
fs->fs_bsize) == -1) {
ERROR(disk, "unable to read cylinder group");
@@ -73,6 +203,12 @@ cgread1(struct uufsd *disk, int c)
}
int
+cgwrite(struct uufsd *disk)
+{
+ return (cgwrite1(disk, disk->d_lcg));
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list