File gear.spec of Package gear

Name: gear
Version: 2.0.3
Release: 1
Summary: Get Every Archive from git package Repository
License: GPLv2+
Group: Development/Other
BuildArch: noarch
Source: %name-%version.tar
Patch: %name-2.0.3-set_var_value.patch
# due to gear-srpmimport.
Requires: faketime
# due to git-diff-tree --no-ext-diff
Requires: git-core >= 1.5.3
# due to quote_shell_args()
Requires: libshell >= 0.1.0

BuildRequires: asciidoc help2man
BuildRequires: git-core >= 1.8.0
BuildRequires: libshell >= 0:0.0.3-alt1
%{?!_without_check:%{?!_disable_check:BuildRequires: faketime lzma xz zip unzip}}

This package contains utilities for building RPM packages from GEAR repositories
and managing GEAR repositories.
See %_docdir/%name-%version/QUICKSTART.ru_RU.UTF-8 for details.

%setup -q
%patch -p1
sed -i 's/xz\( compressed data\)/[Xx][Zz]\1/' gear-update-src-cpio

	asciidoc $

make check

install -pD -m 0644 contrib/gear-bash_completion %buildroot/etc/bash_completion.d/gear
ln -s gear-store-tags %buildroot%_bindir/gear-update-tag
ln -s gear-store-tags.1 %buildroot%_man1dir/gear-update-tag.1

