Commit Graph

702 Commits

Author SHA1 Message Date
Todd Zullinger
e17874a9b1 Link git-citool to git-gui
The git-gui Makefile does not follow the INSTALL_SYMLINKS setting.
Until it does, manually symlink git-citool to git-gui.

Test that the files are identical before linking, to avoid issues if
they begin to differ in the future.
2019-02-24 13:31:22 -05:00
Todd Zullinger
530061ce99 Move gitweb manpages to gitweb package
The gitweb manpages should be installed with the gitweb package.  This
discrepancy was noted by Robert P. J. Day on the git list¹.

¹ https://public-inbox.org/git/alpine.LFD.2.21.1902230756280.24879@localhost.localdomain/
2019-02-24 13:31:08 -05:00
Todd Zullinger
050797604f Update to 2.21.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.21.0.txt
2019-02-24 13:30:39 -05:00
Todd Zullinger
42b4954b73 Update to 2.21.0.rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.21.0.txt
2019-02-19 18:51:40 -05:00
Todd Zullinger
233359ed66 Set SOURCE_DATE_EPOCH and TZ to improve build reproducibility
The documentation tools respect these variables when generating dates in
the man and html docs.  This is a small step toward making the package
builds reproducible.

An alternate method to set SOURCE_DATE_EPOCH would be to set the rpm
%source_date_epoch_from_changelog macro.  Using the version file from
the tarball is a little nicer as the date is printed in the man pages.
We'd still need to set TZ anyway, as the html documentation sets the
'last updated' footer entry based on the timestamp of the corresponding
txt file.

[Note: It is possible to avoid the 'last updated' footer entirely by
setting the asciidoc footer-style attribute to none.  This would need to
be done via sed or a patch, as there's not currently a way to set this
in config.mak -- but perhaps there should be.]

