Mercurial > hg
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/ \ |