124 Commits

Author SHA1 Message Date
Brad King
86578eccf2 Simplify CMake per-source license notices
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool.  Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience.  Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.

Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices.  It also references version control
history for more precise information.  Therefore we no longer need to spell
out the list of Contributors in each source file notice.

Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing".  The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.

Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically.  Manually fix up shebang lines and trailing
newlines in a few files.  Manually update the notices in a few files that the
script does not handle.
2016-09-27 15:14:44 -04:00
Domen Vrankar
39c7d62cbc CPack/RPM debuginfo packaging documentation 2016-09-27 08:18:21 -04:00
Domen Vrankar
dd3c938a0f CPack/RPM debuginfo directories to sources
List of sources must be split into paths parts
so that debuginfo package cleans up after
itself.
2016-09-27 08:18:21 -04:00
Domen Vrankar
b78fcf0d2f CPack/RPM debuginfo packages must contain sources
Issue #15668 fix was missing relevant source
files in debuginfo package.
2016-09-27 08:18:21 -04:00
Brad King
5c1ebec843 Merge topic 'cpack-rpm-policy-warnings'
edb3f6ee CPackRPM: Avoid CMP0007 warnings
2016-09-20 08:40:58 -04:00
Domen Vrankar
edb3f6eee4 CPackRPM: Avoid CMP0007 warnings
For older versions of CMake minimum required version CMP0007 policy
warning was printed out.
2016-09-20 08:30:29 -04:00
Domen Vrankar
d9cec8adca CPack/RPM: Generate source rpm (SRPM) packages on demand
Closes: #15839
2016-09-20 08:24:28 -04:00
Istvan Bodnar
bc8c0add7f CPack RPM debuginfo packages generation
Added new variable to CPackRPM for debuginfo rpm package
generation. Binaries will be checked for debug symbols.
2016-08-25 18:36:09 +02:00
Daniel Pfeifer
5d0d980d99 Use string(APPEND) in Modules
Automate with:

find Modules -type f -print0 | xargs -0 perl -i -0pe \
's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
2016-07-28 00:41:13 +02:00
Brad King
64095e36ee Merge topic 'cpack-rpm-debug-logging-fix'
83799aa9 CPack/RPM: Debug logging should only print if requested for
2016-07-13 09:26:44 -04:00
Brad King
4b726a3f5c Merge topic 'fix-cpack-rpm-different-package-names'
672e6d2e CPack/RPM: Add missed CPACK_RPM_FILE_NAME fallback variable
2016-07-13 09:26:40 -04:00
Harry Mallon
83799aa934 CPack/RPM: Debug logging should only print if requested for 2016-07-13 09:23:24 -04:00
Alex Turbov
672e6d2e20 CPack/RPM: Add missed CPACK_RPM_FILE_NAME fallback variable
In commit v3.6.0-rc1~66^2 (CPack/RPM different package names,
2016-05-15) we forgot the non-uppercased fallback variable name
`CPACK_RPM_<COMPONENT>_FILE_NAME`.  Add it now.
2016-07-11 11:19:24 -04:00
Andrew Fuller
a351edd245 CPackRPM: Handle directives of form %foo and %foo(anything)
Directives that are legal inside the %files section of an RPM spec may
contain a variety of characters particularly when specifying %caps which
can include +, _, and space.  Watch for parenthesis to determine what
forms the prefix vs. path.

