{"id":14988019,"url":"https://github.com/apache/couchdb-glazier","last_synced_at":"2025-10-19T12:30:27.375Z","repository":{"id":10215885,"uuid":"64996439","full_name":"apache/couchdb-glazier","owner":"apache","description":"Glazier is a set of batch files, scripts and toolchains designed to ease building CouchDB on Windows.","archived":false,"fork":false,"pushed_at":"2024-12-19T16:38:40.000Z","size":3991,"stargazers_count":12,"open_issues_count":1,"forks_count":10,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-01-30T10:34:30.344Z","etag":null,"topics":["apache","big-data","cloud","couchdb","cplusplus","database","erlang","http","javascript","network-client","network-server","powershell"],"latest_commit_sha":null,"homepage":"https://github.com/apache/couchdb-glazier","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-05T07:00:07.000Z","updated_at":"2024-12-19T16:38:41.000Z","dependencies_parsed_at":"2023-11-18T16:27:03.739Z","dependency_job_id":"617c331a-e6aa-4209-8495-fe3d2cf23360","html_url":"https://github.com/apache/couchdb-glazier","commit_stats":{"total_commits":237,"total_committers":16,"mean_commits":14.8125,"dds":"0.38818565400843885","last_synced_commit":"6c2ca2968a1ab13d6a7d6db22aed5fd6914d738b"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fcouchdb-glazier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fcouchdb-glazier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fcouchdb-glazier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fcouchdb-glazier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/couchdb-glazier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237125524,"owners_count":19259299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache","big-data","cloud","couchdb","cplusplus","database","erlang","http","javascript","network-client","network-server","powershell"],"created_at":"2024-09-24T14:15:57.811Z","updated_at":"2025-10-19T12:30:26.948Z","avatar_url":"https://github.com/apache.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Glazier\n\nGlazier is a set of batch files, scripts and toolchains designed to\nease building CouchDB on Windows. It's as fully automated as\npossible, with most of the effort required only once.\n\nGlazier uses the MS Visual Studio 2022 toolchain as much as possible,\nto ensure a quality Windows experience and to execute all binary\ndependencies within the same runtime.\n\nWe hope Glazier simplifies using Erlang and CouchDB for you, giving\na consistent, repeatable build environment.\n\n# Base Requirements\n\nNote that the scripts you'll run will modify your system extensively. We recommend a *dedicated build machine or VM image* for this work:\n\n- 64-bit Windows 7+. *As of CouchDB 2.0 we only support a 64-bit build of CouchDB*.\n  - We like 64-bit Windows 10 from MSDN.\n  - Apply Windows Updates and reboot until no more updates appear.\n  - If using a VM, shutdown and snapshot your VM at this point.\n\n# Install Dependencies\n\nStart an Administrative PowerShell console. Enter the following:\n\n```powershell\nmkdir C:\\relax\\\ncd C:\\relax\\\nSet-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))\nchoco feature enable -n allowGlobalConfirmation\nchoco install git\ngit config --global core.autocrlf false\ngit clone https://github.com/apache/couchdb-glazier\n\u0026.\\couchdb-glazier\\bin\\install_dependencies.ps1\n```\n\nYou should go get lunch. The last step will take over an hour, even on a speedy Internet connection.\n\nYou're finally ready.  You should have the following installed:\n\n* Visual Studio 2022 (Build Tools, Visual C++ workload, native desktop workload)\n* Windows 10 SDK (by native desktop workload)\n* NodeJS (LTS version)\n* WiX Toolset 3.14\n* Python 3\n* NSSM\n* GNU make\n* NuGet\n* VSSetup\n* VSWhere\n* GNU CoreUtils (cp, rm, rmdir, ...)\n* MSYS2 (for building QuickJS)\n* Java (for building Nouveau)\n* VCPkg (https://github.com/Microsoft/vcpkg), which built and installed:\n  * ICU\n  * OpenSSL 3\n* SpiderMonkey 91\n\nYou should snapshot your VM at this point.\n\n# Building CouchDB itself\n\nOpen a new PowerShell window. Set up your shell correctly (this step works if you've\nclosed your PowerShell window before any of the previous steps, too):\n\n```powershell\n\u0026c:\\relax\\couchdb-glazier\\bin\\shell.ps1\n```\n\nThen, start the process:\n\n```\ncd c:\\relax\ngit clone https://github.com/apache/couchdb\ncd couchdb\ngit checkout \u003ctag or branch of interest goes here\u003e\n\u0026.\\configure.ps1 -SpiderMonkeyVersion 91\nmake -f Makefile.win\n```\n\nYou now have built CouchDB!\n\nTo run the tests:\n\n```\nmake -f Makefile.win check\n```\n\nFinally, to build a CouchDB installer:\n\n```\nmake -f Makefile.win release\ncd c:\\relax\n\u0026couchdb-glazier\\bin\\build_installer.ps1\n```\n\nThe installer will be placed in your current working directory.\n\nYou made it! Time to relax. :D\n\nIf you're a release engineer, the script `download_extract_rc.ps1` in\nthe `bin\\` directory helps you to download, check and extract a \nCouchDB source tarball.\n\n```\nSYNTAX\n    C:\\relax\\couchdb-glazier\\bin\\download_extract_rc.ps1 [[-CouchDBVersion] \u003cString\u003e] [[-ReleaseCandidate] \u003cString\u003e] [[-Path] \u003cString\u003e] [\u003cCommonParameters\u003e]\n\n    \nDESCRIPTION\n    This command downloads, checks and extract a CouchDB source tarball\n\n    -CouchDBVersion \u003cstring\u003e        CouchDB version number to download (e.g. 3.4.2)\n    -ReleaseCandidate \u003cstring\u003e      Release candidate version number (e.g. rc1)\n    -Path \u003cstring\u003e                  Directory to store the artifacts (e.g. C:\\relax\\releases)\n```\n\nTo checksum a source tarball, you may find the following commands useful too:\n```\nchecksum -t sha256 apache-couchdb.#.#.#-RC#.tar.gz\nchecksum -t sha512 apache-couchdb.#.#.#-RC#.tar.gz\ngpg --verify apache-couchdb.#.#.#-RC#.tar.gz.asc\n```\n\n# Appendices\n\n## Why Glazier?\n\n@dch first got involved with CouchDB around 0.7. Only having a low-spec Windows\nPC to develop on, and no CouchDB Cloud provider being available, he tried\nto build CouchDB himself. It was hard going, and most of the frustration was\ntrying to get the core Erlang environment set up and compiling without needing\nto buy Microsoft's expensive but excellent Visual Studio tools. Once\nErlang was working he found many of the pre-requisite modules such as cURL,\nZlib, OpenSSL, Mozilla's SpiderMonkey JavaScript engine, and IBM's ICU were\nnot available at a consistent compiler and VC runtime release.\n\nThere is a branch of glazier that has been used to build each CouchDB release.\n\n## Windows silent installs\n\nHere are some sample commands, supporting the new features of the 3.0 installer.\n\nInstall CouchDB without a service, but with an admin user:password of `admin:hunter2`:\n\n```\nmsiexec /i apache-couchdb-3.0.0.msi /quiet ADMINUSER=admin ADMINPASSWORD=hunter2 /norestart\n```\n\nThe same as above, but also install and launch CouchDB as a service:\n\n```\nmsiexec /i apache-couchdb-3.0.0.msi /quiet INSTALLSERVICE=1 ADMINUSER=admin ADMINPASSWORD=hunter2 /norestart\n```\n\nUnattended uninstall of CouchDB:\n\n```\nmsiexec /x apache-couchdb-3.0.0.msi /quiet /norestart\n```\n\nUnattended uninstall if the installer file is unavailable:\n\n```\nmsiexec /x {4CD776E0-FADF-4831-AF56-E80E39F34CFC} /quiet /norestart\n```\n\nAdd `/l* log.txt` to any of the above to generate a useful logfile for debugging.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fcouchdb-glazier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fcouchdb-glazier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fcouchdb-glazier/lists"}