diff options
author | jilles <jilles@FreeBSD.org> | 2013-09-17 20:09:25 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2013-09-17 20:09:25 +0000 |
commit | 8e8d9f528bfaf3b409be01f3accf60ba4d201b43 (patch) | |
tree | 8ca139343fab5fec01ec70a478eec71573466377 | |
parent | 3f1242f97fd35fd39499a5ab392f2404d6b0d456 (diff) | |
download | FreeBSD-src-8e8d9f528bfaf3b409be01f3accf60ba4d201b43.zip FreeBSD-src-8e8d9f528bfaf3b409be01f3accf60ba4d201b43.tar.gz |
share/i18n: Fix installworld with read-only obj.
Since iconv was enabled (r254273, August 13), it has been impossible to
installworld using a read-only obj tree. This is common with NFS. Parts of
share/i18n unconditionally rebuild files like mapper.dir during
installation.
This patch ensures the files like mapper.dir are not rewritten with the same
contents.
Tested by: joel
Approved by: re (hrs)
-rw-r--r-- | share/i18n/csmapper/Makefile | 18 | ||||
-rw-r--r-- | share/i18n/esdb/Makefile | 18 |
2 files changed, 20 insertions, 16 deletions
diff --git a/share/i18n/csmapper/Makefile b/share/i18n/csmapper/Makefile index 54746f9..7bca3ab 100644 --- a/share/i18n/csmapper/Makefile +++ b/share/i18n/csmapper/Makefile @@ -7,10 +7,11 @@ SUBDIR= APPLE AST BIG5 CNS CP EBCDIC GB GEORGIAN ISO646 ISO-8859 JIS \ KAZAKH KOI KS MISC TCVN mapper.dir: ${SUBDIR} - > ${.TARGET} -.for i in ${SUBDIR} - cat ${i}/mapper.dir.${i} >> ${.TARGET} -.endfor + newfile=$$(for i in ${SUBDIR}; do \ + cat $$i/mapper.dir.$$i; \ + done); \ + [ "$$newfile" = "$$(cat ${.TARGET} 2>/dev/null)" ] || \ + printf '%s\n' "$$newfile" >${.TARGET} mapper.dir.db: mapper.dir ${MKCSMAPPER} -m -o ${.TARGET} ${.ALLSRC} @@ -18,10 +19,11 @@ FILES+= mapper.dir mapper.dir.db CLEANFILES+= mapper.dir mapper.dir.db charset.pivot: ${SUBDIR} - > ${.TARGET} -.for i in ${SUBDIR} - cat ${i}/charset.pivot.${i} >> ${.TARGET} -.endfor + newfile=$$(for i in ${SUBDIR}; do \ + cat $$i/charset.pivot.$$i; \ + done); \ + [ "$$newfile" = "$$(cat ${.TARGET} 2>/dev/null)" ] || \ + printf '%s\n' "$$newfile" >${.TARGET} charset.pivot.pvdb: charset.pivot ${MKCSMAPPER} -p -o ${.TARGET} ${.ALLSRC} diff --git a/share/i18n/esdb/Makefile b/share/i18n/esdb/Makefile index 3cd372c..2b16d90 100644 --- a/share/i18n/esdb/Makefile +++ b/share/i18n/esdb/Makefile @@ -10,18 +10,20 @@ FILES+= esdb.dir esdb.dir.db esdb.alias esdb.alias.db CLEANFILES= ${FILES} esdb.dir: ${SUBDIR} - > $@ -.for i in ${SUBDIR} - cat ${i}/esdb.dir.${i} >>${.TARGET} -.endfor + newfile=$$(for i in ${SUBDIR}; do \ + cat $$i/esdb.dir.$$i; \ + done); \ + [ "$$newfile" = "$$(cat ${.TARGET} 2>/dev/null)" ] || \ + printf '%s\n' "$$newfile" >${.TARGET} esdb.dir.db: esdb.dir ${MKESDB} -m -o ${.TARGET} ${.ALLSRC} esdb.alias: ${SUBDIR} - > $@ -.for i in ${SUBDIR} - cat ${i}/esdb.alias.${i} >>${.TARGET} -.endfor + newfile=$$(for i in ${SUBDIR}; do \ + cat $$i/esdb.alias.$$i; \ + done); \ + [ "$$newfile" = "$$(cat ${.TARGET} 2>/dev/null)" ] || \ + printf '%s\n' "$$newfile" >${.TARGET} esdb.alias.db: esdb.alias ${MKESDB} -m -o ${.TARGET} ${.ALLSRC} |