comparison Makefile @ 32471:014fa1ad5076

osx: override default exclude filter for pkgbuild To quote `man 1 pkgbuild`: --filter filter-expression By default, --root will include the entire contents of the given root-path in the package payload, except for any .svn or CVS directories, and any .DS_Store files. You can override these default filters by specifying one or more --filter options. Each filter-expression is an re_format(7) ``extended'' expression: any path in the root which matches any of the given expressions will be excluded from the pack- age payload. (Note that specifying even one --filter inhibits the default filters, so you must respecify the default fil- ters if you still want them to be used.) It turns out the default filter these days *also* includes .git and .hg. Notice how that filter expression is a regular expression? That (presumably unintentionally) prevents a file named "chg" or "_hg" from getting included in the distribution. Many many thanks to spectral@ for trying to include a _hg file which led us to figure this bug out. Bug filed with Apple for this as rdar://problem/32437369, mentioning both the gap in documentation and the wrong defaults.
author Augie Fackler <augie@google.com>
date Fri, 26 May 2017 20:03:05 -0400
parents 2daba41c3b80
children a38ed42cd23c
comparison
equal deleted inserted replaced
32470:0e93dc8c0f9f 32471:014fa1ad5076
161 rm -rf build/mercurial 161 rm -rf build/mercurial
162 /usr/bin/python2.7 setup.py install --optimize=1 \ 162 /usr/bin/python2.7 setup.py install --optimize=1 \
163 --root=build/mercurial/ --prefix=/usr/local/ \ 163 --root=build/mercurial/ --prefix=/usr/local/ \
164 --install-lib=/Library/Python/2.7/site-packages/ 164 --install-lib=/Library/Python/2.7/site-packages/
165 make -C doc all install DESTDIR="$(PWD)/build/mercurial/" 165 make -C doc all install DESTDIR="$(PWD)/build/mercurial/"
166 # Place a bogon .DS_Store file in the target dir so we can be
167 # sure it doesn't get included in the final package.
168 touch build/mercurial/.DS_Store
166 # install zsh completions - this location appears to be 169 # install zsh completions - this location appears to be
167 # searched by default as of macOS Sierra. 170 # searched by default as of macOS Sierra.
168 install -d build/mercurial/usr/local/share/zsh/site-functions/ 171 install -d build/mercurial/usr/local/share/zsh/site-functions/
169 install -m 0644 contrib/zsh_completion build/mercurial/usr/local/share/zsh/site-functions/hg 172 install -m 0644 contrib/zsh_completion build/mercurial/usr/local/share/zsh/site-functions/hg
170 # install bash completions - there doesn't appear to be a 173 # install bash completions - there doesn't appear to be a
174 install -d build/mercurial/usr/local/hg/contrib/ 177 install -d build/mercurial/usr/local/hg/contrib/
175 install -m 0644 contrib/bash_completion build/mercurial/usr/local/hg/contrib/hg-completion.bash 178 install -m 0644 contrib/bash_completion build/mercurial/usr/local/hg/contrib/hg-completion.bash
176 mkdir -p $${OUTPUTDIR:-dist} 179 mkdir -p $${OUTPUTDIR:-dist}
177 HGVER=$$((cat build/mercurial/Library/Python/2.7/site-packages/mercurial/__version__.py; echo 'print(version)') | python) && \ 180 HGVER=$$((cat build/mercurial/Library/Python/2.7/site-packages/mercurial/__version__.py; echo 'print(version)') | python) && \
178 OSXVER=$$(sw_vers -productVersion | cut -d. -f1,2) && \ 181 OSXVER=$$(sw_vers -productVersion | cut -d. -f1,2) && \
179 pkgbuild --root build/mercurial/ \ 182 pkgbuild --filter \\.DS_Store --root build/mercurial/ \
180 --identifier org.mercurial-scm.mercurial \ 183 --identifier org.mercurial-scm.mercurial \
181 --version "$${HGVER}" \ 184 --version "$${HGVER}" \
182 build/mercurial.pkg && \ 185 build/mercurial.pkg && \
183 productbuild --distribution contrib/macosx/distribution.xml \ 186 productbuild --distribution contrib/macosx/distribution.xml \
184 --package-path build/ \ 187 --package-path build/ \