summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2016-10-14Major updates to Contribution Guide (#1968)Adam J. Stewart1-127/+401
* Major updates to Contribution Guide * Grammar changes * Fix missing/extra backticks * Rewording, links, and tips added
2016-10-12Use cYAML if it is available in Python. (#2010)Todd Gamblin2-4/+11
2016-10-12Mock up Xcode devdir to make Qt5 work on Mac OS X (#1832)Ben Boeckel3-5/+102
* build_environment: allow compilers to set up an environment * clang: mock up a toolchain directory for xcode Some projects ignore CC and CXX flags and instead use xcode to find the toolchain. Clang on Apple should set up the environment properly. Arguably, every compiler could do this on Apple, but let's see how this works out just for AppleClang for now. The Documentation directory is ~1.7G and the excluded platforms add up to about 7G. Ignoring swift saves another 500M. The resulting Xcode.app copy is in the 2G range. * compiler: set member variables early This is required so that later methods can query things such as the version of the compiler. * compiler: support finding the real path of the compiler On Apple, the /usr/bin compilers are actually wrapping tools themselves which query xcrun for the currently selected Xcode installation. Pierce this veil and get the real, full path the to underlying compilers instead. * icu4c: install with rpath On macOS, icu installs with a library ID of the library name. Enabling rpath makes its ID its full installed path which lets Qt5 link against it successfully. * qt: no -no-gtkstyle flag on Qt5 on macOS
2016-10-12spack list : updated documentation (#2004)Massimiliano Culpo1-16/+7
* spack list : updated documentation * spack list : removed space before ':'
2016-10-11Documentation for modules configuration options (#1685)Glenn Johnson1-0/+35
This PR add documentation for the `suffixes` and `hash_length` options for modules.yaml. This resolves #1416.
2016-10-11Make `insecure` option work with curl AND git. (#1786)Todd Gamblin3-7/+39
2016-10-11environment modifications : permit to pass parameters along with file to be ↵Massimiliano Culpo3-3/+20
sourced (#1626)
2016-10-11Use python platform.system for system ID (#1499)Mario Melara2-8/+3
* Rebase and merging using platform.system Rebasing and merging using platform.system instead of uname -a. * Add missing import platform statement * Remove subprocess import Remove ununsed import subprocess to make changes flak8 compliant
2016-10-11Fix bug in `spack debug create-db-tarball`Todd Gamblin1-3/+19
- Fix a bug handling '/' characters in branch names. - Make tarballs use a descriptive name for the top-level directory, not just `opt`.
2016-10-11Roll my my own bit_length function for Python 2.6 compatibility.Todd Gamblin3-4/+11
2016-10-11Use a single lock file for stages and a single file for prefixes.Todd Gamblin5-18/+57
- Locks now use fcntl range locks on a single file. How it works for prefixes: - Each lock is a byte range lock on the nth byte of a file. - The lock file is ``spack.installed_db.prefix_lock`` -- the DB tells us what to call it and it lives alongside the install DB. n is the sys.maxsize-bit prefix of the DAG hash. For stages, we take the sha1 of the stage name and use that to select a byte to lock. With 100 concurrent builds, the likelihood of a false lock collision is ~5.36e-16, so this scheme should retain more than sufficient paralellism (with no chance of false negatives), and get us reader-writer lock semantics with a single file, so no need to clean up lots of lock files.
2016-10-11Add tests for locks with byte ranges.Todd Gamblin1-42/+150
2016-10-11Fix bug with lock upgrades.Todd Gamblin1-12/+16
- Closing and re-opening to upgrade to write will lose all existing read locks on this process. - If we didn't allow ranges, sleeping until no reads would work. - With ranges, we may never be able to take some legal write locks without invalidating all reads. e.g., if a write lock has distinct range from all reads, it should just work, but we'd have to close the file, reopen, and re-take reads. - It's easier to just check whether the file is writable in the first place and open for writing from the start. - Lock now only opens files read-only if we *can't* write them.
2016-10-11Add base32_prefix_bits function to get prefix of DAG hash as an int.Todd Gamblin2-4/+61
2016-10-11Add byte-range parameters to llnl.util.lockTodd Gamblin1-19/+40
2016-10-11Remove need to touch lock files before using.Todd Gamblin6-38/+68
- Locks will now create enclosing directories and touch the lock file automatically.
2016-10-11Make llnl.util.lock use file objects instead of low-level OS fds.Todd Gamblin2-18/+20
- Make sure we write, truncate, flush when setting PID and owning host in the file.
2016-10-11stage : try to remove dead links only of folder that you actually care aboutalalazo2-14/+44
A use case where the previous approach was failing is : - more than one spack process running on compute nodes - stage directory is a link to fast LOCAL storage In this case the processes may try to unlink something that is "dead" for them, but actually used by other processes on storage they cannot see.
2016-10-11lockfiles : creates directory for locks if not already presentalalazo1-0/+2
2016-10-11diy : removed global write lock on the dbalalazo1-34/+31
2016-10-11uninstall : removed global lockalalazo2-16/+15
2016-10-11unit tests : fixed failing testsalalazo1-1/+4
2016-10-11install : finer graned locking for install commandalalazo5-30/+97
2016-10-11Fixed set operation from undefined += to a union (#1963)James Wynne III1-1/+2
Fixed flake8 issues
2016-10-11spack list : merged package-list into list (#1932)Massimiliano Culpo3-128/+116
* spack list : merged package-list into the command * list : removed option for case sensitivity
2016-10-11Make CMake-based builds more verbose by default. (#1988)Kelly Thompson1-1/+2
2016-10-11uninstall : permits to uninstall all installed software fixes #1477 (#1973)Massimiliano Culpo1-30/+38
2016-10-11md5 : normalizes input before computing the md5 fixes #1508 (#1977)Massimiliano Culpo1-2/+13
Bottomline : - fetcher change the current working directory - relative paths were resolved differently depending on the prder f evaluation
2016-10-07Add documentation for standard python repositories. (#1970)Jean-Paul Pelteret1-0/+30
Fixes #1939
2016-10-07Check for `-r` in ccld mode too (#1972)Isuru Fernando1-2/+2
2016-10-07fixes #858 (#1961)Massimiliano Culpo1-1/+1
Fix spack uninstall -f
2016-10-06Restore default RPATH settings but allow packages to limit to immediate ↵Todd Gamblin2-2/+14
deps. (#1954) - Some packages (netcdf) NEED RPATHs for transitive deps. - Others (dealii) will exceed OS limits when the DAG is too large.
2016-10-06Fix bugs preventing readthedocs from rebuilding the documentation (#1945)Adam J. Stewart2-14/+12
2016-10-06[Bug Fix (and docs too)] : Do not select @develop version by default (#1933)Elizabeth Fischer2-5/+47
* This fixes a bug in concretization. Before the recent change to the algorithm, the intent was that the @develop version, although "greater" than numberic versions, is never preferred BY DEFAULT over numeric versions. To test this... suppose you have a package with no `preferred=True` in it, and nothing in `packages.yaml`, but with a `develop` version. For the sake of this example, I've hacked my `python/package.py` to work this way. Without bugfix (WRONG: user should never get develop by default): ``` python@develop%clang@7.3.0-apple~tk~ucs4 arch=darwin-elcapitan-x86_64 ... ``` With bugfix (RIGHT: largest numeric version selected): ``` python@3.5.2%clang@7.3.0-apple~tk~ucs4 arch=darwin-elcapitan-x86_64 ... ``` * Documented version selection in concretization algo. * Fix typos * flake8
2016-10-06add contribution guide focused on Git and PRs (#1664)Denis Davydov2-0/+248
2016-10-06Fix various documentation bugs (#1678)Adam J. Stewart8-108/+97
* Fix various documentation bugs * Keep long option names, but don't include in Command Index * Use long option name * Explicitly designate sections to be listed in the Command Index * Consistent menu bar titles
2016-10-06Fixes bug closing Executable file io-streams (#1890)Matt Belhorn1-3/+3
Input/output/error streams not directed to None or 'str' were not being closed because `close()` method was being called on the argument value (a string type) instead of the open file descriptor object.
2016-10-06Fix fetch() method. Was being called with "wrong" arguments, raising ↵Elizabeth Fischer1-1/+1
exception. (#1916) DIYFetchBugfix
2016-10-06Fix Issues with non-numeric versions, as well as preferred=True (#1561)Elizabeth Fischer3-39/+113
* Fix bug in handling of precedence of preferred=True vs. versions given in packages.yaml (#1556) * Standardized comparison of versions: numeric versions are always greater than non-numeric versions; and non-numeric versions are sorted alphabetically. This is a) simple b) ensures that non-numeric versions (such as 'develop') in package.py are not chosen ahead of numeric versions, when nothing is specified in packages.yaml Fixes Issue #1557 * Removed debugging output * Fix variable shadowing bug * Ensure develop < numeric version. * Bug fix. * Passes all unit tests in versions.py * flake8 fixes * flake8 fixes * Changed type test to be more correct. See http://stackoverflow.com/questions/8203336/difference-between-int-and-numbers-integral-in-python
2016-10-05Handle packages with unparseable extensions (#1758)scheibelp6-21/+21
This closes #1757 which provides an example of a url scheme where the version appears after the extension. Instead of extending the parsing logic to handle this case, this commit allows the user to specify their extension type. This helps Spack choose the appropriate decompressor and mirror archive filename.
2016-10-05docs/getting_started: s/Macintosn/Macintosh/; (#1928)Geoffrey Oxberry1-1/+1
2016-10-05Documentation Improvements for SC16 (#1676)Elizabeth Fischer10-867/+2757
* Transferred pending changes from efischer/develop * 1. Rewrite of "Getting Started": everything you need to set up Spack, even on old/ornery systems. This is not a reference manual section; items covered here are covered more systematically elsewhere in the manual. Some sections were moved here from elsewhere. 2. Beginning to write three methods of application developer support. Two methods were moved from elsewhere. * Edits... * Moved sections in preparation for additional text to be added from old efischer/docs branch. * Moved 2 more sections. * Avoid accid * Applied proofreading edits from @adamjstewart * Fixed non-standard section characters. * Moved section on profiling to the developer's guide. * Still working on Spack workflows... * Finished draft of packaging_guide.rst * Renamed sample projects. * Updates to docstrings * Added documentation to resolve #638 (content taken from #846) * Added section on resolving inconsistent run dependencies. Addresses #645 * Showed how to build Python extensions only compatible with certain versions of Python. * Added examples of getting the right behavior from depends_on(). See #1035 * Added section on Intel compilers and their GCC masquerading feature. Addresses #638, #1687. * Fixed formatting * Added fixes to filesystem views. Added a caveats section to ``spack setup``. * Updated section on Intel compiler configuration because compiler flags currently do not work (see #1687) * Defined trusted downloads, and updated text based on them. (See #1696) * Added workflow to deal with buggy upstream software. See #1683 * Added proper separation between Spack Docs vs. Reference Manual * Renamed spack_workflows to workflows. Resolves a conflict with the .gitignore file. * Removed repeated section. * Created new "Vendor Specific Compiler Configuration" section and organized existing Intel section into it. Added new PGI and NAG sections; but they need to be expanded / rewritten based on the existing text plus research through Spack issues on GitHub. * Fixed text on `spack load --dependencies` to conform to reality. See #1662 * Added patching as option for upstream bugfixes. * Added section on using licensed compilers. * Added section on non-downloadable tarballs. * Wrote sections on NAG and PGI. Arranged compilers in alphabetical order. * Fix indent. * Fixed typos. * Clarified dependency types. * Applied edits from Adam J. Stewart. Spellchecked workflows and getting_started. * Removed spurious header * Fixed Sphinx errors * Fixed erroneous symbol in docstring. * Fix many typos and formatting problems. * Spacing changes * Added section on fixing Git problems. See #1779 * Fixed signature of install() method. * Addressed system packages in greater detail. See #1794 #1795 * Fixed typos * Fixed quotes * Duplicate section on Spack profiling removed from configuration.rst. It had earlier been moved to developer_guide.rst, where it fits better. * Minor edits - Tweak supported platform language. - Various small changes to the new getting started guide. * Fixed bug with quotes.
2016-10-05New command flag: spack install --dependencies-only (#1603)Elizabeth Fischer5-23/+40
* 1. Renamed ignore_deps variable to install_deps (use positive logic). UI remains the same. 2. install_self kwarg added to do_install(). Enables installation of a package's dependencies without installing the package itself. 3. Added `spack install --dependencies-only <package>` command. * Flak8 fixes * Indentation problem
2016-10-05Add package for CONVERGE CFD (#1905)Adam J. Stewart1-0/+5
2016-10-05Added missing function for CMake builds. (#1250)Elizabeth Fischer1-9/+15
* Added missing function for CMake builds. * Update build_environment.py * std_cmake_args Changed std_cmake_args to use get_std_cmake_args(). * Update build_environment.py Delete additional lines subsumed by get_std_cmake_args() * flake8.
2016-10-04Read-only locks should close fd before opening for write. (#1906)Todd Gamblin2-0/+37
- Fixes bad file descriptor error in lock acquire, #1904 - Fix bug introduced in previous PR #1857 - Backported fix from soon-to-be merged fine-grained DB locking branch.
2016-10-04Fix some documentation build warnings. (#1902)Todd Gamblin3-15/+13
- Fix issue with package_list.py regeneration confusing Sphinx. - Add -E option to avoid caching and make Sphinx happy.
2016-10-04Rework build environment and cc to use smaller RPATHs. (#1894)Todd Gamblin3-13/+108
- Fixed up dependency management so that: - build deps go in PATH and -I - link deps go in -L args - only *immediate* link deps are RPATH'd The latter reduces the number of libraries that need to be added to DT_NEEDED / LC_RPATH. This removes redundant RPATHs to transitive dependencies.
2016-10-04Fixes #1893: missing importTodd Gamblin1-0/+1
2016-09-30Fix read locks on read-only file systems (#1857)Michael Kuhn1-1/+2