Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Ebuild version rant
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Sat Sep 23, 2006 9:25 pm    Post subject: Ebuild version rant Reply with quote

I have just spent several hours trying to recover from a lightning strike. It was a true geek's nightmare as I lost most of the household networking equipment (my household has more networking equipment than a lot of medium sized businesses). The worst of it is it took out the equipment that hooks me to the internet (I did say it was a geek's nightmare).

Anyway, in trying to get back up and running via a modem (fortunately not all of them were plugged in so I still had one that worked). I ran into a gotcha with ppp crashing my amd64. I figure this is no problem since I have another machine and all of the dist files I'll just get things up and running on the other machine. This is where the rant starts.

WHY DO EBUILDS CHANGE WITHOUT BUMPING VERSIONS??????!!!!?!?!?!???

Had the ppp ebuild bumped versions when it changed a patch, I would have upgraded and had the patch that was needed to build. If I had not upgraded, my current ebuild would have worked as well. As it was, I was stuck without internet and without a ^&$&$%^ working ebuild even though I should have had all the distfiles needed.

Please, whichever genius thinks that minor changes to ebuilds do not need a version bump, please (and I mean this respectfully) PULL YOUR HEAD OUT! A change to an ebuild especially if it requires different files needs to have a version bump. Every time. Always. Without exception.

Thanks. I'm feeling a bit better now.
Back to top
View user's profile Send private message
chunderbunny
Veteran
Veteran


Joined: 31 May 2004
Posts: 1281
Location: 51°24'27" N, 0°57'15" W

PostPosted: Sat Sep 23, 2006 9:38 pm    Post subject: Reply with quote

Version bumps aren't necessary if the change only fixes a build error. Anyone who has already successfully built the package doesn't need to upgrade, and anyone who has having problems can now install the package. I guess in your case you would have had to modify the ebuild ot remove the dependency on the new patch, but the package *should* still build just fine.
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Sat Sep 23, 2006 9:51 pm    Post subject: Reply with quote

It was not a dependency on other ebuild, it was a change in a requested file for that ebuild. It really should have had an -r1 type version bump.
Back to top
View user's profile Send private message
chunderbunny
Veteran
Veteran


Joined: 31 May 2004
Posts: 1281
Location: 51°24'27" N, 0°57'15" W

PostPosted: Sat Sep 23, 2006 10:07 pm    Post subject: Reply with quote

If it really is just a change in file, then going to -r1 forces everyone who already has the package installed to upgrade for no reason at all.
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Sat Sep 23, 2006 10:17 pm    Post subject: Reply with quote

I will try to explain the problem a little better.

On my server I have installed net-dialup/ppp-2.4.3-r16, I had the distfiles and I have them setup (though http-replicator) to serve all the other system. On another system I tried to install net-dialup/ppp-2.4.3-r16 (yep, same version). I don't have internet thanks to lightning playing with my network, so I expect the same version to install via the same files. After all, if there where different files, it must be a different version

Here is a diff between the cached ebuild and the one currently in portage
Code:

< # $Header: /var/cvsroot/gentoo-x86/net-dialup/ppp/ppp-2.4.3-r16.ebuild,v 1.8 2006/09/10 10:38:21 mrness Exp $
---
> # $Header: /var/cvsroot/gentoo-x86/net-dialup/ppp/ppp-2.4.3-r16.ebuild,v 1.7 2006/09/04 05:43:35 kumba Exp $
10c10
<       mirror://gentoo/${P}-patches-20060910.tar.gz
---
>       mirror://gentoo/${P}-patches-20060707.tar.gz

Notice, it is patched with a different patch file. I would call that a different version. After all, it will not install the exact same code.

And before you point out that I could have copied the cached ebuild to the other system, let me just say it had to do with straws and camels.
Back to top
View user's profile Send private message
mrness
Retired Dev
Retired Dev


Joined: 17 Feb 2004
Posts: 375
Location: bucharest.ro

PostPosted: Thu Sep 28, 2006 10:47 am    Post subject: Reply with quote

