Commit Graph

509 Commits

Author SHA1 Message Date
Todd Zullinger
d56cfc6775 Use symlinks instead of hardlinks for installed binaries
A recent discussion on the git list¹ suggested that using symlinks
should be clearer and have no drawbacks (except on filesystems where
symlinks are not well supported, e.g. on Windows).

This shrinks the git-core package by nearly 25% and saves almost 6MB in
the debuginfo package.

See also 6ef5f1f ("Disable cross-directory hardlinks", 2017-11-10).

¹ https://public-inbox.org/git/87y3iwp2z0.fsf@evledraar.gmail.com/#t
2018-03-16 21:55:46 -04:00
Todd Zullinger
0609eef4e2 Improve hardening flags for EL-6 & EL-7
Ensure all binaries are hardened when building on EL-6 & EL-7.  On EL-7
use the %{_hardened_build} macro.  On EL-6 update %{optflags} and set
%{__global_ldflags}.

For EL-7 this could also be put in the existing Fedora and EL >= 7
condition, e.g.: %{!?_hardened_build: %global _hardened_build 1}.  I
think this is a bit uglier than needed and is better in an %if condition
which only applied to EL-7.
2018-02-24 14:15:30 -05:00
Todd Zullinger
04982344f3 Add gawk, gcc, make, and sed BuildRequires
The guidelines require all required packages to be explicitly listed.
This list may not be complete, but it's a start.

Additionally, a proposed change for Fedora 29 removes gcc from the
default BuildRoot.

While at it, sort a few BuildRequires in alphabetical order.
2018-02-16 14:09:11 -05:00
Todd Zullinger
0164091753 Update to 2.16.2
Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.16.2.txt
2018-02-16 13:50:09 -05:00
Todd Zullinger
986b772e55 Split 'git subtree' into a separate package
While 'git subtree' does not pull in any additional dependencies, having
it in a separate package may help avoid confusion that it is a core git
command.  This came up recently on the git list¹.

Another recent thread leaves the impression that 'git subtree' is in
maintenance mode².  This implies that it is unlikely to move out of
contib in the near future.

¹ https://public-inbox.org/git/alpine.LFD.2.21.1802070801470.19185@android-a172fe96dd584b41/
² https://public-inbox.org/git/CADfK3RWXDuE=hYD==4sHXO1iJeOiVDOp7hBqhBtSn7gnQ+x7Qg@mail.gmail.com/
2018-02-09 14:51:34 -05:00
Todd Zullinger
cfcd10ad91 Don't package contrib/svn-fe in %doc 2018-02-09 14:51:34 -05:00
Todd Zullinger
ff200cac04 Remove obsolete %defattr
The use of %defattr has been unneeded since rpm-4.4.  It was removed
from the guidelines 6 years ago¹.  It was kept to allow builds on EL-5,
which has been EOL since March of last year.

¹ https://pagure.io/packaging-committee/issue/77
  %defattr is no longer needed in Fedora
2018-02-09 14:50:09 -05:00
Todd Zullinger
f9c3604c48 Order %files and %packages sections by name
Adding new sections or finding existing sections should be easier.  Sort
the %files and %packages sections by name.
2018-02-08 19:02:18 -05:00
Fedora Release Engineering
78864b8eb3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 12:33:55 +00:00
Todd Zullinger
b30f47c653 Drop obsolete BuildRoot, Group, %clean, and buildroot cleanup
No supported releases of Fedora or EPEL require these tags, sections, or
commands.
2018-01-31 15:37:00 -05:00
Todd Zullinger
a51e1362a2 git-svn: avoid segfaults in 'git svn branch'
Re-enable t9128, t9141, and t9167 which were disabled due to these
random segfaults.  The bug has also been reported against the subversion
perl bindings in Debian¹.  Hopefully this will reach upstream subversion
if a fix is made to subversion.

