HOWTO Use Portage alternative - Paludis
From Gentoo Linux Wiki
| Installation • Kernel & Hardware • Networks • Portage • Software • System • X Server • Gaming • Non-x86 • Emulators • Misc |
Contents |
[edit] 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.
[edit] 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:
- Paludis homepage: http://paludis.pioto.org/
- The FAQ page on Paludis site.
- You can also check #paludis on freenode where the developers hang out. Please make sure your questions aren't already answered in the documentation first.
[edit] Support on the forums
Several support threads have been started on the Gentoo Forums
[edit] Unofficial Extras
- For unofficial scripts, hooks, and an overlay for ebuilds you can visit Paludis Scripts. And use the paludis-extras overlay (sync = rsync://drzile.dyndns.org/paludis-extras )
- For questions about paludis-extras or scripts go to #paludis-extras on freenode (where you won't bug paludis devs)
[edit] Installation
Basic installation is quite simple and is very well described on Paludis homepage. Here is the link to the Getting Started Guide.
[edit] 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.
[edit] 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.
[edit] 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
[edit] /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/* )
[edit] 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... " |
[edit] 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"
... |
[edit] 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
[edit] 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 |
[edit] 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!
| 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 | |||
| nautilus | 2.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 |
[edit] Additional Software - Making It Work
[edit] 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.
[edit] 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 |
[edit] Revdep-rebuild
Since 0.26.0_alpha you can use reconcilio.
[edit] 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
[edit] 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.
[edit] Eix
For using Eix, a portage database query tool, with Paludis, you can use the following script.| 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 |
[edit] 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
[edit] 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)
[edit] 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.
[edit] 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.
[edit] 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:
[edit] 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)
[edit] 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)
[edit] Ebuilds that don't work with paludis
- azureus
- supposedly fixed in paludis trunk. Dgrant 21:34, 23 January 2007 (UTC)
- jakarta-regexp
- supposedly fixed in paludis trunk. Dgrant 21:34, 23 January 2007 (UTC)
- sys-kernel/beyond-sources
- Removed from the tree. Hlieberman 17:22, 21 April 2007 (UTC)
[edit] Licences
[edit] Introduction
Paludis include the support of licenses mask...so can create set of licences for the /etc/paludis/licenses.conf
- The Free software licences list can be found here(with the explanations) or here
- The Open source Licenses can be found here or here
[edit] Fixing portage's tree licences
- madwifi need to be fixed
- we need to work on the as-is licences
- almost all ebuilds that begin with xf86*
[edit] Paludis Manual
See Paludis manual
