Blob Blame History Raw
%global         vimfiles        %{_datadir}/vim/vimfiles
%global         upstream_name   syntastic

%global         appdata_dir %{_datadir}/appdata
%global         python python2

Name:           vim-%{upstream_name}
Version:        3.8.0
Release:        6%{?dist}
Summary:        A vim plugins to check syntax for programming languages
Summary(fr):    Une extension de vim vérifiant la syntaxe pour les langages de programmation

License:        WTFPL
URL:            https://github.com/scrooloose/syntastic
Source0:        https://github.com/scrooloose/syntastic/archive/%{version}.tar.gz
Source1:        vim-syntastic.metainfo.xml

BuildArch:      noarch
Requires:       vim
BuildRequires:  glibc-common
# Needed for AppData check.
BuildRequires:  libappstream-glib
# Rename from 'syntastic'
Provides:       %upstream_name = %version-%release
Obsoletes:      %upstream_name < 3.7.0-6


%description
Syntastic is a syntax checking plugin that runs files through external syntax
checkers and displays any resulting errors to the user. This can be done on
demand, or automatically as files are saved. If syntax errors are detected, the
user is notified and is happy because they didn't have to compile their code or
execute their script to find them.

%description -l fr
Syntastic est une extension vérifiant la syntaxe des fichiers source, un outil
externe de vérification affiche toutes les erreurs trouvées à l'utilisateur.
Ceci peut être fait à la demande ou automatique au moment de la sauvegarde
du fichier. Si une erreur de syntaxe est détecté, les utilisateurs sont
informés et sont heureux de ne pas avoir compiler leur code ou d'avoir
exécuter leur script afin de les trouver.


%define add_subpackage(n:)                                                          \
%package %{-n*}                                                                     \
Summary:        A syntax checker for %{-n*} programming language                    \
Summary(fr):    Un vérificateur de syntaxe pour le langage de programmation %{-n*}  \
Requires:       %{name} =  %{version}-%{release}                                    \
Requires:       %*                                                                  \
Provides:       %upstream_name-%{-n*} = %version-%release                           \
Obsoletes:      %upstream_name-%{-n*} < 3.7.0-6                                     \
%{expand:%%{?%{-n*}_avail_arches:ExclusiveArch: %%%{-n*}_avail_arches}}             \
%description %{-n*}                                                                 \
Allows checking %{-n*} sources files.                                               \
%description -l fr %{-n*}                                                           \
Permet de vérifier les fichiers sources écrit en %{-n*}.                            \
%global files_to_do %{?files_to_do}                                               \\\
%files_for_lang %{-n*}                                                            \\\
%{expand:%%{?additional_files_for_lang_%{-n*}}}


