Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 80366 - Patch Submission: mgetty+sendfax-1.1.31
Summary: Patch Submission: mgetty+sendfax-1.1.31
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Gentoo Dialup Developers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-01 11:40 UTC by Peter Hyman
Modified: 2005-04-19 14:14 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch that allows Lucent-chip modems to recognize Caller ID (Lucent.c.patch,814 bytes, patch)
2005-02-01 11:45 UTC, Peter Hyman
Details | Diff
Makefile patch for voice/ directory (voiceMakefile.patch,985 bytes, patch)
2005-02-10 14:33 UTC, Peter Hyman
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Hyman 2005-02-01 11:40:48 UTC
the voice/libvoice/Lucent.c file omits code that allows Lucent Modems to detect caller ID information. This two line modification permits the proper AT command to activate caller ID detection. The code was taken from another modem library file. The following two snippets from the vgetty log illustrates the benefits:

Prior to patch log entry:
01/31 18:52:43 ##### message keep, length=00:00:12, name='', caller=none, dev=ttyS0, pid=6907

After the patch log entry:
02/01 14:23:35 ##### message keep, length=00:00:10, name='HYMAN PETER    ', caller=1234567890, dev=ttyS0, pid=9160

Downstream voicemail apps like tkvoice will pull the caller ID info and use it.

Reproducible: Always
Steps to Reproduce:

Actual Results:  
Caller ID info shown


Patchfile will be attached.
Comment 1 Peter Hyman 2005-02-01 11:45:41 UTC
Created attachment 50160 [details, diff]
Patch that allows Lucent-chip modems to recognize Caller ID

Enjoy!
Comment 2 Torsten Veller (RETIRED) gentoo-dev 2005-02-10 05:21:16 UTC
Thanks Peter, i added it to net-dialup/mgetty-1.1.31-r1 - should be available in an hour.

I would appreciate it if you test this version and report every issue. It is package.masked atm.
Comment 3 Peter Hyman 2005-02-10 11:54:02 UTC
The 1.1.31-r1 ebuild does not finish installation. The bottom line error is:

for i in ; do \
    install -c -m 755 $i /var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice ;\
done
[ -f /var/spool/voice/.code ] || echo '12345' >/var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code
chgrp fax /var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code
chgrp: cannot access `/var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code': No such file or directory
make[1]: *** [vgetty-install] Error 1
make[1]: Leaving directory `/var/tmp/portage/mgetty-1.1.31-r1/work/mgetty-1.1.31/voice'
make: *** [vgetty-install] Error 2

!!! ERROR: net-dialup/mgetty-1.1.31-r1 failed.
!!! Function src_install, Line 103, Exitcode 2
!!! (no error message)
!!! If you need support, post the topmost build error, NOT this status message.

1.1.31 compiled and installed fine
Comment 4 Peter Hyman 2005-02-10 12:14:40 UTC
[ -f /var/spool/voice/.code ] || echo '12345' >/var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code

tests an existing installation. As I was upgrading, .code was not recreated and therefore the ensuing chgrp commang failed since .code was not there!

chgrp fax /var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code

I think the correct way to do this would be to bracket the entire test as an if statement. Something like this:
voice/Makefile line 121

       if [ -f /var/spool/voice/.code ] 
          echo '12345' >$(VOICE_DIR)/.code
          chgrp $(PHONE_GROUP) $(VOICE_DIR)/.code
          chmod $(PHONE_PERMS) $(VOICE_DIR)/.code
          chmod 660 $(VOICE_DIR)/.code
        fi
        if [ -f /var/spool/voice/messages/Index ] 
          echo 'put_filename_here' >$(VOICE_DIR)/messages/Index
        fi

Because the install script assumes it's installing in the final location instead of using DESTDIR. This alleviates that problem!
Comment 5 Peter Hyman 2005-02-10 14:33:06 UTC
Created attachment 50952 [details, diff]
Makefile patch for voice/ directory

These small changes test for the existence of a .code file in /var/spool/voice
and for an Index file in /var/spool/messages. If these files DO exist, the
current make install breaks. This test will avoid this breakage. (Hope the
syntax is OK), works for me!
Comment 6 Peter Hyman 2005-02-10 14:33:30 UTC
Lucent patch works, btw.
Comment 7 Torsten Veller (RETIRED) gentoo-dev 2005-02-11 08:10:01 UTC
Thanks for your feedback, Peter!

I have two questions. Maybe you can answer them (or don't you use the voice part at all)?

1) Do you use the .code file?
 I seems to be used by a script not even installed right now.
 And it seems to be risky to install it with predefined content.
 | /var/spool/voice/.code
 |      Access code for remote playback of messages  using  the  dtmf.sh
 |      script
 
 I would like to remove it.

2) messages/Index -- does it need to be present?


The patch doesn't work (as well as my upgrade patch was not correct too):
- can't be done at compile time because it can be different machines.
- the path must be prefixed with ${ROOT}
Comment 8 Peter Hyman 2005-02-11 08:29:59 UTC
Short answer to your two questions: 1) NO 2) NO. However, read on...

1) Do you use the .code file?
No, but it IS important. If not there, a user can't call from a remote location to grab messages.

I seems to be used by a script not even installed right now.
And it seems to be risky to install it with predefined content.
 | /var/spool/voice/.code
 |      Access code for remote playback of messages  using  the  dtmf.sh
 |      script

dtmh.sh in in the voice/scripts directory with many other examples and it IS mentioned in the voice.conf file. It IS needed. I packaged this for slackware and what I did was dump the samples into /usr/share as follows:

/usr/share/mgetty
    /frontends
    /patches
    /samples

/usr/share/vgetty
    /contrib
    /Perl
    /scripts

and I add voice.conf-dist in the /usr/share/vgetty dir also.

While you CAN omit installing .code during the initial install, you should not delete or overwrite it.  The problem is that the Makefile is broken when it tests for .code AND finds it! That's what my patch was for. If you omit .code installation, that's fine, but you should seriously consider including the share/ directories I noted.

2) messages/Index -- does it need to be present?
Technically, no. It IS used to sequence messages that are played back to a caller. It IS documented, and noted in the voice.conf file.

I understand your problem and concern though.

Happy to help anyway I can...
Comment 9 Torsten Veller (RETIRED) gentoo-dev 2005-02-14 14:52:30 UTC
replaced mgetty-1.1.31-r1 with a new version -- this one will install and it will no longer create/replace /var/spool/voice/.code and /var/spool/voice/message/Index.
Additional scripts are installed into /usr/share/mgetty too.

Please test again -- feedback is welcome.
Comment 10 Peter Hyman 2005-02-16 01:58:54 UTC
Sorry it took me a bit to review the changes. They worked fine, and I liked the message at the bottom -- although it's not really necessary since 1) anyone that already has the files doesn't need to know this, and 2) they are just dummy files anyway, so anyone who needed them would have to add them.

However, there is one additional item and that is the ownership and permissions of the /var/spool/voice and /var/spool/fax directories.

/var/spool/voice should be root:modem
/var/spool/fax should be root:fax

currently it looks like you have only /fax/incoming as root:fax, but really all group users will need outgoing too IMO. 

I'm not an expert on these ebuild macros, but you might want to change ownership for voice and fax as they are being installed.

	diropts -m 0755 -o root -g modem
	keepdir /var/spool/voice/incoming
	keepdir /var/spool/voice/messages
	diropts -m 0755 -o root -g fax
	keepdir /var/spool/fax/outgoing/locks
	keepdir /var/spool/fax/incoming

Lastly, you should add an einfo note that users will have to be made members of either or both the fax and modem groups to use fax and voice mail!

einfo Note that users who wish to use the fax capabilities must be members of the group fax and users who wish to use the voicemail capabilities must be members of the group modem in order to access files!
einfo use usermod joe -G users,....,fax,modem or similar.

something like that. 

I noticed you added the mgetty subdirectories I suggested, but you omitted the vgetty ones. They are important!

/usr/share/vgetty
    /contrib
    /Perl
    /scripts

I had added them to a unique directory as above, but I suppose you could add them to the mgetty tree too under vgetty.

Looks good!
Comment 11 Alin Năstac (RETIRED) gentoo-dev 2005-04-19 14:14:51 UTC
version bumped to 1.1.33
changes are:
 - group modem is no longer created as it was never used in the first place.
 - default config files use fax:fax as owner:group
 - /var/spool directories are created with -m 0750 -o fax -g fax 
 - info messages in postinst

note: the requested content of dir /usr/share/vgetty is installed into /usr/share/mgetty/voice