Search:  
Gentoo Wiki

Paludis

This article is part of the HOWTO series.
Installation Kernel & Hardware Networks Portage Software System X Server Gaming Non-x86 Emulators Misc

Contents

Introduction

Paludis is a Portage alternative. It is included in the main Gentoo tree, though you will have to unmask it. Paludis is different from portage, though it fulfills the same purpose.

Getting Help

While wikis are nice, they can't always be trusted. For a more trustworthy source, you may want to try these places instead:

Support on the forums

Several support threads have been started on the Gentoo Forums

Unofficial Extras

Installation

Basic installation is quite simple and is very well described on Paludis homepage. Here is the link to the Getting Started Guide.

Post Installation - Configuration files

If you were moving from existing Portage installation to Paludis, then there are still some things you might want to do, to use the settings as you had them in Portage.

The conversion script created different configuration files. It is good to check them out before you start using Paludis. Some settings might not be included, so you will have to enter them to the right place yourself.

Repositories

If you have used overlays with Portage, then your overlays can be used with Paludis, too. Every overlay should have a file repo_name with the name of the overlay in its profiles folder, otherwise a rather ugly generated name will be used. For example, if you had an overlay in /usr/local/portage/, then you should create a file /usr/local/portage/profiles/repo_name. Edit it, and put the name of this overlay in the first and only line, for example:

File: /usr/local/portage/profiles/repo_name
local-portage

Then you can select, which folders in the overlay are going to be used. The names of folders are listed in

File: /usr/local/portage/profiles/categories
sys-kernel
sys-devel
...

If the categories file is not present, Paludis will use an auto-generated list based on directories present in the repository. Note that this differs from Portage's behavior of using the same categories list for the 'main' repository and all overlays.

overlays

Since the portage2paludis.bash script only deals with creating a new paludis setup, slycordinator created a script that allows you to keep your overlays updated in case you add a new one.

You must have paludis set up to use this script.

Because update_overlays.bash script is quite long it's hosted here.

Alternatively, there is a small tool like layman, a ruby-script called playman available here

/etc/paludis/bashrc

In this file, you can configure the default behavior, environment variables, or even configure package specific behavior ( eg: what you could do with /etc/portage/env/* )

LDFLAGS

Some people have reported that LDFLAGS from make.conf were not transferred to /etc/paludis/bashrc. If you find that this is the case, just open the file and add the following line:

File: /etc/paludis/bashrc
export LDFLAGS=" ...your LDFLAGS... "

Ccache

Ccache is easily supported, by adding 2 lines to Paludis's bashrc.

File: /etc/paludis/bashrc
...
export PATH="/usr/lib/ccache/bin/:${PATH}"
export CCACHE_DIR="/var/tmp/ccache"
...
Note: If you want to preserve a ccache repository previously built with portage, you will need to change ownership of all files within the cache to the paludisbuild user.

Sandbox problems

Some ebuilds are known to cause sandbox violations. If you find this, it is most likely a bug in the ebuild, and not in Paludis.

Workaround for this problem is adding the package name to the list in

File: /etc/paludis/bashrc

 case "${PN}" in 
 
     python|portage) 
         export SANDBOX_PREDICT=/ 
         ;; 

 esac

Users reported in the forums thread (look at the top) that some versions of the following packages needed this workaround to compile on their systems:

python
portage

EXTRA_ECONF, or per package settings

You may want to set EXTRA_ECONF, CFLAGS (or whatever you feel like) for some package, for example, you want to add EXTRA_ECONF="--enable-xft" for the packages: amsn,tcl,tk, then, still in the same loop, just add:

File: /etc/paludis/bashrc
(...)
 case "${PN}" in 
 
     python|portage) 
         export SANDBOX_PREDICT=/ 
         ;; 

   amsn|tcl|tk) 
        export EXTRA_ECONF="--enable-xft" 
        if [ ${PN} == tk ] ; then 
            export SKIP_FUNCTIONS=test 
        fi 
        ;;

(...)
 esac
Note: the example use the package name (PN), but you can set your variable per category, version and so on..

Test Fails

Some ebuilds fail their test suites. This is usually caused by ebuild bugs. Installation of packages that fail during the test phase will require a workaround. The workaround listed below, however, is not recommended by the Paludis developers.

The workaround for this problem is to add some lines to

File: /etc/paludis/bashrc
 case "${PN}" in 
 
     foo|bar) 
         export SKIP_FUNCTIONS=test 
         ;; 
 
 esac

Below is a table showing packages that have been reported to fail their tests. The table includes specific versions reported to work and not work. The last column in the table is for any kind of explanation about why the test fails, or (hopefully) a link to a bug report filed against the package upstream. Please feel free to report these bugs if you have some free time!

Warning: Use of this list is harmful. If you encounter a failure, you should investigate it properly and not just assume that a package's test suite is genuinely broken. You may be encountering a real bug that would have been caught by the package's test suite had you not chosen to ignore it. Do not assume that every entry listed in the table is caused by a broken test suite rather than someone finding a real bug, and do not assume that all failures you encounter are caused by a broken testsuite.
Package Known Broken Known Working Relevant Bug
autoconf 2.13
automake
a2ps
beryl-core
beryl-manager
beryl-plugins
commons-cli
control-center
coreutils 6.9-r1
curl 7.16.4
dbus-python 0.81.0
emerald
e2fsprogs 1.40.2
findutils 4.3.8
dev-libs/gdl 0.7.6
gettext 0.16.1-r1
gimp-print
glib 2.13.7
glibc 2.6
gnome-doc-utils 0.10.3
gnome-python-desktop
gnome-themes 2.19.5
gnome-vfs 2.19.2
gnutls 1.6.2
gst-plugins-base 0.10.12
gst-python
gtkhtml
gtk+ 2.11.5
koffice-libs
krita
k3d
libbonoboui 2.19.4
libgcrypt 1.2.4
libgda
libgdiplus 1.2.4
libgnomecanvas 2.14.0
libgnomekbd 2.18.2
libkcal
libkdepim
libnet 1.21
liboil 0.3.12
libpcre 7.2
libsoup 2.2.100
libtool 1.5.24
libtasn1 0.3.9
libxml2 2.6.28
linux-headers 2.6.22-r1
mono 1.2.4
mutagen 1.11
mysql
nautilus2.19.5
neon 0.26.3
nss 3.11.7
openldap
opensp 1.5.2-r1
orbit 2.14.7
pam 0.99.8.0-r2
pkgconfig 0.21-r1
poppler-bindings 0.5.91 0.5.9
portage-utils 0.1.24 on ~amd64
prelink 20060712-r1
python 2.3.5-r3, 2.4.4, 2.4.4-r4
ruby
tar 1.18-r1

Additional Software - Making It Work

Paludis Hooks

One of Paludis's big advantages are hooks. These are basically scripts that run at different stages of Paludis's execution. They are stored in /usr/share/paludis/hooks/ folder and its subfolders. Some of the solutions below are solved using hooks, too.

For some of the hooks ebuilds have been made (there is a meta ebuild, too). They are all in the unofficial Paludis-extras overlay.

Check for Security Updates on Sync

If you want to see, whether there are new security updates when you sync the database you can use this script.

File: /etc/paludis/hooks/sync_all_post/check-security.bash
#!/bin/bash 

${PALUDIS_COMMAND} --report
echo

Revdep-rebuild

Since 0.26.0_alpha you can use reconcilio.

Digesting ebuilds

A digest creating tool for Paludis will be available when the new signed manifest format is agreed upon. Until then there's no point.

For now just use

ebuild path/to/your/ebuild digest
Note: Or don't create manifest at all.

Http-replicator

Making http-replicator work with Paludis is simple. Add a line to

File: /etc/paludis/bashrc
...
export http_proxy="http://192.168.1.1:8080"
...

and change the address to the address of your proxy.


Eix

For using Eix, a portage database query tool, with Paludis, you can use the following script.
Note: To use it, move /etc/make.conf first
File: /etc/paludis/hooks/sync_all_post/update-eix.bash
#!/bin/bash 
[[ -x /usr/bin/update-eix ]] || return 0 
source ${PALUDIS_EBUILD_DIR}/echo_functions.bash 
ebegin "Updating eix database" 
opts= 
  
for repo in $(${PALUDIS_COMMAND} --list-repositories | sed -n /^\*/s/^..//p) 
do 
        [[ "$(${PALUDIS_COMMAND} --configuration-variable ${repo} format)" \
                == "ebuild" ]] || continue 
        location="$(${PALUDIS_COMMAND} --configuration-variable ${repo} location)" 
        opts="${opts} --add-overlay ${location}" 
done
   
/usr/bin/update-eix -o ${ROOT}/var/cache/eix-tmp -q ${opts} 
[ -f ${ROOT}/var/cache/eix ] && /usr/bin/diff-eix ${ROOT}/var/cache/eix ${ROOT}/var/cache/eix-tmp 
/bin/mv ${ROOT}/var/cache/eix-tmp ${ROOT}/var/cache/eix

Portage-Utils

There is patched version of portage-utils which supports overlays. It can be found on bugzilla bug 154405.

Truc also made an ebuild for everybody which is in the paludis-extras overlay. If you have any comment/suggestion about the overlay or the paludis patch, please just contact him - address given in the bug report "samLT" - or by pm on the gentoo forums.

The changes in portage-utils are explained here and there

Collision Protect

Collision protect works with paludis, but you must add a script to paludis hooks in /etc/paludis/hooks/merger_check_pre/. The script, made by dleverton, is called collision-protect.bash and you can download it from here. (it's quite long)

Managing orphaned files after uninstalling for prelinked libraries

This hook, made by dleverton prevents Paludis from leaving prelinked binaries lying around (because it thinks they've been modified) when you uninstall the package. It is available from here.

Problems with ebuilds

Some ebuilds in portage tree are not in a very good shape. Some are poorly maintained, so stricter as it is, Paludis will report some things that Portage wouldn't.

This section deals with these issues.

General

In general, if an ebuild makes problems for you, you can edit it and put it in an overlay. You can for example make an overlay called 'broken-ebuilds-overlay' and put all of them there.

Important:

Note: If you don't put a repaired ebuild in an overlay, it will be overwritten with the next sync.

Missing spaces in an ebuild

Some ebuilds are poorly written (some third party ebuilds mostly). In this case Paludis can report that some spaces might be missing. Just editing the ebuild and adding spaces where Paludis suggests solves the problem.

List of packages with this problem that users reported:

net-print/bjfilter  (third party)

Missing spaces in installed package database

It is possible, you installed an ebuild with missing spaces with some older package manager, while the ebuild already fixed in portage. You should insert spaces manually, in /var/db/pkg/<category>/<package>/(RDEPEND|DEPEND)

Ebuilds that don't work with paludis

Licences

Introduction

Paludis include the support of licenses mask...so can create set of licences for the /etc/paludis/licenses.conf

Fixing portage's tree licences

Paludis Manual

See Paludis manual

Retrieved from "http://www.gentoo-wiki.info/HOWTO_Use_Portage_alternative_-_Paludis"

Last modified: Sun, 28 Sep 2008 05:17:00 +0000 Hits: 35,284