This is the change which I did without rev bump:
Code:
10 Sep 2006; Alin Nastac <mrness@gentoo.org> ppp-2.4.3-r16.ebuild,
  -ppp-2.4.4.ebuild, ppp-2.4.4-r1.ebuild:
  Fix broken build against openssl-0.9.8 (#146780)


The only thing fixed was the broken compilation when eap-tls USE flag was enabled and openssl version was >=0.9.8.
This change has no meaning for the users who already installed ppp on their system, so I did not bumped the revision.

On the other hand, users are supposed to sync their tree whenever they want to update/reinstall packages.
Know your tools and everything will go fine.
Back to top
View user's profile Send private message
agent_jdh
Veteran
Veteran


Joined: 08 Aug 2002
Posts: 1783
Location: Scotland

PostPosted: Thu Sep 28, 2006 10:56 am    Post subject: Reply with quote

chunderbunny wrote:
Version bumps aren't necessary if the change only fixes a build error. Anyone who has already successfully built the package doesn't need to upgrade, and anyone who has having problems can now install the package. I guess in your case you would have had to modify the ebuild ot remove the dependency on the new patch, but the package *should* still build just fine.


A classic example of where this falls down is something like VMWare (and I presume other binary installers) - the emerge will complete OK, but the actual application will be broken (e.g. with vmware a common problem is either the modules won't build for your kernel, or the perl setup script will fail). Often this gets fixed (again for vmware, usually with the vmware-any-any patches) with no revision bump. Result : App goes not working -> working with no visibility to the end user.

There are also examples where quite considerable modifications to e.g. init scripts are made, with no version bumps. I've been running Gentoo for over 4 years now, and usually after an emerge -e world there are a bunch of config files to be gone over using etc-update.
_________________
Jingle Jangle Jewellery
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Thu Sep 28, 2006 12:08 pm    Post subject: Reply with quote

mrness wrote:

The only thing fixed was the broken compilation when eap-tls USE flag was enabled and openssl version was >=0.9.8.
This change has no meaning for the users who already installed ppp on their system, so I did not bumped the revision.


I can see where you are coming from, but I also know that even though I had ppp installed, it bit me because I needed to re-install but had no internet. Now I do know my tools and I was able to work around the problem, but in the middle of a crisis, this caused gentoo to be yet another problem and not part of the solution. One of the main things I like about gentoo is that it is more often than not the solution to my problems.

I still think that any time you require a different file, the ebuild version should be bumped. Especially with a package that might be a users only means of reaching the net. Think of the user who may not know his tools beyond simply how to use them. He reboots after something damages his ppp package so that he can't get back on line. The rest of the system is running, but he can't fix it with a simple emerge ppp because there is a different requirement. This is not cool.
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Thu Sep 28, 2006 12:13 pm    Post subject: Reply with quote

agent_jdh wrote:

There are also examples where quite considerable modifications to e.g. init scripts are made, with no version bumps. I've been running Gentoo for over 4 years now, and usually after an emerge -e world there are a bunch of config files to be gone over using etc-update.

I have noticed this as well. I find it a little disconcerting that rebuilding already installed packages needs updates to init. However, if things are working, that would be a different rant :) since the file requirements are still the same.

However, I did run into a package that was broken pretty badly and the "fix" (found on the forums) was to re-emerge the package that was already on there. This was not because of a library type problem but rather because the ebuild had been worked over without a version bump. I don't remember which package that was, but I do remember not being amused.
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Thu Sep 28, 2006 12:16 pm    Post subject: Reply with quote

BTW. Another think I really like about gentoo is that the developers are far more responsive to problems than any other distro I have worked with. They might even polity respond to a user ranting about something they did.

Thanks mrness.
Back to top
View user's profile Send private message
mrness
Retired Dev
Retired Dev


Joined: 17 Feb 2004
Posts: 375
Location: bucharest.ro

PostPosted: Thu Sep 28, 2006 1:17 pm    Post subject: Reply with quote

Raffi wrote:

I can see where you are coming from, but I also know that even though I had ppp installed, it bit me because I needed to re-install but had no internet. Now I do know my tools and I was able to work around the problem, but in the middle of a crisis, this caused gentoo to be yet another problem and not part of the solution. One of the main things I like about gentoo is that it is more often than not the solution to my problems.

AFAIK, unused distfiles are keeped on our mirrors for some period of time (6 months?), which means you could build the old version of net-dialup/ppp as long as you weren't affected by the openssl-0.9.8 related bug. Obviously, if you were affected, the old version wouldn't work for you, but really I cannot guarantee old versions will work forever. All I can do is fixing problems when they occurs.

net-dialup/ppp is an update like any other. You could blame me only if the successfully updated package didn't worked for ya, but I fail to see that here (your old /usr/sbin/pppd should have worked exaclty the same as the moment you installed it).

Raffi wrote:
I still think that any time you require a different file, the ebuild version should be bumped. Especially with a package that might be a users only means of reaching the net. Think of the user who may not know his tools beyond simply how to use them. He reboots after something damages his ppp package so that he can't get back on line. The rest of the system is running, but he can't fix it with a simple emerge ppp because there is a different requirement. This is not cool.

The official development documentation sais I should increment the revision number only :
Quote:
If you make non-trivial improvements to an existing ebuild file, you should copy the ebuild file to a new file with the revision number incremented by 1.

and I distinctly remember about another official document (written by drobbins?) which stated that bump should occur only if something had changed in the files installed by the package in the sense that users would want to update their image. Since this false bump would only annoy users with a useless re-emerge, I choosed not to do it. I've often took similar decisions in my career as Gentoo dev and up till now I had only 2 complaints (this one included). I think it is safe to say it would have been legions of complaints if my decisions were the exact opposite.

P.S. The old complain is here. I find it as unfounded as this one, but if you feel strongly about it, feel free to talk with a user representative.
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Thu Sep 28, 2006 1:51 pm    Post subject: Reply with quote

mrness wrote:

AFAIK, unused distfiles are keeped on our mirrors for some period of time (6 months?), which means you could build the old version of net-dialup/ppp as long as you weren't affected by the openssl-0.9.8 related bug. Obviously, if you were affected, the old version wouldn't work for you, but really I cannot guarantee old versions will work forever. All I can do is fixing problems when they occurs.


If I kept the distfiles (which I did) I would expect the ebuild to work forever (barring other updates on the system etc. etc. ...)
mrness wrote:

net-dialup/ppp is an update like any other. You could blame me only if the successfully updated package didn't worked for ya, but I fail to see that here (your old /usr/sbin/pppd should have worked exaclty the same as the moment you installed it).

and on my server, it did continue to work. This was a case where I needed to install to a second machine because of a problem (fried serial port) on the server. I had the same version and all the distfiles. I could not install (at least not without changing things).
mrness wrote:

The official development documentation sais I should increment the revision number only :
Quote:
If you make non-trivial improvements to an existing ebuild file, you should copy the ebuild file to a new file with the revision number incremented by 1.

and I distinctly remember about another official document (written by drobbins?) which stated that bump should occur only if something had changed in the files installed by the package in the sense that users would want to update their image. Since this false bump would only annoy users with a useless re-emerge, I choosed not to do it. I've often took similar decisions in my career as Gentoo dev and up till now I had only 2 complaints (this one included). I think it is safe to say it would have been legions of complaints if my decisions were the exact opposite.

I guess a definition of non-trivial would be important at this point. I'd say the requirement to download a different file would be non-trivial. You say otherwise. As to the other document, I may just disagree with that being a good approach.

If I change use flags and it requires different files, that is fare. If I have the same version same use flags, it should use the same distfiles. If your patch only affect things given a particular set of use flags, then you should have only required that change with those flags. This would have solved both our issues. My same version would have worked the same and anyone needing the fix would have had it without everyone having to bump versions.

mrness wrote:

P.S. The old complain is here. I find it as unfounded as this one, but if you feel strongly about it, feel free to talk with a user representative.


I do tend much more to your way of thinking on this other topic. The difference between the two is that other person was not keeping their system updated and following the recommendations. If I don't keep my system updated and run into trouble as a result, my bad. In my case, I did keep it updated, in fact just the week before I had emerge -e system etc. to move to gcc-4.1.1. It was the fact that I kept updated (nightly emerge sync) that killed me. I should not be bit BECAUSE I followed the rules.

This is starting to sound like either a request for a policy change or for a better definition of that policy. Is that the sort of thing I should take up with the user representatives?
Back to top
View user's profile Send private message
mrness
Retired Dev
Retired Dev


Joined: 17 Feb 2004
Posts: 375
Location: bucharest.ro

PostPosted: Thu Sep 28, 2006 2:07 pm    Post subject: Reply with quote

Raffi wrote:
This is starting to sound like either a request for a policy change or for a better definition of that policy. Is that the sort of thing I should take up with the user representatives?

User representatives don't have much power, but if you could convince a user rep to sustain your pov, is a step in the right direction.

That being said, I don't maintain ebuilds thinking about all kinds of hacks our users do. If you want to duplicate a system on a networkless machine and want to be able to recompile things on it, you should be sure /usr/portage/distfiles is properly populated. That could be achieved through the following command:
Code:
emerge -ef world


Last edited by mrness on Thu Sep 28, 2006 2:46 pm; edited 2 times in total
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Thu Sep 28, 2006 2:17 pm    Post subject: Reply with quote

mrness wrote:

That being said, I don't maintain ebuilds thinking about all kinds of hacks our users have to do. If you wanted to duplicate a system on a networkless machine and wanted to be able to recompile things on it, you should have make sure your /usr/portage/distfiles is properly populated. That could be achieved through following command:
Code:
emerge -ef world


Ahh.... That had effectively been done just the week before (see my comment about emerge -e world etc.) Had I planned on taking my system off the net, I would have done just that just to be sure.
Back to top
View user's profile Send private message
mrness
Retired Dev
Retired Dev


Joined: 17 Feb 2004
Posts: 375
Location: bucharest.ro

PostPosted: Thu Sep 28, 2006 2:54 pm    Post subject: Reply with quote

Raffi wrote:
Ahh.... That had effectively been done just the week before

That would be a week too soon. ;)
Back to top
View user's profile Send private message
zeek
Guru
Guru


