Skip to content

Commit

Permalink
0.1 release
Browse files Browse the repository at this point in the history
  • Loading branch information
jauhien committed May 10, 2014
1 parent 561e590 commit 194ed5b
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 129 deletions.
133 changes: 14 additions & 119 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
Usage
=====

This project is a framework, you may be interested in it only if
you want to develop your own ebuild generator.

As user you may be interested in already implemented ones:
[gs-elpa](https://github.com/jauhien/gs-elpa) and
[gs-pypi](https://github.com/jauhien/gs-pypi).

User instructions in gs-elpa are more complete, so consult them for how to use.

Objective
=========

Expand All @@ -10,124 +22,7 @@ maintained ebuilds in Gentoo tree or even in overlays. Installing such
a software with its own distribution system does not seem like a good
idea, especially if one needs to install it system-wide.

There is a number of solutions for this problem in Gentoo. But here
another problem lies: there are special dedicated “g-helpers” for a
number of 3rd party software providers. But, as Rafael Martins states
“each one tries to solve the very same problems on its own unique and
"innovative" way”. While it would be really nice to have a solid base
framework with realization of all the basic algorithms necessary for
ebuild and overlay generation, with uniform UI and with good
integration with system package manager.

Deliverables

At the end of the project there should be a framework and number of
backends for some of the 3rd party software providers. This framework
should make writing of those g-helpers easier and regular.

At the moment I see this framework as a number of classes in Python
that can be inherited and expanded in backends with the specific
logic. All the logic related to the interaction with user, portage and
overlay tools should be implemented in the framework and normally
should not be changed by backends. Integration with system may need
patching of some existing tools (like layman).

Framework should have: - basic logic for ebuild and overlay
manipulation, dependencies resolving, patching and so on - cli, that
allows users to generate separate ebuilds and even overlays with
available backends - integration with other system tools (I mean
layman, as I'm not really familiar with tools used by other package
manglers. But supporting them would be a good idea as well).

Backend should have everything specific for a given 3rd party software
provider: concrete algorithms for ebuild-generation, eclasses,
databases with information about available software and so on.

Installation and using
======================

You will need **app-portage/layman-9999** (when you emerge a backend you are
interested in it will be pulled in authomatically).

Add `jauhien` overlay: **layman -a jauhien**.

Currently 2 backends are available: **gs-elpa** and **gs-pypi**.

Here is an example of using gs-elpa backend.

Emerge backend you want to use: **emerge -va gs-elpa**.

There are two ways of using **gs-elpa**:

* use it with **layman**

In this case all you need to do is install **layman-9999** and **g-sorcery**.
Then you should just run `layman -L` as
root and find an overlay you want. Type of overlay will be
displayed as *g-sorcery*. Then you add this overlay as
usual. It's all you need to do and it's the recommended way of
using **g-sorcery**.

Using **g-sorcery** with layman you can populate overlay only with packages you want.
To do so you should add a section named BACKEND (BACKEND here is the name of backend used for
your repo). In this section you can add entries named REPO_packages (REPO here is the name
of repository you want to add) which are space separated lists of packages you need. ebuilds for
dependencies will be generated automatically if backend supports this possibility.

Note, that some overlays may depend on other overlays, in this case you'll need to add those
dependencies first.


* use it as stand-alone tool

In this case you should create an overlay (see **portage** documentation), sync it and populate
it with one or more ebuilds. Then ebuilds could be installed by emerge or by **gs-elpa** tool.

**Using gs-elpa with layman**

Execute

**layman -L**

Find there an overlay you need (there are
3 gs-elpa overlays currently: gnu-elpa, marmalade and melpa).
Add, e.g.

**layman -a gnu-elpa -a marmalade**

Emerge any package from it, e.g.

**emerge -va clojure-mode**

To generate only ebuilds we need such a */etc/g-sorcery/g-sorcery.cfg* file can be used:

```
[main]
package_manager=portage
[gs-elpa]
marmalade_packages = clojure-mode clojurescript-mode
```


**Generating user ebuilds in user overlay**

Create new user overlay. Run

**gs-elpa -o** *OVERLAY_DIRECTORY* **-r gnu-elpa** **sync**

List packages:

**gs-elpa -o** *OVERLAY_DIRECTORY* **-r gnu-elpa** **list**

Install any package you want:

**gs-elpa -o** *OVERLAY_DIRECTORY* **-r gnu-elpa** **install** *PACKAGE*

Repositories you can use are gnu-elpa, marmalade and melpa. You can use them
all in one overlay. Note, that if you call **generate-tree** command your overlay
will be wiped and overlay tree for a given repository will be generated. Be careful!

See man pages of **gs-elpa** and **gs-pypi** for further information.
This project is aimed to create a framework for ebuild-generators for
3rd party software providers.

If you want to develop a new backend see [developer's instructions](https://github.com/jauhien/g-sorcery/blob/master/docs/developer_instructions.rst).
4 changes: 2 additions & 2 deletions docs/g-sorcery.8
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
.TH G-SORCERY 8 "2013-08-04" "0.1" "g-sorcery"
.TH G-SORCERY 8 "2014-05-10" "0.1" "g-sorcery"
.SH NAME
g-sorcery \- manage overlays for 3rd party software providers
.
Expand Down Expand Up @@ -133,6 +133,6 @@ Written by Jauhien Piatlicki <piatlicki@gmail.com>. GSoC idea
and mentorship by Rafael Martins. Lots of help and improvements
by Brian Dolbec. Integration with layman based on work of Auke Booij.
.SH COPYRIGHT
Copyright (c) 2013 Jauhien Piatlicki, License: GPL-2
Copyright (c) 2013-2014 Jauhien Piatlicki, License: GPL-2
.\" Generated by docutils manpage writer.
.
4 changes: 2 additions & 2 deletions docs/g-sorcery.8.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ manage overlays for 3rd party software providers
:Author: Written by Jauhien Piatlicki <piatlicki@gmail.com>. GSoC idea
and mentorship by Rafael Martins. Lots of help and improvements
by Brian Dolbec. Integration with layman based on work of Auke Booij.
:Date: 2013-08-04
:Copyright: Copyright (c) 2013 Jauhien Piatlicki, License: GPL-2
:Date: 2014-05-10
:Copyright: Copyright (c) 2013-2014 Jauhien Piatlicki, License: GPL-2
:Version: 0.1
:Manual section: 8
:Manual group: g-sorcery
Expand Down
4 changes: 2 additions & 2 deletions docs/g-sorcery.cfg.8
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
.TH G-SORCERY.CFG 8 "2013-09-20" "0.1" "g-sorcery"
.TH G-SORCERY.CFG 8 "2014-05-10" "0.1" "g-sorcery"
.SH NAME
g-sorcery.cfg \- custom settings for g-sorcery
.
Expand Down Expand Up @@ -69,6 +69,6 @@ Written by Jauhien Piatlicki <piatlicki@gmail.com>. GSoC idea
and mentorship by Rafael Martins. Lots of help and improvements
by Brian Dolbec.
.SH COPYRIGHT
Copyright (c) 2013 Jauhien Piatlicki, License: GPL-2
Copyright (c) 2013-2014 Jauhien Piatlicki, License: GPL-2
.\" Generated by docutils manpage writer.
.
4 changes: 2 additions & 2 deletions docs/g-sorcery.cfg.8.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ custom settings for g-sorcery
:Author: Written by Jauhien Piatlicki <piatlicki@gmail.com>. GSoC idea
and mentorship by Rafael Martins. Lots of help and improvements
by Brian Dolbec.
:Date: 2013-09-20
:Copyright: Copyright (c) 2013 Jauhien Piatlicki, License: GPL-2
:Date: 2014-05-10
:Copyright: Copyright (c) 2013-2014 Jauhien Piatlicki, License: GPL-2
:Version: 0.1
:Manual section: 8
:Manual group: g-sorcery
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
from distutils.core import setup

setup(name = 'g-sorcery',
version = '0.1_alpha',
description = 'g-sorcery framework for automated ebuild generators',
version = '0.1',
description = 'framework for automated ebuild generators',
author = 'Jauhien Piatlicki',
author_email = 'jauhien@gentoo.org',
packages = ['g_sorcery', 'gs_db_tool'],
Expand Down

0 comments on commit 194ed5b

Please sign in to comment.