ttylog TODO:



---------------------------------------------------------------------------
README.md
  - Use markdown to make the lists into bulleted lists (Web Sites and
    Support and Code).
  - Put spaces around the "|" char in the Usage line?

---------------------------------------------------------------------------
  - 22 Dec 2017

$ make
Scanning dependencies of target ttylog
[ 50%] Building C object CMakeFiles/ttylog.dir/ttylog.c.o
/home/jame/Projects/ttylog/ttylog.git/ttylog.c: In function ‘main’:
/home/jame/Projects/ttylog/ttylog.git/ttylog.c:190:31: warning: ‘baud’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   cfsetispeed (&newtio, BAUD_B[baud]);
                         ~~~~~~^~~~~~
[100%] Linking C executable ttylog
[100%] Built target ttylog

- Yet is that actually true?  Thought it's being initialized to "-1" at
  line 53?


--------------------------------------------------------------------------------
 6/26/2016
-----------

- Error reported in at GH regarding errors related to OS X not having the librt
library needed for the '-t' option.

https://sourceforge.net/p/ttylog/bugs/9/
https://github.com/rocasa/ttylog/issues/6

- looks like a work around would be to bypass the '-t' option altogether when
compiling OS X. Perhaps enclosing the code for the '-t' option with an 'if'
clause that just prints that the '-t' is not available when the librt library
is not available.  That way the option is still there but the compile won't
fail on OS X.  (It's already set not to link on "APPLE".)

---------------------------------------------------------------------------
- https://sourceforge.net/p/ttylog/feature-requests/8/
Add functionality to enable the creation of RPM source and binary archives,
at least starting out with the default (minimal) ones that can be created
using the CMake functionalty that is available. Reference also:

https://cmake.org/Wiki/CMakeUserUseRPMTools
https://cmake.org/Wiki/CMake:CPackPackageGenerators

  - My only need to add it to the 'list' of generators?

---------------------------------------------------------------------------

https://sourceforge.net/p/ttylog/bugs/7/

- 14 Feb 2013: in the code parsing the '-d|--device' parameter, an if/else
    stanza is used to set the modem_device variable if a device is actually
    listed, also taking care of the issue for if the device name is too long;
    but the else clause is there but empty.  Is the else clause actually
    needed?  The first step after the parameter passing and just a few lines
    later is checking the length of the modem_device name and failing out
    if "no device is set".  Move that length check to the else clause?  
    Also; is that "!strcmp" enough?  There are actually three not two
    possible results to that comparision.
    -> these also may be resolved by changing to use getopts or getopts long
    or one of the other commandline parsing libraries

- June 2015: or would it be better to change to using getopts_long()?
  - there had been at feature request type thing that included an added 
  option, though the patch they included (on an older version) did not
  appear to include the code for it.

- this is still present with v0.29 
- this should error out because of the bad option '--b', when there is
  only supposed to be '-b' or '--baud' option, but doesn't. This may b
  resolved but changing to use the standard getopt or the arg_parse
  (Argp) library. 
  /usr/sbin/ttylog --b 2400 -d /dev/ttyS0 

- Other argument for updating it to use getopts;  the following should
  fail because there is no '-c' option:
root@rjcpc:/home/jame/Projects/ttylog/work# ./ttylog -c 4 -b 2400 -d /dev/ttyUSB0

http://www.gnu.org/software/libc/manual/html_node/Parsing-Program-Arguments.html
http://www.gnu.org/software/libc/manual/html_node/Getopt-Long-Option-Example.html

---------------------------------------------------------------------------

  - Looks like I need to work on the hardening issues at the source, as the
    current pkg build under stretch now results in no hardening related
    lintian results but it needs more investigation because this shows on
   Debian Stretch with gcc v5.3.1-21:

$ hardening-check --verbose ttylog
ttylog:
 Position Independent Executable: yes
 Stack protected: no, not found!
 Fortify Source functions: yes (some protected functions found)
        unprotected: fgets
        unprotected: strncpy
        protected: printf
        protected: fdelt
 Read-only relocations: yes
 Immediate binding: yes

----------------------------------------------------------------------------
  - https://sourceforge.net/p/ttylog/bugs/8/
  - June 2016: compile time warnings, found building v0.28 for debian
/usr/bin/cmake -E cmake_progress_report /tmp/buildd/ttylog-0.28/obj-x86_64-linux-gnu/CMakeFiles 1
[100%] Building C object CMakeFiles/ttylog.dir/ttylog.c.o
/usr/bin/cc   -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -D_FORTIFY_SOURCE=2  -I/tmp/buildd/ttylog-0.26    -o CMakeFiles
/ttylog.dir/ttylog.c.o   -c /tmp/buildd/ttylog-0.28/ttylog.c
/tmp/buildd/ttylog-0.28/ttylog.c: In function 'main':

----------------------------------------------------------------------------

    For v0.3n ?
- Now have splint installed and a simple 'splint ttylog' results in 
multiple issues found with the header files.
- use 'splint' to check the code?
- had an issue with 'splint', so installed adlint; issues with that as
well. Need to learn more about either.
----------------------------------------------------------------------------
- Change the ttylog.8 file to be an asciidoc source file, then add the
necessary steps to CMakeLists.txt to get at least the man page from that
& perhaps also an optional html version doc file as well?

-------------------------------------------------------------------------------
- Build in Debian Stretch in June 2016 results in the following from Lintian:

  P: ttylog source: debian-watch-may-check-gpg-signature

https://lintian.debian.org/tags/debian-watch-may-check-gpg-signature.html

- Investigate using my GPG key to sign upstream tarball; I already use it
  to sign the tags in the code repository.


  - this is specific to adding such to a release at github but also notes how to create
  the sig to begin with
https://wiki.debian.org/Creating%20signed%20GitHub%20releases


  - This is the example given at step 6, which should "give a file called mysoftware-0.4.tar.gz.asc".
    Although I think I'd need to include something specifiying the key to use.

gpg --armor --detach-sign mysoftware-0.4.tar.gz

------------------------------------------------------------------------------
