View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0014433 | CMake | CPack | public | 2013-09-24 08:33 | 2016-06-10 14:31 | ||||
Reporter | Domagoj Saric | ||||||||
Assigned To | Kitware Robot | ||||||||
Priority | normal | Severity | feature | Reproducibility | N/A | ||||
Status | closed | Resolution | moved | ||||||
Platform | OS | OS Version | |||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0014433: Generator features: unification and expansion | ||||||||
Description | Please consider unifying and extending the basic interface and capabilities of all GUI-based/interactive installer generators (those that don't just generate plain archives and/or drag'n'drop distributions, e.g. WiX, PackageMaker and NSIS) to provide: - OS version checking - hardware requirements checking - current-user vs global/system/allusers installations - separate introduction, EULA and release notes texts - automatic txt->rtf conversion if required (for above texts) - additional file uninstall (e.g. not installed but created at runtime or with scripts during installation..e.g. WiX RemoveFile On="uninstall") - ini files and registry read and write - shortcuts (desktop, start menu...) generation and uninstallation - pre/post install/update scripts/custom actions - symbolic link creation - patch/update granularity (component & key path in WiX) - capabilities introspection (ala C++ type traits), so that one can 'ask' a generator if it implements a given feature rather than hardcoding the generator name in the if condition (rather like using #if __has_feature( X ) then #ifdef __clang__)... ps. this feature request perhaps first warrants discussion on the ML and then creation of individual tickets for specific features... pps. <rant> I'd be open to helping and contributing if didn't require working with "The world's most obnoxious bloatware that is the Qt" which CMake uses only for a single dialog...</rant> | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0033872) Rolf Eike Beer (developer) 2013-09-24 08:40 |
If you rant then rant correctly: Qt4 is only needed for cmake-gui and you can build without it without any problems. CPack has no dependency on that. |
(0033873) Domagoj Saric (reporter) 2013-09-24 08:52 edited on: 2013-09-24 08:53 |
- installer icon - installer GUI bitmaps (with queryable format support, e.g. cpack_can_generator_do( wix, png )) ps. ad ranting@qt, well i did say 'used for dialog'...and for a non-nix-freak like me cmake-gui is synonymous with cmake ;) pps. consider enabling editing of the ticket's description ;) |
(0033874) Domagoj Saric (reporter) 2013-09-24 08:58 |
WiX resources: http://wixtoolset.org [^] http://www.joyofsetup.com [^] http://github.com/dblock/msiext [^] Tutorials: http://wix.tramontana.co.hu [^] http://www.merlinia.com/mdt/WiXTutorial4.msl [^] http://blogs.technet.com/b/alexshev [^] (From MSI to Wix) http://www.dizzymonkeydesign.com/blog/misc/adding-and-customizing-dlgs-in-wix-3 [^] http://stackoverflow.com/questions/471424/wix-tricks-and-tips [^] http://kentie.net/article/wixtipstricks [^] http://www.packtpub.com/sites/default/files/3722-chapter-1-getting-started%20.pdf [^] IDEs: http://www.icsharpcode.net/opensource/sd [^] http://wixedit.sourceforge.net [^] speedups: - "consider only having select files (EXE,DLL,OCX...) as keyfiles and the rest as companion files" - disable rollback http://msdn.microsoft.com/en-us/library/windows/desktop/aa372899%28v=vs.85%29.aspx [^] - MSIFASTINSTALL http://msdn.microsoft.com/en-us/library/windows/desktop/dd408005%28v=vs.85%29.aspx [^] |
(0033875) Eric NOULARD (developer) 2013-09-24 09:02 |
This would be a nice idea. Most of CPack generator features are controlled by: Generic var: CPACK_PACKAGE_DESCRIPTION_FILE Specific var: CPACK_RPM_PACKAGE_DESCRIPTION CPACK_DEBIAN_PACKAGE_DESCRIPTION which may override the "generic" value in the generic var with specific value. i.e. the generic var takes there default value from the generic one. So "unifying" several features is possible by creating generic and/or specific control variable. Now I suggest you explain on the CMake ML, 1) what you mean for each feature For example, I have no idea concerning what you mean by; - OS version checking - hardware requirements checking 2) how each targeted CPack generator would use the feature 3) Propose CPACK_xxx control variable name (generic and specific). |
(0033879) Domagoj Saric (reporter) 2013-09-24 10:48 |
Don't know if I'll find the time for starting/structuring a ML discussion unfortunately... 1) simply something like cpack_require ( os_version >= windows:501,osx:10.6, "${MY_PRODUCT} requires a later version of the operation system" #error message ) cpack_require ( cpu_bits >= 64, "<some other error message>" ) i.e. what you do in WiX with: <Condition Message="MyProduct bit requires Windows XP SP3 or later"> ( VersionNT > 501 ) OR ( VersionNT = 501 AND ServicePackLevel = 3 ) </Condition> 2) a CPack generator should _implement_ the feature and the user would _use_ it in a way that is as agnostic of the generator and the OS as possible... 3) I'd rather use cpack functions as the C-preprocessor-like syntax and semantics of CMake are something that I believe very few people actually like (probably tolerate as an ugly backward compatibility artefact of and otherwise greate idea/project/product)... |
(0033886) Domagoj Saric (reporter) 2013-09-25 06:24 |
- require elevated privileges for the installer - file/directory/registry permission setting (at least respect the flags given to the related CMake install command) ps. yes some generators already support some of these features, the idea is to make them all to support them through the same interface (and have a way to check capabilities so that one can handle generators that simply cannot implement a given feature, e.g. an uninstaller with Package Maker) |
(0033965) Domagoj Saric (reporter) 2013-10-02 04:55 |
- wider (root) target installation directory choices: a) disabled all together b) one for all components (status quo) c) independent, individually selectable, per-component installation directories (http://public.kitware.com/Bug/view.php?id=11534 [^]) |
(0033966) Domagoj Saric (reporter) 2013-10-02 05:22 |
- detect previous installation directory/ies (when performing update installs) - offer a user option to either perform an update of an existing previous version or a side-by-side install (into a different directory) |
(0038159) Mark Stijnman (reporter) 2015-03-06 10:39 |
Additional suggestion: allow to install files to per-user directories (such as %AppData%\MyApp\MyConfig.ini on Windows or $HOME/.MyApp/MyConfig.ini on unix) |
(0042373) Kitware Robot (administrator) 2016-06-10 14:29 |
Resolving issue as `moved`. This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2013-09-24 08:33 | Domagoj Saric | New Issue | |
2013-09-24 08:40 | Rolf Eike Beer | Note Added: 0033872 | |
2013-09-24 08:52 | Domagoj Saric | Note Added: 0033873 | |
2013-09-24 08:53 | Domagoj Saric | Note Edited: 0033873 | |
2013-09-24 08:58 | Domagoj Saric | Note Added: 0033874 | |
2013-09-24 09:02 | Eric NOULARD | Note Added: 0033875 | |
2013-09-24 10:48 | Domagoj Saric | Note Added: 0033879 | |
2013-09-25 06:24 | Domagoj Saric | Note Added: 0033886 | |
2013-10-02 04:55 | Domagoj Saric | Note Added: 0033965 | |
2013-10-02 05:22 | Domagoj Saric | Note Added: 0033966 | |
2015-03-06 10:39 | Mark Stijnman | Note Added: 0038159 | |
2016-06-10 14:29 | Kitware Robot | Note Added: 0042373 | |
2016-06-10 14:29 | Kitware Robot | Status | new => resolved |
2016-06-10 14:29 | Kitware Robot | Resolution | open => moved |
2016-06-10 14:29 | Kitware Robot | Assigned To | => Kitware Robot |
2016-06-10 14:31 | Kitware Robot | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |