• 1
  • 2
  • 3
ConEmu

  • 1
  • 2
  • 3

Some Checks Have Failed or Are Not Yet Complete

Not All Tests Have Passed


Validation Testing Passed


Verification Testing Failed

Details

Scan Testing Unknown

This package was rejected on 28 May 2021. The reviewer chocolatey-ops has listed the following reason(s):

Maximus5 (maintainer) on 23 Apr 2021 06:42:53 +00:00:

User 'Maximus5' (maintainer) submitted package.

chocolatey-ops (reviewer) on 23 Apr 2021 07:14:49 +00:00:

ConEmu has passed automated validation. It may have or may still fail other checks like testing (verification).
NOTE: No required changes that the validator checks have been flagged! It is appreciated if you fix other items, but only Requirements will hold up a package version from approval. A human review could still turn up issues a computer may not easily find.

Guidelines

Guidelines are strong suggestions that improve the quality of a package version. These are considered something to fix for next time to increase the quality of the package. Over time Guidelines can become Requirements. A package version can be approved without addressing Guideline comments but will reduce the quality of the package.

  • The nuspec has been enhanced to allow packageSourceUrl, pointing to the url where the package source resides. This is a strong guideline because it simplifies collaboration. Please add it to the nuspec. More...
  • Title (title) matches id exactly. Please consider using something slightly more descriptive for the title in the nuspec. More...
Notes

Notes typically flag things for both you and the reviewer to go over. Sometimes this is the use of things that may or may not be necessary given the constraints of what you are trying to do and/or are harder for automation to flag for other reasons. Items found in Notes might be Requirements depending on the context. A package version can be approved without addressing Note comments.

  • The package maintainer field (owners) matches the software author field (authors) in the nuspec. The reviewer will ensure that the package maintainer is also the software author. More...
  • Package automation scripts make use of msiexec. The reviewer will ensure there is a valid reason the package has not used the built-in helpers. More...

chocolatey-ops (reviewer) on 23 Apr 2021 07:30:22 +00:00:

ConEmu has failed automated testing.
This is not the only check that is performed so check the package page to ensure a 'Ready' status.
Please visit https://gist.github.com/5bba9c9c5a0afc90050a086fa1d92cee for details.
The package status will be changed and will be waiting on your next actions.

  • NEW! We have a test environment for you to replicate the testing we do. This can be used at any time to test packages! See https://github.com/chocolatey-community/chocolatey-test-environment
  • Please log in and leave a review comment if you have questions and/or comments.
  • If you see the verifier needs to rerun testing against the package without resubmitting (a issue in the test results), you can do that on the package page in the review section.
  • If the verifier is incompatible with the package, please log in and leave a review comment if the package needs to bypass testing (e.g. package installs specific drivers).
  • Automated testing can also fail when a package is not completely silent or has pop ups (AutoHotKey can assist - a great example is the VeraCrypt package).
  • A package that cannot be made completely unattended should have the notSilent tag. Note that this must be approved by moderators.

chocolatey-ops (reviewer) on 13 May 2021 07:15:27 +00:00:

We've found ConEmu v21.4.22.0 in a submitted status and waiting for your next actions. It has had no updates for 20 or more days since a reviewer has asked for corrections. Please note that if there is no response or fix of the package within 15 days of this message, this package version will automatically be closed (rejected) due to being stale.

Take action:

  • Log in to the site and respond to the review comments.
  • Resubmit fixes for this version.
  • If the package version is failing automated checks, you can self-reject the package.

If your package is failing automated testing, you can use the chocolatey test environment to manually run the verification and determine what may need to be fixed.

Note: We don't like to see packages automatically rejected. It doesn't mean that we don't value your contributions, just that we can not continue to hold packages versions in a waiting status that have possibly been abandoned. If you don't believe you will be able to fix up this version of the package within 15 days, we strongly urge you to log in to the site and respond to the review comments until you are able to.

chocolatey-ops (reviewer) on 28 May 2021 07:19:20 +00:00:

Unfortunately there has not been progress to move ConEmu v21.4.22.0 towards an approved status within 15 days after the last review message, so we need to close (reject) the package version at this time. If you want to pick this version up and move it towards approval in the future, use the contact site admins link on the package page and we can move it back into a submitted status so you can submit updates.

Status Change - Changed status of package from 'submitted' to 'rejected'.

Description

ConEmu-Maximus5 (short for Console Emulator) is a handy and full featured Windows console window (local terminal) with a lot of enhancements: panes, tabs, tasks, jump lists, quake style, handy text and block selection, handy paste of paths in either Unix or Windows notation, and much more.

ConEmu may work as either standalone window, or embeddable console control. And it may host two types of applications:

  • ‘console’: cmd, powershell, Far Manager, bash, and many others;
  • ‘graphical’ (GUI): Notepad, PuTTY, GVim, mintty and so on.

Short list of features:

  • predefined and user-defined tasks for different shells;
  • user friendly text and block selection and paste;
  • smooth and friendly window resizing;
  • Windows 7 Jump Lists and Progress on Taskbar buttons;
  • DosBox integration: run old DOS applications (games) in modern OS;
  • quake-style and full screen window modes;
  • ANSI sequences and Xterm 256 colors;
  • cursor: standard console (horizontal) or GUI (vertical);
  • customizable starting tabs;
  • Far Manager integration: drag-n-drop, tabs, truecolor, thumbnails;
  • unicode and CJK support;
  • explore much more features on the project site.

tools\chocolateyInstall.ps1
$package = 'ConEmu'
$version = '21.04.22'
$sha256 = '6FFFAA6653724C4662AB9A05E4086D84CD60557A0661D05AF91630385F71A37E'

$isSytem32Bit = (($Env:PROCESSOR_ARCHITECTURE -eq 'x86') -and `
  ($Env:PROCESSOR_ARCHITEW6432 -eq $null))

$os = if ($isSytem32Bit) { "x86" } else { "x64" }

$url = "https://github.com/Maximus5/ConEmu/releases/download/v$version/ConEmuSetup.$($version.replace('.','')).exe"

# MSI installer, but packed inside wrapper to select x86 or x64
# version. Therefore, treat it as EXE type.
$params = @{
  PackageName = $package;
  FileType = 'exe';
  SilentArgs = "/p:$os /quiet /norestart";
  Url = $url;
  Url64bit = $url;
  checksum      = $sha256
  checksumType  = 'sha256'
  checksum64    = $sha256
  checksumType64= 'sha256'
}

$script:CE_PID = 0
$script:CE_SRV = 0
$script:CE_WND = 0
$script:CE_DIR = ""

$script:ConEmuC = ""

$script:CE_FILES = @()

function log($s) {
  # Write-Host $s
}

function initWinApi() {
    Add-Type @"
      using System;
      using System.Text;
      using System.Runtime.InteropServices;
      public class ConEmuApi
      {
        [DllImport("user32.dll", SetLastError=true, CharSet=CharSet.Auto)]
        public static extern int IsWindow(IntPtr hwnd);

        [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        static extern bool MoveFileEx(string lpExistingFileName, string lpNewFileName, int dwFlags);

        public static bool MarkFileDelete(string sourcefile)
        {
          return MoveFileEx(sourcefile, null, 4);
        }
      }
"@
}

function isWindowAlive($hwnd) {
  if (("ConEmuApi" -as [type]) -eq $null) {
    initWinApi
  }

  $rc = [ConEmuApi]::IsWindow($hwnd)
  # log "HWND=$hwnd, rc=$rc"
  return ($rc -ne 0)
}

function isProcessAlive($id) {
  if ((Get-Process -Id $id -ErrorAction Ignore) -eq $Null) {
    return $False
  }
  return $True
}

function isConEmu() {
  if (($env:ConEmuDrawHWND -eq $Null) -Or ($env:ConEmuPID -eq $Null) -Or
      ($env:ConEmuServerPID -eq $Null) -Or ($env:ConEmuBaseDir -eq $Null)) {
    return $False
  }

  $id = [convert]::ToInt32($env:ConEmuPID)
  $srv = [convert]::ToInt32($env:ConEmuServerPID)
  $wnd = [convert]::ToInt32($env:ConEmuDrawHWND, 16)

  if (-Not (isProcessAlive $id)) {
    return $False
  }

  if (-Not (isWindowAlive $wnd)) {
    return $False
  }

  if (Test-Path -path (Join-Path $env:ConEmuBaseDir "ConEmuC.exe") -pathtype leaf) {
    $script:ConEmuC = Join-Path $env:ConEmuBaseDir "ConEmuC.exe"
  } elseif (Test-Path -path (Join-Path $env:ConEmuBaseDir "ConEmuC64.exe") -pathtype leaf) {
    $script:ConEmuC = Join-Path $env:ConEmuBaseDir "ConEmuC64.exe"
  } else {
    return $False
  }

  $script:CE_PID = $id
  $script:CE_SRV = $srv
  $script:CE_WND = $wnd
  $script:CE_DIR = $env:ConEmuBaseDir
  return $True
}

function unlockFiles($files) {
  $suffix = Get-Date -format yyMMddHHmmss
  foreach ($fn in $files) {
    $f = @{src_name=$fn; tmp_name=".$fn.$suffix";}
    $f.Add("src", (Join-Path $script:CE_DIR $f.src_name))
    $f.Add("tmp", (Join-Path $script:CE_DIR $f.tmp_name))
    try {
      if (Test-Path -path $f.src -pathtype leaf) {
        Rename-Item -Path $f.src -NewName $f.tmp_name -ErrorAction Stop
        $script:CE_FILES += $f
      }
    } catch {
    }
  }
}

function removeTempFiles() {
  foreach ($f in $script:CE_FILES) {
    try {
      Remove-Item $f.tmp -ErrorAction Stop
    } catch {
      $deleteResult = [ConEmuApi]::MarkFileDelete($f.tmp)
    }
  }
}

function restoreFiles() {
  foreach ($f in $script:CE_FILES) {
    try {
      Rename-Item -Path $f.tmp -NewName $f.src_name -ErrorAction Stop
    } catch {
      log "Failed to restore file: $($f.src_name)"
    }
  }
}

function ConEmuPreUpdate() {
  # Checking
  if (isConEmu) {
    # Note, old ConEmu versions weren't able to detach without confirmation
    log "Detaching from ConEmu"
    $warn_msg = "Please choose <Yes> in the confirmation dialog"
    Write-Host -ForegroundColor Green -NoNewLine $warn_msg
    $macro_rc = & $script:ConEmuC -GuiMacro:$script:CE_PID detach 3
    Write-Host -NoNewLine ("`r".PadRight($warn_msg.length+1)+"`r")

    $wait_delay = 10000
    $wait_ms = 250
    $wait_count = $wait_delay/$wait_ms

    # log "Code=$LASTEXITCODE" # may be always 0 and "OK"
    # Sleep for 10 sec waiting for detach
    $warn_msg = "Waiting for detach"
    Write-Host -ForegroundColor Green -NoNewLine $warn_msg
    for ($i = 0; $i -lt $wait_count; $i++) {
      if (-Not (isWindowAlive $script:CE_WND)) {
        log "Detached successfully"
        break
      }
      # Write-Host -NoNewLine "."
      Sleep -m $wait_ms
    }
    Write-Host -NoNewLine ("`r".PadRight($warn_msg.length+1)+"`r")
    if ($i -eq $wait_count) {
      throw "Detach failed, please try to run update outside of ConEmu"
    }
    

    if (isProcessAlive $script:CE_PID) {
      Sleep -s 1
      if (isProcessAlive $script:CE_PID) {
        $warn_msg = "Requesting ConEmu termination"
        Write-Host -ForegroundColor Green -NoNewLine $warn_msg
        $macro_rc = & $script:ConEmuC -GuiMacro:$script:CE_PID close 2
        for ($i = 0; $i -lt $wait_count; $i++) {
          if (-Not (isProcessAlive $script:CE_PID)) {
            log "Terminated successfully"
            break
          }
          # Write-Host -NoNewLine "."
          Sleep -m $wait_ms
        }
        Write-Host -NoNewLine ("`r".PadRight($warn_msg.length+1)+"`r")
        if ($i -eq $wait_count) {
          throw "ConEmu process still alive, please try to run update outside of ConEmu"
        }
      }
    }

    if (isProcessAlive $script:CE_SRV) {
      log "Terminating console server process PID=$($script:CE_SRV)"
      Stop-Process -Force -Id $script:CE_SRV
    }

    log "Renaming hooks libraries"
    unlockFiles @("ConEmuHk.dll", "ConEmuHk64.dll")

    log "Console is ready to update ConEmu"

  } else {
    $is_conemu = $FALSE
    try {
      & ConEmuC.exe -IsConEmu
      $is_conemu = ($LASTEXITCODE -eq 1)
    } catch {
    }
    if ($is_conemu) {
      throw "Can't detect proper ConEmu environment variables! Please restart console!"
    }

    log "PowerShell was not stared from ConEmu"
  }
}

function ConEmuPostUpdate() {
  if ($script:CE_FILES.Count -ne 0) {
    if (Test-Path -path $script:CE_FILES[0] -pathtype leaf) {
      # On Success
      removeTempFiles
    } else {
      # On Failure
      restoreFiles
    }
  }
  if ($script:CE_PID -ne 0) {
    Write-Host -ForegroundColor Green "Console restart is strongly recommended to gain proper ConEmu environment"
    # Reattach
    $rc = Start-Process -FilePath $script:ConEmuC -ArgumentList @("/ATTACH","/NOCMD") -NoNewWindow
    for ($i = 0; $i -lt 100; $i++) {
      $rc = & $script:ConEmuC -IsConEmu
      if ($LASTEXITCODE -eq 1) { break }
      Sleep -m 100
    }
  }
}

# Unlock ConEmu binaries
ConEmuPreUpdate

# Do installation/update
Install-ChocolateyPackage @params

# Try to restore files if update has failed
ConEmuPostUpdate

# Done
tools\chocolateyUninstall.ps1
$package = 'ConEmu'
$version = '21.04.22'


$isSytem32Bit = (($Env:PROCESSOR_ARCHITECTURE -eq 'x86') -and `
  ($Env:PROCESSOR_ARCHITEW6432 -eq $null))

