{ "info": { "author": "Jehan", "author_email": "jehan@girinstud.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.3", "Topic :: Software Development :: Build Tools" ], "description": "=========\ncrossroad\n=========\n\n**Crossroad** is a command line tool to easily set up your shell\nenvironment for cross-compilation, on a GNU/Linux\ndistribution.\n\nBe aware that this is essentially a developer tool. Its target audience\nare developers working on UNIX systems (tested on GNU/Linux\nsystems: Fedora, Linux Mint, and Mageia, and expected to work on other\ndistributions), and wishing to cross-compile projects from the same\nplatform. It is not for end-users, and is useless in *running*\nsoftware, only **building** them.\n\n9 target environments are supported currently:\n\n- Windows (x86) 32-bit\n- Windows (x86) 64-bit\n- Android (arm)\n- Android (arm64)\n- Android (x86)\n- Android (x86-64)\n- Android (mips)\n- Android (mips64)\n- Native\n\nAnd 2 embedded ABI on ARM are barely tested and disabled.\n\n*Note: no differences are made between Windows platforms other than\n32/64-bit (in particular no software API versioning).\nThis is up to you to make your code portable or build with appropriate\nflags.*\n\nThis is Free Software, under the license `AGPL version 3`_.\n\nIf you liked this software, you are free to contact the author_,\nor even support_ him.\n\nAlso you are more than welcome to propose patches: bugfixes, or new\nfeatures, like support of more target environments, other shells than\n`bash` and `zsh`, etc.\nSee the `Contributing`_ section below.\n\nInstallation\n============\n\n`Crossroad` is a typical python-style project, relying on Python 3.3 or\nabove. You will also need either `7z` or `rpm2cpio` installed.\n\nTo install from `pypi`, just run::\n\n $ pip3 install crossroad\n\nOr download from the archive::\n\n $ ./setup.py install\n\nSetting-UP\n==========\n\n`Crossroad` does not need any particular cross-compilation tool to run\nat first, but it will tell you what you are missing to go further, and\nyou won't be able to enter a cross-compilation environment until this is\ninstalled.\n\nList targets with::\n\n $ crossroad --list-targets\n crossroad, version 0.8\n Available targets:\n - w64 Windows 64-bit\n - android-mips Generic Android/Bionic on MIPS\n - android-arm Generic Android/Bionic on ARM\n - native Native platform (x86_64 GNU/Linux)\n - android-mips64 Generic Android/Bionic on MIPS64\n - android-x86 Generic Android/Bionic on x86\n - android-x86-64 Generic Android/Bionic on x86-64\n - android-arm64 Generic Android/Bionic on ARM64\n\n Uninstalled targets:\n w32 Windows 32-bit\n\n See details about any target with `crossroad --help `.\n\nIn the above example, I can compile for Windows 64-bit, not 32-bit.\n\nTo get details about a target's missing dependencies, for instance\nWindows 32-bit::\n\n $ crossroad -h w32\n w32: Setups a cross-compilation environment for Microsoft Windows operating systems (32-bit).\n\n Not available. Some requirements are missing:\n - i686-w64-mingw32-gcc [package \"gcc-mingw-w64-i686\"] (missing)\n - i686-w64-mingw32-ld [package \"binutils-mingw-w64-i686\"]\n\nIt will return a list of required binaries that crossroad cannot find.\nIf you actually have them, the most likely reason is that you should\nupdate your `$PATH` with the right location. In the above example,\n`crossroad` could find your minGW linker, but not the compiler. It also\ninforms you of a possible package name (your distribution may use a\ndifferent name, but it would still give a useful hint for searching in\nyour package manager).\n\nInstall the missing requirements and run crossroad again::\n\n $ crossroad --list-targets\n crossroad, version 0.8\n Available targets:\n - w64 Windows 64-bit\n - w32 Windows 32-bit\n [\u2026 more output \u2026]\n $ crossroad -h w32\n w32: Setups a cross-compilation environment for Microsoft Windows operating systems (32-bit).\n\n Installed language list:\n - C\n Uninstalled language list:\n - Ada Common package name providing the feature: gnat-mingw-w64-i686\n - C++ Common package name providing the feature: g++-mingw-w64-i686\n - OCaml Common package name providing the feature: mingw-ocaml\n - Objective C Common package name providing the feature: gobjc++-mingw-w64-i686\n - fortran Common package name providing the feature: gfortran-mingw-w64-i686\n\nYou will notice that now `w32` is available in your list of target, but\nalso the specific help is more complete and will also tell you a list of\npossible languages that MinGW can handle if you installed additional\npackages.\n\n*Note: crossroad has actually been tested only with C and C++ projects.\nBut I welcome any usage report with other languages.*\n\nUsage\n=====\n\nThe full usage is available as a manual. Once installed, it is available\nwith `man crossroad`. The below preview presents the main usage examples.\n\nFrom a command line, run::\n\n $ crossroad w64 myproject\n\nThis will set up a *Windows 64-bit* cross-compilation environment called\n\"myproject\".\n\nYour prompt will also be slightly modified (only adding information.\nWhatever custom prompt hack you may have \u2014 for instance displaying\ninformation on a code repository \u2014 will be untouched) to show you are\nin your working cross-compilation environment.\n\n*Note: only `bash` and`zsh` are supported right now.*\n\nAll necessary environment variables for successful builds, like `PATH`,\n`LD_LIBRARY_PATH`, etc., are set for you.\nMoreover the crossroad command is modified once in a cross-compilation\nenvironment. You can `crossroad -h` or `crossroad help` to see the new\nlist of commands.\n\nYou are now ready to configure and compile any project for your target\nplatform.\n\nNote that several projects, even for a same target, won't share any data.\nFor instance if you have a GIMP and Blender both using libpng, you would\nhave to install it in both environments. This is because you usually\ndon't want to mix data from various projects and keep a clean slate.\nNevertheless if you wish a holdall project for a given target, you can\nalso do so.\n\nExample: autotools\n~~~~~~~~~~~~~~~~~~\n\nLet's imagine you want to compile any software with a typical GNU\ncompilation system, for Windows 64-bit.\n\n(1) **First enter crossroad**::\n\n $ crossroad w64 myproject\n\n *Normally here your shell prompt will be modified at this point.*\n\n(2) **Enter your source code**::\n\n $ cd /some/path/to/your/source/\n\n *In a typical autotools project, you will have here access to a\n `configure` script, or with ways to build one, for instance by\n running an `autogen.sh` first.*\n\n(3) **Configure your build**::\n\n $ crossroad configure\n\n There is no need to add a `--prefix`, a `--host`, or a `--build`.\n These are automatically and appropriately set up for you.\n\n *Of course you should add any other option as you would normally do\n to your `configure` step.*\n For instance if your project had a libjpeg dependency that you want\n to deactivate:\n\n $ crossroad configure --without-libjpeg\n\n See the `./configure --help` of a project for listing of its\n available options.\n\n Note: VPATH builds are also supported. You can run a configure from\n another directory this way::\n\n $ crossroad ../some/other/path/configure --without-libjpeg\n\n(4) Here the configure may fail if you miss any **dependency**. You may\n install many dependencies easily through crossroad. Crossroad relies\n on the Fedora repositories (it used to rely on openSUSE\n cross-platform builds but this was changed in crossroad 0.8) for\n this feature and provides basically a package manager for Windows\n cross-compiled packages (see the manual for more details on its\n features as you can also search packages, get info, uninstall them\n and so on). Let's say for instance that your project depends on\n glib. You could just run::\n\n $ crossroad install glib2\n\n Do this step as many times as necessary, until the configure step\n *3.* succeeds. Then go to the next step.\n\n(5) **Build** and install in the most common way possible::\n\n $ make\n $ make install\n\n(6) **Test**::\n\n $ make check\n\n This one may seem weird, but actually if you have Wine installed and\n registered in `binfmt_misc` to execute win32 binaries, `crossroad`\n set up properly the Wine environment so that it can find the\n executables and DLLs you installed with `make install`. As a\n consequence, a `make check` might just work, even though there is no\n certaincy, since this is not exactly the same as running on the native\n win32 platform. For the records, I have been able to run successful\n `make check` on projects as complicated as **GIMP**.\n Of course, a failed `make check` of Windows binaries in a GNU/Linux\n environment does not mean necessarily your build is a failure, because\n running win32 bin through `wine` will never be as ideal as running through\n an actual Windows OS (as you surely know).\n\n(7) All done! Just exit your cross-compilation environment with\n *ctrl-d* or `exit`.\n To test your binaries on an actual Windows machine, `crossroad`\n provides 2 tools.\n\n a) Make a zip of your whole cross-compiled tree with the following::\n\n $ crossroad --compress=mysoftware.zip w64 myproject\n\n This will create a zip file `mysoftware.zip` that you can just\n move over to your test Windows OS. Then uncompress it, and set or\n update your PATH environment variable with the `bin/` directory\n of this uncompressed prefix.\n\n *Note: only zip format supported for the moment, since it is the\n most common compression format for Windows.*\n\n b) If you are running Windows in a VM for instance, or are sharing\n partitions, you can just add a link in a shared directory.\n Just cd to the shared directory and run::\n\n $ crossroad --symlink w64 myproject\n\n This will create a symlink named `crossroad-w64-myproject/` to the\n \"myproject\" project for the \"w64\" target.\n Since the directory is shared, it should be visible in Windows as\n a normal directory.\n\n(8) Then run your app, and enjoy!\n\n*Note: this has been tested with success on many GNU projects,\ncross-compiled for Windows: cairo, babl, GEGL, glib, GTK+, libpng,\npango, freetype2, gdk-pixbuf, GIMP and many more.*\n\nExample: CMake\n~~~~~~~~~~~~~~~\n\nCMake uses toolchain files. Crossroad prepared one for you, so you don't\nhave to worry about it.\nSimply replace the step (3) of the autotools example with this command::\n\n $ crossroad cmake .\n\nA common cmake usage is to create a build/ directory and build there.\nYou can do so with crossroad, of course::\n\n $ mkdir build; cd build\n $ crossroad cmake ..\n\nAlternatively crossroad allows also to use the curses interface of\n`cmake`::\n\n $ crossroad ccmake .\n\nThe rest should be the same, with `make && make install`, and you can\nadd any options to your build the usual way.\n\nThis has been tested with success on allegro 5, and Exiv2 libraries,\ncross-compiled for Windows.\n\nExample: Meson\n~~~~~~~~~~~~~~\n\nMeson uses toolchain files as well. Here again, Crossroad prepared them\nfor you.\nSimply replace the step (3) of the autotools example with this command::\n\n $ crossroad meson /path/to/source/ /path/to/build/\n\nNow you can simply build and install::\n\n $ ninja\n $ ninja install\n\nThis has also been used with success on many programs, since Meson-using\nprograms are increasing rapidly these days.\n\nExample: SCons\n~~~~~~~~~~~~~~~\n\nA very basic support of scons build system has been added to crossroad,\nthough there seems to be no actual standard there for cross-compilation.\nAs a consequence, the support in crossroad is only following some common\nusage I saw in a few projects, but it may not work in your case.\n\nAnother issue is that scons does not even have standard for basic\nfeatures either like prefix path. So you have to use the environment\nvariable `$CROSSROAD_PREFIX` and use it were appropriate yourself.\n\nFor instance, assuming your scons scripts use `--prefix` option, running\nscons through crossroad could be done this way:\n\n $ crossroad scons install --prefix=$CROSSROAD_PREFIX\n\nIn any cases, scons is really not a recommended build system if you wish to have\nan easy cross-buildable project. If you don't manage to cross-compile your\nproject, rather than tweaking your SConscript files indefinitely, consider\ntaking the time to port your project to autotools or cmake.\n\nNote that crossroad has been used on some scons-using projects back in\nthe days, but I have not seen any more of them for a few years now. I am\nnot sure of the current level of support.\n\nExample: other\n~~~~~~~~~~~~~~\n\nIt has not been tested with any other compilation system up to now. So\nit all depends what they require for a cross-compilation.\nBut since a `crossroad` environment prepares a bunch of environment\nvariables for you, and helps you download dependencies, no doubt it will\nalready make your life easier.\n\nThe `configure`, `cmake`, `ccmake` and `meson` subcommands are simple\nwrappers around respectively any `./configure` script, `cmake`, `ccmake`\nand `meson` commands, adding some default options (which crossroad\nprepared) for successful cross-compilation.\n\nFor instance `crossroad configure` is the equivalent of running::\n\n $ ./configure --prefix=$CROSSROAD_PREFIX --host=$CROSSROAD_HOST --build=$CROSSROAD_BUILD\n\nAnd `crossroad cmake /some/path` is nothing more than::\n\n $ cmake /some/path -DCMAKE_INSTALL_PREFIX:PATH=$CROSSROAD_PREFIX -DCMAKE_TOOLCHAIN_FILE=$CROSSROAD_CMAKE_TOOLCHAIN_FILE\n\nHere is the list of useful, easy-to-remember and ready-to-use,\nenvironment variables, prepared by crossroad:\n\n- $CROSSROAD_PREFIX;\n\n- $CROSSROAD_HOST;\n\n- $CROSSROAD_BUILD;\n\n- $CROSSROAD_CMAKE_TOOLCHAIN_FILE.\n\n- $CROSSROAD_PLATFORM\n\n- $CROSSROAD_PLATFORM_NICENAME\n\n- $CROSSROAD_PROJECT\n\n- $CROSSROAD_WORD_SIZE\n\nDo **not** modify these environment variables. They have been set-up\nfor your builds to work successfully. If you modify these, you will get\ninto trouble.\n\nWhat it means though is that you can use these for other compilation\nsystems. You can also use your `crossroad` prefix, even for systems\nwhich do not require any compilation. Let's say for instance you wish\nto include a pure python project in your build. No per-platform\ncompilation is needed, but you still want to carry all the files in the\nsame prefix. So just run:\n\n$ ./setup.py install --prefix=$CROSSROAD_PREFIX\n\nand so on.\n\n*Note: as you may have guess `$CROSSROAD_PREFIX` encapsulates your new\ncross-build and all its dependencies.\nThough in most cases, you should not need to manually go there do\nanything, you still can (for instance to change software settings, etc.)\nwith `cd $CROSSROAD_PREFIX`.*\n\nSpecial case: Wine\n~~~~~~~~~~~~~~~~~~\n\nSome software have proved extremely hard to cross-compile, mostly because\nof weird custom build systems or strange designs. I had this case for\nPython, which even went as far as forbidding cross-builds for hosts they\ndidn't approve with specific configure tests.\nI have been therefore unable to crossbuild it. One solution could be to\nfix the build system (which I started to do for Python until I discovered\nbug reports with patches for specifically this, and opened for eons), or\nto install in Windows, and import the data (but then you lose the\nflexibility or building all on the same machine).\n\nMy other workaround has been to install with Wine. In my Python example, I\nhave indeed been able to run the 32-bit installer (not the 64-bit one).\nWhen doing so in a crossroad environment, the data will be automatically\ninstalled under `$CROSSROAD_PREFIX/wine/`.\nThen you just have to update any necessary environment variable in order\nfor your builds to discover any library/header if necessary (I don't see\nhow to do so automatically with a Windows tree being so \"random\").\n\nEnvironments\n============\nWindows\n~~~~~~~\n\nThis tool has been originally created to cross-build GIMP (and its\ndependencies when needed) for Windows and this is still one my main\nusage. It has proven to be able to generically cross-build many dozens\nof projects and I am confident it should work pretty well for any\nAutotools, CMake or Meson project out there, unless they really use\nnon-standard tricks (in which case, the most relevant course of action\nis often to send a patch to the upstream project).\nIf you encounter standard cases which crossroad does not properly\nsupport, please send me a patch!\n\nNative\n~~~~~~\n\nThis target environment may look very weird since this tool was\noriginally made for cross-compilation, but it has become my main usage\nof crossroad these days (I mean a daily usage for all my development).\n\nDevelopers have all sort of tricks to build, install and test their\nsoftware in non-standard prefix by tweaking environment variables.\n\nSometimes you may have a unique place (set up in your `.bashrc` for\ninstance), but then when you want to clean a single program without\ntouching the rest, it can be a problem. Worse, you can't install several\nversions of the same program. And last, but not least, installing low\nlevel libraries (glib, GTK, etc.) may end up breaking your user system\nas these variables are picked up by your desktop.\n\nOther times, you make unique scripts to have these changes only in the\ncurrent shell. This is very inconvenient and bug-prone as it requires\none script per project with specific paths which you have to manage. You\nare bound to mess up at some point.\n\nWith the native environment, `crossroad` just take care of everything\nfor me, sets up my environment variable, and manage my prefix. Say I\nwant to build GIMP. I'd run::\n\n $ crossroad native gimp\n\nNow I am in a specifically generated environment for my GIMP build.\nLet's build GIMP::\n\n $ cd $build/gimp\n $ crossroad meson $src/gimp && ninja install\n\nI can now run GIMP from command line: `gimp-2.99`\n\nNote that this binary is only visible when inside the crossroad\nenvironment. I could also install any dependency in the same\nenvironment, say an experimental version of GTK+ for instance, without\nfearing it to be picked up by my desktop, and potentially breaking it.\nAs soon as I get out of this shell, GIMP or any custom code is not\nvisible by the rest of the system.\n\nSay now I want to create another GIMP build in another shell (with some\npatchs applied), I could create a new crossroad project::\n\n $ crossroad native gimp-tests\n\nBoth environment live next to each other without interfering and I can\nnow call one or another without messing up with files.\n\nNow if I want to get rid of my `gimp-tests` project, I could just run::\n\n $ crossroad --reset native gimp-tests\n\nAnd the whole project and all its files would be just gone. Cleaning as\nsimple as ever.\n\nAndroid\n~~~~~~~\n\nA few years back, I started to use crossroad to cross-compile C\nlibraries for Android. It did pretty well and I could successfully run\nsome test programs in Java using these C libraries. I have not worked\nmuch on this platform since then. It may just be broken now, I don't\nknow.\n\nStill I leave this here in case it is helpful to someone. If you need\nAndroid support and some of the support in `crossroad` is not really\noptimal, I will gladly accept patches.\n\nARM\n~~~\n\nI had an early attempt to add arm-linux-gnu and arm-none-eabi (bare\nmetal if not mistaken) but in the end didn't include them because I\nnever actually tested these for real projects (never had the occasion!)\nso this support is deactivated in released `crossroad`.\n\nIf anyone wants to play with it, please feel free to try the development\nversion (edit the `deactivated_platforms` variable in `setup.py` before\ninstalling).\n\nConfiguration\n=============\n\n`Crossroad` relies on XDG standards.\nRight now it does not need any configuration file, but it will soon probably.\nAnd these will be in $XDG_CONFIG_HOME/crossroad/ (defaults to $HOME/.config/crossroad/).\n\nCache is saved in $XDG_CACHE_HOME/crossroad/ and data in $XDG_DATA_HOME/crossroad/.\n\nThe only configuration right now is that in case you use a\nself-installed MinGW-w64 prefix of Windows libraries, if they are not in\nthe same prefix as the MinGW-64 executables you run, you can set\n$CROSSROAD_CUSTOM_MINGW_W32_PREFIX and $CROSSROAD_CUSTOM_MINGW_W64_PREFIX\nrespectively for your 32-bit and 64-bit installation of MinGW-w64.\n\n*Note: I have not used these 2 environment variables for years now and\nwonder if they are really useful. They may become deprecated in a close\nfuture.*\n\nHelp\n====\n\n`Crossroad` provides inline help with `crossroad -h` but also by\ninstalling a man page in section 1::\n\n $ man crossroad\n\nContributing\n============\n\nYou can view the git branch on the web at: http://git.tuxfamily.org/crossroad/crossroad\nAnd clone it with::\n\n $ git clone git://git.tuxfamily.org/gitroot/crossroad/crossroad.git\n\nThen send your `git-format`-ed patches by email to crossroad girinstud.io.\n\nAbout the name\n==============\n\nThe name is a hommage to \"*cross road blues*\" by Robert Johnson, which\nspawned dozens, if not hundreds, of other versions by so many artists.\nI myself always play this song (or rather a version with modified lyrics\nadapted to my experience) in concerts.\n\n.. _AGPL version 3: http://www.gnu.org/licenses/agpl.html\n.. _author: https://film.zemarmot.net\n.. _support: https://film.zemarmot.net/en/donate", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://girinstud.io", "keywords": "", "license": "AGPLv3+", "maintainer": "", "maintainer_email": "", "name": "crossroad", "package_url": "https://pypi.org/project/crossroad/", "platform": "", "project_url": "https://pypi.org/project/crossroad/", "project_urls": { "Homepage": "http://girinstud.io" }, "release_url": "https://pypi.org/project/crossroad/0.8.0/", "requires_dist": null, "requires_python": "", "summary": "Cross-Compilation Environment Toolkit.", "version": "0.8.0" }, "last_serial": 5881044, "releases": { "0.4": [ { "comment_text": "", "digests": { "md5": "9bd9e1186cb2f8108c545c245853a153", "sha256": "7ee1ae348f603ba3c756790573d5085479134df577cdb6d56c04871a72216362" }, "downloads": -1, "filename": "crossroad-0.4.tar.gz", "has_sig": false, "md5_digest": "9bd9e1186cb2f8108c545c245853a153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67437, "upload_time": "2013-10-16T10:02:11", "url": "https://files.pythonhosted.org/packages/4f/7a/caa5d3d4fad95121551378e07f6878f44a964a8ce06863620c2bb784465a/crossroad-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "0737ef425abd0669094bb630c7f0cafc", "sha256": "29aa6e5b1a040280ef75ac1e2416d7abc6260089fd8c58e3cd537db725a0c22c" }, "downloads": -1, "filename": "crossroad-0.4.1.tar.gz", "has_sig": false, "md5_digest": "0737ef425abd0669094bb630c7f0cafc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67434, "upload_time": "2013-10-17T07:37:45", "url": "https://files.pythonhosted.org/packages/c6/4b/4fb172ff59dc4ce695cf45b9d398a4cdce85900f37610d68d284c719777b/crossroad-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "238d6aa75cb378f869c444233b125fa5", "sha256": "677a1698fe3005122e9a3b07177704eca746bc22d665aebfbf4f927316391877" }, "downloads": -1, "filename": "crossroad-0.4.2.tar.gz", "has_sig": false, "md5_digest": "238d6aa75cb378f869c444233b125fa5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67444, "upload_time": "2013-10-18T05:17:03", "url": "https://files.pythonhosted.org/packages/86/54/14c168718e98ca15d798968cb9dcbb9b77dfef39fb577d7f7805cad8382d/crossroad-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "be3adac64b519ce1cf0d68b531fb5d2e", "sha256": "04609a46480fc4fc78f88e3f43d07456236e0ccfc8a6ea1536710134153deab2" }, "downloads": -1, "filename": "crossroad-0.4.3.tar.gz", "has_sig": false, "md5_digest": "be3adac64b519ce1cf0d68b531fb5d2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67393, "upload_time": "2013-10-18T05:37:28", "url": "https://files.pythonhosted.org/packages/a8/24/2d0d41773cd7eb8d7809ac6ac3cde01672a08d82b62d0f50939381dc89c4/crossroad-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "5852421cbb78e6bc332e4194b7770267", "sha256": "7073d2e9d82f56e3e3cbe4d8a4e24e38fe4827ddd053cbbb17e576056228d997" }, "downloads": -1, "filename": "crossroad-0.4.4.tar.gz", "has_sig": false, "md5_digest": "5852421cbb78e6bc332e4194b7770267", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67850, "upload_time": "2013-10-19T14:12:20", "url": "https://files.pythonhosted.org/packages/22/cb/540d329742f13cc70aed7cd4db8d6fe97f5b421a3eccf77315d52587e5f7/crossroad-0.4.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "06401dbff83ad34536e01a9e132c5459", "sha256": "bed59c066d0017e431946eb53932594737ca5f5fa1a3b0d1cd05d2ce2c3107b4" }, "downloads": -1, "filename": "crossroad-0.5.tar.gz", "has_sig": false, "md5_digest": "06401dbff83ad34536e01a9e132c5459", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74942, "upload_time": "2014-07-25T15:43:15", "url": "https://files.pythonhosted.org/packages/e5/be/dfc8a6548fc53f4e83468868df43e20f5dfac66ce4b9b185f813b93a4b50/crossroad-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "be6566733c3eacc3a26987802a87161d", "sha256": "cad1e413376f4322912975ab23053cd81afd4e97a902aecdd3e9a63baa2883cb" }, "downloads": -1, "filename": "crossroad-0.6.tar.gz", "has_sig": false, "md5_digest": "be6566733c3eacc3a26987802a87161d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89810, "upload_time": "2016-05-22T16:14:16", "url": "https://files.pythonhosted.org/packages/f4/ea/4faf47f49928ba276fc555b4ebd8432a77494a63fd7ee25b6bccb5820c67/crossroad-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "dc45840cb5abbb917b40fae148fe7e82", "sha256": "74dfd95f2c3e52a56f77ebbc8df58508d903f3b60614e4b31a9b7d1a9e13ad96" }, "downloads": -1, "filename": "crossroad-0.7.tar.gz", "has_sig": false, "md5_digest": "dc45840cb5abbb917b40fae148fe7e82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91206, "upload_time": "2017-06-13T13:58:10", "url": "https://files.pythonhosted.org/packages/c4/3e/f6a66a52cdd3340a9ae5a581fbc7ccffdfabe307e50282794bd7d93e5420/crossroad-0.7.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "ea61c17e66e4f33a7c766210023d7dbc", "sha256": "f7f5ae8f40dd22b6963d5dbd527db876810d17af87fccd2a6bd64daee249b6d9" }, "downloads": -1, "filename": "crossroad-0.8.0.tar.gz", "has_sig": false, "md5_digest": "ea61c17e66e4f33a7c766210023d7dbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93093, "upload_time": "2019-09-24T17:05:57", "url": "https://files.pythonhosted.org/packages/64/dc/214fdc5bb0f1fa59c761f9efb278e19bf3368e5b14feb493508bed8b87fa/crossroad-0.8.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ea61c17e66e4f33a7c766210023d7dbc", "sha256": "f7f5ae8f40dd22b6963d5dbd527db876810d17af87fccd2a6bd64daee249b6d9" }, "downloads": -1, "filename": "crossroad-0.8.0.tar.gz", "has_sig": false, "md5_digest": "ea61c17e66e4f33a7c766210023d7dbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93093, "upload_time": "2019-09-24T17:05:57", "url": "https://files.pythonhosted.org/packages/64/dc/214fdc5bb0f1fa59c761f9efb278e19bf3368e5b14feb493508bed8b87fa/crossroad-0.8.0.tar.gz" } ] }