Mercurial > hg
comparison Makefile @ 32575:197eb93560b3 stable
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 | fcddcf442e4f |
children | 501d48bda912 |
comparison
equal
deleted
inserted
replaced
32574:870248603a4e | 32575:197eb93560b3 |
---|---|
162 rm -rf build/mercurial | 162 rm -rf build/mercurial |
163 /usr/bin/python2.7 setup.py install --optimize=1 \ | 163 /usr/bin/python2.7 setup.py install --optimize=1 \ |
164 --root=build/mercurial/ --prefix=/usr/local/ \ | 164 --root=build/mercurial/ --prefix=/usr/local/ \ |
165 --install-lib=/Library/Python/2.7/site-packages/ | 165 --install-lib=/Library/Python/2.7/site-packages/ |
166 make -C doc all install DESTDIR="$(PWD)/build/mercurial/" | 166 make -C doc all install DESTDIR="$(PWD)/build/mercurial/" |
167 # Place a bogon .DS_Store file in the target dir so we can be | |
168 # sure it doesn't get included in the final package. | |
169 touch build/mercurial/.DS_Store | |
167 # install zsh completions - this location appears to be | 170 # install zsh completions - this location appears to be |
168 # searched by default as of macOS Sierra. | 171 # searched by default as of macOS Sierra. |
169 install -d build/mercurial/usr/local/share/zsh/site-functions/ | 172 install -d build/mercurial/usr/local/share/zsh/site-functions/ |
170 install -m 0644 contrib/zsh_completion build/mercurial/usr/local/share/zsh/site-functions/hg | 173 install -m 0644 contrib/zsh_completion build/mercurial/usr/local/share/zsh/site-functions/hg |
171 # install bash completions - there doesn't appear to be a | 174 # install bash completions - there doesn't appear to be a |
175 install -d build/mercurial/usr/local/hg/contrib/ | 178 install -d build/mercurial/usr/local/hg/contrib/ |
176 install -m 0644 contrib/bash_completion build/mercurial/usr/local/hg/contrib/hg-completion.bash | 179 install -m 0644 contrib/bash_completion build/mercurial/usr/local/hg/contrib/hg-completion.bash |
177 mkdir -p $${OUTPUTDIR:-dist} | 180 mkdir -p $${OUTPUTDIR:-dist} |
178 HGVER=$$((cat build/mercurial/Library/Python/2.7/site-packages/mercurial/__version__.py; echo 'print(version)') | python) && \ | 181 HGVER=$$((cat build/mercurial/Library/Python/2.7/site-packages/mercurial/__version__.py; echo 'print(version)') | python) && \ |
179 OSXVER=$$(sw_vers -productVersion | cut -d. -f1,2) && \ | 182 OSXVER=$$(sw_vers -productVersion | cut -d. -f1,2) && \ |
180 pkgbuild --root build/mercurial/ \ | 183 pkgbuild --filter \\.DS_Store --root build/mercurial/ \ |
181 --identifier org.mercurial-scm.mercurial \ | 184 --identifier org.mercurial-scm.mercurial \ |
182 --version "$${HGVER}" \ | 185 --version "$${HGVER}" \ |
183 build/mercurial.pkg && \ | 186 build/mercurial.pkg && \ |
184 productbuild --distribution contrib/macosx/distribution.xml \ | 187 productbuild --distribution contrib/macosx/distribution.xml \ |
185 --package-path build/ \ | 188 --package-path build/ \ |