# Initialize files_to_do macro here to empty string.  FedoraReview tool, for
# example, runs 'rpm.TransactionSet().parseSpec("syntastic.spec")' _twice_,
# while global macros survive from the first call (we don't want to have all
# %%files sections generated twice).
%global files_to_do %nil
%add_subpackage -n ada gcc-gnat
%add_subpackage -n ansible ansible-lint
%add_subpackage -n asciidoc asciidoc
%add_subpackage -n asl acpica-tools
%add_subpackage -n asm nasm
%global additional_files_for_lang_c \
%{vimfiles}/autoload/syntastic/c.vim
%add_subpackage -n c gcc
%add_subpackage -n cabal cabal-install
%add_subpackage -n coffee coffee-script
%add_subpackage -n coq coq
%add_subpackage -n cpp gcc-c++
%add_subpackage -n cs mono-core
%add_subpackage -n css csslint
%add_subpackage -n cucumber rubygem-cucumber
#https://pagure.io/packaging-committee/issue/312
#%%add_subpackage -n d ldc
%add_subpackage -n docbk /usr/bin/xmllint
%add_subpackage -n elixir elixir
%add_subpackage -n erlang erlang-erts
%add_subpackage -n eruby ruby
%add_subpackage -n fortran gcc-gfortran
%add_subpackage -n glsl mesa-libGLU
%add_subpackage -n go gcc-go
%add_subpackage -n haml rubygem-haml
%add_subpackage -n haskell ghc
%add_subpackage -n html sed curl tidy
%add_subpackage -n java java-devel
%add_subpackage -n javascript jsl
%add_subpackage -n json %{python}-demjson
%add_subpackage -n less nodejs
%add_subpackage -n lex flex
#https://pagure.io/packaging-committee/issue/312
#%%add_subpackage -n lisp clisp
%add_subpackage -n llvm llvm
%add_subpackage -n lua lua
%add_subpackage -n matlab octave
%add_subpackage -n nasm nasm
%add_subpackage -n objc gcc-objc
%add_subpackage -n objcpp gcc-objc++
%add_subpackage -n ocaml ocaml
%add_subpackage -n perl perl %name-pod
%add_subpackage -n php php
%add_subpackage -n po gettext
%add_subpackage -n pod perl
%add_subpackage -n puppet puppet
%add_subpackage -n python pylint pyflakes
%add_subpackage -n qml /usr/bin/qmllint
%add_subpackage -n rnc rnv
%add_subpackage -n rst %{python}-docutils
%add_subpackage -n ruby ruby
%add_subpackage -n sass rubygem-sass
%add_subpackage -n scala scala
%add_subpackage -n scss rubygem-sass
%add_subpackage -n sh bash
%add_subpackage -n spec rpmlint
%add_subpackage -n tcl tcl
%add_subpackage -n tex texlive-latex
%add_subpackage -n texinfo texinfo
%add_subpackage -n trig raptor2
%add_subpackage -n turtle raptor2
%add_subpackage -n vala vala
%add_subpackage -n verilog iverilog
%add_subpackage -n vhdl freehdl
%add_subpackage -n vim vim
%add_subpackage -n xhtml tidy
%add_subpackage -n xml /usr/bin/xmllint
%add_subpackage -n xslt /usr/bin/xmllint
%add_subpackage -n yacc byacc
%add_subpackage -n yaml nodejs-js-yaml perl-YAML-LibYAML
%add_subpackage -n z80 z80asm
%add_subpackage -n zsh zsh


# Intentional %%define here, intentionally after %%add_subpackage usage.
%define files_for_lang() \
%files %1 \
%license LICENCE \
%{vimfiles}/syntax_checkers/%1


%prep
%setup -q -n %upstream_name-%version
# Use a free D compiler ldc
sed -i "s/dmd/ldc2/g" syntax_checkers/d/dmd.vim
# Use executable script from bindir
sed -i "s|expand\(.*sfile.*\).*|'%{_bindir}/erlang_check_file.erl'|" syntax_checkers/erlang/escript.vim

# Don't use /bin/env like shebangs.
grep -lr '#!.*/bin/env'  | while read file; do
    sed -i '1 s|#!.*/bin/env \(.*\)|#!/usr/bin/\1|' "$file"
done

rm -r syntax_checkers/actionscript
rm -r syntax_checkers/applescript
rm -r syntax_checkers/apiblueprint
rm -r syntax_checkers/bemhtml
rm -r syntax_checkers/bro
rm -r syntax_checkers/chef
rm -r syntax_checkers/co
rm -r syntax_checkers/cobol
rm -r syntax_checkers/cuda
# https://pagure.io/packaging-committee/issue/312
rm -r syntax_checkers/d
rm -r syntax_checkers/dart
# dockerfile-lint doesn't seem to be in Fedora yet:
# mock -r fedora-rawhide-x86_64 --install '/*/dockerfile*lint'
rm -r syntax_checkers/dockerfile
rm -r syntax_checkers/dustjs
rm -r syntax_checkers/handlebars
rm -r syntax_checkers/haxe
# mock -r fedora-rawhide-x86_64 --install '/*/proselint' installs nothing
rm -r syntax_checkers/help
rm -r syntax_checkers/hss
rm -r syntax_checkers/jade
rm -r syntax_checkers/limbo
# https://pagure.io/packaging-committee/issue/312
rm -r syntax_checkers/lisp
rm -r syntax_checkers/markdown
rm -r syntax_checkers/mercury
rm -r syntax_checkers/nix
rm -r syntax_checkers/nroff
# mock -r fedora-rawhide-x86_64 --install '/*/pug*lint'
rm -r syntax_checkers/pug
rm -r syntax_checkers/r
rm -r syntax_checkers/racket
# mock -r fedora-rawhide-x86_64 --install '/*/lintr'
rm -r syntax_checkers/rmd
rm -r syntax_checkers/slim
rm -r syntax_checkers/sml
# mock -r fedora-rawhide-x86_64 --install '/*/solc'
rm -r syntax_checkers/solidity
rm -r syntax_checkers/sql
rm -r syntax_checkers/stylus
rm -r syntax_checkers/text
# Doesn't install binary:
# mock -r fedora-rawhide-x86_64 --install '/*/ttl'
rm -r syntax_checkers/turtle/ttl.vim
rm -r syntax_checkers/twig
rm -r syntax_checkers/typescript
# mock -r fedora-rawhide-x86_64 --install '/*/basex'
rm -r syntax_checkers/xquery
# mock -r fedora-rawhide-x86_64 --install '/*/pyang'
rm -r syntax_checkers/yang
rm -r syntax_checkers/zpt

