You are not logged in.

#1 2016-01-20 20:35:08

Amanda S
Member
Registered: 2013-09-21
Posts: 276
Website

How to install a package without installing a dependency?

As some might know, I'm very against geoclue. And for some reason, it's listed as a dependency of so many Arch pacakges, instead of being a dependency of packages which actually need geolocation awareness.

I want to install a few packages that "depend" on geoclue and Co. How can I install these packages without installing geoclue, and without having to compile everything on my own? Pacman should be able to ignore some packages. I even set the "Ignore Pkg" line on pacman.conf, but this happens:

warning: mate-icon-theme-faenza-1.12.0-1 is up to date -- reinstalling
resolving dependencies...
warning: ignoring package geoclue2-2.4.1-1
warning: cannot resolve "geoclue2", a dependency of "webkit2gtk"
warning: cannot resolve "webkit2gtk", a dependency of "zenity"
warning: cannot resolve "zenity", a dependency of "marco"
warning: ignoring package geoclue2-2.4.1-1
warning: cannot resolve "geoclue2", a dependency of "webkit2gtk"
warning: cannot resolve "webkit2gtk", a dependency of "zenity"
warning: cannot resolve "zenity", a dependency of "marco"
warning: cannot resolve "marco>=1.12", a dependency of "mate-control-center"
warning: ignoring package geoclue2-2.4.1-1
warning: cannot resolve "geoclue2", a dependency of "webkit2gtk"
warning: cannot resolve "webkit2gtk", a dependency of "yelp"
warning: cannot resolve "yelp", a dependency of "mate-user-guide"
warning: ignoring package geoclue2-2.4.1-1
warning: cannot resolve "geoclue2", a dependency of "webkitgtk2"
warning: cannot resolve "webkitgtk2", a dependency of "atril"
warning: ignoring package geoclue2-2.4.1-1
warning: cannot resolve "geoclue2", a dependency of "webkit2gtk"
warning: cannot resolve "webkit2gtk", a dependency of "zenity"
warning: cannot resolve "zenity", a dependency of "pluma"
:: The following packages cannot be upgraded due to unresolvable dependencies:
      marco  mate-control-center  mate-user-guide  atril  pluma

:: Do you want to skip the above packages for this upgrade? [y/N] n
error: failed to prepare transaction (could not satisfy dependencies)
:: webkit2gtk: requires geoclue2
:: zenity: requires webkit2gtk
:: marco: requires zenity
:: webkit2gtk: requires geoclue2
:: zenity: requires webkit2gtk
:: marco: requires zenity
:: mate-control-center: requires marco>=1.12
:: webkit2gtk: requires geoclue2
:: yelp: requires webkit2gtk
:: mate-user-guide: requires yelp
:: webkitgtk2: requires geoclue2
:: atril: requires webkitgtk2
:: webkit2gtk: requires geoclue2
:: zenity: requires webkit2gtk
:: pluma: requires zenity
[root@amarildo ~]# 

My pacman.conf:

IgnorePkg   = geoclue geoclue2 zeitgeist qt5-location

If it ain't broke, you haven't tweaked it enough...

Offline

#2 2016-01-20 20:38:56

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: How to install a package without installing a dependency?

Create your own geoclue dummy package that provides and conflicts with geoclue, this way pacman will believe that you have geoclue installed.

Take a look at the texlive-dummy package to see what I mean.
https://aur.archlinux.org/cgit/aur.git/ … live-dummy


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#3 2016-01-20 20:45:56

Amanda S
Member
Registered: 2013-09-21
Posts: 276
Website

Re: How to install a package without installing a dependency?

slithery wrote:

Create your own geoclue dummy package that provides and conflicts with geoclue, this way pacman will believe that you have geoclue installed.

Take a look at the texlive-dummy package to see what I mean.
https://aur.archlinux.org/cgit/aur.git/ … live-dummy

So it would look like this?

# Maintainer: Amarildo>
pkgname=geoclue-dummy
pkgver=0.12.99
pkgrel=2
pkgdesc="Something to trick Arch into thinking it has its geoclue package installed."
url=('http://geoclue.freedesktop.org/')
arch=('any')
license=('LGPL')
depends=()
optdepends=()
makedepends=()
replaces=()
conflicts=('geoclue' geoclue2')
provides=('geoclue' geoclue2')

build() {
   echo "Nothing to build"
}

package() {
   echo "Nothing to package"
}

If it ain't broke, you haven't tweaked it enough...

Offline

#4 2016-01-20 20:48:01

Scimmia
Fellow
Registered: 2012-09-01
Posts: 13,729

Re: How to install a package without installing a dependency?

Pretty much. The build function is unnecessary, but doesn't hurt anything.

Offline

#5 2016-01-20 20:54:31

Amanda S
Member
Registered: 2013-09-21
Posts: 276
Website

Re: How to install a package without installing a dependency?

OK, mate and mate-extra are installing without a problem smile
Thank you both.

Just note that I'm still afraid of the following post:

https://bbs.archlinux.org/viewtopic.php?pid=1080084#p1080084

Dummy packages are a bit like symlinks:
* they're OK for a quick'n'dirty job, but you shouldn't depend on them in the long term - fix things the right way
* they're tricky to debug, as pacman will see that the packages are installed


If it ain't broke, you haven't tweaked it enough...

Offline

#6 2016-01-20 21:05:54

Scimmia
Fellow
Registered: 2012-09-01
Posts: 13,729

Re: How to install a package without installing a dependency?

Yeah, the real fix is to build each package without geoclue support.

Offline

#7 2016-01-20 21:08:24

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: How to install a package without installing a dependency?

You could run across issues when any of the packages that depend on geoclue try and use it as it obviously doesn't exist on your system.

The correct method would be to either rebuild all of the packages you want disabling geoclue support in their configure options, or creating a geoclue dummy application that responds to geoclue dbus requests (but with false, valid replies).

Last edited by Slithery (2016-01-20 21:12:25)


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#8 2016-01-20 21:13:17

Amanda S
Member
Registered: 2013-09-21
Posts: 276
Website

Re: How to install a package without installing a dependency?

slithery wrote:

You could run across issues when any of the packages that depend on geoclue try and use it as it obviously doesn't exist on your system.

The correct method would be to rebuild all of the packages you want disabling geoclue support in their configure options.

That's what I'm thinking of doing, but I don't have the time ATM. I think it takes 5 hours to compile webkitgtk on my system, and then who knows how long qt5 apps will take. And to maintain all that? "IMPOSSIBRU".


If it ain't broke, you haven't tweaked it enough...

Offline

#9 2016-01-20 21:15:41

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: How to install a package without installing a dependency?

How about my 2nd option (I edited my post while you were replying)


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#10 2016-01-20 21:33:29

Amanda S
Member
Registered: 2013-09-21
Posts: 276
Website

Re: How to install a package without installing a dependency?

slithery wrote:

How about my 2nd option (I edited my post while you were replying)

That could be very useful. Do you mind pointing me to the right directions on how to do it?


If it ain't broke, you haven't tweaked it enough...

Offline

Board footer

Powered by FluxBB