Pacman

Historical bug tracker for the Pacman package manager.

The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues

This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
Tasklist

FS#24893 - makepkg isn't posix compatible

Attached to Project: Pacman
Opened by Sascha Biermanns (saschakb) - Sunday, 26 June 2011, 09:15 GMT
Last edited by Eric Belanger (Snowman) - Tuesday, 28 June 2011, 00:33 GMT
Task Type Feature Request
Category makepkg
Status Closed
Assigned To Eric Belanger (Snowman)
Architecture All
Severity Low
Priority Normal
Reported Version 3.5.3
Due in Version 4.0.0
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Summary and Info:
makepkg -f
==> Erstelle Paket: pacman 3.5.3-1 (So 26. Jun 10:51:29 CEST 2011) [create package]
==> Empfange Quellen... [receive sources]
-> pacman-3.5.3.tar.gz gefunden
-sf: No such file or directory [<--- GNU only call of ln -sf]
/home/saschakb/dev/yaourt/pacman/src//pacman-3.5.3.tar.gz: File exists

==> FEHLER: An unknown error has occurred. Exiting...


makepkg uses the symbolic link command 'ln' and the install command 'install' in ways, that break the posix compatibility and let become makepkg useless in any other userlands then the GNU userland. Other userlands like Busybox, UCB Heirloom, Plan 9, Goblin, sbase, asmutils can't handle this misbehaviour.

Steps to Reproduce:
makepkg on any other userland breaks at passages with ln or install -D

Some Explanation
any install -Dm644 <path><file> could be splitted into
mkdir -p <path>
install -m644 <file>

The ln command knows to arguments:
The -s option causes ln to create symbolic links.
If the -f option is present, ln tries to create hard links to directories.

At the moment, instead of using makepkg, for other userlands we use unipkg (http://aur.archlinux.org/packages.php?ID=35117) to do the job of manually building packages, but lot's of other package tools, that make usage of makepkg, run just into the same problems.

To get more informations - how other userlands are working on the Linux kernelspace and to see, how they can be used instead of the GNU userland on Archlinux, you can have a look here: http://ubd.tumblr.com/
The oldest message describes a complete installation process.

It would be nice, if you could switch to a posix like handling, but of cause I understand, if you say, that Archlinux will handle only the GNU userland - and will be a GNU/Linux.
This task depends upon

Closed by  Eric Belanger (Snowman)
Tuesday, 28 June 2011, 00:33 GMT
Reason for closing:  Implemented
Additional comments about closing:  fixed in git: http://projects.archlinux.org/pacman.git /commit/?id=51ed7dff0d30a5dcb73ce271e5d0 2bdb0d119cb9
Comment by Eric Belanger (Snowman) - Sunday, 26 June 2011, 10:09 GMT
makepkg doesn't use the install command so I'm not sure why you're mentionning it. It seems that it's the -f option of ln that's causing the problem. In that case, it would be easy to replace it by an explicit removal of the target if it exist.
Comment by Allan McRae (Allan) - Sunday, 26 June 2011, 10:14 GMT
It looks like there is already quite a lot of "rm -f" followed by "ln -s" in makepkg. It should be a simple patch to adjust the rest.
Comment by Eric Belanger (Snowman) - Sunday, 26 June 2011, 10:24 GMT
I could do a patch later today. repo-add also has some 'ln -sf'.
Comment by Dan McGee (toofishes) - Sunday, 26 June 2011, 16:34 GMT
Yes, this all seems pretty easy to fix and make POSIX compatible (why was there no patch provided?). I'm not sure why the bug report needs to invoke GNU politics though...
Comment by Eric Belanger (Snowman) - Sunday, 26 June 2011, 19:13 GMT
patch sent to ML
Comment by Dan McGee (toofishes) - Sunday, 26 June 2011, 19:42 GMT

Loading...