All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH/RFC v2] RPM spec: optionally include bash completion support
@ 2010-03-20  0:32 Ian Ward Comfort
  2010-03-20 18:18 ` [PATCH] Add a git-completion rpm subpackage to the spec Ben Walton
  0 siblings, 1 reply; 8+ messages in thread
From: Ian Ward Comfort @ 2010-03-20  0:32 UTC (permalink / raw)
  To: git

Include the bash completion routines from contrib/ in our core RPM, in the
standard system-wide location, when our spec is built "--with completion". The
completion routines are not packaged by default.
---

 git.spec.in |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/git.spec.in b/git.spec.in
index ee74a5e..65a0db8 100644
--- a/git.spec.in
+++ b/git.spec.in
@@ -1,4 +1,5 @@
 # Pass --without docs to rpmbuild if you don't want the documentation
+# Pass --with completion to rpmbuild if you want shell completion support
 
 Name: 		git
 Version: 	@@VERSION@@
@@ -127,6 +128,11 @@ find $RPM_BUILD_ROOT -type f -name perllocal.pod -exec rm -f {} ';'
 rm -rf $RPM_BUILD_ROOT%{_mandir}
 %endif
 
+%if %{?_with_completion:1}0
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
+install -m 644 -T contrib/completion/git-completion.bash $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/git
+%endif
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -136,6 +142,7 @@ rm -rf $RPM_BUILD_ROOT
 %doc README COPYING Documentation/*.txt
 %{!?_without_docs: %doc Documentation/*.html Documentation/howto}
 %{!?_without_docs: %doc Documentation/technical}
+%{?_with_completion: %{_sysconfdir}/bash_completion.d}
 
 %files svn
 %defattr(-,root,root)
-- 
1.7.0.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH] Add a git-completion rpm subpackage to the spec
  2010-03-20  0:32 [PATCH/RFC v2] RPM spec: optionally include bash completion support Ian Ward Comfort
@ 2010-03-20 18:18 ` Ben Walton
  2010-03-20 20:12   ` Junio C Hamano
  0 siblings, 1 reply; 8+ messages in thread
From: Ben Walton @ 2010-03-20 18:18 UTC (permalink / raw)
  To: git; +Cc: Ben Walton

Make the rpm spec file create a git-completion subpackage that
contains the bash completion support from the contrib/ directory.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
---

This is the alternate method for shipping the bash completion support.
I think I personally prefer this method, but I'd be happy to see
either solution ship as part of the .spec file so that I don't need to
continue handling it separately.

 git.spec.in |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/git.spec.in b/git.spec.in
index ee74a5e..d59747a 100644
--- a/git.spec.in
+++ b/git.spec.in
@@ -80,6 +80,13 @@ Requires:       git = %{version}-%{release}, tk >= 8.4
 %description gui
 Git GUI tool
 
+%package completion
+Summary:	Bash completion support for Git
+Group:		Development/Tools
+Requires:	git = %{version}-${release}, bash
+%description completion
+Bash completion support for Git
+
 %package -n gitk
 Summary:        Git revision tree visualiser ('gitk')
 Group:          Development/Tools
@@ -113,6 +120,8 @@ rm -rf $RPM_BUILD_ROOT
 make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" DESTDIR=$RPM_BUILD_ROOT \
      %{path_settings} \
      INSTALLDIRS=vendor install %{!?_without_docs: install-doc}
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/bash_completion.d
+install -m 644 -T contrib/completion/git-completion.bash $RPM_BUILD_ROOT/%{_sysconfdir}/bash_completion.d/git
 test ! -d $RPM_BUILD_ROOT%{python_sitelib} || rm -fr $RPM_BUILD_ROOT%{python_sitelib}
 find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
 find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';'
@@ -177,6 +186,10 @@ rm -rf $RPM_BUILD_ROOT
 %{!?_without_docs: %{_mandir}/man1/git-citool.1*}
 %{!?_without_docs: %doc Documentation/git-citool.html}
 
+%files completion
+%defattr(-,root,root)
+%{_sysconfdir}/bash_completion.d/git
+
 %files -n gitk
 %defattr(-,root,root)
 %doc Documentation/*gitk*.txt
@@ -192,6 +205,10 @@ rm -rf $RPM_BUILD_ROOT
 # No files for you!
 
 %changelog
+* Sat Mar 20 2010 Ben Walton <bwalton@artsci.utoronto.ca>
+- Add git-completion subpackage to distribute bash completion from
+  contrib.
+
 * Sun Jan 31 2010 Junio C Hamano <gitster@pobox.com>
 - Do not use %define inside %{!?...} construct.
 
-- 
1.7.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] Add a git-completion rpm subpackage to the spec
  2010-03-20 18:18 ` [PATCH] Add a git-completion rpm subpackage to the spec Ben Walton
