Makefile.yp revision 1.17
1# $OpenBSD: Makefile.yp,v 1.17 2015/11/29 15:20:46 rpe Exp $ 2 3# ---------------------------------------------------------------------- 4# User-configurable settings; see Makefile.yp(8) for details. 5# ---------------------------------------------------------------------- 6 7# Select the source directories to build YP maps from. 8DIR=/etc 9AMDDIR=$(DIR)/amd 10 11# Set this to disable automatic distribution of YP maps. 12NOPUSH="" 13 14# Unset this to exclude encrypted passwords from the passwd maps. 15UNSECURE="True" 16 17# Only include UIDs and GIDs inside certain ranges into the maps. 18MINUID=1000 19MAXUID=32765 20MINGID=1000 21MAXGID=32765 22 23# Set this to -b to have ypserv ask DNS for unknown hosts. 24USEDNS= 25 26all: passwd group hosts ethers networks rpc services protocols netid netgroup amd.home aliases 27 pkill -HUP ypserv 28 29# ---------------------------------------------------------------------- 30# End of user-configurable settings; you may also add new targets, though. 31# ---------------------------------------------------------------------- 32 33# The following is also hardcoded into ypserv(8) and other programs. 34YPDBDIR=/var/yp 35 36AWK=/usr/bin/awk 37CAT=/bin/cat 38CP=/bin/cp 39CUT=/usr/bin/cut 40ECHO=/bin/echo 41MAKEDBM=/usr/sbin/makedbm 42MAKEDBM-S=$(MAKEDBM) -s 43MKALIAS=/usr/sbin/mkalias 44MKNETID=/usr/sbin/mknetid 45REVNETGROUP=/usr/sbin/revnetgroup 46RM=/bin/rm 47SED=/usr/bin/sed 48SENDMAIL=/usr/sbin/sendmail 49TOUCH=/usr/bin/touch 50YPPUSH=/usr/sbin/yppush 51 52DOMAIN="`/usr/bin/basename ${.CURDIR}`" 53 54passwd.time: $(DIR)/master.passwd 55 -@if [ -f $(>) ]; then \ 56 if [ ! $(UNSECURE) ]; then \ 57 $(CAT) $(>) | $(CUT) -d: -f1-4,8-10 | \ 58 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 59 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 60 { if (minuid <= $$3 && maxuid >= $$3) \ 61 print $$1, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\ 62 $(MAKEDBM) - passwd.byname; \ 63 $(CAT) $(>) | $(CUT) -d: -f1-4,8-10 |\ 64 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 65 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 66 { if (minuid <= $$3 && maxuid >= $$3) \ 67 print $$3, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\ 68 $(MAKEDBM) - passwd.byuid; \ 69 else \ 70 $(CAT) $(>) | $(CUT) -d: -f1-4,8-10 | \ 71 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 72 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 73 { if (minuid <= $$3 && maxuid >= $$3) \ 74 print $$1, $$0 }' - | \ 75 $(MAKEDBM) - passwd.byname; \ 76 $(CAT) $(>) | $(CUT) -d: -f1-4,8-10 |\ 77 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 78 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 79 { if (minuid <= $$3 && maxuid >= $$3) \ 80 print $$3, $$0 }' - | \ 81 $(MAKEDBM) - passwd.byuid; \ 82 fi; \ 83 $(CAT) $(>) | \ 84 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 85 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 86 { if (minuid <= $$3 && maxuid >= $$3) \ 87 print $$1, $$0 }' - | $(MAKEDBM-S) - master.passwd.byname; \ 88 $(CAT) $(>) | \ 89 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 90 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 91 { if (minuid <= $$3 && maxuid >= $$3) \ 92 print $$3, $$0 }' - | $(MAKEDBM-S) - master.passwd.byuid; \ 93 $(TOUCH) $(@); \ 94 $(ECHO) "updated passwd"; \ 95 if [ ! $(NOPUSH) ]; then \ 96 $(YPPUSH) -d $(DOMAIN) passwd.byname; \ 97 $(YPPUSH) -d $(DOMAIN) passwd.byuid; \ 98 $(YPPUSH) -d $(DOMAIN) master.passwd.byname; \ 99 $(YPPUSH) -d $(DOMAIN) master.passwd.byuid; \ 100 $(ECHO) "pushed passwd"; \ 101 else \ 102 : ; \ 103 fi \ 104 else \ 105 $(ECHO) "couldn't find $(>)"; \ 106 fi 107 108 109group.time: $(DIR)/group 110 -@if [ -f $(>) ]; then \ 111 $(AWK) -v mingid=${MINGID} -v maxgid=${MAXGID} \ 112 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 113 { if (mingid <= $$3 && maxgid >= $$3) print $$1, $$0 }' $(>) | \ 114 $(MAKEDBM) - group.byname; \ 115 $(AWK) -v mingid=${MINGID} -v maxgid=${MAXGID} \ 116 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 117 { if (mingid <= $$3 && maxgid >= $$3) print $$3, $$0 }' $(>) | \ 118 $(MAKEDBM) - group.bygid; \ 119 $(TOUCH) $(@); \ 120 $(ECHO) "updated group"; \ 121 if [ ! $(NOPUSH) ]; then \ 122 $(YPPUSH) -d $(DOMAIN) group.byname; \ 123 $(YPPUSH) -d $(DOMAIN) group.bygid; \ 124 $(ECHO) "pushed group"; \ 125 else \ 126 : ; \ 127 fi \ 128 else \ 129 $(ECHO) "couldn't find $(>)"; \ 130 fi 131 132hosts.time: $(DIR)/hosts 133 -@if [ -f $(DIR)/hosts ]; then \ 134 $(SED) -E -e 's/[[:blank:]]*#.*$$//' -e '/^$$/d' $(>) | \ 135 $(AWK) 'BEGIN { OFS="\t" } \ 136 { if (length() > 1024) next; for (i=2; i <= NF; i++) print $$i,$$0 }' | \ 137 $(MAKEDBM) $(USEDNS) - hosts.byname; \ 138 $(SED) -E -e 's/[[:blank:]]*#.*$$//' -e '/^$$/d' $(>) | \ 139 $(AWK) 'BEGIN { OFS="\t" } \ 140 { if (length() > 1024) next; print $$1,$$0 }' | \ 141 $(MAKEDBM) $(USEDNS) - hosts.byaddr; \ 142 $(TOUCH) $(@); \ 143 $(ECHO) "updated hosts"; \ 144 if [ ! $(NOPUSH) ]; then \ 145 $(YPPUSH) -d $(DOMAIN) hosts.byname; \ 146 $(YPPUSH) -d $(DOMAIN) hosts.byaddr; \ 147 $(ECHO) "pushed hosts"; \ 148 else \ 149 : ; \ 150 fi \ 151 else \ 152 $(ECHO) "couldn't find $(>)"; \ 153 fi 154 155ethers.time: $(DIR)/ethers 156 -@if [ -f $(DIR)/ethers ]; then \ 157 $(SED) -E -e 's/[[:blank:]]*#.*$$//' -e '/^$$/d' $(>) | \ 158 $(SED) -E -n '/^([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}[[:blank:]]/p' | \ 159 $(AWK) 'BEGIN { OFS="\t" } { if (length() > 1024) next; print $$1,$$0 }' | \ 160 $(MAKEDBM) - ethers.byaddr; \ 161 $(SED) -E -e 's/[[:blank:]]*#.*$$//' -e '/^$$/d' $(>) | \ 162 $(SED) -E -n '/^([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}[[:blank:]]/p' | \ 163 $(AWK) 'BEGIN { OFS="\t" } { if (length() > 1024) next; print $$2,$$0 }' | \ 164 $(MAKEDBM) - ethers.byname; \ 165 $(TOUCH) $(@); \ 166 $(ECHO) "updated ethers"; \ 167 if [ ! $(NOPUSH) ]; then \ 168 $(YPPUSH) -d $(DOMAIN) ethers.byaddr; \ 169 $(YPPUSH) -d $(DOMAIN) ethers.byname; \ 170 $(ECHO) "pushed ethers"; \ 171 else \ 172 : ; \ 173 fi \ 174 else \ 175 $(ECHO) "couldn't find $(>)"; \ 176 fi 177 178networks.time: $(DIR)/networks 179 -@if [ -f $(>) ]; then \ 180 $(SED) -e "/^#/d" -e s/#.*$$// $(>) | \ 181 $(AWK) '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' | \ 182 $(MAKEDBM) - networks.byname; \ 183 $(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \ 184 $(MAKEDBM) - networks.byaddr; \ 185 $(TOUCH) $(@); \ 186 $(ECHO) "updated networks"; \ 187 if [ ! $(NOPUSH) ]; then \ 188 $(YPPUSH) -d $(DOMAIN) networks.byname; \ 189 $(YPPUSH) -d $(DOMAIN) networks.byaddr; \ 190 $(ECHO) "pushed networks"; \ 191 else \ 192 : ; \ 193 fi \ 194 else \ 195 $(ECHO) "couldn't find $(>)"; \ 196 fi 197 198rpc.time: $(DIR)/rpc 199 -@if [ -f $(>) ]; then \ 200 $(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \ 201 $(MAKEDBM) - rpc.bynumber; \ 202 $(TOUCH) $(@); \ 203 $(ECHO) "updated rpc"; \ 204 if [ ! $(NOPUSH) ]; then \ 205 $(YPPUSH) -d $(DOMAIN) rpc.bynumber; \ 206 $(ECHO) "pushed rpc"; \ 207 else \ 208 : ; \ 209 fi \ 210 else \ 211 $(ECHO) "couldn't find $(>)"; \ 212 fi 213 214 215services.time: $(DIR)/services 216 -@if [ -f $(>) ]; then \ 217 $(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \ 218 $(MAKEDBM) - services.byname; \ 219 $(TOUCH) $(@); \ 220 $(ECHO) "updated services"; \ 221 if [ ! $(NOPUSH) ]; then \ 222 $(YPPUSH) -d $(DOMAIN) services.byname; \ 223 $(ECHO) "pushed services"; \ 224 else \ 225 : ; \ 226 fi \ 227 else \ 228 $(ECHO) "couldn't find $(>)"; \ 229 fi 230 231 232protocols.time: $(DIR)/protocols 233 -@if [ -f $(>) ]; then \ 234 $(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \ 235 $(MAKEDBM) - protocols.bynumber; \ 236 $(SED) -e "/^#/d" -e s/#.*$$// $(>) | \ 237 $(AWK) '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' | \ 238 $(MAKEDBM) - protocols.byname; \ 239 $(TOUCH) $(@); \ 240 $(ECHO) "updated protocols"; \ 241 if [ ! $(NOPUSH) ]; then \ 242 $(YPPUSH) -d $(DOMAIN) protocols.bynumber; \ 243 $(YPPUSH) -d $(DOMAIN) protocols.byname; \ 244 $(ECHO) "pushed protocols"; \ 245 else \ 246 : ; \ 247 fi \ 248 else \ 249 $(ECHO) "couldn't find $(>)"; \ 250 fi 251 252 253netid.time: $(DIR)/passwd $(DIR)/master.passwd $(DIR)/group $(DIR)/hosts $(DIR)/netid 254 -@$(MKNETID) -q -d $(DOMAIN) -p $(DIR)/passwd -P $(DIR)/master.passwd \ 255 -g $(DIR)/group -h $(DIR)/hosts -m $(DIR)/netid | \ 256 $(MAKEDBM) - netid.byname; \ 257 $(TOUCH) $(@); \ 258 $(ECHO) "updated netid"; \ 259 if [ ! $(NOPUSH) ]; then \ 260 $(YPPUSH) -d $(DOMAIN) netid.byname; \ 261 $(ECHO) "pushed netid"; \ 262 else \ 263 : ; \ 264 fi 265 266 267netgroup.time: $(DIR)/netgroup 268 -@if [ -f $(>) ]; then \ 269 $(CAT) $(>) | $(MAKEDBM) - netgroup; \ 270 $(CAT) $(>) | $(REVNETGROUP) -u -f - | \ 271 $(MAKEDBM) - netgroup.byuser; \ 272 $(CAT) $(>) | $(REVNETGROUP) -h -f - | \ 273 $(MAKEDBM) - netgroup.byhost; \ 274 $(TOUCH) $(@); \ 275 $(ECHO) "updated netgroup"; \ 276 if [ ! $(NOPUSH) ]; then \ 277 $(YPPUSH) -d $(DOMAIN) netgroup; \ 278 $(YPPUSH) -d $(DOMAIN) netgroup.byuser; \ 279 $(YPPUSH) -d $(DOMAIN) netgroup.byhost; \ 280 $(ECHO) "pushed netgroup"; \ 281 else \ 282 : ; \ 283 fi \ 284 else \ 285 $(ECHO) "couldn't find $(>)"; \ 286 fi 287 288 289amd.home.time: $(AMDDIR)/amd.home 290 -@if [ -f $(>) ]; then \ 291 $(SED) -e "s/#.*$$//" -e "/^$$/d" $(>) | \ 292 $(AWK) '{ \ 293 for (i = 1; i <= NF; i++) \ 294 if (i == NF) { \ 295 if (substr($$i, length($$i), 1) == "\\") { \ 296 printf("%s", substr($$i, 1, length($$i) - 1)); \ 297 } \ 298 else \ 299 printf("%s\n", $$i); \ 300 } \ 301 else \ 302 printf("%s ", $$i); \ 303 }' | \ 304 $(MAKEDBM) - amd.home; \ 305 $(TOUCH) $(@); \ 306 $(ECHO) "updated amd.home"; \ 307 if [ ! $(NOPUSH) ]; then \ 308 $(YPPUSH) -d $(DOMAIN) amd.home; \ 309 $(ECHO) "pushed amd.home"; \ 310 else \ 311 : ; \ 312 fi \ 313 else \ 314 $(ECHO) "couldn't find $(>)"; \ 315 fi 316 317 318aliases.time: $(DIR)/mail/aliases 319 -@if [ -f $(>) ]; then \ 320 $(CP) -p $(>) $(DOMAIN)-aliases; \ 321 $(SENDMAIL) -bi -oA$(PWD)/$(DOMAIN)-aliases; \ 322 $(MAKEDBM) -U $(DOMAIN)-aliases | $(MAKEDBM) - mail.aliases; \ 323 $(MKALIAS) mail.aliases mail.byaddr; \ 324 $(TOUCH) $(@); \ 325 $(RM) $(DOMAIN)-aliases.db $(DOMAIN)-aliases; \ 326 $(ECHO) "updated aliases"; \ 327 if [ ! $(NOPUSH) ]; then \ 328 $(YPPUSH) -d $(DOMAIN) mail.aliases; \ 329 $(YPPUSH) -d $(DOMAIN) mail.byaddr; \ 330 $(ECHO) "pushed aliases"; \ 331 else \ 332 : ; \ 333 fi \ 334 else \ 335 $(ECHO) "couldn't find $(>)"; \ 336 fi 337 338 339 340passwd: passwd.time 341group: group.time 342hosts: hosts.time 343ethers: ethers.time 344networks: networks.time 345rpc: rpc.time 346services: services.time 347protocols: protocols.time 348netid: netid.time 349netgroup: netgroup.time 350amd.home: amd.home.time 351aliases: aliases.time 352$(DIR)/passwd: 353$(DIR)/group: 354$(DIR)/hosts: 355$(DIR)/ethers: 356$(DIR)/networks: 357$(DIR)/rpc: 358$(DIR)/services: 359$(DIR)/protocols: 360$(DIR)/netid: 361$(DIR)/master.passwd: 362$(DIR)/netgroup: 363$(DIR)/mail/aliases: 364$(AMDDIR)/amd.home: 365