View previous topic :: View next topic |
Author |
Message |
Gentree Watchman
Joined: 01 Jul 2003 Posts: 5350 Location: France, Old Europe
|
Posted: Mon Jan 08, 2007 9:12 pm Post subject: |
|
|
Ah, swamp fever, all starts to make sense. At least the etomology, not reason for the name.
I'd seem zxy's sig. that used to read Paludis support forum and thought it was some sort of charitable organisation.
I finally got annoyed and thought what is this crap? I clicked and discovered an potentially crucially useful tool.
So much for obscure project names.
_________________ Linux, because I'd rather own a free OS than steal one that's not worth paying for.
Gentoo because I'm a masochist
AthlonXP-M on A7N8X. Portage ~x86 |
|
Back to top |
|
|
Conan Guru
Joined: 02 Nov 2004 Posts: 360
|
Posted: Mon Jan 08, 2007 9:15 pm Post subject: |
|
|
I believe its an acronym for something.. can't remember what though |
|
Back to top |
|
|
zxy Veteran
Joined: 06 Jan 2006 Posts: 1160 Location: in bed in front of the computer
|
Posted: Mon Jan 08, 2007 9:54 pm Post subject: |
|
|
@Gentree Maybe I should put the donation bank account near to my sig, _________________ Nature does not hurry, yet everything is accomplished.
Lao Tzu |
|
Back to top |
|
|
dhave Apprentice
Joined: 28 Oct 2005 Posts: 298 Location: Still outside the Matrix ...
|
Posted: Mon Jan 08, 2007 10:49 pm Post subject: |
|
|
Gentree wrote: |
I finally got annoyed and thought what is this crap? I clicked and discovered an potentially crucially useful tool.
|
It really is a good package manager. I felt like experimenting a bit and have been very pleasantly surprised. I've been using it just a week, though. _________________ This space available! |
|
Back to top |
|
|
slycordinator Advocate
Joined: 31 Jan 2004 Posts: 3065 Location: Korea
|
Posted: Mon Jan 08, 2007 11:17 pm Post subject: |
|
|
I made a script that'll let you add layman repositories automatically to your paludis configuration. I really just copied the section that does the same out of the portage2paludis.bash script then made it so it wouldn't exit with error when you hit a pre-existing overlay. Also, I removed references to portage scripts (portageq) and replaced it with simply doing "source /etc/make.conf" which works well since layman uses that file (indirectly) and most people will probably be using that file as a configuration starter anyway.
So here it goes:
Code: | #!/bin/bash
# This file is based on an excerpt from the portage2paludis.bash
# script Copyright (c) 2006 Mike Kelly <pioto@gentoo.org>
# The purpose of this file is to allow one to allow one to
# Add new repositories which may have been added through an
# external manager such as layman.
# It doesn't use any portage utilities other than sourcing
# /etc/make.conf to get the PORTDIR_OVERLAY variable to
# walk through the overlays that portage/layman would use
# FUNCTIONS #
# needs 3 params, value to test, var to show if true, var to show if false
# basically, acts like the ? ... : ... operator in C
qmark_oper() {
if [[ "${1}" == "y" ]] ; then
echo "${2}"
else
echo "${3}"
fi
}
# Given a file path, will attempt to determine a sync url for a paludis
# repository config file.
function get_sync_url() {
local path="${1}"
if [[ -d "${path}/.svn" ]] ; then
url=$(env LANG=C svn info "${path}" | grep -i "^url" | cut -d" " -f2)
case ${url} in
http://*|https://*)
echo "svn+${url}"
;;
svn://*|svn+ssh://*)
echo "${url}"
;;
*)
return 1
;;
esac
elif [[ -d "${path}/CVS" ]] ; then
return 1
elif [[ -d "${path}/.git" ]] ; then
url=$(grep -i "^url:" "${path}/.git/remotes/origin" | cut -d" " -f2)
case ${url} in
http://*)
echo "git+${url}"
;;
ssh://*)
echo "git+${url}"
;;
*)
return 1
;;
esac
else
return 1
fi
}
canonicalise() {
case $(uname -s) in
FreeBSD) realpath $@ ;;
*) readlink -f $@ ;;
esac
}
# MAIN #
echo "Please enter where you set up paludis"
echo
read -e -p "Paludis Config Directory [/etc/paludis]: " outputdir
echo
outputdir="${outputdir:-/etc/paludis}"
if [[ ! -d "${outputdir}" ]] ; then
echo "No such directory ${outputdir}." 1>&2
echo "Aborting." 1>&2
exit 1
elif [[ $(ls -1 "${outputdir}" | wc -l) -eq 0 ]] ; then
echo "No paludis setup at ${outputdir}" 1>&2
exit 1
fi
read -n1 -p "Enable names cache? [y/N] " names_cache
echo
names_cache=${names_cache:-n}
if [[ -d "/var/cache/paludis/metadata" ]] ; then
echo "Detected write cache directory; enabling write caches."
write_cache="y"
else
read -n1 -p "Enable local metadata cache (write_cache)? [y/N] " write_cache
echo
write_cache=${write_cache:-n}
[[ "${write_cache}" == "y" ]] && mkdir -p "/var/cache/paludis/metadata"
fi
source /etc/make.conf
profile="$(canonicalise /etc/make.profile)"
echo
echo "* Overlays:"
[[ -z "${PORTDIR_OVERLAY}" ]] && echo "No overlays to configure."
# Needed for repo_name matching
shopt -s extglob
for o in ${PORTDIR_OVERLAY}; do
# Get our repo_name
repo_name=
[[ -f "${o}/profiles/repo_name" ]] \
&& repo_name=$(< "${o}/profiles/repo_name")
if [[ -z "${repo_name}" ]] ; then
mkdir -p "${o}/profiles"
echo
echo "The repository at \"${o}\""
echo "is not complete. It needs to have a name. (Set in the"
echo "profiles/repo_name file). Please enter one now."
echo
echo "Legal characters are: The letters A-Z (upper and lower case),"
echo "the digits 0-9, and the symbols - (\"dash\"), + (\"plus\"),"
echo "and _ (\"underscore\")."
echo
read -e -p "Name for ${o}: " repo_name
echo "${repo_name}" > "${o}/profiles/repo_name"
fi
while [[ "${repo_name}" != +([A-Za-z0-9+_-]) ]] ; do
echo
echo "Invalid name; try again."
read -e -p "Name for ${o}: " repo_name
echo "${repo_name}" > "${o}/profiles/repo_name"
done
repo_file="${outputdir}/repositories/${repo_name}.conf"
if [[ -f "${repo_file}" ]] ; then
echo "Using preconfigured settings for for the repo called"
echo "\"${repo_name}\""
# add cache variables if they're wanted and not present
[[ "${names_cache}" == "y" ]] && \
[[ "`grep "names_cache" ${repo_file} | sed '/^\#/d'`" == "" ]] && \
echo "names_cache = $(qmark_oper "${names_cache}" "\${location}/.cache/names" "/var/empty")" >> ${repo_file} && echo "Adding names cache to ${repo_name}"
# add write cache variables if they're wanted and aren't present
[[ "${write_cache}" == "y" ]] && \
[[ "`grep "write_cache" ${repo_file} | sed '/^\#/d'`" == "" ]] && \
echo "write_cache = $(qmark_oper "${write_cache}" "/var/cache/paludis/metadata" "/var/empty")" >> ${repo_file} && echo "Adding write cache to ${repo_name}"
continue
fi
echo -n "Generating ${repo_name}.conf (${o}) (Pass 1 of 1)... "
sync_url=$(get_sync_url "${o}")
eclassdirs="${portdir}/eclass"
[[ -d "${o}/eclass" ]] && eclassdirs="${eclassdirs} ${o}/eclass"
if [[ ! -f "${o}/profiles/categories" ]] ; then
echo
echo -n " creating profiles/categories file... "
mkdir -p "${o}/profiles"
for c in "${o}"/*-* "${o}"/virtual ; do
[[ -d "${c}" ]] || continue
echo "${c/${o}\/}" >> "${o}/profiles/categories"
done
echo "done."
fi
cat << EOF >"${repo_file}"
location = \${ROOT}${o}
sync = ${sync_url}
profiles = \${ROOT}${profile}
eclassdirs = ${eclassdirs}
distdir = ${DISTDIR}
format = portage
names_cache = $(qmark_oper "${names_cache}" "\${location}/.cache/names" "/var/empty")
write_cache = $(qmark_oper "${write_cache}" "/var/cache/paludis/metadata" "/var/empty")
EOF
echo "done."
done
# Not needed anymore
shopt -u extglob |
|
|
Back to top |
|
|
slycordinator Advocate
Joined: 31 Jan 2004 Posts: 3065 Location: Korea
|
Posted: Wed Jan 10, 2007 7:55 pm Post subject: |
|
|
paludis complains of a circular dependency if you try to install libwww-perl.
But AFAICT the actual circular dependency was fixed already.
Here's what I see:
If USE="ssl" then libwww-perl depends on Crypt-SSLeay. And it used to be that Crypt-SSLeay depended on libwww-perl.
So if you did "emerge libwww-perl" it would fail.
So they changed the Crypt-SSLeay ebuild to have libwww-perl be in the PDEPEND.
So now if I do "paludis -ip libwww-perl" I get
Code: | Dependency error:
* In program /usr/bin/paludis -ip libwww-perl:
* When performing install action from command line:
* When executing install task:
* When adding PackageDepAtom 'dev-perl/libwww-perl':
* When adding package 'dev-perl/libwww-perl-5.803-r1::gentoo':
* When adding build dependencies as pre dependencies:
* When adding PackageDepAtom 'dev-perl/Crypt-SSLeay':
* When adding package 'dev-perl/Crypt-SSLeay-0.51-r1::gentoo':
* When adding post dependencies as post dependencies:
* When adding PackageDepAtom 'dev-perl/libwww-perl':
* Circular dependency: Atom 'dev-perl/libwww-perl' matched by merge list entry 'dev-perl/libwww-perl-5.803-r1::gentoo', which does not yet have its dependencies installed (N7paludis23CircularDependencyErrorE) |
But if I do "paludis -ip Crypt-SSLeay" I get
Code: | Building dependency list...
These packages will be installed:
* dev-perl/Crypt-SSLeay-0.51-r1::gentoo [N]
* virtual/perl-libnet-1.19::gentoo [N]
* dev-perl/HTML-Tagset-3.10::gentoo [N]
* dev-perl/HTML-Parser-3.48::gentoo [N] unicode
* virtual/perl-MIME-Base64-3.07::gentoo [N]
* dev-perl/URI-1.35::gentoo [N]
* virtual/perl-Digest-MD5-2.36::gentoo [N]
* dev-perl/HTML-Tree-3.19.01::gentoo [N]
* dev-perl/Compress-Raw-Zlib-2.001::gentoo [N]
* virtual/perl-Scalar-List-Utils-1.18::gentoo [N]
* dev-perl/IO-Compress-Base-2.001::gentoo [N]
* dev-perl/IO-Compress-Zlib-2.001::gentoo [N]
* dev-perl/Compress-Zlib-2.001::gentoo [N]
* dev-perl/libwww-perl-5.803-r1::gentoo [N] ssl
Total: 14 packages (14 new) |
|
|
Back to top |
|
|
adekoba Tux's lil' helper
Joined: 06 Oct 2006 Posts: 129
|
Posted: Wed Jan 10, 2007 8:37 pm Post subject: |
|
|
How do I update my configuration files? I get this:
Code: |
* Searching for configuration files requiring action...
* Found 3 files in //etc
* Found files in 1 directories
* Your action is required
|
every time i install something. _________________ website |
|
Back to top |
|
|
spb Retired Dev
Joined: 02 Jan 2004 Posts: 2135 Location: Cambridge, UK
|
Posted: Wed Jan 10, 2007 8:43 pm Post subject: |
|
|
dark_speedo wrote: | How do I update my configuration files? | Same way as normal -- use etc-update or dispatch-conf. |
|
Back to top |
|
|
Conan Guru
Joined: 02 Nov 2004 Posts: 360
|
Posted: Wed Jan 10, 2007 8:51 pm Post subject: |
|
|
IOW you need to install either portage or cfg-update to use paludis |
|
Back to top |
|
|
adekoba Tux's lil' helper
Joined: 06 Oct 2006 Posts: 129
|
Posted: Wed Jan 10, 2007 8:55 pm Post subject: |
|
|
spb wrote: | dark_speedo wrote: | How do I update my configuration files? | Same way as normal -- use etc-update or dispatch-conf. |
ah, ok. it wasn't working before because i had CONFIG_PROTECT="-*" set. thanks. _________________ website |
|
Back to top |
|
|
Gentree Watchman
Joined: 01 Jul 2003 Posts: 5350 Location: France, Old Europe
|
Posted: Wed Jan 10, 2007 9:29 pm Post subject: |
|
|
dark_speedo wrote: | "Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders" |
hmm, I'd never thought of it like that. Maybe Java isn't so bad after all. _________________ Linux, because I'd rather own a free OS than steal one that's not worth paying for.
Gentoo because I'm a masochist
AthlonXP-M on A7N8X. Portage ~x86 |
|
Back to top |
|
|
lefou Apprentice
Joined: 18 Feb 2004 Posts: 199 Location: Germany, Lusatia
|
Posted: Wed Jan 10, 2007 10:30 pm Post subject: |
|
|
Paludis wants to permanently downgrade x1-libs/qt if I run paludis -ip world.
Code: | These packages will be installed:
* x11-libs/qt-3.3.6-r4::gentoo {:3} [D 3.3.6-r5] cups -debug doc -examples -firebird gif -immqt% -immqt-bc% ipv6% -mysql -nas -nis odbc opengl -postgres sqlite xinerama <app-editors/kile-1.9.3::installed, app-misc/kheisereg-0.8::installed, 121 more>
Total: 1 package (1 downgrade)
|
As paludis has no "--tree" equvalent, I can not determine the package, which forced the downgrade; "--show-reasons full" isn't helpfull eigher, as it list many many packages without any further explanation...
Any hint? |
|
Back to top |
|
|
spb Retired Dev
Joined: 02 Jan 2004 Posts: 2135 Location: Cambridge, UK
|
Posted: Wed Jan 10, 2007 10:33 pm Post subject: |
|
|
Try -ip --show-reasons summary and `paludis -q qt`. |
|
Back to top |
|
|
lefou Apprentice
Joined: 18 Feb 2004 Posts: 199 Location: Germany, Lusatia
|
Posted: Wed Jan 10, 2007 10:41 pm Post subject: |
|
|
paludis -q qt gives me the following:
Code: | * x11-libs/qt
gentoo: 3.3.4-r8 3.3.6-r4 3.3.6-r5 {:3} 4.1.4-r2 4.2.1 4.2.2 {:4}
installed: 3.3.6-r5 {:3} 4.2.2* {:4}
x-kde-experimental: (3.99)K {:3}
lefous_portage_overlay: 4.2.1 {:4}
Homepage: http://www.trolltech.com/
Description: The Qt toolkit is a comprehensive C++ application development framework.
License: ( GPL-2 )
Installed time: Fri Dec 15 23:58:43 2006
Use flags: (-accessibility) (cups) (dbus) (-debug) (doc) (-examples) (-firebird) (gif) (-glib) (-input_devices_wacom) (jpeg) (mng) (-mysql) (-nas) (-nis) (odbc) (opengl) (pch) (png) (-postgres) (-qt3support) (sqlite) (sqlite3) (xinerama) (zlib)
Key to mask reasons:
* K: keyword
|
"--show-reasons summary" is my default. |
|
Back to top |
|
|
spb Retired Dev
Joined: 02 Jan 2004 Posts: 2135 Location: Cambridge, UK
|
Posted: Wed Jan 10, 2007 11:57 pm Post subject: |
|
|
Looks like something that's installed is depending upon that specific version for some reason. Nothing really I can suggest except to look through your installed packages for anything with a dep on a specific qt version. |
|
Back to top |
|
|
slycordinator Advocate
Joined: 31 Jan 2004 Posts: 3065 Location: Korea
|
Posted: Thu Jan 11, 2007 12:41 am Post subject: |
|
|
Since you seem to not want it to downgrade you should:
1) Note which version it's trying to install
2) Mask all versions less than or equal to that
Then when you go to do your upgrading script it'll fail but it'll pinpoint where the dependency is coming from. |
|
Back to top |
|
|
zxy Veteran
Joined: 06 Jan 2006 Posts: 1160 Location: in bed in front of the computer
|
Posted: Thu Jan 11, 2007 10:51 am Post subject: |
|
|
I created a page on my site, where I have put the scripts from this thread.
You can see and download the scripts here:
Paludis - scripts.
If you think something should be added PM me.
Zxy
--- EDIT ---
I would like to ask the authors of the scripts, that are and will be added to the page, if they could send me a (brief) description.
Thanks _________________ Nature does not hurry, yet everything is accomplished.
Lao Tzu
Last edited by zxy on Thu Jan 11, 2007 4:12 pm; edited 2 times in total |
|
Back to top |
|
|
lefou Apprentice
Joined: 18 Feb 2004 Posts: 199 Location: Germany, Lusatia
|
Posted: Thu Jan 11, 2007 12:15 pm Post subject: |
|
|
slycordinator wrote: | Since you seem to not want it to downgrade you should:
1) Note which version it's trying to install
2) Mask all versions less than or equal to that
Then when you go to do your upgrading script it'll fail but it'll pinpoint where the dependency is coming from. |
Strange, masking with "<" and/or with "<=" didn't trigger any downgrade nor problem/warning/error message. So, as it seems the problem can be avoided by hard masking the downgrade candidate, it is not abvious, which package (or which config setting) triggered that behavior. With portage's emerge, "--tree" exposed the package.
Thanks for your tips. |
|
Back to top |
|
|
zxy Veteran
Joined: 06 Jan 2006 Posts: 1160 Location: in bed in front of the computer
|
Posted: Thu Jan 11, 2007 12:28 pm Post subject: |
|
|
I have an idea.
What if an ebuild would be created, with all hooks, that were posted here.
It would be used like Code: | paludis -i paludis-hooks |
In /ets/paludis/use.conf you could then specify something like Code: | sys-apps/paludis-hooks eix collision-protect update-prelink-orphans | or exclude some of course
Code: | sys-apps/paludis-hooks -eix collision-protect -update-prelink-orphans |
I could host the file, if needed. I'm not good at writing ebuilds, so I could use some help.
What do you guys think? _________________ Nature does not hurry, yet everything is accomplished.
Lao Tzu |
|
Back to top |
|
|
lefou Apprentice
Joined: 18 Feb 2004 Posts: 199 Location: Germany, Lusatia
|
Posted: Thu Jan 11, 2007 12:37 pm Post subject: |
|
|
Good idea with the ebuild.
By the way. The hooks should be prefixed with a number, e.g. 10_, to declare the order of execution. |
|
Back to top |
|
|
lefou Apprentice
Joined: 18 Feb 2004 Posts: 199 Location: Germany, Lusatia
|
Posted: Thu Jan 11, 2007 12:40 pm Post subject: |
|
|
To simmulate a "--ask" option, you can place a script /usr/share/paludis/hooks/install_all_pre/10_read-key.bash:
Code: | #!/bin/bash
echo "Press any key to continue or CTRL-C to abort"
read
|
|
|
Back to top |
|
|
lefou Apprentice
Joined: 18 Feb 2004 Posts: 199 Location: Germany, Lusatia
|
Posted: Thu Jan 11, 2007 12:47 pm Post subject: |
|
|
Belongs the idea with the ebuild for paludis hooks. Instead of using use flags, it would be great to use eselect to select any hook, just like bash-completion.
# eselect paludis-hook list
[1] install_all_pre : 10_read-key.bash : Read a key before installing
[2] install_all_post : 10_mail_me.bash : Email me a message about installed packages
[3] ...
(* for installed hooks)
# eselect paludis-hook enable 1
Enabled hook install_all_pre : 10_read_key.bash
# eselect paludis-hook list
[1] install_all_pre : 10_read-key.bash : Read a key before installing *
[2] install_all_post : 10_mail_me.bash : Email me a message about installed packages
[3] ...
(* for installed hooks)
You get the idea...
I can write ebuild, but never wrote an eselect script. Is this hard? What you think about the idea? |
|
Back to top |
|
|
zxy Veteran
Joined: 06 Jan 2006 Posts: 1160 Location: in bed in front of the computer
|
Posted: Thu Jan 11, 2007 12:48 pm Post subject: |
|
|
lefou wrote: | To simmulate a "--ask" option, you can place a script /usr/share/paludis/hooks/install_all_pre/10_read-key.bash:
Code: | #!/bin/bash
echo "Press any key to continue or CTRL-C to abort"
read
|
|
It would be even better to check first for the command line option like --ask or -a. (I don't know how to do that)
And after 'read' command the script should then check if you pressed y or n.
But generally good idea. I was missing 'ask', but never did anything about it. _________________ Nature does not hurry, yet everything is accomplished.
Lao Tzu |
|
Back to top |
|
|
dleverton Guru
Joined: 28 Aug 2006 Posts: 517
|
Posted: Thu Jan 11, 2007 1:01 pm Post subject: |
|
|
lefou wrote: | The hooks should be prefixed with a number, e.g. 10_, to declare the order of execution. |
I don't think Paludis executes the hooks in any particular order. If it seems to do so on your machine, it might be because your filesystem is returning them in order, but it's not a good idea to rely on that.
Sounds like a good idea for a feature request, though.
EDIT: actually, I might be wrong about this. Best to test it, at least.
zxy wrote: | It would be even better to check first for the command line option like --ask or -a. (I don't know how to do that) |
I don't think you can do that, but you could have an environment variable: Code: | PALUDIS_ASK=yes paludis -i ... | or something.
Last edited by dleverton on Thu Jan 11, 2007 1:05 pm; edited 1 time in total |
|
Back to top |
|
|
lefou Apprentice
Joined: 18 Feb 2004 Posts: 199 Location: Germany, Lusatia
|
Posted: Thu Jan 11, 2007 1:04 pm Post subject: |
|
|
zxy wrote: | lefou wrote: | To simmulate a "--ask" option, you can place a script /usr/share/paludis/hooks/install_all_pre/10_read-key.bash:
Code: | #!/bin/bash
echo "Press any key to continue or CTRL-C to abort"
read
|
|
It would be even better to check first for the command line option like --ask or -a. (I don't know how to do that)
And after 'read' command the script should then check if you pressed y or n.
But generally good idea. I was missing 'ask', but never did anything about it. |
This was just a simple but fast hack to accomplish the "--ask" behavior. With "emerge --ask" I always pressed just enter to continue, CTRL-C to abort, as entering 'y' or 'no' followed by an enter is/was to complicated (read complicated as 'slow'). |
|
Back to top |
|
|
|