puppylinux-woof-CE / woof-CE

woof - the Puppy builder
GNU General Public License v2.0
393 stars 283 forks source link

PPM - dependencies installed twice - giving error on 2nd install #913

Closed peabee closed 7 years ago

peabee commented 7 years ago

An issue with PPM has been identified by @mavrothal

The problem seems to arise from the changes made around 4-nov-2016: https://github.com/puppylinux-woof-CE/woof-CE/commits/rationalise/woof-code/rootfs-skeleton/usr/local/petget

The problem is shown in the 3 screenshots below - this is an install of a package from Slackware-14.2 (most) with just 1 dependency (slang) (screenshot) - resulting after the 2nd erroneous attempt to download slang in the error (screenshot1) - whilst slang is in fact installed successfuly (screenshot2)

screenshot

screenshot 1

screenshot 2

wdlkmpx commented 7 years ago

The issue is even deeper in my debian stretch build. Now i guess i have to fix it. announcing that rationalise is in an unstable state. This is not a dream... not a dream. We are using your brain's electrical system as a receiver. You are receiving this broadcast as a dream. You are receiving this broadcast in order to alter the events you are seeing.. Our technology has not developed a transmitter strong enough to reach your conscious state of awareness, but this is not a dream..

mavrothal commented 7 years ago

I did spent some time on it and is not evident why. Does not appear to be the db handling or the petget scripts themselves. And is not like is trying to do the entire installation twice as it only re-downloads the dependencies and not the main package. I'll try to "steal" some more time for this but is not going to be easy.

mavrothal commented 7 years ago

OK. Couldn't keep away. 😺 Is actually an LxPup specific bug! Lxpup has Packages-slackware-{14.2,current,ponce}-official with current and 14.2 having the same packages more or less so the dependencies are fount in both and thus re-downloaded. dependencies.sh has code to handle slackware/salix repositories and "patches" over "official" but nothing for "current". We could get some code to handle this and prioritise current over official (or the other way around?) but would be easier to decide which one to use and have only that one in. BTW what is "slackware-ponce-official" !!!

wdlkmpx commented 7 years ago

I see, it's an lxpup issue/

But the PPM got stuck yesterday but today is working fine (in stretch). The thing is too "fragile" or something..

mavrothal commented 7 years ago

No, not really. Actually for being both an alien and official package manager at the same time, is very robust! One thing to remember when change things in PPM is clear /tmp files (or just reboot) that can mess things up as not all files are regenerated on restarting PPM. (That's how I was tricked yesterday even though "current-official" as the culprit, was my first thought 😠 )

@peabee if you want to keep using "current" and "ponce" is better not to use the "official" ending with them.

wdlkmpx commented 7 years ago

then it would be a good idea to add more compat distros to take full advantage of the ppm... like tinycore, alpine. small distros. the code is fairly complex and it would take days for and experienced coder to understand, weeks for those who are not skilled, and months for the average puppy user. we have to try and simplify it to the max, but it might require some discussion.

well, the 'file' app was broken and therefore i could not install a pet file. i would have done this: pet = tgz, pxz = xz. That way there is no need to use 'file'

Or maybe .pet.tgz, and .pet.txz. This way and by adding proper mimetypes a pet file is identified properly by any app and can be tested safely. Puppy is doomed..

mavrothal commented 7 years ago

Well, one of the reasons that PPM is such a messy coding (besides the fact that it was an afterthought) is that is adding hacks for every failure instead of trying to solve the underlying problem. 😉 The real problem though is the build packages themselves. You go to debian, fedora or arch and you know that the packages are carefully made, have all the necessary meta info, tested to work with the specific tool chain and they are signed. This is the real reason that apt-get, yam, pacman and the likes are "sooo better" package managers. In puppy we still have packages from puppy-2!!! But I guess that is what makes puppy fan. Making a compact full featured OOTB OS out of chaos 👅 Regarding other small distros, tinycore is not really small at all. Their package collection is rather limited and that's why now they also use debian packages (in dcore). If you want to go with a small distro packages I would go with the close to home LFS-based fatdog or T2v9-based quirky. Big boys wise, Fedora is the elephant in the room. The question though is why? Which problem are we trying to solve? What do we want puppy to be? But maybe we can open an issue on this subject when/if the other woof-ce participants show an interest.

peabee commented 7 years ago

Many thanks @mavrothal I'll do a rebuild to remove things that shouldn't be there and close this issue. http://ponce.cc/slackware/slackware-current/lxde/ provides lxde components