Giter Site home page Giter Site logo

gup4win / wingup Goto Github PK

View Code? Open in Web Editor NEW
415.0 38.0 118.0 10.09 MB

WinGup - Generic Updater for Windows

Home Page: http://wingup.org/

License: GNU Lesser General Public License v3.0

PHP 0.01% C++ 1.64% C 65.59% CMake 1.86% Shell 0.86% Makefile 1.39% Perl 1.37% DIGITAL Command Language 2.62% Batchfile 0.74% M4 6.78% Roff 16.95% VBScript 0.18% Emacs Lisp 0.02%

wingup's Introduction

What is WinGup?

WinGup is a Generic Updater running under Windows environment. The aim of WinGup is to provide a ready to use and configurable updater which downloads a update package then installs it. By using cURL library and TinyXml module, WinGup is capable to deal with http protocol and process XML data.

Why WinGup?

Originally WinGup was made for the need of Notepad++ (a generic source code editor under MS Windows). During its conception, the idea came up in my mind: if it can fit Notepad++, it can fit for any Windows program. So here it is, with LGPL license to have no (almost not) restriction for integration in any project.

How does it work?

WinGup can be launched by your program or manually. It reads from a xml configuration file for getting the current version of your program and url where WinGup gets update information, checks the url (with given current version) to get the update package location, downloads the update package, then run the update package (it should be a msi or an exe) in question.

Who will need it?

Being LGPLed, WinGup can be integrated in both commercial (or close source) and open source project. So if you run a commercial or open a source project under MS Windows and you release your program at regular intervals, then you may need WinGup to notice your users the new update.

What do you need to use it?

A url to provide the update information to your WinGup and an another url location to store your update package, that's it!

How is WinGup easy to use?

All you have to do is point WinGup to your url update page (by modifying gup.xml), then work on your pointed url update page (see getDownLoadUrl.php comes with the release) to make sure it responds to your WinGup with the correct xml data.

How to build it?

  1. You have to build cURL before building WinGup:

    a. Open VS2017 Native Tool Command for 32/64 bits
    b. If it's your 1st timee to build, run <your wingup source path>\curl\buildconf.bat
    c. go to curl winbuild directory:
    cd <your wingup source path>\curl\winbuild
    d. compile cURL by using one of the following commands, according the mode and archetecture of wingup you want to build.

    • x64 release: nmake /f Makefile.vc mode=dll vc=15 RTLIBCFG=static MACHINE=x64
    • x64 debug: nmake /f Makefile.vc mode=dll vc=15 RTLIBCFG=static DEBUG=yes MACHINE=x64
    • x86 release: nmake /f Makefile.vc mode=dll vc=15 RTLIBCFG=static MACHINE=x86
    • x86 debug: nmake /f Makefile.vc mode=dll vc=15 RTLIBCFG=static DEBUG=yes MACHINE=x86
  2. Open <your wingup source path>\vcproj\GUP.vcxproj in Visual Studio 2017

  3. Build WinGup like a normal Visual Studio project with VS2017

To whom should you say "thank you"?

Don HO [email protected]

wingup's People

Contributors

chcg avatar donho avatar fitojb avatar itachisan avatar j2team avatar motazalnuweiri avatar rockytdr avatar singhrajenm avatar whitesymmetry 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  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

wingup's Issues

It's not a valid GUP input xml.

When I run the GUP.exe file from the application, the message pops up It's not a valid GUP input xml.
and only works --help parameter. When I start directly, everything works correctly.

It looks like the GUP.exe can not correctly locate the path to the file gup.xml

Unwanted messageBox displayed

Steps to reproduce:

  1. Install npp v7.3.2 and try to update it (?->update notepad++)
  2. It will ask to update npp v7.3.3 as it is available now.
  3. Once downloading is started, cancel downloading

Expected:

  1. Confirmation dialog should be shown
  2. Cancellation acknowledgement should be shown

Actual:

  1. Confirmation dialog is shown
  2. An unwanted dialog is shown. Refer the below screenshot.
  3. Cancellation acknowledgement is shown

untitled

Dialog box title and style

A user left a comment on https://community.notepad-plus-plus.org/topic/24860/silly-rant about the dialog box title when updates are available.

Up through Notepad++ v845 the version of GUP.exe used the title "Notepad++ update" on the dialog box that reports "An update package is available, do you want to download it?"

Starting with Notepad++ v846 GUP.exe uses the title "Update available" for the same dialog box. As "Notepad++" is no longer part of the dialog box title some users are confused as to what application they are running that caused the dialog box to pop up.

Can the GUP.exe that ships with Notepad++ be updated to use "Notepad++ update" for the dialog box title?

I also discovered when testing this using Notepad++ that up through Notepad++ v845 that it was possible to load the contents of the dialog box into the copy/paste buffer using Ctrl-C. This is a feature I have used a lot for many applications. A dialog box pops up and I want to copy/paste the box over to something else. Usually Ctrl-C works and I get the text of the box. For example, when running Notepad++ v845 I get

---------------------------
Notepad++ update
---------------------------
An update package is available, do you want to download it?

Current version is   : 8.4.5.0
Available version is : 8.5.6
---------------------------
Yes   No   
---------------------------

Starting with Notepad++ v846 Ctrl-C for this dialog box no longer works (nothing happens and nothing is loaded into the copy/paste buffer) meaning I would need to use screen shots or some other method to document the contents of the dialog box.

Can this dialog box be fixed so that Ctrl-C for loading the dialog box contents into the copy/paste buffer works?

Absolutely no security?

I don't see any mention of checking file signatures upon downloading the update, or even hashes (which generally isn't sufficient, especially if SHA1 or gasp something even more broken).

Maybe I'm just missing something, but it looks like this was thrown together with no regard to security.

Discrepancy between the WinGUp website and this repository concerning the code license

Hi,

I don't want to nitpick, but on the WinGUp website it says that WinGUp is under the LGPL license, but the license in this repository is the GNU General Public License: /gpl.txt.

There is a fairly big difference between the two licenses, and I would imagine that if your initial intention was to use the LGPL so that more people could incorporate this library in their application, then having the GPL license next to the code might prevent some people from using it. That said, you refer to the LGPL in the header of your source files, so I maybe it was an error?

Just my 2 cents!

Raphaël Doré

Minor version ignored?

Hi,

If I define

$lastestVersion = 1.5; // X.YZ
$lastestVersionStr = "1.5.6"; // X.Y.Z

in getDownLoadUrl.php and my application sends it's version string as 1.5.4, there will be not update offended. $lastestVersionStr seems not to be relevant for the version check? Or how can I define minor versions in $lastestVersion?

Best regards,
Markus

getDownloadUrl.php does not handle version=8.5.7 correctly

A recent update to Notepad++ brought the format of the internal version number in alignment with the published version number.

Notepad++ v8.5.6's internal version number is 8.56 - The internal version number does not have the dot between the 5 and 6.
Notepad++ v8.5.7's internal version number is 8.5.7 - The internal and public version numbers are now the same string.

This change to Notepad++ breaks code had been getting the internal version number from the notepad++.exe and passing it to https://notepad-plus-plus.org/update/getDownloadUrl.php to see if Notepad++ was up to date.

Please see https://community.notepad-plus-plus.org/topic/24926/needtobeupdated-is-always-yes/ both for background details and a suggested code fix to getDownloadUrl.php

Pre uninstall

Hi,
Does GUp makes an uninstall before the install or does the installer has to provide an auto uninstall?
For example Notepad++ doesn't seem to have an auto-uninstaller. Maybe it can install over an old one ?
Thanks.

Which content type in GUp request?

Hi,
The GUp in my project doesn't seem to succeed its request to the version provider page.
As I don't manage to snif the request, could you tell me which headers are provided, among which "content-type"?
Is it possible to get an error log when GUp request fails?
Thanks.

suggestion about save dialog box UI/UX

The new Save dialog box got the 5th button and now has the following:

button label -> how the user feels

  • Yes -> I need this
  • No -> I don't need thos
  • Cancel -> My entire idea was bad, I need to leave
  • Yes to all -> I am confident I need all
  • No to all -> I am confident I don't need anything

From an aesthetics perspective, the dialog books looks a bit "scary".
From the order perspective, the "Cancel" button looks ok to be next to "No", however being in the middle doesn't seem to be well placed. Moving from "Yes" to "Yes to all" and from "No" to "No to all"
is an expected flow but crossing ovrer the "Cancel" and other options is not that good.

Since the functionality of all 5 is legit, I would suggest to adopt what windows 10 have for the deletion of multiple files where the controls are:

label -> how the user feels

  • Yes -> I need this
  • No -> I don't need this
  • Cancel -> I need to go
  • Check box "Apply to all" which is false by default" -> I am confident to apply to all

This change affects only the UI part and the result is a simple and clean dialog box.

quite Silent Installation Feature

when set <SilentMode>yes</SilentMode> in gup.xml only don't show errors if network connection not exists. i want an auto updater that don't ask 'An update package is avaible,do you want to download it ' and don't show download progress, .... . can you add this feature to your software?

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.