[aur-general] file exist in filesystem
Hello, I am trying to create a git package, which provides the non-git packages from [extra], in this case mesa-git. I've decided to symlink /usr/share/licenses/mesa to /usr/share/licenses/mesa-git because the latter package provides the former, and I wanted to use same license in lib32-mesa-git package, but didn't want to depend on mesa-git. Since mesa-git provides mesa, and mesa installs /usr/share/licenses/mesa directory, I provide /usr/share/licenses/mesa as a symlink to /usr/share/licenses/mesa-git. Now, when installing mesa-git built packages, I get the following: :: mesa-git and mesa are in conflict. Remove mesa? [y/N] y :: mesa-libgl-git and mesa-libgl are in conflict. Remove mesa-libgl? [y/N] y :: ati-dri-git and ati-dri are in conflict. Remove ati-dri? [y/N] y :: intel-dri-git and intel-dri are in conflict. Remove intel-dri? [y/N] y Packages (8): ati-dri-10.0.1-1 [removal] intel-dri-10.0.1-1 [removal] mesa-10.0.1-1 [removal] mesa-libgl-10.0.1-1 [removal] ati-dri-git-10.1.0_devel.60267-1 intel-dri-git-10.1.0_devel.60267-1 mesa-git-10.1.0_devel.60267-1 mesa-libgl-git-10.1.0_devel.60267-1 . . . (4/4) checking for file conflicts [##############################################] 100% error: failed to commit transaction (conflicting files) mesa-git: /usr/share/licenses/mesa exists in filesystem mesa-libgl-git: /usr/share/licenses/mesa-libgl exists in filesystem ati-dri-git: /usr/share/licenses/ati-dri exists in filesystem intel-dri-git: /usr/share/licenses/intel-dri exists in filesystem Errors occurred, no packages were upgraded. The directories belong to the packages I'm trying to replace, but I am trying to replace the directories with a symlinks. Is this allowed? Should this happen at all? What would be another way to achive what I'm trying to achieve? Note that replacing -git packages with -non-git packages goes fine, no conflicts at all. Cheers. -- Note: My last name is not Krejzi.
I am trying to create a git package, which provides the non-git packages
If one package provides another, only one of the two packages may be installed.
:: mesa-git and mesa are in conflict. Remove mesa? [y/N] y
Pacman is reminding you that only one of the two packages may be installed.
error: failed to commit transaction (conflicting files) mesa-git: /usr/share/licenses/mesa exists in filesystem
Your package (mesa-git) is referencing files from a non-existent package (mesa-git). This is a logical contradiction.
I've decided to symlink /usr/share/licenses/mesa to /usr/share/licenses/mesa-git
Messing with the files managed by another package is a Bad Thing. Don't do it. Install a license in `/usr/share/licenses/mesa-git`. --Jeremy
from a non-existent package (mesa-git)
Whoops. That should read "from a non-existent package (mesa)".
On 12/24/2013 05:29 PM, Jeremy Audet wrote:
I am trying to create a git package, which provides the non-git packages
If one package provides another, only one of the two packages may be installed.
:: mesa-git and mesa are in conflict. Remove mesa? [y/N] y
Pacman is reminding you that only one of the two packages may be installed.
error: failed to commit transaction (conflicting files) mesa-git: /usr/share/licenses/mesa exists in filesystem
Your package (mesa-git) is referencing files from a non-existent package (mesa-git). This is a logical contradiction.
I've decided to symlink /usr/share/licenses/mesa to /usr/share/licenses/mesa-git
Messing with the files managed by another package is a Bad Thing. Don't do it. Install a license in `/usr/share/licenses/mesa-git`.
The files in question comes from packages that are to be removed, ones from [extra]. mesa-git and other -git packages built from same source *should* replace packages from [extra] as they provide *everything* packages from [extra] do (*exactly* the same files/directories/etc), but only newer version.
--Jeremy
-- Note: My last name is not Krejzi.
https://wiki.archlinux.org/index.php/Pkgbuild#license> mesa-git and other -git packages built from same source
*should* replace packages from [extra] as they provide *everything* packages from [extra] do (*exactly* the same files/directories/etc)
The licenses installed in `/usr/share/licenses/*` are never referenced by applications. They are not application data, and an appication should never reference those files. Those licenses are used only by the packaging system. To state the same point a little differently, the files in `/lib/mesa/*` belong to the mesa _application_, but the files in /usr/share/licenses/mesa belong to the mesa _package_. (assuming /lib/mesa/* exists -- I don't know about the app) As a result, a -git package *should* differ from a non-git package regarding license files. I'm not completely off my rocker here. See, for example, the clyde-git package. [1] It is the second most popular package in the AUR, by votes, and it installs license files in /usr/share/licenses/clyde-git. Also, the arch wiki clearly repeats my point: "license file(s) should be included in: /usr/share/licenses/pkgname/." [2] [1] https://aur.archlinux.org/packages/cl/clyde-git/PKGBUILD [2] https://wiki.archlinux.org/index.php/Pkgbuild#license
On 12/24/2013 06:48 PM, Jeremy Audet wrote:
https://wiki.archlinux.org/index.php/Pkgbuild#license> mesa-git and other -git packages built from same source
*should* replace packages from [extra] as they provide *everything* packages from [extra] do (*exactly* the same files/directories/etc)
The licenses installed in `/usr/share/licenses/*` are never referenced by applications. They are not application data, and an appication should never reference those files. Those licenses are used only by the packaging system. To state the same point a little differently, the files in `/lib/mesa/*` belong to the mesa _application_, but the files in /usr/share/licenses/mesa belong to the mesa _package_. (assuming /lib/mesa/* exists -- I don't know about the app) As a result, a -git package *should* differ from a non-git package regarding license files.
I'm not completely off my rocker here. See, for example, the clyde-git package. [1] It is the second most popular package in the AUR, by votes, and it installs license files in /usr/share/licenses/clyde-git. Also, the arch wiki clearly repeats my point: "license file(s) should be included in: /usr/share/licenses/pkgname/." [2]
[1] https://aur.archlinux.org/packages/cl/clyde-git/PKGBUILD [2] https://wiki.archlinux.org/index.php/Pkgbuild#license
Oh, for hells sake. As I said, /usr/share/licenses/mesa-git exists, and license is installed there and I am trying to create /usr/share/licenses/mesa as a symlink to the mentioned directory because lib32-mesa* packages share the same files with non lib32-* packages. D'oh. That still doesn't answer my original question and that wasn't the question about packaging standards nor creating directories. -- Note: My last name is not Krejzi.
Ah. I'm sorry if I've misunderstood your questions. --Jeremy
Den 24-12-2013 16:17, Armin K. skrev:
The directories belong to the packages I'm trying to replace, but I am trying to replace the directories with a symlinks. Is this allowed?
There's been some discussion about this. I've taken to simple use /usr/share/licenses/foo/ for installing foo-vcs package licenses to, but others have in recent discussion suggested the symlink approach you're taking.
Should this happen at all? What would be another way to achive what I'm trying to achieve?
Uninstall mesa (and related packages) first. I'm pretty sure it's a bug in pacman, but I haven't gone trawling the filed issues for it, even if I have encountered it myself.
Note that replacing -git packages with -non-git packages goes fine, no conflicts at all.
Curious. -- Frederik "Freso" S. Olesen <http://freso.dk/>
participants (3)
-
Armin K.
-
Frederik "Freso" S. Olesen
-
Jeremy Audet