446aed7
%global  __os_install_post %{nil}
e08a096
%if 0%{?fedora} >= 18
e08a096
%global activity TurtleBlocks.activity
e08a096
%else
e08a096
%global activity TurtleArt.activity
e08a096
%endif
e08a096
Omar Berroterán Silva bb75f8f
%global commit 3b0939bdace56f13a1666b7087b401e8bb06df92
6fa9c9d
%global shortcommit %(c=%{commit}; echo ${c:0:7})
6fa9c9d
Name:		icaro
Omar Berroterán Silva bb75f8f
Version:	1.0.8
Omar Berroterán Silva bb75f8f
Release:	1%{?dist}
6fa9c9d
Summary:	Robotic Educational Project
6fa9c9d
# Icaro is licensed under GPLv3
6fa9c9d
# Pinguino and puf is licensend under LGPLv2
6fa9c9d
License:	GPLv3 and LGPLv2
6fa9c9d
URL:		http://roboticaro.org
Omar Berroterán Silva bb75f8f
Source0:	https://github.com/valentinbasel/icaro/archive/%{commit}.tar.gz
Omar Berroterán Silva bb75f8f
6fa9c9d
# Add README in english
6fa9c9d
Source1:	README.ENG
6fa9c9d
BuildArch:	noarch
6fa9c9d
6fa9c9d
BuildRequires:	python2-devel
6fa9c9d
BuildRequires:	desktop-file-utils
6fa9c9d
BuildRequires:	sugar-toolkit
765855d
Requires:	pycairo
765855d
Requires:	pygtk2
6fa9c9d
Requires:	pygtksourceview
6fa9c9d
Requires:	sdcc
6fa9c9d
Requires:	gputils
6fa9c9d
Requires:	pyusb
6fa9c9d
Requires:	python-tools
6fa9c9d
Requires:	sugar-turtleart
6fa9c9d
Requires:	pyserial
6fa9c9d
Requires:	sugar
6fa9c9d
Requires:	hicolor-icon-theme
446aed7
Requires:	gnome-python2-rsvg
21c3ca3
Requires:	vte
4ebef22
Requires:	pyserial
4ebef22
Requires:	sugar
10ef731
Requires:	python-matplotlib
6fa9c9d
6fa9c9d
%description
6fa9c9d
An educational robotic software aimed to develop robotic 
6fa9c9d
and programming fundamentals.
6fa9c9d
6fa9c9d
%prep
5b5bdb1
%setup -q %{name}-%{commit}
6fa9c9d
e08a096
# sugar-turtleart change paths
21c3ca3
#%if 0%{?fedora} >= 18
21c3ca3
#sed -i -e 's/TurtleArt.activity/TurtleBlocks.activity/' config.dat 
21c3ca3
#%endif
e08a096
e08a096
6fa9c9d
# copy README.ENG file to sources as well.
21c3ca3
#cp -a %{SOURCE1} .
6fa9c9d
6fa9c9d
#empty files
21c3ca3
#echo "# Just a comment" > pic16/np05/tmp/stdout
6fa9c9d
6fa9c9d
# fix spurious permissions in this files
21c3ca3
#chmod -v 0644 README.md COPYING AUTHORS COPYING-LGPLv2
21c3ca3
chmod -v 0644 COPYING AUTHORS COPYING-LGPLv2
21c3ca3
6fa9c9d
6fa9c9d
%build
6fa9c9d
#Nothing to build
6fa9c9d
6fa9c9d
%install
6fa9c9d
# ------------- Apicaro -------------------------------------
6fa9c9d
446aed7
%{__python2} apicaro/setup.py install --root %{buildroot}
6fa9c9d
6fa9c9d
6fa9c9d
# ------------- Icaro ---------------------------------------
6fa9c9d
mkdir -p %{buildroot}%{_datadir}/%{name}/
6fa9c9d
21c3ca3
cp -p -a  {hardware,imagenes,locale,paletas,clemente} %{buildroot}%{_datadir}/%{name}/
21c3ca3
install -p -m 0644 {*.py,version} %{buildroot}%{_datadir}/%{name}/
6fa9c9d
6fa9c9d
# Remove po and pot files
6fa9c9d
find %{buildroot} -name "*.po" | xargs rm -f
6fa9c9d
find %{buildroot} -name "*.pot" | xargs rm -f
765855d
find %{buildroot} -name "#template.pde#" | xargs rm -f
6fa9c9d
6fa9c9d
6fa9c9d
%find_lang %{name}
6fa9c9d
6fa9c9d
# Tortucaro plugin for sugar
e08a096
mkdir -p %{buildroot}%{sugaractivitydir}/%{activity}/plugins/icaro/
e08a096
cp -a plugintortucaro/icaro/* %{buildroot}%{sugaractivitydir}/%{activity}/plugins/icaro/
e08a096
mkdir -p %{buildroot}%{sugaractivitydir}/%{activity}/plugins/icaro/icons
e08a096
cp -a plugintortucaro/icaro/icons/* %{buildroot}%{sugaractivitydir}/%{activity}/plugins/icaro/icons
6fa9c9d
6fa9c9d
6fa9c9d
mkdir -p %{buildroot}%{_sysconfdir}/udev/rules.d/
6fa9c9d
install -p -m 0644  udev/* %{buildroot}%{_sysconfdir}/udev/rules.d/
6fa9c9d
6fa9c9d
mkdir -p %{buildroot}%{_bindir}
6fa9c9d
6fa9c9d
#create executable of program
6fa9c9d
cat > icaro <
6fa9c9d
#! /bin/bash
6fa9c9d
python /usr/share/icaro/main.py
6fa9c9d
EOF
6fa9c9d
6fa9c9d
install -p -m 0755 icaro %{buildroot}%{_bindir}/%{name}
6fa9c9d
6fa9c9d
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/
6fa9c9d
6fa9c9d
# Icon 
6fa9c9d
install -p -D -m 0644 imagenes/icarologo.png  %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/
6fa9c9d
6fa9c9d
#create desktop file
6fa9c9d
desktop-file-install \
6fa9c9d
	--dir %{buildroot}%{_datadir}/applications \
6fa9c9d
	%{name}.desktop
6fa9c9d
6fa9c9d
SAVEIFS=$IFS
6fa9c9d
IFS=$(echo -en "\n\b")
6fa9c9d
# Changes permissions files (with spaces in the filenames)
6fa9c9d
for file in `find %{buildroot}/%{_datadir}/%{name} -type f  -perm /a+x `; do
6fa9c9d
    chmod -v a-x $file
6fa9c9d
done
6fa9c9d
6fa9c9d
# Delete backup files (with spaces in the filenames)
6fa9c9d
for file in `find %{buildroot}%{_datadir}/%{name} -type f  -name '*~'`; do
6fa9c9d
    rm -rf $file
6fa9c9d
done
6fa9c9d
IFS=$SAVEIFS
6fa9c9d
6fa9c9d
6fa9c9d
for file in `find %{buildroot}%{_datadir}/%{name} -type f  ! -perm /a+x -name '*.py'`; do
6fa9c9d
    chmod -vR a+x $file
6fa9c9d
done
6fa9c9d
6fa9c9d
for file in `find %{buildroot}/%{python_sitelib}/%{name} -type f  ! -perm /a+x -name '*.py'`; do
6fa9c9d
    chmod -vR a+x $file
6fa9c9d
done
6fa9c9d
6fa9c9d
for file in `find %{buildroot}/%{python_sitelib}/apicaro -type f  ! -perm /a+x -name '*.py'`; do
6fa9c9d
    chmod -vR a+x $file
6fa9c9d
done
6fa9c9d
6fa9c9d
find %{buildroot}%{_datadir}/%{name} -name '__init__.py' | xargs chmod 0644
6fa9c9d
6fa9c9d
%post
6fa9c9d
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
6fa9c9d
6fa9c9d
%postun
6fa9c9d
if [ $1 -eq 0 ] ; then
6fa9c9d
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
6fa9c9d
    /usr/bin/gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || :
6fa9c9d
fi
6fa9c9d
      
6fa9c9d
%posttrans
6fa9c9d
/usr/bin/gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || :
6fa9c9d
6fa9c9d
6fa9c9d
6fa9c9d
%files -f %{name}.lang
21c3ca3
%doc COPYING AUTHORS COPYING-LGPLv2 
21c3ca3
#README.ENG 
6fa9c9d
%dir %{_datadir}/%{name}/
6fa9c9d
%{_datadir}/%{name}/*.py*
6fa9c9d
%{_datadir}/%{name}/version
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/componentes
21c3ca3
%{_datadir}/%{name}/hardware/icaro/componentes/*
6fa9c9d
6fa9c9d
%dir %{_datadir}/%{name}/imagenes
6fa9c9d
%{_datadir}/%{name}/imagenes/*.png
6fa9c9d
21c3ca3
%dir %{_datadir}/%{name}/clemente
21c3ca3
%{_datadir}/%{name}/clemente/*.py
21c3ca3
21c3ca3
21c3ca3
21c3ca3
%dir %{_datadir}/%{name}/paletas
21c3ca3
%{_datadir}/%{name}/paletas/*.gpl
21c3ca3
6fa9c9d
%dir %{_datadir}/%{name}/imagenes/componentes
6fa9c9d
%{_datadir}/%{name}/imagenes/componentes/*.png
6fa9c9d
6fa9c9d
%dir %{_datadir}/%{name}/imagenes/main
6fa9c9d
%{_datadir}/%{name}/imagenes/main/*.png
6fa9c9d
6fa9c9d
%dir %{_datadir}/%{name}/imagenes/mouse
6fa9c9d
%{_datadir}/%{name}/imagenes/mouse/*.png
6fa9c9d
%{_datadir}/%{name}/imagenes/mouse/*.svg
446aed7
%{_datadir}/%{name}/imagenes/gif/*.gif
6fa9c9d
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/ejemplos
21c3ca3
%{_datadir}/%{name}/hardware/icaro/ejemplos/*
6fa9c9d
21c3ca3
%{_datadir}/%{name}/imagenes/*.svg
6fa9c9d
# Pinguino Firmware
6fa9c9d
# Exception granted by fpc
6fa9c9d
# For more details, see https://fedorahosted.org/fpc/ticket/253
6fa9c9d
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/pic16
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/pic16/lib
21c3ca3
%{_datadir}/%{name}/hardware/icaro/imagenes/componentes/*.png
21c3ca3
21c3ca3
%{_datadir}/%{name}/hardware/icaro/imagenes/gif/*.gif
21c3ca3
%{_datadir}/%{name}/hardware/icaro/imagenes/*.png
6fa9c9d
6fa9c9d
# rpmlint complains for this file. arch-independent-package-contains-binary-or-object error
6fa9c9d
# Really not intended as a file for be executed in Fedora host.
6fa9c9d
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/pic16/lib/*.lib
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/pic16/lkr
21c3ca3
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/icaro_lib/*.h
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/icaro_lib/*.c
21c3ca3
6fa9c9d
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/source/pilas/*.c
6fa9c9d
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/source/tortucaro/*.c
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/source/icaroblue/*.c
6fa9c9d
6fa9c9d
21c3ca3
%{_datadir}/%{name}/hardware/icaro/*.py
6fa9c9d
21c3ca3
%{_datadir}/%{name}/hardware/*.py
21c3ca3
%{_datadir}/%{name}/hardware/icaro/modulos/*.py
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/conf/*.ini
6fa9c9d
e36402b
21c3ca3
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/pic16/lkr/*.lkr
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/icaro_lib
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/source
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/source/*.c
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/source/*.pde
21c3ca3
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/non-free/include/pic16
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/non-free/include/pic16/*.h
21c3ca3
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/non-free/lib/pic16
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/non-free/lib/pic16/*.lib
21c3ca3
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/tmp
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/tmp/*.c
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/tmp/*.h
21c3ca3
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/tmp/usb
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/tmp/usb/*.c
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/tmp/usb/*.h
21c3ca3
21c3ca3
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/temporal/
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/tmp/stdout
21c3ca3
21c3ca3
%dir %{_datadir}/%{name}/hardware/icaro/micro/firmware/pic16/obj
21c3ca3
%{_datadir}/%{name}/hardware/icaro/micro/firmware/pic16/obj/*.o
e36402b
e36402b
6fa9c9d
# This is not sugar activity, is a plugin for turtleart
6fa9c9d
# At present yet not there are Fedora guidelines for plugins.
e08a096
%dir %{sugaractivitydir}/%{activity}/plugins/icaro/
e08a096
%{sugaractivitydir}/%{activity}/plugins/icaro/*.py*
6fa9c9d
e08a096
%dir %{sugaractivitydir}/%{activity}/plugins/icaro/icons/
e08a096
%{sugaractivitydir}/%{activity}/plugins/icaro/icons/*.svg
6fa9c9d
6fa9c9d
%{python_sitelib}/apicaro*egg*
6fa9c9d
%{python_sitelib}/apicaro/
6fa9c9d
%{_bindir}/%{name}
6fa9c9d
%{_datadir}/applications/%{name}.desktop
6fa9c9d
%{_datadir}/icons/hicolor/48x48/apps/icarologo.png
6fa9c9d
%config(noreplace) %{_sysconfdir}/udev/rules.d/26-microchip.rules
6fa9c9d
%config(noreplace) %{_sysconfdir}/udev/rules.d/41-microchip.rules
6fa9c9d
%config(noreplace) %{_sysconfdir}/udev/rules.d/99-serial.rules
048086e
%config(noreplace) %{_sysconfdir}/udev/rules.d/026-microchip.rules
21c3ca3
%config(noreplace) %{_sysconfdir}/udev/rules.d/99-mm-usb-device-blacklist.rules
765855d
6fa9c9d
%changelog
Omar Berroterán Silva bb75f8f
* Thu Apr 13 2017 Omar Berroteran <omarberroteranlkf@gmail.com> - 1.0.8
Omar Berroterán Silva bb75f8f
- Bump to the new upstream version
Omar Berroterán Silva bb75f8f
- Remove pyWebKit dependence
Omar Berroterán Silva bb75f8f
- most bugfixes, improbe performance
Omar Berroterán Silva bb75f8f
- new firmware and boot options
Omar Berroterán Silva bb75f8f
- Icaro Plugins changes 
cf8d926
45c0382
* Sat Nov 12 2016 Omar Berroteran <omarberroteranlkf@gmail.com> - 1.0.7
cfc9ab8
- Bump to the new upstream version
cfc9ab8
45c0382
* Wed Sep 28 2016 Omar Berroteran <omarberroteranlkf@gmail.com> - 1.0.6
65860e5
- Bump to the new upstream version
65860e5
- Firmware Tortucaro set pause time to 10
65860e5
- se resetea el pic. ahora tiene una espera de 20 seg donde prende y apaga el led1 y con eso estabiliza la comunicaciĆ³n entre el pic y la pc
65860e5
- 
65860e5
Dominik 'Rathann' Mierzejewski ee0c11a
* Mon Sep 26 2016 Dominik Mierzejewski <rpm@greysector.net> - 1.0.5-3
Dominik 'Rathann' Mierzejewski ee0c11a
- rebuilt for matplotlib-2.0.0
Dominik 'Rathann' Mierzejewski ee0c11a
4ebef22
* Tue Aug 23 2016 Omar Berroteran <omarberroteranlkf@gmail.com> -1.0.5-2
4ebef22
+  Requires:	python-matplotlib
10ef731
ab189cc
* Wed Jul 20 2016 Omar Berroteran <omarberroteranlkf@gmail.com> -1.0.4-4
21c3ca3
- Bump to the new upstream version
21c3ca3
- changes on Apicaro
21c3ca3
8a67904
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.4-4
8a67904
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
8a67904
8786076
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.4-3
8786076
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
8786076
e618031
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.4-2
e618031
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
e618031
446aed7
* Sat Jan 10 2015 Eduardo Echeverria <echevemaster@gmail.com>  - 1.0.4-1
446aed7
- Bump to the new upstream version
446aed7
007f5d7
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.3-2
007f5d7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
007f5d7
e36402b
* Fri Nov 08 2013 Eduardo Echeverria <echevemaster@gmail.com>  - 1.0.3-1
e36402b
- Bump to the new upstream version
e36402b
6c85343
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.2-3
6c85343
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
6c85343
e08a096
* Sat Jun 8 2013 Eduardo Echeverria <echevemaster@gmail.com> - 1.0.2-2
e08a096
- Fix issues with paths
e08a096
765855d
* Sat Jun 8 2013 Eduardo Echeverria <echevemaster@gmail.com> - 1.0.2-1
765855d
- Updated to the new upstream version 1.0.2
765855d
- Switch from pygame to pycairo
765855d
048086e
* Sat Mar 30 2013 Eduardo Echeverria <echevemaster@gmail.com> - 1.0.1-1
048086e
- Updated to the new upstream version
048086e
6fa9c9d
* Sat Mar 09 2013 Eduardo Echeverria <echevemaster@gmail.com> - 1.0-3
6fa9c9d
- Added license LGPLv2 for the firmware
6fa9c9d
- Add missing requires
6fa9c9d
- Improve find_lang
6fa9c9d
6fa9c9d
* Wed Dec 12 2012 Eduardo Echeverria <echevemaster@gmail.com> - 1.0-2
6fa9c9d
- Add support to languages
6fa9c9d
- Add scriplets for icons
6fa9c9d
- Create executables for icaro
6fa9c9d
- Fix permissions
6fa9c9d
- Clean spec
6fa9c9d
39e1b53
* Fri Sep 28 2012 Yader Velasquez <yaderv@fedoraproject.org> - 1.0-1
6fa9c9d
- First Initial Packaging