You are not logged in.

#1 2015-01-09 00:06:01

adb
Member
Registered: 2013-12-29
Posts: 6

[SOLVED] PKGBUILD /lib exists in filesystem

Apologies for the similar thread...
I know there's a lot of topics similar to this with particular files conflicting with various packages when installing, but I couldn't quite see the issue with my PKGBUILD.

PKGBUILD contents (without the vars):

package() {
  # Unpack the vendor package
  cd "${srcdir}"
  tar -zxf data.tar.gz
  cp -dpr "${srcdir}/usr" "${pkgdir}"
  install -Dm0644 "${pkgdir}/usr/share/doc/vpn-unlimited/copyright" \
    "${pkgdir}/usr/share/licenses/${pkgname}/copyright"

  # Create a custom script that forces the older libcurl
  cat > "${pkgdir}/usr/bin/vpnu" <<- EOF
#!/bin/sh

PID=$(pidof vpn-unlimited-daemon)

if [[ $EUID -ne 0 ]]; then
   echo "Must be root to run VPN daemon" 1>&2
   exit 1
else
   if [ -z $PID]; then
      vpn-unlimited-daemon &
      sleep 2
   fi

   LD_PRELOAD=libcurl.so.3 vpn-unlimited	
fi
EOF

  # Change script permissions
  chmod 0755 "${pkgdir}/usr/bin/vpnu"

  # Alter the desktop file to launch our script instead
  sed -i 's/Exec=vpn-unlimited/Exec=vpnu/g' "${pkgdir}/usr/share/applications/vpn-unlimited.desktop"

  # Add our custom systemd unit
  install -Dm0644 "${srcdir}/vpn-unlimited-daemon.service" "${pkgdir}/lib/systemd/system/vpn-unlimited-daemon.service"

  # Save this original file
  cp -p "${srcdir}/etc/init.d/vpn-unlimited-daemon" "${pkgdir}/usr/share/doc/vpn-unlimited/"
}

While building:

vpn-unlimited: /lib exists in filesystem
vpn-unlimited: /usr/sbin exists in filesystem
Errors occurred, no packages were upgraded.

I don't understand why the problem is the symbolic links at /lib and /usr/sbin. Doesn't cp -dpr follow the symlinks?

Last edited by adb (2015-01-11 22:37:32)

Offline

#2 2015-01-09 00:08:44

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PKGBUILD /lib exists in filesystem

I had a package that I had previously installed on one machine and later reused the package on another machine and that's when I encountered /usr/sbin already exists.  I rebuilt the package, and still got the same conflicting files message.


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#3 2015-01-09 00:40:24

mcmillan
Member
Registered: 2006-04-06
Posts: 737

Re: [SOLVED] PKGBUILD /lib exists in filesystem

The new version of pacman changed how it handles symbolic links, you'll need to install the files where they actually are rather than using a link. See the "Directory  Symlink Handling" section of Allan's blog post

Offline

#4 2015-01-09 01:22:53

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PKGBUILD /lib exists in filesystem

mcmillan wrote:

The new version of pacman changed how it handles symbolic links, you'll need to install the files where they actually are rather than using a link. See the "Directory  Symlink Handling" section of Allan's blog post

I have to bind mount the offending directory with its' symlink equivalent just to get the package to install?  I'm still getting the /usr/sbin conflict.

Last edited by nomorewindows (2015-01-09 01:30:58)


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#5 2015-01-09 01:28:32

fsckd
Forum Fellow
Registered: 2009-06-15
Posts: 4,173

Re: [SOLVED] PKGBUILD /lib exists in filesystem

nomorewindows wrote:
mcmillan wrote:

The new version of pacman changed how it handles symbolic links, you'll need to install the files where they actually are rather than using a link. See the "Directory  Symlink Handling" section of Allan's blog post

I have to bind mount the offending directory with its' symlink equivalent just to get the package to install?

Rather, the package itself must not install to those location with symlinks. E.g., it should install to /usr/lib and not to /lib.


aur S & M :: forum rules :: Community Ethos
Resources for Women, POC, LGBT*, and allies

Offline

#6 2015-01-09 01:33:52

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PKGBUILD /lib exists in filesystem

fsckd wrote:
nomorewindows wrote:
mcmillan wrote:

The new version of pacman changed how it handles symbolic links, you'll need to install the files where they actually are rather than using a link. See the "Directory  Symlink Handling" section of Allan's blog post

I have to bind mount the offending directory with its' symlink equivalent just to get the package to install?

Rather, the package itself must not install to those location with symlinks. E.g., it should install to /usr/lib and not to /lib.

Looks like my package doesn't need to put files in both /usr/bin and /usr/sbin.


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#7 2015-01-09 01:45:15

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PKGBUILD /lib exists in filesystem

Had to change the sbin in the actual configure file to get it to work and then remake the package.


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#8 2015-01-11 22:36:52

adb
Member
Registered: 2013-12-29
Posts: 6

Re: [SOLVED] PKGBUILD /lib exists in filesystem

Did as fsckd suggested and rearranged files in ${srcdir} avoiding the symlinks before moving them to ${pkgdir}. Solved.

Offline

#9 2015-01-13 22:23:25

orschiro
Member
Registered: 2009-06-04
Posts: 2,136
Website

Re: [SOLVED] PKGBUILD /lib exists in filesystem

Can someone help me changing the PKGBUILD from tm_smapi-ck?

I am getting the same error message:

(1/1) checking for file conflicts                   [###########################] 100%
error: failed to commit transaction (conflicting files)
tp_smapi-ck: /lib exists in filesystem
Errors occurred, no packages were upgraded.

PKGBUILD:

# Maintainer: fackamato
# Contributor: Steven Davidovitz <steviedizzle ð gmail đ com>
# Contributor: Nick B <Shirakawasuna ð gmail đ com>
# Contributor: Christof Musik <christof ð senfdax đ de>
# Contributor: Stefan Rupp <archlinux ð stefanrupp đ de>
# Contributor: Ignas Anikevicius <anikevicius ð gmail đ com>
_pkgname=tp_smapi

# make the AUR parser think the following lines are comments
# to bypass the buggy parser check
[[ "#" ]] && _kernext=${_kernext:-}
[[ "#" ]] && _kernver=${_kernver:-$(uname -r)}
[[ "#" ]] && _extramodules=$(readlink -f "/usr/lib/modules/$_kernver/extramodules" | sed 's#^/usr/lib/modules/##')
[[ "#" ]] && _kernver=$(< /usr/lib/modules/$_extramodules/version)

pkgname=$_pkgname-ck$_kernext
pkgver=0.41
pkgrel=44
pkgdesc="Modules for ThinkPad's SMAPI functionality, for -ck kernels"
[[ -n $_kernext ]] && pkgdesc+=" (for linux$_kernext)"
arch=('i686' 'x86_64')
url="http://tpctl.sourceforge.net/"
license=('GPL')
depends=("linux$_kernext-ck")
makedepends=("linux$_kernext-headers")
install=$_pkgname-ck.install
source=(https://github.com/downloads/evgeni/tp_smapi/tp_smapi-$pkgver.tar.gz)
md5sums=('63c683415c764568f6bf17c7eabe4752')
sha256sums=('6aef02b92d10360ac9be0db29ae390636be55017990063a092a285c70b54e666')

build() {
  cd "$srcdir/tp_smapi-$pkgver"
  sed -ri "s/^(KVER\s*:=).*$/\1$_kernver/" Makefile
  make HDAPS=1
}

package() {
  make -C "/lib/modules/$_kernver/build" \
  INSTALL_MOD_PATH="$pkgdir" M="$srcdir/$_pkgname-$pkgver" modules_install

  cd "$pkgdir/lib/modules/"
  mv "$_kernver/extra" "$_extramodules"
  rmdir "$_kernver"

  # compress kernel modules
  find "$pkgdir" -name "*.ko" -exec gzip -9 {} +

  # update kernel version in install file
  sed -ri "s/^(extramodules=).*$/\1$_extramodules/" "$startdir/$_pkgname-ck.install"
}

Thanks in advance!

Offline

#10 2015-01-13 22:49:42

Kinokoio
Member
Registered: 2014-10-29
Posts: 33
Website

Re: [SOLVED] PKGBUILD /lib exists in filesystem

Reported a bug from something like this a few days ago. 15 minutes since reported, someone closed it claiming it was not a bug.

Some LXQt packages have the same problem with /usr/lib64


----- Think out of the Box. ------
Archer since 2010.
My projects: http://github.com/kinokoio

Offline

#11 2015-01-13 23:28:20

clfarron4
Member
From: London, UK
Registered: 2013-06-28
Posts: 2,163
Website

Re: [SOLVED] PKGBUILD /lib exists in filesystem

orschiro wrote:

PKGBUILD:

package() {
  make -C "/lib/modules/$_kernver/build" \
  INSTALL_MOD_PATH="$pkgdir" M="$srcdir/$_pkgname-$pkgver" modules_install

  cd "$pkgdir/lib/modules/"
  mv "$_kernver/extra" "$_extramodules"
  rmdir "$_kernver"

  # compress kernel modules
  find "$pkgdir" -name "*.ko" -exec gzip -9 {} +

  # update kernel version in install file
  sed -ri "s/^(extramodules=).*$/\1$_extramodules/" "$startdir/$_pkgname-ck.install"
}

You need to be putting things in /usr/lib, because of the change in how pacman 4.2 handles symlinks.

EDIT: Scrub that suggestion, there's probably a better way to do the move than that.

Last edited by clfarron4 (2015-01-13 23:32:52)


Claire is fine.
Problems? I have dysgraphia, so clear and concise please.
My public GPG key for package signing
My x86_64 package repository

Offline

#12 2015-01-14 00:03:48

WorMzy
Forum Moderator
From: Scotland
Registered: 2010-06-16
Posts: 11,787
Website

Re: [SOLVED] PKGBUILD /lib exists in filesystem

I've not tested this, but I believe that

INSTALL_MOD_PATH="$pkgdir"

should be

INSTALL_MOD_PATH="$pkgdir/usr"

EDIT: the lines following that change would need to be updated accordingly too.

Last edited by WorMzy (2015-01-14 00:05:38)


Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD

Making lemonade from lemons since 2015.

Offline

#13 2015-01-14 03:28:15

nomorewindows
Member
Registered: 2010-04-03
Posts: 3,362

Re: [SOLVED] PKGBUILD /lib exists in filesystem

WorMzy wrote:

I've not tested this, but I believe that

INSTALL_MOD_PATH="$pkgdir"

should be

INSTALL_MOD_PATH="$pkgdir/usr"

EDIT: the lines following that change would need to be updated accordingly too.

In some packages you might get away with that, and be lucky that it works.  However, I went through via yaourt -G (package) and then going through the src dir and hand editing the entries in the configure script so that it goes to the right place.


I may have to CONSOLE you about your usage of ridiculously easy graphical interfaces...
Look ma, no mouse.

Offline

#14 2015-01-14 08:52:25

orschiro
Member
Registered: 2009-06-04
Posts: 2,136
Website

Re: [SOLVED] PKGBUILD /lib exists in filesystem

You need to be putting things in /usr/lib, because of the change in how pacman 4.2 handles symlinks.

For now this seems to work with the hint that @WorMzy gave:

Change all instances of:
- $pkgdir
+ $pkgdir/usr

Thanks!

Offline

#15 2015-01-28 00:08:59

aphirst
Member
From: Hull, England
Registered: 2008-06-30
Posts: 99
Website

Re: [SOLVED] PKGBUILD /lib exists in filesystem

I have now updated the AUR tp_smapi-ck package in accordance with the required changes. Frightfully sorry about the delay.


ArchLinux | x86_64 | linux-ck-ivybridge
ThinkPad X230 | 12.5" | i5-3320M (2.5GHz) | HD 4000 | 16GB (1600MHz) | 256GB mSATA SSD | 2TB HDD
ThinkPad T430 | 14.1" | i7-3520M (2.9GHz) | GF108M (NVS 5400M) | 16GB (1600MHz) | 256GB mSATA SSD | 1TB HDD | 500GB HDD

Offline

#16 2017-07-24 14:37:16

aytekinar
Member
From: Stockholm
Registered: 2013-12-19
Posts: 25

Re: [SOLVED] PKGBUILD /lib exists in filesystem

I am not sure if this thread is still valid, but I have created an AUR package for VPN Unlimited.

Offline

#17 2017-07-24 14:43:10

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,442
Website

Re: [SOLVED] PKGBUILD /lib exists in filesystem

Do not necrobump old threads, especially solved ones, and even more especially not to just spam the same message you are posting all over the forums which is essentially cross posting.

Closed.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

Board footer

Powered by FluxBB