You are not logged in.
i took a package from extra
mkdir NewFolder
cp /var/cache/pacman/pkg/1.pkg.tr.gz ./
tar -xvzpf 1.pkg.tar.gz -C NewFolder
cd NewFolder
tar -cvzpf 2.pkg.tar.gz * .[a-zA-Z]*
# just tar -ing up everything again (without change) (.[a-zA-Z]* to include .PKGINFO etc)
pacman -Qip newpkg.tar.gz
# all output seems ok
pacman -Rd 1
# the installed package that worked
pacman -Ud 2.pkg.tar.gz
# application is broken nowthe package 2 (made by just un-tar and tar back again package 1) is broken
i think it has something to do with symlinks being altered in some way
output of tar -tzf on the 2 packages is identical (except display order) (output of tar -tzf |sort is identical)
what is done wrong ?
Last edited by ash (2009-04-30 11:00:25)
Offline
Let's take a step back and ask what you're trying to achieve?
It seems like you may be going about things in an overly-complicated and convoluted fashion... ![]()
Are you familiar with our Forum Rules, and How To Ask Questions The Smart Way?
BlueHackers // fscanary // resticctl
Offline
Maybe have a look at bacman in the pacman-contrib package - it recreates installed packages, so it might give you some ideas.
Offline
i am trying to rename an existing package (xorg related) to prevent it from being updated in pacman -Syu
i want to hold this package (and some others) in a local mirror and include it in pacman - instead of ignorepkgs
to do this i edit the .PKGINFO inside the existing binary package
the problem exists with few packages only
if i just repack the package (without changing anything inside - not the pkginfo either) the new package still does not work
this makes me think that its somehow related to tar and symlinks
Offline
Why don't you look in /usr/bin/makepkg and look for the exact command that makepkg uses:
bsdtar -czf pkgname-pkgver-pkgrel-arch.pkg.tar.gz .PKGINFO .INSTALL .CHANGELOG *Of course, get rid of .INSTALL and .CHANGELOG if they are not in the package.
Offline
deleted all files from the previous try
mkdir NewFolder
cp /var/cache/pacman/pkg/1.pkg.tr.gz ./
bsdtar -xzf 1.pkg.tar.gz -C NewFolder
cd NewFolder
bsdtar -czf 2.pkg.tar.gz .INSTALL .PKGINFO *
pacman -Qip newpkg.tar.gz
# all output seems ok
pacman -Rd 1
# the installed package that worked
pacman -Ud 2.pkg.tar.gz
# the new package is still brokenOffline
Give us the error message.
Offline
example 1
libdrm - when i install it
then every time i use pacman to un/install any other package
bash-3.2# pacman -Ud /home/ash/xorg14/xorg14-libdrm-2.3.1-2-i686.pkg.tar.gz
loading package data...
(1/1) checking for file conflicts [########################################################################################################################] 100%
(1/1) upgrading xorg14-libdrm [########################################################################################################################] 100%
/sbin/ldconfig: /usr/lib/libdrm.so.2 is not a symbolic link <------- ???example 2
when i startx - from xorg.0.log
package is xserver-xorg
Fatal server error:
xf86OpenConsole: Cannot open /dev/tty0 (Permission denied)
(WW) xf86CloseConsole: KDSETMODE failed: Bad file descriptor
(WW) xf86CloseConsole: VT_GETMODE failed: Bad file descriptor
(WW) xf86OpenConsole: VT_GETSTATE failed: Bad file descriptorOffline
i now tried to do the exact same as root and now the packages work and dont make pacman errors etc
(i checked and now 'chmod' permissions and links are done right)
but is there possibility that some files in the packages are not supposed to be owned by root ? (so that i add security trouble or something by packing the tar as root)
Offline
Try:
fakeroot bsdtar -czf 2.pkg.tar.gz .INSTALL .PKGINFO *Offline
i am trying to rename an existing package (xorg related) to prevent it from being updated in pacman -Syu
i want to hold this package (and some others) in a local mirror and include it in pacman - instead of ignorepkgs
to do this i edit the .PKGINFO inside the existing binary package
the problem exists with few packages only
if i just repack the package (without changing anything inside - not the pkginfo either) the new package still does not work
this makes me think that its somehow related to tar and symlinks
Instead of a local mirror, create a local repo with these packages you want to hold, and put that as your first repo in pacman.conf . That is a much simpler and cleaner solution than editing .PKGINFO files and such IMHO. And if you want to know if these files have been updated, just call pacman with another pacman.conf without that local repo.
Offline
i want to rename all of xorg-packages-1.4 to xorg14-xorg-packages-1.4 so that i can just -S xorg14 or xorg depending on the box
i dont want too much the solution with just repo priority. it can lead to all kinds of pacman hell (which i allready had and dont want it again) + it requires making a repo for xorg only (while i have other stuff in my repo too)
thanks !
Offline