Commit Graph

284 Commits

Author SHA1 Message Date
Mads Kiilerich
7f5af5ba4c config: introduce "built-in" default configuration settings in default.d
This helps providing a more consistent user experience on all platforms and
with all packaging.

The exact location of default.d depends on how Mercurial is installed and
whether it is 'frozen'. The exact location should never be relevant to users
and is intentionally not explained in details in the documentation. It will
however always be next to the help and templates files.

Note that setting HGRCPATH also disables these defaults. I don't know if that
should be considered a bug or a feature.
2014-09-04 21:36:35 +02:00
Kyle Lippincott
15ea39170d setup: set mode 644 or 755 on installed files 2014-09-30 17:13:54 -07:00
Mads Kiilerich
69f5c2ecc6 ssl: on OS X, use a dummy cert to trick Python/OpenSSL to use system CA certs
This will give PKI-secure behaviour out of the box, without any configuration.

Setting web.cacerts to any value or empty will disable this trick.

This dummy cert trick only works on OS X 10.6+, but 10.5 had Python 2.5 which
didn't have certificate validation at all.
2014-09-26 02:19:48 +02:00
Mads Kiilerich
03327f4889 osx: create dmg with installer instead of zip
OS X would offer to expand the zip so the (multi file) installer inside it
could be run ... but that would leave the expanded zip folder around.

Instead, use a .dmg file that automatically will be mounted - that seems more
common on OS X.

Still, there is two levels of levels of clicking before actually launching the
installer. Having a single file installer would be better ... but seems to be
hard. A more feasible improvement would be some fancy layout inside the .dmg .
2014-08-31 10:24:25 +02:00
Mads Kiilerich
5d1360e0ed cleanup: make sure we always access members of imported modules
This will make sure we get import errors, even if demandimport is enabled.

This will also mute some pyflakes 'imported but unused' warnings.
2014-08-15 04:37:45 +02:00
Augie Fackler
ea755c45b4 Merge with stable. 2014-07-06 15:39:01 -04:00
Alex Gaynor
f93b638918 setup: fixed for Pythons which don't have a CFLAGS
Specifically this is observed to happen on the PyPy one gets from homebrew
2014-07-05 07:31:08 -07:00
Thomas Arendsen Hein
aedd3b060c setup.py, make: avoid problems with outdated, existing hgext/__index__.py*
"make clean" already removed __index__.py[cdo], but not the __index__.py
(automatically generated by "python setup.py build_hgextindex").

"setup.py build_hgextindex" did not generate a new index if file
__index__.py[cdo] already existed, because if __index__.py was removed,
the compiled file containing the old information was imported and used.
Generate an empty file (with a new timestamp to generate a new .py[cdo])
instead and make mercurial.extensions ignore the unset docs attribute.

One of the problems was a failed test-help.t, to reproduce:

$ rm hgext/__index__.py*
$ echo 'docs = {"mq": "dummy"}' > hgext/__index__.py
$ make test-help.t

With this a "make clean" or "python setup.py build_hgextindex" helps.
2014-05-05 16:54:15 +02:00
Matt Mackall
4e8380a6a4 setup: make Xcode 5.1 check less specific
Was failing on "5.1\n".
2014-05-27 10:31:59 -07:00
Kent Frazier
ddcb0f363a setup.py: fix C extension compilation issue with OS X 10.9 and Xcode 5.1 2014-04-15 16:27:12 -04:00
Augie Fackler
2029c18034 setup.py: fix 2.4 breakage in 77ab0abb 2014-03-12 18:28:57 -04:00
Augie Fackler
6e7749ad7e setup: handle more invalid python3 syntax
This should keep the file portable to both python2 and python3.
2013-09-19 15:38:42 -04:00
Augie Fackler
428555deb5 setup.py: move from dict() construction to {} literals
The latter are both faster and more consistent across Python 2 and 3.
2014-03-12 13:29:29 -04:00
Matt Mackall
eb09e501b5 tests: fix unused imports from inotify removal caught by pyflakes 2014-03-04 09:56:59 -06:00
Matt Mackall
66c8bd54e8 extensions: remove the inotify extension (BC)
This extension has always had correctness issues and has been
unmaintained for years. It is now removed in favor of the third-party
hgwatchman which is maintained and appears to be correct.

Users with inotify enabled in their config files will fall back to
standard status performance.
2014-03-01 16:20:15 -06:00
Wei, Elson
2a24db69d7 setup: check if mercurial/util.h has been modified
Before, if mercurial/util.h was modified but *.c wasn't, no extension
was rebuilt.
2013-09-13 10:00:57 +08:00
Mads Kiilerich
af3a71e28b setup: make error message for missing Python headers more helpful 2013-04-12 16:55:34 -04:00
Bryan O'Sullivan
8f78d582d5 scmutil: rewrite dirs in C, use if available
This is over twice as fast as the Python dirs code. Upcoming changes
will nearly double its speed again.

perfdirs results for a working dir with 170,000 files:
  Python     638 msec
  C          244
2013-04-10 15:08:27 -07:00
Isaac Jurado
5c5aad9d45 setup.py: properly discard trust warning.
This modification was missing from the 4a4aff3d70bd changeset.
2013-04-02 16:03:10 +02:00
Benoit Boissinot
0d369ef57d setup.py: ignore warnings from obsolete
Fix version detection with recent hg versions.
2013-03-04 10:05:52 +01:00
Benoit Boissinot
ba8b143893 setup.py: add metadata to register package to PyPI
This allows updating PyPI with just 'setup.py register' (assuming the user is
an owner or maintainer of the PyPI package).
2013-03-04 10:13:28 +01:00
Bryan O'Sullivan
af56dbda30 setup: print subprocess stderr if there is any
I just spent 1.5 days trying to debug a failing buildbot because
setup.py was silently dropping the errors that were being printed
by in-place hg.
2012-11-13 09:55:26 -08:00
Adrian Buehlmann
d768b47592 exewrapper: adapt for legacy HackableMercurial
We give up using CPython's PythonXX.lib import libraries (and Python.h), and
now "manually" call the LoadLibrary() / GetProcAddress() Windows API's instead.

If there is a "hg-python" subdirectory (the canonical directory name for
HackableMercurial's private Python copy) next to the hg.exe, we load the
pythonXX.dll from there (feeding an absolute path to LoadLibrary) and we set
Py_SetPythonHome() to that directory, so that the Python libraries are used
from there as well.

If there is no "hg-python" subdir found next to the hg.exe, we do not feed an
absolute path to LoadLibrary. This continues to allow to find a globally
installed Python DLL, as before this change - that is, without having to edit,
delete, rename, or configure anything.

Note that the hg.exe built is still bound to a *specific* major version of the
pythonXX.dll (e.g. python27.dll). What version it is, is inferred from the
version of the python interpreter that was used when calling setup.py. For
example

  C:\python27_x86\python.exe setup.py build_hgexe -i --compiler=mingw32

builds a hg.exe (using the mingw32 tool chain) bound to (x86) Python 2.7. And

  C:\python27_x86\python.exe setup.py build_hgexe -i

builds the same using the Microsoft C compiler/linker. (Note that the Microsoft
toolchain combined with x64 CPython can be used to build an x64 hg.exe.)

setup.py is changed to write the name of the pythonlib into the generated header
file "mercurial/hgpythonlib.h", which is #included by exewrapper.c. For a Python
2.7 build, it for example contains:

  #define HGPYTHONLIB "python27"

exewrapper.c then uses HGPYTHONLIB for the name of the Python dll to load.

We don't want to track mercurial/hgpythonlib.h, so we add it to .hgignore.
2012-08-07 11:04:41 +02:00
Bryan O'Sullivan
6c7ac8b7de setup: calculate version more correctly
The old calculation code failed to properly identify revs that
weren't tagged, leaving us with a version of "unknown" most of the
time during development.
2012-10-05 13:44:52 -05:00
Adrian Buehlmann
fd6785ba1c pathencode: new C module with fast encodedir() function
Not yet used (will be enabled in a later patch).

This patch is a stripped down version of patches originally created by
Bryan O'Sullivan <bryano@fb.com>
2012-09-18 11:43:30 +02:00
Adrian Buehlmann
b303a00fae setup: fix build_hgexe for mingw32 compiler
Fixes

  python setup.py build_hgexe -i --compiler=mingw32
2012-07-25 16:50:22 +02:00
Bryan O'Sullivan
ea2526a3d4 setup: disable -mno-cygwin if building under mingw32
This gcc option has been deprecated since at least 2009 (gcc 4.4),
and it causes compilations to fail entirely with gcc 4.6.x.

Upstream distutils bug: http://bugs.python.org/issue12641
2012-07-06 20:19:55 -07:00
Adrian Buehlmann
7e44d18d42 setup: compile hg.exe
This implements a new command

  $ python setup.py build_hgexe -i

which places the hg.exe in the root of the source tree.
2012-06-29 13:10:48 +02:00
Augie Fackler
c0cf243849 httpclient: omit tests for the client since we don't run them anyway 2012-05-19 09:34:25 -05:00
Brodie Rao
a706d64a2c cleanup: replace naked excepts with except Exception: ... 2012-05-12 16:02:46 +02:00
Brodie Rao
c577fac135 cleanup: replace naked excepts with more specific ones 2012-05-12 16:02:45 +02:00
Brodie Rao
d6a6abf2b0 cleanup: eradicate long lines 2012-05-12 15:54:54 +02:00
Steven Stallion
d79ff306e5 plan9: initial support for plan 9 from bell labs
This patch contains support for Plan 9 from Bell Labs. A README is
provided in contrib/plan9 which describes the port in greater detail.
A new extension is also provided named factotum which permits the
factotum(4) authentication agent to provide credentials for HTTP
repositories. This extension is also applicable to other POSIX
platforms which make use of Plan 9 from User Space (aka plan9ports).
2012-04-08 12:43:41 -07:00
Brendan Cully
19039ca025 setup.py: don't call splitlines twice on the output of xcodebuild (issue3277) 2012-03-02 10:42:12 -08:00
Greg Ward
86216402d9 setup: handle output from Apple's Xcode 4.3 better (issue3277)
Apparently, it prints nothing at all if the user installed only the
command-line tools. In that case, don't try to parse the empty output
-- just assume they have Xcode >= 4.
2012-02-27 08:54:26 -05:00
Pascal Quantin
fe27d67b3c setup: fix py2exe generation broken by c7ccdf21c98c (issue3116)
Py2exe is patching default distutils Distribution class. This patch ensures
that the right one is taken when calling hgdist class.
2011-11-20 19:14:36 +01:00
Matt Mackall
8ff3689535 setup: backout 4c2574ae2b6b
Change wasn't compatible with Python 2.x
2011-11-17 23:01:58 -06:00
Simon Heimberg
77b258d449 setup: raise when executing with python3 without c2to3 argument 2011-11-12 02:08:01 +01:00
Simon Heimberg
302466e126 setup: support executing with python3 including 2to3
Merge the code from contrib/setup3.py in setup.
The argument for executing is marked as experimental.

Reason: The file in contrib was outdated (packages, cmdclass, ...)
2011-08-21 15:23:43 +02:00
Simon Heimberg
316a653bf9 setup: hgbuildmo inherits from Command
hgbuildmo does not need anything provided by the build class.
2011-11-01 20:13:53 +01:00
Simon Heimberg
2378dbf777 setup: make script executable with python3
Replace the incompatible print statement. Writing a warning to stderr is a good
idea anyway.
2011-11-12 02:07:55 +01:00
Simon Heimberg
203f43b760 setup: subclass build command 2011-11-01 20:13:53 +01:00
Simon Heimberg
44d04f155e setup: has_ext_modules always returns false when pure is specified
When pure is specified ext_modules is emptied in hgbuildpy.finalize_options.
Before this happens has_ext_modules returned True.
2011-11-01 20:13:52 +01:00
Simon Heimberg
50a770852b setup: subclass distribution instead of overwriting original 2011-07-23 05:57:39 +02:00
Yuya Nishihara
0a388fca31 setup: set whole env for running hg even if .hg doesn't exist (issue3073)
The issue was partially fixed by 4576ace762a0, but there were missing
variables to run build_hgextindex.
2011-10-31 00:42:32 +09:00
Matt Mackall
36e0650c7d setup: set env global earlier (3073) 2011-10-26 12:56:27 -05:00
Na'Tosha Bard
b3b49a3b91 setup: add largefiles to list of packages 2011-10-10 17:33:17 +02:00
Nikolaj Sjujskij
7548a4a762 building: build inotify for sys.platform='linux*'
If Python interpreter was built under Linux 3.x kernel, it reports
sys.platform to be 'linux3' (it is fixed for Python 3, but not for 2.x).
This cancels building inotify extension, which was built only for 'linux2'
platform. Improved test checks if sys.platform begins with 'linux', and together
with test for kernel version to be greater than 2.6 it seems to cover all known
cases.
2011-09-20 15:21:27 +03:00
Augie Fackler
4fdf4ee021 setup.py: use getattr instead of hasdattr 2011-07-25 16:08:57 -05:00
Yuya Nishihara
64bae20381 setup: add command to generate index of extensions
It generates prebuilt index of all extensions, which will be used by
frozen exe when running 'hg help extensions'.

Now py2exe invokes this command automatically.
2011-06-04 20:11:10 +09:00
Brendan Cully
6879cbeb5e Hardcoding ARCHFLAGS breaks the build against fink's python
Fink's python is either i386 or amd64, but not universal. Setting ARCHFLAGS to the
empty string produces a successful build against both OS X python and fink python.
The modules will no longer be universal -- if that is an issue, we can change the
test to extract ARCHFLAGS from distutils.sysconfig and remove ppc if necessary.
2011-05-14 22:07:58 -07:00
Zachary Gramana
eaa0630670 setup.py: workaround for missing bz2 module in IronPython
IronPython does not provide the bz2 module on its own.  This patch skips
importing it to allow setup to continue.

(minor tweaks by mpm)
2011-05-09 15:16:56 -04:00
Augie Fackler
1753857f5b Import new http library as mercurial.httpclient.
This is revision a4229f13c374 of
http://py-nonblocking-http.googlecode.com/ with a no-check-code
comment added to the end of each file using `for fi in $(hg manifest |
grep mercurial/httpclient/) ; echo '# no-check-code' >> $fi`.
2011-05-06 09:57:55 -05:00
Dan Villiom Podlaski Christiansen
9dfabab3ba util: add Mac-specific check whether we're in a GUI session (issue2553)
The previous test assumed that 'os.name' was "mac" on Mac OS X. This
is not the case; 'mac' was classic Mac OS, whereas Mac OS X has 'os.name'
be 'posix'.

Please note that this change will break Mercurial on hypothetical
non-Mac OS X deployments of Darwin.

Credit to Brodie Rao for thinking of CGSessionCopyCurrentDictionary()
and Kevin Bullock for testing.
2011-03-23 09:43:34 +01:00
Martin Geisler
47a3f1a049 merge with stable 2011-03-14 14:05:19 +01:00
Jon M. Dugan
83ac2d7b6b setup: fix mac build broken by 1564bc7b747b
Sometimes xcodebuild prints warnings to stderr, but runcmd() assumes anything
printed to stderr implies failure.  Since runcmd() was originally only
intended to run hg, this was fine until it was pressed into service for
running xcodebuild.  Thus: split runcmd() into two parts: runcmd(), which does
the minimal amount of work to run a subprocess, and runhg(), which calls
runcmd().
2011-03-13 17:39:33 -05:00
Steve Borho
d00322059c setup: remove unnecessary code for win32com (pywin32) 2011-03-13 08:50:06 -05:00
Dirkjan Ochtman
613f24735d setup.py: use StrictVersion instead of manual comparison 2011-03-12 13:02:03 +01:00
Alexander Solovyov
b3d02e2113 fix compiling of extensions for OS X and XCode 4.0 2011-03-12 12:42:20 +01:00
Dan Villiom Podlaski Christiansen
ec590d5cd4 explicitly close files
Add missing calls to close() to many places where files are
opened. Relying on reference counting to catch them soon-ish is not
portable and fails in environments with a proper GC, such as PyPy.
2010-12-24 15:23:01 +01:00
Dan Villiom Podlaski Christiansen
f385faac7a *: kill all unnecessary shebangs. 2010-10-26 12:18:39 +02:00
Patrick Mezard
4e97028b83 setup.py: write libdir as a python string literal 2010-10-09 15:40:29 -05:00
Dan Villiom Podlaski Christiansen
5804ab0e6c setup/hg: always load Mercurial from where it was installed.
This provides two new features:

- Mercurial may be installed into a non-standard location without
  having to set PYTHONPATH.
- Multiple installations can use Mercurial from different locations.
2010-08-17 15:44:38 +02:00
Nicolas Dumazet
5c3f9d1c72 setup: user-friendly error message if Python headers are missing 2010-10-08 21:43:21 +02:00
Martin Geisler
bdbf775ab7 setup: slight simplification 2010-09-26 21:37:42 +02:00
Renato Cunha
e3f3dfa6c3 setup.py: Add 'mercurial' as include dir for the inotify compiler.
This patch adds access to util.h for the inotify C module by adding the
"mercurial" directory as an include dir, enabling access to the macros defined
in util.h.
2010-07-02 16:21:36 -03:00
Renato Cunha
c1d27d1c4d setup.py: Adjustments to make setup.py run in py3k.
In py3k, subprocess.Popen.communicate's output are bytes objects. String
literals are Unicode objects. Thus, when a bytes object startswith method is
called, with string literals, it fails. What this patch does is:

 * Convert the string (unicode in py3k) literals to bytes objects;
 * As "bytes" is not a builtin in python < 2.6, it defines a "b" helper
 function that merely returns its argument, as suggested by Antoine Pitrou.
2010-07-02 16:21:34 -03:00
Christian Boos
400df6f4a9 setup: ignore failures to build optional inotify extension 2010-06-23 13:44:07 +02:00
Nicolas Dumazet
7f1a963829 pylint, pyflakes: remove unused or duplicate imports 2010-04-14 17:58:10 +09:00
Benoit Boissinot
6180612089 setup.py: don't use tabs 2010-03-24 19:44:30 +01:00
Dirkjan Ochtman
e95cb55390 setup: fail if bz2 is not available 2010-03-23 20:01:30 +01:00
Benoit Boissinot
92607edfec Do not use osutil.c with python 2.4 and Windows (issue1364)
Windows python 2.4 os.stat() reports times including DST offset, while osutil.c
reports the correct value, which makes status() systematically compare files
content. This bug is fixed in python 2.5. Using osutil.py instead of osutil.c
is 4x times slower on large repositories but current code is completely
unusable. Given few people are likely to use python 2.4 on Windows this
solution was considered a good trade-off compared to more invasive solutions
trying to address the offset issue.
2010-02-21 22:16:35 +01:00
Adrian Buehlmann
fb523c41d9 setup.py: fixing version info for Windows hg.exe (py2exe)
Fixes

  warning: py2exe: Version Info will not be included:
    could not parse version number ...

which was seen when doing nightly builds. hg.exe files
of nightly builds did not have any version info resoure,
which may cause problems with installers.

Also setting a copyright string for the version resource
(was missing).
2010-02-07 23:07:58 +01:00
Matt Mackall
8d99be19f0 many, many trivial check-code fixups 2010-01-25 00:05:27 -06:00
Matt Mackall
cd3ef170f7 Merge with stable 2010-01-19 22:45:09 -06:00
Matt Mackall
595d66f424 Update license to GPLv2+ 2010-01-19 22:20:08 -06:00
Martin Geisler
577446318e setup.py: keep Python 2.3 compatibility
Though we only support Python 2.4 or greater, we should keep setup.py
compatible with earlier versions on the syntactic level. Otherwise
people will simply get a SyntaxError when trying to install Mercurial
with an old version of Python. With this change, the setup.py file can
be imported with Python 2.3 and we then issue a friendly error message
when we detect that Python is too old.
2009-12-23 19:11:37 +01:00
Steve Borho
e46cd0e296 setup: ignore 'not importing' warnings during version detection
Python will issue an ImportWarning when seeing 'import locale' if
there is a locale/ directory present without a __init__.py file.

The warning is silent by default, but it somehow shows up anyway on
Windows when setup.py executed hg. The warning causes runcmd to panic
since it sees output on stderr.

This patch ignores warnings on stderr about not importing a package.
2009-12-05 14:18:31 -06:00
Christian Boos
2cf6c2ce31 setup: pass LD_LIBRARY_PATH to subprocess when determining version. 2009-11-09 17:41:21 +01:00
Christian Boos
b1a3260e08 setup: fix 3fd9b85b797a refactoring, propagate env to runcmd 2009-11-09 17:33:16 +01:00
Gilles Moris
261967d9c9 setup: refactor the version string to a subset of tag+tagdist-hash+date
Here is an array summarizing the mercurial version string:
      [A]       [B]   [C]           [D]
[1] clone      tag   clean  =>  tag
[2] clone      hash  clean  =>  latesttag+latesttagdistance-hash
[3] clone      tag   dirty  =>  tag+date
[4] clone      hash  dirty  =>  latesttag+latesttagdistance-hash+date
[5] archive    tag   clean  =>  tag
[6] archive    hash  clean  =>  latesttag+latesttagdistance-hash

Column [A]: Mercurial built from an hg *archive* or hg *clone* working directory
Column [B]: revision built has a *tag* or else default to the SHA1 *hash*
Column [C]: working tree *clean* or *dirty*
Column [D]: Mercurial version string

Over the previous version:
- row [5] did return just the node hash, now it returns the tag
- prepend the latest tag and the distance to it to rows [2][4][6]
- append also the date to row [3]; previously, it was just the tag
- the version string is with an empty string to avoid possible TypeError
  exceptions during string manipulations
- factorize the function to run hg commands; remove the error message as it is
  no more specific to the function.

This scheme enables to have first part of the version strings that can be
compared, whether it has been built from a tagged or untagged revision.
The second part of the version adds a hash for untagged revisions and today's
date if the working tree has local modifications.
As the version string does not contain spaces or special characters, it should
not break script parsing the 'hg version' command and should be usable for use
in file names.

The new code also ensure that the version string has exactly the same version
string, whether it has been built from an archive or from a clone.
2009-10-18 14:35:36 +02:00
Martin Geisler
524b665b54 help: move help topics from mercurial/help.py to help/*.txt
The help topics are loaded on demand so we wont hit the disk unless we
really have to.
2009-10-04 09:59:13 +02:00
Martin Geisler
a2bda0adf6 merge with crew-stable 2009-07-15 17:44:47 +02:00
Bryan O'Sullivan
b58896628b Merge with crew-stable 2009-07-14 17:21:10 -07:00
Bryan O'Sullivan
e538c31828 setup.py: don't pollute the current directory with temporary files 2009-07-14 17:18:45 -07:00
James Abbatiello
0d7eb15222 Don't copy hidden files/directories during setup.py install
This is useful if a copy of Mercurial is stored in a Subversion repository
so that the .svn directories don't get copied.
2009-07-14 22:42:05 -04:00
Alejandro Santos
77d606ac51 compat: use open() instead of file() everywhere 2009-07-05 11:01:30 +02:00
Dirkjan Ochtman
1d29e68744 change wiki/bts URLs to point to new hostname 2009-06-24 15:32:37 +02:00
Garth Roxburgh-Kidd
ec8fc1a93b fixed 0xc0150004 error building Mercurial under Python 2.6 for Windows 2009-05-28 17:03:35 +02:00
Martin Geisler
dcc3781fa0 setup: execute hg in C locale 2009-05-26 22:02:10 +02:00
Martin Geisler
350a0986a8 setup: handle trust warnings when determining version 2009-05-26 21:13:21 +02:00
Martin Geisler
27457436c6 setup: renamed l, e vars to out, err 2009-05-26 21:07:41 +02:00
Martin Geisler
da0be36295 Merge with stable 2009-12-23 19:18:03 +01:00
Martin Geisler
3afd6f9898 Merge with stable 2009-12-23 18:40:57 +01:00
Martin Geisler
24f2c1af20 setup: backout 47cfa8aa4b94
We decided that it is better to let the distributions install these
files themselves since they know where to put them.
2009-12-10 22:26:09 +01:00
Dan Villiom Podlaski Christiansen
a6c07a0720 setup: install some useful data files.
The selection is somewhat arbitrary. In the case of the Zsh completion
file, it will not conflict with the builtin Zsh completions: they
are in a file named `_mercurial', not `_hg'.
2009-11-30 21:54:34 +01:00
Martin Geisler
323bad57b9 setup: cleanup coding style 2009-12-03 20:50:00 +01:00
Dan Villiom Podlaski Christiansen
238d382291 setup: install translation files as package data
Remove the `install_package_data' subclass of `install_data' and use
the `package_data' functionality provided by distutils instead. As
package data must be located within the package directory, the data
files are now generated in the build directory.

To simplify the functionality of this change, the top-level `doc' and
`templates' directories have been moved into the `mercurial' package
directory.
2009-12-01 16:06:10 +01:00
Martin Geisler
30977ca6df setup: don't ship i18n directory
The directory was never actually used at runtime and other programs
don't ship it either.
2009-12-03 20:41:43 +01:00
Martin Geisler
a18ac5b4e2 setup: another newline if version could not be established. 2009-05-23 13:43:11 +02:00
Martin Geisler
2634f59be8 setup: add missing newline in warning 2009-05-23 00:24:00 +02:00
Jeremy Whitlock
eae140b922 setup: read .hg_archival.txt for version info (issue1670)
Previously, setup.py was enhanced to identify the Mercurial version
from either .hg/ or mercurial/__version__.py. When archives are
created using 'hg archive' or via hgweb, neither of those options are
available. However, there is a .hg_archival.txt file in the root of
the archive that has the information. This patch enhances setup.py to
identify the Mercurial version from the .hg_archival.txt file when
there is no .hg/ or mercurial/__version__.py available.
2009-05-22 21:03:06 +02:00
Christian Ebert
60c4e3cc03 setup.py: subprocess instead of os.popen, sys.stderr.write instead of print
Also check that .hg is a directory.
2009-05-22 14:26:58 +02:00
Martin Geisler
a100fe0b6c setup: require Python 2.4 2009-05-03 17:36:58 +02:00
Martin Geisler
4c6a32f451 setup: cleanup old left-over code 2009-05-03 00:41:09 +02:00
Jeremy Whitlock
94b6b92b9f Fix how setup.py identifies the Mercurial version.
There is a problem with setup.py where it will not identify the Mercurial
version properly when not being ran in within a repository even if
mercurial/__version__.py exists.

To fix, use mercurial.__version__.version when available before defaulting
to "unknown".  (Using mercurial.util.version() is not an option due to a
dependency issue where osutil can be referenced before it is built.)
2009-04-02 18:18:43 -06:00
Matt Mackall
9c307b1dee setup: remove spurious posix import 2009-04-03 12:37:44 -05:00
Matt Mackall
81073ba20c setup.py: fix version detection for tarball
- don't do version detection if there's no .hg directory
- shrink try: clause
- don't write __version__.py if version is unknown
  (we might overwrite the real version)
2009-03-06 09:15:47 -06:00
Martin Geisler
6c5bf586cb setup: run hg with empty HGRCPATH for robustness.
Otherwise a bad hgrc file can make the version detection fail.
2009-02-24 18:09:16 +01:00
Martin Geisler
a4fae9e3f1 setup: use sys.executable to call hg
Executing ".\hg" does not work on Windows, but we can instead ask
Python to execute hg.
2009-02-18 00:44:38 +01:00
Martin Geisler
bf5d4304c2 add --pure flag to setup.py
This flag will make the build_py step install the pure Python modules
in mercurial/pure/ into mercurial/ and furthermore prevent building
the C extensions.
2009-01-24 01:44:43 +01:00
Martin Geisler
7c52fb0c3f setup: get version number using pure Python modules 2009-01-29 19:25:25 +01:00
Martin Geisler
e7e00ca6f5 setup: do not use -c with msgfmt on Solaris (issue1489) 2009-01-28 10:32:15 +01:00
Martin Geisler
6d35a80a4a i18n: check format strings when building xx.mo files 2009-01-25 20:27:37 +01:00
Martin Geisler
8a1d290eb9 i18n: new build_mo command for setup.py
This command will generate .mo files under locale/ for the .po files
found under i18n/.
2009-01-15 00:11:54 +01:00
Martin Geisler
12b2d519d0 i18n: let Makefile generate i18n/hg.pot
The target update-pot extracts strings using pygettext and updates the
i18n/hg.pot file. The translators can then use msgmerge to merge the
new strings in hg.pot with their xx.po file when they want to.

The setup.py file now includes files under both templates/ and i18n/
as data files.
2009-01-15 00:10:54 +01:00
Benoit Boissinot
cf4007a70c recover when no version information is available 2009-01-15 11:41:59 +01:00
Matt Mackall
356502607f refactor version code
- simplify version detection code
- move detection code into setup.py
- move version reading function into util.py
- drop version.py code

This makes hg more closely follow its own recommendation of how to deal with
versioning your builds: use hg id in your build script.
2009-01-10 18:02:38 -06:00
Matt Mackall
d6a350a3b0 setup: warn about missing standard Python components 2008-12-31 17:59:58 -06:00
Augie Fackler
27e82b6a84 Add hgext.zeroconf to the package list so it gets installed by setup.py. 2008-10-12 22:56:43 +02:00
Petr Kodl
09cc67de2c osutil: implementation for Win32
Use information provided by FindFile... Win32 calls
to generate stat information without lstat call per file.
rwx bits in st_mode are ignored as they are not stored in Win32 fs
and Mercurial does not use them
Unicode path / path names over _MAX_PATH are intentionally not supported.
2008-09-14 09:57:33 -04:00
Peter Ruibal
30a2036f9e use Exception(args)-style raising consistently (py3k compatibility) 2008-09-08 13:07:00 +02:00
Dirkjan Ochtman
fcaabba3ec fix double indentation and trailing whitespace 2008-08-31 11:41:52 +02:00
Patrick Mezard
99f53b6386 highlight: split code to improve startup times 2008-08-25 23:04:56 +02:00
Dirkjan Ochtman
b4d9394e54 merge with crew-stable 2008-07-02 09:21:57 +02:00
Paul Moore
d7368594b4 Force email package to be loaded in py2exe
With Python 2.5, the email package is not fully loaded by py2exe, due to
dynamic imports which are not found by modulefinder. This breaks the patchbomb
extension. This patch forces the whole email package to be included so that
the dynamic imports work as expected.
2008-07-01 20:17:11 +01:00
Paul Moore
7113d144ac Add a batch file driver for Windows 2008-04-10 23:07:54 +02:00
Bryan O'Sullivan
8a988e392e manifest: improve parsing performance by 8x via a new C extension 2008-03-26 10:12:10 -07:00
Alexis S. L. Carvalho
317b2a0fec setup.py: hide compiler error messages while searching for inotify 2008-03-23 21:35:57 -03:00
Alexis S. L. Carvalho
552d87eaae setup.py: use a simplified custom version of CCompiler.has_function
The original one doesn't remove its temporary files and even creates
a temporary file in the CWD.
2008-03-14 01:45:17 -03:00
Alexis S. L. Carvalho
d897d40d93 setup.py: skip inotify if there's no inotify_add_watch
Debian Etch doesn't include a sys/inotify.h header, which makes it
impossible to compile _inotify.c, making hg uninstallable.

The cc.has_function() method is implemented by trying to compile a
simple C program.  Since there's no redirection involved all error
messages are sent to the terminal.  This is not particularly pretty
but at least it allows the installation to complete.
2008-03-13 19:50:03 -03:00
Bryan O'Sullivan
23adb6cef4 setup.py: os.uname is not available on Windows 2008-03-12 15:33:43 -07:00
Bryan O'Sullivan
08dc4f9063 Add inotify extension 2008-03-12 15:30:11 -07:00
Matt Mackall
a2dcecb2de filemerge: remove the hgmerge script
This is now better handled using [merge-tools] and [merge-patterns] in hgrc.
2008-02-03 19:29:05 -06:00
Steve Borho
478009f6bd win32: do not install bash hgmerge on Windows 2007-12-07 18:15:24 -06:00
Bryan O'Sullivan
e317f81ab3 Add osutil module, containing a listdir function.
This is similar to os.listdir, only it returns a sorted list of tuples.
2007-10-05 15:01:06 -07:00
Thomas Arendsen Hein
90d76a6ec9 Enable demandimport only in scripts, not in importable modules (issue605)
This way other applications can choose if and when they want this feature,
because it might be problematic if those applications rely on ImportError.
2007-08-18 11:37:08 +02:00
Bryan O'Sullivan
590b9213d3 Add Chris Mason's mpatch library.
The original repo is http://oss.oracle.com/mercurial/mason/mpatch
2007-07-17 09:39:30 -07:00
Christian Ebert
6d72ca9538 setup.py not executable: change instructions at beginning of file 2007-06-28 02:11:54 +02:00
Lee Cantey
7741f9fab9 Fix for including hgext in Windows compiled version.
From Shun-ichi GOTO via Mercurial mailing list.
2007-06-18 15:14:49 -07:00
Thomas Arendsen Hein
25fd95fb9c Include convert extension in packages setup
(reported by Christian Ebert and Eric Hopper)
2007-06-07 22:28:52 +02:00
Matt Mackall
e2bdd30747 Fix setup.py warning 2006-12-15 01:17:04 -06:00
Matt Mackall
a5b3ab332d Disable demandloading in setup.py 2006-12-14 20:31:33 -06:00
Matt Mackall
c9671962c2 Fix demandload bits of setup.py py2exe support 2006-12-14 20:23:25 -06:00
Matt Mackall
f17a4e1934 Replace demandload with new demandimport 2006-12-13 13:27:09 -06:00
Thomas Arendsen Hein
c6ffd9fee7 Check for at least having a final release of python 2.3.0 in setup.py
Mercurial uses features that are not in 2.3a1.
2006-10-31 10:50:16 +01:00
Brendan Cully
407377d02c Add a base85 codec 2006-10-06 13:01:54 -07:00
Thomas Arendsen Hein
1d3e2c4a3c Install all files/subdirectories below templates.
This is needed because styles are now in their own subdirectory.
2006-10-03 11:53:35 +02:00
Thomas Arendsen Hein
2152453c98 Applied coding style to setup.py 2006-10-03 11:30:59 +02:00
Eung-Ju PARK
03e548ea66 packagescan can't scan nested packages 2006-06-02 16:19:47 +09:00