Reference: https://reproducible-builds.org/specs/source-date-epoch/
2019-02-16 14:22:24 -05:00
Todd Zullinger
f506af1ff5 Update to 2.21.0.rc1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.21.0.txt
2019-02-14 03:32:30 -05:00
Todd Zullinger
aefb419775 Remove %changelog entries prior to 2017
The git history serves as the repository for the old entries.  The
changelog was roughly 40% of the total lines in the spec file.
2019-02-13 22:43:32 -05:00
Todd Zullinger
74154edcfe Update to 2.21.0.rc0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.21.0.txt
2019-02-13 22:41:10 -05:00
Todd Zullinger
a643ff944c Drop unneeded TEST_SHELL_PATH make variable
TEST_SHELL_PATH was added in 62f562d ("Use 'prove' as test harness,
enable shell tracing", 2018-01-18).  Shortly afterward, upstream commit
a5bf824f3b ("t: prevent '-x' tracing from interfering with test helpers'
stderr", 2018-02-25)¹ removed the need to use bash to get the benefits of
running the test suite with '-x' tracing.

¹ https://github.com/git/git/commit/a5bf824f3b
2019-02-11 22:59:50 -05:00
Todd Zullinger
95fc1fa70e Use build_cflags/build_ldflags instead of optflags/__global_ldflags
The build_cflags and build_ldflags macros replace the deprecated
optflags and __global_ldflags macros, per buildflags.md in
redhat-rpm-config¹.

Note: EPEL provides these macros for compatibility.

¹ https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/master/f/buildflags.md
2019-02-11 22:59:50 -05:00
Todd Zullinger
10da171608 Fix formatting of contrib/{contacts,subtree} docs
The Makefiles for contrib/{contacts,subtree} don't include various
asciidoc, docbook, and xmlto options which are added to docs built from
the Documentation dir.  Without these options the man page generated
for git-contacts has formatting issues.

Move the contrib/{contacts,subtree} docs to the Documentation dir to be
built along with the other doc files.
2019-02-11 22:59:49 -05:00
Todd Zullinger
fa926617fe Add grep patterns for checking skipped tests
It is useful to check the output of the test suite for skipped tests.
This reveals tests which may have missing BuildRequires or other issues.
Doing so can be tedious due to the many legitimate tests we skip.  Keep
a list of patterns matching tests we skip intentionally.

To use this list to process a build.log, run something like the
following:

    $ egrep '# SKIP|skipped:' build.log | egrep -v -f git.skip-test-patterns

There should be no output.  Any output should be checked and the tests
fixed or added to the skip patterns file.
2019-02-11 22:59:49 -05:00
Todd Zullinger
fcdcff43cd Drop gnupg BuildRequires on fedora >= 30
Now that Fedora 30 defaults to gnupg2 as /bin/gpg we don't need to
install gnupg for the test suite.  We already require gnupg2 to verify
the source files.
2019-02-11 22:59:49 -05:00
Todd Zullinger
37cec08b20 Print config.mak to aid confirmation/verification of settings
Having the output of the config.mak file in the build output is very
convenient, particularly when building in koji or copr where it is not
possible to directly access the buildroot.
2019-02-11 22:59:49 -05:00
Todd Zullinger
c9d5e18948 Work around gpg-agent issues in the test suite
GnuPG2 requires gpg-agent and tries to start it on demand.  The agent
uses a socket for communication and the path to this socket must be
shorter than sun_path [108 characters, per unix(7)].

Adjust the location of the temporary directories used by the test suite
by passing the --root option via GIT_TEST_OPTS.

One potential downside to this is that we use mktemp to create the
directory and this will differ between builds.  If/when we want to make
our builds entirely reproducible we will need to revisit this.  With
luck, gnupg will be better behaved by that time¹.

An alternate solution I tested was to rename the two problematic tests
(t5573 and t7612).  This is a brittle solution as new tests may be added
which cause the same path length issue for gpg-agent.

Also drop the redundant killing of gpg-agent.  This doesn't break
anything but it can only slow the test suite (however slightly).

¹ A ticket was filed to improve gpg-agent's handling of long paths in
  GNUPGHOME (but it's nearly 2 years old): https://dev.gnupg.org/T2964.
2019-02-11 22:59:49 -05:00
Todd Zullinger
a74fadafe7 Add gnupg2-smime and perl JSON BuildRequires for tests
In addition to the gnupg2-smime BR, patch an issue which prevents the
gpgsm tests from running.  Only include gpgsm on Fedora and RHEL > 8.
On RHEL < 8 the gnupg2-smime package is too old to run the tests.
2019-02-11 22:59:49 -05:00
Todd Zullinger
a245ca5676 print-failed-test-output: minor improvements
Drop the subshell used to create the string of dashes (and rename the
variable to "sep" at the same time).  Replace $(cat file) with the
equivalent but faster $(< file).
2019-02-11 22:47:30 -05:00
Todd Zullinger
bb15dc829e Replace gitweb home-link with inline sed
One less patch to manage.
2019-02-11 22:47:10 -05:00
Todd Zullinger
fece8d786b Add additional BuildRequires for i18n locales used in tests
The test suite uses is_IS.UTF-8 and is_IS.ISO8859-1 (via the
GETTEXT_LOCALE and GETTEXT_ISO_LOCALE prereq's.  Ensure these locales
are available.  Installing glibc-langpack-is is insufficient as it does
not provide is_IS.ISO8859-1, glibc-all-langpacks is also needed.

Now that we're installing additional langpacks, update the macro name
which was added in a6a24cf ("Add glibc-langpack-en BuildRequires for
en_US.UTF-8 locale", 2018-11-05).
2019-02-11 22:46:46 -05:00
Todd Zullinger
5aaf62d16f Remove extraneous pcre BuildRequires
The pcre BR was added in 6dc6285 ("Improve test suite coverage",
2017-11-10), which seems to have been an oversight.  The test suite
improvements were worked on over a long period of time.  It is quite
likely that the pcre BR was needed before 6dc6285 was finalized.
Regardless, we began building against pcre2 in 595b682 ("Use pcre2
library", 2017-07-22).

Note that pcre remains in the minimal buildroot due to dependencies in
glib2 and grep.
2019-02-11 22:46:22 -05:00
Fedora Release Engineering
6a5fa7acb3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 22:26:02 +00:00
Todd Zullinger
e38a5c222e Update to 2.20.1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.20.1.txt
2018-12-15 00:53:32 -05:00
Todd Zullinger
4fe38417f1 Update to 2.20.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.20.0.txt
2018-12-09 10:18:20 -05:00
Todd Zullinger
c983514258 Update to 2.20.0.rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.20.0.txt
2018-12-01 13:45:33 -05:00
Todd Zullinger
0b6f68c532 Update to 2.20.0.rc1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.20.0.txt
2018-11-26 22:51:54 -05:00
Todd Zullinger
e46c99bb3b Update to 2.19.2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.19.2.txt
2018-11-21 23:44:18 -05:00
Todd Zullinger
a6a24cf421 Add glibc-langpack-en BuildRequires for en_US.UTF-8 locale
Fedora 30 will remove glibc-all-langpacks from the default buildroot¹.
Ensure en_US.UTF-8 locale is present for the test suite.  Avoid C.UTF-8
until it is more widely used and tested.

¹ https://fedoraproject.org/wiki/Changes/Remove_glibc-langpacks-all_from_buildroot
2018-11-21 23:40:32 -05:00
Todd Zullinger
314daae243 Avoid 'unexpanded macro' warning in mock srpm builds
When preparing the srpm in mock or other minimal environments, the use
of %{_emacs_version} causes a spurious warning:

  Possible unexpanded macro in: Requires: emacs-filesystem >= %{_emacs_version}

Prevent the warning with a check that the macro is defined before use.

(There is another use of %{_emacs_version}, but it only applies to EL-6
where the warning is not present.  Just ignore it.)
2018-11-21 23:40:32 -05:00
Todd Zullinger
ac594c4ca5 Add comments to %endif statements
Make it easier to tell what %if conditions are being ended.  This is
particularly useful with nested conditions since we lack any indentation
to visually denote the conditional blocks.
2018-11-21 23:40:32 -05:00
Todd Zullinger
ba93b90998 Use %{without ...} macro consistently
The %{without ...} macro is easier to read than '! %{with ...}', use it
consistently.

(Note that using %without_* and %_without_* macros is still not
advised.)
2018-11-21 23:40:32 -05:00
Todd Zullinger
4e0f331329 Simplify gpg verification of Source0
The verification was simplified slightly in 903d8f3 ("Remove EL-5 and
old Fedora conditionals", 2017-07-22).

Further simplifications:

    - do away with unneeded variables
    - drop '--batch' and '>/dev/null' from gpg2 --dearmor
    - check tarball signature via stdin

The "noisy output from GnuPG 2.0" alluded to on EL <= 7 is no longer
present.  This has been tested in mock for el6, el7, and fedora
releases.
2018-11-21 23:40:32 -05:00
Todd Zullinger
a91c5fdb8a Skip test BuildRequires when --without tests is used
The chroot is a bit quicker to create and slightly smaller when building
'--without tests' if the BuildRequires needed to run the tests are
skipped.

Add pod2man dependency when documentation is enabled (the default).
Since git-2.17.0, pod2man is needed to build Git.3pm.  The pod2man
command is in perl-podlators on Fedora and EL >= 7, but in perl on EL-6.
Use %{_bindir}/pod2man to ensure the dependency is found regardless of
what package provides it.

The dependency is only missed when building without the test deps, as
the many perl requirements pulled in for the test suite bring in
pod2man.
2018-11-21 23:40:27 -05:00
Pavel Cahyna
79dbcc83dc Update condition for the t5540-http-push-webdav test for future RHEL 2018-10-22 11:43:21 +02:00
Todd Zullinger
32a31b7090 Update to 2.19.1 (CVE-2018-17456)
From the upstream release announcement:

  These releases fix a security flaw (CVE-2018-17456), which allowed an
  attacker to execute arbitrary code by crafting a malicious .gitmodules
  file in a project cloned with --recurse-submodules.

  When running "git clone --recurse-submodules", Git parses the supplied
  .gitmodules file for a URL field and blindly passes it as an argument
  to a "git clone" subprocess.  If the URL field is set to a string that
  begins with a dash, this "git clone" subprocess interprets the URL as
  an option.  This can lead to executing an arbitrary script shipped in
  the superproject as the user who ran "git clone".

  In addition to fixing the security issue for the user running "clone",
  the 2.17.2, 2.18.1 and 2.19.1 releases have an "fsck" check which can
  be used to detect such malicious repository content when fetching or
  accepting a push. See "transfer.fsckObjects" in git-config(1).

  Credit for finding and fixing this vulnerability goes to joernchen
  and Jeff King, respectively.

References:
https://public-inbox.org/git/xmqqy3bcuy3l.fsf@gitster-ct.c.googlers.com/
2018-10-05 15:18:02 -04:00
Todd Zullinger
1cb6673d8f Update t5551 w/curl-7.61.1 patch
Add a link to the upstream commit and use that patch.  The patch content
is the same -- only the metadata differs.
2018-10-01 23:26:58 -04:00
Todd Zullinger
dc9c346ade Filter rpmlint complaint about %{_emacs_version}
We BR emacs which requires emacs-common and provides %{_emacs_version}.
2018-09-11 03:06:06 -04:00
Todd Zullinger
93e9ed05e4 Update to 2.19.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.19.0.txt
2018-09-10 22:26:10 -04:00
Todd Zullinger
6bd166894f Add --without tests option to skip tests
While rpmbuild and mock have --nocheck to disable the %check section,
'fedpkg mockbuild' lacks this convenient option.

Add %bcond_without tests to allow 'fedpkg mockbuild --without tests' to
not run the test suite.  Disabling the test suite cuts the build time by
approximately 60%, which is very useful while working on changes to the
packaging.
2018-09-10 22:26:10 -04:00
Todd Zullinger
2ed8c8c53d Fix smart-http test due to changes in cookie sort order in curl-7.61.1
With curl-7.61.1 cookies are sorted by creation-time¹.  Sort the output
used in the 'cookies stored in http.cookiefile when http.savecookies
set' test before comparing it to the expected cookies.

¹ https://github.com/curl/curl/commit/e2ef8d6fa ("cookies: support
  creation-time attribute for cookies", 2018-08-28)
2018-09-10 22:26:10 -04:00
Sebastian Kisela
6bf3ed4a31 Fix builds without docs and without cvs and/or p4
When building with options "--without docs --without p4 --without cvs"
the build fails with the following errors:

    error: Installed (but unpackaged) file(s) found:
       /usr/share/doc/git/git-cvsexportcommit.txt
       /usr/share/doc/git/git-cvsimport.txt
       /usr/share/doc/git/git-cvsserver.txt
       /usr/share/doc/git/git-p4.txt
	Installed (but unpackaged) file(s) found:
       /usr/share/doc/git/git-cvsexportcommit.txt
       /usr/share/doc/git/git-cvsimport.txt
       /usr/share/doc/git/git-cvsserver.txt
       /usr/share/doc/git/git-p4.txt

The .txt files were not caught by the %files entry in the main git
package when cvs/p4 were disabled -- from 9cd8ee7 ("Disable CVS support
on EL > 7", 2018-03-14.  Those only applied when documentation was not
disabled.

Remove git-cvs* and git-p4* files from Documentation as well as the
%{buildroot}.  Simplify the find path by dropping %{_bindir} and
%{gitexecdir}.  Tighten the git-p4 glob to avoid unintended matches.
Drop the conditional inclusion of cvs/p4 docs in the main git package in
favor of removing the files entirely.
2018-09-10 22:26:10 -04:00
Sebastian Kisela
f8a83b9ea0 Move instaweb to a subpackage
Gives possibility to add dependencies for git-instaweb http daemon,
without having to install all dependencies at each git install.

Currently, lighttpd is required by the git-instaweb package.
The git-instaweb script supports other httpd daemons (httpd, mongoose,
plackup [in perl(Plack)], and webrick [in rub-libs]).  lighttpd is the
default, works without any configuration, and is only ~1M installed.
2018-09-10 22:26:10 -04:00
Todd Zullinger
3bd04f23dc Drop git-gnome-keyring obsolete for fedora > 30
Add a conditional to allow merging from master to f29.  The obsoletes
should be removed when f29 is EOL.  It was added in 2d1c8b1 ("Remove
obsolete gnome-keyring credential helper", 2018-01-09).  The comment was
improved in 4a06e99 ("clarify comment for obsolete git-gnome-keyring",
2018-09-04).
2018-09-10 22:26:10 -04:00
Todd Zullinger
1fe470a26e Remove python2 contrib scripts if python2 is not available
Avoid shipping scripts which require python2 when building without
python2.  The following scripts/directories are removed:

    contrib/fast-import/import-zips.py
    contrib/hg-to-git
    contrib/svn-fe
2018-09-10 22:26:10 -04:00
Todd Zullinger
601f4c9e87 Obsolete git-cvs if it's disabled
Similar to git-p4 in 5032bef ("bump release", 2018-09-04), add
Obsoletes: for git-cvs when it is disabled.
2018-09-10 22:25:49 -04:00
Todd Zullinger
cf5fc1863f Drop unnecessary Conflicts: when git-p4 is disabled
The Obsoletes: tag is sufficient to ensure git-p4 is removed when
updating to a newer git which lacks a git-p4 subpackage.
2018-09-08 01:30:00 -04:00
Todd Zullinger
2b58811801 Update to 2.19.0.rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.19.0.txt
2018-09-05 00:52:20 -04:00
Todd Zullinger
9c32e2fbfb Ignore rpmlint warning when git-p4 is obsoleted
When python2 is not available the git-p4 package is obsoleted.  Ignore
the subsequent rpmlint "obsolete-not-provided" warning.
2018-09-05 00:51:57 -04:00
Nils Philippsen
5032bef960 bump release 2018-09-04 14:18:29 +02:00
Nils Philippsen
4a06e99217 clarify comment for obsolete git-gnome-keyring 2018-09-04 14:17:41 +02:00
Todd Zullinger
dfcc5ccfe1 Update to 2.19.0.rc1 2018-08-28 16:41:06 -04:00