Skip to content
Snippets Groups Projects
Commit fe067fca authored by Jean-Claude COLSON's avatar Jean-Claude COLSON
Browse files

Signed-off-by: Jean-Claude COLSON <Jean-Claude.Colson@univ-lorraine.fr>

parent ceef5e8d
Branches
No related tags found
No related merge requests found
# Usage : rpmbuild -bs --define 'SrcURL https://redirector.gvt1.com/edgedl/android/studio/ide-zips/3.6.3.0/android-studio-ide-192.6392135-linux.tar.gz' --define 'WithSkel 1' SPECS/android-studio-ide.spec
# mock -r fedora-32-x86_64-rpmfusion_free --no-clean --rebuild --sources=SOURCES/android-studio-ide-192.6392135-linux.tar.gz --sources=SOURCES/android-studio-ide.URL --sources=SOURCES/android-studio-ide-project.default.xml SRPMS/android-studio-ide-3.6.3-0.src.rpm
%define Name android-studio
%define CachURL %( if [ "%{SrcURL}" = "%%{SrcURL}" ]; then cat %{_sourcedir}/%{Name}-ide.URL ; else echo -n "%{SrcURL}">%{_sourcedir}/%{Name}-ide.URL ; echo -n "%{SrcURL}" ; fi )
%define SubURL %( F=$( echo -n %{CachURL} | grep -o '[0-9].[0-9,.]*/[a-z,0-9,.,-]*$' ) ; echo -n "$F" ; F="%{_sourcedir}/$( basename $F )" ; if [ ! -f "$F" ]; then wget -q -N --no-host-directories --cut-dirs=99 --directory-prefix="%{_sourcedir}" "%{CachURL}" >/dev/null ; fi ; touch -r "$F" "%{_sourcedir}/%{Name}-ide.URL" )
%define VerURL %( echo -n %{SubURL} | awk -F / '{ printf ( $1 ); }' )
%define Version %( echo -n %{VerURL} | awk -F . '{ printf ( "%d.%d.%d", $1, $2, $3 ); }' )
%define Release %( echo -n %{VerURL} | sed -e 's/^%{Version}.//' )
%define SubVer %( echo -n %{SubURL} | awk -F / '{ printf ( $2 ); }' | grep -o '[0-9]*\\.[0-9]*' | awk -F . '{ printf ( $1 ); }' )
%define SubRel %( echo -n %{SubURL} | awk -F / '{ printf ( $2 ); }' | grep -o '[0-9]*\\.[0-9]*' | awk -F . '{ printf ( $2 ); }' )
%define Config <application>\
<component name=\"ProjectManager\">\
<defaultProject>\
<component name=\"PropertiesComponent\">\
<property name=\"android.sdk.path\" value="%{prefix}/Android-Studio-SDK\" />\
</component>\
</defaultProject>\
</component>\
</application>
%define ConfDir %( echo -n %{Version} | awk -F . '{ printf ( ".AndroidStudio%d.%d", $1, $2 ); }' )
%define ConfFil %( F="%{ConfDir}/config/options/project.default.xml" ; echo -n "$F" ; F="%{_sourcedir}/%{Name}-ide-$( basename $F )" ; if [ "%{WithSkel}" != "%%{WithSkel}" ]; then echo -n '%{Config}' > "$F" ; touch -r "%{_sourcedir}/$( echo -n %{SubURL} | awk -F / '{ printf ( $2 ); }')" "$F" ; elif [ "%{SrcURL}" != "%""{SrcURL}" ]; then rm -f "$F" ; fi )
Name: %{Name}-ide
Version: %{Version}
Release: %{Release}
Summary: Android Studio IDE
License: Apache Software License 2.0
URL: https://developer.android.com/studio/index.html
Source0: %{CachURL}
Source1: %{Name}-ide.URL
Source2: %{Name}-ide-project.default.xml
BuildRequires: /usr/bin/pathfix.py desktop-file-utils
Requires: bash libX11 python3 desktop-file-utils
Prefix: /usr/share
%global _privatelibs [.]so$
%global __requires_exclude_from ^%{prefix}/%{Name}-ide/.*$
%define SourceDateTime %( date -u -r %{SOURCE0} +'%Y-%m-%d %T UTC' )
%define SourceDateCLog %( LANG=en_EN date -u -r %{SOURCE0} +'%a %b %d %Y %T' )
%description
Android Studio IDE %{SubVer}.%{SubRel} (%{SourceDateTime})
User config directory : ~/%{ConfDir}
Sample SDK config : ~/%{ConfFil} :
%{Config}
%if %( if [ -f "%{_sourcedir}/%{Name}-ide-$( basename %{ConfFil} )" ]; then echo -n 1 ; else echo -n 0 ; fi )
See /etc/skel/%{ConfFil}
%endif
%description -l fr
Android Studio IDE %{SubVer}.%{SubRel} (%{SourceDateTime})
Dossier de la configuration utilisateur : ~/%{ConfDir}
Exemple de fichier de configuration du dossier SDK : ~/%{ConfFil} :
%{Config}
%if %( if [ -f "%{_sourcedir}/%{Name}-ide-$( basename %{ConfFil} )" ]; then echo -n 1 ; else echo -n 0 ; fi )
Voir /etc/skel/%{ConfFil}
%endif
%prep
rm -rf %{Name}-ide
mkdir %{Name}-ide
tar -C %{Name}-ide --strip 1 -xzf %{SOURCE0}
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{Name}-ide/bin/restart.py %{Name}-ide/bin/printenv.py
chmod a+x %{Name}-ide/plugins/terminal/jediterm-bash.in
if [ -f "%{SOURCE2}" ]; then
D="%{Name}-ide/etc/skel/$( dirname %{ConfFil} )"
mkdir -p "$D"
cp -a "%{SOURCE2}" "%{Name}-ide/etc/skel/%{ConfFil}"
touch -r "%{SOURCE0}" "$D"
D="$( dirname $D )"
touch -r "%{SOURCE0}" "$D"
D="$( dirname $D )"
touch -r "%{SOURCE0}" "$D"
D="$( dirname $D )"
touch -r "%{SOURCE0}" "$D"
fi
%build
%install
mkdir -p %{buildroot}%{prefix}/
cp -a %{Name}-ide %{buildroot}%{prefix}/
if [ -d "%{Name}-ide/etc/skel/%{ConfDir}" ]; then
mkdir -p "%{buildroot}/etc/skel/"
cp -a "%{Name}-ide/etc/skel/%{ConfDir}" "%{buildroot}/etc/skel/"
ls -al "%{buildroot}/etc/skel/%{ConfDir}/config/options/"
fi
echo "[Desktop Entry]
Name=Android Studio IDE
Comment=
Exec=studio.sh
Terminal=false
Type=Application
Icon=%{prefix}/%{Name}-ide/bin/studio.png
Categories=Development;" >/tmp/%{Name}.desktop
touch -h -r %{SOURCE0} /tmp/%{Name}.desktop
mkdir -p %{buildroot}%{_bindir}
ln -sf %{prefix}/%{Name}-ide/bin/studio.sh %{buildroot}%{_bindir}/studio.sh
touch -h -r %{SOURCE0} %{buildroot}%{_bindir}/studio.sh
desktop-file-install /tmp/%{Name}.desktop
%clean
rm -rf "%{buildroot}"
%post
if [ -L %{_bindir}/studio.sh -a ! -f %{_bindir}/studio.sh ]; then
ln -sf %{prefix}/%{Name}-ide/bin/studio.sh %{_bindir}/studio.sh
touch -h --date="@$SOURCE_DATE_EPOCH" %{_bindir}/studio.sh
fi
update-desktop-database &> /dev/null || :
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%postun
update-desktop-database &> /dev/null || :
if [ $1 -eq 0 ] ; then
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :$RPM_BUILD_ROOT%
fi
%posttrans
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files
%attr(-,root,root)
%license %{prefix}/%{Name}-ide/license
%exclude %{prefix}/%{Name}-ide/license
%{prefix}/%{Name}-ide
%{_bindir}/studio.sh
%{_datadir}/applications/%{Name}.desktop
%if %( if [ -f "%{_sourcedir}/%{Name}-ide-$( basename %{ConfFil} )" ]; then echo -n 1 ; else echo -n 0 ; fi )
/etc/skel/%{ConfDir}
%endif
%changelog
* %{SourceDateCLog} Jean-Claude COLSON <Jean-Claude.Colson@univ-lorraine.fr>
- Added %{prefix}/applications/%{Name}.desktop (Tue May 12 2020)
* %{SourceDateCLog} Jean-Claude COLSON <Jean-Claude.Colson@univ-lorraine.fr>
- Created relocatable rpm SPEC (Mon May 11 2020)
* %{SourceDateCLog} Jean-Claude COLSON <Jean-Claude.Colson@univ-lorraine.fr>
- %{Name}-ide-%{SubVer}.%{SubRel}-linux.tar.gz was downloadable
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment