# Synth 1.20 has been released (fixes regressions, enhancements)



## marino (Mar 8, 2016)

People need to move to v1.20 as soon as they can.  The `synth install` command regression is pretty signficant.  This was supposed to be a pure enhancement release, but several bugs were found, including multiple issues with the `synth purge-distfiles` command that could result in the entire distfiles directory in getting wiped out.  So upgrade!  (sorry)


```
ports-mgmt/synth: Upgrade version 1.11 => 1.20

This was meant to be a pure enhancement release to support the signing
of the repository, but there were some regressions brought in with
version 1.1x and also some long standing bugs found.

Fixed:
 * Regression: Interactive test mode
   Changing the TERM setting to "dumb" semi-broke the interactive shell
   when ENTERAFTER is used with the test command.  The fix was to set
   TERM back to cons25 in this particular case.
 * Regression (serious): install command
   The improvement in speed of package validation for the rebuilding of
   the repository resulted in a new bug that caused the "synth install"
   command to install every port in the repository.  It was caused by
   reusing a container that I thought was available, but it turns out
   that the "install" command still needed it.
 * Bug: handle exception that occurred when Synth asked a question
   when no TTY was attached.  Running a command like "force" would result
   in a question, and if Synth was running in a cron job or having args
   piped to it via xargs, no terminal would be available and Synth would
   throw an exception.  Now in this case, Synth just assumes answer to
   question is "No" and ends gracefully.
 * Bug: purge-distfiles command would delete everything if any error was
   encountered.  It should have just stopped, which it does now.
 * Bug: purge-distfiles container had a bug which prevented all the
   distfiles from being stored, which caused removal of good distfiles.
 * Bug: purge-distfiles container didn't check for duplicates, resulting
   in unhandled exceptions.  Now fixed, purge-distfiles command works now.
```


```
enhancements:
 * Show version information on status commands.  On the display, a symbol
   of "N" (New), "R" (result), or "U" (upgrade) shows next to each line.
   Additionaly for "U", the old version and new version are shown.  The
   same information is shown in the log, but in addition the actual
   version for "N" and "R" categories is also listed.
 * Test mode: Add filters from poudriere to prevent false test failures
   with leftover and modified files.  Mostly it involves files that get
   modified, but it's okay so the MD5 check failures need ignoring
 * Support signing repository with local RSA keys.  Adjust man page with
   two new FILES (public key and private key) along with an example on
   how to generate those files.
 * Support signing repository with external signing command and
   fingerprints.  Adjust man page with two more new FILES and an example
   of how configure this feature.
```


----------



## marino (Mar 8, 2016)

```
ports-mgmt/synth: Upgrade version 1.20 => 1.21

I knew the repository signing enhancements weren't fully tested, but it
was important to get the regressions fixed.  I thought that if there were
any problems with the signing, people not using those features (e.g. 99%
of users) would not be affected.  Unfortunately, that's not true.

Due to a simple boolean logic error, an inaccurate and harmless warning
about not finding the signature fingerprint will show every time the
repository is rebuild.  This minor releases fixes that logic.
```


----------

