Difference between pages "Python" and "Package:Layman"

(Difference between pages)
m (Prior Issues in Gentoo/Funtoo: fix small typo)
 
m
 
Line 1: Line 1:
Python is a scripting language as well as a high-level programming language, and is used extensively by Funtoo and Gentoo Linux. [[Portage]], the ports system used by Funtoo and Gentoo Linux, is written in Python (along with bash-based ebuilds.)
+
{{Ebuild
 +
|Summary=Tool to manage Gentoo overlays
 +
|CatPkg=app-portage/layman
 +
|Homepage=http://layman.sourceforge.net/
 +
}}
 +
Layman is an "overlay" external repository management tool.
  
== Introduction ==
+
=== Installation ===
 +
<console>###i## emerge layman</console>
 +
[[make.conf]] must source laymans overlays for emerge to pull in packages from external sources.  This line needs to be below everything else in make.conf.
 +
<console>###i## echo "source /var/lib/layman/make.conf" >> /etc/portage/make.conf</console>
  
Funtoo Linux contains many enhancements related to Python, and most of these enhancements are the result of integrating the Progress Overlay into Funtoo Linux. This new functionality allows Portage to do a much, much better job of keeping Python-based packages up-to-date on your system.
+
=== Using Layman ===
 +
Fetch, and display a list of overlays:
 +
<console>###i## layman -L</console>
  
== Prior Issues in Gentoo/Funtoo ==
+
Add an overlay to your system:
 +
<console>###i## layman -a <overlay name></console>
  
With the older <tt>python.eclass</tt> in Gentoo (and that used to be in Funtoo Linux,) no usable accounting information is stored by Portage so that it could "know" what versions of Python various ebuilds were built to use. This created a problem when new versions of Python were installed, as Portage didn't have the ability to automatically update Python-based packages to work with newer versions of Python that were installed.
+
Delete an overlay from your system:
 +
<console>###i## layman -d <overlay name></console>
  
This created the need for a separate tool, called <tt>python-updater</tt>, which was used to rebuild all Python-related ebuilds so that they properly utilize the currently-installed versions of Python.
+
==== Masking Overlay Packages ====
 +
Overlays have the power to override distro packages.  To avoid conflicts, mask everything in the overlay, and unmask the packages that are necessary to your system.
  
