[arch-general] Are base packages assumed?
Hi there. I was wondering if base or base-devel packages should go in a package dependency list or not? What is the current policy about that? I noticed that the instructions to build a clean chroot tell to install base, base-devel and sudo, but does that means the package should be expecting them in a user system? Regards.
Zé Ninguém schrieb:
Hi there.
I was wondering if base or base-devel packages should go in a package dependency list or not? What is the current policy about that? I noticed that the instructions to build a clean chroot tell to install base, base-devel and sudo, but does that means the package should be expecting them in a user system?
I recommend putting all dependencies in depends (including base packages), as direct dependencies are used by pacman to order updates - i.e. a package is upgraded after all of its dependencies. This sometimes avoids weird race condition on updates. However, we usually do not put packages from base-devel into makedepends, although it doesn't hurt to do so. If you build anything from our repositories, make sure you always have base-devel installed. I wouldn't consider a missing makedepend on pkgconfig a bug, but a missing makedepend on anything not in base-devel is definitely a bug.
Hello,
I recommend putting all dependencies in depends (including base packages), as direct dependencies are used by pacman to order updates - i.e. a package is upgraded after all of its dependencies. This sometimes avoids weird race condition on updates.
However, we usually do not put packages from base-devel into makedepends, although it doesn't hurt to do so. If you build anything from our repositories, make sure you always have base-devel installed. I wouldn't consider a missing makedepend on pkgconfig a bug, but a missing makedepend on anything not in base-devel is definitely a bug.
I recently broke up my system with a pacman -Suy, because it installed readline 6 and not bash 4 (mirror not in sync yet). If the old bash had the right dependency (a little 'depend = readline<6' along with the 'depend = readline>=5.2') or the new readline the correct conflict, it would not have been a problem. My point is that explicit, precise dependencies (and makedependencies) can only improve stability, not only for custom aur PKGBUILD, but in the base system also (at least when it comes to big upstream upgrades). So: get used to write down all dependencies, it is a good habit and IMHO there's room for improvement for it at all levels. My 2 cents. Marco
Marco wrote:
Hello,
I recommend putting all dependencies in depends (including base packages), as direct dependencies are used by pacman to order updates - i.e. a package is upgraded after all of its dependencies. This sometimes avoids weird race condition on updates.
However, we usually do not put packages from base-devel into makedepends, although it doesn't hurt to do so. If you build anything from our repositories, make sure you always have base-devel installed. I wouldn't consider a missing makedepend on pkgconfig a bug, but a missing makedepend on anything not in base-devel is definitely a bug.
I recently broke up my system with a pacman -Suy, because it installed readline 6 and not bash 4 (mirror not in sync yet).
Are you sure it was a "-Syu" and not an "-Sy" followed by installing something (which many people now have discovered is bad...). The readline and bash packages were one after the other so readline was in the [core] repo without base for about one second. It is unlikely any mirror did a sync of the repo db in that time. Allan
Hi Allan,
Are you sure it was a "-Syu" and not an "-Sy" followed by installing something (which many people now have discovered is bad...). The readline and bash packages were one after the other so readline was in the [core] repo without base for about one second. It is unlikely any mirror did a sync of the repo db in that time.
Ok, I admit it was something like that ;) It was my older laptop, I have / mounted on a 4 G partition, and I had 1.3 G free. I upgraded after a couple of months, so I had to download 700 M of packages with ~2 G installed dimension. So I decided to do it piecewise, starting with the kernel and other big pkgs (texlive, openjdk...). Pacman downloaded and installed kernel and dependencies, with readline 6, not touching bash 3. Then -Scc, and I went on with another group of packages. After I while I got an error message (something like readline.so.5 not found on filesystem) and I was not able anymore to login as root, nor to halt or reboot. Then I looked in the bbs and found that the problem was that I did'n install bash4. Booted from a live cd and fixed it. Still, pacman let me install readline 6 without upgrading to bash 4. I consider it a bug (even if the policy and common sense say that you should upgrade with -Syu). Cheers, Marco
Off topic: The ~2 G size of the installed packages pacman shows is complete size of all updated packages not the difference between the currently installed size and the size after the upgrade, right? So the complete upgrade might have worked for you. Sorry to interrupt the thread. ;) Edgar Am oder ungefähr am Donnerstag, 09. Juli 2009, um 14:25:56 schrieb Marco:
Hi Allan,
Are you sure it was a "-Syu" and not an "-Sy" followed by installing something (which many people now have discovered is bad...). The readline and bash packages were one after the other so readline was in the [core] repo without base for about one second. It is unlikely any mirror did a sync of the repo db in that time.
Ok, I admit it was something like that ;)
It was my older laptop, I have / mounted on a 4 G partition, and I had 1.3 G free. I upgraded after a couple of months, so I had to download 700 M of packages with ~2 G installed dimension. So I decided to do it piecewise, starting with the kernel and other big pkgs (texlive, openjdk...). Pacman downloaded and installed kernel and dependencies, with readline 6, not touching bash 3. Then -Scc, and I went on with another group of packages. After I while I got an error message (something like readline.so.5 not found on filesystem) and I was not able anymore to login as root, nor to halt or reboot. Then I looked in the bbs and found that the problem was that I did'n install bash4. Booted from a live cd and fixed it. Still, pacman let me install readline 6 without upgrading to bash 4. I consider it a bug (even if the policy and common sense say that you should upgrade with -Syu).
Cheers, Marco
Edgar,
Off topic: The ~2 G size of the installed packages pacman shows is complete size of all updated packages not the difference between the currently installed size and the size after the upgrade, right? So the complete upgrade might have worked for you.
Bad experiences have thaught me not to do that. It might have, though. I didn't follow the development of pacman, so I actually don't know if there is a sort of check on available disk space yet. Why not implement a '--no-cache' option for pacman, to delete the downloaded tar.gz right after the successful installation of each pkg? Marco
On Thu, Jul 9, 2009 at 3:56 PM, Marco<domanov@gmail.com> wrote:
Edgar,
Off topic: The ~2 G size of the installed packages pacman shows is complete size of all updated packages not the difference between the currently installed size and the size after the upgrade, right? So the complete upgrade might have worked for you.
Bad experiences have thaught me not to do that. It might have, though. I didn't follow the development of pacman, so I actually don't know if there is a sort of check on available disk space yet.
No check on available disk space : http://bugs.archlinux.org/task/11639 It is more complicated than it sounds, the old check was problematic so it was removed : http://projects.archlinux.org/?p=pacman.git;a=commitdiff;h=ed13ac2cc8dd15d8a... Estimating upgrade size is not easy either, it is not only "new size - old size". Maybe "new installed size - old installed size + new packaged size" would be accurate enough. But this is meaningless on a partitioned system. Also it does not take eventual scriptlets which could create files during install.
Why not implement a '--no-cache' option for pacman, to delete the downloaded tar.gz right after the successful installation of each pkg?
This was also requested here : http://bugs.archlinux.org/task/9710 As Nagy mentioned, one problem here is that file-conflicts check require to first download all the packages.
participants (6)
-
Allan McRae
-
Edgar Kalkowski
-
Marco
-
Thomas Bächler
-
Xavier
-
Zé Ninguém