Bug 63917

Summary: kppp suggestion for using 'pppd call' instead of requiring suid bit
Product: [Unmaintained] kppp Reporter: Stefanos Harhalakis <v13>
Component: generalAssignee: Harri Porten <porten>
Status: RESOLVED UNMAINTAINED    
Severity: wishlist CC: cascardo
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: fix the bug

Description Stefanos Harhalakis 2003-09-08 20:27:41 UTC
Version:            (using KDE KDE 3.1.3)
Installed from:    Compiled From Sources
Compiler:          gcc 3.3.1 
OS:          Linux

pppd has a very useful/powerful parameter named 'call'. This way anyone can create some profile files and use pppd to dialup and setup the system. 

pppd seems to be able to handle almost everything by just typing 'pppd call provider_name'. It seems that kppp tries to (or does) implement some features that are also available in pppd itself.

By using the 'call' parameter of pppd kppp whould be able to be more configurable:

a) It could allow only specified users to create new dialup profiles
b) It could allow only specified users to 'query' or mess with the modem
c) It could allow users to use some dialup accoutns without knowing the dialup password

pppd could:

a) Create a file in /etc/ppp/peers instead of holding its own settings. This way users that have write permissions to this dir whould be able to create new accounts.
b) Try to query the modem only when the user has write permissions to the appropriate device.
c) Try to set a password only if it has write permissions to /etc/ppp/(pap|chap)-secrets

This way kppp will also be more standards-compliant since it whould depend only to pppd and it will only require some parsing of pppd configuration files... It will also force pppd to respect the system-wide parameters set for pppd...

The usage of the call parameter will also make it possible for users to just type 'pppd call account' instead of running kppp (in case no GUI is available)

<<V13>>
Comment 1 Stefanos Harhalakis 2004-06-13 14:59:00 UTC
I'm attaching a simple/sample check for lcms version. It seems that lcms
does not include any version number in library/header except of a
comment, so we use this one.

This should be added after the followng block in configure.in:

-----
# Check for lcms
have_lcms_header='no'
KDE_CHECK_HEADER(lcms/lcms.h,have_lcms_header='yes',,)
if test "$have_lcms_header" = 'yes'
-----

This is at line 716 of configure.in of kde 3.3a1


--------------------
# Try to find the full path of lcms.h
for a in /usr/include /usr/local/include ; do
        for b in lcms.h lcms/lcms.h ; do
                if [ -d "$a" ] && [ -f "$a/$b" ] ; then
                        CMSHDR="$a/$b"
                fi
        done
done

# Check if lcms.h was found. If not then it means that we didn't search
# the right dirs since the kde check already found a usable lcms.h
if [ ! -z "$CMSHDR" ] ; then
        # Get lcms version
        lcms_ver_line=`cat $CMSHDR | grep '^// Version' `
        if [ -z "$lcms_ver_line" ] ; then
                # Some versions of lcms have the version in /* */
                lcms_ver_line=`cat $CMSHDR | grep '^/\* Version' `
        fi
        lcms_ver=`echo "$lcms_ver_line" | head -1 | cut -d ' ' -f 3 `

        # Get major and minor version numbers
        lcms_var_maj=`echo $lcms_ver | cut -d . -f 1`

        # Some versions have a character attached to the end of minor version
        lcms_var_min=`echo $lcms_ver | cut -d . -f 2 | sed 's,[^0-9],,g'`

        if [ "$lcms_var_maj" -gt 1 ] ; then
                echo "Version 1 of lcms is required"
                # AC_MSH_ERROR([Version 1 of lcms is required])
        else
                if [ "$lcms_var_min" -lt 9 ] ; then
                        echo "lcms >=1.09 is required"
                        # AC_MSG_ERROR([lcms >=1.09 is required])
                else
                        echo "good version of lcms"
                        # OK !
                fi
        fi
else
        echo "No lcms.h header found in standard path. Hope for the best."
        # Go on
fi
--------------------

<<V13>>
Comment 2 Stefanos Harhalakis 2004-06-13 15:00:57 UTC
Ooops.. That was for #69712! :)
Comment 3 Thadeu Lima de Souza Cascardo 2009-05-23 02:32:37 UTC
Created attachment 33935 [details]
fix the bug

I hereby grant your wish. This depends on the patch submitted to bug #193711.
Comment 4 Thadeu Lima de Souza Cascardo 2009-05-23 03:03:47 UTC
This patch requires that there is a peer named kppp and that it loads the passwordfd plugin.
Comment 5 Christoph Cullmann 2025-06-09 20:48:40 UTC
This project is unfortunately no longer maintained.

If a new maintainer wants to step up and take care, the project is archived here:

https://invent.kde.org/unmaintained/kppp

You can just clone it in your private namespace on invent.kde.org and if you have started to work on it and fixed/implemented something get it reviewed and the project unarchived.

Sorry for the inconveniences.