%config /etc/bash_completion.d/*

* Mon Aug 11 2014 Led <> 2.0.3-1
- initial build for openSUSE
- fixed set unbound vars

* Wed May 22 2013 Dmitry V. Levin <> 2.0.3-alt1
- gear-update-src-{cpio,gem,tar,zip}: set safe permissions
  of the unpacked directory tree.
- gear: fixed --export-dir support (by Paul Wolneykien).

* Mon Jan 21 2013 Dmitry V. Levin <> 2.0.2-alt1
- Fixed typo in specsubst support.

* Tue Jan 08 2013 Dmitry V. Levin <> 2.0.1-alt1
- test suite: updated for git >= 1.8.0.

* Fri Dec 14 2012 Dmitry V. Levin <> 2.0.0-alt1
- gear-sh-functions (expand_rpm_macros): changed macros expansion
  algorithm to expand those macros that are known and leave unknown
  macros unexpanded.
- Implemented .gear/rules specsubst directive that controls
  instantiation of spec file templates with parameters
  defined by tag objects (closes: #20912).

* Tue Dec 04 2012 Dmitry V. Levin <> 1.7.7-alt1
- gear-store-tags: handle the last line of .gear/rules when
  it is not EOL-terminated (closes: #28165).

* Sun Nov 25 2012 Dmitry V. Levin <> 1.7.6-alt1
- gear-srpmimport: added support of srpms with type RPMLEAD_BINARY.

* Sun Oct 28 2012 Dmitry V. Levin <> 1.7.5-alt1
- gear-commit: improved specfile guess logic (closes: #27754).
- gear-srpmimport: fixed import of archives containing .git
  subdirectories by ignoring these .git subdirectories (closes: #25981).

* Thu Jul 26 2012 Dmitry V. Levin <> 1.7.4-alt1
- gear: allowed path separators in tar base names (closes: #27400).
- test suite: updated for git >= 1.7.11.

* Thu Apr 12 2012 Dmitry V. Levin <>
- test suite: updated for zip >= 3.0.

* Mon Feb 27 2012 Dmitry V. Levin <>
- gear-command-remote-build: canonicalize workdir
  (by Alexey Gladkov; closes: #19994).
- gear-update: added --remove-source option (by Alexey Gladkov).
- gear-mock: new utility, implements support for mock build system
  (by Alexey Gladkov).
- gear: pass -n option to gzip(1) by default.
- test suite: updated for git >= 1.7.9.

* Fri Aug 12 2011 Dmitry V. Levin <>
- gear-srpmimport: added xz support.
- gear(1): minor documentation enhancements.
- gear: implemented support for specifying a HEAD subtree to --tree-ish
  along with --commit (by Kirill Shutemov).

* Sun Mar 06 2011 Dmitry V. Levin <>
- gear-merge: fixed incomplete migration to libshell in 1.6.0-alt1
  (by Vladimir Kamarzin; closes: #24268).

* Sat Mar 05 2011 Dmitry V. Levin <>
- gear-*-rules.5: fixed title line sections.

* Sat Feb 26 2011 Dmitry V. Levin <>
- gear: fixed typo in --commit during merge (closes: #25160).
- gear-srpmimport: pass --no-verify option to git-commit.

* Mon Sep 06 2010 Dmitry V. Levin <>
- gear-import: pass --no-verify option to git-commit.
- Renamed gear-update-tag to gear-store-tags (closes: #18739).
- gear-command-{hasher,rpmbuild}: unset GIT_* environment
  variables used by gear itself (closes: #20884).
- tests: fixed false positive on non-tmpfs filesystems
  (closes: #24012).

* Thu Jul 29 2010 Dmitry V. Levin <>
- gear-update-tag --verify: Implemented check for missing and
  unnecessary tags.

* Wed Jul 28 2010 Dmitry V. Levin <> 1.7.2-alt1
- gear-commit, gear-merge: export variables for use in git hooks
  (by Alexey Gladkov; closes: #23803).
- (is_ancestor_commit): rewriten in more reliable
  and efficient way; affects gear(1) and gear-update-tag(1).

* Thu Jul 08 2010 Dmitry V. Levin <> 1.7.1-alt1
- gear: reimplemented --commit option, so it no longer touches
  current branch and git index file.
- gear-rpm: added additional diagnostics about missing command
  (closes: #21892).
- gear-import (remove_suffix): added *.xz and *.txz suffixes.
- gear-update-tag: recognize and ignore "suffix=" tar's rules option.

* Mon Apr 12 2010 Dmitry V. Levin <> 1.7.0-alt1
- Bugfixes:
  + manpages: Quoted dash symbols in command and option names
    (closes: #22526).
- Improvements:
  + Documented git-config options (Alexey Froloff).
  + gear-update:
    - Implemented plugins support (Alexey Gladkov, Alexey Froloff).
    - Added rubygems support (Alexey Froloff).
    - Added tests (Alexey Froloff).
  + gear-import: New utility
    (Alexey Gladkov, Alexey Froloff; closes: #23320).

* Mon Oct 05 2009 Dmitry V. Levin <> 1.6.0-alt1
- Bugfixes:
  + gear-merge: Use quote_shell_args() from libshell (Alexey Gladkov).
  + gear-command-hasher: Use gear-command-tar.
  + gear-command-tar, gear-command-remote-build: Fixed tar --create.
  + gear --export-dir: Avoid creating useless output tarball.
  + gear: Remove original file after compression.
- Improvements:
  + gear: Enabled quoting support in rules syntax (Alexey Gladkov, me).
  + Added a note about special characters quoting support.
  + gear, gear-update-tag,
    Added and documented lzma/xz support.
  + gear-update: Read --exclude pattern defaults from git-config
    variable gear.update.exclude-pattern (Alexey Froloff).
  + gear: Use bold red color in the warning about unreverted
    temporary commit.
  + Added tests for basic gear rules.

* Fri Mar 13 2009 Dmitry V. Levin <> 1.5.3-alt1
- gear-create-tag: Fixed usage, added --time option (Alexey Gladkov).
- gear-srpmimport: Made --quiet mode more quiet.
- gear-srpmimport: Enhanced changelog name parser.
- gear-commit: Added --no-edit option (Alexey Gladkov).
- gear-remote: Fixed options order (Alexey Gladkov; closes: #19073).
- Added URL, updated %%description (closes: #18852).

* Wed Jan 28 2009 Dmitry V. Levin <> 1.5.2-alt1
- gear: make_compress(): Added keywords support in the name option (Alexey Gladkov).
- gear-update-tag: Added 'compress' directive (Alexey Gladkov; closes: #17624).
- gear-remote: Added --remote-repo (Alexey Gladkov; closes: #17865).
- gear: Fixed "diff" rule misbehavior (closes: ALT#17751).
- gear (get_tar_name, get_diff_name): Do check_path on modified path.
- gear-update-tag: chdir to toplevel directory (closes: ALT#18029).
- gear-commit: Unquote %%%% in changelog text.
- gear-srpmimport, gear-update: Use .gitattributes export-ignore
  instead of .gitignore to import empty directories.
-, Converted from koi8r to utf8.

* Thu Oct 09 2008 Dmitry V. Levin <> 1.5.1-alt1
- gear-commit: Fix help message (Alexey Gladkov; closes: #16690).
- gear-changelog: Use git-config if GIT_AUTHOR_* is not set (Alexey Gladkov; closes: #16705).
- gear-update (Alexey Gladkov; closes: #17075):
  + Don't try to remove destdir in empty repository.
  + Remove temp directory before adding destdir into repository.
- (Alexey Froloff):
  + gear_config_option: New function, to use git config for option storage.
  + Fetch --verbose and --quiet options defaults from git config.
- gear-create-tag: Fetch --name and --message defaults from git config (Alexey Froloff).
- gear-changelog: Fetch releaser name and email defaults from git config (Alexey Froloff).
- gear: Fetch compress method and --rules options from git config (Alexey Froloff).
- Fixed signal handler exit code.
- (get_NVR_from_spec), gear-srpmimport:
  Allow and strip trailing whitespaces in name/version/release.
- gear: Implement keywords substitution in directory names.

* Fri Aug 01 2008 Dmitry V. Levin <> 1.5.0-alt1
- gear-changelog: New utility for preparing changelog records
  based on git commit messages (Alexey Gladkov).
- gear-update-tag: New --verify option (Alexey Froloff).
- gear-update: Add .gitignore file into empty directories like
  gear-srpmimport does (Alexey Gladkov).
- gear: New "compress" rule (Alexey Gladkov, me).
- Added bash-completion functions for gear utilities (Alexey Gladkov).
- gear-merge: Numerous changes (Alexey Froloff, Alexey Gladkov).
- Various manpage cleanups (me).

* Mon Mar 17 2008 Dmitry V. Levin <> 1.4.0-alt1
- Changes made by Alexey Gladkov:
  + gear-merge: New utility to merge branches.
  + gear-merge-rules(5): New man page which describes
    the .gear/merge file format.
  + gear --command: New option.
  + gear-command-hasher, gear-command-rpmbuild, gear-command-tar:
    New helpers.
  + gear-hsh, gear-rpm, gear-buildreq: New utilities which
    hopefully provide more convenient user interface than
    old --hasher and --rpmbuild options.
  + gear-command-remote-build: New helper.
  + gear-remote, gear-remote-hsh, gear-remote-rpm: New utilities.
  + gear-commit: Use getopt from libshell.
- My changes:
  + gear-create-tag: Fixed -u option support.
  + gear-srpmimport: Add empty .gitignore file to each empty directory.
  + Made readlink(1) usage secure.
  + gear-srpmimport: Added support for git-commit versions
    which do not handle --fast option.
  + Use shell-error, shell-quote and shell-args from libshell
    to replace several functions originally developed within
    hasher and gear projects.
  + Do not use dashed form of git commands.
  + gear: Implemented empty archive suffix support.
  + Renamed: *.ru_RU.KOI8-R -> *.ru.koi8
  + Formatted for AsciiDoc.
  + Imported thesis about gear from Protva2007
    in AsciiDoc format.
  + Packaged asciidoc-generated and files.
  + gear-update-tag: Added -q/--quiet and --no-clean options.
  + gear-update-tag: Changed --all option to imply --clean.
- Other minor fixes and cleanups, see git log for details.

* Fri Nov 09 2007 Dmitry V. Levin <> 1.3.1-alt1
- gear-create-tag:
  + Enabled keyword substitution in --name and ----message options (ldv).
- (get_NVR_from_spec):
  + Added minimal support for RPM macros (vsu).

* Tue Oct 23 2007 Dmitry V. Levin <> 1.3.0-alt1
- Added .gear directory support (ldv).
- Extended rules syntax: made whitespaces between directive
  and its parameters optional (legion, ldv).
- gear-create-tag (show_help): Fixed options output (ldv).
- gear (make_diff): Pass additional options to git-diff-tree,
  this change makes "diff" directive complete (ldv).
- Install gear-sh-functions without execute permissions set (ldv).
- gear-commit: Fixed unbound variable error (legion, #13057).
- gear-update: Added --create option (legion).
- gear-update: Added check for initial commit and
  for changed files in the index (legion, ldv).
- gear-hsh-build (raorn):
  + Honor "prefix" option from ~/.hasher/config.
  + Enhanced --repo handling.
  + exit_handler: Show path to hasher repo if build has failed.

* Tue Sep 18 2007 Dmitry V. Levin <> 1.2.7-alt1
- gear-srpmimport: Pass --fast option to git-commit (ldv).
- gear-update: Added --all and --exclude options (legion).

* Wed Aug 29 2007 Dmitry V. Levin <> 1.2.6-alt1
- gear-update (legion):
  + Added cpio* types support.
  + Allowed update of top directory.
- gear:
  + Robustify --commit (ldv).
- gear, gear-srpmimport, gear-update:
  + Run grep in C locale, run sort in C collation (ldv).
- gear-create-tag:
  + New utility, creates a signed release tag object (legion, ldv).

* Sun May 20 2007 Dmitry V. Levin <> 1.2.5-alt1
- gear-srpmimport:
  + Do not perform a noop merge (#11721).
  + Fixed import of archives with non-directory toplevel files.

* Tue Apr 10 2007 Dmitry V. Levin <> 1.2.4-alt1
- (chdir_to_toplevel): New function.
- gear, gear-srpmimport, gear-update: Use chdir_to_toplevel().
- gear-commit: Chdir to toplevel directory early.

* Mon Mar 12 2007 Dmitry V. Levin <> 1.2.3-alt1
- Added gear-rules(5) man page which describes the .gear-rules
  file format (vsu).

* Sun Mar 11 2007 Dmitry V. Levin <> 1.2.2-alt1
- Changed "git-COMMAND" style commands to "git COMMAND" style.
- gear-update: Suppressed "git rm" output.
- gear-update, gear-update-tag: Separated "git COMMAND"
  command-line options from lists of files where appropriate.
  + Reworded git config recommendations using "git config" commands.
  + Updated examples.

* Sun Mar 04 2007 Dmitry V. Levin <> 1.2.1-alt1
- gear: Fixed suffix support (ldv, #11008).

* Wed Feb 28 2007 Dmitry V. Levin <> 1.2.0-alt1
- gear-update: New utility, replaces gear-update-archive and
  gear-update-directory (legion, ldv).
- gear-upload: Move to separate package, girar-utils (ldv).
- gear: Chdir to toplevel directory early (ldv).
- gear-srpmimport (ldv):
  + Chdir to toplevel directory early.
  + If --quiet option given, do commit and merge quietly.
  + Rename --no-untar option to --no-unpack.
  + Rewrite archive importer:
    - Use file(1) to recognize file types
      instead of suffix-based switch.
    - Handle zip archives.
    - Support arbitrary archive names.
- QUICKSTART.ru_RU.KOI8-R: Mention ~/.gitconfig (azol).

* Sat Dec 09 2006 Dmitry V. Levin <> 1.1.1-alt1
- gear-update-tag: Fix temporary directory removal (ldv).
- gear-update-tag: Treat "zip" directive as "tar" (raorn).
- gear: Implement suffix= option for tar-like rules (george).

* Wed Nov 22 2006 Dmitry V. Levin <> 1.1.0-alt1
- gear, gear-commit,
  Reworked to implement .gear-rules "tags:" directive and
  .gear-tags directory support (vsu, raorn).
- gear-update-tag:
  New utility, updates list of stored tags
  in the package repository (vsu).
- gear-update-archive:
  Avoid loss of source files due to .gitignore (vsu).
- gear-release:
  Removed unneeded utility, the idea of release tags
  seems to be dead-end (ldv).
- Renamed info() to msg_info() to avoid ambiguity and
  unwanted package requirements (ldv).
- QUICKSTART.ru_RU.KOI8-R: Fix typos (#10229).
- gear-srpmimport:
  Removed implicit requirement for --branch (ldv, #10274).
- gear:
  Added keyword substitution in directory name (ldv, #10091).
  Replaced deprecated "git-tar-tree" with "git-archive --format=tar" (ldv).
  Implemented zip archive type support (raorn).
- gear-upload:
  New utility to ease initial upload of git repositories to git.alt (legion).

* Thu Oct 05 2006 Dmitry V. Levin <> 1.0.3-alt1
- Update copyright information.
- Add fresh git-core to package requirements.
- gear:
  + Process exclude directives without warnings (vsu).
  + Fix checks for multiple specfiles (vsu).
- gear-release:
  + Create tags in refs/releases/ directory (ldv).
- gear-update-archive:
  + Fix old source removal (ldv).
  + Fix check for untracked or modified files (legion).
  + Implement top directory update (legion).
  + Fix destination directory validation (legion).
  + Fix typos (vsu).
- gear-hsh-build:
  + more flexible hasher support (raorn).
  + also pass --repo option to hasher (raorn).
  + honor "target" option from hasher config (raorn).
  + use $GIT_DIR/$CWD if no repositories given (raorn).
- Makefile:
  + Specify the program source for man pages (vsu).
  + Remove boldface from the NAME section of man pages (vsu).
  + Document operating modes of gear (vsu).
  + Document current limitations of gear (vsu).
  + Fix short description (ldv).
  + Fix typos (vsu).

* Fri Sep 08 2006 Dmitry V. Levin <> 1.0.2-alt1
- gear:
  + New option: --update-spec (legion).
- gear-commit:
  + New option: --spec (legion).
- gear-release:
  + New option: --create (legion).
- gear-update:
  + Rename to gear-update-archive (legion).
- gear-hsh-build:
  + New utility (raorn).

* Mon Aug 28 2006 Dmitry V. Levin <> 1.0.1-alt1
- gear-release: Fix typo in option handling (legion).
- gear-update: New utility (legion, ldv).

* Tue Aug 22 2006 Dmitry V. Levin <> 1.0.0-alt1
- Initial revision.
openSUSE Build Service is sponsored by