== Progress in Funtoo ==
+
{{file|name=/etc/portage/package.mask|lang=|desc=mask all packages in an overlay|body=
 +
*/*::overlay-name
 +
}}
  
The new Progress Overlay that has been integrated into Funtoo Linux goes a very long way towards solving the prior problems that existed when dealing with Python-based packages/ebuilds. The Progress Overlay adds two important things. The first is a new eclass that allows new Python-related ebuilds to be written in a way so that Portage can understand what versions of Python they were built against.
+
{{file|name=/etc/portage/package.unmask|lang=|desc=unmask packages to be used|body=
 +
cat-egory/pack-age1
 +
cat-egory/pack-age2
 +
}}
  
By being integrated into Funtoo Linux, Progress Overlay also offers Funtoo Linux users hundreds of updated ebuilds. Hundreds (over four hundred) ebuilds that interact with Python in some way have been enhanced to take advantage of the new Python eclass. These new enhancements allow Portage to do what <tt>python-updater</tt> used to do for you -- keep your system up-to-date and all dependencies satisfied, even in the case where you may upgrade or change Python versions installed on your system.
+
==== Sync ====
  
== How To Use It ==
+
Sync a specific overlays ebuilds:
 +
<console>###i## layman -s <overlay name></console>
  
You don't need to do anything special to take advantage of the new Python functionality from Progress Overlay. It is already integrated into your Portage tree and is working for you behind the scenes to keep Python-related packages working properly.
+
Sync all overlays:
 +
<console>###i## layman -S</console>
  
The new Python functionality uses a special configuration variable called <tt>PYTHON_ABIS</tt>. By default, <tt>PYTHON_ABIS</tt> is set to "<tt>2.7 3.2</tt>" in Funtoo Linux profiles. This setting tells Portage that by default, any Python-related ebuilds should be built so that they can be used with both python-2.7 and python-3.2, if the ebuilds are compatible and will run using these versions of Python. If an ebuild doesn't support python-3.2, for example, Portage will still ensure that a python-2.7-compatible version of the package is installed. If an ebuild supports ''both'' versions, then special steps will be taken to install two separate sets of python modules and binaries, in order to ensure full compatibility with either Python interpreter.
+
Sync all overlays via eix:
 +
<console>###i## eix-sync</console>
  
If you'd like to change <tt>PYTHON_ABIS</tt>, simply overwrite the setting in <tt>/etc/make.conf</tt> as follows:
+
=== Troubleshooting ===
 +
Problem:
 +
Warning: an installed db file was not found at: ['/var/lib/layman/cache***.xml']
  
<pre>
+
Solution:
PYTHON_ABIS="2.6 2.7 3.2"
+
<console>###i## layman -L</console>
</pre>
+
  
This is useful if you would like Portage to target other Python ABIs (like jython, for example, or 2.6) that you might be interested in.
+
{{EbuildFooter}}
The new setting above would tell Portage to also ensure that Python-related ebuilds are built against python-2.6 as well as python-2.7 and 3.2.
+
 
+
== Resources ==
+
 
+
For more information, see:
+
 
+
* [[Progress Overlay Python]] - this page contains detailed developer documentation about the new Progess Overlay functionality, and how to write new-style Python-related ebuilds that take advantage of new Progress functionality.
+
 
+
== media ==
+
{{#widget:YouTube|playlist=PLEA1FEF17E1E5C0DA}}
+

Revision as of 12:00, February 3, 2015

app-portage/layman


Source Repository:Repository:Gentoo Portage Tree

http://layman.sourceforge.net/

Summary: Tool to manage Gentoo overlays

Use Flags

bazaar
Support dev-vcs/bzr based overlays
cvs
Support dev-vcs/cvs based overlays
darcs
Support dev-vcs/darcs based overlays
g-sorcery
Support app-portage/g-sorcery based overlays
git
Support dev-vcs/git based overlays
gpg
Support app-crypt/gnupg signed overlays lists and manifests
mercurial
Support dev-vcs/mercurial based overlays
squashfs
Support mounting squashfs image overlays locally read-only
subversion
Support dev-vcs/subversion based overlays
sync-plugin-portage
Install the sys-apps/portage sync module

News

Drobbins

Perl Updates

Gentoo has bumped perl from 5.20 to 5.22. Be sure to run perl-cleaner --all after the upgrade.
2015-07-25 by Drobbins
Drobbins

ARM Rebuild

ARM systems will use new stage3's that are not compatible with earlier versions.
2015-06-27 by Drobbins
Drobbins

ABI X86 64 and 32

Funtoo Linux has new 32-bit compatibility libraries inherited from Gentoo. Learn about them here.
2015-06-18 by Drobbins
More...

Layman

Tip

We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.

Layman is an "overlay" external repository management tool.

Installation

# emerge layman

make.conf must source laymans overlays for emerge to pull in packages from external sources. This line needs to be below everything else in make.conf.

# echo "source /var/lib/layman/make.conf" >> /etc/portage/make.conf

Using Layman

Fetch, and display a list of overlays:

# layman -L

Add an overlay to your system:

# layman -a <overlay name>

Delete an overlay from your system:

# layman -d <overlay name>

Masking Overlay Packages

Overlays have the power to override distro packages. To avoid conflicts, mask everything in the overlay, and unmask the packages that are necessary to your system.

/etc/portage/package.mask - mask all packages in an overlay
*/*::overlay-name
/etc/portage/package.unmask - unmask packages to be used
cat-egory/pack-age1
cat-egory/pack-age2

Sync

Sync a specific overlays ebuilds:

# layman -s <overlay name>

Sync all overlays:

# layman -S

Sync all overlays via eix:

# eix-sync

Troubleshooting

Problem: Warning: an installed db file was not found at: ['/var/lib/layman/cache***.xml']

Solution:

# layman -L