Merge lp:~didrocks/ubuntuone-client/dont-suffer-zg-crash into lp:ubuntuone-client

Proposed by Didier Roche-Tolomelli
Status: Rejected
Rejected by: dobey
Proposed branch: lp:~didrocks/ubuntuone-client/dont-suffer-zg-crash
Merge into: lp:ubuntuone-client
Diff against target: 170206 lines (has conflicts)
Conflict adding file COPYING.icons.  Moved existing file to COPYING.icons.moved.
Conflict adding file COPYING.  Moved existing file to COPYING.moved.
Conflict adding file HACKING.  Moved existing file to HACKING.moved.
Conflict adding file Makefile.am.  Moved existing file to Makefile.am.moved.
Conflict adding file README.  Moved existing file to README.moved.
Conflict adding file bin.  Moved existing file to bin.moved.
Conflict adding file configure.ac.  Moved existing file to configure.ac.moved.
Conflict adding file contrib.  Moved existing file to contrib.moved.
Conflict adding file data.  Moved existing file to data.moved.
Conflict adding file docs.  Moved existing file to docs.moved.
Conflict adding file gsd-plugin.  Moved existing file to gsd-plugin.moved.
Conflict adding file libsyncdaemon.  Moved existing file to libsyncdaemon.moved.
Conflict adding file nautilus.  Moved existing file to nautilus.moved.
Conflict adding file po.  Moved existing file to po.moved.
Conflict adding file pylintrc.  Moved existing file to pylintrc.moved.
Conflict adding file tests.  Moved existing file to tests.moved.
Conflict adding file ubuntuone.  Moved existing file to ubuntuone.moved.
To merge this branch: bzr merge lp:~didrocks/ubuntuone-client/dont-suffer-zg-crash
Reviewer Review Type Date Requested Status
dobey (community) Disapprove
Review via email: mp+67285@code.launchpad.net

Description of the change

Don't crash if zeitgeist is crashing, just avoid logging.

To post a comment you must log in.
Revision history for this message
dobey (dobey) wrote :

You're attempting to merge the packaging branch in. That won't work here.

review: Disapprove

Unmerged revisions

84. By Didier Roche-Tolomelli

don't crash if zeitgeist can't initialize

83. By dobey

* New upstream release.
  - Launcher progress bar is uninformative (LP: #779851)
  - libsyncdaemon header breaks compilation in C++ (LP: #801263)
  - Install extensions to correct ABI directories (LP: #800723)
  - Never sees NetworkManager connection (LP: #791548)
* Replace gconf-defualts with a gsettings schema override for g-s-d plug-in
* Convert to dh_python2
* Don't hardcode the ABI version for the g-s-d plug-ins directory

82. By dobey

* Use Depends instead of Recommends to pull in Unity API (LP: #770379)
* New upstream release.
  - Remove patches already included in upstream
  - Uploads fail due to starvation (LP: #767466, #766102)
  - Logging defaults to DEBUG, should be INFO (LP: #765441)
* Require new version of ubuntuone-storage-protocol for LP: #767466

81. By dobey

Fix the Recommends for Unity API (LP: #770379)

80. By dobey

[Chris Coulson]
Only free the GconfValue when it is not NULL (LP: #767825)

79. By dobey

* 01_broken-sso-dbus-api.patch:
  - Fix the broken usage of SSO D-Bus API (LP: #764646, #759197)
* 02_check-enabled-before-dbus.patch:
  - Check that file sync is enabled before D-Bus connection (LP: #759714)

78. By dobey

* New upstream release.
  - ZipQueue does not trigger deferred when cancelled (LP: #757864)
  - AssertionError in aggregator (LP: #759084)
  - Ubuntu One folder bookmark not created (LP: #759197)

77. By dobey

* New upstream release.
  - Avoid conflict when same file already exists locally (LP: #711389)
  - Must move fils to trash on deletion (LP: #690673)
  - Support disconnection during initial connect attempt (LP: #711211)
  - Log version number on startup (LP: #715455)
  - Memory usage too high (LP: #721483)
  - Unsubscribed folders show as synced, if they exist (LP: #741835)
  - gnome-settings-daemon crash in g_str_hash (LP: #744383)
  - Should not re-queue uploads directly (LP: #744608)
  - No feedback when creating folder from symlink fails (LP: #747299)
  - [FFE] Use API to set urgency from background process (LP: #747677)
  - Open control panel to volumes when quota exceeded (LP: #702176)
  - Set the launcher to urgent when quota exceeded (LP: #702183)
  - nautilus crash in g_str_hash (LP: #724882)
  - Disable/enable file sync is buggy (LP: #744980)

[Chris Coulson]
* gnome-settings-daemon crash in g_return_fail_if_warning (LP: #744980)

76. By dobey

* debian/control:
  - Conflict to deal with icons moving to ubuntuone-client (LP: #741529)

75. By dobey

* New upstream release.
  - Too many download notifications (LP: #740377)
* debian/rules:
  - Remove the .la and .a files from the g-s-d extensions directory

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'COPYING'
--- COPYING 1970-01-01 00:00:00 +0000
+++ COPYING 2011-07-08 07:12:36 +0000
@@ -0,0 +1,674 @@
1 GNU GENERAL PUBLIC LICENSE
2 Version 3, 29 June 2007
3
4 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
5 Everyone is permitted to copy and distribute verbatim copies
6 of this license document, but changing it is not allowed.
7
8 Preamble
9
10 The GNU General Public License is a free, copyleft license for
11software and other kinds of works.
12
13 The licenses for most software and other practical works are designed
14to take away your freedom to share and change the works. By contrast,
15the GNU General Public License is intended to guarantee your freedom to
16share and change all versions of a program--to make sure it remains free
17software for all its users. We, the Free Software Foundation, use the
18GNU General Public License for most of our software; it applies also to
19any other work released this way by its authors. You can apply it to
20your programs, too.
21
22 When we speak of free software, we are referring to freedom, not
23price. Our General Public Licenses are designed to make sure that you
24have the freedom to distribute copies of free software (and charge for
25them if you wish), that you receive source code or can get it if you
26want it, that you can change the software or use pieces of it in new
27free programs, and that you know you can do these things.
28
29 To protect your rights, we need to prevent others from denying you
30these rights or asking you to surrender the rights. Therefore, you have
31certain responsibilities if you distribute copies of the software, or if
32you modify it: responsibilities to respect the freedom of others.
33
34 For example, if you distribute copies of such a program, whether
35gratis or for a fee, you must pass on to the recipients the same
36freedoms that you received. You must make sure that they, too, receive
37or can get the source code. And you must show them these terms so they
38know their rights.
39
40 Developers that use the GNU GPL protect your rights with two steps:
41(1) assert copyright on the software, and (2) offer you this License
42giving you legal permission to copy, distribute and/or modify it.
43
44 For the developers' and authors' protection, the GPL clearly explains
45that there is no warranty for this free software. For both users' and
46authors' sake, the GPL requires that modified versions be marked as
47changed, so that their problems will not be attributed erroneously to
48authors of previous versions.
49
50 Some devices are designed to deny users access to install or run
51modified versions of the software inside them, although the manufacturer
52can do so. This is fundamentally incompatible with the aim of
53protecting users' freedom to change the software. The systematic
54pattern of such abuse occurs in the area of products for individuals to
55use, which is precisely where it is most unacceptable. Therefore, we
56have designed this version of the GPL to prohibit the practice for those
57products. If such problems arise substantially in other domains, we
58stand ready to extend this provision to those domains in future versions
59of the GPL, as needed to protect the freedom of users.
60
61 Finally, every program is threatened constantly by software patents.
62States should not allow patents to restrict development and use of
63software on general-purpose computers, but in those that do, we wish to
64avoid the special danger that patents applied to a free program could
65make it effectively proprietary. To prevent this, the GPL assures that
66patents cannot be used to render the program non-free.
67
68 The precise terms and conditions for copying, distribution and
69modification follow.
70
71 TERMS AND CONDITIONS
72
73 0. Definitions.
74
75 "This License" refers to version 3 of the GNU General Public License.
76
77 "Copyright" also means copyright-like laws that apply to other kinds of
78works, such as semiconductor masks.
79
80 "The Program" refers to any copyrightable work licensed under this
81License. Each licensee is addressed as "you". "Licensees" and
82"recipients" may be individuals or organizations.
83
84 To "modify" a work means to copy from or adapt all or part of the work
85in a fashion requiring copyright permission, other than the making of an
86exact copy. The resulting work is called a "modified version" of the
87earlier work or a work "based on" the earlier work.
88
89 A "covered work" means either the unmodified Program or a work based
90on the Program.
91
92 To "propagate" a work means to do anything with it that, without
93permission, would make you directly or secondarily liable for
94infringement under applicable copyright law, except executing it on a
95computer or modifying a private copy. Propagation includes copying,
96distribution (with or without modification), making available to the
97public, and in some countries other activities as well.
98
99 To "convey" a work means any kind of propagation that enables other
100parties to make or receive copies. Mere interaction with a user through
101a computer network, with no transfer of a copy, is not conveying.
102
103 An interactive user interface displays "Appropriate Legal Notices"
104to the extent that it includes a convenient and prominently visible
105feature that (1) displays an appropriate copyright notice, and (2)
106tells the user that there is no warranty for the work (except to the
107extent that warranties are provided), that licensees may convey the
108work under this License, and how to view a copy of this License. If
109the interface presents a list of user commands or options, such as a
110menu, a prominent item in the list meets this criterion.
111
112 1. Source Code.
113
114 The "source code" for a work means the preferred form of the work
115for making modifications to it. "Object code" means any non-source
116form of a work.
117
118 A "Standard Interface" means an interface that either is an official
119standard defined by a recognized standards body, or, in the case of
120interfaces specified for a particular programming language, one that
121is widely used among developers working in that language.
122
123 The "System Libraries" of an executable work include anything, other
124than the work as a whole, that (a) is included in the normal form of
125packaging a Major Component, but which is not part of that Major
126Component, and (b) serves only to enable use of the work with that
127Major Component, or to implement a Standard Interface for which an
128implementation is available to the public in source code form. A
129"Major Component", in this context, means a major essential component
130(kernel, window system, and so on) of the specific operating system
131(if any) on which the executable work runs, or a compiler used to
132produce the work, or an object code interpreter used to run it.
133
134 The "Corresponding Source" for a work in object code form means all
135the source code needed to generate, install, and (for an executable
136work) run the object code and to modify the work, including scripts to
137control those activities. However, it does not include the work's
138System Libraries, or general-purpose tools or generally available free
139programs which are used unmodified in performing those activities but
140which are not part of the work. For example, Corresponding Source
141includes interface definition files associated with source files for
142the work, and the source code for shared libraries and dynamically
143linked subprograms that the work is specifically designed to require,
144such as by intimate data communication or control flow between those
145subprograms and other parts of the work.
146
147 The Corresponding Source need not include anything that users
148can regenerate automatically from other parts of the Corresponding
149Source.
150
151 The Corresponding Source for a work in source code form is that
152same work.
153
154 2. Basic Permissions.
155
156 All rights granted under this License are granted for the term of
157copyright on the Program, and are irrevocable provided the stated
158conditions are met. This License explicitly affirms your unlimited
159permission to run the unmodified Program. The output from running a
160covered work is covered by this License only if the output, given its
161content, constitutes a covered work. This License acknowledges your
162rights of fair use or other equivalent, as provided by copyright law.
163
164 You may make, run and propagate covered works that you do not
165convey, without conditions so long as your license otherwise remains
166in force. You may convey covered works to others for the sole purpose
167of having them make modifications exclusively for you, or provide you
168with facilities for running those works, provided that you comply with
169the terms of this License in conveying all material for which you do
170not control copyright. Those thus making or running the covered works
171for you must do so exclusively on your behalf, under your direction
172and control, on terms that prohibit them from making any copies of
173your copyrighted material outside their relationship with you.
174
175 Conveying under any other circumstances is permitted solely under
176the conditions stated below. Sublicensing is not allowed; section 10
177makes it unnecessary.
178
179 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180
181 No covered work shall be deemed part of an effective technological
182measure under any applicable law fulfilling obligations under article
18311 of the WIPO copyright treaty adopted on 20 December 1996, or
184similar laws prohibiting or restricting circumvention of such
185measures.
186
187 When you convey a covered work, you waive any legal power to forbid
188circumvention of technological measures to the extent such circumvention
189is effected by exercising rights under this License with respect to
190the covered work, and you disclaim any intention to limit operation or
191modification of the work as a means of enforcing, against the work's
192users, your or third parties' legal rights to forbid circumvention of
193technological measures.
194
195 4. Conveying Verbatim Copies.
196
197 You may convey verbatim copies of the Program's source code as you
198receive it, in any medium, provided that you conspicuously and
199appropriately publish on each copy an appropriate copyright notice;
200keep intact all notices stating that this License and any
201non-permissive terms added in accord with section 7 apply to the code;
202keep intact all notices of the absence of any warranty; and give all
203recipients a copy of this License along with the Program.
204
205 You may charge any price or no price for each copy that you convey,
206and you may offer support or warranty protection for a fee.
207
208 5. Conveying Modified Source Versions.
209
210 You may convey a work based on the Program, or the modifications to
211produce it from the Program, in the form of source code under the
212terms of section 4, provided that you also meet all of these conditions:
213
214 a) The work must carry prominent notices stating that you modified
215 it, and giving a relevant date.
216
217 b) The work must carry prominent notices stating that it is
218 released under this License and any conditions added under section
219 7. This requirement modifies the requirement in section 4 to
220 "keep intact all notices".
221
222 c) You must license the entire work, as a whole, under this
223 License to anyone who comes into possession of a copy. This
224 License will therefore apply, along with any applicable section 7
225 additional terms, to the whole of the work, and all its parts,
226 regardless of how they are packaged. This License gives no
227 permission to license the work in any other way, but it does not
228 invalidate such permission if you have separately received it.
229
230 d) If the work has interactive user interfaces, each must display
231 Appropriate Legal Notices; however, if the Program has interactive
232 interfaces that do not display Appropriate Legal Notices, your
233 work need not make them do so.
234
235 A compilation of a covered work with other separate and independent
236works, which are not by their nature extensions of the covered work,
237and which are not combined with it such as to form a larger program,
238in or on a volume of a storage or distribution medium, is called an
239"aggregate" if the compilation and its resulting copyright are not
240used to limit the access or legal rights of the compilation's users
241beyond what the individual works permit. Inclusion of a covered work
242in an aggregate does not cause this License to apply to the other
243parts of the aggregate.
244
245 6. Conveying Non-Source Forms.
246
247 You may convey a covered work in object code form under the terms
248of sections 4 and 5, provided that you also convey the
249machine-readable Corresponding Source under the terms of this License,
250in one of these ways:
251
252 a) Convey the object code in, or embodied in, a physical product
253 (including a physical distribution medium), accompanied by the
254 Corresponding Source fixed on a durable physical medium
255 customarily used for software interchange.
256
257 b) Convey the object code in, or embodied in, a physical product
258 (including a physical distribution medium), accompanied by a
259 written offer, valid for at least three years and valid for as
260 long as you offer spare parts or customer support for that product
261 model, to give anyone who possesses the object code either (1) a
262 copy of the Corresponding Source for all the software in the
263 product that is covered by this License, on a durable physical
264 medium customarily used for software interchange, for a price no
265 more than your reasonable cost of physically performing this
266 conveying of source, or (2) access to copy the
267 Corresponding Source from a network server at no charge.
268
269 c) Convey individual copies of the object code with a copy of the
270 written offer to provide the Corresponding Source. This
271 alternative is allowed only occasionally and noncommercially, and
272 only if you received the object code with such an offer, in accord
273 with subsection 6b.
274
275 d) Convey the object code by offering access from a designated
276 place (gratis or for a charge), and offer equivalent access to the
277 Corresponding Source in the same way through the same place at no
278 further charge. You need not require recipients to copy the
279 Corresponding Source along with the object code. If the place to
280 copy the object code is a network server, the Corresponding Source
281 may be on a different server (operated by you or a third party)
282 that supports equivalent copying facilities, provided you maintain
283 clear directions next to the object code saying where to find the
284 Corresponding Source. Regardless of what server hosts the
285 Corresponding Source, you remain obligated to ensure that it is
286 available for as long as needed to satisfy these requirements.
287
288 e) Convey the object code using peer-to-peer transmission, provided
289 you inform other peers where the object code and Corresponding
290 Source of the work are being offered to the general public at no
291 charge under subsection 6d.
292
293 A separable portion of the object code, whose source code is excluded
294from the Corresponding Source as a System Library, need not be
295included in conveying the object code work.
296
297 A "User Product" is either (1) a "consumer product", which means any
298tangible personal property which is normally used for personal, family,
299or household purposes, or (2) anything designed or sold for incorporation
300into a dwelling. In determining whether a product is a consumer product,
301doubtful cases shall be resolved in favor of coverage. For a particular
302product received by a particular user, "normally used" refers to a
303typical or common use of that class of product, regardless of the status
304of the particular user or of the way in which the particular user
305actually uses, or expects or is expected to use, the product. A product
306is a consumer product regardless of whether the product has substantial
307commercial, industrial or non-consumer uses, unless such uses represent
308the only significant mode of use of the product.
309
310 "Installation Information" for a User Product means any methods,
311procedures, authorization keys, or other information required to install
312and execute modified versions of a covered work in that User Product from
313a modified version of its Corresponding Source. The information must
314suffice to ensure that the continued functioning of the modified object
315code is in no case prevented or interfered with solely because
316modification has been made.
317
318 If you convey an object code work under this section in, or with, or
319specifically for use in, a User Product, and the conveying occurs as
320part of a transaction in which the right of possession and use of the
321User Product is transferred to the recipient in perpetuity or for a
322fixed term (regardless of how the transaction is characterized), the
323Corresponding Source conveyed under this section must be accompanied
324by the Installation Information. But this requirement does not apply
325if neither you nor any third party retains the ability to install
326modified object code on the User Product (for example, the work has
327been installed in ROM).
328
329 The requirement to provide Installation Information does not include a
330requirement to continue to provide support service, warranty, or updates
331for a work that has been modified or installed by the recipient, or for
332the User Product in which it has been modified or installed. Access to a
333network may be denied when the modification itself materially and
334adversely affects the operation of the network or violates the rules and
335protocols for communication across the network.
336
337 Corresponding Source conveyed, and Installation Information provided,
338in accord with this section must be in a format that is publicly
339documented (and with an implementation available to the public in
340source code form), and must require no special password or key for
341unpacking, reading or copying.
342
343 7. Additional Terms.
344
345 "Additional permissions" are terms that supplement the terms of this
346License by making exceptions from one or more of its conditions.
347Additional permissions that are applicable to the entire Program shall
348be treated as though they were included in this License, to the extent
349that they are valid under applicable law. If additional permissions
350apply only to part of the Program, that part may be used separately
351under those permissions, but the entire Program remains governed by
352this License without regard to the additional permissions.
353
354 When you convey a copy of a covered work, you may at your option
355remove any additional permissions from that copy, or from any part of
356it. (Additional permissions may be written to require their own
357removal in certain cases when you modify the work.) You may place
358additional permissions on material, added by you to a covered work,
359for which you have or can give appropriate copyright permission.
360
361 Notwithstanding any other provision of this License, for material you
362add to a covered work, you may (if authorized by the copyright holders of
363that material) supplement the terms of this License with terms:
364
365 a) Disclaiming warranty or limiting liability differently from the
366 terms of sections 15 and 16 of this License; or
367
368 b) Requiring preservation of specified reasonable legal notices or
369 author attributions in that material or in the Appropriate Legal
370 Notices displayed by works containing it; or
371
372 c) Prohibiting misrepresentation of the origin of that material, or
373 requiring that modified versions of such material be marked in
374 reasonable ways as different from the original version; or
375
376 d) Limiting the use for publicity purposes of names of licensors or
377 authors of the material; or
378
379 e) Declining to grant rights under trademark law for use of some
380 trade names, trademarks, or service marks; or
381
382 f) Requiring indemnification of licensors and authors of that
383 material by anyone who conveys the material (or modified versions of
384 it) with contractual assumptions of liability to the recipient, for
385 any liability that these contractual assumptions directly impose on
386 those licensors and authors.
387
388 All other non-permissive additional terms are considered "further
389restrictions" within the meaning of section 10. If the Program as you
390received it, or any part of it, contains a notice stating that it is
391governed by this License along with a term that is a further
392restriction, you may remove that term. If a license document contains
393a further restriction but permits relicensing or conveying under this
394License, you may add to a covered work material governed by the terms
395of that license document, provided that the further restriction does
396not survive such relicensing or conveying.
397
398 If you add terms to a covered work in accord with this section, you
399must place, in the relevant source files, a statement of the
400additional terms that apply to those files, or a notice indicating
401where to find the applicable terms.
402
403 Additional terms, permissive or non-permissive, may be stated in the
404form of a separately written license, or stated as exceptions;
405the above requirements apply either way.
406
407 8. Termination.
408
409 You may not propagate or modify a covered work except as expressly
410provided under this License. Any attempt otherwise to propagate or
411modify it is void, and will automatically terminate your rights under
412this License (including any patent licenses granted under the third
413paragraph of section 11).
414
415 However, if you cease all violation of this License, then your
416license from a particular copyright holder is reinstated (a)
417provisionally, unless and until the copyright holder explicitly and
418finally terminates your license, and (b) permanently, if the copyright
419holder fails to notify you of the violation by some reasonable means
420prior to 60 days after the cessation.
421
422 Moreover, your license from a particular copyright holder is
423reinstated permanently if the copyright holder notifies you of the
424violation by some reasonable means, this is the first time you have
425received notice of violation of this License (for any work) from that
426copyright holder, and you cure the violation prior to 30 days after
427your receipt of the notice.
428
429 Termination of your rights under this section does not terminate the
430licenses of parties who have received copies or rights from you under
431this License. If your rights have been terminated and not permanently
432reinstated, you do not qualify to receive new licenses for the same
433material under section 10.
434
435 9. Acceptance Not Required for Having Copies.
436
437 You are not required to accept this License in order to receive or
438run a copy of the Program. Ancillary propagation of a covered work
439occurring solely as a consequence of using peer-to-peer transmission
440to receive a copy likewise does not require acceptance. However,
441nothing other than this License grants you permission to propagate or
442modify any covered work. These actions infringe copyright if you do
443not accept this License. Therefore, by modifying or propagating a
444covered work, you indicate your acceptance of this License to do so.
445
446 10. Automatic Licensing of Downstream Recipients.
447
448 Each time you convey a covered work, the recipient automatically
449receives a license from the original licensors, to run, modify and
450propagate that work, subject to this License. You are not responsible
451for enforcing compliance by third parties with this License.
452
453 An "entity transaction" is a transaction transferring control of an
454organization, or substantially all assets of one, or subdividing an
455organization, or merging organizations. If propagation of a covered
456work results from an entity transaction, each party to that
457transaction who receives a copy of the work also receives whatever
458licenses to the work the party's predecessor in interest had or could
459give under the previous paragraph, plus a right to possession of the
460Corresponding Source of the work from the predecessor in interest, if
461the predecessor has it or can get it with reasonable efforts.
462
463 You may not impose any further restrictions on the exercise of the
464rights granted or affirmed under this License. For example, you may
465not impose a license fee, royalty, or other charge for exercise of
466rights granted under this License, and you may not initiate litigation
467(including a cross-claim or counterclaim in a lawsuit) alleging that
468any patent claim is infringed by making, using, selling, offering for
469sale, or importing the Program or any portion of it.
470
471 11. Patents.
472
473 A "contributor" is a copyright holder who authorizes use under this
474License of the Program or a work on which the Program is based. The
475work thus licensed is called the contributor's "contributor version".
476
477 A contributor's "essential patent claims" are all patent claims
478owned or controlled by the contributor, whether already acquired or
479hereafter acquired, that would be infringed by some manner, permitted
480by this License, of making, using, or selling its contributor version,
481but do not include claims that would be infringed only as a
482consequence of further modification of the contributor version. For
483purposes of this definition, "control" includes the right to grant
484patent sublicenses in a manner consistent with the requirements of
485this License.
486
487 Each contributor grants you a non-exclusive, worldwide, royalty-free
488patent license under the contributor's essential patent claims, to
489make, use, sell, offer for sale, import and otherwise run, modify and
490propagate the contents of its contributor version.
491
492 In the following three paragraphs, a "patent license" is any express
493agreement or commitment, however denominated, not to enforce a patent
494(such as an express permission to practice a patent or covenant not to
495sue for patent infringement). To "grant" such a patent license to a
496party means to make such an agreement or commitment not to enforce a
497patent against the party.
498
499 If you convey a covered work, knowingly relying on a patent license,
500and the Corresponding Source of the work is not available for anyone
501to copy, free of charge and under the terms of this License, through a
502publicly available network server or other readily accessible means,
503then you must either (1) cause the Corresponding Source to be so
504available, or (2) arrange to deprive yourself of the benefit of the
505patent license for this particular work, or (3) arrange, in a manner
506consistent with the requirements of this License, to extend the patent
507license to downstream recipients. "Knowingly relying" means you have
508actual knowledge that, but for the patent license, your conveying the
509covered work in a country, or your recipient's use of the covered work
510in a country, would infringe one or more identifiable patents in that
511country that you have reason to believe are valid.
512
513 If, pursuant to or in connection with a single transaction or
514arrangement, you convey, or propagate by procuring conveyance of, a
515covered work, and grant a patent license to some of the parties
516receiving the covered work authorizing them to use, propagate, modify
517or convey a specific copy of the covered work, then the patent license
518you grant is automatically extended to all recipients of the covered
519work and works based on it.
520
521 A patent license is "discriminatory" if it does not include within
522the scope of its coverage, prohibits the exercise of, or is
523conditioned on the non-exercise of one or more of the rights that are
524specifically granted under this License. You may not convey a covered
525work if you are a party to an arrangement with a third party that is
526in the business of distributing software, under which you make payment
527to the third party based on the extent of your activity of conveying
528the work, and under which the third party grants, to any of the
529parties who would receive the covered work from you, a discriminatory
530patent license (a) in connection with copies of the covered work
531conveyed by you (or copies made from those copies), or (b) primarily
532for and in connection with specific products or compilations that
533contain the covered work, unless you entered into that arrangement,
534or that patent license was granted, prior to 28 March 2007.
535
536 Nothing in this License shall be construed as excluding or limiting
537any implied license or other defenses to infringement that may
538otherwise be available to you under applicable patent law.
539
540 12. No Surrender of Others' Freedom.
541
542 If conditions are imposed on you (whether by court order, agreement or
543otherwise) that contradict the conditions of this License, they do not
544excuse you from the conditions of this License. If you cannot convey a
545covered work so as to satisfy simultaneously your obligations under this
546License and any other pertinent obligations, then as a consequence you may
547not convey it at all. For example, if you agree to terms that obligate you
548to collect a royalty for further conveying from those to whom you convey
549the Program, the only way you could satisfy both those terms and this
550License would be to refrain entirely from conveying the Program.
551
552 13. Use with the GNU Affero General Public License.
553
554 Notwithstanding any other provision of this License, you have
555permission to link or combine any covered work with a work licensed
556under version 3 of the GNU Affero General Public License into a single
557combined work, and to convey the resulting work. The terms of this
558License will continue to apply to the part which is the covered work,
559but the special requirements of the GNU Affero General Public License,
560section 13, concerning interaction through a network will apply to the
561combination as such.
562
563 14. Revised Versions of this License.
564
565 The Free Software Foundation may publish revised and/or new versions of
566the GNU General Public License from time to time. Such new versions will
567be similar in spirit to the present version, but may differ in detail to
568address new problems or concerns.
569
570 Each version is given a distinguishing version number. If the
571Program specifies that a certain numbered version of the GNU General
572Public License "or any later version" applies to it, you have the
573option of following the terms and conditions either of that numbered
574version or of any later version published by the Free Software
575Foundation. If the Program does not specify a version number of the
576GNU General Public License, you may choose any version ever published
577by the Free Software Foundation.
578
579 If the Program specifies that a proxy can decide which future
580versions of the GNU General Public License can be used, that proxy's
581public statement of acceptance of a version permanently authorizes you
582to choose that version for the Program.
583
584 Later license versions may give you additional or different
585permissions. However, no additional obligations are imposed on any
586author or copyright holder as a result of your choosing to follow a
587later version.
588
589 15. Disclaimer of Warranty.
590
591 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599
600 16. Limitation of Liability.
601
602 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610SUCH DAMAGES.
611
612 17. Interpretation of Sections 15 and 16.
613
614 If the disclaimer of warranty and limitation of liability provided
615above cannot be given local legal effect according to their terms,
616reviewing courts shall apply local law that most closely approximates
617an absolute waiver of all civil liability in connection with the
618Program, unless a warranty or assumption of liability accompanies a
619copy of the Program in return for a fee.
620
621 END OF TERMS AND CONDITIONS
622
623 How to Apply These Terms to Your New Programs
624
625 If you develop a new program, and you want it to be of the greatest
626possible use to the public, the best way to achieve this is to make it
627free software which everyone can redistribute and change under these terms.
628
629 To do so, attach the following notices to the program. It is safest
630to attach them to the start of each source file to most effectively
631state the exclusion of warranty; and each file should have at least
632the "copyright" line and a pointer to where the full notice is found.
633
634 <one line to give the program's name and a brief idea of what it does.>
635 Copyright (C) <year> <name of author>
636
637 This program is free software: you can redistribute it and/or modify
638 it under the terms of the GNU General Public License as published by
639 the Free Software Foundation, either version 3 of the License, or
640 (at your option) any later version.
641
642 This program is distributed in the hope that it will be useful,
643 but WITHOUT ANY WARRANTY; without even the implied warranty of
644 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 GNU General Public License for more details.
646
647 You should have received a copy of the GNU General Public License
648 along with this program. If not, see <http://www.gnu.org/licenses/>.
649
650Also add information on how to contact you by electronic and paper mail.
651
652 If the program does terminal interaction, make it output a short
653notice like this when it starts in an interactive mode:
654
655 <program> Copyright (C) <year> <name of author>
656 This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 This is free software, and you are welcome to redistribute it
658 under certain conditions; type `show c' for details.
659
660The hypothetical commands `show w' and `show c' should show the appropriate
661parts of the General Public License. Of course, your program's commands
662might be different; for a GUI interface, you would use an "about box".
663
664 You should also get your employer (if you work as a programmer) or school,
665if any, to sign a "copyright disclaimer" for the program, if necessary.
666For more information on this, and how to apply and follow the GNU GPL, see
667<http://www.gnu.org/licenses/>.
668
669 The GNU General Public License does not permit incorporating your program
670into proprietary programs. If your program is a subroutine library, you
671may consider it more useful to permit linking proprietary applications with
672the library. If this is what you want to do, use the GNU Lesser General
673Public License instead of this License. But first, please read
674<http://www.gnu.org/philosophy/why-not-lgpl.html>.
0675
=== added file 'COPYING.icons'
--- COPYING.icons 1970-01-01 00:00:00 +0000
+++ COPYING.icons 2011-07-08 07:12:36 +0000
@@ -0,0 +1,61 @@
1THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
2
3BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
4
51. Definitions
6
7 1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
8 2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License.
9 3. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License.
10 4. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
11 5. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike.
12 6. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
13 7. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
14 8. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
15 9. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
16 10. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
17 11. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
18
192. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
20
213. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
22
23 1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
24 2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
25 3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
26 4. to Distribute and Publicly Perform Adaptations.
27 5.
28
29 For the avoidance of doubt:
30 1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
31 2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
32 3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
33
34The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
35
364. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
37
38 1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested.
39 2. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.
40 3. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
41 4. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
42
435. Representations, Warranties and Disclaimer
44
45UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
46
476. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
48
497. Termination
50
51 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
52 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
53
548. Miscellaneous
55
56 1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
57 2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
58 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
59 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
60 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
61 6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
062
=== renamed file 'COPYING.icons' => 'COPYING.icons.moved'
=== renamed file 'COPYING' => 'COPYING.moved'
=== added file 'HACKING'
--- HACKING 1970-01-01 00:00:00 +0000
+++ HACKING 2011-07-08 07:12:36 +0000
@@ -0,0 +1,35 @@
1Ubuntu One requires acceptance of the Canonical Contributor Agreement. You
2will need to follow the instructions at:
3
4http://www.canonical.com/contributors
5
6Once the agreement is accepted, you will be added to the Ubuntu One Contributor
7Agreement team on Launchpad, so that your branches may be merged in upstream.
8
9
10In order to run tests in ubuntuone-client, you will need to have a built
11version of ubuntuone-storage-protocol in a tree, or installed. You can
12specify the path to a built tree with the --with-protocol option to configure,
13or autogen.sh (which calls configure after creating it).
14
15$: ./configure --with-protocol=$HOME/source/ubuntuone-storage-protocol/trunk
16
17After configuring, in order to run the tests, all you need to do is run
18make check.
19
20$: make check
21
22
23Ubuntu One uses branch based development on Launchpad, and bugs to track
24features and issues. Make sure a bug is filed for the piece of code you wish
25to work on. When committing your changes, be sure to specify the bug # it
26fixes using the --fixes option in bzr.
27
28$: bzr commit --fixes=lp:<BUGNUMBER>
29
30If you forget to do this, you can link the branch manually on the Launchpad
31web page. After pushing your branch to Launchpad, you will need to propose it
32for merging into the parent branch. You can do this from the Launchpad web
33page for your branch. In order for your branch to be accepted, you will have
34to have accepted the Canonical Contributor Agreement as stated above, and
35there will need to be at least two approvals from Ubuntu One developers.
036
=== renamed file 'HACKING' => 'HACKING.moved'
=== added file 'Makefile.am'
--- Makefile.am 1970-01-01 00:00:00 +0000
+++ Makefile.am 2011-07-08 07:12:36 +0000
@@ -0,0 +1,151 @@
1SUBDIRS = data libsyncdaemon nautilus po gsd-plugin docs
2
3# Shut libtoolize up
4ACLOCAL_AMFLAGS = -I m4
5
6# PYTHONPATH for local Python scripts
7PYTHONPATH="$(SSO_PATH):$(USP_PATH):$(top_builddir):$(top_srcdir)"
8
9# Python packages we want to install
10pythonpkgdir = $(pythondir)/$(PACKAGE)
11pypackages = \
12 ubuntuone \
13 $(shell SRCDIR="ubuntuone"; for i in `find $$SRCDIR -type d`; do DIRNAME=`basename $$i`; if [ "x$$DIRNAME" != "xtest" ]; then printf "$$i "; fi; done)
14
15# Install our scripts and extra data here
16bin_SCRIPTS = \
17 bin/ubuntuone-launch \
18 bin/u1sdtool
19
20libexec_SCRIPTS = \
21 bin/ubuntuone-syncdaemon \
22 bin/ubuntuone-login
23
24clientdefsdir = $(pythonpkgdir)/ubuntuone
25clientdefs_in_files = ubuntuone/clientdefs.py.in
26clientdefs_DATA = $(clientdefs_in_files:.py.in=.py)
27
28# Don't end up pulling in storage-protocol source as well
29pyfiles = $(shell SRCDIR="$(top_srcdir)/ubuntuone"; for i in `find $$SRCDIR -type f -name "*.py"`; do if [ ! -f $$i.in ]; then printf "$$i "; fi; done)
30
31$(clientdefs_DATA): $(clientdefs_in_files) ubuntuone
32 sed -e 's|\@localedir\@|$(localedir)|g' \
33 -e 's|\@libexecdir\@|$(libexecdir)|g' \
34 -e 's|\@GETTEXT_PACKAGE\@|$(GETTEXT_PACKAGE)|g' \
35 -e 's|\@SSO_APP_NAME\@|$(SSO_APP_NAME)|g' \
36 -e 's|\@SSO_TC_URL\@|$(SSO_TC_URL)|g' \
37 -e 's|\@SSO_PING_URL\@|$(SSO_PING_URL)|g' \
38 -e 's|\@VERSION\@|$(VERSION)|g' < $< > $@
39
40pylintrc: Makefile
41 if test "x$(builddir)" != "x$(srcdir)"; then \
42 if [ ! -e pylintrc -a ! -h pylintrc ]; then \
43 $(LN_S) $(srcdir)/pylintrc; \
44 fi; \
45 fi
46
47logging.conf: data/logging.conf.in Makefile
48 $(MAKE) -C data logging.conf
49
50lint: pylintrc $(clientdefs_DATA) Makefile
51 PYTHONPATH="$(PYTHONPATH)" SRCDIR="$(srcdir)" USE_PYFLAKES="true" u1lint
52
53test: logging.conf $(clientdefs_DATA) Makefile
54 echo "$(PYTHONPATH)"
55 if test "x$(builddir)" == "x$(srcdir)"; then \
56 PYTHONPATH="$(PYTHONPATH)" u1trial tests -p tests/platform/windows; \
57 fi
58 rm -rf _trial_temp
59
60test-coverage: logging.conf $(clientdefs_DATA) Makefile
61 if test "x$(builddir)" == "x$(srcdir)"; then \
62 PYTHONPATH="$(PYTHONPATH)" u1trial -c tests; \
63 fi
64 rm -rf _trial_temp
65
66check: lint test Makefile
67
68docs: $(clientdefs_DATA) Makefile
69 $(mkdir_p) docs
70 if test "x$(builddir)" != "x$(srcdir)" -a -f "$(srcdir)/docs/syncdaemon_dbus_api.txt"; then \
71 $(LN_S) "$(top_srcdir)/docs/syncdaemon_dbus_api.txt" "docs/syncdaemon_dbus_api.txt"; \
72 else \
73 PYTHONPATH="$(PYTHONPATH)" SRCDIR="$(srcdir)" $(PYTHON) $(srcdir)/contrib/dbus-docs; \
74 fi
75
76ubuntuone: Makefile
77 if test "x$(builddir)" != "x$(srcdir)"; then \
78 $(mkdir_p) ubuntuone; \
79 $(mkdir_p) tests; \
80 (cd ubuntuone && $(LNDIR) $(srcdir)/../ubuntuone > /dev/null); \
81 (cd tests && $(LNDIR) $(srcdir)/../tests > /dev/null); \
82 fi
83
84all-local: pylintrc logging.conf $(clientdefs_DATA)
85
86sd_path = ubuntuone/syncdaemon
87
88u1fsfsm: $(srcdir)/ubuntuone/syncdaemon/u1fsfsm.ods
89 PYTHONPATH=$(PYTHONPATH) \
90 HAS_OOFFICE="true" \
91 XDG_CACHE_HOME="$(builddir)/_trial_temp/xdg_cache" \
92 $(PYTHON) -t $(srcdir)/$(sd_path)/fsm/fsm_parser.py \
93 -o $(builddir)/$(sd_path)/u1fsfsm.py $<
94 PYTHONPATH=$(PYTHONPATH) \
95 HAS_OOFFICE="true" \
96 XDG_CACHE_HOME="$(builddir)/_trial_temp/xdg_cache" \
97 $(PYTHON) -t $(srcdir)/$(sd_path)/fsm/fsm.py \
98 $(srcdir)/$(sd_path)/u1fsfsm.py
99
100install-data-local: $(clientdefs_DATA)
101 for package in $(pypackages); do \
102 $(mkdir_p) $(DESTDIR)$(pythonpkgdir)/$$package; \
103 for module in $(top_srcdir)/$$package/*.py; do \
104 $(install_sh_DATA) $$module $(DESTDIR)$(pythonpkgdir)/$$package; \
105 done; \
106 done
107 echo "$(PACKAGE)" > $(DESTDIR)$(pythondir)/$(PACKAGE).pth
108
109uninstall-local:
110 for package in $(pypackages); do \
111 for module in $(top_srcdir)/$$package/*.py; do \
112 modname=`basename $$module`; \
113 rm -f $(DESTDIR)$(pythonpkgdir)/$$package/$$modname; \
114 done; \
115 rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(pythonpkgdir)/$$package; \
116 done
117 rm -f $(DESTDIR)$(pythondir)/$(PACKAGE).pth
118
119clean-local:
120 for i in `find $(builddir) -name "*.pyc"`; do \
121 rm -f $$i; \
122 done
123 rm -rf build dist _trial_temp
124
125EXTRA_DIST = \
126 $(srcdir)/ubuntuone/syncdaemon/u1fsfsm.ods \
127 $(pyfiles) \
128 $(clientdefs_in_files) \
129 COPYING.icons \
130 HACKING \
131 bin \
132 contrib \
133 tests \
134 pylintrc
135
136CLEANFILES = \
137 $(clientdefs_DATA)
138
139MAINTAINERCLEANFILES = \
140 Makefile.in \
141 aclocal.m4 \
142 config.guess \
143 config.h.in \
144 config.sub \
145 configure \
146 depcomp \
147 install-sh \
148 libtool \
149 ltmain.sh \
150 missing \
151 mkinstalldirs
0152
=== renamed file 'Makefile.am' => 'Makefile.am.moved'
=== added file 'Makefile.in'
--- Makefile.in 1970-01-01 00:00:00 +0000
+++ Makefile.in 2011-07-08 07:12:36 +0000
@@ -0,0 +1,1065 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = .
39DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in $(srcdir)/config.h.in \
41 $(top_srcdir)/configure COPYING config.guess config.sub \
42 depcomp install-sh ltmain.sh missing
43ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
44am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
45 $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
46 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
47 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
48 $(top_srcdir)/configure.ac
49am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
50 $(ACLOCAL_M4)
51am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
52 configure.lineno config.status.lineno
53mkinstalldirs = $(install_sh) -d
54CONFIG_HEADER = config.h
55CONFIG_CLEAN_FILES =
56CONFIG_CLEAN_VPATH_FILES =
57am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
58am__vpath_adj = case $$p in \
59 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
60 *) f=$$p;; \
61 esac;
62am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
63am__install_max = 40
64am__nobase_strip_setup = \
65 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
66am__nobase_strip = \
67 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
68am__nobase_list = $(am__nobase_strip_setup); \
69 for p in $$list; do echo "$$p $$p"; done | \
70 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
71 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
72 if (++n[$$2] == $(am__install_max)) \
73 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
74 END { for (dir in files) print dir, files[dir] }'
75am__base_list = \
76 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
77 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
78am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \
79 "$(DESTDIR)$(clientdefsdir)"
80SCRIPTS = $(bin_SCRIPTS) $(libexec_SCRIPTS)
81AM_V_GEN = $(am__v_GEN_$(V))
82am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
83am__v_GEN_0 = @echo " GEN " $@;
84AM_V_at = $(am__v_at_$(V))
85am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
86am__v_at_0 = @
87SOURCES =
88DIST_SOURCES =
89RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
90 html-recursive info-recursive install-data-recursive \
91 install-dvi-recursive install-exec-recursive \
92 install-html-recursive install-info-recursive \
93 install-pdf-recursive install-ps-recursive install-recursive \
94 installcheck-recursive installdirs-recursive pdf-recursive \
95 ps-recursive uninstall-recursive
96DATA = $(clientdefs_DATA)
97RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
98 distclean-recursive maintainer-clean-recursive
99AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
100 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
101 distdir dist dist-all distcheck
102ETAGS = etags
103CTAGS = ctags
104DIST_SUBDIRS = $(SUBDIRS)
105DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
106distdir = $(PACKAGE)-$(VERSION)
107top_distdir = $(distdir)
108am__remove_distdir = \
109 { test ! -d "$(distdir)" \
110 || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
111 && rm -fr "$(distdir)"; }; }
112am__relativize = \
113 dir0=`pwd`; \
114 sed_first='s,^\([^/]*\)/.*$$,\1,'; \
115 sed_rest='s,^[^/]*/*,,'; \
116 sed_last='s,^.*/\([^/]*\)$$,\1,'; \
117 sed_butlast='s,/*[^/]*$$,,'; \
118 while test -n "$$dir1"; do \
119 first=`echo "$$dir1" | sed -e "$$sed_first"`; \
120 if test "$$first" != "."; then \
121 if test "$$first" = ".."; then \
122 dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
123 dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
124 else \
125 first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
126 if test "$$first2" = "$$first"; then \
127 dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
128 else \
129 dir2="../$$dir2"; \
130 fi; \
131 dir0="$$dir0"/"$$first"; \
132 fi; \
133 fi; \
134 dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
135 done; \
136 reldir="$$dir2"
137DIST_ARCHIVES = $(distdir).tar.gz
138GZIP_ENV = --best
139distuninstallcheck_listfiles = find . -type f -print
140distcleancheck_listfiles = find . -type f -print
141ACLOCAL = @ACLOCAL@
142
143# Shut libtoolize up
144ACLOCAL_AMFLAGS = -I m4
145ALL_LINGUAS = @ALL_LINGUAS@
146AMTAR = @AMTAR@
147AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
148AR = @AR@
149AUTOCONF = @AUTOCONF@
150AUTOHEADER = @AUTOHEADER@
151AUTOMAKE = @AUTOMAKE@
152AWK = @AWK@
153CC = @CC@
154CCDEPMODE = @CCDEPMODE@
155CFLAGS = @CFLAGS@
156CPP = @CPP@
157CPPFLAGS = @CPPFLAGS@
158CYGPATH_W = @CYGPATH_W@
159DATADIRNAME = @DATADIRNAME@
160DBUS_CFLAGS = @DBUS_CFLAGS@
161DBUS_LIBS = @DBUS_LIBS@
162DBUS_SERVICES_DIR = @DBUS_SERVICES_DIR@
163DEFS = @DEFS@
164DEPDIR = @DEPDIR@
165DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
166DSYMUTIL = @DSYMUTIL@
167DUMPBIN = @DUMPBIN@
168ECHO_C = @ECHO_C@
169ECHO_N = @ECHO_N@
170ECHO_T = @ECHO_T@
171EGREP = @EGREP@
172EXEEXT = @EXEEXT@
173FGREP = @FGREP@
174GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
175GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
176GMSGFMT = @GMSGFMT@
177GREP = @GREP@
178GSD_INTLTOOL_PLUGIN_RULE = @GSD_INTLTOOL_PLUGIN_RULE@
179GSD_PLUGINDIR_NAME = @GSD_PLUGINDIR_NAME@
180GTKDOC_CHECK = @GTKDOC_CHECK@
181GTKDOC_MKPDF = @GTKDOC_MKPDF@
182GTKDOC_REBASE = @GTKDOC_REBASE@
183HTML_DIR = @HTML_DIR@
184ICONTOOL_RENDER = @ICONTOOL_RENDER@
185INSTALL = @INSTALL@
186INSTALL_DATA = @INSTALL_DATA@
187INSTALL_PROGRAM = @INSTALL_PROGRAM@
188INSTALL_SCRIPT = @INSTALL_SCRIPT@
189INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
190INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
191INTLTOOL_MERGE = @INTLTOOL_MERGE@
192INTLTOOL_PERL = @INTLTOOL_PERL@
193INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
194INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
195INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
196INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
197INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
198INTROSPECTION_GIRDIR_NAME = @INTROSPECTION_GIRDIR_NAME@
199INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
200INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
201INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
202INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
203INTROSPECTION_TYPELIBDIR_NAME = @INTROSPECTION_TYPELIBDIR_NAME@
204LD = @LD@
205LDFLAGS = @LDFLAGS@
206LIBOBJS = @LIBOBJS@
207LIBS = @LIBS@
208LIBSYNCDAEMON_AGE = @LIBSYNCDAEMON_AGE@
209LIBSYNCDAEMON_CURRENT = @LIBSYNCDAEMON_CURRENT@
210LIBSYNCDAEMON_REVISION = @LIBSYNCDAEMON_REVISION@
211LIBTOOL = @LIBTOOL@
212LIPO = @LIPO@
213LNDIR = @LNDIR@
214LN_S = @LN_S@
215LOG_FILE_SIZE = @LOG_FILE_SIZE@
216LOG_LEVEL = @LOG_LEVEL@
217LTLIBOBJS = @LTLIBOBJS@
218MAKEINFO = @MAKEINFO@
219MKDIR_P = @MKDIR_P@
220MSGFMT = @MSGFMT@
221MSGMERGE = @MSGMERGE@
222NAUTILUS_CFLAGS = @NAUTILUS_CFLAGS@
223NAUTILUS_EXTENSIONDIR_NAME = @NAUTILUS_EXTENSIONDIR_NAME@
224NAUTILUS_LIBS = @NAUTILUS_LIBS@
225NM = @NM@
226NMEDIT = @NMEDIT@
227OBJDUMP = @OBJDUMP@
228OBJEXT = @OBJEXT@
229OTOOL = @OTOOL@
230OTOOL64 = @OTOOL64@
231PACKAGE = @PACKAGE@
232PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
233PACKAGE_NAME = @PACKAGE_NAME@
234PACKAGE_STRING = @PACKAGE_STRING@
235PACKAGE_TARNAME = @PACKAGE_TARNAME@
236PACKAGE_URL = @PACKAGE_URL@
237PACKAGE_VERSION = @PACKAGE_VERSION@
238PATH_SEPARATOR = @PATH_SEPARATOR@
239PKG_CONFIG = @PKG_CONFIG@
240PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
241PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
242PYTHON = @PYTHON@
243PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
244PYTHON_PLATFORM = @PYTHON_PLATFORM@
245PYTHON_PREFIX = @PYTHON_PREFIX@
246PYTHON_VERSION = @PYTHON_VERSION@
247RANLIB = @RANLIB@
248SED = @SED@
249SETTINGS_PLUGIN_CFLAGS = @SETTINGS_PLUGIN_CFLAGS@
250SETTINGS_PLUGIN_LIBS = @SETTINGS_PLUGIN_LIBS@
251SET_MAKE = @SET_MAKE@
252SHELL = @SHELL@
253SSO_APP_NAME = @SSO_APP_NAME@
254SSO_PATH = @SSO_PATH@
255SSO_PING_URL = @SSO_PING_URL@
256SSO_TC_URL = @SSO_TC_URL@
257STRIP = @STRIP@
258USE_NLS = @USE_NLS@
259USP_PATH = @USP_PATH@
260VALAC = @VALAC@
261VAPIGEN = @VAPIGEN@
262VERSION = @VERSION@
263XGETTEXT = @XGETTEXT@
264abs_builddir = @abs_builddir@
265abs_srcdir = @abs_srcdir@
266abs_top_builddir = @abs_top_builddir@
267abs_top_srcdir = @abs_top_srcdir@
268ac_ct_CC = @ac_ct_CC@
269ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
270am__include = @am__include@
271am__leading_dot = @am__leading_dot@
272am__quote = @am__quote@
273am__tar = @am__tar@
274am__untar = @am__untar@
275bindir = @bindir@
276build = @build@
277build_alias = @build_alias@
278build_cpu = @build_cpu@
279build_os = @build_os@
280build_vendor = @build_vendor@
281builddir = @builddir@
282datadir = @datadir@
283datarootdir = @datarootdir@
284docdir = @docdir@
285dvidir = @dvidir@
286exec_prefix = @exec_prefix@
287host = @host@
288host_alias = @host_alias@
289host_cpu = @host_cpu@
290host_os = @host_os@
291host_vendor = @host_vendor@
292htmldir = @htmldir@
293includedir = @includedir@
294infodir = @infodir@
295install_sh = @install_sh@
296libdir = @libdir@
297libexecdir = @libexecdir@
298localedir = @localedir@
299localstatedir = @localstatedir@
300lt_ECHO = @lt_ECHO@
301mandir = @mandir@
302mkdir_p = @mkdir_p@
303oldincludedir = @oldincludedir@
304pdfdir = @pdfdir@
305pkgpyexecdir = @pkgpyexecdir@
306pkgpythondir = @pkgpythondir@
307prefix = @prefix@
308program_transform_name = @program_transform_name@
309psdir = @psdir@
310pyexecdir = @pyexecdir@
311pythondir = @pythondir@
312render_sizes = @render_sizes@
313sbindir = @sbindir@
314sharedstatedir = @sharedstatedir@
315srcdir = @srcdir@
316sysconfdir = @sysconfdir@
317target_alias = @target_alias@
318top_build_prefix = @top_build_prefix@
319top_builddir = @top_builddir@
320top_srcdir = @top_srcdir@
321SUBDIRS = data libsyncdaemon nautilus po gsd-plugin docs
322
323# PYTHONPATH for local Python scripts
324PYTHONPATH = "$(SSO_PATH):$(USP_PATH):$(top_builddir):$(top_srcdir)"
325
326# Python packages we want to install
327pythonpkgdir = $(pythondir)/$(PACKAGE)
328pypackages = \
329 ubuntuone \
330 $(shell SRCDIR="ubuntuone"; for i in `find $$SRCDIR -type d`; do DIRNAME=`basename $$i`; if [ "x$$DIRNAME" != "xtest" ]; then printf "$$i "; fi; done)
331
332
333# Install our scripts and extra data here
334bin_SCRIPTS = \
335 bin/ubuntuone-launch \
336 bin/u1sdtool
337
338libexec_SCRIPTS = \
339 bin/ubuntuone-syncdaemon \
340 bin/ubuntuone-login
341
342clientdefsdir = $(pythonpkgdir)/ubuntuone
343clientdefs_in_files = ubuntuone/clientdefs.py.in
344clientdefs_DATA = $(clientdefs_in_files:.py.in=.py)
345
346# Don't end up pulling in storage-protocol source as well
347pyfiles = $(shell SRCDIR="$(top_srcdir)/ubuntuone"; for i in `find $$SRCDIR -type f -name "*.py"`; do if [ ! -f $$i.in ]; then printf "$$i "; fi; done)
348sd_path = ubuntuone/syncdaemon
349EXTRA_DIST = \
350 $(srcdir)/ubuntuone/syncdaemon/u1fsfsm.ods \
351 $(pyfiles) \
352 $(clientdefs_in_files) \
353 COPYING.icons \
354 HACKING \
355 bin \
356 contrib \
357 tests \
358 pylintrc
359
360CLEANFILES = \
361 $(clientdefs_DATA)
362
363MAINTAINERCLEANFILES = \
364 Makefile.in \
365 aclocal.m4 \
366 config.guess \
367 config.h.in \
368 config.sub \
369 configure \
370 depcomp \
371 install-sh \
372 libtool \
373 ltmain.sh \
374 missing \
375 mkinstalldirs
376
377all: config.h
378 $(MAKE) $(AM_MAKEFLAGS) all-recursive
379
380.SUFFIXES:
381am--refresh:
382 @:
383$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
384 @for dep in $?; do \
385 case '$(am__configure_deps)' in \
386 *$$dep*) \
387 echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
388 $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
389 && exit 0; \
390 exit 1;; \
391 esac; \
392 done; \
393 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
394 $(am__cd) $(top_srcdir) && \
395 $(AUTOMAKE) --foreign Makefile
396.PRECIOUS: Makefile
397Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
398 @case '$?' in \
399 *config.status*) \
400 echo ' $(SHELL) ./config.status'; \
401 $(SHELL) ./config.status;; \
402 *) \
403 echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
404 cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
405 esac;
406
407$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
408 $(SHELL) ./config.status --recheck
409
410$(top_srcdir)/configure: $(am__configure_deps)
411 $(am__cd) $(srcdir) && $(AUTOCONF)
412$(ACLOCAL_M4): $(am__aclocal_m4_deps)
413 $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
414$(am__aclocal_m4_deps):
415
416config.h: stamp-h1
417 @if test ! -f $@; then \
418 rm -f stamp-h1; \
419 $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
420 else :; fi
421
422stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
423 @rm -f stamp-h1
424 cd $(top_builddir) && $(SHELL) ./config.status config.h
425$(srcdir)/config.h.in: $(am__configure_deps)
426 ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
427 rm -f stamp-h1
428 touch $@
429
430distclean-hdr:
431 -rm -f config.h stamp-h1
432install-binSCRIPTS: $(bin_SCRIPTS)
433 @$(NORMAL_INSTALL)
434 test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
435 @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
436 for p in $$list; do \
437 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
438 if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
439 done | \
440 sed -e 'p;s,.*/,,;n' \
441 -e 'h;s|.*|.|' \
442 -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
443 $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
444 { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
445 if ($$2 == $$4) { files[d] = files[d] " " $$1; \
446 if (++n[d] == $(am__install_max)) { \
447 print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
448 else { print "f", d "/" $$4, $$1 } } \
449 END { for (d in files) print "f", d, files[d] }' | \
450 while read type dir files; do \
451 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
452 test -z "$$files" || { \
453 echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
454 $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
455 } \
456 ; done
457
458uninstall-binSCRIPTS:
459 @$(NORMAL_UNINSTALL)
460 @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
461 files=`for p in $$list; do echo "$$p"; done | \
462 sed -e 's,.*/,,;$(transform)'`; \
463 test -n "$$list" || exit 0; \
464 echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
465 cd "$(DESTDIR)$(bindir)" && rm -f $$files
466install-libexecSCRIPTS: $(libexec_SCRIPTS)
467 @$(NORMAL_INSTALL)
468 test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)"
469 @list='$(libexec_SCRIPTS)'; test -n "$(libexecdir)" || list=; \
470 for p in $$list; do \
471 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
472 if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
473 done | \
474 sed -e 'p;s,.*/,,;n' \
475 -e 'h;s|.*|.|' \
476 -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
477 $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
478 { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
479 if ($$2 == $$4) { files[d] = files[d] " " $$1; \
480 if (++n[d] == $(am__install_max)) { \
481 print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
482 else { print "f", d "/" $$4, $$1 } } \
483 END { for (d in files) print "f", d, files[d] }' | \
484 while read type dir files; do \
485 if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
486 test -z "$$files" || { \
487 echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
488 $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
489 } \
490 ; done
491
492uninstall-libexecSCRIPTS:
493 @$(NORMAL_UNINSTALL)
494 @list='$(libexec_SCRIPTS)'; test -n "$(libexecdir)" || exit 0; \
495 files=`for p in $$list; do echo "$$p"; done | \
496 sed -e 's,.*/,,;$(transform)'`; \
497 test -n "$$list" || exit 0; \
498 echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
499 cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
500
501mostlyclean-libtool:
502 -rm -f *.lo
503
504clean-libtool:
505 -rm -rf .libs _libs
506
507distclean-libtool:
508 -rm -f libtool config.lt
509install-clientdefsDATA: $(clientdefs_DATA)
510 @$(NORMAL_INSTALL)
511 test -z "$(clientdefsdir)" || $(MKDIR_P) "$(DESTDIR)$(clientdefsdir)"
512 @list='$(clientdefs_DATA)'; test -n "$(clientdefsdir)" || list=; \
513 for p in $$list; do \
514 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
515 echo "$$d$$p"; \
516 done | $(am__base_list) | \
517 while read files; do \
518 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(clientdefsdir)'"; \
519 $(INSTALL_DATA) $$files "$(DESTDIR)$(clientdefsdir)" || exit $$?; \
520 done
521
522uninstall-clientdefsDATA:
523 @$(NORMAL_UNINSTALL)
524 @list='$(clientdefs_DATA)'; test -n "$(clientdefsdir)" || list=; \
525 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
526 test -n "$$files" || exit 0; \
527 echo " ( cd '$(DESTDIR)$(clientdefsdir)' && rm -f" $$files ")"; \
528 cd "$(DESTDIR)$(clientdefsdir)" && rm -f $$files
529
530# This directory's subdirectories are mostly independent; you can cd
531# into them and run `make' without going through this Makefile.
532# To change the values of `make' variables: instead of editing Makefiles,
533# (1) if the variable is set in `config.status', edit `config.status'
534# (which will cause the Makefiles to be regenerated when you run `make');
535# (2) otherwise, pass the desired values on the `make' command line.
536$(RECURSIVE_TARGETS):
537 @fail= failcom='exit 1'; \
538 for f in x $$MAKEFLAGS; do \
539 case $$f in \
540 *=* | --[!k]*);; \
541 *k*) failcom='fail=yes';; \
542 esac; \
543 done; \
544 dot_seen=no; \
545 target=`echo $@ | sed s/-recursive//`; \
546 list='$(SUBDIRS)'; for subdir in $$list; do \
547 echo "Making $$target in $$subdir"; \
548 if test "$$subdir" = "."; then \
549 dot_seen=yes; \
550 local_target="$$target-am"; \
551 else \
552 local_target="$$target"; \
553 fi; \
554 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
555 || eval $$failcom; \
556 done; \
557 if test "$$dot_seen" = "no"; then \
558 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
559 fi; test -z "$$fail"
560
561$(RECURSIVE_CLEAN_TARGETS):
562 @fail= failcom='exit 1'; \
563 for f in x $$MAKEFLAGS; do \
564 case $$f in \
565 *=* | --[!k]*);; \
566 *k*) failcom='fail=yes';; \
567 esac; \
568 done; \
569 dot_seen=no; \
570 case "$@" in \
571 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
572 *) list='$(SUBDIRS)' ;; \
573 esac; \
574 rev=''; for subdir in $$list; do \
575 if test "$$subdir" = "."; then :; else \
576 rev="$$subdir $$rev"; \
577 fi; \
578 done; \
579 rev="$$rev ."; \
580 target=`echo $@ | sed s/-recursive//`; \
581 for subdir in $$rev; do \
582 echo "Making $$target in $$subdir"; \
583 if test "$$subdir" = "."; then \
584 local_target="$$target-am"; \
585 else \
586 local_target="$$target"; \
587 fi; \
588 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
589 || eval $$failcom; \
590 done && test -z "$$fail"
591tags-recursive:
592 list='$(SUBDIRS)'; for subdir in $$list; do \
593 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
594 done
595ctags-recursive:
596 list='$(SUBDIRS)'; for subdir in $$list; do \
597 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
598 done
599
600ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
601 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
602 unique=`for i in $$list; do \
603 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
604 done | \
605 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
606 END { if (nonempty) { for (i in files) print i; }; }'`; \
607 mkid -fID $$unique
608tags: TAGS
609
610TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
611 $(TAGS_FILES) $(LISP)
612 set x; \
613 here=`pwd`; \
614 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
615 include_option=--etags-include; \
616 empty_fix=.; \
617 else \
618 include_option=--include; \
619 empty_fix=; \
620 fi; \
621 list='$(SUBDIRS)'; for subdir in $$list; do \
622 if test "$$subdir" = .; then :; else \
623 test ! -f $$subdir/TAGS || \
624 set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
625 fi; \
626 done; \
627 list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
628 unique=`for i in $$list; do \
629 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
630 done | \
631 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
632 END { if (nonempty) { for (i in files) print i; }; }'`; \
633 shift; \
634 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
635 test -n "$$unique" || unique=$$empty_fix; \
636 if test $$# -gt 0; then \
637 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
638 "$$@" $$unique; \
639 else \
640 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
641 $$unique; \
642 fi; \
643 fi
644ctags: CTAGS
645CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
646 $(TAGS_FILES) $(LISP)
647 list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
648 unique=`for i in $$list; do \
649 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
650 done | \
651 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
652 END { if (nonempty) { for (i in files) print i; }; }'`; \
653 test -z "$(CTAGS_ARGS)$$unique" \
654 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
655 $$unique
656
657GTAGS:
658 here=`$(am__cd) $(top_builddir) && pwd` \
659 && $(am__cd) $(top_srcdir) \
660 && gtags -i $(GTAGS_ARGS) "$$here"
661
662distclean-tags:
663 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
664
665distdir: $(DISTFILES)
666 $(am__remove_distdir)
667 test -d "$(distdir)" || mkdir "$(distdir)"
668 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
669 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
670 list='$(DISTFILES)'; \
671 dist_files=`for file in $$list; do echo $$file; done | \
672 sed -e "s|^$$srcdirstrip/||;t" \
673 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
674 case $$dist_files in \
675 */*) $(MKDIR_P) `echo "$$dist_files" | \
676 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
677 sort -u` ;; \
678 esac; \
679 for file in $$dist_files; do \
680 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
681 if test -d $$d/$$file; then \
682 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
683 if test -d "$(distdir)/$$file"; then \
684 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
685 fi; \
686 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
687 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
688 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
689 fi; \
690 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
691 else \
692 test -f "$(distdir)/$$file" \
693 || cp -p $$d/$$file "$(distdir)/$$file" \
694 || exit 1; \
695 fi; \
696 done
697 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
698 if test "$$subdir" = .; then :; else \
699 test -d "$(distdir)/$$subdir" \
700 || $(MKDIR_P) "$(distdir)/$$subdir" \
701 || exit 1; \
702 fi; \
703 done
704 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
705 if test "$$subdir" = .; then :; else \
706 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
707 $(am__relativize); \
708 new_distdir=$$reldir; \
709 dir1=$$subdir; dir2="$(top_distdir)"; \
710 $(am__relativize); \
711 new_top_distdir=$$reldir; \
712 echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
713 echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
714 ($(am__cd) $$subdir && \
715 $(MAKE) $(AM_MAKEFLAGS) \
716 top_distdir="$$new_top_distdir" \
717 distdir="$$new_distdir" \
718 am__remove_distdir=: \
719 am__skip_length_check=: \
720 am__skip_mode_fix=: \
721 distdir) \
722 || exit 1; \
723 fi; \
724 done
725 -test -n "$(am__skip_mode_fix)" \
726 || find "$(distdir)" -type d ! -perm -755 \
727 -exec chmod u+rwx,go+rx {} \; -o \
728 ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
729 ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
730 ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
731 || chmod -R a+r "$(distdir)"
732dist-gzip: distdir
733 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
734 $(am__remove_distdir)
735
736dist-bzip2: distdir
737 tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
738 $(am__remove_distdir)
739
740dist-lzma: distdir
741 tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
742 $(am__remove_distdir)
743
744dist-xz: distdir
745 tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
746 $(am__remove_distdir)
747
748dist-tarZ: distdir
749 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
750 $(am__remove_distdir)
751
752dist-shar: distdir
753 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
754 $(am__remove_distdir)
755
756dist-zip: distdir
757 -rm -f $(distdir).zip
758 zip -rq $(distdir).zip $(distdir)
759 $(am__remove_distdir)
760
761dist dist-all: distdir
762 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
763 $(am__remove_distdir)
764
765# This target untars the dist file and tries a VPATH configuration. Then
766# it guarantees that the distribution is self-contained by making another
767# tarfile.
768distcheck: dist
769 case '$(DIST_ARCHIVES)' in \
770 *.tar.gz*) \
771 GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
772 *.tar.bz2*) \
773 bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
774 *.tar.lzma*) \
775 lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
776 *.tar.xz*) \
777 xz -dc $(distdir).tar.xz | $(am__untar) ;;\
778 *.tar.Z*) \
779 uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
780 *.shar.gz*) \
781 GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
782 *.zip*) \
783 unzip $(distdir).zip ;;\
784 esac
785 chmod -R a-w $(distdir); chmod a+w $(distdir)
786 mkdir $(distdir)/_build
787 mkdir $(distdir)/_inst
788 chmod a-w $(distdir)
789 test -d $(distdir)/_build || exit 0; \
790 dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
791 && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
792 && am__cwd=`pwd` \
793 && $(am__cd) $(distdir)/_build \
794 && ../configure --srcdir=.. --prefix="$$dc_install_base" \
795 $(DISTCHECK_CONFIGURE_FLAGS) \
796 && $(MAKE) $(AM_MAKEFLAGS) \
797 && $(MAKE) $(AM_MAKEFLAGS) dvi \
798 && $(MAKE) $(AM_MAKEFLAGS) check \
799 && $(MAKE) $(AM_MAKEFLAGS) install \
800 && $(MAKE) $(AM_MAKEFLAGS) installcheck \
801 && $(MAKE) $(AM_MAKEFLAGS) uninstall \
802 && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
803 distuninstallcheck \
804 && chmod -R a-w "$$dc_install_base" \
805 && ({ \
806 (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
807 && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
808 && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
809 && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
810 distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
811 } || { rm -rf "$$dc_destdir"; exit 1; }) \
812 && rm -rf "$$dc_destdir" \
813 && $(MAKE) $(AM_MAKEFLAGS) dist \
814 && rm -rf $(DIST_ARCHIVES) \
815 && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
816 && cd "$$am__cwd" \
817 || exit 1
818 $(am__remove_distdir)
819 @(echo "$(distdir) archives ready for distribution: "; \
820 list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
821 sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
822distuninstallcheck:
823 @$(am__cd) '$(distuninstallcheck_dir)' \
824 && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
825 || { echo "ERROR: files left after uninstall:" ; \
826 if test -n "$(DESTDIR)"; then \
827 echo " (check DESTDIR support)"; \
828 fi ; \
829 $(distuninstallcheck_listfiles) ; \
830 exit 1; } >&2
831distcleancheck: distclean
832 @if test '$(srcdir)' = . ; then \
833 echo "ERROR: distcleancheck can only run from a VPATH build" ; \
834 exit 1 ; \
835 fi
836 @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
837 || { echo "ERROR: files left in build directory after distclean:" ; \
838 $(distcleancheck_listfiles) ; \
839 exit 1; } >&2
840check-am: all-am
841check: check-recursive
842all-am: Makefile $(SCRIPTS) $(DATA) config.h all-local
843installdirs: installdirs-recursive
844installdirs-am:
845 for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(clientdefsdir)"; do \
846 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
847 done
848install: install-recursive
849install-exec: install-exec-recursive
850install-data: install-data-recursive
851uninstall: uninstall-recursive
852
853install-am: all-am
854 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
855
856installcheck: installcheck-recursive
857install-strip:
858 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
859 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
860 `test -z '$(STRIP)' || \
861 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
862mostlyclean-generic:
863
864clean-generic:
865 -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
866
867distclean-generic:
868 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
869 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
870
871maintainer-clean-generic:
872 @echo "This command is intended for maintainers to use"
873 @echo "it deletes files that may require special tools to rebuild."
874 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
875clean: clean-recursive
876
877clean-am: clean-generic clean-libtool clean-local mostlyclean-am
878
879distclean: distclean-recursive
880 -rm -f $(am__CONFIG_DISTCLEAN_FILES)
881 -rm -f Makefile
882distclean-am: clean-am distclean-generic distclean-hdr \
883 distclean-libtool distclean-tags
884
885dvi: dvi-recursive
886
887dvi-am:
888
889html: html-recursive
890
891html-am:
892
893info: info-recursive
894
895info-am:
896
897install-data-am: install-clientdefsDATA install-data-local
898
899install-dvi: install-dvi-recursive
900
901install-dvi-am:
902
903install-exec-am: install-binSCRIPTS install-libexecSCRIPTS
904
905install-html: install-html-recursive
906
907install-html-am:
908
909install-info: install-info-recursive
910
911install-info-am:
912
913install-man:
914
915install-pdf: install-pdf-recursive
916
917install-pdf-am:
918
919install-ps: install-ps-recursive
920
921install-ps-am:
922
923installcheck-am:
924
925maintainer-clean: maintainer-clean-recursive
926 -rm -f $(am__CONFIG_DISTCLEAN_FILES)
927 -rm -rf $(top_srcdir)/autom4te.cache
928 -rm -f Makefile
929maintainer-clean-am: distclean-am maintainer-clean-generic
930
931mostlyclean: mostlyclean-recursive
932
933mostlyclean-am: mostlyclean-generic mostlyclean-libtool
934
935pdf: pdf-recursive
936
937pdf-am:
938
939ps: ps-recursive
940
941ps-am:
942
943uninstall-am: uninstall-binSCRIPTS uninstall-clientdefsDATA \
944 uninstall-libexecSCRIPTS uninstall-local
945
946.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
947 ctags-recursive install-am install-strip tags-recursive
948
949.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
950 all all-am all-local am--refresh check check-am clean \
951 clean-generic clean-libtool clean-local ctags ctags-recursive \
952 dist dist-all dist-bzip2 dist-gzip dist-lzma dist-shar \
953 dist-tarZ dist-xz dist-zip distcheck distclean \
954 distclean-generic distclean-hdr distclean-libtool \
955 distclean-tags distcleancheck distdir distuninstallcheck dvi \
956 dvi-am html html-am info info-am install install-am \
957 install-binSCRIPTS install-clientdefsDATA install-data \
958 install-data-am install-data-local install-dvi install-dvi-am \
959 install-exec install-exec-am install-html install-html-am \
960 install-info install-info-am install-libexecSCRIPTS \
961 install-man install-pdf install-pdf-am install-ps \
962 install-ps-am install-strip installcheck installcheck-am \
963 installdirs installdirs-am maintainer-clean \
964 maintainer-clean-generic mostlyclean mostlyclean-generic \
965 mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
966 uninstall uninstall-am uninstall-binSCRIPTS \
967 uninstall-clientdefsDATA uninstall-libexecSCRIPTS \
968 uninstall-local
969
970
971$(clientdefs_DATA): $(clientdefs_in_files) ubuntuone
972 sed -e 's|\@localedir\@|$(localedir)|g' \
973 -e 's|\@libexecdir\@|$(libexecdir)|g' \
974 -e 's|\@GETTEXT_PACKAGE\@|$(GETTEXT_PACKAGE)|g' \
975 -e 's|\@SSO_APP_NAME\@|$(SSO_APP_NAME)|g' \
976 -e 's|\@SSO_TC_URL\@|$(SSO_TC_URL)|g' \
977 -e 's|\@SSO_PING_URL\@|$(SSO_PING_URL)|g' \
978 -e 's|\@VERSION\@|$(VERSION)|g' < $< > $@
979
980pylintrc: Makefile
981 if test "x$(builddir)" != "x$(srcdir)"; then \
982 if [ ! -e pylintrc -a ! -h pylintrc ]; then \
983 $(LN_S) $(srcdir)/pylintrc; \
984 fi; \
985 fi
986
987logging.conf: data/logging.conf.in Makefile
988 $(MAKE) -C data logging.conf
989
990lint: pylintrc $(clientdefs_DATA) Makefile
991 PYTHONPATH="$(PYTHONPATH)" SRCDIR="$(srcdir)" USE_PYFLAKES="true" u1lint
992
993test: logging.conf $(clientdefs_DATA) Makefile
994 echo "$(PYTHONPATH)"
995 if test "x$(builddir)" == "x$(srcdir)"; then \
996 PYTHONPATH="$(PYTHONPATH)" u1trial tests -p tests/platform/windows; \
997 fi
998 rm -rf _trial_temp
999
1000test-coverage: logging.conf $(clientdefs_DATA) Makefile
1001 if test "x$(builddir)" == "x$(srcdir)"; then \
1002 PYTHONPATH="$(PYTHONPATH)" u1trial -c tests; \
1003 fi
1004 rm -rf _trial_temp
1005
1006check: lint test Makefile
1007
1008docs: $(clientdefs_DATA) Makefile
1009 $(mkdir_p) docs
1010 if test "x$(builddir)" != "x$(srcdir)" -a -f "$(srcdir)/docs/syncdaemon_dbus_api.txt"; then \
1011 $(LN_S) "$(top_srcdir)/docs/syncdaemon_dbus_api.txt" "docs/syncdaemon_dbus_api.txt"; \
1012 else \
1013 PYTHONPATH="$(PYTHONPATH)" SRCDIR="$(srcdir)" $(PYTHON) $(srcdir)/contrib/dbus-docs; \
1014 fi
1015
1016ubuntuone: Makefile
1017 if test "x$(builddir)" != "x$(srcdir)"; then \
1018 $(mkdir_p) ubuntuone; \
1019 $(mkdir_p) tests; \
1020 (cd ubuntuone && $(LNDIR) $(srcdir)/../ubuntuone > /dev/null); \
1021 (cd tests && $(LNDIR) $(srcdir)/../tests > /dev/null); \
1022 fi
1023
1024all-local: pylintrc logging.conf $(clientdefs_DATA)
1025
1026u1fsfsm: $(srcdir)/ubuntuone/syncdaemon/u1fsfsm.ods
1027 PYTHONPATH=$(PYTHONPATH) \
1028 HAS_OOFFICE="true" \
1029 XDG_CACHE_HOME="$(builddir)/_trial_temp/xdg_cache" \
1030 $(PYTHON) -t $(srcdir)/$(sd_path)/fsm/fsm_parser.py \
1031 -o $(builddir)/$(sd_path)/u1fsfsm.py $<
1032 PYTHONPATH=$(PYTHONPATH) \
1033 HAS_OOFFICE="true" \
1034 XDG_CACHE_HOME="$(builddir)/_trial_temp/xdg_cache" \
1035 $(PYTHON) -t $(srcdir)/$(sd_path)/fsm/fsm.py \
1036 $(srcdir)/$(sd_path)/u1fsfsm.py
1037
1038install-data-local: $(clientdefs_DATA)
1039 for package in $(pypackages); do \
1040 $(mkdir_p) $(DESTDIR)$(pythonpkgdir)/$$package; \
1041 for module in $(top_srcdir)/$$package/*.py; do \
1042 $(install_sh_DATA) $$module $(DESTDIR)$(pythonpkgdir)/$$package; \
1043 done; \
1044 done
1045 echo "$(PACKAGE)" > $(DESTDIR)$(pythondir)/$(PACKAGE).pth
1046
1047uninstall-local:
1048 for package in $(pypackages); do \
1049 for module in $(top_srcdir)/$$package/*.py; do \
1050 modname=`basename $$module`; \
1051 rm -f $(DESTDIR)$(pythonpkgdir)/$$package/$$modname; \
1052 done; \
1053 rmdir -p --ignore-fail-on-non-empty $(DESTDIR)$(pythonpkgdir)/$$package; \
1054 done
1055 rm -f $(DESTDIR)$(pythondir)/$(PACKAGE).pth
1056
1057clean-local:
1058 for i in `find $(builddir) -name "*.pyc"`; do \
1059 rm -f $$i; \
1060 done
1061 rm -rf build dist _trial_temp
1062
1063# Tell versions [3.59,3.63) of GNU make to not export all variables.
1064# Otherwise a system limit (for SysV at least) may be exceeded.
1065.NOEXPORT:
01066
=== added file 'README'
--- README 1970-01-01 00:00:00 +0000
+++ README 2011-07-08 07:12:36 +0000
@@ -0,0 +1,113 @@
1== Testing the Nautilus extension ==
2Ideally, we should have packages for testing, but since for each change this
3would be too much work, here are some instructions on how to setup a GNOME
4development installation to test it, without interfering the system-installed
5GNOME.
6
7To do so, the best way might be to use jhbuild, a set of scripts to build
8the whole GNOME desktop from GIT.
9
101. Install jhbuild
11jhbuild package is available, but regardless of whether you install it with
12apt-get or by just getting the sources from GNOME GIT, you should follow the
13instructions at http://live.gnome.org/Jhbuild to set it up. The most important
14thing is to have a ~/.jhbuildrc file where the configuration to be used for
15building is stored. Default values should be ok, but make sure you set the
16correct moduleset line, so that includes the correct GNOME version (2.28 for
17Karmic). An example of this is:
18
19 moduleset = [ 'gnome-2.28', 'freedesktop-2.28', 'gnome-external-deps-2.28', 'gnome-suites-2.28' ]
20
21Which would install most of GNOME. Just using 'gnome-2.28' should be enough for
22testing the Nautilus extension though, but it doesn't harm to have all the
23others since jhbuild would just build what you tell it to build.
24
252. Bootstrap
26This step installs, in the directory setup for installation in the ~/.jhbuildrc
27file, all the build tools needed for building, like autotools, gettext, python,
28etc.
29
30This is optional, since if not done, jhbuild would use the needed stuff from
31the system it's running on (autotools, gettext, etc), but if you see problems
32related to these packages, bootstrap would get the correct versions of all
33these tools.
34
35To do this, just run:
36
37 jhbuild bootstrap
38
393. Build Nautilus
40
41 jhbuild build nautilus
42
43This would build and install (in the directory setup for installation in the
44~/.jhbuildrc) Nautilus and all its dependencies. This takes a long time, so
45make sure to not plan to sit down looking at the computer until it ends. Also,
46it would probably encounter some errors, which you'll have to try to deal with.
47
48Documentation for some modules always fail (at least for me), so when it
49happens to you, just open a shell from within jhbuild (it will offer you the
50option when there is an error in building), edit the top-level Makefile (not
51Makefile.am or Makefile.in, but plain Makefile) and remove 'doc' (or 'help')
52from the SUBDIRS line.
53
54Also, building API documentation takes a long time, so to reduce the time
55needed for building, make sure to have this line:
56
57 # extra arguments to pass to all autogen.sh scripts
58 # to speed up builds of gnome2, try '--disable-static --disable-gtk-doc'
59 autogenargs='--disable-static --disable-gtk-doc'
60
61in ~/,jhbuildrc.
62
63You might want to build the whole of GNOME. In that case, instead of 'jhbuild
64build nautilus', run:
65
66 jhbuild build
67
684. Build Ubuntu One Nautilus extension
69
70You need to build the extension from within jhbuild environment. To do so,
71I have a profile in GNOME Terminal which runs the following script:
72
73 export BONOBO_ACTIVATION_PATH=/opt/extra/lib64/bonobo/servers:/opt/extra/lib/bonobo/servers
74 export PATH=/opt/icecream/bin:/opt/extra/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/lib/jvm/jre/bin
75 export LD_LIBRARY_PATH=/opt/extra/lib64:/opt/extra/lib
76 export PKG_CONFIG_PATH=/opt/extra/lib64/pkgconfig:/opt/extra/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig
77 export MONO_PATH=/usr/lib:/opt/extra/lib
78 export XDG_DATA_DIRS=/opt/extra/share
79 export XDG_CONFIG_DIRS=/opt/extra/etc/xdg
80 export ACLOCAL_FLAGS="-I /opt/extra/share/aclocal"
81
82 export GSM_VERBOSE_DEBUG=1
83
84 alias make='make -j8'
85 cd /opt/extra/src
86 bash
87
88Replace '/opt/extra' with the installation directory you setup in ~/.jhbuildrc.
89
90All this just sets environment variables used for building to point to the
91tree where jhbuild installed stuff.
92
93Once running on jhbuild build environment, just build and install our extension:
94
95 ./autogen.sh --prefix=$install_directory_in_jhbuildrc
96 make
97 make install
98
995. Test the extension
100To test the extension you need to run the copy of Nautilus you just built with
101jhbuild. You can either create a separate user and have the following in the
102~/.xsession/~/.xinitc startup scripts:
103
104 export PATH=/opt/extra/bin:$PATH
105 ln -s /var/run/dbus/system_bus_socket /opt/extra/var/run/dbus/system_bus_socket
106 jhbuild run /opt/extra/bin/gnome-session
107
108or, the easiest way:
109
110 jhbuild run /opt/extra/bin/nautilus
111
112again, replacing /opt/extra with whatever install directory you use in
113~/.jhbuilrc
0114
=== renamed file 'README' => 'README.moved'
=== added file 'aclocal.m4'
--- aclocal.m4 1970-01-01 00:00:00 +0000
+++ aclocal.m4 2011-07-08 07:12:36 +0000
@@ -0,0 +1,1535 @@
1# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
2
3# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
5# This file is free software; the Free Software Foundation
6# gives unlimited permission to copy and/or distribute it,
7# with or without modifications, as long as this notice is preserved.
8
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12# PARTICULAR PURPOSE.
13
14m4_ifndef([AC_AUTOCONF_VERSION],
15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
17[m4_warning([this file was generated for autoconf 2.67.
18You have another version of autoconf. It may work, but is not guaranteed to.
19If you have problems, you may need to regenerate the build system entirely.
20To do so, use the procedure documented by the package, typically `autoreconf'.])])
21
22dnl -*- mode: autoconf -*-
23dnl Copyright 2009 Johan Dahlin
24dnl
25dnl This file is free software; the author(s) gives unlimited
26dnl permission to copy and/or distribute it, with or without
27dnl modifications, as long as this notice is preserved.
28dnl
29
30# serial 1
31
32m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
33[
34 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
35 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
36 AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
37
38 dnl enable/disable introspection
39 m4_if([$2], [require],
40 [dnl
41 enable_introspection=yes
42 ],[dnl
43 AC_ARG_ENABLE(introspection,
44 AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
45 [Enable introspection for this build]),,
46 [enable_introspection=auto])
47 ])dnl
48
49 AC_MSG_CHECKING([for gobject-introspection])
50
51 dnl presence/version checking
52 AS_CASE([$enable_introspection],
53 [no], [dnl
54 found_introspection="no (disabled, use --enable-introspection to enable)"
55 ],dnl
56 [yes],[dnl
57 PKG_CHECK_EXISTS([gobject-introspection-1.0],,
58 AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
59 PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
60 found_introspection=yes,
61 AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
62 ],dnl
63 [auto],[dnl
64 PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
65 ],dnl
66 [dnl
67 AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
68 ])dnl
69
70 AC_MSG_RESULT([$found_introspection])
71
72 INTROSPECTION_SCANNER=
73 INTROSPECTION_COMPILER=
74 INTROSPECTION_GENERATE=
75 INTROSPECTION_GIRDIR=
76 INTROSPECTION_TYPELIBDIR=
77 if test "x$found_introspection" = "xyes"; then
78 INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
79 INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
80 INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
81 INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
82 INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
83 INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
84 INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
85 INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
86 fi
87 AC_SUBST(INTROSPECTION_SCANNER)
88 AC_SUBST(INTROSPECTION_COMPILER)
89 AC_SUBST(INTROSPECTION_GENERATE)
90 AC_SUBST(INTROSPECTION_GIRDIR)
91 AC_SUBST(INTROSPECTION_TYPELIBDIR)
92 AC_SUBST(INTROSPECTION_CFLAGS)
93 AC_SUBST(INTROSPECTION_LIBS)
94 AC_SUBST(INTROSPECTION_MAKEFILE)
95
96 AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
97])
98
99
100dnl Usage:
101dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
102
103AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
104[
105 _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
106])
107
108dnl Usage:
109dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
110
111
112AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
113[
114 _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
115])
116
117# nls.m4 serial 5 (gettext-0.18)
118dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation,
119dnl Inc.
120dnl This file is free software; the Free Software Foundation
121dnl gives unlimited permission to copy and/or distribute it,
122dnl with or without modifications, as long as this notice is preserved.
123dnl
124dnl This file can can be used in projects which are not available under
125dnl the GNU General Public License or the GNU Library General Public
126dnl License but which still want to provide support for the GNU gettext
127dnl functionality.
128dnl Please note that the actual code of the GNU gettext library is covered
129dnl by the GNU Library General Public License, and the rest of the GNU
130dnl gettext package package is covered by the GNU General Public License.
131dnl They are *not* in the public domain.
132
133dnl Authors:
134dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
135dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
136
137AC_PREREQ([2.50])
138
139AC_DEFUN([AM_NLS],
140[
141 AC_MSG_CHECKING([whether NLS is requested])
142 dnl Default is enabled NLS
143 AC_ARG_ENABLE([nls],
144 [ --disable-nls do not use Native Language Support],
145 USE_NLS=$enableval, USE_NLS=yes)
146 AC_MSG_RESULT([$USE_NLS])
147 AC_SUBST([USE_NLS])
148])
149
150# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
151# serial 1 (pkg-config-0.24)
152#
153# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
154#
155# This program is free software; you can redistribute it and/or modify
156# it under the terms of the GNU General Public License as published by
157# the Free Software Foundation; either version 2 of the License, or
158# (at your option) any later version.
159#
160# This program is distributed in the hope that it will be useful, but
161# WITHOUT ANY WARRANTY; without even the implied warranty of
162# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
163# General Public License for more details.
164#
165# You should have received a copy of the GNU General Public License
166# along with this program; if not, write to the Free Software
167# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
168#
169# As a special exception to the GNU General Public License, if you
170# distribute this file as part of a program that contains a
171# configuration script generated by Autoconf, you may include it under
172# the same distribution terms that you use for the rest of that program.
173
174# PKG_PROG_PKG_CONFIG([MIN-VERSION])
175# ----------------------------------
176AC_DEFUN([PKG_PROG_PKG_CONFIG],
177[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
178m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
179AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
180AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
181AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
182
183if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
184 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
185fi
186if test -n "$PKG_CONFIG"; then
187 _pkg_min_version=m4_default([$1], [0.9.0])
188 AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
189 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
190 AC_MSG_RESULT([yes])
191 else
192 AC_MSG_RESULT([no])
193 PKG_CONFIG=""
194 fi
195fi[]dnl
196])# PKG_PROG_PKG_CONFIG
197
198# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
199#
200# Check to see whether a particular set of modules exists. Similar
201# to PKG_CHECK_MODULES(), but does not set variables or print errors.
202#
203# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
204# only at the first occurence in configure.ac, so if the first place
205# it's called might be skipped (such as if it is within an "if", you
206# have to call PKG_CHECK_EXISTS manually
207# --------------------------------------------------------------
208AC_DEFUN([PKG_CHECK_EXISTS],
209[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
210if test -n "$PKG_CONFIG" && \
211 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
212 m4_default([$2], [:])
213m4_ifvaln([$3], [else
214 $3])dnl
215fi])
216
217# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
218# ---------------------------------------------
219m4_define([_PKG_CONFIG],
220[if test -n "$$1"; then
221 pkg_cv_[]$1="$$1"
222 elif test -n "$PKG_CONFIG"; then
223 PKG_CHECK_EXISTS([$3],
224 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
225 [pkg_failed=yes])
226 else
227 pkg_failed=untried
228fi[]dnl
229])# _PKG_CONFIG
230
231# _PKG_SHORT_ERRORS_SUPPORTED
232# -----------------------------
233AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
234[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
235if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
236 _pkg_short_errors_supported=yes
237else
238 _pkg_short_errors_supported=no
239fi[]dnl
240])# _PKG_SHORT_ERRORS_SUPPORTED
241
242
243# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
244# [ACTION-IF-NOT-FOUND])
245#
246#
247# Note that if there is a possibility the first call to
248# PKG_CHECK_MODULES might not happen, you should be sure to include an
249# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
250#
251#
252# --------------------------------------------------------------
253AC_DEFUN([PKG_CHECK_MODULES],
254[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
255AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
256AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
257
258pkg_failed=no
259AC_MSG_CHECKING([for $1])
260
261_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
262_PKG_CONFIG([$1][_LIBS], [libs], [$2])
263
264m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
265and $1[]_LIBS to avoid the need to call pkg-config.
266See the pkg-config man page for more details.])
267
268if test $pkg_failed = yes; then
269 AC_MSG_RESULT([no])
270 _PKG_SHORT_ERRORS_SUPPORTED
271 if test $_pkg_short_errors_supported = yes; then
272 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
273 else
274 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
275 fi
276 # Put the nasty error message in config.log where it belongs
277 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
278
279 m4_default([$4], [AC_MSG_ERROR(
280[Package requirements ($2) were not met:
281
282$$1_PKG_ERRORS
283
284Consider adjusting the PKG_CONFIG_PATH environment variable if you
285installed software in a non-standard prefix.
286
287_PKG_TEXT])[]dnl
288 ])
289elif test $pkg_failed = untried; then
290 AC_MSG_RESULT([no])
291 m4_default([$4], [AC_MSG_FAILURE(
292[The pkg-config script could not be found or is too old. Make sure it
293is in your PATH or set the PKG_CONFIG environment variable to the full
294path to pkg-config.
295
296_PKG_TEXT
297
298To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
299 ])
300else
301 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
302 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
303 AC_MSG_RESULT([yes])
304 $3
305fi[]dnl
306])# PKG_CHECK_MODULES
307
308# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
309#
310# This file is free software; the Free Software Foundation
311# gives unlimited permission to copy and/or distribute it,
312# with or without modifications, as long as this notice is preserved.
313
314# AM_AUTOMAKE_VERSION(VERSION)
315# ----------------------------
316# Automake X.Y traces this macro to ensure aclocal.m4 has been
317# generated from the m4 files accompanying Automake X.Y.
318# (This private macro should not be called outside this file.)
319AC_DEFUN([AM_AUTOMAKE_VERSION],
320[am__api_version='1.11'
321dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
322dnl require some minimum version. Point them to the right macro.
323m4_if([$1], [1.11.1], [],
324 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
325])
326
327# _AM_AUTOCONF_VERSION(VERSION)
328# -----------------------------
329# aclocal traces this macro to find the Autoconf version.
330# This is a private macro too. Using m4_define simplifies
331# the logic in aclocal, which can simply ignore this definition.
332m4_define([_AM_AUTOCONF_VERSION], [])
333
334# AM_SET_CURRENT_AUTOMAKE_VERSION
335# -------------------------------
336# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
337# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
338AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
339[AM_AUTOMAKE_VERSION([1.11.1])dnl
340m4_ifndef([AC_AUTOCONF_VERSION],
341 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
342_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
343
344# AM_AUX_DIR_EXPAND -*- Autoconf -*-
345
346# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
347#
348# This file is free software; the Free Software Foundation
349# gives unlimited permission to copy and/or distribute it,
350# with or without modifications, as long as this notice is preserved.
351
352# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
353# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
354# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
355#
356# Of course, Automake must honor this variable whenever it calls a
357# tool from the auxiliary directory. The problem is that $srcdir (and
358# therefore $ac_aux_dir as well) can be either absolute or relative,
359# depending on how configure is run. This is pretty annoying, since
360# it makes $ac_aux_dir quite unusable in subdirectories: in the top
361# source directory, any form will work fine, but in subdirectories a
362# relative path needs to be adjusted first.
363#
364# $ac_aux_dir/missing
365# fails when called from a subdirectory if $ac_aux_dir is relative
366# $top_srcdir/$ac_aux_dir/missing
367# fails if $ac_aux_dir is absolute,
368# fails when called from a subdirectory in a VPATH build with
369# a relative $ac_aux_dir
370#
371# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
372# are both prefixed by $srcdir. In an in-source build this is usually
373# harmless because $srcdir is `.', but things will broke when you
374# start a VPATH build or use an absolute $srcdir.
375#
376# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
377# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
378# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
379# and then we would define $MISSING as
380# MISSING="\${SHELL} $am_aux_dir/missing"
381# This will work as long as MISSING is not called from configure, because
382# unfortunately $(top_srcdir) has no meaning in configure.
383# However there are other variables, like CC, which are often used in
384# configure, and could therefore not use this "fixed" $ac_aux_dir.
385#
386# Another solution, used here, is to always expand $ac_aux_dir to an
387# absolute PATH. The drawback is that using absolute paths prevent a
388# configured tree to be moved without reconfiguration.
389
390AC_DEFUN([AM_AUX_DIR_EXPAND],
391[dnl Rely on autoconf to set up CDPATH properly.
392AC_PREREQ([2.50])dnl
393# expand $ac_aux_dir to an absolute path
394am_aux_dir=`cd $ac_aux_dir && pwd`
395])
396
397# AM_CONDITIONAL -*- Autoconf -*-
398
399# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
400# Free Software Foundation, Inc.
401#
402# This file is free software; the Free Software Foundation
403# gives unlimited permission to copy and/or distribute it,
404# with or without modifications, as long as this notice is preserved.
405
406# serial 9
407
408# AM_CONDITIONAL(NAME, SHELL-CONDITION)
409# -------------------------------------
410# Define a conditional.
411AC_DEFUN([AM_CONDITIONAL],
412[AC_PREREQ(2.52)dnl
413 ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
414 [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
415AC_SUBST([$1_TRUE])dnl
416AC_SUBST([$1_FALSE])dnl
417_AM_SUBST_NOTMAKE([$1_TRUE])dnl
418_AM_SUBST_NOTMAKE([$1_FALSE])dnl
419m4_define([_AM_COND_VALUE_$1], [$2])dnl
420if $2; then
421 $1_TRUE=
422 $1_FALSE='#'
423else
424 $1_TRUE='#'
425 $1_FALSE=
426fi
427AC_CONFIG_COMMANDS_PRE(
428[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
429 AC_MSG_ERROR([[conditional "$1" was never defined.
430Usually this means the macro was only invoked conditionally.]])
431fi])])
432
433# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
434# Free Software Foundation, Inc.
435#
436# This file is free software; the Free Software Foundation
437# gives unlimited permission to copy and/or distribute it,
438# with or without modifications, as long as this notice is preserved.
439
440# serial 10
441
442# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
443# written in clear, in which case automake, when reading aclocal.m4,
444# will think it sees a *use*, and therefore will trigger all it's
445# C support machinery. Also note that it means that autoscan, seeing
446# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
447
448
449# _AM_DEPENDENCIES(NAME)
450# ----------------------
451# See how the compiler implements dependency checking.
452# NAME is "CC", "CXX", "GCJ", or "OBJC".
453# We try a few techniques and use that to set a single cache variable.
454#
455# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
456# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
457# dependency, and given that the user is not expected to run this macro,
458# just rely on AC_PROG_CC.
459AC_DEFUN([_AM_DEPENDENCIES],
460[AC_REQUIRE([AM_SET_DEPDIR])dnl
461AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
462AC_REQUIRE([AM_MAKE_INCLUDE])dnl
463AC_REQUIRE([AM_DEP_TRACK])dnl
464
465ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
466 [$1], CXX, [depcc="$CXX" am_compiler_list=],
467 [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
468 [$1], UPC, [depcc="$UPC" am_compiler_list=],
469 [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
470 [depcc="$$1" am_compiler_list=])
471
472AC_CACHE_CHECK([dependency style of $depcc],
473 [am_cv_$1_dependencies_compiler_type],
474[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
475 # We make a subdir and do the tests there. Otherwise we can end up
476 # making bogus files that we don't know about and never remove. For
477 # instance it was reported that on HP-UX the gcc test will end up
478 # making a dummy file named `D' -- because `-MD' means `put the output
479 # in D'.
480 mkdir conftest.dir
481 # Copy depcomp to subdir because otherwise we won't find it if we're
482 # using a relative directory.
483 cp "$am_depcomp" conftest.dir
484 cd conftest.dir
485 # We will build objects and dependencies in a subdirectory because
486 # it helps to detect inapplicable dependency modes. For instance
487 # both Tru64's cc and ICC support -MD to output dependencies as a
488 # side effect of compilation, but ICC will put the dependencies in
489 # the current directory while Tru64 will put them in the object
490 # directory.
491 mkdir sub
492
493 am_cv_$1_dependencies_compiler_type=none
494 if test "$am_compiler_list" = ""; then
495 am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
496 fi
497 am__universal=false
498 m4_case([$1], [CC],
499 [case " $depcc " in #(
500 *\ -arch\ *\ -arch\ *) am__universal=true ;;
501 esac],
502 [CXX],
503 [case " $depcc " in #(
504 *\ -arch\ *\ -arch\ *) am__universal=true ;;
505 esac])
506
507 for depmode in $am_compiler_list; do
508 # Setup a source with many dependencies, because some compilers
509 # like to wrap large dependency lists on column 80 (with \), and
510 # we should not choose a depcomp mode which is confused by this.
511 #
512 # We need to recreate these files for each test, as the compiler may
513 # overwrite some of them when testing with obscure command lines.
514 # This happens at least with the AIX C compiler.
515 : > sub/conftest.c
516 for i in 1 2 3 4 5 6; do
517 echo '#include "conftst'$i'.h"' >> sub/conftest.c
518 # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
519 # Solaris 8's {/usr,}/bin/sh.
520 touch sub/conftst$i.h
521 done
522 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
523
524 # We check with `-c' and `-o' for the sake of the "dashmstdout"
525 # mode. It turns out that the SunPro C++ compiler does not properly
526 # handle `-M -o', and we need to detect this. Also, some Intel
527 # versions had trouble with output in subdirs
528 am__obj=sub/conftest.${OBJEXT-o}
529 am__minus_obj="-o $am__obj"
530 case $depmode in
531 gcc)
532 # This depmode causes a compiler race in universal mode.
533 test "$am__universal" = false || continue
534 ;;
535 nosideeffect)
536 # after this tag, mechanisms are not by side-effect, so they'll
537 # only be used when explicitly requested
538 if test "x$enable_dependency_tracking" = xyes; then
539 continue
540 else
541 break
542 fi
543 ;;
544 msvisualcpp | msvcmsys)
545 # This compiler won't grok `-c -o', but also, the minuso test has
546 # not run yet. These depmodes are late enough in the game, and
547 # so weak that their functioning should not be impacted.
548 am__obj=conftest.${OBJEXT-o}
549 am__minus_obj=
550 ;;
551 none) break ;;
552 esac
553 if depmode=$depmode \
554 source=sub/conftest.c object=$am__obj \
555 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
556 $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
557 >/dev/null 2>conftest.err &&
558 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
559 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
560 grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
561 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
562 # icc doesn't choke on unknown options, it will just issue warnings
563 # or remarks (even with -Werror). So we grep stderr for any message
564 # that says an option was ignored or not supported.
565 # When given -MP, icc 7.0 and 7.1 complain thusly:
566 # icc: Command line warning: ignoring option '-M'; no argument required
567 # The diagnosis changed in icc 8.0:
568 # icc: Command line remark: option '-MP' not supported
569 if (grep 'ignoring option' conftest.err ||
570 grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
571 am_cv_$1_dependencies_compiler_type=$depmode
572 break
573 fi
574 fi
575 done
576
577 cd ..
578 rm -rf conftest.dir
579else
580 am_cv_$1_dependencies_compiler_type=none
581fi
582])
583AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
584AM_CONDITIONAL([am__fastdep$1], [
585 test "x$enable_dependency_tracking" != xno \
586 && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
587])
588
589
590# AM_SET_DEPDIR
591# -------------
592# Choose a directory name for dependency files.
593# This macro is AC_REQUIREd in _AM_DEPENDENCIES
594AC_DEFUN([AM_SET_DEPDIR],
595[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
596AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
597])
598
599
600# AM_DEP_TRACK
601# ------------
602AC_DEFUN([AM_DEP_TRACK],
603[AC_ARG_ENABLE(dependency-tracking,
604[ --disable-dependency-tracking speeds up one-time build
605 --enable-dependency-tracking do not reject slow dependency extractors])
606if test "x$enable_dependency_tracking" != xno; then
607 am_depcomp="$ac_aux_dir/depcomp"
608 AMDEPBACKSLASH='\'
609fi
610AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
611AC_SUBST([AMDEPBACKSLASH])dnl
612_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
613])
614
615# Generate code to set up dependency tracking. -*- Autoconf -*-
616
617# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
618# Free Software Foundation, Inc.
619#
620# This file is free software; the Free Software Foundation
621# gives unlimited permission to copy and/or distribute it,
622# with or without modifications, as long as this notice is preserved.
623
624#serial 5
625
626# _AM_OUTPUT_DEPENDENCY_COMMANDS
627# ------------------------------
628AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
629[{
630 # Autoconf 2.62 quotes --file arguments for eval, but not when files
631 # are listed without --file. Let's play safe and only enable the eval
632 # if we detect the quoting.
633 case $CONFIG_FILES in
634 *\'*) eval set x "$CONFIG_FILES" ;;
635 *) set x $CONFIG_FILES ;;
636 esac
637 shift
638 for mf
639 do
640 # Strip MF so we end up with the name of the file.
641 mf=`echo "$mf" | sed -e 's/:.*$//'`
642 # Check whether this is an Automake generated Makefile or not.
643 # We used to match only the files named `Makefile.in', but
644 # some people rename them; so instead we look at the file content.
645 # Grep'ing the first line is not enough: some people post-process
646 # each Makefile.in and add a new line on top of each file to say so.
647 # Grep'ing the whole file is not good either: AIX grep has a line
648 # limit of 2048, but all sed's we know have understand at least 4000.
649 if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
650 dirpart=`AS_DIRNAME("$mf")`
651 else
652 continue
653 fi
654 # Extract the definition of DEPDIR, am__include, and am__quote
655 # from the Makefile without running `make'.
656 DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
657 test -z "$DEPDIR" && continue
658 am__include=`sed -n 's/^am__include = //p' < "$mf"`
659 test -z "am__include" && continue
660 am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
661 # When using ansi2knr, U may be empty or an underscore; expand it
662 U=`sed -n 's/^U = //p' < "$mf"`
663 # Find all dependency output files, they are included files with
664 # $(DEPDIR) in their names. We invoke sed twice because it is the
665 # simplest approach to changing $(DEPDIR) to its actual value in the
666 # expansion.
667 for file in `sed -n "
668 s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
669 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
670 # Make sure the directory exists.
671 test -f "$dirpart/$file" && continue
672 fdir=`AS_DIRNAME(["$file"])`
673 AS_MKDIR_P([$dirpart/$fdir])
674 # echo "creating $dirpart/$file"
675 echo '# dummy' > "$dirpart/$file"
676 done
677 done
678}
679])# _AM_OUTPUT_DEPENDENCY_COMMANDS
680
681
682# AM_OUTPUT_DEPENDENCY_COMMANDS
683# -----------------------------
684# This macro should only be invoked once -- use via AC_REQUIRE.
685#
686# This code is only required when automatic dependency tracking
687# is enabled. FIXME. This creates each `.P' file that we will
688# need in order to bootstrap the dependency handling code.
689AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
690[AC_CONFIG_COMMANDS([depfiles],
691 [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
692 [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
693])
694
695# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
696# Free Software Foundation, Inc.
697#
698# This file is free software; the Free Software Foundation
699# gives unlimited permission to copy and/or distribute it,
700# with or without modifications, as long as this notice is preserved.
701
702# serial 8
703
704# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
705AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
706
707# Do all the work for Automake. -*- Autoconf -*-
708
709# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
710# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
711#
712# This file is free software; the Free Software Foundation
713# gives unlimited permission to copy and/or distribute it,
714# with or without modifications, as long as this notice is preserved.
715
716# serial 16
717
718# This macro actually does too much. Some checks are only needed if
719# your package does certain things. But this isn't really a big deal.
720
721# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
722# AM_INIT_AUTOMAKE([OPTIONS])
723# -----------------------------------------------
724# The call with PACKAGE and VERSION arguments is the old style
725# call (pre autoconf-2.50), which is being phased out. PACKAGE
726# and VERSION should now be passed to AC_INIT and removed from
727# the call to AM_INIT_AUTOMAKE.
728# We support both call styles for the transition. After
729# the next Automake release, Autoconf can make the AC_INIT
730# arguments mandatory, and then we can depend on a new Autoconf
731# release and drop the old call support.
732AC_DEFUN([AM_INIT_AUTOMAKE],
733[AC_PREREQ([2.62])dnl
734dnl Autoconf wants to disallow AM_ names. We explicitly allow
735dnl the ones we care about.
736m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
737AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
738AC_REQUIRE([AC_PROG_INSTALL])dnl
739if test "`cd $srcdir && pwd`" != "`pwd`"; then
740 # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
741 # is not polluted with repeated "-I."
742 AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
743 # test to see if srcdir already configured
744 if test -f $srcdir/config.status; then
745 AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
746 fi
747fi
748
749# test whether we have cygpath
750if test -z "$CYGPATH_W"; then
751 if (cygpath --version) >/dev/null 2>/dev/null; then
752 CYGPATH_W='cygpath -w'
753 else
754 CYGPATH_W=echo
755 fi
756fi
757AC_SUBST([CYGPATH_W])
758
759# Define the identity of the package.
760dnl Distinguish between old-style and new-style calls.
761m4_ifval([$2],
762[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
763 AC_SUBST([PACKAGE], [$1])dnl
764 AC_SUBST([VERSION], [$2])],
765[_AM_SET_OPTIONS([$1])dnl
766dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
767m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
768 [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
769 AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
770 AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
771
772_AM_IF_OPTION([no-define],,
773[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
774 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
775
776# Some tools Automake needs.
777AC_REQUIRE([AM_SANITY_CHECK])dnl
778AC_REQUIRE([AC_ARG_PROGRAM])dnl
779AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
780AM_MISSING_PROG(AUTOCONF, autoconf)
781AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
782AM_MISSING_PROG(AUTOHEADER, autoheader)
783AM_MISSING_PROG(MAKEINFO, makeinfo)
784AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
785AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
786AC_REQUIRE([AM_PROG_MKDIR_P])dnl
787# We need awk for the "check" target. The system "awk" is bad on
788# some platforms.
789AC_REQUIRE([AC_PROG_AWK])dnl
790AC_REQUIRE([AC_PROG_MAKE_SET])dnl
791AC_REQUIRE([AM_SET_LEADING_DOT])dnl
792_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
793 [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
794 [_AM_PROG_TAR([v7])])])
795_AM_IF_OPTION([no-dependencies],,
796[AC_PROVIDE_IFELSE([AC_PROG_CC],
797 [_AM_DEPENDENCIES(CC)],
798 [define([AC_PROG_CC],
799 defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
800AC_PROVIDE_IFELSE([AC_PROG_CXX],
801 [_AM_DEPENDENCIES(CXX)],
802 [define([AC_PROG_CXX],
803 defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
804AC_PROVIDE_IFELSE([AC_PROG_OBJC],
805 [_AM_DEPENDENCIES(OBJC)],
806 [define([AC_PROG_OBJC],
807 defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
808])
809_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
810dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
811dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
812dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
813AC_CONFIG_COMMANDS_PRE(dnl
814[m4_provide_if([_AM_COMPILER_EXEEXT],
815 [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
816])
817
818dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
819dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
820dnl mangled by Autoconf and run in a shell conditional statement.
821m4_define([_AC_COMPILER_EXEEXT],
822m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
823
824
825# When config.status generates a header, we must update the stamp-h file.
826# This file resides in the same directory as the config header
827# that is generated. The stamp files are numbered to have different names.
828
829# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
830# loop where config.status creates the headers, so we can generate
831# our stamp files there.
832AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
833[# Compute $1's index in $config_headers.
834_am_arg=$1
835_am_stamp_count=1
836for _am_header in $config_headers :; do
837 case $_am_header in
838 $_am_arg | $_am_arg:* )
839 break ;;
840 * )
841 _am_stamp_count=`expr $_am_stamp_count + 1` ;;
842 esac
843done
844echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
845
846# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
847#
848# This file is free software; the Free Software Foundation
849# gives unlimited permission to copy and/or distribute it,
850# with or without modifications, as long as this notice is preserved.
851
852# AM_PROG_INSTALL_SH
853# ------------------
854# Define $install_sh.
855AC_DEFUN([AM_PROG_INSTALL_SH],
856[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
857if test x"${install_sh}" != xset; then
858 case $am_aux_dir in
859 *\ * | *\ *)
860 install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
861 *)
862 install_sh="\${SHELL} $am_aux_dir/install-sh"
863 esac
864fi
865AC_SUBST(install_sh)])
866
867# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
868#
869# This file is free software; the Free Software Foundation
870# gives unlimited permission to copy and/or distribute it,
871# with or without modifications, as long as this notice is preserved.
872
873# serial 2
874
875# Check whether the underlying file-system supports filenames
876# with a leading dot. For instance MS-DOS doesn't.
877AC_DEFUN([AM_SET_LEADING_DOT],
878[rm -rf .tst 2>/dev/null
879mkdir .tst 2>/dev/null
880if test -d .tst; then
881 am__leading_dot=.
882else
883 am__leading_dot=_
884fi
885rmdir .tst 2>/dev/null
886AC_SUBST([am__leading_dot])])
887
888# Check to see how 'make' treats includes. -*- Autoconf -*-
889
890# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
891#
892# This file is free software; the Free Software Foundation
893# gives unlimited permission to copy and/or distribute it,
894# with or without modifications, as long as this notice is preserved.
895
896# serial 4
897
898# AM_MAKE_INCLUDE()
899# -----------------
900# Check to see how make treats includes.
901AC_DEFUN([AM_MAKE_INCLUDE],
902[am_make=${MAKE-make}
903cat > confinc << 'END'
904am__doit:
905 @echo this is the am__doit target
906.PHONY: am__doit
907END
908# If we don't find an include directive, just comment out the code.
909AC_MSG_CHECKING([for style of include used by $am_make])
910am__include="#"
911am__quote=
912_am_result=none
913# First try GNU make style include.
914echo "include confinc" > confmf
915# Ignore all kinds of additional output from `make'.
916case `$am_make -s -f confmf 2> /dev/null` in #(
917*the\ am__doit\ target*)
918 am__include=include
919 am__quote=
920 _am_result=GNU
921 ;;
922esac
923# Now try BSD make style include.
924if test "$am__include" = "#"; then
925 echo '.include "confinc"' > confmf
926 case `$am_make -s -f confmf 2> /dev/null` in #(
927 *the\ am__doit\ target*)
928 am__include=.include
929 am__quote="\""
930 _am_result=BSD
931 ;;
932 esac
933fi
934AC_SUBST([am__include])
935AC_SUBST([am__quote])
936AC_MSG_RESULT([$_am_result])
937rm -f confinc confmf
938])
939
940# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
941
942# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
943# Free Software Foundation, Inc.
944#
945# This file is free software; the Free Software Foundation
946# gives unlimited permission to copy and/or distribute it,
947# with or without modifications, as long as this notice is preserved.
948
949# serial 6
950
951# AM_MISSING_PROG(NAME, PROGRAM)
952# ------------------------------
953AC_DEFUN([AM_MISSING_PROG],
954[AC_REQUIRE([AM_MISSING_HAS_RUN])
955$1=${$1-"${am_missing_run}$2"}
956AC_SUBST($1)])
957
958
959# AM_MISSING_HAS_RUN
960# ------------------
961# Define MISSING if not defined so far and test if it supports --run.
962# If it does, set am_missing_run to use it, otherwise, to nothing.
963AC_DEFUN([AM_MISSING_HAS_RUN],
964[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
965AC_REQUIRE_AUX_FILE([missing])dnl
966if test x"${MISSING+set}" != xset; then
967 case $am_aux_dir in
968 *\ * | *\ *)
969 MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
970 *)
971 MISSING="\${SHELL} $am_aux_dir/missing" ;;
972 esac
973fi
974# Use eval to expand $SHELL
975if eval "$MISSING --run true"; then
976 am_missing_run="$MISSING --run "
977else
978 am_missing_run=
979 AC_MSG_WARN([`missing' script is too old or missing])
980fi
981])
982
983# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
984#
985# This file is free software; the Free Software Foundation
986# gives unlimited permission to copy and/or distribute it,
987# with or without modifications, as long as this notice is preserved.
988
989# AM_PROG_MKDIR_P
990# ---------------
991# Check for `mkdir -p'.
992AC_DEFUN([AM_PROG_MKDIR_P],
993[AC_PREREQ([2.60])dnl
994AC_REQUIRE([AC_PROG_MKDIR_P])dnl
995dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
996dnl while keeping a definition of mkdir_p for backward compatibility.
997dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
998dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
999dnl Makefile.ins that do not define MKDIR_P, so we do our own
1000dnl adjustment using top_builddir (which is defined more often than
1001dnl MKDIR_P).
1002AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
1003case $mkdir_p in
1004 [[\\/$]]* | ?:[[\\/]]*) ;;
1005 */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
1006esac
1007])
1008
1009# Helper functions for option handling. -*- Autoconf -*-
1010
1011# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
1012#
1013# This file is free software; the Free Software Foundation
1014# gives unlimited permission to copy and/or distribute it,
1015# with or without modifications, as long as this notice is preserved.
1016
1017# serial 4
1018
1019# _AM_MANGLE_OPTION(NAME)
1020# -----------------------
1021AC_DEFUN([_AM_MANGLE_OPTION],
1022[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
1023
1024# _AM_SET_OPTION(NAME)
1025# ------------------------------
1026# Set option NAME. Presently that only means defining a flag for this option.
1027AC_DEFUN([_AM_SET_OPTION],
1028[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
1029
1030# _AM_SET_OPTIONS(OPTIONS)
1031# ----------------------------------
1032# OPTIONS is a space-separated list of Automake options.
1033AC_DEFUN([_AM_SET_OPTIONS],
1034[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
1035
1036# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
1037# -------------------------------------------
1038# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
1039AC_DEFUN([_AM_IF_OPTION],
1040[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
1041
1042# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009
1043# Free Software Foundation, Inc.
1044#
1045# This file is free software; the Free Software Foundation
1046# gives unlimited permission to copy and/or distribute it,
1047# with or without modifications, as long as this notice is preserved.
1048
1049# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
1050# ---------------------------------------------------------------------------
1051# Adds support for distributing Python modules and packages. To
1052# install modules, copy them to $(pythondir), using the python_PYTHON
1053# automake variable. To install a package with the same name as the
1054# automake package, install to $(pkgpythondir), or use the
1055# pkgpython_PYTHON automake variable.
1056#
1057# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
1058# locations to install python extension modules (shared libraries).
1059# Another macro is required to find the appropriate flags to compile
1060# extension modules.
1061#
1062# If your package is configured with a different prefix to python,
1063# users will have to add the install directory to the PYTHONPATH
1064# environment variable, or create a .pth file (see the python
1065# documentation for details).
1066#
1067# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
1068# cause an error if the version of python installed on the system
1069# doesn't meet the requirement. MINIMUM-VERSION should consist of
1070# numbers and dots only.
1071AC_DEFUN([AM_PATH_PYTHON],
1072 [
1073 dnl Find a Python interpreter. Python versions prior to 2.0 are not
1074 dnl supported. (2.0 was released on October 16, 2000).
1075 m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
1076 [python python2 python3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 dnl
1077python2.1 python2.0])
1078
1079 m4_if([$1],[],[
1080 dnl No version check is needed.
1081 # Find any Python interpreter.
1082 if test -z "$PYTHON"; then
1083 AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
1084 fi
1085 am_display_PYTHON=python
1086 ], [
1087 dnl A version check is needed.
1088 if test -n "$PYTHON"; then
1089 # If the user set $PYTHON, use it and don't search something else.
1090 AC_MSG_CHECKING([whether $PYTHON version >= $1])
1091 AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
1092 [AC_MSG_RESULT(yes)],
1093 [AC_MSG_ERROR(too old)])
1094 am_display_PYTHON=$PYTHON
1095 else
1096 # Otherwise, try each interpreter until we find one that satisfies
1097 # VERSION.
1098 AC_CACHE_CHECK([for a Python interpreter with version >= $1],
1099 [am_cv_pathless_PYTHON],[
1100 for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
1101 test "$am_cv_pathless_PYTHON" = none && break
1102 AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
1103 done])
1104 # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
1105 if test "$am_cv_pathless_PYTHON" = none; then
1106 PYTHON=:
1107 else
1108 AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
1109 fi
1110 am_display_PYTHON=$am_cv_pathless_PYTHON
1111 fi
1112 ])
1113
1114 if test "$PYTHON" = :; then
1115 dnl Run any user-specified action, or abort.
1116 m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
1117 else
1118
1119 dnl Query Python for its version number. Getting [:3] seems to be
1120 dnl the best way to do this; it's what "site.py" does in the standard
1121 dnl library.
1122
1123 AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
1124 [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
1125 AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
1126
1127 dnl Use the values of $prefix and $exec_prefix for the corresponding
1128 dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
1129 dnl distinct variables so they can be overridden if need be. However,
1130 dnl general consensus is that you shouldn't need this ability.
1131
1132 AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
1133 AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
1134
1135 dnl At times (like when building shared libraries) you may want
1136 dnl to know which OS platform Python thinks this is.
1137
1138 AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
1139 [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
1140 AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
1141
1142
1143 dnl Set up 4 directories:
1144
1145 dnl pythondir -- where to install python scripts. This is the
1146 dnl site-packages directory, not the python standard library
1147 dnl directory like in previous automake betas. This behavior
1148 dnl is more consistent with lispdir.m4 for example.
1149 dnl Query distutils for this directory. distutils does not exist in
1150 dnl Python 1.5, so we fall back to the hardcoded directory if it
1151 dnl doesn't work.
1152 AC_CACHE_CHECK([for $am_display_PYTHON script directory],
1153 [am_cv_python_pythondir],
1154 [if test "x$prefix" = xNONE
1155 then
1156 am_py_prefix=$ac_default_prefix
1157 else
1158 am_py_prefix=$prefix
1159 fi
1160 am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null ||
1161 echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
1162 case $am_cv_python_pythondir in
1163 $am_py_prefix*)
1164 am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
1165 am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
1166 ;;
1167 *)
1168 case $am_py_prefix in
1169 /usr|/System*) ;;
1170 *)
1171 am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
1172 ;;
1173 esac
1174 ;;
1175 esac
1176 ])
1177 AC_SUBST([pythondir], [$am_cv_python_pythondir])
1178
1179 dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
1180 dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
1181 dnl more consistent with the rest of automake.
1182
1183 AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
1184
1185 dnl pyexecdir -- directory for installing python extension modules
1186 dnl (shared libraries)
1187 dnl Query distutils for this directory. distutils does not exist in
1188 dnl Python 1.5, so we fall back to the hardcoded directory if it
1189 dnl doesn't work.
1190 AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
1191 [am_cv_python_pyexecdir],
1192 [if test "x$exec_prefix" = xNONE
1193 then
1194 am_py_exec_prefix=$am_py_prefix
1195 else
1196 am_py_exec_prefix=$exec_prefix
1197 fi
1198 am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null ||
1199 echo "$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
1200 case $am_cv_python_pyexecdir in
1201 $am_py_exec_prefix*)
1202 am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
1203 am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
1204 ;;
1205 *)
1206 case $am_py_exec_prefix in
1207 /usr|/System*) ;;
1208 *)
1209 am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
1210 ;;
1211 esac
1212 ;;
1213 esac
1214 ])
1215 AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
1216
1217 dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
1218
1219 AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
1220
1221 dnl Run any user-specified action.
1222 $2
1223 fi
1224
1225])
1226
1227
1228# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
1229# ---------------------------------------------------------------------------
1230# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
1231# Run ACTION-IF-FALSE otherwise.
1232# This test uses sys.hexversion instead of the string equivalent (first
1233# word of sys.version), in order to cope with versions such as 2.2c1.
1234# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
1235AC_DEFUN([AM_PYTHON_CHECK_VERSION],
1236 [prog="import sys
1237# split strings by '.' and convert to numeric. Append some zeros
1238# because we need at least 4 digits for the hex conversion.
1239# map returns an iterator in Python 3.0 and a list in 2.x
1240minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
1241minverhex = 0
1242# xrange is not present in Python 3.0 and range returns an iterator
1243for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
1244sys.exit(sys.hexversion < minverhex)"
1245 AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
1246
1247# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
1248#
1249# This file is free software; the Free Software Foundation
1250# gives unlimited permission to copy and/or distribute it,
1251# with or without modifications, as long as this notice is preserved.
1252
1253# AM_RUN_LOG(COMMAND)
1254# -------------------
1255# Run COMMAND, save the exit status in ac_status, and log it.
1256# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
1257AC_DEFUN([AM_RUN_LOG],
1258[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
1259 ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
1260 ac_status=$?
1261 echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1262 (exit $ac_status); }])
1263
1264# Check to make sure that the build environment is sane. -*- Autoconf -*-
1265
1266# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
1267# Free Software Foundation, Inc.
1268#
1269# This file is free software; the Free Software Foundation
1270# gives unlimited permission to copy and/or distribute it,
1271# with or without modifications, as long as this notice is preserved.
1272
1273# serial 5
1274
1275# AM_SANITY_CHECK
1276# ---------------
1277AC_DEFUN([AM_SANITY_CHECK],
1278[AC_MSG_CHECKING([whether build environment is sane])
1279# Just in case
1280sleep 1
1281echo timestamp > conftest.file
1282# Reject unsafe characters in $srcdir or the absolute working directory
1283# name. Accept space and tab only in the latter.
1284am_lf='
1285'
1286case `pwd` in
1287 *[[\\\"\#\$\&\'\`$am_lf]]*)
1288 AC_MSG_ERROR([unsafe absolute working directory name]);;
1289esac
1290case $srcdir in
1291 *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
1292 AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
1293esac
1294
1295# Do `set' in a subshell so we don't clobber the current shell's
1296# arguments. Must try -L first in case configure is actually a
1297# symlink; some systems play weird games with the mod time of symlinks
1298# (eg FreeBSD returns the mod time of the symlink's containing
1299# directory).
1300if (
1301 set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
1302 if test "$[*]" = "X"; then
1303 # -L didn't work.
1304 set X `ls -t "$srcdir/configure" conftest.file`
1305 fi
1306 rm -f conftest.file
1307 if test "$[*]" != "X $srcdir/configure conftest.file" \
1308 && test "$[*]" != "X conftest.file $srcdir/configure"; then
1309
1310 # If neither matched, then we have a broken ls. This can happen
1311 # if, for instance, CONFIG_SHELL is bash and it inherits a
1312 # broken ls alias from the environment. This has actually
1313 # happened. Such a system could not be considered "sane".
1314 AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
1315alias in your environment])
1316 fi
1317
1318 test "$[2]" = conftest.file
1319 )
1320then
1321 # Ok.
1322 :
1323else
1324 AC_MSG_ERROR([newly created file is older than distributed files!
1325Check your system clock])
1326fi
1327AC_MSG_RESULT(yes)])
1328
1329# Copyright (C) 2009 Free Software Foundation, Inc.
1330#
1331# This file is free software; the Free Software Foundation
1332# gives unlimited permission to copy and/or distribute it,
1333# with or without modifications, as long as this notice is preserved.
1334
1335# serial 1
1336
1337# AM_SILENT_RULES([DEFAULT])
1338# --------------------------
1339# Enable less verbose build rules; with the default set to DEFAULT
1340# (`yes' being less verbose, `no' or empty being verbose).
1341AC_DEFUN([AM_SILENT_RULES],
1342[AC_ARG_ENABLE([silent-rules],
1343[ --enable-silent-rules less verbose build output (undo: `make V=1')
1344 --disable-silent-rules verbose build output (undo: `make V=0')])
1345case $enable_silent_rules in
1346yes) AM_DEFAULT_VERBOSITY=0;;
1347no) AM_DEFAULT_VERBOSITY=1;;
1348*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
1349esac
1350AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
1351AM_BACKSLASH='\'
1352AC_SUBST([AM_BACKSLASH])dnl
1353_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
1354])
1355
1356# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
1357#
1358# This file is free software; the Free Software Foundation
1359# gives unlimited permission to copy and/or distribute it,
1360# with or without modifications, as long as this notice is preserved.
1361
1362# AM_PROG_INSTALL_STRIP
1363# ---------------------
1364# One issue with vendor `install' (even GNU) is that you can't
1365# specify the program used to strip binaries. This is especially
1366# annoying in cross-compiling environments, where the build's strip
1367# is unlikely to handle the host's binaries.
1368# Fortunately install-sh will honor a STRIPPROG variable, so we
1369# always use install-sh in `make install-strip', and initialize
1370# STRIPPROG with the value of the STRIP variable (set by the user).
1371AC_DEFUN([AM_PROG_INSTALL_STRIP],
1372[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
1373# Installed binaries are usually stripped using `strip' when the user
1374# run `make install-strip'. However `strip' might not be the right
1375# tool to use in cross-compilation environments, therefore Automake
1376# will honor the `STRIP' environment variable to overrule this program.
1377dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
1378if test "$cross_compiling" != no; then
1379 AC_CHECK_TOOL([STRIP], [strip], :)
1380fi
1381INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
1382AC_SUBST([INSTALL_STRIP_PROGRAM])])
1383
1384# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
1385#
1386# This file is free software; the Free Software Foundation
1387# gives unlimited permission to copy and/or distribute it,
1388# with or without modifications, as long as this notice is preserved.
1389
1390# serial 2
1391
1392# _AM_SUBST_NOTMAKE(VARIABLE)
1393# ---------------------------
1394# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
1395# This macro is traced by Automake.
1396AC_DEFUN([_AM_SUBST_NOTMAKE])
1397
1398# AM_SUBST_NOTMAKE(VARIABLE)
1399# ---------------------------
1400# Public sister of _AM_SUBST_NOTMAKE.
1401AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
1402
1403# Check how to create a tarball. -*- Autoconf -*-
1404
1405# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
1406#
1407# This file is free software; the Free Software Foundation
1408# gives unlimited permission to copy and/or distribute it,
1409# with or without modifications, as long as this notice is preserved.
1410
1411# serial 2
1412
1413# _AM_PROG_TAR(FORMAT)
1414# --------------------
1415# Check how to create a tarball in format FORMAT.
1416# FORMAT should be one of `v7', `ustar', or `pax'.
1417#
1418# Substitute a variable $(am__tar) that is a command
1419# writing to stdout a FORMAT-tarball containing the directory
1420# $tardir.
1421# tardir=directory && $(am__tar) > result.tar
1422#
1423# Substitute a variable $(am__untar) that extract such
1424# a tarball read from stdin.
1425# $(am__untar) < result.tar
1426AC_DEFUN([_AM_PROG_TAR],
1427[# Always define AMTAR for backward compatibility.
1428AM_MISSING_PROG([AMTAR], [tar])
1429m4_if([$1], [v7],
1430 [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
1431 [m4_case([$1], [ustar],, [pax],,
1432 [m4_fatal([Unknown tar format])])
1433AC_MSG_CHECKING([how to create a $1 tar archive])
1434# Loop over all known methods to create a tar archive until one works.
1435_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
1436_am_tools=${am_cv_prog_tar_$1-$_am_tools}
1437# Do not fold the above two line into one, because Tru64 sh and
1438# Solaris sh will not grok spaces in the rhs of `-'.
1439for _am_tool in $_am_tools
1440do
1441 case $_am_tool in
1442 gnutar)
1443 for _am_tar in tar gnutar gtar;
1444 do
1445 AM_RUN_LOG([$_am_tar --version]) && break
1446 done
1447 am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
1448 am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
1449 am__untar="$_am_tar -xf -"
1450 ;;
1451 plaintar)
1452 # Must skip GNU tar: if it does not support --format= it doesn't create
1453 # ustar tarball either.
1454 (tar --version) >/dev/null 2>&1 && continue
1455 am__tar='tar chf - "$$tardir"'
1456 am__tar_='tar chf - "$tardir"'
1457 am__untar='tar xf -'
1458 ;;
1459 pax)
1460 am__tar='pax -L -x $1 -w "$$tardir"'
1461 am__tar_='pax -L -x $1 -w "$tardir"'
1462 am__untar='pax -r'
1463 ;;
1464 cpio)
1465 am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
1466 am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
1467 am__untar='cpio -i -H $1 -d'
1468 ;;
1469 none)
1470 am__tar=false
1471 am__tar_=false
1472 am__untar=false
1473 ;;
1474 esac
1475
1476 # If the value was cached, stop now. We just wanted to have am__tar
1477 # and am__untar set.
1478 test -n "${am_cv_prog_tar_$1}" && break
1479
1480 # tar/untar a dummy directory, and stop if the command works
1481 rm -rf conftest.dir
1482 mkdir conftest.dir
1483 echo GrepMe > conftest.dir/file
1484 AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
1485 rm -rf conftest.dir
1486 if test -s conftest.tar; then
1487 AM_RUN_LOG([$am__untar <conftest.tar])
1488 grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
1489 fi
1490done
1491rm -rf conftest.dir
1492
1493AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
1494AC_MSG_RESULT([$am_cv_prog_tar_$1])])
1495AC_SUBST([am__tar])
1496AC_SUBST([am__untar])
1497]) # _AM_PROG_TAR
1498
1499# Autoconf support for the Vala compiler
1500
1501# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
1502#
1503# This file is free software; the Free Software Foundation
1504# gives unlimited permission to copy and/or distribute it,
1505# with or without modifications, as long as this notice is preserved.
1506
1507# serial 4
1508
1509# Check whether the Vala compiler exists in `PATH'. If it is found, the
1510# variable VALAC is set. Optionally a minimum release number of the
1511# compiler can be requested.
1512#
1513# AM_PROG_VALAC([MINIMUM-VERSION])
1514# --------------------------------
1515AC_DEFUN([AM_PROG_VALAC],
1516[AC_PATH_PROG([VALAC], [valac], [])
1517 AS_IF([test -z "$VALAC"],
1518 [AC_MSG_WARN([No Vala compiler found. You will not be able to compile .vala source files.])],
1519 [AS_IF([test -n "$1"],
1520 [AC_MSG_CHECKING([$VALAC is at least version $1])
1521 am__vala_version=`$VALAC --version | sed 's/Vala *//'`
1522 AS_VERSION_COMPARE([$1], ["$am__vala_version"],
1523 [AC_MSG_RESULT([yes])],
1524 [AC_MSG_RESULT([yes])],
1525 [AC_MSG_RESULT([no])
1526 AC_MSG_ERROR([Vala $1 not found.])])])])
1527])
1528
1529m4_include([m4/gtk-doc.m4])
1530m4_include([m4/intltool.m4])
1531m4_include([m4/libtool.m4])
1532m4_include([m4/ltoptions.m4])
1533m4_include([m4/ltsugar.m4])
1534m4_include([m4/ltversion.m4])
1535m4_include([m4/lt~obsolete.m4])
01536
=== added directory 'bin'
=== renamed directory 'bin' => 'bin.moved'
=== added file 'bin/u1sdtool'
--- bin/u1sdtool 1970-01-01 00:00:00 +0000
+++ bin/u1sdtool 2011-07-08 07:12:36 +0000
@@ -0,0 +1,286 @@
1#! /usr/bin/env python
2
3# u1sdtool - command line utility for controlling ubuntuone-syncdaemon
4#
5# Author: Guillermo Gonzalez <guillermo.gonzalez@canonical.com>
6#
7# Copyright 2009 Canonical Ltd.
8#
9# This program is free software: you can redistribute it and/or modify it
10# under the terms of the GNU General Public License version 3, as published
11# by the Free Software Foundation.
12#
13# This program is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranties of
15# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
16# PURPOSE. See the GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License along
19# with this program. If not, see <http://www.gnu.org/licenses/>.
20from twisted.internet import glib2reactor
21glib2reactor.install()
22
23import dbus
24import codecs
25import os
26import sys
27import warnings
28
29from dbus.mainloop.glib import DBusGMainLoop
30from optparse import OptionParser
31from twisted.internet import reactor, defer
32
33from ubuntuone.platform.linux.tools import (
34 SyncDaemonTool,
35 show_dirty_nodes,
36 show_path_info,
37 show_uploads,
38 show_downloads,
39 show_shares,
40 show_shared,
41 show_folders,
42 show_error,
43 show_state,
44 show_waiting,
45 show_waiting_content,
46 show_waiting_metadata,
47 show_public_file_info,
48 is_running,
49)
50
51
52def main(options, args, stdout):
53 """entry point"""
54 loop = DBusGMainLoop(set_as_default=True)
55 bus = dbus.SessionBus(mainloop=loop)
56 sync_daemon_tool = SyncDaemonTool(bus)
57
58 # get the encoding of the output stream, defaults to UTF-8
59 out_encoding = getattr(stdout, 'encoding', 'utf-8')
60 if out_encoding is None:
61 out_encoding = 'utf-8'
62 out = codecs.getwriter(out_encoding)(stdout, errors='replace')
63 # start syncdaemon if it's required
64 if not is_running() and not options.quit and not options.start:
65 d = sync_daemon_tool.start()
66 d.addBoth(lambda _: run(options, sync_daemon_tool, out))
67 else:
68 d = run(options, sync_daemon_tool, out)
69
70 def default_errback(error):
71 """ default error handler. """
72 out.write("\nOops, an error ocurred:\n")
73 error.printTraceback()
74
75 def stop_reactor(result):
76 """ stop the reactor. """
77 if reactor.running:
78 reactor.stop()
79 d.addErrback(default_errback)
80 d.addCallback(stop_reactor)
81 return d
82
83
84def run(options, sync_daemon_tool, out):
85 if options.wait:
86 def callback(result):
87 """ wait_for_nirvana callback (stop the reactor and exit)"""
88 out.write("\nubuntuone-syncdaemon became a fully "
89 "enlightened Buddha!\n")
90
91 d = sync_daemon_tool.wait_for_nirvana(verbose=True)
92 d.addCallbacks(callback)
93 elif options.list_shares:
94 d = sync_daemon_tool.get_shares()
95 d.addCallback(lambda r: show_shares(r, out))
96 elif options.accept_share:
97 d = sync_daemon_tool.accept_share(options.accept_share)
98 elif options.reject_share:
99 d = sync_daemon_tool.reject_share(options.reject_share)
100 elif options.subscribe_share:
101 d = sync_daemon_tool.subscribe_share(options.subscribe_share)
102 d.addErrback(lambda r: show_error(r, out))
103 elif options.unsubscribe_share:
104 d = sync_daemon_tool.unsubscribe_share(options.unsubscribe_share)
105 d.addErrback(lambda r: show_error(r, out))
106 elif options.refresh_shares:
107 d = sync_daemon_tool.refresh_shares()
108 elif options.refresh_volumes:
109 d = sync_daemon_tool.refresh_volumes()
110 elif options.offer_share:
111 path, username, name, access_level = options.offer_share
112 path = os.path.abspath(path)
113 d = sync_daemon_tool.offer_share(path, username, name, access_level)
114 elif options.list_shared:
115 d = sync_daemon_tool.list_shared()
116 d.addCallback(lambda r: show_shared(r, out))
117 elif options.create_folder:
118 path = os.path.abspath(options.create_folder)
119 if not os.path.exists(path):
120 parser.error("PATH: '%s' don't exists" % path)
121 d = sync_daemon_tool.create_folder(path)
122 d.addErrback(lambda r: show_error(r, out))
123 elif options.delete_folder:
124 d = sync_daemon_tool.delete_folder(options.delete_folder)
125 d.addErrback(lambda r: show_error(r, out))
126 elif options.list_folders:
127 d = sync_daemon_tool.get_folders()
128 d.addCallback(lambda r: show_folders(r, out))
129 elif options.subscribe_folder:
130 d = sync_daemon_tool.subscribe_folder(options.subscribe_folder)
131 d.addErrback(lambda r: show_error(r, out))
132 elif options.unsubscribe_folder:
133 d = sync_daemon_tool.unsubscribe_folder(options.unsubscribe_folder)
134 d.addErrback(lambda r: show_error(r, out))
135 elif options.rescan_from_scratch is not None:
136 d = sync_daemon_tool.rescan_from_scratch(options.rescan_from_scratch)
137 d.addErrback(lambda r: show_error(r, out))
138 elif options.publish_file:
139 path = os.path.abspath(options.publish_file)
140 d = sync_daemon_tool.change_public_access(path, True)
141 d.addCallback(lambda info: show_public_file_info(info, out))
142 d.addErrback(lambda failure: show_error(failure, out))
143 elif options.unpublish_file:
144 path = os.path.abspath(options.unpublish_file)
145 d = sync_daemon_tool.change_public_access(path, False)
146 d.addCallback(lambda info: show_public_file_info(info, out))
147 d.addErrback(lambda failure: show_error(failure, out))
148 elif options.path_info:
149 path = os.path.abspath(options.path_info)
150 if not os.path.exists(path):
151 parser.error("PATH: '%s' don't exists" % path)
152 d = sync_daemon_tool.get_metadata(path)
153 d.addCallback(lambda r: show_path_info(r, path, out))
154 elif options.dirty_nodes:
155 d = sync_daemon_tool.get_dirty_nodes()
156 d.addCallback(lambda r: show_dirty_nodes(r, out))
157 elif options.current_transfers:
158 d = sync_daemon_tool.get_current_uploads()
159 d.addCallback(lambda r: show_uploads(r, out))
160 d.addCallback(lambda _: sync_daemon_tool.get_current_downloads())
161 d.addCallback(lambda r: show_downloads(r, out))
162 elif options.quit:
163 d = sync_daemon_tool.quit()
164 def shutdown_check(result):
165 if result is None and not is_running():
166 out.write("ubuntuone-syncdaemon stopped.\n")
167 else:
168 out.write("ubuntuone-syncdaemon still running.\n")
169 d.addBoth(shutdown_check)
170 elif options.connect:
171 d = sync_daemon_tool.connect()
172 elif options.disconnect:
173 d = sync_daemon_tool.disconnect()
174 elif options.status:
175 d = sync_daemon_tool.get_status()
176 d.addCallback(lambda r: show_state(r, out))
177 elif options.waiting:
178 d = sync_daemon_tool.waiting()
179 d.addCallback(lambda r: show_waiting(r, out))
180 elif options.waiting_metadata:
181 d = sync_daemon_tool.waiting_metadata()
182 d.addCallback(lambda r: show_waiting_metadata(r, out))
183 elif options.waiting_content:
184 d = sync_daemon_tool.waiting_content()
185 d.addCallback(lambda r: show_waiting_content(r, out))
186 elif options.start:
187 d = sync_daemon_tool.start()
188 else:
189 parser.print_help()
190 d = defer.succeed(None)
191 return d
192
193
194if __name__ == '__main__':
195 # disable the dbus warnings
196 warnings.filterwarnings('ignore', module='dbus')
197 usage = "Usage: %prog [option]"
198 parser = OptionParser(usage=usage)
199 parser.add_option("-w", "--wait", dest="wait", action="store_true",
200 help="Wait until ubuntuone-syncdaemon reaches nirvana")
201 parser.add_option("", "--accept-share", dest="accept_share",
202 metavar="SHARE_ID",
203 help="Accept the share with the specified id")
204 parser.add_option("", "--reject-share", dest="reject_share",
205 metavar="SHARE_ID",
206 help="Reject the share with the specified id")
207 parser.add_option("", "--list-shares", dest="list_shares",
208 action="store_true",
209 help="Get the list of shares")
210 parser.add_option("", "--subscribe-share", dest="subscribe_share",
211 metavar="SHARE_ID",
212 help="Subscribe to a share specified by id")
213 parser.add_option("", "--unsubscribe-share", dest="unsubscribe_share",
214 metavar="SHARE_ID",
215 help="Unsubscribe from a share specified by id")
216 parser.add_option("", "--refresh-shares", dest="refresh_shares",
217 action="store_true",
218 help="Request a refresh of the list of shares to"
219 " the server")
220 parser.add_option("", "--offer-share", dest="offer_share", type="string",
221 nargs=4, metavar="PATH USER SHARE_NAME ACCESS_LEVEL",
222 help="Share PATH to USER. ")
223 parser.add_option("", "--list-shared", dest="list_shared",
224 action="store_true",
225 help="List the shared path's/shares offered. ")
226 parser.add_option("", "--create-folder", dest="create_folder",
227 metavar="PATH",
228 help="Create user defined folder in the specified path")
229 parser.add_option("", "--delete-folder", dest="delete_folder",
230 metavar="FOLDER_ID",
231 help="Delete user defined folder in the specified path")
232 parser.add_option("", "--list-folders", dest="list_folders",
233 action="store_true",
234 help="List all the user defined folders")
235 parser.add_option("", "--subscribe-folder", dest="subscribe_folder",
236 metavar="FOLDER_ID",
237 help="Subscribe to the folder specified by id")
238 parser.add_option("", "--unsubscribe-folder", dest="unsubscribe_folder",
239 metavar="FOLDER_ID",
240 help="Unsubscribe from the folder specified by id")
241 parser.add_option("", "--refresh-volumes", dest="refresh_volumes",
242 action="store_true",
243 help="Request a refresh of the list of volumes to"
244 " the server")
245 parser.add_option("", "--rescan-from-scratch", dest="rescan_from_scratch",
246 metavar="VOLUME_ID",
247 help="Request a rescan from scratch for a volume.")
248 parser.add_option("", "--publish-file", dest="publish_file",
249 metavar="PATH", help="Publish file publicly.")
250 parser.add_option("", "--unpublish-file", dest="unpublish_file",
251 metavar="PATH", help="Stop publishing file publicly.")
252 parser.add_option("", "--info", dest="path_info",
253 metavar="PATH", help="Request the metadata of PATH")
254
255 parser.add_option("", "--list-dirty-nodes", dest="dirty_nodes",
256 action="store_true",
257 help="Show the list of nodes marked as 'dirty'")
258 parser.add_option("", "--current-transfers", dest="current_transfers",
259 action="store_true",
260 help=" show the current uploads and downloads")
261 parser.add_option("-q", "--quit", dest="quit", action='store_true',
262 help="Shutdown the syncdaemon")
263 parser.add_option("-c", "--connect", dest="connect", action='store_true',
264 help="Connect the syncdaemon")
265 parser.add_option("-d", "--disconnect", dest="disconnect",
266 action='store_true', help="Disconnect the syncdaemon")
267 parser.add_option("-s", "--status", dest="status", action='store_true',
268 help="Get the current status of syncdaemon")
269 parser.add_option("", "--waiting", dest="waiting",
270 action='store_true',
271 help="Get the list of operations being executed")
272 parser.add_option("", "--waiting-content", dest="waiting_content",
273 action='store_true',
274 help="Get the waiting content list - Warning: this "
275 "option is deprecated, use '--waiting' instead")
276 parser.add_option("", "--waiting-metadata", dest="waiting_metadata",
277 action='store_true',
278 help="Get the waiting metadata list - Warning: this "
279 "option is deprecated, use '--waiting' instead")
280 parser.add_option("", "--start", dest="start", action='store_true',
281 help="Start syncdaemon if it's not running")
282
283 (options, args) = parser.parse_args(sys.argv)
284 reactor.callWhenRunning(main, options, args, sys.stdout)
285 reactor.run()
286
0287
=== added file 'bin/ubuntuone-launch'
--- bin/ubuntuone-launch 1970-01-01 00:00:00 +0000
+++ bin/ubuntuone-launch 2011-07-08 07:12:36 +0000
@@ -0,0 +1,117 @@
1#!/usr/bin/python
2
3# ubuntuone-launch - Ubuntu One storage synchronization daemon startup helper
4#
5# Author: John Lenton <john.lenton@canonical.com>
6#
7# Copyright 2010 Canonical Ltd.
8#
9# This program is free software: you can redistribute it and/or modify it
10# under the terms of the GNU General Public License version 3, as published
11# by the Free Software Foundation.
12#
13# This program is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranties of
15# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
16# PURPOSE. See the GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License along
19# with this program. If not, see <http://www.gnu.org/licenses/>.
20"""
21Ubuntu One storage synchronization daemon (syncdaemon) startup helper.
22
23This script decides whether to start and connect syncdaemon.
24
25 * If you've never used Ubuntu One file sync, or if you've disabled
26 file sync via Ubuntu One control panel (or equivalently via setting
27 files_sync_enabled to False in the syncdaemon configuration file),
28 syncdaemon is not started, and nothing happens as a result of this
29 script being run.
30
31 * otherwise if syncdaemon is not already running it is started, and
32 local rescan is allowed to finish.
33
34 * if syncdaemon has never synced to the server, or if there are no
35 credentials for Ubuntu One in the keyring, nothing further happens.
36
37 * otherwise, syncdaemon is asked to connect.
38
39"""
40import sys
41import os
42
43U1ROOT = os.path.expanduser('~/Ubuntu One/')
44
45if __name__ == '__main__':
46 # this check is done early to speed up startup on people who are not
47 # (yet) using the service (this way avoids all the imports).
48 if not os.path.isdir(U1ROOT):
49 # no directory, just quit
50 sys.exit(1)
51
52import dbus
53import glib
54import gobject
55from dbus.mainloop.glib import DBusGMainLoop
56from ubuntuone.platform.credentials import CredentialsManagementTool
57from ubuntuone.platform.tools import SyncDaemonTool, is_running
58from twisted.internet import defer
59
60
61def stage_two(node, sync_daemon_tool):
62 """Do the last few checks and ask for a connect if all is ok."""
63 # if the node_id of the root node is None, the user has never
64 # connected. Do not connect in that case.
65 if node.get('node_id', '') is None:
66 d = defer.fail(RuntimeError("never connected?"))
67 else:
68 # one last check: avoid having sso pop up asking for creds if
69 # the user deleted them
70 creds_tools = CredentialsManagementTool()
71 d = creds_tools.find_credentials()
72
73 return d
74
75
76def wait_for_ready(_, sync_daemon_tool):
77 """Wait for syncdaemon to be READY."""
78 d = sync_daemon_tool.wait_for_signal(
79 'StatusChanged',
80 lambda a: a.get('name', '') == 'READY')
81 return d
82
83
84def main():
85 """Start syncdaemon and ask it to connect, if possible."""
86 gobject.set_application_name("ubuntuone-launch")
87 loop = DBusGMainLoop(set_as_default=True)
88 bus = dbus.SessionBus(mainloop=loop)
89 sync_daemon_tool = SyncDaemonTool(bus)
90
91 if sync_daemon_tool.is_files_sync_enabled():
92 if not is_running():
93 try:
94 # have SD start
95 d = sync_daemon_tool.start()
96 d.addBoth(wait_for_ready, sync_daemon_tool)
97 except dbus.exception.DBusException, e:
98 # some dbus error, shouldn't happen, bail out
99 d = defer.fail(e)
100 else:
101 # SD is already running
102 d = defer.succeed(True)
103 else:
104 # SD will not start (has been disabled by user)
105 d = defer.fail(RuntimeError("File sync is disabled"))
106
107 d.addCallback(lambda _: sync_daemon_tool.get_metadata(U1ROOT))
108 d.addCallback(stage_two, sync_daemon_tool)
109 # os._exit feels like it's cheating, but it's simple and fast
110 d.addCallbacks(lambda _: os._exit(0), lambda _: os._exit(1))
111
112 mainloop = glib.MainLoop()
113 mainloop.run()
114
115
116if __name__ == '__main__':
117 main()
0118
=== added file 'bin/ubuntuone-login'
--- bin/ubuntuone-login 1970-01-01 00:00:00 +0000
+++ bin/ubuntuone-login 2011-07-08 07:12:36 +0000
@@ -0,0 +1,64 @@
1#!/usr/bin/python
2# -*- coding: utf-8 -*-
3#
4# Author: Natalia B. Bidart <natalia.bidart@canonical.com>
5#
6# Copyright 2010 Canonical Ltd.
7#
8# This program is free software: you can redistribute it and/or modify it
9# under the terms of the GNU General Public License version 3, as published
10# by the Free Software Foundation.
11#
12# This program is distributed in the hope that it will be useful, but
13# WITHOUT ANY WARRANTY; without even the implied warranties of
14# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
15# PURPOSE. See the GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License along
18# with this program. If not, see <http://www.gnu.org/licenses/>.
19
20"""The script tu ron the Ubuntu One Login D-Bus service."""
21
22# Invalid name "ubuntuone-login"
23# pylint: disable=C0103
24
25import logging
26import os
27import sys
28
29import dbus.mainloop.glib
30import dbus.service
31import glib
32
33from ubuntuone.logger import basic_formatter
34from ubuntuone.credentials import logger
35from ubuntuone.platform.linux.credentials import (
36 DBUS_BUS_NAME, DBUS_CREDENTIALS_PATH,
37 CredentialsManagement)
38
39dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
40
41
42if __name__ == "__main__":
43 # Register DBus service for making sure we run only one instance
44 bus = dbus.SessionBus()
45 name = bus.request_name(DBUS_BUS_NAME,
46 dbus.bus.NAME_FLAG_DO_NOT_QUEUE)
47 if name == dbus.bus.REQUEST_NAME_REPLY_EXISTS:
48 logger.error("Ubuntu One login manager already running, quitting.")
49 sys.exit(0)
50
51 if os.environ.get('U1_CREDENTIALS_DEBUG'):
52 debug_handler = logging.StreamHandler(sys.stderr)
53 debug_handler.setFormatter(basic_formatter)
54 debug_handler.setLevel(logging.DEBUG)
55 logger.addHandler(debug_handler)
56
57 logger.info("Starting Ubuntu One login manager for bus %r.", DBUS_BUS_NAME)
58 bus_name = dbus.service.BusName(DBUS_BUS_NAME, bus=dbus.SessionBus())
59 mainloop = glib.MainLoop()
60 CredentialsManagement(timeout_func=glib.timeout_add,
61 shutdown_func=mainloop.quit,
62 bus_name=bus_name, object_path=DBUS_CREDENTIALS_PATH)
63
64 mainloop.run()
065
=== added file 'bin/ubuntuone-syncdaemon'
--- bin/ubuntuone-syncdaemon 1970-01-01 00:00:00 +0000
+++ bin/ubuntuone-syncdaemon 2011-07-08 07:12:36 +0000
@@ -0,0 +1,193 @@
1#!/usr/bin/python
2
3# ubuntuone-syncdaemon - Ubuntu One storage synchronization daemon
4#
5# Author: Guillermo Gonzalez <guillermo.gonzalez@canonical.com>
6#
7# Copyright 2009 Canonical Ltd.
8#
9# This program is free software: you can redistribute it and/or modify it
10# under the terms of the GNU General Public License version 3, as published
11# by the Free Software Foundation.
12#
13# This program is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranties of
15# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
16# PURPOSE. See the GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License along
19# with this program. If not, see <http://www.gnu.org/licenses/>.
20
21import sys
22
23if sys.platform == 'win32':
24 from txnamedpipes.reactor import install
25 install()
26else:
27 from twisted.internet import glib2reactor
28 glib2reactor.install()
29
30 import dbus
31 import dbus.mainloop.glib
32 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
33
34import atexit
35import os
36import signal
37import sys
38import shutil
39
40from ubuntuone.platform import is_already_running, set_application_name, is_root
41from ubuntuone.syncdaemon import logger, config
42from ubuntuone.syncdaemon.config import (
43 get_config_files,
44)
45
46from ubuntuone.syncdaemon.main import Main
47
48from twisted.internet import reactor
49from xdg.BaseDirectory import (
50 xdg_cache_home,
51 xdg_data_home,
52)
53
54
55def die(msg):
56 logger.root_logger.warning(msg)
57 sys.stderr.write(msg + '\n')
58 sys.exit(1)
59
60
61def main(argv):
62 """ client entry point. """
63 args = argv[1:]
64 usage = "Usage: %prog [config file] [extra config files] [options] "
65 configs = []
66 while len(args) > 0 and not args[0].startswith('-'):
67 configs.append(args.pop(0))
68 if len(configs) == 0:
69 configs.extend(get_config_files())
70 (parser, options, argv) = config.configglue(file(configs[0]), *configs[1:],
71 args=args, usage=usage)
72
73 logger.init()
74 if options.debug:
75 logger.set_debug('stdout file')
76 else:
77 logger.configure_logging(options.logging_level,
78 options.logging_file_size,
79 options.logging_backup_count)
80
81 # check we're not running as root, or have explicitely and in
82 # length expressed our desire to do so
83 if (is_root() and
84 not options.im_ok_with_being_root_pretty_please_let_me_be_root):
85 die("Please don't run the syncdaemon as root.")
86
87 # check if the user disabled files sync
88 # we need to perform this check first because libsyncdaemon uses
89 # NameOwnerChanged signal to set up internal syncdaemon structures.
90 # In case we check config after acquiring DBus name we'll get LP:759714
91 if not config.get_user_config().get_files_sync_enabled():
92 die('Files synchronization is disabled.')
93
94 # check if there is another instance running
95 if is_already_running():
96 die('Another instance is running')
97
98 # check if we are using xdg_data_home and it doesn't exists
99 if xdg_data_home in options.data_dir and \
100 not os.path.exists(options.data_dir):
101 # if we have metadata in the old xdg_cache, move it!
102 old_data_dir = options.data_dir.replace(xdg_data_home, xdg_cache_home)
103 if os.path.exists(old_data_dir):
104 parent = os.path.dirname(options.data_dir)
105 if os.path.exists(parent) and not os.access(parent, os.W_OK):
106 # make the parent dir writable
107 os.chmod(parent, 0775)
108 elif not os.path.exists(parent):
109 # if it don't exits
110 os.makedirs(parent)
111 shutil.move(old_data_dir, options.data_dir)
112 if not os.path.exists(options.data_dir):
113 parent = os.path.dirname(options.data_dir)
114 if os.path.exists(parent) and not os.access(parent, os.W_OK):
115 # make the parent dir writable
116 os.chmod(parent, 0775)
117 os.makedirs(options.data_dir)
118
119 # create the partials_dir
120 partials_dir = os.path.join(xdg_cache_home, 'ubuntuone', 'partials')
121 if not os.path.exists(partials_dir):
122 os.makedirs(partials_dir)
123
124 logger.rotate_logs()
125 main = Main(options.root_dir, options.shares_dir, options.data_dir,
126 partials_dir, host=options.host, port=int(options.port),
127 dns_srv=options.dns_srv, ssl=True,
128 disable_ssl_verify=options.disable_ssl_verify,
129 mark_interval=options.mark_interval,
130 broadcast_events=options.send_events_over_dbus,
131 handshake_timeout=options.handshake_timeout,
132 shares_symlink_name='Shared With Me',
133 read_limit=options.bandwidth_throttling_read_limit,
134 write_limit=options.bandwidth_throttling_write_limit,
135 throttling_enabled=options.bandwidth_throttling_on,
136 ignore_files=options.ignore)
137 if options.oauth:
138 values = options.oauth.split(':')
139 if len(values) == 4 or len(values) == 2:
140 main.external.oauth_credentials = values
141 else:
142 msg = "--oauth requires a key and secret together in the form " \
143 "[CONSUMER_KEY:CONSUMER_SECRET:]KEY:SECRET"
144 parser.error(msg)
145
146 # override the reactor default signal handlers in order to
147 # shutdown properly
148 atexit.register(reactor.callFromThread, main.quit)
149 def install_handlers():
150 """ install our custom signal handler. """
151 def handler(signum, frame):
152 logger.root_logger.debug("Signal received %s ", str(signum))
153 reactor.callFromThread(main.quit)
154 for signal_name in ['SIGHUP', 'SIGTERM', 'SIGINT']:
155 actual_signal = getattr(signal, signal_name, None)
156 # some platforms do not have all the signals, eg: Windows does not
157 # have SIGHUP
158 if actual_signal is not None:
159 signal.signal(actual_signal, handler)
160
161 reactor.callWhenRunning(install_handlers)
162 # set the application name
163 set_application_name('ubuntuone-syncdaemon')
164
165 # check if we should start the heapy monitor
166 if options.debug_heapy_monitor:
167 try:
168 import guppy.heapy.RM
169 except ImportError:
170 logger.root_logger.warning('guppy-pe/heapy not available, remote '
171 'monitor thread not started')
172 else:
173 guppy.heapy.RM.on()
174
175 main.start()
176 if options.debug_lsprof_file:
177 try:
178 from bzrlib.lsprof import profile
179 ret, stats = profile(reactor.run)
180 stats.save(options.debug_lsprof_file)
181 except ImportError:
182 logger.root_logger.warning('bzrlib.lsprof not available')
183 reactor.run()
184 else:
185 reactor.run()
186
187
188if __name__ == '__main__':
189 try:
190 main(sys.argv)
191 except Exception:
192 logger.root_logger.exception('Unexpected error')
193 raise
0194
=== added file 'config.guess'
--- config.guess 1970-01-01 00:00:00 +0000
+++ config.guess 2011-07-08 07:12:36 +0000
@@ -0,0 +1,1502 @@
1#! /bin/sh
2# Attempt to guess a canonical system name.
3# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc.
6
7timestamp='2009-12-30'
8
9# This file is free software; you can redistribute it and/or modify it
10# under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful, but
15# WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17# General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
22# 02110-1301, USA.
23#
24# As a special exception to the GNU General Public License, if you
25# distribute this file as part of a program that contains a
26# configuration script generated by Autoconf, you may include it under
27# the same distribution terms that you use for the rest of that program.
28
29
30# Originally written by Per Bothner. Please send patches (context
31# diff format) to <config-patches@gnu.org> and include a ChangeLog
32# entry.
33#
34# This script attempts to guess a canonical system name similar to
35# config.sub. If it succeeds, it prints the system name on stdout, and
36# exits with 0. Otherwise, it exits with 1.
37#
38# You can get the latest version of this script from:
39# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
40
41me=`echo "$0" | sed -e 's,.*/,,'`
42
43usage="\
44Usage: $0 [OPTION]
45
46Output the configuration name of the system \`$me' is run on.
47
48Operation modes:
49 -h, --help print this help, then exit
50 -t, --time-stamp print date of last modification, then exit
51 -v, --version print version number, then exit
52
53Report bugs and patches to <config-patches@gnu.org>."
54
55version="\
56GNU config.guess ($timestamp)
57
58Originally written by Per Bothner.
59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
602001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
61Software Foundation, Inc.
62
63This is free software; see the source for copying conditions. There is NO
64warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
65
66help="
67Try \`$me --help' for more information."
68
69# Parse command line
70while test $# -gt 0 ; do
71 case $1 in
72 --time-stamp | --time* | -t )
73 echo "$timestamp" ; exit ;;
74 --version | -v )
75 echo "$version" ; exit ;;
76 --help | --h* | -h )
77 echo "$usage"; exit ;;
78 -- ) # Stop option processing
79 shift; break ;;
80 - ) # Use stdin as input.
81 break ;;
82 -* )
83 echo "$me: invalid option $1$help" >&2
84 exit 1 ;;
85 * )
86 break ;;
87 esac
88done
89
90if test $# != 0; then
91 echo "$me: too many arguments$help" >&2
92 exit 1
93fi
94
95trap 'exit 1' 1 2 15
96
97# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
98# compiler to aid in system detection is discouraged as it requires
99# temporary files to be created and, as you can see below, it is a
100# headache to deal with in a portable fashion.
101
102# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
103# use `HOST_CC' if defined, but it is deprecated.
104
105# Portable tmp directory creation inspired by the Autoconf team.
106
107set_cc_for_build='
108trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
109trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
110: ${TMPDIR=/tmp} ;
111 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
112 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
113 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
114 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
115dummy=$tmp/dummy ;
116tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
117case $CC_FOR_BUILD,$HOST_CC,$CC in
118 ,,) echo "int x;" > $dummy.c ;
119 for c in cc gcc c89 c99 ; do
120 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
121 CC_FOR_BUILD="$c"; break ;
122 fi ;
123 done ;
124 if test x"$CC_FOR_BUILD" = x ; then
125 CC_FOR_BUILD=no_compiler_found ;
126 fi
127 ;;
128 ,,*) CC_FOR_BUILD=$CC ;;
129 ,*,*) CC_FOR_BUILD=$HOST_CC ;;
130esac ; set_cc_for_build= ;'
131
132# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
133# (ghazi@noc.rutgers.edu 1994-08-24)
134if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
135 PATH=$PATH:/.attbin ; export PATH
136fi
137
138UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
139UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
140UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
141UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
142
143# Note: order is significant - the case branches are not exclusive.
144
145case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
146 *:NetBSD:*:*)
147 # NetBSD (nbsd) targets should (where applicable) match one or
148 # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
149 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
150 # switched to ELF, *-*-netbsd* would select the old
151 # object file format. This provides both forward
152 # compatibility and a consistent mechanism for selecting the
153 # object file format.
154 #
155 # Note: NetBSD doesn't particularly care about the vendor
156 # portion of the name. We always set it to "unknown".
157 sysctl="sysctl -n hw.machine_arch"
158 UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
159 /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
160 case "${UNAME_MACHINE_ARCH}" in
161 armeb) machine=armeb-unknown ;;
162 arm*) machine=arm-unknown ;;
163 sh3el) machine=shl-unknown ;;
164 sh3eb) machine=sh-unknown ;;
165 sh5el) machine=sh5le-unknown ;;
166 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
167 esac
168 # The Operating System including object format, if it has switched
169 # to ELF recently, or will in the future.
170 case "${UNAME_MACHINE_ARCH}" in
171 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
172 eval $set_cc_for_build
173 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
174 | grep -q __ELF__
175 then
176 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
177 # Return netbsd for either. FIX?
178 os=netbsd
179 else
180 os=netbsdelf
181 fi
182 ;;
183 *)
184 os=netbsd
185 ;;
186 esac
187 # The OS release
188 # Debian GNU/NetBSD machines have a different userland, and
189 # thus, need a distinct triplet. However, they do not need
190 # kernel version information, so it can be replaced with a
191 # suitable tag, in the style of linux-gnu.
192 case "${UNAME_VERSION}" in
193 Debian*)
194 release='-gnu'
195 ;;
196 *)
197 release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
198 ;;
199 esac
200 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
201 # contains redundant information, the shorter form:
202 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
203 echo "${machine}-${os}${release}"
204 exit ;;
205 *:OpenBSD:*:*)
206 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
207 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
208 exit ;;
209 *:ekkoBSD:*:*)
210 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
211 exit ;;
212 *:SolidBSD:*:*)
213 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
214 exit ;;
215 macppc:MirBSD:*:*)
216 echo powerpc-unknown-mirbsd${UNAME_RELEASE}
217 exit ;;
218 *:MirBSD:*:*)
219 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
220 exit ;;
221 alpha:OSF1:*:*)
222 case $UNAME_RELEASE in
223 *4.0)
224 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
225 ;;
226 *5.*)
227 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
228 ;;
229 esac
230 # According to Compaq, /usr/sbin/psrinfo has been available on
231 # OSF/1 and Tru64 systems produced since 1995. I hope that
232 # covers most systems running today. This code pipes the CPU
233 # types through head -n 1, so we only detect the type of CPU 0.
234 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
235 case "$ALPHA_CPU_TYPE" in
236 "EV4 (21064)")
237 UNAME_MACHINE="alpha" ;;
238 "EV4.5 (21064)")
239 UNAME_MACHINE="alpha" ;;
240 "LCA4 (21066/21068)")
241 UNAME_MACHINE="alpha" ;;
242 "EV5 (21164)")
243 UNAME_MACHINE="alphaev5" ;;
244 "EV5.6 (21164A)")
245 UNAME_MACHINE="alphaev56" ;;
246 "EV5.6 (21164PC)")
247 UNAME_MACHINE="alphapca56" ;;
248 "EV5.7 (21164PC)")
249 UNAME_MACHINE="alphapca57" ;;
250 "EV6 (21264)")
251 UNAME_MACHINE="alphaev6" ;;
252 "EV6.7 (21264A)")
253 UNAME_MACHINE="alphaev67" ;;
254 "EV6.8CB (21264C)")
255 UNAME_MACHINE="alphaev68" ;;
256 "EV6.8AL (21264B)")
257 UNAME_MACHINE="alphaev68" ;;
258 "EV6.8CX (21264D)")
259 UNAME_MACHINE="alphaev68" ;;
260 "EV6.9A (21264/EV69A)")
261 UNAME_MACHINE="alphaev69" ;;
262 "EV7 (21364)")
263 UNAME_MACHINE="alphaev7" ;;
264 "EV7.9 (21364A)")
265 UNAME_MACHINE="alphaev79" ;;
266 esac
267 # A Pn.n version is a patched version.
268 # A Vn.n version is a released version.
269 # A Tn.n version is a released field test version.
270 # A Xn.n version is an unreleased experimental baselevel.
271 # 1.2 uses "1.2" for uname -r.
272 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
273 exit ;;
274 Alpha\ *:Windows_NT*:*)
275 # How do we know it's Interix rather than the generic POSIX subsystem?
276 # Should we change UNAME_MACHINE based on the output of uname instead
277 # of the specific Alpha model?
278 echo alpha-pc-interix
279 exit ;;
280 21064:Windows_NT:50:3)
281 echo alpha-dec-winnt3.5
282 exit ;;
283 Amiga*:UNIX_System_V:4.0:*)
284 echo m68k-unknown-sysv4
285 exit ;;
286 *:[Aa]miga[Oo][Ss]:*:*)
287 echo ${UNAME_MACHINE}-unknown-amigaos
288 exit ;;
289 *:[Mm]orph[Oo][Ss]:*:*)
290 echo ${UNAME_MACHINE}-unknown-morphos
291 exit ;;
292 *:OS/390:*:*)
293 echo i370-ibm-openedition
294 exit ;;
295 *:z/VM:*:*)
296 echo s390-ibm-zvmoe
297 exit ;;
298 *:OS400:*:*)
299 echo powerpc-ibm-os400
300 exit ;;
301 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
302 echo arm-acorn-riscix${UNAME_RELEASE}
303 exit ;;
304 arm:riscos:*:*|arm:RISCOS:*:*)
305 echo arm-unknown-riscos
306 exit ;;
307 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
308 echo hppa1.1-hitachi-hiuxmpp
309 exit ;;
310 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
311 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
312 if test "`(/bin/universe) 2>/dev/null`" = att ; then
313 echo pyramid-pyramid-sysv3
314 else
315 echo pyramid-pyramid-bsd
316 fi
317 exit ;;
318 NILE*:*:*:dcosx)
319 echo pyramid-pyramid-svr4
320 exit ;;
321 DRS?6000:unix:4.0:6*)
322 echo sparc-icl-nx6
323 exit ;;
324 DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
325 case `/usr/bin/uname -p` in
326 sparc) echo sparc-icl-nx7; exit ;;
327 esac ;;
328 s390x:SunOS:*:*)
329 echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
330 exit ;;
331 sun4H:SunOS:5.*:*)
332 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
333 exit ;;
334 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
335 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
336 exit ;;
337 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
338 echo i386-pc-auroraux${UNAME_RELEASE}
339 exit ;;
340 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
341 eval $set_cc_for_build
342 SUN_ARCH="i386"
343 # If there is a compiler, see if it is configured for 64-bit objects.
344 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
345 # This test works for both compilers.
346 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
347 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
348 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
349 grep IS_64BIT_ARCH >/dev/null
350 then
351 SUN_ARCH="x86_64"
352 fi
353 fi
354 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
355 exit ;;
356 sun4*:SunOS:6*:*)
357 # According to config.sub, this is the proper way to canonicalize
358 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
359 # it's likely to be more like Solaris than SunOS4.
360 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
361 exit ;;
362 sun4*:SunOS:*:*)
363 case "`/usr/bin/arch -k`" in
364 Series*|S4*)
365 UNAME_RELEASE=`uname -v`
366 ;;
367 esac
368 # Japanese Language versions have a version number like `4.1.3-JL'.
369 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
370 exit ;;
371 sun3*:SunOS:*:*)
372 echo m68k-sun-sunos${UNAME_RELEASE}
373 exit ;;
374 sun*:*:4.2BSD:*)
375 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
376 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
377 case "`/bin/arch`" in
378 sun3)
379 echo m68k-sun-sunos${UNAME_RELEASE}
380 ;;
381 sun4)
382 echo sparc-sun-sunos${UNAME_RELEASE}
383 ;;
384 esac
385 exit ;;
386 aushp:SunOS:*:*)
387 echo sparc-auspex-sunos${UNAME_RELEASE}
388 exit ;;
389 # The situation for MiNT is a little confusing. The machine name
390 # can be virtually everything (everything which is not
391 # "atarist" or "atariste" at least should have a processor
392 # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
393 # to the lowercase version "mint" (or "freemint"). Finally
394 # the system name "TOS" denotes a system which is actually not
395 # MiNT. But MiNT is downward compatible to TOS, so this should
396 # be no problem.
397 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
398 echo m68k-atari-mint${UNAME_RELEASE}
399 exit ;;
400 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
401 echo m68k-atari-mint${UNAME_RELEASE}
402 exit ;;
403 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
404 echo m68k-atari-mint${UNAME_RELEASE}
405 exit ;;
406 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
407 echo m68k-milan-mint${UNAME_RELEASE}
408 exit ;;
409 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
410 echo m68k-hades-mint${UNAME_RELEASE}
411 exit ;;
412 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
413 echo m68k-unknown-mint${UNAME_RELEASE}
414 exit ;;
415 m68k:machten:*:*)
416 echo m68k-apple-machten${UNAME_RELEASE}
417 exit ;;
418 powerpc:machten:*:*)
419 echo powerpc-apple-machten${UNAME_RELEASE}
420 exit ;;
421 RISC*:Mach:*:*)
422 echo mips-dec-mach_bsd4.3
423 exit ;;
424 RISC*:ULTRIX:*:*)
425 echo mips-dec-ultrix${UNAME_RELEASE}
426 exit ;;
427 VAX*:ULTRIX*:*:*)
428 echo vax-dec-ultrix${UNAME_RELEASE}
429 exit ;;
430 2020:CLIX:*:* | 2430:CLIX:*:*)
431 echo clipper-intergraph-clix${UNAME_RELEASE}
432 exit ;;
433 mips:*:*:UMIPS | mips:*:*:RISCos)
434 eval $set_cc_for_build
435 sed 's/^ //' << EOF >$dummy.c
436#ifdef __cplusplus
437#include <stdio.h> /* for printf() prototype */
438 int main (int argc, char *argv[]) {
439#else
440 int main (argc, argv) int argc; char *argv[]; {
441#endif
442 #if defined (host_mips) && defined (MIPSEB)
443 #if defined (SYSTYPE_SYSV)
444 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
445 #endif
446 #if defined (SYSTYPE_SVR4)
447 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
448 #endif
449 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
450 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
451 #endif
452 #endif
453 exit (-1);
454 }
455EOF
456 $CC_FOR_BUILD -o $dummy $dummy.c &&
457 dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
458 SYSTEM_NAME=`$dummy $dummyarg` &&
459 { echo "$SYSTEM_NAME"; exit; }
460 echo mips-mips-riscos${UNAME_RELEASE}
461 exit ;;
462 Motorola:PowerMAX_OS:*:*)
463 echo powerpc-motorola-powermax
464 exit ;;
465 Motorola:*:4.3:PL8-*)
466 echo powerpc-harris-powermax
467 exit ;;
468 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
469 echo powerpc-harris-powermax
470 exit ;;
471 Night_Hawk:Power_UNIX:*:*)
472 echo powerpc-harris-powerunix
473 exit ;;
474 m88k:CX/UX:7*:*)
475 echo m88k-harris-cxux7
476 exit ;;
477 m88k:*:4*:R4*)
478 echo m88k-motorola-sysv4
479 exit ;;
480 m88k:*:3*:R3*)
481 echo m88k-motorola-sysv3
482 exit ;;
483 AViiON:dgux:*:*)
484 # DG/UX returns AViiON for all architectures
485 UNAME_PROCESSOR=`/usr/bin/uname -p`
486 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
487 then
488 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
489 [ ${TARGET_BINARY_INTERFACE}x = x ]
490 then
491 echo m88k-dg-dgux${UNAME_RELEASE}
492 else
493 echo m88k-dg-dguxbcs${UNAME_RELEASE}
494 fi
495 else
496 echo i586-dg-dgux${UNAME_RELEASE}
497 fi
498 exit ;;
499 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
500 echo m88k-dolphin-sysv3
501 exit ;;
502 M88*:*:R3*:*)
503 # Delta 88k system running SVR3
504 echo m88k-motorola-sysv3
505 exit ;;
506 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
507 echo m88k-tektronix-sysv3
508 exit ;;
509 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
510 echo m68k-tektronix-bsd
511 exit ;;
512 *:IRIX*:*:*)
513 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
514 exit ;;
515 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
516 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
517 exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
518 i*86:AIX:*:*)
519 echo i386-ibm-aix
520 exit ;;
521 ia64:AIX:*:*)
522 if [ -x /usr/bin/oslevel ] ; then
523 IBM_REV=`/usr/bin/oslevel`
524 else
525 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
526 fi
527 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
528 exit ;;
529 *:AIX:2:3)
530 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
531 eval $set_cc_for_build
532 sed 's/^ //' << EOF >$dummy.c
533 #include <sys/systemcfg.h>
534
535 main()
536 {
537 if (!__power_pc())
538 exit(1);
539 puts("powerpc-ibm-aix3.2.5");
540 exit(0);
541 }
542EOF
543 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
544 then
545 echo "$SYSTEM_NAME"
546 else
547 echo rs6000-ibm-aix3.2.5
548 fi
549 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
550 echo rs6000-ibm-aix3.2.4
551 else
552 echo rs6000-ibm-aix3.2
553 fi
554 exit ;;
555 *:AIX:*:[456])
556 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
557 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
558 IBM_ARCH=rs6000
559 else
560 IBM_ARCH=powerpc
561 fi
562 if [ -x /usr/bin/oslevel ] ; then
563 IBM_REV=`/usr/bin/oslevel`
564 else
565 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
566 fi
567 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
568 exit ;;
569 *:AIX:*:*)
570 echo rs6000-ibm-aix
571 exit ;;
572 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
573 echo romp-ibm-bsd4.4
574 exit ;;
575 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
576 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
577 exit ;; # report: romp-ibm BSD 4.3
578 *:BOSX:*:*)
579 echo rs6000-bull-bosx
580 exit ;;
581 DPX/2?00:B.O.S.:*:*)
582 echo m68k-bull-sysv3
583 exit ;;
584 9000/[34]??:4.3bsd:1.*:*)
585 echo m68k-hp-bsd
586 exit ;;
587 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
588 echo m68k-hp-bsd4.4
589 exit ;;
590 9000/[34678]??:HP-UX:*:*)
591 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
592 case "${UNAME_MACHINE}" in
593 9000/31? ) HP_ARCH=m68000 ;;
594 9000/[34]?? ) HP_ARCH=m68k ;;
595 9000/[678][0-9][0-9])
596 if [ -x /usr/bin/getconf ]; then
597 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
598 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
599 case "${sc_cpu_version}" in
600 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
601 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
602 532) # CPU_PA_RISC2_0
603 case "${sc_kernel_bits}" in
604 32) HP_ARCH="hppa2.0n" ;;
605 64) HP_ARCH="hppa2.0w" ;;
606 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
607 esac ;;
608 esac
609 fi
610 if [ "${HP_ARCH}" = "" ]; then
611 eval $set_cc_for_build
612 sed 's/^ //' << EOF >$dummy.c
613
614 #define _HPUX_SOURCE
615 #include <stdlib.h>
616 #include <unistd.h>
617
618 int main ()
619 {
620 #if defined(_SC_KERNEL_BITS)
621 long bits = sysconf(_SC_KERNEL_BITS);
622 #endif
623 long cpu = sysconf (_SC_CPU_VERSION);
624
625 switch (cpu)
626 {
627 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
628 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
629 case CPU_PA_RISC2_0:
630 #if defined(_SC_KERNEL_BITS)
631 switch (bits)
632 {
633 case 64: puts ("hppa2.0w"); break;
634 case 32: puts ("hppa2.0n"); break;
635 default: puts ("hppa2.0"); break;
636 } break;
637 #else /* !defined(_SC_KERNEL_BITS) */
638 puts ("hppa2.0"); break;
639 #endif
640 default: puts ("hppa1.0"); break;
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches