Blob Blame History Raw
# As we only have python files do not create a debuginfo package
%global debug_package %{nil}

Name:           powerline
Version:        2.6
Release:        2%{?dist}

Summary:        The ultimate status-line/prompt utility
License:        MIT

BuildRequires:  python3-setuptools
BuildRequires:  python3-sphinx
BuildRequires:  python3-devel
BuildRequires:  fdupes
BuildRequires:  fontconfig
BuildRequires:  systemd
BuildRequires:  tmux
BuildRequires:  vim-minimal

Requires:       python3
Requires:       powerline-fonts
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd

Recommends:     python3-pygit2

Source1:        vim-powerline.metainfo.xml

Patch0:         powerline-py2v3-fix.patch
Patch1:         powerline-2.6-gcc7_fixes.patch

Powerline is a status-line plugin for vim, and provides status-lines and prompts
for several other applications, including zsh, bash, tmux, IPython, Awesome and

%package docs
Summary: Powerline Documentation
BuildArch: noarch

%description docs
This package provides the powerline documentation.

%package fonts
Summary: Powerline Fonts
BuildArch: noarch
Requires: fontconfig

%description fonts
This package provides the powerline fonts.

%package -n vim-powerline
Summary: Powerline VIM plugin
BuildArch: noarch
Requires: vim
Requires: %{name} = %{version}-%{release}
Obsoletes: vim-plugin-powerline
Provides: vim-plugin-powerline

%description -n vim-powerline
Powerline is a status-line plugin for vim, and provides status-lines and

%package -n tmux-powerline
Summary: Powerline for tmux
BuildArch: noarch
Requires: tmux
Requires: %{name} = %{version}-%{release}

%description -n tmux-powerline
Powerline for tmux.


    source /usr/share/tmux/powerline.conf

to your ~/.tmux.conf file.

%autosetup -p1

# nothing to build

sed -i -e "/DEFAULT_SYSTEM_CONFIG_DIR/ s@None@'%{_sysconfdir}/xdg'@" powerline/
sed -i -e "/TMUX_CONFIG_DIRECTORY/ s@BINDINGS_DIRECTORY@'/usr/share'@" powerline/
CFLAGS="%{optflags}" \
%{__python3} install --prefix=%{_prefix} --root=%{buildroot} --optimize=1

# build docs
pushd docs
%__make html SPHINXBUILD=/usr/bin/sphinx-build-3
%__rm _build/html/.buildinfo
# A structure gets initialized while building the docs with os.environ.
# This works around an rpmlint error with the build dir being in a file.
sed -i -e 's/abuild/user/g' _build/html/develop/extensions.html

%__make man SPHINXBUILD=/usr/bin/sphinx-build-3

# config
install -d -m0755 %{buildroot}%{_sysconfdir}/xdg/%{name}
cp -a powerline/config_files/* %{buildroot}%{_sysconfdir}/xdg/%{name}/

# fonts
install -d -m0755 %{buildroot}%{_sysconfdir}/fonts/conf.d
install -d -m0755 %{buildroot}%{_datadir}/fonts/truetype
install -d -m0755 %{buildroot}%{_datadir}/fontconfig/conf.avail

install -m0644 font/PowerlineSymbols.otf %{buildroot}%{_datadir}/fonts/truetype/PowerlineSymbols.otf
install -m0644 font/10-powerline-symbols.conf %{buildroot}%{_datadir}/fontconfig/conf.avail/10-powerline-symbols.conf

ln -s %{_datadir}/fontconfig/conf.avail/10-powerline-symbols.conf %{buildroot}%{_sysconfdir}/fonts/conf.d/10-powerline-symbols.conf

# manpages
%__install -d -m0755 %{buildroot}%{_datadir}/man/man1
for f in powerline-config.1 powerline-daemon.1 powerline-lint.1 powerline.1; do
%__install -m0644 docs/_build/man/$f %{buildroot}%{_datadir}/man/man1/$f

# awesome
install -d -m0755 %{buildroot}%{_datadir}/%{name}/awesome/
mv %{buildroot}%{python3_sitelib}/powerline/bindings/awesome/powerline.lua %{buildroot}%{_datadir}/%{name}/awesome/
mv %{buildroot}%{python3_sitelib}/powerline/bindings/awesome/ %{buildroot}%{_datadir}/%{name}/awesome/

# bash bindings
install -d -m0755 %{buildroot}%{_datadir}/%{name}/bash
mv %{buildroot}%{python3_sitelib}/powerline/bindings/bash/ %{buildroot}%{_datadir}/%{name}/bash/

# fish
install -d -m0755 %{buildroot}%{_datadir}/%{name}/fish
mv %{buildroot}%{python3_sitelib}/powerline/bindings/fish/ %{buildroot}%{_datadir}/%{name}/fish

# i3
install -d -m0755 %{buildroot}%{_datadir}/%{name}/i3
mv %{buildroot}%{python3_sitelib}/powerline/bindings/i3/ %{buildroot}%{_datadir}/%{name}/i3

# ipython
install -d -m0755 %{buildroot}%{_datadir}/%{name}/ipython
mv %{buildroot}%{python3_sitelib}/powerline/bindings/ipython/ %{buildroot}%{_datadir}/%{name}/ipython
mv %{buildroot}%{python3_sitelib}/powerline/bindings/ipython/ %{buildroot}%{_datadir}/%{name}/ipython

# qtile
install -d -m0755 %{buildroot}%{_datadir}/%{name}/qtile
mv %{buildroot}%{python3_sitelib}/powerline/bindings/qtile/ %{buildroot}%{_datadir}/%{name}/qtile

# shell bindings
install -d -m0755 %{buildroot}%{_datadir}/%{name}/shell
mv %{buildroot}%{python3_sitelib}/powerline/bindings/shell/ %{buildroot}%{_datadir}/%{name}/shell/

# tcsh
install -d -m0755 %{buildroot}%{_datadir}/%{name}/tcsh
mv %{buildroot}%{python3_sitelib}/powerline/bindings/tcsh/powerline.tcsh %{buildroot}%{_datadir}/%{name}/tcsh

# tmux plugin
install -d -m0755 %{buildroot}%{_datadir}/tmux
mv %{buildroot}%{python3_sitelib}/powerline/bindings/tmux/powerline*.conf %{buildroot}%{_datadir}/tmux/

# vim plugin
install -d -m0755 %{buildroot}%{_datadir}/vim/vimfiles/plugin/
mv %{buildroot}%{python3_sitelib}/powerline/bindings/vim/plugin/powerline.vim %{buildroot}%{_datadir}/vim/vimfiles/plugin/powerline.vim
rm -rf %{buildroot}%{python3_sitelib}/powerline/bindings/vim/plugin
install -d -m0755 %{buildroot}%{_datadir}/vim/vimfiles/autoload/powerline
mv %{buildroot}%{python3_sitelib}/powerline/bindings/vim/autoload/powerline/debug.vim %{buildroot}%{_datadir}/vim/vimfiles/autoload/powerline/debug.vim
rm -rf %{buildroot}%{python3_sitelib}/powerline/bindings/vim/autoload

# zsh
install -d -m0755 %{buildroot}%{_datadir}/%{name}/zsh
mv %{buildroot}%{python3_sitelib}/powerline/bindings/zsh/ %{buildroot}%{_datadir}/%{name}/zsh
mv %{buildroot}%{python3_sitelib}/powerline/bindings/zsh/powerline.zsh %{buildroot}%{_datadir}/%{name}/zsh

# vim-powerline appdata
mkdir -p %{buildroot}%{_datadir}/appdata
install -m 644 %{SOURCE1} %{buildroot}%{_datadir}/appdata

# systemd
install -d -m 0755 %{buildroot}%{_unitdir}
install -m 0644 powerline/dist/systemd/powerline-daemon.service %{buildroot}%{_unitdir}/powerline.service

# cleanup
%__rm -rf %{buildroot}%{python3_sitelib}/%{name}/config_files

%if 0%{?fedora}
%fdupes %{buildroot}%{python3_sitelib}

%systemd_post powerline.service

%systemd_preun powerline.service

%systemd_postun_with_restart powerline.service

%license LICENSE
%doc README.rst
%dir %{_sysconfdir}/xdg/powerline
%config(noreplace) %{_sysconfdir}/xdg/powerline/colors.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/config.json

%dir %{_sysconfdir}/xdg/powerline/colorschemes
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/default.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/solarized.json

%dir %{_sysconfdir}/xdg/powerline/colorschemes/pdb
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/pdb/solarized.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/pdb/__main__.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/pdb/default.json

%dir %{_sysconfdir}/xdg/powerline/colorschemes/vim
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/vim/solarized.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/vim/__main__.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/vim/default.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/vim/solarizedlight.json

%dir %{_sysconfdir}/xdg/powerline/colorschemes/tmux
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/tmux/solarized.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/tmux/default.json

%dir %{_sysconfdir}/xdg/powerline/colorschemes/shell
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/shell/solarized.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/shell/__main__.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/shell/default.json

%dir %{_sysconfdir}/xdg/powerline/colorschemes/ipython
%config(noreplace) %{_sysconfdir}/xdg/powerline/colorschemes/ipython/__main__.json

%dir %{_sysconfdir}/xdg/powerline/themes
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/ascii.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/powerline.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/powerline_terminus.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/powerline_unicode7.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/unicode.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/unicode_terminus.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/unicode_terminus_condensed.json

%dir %{_sysconfdir}/xdg/powerline/themes/ipython
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/ipython/in2.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/ipython/rewrite.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/ipython/in.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/ipython/out.json
%dir %{_sysconfdir}/xdg/powerline/themes/pdb
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/pdb/default.json

%dir %{_sysconfdir}/xdg/powerline/themes/shell
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/shell/__main__.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/shell/select.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/shell/default.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/shell/default_leftonly.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/shell/continuation.json

%dir %{_sysconfdir}/xdg/powerline/themes/tmux
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/tmux/default.json

%dir %{_sysconfdir}/xdg/powerline/themes/vim
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/quickfix.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/tabline.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/__main__.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/cmdwin.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/plugin_commandt.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/default.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/plugin_gundo-preview.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/plugin_gundo.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/plugin_nerdtree.json
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/vim/help.json

%dir %{_sysconfdir}/xdg/powerline/themes/wm
%config(noreplace) %{_sysconfdir}/xdg/powerline/themes/wm/default.json

%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/awesome
%dir %{_datadir}/%{name}/bash
%dir %{_datadir}/%{name}/fish
%dir %{_datadir}/%{name}/i3
%dir %{_datadir}/%{name}/ipython
%dir %{_datadir}/%{name}/qtile
%dir %{_datadir}/%{name}/shell
%dir %{_datadir}/%{name}/tcsh
%dir %{_datadir}/%{name}/zsh

%files docs
%doc docs/_build/html

%files fonts
%dir %{_datadir}/fonts/truetype

%files -n vim-powerline
%dir %{_datadir}/vim/vimfiles
%dir %{_datadir}/vim/vimfiles/autoload
%dir %{_datadir}/vim/vimfiles/autoload/powerline
%dir %{_datadir}/vim/vimfiles/plugin
%dir %{_datadir}/appdata

%files -n tmux-powerline
%dir %{_datadir}/tmux

* Thu Jul 13 2017 Andreas Schneider <> - 2.6-2
- Fix build with gcc7

* Wed May 10 2017 Andreas Schneider <> - 2.6-1
- Update to version 2.6
  o Added support for new Vim modes.
  o Added ability to control output padding.
  o Added iTunes player segment.
  o Added support for tmux development builds.
  o Added a workaround for a fish bug sometimes occurring when using eval from
  o (upstream status unknown).
  o Added a workaround for tmux 2.4 bug: excessive CPU usage when having multiple
  o panes (also fixed upstream).
  o Fixed clean file status support in mercurial.
  o Fixed error when battery capacity is zero and using DBus.
  o Fixed mercurial command servers leakage.
  o Refactored awesome bindings to use powerline daemon.

* Fri Feb 10 2017 Andreas Schneider <> - 2.5.2-1
- Update to version 2.5.2
  o Fixed ipython-5.2* support.
  o Made more robust theme default.
  o Made it use hglib in place of unstable mercurial plugin API.
  o Fixed latest fish version support.
  o Some other fixes and documentation adjustments.

* Wed Dec 21 2016 Andreas Schneider <> - 2.5-4
- Add upstream work around for gnome-terminal issues, brc#1403133
- Make pygit a recommondation

* Mon Dec 19 2016 Miro Hrončok <> - 2.5-3
- Rebuild for Python 3.6

* Wed Nov 09 2016 Andreas Schneider <> - 2.5-2
- resolves: #1392619 - Put fonts in its own package
- Add require for pygit2

* Thu Aug 18 2016 Andreas Schneider <> - 2.5-1
- Update to version 2.5
  o Fix trailing whitespace segment on Python 3.
  o Fix left segments support in tmux-2.1
  o Add support for IPython-5
  o Increase socket backlog number for `powerline-daemon`
  o Use different query to retrieve weather
  o Implement stash backend for git
  o Provide stash counter
  o Include stash in default shell layout
  o Expose stash to Vim

* Tue Jul 19 2016 Fedora Release Engineering <> - 2.4-4

* Fri Jun 17 2016 Andreas Schneider <> - 2.4-3
- Add support to start the powerline daemon with systemd
- Fix left segments support in tmux-2.1

* Tue Apr 19 2016 Patrick Uiterwijk <> - 2.4-2
- Apply patch to prefer python3 over python2

* Tue Apr 19 2016 Andreas Schneider <> - 2.4-1
- Update to version 2.4
  o Added short parameter for system_load segment that leaves only one load
    average number out of three.
  o Added powerline.segments.i3wm.scratchpad segment used to list windows that
    are currently on the scratchpad.
  o Added support for multiple batteries in battery segment.
  o Added .i3wm.workspace segment which describes single i3wm workspace and
    workspaces lister. Old .i3wm.workspaces segment was deprecated.
  o Added support for multiple monitors in lemonbar bindings.
  o Added support for most recent tmux version (2.2).
  o Fixed battery status support on some linux systems.
  o Fixed MPD bindings: they sometimes were not able to handle names if they
    did not fit ASCII.
  o Fixed MPD bindings: they did not correctly get elapsed time.
  o Fixed AttributeError on some systems: LC_MESSAGES is not always available.
  o Fixed Mac OS-specific variant of spotify player support when Python-3 is
  o Fixed performance of the tabline.

* Sat Apr 16 2016 Patrick Uiterwijk <> - 2.3-4
- resolves: #1323828 - Revert move introduced in ceaa583d 

* Thu Feb 04 2016 Fedora Release Engineering <> - 2.3-3
- Rebuilt for

* Tue Nov 24 2015 Andreas Schneider <> - 2.3-2
- resolves: #1282487 - Switch to python3

* Tue Oct 20 2015 Andreas Schneider <> - 2.3-1
- Update to version 2.3
  o Added ability to hide domain part of the user name to common.env.user
  o Added ability to show conda environment to virtualenv segment.
  o Added systemd service file.
  o Added ability to detect internal_ip interface using default gateway.
  o Added support for password-protected connections in mpd player bindings.
  o Added `output` option to i3wm.workspaces segment to filter workspaces
    based on their output.
  o Added “charging” indicator to battery segment.
  o Made tmux bindings show zoom indicator in window status.
  o Fixed tmux bindings so that they support tmux-2.1.
  o Fixed support for unicode characters in segment.
- resolves: #1272103 - Add missing vim python functions

* Thu Sep 17 2015 Andreas Schneider <> - 2.2-2
- resolves: #1246510 - Add appdate metainfo file for Gnome
- resolves: #1260620 - Install vim plugin to correct directory
- resolves: #1260617 - Rename vim plugin to vim-powerline

* Wed Sep 02 2015 Andreas Schneider <> - 2.2-1
- Update to version 2.2
  o Added support for newest psutil version.
  o Added support for non-SSL IMAP4 connection.
  o Added support for clickable tab names in Vim.
  o Added support for truncating tmux segments.
  o Added support for new (i3ipc) module that interacts with i3.
  o Added support for i3 modes.
  o Fixed coloring of network_load segment.
  o Fixed dash bindings on OS X.
  o Fixed parsing numbers starting with 2 supplied by POWERLINE_*_OVERRIDES
    environment variables.

* Thu Jun 18 2015 Fedora Release Engineering <> - 2.1.4-2
- Rebuilt for

* Tue May 19 2015 Andreas Schneider <> - 2.1.4-1
- Update to version 2.1.4
  o Added support for placing powerline on the left in qtile.
  o Added qtile-1.9 support.
  o Fixed tmux-2.0 support.
  o Made it easier to run tests outside of travis.
  o Added some missing highlight groups.
  o Made it omit writing empty above lines.
  o Fixed UnicodeEncodeError when running powerline-lint with
    non-ASCII characters in error messages.
  o Fixed code that replaces &statusline value: it now is able
    to replace non-ASCII &statuslines as well.

* Fri Feb 20 2015 Andreas Schneider <> - 2.1-1
- Update to version 2.1
  o Added BAR support.
  o Added support for pdb (Python debugger) prompt.
  o Added more highlight groups to solarized colorscheme.
  o Updated zpython bindings.
  o Fixed C version of the client on non-Linux platforms.
  o Fixed some errors in powerline-lint code.
  o Fixed Python-2.6 incompatibilities in

* Tue Jan 20 2015 Andreas Schneider <> - 2.0-1
- Update to version 2.0
  o Added fbterm (framebuffer terminal emulator) support.
  o Added theme with unicode-7.0 symbols.
  o Added support for PyPy3.
  o Compiler is now called with CFLAGS from environment in if present.
  o Added support for pyuv-1.*.
  o Added a way to write error log to Vim global variable.
  o powerline script now supports overrides from $POWERLINE_CONFIG_OVERRIDES,
    $POWERLINE_THEME_OVERRIDES environment variables, so does powerline-config
  o powerline and powerline-config scripts now support taking paths from
  o powerline-lint is now able to report dictionaries which were merged in to
    form marked dictionary and what were the previous values of overridden
  o Added support for Byron Rakitzis’ rc shell reimplementation.
  o Added support for querying battery status on cygwin platform.

* Wed Dec 10 2014 Andreas Schneider <> - 1.3.1-2
- Update cflags patch.

* Tue Dec 09 2014 Andreas Schneider <> - 1.3.1-1
- Update to version 1.3.1.
- resolves: #1171420 - Fix passing optflags to the C compiler.

* Thu Dec 04 2014 Andreas Schneider <> - 1.3-2
- Fix powerline-config.

* Wed Dec 03 2014 Andreas Schneider <> - 1.3-1
- Update to version 1.3.

* Sat Jun 07 2014 Fedora Release Engineering <> - 0.0.1-8.20140508git9e7c6c
- Rebuilt for

* Thu May 08 2014 Andreas Schneider <> - 0.0.1-7.20140508git9e7c6c
- Update to revision 0.0.1-7.20140508git9e7c6c

* Wed Mar 12 2014 Andreas Schneider <> - 0.0.1-6.20140226git70a94e
- Update to revision 0.0.1-6.20140226git70a94e

* Thu Nov 28 2013 Andreas Schneider <> - 0.0.1-6.20131123gitdb80fc
- Remove EPEL support.
- Removed BuildRoot.

* Wed Nov 27 2013 Andreas Schneider <> - 0.0.1-5.20131123gitdb80fc
- Remove
- Moved BuildReqruies.
- Try to fix build on EPEL5.

* Wed Nov 27 2013 Andreas Schneider <> -
- Added missing vim directories.
- Fixed BuildRoot.
- Use fdupes only on Fedora.
- Use name tag in Requires.

* Mon Nov 25 2013 Andreas Schneider <> -
- Changed define to global
- Moved BuildArch

* Sun Nov 24 2013 Andreas Schneider <> -
- Set checkout.
- Set source URL.
- Fix default configuration path.

* Sun Nov 24 2013 Andreas Schneider <> -
- Initial package.