%build

%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{vimfiles}/autoload
mkdir -p %{buildroot}%{vimfiles}/doc

cp      -rp       autoload/*                            %{buildroot}%{vimfiles}/autoload/
install -p -m0644 doc/syntastic.txt                     %{buildroot}%{vimfiles}/doc/syntastic.txt
cp      -rp       plugin/                               %{buildroot}%{vimfiles}/plugin
cp      -rp       syntax_checkers/                      %{buildroot}%{vimfiles}/syntax_checkers

# not install -ped :
# applescript.vim    -> mac os
# coffe.vim          -> no coffe executable in repo
# cuda.vim           -> no nvcss executable in repo
# go.vim and go dir  -> no go executable in repo
# haskell.vim        -> no ghc-mod executable in repo
# haxe.vim           -> no haxe executable in repo
# less.vim           -> no lessc executable in repo
# matlab.vim         -> no mlint executable in repo
# z80.vim            -> no 80_syntax_checker.pyt executable in repo
# zpt.vim            -> no zptlint executable in repo

# Install AppData.
mkdir -p %{buildroot}%{appdata_dir}
install -m 644 %{SOURCE1} %{buildroot}%{appdata_dir}


%check
# Check the AppData add-on to comply with guidelines.
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.metainfo.xml


%post
umask 022
cd %{vimfiles}/doc
vim -u NONE -esX -c "helptags ." -c quit
exit 0


%postun
if [ $1 -eq 0 ]; then
umask 022
cd %{vimfiles}/doc
>tags
vim -u NONE -esX -c "helptags ." -c quit
fi
exit 0

%files
%license LICENCE
%doc _assets/screenshot_1.png README.markdown
%{vimfiles}/plugin/syntastic.vim
%{vimfiles}/plugin/syntastic
%{vimfiles}/doc/syntastic.txt
%dir %{vimfiles}/syntax_checkers/
%dir %{vimfiles}/autoload/syntastic/
%{vimfiles}/autoload/syntastic/log.vim
%{vimfiles}/autoload/syntastic/postprocess.vim
%{vimfiles}/autoload/syntastic/preprocess.vim
%{vimfiles}/autoload/syntastic//util.vim
%{appdata_dir}/vim-syntastic.metainfo.xml


%files_to_do


%changelog
* Thu Jul 13 2017 Pavel Raiskup <praiskup@redhat.com> - 3.8.0-6
- use python2 prefix for dependencies according to python package guidelines

* Wed Jun 28 2017 Pavel Raiskup <praiskup@redhat.com> - 3.8.0-5
- drop two subpackages which are not installable on aarch64/ppc64le due to
  missing dependencies, till we have fixed rel-eng scripts or we ratify
  https://pagure.io/packaging-committee/issue/312

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Fri Nov 18 2016 Pavel Raiskup <praiskup@redhat.com> - 3.8.0-3
- drop ExclusiveArch hack for now, it doesn't work for sub-packages
  with rpm (rhbz#1394853) and pungi

* Wed Nov 16 2016 Pavel Raiskup <praiskup@redhat.com> - 3.8.0-2
- drop 'noarch' from ExclusiveArch

* Tue Nov 08 2016 Pavel Raiskup <praiskup@redhat.com> - 3.8.0-1
- new upstream release

* Mon Oct 31 2016 Kalev Lember <klember@redhat.com> - 3.7.0-9
- Use new ldc_arches macro

* Mon Oct 03 2016 Pavel Raiskup <praiskup@redhat.com> - 3.7.0-8
- use %%mono_arches

* Mon Oct 03 2016 Pavel Raiskup <praiskup@redhat.com> - 3.7.0-7
- Add ExclusiveArch tags appropriately, per discussion:
  https://lists.fedoraproject.org/archives/list/\
  devel@lists.fedoraproject.org/message/BFW6B2JX4RYUYVYL5LAFL34KVA2DXR47/

* Sun Sep 18 2016 Pavel Raiskup <praiskup@redhat.com> - 3.7.0-6
- don't use obsoletes < NVR

* Fri Sep 16 2016 Vít Ondruch <vondruch@redhat.com> - 3.7.0-5
- add AppData support

* Fri Sep 16 2016 Pavel Raiskup <praiskup@redhat.com> - 3.7.0-5
- rename to vim-syntastic

* Wed Sep 14 2016 Pavel Raiskup <praiskup@redhat.com> - 3.7.0-3
- add license to all subpackages
- condense the spec file a bit more
- remove cobol subpackage (open-cobol orphaned in F25+)

* Thu Sep 08 2016 Pavel Raiskup <praiskup@redhat.com> - 3.7.0-1
- unretirement, rebase to 3.7.0 (rhbz#1374138)

* Mon Sep 08 2014 Haïkel Guémar <hguemar@fedoraproject.org> - 3.5.0-1
- Upstream 3.5.0 (RHBZ #1074998, RHBZ #1135416)
- Fix BR to java-devel (RHBZ #1113308)
- Add R: syntastic-pod to syntastic-perl (RHBZ #1109519)
- Fix R: rubygem-sass for scss subpackage as scss is provided by rubygem-sass

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.0-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Tue May 20 2014 jonathan MERCIER <bioinfornatics@gmail.com> - 3.4.0-18
- Update to rev 3.4.0

* Mon Mar 10 2014 jonathan MERCIER <bioinfornatics@gmail.com> - 3.3.0-17.20140309gitda6520c
- Version 3.3.0

* Sun Mar 09 2014 jonathan MERCIER <bioinfornatics@gmail.com> - 2.3.0-16.20140309gitda6520c
- Update to latest rev

* Thu Oct 24 2013 Jonathan MERCIER <bioinfornatics@gmail.com> - 2.3.0-15.20131023gitd238665
- Update to rev d238665

* Sat Aug 10 2013 "Jonathan Mercier" <"Jonathan Mercier at gmail dot org"> - 2.3.0-14.20130809git48208d4
- Update to rev 48208d4

* Mon Aug 05 2013 "Jonathan Mercier" <"Jonathan Mercier at gmail dot org"> - 2.3.0-13.20130805gita4fa323
- Update to rev a4fa323

* Sun Aug 04 2013 "Jonathan Mercier" <"Jonathan Mercier at gmail dot org"> - 2.3.0-12.20130731gite380a86
- Update to rev e380a86

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.0-11.20120917git72856e6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 2.3.0-10.20120917git72856e6
- Perl 5.18 rebuild

* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.0-9.20120917git72856e6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Wed Oct 03 2012 Jonathan MERCIER <bioinfornatics at gmail.com> - 2.3.0-8.20120917git72856e6
- fix spec

* Thu Sep 27 2012 Jonathan MERCIER <bioinfornatics at gmail.com> - 2.3.0-7.20120917git72856e6
- fix spec file

* Wed Sep 26 2012 Jonathan MERCIER <bioinfornatics at gmail.com> - 2.3.0-6.20120917git72856e6
- fix spec file

* Wed Sep 26 2012 Jonathan MERCIER <bioinfornatics at gmail.com> - 2.3.0-5.20120917git72856e6
- put  inautoload/syntastic/c.vimto c subpackage

* Mon Sep 17 2012 Jonathan MERCIER <bioinfornatics at gmail.com> - 2.3.0-4.20120917git72856e6
- Update to latest rev

* Thu Aug 23 2012 Jonathan MERCIER <bioinfornatics at gmail.com> - 2.3.0-3.20120802gite5dfcc3
- fix License
- remove unused macro
- Fix dependecies

* Mon Jun 18 2012  Jonathan MERCIER <bioinfornatics at gmail.com> - 2.3.0-2.20120617git1e94b98
- Update spec file

* Sun Jun 17 2012  Jonathan MERCIER <bioinfornatics at gmail.com> - 2.3.0-1.20120617git1e94b98
- initial release