aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMykyta Holubakha <hilobakho@gmail.com>2017-06-29 15:13:11 +0300
committerMykyta Holubakha <hilobakho@gmail.com>2017-06-29 15:13:11 +0300
commitaa25e21dda001de7d3d0e1a210303e70c259c029 (patch)
treee4dd3936099bde2b4108930ace3c411cb82a665d
parentResolve circular imports (diff)
downloadpomu-aa25e21dda001de7d3d0e1a210303e70c259c029.tar.gz
pomu-aa25e21dda001de7d3d0e1a210303e70c259c029.tar.bz2
pomu-aa25e21dda001de7d3d0e1a210303e70c259c029.zip
Added README
-rw-r--r--README.md65
1 files changed, 65 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..af18952
--- /dev/null
+++ b/README.md
@@ -0,0 +1,65 @@
+# Pomu
+
+##Prerequisites
+
+pomu requires the following packages to be installed:
+
+- sys-apps/portage : Portage repository querying and management
+- app-portage/repoman : Manifest generation
+- dev-python/click : CLI implementation
+- dev-python/git-python : Git repository management and initialization
+
+In addition to the necessary dependencies, pomu requires a git ebuild repository (optionally set up with portage), though it can create a new one as well (with or without setting it up in portage).
+
+## Usage
+
+Usage: pomu [OPTIONS] COMMAND [ARGS]...
+
+ A utility to manage portage overlays
+
+Options:
+ --no-portage Do not setup the portage repo
+ --repo-path TEXT Path to the repo directory (used with --no-portage)
+ --help Show this message and exit.
+
+Commands:
+ fetch Fetch a package into a directory
+ init Initialise pomu for a repository
+ install
+ show
+ status
+ uninstall
+
+## Planned functionality
+
+1) create/use a git repository/directory, in a configurable location (default may be /usr/local/portage),
+with an option to set it up as a repo in /etc/portage/repos.conf;
+
+2) import ebuilds and related files (FILESDIR, eclasses, dependent ebuilds (if required) etc.) in atomic
+commits with meaningful descriptions;
+
+3) import packages from:
+* the portage tree
+* overlays (either in fs or in remote repositories, including, but not limited to, overlays in the layman
+catalog, arbitrary git repos (with proper layout) etc.)
+* local/remote text files
+* bugzilla tickets (from ebuild/patch attachments, and (optionally) from links in comments (at least (may
+be extended) serving text/plain content))
+* github pull requests (may be extended to support repos other than gentoo/gentoo)
+* (possibly) some sane pastebin services (like github gists, paste.pound-python.org etc.);
+
+4) when importing packages:
+* (from overlays) detect dependencies/eclasses unique to the overlay (unavailable in parent overlays/main
+tree) and (prompt the user to) import them
+* (from overlays/portage) detect user changes and merge remote changes hunk by hunk (in a manner
+similar to dispatch-conf)
+* allow the user to specify package category/name (when importing from files/pastebins/patches, and new
+package version
+* generate required files (Manifests etc.)
+
+4) search for packages, interfacing with gpo.zugaina.org;
+
+5) update ebuilds pulled in from portage/overlays, merging upstream and user changes;
+
+6) remove packages from the repository (if possible, by simply reverting the relevant commits, unless some
+non-leaf packages/eclasses pulled in by the package are required for another one, ergo we should track dependencies).