puppylinux-woof-CE / woof-CE

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

rp-pppoe .pet lacks puppy-compatability BK fix #2456

Open rserwin1 opened 3 years ago

rserwin1 commented 3 years ago

Although the rp-pppoe package and connectwizard PPPoE option appear in (at least) some puppys, they can fail in recent (e.g., upupBB, fossapup64) distros if the user selects a particular DNS option. This is due to the absence of Barry's patch of the pppoe-connect script to prevent it from replacing file /etc/resolv.conf with a link to /etc/ppp/resolv.conf.

Puppy contains a softlink as /etc/ppp/resolv.conf, to the common /etc/resolv.conf file. Without the patch, the result is that the two resolv.conf links point to each other, triggering an error message and crippling all functions that use "ppp".

The rp-pppoe package is added to distros from a .pet package, probably made from support repo .dep packages. However that package is built should make that patch, somehow.

A simple way to ensure the patch is always made would be to add a pinstall.sh script to the rp-pppoe .pet package.

I don't know the woofCE way to do that. But I am willng to implement it if that is something I am allowed to do, and can be advised as to how to do it.

Two new users have encountered the failure and were given conflicting advice.

The pppoe-connect change (#BK): if test "$DNSTYPE" = "SERVER" ; then

Sorry, dude...

    #BK    rm -f /etc/resolv.conf
    #BK    ln -s /etc/ppp/resolv.conf /etc/resolv.conf
    : #BK
elif test "$DNSTYPE" = "SPECIFY" ; then
peabee commented 3 years ago

UPupBB - BionicPup32 uses: :rp_pppoe_cli:|pet|Packages-puppy-tahr-official|rp_pppoe_cli-3.8-patched4-p4|rp_pppoe_cli|3.8-patched4-p4||Network|440K||rp_pppoe_cli-3.8-patched4-p4.pet||roaring penguin pppoe internet connection|puppy|4||

rp_pppoe_cli-3.8-patched4-p4.pet 2014-Mar-03 17:50:15 149.9K application/octet-stream http://distro.ibiblio.org/puppylinux/pet_packages-tahr/rp_pppoe_cli-3.8-patched4-p4.pet

It has a real (but almost empty) /etc/resolv.conf with a valid link in /etc/ppp/resolv.conf

and these come from /rootfs-skeleton not the .pet

01micko commented 3 years ago

I concur @peabee and the link survives the whole woof process.

My running distro:

~$ readlink /etc/ppp/resolv.conf 
../resolv.conf
rserwin1 commented 3 years ago

The /etc/ppp/resolv.conf link is untouched. But /etc/resolv.conf get replaced by a link back to /etc/ppp/resolv.conf if the user chooses "SERVER". Thus, a "pointer loop".

Peapee's .pet sets that link, so has the problem:

if test "$DNSTYPE" = "SERVER" ; then

Sorry, dude...

rm -f /etc/resolv.conf
ln -s /etc/ppp/resolv.conf /etc/resolv.conf  <<<<<<<<<

elif test "$DNSTYPE" = "SPECIFY" ; then

peabee commented 3 years ago

and these come from /rootfs-skeleton not the .pet

https://github.com/puppylinux-woof-CE/woof-CE/tree/testing/woof-code/rootfs-skeleton/etc/ppp

rserwin1 commented 3 years ago

Thanks, peabee, for the information and link to the .pet.

I found the 64-bit rp-pppoe pets, too -- the "cli" and the original compilation result. I infer that those are the only available files related to rp-pppoe. Hqs the source tarball for rp-pppoe 3.8 been retained anywhere in the woofCE world?

Anyway, I have located the most recent source code for rp-pppoe 3.15 and can compile it in fossapup64. I would like to build a "cli" package for it. It replaces ifconfig with ip, so would a good thing to add to puppy.

Where is the correct place to retain the "3.15" source code? I assume I would upload the .pets for it to ibiblio for each puppy version I compile it for. Or is it really independent of the puppy version? Is there now an official woofCE place to store such pets and related files?

peabee commented 3 years ago

3.10 is in http://distro.ibiblio.org/puppylinux/sources/r/

and is used by petbuild: https://github.com/puppylinux-woof-CE/petbuilds/tree/slacko_142/rp-pppoe