You are not logged in.

#1 2015-03-11 12:29:09

pyp22
Member
From: France, Brittany
Registered: 2015-03-11
Posts: 3
Website

provides= & replaces=

Hi guys,

There's something i don't manage (or missunderstand) in the provides and replaces mecanism. I have to change (overwrite / replaces) a package. The first one (A)  has been built for the base. The second one (B) is the same sources but compiled with other options and dependencies for the core. I got conflicting file errors when trying to install B. Here are the PKGBUILDs, it's for udev i need some extras :

A (base)
-------------
pkgname=eudev
_pkgname=udev-lfs
pkgver=1.10
_pkgver=20140408
pkgrel=1.1
pkgdesc="This package contains programs for dynamic creation of device nodes. "
arch=(x86_64)
url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html "
license=('GPL')
groups=('base')
depends=(glibc gperf)
options=(!docs !libtool)
source=("http://dev.gentoo.org/~blueness/eudev/$pkgname-$pkgver.tar.gz"
             "http://anduin.linuxfromscratch.org/sour … er.tar.bz2")
md5sums=('60d96aa6e111c4cf06a8a2186c60a281'
               'c2d6b127f89261513b23b6d458484099')
noextract=($pkgname-lfs-$_pkgver.tar.bz2)
provides=('eudev=1.10')

B (core):
-------------
pkgbase=eudev
pkgname=udev-extras
pkgver=2.1
pkgrel=1.1
pkgdesc="This package contains programs for dynamic creation of device nodes. "
arch=('x86_64')
url="http://dev.gentoo.org/~blueness/eudev"
license=('GPL')
groups=('base')
depends=('glibc' 'gobject-introspection' 'pciutils' 'usbutils')
#options=(!docs !libtool)
source=(http://dev.gentoo.org/~blueness/$pkgbase/$pkgbase-$pkgver.tar.gz)
md5sums=('dec70c35d9d700abc36ee79a1b49c259')
replaces=('eudev=1.10')
provides=('eudev=2.1')


What am i doing wrong ?

Thanks for help.

PIerre

Last edited by pyp22 (2015-03-11 12:29:58)


Guess what. Real portion of Windows code is: while (memory_available) {
eat_major_portion_of_memory (no_real_reason);  if (feel_like_it)
make_user_THINK (this_is_an_OS); build your own Linux++;

Offline

#2 2015-03-11 12:37:02

helix
Member
Registered: 2013-02-17
Posts: 180

Re: provides= & replaces=

I think pkgrel should be an integer

Offline

#3 2015-03-11 12:56:33

falconindy
Developer
From: New York, USA
Registered: 2009-10-22
Posts: 4,111
Website

Re: provides= & replaces=

helix wrote:

I think pkgrel should be an integer

Totally irrelevant, and incorrect.

You need to include conflicts= along with provides and replaces. replaces= only creates an upgrade path between two dissimilar packages.

Offline

#4 2015-03-11 12:58:32

runical
Member
From: The Netherlands
Registered: 2012-03-03
Posts: 896

Re: provides= & replaces=

Please enclose the PKGBUILDs in code tags, makes them more readable.

Take a look at the wiki and please make a bit more clear what you don't understand.

Last edited by runical (2015-03-11 12:58:52)

Offline

#5 2015-03-11 13:12:21

pyp22
Member
From: France, Brittany
Registered: 2015-03-11
Posts: 3
Website

Re: provides= & replaces=

Thanks Falconindy for your fast anwser. If i understand well the mecanism, 'forcing' (simulating) a 'conflict=' will engage a 'replaces=' process with an overwriting not simply an upgrading ?


Guess what. Real portion of Windows code is: while (memory_available) {
eat_major_portion_of_memory (no_real_reason);  if (feel_like_it)
make_user_THINK (this_is_an_OS); build your own Linux++;

Offline

#6 2015-03-11 13:49:47

helix
Member
Registered: 2013-02-17
Posts: 180

Re: provides= & replaces=

falconindy wrote:
helix wrote:

I think pkgrel should be an integer

Totally irrelevant, and incorrect.

What is the meaning of release 1.1? 1.1th release?

Offline

#7 2015-03-11 14:07:00

runical
Member
From: The Netherlands
Registered: 2012-03-03
Posts: 896

Re: provides= & replaces=

helix wrote:
falconindy wrote:
helix wrote:

I think pkgrel should be an integer

Totally irrelevant, and incorrect.

What is the meaning of release 1.1? 1.1th release?

I think what he means is that it is not a hard requirement. I think it is mentioned in the packaging guidelines though.

Last edited by runical (2015-03-11 14:07:22)

Offline

#8 2015-03-11 14:55:38

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: provides= & replaces=

runical wrote:
helix wrote:
falconindy wrote:

Totally irrelevant, and incorrect.

What is the meaning of release 1.1? 1.1th release?

I think what he means is that it is not a hard requirement. I think it is mentioned in the packaging guidelines though.

Do you mean https://wiki.archlinux.org/index.php/PKGBUILD#pkgrel ?

Offline

#9 2015-03-11 15:26:42

pyp22
Member
From: France, Brittany
Registered: 2015-03-11
Posts: 3
Website

Re: provides= & replaces=

about pkgrel & co, that was not the main subject of my most but anyway some anwsers smile Yep correct, that's the release, a special 'sauce", for the distro (lfs/blfs autobuild) i'm currently working on. My release conventioning (pkgrel=x.yz) is
x = release of the base built. (it could have been the LFS book version, but as it is a full distro it starts at 1)
y = first build-release of the package (sources a.b.c-1.0)
z = is an update of 'y' while sources are still a.b.c-1.0 but with new optimizations or new deps or that kind of stuff

'x' never changes until the next generation of the base. e.g a non-systemd one then a systemd one. Mine is actually a non-systemd oriented one. If next base built is a systemd based one then x will be 2. It will be the case for each major change done on the Linux base filesystem, security, etc ... and of course a major change in the Linux kernel.
'y' never changes except if sources version differs. In that case 'y' = 'y' + 1
'z' = 'z' + 1 on each new build-release of 'y'.

Hope it awnsers your pkgrel mindings smile

Tnx

Pierre


Guess what. Real portion of Windows code is: while (memory_available) {
eat_major_portion_of_memory (no_real_reason);  if (feel_like_it)
make_user_THINK (this_is_an_OS); build your own Linux++;

Offline

Board footer

Powered by FluxBB