Makefile.yp revision 1.5
11.5Slukem# $NetBSD: Makefile.yp,v 1.5 1997/10/15 03:02:07 lukem Exp $ 21.1Sthorpej# 31.1Sthorpej# This is the YP Makefile, used to create and push YP maps. 41.1Sthorpej# 51.1Sthorpej 61.5Slukem# Invoke with NOPUSH != "" to prevent the maps from being yppushed upon rebuild 71.5Slukem# 81.5SlukemNOPUSH?= "" 91.5Slukem 101.5Slukem# Password maps in standard YP are insecure, because the pw_passwd 111.5Slukem# field is accessable by any user. FreeBSD, NetBSD and OpenBSD have 121.5Slukem# a common solution: a secure map (generated with makedbm -s) can 131.5Slukem# only be accessed by a client bound to a privileged port. 141.5Slukem# 151.5Slukem# Comment out the following if you don't need compatibility with 161.5Slukem# sites that don't support this feature 171.5SlukemINSECURE?= yes 181.5Slukem 191.5Slukem 201.5SlukemYPDBDIR= /var/yp 211.5SlukemDIR= /etc 221.5SlukemAMDDIR= /etc/amd 231.5SlukemDOMAIN= "`/usr/bin/basename ${.CURDIR}`" 241.5Slukem 251.5SlukemAWK= /usr/bin/awk 261.5SlukemCAT= /bin/cat 271.5SlukemCP= /bin/cp 281.5SlukemCUT= /usr/bin/cut 291.5SlukemECHO= /bin/echo 301.5SlukemMAKEDBM= /usr/sbin/makedbm 311.5SlukemMAKEDBM_S= ${MAKEDBM} -s 321.5SlukemMKALIAS= /usr/sbin/mkalias 331.5SlukemMKNETID= /usr/sbin/mknetid 341.5SlukemREVNETGROUP= /usr/sbin/revnetgroup 351.5SlukemRM= /bin/rm 361.5SlukemSED= /usr/bin/sed 371.5SlukemSENDMAIL= /usr/sbin/sendmail 381.5SlukemSTDETHERS= /usr/sbin/stdethers 391.5SlukemSTDHOSTS= /usr/sbin/stdhosts 401.5SlukemTOUCH= /usr/bin/touch 411.5SlukemYPPUSH= /usr/sbin/yppush 421.5Slukem 431.1Sthorpej 441.2Sthorpej# We have a rule for ypservers, but we don't build it by default, since 451.2Sthorpej# it seldom changes (only when slaves are added/deleted). 461.2Sthorpej 471.5Slukemall: passwd aliases amd.home ethers group hosts netgroup networks rpc services protocols netid 481.5Slukem 491.5Slukem 501.5Slukempasswd.time: ${DIR}/master.passwd 511.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 521.5Slukem umask 077 ; \ 531.5Slukem if [ "${INSECURE}" != "yes" ]; then \ 541.5Slukem ${CAT} ${.ALLSRC} | ${CUT} -d: -f1-4,8-10 | \ 551.5Slukem ${AWK} 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 561.5Slukem { print $$1, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\ 571.5Slukem ${MAKEDBM} - passwd.byname; \ 581.5Slukem ${CAT} ${.ALLSRC} | ${CUT} -d: -f1-4,8-10 |\ 591.5Slukem ${AWK} 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 601.5Slukem { print $$3, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\ 611.5Slukem ${MAKEDBM} - passwd.byuid; \ 621.5Slukem else \ 631.5Slukem ${CAT} ${.ALLSRC} | ${CUT} -d: -f1-4,8-10 | \ 641.5Slukem ${AWK} 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 651.5Slukem { print $$1, $$0 }' - | ${MAKEDBM} - passwd.byname; \ 661.5Slukem ${CAT} ${.ALLSRC} | ${CUT} -d: -f1-4,8-10 |\ 671.5Slukem ${AWK} 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 681.5Slukem { print $$3, $$0 }' - | ${MAKEDBM} - passwd.byuid; \ 691.5Slukem fi; \ 701.5Slukem ${CAT} ${.ALLSRC} | \ 711.5Slukem ${AWK} 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 721.5Slukem { print $$1, $$0 }' - | ${MAKEDBM_S} - master.passwd.byname; \ 731.5Slukem ${CAT} ${.ALLSRC} | \ 741.5Slukem ${AWK} 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 751.5Slukem { print $$3, $$0 }' - | ${MAKEDBM_S} - master.passwd.byuid; \ 761.5Slukem ${TOUCH} ${.TARGET}; \ 771.5Slukem ${ECHO} "updated passwd"; \ 781.5Slukem if [ ! ${NOPUSH} ]; then \ 791.5Slukem ${YPPUSH} -d ${DOMAIN} passwd.byname; \ 801.5Slukem ${YPPUSH} -d ${DOMAIN} passwd.byuid; \ 811.5Slukem ${YPPUSH} -d ${DOMAIN} master.passwd.byname; \ 821.5Slukem ${YPPUSH} -d ${DOMAIN} master.passwd.byuid; \ 831.5Slukem ${ECHO} "pushed passwd"; \ 841.5Slukem else \ 851.5Slukem : ; \ 861.5Slukem fi \ 871.5Slukem else \ 881.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 891.5Slukem fi 901.5Slukem 911.5Slukem 921.5Slukemaliases.time: ${DIR}/aliases 931.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 941.5Slukem ${CP} -p ${.ALLSRC} ${DOMAIN}-aliases; \ 951.5Slukem ${SENDMAIL} -bi -oA${PWD}/${DOMAIN}-aliases; \ 961.5Slukem ${MAKEDBM} -u ${DOMAIN}-aliases | ${MAKEDBM} - mail.aliases; \ 971.5Slukem ${MKALIAS} mail.aliases mail.byaddr; \ 981.5Slukem ${TOUCH} ${.TARGET}; \ 991.5Slukem ${RM} ${DOMAIN}-aliases.db ${DOMAIN}-aliases; \ 1001.5Slukem ${ECHO} "updated aliases"; \ 1011.5Slukem if [ ! ${NOPUSH} ]; then \ 1021.5Slukem ${YPPUSH} -d ${DOMAIN} mail.aliases; \ 1031.5Slukem ${YPPUSH} -d ${DOMAIN} mail.byaddr; \ 1041.5Slukem ${ECHO} "pushed aliases"; \ 1051.5Slukem else \ 1061.5Slukem : ; \ 1071.5Slukem fi \ 1081.5Slukem else \ 1091.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 1101.5Slukem fi 1111.5Slukem 1121.1Sthorpej 1131.5Slukemamd.home.time: ${AMDDIR}/amd.home 1141.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 1151.5Slukem ${SED} -e "s/#.*$$//" -e "/^$$/d" ${.ALLSRC} | \ 1161.5Slukem ${AWK} '{ \ 1171.5Slukem for (i = 1; i <= NF; i++) \ 1181.5Slukem if (i == NF) { \ 1191.5Slukem if (substr($$i, length($$i), 1) == "\\") { \ 1201.5Slukem printf("%s", \ 1211.5Slukem substr($$i, 1, length($$i) - 1)); \ 1221.5Slukem } \ 1231.5Slukem else \ 1241.5Slukem printf("%s\n", $$i); \ 1251.5Slukem } \ 1261.5Slukem else \ 1271.5Slukem printf("%s ", $$i); \ 1281.5Slukem }' | \ 1291.5Slukem ${MAKEDBM} - amd.home; \ 1301.5Slukem ${TOUCH} ${.TARGET}; \ 1311.5Slukem ${ECHO} "updated amd.home"; \ 1321.5Slukem if [ ! ${NOPUSH} ]; then \ 1331.5Slukem ${YPPUSH} -d ${DOMAIN} amd.home; \ 1341.5Slukem ${ECHO} "pushed amd.home"; \ 1351.1Sthorpej else \ 1361.1Sthorpej : ; \ 1371.1Sthorpej fi \ 1381.1Sthorpej else \ 1391.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 1401.1Sthorpej fi 1411.1Sthorpej 1421.1Sthorpej 1431.5Slukemethers.time: ${DIR}/ethers 1441.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 1451.5Slukem ${STDETHERS} ${.ALLSRC} | ${SED} -e s/#.*$$// | \ 1461.5Slukem ${AWK} 'BEGIN { FS="\t"; OFS="\t"; } { print $$1, $$0 }' | \ 1471.5Slukem ${MAKEDBM} - ethers.byaddr; \ 1481.5Slukem ${STDETHERS} ${.ALLSRC} | \ 1491.5Slukem ${AWK} 'BEGIN { FS="\t"; OFS="\t"; } { print $$2, $$0 }' | \ 1501.5Slukem ${MAKEDBM} - ethers.byname; \ 1511.5Slukem ${TOUCH} ${.TARGET}; \ 1521.5Slukem ${ECHO} "updated ethers"; \ 1531.5Slukem if [ ! ${NOPUSH} ]; then \ 1541.5Slukem ${YPPUSH} -d ${DOMAIN} ethers.byaddr; \ 1551.5Slukem ${YPPUSH} -d ${DOMAIN} ethers.byname; \ 1561.5Slukem ${ECHO} "pushed ethers"; \ 1571.1Sthorpej else \ 1581.1Sthorpej : ; \ 1591.1Sthorpej fi \ 1601.1Sthorpej else \ 1611.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 1621.1Sthorpej fi 1631.1Sthorpej 1641.5Slukem 1651.5Slukemgroup.time: ${DIR}/group 1661.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 1671.5Slukem ${AWK} 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 1681.5Slukem { print $$1, $$0 }' ${.ALLSRC} | \ 1691.5Slukem ${MAKEDBM} - group.byname; \ 1701.5Slukem ${AWK} 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 1711.5Slukem { print $$3, $$0 }' ${.ALLSRC} | \ 1721.5Slukem ${MAKEDBM} - group.bygid; \ 1731.5Slukem ${TOUCH} ${.TARGET}; \ 1741.5Slukem ${ECHO} "updated group"; \ 1751.5Slukem if [ ! ${NOPUSH} ]; then \ 1761.5Slukem ${YPPUSH} -d ${DOMAIN} group.byname; \ 1771.5Slukem ${YPPUSH} -d ${DOMAIN} group.bygid; \ 1781.5Slukem ${ECHO} "pushed group"; \ 1791.1Sthorpej else \ 1801.1Sthorpej : ; \ 1811.1Sthorpej fi \ 1821.1Sthorpej else \ 1831.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 1841.1Sthorpej fi 1851.1Sthorpej 1861.5Slukem 1871.5Slukemhosts.time: ${DIR}/hosts 1881.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 1891.5Slukem ${STDHOSTS} ${.ALLSRC} | ${SED} -e s/#.*$$// | \ 1901.5Slukem ${AWK} '{for (i = 2; i <= NF; i++) print $$i, $$0 }' | \ 1911.5Slukem ${MAKEDBM} - hosts.byname; \ 1921.5Slukem ${STDHOSTS} ${.ALLSRC} | \ 1931.5Slukem ${AWK} 'BEGIN { OFS="\t"; } { print $$1, $$0 }' | \ 1941.5Slukem ${MAKEDBM} - hosts.byaddr; \ 1951.5Slukem ${TOUCH} ${.TARGET}; \ 1961.5Slukem ${ECHO} "updated hosts"; \ 1971.5Slukem if [ ! ${NOPUSH} ]; then \ 1981.5Slukem ${YPPUSH} -d ${DOMAIN} hosts.byname; \ 1991.5Slukem ${YPPUSH} -d ${DOMAIN} hosts.byaddr; \ 2001.5Slukem ${ECHO} "pushed hosts"; \ 2011.1Sthorpej else \ 2021.1Sthorpej : ; \ 2031.1Sthorpej fi \ 2041.1Sthorpej else \ 2051.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 2061.1Sthorpej fi 2071.1Sthorpej 2081.5Slukem 2091.5Slukemnetgroup.time: ${DIR}/netgroup 2101.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 2111.5Slukem ${CAT} ${.ALLSRC} | ${MAKEDBM} - netgroup; \ 2121.5Slukem ${CAT} ${.ALLSRC} | ${REVNETGROUP} -u -f - | \ 2131.5Slukem ${MAKEDBM} - netgroup.byuser; \ 2141.5Slukem ${CAT} ${.ALLSRC} | ${REVNETGROUP} -h -f - | \ 2151.5Slukem ${MAKEDBM} - netgroup.byhost; \ 2161.5Slukem ${TOUCH} ${.TARGET}; \ 2171.5Slukem ${ECHO} "updated netgroup"; \ 2181.5Slukem if [ ! ${NOPUSH} ]; then \ 2191.5Slukem ${YPPUSH} -d ${DOMAIN} netgroup; \ 2201.5Slukem ${YPPUSH} -d ${DOMAIN} netgroup.byuser; \ 2211.5Slukem ${YPPUSH} -d ${DOMAIN} netgroup.byhost; \ 2221.5Slukem ${ECHO} "pushed netgroup"; \ 2231.1Sthorpej else \ 2241.1Sthorpej : ; \ 2251.1Sthorpej fi \ 2261.1Sthorpej else \ 2271.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 2281.1Sthorpej fi 2291.1Sthorpej 2301.5Slukem 2311.5Slukemnetworks.time: ${DIR}/networks 2321.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 2331.5Slukem ${SED} -e "/^#/d" -e s/#.*$$// ${.ALLSRC} | \ 2341.5Slukem ${AWK} '{print $$1, $$0; \ 2351.5Slukem for (i = 3;i <= NF;i++) print $$i,$$0}' | \ 2361.5Slukem ${MAKEDBM} - networks.byname; \ 2371.5Slukem ${AWK} 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \ 2381.5Slukem ${.ALLSRC} | \ 2391.5Slukem ${MAKEDBM} - networks.byaddr; \ 2401.5Slukem ${TOUCH} ${.TARGET}; \ 2411.5Slukem ${ECHO} "updated networks"; \ 2421.5Slukem if [ ! ${NOPUSH} ]; then \ 2431.5Slukem ${YPPUSH} -d ${DOMAIN} networks.byname; \ 2441.5Slukem ${YPPUSH} -d ${DOMAIN} networks.byaddr; \ 2451.5Slukem ${ECHO} "pushed networks"; \ 2461.1Sthorpej else \ 2471.1Sthorpej : ; \ 2481.1Sthorpej fi \ 2491.1Sthorpej else \ 2501.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 2511.1Sthorpej fi 2521.1Sthorpej 2531.1Sthorpej 2541.5Slukemprotocols.time: ${DIR}/protocols 2551.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 2561.5Slukem ${AWK} 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \ 2571.5Slukem ${.ALLSRC} | \ 2581.5Slukem ${MAKEDBM} - protocols.bynumber; \ 2591.5Slukem ${SED} -e "/^#/d" -e s/#.*$$// ${.ALLSRC} | \ 2601.5Slukem ${AWK} '{print $$1, $$0; \ 2611.5Slukem for (i = 3;i <= NF;i++) print $$i,$$0}' | \ 2621.5Slukem ${MAKEDBM} - protocols.byname; \ 2631.5Slukem ${TOUCH} ${.TARGET}; \ 2641.5Slukem ${ECHO} "updated protocols"; \ 2651.5Slukem if [ ! ${NOPUSH} ]; then \ 2661.5Slukem ${YPPUSH} -d ${DOMAIN} protocols.bynumber; \ 2671.5Slukem ${YPPUSH} -d ${DOMAIN} protocols.byname; \ 2681.5Slukem ${ECHO} "pushed protocols"; \ 2691.1Sthorpej else \ 2701.1Sthorpej : ; \ 2711.1Sthorpej fi \ 2721.1Sthorpej else \ 2731.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 2741.1Sthorpej fi 2751.1Sthorpej 2761.1Sthorpej 2771.5Slukemrpc.time: ${DIR}/rpc 2781.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 2791.5Slukem ${AWK} 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \ 2801.5Slukem ${.ALLSRC} | \ 2811.5Slukem ${MAKEDBM} - rpc.bynumber; \ 2821.5Slukem ${TOUCH} ${.TARGET}; \ 2831.5Slukem ${ECHO} "updated rpc"; \ 2841.5Slukem if [ ! ${NOPUSH} ]; then \ 2851.5Slukem ${YPPUSH} -d ${DOMAIN} rpc.bynumber; \ 2861.5Slukem ${ECHO} "pushed rpc"; \ 2871.1Sthorpej else \ 2881.1Sthorpej : ; \ 2891.1Sthorpej fi \ 2901.1Sthorpej else \ 2911.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 2921.1Sthorpej fi 2931.1Sthorpej 2941.1Sthorpej 2951.5Slukemservices.time: ${DIR}/services 2961.5Slukem -@if [ -f ${.ALLSRC} ]; then \ 2971.5Slukem ${AWK} 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \ 2981.5Slukem ${.ALLSRC} | \ 2991.5Slukem ${MAKEDBM} - services.byname; \ 3001.5Slukem ${TOUCH} ${.TARGET}; \ 3011.5Slukem ${ECHO} "updated services"; \ 3021.5Slukem if [ ! ${NOPUSH} ]; then \ 3031.5Slukem ${YPPUSH} -d ${DOMAIN} services.byname; \ 3041.5Slukem ${ECHO} "pushed services"; \ 3051.5Slukem else \ 3061.5Slukem : ; \ 3071.5Slukem fi \ 3081.5Slukem else \ 3091.5Slukem ${ECHO} "couldn't find ${.ALLSRC}"; \ 3101.5Slukem fi 3111.5Slukem 3121.5Slukem 3131.5Slukemnetid.time: ${DIR}/passwd ${DIR}/group ${DIR}/hosts ${DIR}/netid 3141.5Slukem -@${MKNETID} -q -d ${DOMAIN} -p ${DIR}/passwd -g ${DIR}/group -h \ 3151.5Slukem ${DIR}/hosts -m ${DIR}/netid | \ 3161.5Slukem ${MAKEDBM} - netid.byname; \ 3171.5Slukem ${TOUCH} ${.TARGET}; \ 3181.5Slukem ${ECHO} "updated netid"; \ 3191.5Slukem if [ ! ${NOPUSH} ]; then \ 3201.5Slukem ${YPPUSH} -d ${DOMAIN} netid.byname; \ 3211.5Slukem ${ECHO} "pushed netid"; \ 3221.1Sthorpej else \ 3231.1Sthorpej : ; \ 3241.1Sthorpej fi 3251.1Sthorpej 3261.5Slukem 3271.3Sthorpejypservers: 3281.5Slukem -@${TOUCH} ypservers; \ 3291.5Slukem ${MAKEDBM} ypservers ypservers; \ 3301.5Slukem ${ECHO} "updated ypservers"; \ 3311.5Slukem if [ ! ${NOPUSH} ]; then \ 3321.5Slukem ${YPPUSH} -d ${DOMAIN} ypservers; \ 3331.5Slukem ${ECHO} "pushed ypservers"; \ 3341.2Sthorpej else \ 3351.2Sthorpej : ; \ 3361.2Sthorpej fi 3371.1Sthorpej 3381.5Slukem 3391.1Sthorpejpasswd: passwd.time 3401.1Sthorpejgroup: group.time 3411.1Sthorpejhosts: hosts.time 3421.5Slukemaliases: aliases.time 3431.5Slukemamd.home: amd.home.time 3441.1Sthorpejethers: ethers.time 3451.5Slukemnetgroup: netgroup.time 3461.1Sthorpejnetworks: networks.time 3471.1Sthorpejrpc: rpc.time 3481.1Sthorpejservices: services.time 3491.1Sthorpejprotocols: protocols.time 3501.1Sthorpejnetid: netid.time 3511.5Slukem 3521.5Slukem${DIR}/passwd: 3531.5Slukem${DIR}/group: 3541.5Slukem${DIR}/hosts: 3551.5Slukem${DIR}/aliases: 3561.5Slukem${AMDDIR}/amd.home: 3571.5Slukem${DIR}/ethers: 3581.5Slukem${DIR}/master.passwd: 3591.5Slukem${DIR}/netgroup: 3601.5Slukem${DIR}/networks: 3611.5Slukem${DIR}/rpc: 3621.5Slukem${DIR}/services: 3631.5Slukem${DIR}/protocols: 3641.5Slukem${DIR}/netid: 365