Joined: 16 Nov 2002
Posts: 480
Location: Bantayan Island

PostPosted: Thu Sep 28, 2006 7:30 pm    Post subject: Reply with quote

I agree 100%. Slipstreaming updates is wrong.

I've been bitten before by this and it is infurating.
Back to top
View user's profile Send private message
mrness
Retired Dev
Retired Dev


Joined: 17 Feb 2004
Posts: 375
Location: bucharest.ro

PostPosted: Thu Sep 28, 2006 8:04 pm    Post subject: Reply with quote

zeek wrote:
I agree 100%. Slipstreaming updates is wrong.

I've been bitten before by this and it is infurating.

Maybe you don't understand. The update made with this ocasion was the inclusion of <openssh/md5.h> in a certain source file, file which was included before in the <openssl/ssl.h> of the openssl-0.9.7* packages. The openssl upstream decided not to include it in the new version openssl-0.9.8 and, as a consequence, it made ppp uncompilable when a certain USE flag was enabled.

I don't expect every gentooer to understand the irrelevance of this update, but I do expect it from those who have something to say.
No one said ebuilds aren't changed without bumps. The bump occurs if and only if an update on the installed base is needed. Simple as that.
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Thu Sep 28, 2006 8:12 pm    Post subject: Reply with quote

mrness wrote:

No one said ebuilds aren't changed without bumps. The bump occurs if and only if an update on the installed base is needed. Simple as that.


If only that were true... OK. I can see why you think that was true for your update to this package, but it is certainly not true for all of the packages. There have been significant updates that have left system at the "same" version broken until they re-install. This has happened to me on several occasions and from what others are saying, I don't think I'm alone.

So even if you don't think my rant applies to you directly, it certainly is still valid.
Back to top
View user's profile Send private message
mrness
Retired Dev
Retired Dev


Joined: 17 Feb 2004
Posts: 375
Location: bucharest.ro

PostPosted: Thu Sep 28, 2006 8:32 pm    Post subject: Reply with quote

I can answer only about my actions. I do agree mistakes are made by devs (we're all humans, you know), but not as many as some peeps think. The most problems are caused by the users and blame devs for them. How many times you wanted to slap someone to discover minutes later that it was your mistake? I know I did a couple of times (yeah, I'm also a Gentoo user, go figure!).

Thank God I don't read so many rants!
Back to top
View user's profile Send private message
Raffi
l33t
l33t


Joined: 17 Mar 2003
Posts: 731
Location: Moscow, Id.

PostPosted: Thu Sep 28, 2006 8:37 pm    Post subject: Reply with quote

Yep. That's why I don't rant every time I get frustrated. It's also why I try to rant somewhat politely (hope it came across that way). I have made plenty of mistakes (don't ask me about work today...).

As to reading the rants, that's why the subject said rant, just so it could be avoided... :)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum