fixed: Bug #3947 - Conflicts when using yum localinstall on Fedora 20
This commit is contained in:
parent
3e84372a14
commit
63286c4f9a
|
@ -893,8 +893,7 @@ class InternalCommands:
|
||||||
|
|
||||||
elif type == 'rpm':
|
elif type == 'rpm':
|
||||||
if sys.platform == 'linux2':
|
if sys.platform == 'linux2':
|
||||||
self.dist_run('cpack -G RPM', unixTarget)
|
self.distRpm()
|
||||||
moveExt = 'rpm'
|
|
||||||
else:
|
else:
|
||||||
package_unsupported = True
|
package_unsupported = True
|
||||||
|
|
||||||
|
@ -931,6 +930,42 @@ class InternalCommands:
|
||||||
("Package type, '%s' is not supported for platform, '%s'")
|
("Package type, '%s' is not supported for platform, '%s'")
|
||||||
% (type, sys.platform))
|
% (type, sys.platform))
|
||||||
|
|
||||||
|
def distRpm(self):
|
||||||
|
rpmDir = self.getGenerator().buildDir + '/rpm'
|
||||||
|
if os.path.exists(rpmDir):
|
||||||
|
shutil.rmtree(rpmDir)
|
||||||
|
|
||||||
|
os.makedirs(rpmDir)
|
||||||
|
|
||||||
|
templateFile = open(self.cmake_dir + '/synergy.spec.in')
|
||||||
|
template = templateFile.read()
|
||||||
|
|
||||||
|
template = template.replace('${in:version}', self.getVersionFromCmake())
|
||||||
|
|
||||||
|
specPath = rpmDir + '/synergy.spec'
|
||||||
|
|
||||||
|
specFile = open(specPath, 'w')
|
||||||
|
specFile.write(template)
|
||||||
|
specFile.close()
|
||||||
|
|
||||||
|
version = self.getVersionFromCmake()
|
||||||
|
target = '../../bin/synergy-%s-%s.rpm' % (
|
||||||
|
version, self.getLinuxPlatform())
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.try_chdir(rpmDir)
|
||||||
|
cmd = 'rpmbuild -bb --define "_topdir `pwd`" synergy.spec'
|
||||||
|
print "RPM command: " + cmd
|
||||||
|
err = os.system(cmd)
|
||||||
|
if err != 0:
|
||||||
|
raise Exception('Package failed: ' + str(err))
|
||||||
|
|
||||||
|
self.unixMove('RPMS/*/*.rpm', target)
|
||||||
|
finally:
|
||||||
|
self.restore_chdir()
|
||||||
|
|
||||||
|
|
||||||
def distSrc(self):
|
def distSrc(self):
|
||||||
version = self.getVersionFromCmake()
|
version = self.getVersionFromCmake()
|
||||||
name = (self.project + '-' + version + '-Source')
|
name = (self.project + '-' + version + '-Source')
|
||||||
|
@ -1100,6 +1135,19 @@ class InternalCommands:
|
||||||
ftp.run(srcDir + src, dest)
|
ftp.run(srcDir + src, dest)
|
||||||
print 'Done'
|
print 'Done'
|
||||||
|
|
||||||
|
def getLinuxPlatform(self):
|
||||||
|
# os_bits should be loaded with '32bit' or '64bit'
|
||||||
|
import platform
|
||||||
|
(os_bits, other) = platform.architecture()
|
||||||
|
|
||||||
|
# get platform based on current platform
|
||||||
|
if os_bits == '32bit':
|
||||||
|
return 'Linux-i686'
|
||||||
|
elif os_bits == '64bit':
|
||||||
|
return 'Linux-x86_64'
|
||||||
|
else:
|
||||||
|
raise Exception("unknown os bits: " + os_bits)
|
||||||
|
|
||||||
def dist_name(self, type):
|
def dist_name(self, type):
|
||||||
ext = None
|
ext = None
|
||||||
platform = None
|
platform = None
|
||||||
|
@ -1110,16 +1158,8 @@ class InternalCommands:
|
||||||
|
|
||||||
elif type == 'rpm' or type == 'deb':
|
elif type == 'rpm' or type == 'deb':
|
||||||
|
|
||||||
# os_bits should be loaded with '32bit' or '64bit'
|
|
||||||
import platform
|
|
||||||
(os_bits, other) = platform.architecture()
|
|
||||||
|
|
||||||
# get platform based on current platform
|
|
||||||
ext = type
|
ext = type
|
||||||
if os_bits == '32bit':
|
platform = self.getLinuxPlatform()
|
||||||
platform = 'Linux-i686'
|
|
||||||
elif os_bits == '64bit':
|
|
||||||
platform = 'Linux-x86_64'
|
|
||||||
|
|
||||||
elif type == 'win':
|
elif type == 'win':
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
# -*- rpm-spec -*-
|
||||||
|
Summary: Synergy
|
||||||
|
Name: synergy
|
||||||
|
Release: 1
|
||||||
|
License: GPLv2
|
||||||
|
Group: Applications/Accessories
|
||||||
|
URL: http://synergy-foss.org/
|
||||||
|
Source: http://synergy-foss.org/download/
|
||||||
|
Vendor: The Synergy Project
|
||||||
|
Packager: Nick Bolton <nick@synergy-foss.org>
|
||||||
|
Version: ${in:version}
|
||||||
|
|
||||||
|
%description
|
||||||
|
Synergy is free and open source software for sharing one mouse and keyboard
|
||||||
|
between multiple computers. Works on Windows, Mac OS X, Linux, Android and
|
||||||
|
Apple iOS.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
source=%{_topdir}/../..
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}/%{_datarootdir}/applications
|
||||||
|
mkdir -p %{buildroot}/%{_datarootdir}/icons
|
||||||
|
mkdir -p %{buildroot}/%{_bindir}
|
||||||
|
|
||||||
|
cp $source/bin/synergy %{buildroot}%{_bindir}
|
||||||
|
cp $source/bin/synergyc %{buildroot}%{_bindir}
|
||||||
|
cp $source/bin/synergys %{buildroot}%{_bindir}
|
||||||
|
cp $source/bin/synergyd %{buildroot}%{_bindir}
|
||||||
|
cp $source/bin/syntool %{buildroot}%{_bindir}
|
||||||
|
cp $source/res/synergy.desktop %{buildroot}%{_datarootdir}/applications
|
||||||
|
cp $source/res/synergy.ico %{buildroot}%{_datarootdir}/icons
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_bindir}/synergy
|
||||||
|
%{_bindir}/synergyc
|
||||||
|
%{_bindir}/synergys
|
||||||
|
%{_bindir}/synergyd
|
||||||
|
%{_bindir}/syntool
|
||||||
|
%{_datarootdir}/applications/synergy.desktop
|
||||||
|
%{_datarootdir}/icons/synergy.ico
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Mar 20 2014 Nick Bolton <nick@synergy-foss.org>
|
||||||
|
- Initial version of the package
|
Loading…
Reference in New Issue