File makehuman.spec of Package makehuman

#
# spec file for package makehuman
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           makehuman
Version:        1.1.1
Release:        0
Url:            http://www.makehumancommunity.org

Source:         https://github.com/makehumancommunity/makehuman/archive/%{version}.tar.gz
Source101:      makehuman.1
Patch0:         makehuman-startscript.patch 
BuildArch:      noarch
Summary:        Free, open source tool for creating realistic 3D human characters
License:        AGPL-3.0
Group:          Applications/Graphics

BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  coreutils
BuildRequires:  fdupes
BuildRequires:  mercurial
BuildRequires:  python

%if 0%{?suse_version}
BuildRequires:  update-desktop-files

%endif

%if %{defined fedora}
BuildRequires:  desktop-file-utils
BuildRequires:  python-devel

%endif

%if %{defined fedora}
Requires:       %{name}-data = %version
Requires:       PyOpenGL
Requires:       PyQt4
Requires:       numpy
Requires:       python

%endif

%if 0%{?suse_version}
Requires:       %{name}-data = %version
Requires:       python
Requires:       python-numpy
Requires:       python-opengl
Requires:       python-qt4

%endif

%description
 MakeHuman is a free, open source software which allows the creation of 
realistic 3D human characters fast and in a simplified manner, through the 
manipulation of controls for different human attributes.
 Users are able to model human characters by manipulating the controls to modify 
various human characteristics such as gender, age, height, weight and ethnicity 
as well as low level details of things such as the eye's shape, mouth's shape 
or finger's length. Via a 'point and click' approach, users can preview and 
load poses, animation cycles, facial expressions, hair, shoes and clothes onto 
characters from the MakeHuman™ Library. The human characters created can be 
saved in the custom MakeHuman format (.mhm), rendered and exported in various 
formats such as Collada (.dae), Filmbox (.fbx), MD5, Blender exchange (.mhx), 
Wavefront .obj, Stereolithography (.stl).
 The output characters are licensed under the CC0 license, one of the most 
liberal license for output content. This means that artists are given the 
freedom to use their creations for both commercial and non-commercial 
purposes. The copyright © 2001-2014 is retained by the MakeHuman™ Team 
(makehuman.org) which grants you permission to use released code under the GNU 
Affero General Public License 3.0 (AGPL).

%package data
Summary:        Makehuman data files 
Group:          Applications/Graphics
Requires:       %{name} = %version

%description data
 Various assets and other data to be used along with MakeHuman such as clothing, textures, shaders and translations.
 

%prep
%setup -q -n %name-%version
#copy source 101 (manpage)
cp %{S:101} ./makehuman

%patch0 -p 1

%build
ls -lrt
#gzip man page
gzip ./makehuman/makehuman.1

%install
cd ./makehuman
%__mkdir -p %{buildroot}%{_datadir}/makehuman
%__mkdir -p %{buildroot}%{_datadir}/applications
%__mkdir -p %{buildroot}%{_bindir}

#remove blendertools - should be installed by user separately (typically in user space as 
#blender is normally untarred not installed from repos also blender script dir's keep changing)
rm -rf blendertools

#remove docs they should not be included in the package as they are not part of the package but part of the sources.
#(server documentation)
rm -rf docs

#put the path to shell wrapper for executable
cp  makehuman %{buildroot}%{_bindir}

#move makehuman data files and code
cp -r apps %{buildroot}%{_datadir}/makehuman/
cp -r core %{buildroot}%{_datadir}/makehuman/
cp -r data %{buildroot}%{_datadir}/makehuman/
cp -r shared %{buildroot}%{_datadir}/makehuman/
cp -r icons %{buildroot}%{_datadir}/makehuman/
cp -r lib %{buildroot}%{_datadir}/makehuman/
cp -r license.txt %{buildroot}%{_datadir}/makehuman/
cp -r licenses %{buildroot}%{_datadir}/makehuman/
cp    makehuman.py %{buildroot}%{_datadir}/makehuman/
cp -r plugins %{buildroot}%{_datadir}/makehuman/

#check for duplicates, remove them and make symlinks
%fdupes -s %buildroot

#set permissions for python files
find %buildroot -type d -exec chmod 755 {} +
find %buildroot -name '*.py' -type f -exec chmod 755 {} +

# remove all pre-compiled py scripts and compile all py scripts manually for Fedora and Suse 
#(Note: py_byte_compile macro for fedora seems to be only for python3 so using (percent)__python macro)

find %buildroot -name '*.pyc' -type f -exec rm -f {} \;
find %buildroot -name '*.pyo' -type f -exec rm -f {} \;

%if %{defined fedora}

%__python -m compileall %buildroot

%endif

%if 0%{?suse_version}
%py_compile %buildroot

%endif

# Install desktop file

%if %{defined fedora}
desktop-file-install --dir %{buildroot}%{_datadir}/applications MakeHuman.desktop
%endif

%if 0%{?suse_version}
%suse_update_desktop_file -i MakeHuman Graphics 3DGraphics

%endif

#install makehuman man page
install -D -m 0644 makehuman.1.gz %{buildroot}%{_mandir}/man1/makehuman.1.gz

%files
%defattr(-,root,root)
%{_mandir}/man1/makehuman.1.gz
%{_datadir}/makehuman/apps
%{_datadir}/makehuman/core
%{_datadir}/makehuman/shared
%{_datadir}/makehuman/icons
%{_datadir}/makehuman/lib
%{_datadir}/makehuman/license.txt
%{_datadir}/makehuman/licenses
%{_datadir}/makehuman/makehuman.py
%{_datadir}/makehuman/makehuman.pyc
%{_datadir}/makehuman/plugins
%{_bindir}/makehuman
%{_datadir}/applications/MakeHuman.desktop

%if %{defined fedora}
%{_datadir}/makehuman/makehuman.pyo
%endif

%files data
%defattr(-,root,root)
%dir %{_datadir}/makehuman
%{_datadir}/makehuman/data

#"(percent)_datadir" is /usr/share
# "(percent)dir" is to only add directory and not subdirs

%changelog
openSUSE Build Service is sponsored by