@ 2010-03-20 20:12   ` Junio C Hamano
  2010-03-20 21:01     ` Ian Ward Comfort
  2010-03-20 21:14     ` Ben Walton
  0 siblings, 2 replies; 8+ messages in thread
From: Junio C Hamano @ 2010-03-20 20:12 UTC (permalink / raw)
  To: Ben Walton; +Cc: git

Ben Walton <bwalton@artsci.utoronto.ca> writes:

> Make the rpm spec file create a git-completion subpackage that
> contains the bash completion support from the contrib/ directory.
>
> Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
> ---
>
> This is the alternate method for shipping the bash completion support.
> I think I personally prefer this method, but I'd be happy to see
> either solution ship as part of the .spec file so that I don't need to
> continue handling it separately.

As long as %{_sysconfdir}/bash_completion.d/ is the appropriate place for
*all* RPM based distros, which I don't knonw, the patch looks sensible.
May I ask for what distribution you are "handling it"?  The last thing I
want to do is to get in the way of distro packagers.

I looked for "gitcompletion" or "git-completion" in rpmfind.net, but
didn't find anything, which may actually be a good sign that whatever we
do here won't stomp on whatever distro package maintainers would do.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Add a git-completion rpm subpackage to the spec
  2010-03-20 20:12   ` Junio C Hamano
@ 2010-03-20 21:01     ` Ian Ward Comfort
  2010-03-20 21:14     ` Ben Walton
  1 sibling, 0 replies; 8+ messages in thread
From: Ian Ward Comfort @ 2010-03-20 21:01 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Ben Walton, git

On 20 Mar 2010, at 1:12 PM, Junio C Hamano wrote:
> Ben Walton <bwalton@artsci.utoronto.ca> writes:
>
>> Make the rpm spec file create a git-completion subpackage that
>> contains the bash completion support from the contrib/ directory.
>>
>> Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
>> ---
>>
>> This is the alternate method for shipping the bash completion  
>> support.
>> I think I personally prefer this method, but I'd be happy to see
>> either solution ship as part of the .spec file so that I don't need  
>> to
>> continue handling it separately.
>
> As long as %{_sysconfdir}/bash_completion.d/ is the appropriate  
> place for
> *all* RPM based distros, which I don't knonw, the patch looks  
> sensible.

The spec file provided by the author of bash-completion, Ian  
Macdonald, uses this path:

	http://www.caliban.org/files/redhat/SPECS/bash-completion.spec

As does the Fedora Project (including EPEL):

	http://cvs.fedoraproject.org/viewvc/rpms/bash-completion/F-13/bash-completion.spec?view=markup

	http://cvs.fedoraproject.org/viewvc/rpms/bash-completion/EL-5/bash-completion.spec?view=markup

OpenSUSE 11 does not appear to ship bash-completion:

	http://en.opensuse.org/Package_List/11.2/DVD9

But OpenSUSE 10.3 used the same path:

	http://www.novell.com/products/linuxpackages/opensuse/bash-completion.html

Mandriva uses the same path:

	http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/bash-completion/current/SPECS/bash-completion.spec?view=markup

That's all the definitive information I can find at the moment.

-- 
Ian Ward Comfort <icomfort@stanford.edu>
Systems Team Lead, Academic Computing Services, Stanford University

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Add a git-completion rpm subpackage to the spec
  2010-03-20 20:12   ` Junio C Hamano
  2010-03-20 21:01     ` Ian Ward Comfort
@ 2010-03-20 21:14     ` Ben Walton
  2010-03-21  1:20       ` Junio C Hamano
  2010-03-21 15:51       ` Todd Zullinger
  1 sibling, 2 replies; 8+ messages in thread
From: Ben Walton @ 2010-03-20 21:14 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Excerpts from Junio C Hamano's message of Sat Mar 20 16:12:34 -0400 2010:

> looks sensible.  May I ask for what distribution you are "handling
> it"?  The last thing I want to do is to get in the way of distro
> packagers.

I can't say it's _the_ global definition for RPM based distros, but I
suspect the redhat derived ones would use this location.  I'm working
against RHEL5.

The info that Ian provides seems to corroborate this hypothesis.

HTH.
-Ben
-- 
Ben Walton
Systems Programmer - CHASS
University of Toronto
C:416.407.5610 | W:416.978.4302

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Add a git-completion rpm subpackage to the spec
  2010-03-20 21:14     ` Ben Walton
@ 2010-03-21  1:20       ` Junio C Hamano
  2010-03-21 15:51       ` Todd Zullinger
  1 sibling, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2010-03-21  1:20 UTC (permalink / raw)
  To: Ben Walton, Ian Ward Comfort; +Cc: git

Ben Walton <bwalton@artsci.utoronto.ca> writes:

> Excerpts from Junio C Hamano's message of Sat Mar 20 16:12:34 -0400 2010:
>
>> looks sensible.  May I ask for what distribution you are "handling
>> it"?  The last thing I want to do is to get in the way of distro
>> packagers.
>
> I can't say it's _the_ global definition for RPM based distros, but I
> suspect the redhat derived ones would use this location.  I'm working
> against RHEL5.
>
> The info that Ian provides seems to corroborate this hypothesis.
>
> HTH.

Yes, it helps a lot---thank you, both!

Will queue.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Add a git-completion rpm subpackage to the spec
  2010-03-20 21:14     ` Ben Walton
  2010-03-21  1:20       ` Junio C Hamano
@ 2010-03-21 15:51       ` Todd Zullinger
  2010-03-21 20:06         ` Ben Walton
  1 sibling, 1 reply; 8+ messages in thread
From: Todd Zullinger @ 2010-03-21 15:51 UTC (permalink / raw)
  To: Ben Walton; +Cc: Junio C Hamano, git

[-- Attachment #1: Type: text/plain, Size: 2491 bytes --]

Ben Walton wrote:
> Excerpts from Junio C Hamano's message of Sat Mar 20 16:12:34 -0400
> 2010:
>
>> looks sensible.  May I ask for what distribution you are "handling
>> it"?  The last thing I want to do is to get in the way of distro
>> packagers.
>
> I can't say it's _the_ global definition for RPM based distros, but
> I suspect the redhat derived ones would use this location.  I'm
> working against RHEL5.
>
> The info that Ian provides seems to corroborate this hypothesis.

FWIW, upstream bash-completion is no longer handled by Ian.  The
current upstream is at http://bash-completion.alioth.debian.org/

The paths haven't changed currently, though I thought I read that
eventually they'd like to move the default location for completion
scripts to /usr/share/bash-completion/ (many are already installed
there, but are symlinked to /etc/bash_completion.d by bash-completion
packages (in the Fedora/EPEL packages via %triggers when the
applications they complete are installed).

Also worth noting for RHEL/CentOS 5 folks is that the current Fedora
packages should rebuild cleanly on those systems.  Typically, I do
this via mock, which sets some of the needed rpm macros, but they are
also available in the buildsys-macros package¹.  I'm hoping to move
git in EPEL to a newer version at some point but I haven't made time
to do so yet.

I also haven't made time to see what, if any, of the changes we've
made in the Fedora packages might be worthwhile to integrate into the
git.git rpm spec file. :/

The Fedora packages install the completion scripts by default.  The
completion is only sourced when someone has installed bash-completion,
so the thought is that if you installed that you would want git to
provide completion by default.  For those that only want git
completion without the more general bash-completion package, it's
simple to source /etc/bash_completion.d/git.  In that light, is there
a compelling reason not to install the completion by default?

¹ http://buildsys.fedoraproject.org/buildgroups/rhel5/i386/
  The may eventually be added to the epel-release package to make it
  simpler to rebuild EPEL packages (and Fedora packages on EPEL).

-- 
Todd        OpenPGP -> KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
People are crazy and times are strange
I'm locked in tight, I'm out of range
I used to care, but things have changed


[-- Attachment #2: Type: application/pgp-signature, Size: 542 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] Add a git-completion rpm subpackage to the spec
  2010-03-21 15:51       ` Todd Zullinger
@ 2010-03-21 20:06         ` Ben Walton
  0 siblings, 0 replies; 8+ messages in thread
From: Ben Walton @ 2010-03-21 20:06 UTC (permalink / raw)
  To: Todd Zullinger; +Cc: Junio C Hamano, git

Excerpts from Todd Zullinger's message of Sun Mar 21 11:51:56 -0400 2010:

Hi Todd,

> The paths haven't changed currently, though I thought I read that
> eventually they'd like to move the default location for completion
> scripts to /usr/share/bash-completion/ (many are already installed
> there, but are symlinked to /etc/bash_completion.d by
> bash-completion packages (in the Fedora/EPEL packages via %triggers
> when the applications they complete are installed).

Should this be taken as:

* Eventually, /etc/bash_completion will source files directly from
  /usr/share/...
OR
* To play nice with the distros, triggers and symlinks are the way to
  go after installing to /usr/share/...?

> I also haven't made time to see what, if any, of the changes we've
> made in the Fedora packages might be worthwhile to integrate into
> the git.git rpm spec file. :/

I just took a look at the spec from 1.7.0.1-1 in rawhide.  Some of the
stuff it includes is Fedora/RHEL specific, but a few items that I
wouldn't mind seeing merged into the stock .spec file are the
splitting of the daemon package with the addition of an xinetd.d/git
file and the emacs support subpackage.

I also like the gitweb sub-package, but it doesn't meet the (site
specific) needs I have for deployment...In general, I think support in
the standard .spec for it is a good thing though.

> simple to source /etc/bash_completion.d/git.  In that light, is
> there a compelling reason not to install the completion by default?

Well, that's a good point.  I think my personal inclination for a
separate package comes from having it separated in OpenCSW.  Most of
the reasons for a separate package there likely don't apply here
though, so maybe it should be part of git-core?  As I said when I sent
the alternate (separate rpm) version, I'm happy with either solution
as long as the completion support is more easily available when I
build rpms in the future.

Thanks
-Ben
-- 
Ben Walton
Systems Programmer - CHASS
University of Toronto
C:416.407.5610 | W:416.978.4302

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-03-21 20:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-20  0:32 [PATCH/RFC v2] RPM spec: optionally include bash completion support Ian Ward Comfort
2010-03-20 18:18 ` [PATCH] Add a git-completion rpm subpackage to the spec Ben Walton
2010-03-20 20:12   ` Junio C Hamano
2010-03-20 21:01     ` Ian Ward Comfort
2010-03-20 21:14     ` Ben Walton
2010-03-21  1:20       ` Junio C Hamano
2010-03-21 15:51       ` Todd Zullinger
2010-03-21 20:06         ` Ben Walton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.