$os = if ($isSytem32Bit) { "x86" } else { "x64" }

$displayName = "ConEmu $($version.replace('.','')).$os"

$installerRoot = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer'
$productsRoot = "$installerRoot\UserData\S-1-5-18\Products"


# To avoid unexpected PC reboot, prohibit ConEmu uninstall from ConEmu
$is_conemu = $FALSE
try {
  & ConEmuC.exe -IsConEmu
  $is_conemu = ($LASTEXITCODE -eq 1)
} catch {
}
if ($is_conemu) {
  throw "Can't detect proper ConEmu environment variables! Please restart console!"
}


Write-Host "Searching for installed msi-packet..."

# ConEmu packages do not have fixed GUIDs
$pkg = ""
Get-ChildItem $productsRoot |
  % { ($productsRoot + "\" + (Split-Path -Leaf $_.Name) + "\InstallProperties") } |
  ? { ($pkg -eq "") -And (Test-Path $_) } |
  ? { ((Get-ItemProperty $_).DisplayName -eq $displayName) } |
  % {
    $pkg = (Get-ItemProperty $_).LocalPackage
  }
if ($pkg -ne "") {
  # Write-Host "Found at $pkg"
  Write-Host "Uninstalling '$displayName' via 'msiexec /x $pkg'"
  Start-Process -Wait msiexec -ArgumentList @("/x", $pkg, "/qb-!")
}

# Done

No results available for this package. We are building up results for older packages over time so expect to see results. If this is a new package, it should have results within a day or two.

Version Downloads Last Updated Status
ConEmu 21.3.14.0 13586 Monday, March 15, 2021 Approved
ConEmu 21.3.12.0 1331 Friday, March 12, 2021 Approved
ConEmu 21.3.4.0 4091 Thursday, March 4, 2021 Approved
ConEmu 21.2.6.0 6923 Sunday, February 7, 2021 Approved
ConEmu 21.2.2.0 2452 Tuesday, February 2, 2021 Approved
ConEmu 21.1.28.0 2809 Thursday, January 28, 2021 Approved
ConEmu 21.1.12.0 5834 Tuesday, January 12, 2021 Approved
ConEmu 21.1.11.0 1449 Monday, January 11, 2021 Approved

This package has no dependencies.

Discussion for the ConEmu Package

Ground Rules:

  • This discussion is only about ConEmu and the ConEmu package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or ConEmu, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus