Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: third_party/twisted_8_1/twisted/scripts/tap2rpm.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # based off the tap2deb.py file
2 # tap2rpm.py built by Sean Reifschneider, <jafo@tummy.com>
3
4 # TODO: need to implement log-file rotation
5
6 import sys, os, shutil, time, glob
7
8 from twisted.python import usage
9 from twisted.scripts import tap2deb
10
11
12 #################################
13 # data that goes in /etc/inittab
14 initFileData = '''\
15 #!/bin/sh
16 #
17 # Startup script for a Twisted service.
18 #
19 # chkconfig: - 85 15
20 # description: Start-up script for the Twisted service "%(tap_file)s".
21
22 PATH=/usr/bin:/bin:/usr/sbin:/sbin
23
24 pidfile=/var/run/%(rpm_file)s.pid
25 rundir=/var/lib/twisted-taps/%(rpm_file)s/
26 file=/etc/twisted-taps/%(tap_file)s
27 logfile=/var/log/%(rpm_file)s.log
28
29 # load init function library
30 . /etc/init.d/functions
31
32 [ -r /etc/default/%(rpm_file)s ] && . /etc/default/%(rpm_file)s
33
34 # check for required files
35 if [ ! -x /usr/bin/twistd ]
36 then
37 echo "$0: Aborting, no /usr/bin/twistd found"
38 exit 0
39 fi
40 if [ ! -r "$file" ]
41 then
42 echo "$0: Aborting, no file $file found."
43 exit 0
44 fi
45
46 # set up run directory if necessary
47 if [ ! -d "${rundir}" ]
48 then
49 mkdir -p "${rundir}"
50 fi
51
52
53 case "$1" in
54 start)
55 echo -n "Starting %(rpm_file)s: twistd"
56 daemon twistd \\
57 --pidfile=$pidfile \\
58 --rundir=$rundir \\
59 --%(twistd_option)s=$file \\
60 --logfile=$logfile
61 status %(rpm_file)s
62 ;;
63
64 stop)
65 echo -n "Stopping %(rpm_file)s: twistd"
66 kill `cat "${pidfile}"`
67 status %(rpm_file)s
68 ;;
69
70 restart)
71 "${0}" stop
72 "${0}" start
73 ;;
74
75 *)
76 echo "Usage: ${0} {start|stop|restart|}" >&2
77 exit 1
78 ;;
79 esac
80
81 exit 0
82 '''
83
84 #######################################
85 # the data for creating the spec file
86 specFileData = '''\
87 Summary: %(description)s
88 Name: %(rpm_file)s
89 Version: %(version)s
90 Release: 1
91 Copyright: Unknown
92 Group: Networking/Daemons
93 Source: %(tarfile_basename)s
94 BuildRoot: /var/tmp/%%{name}-%%{version}-root
95 Requires: /usr/bin/twistd
96 BuildArch: noarch
97
98 %%description
99 %(long_description)s
100
101 %%prep
102 %%setup
103 %%build
104
105 %%install
106 [ ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != '/' ] \
107 && rm -rf "$RPM_BUILD_ROOT"
108 mkdir -p "$RPM_BUILD_ROOT"/etc/twisted-taps
109 mkdir -p "$RPM_BUILD_ROOT"/etc/init.d
110 mkdir -p "$RPM_BUILD_ROOT"/var/lib/twisted-taps
111 cp "%(tap_file)s" "$RPM_BUILD_ROOT"/etc/twisted-taps/
112 cp "%(rpm_file)s.init" "$RPM_BUILD_ROOT"/etc/init.d/"%(rpm_file)s"
113
114 %%clean
115 [ ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != '/' ] \
116 && rm -rf "$RPM_BUILD_ROOT"
117
118 %%post
119 /sbin/chkconfig --add %(rpm_file)s
120 /sbin/chkconfig --level 35 %(rpm_file)s
121 /etc/init.d/%(rpm_file)s start
122
123 %%preun
124 /etc/init.d/%(rpm_file)s stop
125 /sbin/chkconfig --del %(rpm_file)s
126
127 %%files
128 %%defattr(-,root,root)
129 %%attr(0755,root,root) /etc/init.d/%(rpm_file)s
130 %%attr(0660,root,root) /etc/twisted-taps/%(tap_file)s
131
132 %%changelog
133 * %(date)s %(maintainer)s
134 - Created by tap2rpm: %(rpm_file)s (%(version)s)
135 '''
136
137 ###############################
138 class MyOptions(usage.Options):
139 optFlags = [["unsigned", "u"]]
140 optParameters = [
141 ["tapfile", "t", "twistd.tap"],
142 ["maintainer", "m", ""],
143 ["protocol", "p", ""],
144 ["description", "e", ""],
145 ["long_description", "l", ""],
146 ["set-version", "V", "1.0"],
147 ["rpmfile", "r", None],
148 ["type", "y", "tap", "type of configuration: 'tap', 'xml, "
149 "'source' or 'python'"],
150 ]
151
152 #zsh_altArgDescr = {"foo":"use this description for foo instead"}
153 #zsh_multiUse = ["foo", "bar"]
154 #zsh_mutuallyExclusive = [("foo", "bar"), ("bar", "baz")]
155 zsh_actions = {"type":"(tap xml source python)",
156 "rpmfile":'_files -g "*.rpm"'}
157 #zsh_actionDescr = {"logfile":"log file name", "random":"random seed"}
158
159
160 type_dict = {
161 'tap': 'file',
162 'python': 'python',
163 'source': 'source',
164 'xml': 'xml',
165 }
166
167
168 ##########################
169 def makeBuildDir(baseDir):
170 '''Set up the temporary directory for building RPMs.
171 Returns: Tuple: ( buildDir, rpmrcFile )
172 '''
173 import random, string
174
175 # make top directory
176 oldMask = os.umask(0077)
177 while 1:
178 tmpDir = os.path.join(baseDir, 'tap2rpm-%s-%s' % ( os.getpid(),
179 random.randint(0, 999999999) ))
180 if not os.path.exists(tmpDir):
181 os.makedirs(tmpDir)
182 break
183 os.umask(oldMask)
184
185 # set up initial directory contents
186 os.makedirs(os.path.join(tmpDir, 'RPMS', 'noarch'))
187 os.makedirs(os.path.join(tmpDir, 'SPECS'))
188 os.makedirs(os.path.join(tmpDir, 'BUILD'))
189 os.makedirs(os.path.join(tmpDir, 'SOURCES'))
190 os.makedirs(os.path.join(tmpDir, 'SRPMS'))
191
192 # set up rpmmacros file
193 macroFile = os.path.join(tmpDir, 'rpmmacros')
194 rcFile = os.path.join(tmpDir, 'rpmrc')
195 rpmrcData = open('/usr/lib/rpm/rpmrc', 'r').read()
196 rpmrcData = string.replace(rpmrcData, '~/.rpmmacros', macroFile)
197 fp = open(macroFile, 'w')
198 fp.write('%%_topdir %s\n' % tmpDir)
199 fp.close()
200
201 # set up the rpmrc file
202 fp = open(rcFile, 'w')
203 fp.write(rpmrcData)
204 fp.close()
205
206 return(( tmpDir, rcFile ))
207
208
209 ##########
210 def run():
211 # parse options
212 try:
213 config = MyOptions()
214 config.parseOptions()
215 except usage.error, ue:
216 sys.exit("%s: %s" % (sys.argv[0], ue))
217
218 # set up some useful local variables
219 tap_file = config['tapfile']
220 base_tap_file = os.path.basename(config['tapfile'])
221 protocol = (config['protocol'] or os.path.splitext(base_tap_file)[0])
222 rpm_file = config['rpmfile'] or 'twisted-'+protocol
223 version = config['set-version']
224 maintainer = config['maintainer']
225 description = config['description'] or ('A TCP server for %(protocol)s' %
226 vars())
227 long_description = (config['long_description']
228 or 'Automatically created by tap2deb')
229 twistd_option = type_dict[config['type']]
230 date = time.strftime('%a %b %d %Y', time.localtime(time.time()))
231 directory = rpm_file + '-' + version
232 python_version = '%s.%s' % sys.version_info[:2]
233
234 # set up a blank maintainer if not present
235 if not maintainer:
236 maintainer = 'tap2rpm'
237
238 # create source archive directory
239 tmp_dir, rpmrc_file = makeBuildDir('/var/tmp')
240 source_dir = os.path.join(tmp_dir, directory)
241 os.makedirs(source_dir)
242
243 # populate source directory
244 tarfile_name = source_dir + '.tar.gz'
245 tarfile_basename = os.path.basename(tarfile_name)
246 tap2deb.save_to_file(os.path.join(source_dir, '%s.spec' % rpm_file),
247 specFileData % vars())
248 tap2deb.save_to_file(os.path.join(source_dir, '%s.init' % rpm_file),
249 initFileData % vars())
250 shutil.copy(tap_file, source_dir)
251
252 # create source tar
253 os.system('cd "%(tmp_dir)s"; tar cfz "%(tarfile_name)s" "%(directory)s"'
254 % vars())
255
256 # build rpm
257 print 'Starting build...'
258 print '=' * 70
259 sys.stdout.flush()
260 os.system('rpmbuild -ta --rcfile "%s" %s' % ( rpmrc_file, tarfile_name ))
261 print 'Done with build...'
262 print '=' * 70
263
264 # copy the RPMs to the local directory
265 rpm_path = glob.glob(os.path.join(tmp_dir, 'RPMS', 'noarch', '*'))[0]
266 srpm_path = glob.glob(os.path.join(tmp_dir, 'SRPMS', '*'))[0]
267 print 'Writing "%s"...' % os.path.basename(rpm_path)
268 shutil.copy(rpm_path, '.')
269 print 'Writing "%s"...' % os.path.basename(srpm_path)
270 shutil.copy(srpm_path, '.')
271
272 # remove the build directory
273 shutil.rmtree(tmp_dir)
OLDNEW
« no previous file with comments | « third_party/twisted_8_1/twisted/scripts/tap2deb.py ('k') | third_party/twisted_8_1/twisted/scripts/tapconvert.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698