¹ https://bugs.debian.org/888791
2018-01-31 15:31:04 -05:00
Todd Zullinger
7ac1fbccc9 Avoid python dependency in git-core (#1536471)
Move contrib/hooks/multimail from git-core to git and use python3 rather
than python2.

We still use python2 as the default PYTHON_PATH because not all of the
python scripts in git support python3.  None of the other scripts are
included in git-core though.

Primarily, python2 is used by git-p4 and contrib/svn-fe/svnrdump_sim.py
(which is used by t9020-remote-svn.sh).  Converting git-p4 to python3 is
not a trivial matter of fixing a few print statements.  A simple
conversion using python3's 2to3 tool results in a large number of test
failures.

Add a python3-devel BuildRequires for %{__python3} and add python2-devel
to the tests section since t9020-remote-svn.sh uses python2.  (We
already BR python2-devel in git-p4, but having it in the tests section
ensures we don't remove it if/when git-p4 supports python3.)
2018-01-22 14:44:07 -05:00
Todd Zullinger
8368c37a74 Update to 2.16.1
This release fixes an issue which only affects users on case-insensitive
file systems and repositories which contain paths that differ only in
case.  Such circumstances result in a segmentation fault in various git
commands.
2018-01-22 12:46:37 -05:00
Todd Zullinger
a9982274b4 Disable t5000-tar-tree.sh on x86 in f28
This test was passing as recently as last week.  Something seems to have
changed or broken in the x86 arch of f28 since then.  Disable the test
until the issue is determined and resolved.
2018-01-18 10:34:30 -05:00
Todd Zullinger
62f562d630 Use 'prove' as test harness, enable shell tracing
With 'prove' as the test harness the tests can be run in parallel on
EPEL as well as Fedora targets.

Move GIT_TEST_OPTS to config.mak along with the new test options and
enable shell tracing (-x).  The output from failures when tracing is
enabled should allow us to more easily diagnose test failures.

Explicitly use /bin/bash as the shell for the test suite; it allows
using "-x" reliably across the whole test suite.  This is made possible
by changes included in 2.16.0 thanks to Jeff King¹, particularly:

    3f824e91c8 t/Makefile: introduce TEST_SHELL_PATH
    f5ba2de6bc test-lib: make "-x" work with "--verbose-log"
    90c8a1db9d test-lib: silence "-x" cleanup under bash

¹ https://github.com/gitster/git/tree/jk/test-suite-tracing
2018-01-18 01:14:55 -05:00
Todd Zullinger
6adaa76501 Update to 2.16.0
Move fsmonitor-watchman sample hook out of git-core to avoid a perl
dependency.
2018-01-18 01:14:41 -05:00
Todd Zullinger
76ecad7439 Use .in template for git@.service to ensure paths are substituted
The paths don't change often, but if they do this is one less place
which will need to be updated.  It also makes it easier for anyone
rebuilding the packages to change the defaults.
2018-01-13 18:39:53 -05:00
Todd Zullinger
049553f03c Add %{emacs_filesystem} to simplify emacs support
Use a single macro rather than testing for %{fedora} and %{rhel}
versions repeatedly.  The "dist" logic is best kept at the start of the
spec file (as much as possible).

Cleanup a few comments related to "dist" checks while we're at it.
2018-01-13 18:39:53 -05:00
Todd Zullinger
f0946b65f2 Update BuildRequires for tests
The acl and perl(HTTP::Date) requirements are pulled in by other
packages on Fedora so they were not noticed when the test requirements
were updated in 6dc6285 ("Improve test suite coverage", 2017-11-10).

The highlight package is available in EPEL for EL-6 (on all supported
architectures).  Extend the conditional to only exclude it on ppc64 for
EL-7.
2018-01-13 18:39:53 -05:00
Todd Zullinger
2d1c8b10e9 Remove obsolete gnome-keyring credential helper
The gnome-keyring credential helper was removed in Fedora 26, but
remained in builds for older Fedora and EL-7 releases.  No official
release has shipped the gnome-keyring subpackage since 2.11.1-3.

Obsolete it to ensure a clean upgrade path for any users who have it
installed.  The Obsoletes can be removed after rawhide is branched for
Fedora 29.
2018-01-13 18:39:45 -05:00
Todd Zullinger
6af316afb7 Avoid excluding non-existent .py[co] files in %doc
Starting with rpm-build-4.13.0 (in F-22), brp-python-bytecompile
excludes files under /usr/share/doc by default.  Restrict the %files
%exclude to EL <= 7 to avoid spurious 'File not found' warnings from
rpm-build.
2018-01-13 18:16:19 -05:00
Todd Zullinger
6611083041 Explicitly enable tests which may be skipped opportunistically
Ensure these tests are not skipped if some dependency or other condition
is not met.  We prefer to see the failure(s) in order to fix the
underlying issue(s).

Disable t9115-git-svn-dcommit-funky-renames on ppc-arches because it
frequently fails.  The port it uses (9115) is already in use.  It is unclear if
this is due to an issue in the test suite or a conflict with some other
process on the build host.

Add mod_dav_svn BuildRequires for t9115-git-svn-dcommit-funky-renames
(GIT_SVN_TEST_HTTPD).
2018-01-13 18:15:11 -05:00
Todd Zullinger
cd265cb40c Fix perl requires filtering on EL-6
When building release candidates the path to the perl requires filter
script is wrong.  Correct it.

It's tempting to use the output of `pwd` to avoid future changes to the
build dir breaking it, but the call occurs prior to unpacking and thus
`pwd` is not suitable.
2018-01-13 18:13:13 -05:00
Todd Zullinger
ebf9643f6d Re-enable grep tests on s390x
The tests appear to work reliably now, after a number of test builds. If
not, this is easily reverted.  (The newly added test output may also
help determine the root cause.)
2017-12-22 20:25:29 -05:00
Todd Zullinger
84015970a0 Skip 'git svn branch' tests which fail intermittently
All tests which call 'git svn branch' fail intermittently with SIGSEGV
in the subversion bindings.  The failures are not remotely consistent.
Until we can enable shell tracing (-x) in the test suite by default to
attempt to further debug the failure, disable these tests.
2017-12-22 20:25:29 -05:00
Todd Zullinger
62688d0ccc Run tests in parallel by default on Fedora
An option to enable parallel test runs was added in 6dc6285 ("Improve
test suite coverage", 2017-11-10).  After further improvements it seems
to be reliable for use in koji builds.

It is still disabled for EPEL builds because make lacks support for the
-O (--output-sync) option.  Without this option the output is much less
readable.

In the future we may be able to move to using 'prove' as the default
test harness which might allow us to run in parallel without requiring
the -O option.
2017-12-22 20:25:29 -05:00
Todd Zullinger
db2eb1dae4 Avoid failures in svnserve tests when run in parallel
Setting SVNSERVE_PORT enables several tests which require a local
svnserve daemon to be run (in t9113 & t9126).  The tests share setup of
the local svnserve via `start_svnserve()`.  The function uses svnserve's
`--listen-once` option, which causes svnserve to accept one connection
on the port, serve it, and exit.  When running the tests in parallel
this fails if one test tries to start svnserve while the other is still
running.

Use the test number as the svnserve port (similar to httpd tests) to
avoid port conflicts.  Set GIT_TEST_SVNSERVE to enable these tests.

The change should make it into 2.16 or 2.17.  Until then, setting
GIT_TEST_SVNSERVE will disable the svnserve tests.  There are only a few
tests affected and this allows more testing with parallel test runs, so
it's a reasonable trade.  Once an upstream release with these changes
arrives, we'll begin running these tests without any further changes.
2017-12-22 20:25:29 -05:00
Todd Zullinger
15d075cb09 Mark git-core-docs package noarch
Nothing arch-specific should be included in the git-core-docs package.
2017-12-22 20:25:29 -05:00
Todd Zullinger
675b3bad86 Fix builds using '--without docs'
Use '%bcond_without docs' and the corresponding %{with ...} syntax.  Fix
a number of areas where builds failed due to broken %if conditions.
2017-12-22 20:25:28 -05:00
Todd Zullinger
340e1bd03d Remove second make invocation for doc build/install
In c3202fd ("Use prebuilt documentation on EL-5, where asciidoc is too
old", 2013-01-04) the make targets to build and install the
documentation were split into separate make calls to handle prebuilt
docs on EL-5 where asciidoc was too old to build the documentation.

Support for EL-5 was removed in 903d8f3 ("Remove EL-5 and old Fedora
conditionals", 2017-07-22), making the separate make calls unneeded.
2017-12-21 18:36:32 -05:00
Todd Zullinger
53fdd5334a Use %autosetup macro to unpack and patch source
Using %autosetup frees us from having to manage %patch entries.  It does
require that all patches use the same strip level (-p1 in our case).
There is also a mildly annoying bug in EL-6¹ which chokes on the patch
invocation if a blank line doesn't follow %autosetup.  A comment should
prevent any problems.

The %autosetup -S option is deliberately avoided, to prevent needless
bootstrapping problems.

¹ https://bugzilla.redhat.com/1310704
2017-12-21 18:36:31 -05:00
Todd Zullinger
2e7d4595e5 Include verbose logs in build output for 'make test' failures
When building in koji or copr and a test fails, the verbose output from
the tests can be very useful in determining the cause.  Print the output
from failing tests, borrowing heavily from the upstream code¹ used when
running tests in Travis CI².

This could be done inline in %check rather than in a separate script.
The downside is that rpm would include each command invocation of the
loop in the output, which adds a lot of useless text to the already
copious build output.

¹ https://git.kernel.org/pub/scm/git/git.git/plain/ci/print-test-failures.sh
² https://travis-ci.org/git/git
2017-12-21 18:36:31 -05:00
Ben Harper
4079ad14b1 fix typo in comment 2017-11-30 15:11:44 -05:00
Todd Zullinger
1b01c1c177 Fix debuginfo for gnome-keyring and libsecret credential helpers
We used to remove the contrib/credential tree from the build dir to
avoid binaries and other cruft from ending up in the doc dir.  Doing so
prevented debuginfo from being generated for the credential helpers we
install.  The following warnings were printed during the debuginfo
extraction:

cpio: git-2.15.1/contrib/credential/gnome-keyring: Cannot stat: No such file or directory
cpio: git-2.15.1/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c: Cannot stat: No such file or directory
cpio: git-2.15.1/contrib/credential/libsecret: Cannot stat: No such file or directory
cpio: git-2.15.1/contrib/credential/libsecret/git-credential-libsecret.c: Cannot stat: No such file or directory

Keep contrib/credential in the build dir; remove it from the buildroot
instead.
2017-11-30 15:11:44 -05:00
Todd Zullinger
3baa69d782 Update to 2.15.1
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.15.1.txt
2017-11-28 21:27:56 -05:00
Todd Zullinger
030dee6148 Enable support for release candidate builds
Building release candidates helps test the upstream code before it's
final.  Make it easier to create such builds by defining an rcrev macro,
which is commented out by default.
2017-11-28 21:27:26 -05:00
Todd Zullinger
08602e223b Add tcl/tk BuildRequires
The git-gui build tries to use tclsh to generate an index file.  It
falls back to a static list, which is why this wasn't noticed before.
It's not a real problem, but git may soon also try to test that wish is
installed before building and installing git-gui and gitk, so this helps
prepare for that future.
2017-11-28 21:26:39 -05:00
Todd Zullinger
99aec7086b Remove stale comment regarding perl YAML::Any filtering
The code to filter the spurious YAML::Any requires was removed in
903d8f3 (Remove EL-5 and old Fedora conditionals, 2017-07-22).  The
comment was simply missed.
2017-11-12 13:15:14 -05:00
Todd Zullinger
2fd0c5cf45 Remove unneeded cleanup of shebang in bash-completion script
In older versions of git, the bash-completion script began with a
needless #!bash, which we removed before installation.

This and other unneeded shebangs were removed upstream in 1.9.0,
11d62145b9 (remove #!interpreter line from shell libraries, 2013-11-25).
2017-11-12 13:15:13 -05:00
Todd Zullinger
6dc6285283 Improve test suite coverage
3041eeb (Run git test suite, 2016-12-16) enabled the test suite, but
many of the tests were skipped due to missing requirements.  Improve the
test suite coverage by ensuring as many requirements are present as
possible.

Also add an option to run the test suite with multiple jobs using the
%{?_smp_mflags} macro.  This cut the test suite run time roughly in
half in local testing.  The -O option to 'make' helps ensure the output
of each job is collected together rather than interspersed with output
from other jobs.  Sadly, the tests fail when run in parallel in koji, so
this is disabled by default.  It is included to speed up local builds.

To enable in rpmbuild and mock, use either "--with parallel_tests" or
"--define 'parallel_tests 1'" arguments.  This is only supported on
Fedora, as it requires make >= 4.0, which neither EL6 nor EL7 satisfy.

Disable 2 failing tests which run with a limited stack on aarch64, arm*,
and ppc* architectures.  Some debugging with the affected hardware is
needed.

Similarly, disable "git svn branch tests" globally for both
t9128-git-svn-cmd-branch and t9167-git-svn-cmd-branch-subproject because
they fail randomly.  The bug seems likely to be in the subversion perl
bindings, but requires more testing.  The failure output from a manual
run (./t9128-git-svn-cmd-branch.sh -v -x -d):

    ++ git svn branch a
    Copying file:///home/tmz/rpmbuild/BUILD/git-2.14.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///home/tmz/rpmbuild/BUILD/git-2.14.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/a...
    Found possible branch point: file:///home/tmz/rpmbuild/BUILD/git-2.14.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///home/tmz/rpmbuild/BUILD/git-2.14.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/a, 2
    Found branch parent: (refs/remotes/origin/a) bb43a88ce94511096d7d774f4d5feae281603eb0
    Following parent with do_switch
    Successfully followed parent
    r3 = 2e27ee45dadc098239114bc13a6ae6cf6122d16f (refs/remotes/origin/a)
    error: git-svn died of signal 11
    + test_eval_ret_=139
    + want_trace
    + test t = t
    + test t = t
    + set +x
    error: last command exited with $?=139
    not ok 3 - git svn branch tests

The failure in t9167-git-svn-cmd-branch-subproject is similar.
2017-11-12 13:15:13 -05:00
Todd Zullinger
339c6b6d5c Move filter-branch out of core, it needs perl now
A change to the git filter-branch command in git-2.15 added a perl
dependency, bd2c79fbfe (filter-branch: stash away ref map in a branch,
2017-09-21)¹.

This dependency is only present when using the option --state-branch,
which means many users of filter-branch will never notice the perl
dependency.

However, without moving the tool from git-core to git, any users running
filter-branch with the --state-branch option might find that the command
fails badly, potentially leaving their repository in a broken state.
This is not an acceptable trade-off, in my opinion.

I'm not sure if it's worthwhile to suggest a patch upstream to better
handle users running with the --state-branch option when perl is not
installed, allowing us to safely ship git filter-branch in git-core for
use on systems without perl.

¹ https://github.com/git/git/commit/bd2c79fbfe
2017-11-12 13:15:13 -05:00
Todd Zullinger
cb7fab7e6c Move commands which no longer require perl into git-core
Commands which required perl were moved from git-core to git in 6fdc5e5
(new subpackage git-core, which is perl-less and part of original git
rpm, 2015-06-03).  This was with git-2.4.2.  Since then, a number of
commands have been partially or entirely rewritten upstream and no
longer require perl.  Move them back to git-core.

- git-am was converted to a builtin in 2.6.0, 783d7e865e (builtin-am:
  remove redirection to git-am.sh, 2015-08-04)

- git-submodule's dependence on perl was removed in 2.10.0, 74703a1e4d
  (submodule: rewrite `module_list` shell function in C, 2015-09-02)

- git-relink was removed in 2.12.0, ed21e30fef (relink: retire the
  command, 2017-01-25)

Additionally, two sample hooks (pre-rebase and prepare-commit-msg) were
intended to be excluded from git-core due to their perl dependencies,
but were included due to the way the exclusion via %files lists are
created.  List them explicitly in the git %files section and exclude
them from git-core.
2017-11-12 13:15:13 -05:00
Todd Zullinger
054dd6179a Rename %gitcoredir to %gitexecdir; upstream uses the latter
Using the same variable make it clearer that we're referring to the same
thing as upstream when the Makefile uses gitexecdir.

Remove a stale conditional in git-cvs for handling the case where git's
binaries are stored in %{_bindir}.  This support was dropped after
EL-5's support ended.  Most similar conditionals were removed in 903d8f3
(Remove EL-5 and old Fedora conditionals, 2017-07-22).

Also remove the conditional setting of 'gitexecdir = %{_bindir}' which
was only used on EL-5 to prevent moving the git binaries during the
update to git-1.6.
2017-11-12 13:15:13 -05:00
Todd Zullinger
d24b9418f8 Fix t9020-remote-svn failure when setting PYTHON_PATH
In ef7ac1a (git-p4: adjust python2 shebang manually, 2017-08-03) we
dropped PYTHON_PATH due to failures in t9020-remote-svn.

Digging deeper, the issue appears to be caused by the test calling a
script which has a hard-coded #!/usr/bin/python shebang.  On newer
fedora releases, /usr/bin/python is python3.

Replacing the shebang in contrib/svn-fe/svnrdump_sim.py (the script the
test calls) with #!%{__python2} allows the test to succeed while setting
PYTHON_PATH in config.mak, as desired.
2017-11-12 13:15:13 -05:00
Todd Zullinger
71cf98e082 Fix shebang in a few places to silence rpmlint complaints 2017-11-12 13:15:08 -05:00
Todd Zullinger
382ccf9f8c Update summary/description of numerous subpackages
Use '%{summary}.' as the %description for all subpackages where the
summary and description matched.  This is one less place to change
if/when we update a summary/description in the future.

While looking at rpmlint complaints, gitk had a spelling warning because
the summary/description used the British  English spelling of
"visualiser." Rather than simply change that to the American English
spelling, change the summary/description to match the gitk
documentation.  Do the same for git-gui.

Using %summary fixes the %description for perl-Git-SVN, which previously
used the %description from perl-Git mistakenly.

Also improve/clarify the summary of git-gnome-keyring, git-send-email,
and git-svn.
2017-11-12 13:09:07 -05:00
Todd Zullinger
aa0ed7a703 Drop ancient obsoletes for git and git-arch
The git-all subpackage added an obsoletes for older git packages in
0c4a11c (git 1.5.4.3 and include krh's change to rename git-core to git,
2008-02-23).

The git-arch subpackage was obsoleted many years ago in 3f997b4
(Obsolete git-arch as needed, 2011-08-05).

We don't need to carry either of these obsoletes any longer.
2017-11-11 18:29:39 -05:00
Todd Zullinger
6ef5f1f723 Disable cross-directory hardlinks
We cannot be sure that users installing the git package have not mounted
the git bin and lib dirs on different file systems.  The cost is a small
amount of extra disk space (1.25M in the current build).
2017-11-11 18:29:39 -05:00
Todd Zullinger
7dbcd332fc Fix git-clone memory exhaustion (CVE-2017-15298)
Cherry-pick upstream patch from a937b37e76 (revision: quit pruning diff
more quickly when possible, 2017-10-13)¹.

Resolves: #1510455, #1510457

¹ https://github.com/git/git/commit/a937b37e76
2017-11-07 12:08:47 -05:00
Todd Zullinger
6e4a41c073 Update to 2.15.0 2017-10-30 11:38:18 -04:00
Todd Zullinger
d157da4208 Update to 2.14.3 2017-10-23 10:12:29 -04:00
Todd Zullinger
5f2c65c7b0 Update to 2.14.2
In addition to bug fixes, this release contains a security fix to harden
"git shell" against an unsafe user input, which "git cvsserver" copes
with poorly.

References:

http://seclists.org/oss-sec/2017/q3/534
https://public-inbox.org/git/xmqqy3p29ekj.fsf@gitster.mtv.corp.google.com/
2017-09-26 10:28:22 -04:00
Todd Zullinger
f39e78e3c3 Rebuild for rpm-4.14 bug (#1480407) 2017-08-10 21:24:54 -04:00
Todd Zullinger
0588f15273 Update to 2.14.1 (resolves CVE-2017-1000117)
From the release announcement¹

    A malicious third-party can give a crafted "ssh://..." URL to an
    unsuspecting victim, and an attempt to visit the URL can result in
    any program that exists on the victim's machine being executed.
    Such a URL could be placed in the .gitmodules file of a malicious
    project, and an unsuspecting victim could be tricked into running
    "git clone --recurse-submodules" to trigger the vulnerability.

    Credits to find and fix the issue go to Brian Neel at GitLab, Joern
    Schneeweisz of Recurity Labs and Jeff King at GitHub.

¹ https://public-inbox.org/git/xmqqh8xf482j.fsf@gitster.mtv.corp.google.com/
2017-08-10 17:40:10 -04:00
Petr Stodulka
abdac93434 skip all grep tests on s390x 2017-08-09 14:55:40 +02:00
Iryna Shcherbina
271b894dc1 Add a build-time dependency on python2-devel for p4 2017-08-09 11:55:21 +02:00
Todd Zullinger
65f6b37a14 Skip more grep tests on s390x
These tests fail intermittently on s390x, but work reliably on all other
architectures.
2017-08-05 15:05:57 -04:00
Todd Zullinger
2c6eff99d7 Remove prebuilt docs cruft from EL-5 days
Support for EL-5 was dropped in 903d8f3 (Remove EL-5 and old Fedora
conditionals, 2017-07-22).  This code became useless cruft at that
point.
2017-08-05 15:05:57 -04:00
Todd Zullinger
ef7ac1a89e git-p4: adjust python2 shebang manually
Setting 'PYTHON_PATH = %{__python2}' in config.mak should work, but
doing so causes the remote svn tests in t9020 (which use a python script
to similate svnrdump) to fail.  Just fix the git-p4 shebang until the
svn test failures can be resolved.
2017-08-05 15:05:57 -04:00
Todd Zullinger
3d91c7b1f2 git-p4: explicitly require python2
The git-p4 script requires python2.  Ensure we require it rather than
and unversioned /usr/bin/python.
2017-08-04 13:07:56 -04:00
Todd Zullinger
595b682e78 Use pcre2 library
The pcre1 library is only maintained for serious bugs and
vulnerabilities at this point.  Further improvements are happening in
pcre2.  In a future release git will make this the default library for
pcre support.
2017-08-04 13:07:56 -04:00
Todd Zullinger
98fb8ee0a8 Update to 2.14.0 2017-08-04 13:07:56 -04:00
Todd Zullinger
a25cd0d022 Update to 2.13.4
Upstream bugfix release.  Release notes:

    https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.13.4.txt
2017-08-01 16:27:12 -04:00
Todd Zullinger
903d8f35ed Remove EL-5 and old Fedora conditionals
EL-5 has been EOL for several months now.  We can drop all the
conditionals needed to build there, as well as some conditionals for
long-expired Fedora releases.

Without EL-5 we also no longer use the prebuilt documentation.  Remove
these sources and simplify the gpg check for the remaining source.
2017-08-01 16:26:48 -04:00
Florian Weimer
570387156b Rebuild with binutils fix for ppc64le (#1475636) 2017-07-30 15:06:30 +02:00
Petr Stodulka
7cc97f7b44 Remove explicit libcurl requirement from git-core 2017-07-25 16:28:45 -04:00
Petr Stodulka
00a8980c58 add test by linkchecker for broken links in doc files
Links in docfiles are now automatically checked for correct paths
by linkchecker. The test is available only for Fedora 25+ system,
because the utility is not available for RHEL.
2017-07-25 16:28:45 -04:00
Todd Zullinger
00daf46570 Quiet a few more rpmlint complaints
A few more hidden files have crept into the files installed under
contrib.  Remove any .gitattributes, .gitignore, or .perlcriticrc files
found.
2017-07-25 16:28:44 -04:00
Todd Zullinger
57c799c234 Remove git-archimport from git command list
We have not supported git-archimport in many years and have removed the
files from the documentation.  Removing it from the command list ensures
that git will not generate a link to the command in the documentation.
This avoids leaving a broken link in the html docs.
2017-07-25 16:28:44 -04:00
Todd Zullinger
c13069e1fa Leave git-subtree.html in %_pkgdocdir to avoid broken links
The link to git.html in git-subtree.html expects to find git.html in the
main docdir.  Shipping git-subtree.html in contrib/subtree breaks this
link.
2017-07-25 16:28:44 -04:00
Petr Stodulka
c0de2acb92 Keep documentation files under %{_pkgdocdir} (#1357438)
Move documentation files from all subpackages into the %{_pkgdocdir}
directory, so links inside doc and man files are correct
  Resolves: #1357438

- excluded *py[co] files from doc/* subdirectories, as these files
  are not expected to be executed (thanks tmz)
2017-07-25 16:28:44 -04:00
Gwyn Ciesla
568aad0c32 2.13.3 2017-07-13 07:49:01 -05:00
Todd Zullinger
8c3e8ca7b2 Skip grep tests which fail intermittently on s390x
The grep tests succeed and fail intermittently on s390x.  Until that
arch is more established and works (or fails) consistently, skip these
tests rather than let s390x hold back ever other arch.
2017-06-25 11:52:00 -04:00
Todd Zullinger
38b835a543 Update to 2.13.2 2017-06-25 00:31:18 -04:00
Jitka Plesnikova
086b7a290d Perl 5.26 re-rebuild of bootstrapped packages 2017-06-07 16:42:33 +02:00
Todd Zullinger
b9d21c3c0e Update to 2.13.1
Upstream maintenance release.

Release notes: https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.13.1.txt
2017-06-05 00:18:13 -04:00
Jitka Plesnikova
1ae87e345a Perl 5.26 rebuild 2017-06-05 00:46:18 +02:00
Todd Zullinger
e15c234c87 Use default, collision-detecting SHA1 implementation
Upstream changed the default SHA1 implementation in 2.13.0 to one which
detects collisions¹.  It may be slightly slower than BLK_SHA1 in some
cases, but the added safety it provides in the face of the SHAttered²
attack should be worth the cost.

We overrode the default SHA1 implementation in b796934 (Update to
git-1.6.5.rc2 - Enable Linus' block-sha1 implementation.)  The main
reason was to avoid linking against openssl's libcrypto for most
binaries, which saved a measurable amount of space.  Using the new
DC_SHA1 default provides the same benefit.

¹ https://github.com/git/git/commit/e6b07da278
² https://shattered.io/
2017-05-20 12:13:47 -04:00
Todd Zullinger
96b2923f07 Update to 2.13.0 (resolves CVE-2017-8386) 2017-05-09 21:48:34 -04:00
Gwyn Ciesla
c0e7801e58 2.12.2 2017-03-29 10:20:49 -05:00
Gwyn Ciesla
4a094073ee 2.12.1 2017-03-21 09:08:43 -05:00
Jon Ciesla
29bd122462 2.12.0 2017-02-27 09:40:44 -06:00
Petr Stodulka
ae64f14a33 fix bogus date 2017-02-17 18:23:32 +01:00
Petr Stodulka
babb8edc26 Drop credential-gnome-keyring, but keep support for older OSs
Since the libsecret replaces the libgnome-keyring,
the libgnome-keyring is not necessary to keep it in the git package.
In addition, gnome-keyring is deprecated and according to people
from GNOME, they do not expect that anyone would want to use the old
library when libsecret is installed. So drop credentials for
libgnome-keyring.

However, I keep that credential in spec for older systems where it
has been originally, but it is split into the separate rpm, so at
least it will not be required by the git package. It can be removed
later.
2017-02-17 18:21:21 +01:00
Petr Stodulka
da382eea6e Use %{_localstatedir} macro instead of %{_var}
Usually in Fedora this change will not change paths in current
packages, because both macros has same value now (/var). However,
the first one is "more recommended", because some build environments
redefine path in this macro for own purposes, in contrast with
%{_var} which is usually kept as it is.
2017-02-17 18:21:21 +01:00
Petr Stodulka
6517883454 Fix definition of the desktop_vendor_tag macro
The macro should be set to 0 even for RHEL-6 system. Previously
it was set to 1 for RHEL-6.
2017-02-17 18:21:21 +01:00
Petr Stodulka
8fbeb92b39 Fix requirements of packages
- missing libcurl requirement for git-core
- git-email & git-cvs should require 'perl(Git)' according
  to guidelines
- perl-generators are required during build only for Fedora 21+
2017-02-17 18:21:21 +01:00
Petr Stodulka
ad1da77a0b Remove non-ASCII characters from texts 2017-02-17 18:21:21 +01:00
Todd Zullinger
32280c1880 Fix a number of macro-in-comment warnings from rpmlint 2017-02-17 18:21:21 +01:00
Todd Zullinger
7ed4a36058 Clean up contrib/{credential,subtree} to avoid cruft in git-core-doc 2017-02-17 18:21:21 +01:00
Todd Zullinger
4d0be1a231 Fix typo in git-core summary (funcionality -> functionality)
Noticed by rpmlint.
2017-02-17 18:21:21 +01:00
Todd Zullinger
51d2701b11 Fix version of emacs-git and emacs-git-el provides
A provides using '<=' doesn't make much sense.  Indeed, rpmlint
complains about it:

$ rpmlint git
...
git.x86_64: W: self-obsoletion emacs-git <= 2.4.5 obsoletes emacs-git <= 2.4.5
git.x86_64: W: self-obsoletion emacs-git-el <= 2.4.5 obsoletes emacs-git-el <= 2.4.5
2017-02-17 18:21:21 +01:00
Todd Zullinger
3164faa3d6 Use %{_mandir} in git/git-core file list filters
The escaped forward slashes in '\/man\/' stood out as unnecessary.
Replace the string with the %{_mandir} macro for a stricter match.
2017-02-17 18:21:21 +01:00
Todd Zullinger
3041eeb9aa Run git test suite
Per https://fedoraproject.org/wiki/Packaging:Guidelines#Test_Suites run
the tests in %check.
2017-02-17 18:21:21 +01:00
Todd Zullinger
01e0c73c8a Enable libsecret credential helper
From the upstream commit message which added the helper¹:

    This is based on the existing gnome-keyring helper, but instead of
    libgnome-keyring (which was specific to GNOME and is deprecated), it
    uses libsecret which can support other implementations of XDG Secret
    Service API.

¹ 87d1353 (contrib: add credential helper for libsecret, 2016-10-09)
2017-02-17 18:21:21 +01:00
Todd Zullinger
8849588b49 Move gnome-keyring credential helper from git-core to git
We can avoid pulling in libgnome-keyring for git-core installs.
Presumably, those who want a minimal git install won't miss a
credentials helper which is only useful with a graphical desktop.

It is also worth noting that libgnome-keyring is deprecated in favor of
libsecret.  A credential helper based on libsecret is included in git
2.11.0 but is not shipped in our packages (yet).
2017-02-17 18:21:21 +01:00
Todd Zullinger
513cd389a5 Remove rsync requirement from git-core
Nothing in git-core requires rsync.  Upstream, only git-archimport.perl
still requires rsync, which we have not provided since 3f0dc97 (Drop
git-arch on fedora >= 16, 2011-07-26).
2017-02-17 18:21:14 +01:00
Fedora Release Engineering
8efd801b05 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-10 10:59:24 +00:00
Jon Ciesla
c6b850b847 2.11.1 2017-02-03 07:49:15 -06:00
Jon Ciesla
1c71dc1833 2.11.0 2016-11-30 12:12:54 -06:00
Jon Ciesla
781d911ea8 2.10.2 2016-10-31 08:59:33 -05:00
Jon Ciesla
2f2b6cc62f 2.10.1 2016-10-04 10:02:17 -05:00
Todd Zullinger
ddd981b2f3 Update to 2.10.0
https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.10.0.txt
2016-09-03 13:35:10 -04:00
Jon Ciesla
24278ab333 2.9.3 2016-08-15 08:51:43 -05:00
Jon Ciesla
31aba69924 2.9.2 2016-07-15 23:23:57 -05:00
Jon Ciesla
0042522977 2.9.1 2016-07-12 08:48:48 -05:00
Petr Písař
e99ee5b2e5 Mandatory Perl build-requires added <https://fedoraproject.org/wiki/Changes/Build_Root_Without_Perl> 2016-06-24 09:50:19 +02:00
Jon Ciesla
3119e08ee4 2.9.0 2016-06-14 10:05:22 -05:00
Jon Ciesla
f9560e8034 2.8.4 2016-06-08 12:38:36 -05:00
Jitka Plesnikova
6f5b14254a Perl 5.24 rebuild 2016-05-20 11:52:18 +02:00
Todd Zullinger
184b9f323d Update to 2.8.3
https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.8.3.txt
2016-05-19 15:50:40 -04:00
Jitka Plesnikova
20f7e3b90f Perl 5.24 re-rebuild of bootstrapped packages 2016-05-19 12:21:55 +02:00
Todd Zullinger
72c240de2a Define __global_ldflags on EL < 7 (#1337137)
Building on EL was unintentionally broken by 58fa169 (Set LDFLAGS for
hardened builds (#1289728), 2016-04-11).

Thanks to Dimitry Andric for reporting this issue.
2016-05-18 14:49:56 -04:00
Todd Zullinger
2ca467acc0 Use perl(MOD::NAME) format for perl-DBD-SQLite and perl-Digest-MD5 deps
This form handles changing package names better.  If a module is moved
into or out of core perl, for example, the requirement can still be
found if it uses perl(MOD::NAME).

This was brought up in 1337137.
2016-05-18 14:49:56 -04:00
Jitka Plesnikova
942eb47ddb Perl 5.24 re-rebuild of bootstrapped packages 2016-05-18 18:27:47 +02:00
Jitka Plesnikova
c320052f0b Perl 5.24 rebuild 2016-05-15 08:52:31 +02:00
Todd Zullinger
116ecc2e5d Update to 2.8.2 2016-04-29 19:03:35 -04:00
Todd Zullinger
a35a98f0cf Fix most recent %changelog entry formatting
I updated my vim spec file plugin which improves %changelog generation
and didn't notice that my 'spec_chglog_format' config (which included a
trailing '-') caused a duplicate '-'.
2016-04-11 21:39:55 -04:00
Todd Zullinger
58fa1693f7 Set LDFLAGS for hardened builds (#1289728)
Without LDFLAGS the git exectuables were not being linked with the
desired settings for hardened builds.
2016-04-11 13:28:46 -04:00
Paolo Bonzini
40aebfdc03 Install git-credentials-netrc (#1303358) 2016-04-06 11:59:30 -04:00
Jon Ciesla
75fe565d2a 2.8.1 2016-04-05 08:44:06 -04:00
1b7f6045f2 Update to 2.8.0
- Use license macro for COPYING
2016-03-29 20:27:54 -04:00
Todd Zullinger
f5bc9a8383 Check upstream GPG signatures in %prep
Many years ago, the GPG signature file was included in the source list¹.
A compromise at kernel.org caused the tarballs to move to googlecode.com
for a number of releases and the signatures were not provided in an
easily downloaded format².  When the source location was moved back to
kernel.org, the signature file had already been removed from the spec
file and was not re-added³.

There is an effort underway to make GPG signature verification a
requirement when upstream provides signatures⁴.  Regardless of whether
this becomes a requirement in the packaging guidelines, verification of
upstream signatures makes good sense.  It also makes the process easier
for git package maintainers, who are (or should be ;) doing this
manually for each upstream git release.

While adding the signatures to the source list, all non-upstream source
files were moved to Source10 and above.  This should make it easier to
add new upstream source files in the future, avoiding the need for
tedious (and error-prone) renumbering of existing sources.

Remove the unused entry for Patch14 also.

¹ ea3f253 Include gpg signature for tarball in SRPM (2011-08-26)
² c57f383 Update to 1.7.9.1 (2012-02-15)
³ b741f45 Change source URLs, as googlecode doesn't have up-to-date
           tarballs (2014-06-10)
⁴ https://fedorahosted.org/fpc/ticket/610
  https://fedoraproject.org/wiki/PackagingDrafts:GPGSignatures
  https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/2TBK4LLNRH73QJQSXWFPCQYHGTSJ3C7P/
2016-03-27 21:31:56 -04:00
Todd Zullinger
a823c54d04 Use https for URL / Source as well as smaller tar.xz files
Using https URL's for source files provides a little more security for
those downloading the code.  Packagers, of course, should be verifying
the GPG signature files before pushing new releases to Fedora's source
cache¹.

While we're changing the source URL's, we might as well use the smaller
tar.xz files which upstream provides.  (This requires minor adjustments
to the unpacking of prebuilt html and man tarballs; tar on el5 does not
know how to automatically filter via xz.)

¹ Replace .xz with .sign for the signatures, which are made against the
uncompressed tarballs.
2016-03-27 17:05:37 -04:00
Konrad Scherer
63f895c570 Improve el5 and el6 support (bug 1320210)
Workaround missing git subtree documentation in prebuilt docs, dropping
a redundant listing of Documentation/docbook-xsl.css,

Only add git-cvsserver binary once if the core dir matches the
bin dir as it does on el5.

Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com>
2016-03-27 16:09:09 -04:00
Todd Zullinger
185b89b8d4 Conditionalize bash-completion pkg-config usage for EL <= 6
Using pkg-config for the bash-completion path isn't an option on older
EL systems.  To allow rebuilding of current git on those systems, the
bash-completion pkg-config bits are conditionalized similar to other
areas where Fedora and older EL differ.
2016-03-27 15:28:48 -04:00
David Woodhouse
caed48f0ed Update to 2.7.4 (CVE-2016-2315 CVE-2016-2324) 2016-03-18 01:24:52 +00:00
Jon Ciesla
0c34dab4c9 2.7.3 2016-03-14 09:46:46 -04:00
Jon Ciesla
e94a7fd739 2.7.2 2016-02-23 08:01:47 -06:00
Jon Ciesla
5325c4e4e9 2.7.1 2016-02-06 21:07:52 -06:00
Petr Stodulka
f427188b0c remove all '.gitignore' files from packages 2016-02-04 16:23:20 +01:00
Dennis Gilmore
4291a717b1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-03 21:55:30 +00:00
Jon Ciesla
8c329d52ad 2.7.0 2016-01-05 07:43:09 -06:00
Jon Ciesla
8e1923e29c 2.6.4. 2015-12-09 07:26:41 -06:00
Petr Stodulka
0301fd8dd6 found 2 perl scripts in git-core, move them to git package
Resolves: #1284688
2015-11-27 23:00:59 +01:00
Jon Ciesla
7d4a2e0e59 2.6.3 2015-11-06 07:03:04 -06:00
Petr Stodulka
33a437b21a provides failback for the macro _pkgdocdir (#1277550) 2015-11-03 17:18:44 +01:00
Jon Ciesla
0c650a61ea 2.6.2 2015-10-17 13:34:02 -05:00
Jon Ciesla
eeecf762f5 2.6.1 2015-10-06 07:56:52 -05:00
Jon Ciesla
6966d34d30 2.6.0. 2015-09-29 09:33:59 -05:00
Jon Ciesla
bbabdf92c4 2.5.3 2015-09-18 05:09:59 -05:00
Jon Ciesla
79d3615974 2.5.2 2015-09-11 08:18:28 -05:00
Petr Stodulka
363e4bd878 Update to 2.5.1 2015-08-29 16:45:59 +02:00
Jon Ciesla
1d4074d3cc 2.5.0. 2015-07-28 10:39:46 -05:00
Petr Stodulka
fda943bf1f rebase to 2.4.6 2015-07-16 21:27:49 +02:00
Petr Stodulka
a450dba5a6 No longer split out emacs-git and emacs-git-el sub-packages 2015-07-09 09:14:06 +02:00
Jon Ciesla
55d5f601ae 2.4.5. 2015-06-26 14:50:07 -05:00
Petr Stodulka
ffa0047cf6 fix inifinite loop due to broken symlink and new requires in git-svn 2015-06-22 19:23:03 +02:00
Jon Ciesla
0338f401b4 2.4.4. 2015-06-16 20:45:36 -05:00
Jitka Plesnikova
8cb50df866 Perl 5.22 re-rebuild of bootstrapped packages 2015-06-10 15:57:26 +02:00