{ "info": { "author": "Carl George", "author_email": "carl@george.computer", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3 :: Only", "Topic :: System :: Archiving :: Packaging", "Topic :: System :: Software Distribution" ], "description": "# uvalde: yum repository management tool\n\n[![build status](https://api.cirrus-ci.com/github/carlwgeorge/uvalde.svg)](https://cirrus-ci.com/github/carlwgeorge/uvalde/master)\n\nUvalde is a simple CLI tool for managing yum repositories. There is no daemon\nand no web interface, just a directory of yum repositories and a small sqlite\ndatabase to remember what RPMs were built from the same SRPM.\n\n![Garner State Park](https://tpwd.texas.gov/state-parks/garner/gallery/GARNER-SP_HDR_3941.jpg)\n\n## Usage\n\n#### Configuration\n\nBefore running the application, create a config file to define the repositories\nyou want to manage. The base directory doesn't need to exist yet, uvalde will\ncreate it if needed.\n\n`~/.config/uvalde/repos.ini`\n```ini\n[my-repo]\nbase = /home/me/my-repo\narchitectures = i686, x86_64\n\n[my-other-repo]\nbase = /home/me/my-other-repo\narchitectures = i686, x86_64\n```\n```\n$ uvalde list repos\nmy-repo\nmy-other-repo\n```\n\nNow you can import RPM files and they will be placed at the appropriate\nlocations relative to your repository base. Repository metadata will also be\ngenerated.\n\n```\n$ uvalde import my-repo cello-*.rpm\ncello-1.0-1.i686.rpm -> /home/me/my-repo/i686/packages/c/\ncello-1.0-1.src.rpm -> /home/me/my-repo/src/packages/c/\ncello-1.0-1.x86_64.rpm -> /home/me/my-repo/x86_64/packages/c/\ncello-debuginfo-1.0-1.i686.rpm -> /home/me/my-repo/i686/debug/packages/c/\ncello-debuginfo-1.0-1.x86_64.rpm -> /home/me/my-repo/x86_64/debug/packages/c/\ncello-debugsource-1.0-1.i686.rpm -> /home/me/my-repo/i686/debug/packages/c/\ncello-debugsource-1.0-1.x86_64.rpm -> /home/me/my-repo/x86_64/debug/packages/c/\ncello-extra-1.0-1.noarch.rpm -> /home/me/my-repo/i686/packages/c/\ncello-extra-1.0-1.noarch.rpm -> /home/me/my-repo/x86_64/packages/c/\n```\n\nThe relationships between RPMs and SRPMs are stored in an sqlite database so\nthat you can manage the files collectively, referencing them by the NVR\n(name-version-release) string. When RPMs are moved the repository metadata\nwill be regenerated as needed.\n\n```\n$ uvalde list all\nmy-repo\n cello-1.0-1\nmy-other-repo\n```\n```\n$ uvalde move my-repo my-other-repo cello-1.0-1\n/home/me/my-repo/i686/packages/c/cello-1.0-1.i686.rpm -> /home/me/my-other-repo/i686/packages/c/\n/home/me/my-repo/src/packages/c/cello-1.0-1.src.rpm -> /home/me/my-other-repo/src/packages/c/\n/home/me/my-repo/x86_64/packages/c/cello-1.0-1.x86_64.rpm -> /home/me/my-other-repo/x86_64/packages/c/\n/home/me/my-repo/i686/debug/packages/c/cello-debuginfo-1.0-1.i686.rpm -> /home/me/my-other-repo/i686/debug/packages/c/\n/home/me/my-repo/x86_64/debug/packages/c/cello-debuginfo-1.0-1.x86_64.rpm -> /home/me/my-other-repo/x86_64/debug/packages/c/\n/home/me/my-repo/i686/debug/packages/c/cello-debugsource-1.0-1.i686.rpm -> /home/me/my-other-repo/i686/debug/packages/c/\n/home/me/my-repo/x86_64/debug/packages/c/cello-debugsource-1.0-1.x86_64.rpm -> /home/me/my-other-repo/x86_64/debug/packages/c/\n/home/me/my-repo/x86_64/packages/c/cello-extra-1.0-1.noarch.rpm -> /home/me/my-other-repo/x86_64/packages/c/\n/home/me/my-repo/i686/packages/c/cello-extra-1.0-1.noarch.rpm -> /home/me/my-other-repo/i686/packages/c/\n```\n```\n$ uvalde list all\nmy-repo\nmy-other-repo\n cello-1.0-1\n```\n```\n$ uvalde remove my-other-repo cello-1.0-1\n/home/me/my-other-repo/i686/packages/c/cello-1.0-1.i686.rpm X\n/home/me/my-other-repo/src/packages/c/cello-1.0-1.src.rpm X\n/home/me/my-other-repo/x86_64/packages/c/cello-1.0-1.x86_64.rpm X\n/home/me/my-other-repo/i686/debug/packages/c/cello-debuginfo-1.0-1.i686.rpm X\n/home/me/my-other-repo/x86_64/debug/packages/c/cello-debuginfo-1.0-1.x86_64.rpm X\n/home/me/my-other-repo/i686/debug/packages/c/cello-debugsource-1.0-1.i686.rpm X\n/home/me/my-other-repo/x86_64/debug/packages/c/cello-debugsource-1.0-1.x86_64.rpm X\n/home/me/my-other-repo/i686/packages/c/cello-extra-1.0-1.noarch.rpm X\n/home/me/my-other-repo/x86_64/packages/c/cello-extra-1.0-1.noarch.rpm X\n```\n```\n$ uvalde list all\nmy-repo\nmy-other-repo\n```\n\n## Installation\n\nRPM packages coming soon! In the meantime, you can install from source.\n\n#### Install the [createrepo_c build dependencies](https://github.com/rpm-software-management/createrepo_c/blob/master/README.md#building)\n\n* Fedora:\n\n```\ndnf install cmake gcc make bzip2-devel expat-devel file-devel glib2-devel libcurl-devel libxml2-devel openssl-devel python3-devel rpm-devel sqlite-devel xz-devel zlib-devel\n```\n\n* CentOS:\n\n```\nyum install cmake gcc make bzip2-devel expat-devel file-devel glib2-devel libcurl-devel libxml2-devel openssl-devel python36-devel rpm-devel sqlite-devel xz-devel zlib-devel\n```\n\n#### Clone the repository\n\n```\ngit clone https://github.com/carlwgeorge/uvalde.git\ncd uvalde\n```\n\n#### Create a virtual environment\n\n```\npython3 -m venv .env\n```\n\n#### Install in editable mode\n\n```\n.env/bin/pip install --editable .\n```\n\n#### Optional: install testing dependencies\n\n```\n.env/bin/pip install --editable .[tests]\n```\n\n#### Optional: add command to PATH\n\n```\nln -s $PWD/.env/bin/uvalde ~/.local/bin/\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/carlwgeorge/uvalde", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "uvalde", "package_url": "https://pypi.org/project/uvalde/", "platform": "", "project_url": "https://pypi.org/project/uvalde/", "project_urls": { "Homepage": "https://github.com/carlwgeorge/uvalde" }, "release_url": "https://pypi.org/project/uvalde/0.3.0/", "requires_dist": [ "appdirs", "click", "createrepo-c", "peewee", "pytest ; extra == 'tests'", "pytest-cov ; extra == 'tests'", "pytest-flake8 ; extra == 'tests'", "repomd ; extra == 'tests'" ], "requires_python": ">=3.6", "summary": "Yum repository management tool", "version": "0.3.0" }, "last_serial": 5101883, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "8d1fe34ed727a153df64ab119a17203e", "sha256": "781b2881ca54750c8f1024ee1b98fd34a05d8b25214ed360fe70237f3b777d64" }, "downloads": -1, "filename": "uvalde-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8d1fe34ed727a153df64ab119a17203e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 10208, "upload_time": "2019-04-05T02:18:52", "url": "https://files.pythonhosted.org/packages/a9/e2/6662a41107fe83c06f3753dfd7c2a91a119a075784f9e146c16c240c95e7/uvalde-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fc953ab51205d6a6357ec8234444cd2", "sha256": "11dbae5203312e86c3675b0e7bcb9d066c8cd948121eeb69d3fc76418c6d8ad0" }, "downloads": -1, "filename": "uvalde-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2fc953ab51205d6a6357ec8234444cd2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8371, "upload_time": "2019-04-05T02:18:54", "url": "https://files.pythonhosted.org/packages/b5/55/1af895d3d07bbe56dc738e6c249dadd2327f698ac25e0196eaa16c652a4e/uvalde-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d1fe34ed727a153df64ab119a17203e", "sha256": "781b2881ca54750c8f1024ee1b98fd34a05d8b25214ed360fe70237f3b777d64" }, "downloads": -1, "filename": "uvalde-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8d1fe34ed727a153df64ab119a17203e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 10208, "upload_time": "2019-04-05T02:18:52", "url": "https://files.pythonhosted.org/packages/a9/e2/6662a41107fe83c06f3753dfd7c2a91a119a075784f9e146c16c240c95e7/uvalde-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fc953ab51205d6a6357ec8234444cd2", "sha256": "11dbae5203312e86c3675b0e7bcb9d066c8cd948121eeb69d3fc76418c6d8ad0" }, "downloads": -1, "filename": "uvalde-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2fc953ab51205d6a6357ec8234444cd2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8371, "upload_time": "2019-04-05T02:18:54", "url": "https://files.pythonhosted.org/packages/b5/55/1af895d3d07bbe56dc738e6c249dadd2327f698ac25e0196eaa16c652a4e/uvalde-0.3.0.tar.gz" } ] }