Giter Site home page Giter Site logo

0install-win's Introduction

Zero Install for Windows

Build status
This is the Windows version of Zero Install. It extends the cross-platform core Zero Install .NET with a GUI and various OS-specific integrations.

Zero Install is a decentralized cross-platform software installation system. You can learn more at 0install.net.

Download Zero Install for Windows

Building

The source code is in src/ and generated artifacts are placed in artifacts/.
The source code does not contain version numbers. Instead the version is determined during CI using GitVersion.

To build install Visual Studio 2022 v17.8 or newer and run .\build.ps1.
If you wish to deploy the build after compilation as the default Zero Install instance in your user profile run .\build.ps1 -Deploy. To deploy it for all users use .\build.ps1 -Deploy -Machine.

Integration tests

The PowerShell scripts in tests/ are integration tests.

You can run them individually. They will then use the version of Zero Install found in your current PATH.

You can also run them all against:

  • your latest build, with .\test.ps1
  • a temporarily deployed copy of your latest build, with .\test.ps1 -Deploy
  • a temporarily deployed machine-wide copy of your latest build, with .\test.ps1 -Deploy -Machine
  • a temporarily deployed portable copy of your latest build, with .\test.ps1 -Deploy -Portable

Contributing

We welcome contributions to this project such as bug reports, recommendations, pull requests and translations. If you have any questions feel free to pitch in on our friendly mailing list.

This repository contains an EditorConfig file. Please make sure to use an editor that supports it to ensure consistent code style, file encoding, etc.. For full tooling support for all style and naming conventions consider using JetBrains' ReSharper or Rider products.

Privacy and code signing policy

Zero Install for Windows contacts various servers automatically during normal operation (e.g., to check for updates). No personal information is transmitted to these systems unless specifically requested by the user (e.g., to synchronize apps between computers). See the documentation for details.

This program uses free code signing provided by SignPath.io, and a certificate by the SignPath Foundation. Signed releases are published by Bastian Eicher.

0install-win's People

Contributors

bastianeicher avatar denniske avatar renovate-bot avatar renovate[bot] avatar simonsilvalauinger avatar timroes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

0install-win's Issues

Generic Mono WinForms problems

  • Path.GetTempFileName() throws UnauthorizedAccessException
  • 0store-win TreeView crash
  • Windows do not close on Application.Exit()

AppList change missed while modal dialog visible

ZeroInstall.exe detects changes applied to the AppList by other instances by listening for a specific window message. These window messages will be missed and the list not refreshed while a modal dialog (e.g. the Options dialog) is visible.

0capture file extension capturing

0capture seems to have some problems when capturing a LibreOffice installs:

  • Some <extension>s are duplicated.
  • Some MS Office related <extension>s are not captured at all.

Detect external integration changes

Detect access points that where removed or replaced outside of Zero Install and offer the user to either accept these changes into the AppList or to undo them.

0store-service IPC timeout

Long running operations (e.g. extracting large archives) may cause the IPC connection between 0install and 0store-service to time out

Kiosk mode

Allow Administrators to restrict which software users can install

Reject non-feeds early on

Make FeedManager reject URLs that point to files that do not contain feeds before downloading the entire file. Otherwise accidentally pointing to a large archive might lead to an OutOfMemoryException.

GnuPG.GenerateKey(): New terminal window on Linux

Unlike Windows, Linux desktop environments do not automatically open a new terminal emulator window for command-line processes. GnuPG.GenerateKey() should automatically select and use a "suitable" terminal emulator when on Linux.

Make GnuPG more resilient

GnuPG is sometimes fails to write to its configuration directory, causing problems verifying feed signatures.
This happens, for example, when running Zero Install directly from the Portable ZIP archive using WinRAR.

Extraction quota

Enforce size and time limits when extracting archives in StoreService

Language sorting

SelectionCandidateComparer: Sort implementations based on their language

Auto-extract --help texts

Automatically extract all --help texts as a part of the build process and publish them on the website

Feed.IsValid() method

Add new method IsValid() to Model.Feed which checks if the feed conforms to the specifications: http://0install.net/interface-spec.html

Verification examples:

  • required elements (e.g. <name> and <summary>) must not be missing
  • <environment> must not specify both "value" and "insert"
  • <recipe> must not contain unknown steps

Sporadic GUI freeze

Fix sporadic freezes of Central.WinForms GUI on resource-constrained systems

CPU grouping and ranking

Group compatible CPU architectures (e.g. to prevent mixing x86 and x64 binaries) and rank them (e.g. i686 better than i486)

Handle if-0install-version

Elements with an if-0install-version attribute must be ignored by Solver, Fetcher and Executor if they do not pass the version check

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.