Fixes #14362.
2016-07-05 15:27:56 -04:00
Domen Vrankar
20e55e4be8 CPackRPM and CPackDeb documentation improvements 2016-06-01 08:29:34 -04:00
Brad King
d3db070e9e Merge topic 'cpack-rpm-adding-dist-to-release-tag'
f5089cfc CPack/RPM adding dist to release tag test
f7003a60 CPack/RPM release dist tag support
2016-05-16 10:11:35 -04:00
Domen Vrankar
44ee2d717a CPack/RPM different package names
Packagers may now set their own rpm package
file names or request that rpmbuild tool
chooses one for them. It also supports handing
of situations where one spec file may produce
multiple rpm packages.
2016-05-15 03:01:34 +02:00
Harry Mallon
f7003a6055 CPack/RPM release dist tag support
Some Linux distros require Release tag
to be set to <ReleaseVersion><Dist>.
2016-05-14 20:21:32 +02:00
Brad King
e0cc8bf5d7 Merge topic 'cpack-rpm-external-symlink-handling'
eae4eef0 CPack/RPM external symlink handling
2016-04-01 10:04:32 -04:00
Domen Vrankar
eae4eef0c4 CPack/RPM external symlink handling
Symbolic links that point to external
location no longer cause cmake to fail
with string out of bounds error but
are instead packaged as non relocatable
symlinks and print out a warning message.
2016-04-01 09:52:04 -04:00
Felix Geyer
49e82c15d5 Fix spelling typos in comments and documentation (#16037)
The Debian package checker tool (lintian) detected several typos in
CMake.
2016-03-29 14:31:02 -04:00
Domen Vrankar
1fe004eac3 cpack rpm setting of defattr
RPM supports setting of default user, group,
file and directory permissions that will be
applied for files in package unless specified
per file/dir with attr setting
This is related to bug report 14714
2016-03-29 00:51:18 +02:00
Domen Vrankar
7c7efd1ed9 CPack/RPM support for upper cased component variables
CPACK_* variables expect component name in upper case.
CPACK_RPM_* variables expected component name to be
in same case as component name.
This patch adds support for CPACK_RPM_* variables with
upper case component names to match the convention with
CPACK_* variables and also preserves same case component
names for back compatibility.
2016-02-13 02:09:32 +01:00
Markus Rickert
c926efa139 CPackRPM: Configure RPM package group and name per component 2015-12-07 20:15:49 +01:00
Brad King
da7276cf94 Replace http://www.cmake.org URLs with https://cmake.org
The latter is now the preferred URL for visiting cmake.org with a
browser.  Convert using the shell code:

 git ls-files -z | xargs -0 sed -i 's|http://www\.cmake|https://cmake|g'
2015-09-25 15:47:39 -04:00
Frank-Christian Otto
e26f53a88b CPack/RPM: missing PACKAGE_CONFLICTS documentation 2015-08-04 22:49:13 +02:00
Domen Vrankar
64aacb24b6 CPack/RPM: undocumented variables
Some CPack/RPM variables were undocumented
even though they are implemented in code
for quite a while now.
2015-08-04 22:49:12 +02:00
Domen Vrankar
7c103be8de CPack: Enable DEB and RPM tests more reliably
CPack DEB and RPM generators were not used for some tests because
CPACK_BINARY_DEB and CPACK_BINARY_RPM variable were not set.  Fix this,
simplify generator selection in CTEST_RUN_CPackComponentsForAll, and fix
bugs that were detected after tests were run.
2015-05-12 08:56:34 -04:00
Thomas Orozco
1a2a73a518 CPack/RPM fix output in debug log
output RPMBUILDOUT when intended
2015-05-05 07:47:10 +02:00
Domen Vrankar
76080c32e1 CPackRPM content listing refactor
Refactoring of content list that removes
use of find and sed to make listing algorithm
more clear and remove external dependencies.
Patch also limits man pages handling to
locations listed in brp-compress rpm script
by default - fixes bug report #14660.
2015-04-19 18:22:18 +02:00
Domen Vrankar
152e9b3250 CPackRPM package content list code move
Move rpm package content list code to
a separate function.
2015-04-19 17:01:20 +02:00
Domen Vrankar
681f3a2f01 CPackRPM: Add basic symlink support (#15209)
RPM packages can contain symbolic links to relative paths - including
support for multiple relocation paths through generation of post install
relocation scripts.  Add basic support with limitations described in
documentation.
2015-03-31 14:04:13 -04:00
Domen Vrankar
18917d66d4 CPack/RPM ignore install prefix relocation path
Patch adds possibility to remove
CPACK_PACKAGING_INSTALL_PREFIX from
the list of relocation paths when
crating a relocatable rpm.
2015-03-20 21:52:49 +01:00
Domen Vrankar
be089724e9 CPack/RPM prevent component attributes leakage
Fixes mantis bug report with id 15169. Some
component specific attributes were leaking
to next component. Leakage handling was
implemented in different locations but there
were still attributes that leaked. Patch
encapsulates generator into function so all
current leaks are fixed and no future leaks
can occur.
2015-03-17 17:36:36 +01:00
Domen Vrankar
3cf86d9e7b Merge branch 'cpack_rpm_mulit_prefix_fixup' into cpack_rpm_mulit_prefix_fixup-for-master
Resolve conflict in Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake
by combining the changes from both sides.
2015-02-27 08:42:29 -05:00
Domen Vrankar
1cbb156253 CPackRPM: Fix handling of relocation prefix parent directories
In commit 3ec02547 (CPackRPM: Allow multiple path relocation prefixes
for one package, 2015-01-21) a regression was introduced that causes
parent directories of relocation paths to be incorrectly included in
the rpm.  Fix this and make the test case more strict to cover it.
2015-02-27 08:37:24 -05:00
Domen Vrankar
5857ca5e0d CPackRPM: Drop explicit handling of '@' symbols that breaks them (#14782)
The change in commit v2.8.12~218^2 (CPackRPM protect '@' character in
filename processed in the spec file, 2013-07-05) was not necessary after
commit v2.8.12~439^2 (Add support for componentized USER spec file,
2013-04-01).  The latter replaced ${VAR} references in the spec file
template string with \@VAR\@ references, thus protecting '@' symbols
automatically.  This caused CPackRPM to break paths with @ symbols.
Revert the change to fix the behavior, and add a test case.
2015-02-24 08:44:36 -05:00
Joshua A Clayton
3aa9f89dbb CPackRPM: Support rpm architecture in components
CPACK_RPM_<component>_PACKAGE_ARCHITECTURE variable allows
the same project to support packages of different architectures
including noarch, native and foreign architectures.
2015-02-23 10:48:27 -05:00
Joshua A Clayton
761562fea6 CPackRPM: Fix CPACK_RPM_PACKAGE_ARCHITECTURE
BuildArch must only be added to a spec file for a "noarch" package or
rpmbuild will fail.  For all others, the --target argument sets the
package architecture.  In the process of Fixing rpm architecture, we
make it mandatory, adding a default value of native architecture (the
same as if no --target argument is present).  Update the documentation
at the top of the file to make it mandatory.
2015-02-23 10:48:10 -05:00
Domen Vrankar
be36bfd65d CPackRPM: Do not run file(GLOB_RECURSE) without CMP0009 set to NEW
The file(GLOB_RECURSE) call added by commit 3ec02547 (CPackRPM: Allow
multiple path relocation prefixes for one package, 2015-01-21) should
not follow directory symlinks, so make sure CMP0009 is set to NEW.
2015-02-11 09:56:27 -05:00
Domen Vrankar
3d99355b11 CPackRPM: Fix recognition of absolute relocation paths
Fix typo in logic added by commit 3ec02547 (CPackRPM: Allow multiple
path relocation prefixes for one package, 2015-01-21).
2015-02-10 09:41:37 -05:00
Domen Vrankar
3ec0254727 CPackRPM: Allow multiple path relocation prefixes for one package 2015-01-29 10:48:58 -05:00
Gauthier Lamaison
51a60973eb CPackRPM: Unset temporary component variables before re-use
Improve the fix from commit v2.8.9~136^2 (CPackRPM: avoid leakage of RPM
directive from one component to another, 2012-06-05) to clean up more
temporary variables.

Reviewed-by: Domen Vrankar <domen.vrankar@gmail.com>
2014-11-18 09:25:10 -05:00
Rolf Eike Beer
5cc8169bf9 CPackRPM: remove unneeded string length calculation
This wants just the rest of the string, which can be achieved by passing -1 as
remainder length.
2014-11-14 18:01:10 +01:00
Evgeny Kalishenko
9ed546ff49 CPackRPM: Support PREUN and POSTUN requirements 2014-10-27 12:36:20 -04:00
Evgeny Kalishenko
add4e50dea CPackRPM: Support pre(post) install script requirements 2014-10-27 12:36:03 -04:00
Domen Vrankar
603ef7fd9d CPackRPM: Add component based packaging description and summary
Enable per-component description and summary setting through
CPACK_RPM_<component>_PACKAGE_DESCRIPTION,
CPACK_COMPONENT_<compName>_DESCRIPTION and
CPACK_RPM_<component>_PACKAGE_SUMMARY variables.

Extend the CPackComponentsForAll test to cover these.
2014-10-21 09:06:38 -04:00
Rolf Eike Beer
b0b4b4602f Remove .* expressions from beginning and end of MATCHES regexs
All these expressions work the same:
  "foo"
  ".*foo.*"
  "^.*foo.*$"

This assumes that the "Intel*" expressions were meant to be "Intel.*".
2014-04-14 18:17:11 +02:00
Rolf Eike Beer
5bd48ac534 Replace string(REGEX REPLACE) with string(REPLACE) where possible
The simple replacement is much faster.
2014-04-14 18:17:05 +02:00
Kitware Robot
a77e308693 CPack: Replace #<type> markup with reStructuredText equivalent
Drop #end and #module.  Convert #section to a subsection header.
Convert #variable to the cmake domain "variable" directive.
Convert #macro to the cmake domain "command" directive.
Perform minor formatting fixes in text near these changes.
2013-10-16 09:22:39 -04:00