Program Development

This category gathers projects related to program and web-page development.

To facilitate navigating in this list, projects are categorized by their purpose, authorship, and current state. Each project entry lists the categories it pertains to. Clicking on a category name will bring a listing of all projects in that category.

Additionally, a list of related projects is provided where applicable. Each element in that list is a link to the corresponding project entry.

Clicking on a project's name will bring this project's entry as a separate page (a permalink).

Hovering your mouse over the version information of a project shows the list of changes introduced by that version.

Sort controls below allow you to order the list either lexicographically or by the most recent release date, in both directions.

Using the Search control, you can select projects by name. Shell-style globbing patterns (wildcards) are accepted.

(Return to the project listing)

Apache::Config::Preproc

Version: 1.07  —  2021-02-12
* Change bugtracker address.
	  
Category:
Description:

This Perl module reads and parses Apache configuration file, expanding constructs like Include, IncludeOptional, IfModule, IfDefine, Use, etc.

Related projects:

Apache::Defaults

Version: 1.03  —  2021-02-12
	- Change bugtracker address.
	  
Category:
Description:

This Perl module provides a mechanism for detecting version, default settings, and the preloaded modules of the Apache httpd server. It does so by locating the server binary, invoking it with appropriate options and analyzing the output it produces.

Config::AST

Version: 1.07  —  Fri Feb 12 20:31:53 2021
	- Change bugtracker address.
	  
Category:
Description:

This perl module aims to provide a generalized implementation of parse tree for various configuration files. It does not implement parser for any existing configuration file format. Instead, it provides an API that can be used by parser implementors to build internal representation for the particular configuration file format.

Config::HAProxy

Version: 1.08  —  Thu Jun 23 15:21:17 2022
	- Handle the 'resolvers' section.
	- New class methods for declaring (and undeclaring) sections.
	- Fix changing the argv of a Node.
	  
Category:
Description:

A perl module supplying a parser that converts the HAProxy configuration file to a parse tree and provides methods for various operations on this tree, such as: searching, modifying and saving it to a file. This module is deprecated in favor of Config::Proxy, which is fully compatible with it and provides a generalized API for editing configuration files of HAProxy and Pound.

Config::Parser

Version: 1.05  —  Fri Feb 12 20:42:10 2021
	- Change bugtracker address.
	  
Category:
Description:

Config::Parser provides a framework for writing configuration file parsers. It is an intermediate layer between the abstract syntax tree (Config::AST) and implementation of a parser for a particular configuration file format. The package provides also Config::Parser::Ini – a configuration file parser for ini-style files.

Config::Parser::ldap

Version: 1.02  —  Sat Feb 13 08:35:45 2021
	- Change bugtracker address
	  
Category:
Description:

A Perl module for parsing the ldap.conf configuration file.

Related projects:

Config::Proxy

(Not released)
Category:
Description:

This Perl extension provides a parser for Pound and HAProxy proxy servers. A set of methods is provided that allow you to modify the configuration or even build it from scratch.

File::BackupCopy

Version: 1.02  —  2021-02-13
	- Change bugtracker address.
	  
Category:
Description:

Perl extension for creating backup file copies. Three backup naming schemes are supported: simple backup creates backup file name by appending single tilde character to the original file name, numbered backup creates backup name by suffixing the original file name with .~N~, where N is a decimal number. Finally, automatic backup selects numbered scheme if at least one numbered backup file already exists and falls back to the simple backup otherwise.

List::Regexp

Version: 1.05  —  2024-09-23
* Bugfix: escape single characters not occurring within a class.
	  
Category:
Description:

Perl module that, given a list of strings, produces a regular expression that matches any of the input strings

Mojo::Log::Syslog

Version: 1.03  —  2021-02-13
	- Change bugtracker address.
	  
Category:
Description:

Syslog logging for Mojo applications

POSIX::Run::Capture

Version: 1.05  —  Fri Mar 15 13:47:40 2024
	- New constructor argument 'env' allows you to supply environment
	to the command to be run.
	- Fix packaging
	  
Category:
Description:

A Perl module for running external commands and capturing their output. It prefers performance and effectiveness over portability. As its name suggests, it can be used only on POSIX systems.

Related projects:

aspell-gcide

Version: 0.2  —  2024-06-30
* New options gcide-include-tags and gcide-exclude-tags

These options control which tags will be eligible for spell-checking.
	  
Category:
Description:

A filter for spell-checking GCIDE dictionary files with GNU Aspell.

Related projects:

cflow

Version: 1.7  —  2021-12-30
* Multiple start functions are allowed

The '--main' option can be given multiple times.  A separate graph
will be drawn for each function given as its argument.

* New option --target=FUNCTION

If this option is given, the produced graph will contain only paths
leading from start function (or functions) to the given FUNCTION.

Multiple '--target' options are allowed.

* New output format: dot

The '-f dot' (or '--format=dot') option instructs cflow to output
graph as a description in DOT language, suitable as input to graphviz
programs.

* cflow-mode: new commands for navigating in the graph:

  c   go to the calling function
  n   go to the next function at the same nesting level
  p   go to the previous function at the same nesting level

* Bugfixes:

** CVE-2019-16165
** CVE-2019-16166
** Fix parsing of K&R style function declarations
** Improve parsing of typecasts
** Fix recursive call detection
	  
Category:
Description:

This tool analyzes a collection of C source files and prints a graph charting control flow within the program.

Related projects:

extrans

(Not released)
Category:
Description:

This is a modified versions of Romuald Texier’s eXtrans. It was used as the underlying mechanism for Ellinika and Runasimi at early stages of their development, before switching to xmltools.

gamma

(Not released)
Category:
Description:

GAMMA stands for a Guile Archive of Multiple Modules with an A just for the ‘A’ of it. It contains a set of useful Guile modules. In particular, it is used by runasimi.org and ellinika.gnu.org.ua.

Related projects:

gdbm

Version: 1.24  —  2024-07-02
* New gdbm_load option: --update

The --update (-U) option instructs gdbm_load to update an existing
database.

* Fix semantics of gdbm_load -r

The --replace (-r) is valid only when used together with --update.

* Use getline in gdbmtool shell.

* New function: gdbm_load_from_file_ext

In contrast to gdbm_load and gdbm_load_from_file, which derive
the value of the flag parameter for gdbm_open from the value
of their "replace" argument, this function allows the caller to
specify it explicitly.  The prototype is:

  int gdbm_load_from_file_ext (GDBM_FILE *pdbf, FILE *fp,
			       int flags, int replace,
			       int meta_mask,
			       unsigned long *line);

* Bugfixes

** Fix binary dump format for key and/or data of zero size.
   (see https://puszcza.gnu.org.ua/bugs/?565)
** Fix location tracking and recover command in gdbtool.
   (see https://puszcza.gnu.org.ua/bugs/?566)
** Fix possible buffer underflow in gdbmload.
** Ensure any padding bytes in avail_elem structure are filled with 0.
   (fixes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1031276)
** Improve the documentation.
	  
Category:
Description:

GNU dbm is a library of database functions that use extendible hashing and works similar to the standard UNIX dbm functions. These routines are provided to a programmer needing to create and manipulate a hashed database.

Related projects:

gint

(Not released)
Category:
Description:

GINT provides a framework for easy integration of Guile into arbitrary software projects. It includes Autoconf macros for detecting the presence of Guile on the system, detecting its version number and location of its components, a set of Makefile and Automake rules for snarfing C sources, i.e. generating auxiliary files (.x files, containing symbol information for Guile interpreter, and .doc files, containing information about Guile primitives, their arguments and docstrings), and a C lexer program for extracting docstrings from a C file.

Related projects:

gitaclhook

(Not released)
Category:
Description:

Access control lists for git.

gnulib

(Not released)
Category:
Description:

Gnulib is a central location for common GNU code, which is shared among many GNU (and non-GNU) packages.

grecs

(Not released)
Category:
Description:

Grecs is a library for parsing structured configuration files from C programs. A structured configuration file has hierarchical structure, with block statements enclosing lower-level statements. Such configurations files are used by many programs, such as, e.g. Bind or Dico.

Related projects:

imprimatur

(Not released)
Category:
Description:

Imprimatur provides Texinfo macros for various editing tasks such as adding editor notes and annotations, as well as Makeinfo rules for verifying Texinfo document structure, format, and (to a certain extent) content coverage.

Related projects:

mix

Version: 2.0  —  2007-09-23
* Licensed under GPLv3 or later.

* mixal

** Location of listing file

By default, mixal creates listing file in the current working directory.

* mixsim

** The .mixsim file
When started in terminal mode, the utility searches for file `.mixsim'
in the current working directory and reads it, if present. The file
may contain any mixsim commands.

** The set of terminal commands is improved to make it compatible with GDB.

** New command, PASSCOUNT
Set the number of crossings after whcih to clear the breakpoint.

** Removed optional second argument to BREAK.
The functionality of `BREAK <ADDR> <COUNT>' is now obtained by two
commands:

BREAK <ADDR>
PASSCOUNT <N> <COUNT>

** New command DELETE.
An alias to CLEAR.

** New command IGNORE
Sets the number of hits to ignore before enabling the breakpoint.

** New commands ENABLE and DISABLE
Enable or disable the breakpoint with the given number.

** New command RUN
It is an alias for GO.

** New command SOURCE
Execute a file of mixsim commands.

** New command ADDRESS.
This command takes as its argument a breakpoint manipulation command
(DELETE, IGNORE, ENABLE, DISABLE, PASSCOUNT) with arguments
appropriate for the associated command.  However, the first argument
of the corresponding command is treated as MIX address, instead of a
breakpoint number.

** New command INFO.
An alias to LIST.

** New command SHELL.
Executes a subordinate shell or a shell command. Abbreviated to !.

** NEXT and STEP take optional argument.
The argument, if given, specifies number of instructions to
execute. Default is 1.

** INFO BREAK takes an optional argument specifying breakpoint number to list.
If prefixed with ADDRESS, it treats the argument as a MIX location and
lists all breakpoints set on that location.
	  
Category:
Description:

MIX is a set of tools for assembling, running and debugging programs, written in MIXAL, an assembly language for an imaginary computer, MIX, used in The Art of Computer Programming of D. Knuth.

mockmta

Version: 1.0
Category:
Description:

A simplistic implementation of the SMTP mail transport agent, designed for testing purposes. It behaves almost identically to any real MTA, except that it listens on localhost only and delivers all messages to the given UNIX mailbox file.

Related projects:

podiff

Version: 1.4  —  2022-10-20
* Fix https://puszcza.gnu.org.ua/bugs/?562
	  
Category:
Description:

This tool finds differences in translatable strings and translations between two PO files or between two revisions of the same file. It ignores any differences in comments, entry ordering and spacing.

releaselogparser

Version: 1.0.2  —  2018-11-05
Convert byte-like objects to UTF-8 strings.
	  
Category:
Description:

Software packages usually include textual files describing noteworthy changes in each subsequent release. There exist several formats of such files. This package provides Python framework for parsing the most often used formats of such release log files. Support for any new format can be easily added.

runcap

(Not released)
Category:
Description:

A C module providing an API for running external command and capturing its output.

The function runcap runs an external command and waits for its termination, capturing its stdout and/or stderr and optionally piping the supplied data to its stdin.

Related projects:

slackdesc

(Not released)
Category:
Description:

Formats a slack-desc file for Slackware package.

Related projects:

texinfo

Version: 7.1.1  —  7 September 2024
This is a bug-fix release with minimal changes.

* texi2any
  . fix potential crash when @include is used inside a table
  . do not complain about presence of @anchor inside @item in a table
  . C source files that are generated from *.xs files are no no longer
    distributed, so xsubpp from Perl is needed to build XS modules.
  . fix bug that led to memory alignment error on SPARC
  . performance improvement and fixes for MinGW
  . test failures due to floating point rounding error fixed (observed
    on IBM POWER9 processor)

* info
  . crash when setting style to invalid value fixed
  . potential call of memcpy with null argument fixed
	  
Category:
Description:

Texinfo is the official documentation format of the GNU project. It uses a single source file to produce output in a number of formats, both online and printed (dvi, html, info, pdf, xml, etc.).

Related projects:

tpnotify

Version: 1.04  —  2021-08-09
	- Fix operation without -d option
	  
Category:
Description:

Notifies the Translation Project about new POT files

webtools

(Not released)
Category:
Description:

A collection of various web-related programs, mostly proof-of-concept ones.

wikitrans

Version: 1.4  —  2024-07-07
Drop python 2 support
	  
Category:
Description:

Provides Python framework for translating WikiMedia articles to various formats. The present version supports conversions to plain text, HTML, and Texinfo. A command line translator utility is included.

Related projects:

wit

(Not released)
Category:
Description:

A wiki translator, a package that supplies Python classes for translating Wiki Markup into another kind of markup, such as, e.g. plain text and HTML. It has been superseded by wikitrans.

Related projects:

xenv

Version: 4.1  —  2023-02-23
* Diagnostic directives: $$warning and $$error

The $$warning directive emits warning message.  It does not alter exit
status in any way.

The $$error directive reports a fatal error and sets exit status to
65 (or any other, if supplied as argument).

After both directives, processing is resumed at the next line.

* $$exit

New directive $$exit causes immediate termination of the program.
Decimal exit code may be supplied as argument.

* New directive: $$eval

The text between $$eval and $$end is expanded and the resulting
expansion is scanned again, producing the actual output.  This makes
it possible to create variable names on the fly and obtain their values.
Useful in loops, e.g.:

  $$loop I 0 1 2 3 4 5 6 7
  $$  eval
  \$\$ ifset VAR_$I
  Expand \$VAR_$I;
  \$\$ endif
  $$ end
  $$end

* Bugfixes

** Fix closing the $$range loop.
	  
Category:
Description:

Xenv is a text preprocessor. It reads input from files (or the standard input, if none are supplied) and prints it on the standard output, replacing references to environment variables with their actual values. Variables are referenced using POSIX-compatible shell syntax: $NAME, ${NAME}, ${NAME:-word}, ${NAME+=word}, ${NAME:=word}, ${NAME:?word}. A special ternary construct is provided: ${NAME:|word1|word2}, which substitutes the expansion of word1 if NAME is set and the expansion of word2 otherwise. Preprocessor directives provide support for inclusion of external files, conditional text expansion (depending on the value of an environment variable or exit code of an external command), diversions, for and foreach loops etc.

xmltools

(Not released)
Category:
Description:

A set of Guile primitives for parsing and processing XML files.

Related projects: