[go: up one dir, main page]

Tags

Tags give the ability to mark specific points in history as being important
  • 0.7.3

    Release: Development Release - 0.7.3 - Bare
    The Featureless Linux Library development version 0.7.3 is released.
    
    The development 0.7.3 release contains new features and improvements.
    
    The error reporting and debugging process has been changed to use compiler macros for the file, line number, and possibly function.
    
    There are several new status codes.
    
    The threading code has seen some changes, most notable are the removal of the `f_thread_set_t` and the addition of attribute types.
    
    The 0.8.0 stable release is expected to follow this release before the year is over.
    
  • 0.6.15

    Release: Stable Release - 0.6.15 - Bare
    The Featureless Linux Library stable version 0.6.15 is released.
    
    The stable version 0.6.15 has only a few minor changes.
    
    There are some security fixes and some bug fixes.
    
    Exploit Fixes:
      - None.
    
    Security Fixes:
      - Controller: Thread cleanup needs to check that used < size in array.
      - Controller: Invalid write in controller_entry_read() due to missing allocation.
    
    Features:
      - None.
    
    Bug Fixes:
      - FLL: Currency symbols are incorrectly being designated as unassigned.
      - Controller: Invalid simulate print index for action iki array.
    
    Clean Ups:
      - None.
    
    Refactors:
      - None.
    
    Regressions:
      - None.
    
    Updates:
      - FLL: Add specific source design documentation.
      - Controller: The FLL tags file with the latest code.
    
  • 0.7.2

    Release: Development Release - 0.7.2 - Bare
    The Featureless Linux Library development version 0.7.2 is released.
    
    The development 0.7.2 release contains mostly fixes and updates without any new features.
    
    Static compiling problems with compilers and linkers has been identified and worked around.
    
    Passing the `-static` flag to libraries does not mean the compiler will link to static libraries.
    Shared libraries can get linked into a static file and cause problems.
    This is most certainly a problem with the compilers.
    I have discovered that `-l:libc.a` can be passed instead of `-lc`.
    This prevents the compilers and linkers from doing something bad like linking to a shared libc for a static library or program.
    That has the unfortunate affect of additional logic in the Featureless Make build settings.
    The `build_libraries_shared` and`build_libraries_static` are now used to explicitly handle these two situations.
    
    The scripts now protect the `IFS` environment variable to improve security.
    
    The directory recurse callbacks are updated to use 64-bit integers rather than 32-bit.
    
    The console parsing has some improvements and bug fixes.
    The `--` is now correctly supported.
    This allows the Kevux Tools Remove command `rm` to properly mimic the traditional `rm` command.
    
  • 0.6.14

    Release: Stable Release - 0.6.14 - Bare
    The Featureless Linux Library stable version 0.6.14 is released.
    
    The stable version 0.6.14 has only a few minor changes.
    
    The scripts are updated to a new practice.
    The clean up changes are usually not mentioned but this one is notable.
    The behavior of using echo with a pipe is replaced with using `<<<`.
    The grep commands have been made more consistent.
    
    The only regression fix is a fix for an issue introduced during the script changes and is not a regression in a previous release.
    
    Exploit Fixes:
      - None.
    
    Security Fixes:
      - FLL: Explicitly define IFS to prevent misuse (in scripts).
    
    Features:
      - None.
    
    Bug Fixes:
      - FLL: The fl_directory_create() is failing on directory exists with path ends in '/'.
    
    Clean Ups:
      - FLL: Apply new script practices.
    
    Refactors:
      - None.
    
    Regressions:
      - FLL: The --prepend command is not working.
    
    Updates:
      - None.
    
  • 0.7.1

    Release: Development Release - 0.7.1 - Bare
    The Featureless Linux Library development version 0.7.1 is released.
    
    A new specification called EKI, which stands for Extended IKI, has been added to the project as a whole.
    This EKI allows for multiple tags to be grouped together.
    I decided to do this once I started using IKI more regularly and I realized that I really did need to simplify and allow grouping multiple tags together.
    I should now be able to more appropriately mimic HTML behavior.
    This also allows for multiple contexts to be added such as might be the case when it comes to accessibility needs.
    
    An example EKI is bold:italic:"My Example".
    The order is not required but is preserved and so the following is also valid and potentially different due to the order: italic:bold:"My Example".
    The eki_read and an eki_write programs both exist in 0.7.1.
    
    The development version 0.7.1 has several new features.
    
    Added new functions:
      - f_string_dynamic_seek_to_back()
      - f_string_dynamic_seek_line_to_back()
      - f_string_dynamic_seek_to_back()
      - f_string_seek_line_back()
      - f_string_seek_line_to_back()
      - f_string_seek_to_back()
      - f_utf_string_dynamic_seek_line_back()
      - f_utf_string_dynamic_seek_line_to_back()
      - f_utf_string_dynamic_seek_to_back()
      - f_utf_string_seek_line_back()
      - f_utf_string_seek_line_to_back()
      - f_utf_string_seek_to_back()
      - fl_directory_empty()
      - fl_path_clean()
      - fll_program_standard_signal_received_wait()
    
    Added new structures and status codes:
      - F_maximum
      - F_minimum
      - f_gid_t
      - f_id_t
      - f_uid_t
      - f_void_call_t
      - f_void_pointer_call_t
      - fl_print_call_t
    
  • 0.6.13

    Release: Stable Release - 0.6.13 - Bare
    The Featureless Linux Library stable version 0.6.13 is released.
    
    The stable version 0.6.13 has primarily seen improvements in the IKI Read program.
    Several program parameters have had their behavior changed due to consistency problems with other programs.
    
    The --total parameter now prints the total number of IKI Variables.
    The --whole parameter now prints the total number of lines rather than the total number of IKI Variables.
    The --whole parameter may now be specified along with the --at parameter.
    The --total parameter has had several of its restrictions removed.
    The --substitute parameter short syntax is changed to now be -S to make the program more consistent with other programs where the -s is the short syntax for the --select parameter.
    The IKI Read program does not have a --select parameter.
    The order in which --name, --at, and --line parameters has been clarified.
    
    The IKI related and Time related specifications have been updated to address concerns and points of confusion.
    Additional documentation regarding the backslashes similar to how the FSS backslashes are handled.
    The Time specification has incorrect examples that are now fixed.
    The language in the Time specification has been changed to better allow for more flexibility in its application.
    
    I have found some notable bugs where the f_signal_close, uid_t, and gid_t are assigning the wrong number when representing closed or unused.
    These need to be -1 rather than 0.
    
    I completely neglected the disable build configurations in most of my previous releases.
    These have now been rebuilt to accurately reflect the current disable define listings per project.
    
    A new specification called EKI, which stands for Extended IKI, has been added to the project as a whole.
    This EKI allows for multiple tags to be grouped together.
    I decided to do this once I started using IKI more regularly and I realized that I really did need to simplify and allow grouping multiple tags together.
    I should now be able to more appropriately mimic HTML behavior.
    This also allows for multiple contexts to be added such as might be the case when it comes to accessibility needs.
    
    An example EKI is bold:italic:"My Example".
    The order is not required but is preserved and so the following is also valid and potentially different due to the order: italic:bold:"My Example".
    
    The 0.6.13 does not implement an EKI program and instead the newer 0.7.1 should be used.
    The eki_read and an eki_write programs both exist in 0.7.1.
    
    The following are changes in the 0.6.13 stable release since the 0.6.12 stable release.
    
    Exploit Fixes:
      - None.
    
    Security Fixes:
      - None.
    
    Features:
      - FLL: Add EKI specification for EKI standard, a slightly updated IKI standard.
    
    Bug Fixes:
      - FLL: Mistakes in the IKI specification.
      - FLL: The IKI and EKI specifications have mistakes and needs clarifications.
      - FLL: IKI and EKI specifications, clarifying backslash escaping.
      - FLL: Specification files need proper escaping for example code.
      - FLL: The IKI and EKI specifications do not require escaping inside of Content.
      - FLL: The f_signal_close() should be setting signal id to -1 and not 0.
      - FLL: The uid_t and gid_t should be initialized to -1 and not 0.
      - FLL: Incorrect clear macro on f_account_t().
      - FLL: Incorrect example in time specification regarding EpochTime.
      - FSS Read: Empty Objects are preserving leading white space when in original mode and update runtime tests.
      - IKI Read: Perform range check before access array and fix typos in comments.
      - IKI Read: The -t/--total in iki_read is confusing and allow for --total with --whole.
      - IKI Read: Is not handling parameter errors properly.
      - IKI Read: May now have --whole with --at.
      - IKI Read: Only print final new line on interrupt.
      - IKI Read: Improve error reporting in runtime tests during generation.
      - IKI Read: The IKI Read --total restrictions are not needed anymore.
      - IKI Read: Fix handling of --line when not using --whole.
      - IKI Read: Fix bug in generate.sh script parameters and fix spacing style.
      - IKI Read: The f_string_dynamic_partial_append_nulless() and f_string_dynamic_seek_line() are required.
    
    Refactors:
      - None.
    
    Regressions:
      - None.
    
    Updates:
      - FLL: IKI and EKI specifications.
      - FLL: Backport f_iki unit tests changes.
      - FLL: The time specification, making it more flexible.
      - FLL: Copyright year to 2025.
      - FLL: Rebuild the disable build configs.
      - FLL: Add verbose printing of the install command when in debug for test.sh.
      - FLL: Improve example bootstrap script, exiting properly on error.
      - FSS Read: Add FSS Embedded List read depth tests and fix test script files.
      - IKI Read: Help message.
      - IKI Read: Implement the iki_read runtime tests.
      - IKI Read: Change --substitute short parameter from -s to -S for iki_read.
      - IKI Read: Design and logic to be consistency with 0.7 logic.
      - IKI Read: Clarify precedence of the --name, --at, and --line for IKI Read.
    
  • 0.7.0

    Release: Development Release - 0.7.0 - Bare
    The Featureless Linux Library development version 0.7.0 is released.
    
    This is a development release.
    The 0.7 development code has gone too long without a formal release tag.
    This development branch has seen development as far back as August 3, 2022 and much of the 0.6 includes a lot of back ported code from 0.7.
    This release represents a starting point for many planned changes and updates throughout the year.
    
    This development code has some design changes that makes the project a little more versatile and extensible but at a cost of slightly larger code.
    Many of the programs now have a more consistent and modular design that allows for housing multiple related projects in the same code base.
    Several of the projects have been renamed and simplified into shorter names, such as f_string_range_t now being f_range_t.
    A new program called EKI, also known as Extended IKI, that handles the EKI specifications is now available.
    
    The release packages are made like this:
      # bash build/scripts/package.sh -p -P "monolithic-" build
      # bash build/scripts/package.sh -l -P "level-" build
      # bash build/scripts/package.sh -i -P "individual-" build
      # bash build/scripts/package.sh -S all -P "stand_alone-" build
    
      And change into each individual package group and do the following:
      # for i in * ; do echo ; echo $i ; tar -c $i > ${i}.tar && sha256sum ${i}.tar > ${i}.tar.sha256 && gpg -bas -u 02E939B8F7EFE597 ${i}.tar && gpg --verify ${i}.tar.asc && gzip -9 ${i}.tar ; done
    
  • 0.6.12

    Release: Release - 0.6.12 - Bare
    The Featureless Linux Library stable version 0.6.12 is released.
    
    This release provides some significant polishing, bug fixing, and corrections (or clarifications) to the project, the standards, and the specifications.
    Much of this work is done to pave the way for forward compatibility with improvements and changes introduced in the 0.7 development branches.
    I try to avoid making such changes in the specifications for stables releases but I feel these specific changes are merited.
    
    This increases the correctness of the FSS processing code, specifically with the FSS read functions.
    The previous behavior only cared whether or not the tests produce equivalent results in terms of reading and writing.
    I back ported the 0.7 runtime tests and found that it would be better to have consistent and correct output in regards to white space.
    Doing this also exposed several bugs and mistakes in the FSS processing code.
    
    The FSS Embedded Read, in particular, was completely forgotten about by me.
    The previous releases have been marked stable but I forgot to actually verify the proper functioning of the FSS Embedded Read program.
    The back porting of the runtime tests exposed significant problems with the FSS Embedded Read program.
    
    I had not implemented the `--columns` support for FSS Embedded Read in prior releases.
    The `--columns` is now properly supported and has runtime tests.
    
    The FSS Embedded Read to include the back ported fixes from the 0.7 development branch:
      - The use of `f_memory_array_increase()` is incorrect in several cases.
      - Switch to `f_memory_array_resize()`.
      - Add two when resizing to account for the depth position but also an additional element as a minor memory allocation optimization.
      - The `--select` now also follows the more strict behavior as implemented in the 0.7 branch.
      - The `--total` to match the more strict behavior as implemented in the 0.7 branch.
    
    The FSS Embedded Read has the following additional notable fixes thanks to the runtime tests:
      - Security issue regarding incorrect memset value (passed `sizeof(skip)` when instead `sizeof(bool)` should be used).
      - The `--line` parameter is not being correctly validated and throws an error when a value is specified.
      - Fix a bug where empty Content is being improperly handled and '}' is being returned as the Content for empty Content.
      - The `--select` is not always printing a number, so make sure a number, even if it is `0`, is always printed.
      - The comments are not being properly processed because `graph_first` is not and should be being set to 0x1 at start, resulting in the first comment is not being treated as a comment.
      - The entire Content is being displayed when `--object` is used with `--line` when instead only a single line must be printed.
      - Column counts with empty data are not being correctly handled.
      - Should not display any lines when Content is empty and Objects are not being printed.
      - Delimits are not being applied when printing in line mode.
      - Do not double-print the before spaces when both original and trim modes are in use.
      - Print the before even with original and trim are in use when the Object has no size.
    
    The FSS-0002 and FSS-0003 standards have some unclear situations regarding the white space before and after a valid Object that need clarification.
    I discovered problems and realized that the standard could be more clear according to the spaces before and after the Object.
    This does not change the FSS-0002 and FSS-0003 standards in any functional way.
    The simply clarifies the standard regarding the spaces to make it more clear and reduce the chances for a mistake.
    
    The original print is now better preserved.
    Printing an Object can now print the before and after Object characters (usually white space).
    The trimming and original print may be used together to produce the results where the is no white space before or after the Object but everything else from the original source is preserved.
    This combination of trim and original essentially ensure that the old behavior can be still produced.
    This does not utilize the `closes` structure as is done in the 0.7 development branches to ensure API does not get broken.
    This is mostly simulated and more proper and precise support for this requires at least the 0.7 development branch.
    
    I did some experimentation and found that I could get this project to build and run on an Android environment.
    I generally do not want OS-specific build files in the core FLL project.
    This should help build more support for the Android environment and help pave the way for future projects that may help those users unfortunate enough to find themselves in an Android environment.
    This Android functionality is not well tested nor is it well supported.
    The Android support has been tested to build using `bootstrap.sh` and then using `fake`.
    
    Example build and install process:
      ```
      # mkdir ~/software
      # cd fll-0.6.X/
      # ./bootstrap.sh build -m monolithic -m thread -m clang -m android && ./install.sh ~/software
      # cd ../fake-0.6.X/
      # ./bootstrap.sh build -m monolithic -m thread -m clang -m android -w ~/software && ./install.sh ~/software
      # export LD_LIBRARY_PATH=~/software/libraries/shared
      # export PATH=~/software/programs/shared
      # cd ../byte_dump-0.6.X/
      # fake -m monolithic -m thread -m clang -m android -w ~/software && ./install.sh ~/software
      ```
    
    Example execution of `byte_dump` of `bash` program (this is a large dump).
      ```
      # byte_dump -wt 7 $(type -p bash)
      ```
    
    The Featureless Make is intended to not be language specific since its inception.
    I did not know how the languages were to work, so I mostly built this to guarantee C/C++ support.
    
    I recently discovered that the `golang` supports some command line based compilation.
    The `golang` is now supported in the most basic way, but this support is not well tested.
    Use the `example_go` project as a point of reference.
    I have only tested the basic build and I have not done anything advanced.
    
    This relaxes some of the requirements in the build specification.
    The `bash` is changed to `shell` to encourage more types of scripts.
    The `custom` is added and used as a fallback if `build_language_path` is not used.
    
    I found that there needs to be some additional settings in the `settings` specification.
    This updates the specification and adds:
      - `build_compiler_arguments`
      - `build_compiler_arguments_library`
      - `build_compiler_arguments_library_shared`
      - `build_compiler_arguments_library_static`
      - `build_compiler_arguments_object`
      - `build_compiler_arguments_object_shared`
      - `build_compiler_arguments_object_static`
      - `build_compiler_arguments_program`
      - `build_compiler_arguments_program_shared`
      - `build_compiler_arguments_program_static`
      - `build_compiler_arguments_shared`
      - `build_compiler_arguments_static`
      - `build_language_path`
    
    Some discovered mistakes in the language of the specification are also fixed.
    
    The following are changes since the 0.6.11 stable release.
    
    Exploit Fixes:
      - None.
    
    Security Fixes:
      - Incorrect memset value (passed `sizeof(skip)` when instead `sizeof(bool)` should be used).
    
    Features:
      - Fake settings specification updates and enable simple golang support.
      - Add support for building under Android.
    
    Bug Fixes:
      - FSS Embedded List Read printing tabbing when using original mode and trim mode.
      - Get the FSS Embedded List Read working as expected based on runtime tests.
      - Replace `index()` with `strchr()`.
      - FSS Embedded List Read is not applying delimits when printing in line mode.
      - Empty Content lines with no Object printed should not be included for FSS Embedded List.
      - Incorrect handling of column counts with empty data for FSS Embedded List Read.
      - FSS Embedded Read is printing a single line with `--line` parameter with `--object`.
      - Invalid comment handling in FSS Embedded Read.
      - FSS Embedded Read has incomplete and incorrect code.
      - FSS Extended Read needs to only print new line if Object or Content is printed.
      - FSS Extended Read needs to properly handle `--total` when using `--select` and also `--empty`.
      - FSS Basic Read needs to properly handle `--total` when using `--select` and also `--empty`.
    
    Refactors:
      - None.
    
    Regressions:
      - None.
    
    Updates:
      - The bootstrap example script now handles building using fake.
      - Refresh firewall iptables rules and relax some of the defaults.
      - Cgroup example controller script example to show running under a SystemD system.
      - Improve robustness of the `fll_control_group_prepare()` function.
      - Implement Object alignment and trim expanding in FSS Read programs and restructure the program flags.
      - The FSS Lists (FSS-0002, FSS-0003, FSS-0008, etc..) to match recent specification changes and reduce redundancy.
      - The FSS Basic List (FSS-0002) to match recent specification changes regading Objects.
      - The FSS-0002 and FSS-0003 standards, modifying the space after Object rules.
      - Clarify the FSS-0002 and FSS-0003 standards regarding the white space before and after a valid Object.
      - Always count any `--select` when using `--object` for FSS Read programs.
      - Improvements around FSS Read functions regarding correctness.
      - Back port tests for the FSS Read programs with more recent changes.
    
  • 0.6.11

    Release: Release - 0.6.11 - Bare
    The Featureless Linux Library stable version 0.6.11 is released.
    
    This release brings in fixes for problems exposed by more regular use of and by active development on the 0.7.x development branch. In particular, the Controller program has seen a lot of fixes and improvements.
    
    I have been working on additional projects, such as Tacocat. This project has a different structure and has revealed some bugs or mistakes in the fakefile and settings standards for the Featureless Make program. I have already been aware of this potential problem but I had been hoping that I would not need to implement a new feature in the standard. Unfortunately, I have concluded that I do in fact need a new feature. The fakefile and settings standards now support a new Object called stage. I chose the word stage to avoid conflicts with existing build focused Object names. This new feature in the standard fixes a bug where multiple settings might conflict with each other. I opted to classify this new feature as a bug fix. This change further exposed an oversight where slashes are not supposed to be supported in the build name Object and the version Objects. The new stage Object as well as the build_name, version_major, version_major_prefix, version_minor, version_minor_prefix, version_micro, version_micro_prefix, version_nano, version_nano_prefix and version_target Objects now explicitly prohibit slashes.
    
    I also found some notable bugs in the FSS read programs. The processing of comments is incorrect and the ranges being processed are entirely missing the necessary range checks. I back ported the runtime tests for the FSS read programs to better help catch problems and regressions.
    
    A new feature is created for the Simple Packet (FSS-000F) standard for adding support for a magic block. A magic block provides the ability to identify the type of packet being transmitted. This has performance, firewalling, and also local storage implications. The packets can be directly saved as a file and that file can be easily identified and read. This does not define the magic identifiers themselves. This only adds the functionality to specify them. For security reasons, the presence of the magic block is optional. There is not network functionality in the 0.6 versions of the FLL project. This is only a change to the standard. The 0.7 versions and later of the FLL project implement network related functionality.
    
    The memory consumption consumed by certain functions is now greatly reduced. The lazy allocation process works really well, except for certain key conditions. One of these conditions is when the allocation step is set to some large value, such as 128. Then, a huge amount of arrays are allocation, each with only one or two elements in the array. I found that when using fss_basic_read on a large data set that I would incur an 8 Gigabyte memory allocation cost. After the optimization that same allocation cost went down to about 500 Megabytes. The reason for this is directly because of about four or five differernt one element arrays are being allocation for maybe 2,000,000 Objects in some file. The optimization has a cost of additional logic and a few more allocations for small arrays. This is not considered too expensive because these arrays are small and the cost of re-allocating them is relatively inexpensive.
    
    The following are changes since the 0.6.10 stable release.
    
    Exploit Fixes:
    - None.
    
    Security Fixes:
    - FLL: Console parameter single short values array is too small.
    - Controller: Remove the simulate feature that actually executes a script.
    - Controller: Incorrect sizeof() used in process pointers.
    - Controller: Wrong sizeof() type used in allocation functions.
    - FSS Read programs: Missing range checks on comment processing.
    
    Features:
    - FLL: Add "Magic Bit" to the FSS-000F (Simple Packet) format.
    
    Bug Fixes:
    - FLL: Enable missing support for grave (backtick) is IKI.
    - FLL: The fl_directory_create() needs to also handle F_file_found_not.
    - Controller: Stand alone build doesn't compile due to incorrect _di_f_thread_mutex_lock_timed_ config.h setting.
    - Controller: Incorrect length on string CONTROLLER_rule_print_control_groups_prepare_s.
    - Controller: Double creation of mutex alert lock.
    - Controller: Parameter type is f_number_unsigned_t and not uint8_t.
    - Controller: Incorrectly adding an extra '/' to the file name.
    - Controller: Incorrect thread unlock in controller_rule_process().
    - Controller: Improve error message regarding file not found..., found.
    - Controller: Don't assign enabled variable on lock failure to avoid potential race condition.
    - Controller: Error printing function has wrong locking.
    - Controller: Replace f_signal_mask() with f_thread_signal_mask().
    - Controller: New line is not being printed because sequence is missing.
    - Controller: Incorrect error message describing wrong value number.
    - Controller: Simulation is using error output rather than normal output in one case.
    - Controller: The $ should instead be a % in the fl_print_format() call.
    - Controller: Add missing 'extern' to controller_entry_settings_read_map().
    - Controller: The help code is being used instead of the light code
    - Fake: Add stage setting to standards to prevent build state file conflicts.
    - Fake: The build_name and version numbers should not support forward or backward slashes.
    - FSS Read programs: Bugfix: Incorrect runtime tests for FSS Read programs.
    - FSS Read programs: Bugfix: Properly back port runtime tests for FSS Read programs.
    
    Refactors:
    - None.
    
    Regressions:
    - None.
    
    Updates:
    - FLL: Back port runtime tests for FSS Read programs.
    - FLL: Apply the not operator logic to avoid needing to literally specify it.
    - FLL: Greatly reduce memory consumption by implementing simple low allocation step.
    - FLL: Reduce memory usage by fl_fss_basic_content_read() in some circumstances.
    - FLL: Optimize away the isdigit(), isalpha(), isalnum(), and isxdigit().
    - FLL: Yet another file with a copyright year that needs to be updated.
    - FLL: Specifications to use grave as the common term for backtick.
    - FLL: The f_iki test needs to be updated following the version update.
    - Controller: Add additional protection around assignment of global.thread.enabled during Controller exit process.
    - Controller: Use copy of flag to avoid possible race conditions with controller_thread_is_enabled().
    - Controller: Provide fallback should the locks on exit fail to catch and update function using pointer.
    - Controller: Rewrite timing logic in controller.
    - Controller: Reset cache in some cases and do so after error messages.
    - Controller: Add missing extern for prototype of controller_unlock_print_flush().
    
  • 0.6.10

    Release: Release - 0.6.10 - Bare
    The Featureless Linux Library stable version 0.6.10 is released.
    
    This release brings in fixes exposed by more regular use and by active development on the 0.7.x development branch.
    
    Fix problems with the FSS Extended Write where the quote characters that are not selected during the write are not being quoted.
    These must still be quoted.
    
    Fix problems regarding the latest GCC release (14.1.1).
    
    Fix problems with both the FSS Extended write and FSS Basic write where the quote character at the start of an Object or Content is always being quoted in cases where it should not be.
    
    The build environment has seen some improvements to make it work in more systems when using the default build settings.
    
    The recently added -D_FORTIFY_SOURCE, for example, ended up causing problems on some systems.
    
    The following are changes since the 0.6.9 stable release.
    
    Security:
    - Controller: Potential buffer overflow on 0 length array.
    
    Features:
    - None.
    
    Bug Fixes:
    - FLL: Problematic handling of object files.
    - FLL: A lone quote inside quotes should not be escaped for FSS Basic and Extended.
    - Fake: Incorrect memset type used in Featureless Make.
    - Fake: FSS Extended Write is not properly quoting quotes.
    
    Refactors:
    - None.
    
    Updates:
    - FLL: Switch for..loop with memcpy() for character width copies.
    - FLL: FSS-000E specification, adding "salt" and "time" as suggested headers.
    - FLL: Add stand alone fss_basic_list_read, fss_basic_list_write, fss_extended_list_read, and fss_extended_list_write.
    - FLL: Use bitwise operation check in f_thread_cancel_state_set().
    - FLL: Remove -D_FORTIFY_SOURCE because several systems automatically add this and the screen is spammed with warnings.
    - FLL: Add support for disable pthread mutex prioceiling for systems that do not support it.
    - FLL: The build scripts copyright to 2024.
    - FLL: Add experimental ctags generation and ctags file.
    - FLL: Build files to have the correct build modes.
    - FLL: Man pages date in preparation for 0.6.10 release.
    
    Regressions:
    - None.
    
  • 0.6.9

    Release: Release - 0.6.9 - Bare
    The Featureless Linux Library stable version 0.6.9 is released.
    
    This release address newly discovered bugs and problems that have been exposed by unit tests from the 0.7 development branch and some real world use cases.
    
    This brings in some security related problems and upgrading is recommended.
    
    A significant amount of development in the 0.7 development code base has yielded a number of changes worth back porting into this 0.6 stable code base.
    
    This brings in a new feature for the test scripts to make testing for integrity and security bugs easier.
    This change does not break API.
    
    The specification documentation is updated to use the word "grave" in place of "backtick" to be more consistent with the more commonly accepted terminology for that character.
    
    The firewall program has seem some considerably review and bug fixes.
    
    The man pages have been refreshed.
    The process is partially automated and then manually cleaned up.
    
    The Open Standard License 1.0 has been formalized (OSLv1).
    This project is updated to ensure that this is in use.
    The project has already been using this standard for some time but during that time the standard was considered a draft.
    
    The following are changes since the 0.6.8 stable release.
    
    Security:
    - FLL: Conversion is not handling NULL case when base unit is an unsupported type.
    - FLL: The fl_print_format_convert() is missing the check on the pointer and update the related documentation comments.
    
    Features:
    - FLL: Add -a/--analyze to test.sh script.
    
    Bug Fixes:
    - FLL: Functions private_fl_fss_basic_read() and private_fl_fss_basic_write() are missing "const".
    - FLL: Incorrect stop position is calculated when FSS content ends at the start position on FSS read operations.
    - FLL: FSS Extended read fails to handle non-terminated quote as per specification.
    - FLL: FSS Basic List and FSS Extended List print comment at the start of the Content.
    - FLL: If the first character has a width greater than one then F_utf_fragment is incorrectly returned when using quotes.
    - Featureless Make: Incorrect mode display when featureless make is building settings.
    - Firewall: Error message is saying "lock" when it should say "stop".
    - Firewall: Firewall program is not printing error when fll_fss_extended_read() fails.
    - Firewall: Firewall program if condition is setting an error flag rather than checking the value.
    - Firewall: Firewall length check from range is not calculating 0 correctly.
    - Firewall: The debug mode is not working in firewall.
    - Firewall: De-allocation call is missing in firewall program when "firewall stop" is used.
    - FSS Extended Write: Is improperly associating Content with its respective Object.
    
    Refactors:
    - FLL: The backtick into the grave, for the specifications.
    
    Updates:
    - FLL: The FSS-000E specification needs to say "one required object" and not "two required objects".
    - FLL: Optimize bitwise logic regarding removing bits.
    - FLL: Make the -m thread option in the example bootstrap script more easily customizable.
    - FLL: Add hopefully more secure compiler flags by default.
    - FLL: Make sure stand alone builds have consistent buid mode settings.
    - FLL: Backport improved return code failure reporting to firewall from 0.7 development.
    - FLL: Backport fixes for bootstrap-example.sh, package.sh, and test.sh scripts.
    - FLL: Back port settings configurations, such as gcc and flags.
    - FLL: Back port the ability to explicitly skip a program in the bootstrap example script.
    - FLL: Documentation man pages.
    - FLL: Make the Open Standard License 1.0 formal.
    - FLL: Disable -fstrict-flex-arrays=3 flag because it doesn't work on GCC 11.
    - FLL: Add missing snippet from OSLv1 license.
    
  • 0.6.8

    Release: Release - 0.6.8 - Bare
    The Featureless Linux Library stable version 0.6.8 is released.
    
    This release is for the start of a new year.
    
    There are not many changes and there are no code-based bug fixes.
    Only a single bug fix exists and it is in a specification.
    
    This contains mostly specification updates, clarifications, and fixes.
    
    The Payload and Simple Packet specifications have "type" added as a recommended Object in the header section for the Payload.
    The size of units is rewritten to make more sense in the Payload and Simple Packet specifications.
    The Payload specification now allows for the "payload" section to be optional.
    
    The most notable code change is the explicit casting of uint32_t when doing bit-wise operations for left and right shifting.
    The goal here is to increase the integrity of the design and not allow any opportunity for the compiler or architecture to use a different size.
    
    The following are changes since the 0.6.7 stable release.
    
    Security:
    - None.
    
    Features:
    - None.
    
    Bug Fixes:
    - FLL: Fix incorrect wording regarding negative times and add some clarification regarding defaults (in specification).
    
    Refactors:
    - None.
    
    Updates:
    - FLL: Specifications for Payload and Simple Packet.
    - FLL: The fss-000e (Payload) specification should allow for the "payload" Section to be optional.
    - FLL: Explicitly cast UTF conversion to/from to a uint32_t.
    - Control: Use size_t and perform explicit casts in Control program.
    
  • 0.6.7

    Release: Release - 0.6.7 - Bare
    With this release I hope to see the 0.6.7 as a very stable release.
    
    Only a single functional feature is added and then it is a bug fix in the guise of a feature.
    The Featureless Make program has an oversight in regards to specify a custom path within the buid settings paths.
    I discovered this while working on the TacocaT program in the Kevux Tools project.
    
    A new FSS standard, FSS-0010 "Encrypted Simple Packet", is added.
    This is generally going to be in the 0.7.x and greater version
    
    There are several changes to the FSS specifications.
    The FSS standards themselves now have a "version" date added.
    The specifications are currently versioned by the dates rather than some arbitrary number.
    Should I get to an FLL 1.0.0, I will have to decide on whether or not to use a numeric version as well.
    I very likely will have the specifications at 1.0.0 at that point as well.
    
    I discovered a regression in the 0.6.6 release and possibly earlier regarding the dependencies in the stand alone builds.
    This should no longer be a problem as of 0.6.7.
    
    Several security concerns have been discovered and fixed in this release.
    
    The following are changes since the 0.6.6 stable release.
    
    Security Fixes:
    - FLL: The f_iki allocation functions are calling f_memory_destroy() and f_memory_delete() when the
    y should not, causing memory leak.
    - FLL: Add additional checks against the parameters in fll_execute_program().
    - FLL: Invalid allocation size for fll_execute_arguments_add_parameter_set().
    
    Features:
    - FSS: Add specification FSS-0010 "Encrypted Simple Packet".
    - Fake: Add -U/--under parameter to Featureless Make.
    
    Bug Fixes:
    - FLL: Incorrect version numbers in some of the extra projects files.
    - FLL: Incorrect sizeof() values for f_thread_mutex_attribute functions and f_thread_lock functions.
    - FLL: Incorrect sizeof() values for numerous type array functions.
    - FLL: Add missing parameter checking to fll_program_* functions, add "const" to parameter pointers, and add missing documentation comment for parameter.
    - FLL: Problems exposed by clang-13.
    - FSS: Mistakes in the FSS-000f Simple Packet specification.
    - Byte Dump: Program binary mode is printing wrong number of padding.
    - Controller: Incorrect function name in error message.
    
    Refactors:
    - None.
    
    Updates:
    - FLL: The defines in cygwin.txt documentation are out of date
    - FSS: FSS-000F (Simple Packet) Specification.
    - FSS: Specifications, replacing "emphasis" with "italic".
    - FSS: Specifications, adding explicit version date and change license line format.
    - FSS: FSS-000F specification, adding reasoning and improve the wording.
    
    Regressions:
    - FLL: Incorrect dependencies breaking some builds, specifically the stand alone builds.
    
  • 0.6.6

    Release: Release - 0.6.6 - Bare
    The Featureless Linux Library stable version 0.6.6 is released.
    
    This is release is made in celebration of the Fourth of July.
    
    Adds the following stand alone programs:
    - fss_basic_read
    - fss_basic_write
    - fss_extended_read
    - fss_extended_write
    
    There are about 1500 additional man pages representing the functions in addition to the usual bug fixes.
    The man pages were sort of generated and then manually fixed.
    These man pages are considered good enough but are not great.
    There will likely be a future project to assist in generating man pages that are better than the tools that I currently used.
    
    Of particular note is that I found and fixed problems in the FSS processing code.
    The comments were not always being processed correctly resulting in actual Content being missed.
    
    The Featureless Make build program has several notable fixes and improvements.
    The build system has now seen a lot more uses and more corner cases and minor details are addressed.
    Problems with propogating arguments across builds is now fixed.
    
    The following are changes since the 0.6.5 stable release.
    
    Security Fixes:
    - None.
    
    Features:
    - None.
    
    Bug Fixes:
    - FLL: The testfile needs to handle the --build parameter and improve --work parameter handling.
    - FLL: Handle f_directory_not status as an invalid directory.
    - FLL: Quotes in FSS read functions are not being properly handled and fix backtick handling.
    - FLL: The build scripts are not handling documentation directory.
    - FLL: The boostrap script should not fail if documentation directory is empty.
    - Fake: Use the custom build settings name if passed when printing current setting being used.
    - Fake: Use arguments passed to fake when processing build with the custom build arguments.
    - FSS Basic Read: The -T/--trim parameter is not being processed.
    - FSS Extended List Read: FSS Extended List Read program should print new line after Object.
    - FSS Identify: Add missing 'extern' keyword for fss_identify_process_name_compare() definition.
    - FSS Identify: Remove spurious 'y' character in help message.
    - FSS Identify: The fss_identify_process() should have f_string_empty_s rather than f_string_ascii_minus_s.
    - FSS Identify: FSS Identify should process all --name parameters and not the last.
    - FSS Identify: FSS Identify stand alone requires f_string_dynamic_append_nulless.
    - FSS Read Programs: Comments are being included when processing --total and --at.
    - FSS Read Programs: The line and total need to support the closing brace.
    
    Refactors:
    - None.
    
    Updates:
    - FLL: The Open Standard License, adding stronger terminology and more clarification.
    - FLL: Relax the requirement in the license to be less verbose.
    - FLL: Change program man pages to be referred to as "Program Manual".
    - FLL: Add man pages for most or all FLL functions.
    - FLL: Add stand alone fss_basic_read, fss_basic_write, fss_extended_read, and fss_extended_write.
    
  • 0.6.5

    Release: Release - 0.6.5 - Bare
    The Featureless Linux Library stable version 0.6.5 is released.
    
    This release contains fixes and improvements discovered during daily use and several back ported fixes.
    
    Added the following stand alone programs:
    - fss_payload_read
    - fss_payload_write
    
    There are several build system improvements to make the project easier to use.
    Several of the project build scripts are out of date in parameter handling and processing.
    Proper Featureless Make functionality that is expected to be supported by the boostrapt script is found lacking in a few small ways.
    
    The build setting files and fakefile files in this project should now have some more environment variables added by default.
    These added environment variables are focused on locale.
    
    The function fl_string_dynamic_partial_compare_trim() has been found to not be exposed in the header files by accident.
    This means that the previous API is not consistent with the compiled ABI.
    The function is now present that the API should now be consistent with the ABI.
    
    The Featureless Make program is not as usable in the previous releases when using commands like "fake help".
    This is due to an oversight where there may be no "main" section for a file that only has a "help" section.
    This bug is fixed such that an error is no longer produced when missing "main" in the cases where the "main" section is not required.
    
    Parameter expansion problems in regards to quotes in Featureless Make is now resolved.
    
    The way threading is being used and linked to based on the default projects settings has been improved upon.
    Any relevant documentation is updated accordingly.
    
    Overall the project is proven to be rather stable and there have been very few bugs that needed to be resolved.
    
    The following are changes since the 0.6.4 stable release.
    
    Security Fixes:
    - FLL: fl_directory_list() is not appending a NULL.
    - FLL: Add the locale specific environment variables to everything by default.
    - FLL: Invalid read in trim comparison functions.
    - Featureless Make: fake_build_arguments_standard_add() is treating static path the same as shared.
    - FSS Basic List Read: Invalid read in help output due to incorrect size assigned to static string.
    
    Features:
    - None.
    
    Bug Fixes:
    - FLL: Fix return codes and clean up package.sh.
    - FLL: Incorrect return code in tests causes false failures in CI.
    - FLL: Incorrect wrapping define usage.
    - FLL: Invalid macro name for f_string_map_multi_t and f_utf_string_map_multi_t.
    - FLL: Rebuild the disable defines file and update the readme.
    - FLL: Add missing function fl_string_dynamic_partial_compare_trim().
    - FLL: The fl_string parsing functions do not check buffer.used.
    - FLL: Out of date repository build scripts.
    - FLL: Out of date install.sh and Featureless Make helper scripts.
    - Featureless Make: Stand alone build fails to compile due to missing f_string_append_nulless().
    - Featureless Make: The stage files should not begin with "-".
    - Featureless Make: Remove extra arguments being added.
    - Featureless Make: When specifying a specific section name, do not care if there is no "main" section.
    - Featureless Make: Incorrect file path in error message.
    
    Refactors:
    - None.
    
    Updates:
    - FLL: Month name to April in man pages.
    - FLL: Improve thread configuration, document modes in build settings files, and update build scripts.
    - FLL: Back port utf string compare unit tests.
    - FLL: Back port utf string compare code from 0.7.x.
    - FLL: Back port unit tests from 0.7.x development.
    - FLL: Add the locale specific environment variables to everything by default.
    - Featureless Make: Use f_string_append_nulless() instead of f_string_append() just in case.
    - Featureless Make: Don't call f_file_exists() until after child status is checked.
    - FSS Payload Read/Write: Add stand alone build for fss_payload_read and fss_payload_write.
    
  • 0.6.4

    Release: Release - 0.6.4 - Bare
    The Featureless Linux Library stable version 0.6.4 is released.
    
    This release contains numerous bug fixes and code clean ups.
    There are also some features implemented as either a solution to a bug or to accommodate changes to a specification.
    This change also revisits some of the copyrights and further clarifies them.
    
    Added the following stand alone programs:
    - controller
    - fss_identify
    - iki_read
    - iki_write
    
    Copyrights are now displayed when the programs are passed the +C/++copyright standardized parameter.
    
    The build and package scripts are improved to better automate stand alone package building.
    
    This preemptively adds Kevux specific path global support to easy the package build process for Turtle Kevux.
    This is done in a non-API and a non-ABI breaking manner.
    
    The IKI standard is found to be slightly lacking.
    There is a strong need for IKI variables immediately after word-characters that are not part of the variable name.
    The IKI standard and specification is now updated to utilize open bracket '[' (U+005B) and close bracket ']' (U+005D), commonly referred to as "wrap" or "wrapping".
    Such an IKI variable looks like [vocabulary]:"content" (as opposed to vocabulary:"content").
    New functionality is provided to keep this project compliant with the recent changes to the IKI standard and specifications.
    
    A major behavioral bug has been found in the Controller program regarding the "program" operation mode.
    Solving this the simple way would then break other behavior.
    To avoid this, a new feature is implemented, called the "helper" operation mode.
    The "helper" operation mode provides an alternative to "program" operation mode to allow for starting tasks.
    
    The recent work involving Featureless Make in the 0.7.x development branches has exposed a number of problems whose fixes have been back ported.
    
    The Controller program has now be successfully tested and run under a SystemD system using "cgroups".
    A quick and simple SystemD "cgroup" example Controller is now provided.
    
    The following are changes since the 0.6.3 stable release.
    
    Security Fixes:
    - Featureless Make: Invalid read or write while expanding operations.
    - Featureless Make: Add extra check range checks in Featureless Make build skeleton.
    - Multiple Programs: NULL pointer dereference in writer due to pipe function result handling.
    
    Features:
    - FLL: Provide program parameter for displaying copyright.
    - FLL: Enable support for stand_alone packaging with 'all'.
    - FLL: Implement wrap support for IKI standard to be compliant with recent changes.
    - Controller: The content action cache, comments, and delimits are not being properly cleared.
    - Controller: Add support for 'helper' mode to compliment the 'program' mode.
    
    Bug Fixes:
    - FLL: Status Code stand alone has incorrect files added.
    - FLL: Stand alone build file problems and bad define macros.
    - FLL: Incorrect dependencies for individual build modes.
    - FLL: Fix unterminated quote handling issue addressed by specifications clarification.
    - FLL: Miscellaneous problems in file functions and Featureless Make related code.
    - FLL: Control group function is partially outdated and uses incorrect integer.
    - FLL: The bootstrap script "-d/--define" command does not match the Fake command.
    - FLL: Short console arguments should not match when a single invalid exists.
    - Controller: The control read only option is not being loaded.
    - Controller: Remove out of place single quote in print.
    - Controller: The Entry is not printing on simulate and validate combined mode.
    - Controller: Multiple cancellations may occur, use mutex lock to prevent.
    - Controller: Consistently use the same color context for the entry name.
    - Featureless Make: Dead code in return status handling.
    - Featureless Make: Number too large error should be returned as an error.
    - Featureless Make: Add missing "extern" to functions in header.
    - Featureless Make: Return result lost in Featureless Make for f_string_dynamic_append_nulless() call.
    - Featureless Make: Set error status when link target is an empty string.
    - Featureless Make: Printed error message is not utilize verbosity quite mode.
    - Featureless Make: Print message is missing the percent before the 'Q' causing invalid printing.
    - Featureless Make: Argument variable passed is a pointer, print the value not the pointer.
    - Featureless Make: Fix typo in 'original' word.
    - Featureless Make: Multiple single-valued Objects should used last instead of first Object.
    - Featureless Make: Incorrect and confusing warning message in Featureless Make.
    - Featureless Make: Invalid defines, incorrect comments, missing flags, and missing dependencies.
    - Featureless Make: The build settings 'path_sources' is incorrectly added.
    - Featureless Make: The -S/--sources parameter is not being correctly used.
    - Featureless Make: Incorrect documentation in fakefile.txt.
    - Featureless Make: Fakefile processing with color context is producing extra spaces when unquoted.
    - Featureless Make: Incorrect stream used when printing output in verbose directory recursion.
    - Featureless Make: The stream is locked again rather than unlocked after being locked.
    - Multiple Programs: FSS Write programs don't correctly handle multi-Content per Object situations.
    
    Refactors:
    - None.
    
    Updates:
    - FLL: Add unit tests for fll_path.
    - FLL: Further clarify quoting in FSS specifications.
    - FLL: Clarify FSS specifications in regards to quote behavior.
    - FLL: Style guide documentation.
    - FLL: Program man pages, adding copyright, fixing help, and adding missing period.
    - FLL: Open Standard License to be 1.0 or later rather than just 1.0.
    - FLL: Fakefile specification.
    - FLL: Add fanalyzer build mode.
    - FLL: Add locale environment variable support, install, and help support in fakefiles.
    - FLL: Add new standard global type, "_g".
    - Controller: Man page for controller specification changes regarding "helper" mode.
    - Controller: Add example controller script for running under SystemD using cgroups.
    - Controller: Add stand alone controller build.
    - Controller: Controller and Control man page documentation.
    - Featureless Make: Further Fakefile processing with IKI replacement space problems.
    - Featureless Make: Use the signal check counter more consistently in Featureless Make.
    - Featureless Make: Print message rather than an error when termination signal is received.
    - Featureless Make: Allocate extra space for the terminating NULL.
    - Featureless Make: Use f_string_dynamic_append_nulless() instead of f_string_dynamic_append().
    - Featureless Make: Featureless Make stand alone build now needs f_file_stream_read instead of f_file_read.
    - Featureless Make: Use f_file_stream_read() instead of f_file_read() after opening as a stream.
    - Featureless Make: Use pre-existing cache rather than using a new variable.
    - Firewall: Add additional sanity checks.
    - Multiple Programs: Change man page year and month from January 2023 to March 2023.
    - Multiple Programs: Add stand alone fss_identify, iki_read, ad iki_write builds.
    - Multiple Programs: Program man pages, adding copyright, fixing help, and adding missing period.
    
  • 0.6.3

    Release: Release - 0.6.3 - Bare
    The Featureless Linux Library stable version 0.6.3 is released.
    
    This release contains breaking changes in the Featureless Make program to address functionality that is missing but should, if not must, be available.
    This primarily adds documentation and fixes a small number of bugs found.
    
    Added the following stand alone programs:
    - fss_status_code
    - status_code
    
    There are now man pages for all of the programs.
    These are manually crafted.
    
    The Featureless Make program has two new features that are important enough to break the "featureless" concept as an exception to the rule.
    
    The Featureless Make program must be able to install settings files and documentation files.
    The documentation directory now exists.
    This is similar to the documents directory but is entirely focused on documentation that is installed onto the system.
    The documents directory might be synonymous with the standard share directory and the documentation directory might be synonymous with the share/man or share/docs directories.
    
    The FLL install scripts is also updated to handle the installation of the settings and documentation files.
    
    The Feeatureless Make program now supports the ability to specify a named section on the command line to be able to reasonably act as an alternative to GNU Make.
    It is now possible to create an "install" section.
    The user could then run "fake install" in a similar manner to how "make install" works.
    The core reserved words are never run in this way.
    These core reserved words are "build", "clean", "make", and "skeleton".
    
    The following are changes since the 0.6.2 stable release.
    
    Security Fixes:
    - Control: Check if 'main' is NULL.
    - Controller: Check if 'main' is NULL.
    
    Features:
    - FLL: Add support for installing documentation to the install.sh script.
    - Featureless Make: Support passing a fakefile Section name to the main program.
    - Featureless Make: Add missing documentation handling functionality to Featureless Make.
    
    Bug Fixes:
    - FLL: Several problems with the wrapping define macros, unused private functions, non-existent functions, and fix dependency.
    - FLL: The f_int_128_t is using incorrect size.
    - FLL: Fix wrapping define macros for several functions across different projects.
    - FLL: The type macros in type.h are missing 'f_' or have spurious '_type' in the name.
    - FLL: Incorrect define macros for private functions in f_file.
    - FLL: Incorrect macro definition _di_pthread_support_ vs _di_thread_support_.
    - FLL: The f_signal unit tests after significant change.
    - FLL: The signal is not properly closing.
    - Featureless Make: Not defaulting to top-level fakefile when data/build/ does not exist.
    - FSS Status Code: Incorrectly string length causes inability to match string in fss_status_code.
    - UTF8: The mode clang is missing from the UTF8 stand alone build settings.
    
    Refactors:
    - None.
    
    Updates:
    - FLL: The disable header files.
    - FLL: Use more proper copyright communication.
    - FLL: Restructure settings now the install.sh is installing them.
    - FLL: Improve logic and design of install.sh script.
    - FLL: Add explicit note about copyrights belonging to Kevin Day and the year 2023.
    - FLL: De-couple the build settings data file from the install.sh script.
    - FLL: Be more thorough in the f_file unit test.
    - FLL: Code documentation is missing the function fl_conversion_dynamic_partial_to_unsigned_detect().
    - FLL: Fix license in documentation.
    - FLL: Clarify wording in specifications.
    - FSS Status Code: Add stand alone fss_status_code build.
    - FSS Status Code: Add man page documentation for fss_status_code.
    - FSS Status Code: should have a fakefile.
    - IKI Read: Add man page documentation for iki_read.
    - IKI Read: Improve IKI Read help documentation.
    - IKI Write: Add man page documentation for iki_write.
    - IKI Write: Improve IKI Write help documentation.
    - Status Code: Add stand alone status_code build.
    - Status Code: Add man page documentation for status_code.
    - UTF8: Add man pages for utf8 program.
    - Multiple Programs: The stand alone programs configuration.
    - Multiple Programs: Documentation and build settings, adding remaining man pages for programs.
    - Multiple Programs: Minor fixes regarding structure and output relating to help.
    - Multiple Programs: Add more detailed documentation to fss_status_code and status_code.
    
  • 0.6.2

    Release: Release - 0.6.2 - Bare
    The Featureless Linux Library stable version 0.6.2 is released.
    
    This release contains several security and bug fixes.
    There are also several improvements to the building and packaging scripts.
    
    Added the following stand alone programs:
    - byte_dump
    - firewall
    
    The bootstrap.sh and package.sh scripts have received some needed improvements.
    The bootstrap.sh script now processes more of the build settings and then also more appropriately processes the additional modes.
    The bootstrap.sh now more properly processes the -s/--settings parameter option.
    The package.sh script is now more versatile, allowing for additional dependencies files and optionally prepending a string to each generated package directory.
    
    Adding the referenced stand alone programs revealed quite a bit of minor mistakes in the macros, defines, and some dependencies.
    Many of these might be considered breaking API changes but fixing these is deemed necessary.
    
    The flagship program is Featureless Make.
    All projects and programs now have a fakefile for building as they should have had.
    
    Problems with the Unicode handling have been identified and fixed.
    The FLL and implementing programs like byte_dump and utf8 should now have more accurate handling of Unicode characters.
    
    The project now contains a generated list of all disable defines for each project under the build/disable directory.
    Use these to construct all the needed disable defines to reduce the amount of unneeded code.
    These are now used when building the stand alone programs.
    
    The documents and specifications have seen some major clean up.
    All of the documents and specifications should now utilize IKI.
    The Time and EpochTime standard written a while back now have formal documents and specifications.
    The Time and EpochTime documents and specifications are now at the top-level directory of the source code.
    
    Documentation explicitly describing the lossy allocation strategy used by this project is now provided.
    
    The following are changes since the 0.6.1 stable release.
    
    Security Fixes:
    - FLL: Invalid access when calling fake without 'make' or 'build'.
    - FLL: Invalid write in FSS functions and ensure a reset used length on error.
    
    Features:
    - FLL: Add support for additional dependencies and settings files in level_3 (in the package.sh script).
    - FLL: Add support for a prepending a prefix to build directory names (in the package.sh script).
    - Featureless Make: Add 'import' Object to fakefile and settings specifications (Support is not implemented in 0.6.x).
    
    Bug Fixes:
    - FLL: Incomplete UTF-8 zero-width detection, particularly for combining characters.
    - FLL: Add missing f_type_array dependency.
    - FLL: The level_0 console should use private functions.
    - FLL: The fss_payload_write should not allow "payload" to be something other than last when specified.
    - FLL: Incorrect ifndef defines for some functions and structures.
    - FLL: Add missing ifdefs for f_file_stat() and f_file_stat_at().
    - FLL: The private is_zero_width function is also needed by the is_graph functions.
    - FLL: The f_environment_max_length should be f_environment_max_length_d.
    - FLL: Some of the level checking defines have an "s" that should not be there.
    - FLL: _di_string_ascii_s_ is missing the _f.
    - FLL: The bootstrap script needs to treat -s/--settings as a possible path.
    - FLL: The bootstrap script needs to support settings-specific built files.
    - FLL: FSS write functions should use 'quote' when passed rather than f_fss_delimit_quote_single_s.
    - FLL: _GNU_SOURCE should be wrapped in an ifndef.
    - FLL: The "-mode" functionality is incomplete and incorrect in the bootstrap.sh script.
    - Byte Dump: Incorrect spacing when combining --unicode with other digit displays.
    - Byte Dump: Invalid print of character when a placeholder should be printed in byte_dump.
    - Featureless Make: The IKI variables that expand reserved words should expand into multiple parameters.
    - Firewall: Add missing dependencies and remove incorrect library from firewall program.
    - FSS Payload Write: The first character never gets printed for payload Content.
    - Multiple Programs: The type_array is probably a dependency for most of these.
    - Multiple Programs: Imprecise desciption for --partial.
    
    Refactors:
    - None.
    
    Updates:
    - FLL: All projects should have fakefiles.
    - FLL: Fix and improve FSS unit test regarding zero-width.
    - FLL: FSS and IKI specifications now support backticks for quoting similar to single and double quotes (Support is not implemented in 0.6.x).
    - FLL: Add pre-built define files for stand alone use.
    - FLL: Wrap the conversion digits defines in _di_f_conversion_digits_d_.
    - FLL: The ifndef wrappers should end in _t_ to represent it wrapping a type.
    - FLL: The fake stand alone build defines.
    - FLL: The disable defines files need to be updated when defines change.
    - FLL: Remove unused "test" mode and add "clang" mode to stand alone builds.
    - FLL: Style guide documentation.
    - FLL: The status code wrapping defines should end in _e.
    - FLL: The _di_compiler_attributes_ should e _di_compiler_attributes_d_.
    - FLL: The status code wrapping global constant string wrapping defines should end in _s.
    - FLL: The define _di_f_array_t_ should be _di_f_array_length_t_.
    - FLL: Add mising _d in wrapping defines.
    - FLL: Add more notes to 'disable' about.txt documentation.
    - FLL: Add not implemented clarifications for 0.6.x versions.
    - FLL: Add fakefile for the FLL monolithic and level builds.
    - FLL: Out of date build documentation.
    - FLL: Add lossy allocation documentation.
    - FLL: Build and other documentation, fixing or adding IKI support.
    - FLL: Add formal specification for Time and EpochTime and use IKI in the files.
    - FLL: Documentation and specifications (All of the documentation and specifications should now be IKI based).
    - Featureless Make: The stand alone fake config.h file.
    - Featureless Make: Improve some of the Featureless Make documentation and specifications.
    - Featureless Make: Slight changes to design around the build settings arguments.
    - Firewall: Add stand alone firewall build.
    
  • 0.6.1

    Release: Release - 0.6.1 - Bare
    The Featureless Linux Library stable version 0.6.1 is released.
    
    This is the first micro release of the Featureless Linux Library.
    
    Most of the fixes and improvements are centered around the build and test systems.
    This release should be more portable and testable.
    
    The BASH alternative ZSH is now supported for the following scripts:
    - bootstrap-example.sh
    - bootstrap.sh
    - package.sh
    - install.sh
    - test.sh
    
    In order to run these scripts under ZSH, one must defined the SHELL_ENGINE environment variable with the value "zsh".
    Compatibility of ZSH is not well tested and there may be bugs.
    
    Changes in the iki_read program involving the "--substitute" and the "--wrap" parameters.
    The "--substitute" should support "--wrap" and the lack of this is being considered a bug.
    The idea of having a "--substitute" that ignores "--wrap" is preserved using the new parameter "--reassign".
    
    The Featureless Linux Library is a library that is intended to be used like nuts and bolts.
    Given the license and the code, just take apart anything as desired.
    To prove this out a new package build mode called "stand_alone" is available.
    What this does is build with the minimal dependencies.
    There is no reason to use code that is not being used.
    This "stand_alone" makes it easier to get smaller binaries with fewer dependencies.
    Only the following programs have "stand_alone" functionality defined (see files under "build/stand_alone/").
    - fake
    - utf8
    
    Unicode 15.0.0 is now supported.
    Much of the previous work randomly switch from 12.1 into 14.0.
    There is a strong probability of missing functionality and mistakes so be advised.
    
    The following are changes since the 0.6.0 stable release.
    
    Security Fixes:
    - None.
    
    Features:
    - FLL: Add support for 'stand_alone' builds in the package script.
    - FLL: Add support for ZSH in addition to BASH.
    - IKI Read: The iki_read should still support the older "--substitute" behavior.
    
    Bug Fixes:
    - FLL: Mistakes in disable macros and remove redundant check.
    - FLL: Functions private_f_file_flush() and private_f_print_safely_get() are not being included when needed.
    - FLL: The fll_program_standard_signal_received() needs a private implementation.
    - FLL: private_f_memory_structure_resize() is not returning the error status codes.
    - Featureless Make: Content is incorrectly attempted to be processed even though it does not exist.
    - Featureless Make: Featureless Make dependencies are not accurately communicated.
    - IKI Read: The iki_read should apply the "--wrap" when using "--substitute".
    - FSS Read Programs: Two 0's are printed when "--total" is used and there are no matching Objects.
    
    Refactors:
    - None.
    
    Updates:
    - FLL: Enable gitlab test support.
    - FLL: Always ensure content size is 0 when content is not found.
    - FLL: Change logic to avoid potential negative numbers.
    - FLL: Use resize functions rather than adjust functions for append and append_all functions.
    - FLL: Add medium logos.
    - FLL: f_memory_structure_increase_by() shouldn't do anything if amount is 0.
    - FLL: Cygwin documentation.
    - FLL: Support Unicode 15.0.
    - FLL: Slight improvement in UTF unassigned detection and add or correct some ranges.
    - Featureless Make: Redesign behavior of pipe, allowing it to run properly inside software like Gitlabs CI or Githubs CI.
    - Featureless Make: Implement stand alone build for Featureless Make.
    - Featureless Make: Describe modes being used when performing build or make.
    - Featureless Make: Stand alone Featureless Make custom config.h header.
    - Utf8: The utf8 program should be using the stream read functions.
    - Utf8: Implement stand alone build for UTF8 program.
    
  • 0.6.0

    Release: Release - 0.6.0 - Bare
    The Featureless Linux Library stable version 0.6.0 is released.
    
    Several new programs are introduced since the 0.4.0 stable release series:
      - control
      - controller
      - fss_embedded_list_read
      - fss_embedded_list_write
      - fss_extended_list_write
      - fss_identify
      - fss_payload_read
      - fss_payload_write
      - iki_write
      - utf8
    
    Most notable of these programs are the controller program and the utf8 program.
    
    The controller program is a re-interpretation of the Featureless Make program written in a more generalized fashion that is focused on performing a set of tasks. This is very similar to a system initialize program such as sysvinit. Support for running as a system initialize replacement is partially complete. There is currently no way to send messages to the controller program to start and stop anything. The control program, which is used to communicate to the controller program is also incomplete. The next FLL development verrsion, the 0.7.0 series, will heavily focused on network protocols.
    
    The utf8 program is a handy tool to convert from UTF-8 characters to their Unicode value or vice-versa. This can convert entire files.
    
    Featureless Make has some major changes. The fake program now accepts piped data, which must be a valid fakefile. There are new Objects available for the build settings and the fakefile.
    
    The default behavior of Featureless Make is now more similar to the GNU make program. When running fake with no parameters, it will first search for a fakefile in the current directory before checking for one at data/build/fakefile. This is analogous to how running make with no parameters will search for a Makefile in the current directory.
    
    One major change is the complete rewrite of the printing functionality. The new design is heavily focused around formatted printing, similar to the printf() family of functions. Unlike the standard printf() family of functions, the new formatted printing understands the FLL special structures such as dynamic strings. The new formatted printing is UTF-8 aware and can handle printing raw strings, printing safe strings, and printing NULL characters. A safe string is a string where control codes or invalid Unicode sequences are replaced with place holders.
    
    That standard console options have changed. All output changing parameters have had their short parameter argument made upper case. For example, +q is now +Q.
    
    A new +E/++error parameter is introduced. This new parameter acts almost identical to +Q/++Quiet. The difference is that error messages are still printed.
    
    The documentation may be found with the source code. Much of this website has been updated to also provide most of this documentation as well. The API is currently only available in the source code via the header files.
    
    A major improvement of this release is safer and more stable code. This is thanks to a massive amount of time and effort spent into writing unit tests. The unit tests process is performed using the Featureless Make program. In addition to the unit tests, the static analyzer from GCC has been used to better identify and resolve problems.
    
    The following are changes since the 0.5.10 development release.
    
    Security Fixes:
      - FLL: Environment value has invalid read in f_environment_set().
      - FLL: Invalid read for formatted printing using partial ranges on a string.
      - FLL: Invalid reads on NULL terminated strings with a max width greater than 1.
      - FLL: Add support for +E/++error and change '+q' to '+Q'.
      - Featureless Make: Invalid read when using -s/--settings.
      - Featureless Make: Invalid read when processing not condition minimum value.
      - Featureless Make: Invalid read when processing an empty fakefile.
    
    Features:
      - FLL: Add missing function f_environment_get_all().
      - FLL: Add missing signal functions f_signal_action(), f_signal_pause(), and f_signal_suspend().
      - Controller: Expose the "define" and "parameter" at the Entry and Exit level.
      - Featureless Make: Now supports a piped fakefile.
      - Featureless Make: Now supports the "write" operation.
      - Featureless Make: Now supports to the "print" operation for escape sequences just like the "write" operation has.
      - Featureless Make: Now supports the "top" parameter.
      - Featureless Make: Now supports the "current" parameter.
      - Featureless Make: Improve user experience by defaulting specified fakefile and build settings file to present working directory.
    
    Bug Fixes:
      - FLL: IKI variables are incorrectly being processed when there is a non-IKI IKI-like string.
      - FLL: Single quotes are not being properly detected in FSS Extended Read functions.
      - FLL: private_f_file_open_at() has an incomplete set if ifdef conditions.
      - Byte Dump: Parameter after either the -N or -W is being processed when it should not be.
      - Controller: Incorrect information is printed on certain errors.
      - Controller: Delimits are not being applied for IKI variables.
      - Controller: "State is now ..." should not be printed when quiet is passed.
      - Controller: Guarantee that the child processes are terminated.
      - Controller: IKI substitution is incorrectly applied.
      - Featureless Make: Condition blocks are still being processed when they should be skipped.
      - Featureless Make: Empty strings improperly pass validation checks.
      - Featureless Make: IKI variable substitution results in incorrect parameter structure.
      - Featureless Make: Error verbosity is not being preserved.
      - Featureless Make: Text is being incorrectly stripped out.
      - Featureless Make: The copy operation doesn't work properly with trailing slashes.
      - Featureless Make: Copy should destination should be the base name rather than the entire path.
      - Featureless Make: Link operation is incorrect, support new link arguments, and clone, copy, and move operations failure problems.
      - Featureless Make: Block is incorrectly being reset when an else condition precedes an if condition.
    
    Refactors:
      - Controller: Use "settings" instead of "setting" for better consistency between fake program and controller program.
      - Featureless Make: Rename "script" to "engine" to avoid possible confusion with the different uses of "script".
      - Featureless Make: "if defined parameter" and similar are simplified into something more like "if define" and "if parameter".
      - Featureless Make: Rename "exists" to "exist".
    
    Updates:
      - FLL: Change execute error code handling to better accommodate standard GNU Bash return codes.
      - FLL: Further reduce memory allocation pressure by increasing default small allocation.
      - FLL: Restrict environment to PATH and LD_LIBRARY_PATH by default in all FLL build settings files.
      - FLL: The standard program setup should explicitly unblock all signals other than the default
      - FLL: Clarify IKI standard in regards to delimits and improve specification file.
      - FLL: Improve specification files.
      - FLL: The f_color needs to follow latest practices with private functions.
      - Controller: Change default controller settings path to './'.
      - Controller: Strip out NULL characters after applying delimits.
      - Controller: Timeout changes.
      - Featureless Make: Make environment variable handling design consistent between fake and controller programs.
      - Featureless Make: Ensure first if block is initialized to operate.
      - Featureless Make: Replace Unicode Terminate escape sequence with Non-printing escape sequence.
      - Featureless Make: Reduce number of allocations by pre-determining size when easily possible.
      - Featureless Make: Organize the validate operation into separate type functions and improve error handling logic.
      - Featureless Make: The example bzip2 now supports running the tests.