From 51cdd94379929f32719d559b422a8aa1c8114696 Mon Sep 17 00:00:00 2001 From: Daniel Mach Date: Jun 25 2015 11:50:03 +0000 Subject: [PATCH 1/2] Update GPL to latest version from https://www.gnu.org/licenses/gpl-2.0.txt --- diff --git a/GPL b/GPL index cde4efd..d159169 100644 --- a/GPL +++ b/GPL @@ -1,272 +1,339 @@ - - The GNU General Public License (GPL) - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your freedom to - share and change it. By contrast, the GNU General Public License is - intended to guarantee your freedom to share and change free software--to - make sure the software is free for all its users. This General Public - License applies to most of the Free Software Foundation's software and to - any other program whose authors commit to using it. (Some other Free - Software Foundation software is covered by the GNU Library General Public - License instead.) You can apply it to your programs, too. - - When we speak of free software, we are referring to freedom, not price. - Our General Public Licenses are designed to make sure that you have the - freedom to distribute copies of free software (and charge for this service - if you wish), that you receive source code or can get it if you want it, - that you can change the software or use pieces of it in new free programs; - and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid anyone to - deny you these rights or to ask you to surrender the rights. These - restrictions translate to certain responsibilities for you if you - distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether gratis or - for a fee, you must give the recipients all the rights that you have. You - must make sure that they, too, receive or can get the source code. And you - must show them these terms so they know their rights. - - We protect your rights with two steps: (1) copyright the software, and (2) - offer you this license which gives you legal permission to copy, - distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain that - everyone understands that there is no warranty for this free software. If - the software is modified by someone else and passed on, we want its - recipients to know that what they have is not the original, so that any - problems introduced by others will not reflect on the original authors' - reputations. - - Finally, any free program is threatened constantly by software patents. We - wish to avoid the danger that redistributors of a free program will - individually obtain patent licenses, in effect making the program - proprietary. To prevent this, we have made it clear that any patent must - be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and - modification follow. - - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains a - notice placed by the copyright holder saying it may be distributed under - the terms of this General Public License. The "Program", below, refers to - any such program or work, and a "work based on the Program" means either - the Program or any derivative work under copyright law: that is to say, a - work containing the Program or a portion of it, either verbatim or with - modifications and/or translated into another language. (Hereinafter, - translation is included without limitation in the term "modification".) - Each licensee is addressed as "you". - - Activities other than copying, distribution and modification are not - covered by this License; they are outside its scope. The act of running - the Program is not restricted, and the output from the Program is covered - only if its contents constitute a work based on the Program (independent - of having been made by running the Program). Whether that is true depends - on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's source - code as you receive it, in any medium, provided that you conspicuously and - appropriately publish on each copy an appropriate copyright notice and - disclaimer of warranty; keep intact all the notices that refer to this - License and to the absence of any warranty; and give any other recipients - of the Program a copy of this License along with the Program. - - You may charge a fee for the physical act of transferring a copy, and you - may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion of it, - thus forming a work based on the Program, and copy and distribute such - modifications or work under the terms of Section 1 above, provided that - you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices stating - that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole - or in part contains or is derived from the Program or any part thereof, - to be licensed as a whole at no charge to all third parties under the - terms of this License. - - c) If the modified program normally reads commands interactively when - run, you must cause it, when started running for such interactive use in - the most ordinary way, to print or display an announcement including an - appropriate copyright notice and a notice that there is no warranty (or - else, saying that you provide a warranty) and that users may - redistribute the program under these conditions, and telling the user - how to view a copy of this License. (Exception: if the Program itself is - interactive but does not normally print such an announcement, your work - based on the Program is not required to print an announcement.) - - These requirements apply to the modified work as a whole. If identifiable - sections of that work are not derived from the Program, and can be - reasonably considered independent and separate works in themselves, then - this License, and its terms, do not apply to those sections when you - distribute them as separate works. But when you distribute the same - sections as part of a whole which is a work based on the Program, the - distribution of the whole must be on the terms of this License, whose - permissions for other licensees extend to the entire whole, and thus to - each and every part regardless of who wrote it. - - Thus, it is not the intent of this section to claim rights or contest your - rights to work written entirely by you; rather, the intent is to exercise - the right to control the distribution of derivative or collective works - based on the Program. - - In addition, mere aggregation of another work not based on the Program - with the Program (or with a work based on the Program) on a volume of a - storage or distribution medium does not bring the other work under the - scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, under - Section 2) in object code or executable form under the terms of Sections 1 - and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source - code, which must be distributed under the terms of Sections 1 and 2 - above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to - give any third party, for a charge no more than your cost of physically - performing source distribution, a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to - distribute corresponding source code. (This alternative is allowed only - for noncommercial distribution and only if you received the program in - object code or executable form with such an offer, in accord with - Subsection b above.) - - The source code for a work means the preferred form of the work for making - modifications to it. For an executable work, complete source code means - all the source code for all modules it contains, plus any associated - interface definition files, plus the scripts used to control compilation - and installation of the executable. However, as a special exception, the - source code distributed need not include anything that is normally - distributed (in either source or binary form) with the major components - (compiler, kernel, and so on) of the operating system on which the - executable runs, unless that component itself accompanies the executable. - - If distribution of executable or object code is made by offering access to - copy from a designated place, then offering equivalent access to copy the - source code from the same place counts as distribution of the source code, - even though third parties are not compelled to copy the source along with - the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program except - as expressly provided under this License. Any attempt otherwise to copy, - modify, sublicense or distribute the Program is void, and will - automatically terminate your rights under this License. However, parties - who have received copies, or rights, from you under this License will not - have their licenses terminated so long as such parties remain in full - compliance. - - 5. You are not required to accept this License, since you have not signed - it. However, nothing else grants you permission to modify or distribute - the Program or its derivative works. These actions are prohibited by law - if you do not accept this License. Therefore, by modifying or distributing - the Program (or any work based on the Program), you indicate your - acceptance of this License to do so, and all its terms and conditions for - copying, distributing or modifying the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the - Program), the recipient automatically receives a license from the original - licensor to copy, distribute or modify the Program subject to these terms - and conditions. You may not impose any further restrictions on the - recipients' exercise of the rights granted herein. You are not responsible - for enforcing compliance by third parties to this License. - - 7. If, as a consequence of a court judgment or allegation of patent - infringement or for any other reason (not limited to patent issues), - conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot distribute - so as to satisfy simultaneously your obligations under this License and - any other pertinent obligations, then as a consequence you may not - distribute the Program at all. For example, if a patent license would not - permit royalty-free redistribution of the Program by all those who receive - copies directly or indirectly through you, then the only way you could - satisfy both it and this License would be to refrain entirely from - distribution of the Program. - - If any portion of this section is held invalid or unenforceable under any - particular circumstance, the balance of the section is intended to apply - and the section as a whole is intended to apply in other circumstances. - - It is not the purpose of this section to induce you to infringe any - patents or other property right claims or to contest validity of any such - claims; this section has the sole purpose of protecting the integrity of - the free software distribution system, which is implemented by public - license practices. Many people have made generous contributions to the - wide range of software distributed through that system in reliance on - consistent application of that system; it is up to the author/donor to - decide if he or she is willing to distribute software through any other - system and a licensee cannot impose that choice. - - This section is intended to make thoroughly clear what is believed to be a - consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in certain - countries either by patents or by copyrighted interfaces, the original - copyright holder who places the Program under this License may add an - explicit geographical distribution limitation excluding those countries, - so that distribution is permitted only in or among countries not thus - excluded. In such case, this License incorporates the limitation as if - written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions of - the General Public License from time to time. Such new versions will be - similar in spirit to the present version, but may differ in detail to - address new problems or concerns. - - Each version is given a distinguishing version number. If the Program - specifies a version number of this License which applies to it and "any - later version", you have the option of following the terms and conditions - either of that version or of any later version published by the Free - Software Foundation. If the Program does not specify a version number of - this License, you may choose any version ever published by the Free - Software Foundation. - - 10. If you wish to incorporate parts of the Program into other free - programs whose distribution conditions are different, write to the author - to ask for permission. For software which is copyrighted by the Free - Software Foundation, write to the Free Software Foundation; we sometimes - make exceptions for this. Our decision will be guided by the two goals of - preserving the free status of all derivatives of our free software and of - promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY - FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN - OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES - PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED - OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS - TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE - PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, - REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR - REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, - INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES - ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT - LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES - SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE - WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. From 81e935fe0e74465c93901f60bc3f9aeba7ac1014 Mon Sep 17 00:00:00 2001 From: Daniel Mach Date: Jun 25 2015 12:02:57 +0000 Subject: [PATCH 2/2] Fix test data, improve Makefile. Previous test data was insufficient for proper testing. Test compose runs and depsolving tests require precisely set NVRs, dependencies, sub-packages, etc. Using rpmfluff for these would be an overkill, it's better to create RPMs directly from specs. --- diff --git a/.gitignore b/.gitignore index 5531fc6..1347bf8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ MANIFEST build/* dist/* noarch/* +tests/data/repo +tests/data/repo-krb5-lookaside diff --git a/Makefile b/Makefile index 0167d53..59a0b9e 100644 --- a/Makefile +++ b/Makefile @@ -8,21 +8,41 @@ RPM="noarch/${PKGNAME}-$(VERSION)-$(RELEASE).noarch.rpm" SRPM="${PKGNAME}-$(VERSION)-$(RELEASE).src.rpm" -default: all +all: help + + +help: + @echo "Usage: make " + @echo + @echo "Available targets are:" + @echo " help show this text" + @echo " clean remove python bytecode and temp files" + @echo " install install program on current system" + @echo " test-data build test data (requirement for running tests)" + @echo " test run tests" + @echo + @echo "Available rel-eng targets are:" + @echo " archive create source tarball" + @echo " log display changelog for spec file" + @echo " tag create a git tag according to version and release from spec file" + @echo " rpm build rpm" + @echo " srpm build srpm" + @echo " rpminstall build rpm and install it" + @echo " release build srpm and create git tag" -all: - @echo "Nothing to do" tag: @git tag -a -m "Tag as $(GITTAG)" -f $(GITTAG) @echo "Tagged as $(GITTAG)" -# @hg push + Changelog: (GIT_DIR=.git git log > .changelog.tmp && mv .changelog.tmp Changelog; rm -f .changelog.tmp) || (touch Changelog; echo 'git directory not found: installing possibly empty changelog.' >&2) + log: - @(LC_ALL=C date +"* %a %b %e %Y `git config --get user.name` <`git config --get user.email`> - VERSION"; git log --pretty="format:- %s (%an)" | cat) | less + @(LC_ALL=C date +"* %a %b %e %Y `git config --get user.name` <`git config --get user.email`> - VERSION"; git log --pretty="format:- %s (%ae)" | sed -r 's/ \(([^@]+)@[^)]+\)/ (\1)/g' | cat) | less + archive: @rm -f Changelog @@ -32,30 +52,45 @@ archive: @python setup.py sdist --formats=bztar > /dev/null @echo "The archive is in dist/${PKGNAME}-$(VERSION).tar.bz2" + srpm: archive @rm -f $(SRPM) @rpmbuild -bs ${PKGRPMFLAGS} ${PKGNAME}.spec @echo "The srpm is in $(SRPM)" + rpm: archive @rpmbuild --clean -bb ${PKGRPMFLAGS} ${PKGNAME}.spec @echo "The rpm is in $(RPM)" + rpminstall: rpm @rpm -ivh --force $(RPM) + release: tag srpm + install: @python setup.py install + clean: @python setup.py clean - @rm -vf *.rpm + @rm -vf *.rpm @rm -vrf noarch @rm -vf *.tar.gz @rm -vrf dist @rm -vf MANIFEST @rm -vf Changelog - find . -\( -name "*.pyc" -o -name '*.pyo' -o -name "*~" -o -name "__pycache__" -\) -delete - find . -depth -type d -a -name '*.egg-info' -exec rm -rf {} \; + @find . -\( -name "*.pyc" -o -name '*.pyo' -o -name "*~" -o -name "__pycache__" -\) -delete + @find . -depth -type d -a -name '*.egg-info' -exec rm -rf {} \; + + +test: + python2 setup.py test + python3 setup.py test + + +test-data: + ./tests/data/specs/build.sh diff --git a/README.testing b/README.testing new file mode 100644 index 0000000..304c33c --- /dev/null +++ b/README.testing @@ -0,0 +1,42 @@ +=============== + Testing Pungi +=============== + + +Test Data +========= +Tests require test data and not all of it is available in git. +You must create test repositories before running the tests: + + $ make test-data + +Requirements: createrepo_c, rpmbuild + + +Unit Tests +========== +Unit tests cover functionality of Pungi python modules. +You can run all of them at once: + + $ make test + +which is shortcut to: + + $ python2 setup.py test + $ python3 setup.py test + +You can alternatively run individual tests: + + $ cd tests + $ ./.py [[.]] + + +Functional Tests +================ +Because compose is quite complex process and not everything is covered with +unit tests yet, the easiest way how to test if your changes did not break +anything badly is to start a compose on a relatively small and well defined +package set: + + $ cd tests + $ ./test_compose.sh diff --git a/setup.py b/setup.py index f7eb9cb..d6b81f1 100755 --- a/setup.py +++ b/setup.py @@ -43,5 +43,6 @@ setup( ('/usr/share/pungi', glob.glob('share/*.ks')), ('/usr/share/pungi', glob.glob('share/*.dtd')), ('/usr/share/pungi/multilib', glob.glob('share/multilib/*')), - ] + ], + test_suite = "tests", ) diff --git a/tests/README b/tests/README deleted file mode 100644 index d615a05..0000000 --- a/tests/README +++ /dev/null @@ -1,44 +0,0 @@ -Running pungi4 tests - -Pungi4 is an utility to perform composes of rpms, as such we will need some -rpms to perform composes on. - -In this directory you will find a small utility called 'createtestdata.py' that -takes two arguments, first is the package manifest JSON file that will contain -the list of packages that are architecture specific, the list of architectures -to build them for, and finally the packages that are noarch. (Don't worry about -your dev machine being the wrong arch as needed to be produced, we're using an -utility library called rpmfluff[0] that's faking a lot of this for us) - -Before we run any tests we will need to create a repo to work with using the -'createtestdata.py' script. NOTE: This script requires both the 'python-click -and 'python-rpmfluff' packages. - - $ ./createtestdata.py --pkgfile pkgs.json --outdir . - -You will now find a directory called ./repo in the current directory, this is -setup exactly as the pungi tests need it and you are now ready to run tests. - -Next you will find a hand full of scripts named test_* and these are to run the -actual tests. There is also a small wrapper called 'run_all_tests.sh' that will -run all scripts prefixed with test_* in the current directory. - - $ ./run_all_tests.sh - -Or alternatively, select the tests you want to run and run them one by one: - - $ ./test_arch.py - ...... - ---------------------------------------------------------------------- - Ran 6 tests in 0.001s - - OK - - $ ./test_pathmatch.py - ... - ---------------------------------------------------------------------- - Ran 3 tests in 0.001s - - OK - -[0] - https://fedorahosted.org/rpmfluff/ diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/__init__.py diff --git a/tests/createtestdata.py b/tests/createtestdata.py deleted file mode 100755 index 6cd9d82..0000000 --- a/tests/createtestdata.py +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- - - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Library General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -import os -import tempfile -import shutil -import libcomps -from contextlib import contextmanager - -#import pungi.phases.pkgsets.pkgsets -from rpmfluff import SimpleRpmBuild - -# helpers for creating RPMs to test with -@contextmanager -def in_tempdir(outdir, prefix='_'): - """ - py:class:: in_tempdir(prefix='_') - - Context manager for the rpmbuild tempdir - """ - oldcwd = os.getcwd() - tmpdir = tempfile.mkdtemp(prefix=prefix) - os.chdir(tmpdir) - yield - os.chdir(oldcwd) - shutil.rmtree(tmpdir) - -@contextmanager -def in_dir(directory): - """ - py:class:: in_dir(dir) - - Context manager to handle things in a generic method - """ - oldcwd = os.getcwd() - tmpdir = tempfile.mkdtemp() - os.chdir(tmpdir) - yield - os.chdir(oldcwd) - -def make_rpm(outdir, archlist, name, version='1.0', release='1'): - """ - py:function:: make_rpm(outdir, name='test', version='1.0', release='1', archlist=None) - - Create the fake test rpms - """ - - if (archlist is None): - raise TypeError( "No defined architectures for make_rpm") - - abs_outdir = os.path.abspath(outdir) - - if not os.path.isdir(abs_outdir): - os.mkdir(abs_outdir) - - p = SimpleRpmBuild(name, version, release, archlist) - with in_tempdir(abs_outdir, prefix="tmppkgs"): - p.make() - - srpm_outdir = os.path.join( - abs_outdir, - "repo", - "src", - ) - - if not os.path.isdir(srpm_outdir): - os.makedirs(srpm_outdir) - - srpmfile = p.get_built_srpm() - src_outfile = os.path.join( - os.path.abspath(abs_outdir), - "repo", - 'src', - os.path.basename(srpmfile) - ) - shutil.move(srpmfile, src_outfile) - - for arch in archlist: - - arch_outdir = os.path.join( - abs_outdir, - "repo", - arch, - ) - if not os.path.isdir(arch_outdir): - os.makedirs(arch_outdir) - - - rpmfile = p.get_built_rpm(arch) - bin_outfile = os.path.join( - os.path.abspath(abs_outdir), - "repo", - arch, - os.path.basename(rpmfile) - ) - shutil.move(rpmfile, bin_outfile) - return p - -def get_rpm_list_from_comps(compspath): - """ - py:function:: get_rpm_list_from_comps(compspath) - - Return a list of rpms from a compsfile - """ - - pkg_list = [] - - comps = libcomps.Comps() - comps.fromxml_f(compspath) - - for group in comps.groups: - for pkg in comps.groups[group.id].packages: - pkg_list.append(pkg.name) - - return pkg_list - - -if __name__ == "__main__": - import click - import json - - @click.command() - @click.option('--pkgfile', default=None, required=True, - help="Path to json pkg file") - @click.option('--outdir', default=None, required=True, - help="Directory to create temp dummy repo") - def createtestdata(pkgfile, outdir): - pkgdata = json.loads(open(pkgfile,'r').read()) - for pkg in pkgdata['archpkgs']: - make_rpm(outdir, pkgdata['archs'], pkg) - for pkg in pkgdata['noarchpkgs']: - make_rpm(outdir, ['noarch'], pkg) - - os.popen('/usr/bin/createrepo %s' % os.path.join(outdir, "repo")) - - createtestdata() diff --git a/tests/data/dummy-comps.xml b/tests/data/dummy-comps.xml new file mode 100644 index 0000000..9bb6595 --- /dev/null +++ b/tests/data/dummy-comps.xml @@ -0,0 +1,163 @@ + + + + + + + + core + Core + Smallest possible installation + true + false + + dummy-bash + + + + + standard + Standard + Common set of utilities that extend the minimal installation. + false + true + + dummy-lvm2 + + + + + text-internet + Text-based Internet + This group includes text-based email, Web, and chat clients. These applications do not require the X Window System. + false + true + + dummy-elinks + dummy-tftp + + + + + firefox + Firefox Web Browser + The Firefox web browser + false + false + + dummy-firefox + dummy-icedtea-web + + + + + skype + Skype + Free internet telephony + false + true + + dummy-skype + + + + + resilient-storage + Resilient Storage + Clustered storage, including the GFS2 filesystem. + false + true + + dummy-gfs2-utils + dummy-lvm2-cluster + dummy-pacemaker + dummy-resource-agents + + + + + gluster + Gluster + GlusterFS support packages + false + true + + dummy-glusterfs-resource-agents + + + + + basic-desktop + Desktop + Basic Desktop packages + true + true + + dummy-imsettings-gnome + + + + + + + minimal + Minimal install + Basic functionality. + 99 + + core + + + + + + + desktop + Desktop + Desktop. + 10 + + core + standard + basic-desktop + + + + + + + empty + Empty + Should not appear in the repos. + 10 + + does-not-exist + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/data/dummy-pungi.conf b/tests/data/dummy-pungi.conf new file mode 100644 index 0000000..09d65f0 --- /dev/null +++ b/tests/data/dummy-pungi.conf @@ -0,0 +1,139 @@ +# PRODUCT (RELEASE) INFO +product_name = "Dummy Product" +product_short = "DP" +product_version = "1.0" +product_is_layered = False +product_type = "ga" + + +# GENERAL SETTINGS +bootable = False +comps_file = "dummy-comps.xml" +variants_file = "dummy-variants.xml" +sigkeys = [None] # None = unsigned + +# limit tree architectures +# if undefined, all architectures from variants.xml will be included +atree_arches = ["x86_64"] + +# limit tree variants +# if undefined, all variants from variants.xml will be included +#tree_variants = ["Server"] + +multilib_arches = ["ppc64", "x86_64", "s390x"] +multilib_methods = ["devel", "runtime"] # devel (recommended), all, base, file, kernel, none, runtime + + +# RUNROOT settings +runroot = False +#runroot_channel = "" +#runroot_tag = "" + + +# PKGSET +pkgset_source = "repos" # koji, repos + +# PKGSET - REPOS +# pkgset_repos format: {arch: [repo1_url, repo2_url, ...]} +pkgset_repos = { + "i386": [ + "repo", + ], + "x86_64": [ + "repo", + ], + "s390x": [ + "repo", + ], +} + +# PKGSET - KOJI +#pkgset_koji_path_prefix = "/mnt/koji" +#pkgset_koji_url = "" +#pkgset_koji_tag = "" + + +# GATHER +gather_source = "comps" +gather_method = "deps" +check_deps = False +greedy_method = "build" + +# fomat: [(variant_uid_regex, {arch|*: [repos]})] +# gather_lookaside_repos = [] + +# GATHER - JSON +# format: {variant_uid: {arch: package: [arch1, arch2, None (for any arch)]}} +#gather_source_mapping = "/path/to/mapping.json" + + +# CREATEREPO +# TODO: checksum type - mandatory +createrepo_c = True + + +# BUILDINSTALL + + +# PRODUCTIMG + + +# CREATEISO +create_optional_isos = False +symlink_isos_to = None + + +# fomat: [(variant_uid_regex, {arch|*: [packages]})] +additional_packages = [ + ('^Server$', { + '*': [ +# 'dummy-lvm2-devel', + 'dummy-libtool', + ], + }), + ('^Client-optional$', { + '*': [ + 'dummy-httpd', + ], + }), +] + +filter_packages = [ + ('^.*$', { + '*': [ + 'dummy-pacemaker', + ], + }), + ('^Client$', { + '*': [ + 'dummy-httpd', + ], + }), + ('^Server-optional$', { + '*': [ + 'dummy-httpd.i686', + ], + }), + ('^.*-ResilientStorage$', { + '*': [ + 'dummy-glusterfs-resource-agents', + ], + }), +] + + +# format: {arch|*: [packages]} +multilib_blacklist = { + "*": [ + "kernel-devel", + "httpd-devel", + "*", +# "dummy-glibc", + ], +} + +multilib_whitelist = { + "*": [ + "dummy-glibc", + ], +} diff --git a/tests/data/dummy-variants.xml b/tests/data/dummy-variants.xml new file mode 100644 index 0000000..4997403 --- /dev/null +++ b/tests/data/dummy-variants.xml @@ -0,0 +1,70 @@ + + + + + + + x86_64 + + + resilient-storage + + + + + + + x86_64 + + + gluster + + + + + + i386 + x86_64 + + + core + standard + text-internet + firefox + skype + + + minimal + desktop + + + + + + x86_64 + s390x + + + core + standard + text-internet + + + minimal + + + + + + + x86_64 + s390x + + + firefox + + + + + + diff --git a/tests/data/specs/build.sh b/tests/data/specs/build.sh new file mode 100755 index 0000000..80033ac --- /dev/null +++ b/tests/data/specs/build.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +# run this script to (re-)generate ../repo and ../repo-krb5-lookaside directories + +# Requirements: +# * createrepo_c +# * rpmbuild + + +#set -e + + +DIR=$(dirname $(readlink -f $0)) + +rm -rf $DIR/../repo +rm -rf $DIR/../repo-krb5-lookaside + + +for spec in $DIR/*.spec; do + echo "Building $spec..." + for target in i686 x86_64 ppc ppc64 s390 s390x; do + if [ "$(basename $spec)" == "dummy-foo32.spec" ]; then + if [ "$target" == "x86_64" -o "$target" == "ppc64" -o "$target" == "s390x" ]; then + continue + fi + fi + if [ "$(basename $spec)" == "dummy-glibc-2.14-4.spec" ]; then + if [ "$target" == "i686" -o "$target" == "ppc" -o "$target" == "s390" ]; then + continue + fi + fi + if [ "$(basename $spec)" == "dummy-AdobeReader_enu.spec" ]; then + continue + fi + if [ "$(basename $spec)" == "dummy-skype.spec" ]; then + continue + fi + echo "Building ${spec/.spec/} for $target" + rpmbuild --quiet --target=$target -ba --nodeps --define "_srcrpmdir $DIR/../repo/src" --define "_rpmdir $DIR/../repo" $spec + done +done + + +# AdobeReader_enu is nosrc for i486 -> handle this special case separately +spec="$DIR/dummy-AdobeReader_enu.spec" +target="i486" +echo "Building ${spec/.spec/} for $target" +rpmbuild --quiet --target=$target -ba --nodeps --define "_srcrpmdir $DIR/../repo/src" --define "_rpmdir $DIR/../repo" --define "_sourcedir $DIR" $spec + + +# Skype is for i586 -> handle this special case separately +# build only binaries +spec="$DIR/dummy-skype.spec" +target="i586" +echo "Building ${spec/.spec/} for $target" +rpmbuild --quiet --target=$target -bb --nodeps --define "_srcrpmdir $DIR/../repo/src" --define "_rpmdir $DIR/../repo" --define "_sourcedir $DIR/" $spec + + +# create main repo +echo "Creating main repository" +createrepo_c --quiet --update --groupfile $DIR/../dummy-comps.xml $DIR/../repo + + +# create lookaside repo for krb5 +echo "Creating lookaside repository" +mkdir -p $DIR/../repo-krb5-lookaside +cp $(find $DIR/../repo/ -type f -name '*krb5*.rpm') $DIR/../repo-krb5-lookaside +createrepo_c --quiet --update $DIR/../repo-krb5-lookaside + + +echo "DONE: Test data created" diff --git a/tests/data/specs/dummy-AdobeReader_enu-9.5.1.tar.gz b/tests/data/specs/dummy-AdobeReader_enu-9.5.1.tar.gz new file mode 100644 index 0000000..7c22f62 Binary files /dev/null and b/tests/data/specs/dummy-AdobeReader_enu-9.5.1.tar.gz differ diff --git a/tests/data/specs/dummy-AdobeReader_enu.spec b/tests/data/specs/dummy-AdobeReader_enu.spec new file mode 100644 index 0000000..3b8520d --- /dev/null +++ b/tests/data/specs/dummy-AdobeReader_enu.spec @@ -0,0 +1,37 @@ +Name: dummy-AdobeReader_enu +Version: 9.5.1 +Release: 1 +License: LGPLv2 +Summary: A dummy AdobeReader_enu package +Requires: dummy-glibc +Source0: %{name}-%{version}.tar.gz +NoSource: 0 +ExclusiveArch: i486 + +%description +A dummy AdobeReader_enu package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 9.5.1-1 +- First release diff --git a/tests/data/specs/dummy-atlas.spec b/tests/data/specs/dummy-atlas.spec new file mode 100644 index 0000000..adf29ce --- /dev/null +++ b/tests/data/specs/dummy-atlas.spec @@ -0,0 +1,187 @@ +Name: dummy-atlas +Version: 3.8.4 +Release: 7 +License: LGPLv2 +Summary: A dummy atlas package + +%description +A dummy atlas package + +%package devel +Summary: A dummy atlas-devel package +Requires: %{name} = %{version}-%{release} + +%description devel +A dummy atlas-devel package + + +# ---------- + + +%ifarch x86_64 + +%package sse3 +Summary: A dummy atlas-sse3 package +Provides: %{name} = %{version}-%{release} + +%description sse3 +A dummy atlas-sse3 package + +%package sse3-devel +Summary: A dummy atlas-sse3-devel package +Requires: %{name}-sse3 = %{version}-%{release} + +%description sse3-devel +A dummy atlas-sse3-devel package + +%endif + + +# ---------- + + +%ifarch %{ix86} + +%package 3dnow +Summary: A dummy atlas-3dnow package +Provides: %{name} = %{version}-%{release} + +%description 3dnow +A dummy atlas-3dnow package + +%package 3dnow-devel +Summary: A dummy atlas-3dnow-devel package +Requires: %{name}-3dnow = %{version}-%{release} + +%description 3dnow-devel +A dummy atlas-3dnow-devel package + +%package sse +Summary: A dummy atlas-sse package +Provides: %{name} = %{version}-%{release} + +%description sse +A dummy atlas-sse package + +%package sse-devel +Summary: A dummy atlas-sse-devel package +Requires: %{name}-sse = %{version}-%{release} + +%description sse-devel +A dummy atlas-sse-devel package + +%package sse2 +Summary: A dummy atlas-sse2 package +Provides: %{name} = %{version}-%{release} + +%description sse2 +A dummy atlas-sse2 package + +%package sse2-devel +Summary: A dummy atlas-sse2-devel package +Requires: %{name}-sse2 = %{version}-%{release} + +%description sse2-devel +A dummy atlas-sse2-devel package + +%package sse3 +Summary: A dummy atlas-sse3 package +Provides: %{name} = %{version}-%{release} + +%description sse3 +A dummy atlas-sse3 package + +%package sse3-devel +Summary: A dummy atlas-sse3-devel package +Requires: %{name}-sse3 = %{version}-%{release} + +%description sse3-devel +A dummy atlas-sse3-devel package + +%endif + + +# ---------- + + +%ifarch s390 s390x + +%package z196 +Summary: A dummy atlas-z196 package +Provides: %{name} = %{version}-%{release} + +%description z196 +A dummy atlas-z196 package + +%package z196-devel +Summary: A dummy atlas-z196-devel package +Requires: %{name}-z196 = %{version}-%{release} + +%description z196-devel +A dummy atlas-z196-devel package + +%package z10 +Summary: A dummy atlas-z10 package +Provides: %{name} = %{version}-%{release} + +%description z10 +A dummy atlas-z10 package + +%package z10-devel +Summary: A dummy atlas-z10-devel package +Requires: %{name}-z10 = %{version}-%{release} + +%description z10-devel +A dummy atlas-z10-devel package + +%endif + + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files devel + +%ifarch x86_64 +%files sse3 +%files sse3-devel +%endif + +%ifarch %{ix86} +%files 3dnow +%files 3dnow-devel +%files sse +%files sse-devel +%files sse2 +%files sse2-devel +%files sse3 +%files sse3-devel +%endif + +%ifarch s390 s390x +%files z196 +%files z196-devel +%files z10 +%files z10-devel +%endif + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 3.8.4-7 +- First release diff --git a/tests/data/specs/dummy-basesystem.spec b/tests/data/specs/dummy-basesystem.spec new file mode 100644 index 0000000..7494fd6 --- /dev/null +++ b/tests/data/specs/dummy-basesystem.spec @@ -0,0 +1,36 @@ +Name: dummy-basesystem +Version: 10.0 +Release: 6 +License: LGPLv2 +Summary: A dummy basesystem package +Requires: dummy-filesystem + +BuildArch: noarch + +%description +A dummy basesystem package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 10.0-6 +- First release diff --git a/tests/data/specs/dummy-bash-4.2.37-5.spec b/tests/data/specs/dummy-bash-4.2.37-5.spec new file mode 100644 index 0000000..69fa8e4 --- /dev/null +++ b/tests/data/specs/dummy-bash-4.2.37-5.spec @@ -0,0 +1,51 @@ +Name: dummy-bash +Version: 4.2.37 +Release: 5 +License: LGPLv2 +Summary: A dummy bash package +Requires: dummy-glibc + +%description +A dummy bash package + +%package debuginfo +Summary: A dummy bash-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy bash-debuginfo package + + +%package doc +Summary: A dummy bash-doc package +BuildArch: noarch + +%description doc +A dummy bash-doc package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo +%files doc + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 4.2.37-5 +- First release diff --git a/tests/data/specs/dummy-bash.spec b/tests/data/specs/dummy-bash.spec new file mode 100644 index 0000000..bb60f62 --- /dev/null +++ b/tests/data/specs/dummy-bash.spec @@ -0,0 +1,57 @@ +Name: dummy-bash +Version: 4.2.37 +Release: 6 +License: LGPLv2 +Summary: A dummy bash package +Requires: dummy-glibc +%if %__isa_bits == 32 +Requires: libpthread.so.0(GLIBC_2.0) +%else +Requires: libpthread.so.0(GLIBC_2.3)(64bit) +%endif + +%description +A dummy bash package + +%package debuginfo +Summary: A dummy bash-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy bash-debuginfo package + + +%package doc +Summary: A dummy bash-doc package +BuildArch: noarch +Requires: %{name} + +%description doc +A dummy bash-doc package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo +%files doc + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 4.2.37-6 +- First release diff --git a/tests/data/specs/dummy-elinks.spec b/tests/data/specs/dummy-elinks.spec new file mode 100644 index 0000000..689a2d5 --- /dev/null +++ b/tests/data/specs/dummy-elinks.spec @@ -0,0 +1,42 @@ +Name: dummy-elinks +Version: 2.6 +Release: 2 +License: LGPLv2 +Summary: A dummy elinks package +Requires: dummy-glibc + +%description +A dummy elinks package + +%package debuginfo +Summary: A dummy elinks-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy elinks-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 2.6-2 +- First release diff --git a/tests/data/specs/dummy-fcoe-target-utils.spec b/tests/data/specs/dummy-fcoe-target-utils.spec new file mode 100644 index 0000000..d57c422 --- /dev/null +++ b/tests/data/specs/dummy-fcoe-target-utils.spec @@ -0,0 +1,36 @@ +Name: dummy-fcoe-target-utils +Version: 2.0 +Release: 5 +License: LGPLv2 +Summary: A dummy fcoe-target-utils package + +BuildArch: noarch +ExcludeArch: ppc s390 s390x + +%description +A dummy fcoe-target-utils package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 2.0-5 +- First release diff --git a/tests/data/specs/dummy-filesystem.spec b/tests/data/specs/dummy-filesystem.spec new file mode 100644 index 0000000..cff775a --- /dev/null +++ b/tests/data/specs/dummy-filesystem.spec @@ -0,0 +1,34 @@ +Name: dummy-filesystem +Version: 4.2.37 +Release: 6 +License: LGPLv2 +Summary: A dummy filesystem package + + +%description +A dummy filesystem package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 4.2.37-6 +- First release diff --git a/tests/data/specs/dummy-firefox.spec b/tests/data/specs/dummy-firefox.spec new file mode 100644 index 0000000..8c16169 --- /dev/null +++ b/tests/data/specs/dummy-firefox.spec @@ -0,0 +1,44 @@ +Name: dummy-firefox +Version: 16.0.1 +Release: 1 +License: LGPLv2 +Summary: A dummy firefox package +BuildRequires: dummy-krb5-devel +BuildRequires: dummy-xulrunner +Requires: dummy-xulrunner + +%description +A dummy firefox package + +%package debuginfo +Summary: A dummy firefox-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy firefox-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 16.0.1-1 +- First release diff --git a/tests/data/specs/dummy-foo32.spec b/tests/data/specs/dummy-foo32.spec new file mode 100644 index 0000000..76d08d9 --- /dev/null +++ b/tests/data/specs/dummy-foo32.spec @@ -0,0 +1,42 @@ +Name: dummy-foo32 +Version: 1 +Release: 1 +License: LGPLv2 +Summary: A dummy foo32 package +ExclusiveArch: i686 ppc s390 + +%description +A dummy foo32 package + +%package doc +Summary: A dummy foo32-doc package +BuildArch: noarch + +%description doc +A dummy foo32-doc package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files doc + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1-1 +- First release diff --git a/tests/data/specs/dummy-freeipa.spec b/tests/data/specs/dummy-freeipa.spec new file mode 100644 index 0000000..f64d8ca --- /dev/null +++ b/tests/data/specs/dummy-freeipa.spec @@ -0,0 +1,41 @@ +Name: dummy-freeipa +Version: 2.2.0 +Release: 1 +License: LGPLv2 +Summary: A dummy freeipa package + +%description +A dummy freeipa package + +%package server +Summary: A dummy freeipa-server package +Requires: dummy-selinux-policy-base + +%description server +A dummy freeipa-server package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files server + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 2.2.0-1 +- First release diff --git a/tests/data/specs/dummy-gfs2-utils.spec b/tests/data/specs/dummy-gfs2-utils.spec new file mode 100644 index 0000000..9701dfc --- /dev/null +++ b/tests/data/specs/dummy-gfs2-utils.spec @@ -0,0 +1,43 @@ +Name: dummy-gfs2-utils +Version: 3.1.4 +Release: 3 +License: LGPLv2 +Summary: A dummy gfs2-utils package +Requires: dummy-glibc +Requires: dummy-lvm2-devel + +%description +A dummy gfs2-utils package + +%package debuginfo +Summary: A dummy gfs2-utils-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy gfs2-utils-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 3.1.4-3 +- First release diff --git a/tests/data/specs/dummy-glibc.spec b/tests/data/specs/dummy-glibc.spec new file mode 100644 index 0000000..3809b48 --- /dev/null +++ b/tests/data/specs/dummy-glibc.spec @@ -0,0 +1,78 @@ +Name: dummy-glibc +Version: 2.14 +Release: 5 +License: LGPLv2 +Summary: A dummy glibc package +Requires: %{name}-common = %{version}-%{release} +Requires: dummy-basesystem +%if %__isa_bits == 32 +Provides: libc.so.6() +Provides: libpthread.so.0(GLIBC_2.0) +%else +Provides: libc.so.6()(64bit) +Provides: libpthread.so.0(GLIBC_2.3)(64bit) +%endif + +%description +A dummy glibc package + +%package common +Summary: A dummy glibc-common package + +%description common +A dummy glibc-common package + +%package -n dummy-nscd +Summary: A dummy nscd package + +%description -n dummy-nscd +A dummy nscd package + +%package debuginfo +Summary: A dummy glibc-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy glibc-debuginfo package + +%package debuginfo-common +Summary: A dummy glibc-debuginfo-common package +Group: Development/Debug + +%description debuginfo-common +A dummy glibc-debuginfo-common package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%if %__isa_bits == 32 +%ghost /lib/libc.so.6 +%else +%ghost /lib64/libc.so.6 +%endif + +%files common +%files -n dummy-nscd +%files debuginfo +%files debuginfo-common + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 2.14-5 +- First release diff --git a/tests/data/specs/dummy-httpd.spec b/tests/data/specs/dummy-httpd.spec new file mode 100644 index 0000000..e6ca8f0 --- /dev/null +++ b/tests/data/specs/dummy-httpd.spec @@ -0,0 +1,42 @@ +Name: dummy-httpd +Version: 2.2.21 +Release: 1 +License: LGPLv2 +Summary: A dummy httpd package +Requires: dummy-glibc + +%description +A dummy httpd package + +%package debuginfo +Summary: A dummy httpd-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy httpd-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 2.2.21-1 +- First release diff --git a/tests/data/specs/dummy-imsettings.spec b/tests/data/specs/dummy-imsettings.spec new file mode 100644 index 0000000..942b751 --- /dev/null +++ b/tests/data/specs/dummy-imsettings.spec @@ -0,0 +1,50 @@ +Name: dummy-imsettings +Version: 1.2.9 +Release: 1 +License: LGPLv2 +Summary: A dummy imsettings package +Requires: dummy-imsettings-desktop-module = %{version}-%{release} + +%description +A dummy imsettings package + +%package gnome +Summary: A dummy imsettings-gnome package +Provides: dummy-imsettings-desktop-module = %{version}-%{release} + +%description gnome +A dummy imsettings-gnome package + +%package qt +Summary: A dummy imsettings-qt package +Provides: dummy-imsettings-desktop-module = %{version}-%{release} + +%description qt +A dummy imsettings-qt package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files gnome +%files qt + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 5.2-6 +- First release diff --git a/tests/data/specs/dummy-ipw3945-kmod.spec b/tests/data/specs/dummy-ipw3945-kmod.spec new file mode 100644 index 0000000..ce9c3bf --- /dev/null +++ b/tests/data/specs/dummy-ipw3945-kmod.spec @@ -0,0 +1,54 @@ +Name: dummy-ipw3945-kmod +Version: 1.2.0 +Release: 4.20 +License: LGPLv2 +Summary: A dummy ipw3945-kmod package + +%description +A dummy ipw3945-kmod package + +%package -n dummy-kmod-ipw3945 +Summary: A dummy kmod-ipw3945 package + +%description -n dummy-kmod-ipw3945 +A dummy kmod-ipw3945 package + +%package -n dummy-kmod-ipw3945-xen +Summary: A dummy kmod-ipw3945-xen package + +%description -n dummy-kmod-ipw3945-xen +A dummy kmod-ipw3945-xen package + +%package -n dummy-ipw3945-kmod-debuginfo +Summary: A dummy ipw3945-kmod-debuginfo package +Group: Development/Debug + +%description -n dummy-ipw3945-kmod-debuginfo +A dummy ipw3945-kmod-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files -n dummy-kmod-ipw3945 +%files -n dummy-kmod-ipw3945-xen +%files -n dummy-ipw3945-kmod-debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.2.0-4.20 +- First release diff --git a/tests/data/specs/dummy-kernel.spec b/tests/data/specs/dummy-kernel.spec new file mode 100644 index 0000000..e5652cf --- /dev/null +++ b/tests/data/specs/dummy-kernel.spec @@ -0,0 +1,48 @@ +Name: dummy-kernel +Version: 3.1.0 +Release: 1 +License: LGPLv2 +Summary: A dummy kernel package + +%description +A dummy kernel package + +%package headers +Summary: A dummy kernel-headers package + +%description headers +A dummy kernel-headers package + +%package doc +Summary: A dummy kernel-doc package +BuildArch: noarch + +%description doc +A dummy kernel-doc package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files headers +%files doc + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 3.1.0-1 +- First release diff --git a/tests/data/specs/dummy-krb5.spec b/tests/data/specs/dummy-krb5.spec new file mode 100644 index 0000000..ae5c434 --- /dev/null +++ b/tests/data/specs/dummy-krb5.spec @@ -0,0 +1,67 @@ +Name: dummy-krb5 +Version: 1.10 +Release: 5 +License: LGPLv2 +Summary: A dummy krb5 package + +Requires: dummy-glibc +Requires: %{name}-libs = %{version}-%{release} +BuildRequires: dummy-bash + + +%description +A dummy krb5 package + +%package libs +Summary: A dummy krb5-libs package + +%description libs +A dummy krb5-libs package + +%package workstation +Summary: A dummy krb5-workstation package + +%description workstation +A dummy krb5-workstation package + +%package devel +Summary: A dummy krb5-devel package +Requires: %{name} = %{version}-%{release} + +%description devel +A dummy krb5-devel package + +%package debuginfo +Summary: A dummy krb5-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy krb5-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files libs +%files devel +%files workstation +%files debuginfo + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.10-5 +- First release diff --git a/tests/data/specs/dummy-lvm2.spec b/tests/data/specs/dummy-lvm2.spec new file mode 100644 index 0000000..8c8d197 --- /dev/null +++ b/tests/data/specs/dummy-lvm2.spec @@ -0,0 +1,66 @@ +Name: dummy-lvm2 +Version: 2.02.84 +Release: 4 +License: LGPLv2 +Summary: A dummy lvm2 package + +Requires: dummy-glibc +Requires: %{name}-libs = %{version}-%{release} + +%description +A dummy glibc package + +%package libs +Summary: A dummy lvm2-libs package + +%description libs +A dummy lvm2-libs package + +%package cluster +Summary: A dummy lvm2-cluster package +Requires: %{name} = %{version}-%{release} + +%description cluster +A dummy lvm2-cluster package + +%package devel +Summary: A dummy lvm2-devel package +Requires: %{name} = %{version}-%{release} + +%description devel +A dummy lvm2-devel package + +%package debuginfo +Summary: A dummy lvm2-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy lvm2-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files libs +%files cluster +%files devel +%files debuginfo + +%changelog +* Tue Oct 18 2011 Daniel Mach - 2.02.84-4 +- First release diff --git a/tests/data/specs/dummy-postfix.spec b/tests/data/specs/dummy-postfix.spec new file mode 100644 index 0000000..b4027f5 --- /dev/null +++ b/tests/data/specs/dummy-postfix.spec @@ -0,0 +1,45 @@ +Name: dummy-postfix +Version: 2.9.2 +Release: 2 +License: LGPLv2 +Summary: A dummy postfix package +Requires: dummy-glibc +Provides: MTA +Provides: server(smtp) +Provides: smtpdaemon + +%description +A dummy postfix package + +%package debuginfo +Summary: A dummy postfix-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy postfix-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 2.9.2-2 +- First release diff --git a/tests/data/specs/dummy-release-client-workstation.spec b/tests/data/specs/dummy-release-client-workstation.spec new file mode 100644 index 0000000..05e0244 --- /dev/null +++ b/tests/data/specs/dummy-release-client-workstation.spec @@ -0,0 +1,36 @@ +Name: dummy-release-client-workstation +Version: 1.0.0 +Release: 1 +License: LGPLv2 +Summary: A dummy release-client-workstation package +Provides: system-release +Provides: /etc/system-release +Provides: /etc/%{name} + +%description +A dummy release-client-workstation package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.0.0-1 +- First release diff --git a/tests/data/specs/dummy-release-client.spec b/tests/data/specs/dummy-release-client.spec new file mode 100644 index 0000000..bcde54c --- /dev/null +++ b/tests/data/specs/dummy-release-client.spec @@ -0,0 +1,36 @@ +Name: dummy-release-client +Version: 1.0.0 +Release: 1 +License: LGPLv2 +Summary: A dummy release-client package +Provides: system-release +Provides: /etc/system-release +Provides: /etc/%{name} + +%description +A dummy release-client package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.0.0-1 +- First release diff --git a/tests/data/specs/dummy-release-notes-cs-CZ.spec b/tests/data/specs/dummy-release-notes-cs-CZ.spec new file mode 100644 index 0000000..b379fca --- /dev/null +++ b/tests/data/specs/dummy-release-notes-cs-CZ.spec @@ -0,0 +1,38 @@ +Name: dummy-release-notes-cs-CZ +Version: 1.2 +Release: 1 +License: LGPLv2 +Summary: A dummy release-notes-cs-CZ package + +BuildArch: noarch + +%description +A dummy release-notes-cs-CZ package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/usr/share/doc/%{name}/ +touch $RPM_BUILD_ROOT/usr/share/doc/%{name}/index.html + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%doc /usr/share/doc/%{name}/index.html + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.2-1 +- First release diff --git a/tests/data/specs/dummy-release-notes-en-US.spec b/tests/data/specs/dummy-release-notes-en-US.spec new file mode 100644 index 0000000..9aedc34 --- /dev/null +++ b/tests/data/specs/dummy-release-notes-en-US.spec @@ -0,0 +1,38 @@ +Name: dummy-release-notes-en-US +Version: 1.2 +Release: 1 +License: LGPLv2 +Summary: A dummy release-notes-en-US package + +BuildArch: noarch + +%description +A dummy release-notes-en-US package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/usr/share/doc/%{name}/ +touch $RPM_BUILD_ROOT/usr/share/doc/%{name}/index.html + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%doc /usr/share/doc/%{name}/index.html + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.2-1 +- First release diff --git a/tests/data/specs/dummy-release-notes.spec b/tests/data/specs/dummy-release-notes.spec new file mode 100644 index 0000000..ed2f1ab --- /dev/null +++ b/tests/data/specs/dummy-release-notes.spec @@ -0,0 +1,35 @@ +Name: dummy-release-notes +Version: 1.2 +Release: 1 +License: LGPLv2 +Summary: A dummy release-notes package + +BuildArch: noarch + +%description +A dummy release-notes package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.2-1 +- First release diff --git a/tests/data/specs/dummy-release-server.spec b/tests/data/specs/dummy-release-server.spec new file mode 100644 index 0000000..381753c --- /dev/null +++ b/tests/data/specs/dummy-release-server.spec @@ -0,0 +1,41 @@ +Name: dummy-release-server +Version: 1.0.0 +Release: 1 +License: LGPLv2 +Summary: A dummy release-server package +Provides: system-release +Provides: /etc/system-release +Provides: /etc/%{name} + +%description +A dummy release-server package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/usr/share/doc/dummy-relese-server/ +touch $RPM_BUILD_ROOT/usr/share/doc/dummy-relese-server/EULA +touch $RPM_BUILD_ROOT/usr/share/doc/dummy-relese-server/EULA_cs +touch $RPM_BUILD_ROOT/usr/share/doc/dummy-relese-server/EULA_de + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +/usr/share/doc/dummy-relese-server/EULA +/usr/share/doc/dummy-relese-server/EULA_cs +/usr/share/doc/dummy-relese-server/EULA_de + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.0.0-1 +- First release diff --git a/tests/data/specs/dummy-resource-agents.spec b/tests/data/specs/dummy-resource-agents.spec new file mode 100644 index 0000000..cade27e --- /dev/null +++ b/tests/data/specs/dummy-resource-agents.spec @@ -0,0 +1,48 @@ +Name: dummy-resource-agents +Version: 3.9.5 +Release: 8 +License: LGPLv2 +Summary: A dummy resource-agents package + +%description +A dummy resource-agents package + +%package -n dummy-glusterfs-resource-agents +Summary: A dummy glusterfs-resource-agents package +Requires: %{name} = %{version}-%{release} + +%description -n dummy-glusterfs-resource-agents +A dummy glusterfs-resource-agents package + +%package debuginfo +Summary: A dummy resource-agents-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy resource-agents-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%files -n dummy-glusterfs-resource-agents +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 3.9.5-8 +- First release diff --git a/tests/data/specs/dummy-selinux-policy.spec b/tests/data/specs/dummy-selinux-policy.spec new file mode 100644 index 0000000..ec1b7a9 --- /dev/null +++ b/tests/data/specs/dummy-selinux-policy.spec @@ -0,0 +1,68 @@ +Name: dummy-selinux-policy +Version: 3.10.0 +Release: 121 +License: LGPLv2 +Summary: A dummy selinux-policy package +BuildArch: noarch + +%description +A dummy selinux-policy package + +%package targeted +Summary: A dummy selinux-policy-targeted package +Provides: dummy-selinux-policy-base +Requires: %{name} = %{version}-%{release} + +%description targeted +A dummy selinux-policy-targeted package + +%package mls +Summary: A dummy selinux-policy-mls package +Provides: dummy-selinux-policy-base +Requires: %{name} = %{version}-%{release} + +%description mls +A dummy selinux-policy-mls package + +%package minimal +Summary: A dummy selinux-policy-minimal package +Provides: dummy-selinux-policy-base +Requires: %{name} = %{version}-%{release} + +%description minimal +A dummy selinux-policy-minimal package + +%package doc +Summary: A dummy selinux-policy-doc package +Requires: %{name} = %{version}-%{release} + +%description doc +A dummy selinux-policy-doc package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files targeted +%files mls +%files minimal +%files doc + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 3.10.0-121 +- First release diff --git a/tests/data/specs/dummy-sendmail.spec b/tests/data/specs/dummy-sendmail.spec new file mode 100644 index 0000000..f5282cc --- /dev/null +++ b/tests/data/specs/dummy-sendmail.spec @@ -0,0 +1,45 @@ +Name: dummy-sendmail +Version: 8.14.5 +Release: 12 +License: LGPLv2 +Summary: A dummy sendmail package +Requires: dummy-glibc +Provides: MTA +Provides: server(smtp) +Provides: smtpdaemon + +%description +A dummy sendmail package + +%package debuginfo +Summary: A dummy sendmail-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy sendmail-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 8.14.5-12 +- First release diff --git a/tests/data/specs/dummy-skype.spec b/tests/data/specs/dummy-skype.spec new file mode 100644 index 0000000..0ec25d8 --- /dev/null +++ b/tests/data/specs/dummy-skype.spec @@ -0,0 +1,40 @@ +Name: dummy-skype +Version: 4.2.0.13 +Release: 1 +License: LGPLv2 +Summary: A dummy skype package +ExclusiveArch: i586 + +%if %__isa_bits == 32 +Requires: libc.so.6() +%else +Requires: libc.so.6()(64bit) +%endif + +%description +A dummy skype package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 4.2.0.13-1 +- First release diff --git a/tests/data/specs/dummy-tftp.spec b/tests/data/specs/dummy-tftp.spec new file mode 100644 index 0000000..ccf896e --- /dev/null +++ b/tests/data/specs/dummy-tftp.spec @@ -0,0 +1,42 @@ +Name: dummy-tftp +Version: 5.2 +Release: 6 +License: LGPLv2 +Summary: A dummy tftp package +Requires: dummy-glibc + +%description +A dummy tftp package + +%package debuginfo +Summary: A dummy tftp-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy tftp-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 5.2-6 +- First release diff --git a/tests/data/specs/dummy-vacation.spec b/tests/data/specs/dummy-vacation.spec new file mode 100644 index 0000000..c092140 --- /dev/null +++ b/tests/data/specs/dummy-vacation.spec @@ -0,0 +1,43 @@ +Name: dummy-vacation +Version: 1.2.7.1 +Release: 1 +License: LGPLv2 +Summary: A dummy vacation package +Requires: dummy-glibc +Requires: smtpdaemon + +%description +A dummy vacation package + +%package debuginfo +Summary: A dummy vacation-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy vacation-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 1.2.7.1-1 +- First release diff --git a/tests/data/specs/dummy-xulrunner.spec b/tests/data/specs/dummy-xulrunner.spec new file mode 100644 index 0000000..3a7f0fa --- /dev/null +++ b/tests/data/specs/dummy-xulrunner.spec @@ -0,0 +1,42 @@ +Name: dummy-xulrunner +Version: 16.0.1 +Release: 1 +License: LGPLv2 +Summary: A dummy xulrunner package +Requires: dummy-glibc + +%description +A dummy xulrunner package + +%package debuginfo +Summary: A dummy xulrunner-debuginfo package +Group: Development/Debug + +%description debuginfo +A dummy xulrunner-debuginfo package + + +#%prep +#%setup -q + + +%build +echo OK + + +%install +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%files debuginfo + + +%changelog +* Tue Oct 18 2011 Daniel Mach - 16.0.1-1 +- First release diff --git a/tests/dummy-comps.xml b/tests/dummy-comps.xml deleted file mode 100644 index 9bb6595..0000000 --- a/tests/dummy-comps.xml +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - core - Core - Smallest possible installation - true - false - - dummy-bash - - - - - standard - Standard - Common set of utilities that extend the minimal installation. - false - true - - dummy-lvm2 - - - - - text-internet - Text-based Internet - This group includes text-based email, Web, and chat clients. These applications do not require the X Window System. - false - true - - dummy-elinks - dummy-tftp - - - - - firefox - Firefox Web Browser - The Firefox web browser - false - false - - dummy-firefox - dummy-icedtea-web - - - - - skype - Skype - Free internet telephony - false - true - - dummy-skype - - - - - resilient-storage - Resilient Storage - Clustered storage, including the GFS2 filesystem. - false - true - - dummy-gfs2-utils - dummy-lvm2-cluster - dummy-pacemaker - dummy-resource-agents - - - - - gluster - Gluster - GlusterFS support packages - false - true - - dummy-glusterfs-resource-agents - - - - - basic-desktop - Desktop - Basic Desktop packages - true - true - - dummy-imsettings-gnome - - - - - - - minimal - Minimal install - Basic functionality. - 99 - - core - - - - - - - desktop - Desktop - Desktop. - 10 - - core - standard - basic-desktop - - - - - - - empty - Empty - Should not appear in the repos. - 10 - - does-not-exist - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/dummy-pungi.conf b/tests/dummy-pungi.conf deleted file mode 100644 index 09d65f0..0000000 --- a/tests/dummy-pungi.conf +++ /dev/null @@ -1,139 +0,0 @@ -# PRODUCT (RELEASE) INFO -product_name = "Dummy Product" -product_short = "DP" -product_version = "1.0" -product_is_layered = False -product_type = "ga" - - -# GENERAL SETTINGS -bootable = False -comps_file = "dummy-comps.xml" -variants_file = "dummy-variants.xml" -sigkeys = [None] # None = unsigned - -# limit tree architectures -# if undefined, all architectures from variants.xml will be included -atree_arches = ["x86_64"] - -# limit tree variants -# if undefined, all variants from variants.xml will be included -#tree_variants = ["Server"] - -multilib_arches = ["ppc64", "x86_64", "s390x"] -multilib_methods = ["devel", "runtime"] # devel (recommended), all, base, file, kernel, none, runtime - - -# RUNROOT settings -runroot = False -#runroot_channel = "" -#runroot_tag = "" - - -# PKGSET -pkgset_source = "repos" # koji, repos - -# PKGSET - REPOS -# pkgset_repos format: {arch: [repo1_url, repo2_url, ...]} -pkgset_repos = { - "i386": [ - "repo", - ], - "x86_64": [ - "repo", - ], - "s390x": [ - "repo", - ], -} - -# PKGSET - KOJI -#pkgset_koji_path_prefix = "/mnt/koji" -#pkgset_koji_url = "" -#pkgset_koji_tag = "" - - -# GATHER -gather_source = "comps" -gather_method = "deps" -check_deps = False -greedy_method = "build" - -# fomat: [(variant_uid_regex, {arch|*: [repos]})] -# gather_lookaside_repos = [] - -# GATHER - JSON -# format: {variant_uid: {arch: package: [arch1, arch2, None (for any arch)]}} -#gather_source_mapping = "/path/to/mapping.json" - - -# CREATEREPO -# TODO: checksum type - mandatory -createrepo_c = True - - -# BUILDINSTALL - - -# PRODUCTIMG - - -# CREATEISO -create_optional_isos = False -symlink_isos_to = None - - -# fomat: [(variant_uid_regex, {arch|*: [packages]})] -additional_packages = [ - ('^Server$', { - '*': [ -# 'dummy-lvm2-devel', - 'dummy-libtool', - ], - }), - ('^Client-optional$', { - '*': [ - 'dummy-httpd', - ], - }), -] - -filter_packages = [ - ('^.*$', { - '*': [ - 'dummy-pacemaker', - ], - }), - ('^Client$', { - '*': [ - 'dummy-httpd', - ], - }), - ('^Server-optional$', { - '*': [ - 'dummy-httpd.i686', - ], - }), - ('^.*-ResilientStorage$', { - '*': [ - 'dummy-glusterfs-resource-agents', - ], - }), -] - - -# format: {arch|*: [packages]} -multilib_blacklist = { - "*": [ - "kernel-devel", - "httpd-devel", - "*", -# "dummy-glibc", - ], -} - -multilib_whitelist = { - "*": [ - "dummy-glibc", - ], -} diff --git a/tests/dummy-variants.xml b/tests/dummy-variants.xml deleted file mode 100644 index 4997403..0000000 --- a/tests/dummy-variants.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - x86_64 - - - resilient-storage - - - - - - - x86_64 - - - gluster - - - - - - i386 - x86_64 - - - core - standard - text-internet - firefox - skype - - - minimal - desktop - - - - - - x86_64 - s390x - - - core - standard - text-internet - - - minimal - - - - - - - x86_64 - s390x - - - firefox - - - - - - diff --git a/tests/pkgs.json b/tests/pkgs.json deleted file mode 100644 index f093055..0000000 --- a/tests/pkgs.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "archpkgs" : [ - "dummy-AdobeReader_enu", - "dummy-atlas", - "dummy-atlas-3dnow", - "dummy-atlas-3dnow-devel", - "dummy-atlas-devel", - "dummy-atlas-sse", - "dummy-atlas-sse2", - "dummy-atlas-sse2-devel", - "dummy-atlas-sse3", - "dummy-atlas-sse3-devel", - "dummy-atlas-sse-devel", - "dummy-atlas-z10", - "dummy-atlas-z10-devel", - "dummy-atlas-z196", - "dummy-atlas-z196-devel", - "dummy-basesystem", - "dummy-bash", - "dummy-bash-debuginfo", - "dummy-bash-doc", - "dummy-elinks", - "dummy-elinks-debuginfo", - "dummy-fcoe-target-utils", - "dummy-filesystem", - "dummy-firefox", - "dummy-firefox-debuginfo", - "dummy-foo32", - "dummy-foo32-doc", - "dummy-freeipa", - "dummy-freeipa-server", - "dummy-gfs2-utils", - "dummy-gfs2-utils-debuginfo", - "dummy-glibc", - "dummy-glibc-common", - "dummy-glibc-debuginfo", - "dummy-glibc-debuginfo-common", - "dummy-glusterfs-resource-agents", - "dummy-httpd", - "dummy-httpd-debuginfo", - "dummy-imsettings", - "dummy-imsettings-gnome", - "dummy-imsettings-qt", - "dummy-ipw3945-kmod", - "dummy-ipw3945-kmod-debuginfo", - "dummy-kernel", - "dummy-kernel-doc", - "dummy-kernel-headers", - "dummy-kmod-ipw3945", - "dummy-kmod-ipw3945-xen", - "dummy-krb5", - "dummy-krb5-debuginfo", - "dummy-krb5-devel", - "dummy-krb5-libs", - "dummy-krb5-workstation", - "dummy-lvm2", - "dummy-lvm2-cluster", - "dummy-lvm2-debuginfo", - "dummy-lvm2-devel", - "dummy-lvm2-libs", - "dummy-nscd", - "dummy-postfix", - "dummy-postfix-debuginfo", - "dummy-release-client", - "dummy-release-client-workstation", - "dummy-release-notes", - "dummy-release-notes-cs-CZ", - "dummy-release-notes-en-US", - "dummy-release-server", - "dummy-resource-agents", - "dummy-resource-agents-debuginfo", - "dummy-selinux-policy", - "dummy-selinux-policy-doc", - "dummy-selinux-policy-minimal", - "dummy-selinux-policy-mls", - "dummy-selinux-policy-targeted", - "dummy-sendmail", - "dummy-sendmail-debuginfo", - "dummy-skype", - "dummy-tftp", - "dummy-tftp-debuginfo", - "dummy-vacation", - "dummy-vacation-debuginfo", - "dummy-xulrunner", - "dummy-xulrunner-debuginfo" - ], - - "archs" : [ - "i486", - "i586", - "i686", - "ppc", - "ppc64", - "s390", - "s390x", - "x86_64", - "src" - ], - - "noarchpkgs" : [ - "dummy-basesystem", - "dummy-bash-doc", - "dummy-bash-doc", - "dummy-fcoe-target-utils", - "dummy-foo32-doc", - "dummy-kernel-doc", - "dummy-release-notes", - "dummy-release-notes-cs-CZ", - "dummy-release-notes-en-US", - "dummy-selinux-policy-doc", - "dummy-selinux-policy-minimal", - "dummy-selinux-policy-mls", - "dummy-selinux-policy-targeted" - ] - -} diff --git a/tests/run_all_tests.sh b/tests/run_all_tests.sh deleted file mode 100755 index 2adc027..0000000 --- a/tests/run_all_tests.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -# Thin wrapper to run all tests -for t in $(dirname $0)/test_* -do - $t -done diff --git a/tests/test_arch.py b/tests/test_arch.py index b502606..fec405d 100755 --- a/tests/test_arch.py +++ b/tests/test_arch.py @@ -9,10 +9,7 @@ import sys import tempfile import shutil -here = sys.path[0] -if here != '/usr/bin': - # Git checkout - sys.path[0] = os.path.dirname(here) +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) from pungi.arch import * diff --git a/tests/test_compose.sh b/tests/test_compose.sh index 012b2d1..7923be7 100755 --- a/tests/test_compose.sh +++ b/tests/test_compose.sh @@ -1,6 +1,6 @@ #!/bin/sh -export PYTHONPATH=$(pwd)/pmd:$(pwd)/../ +export PYTHONPATH=$(pwd)/../ export PATH=$(pwd)/../bin:$PATH mkdir -p _composes @@ -8,5 +8,5 @@ mkdir -p _composes pungi-koji \ --target-dir=_composes \ --old-composes=_composes \ ---config=dummy-pungi.conf \ +--config=data/dummy-pungi.conf \ --test diff --git a/tests/test_pathmatch.py b/tests/test_pathmatch.py index b2d7954..3013e96 100755 --- a/tests/test_pathmatch.py +++ b/tests/test_pathmatch.py @@ -6,10 +6,7 @@ import unittest import os import sys -here = sys.path[0] -if here != '/usr/bin': - # Git checkout - sys.path[0] = os.path.dirname(here) +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) from pungi.pathmatch import PathMatch, head_tail_split @@ -44,7 +41,7 @@ class TestPathMatch(unittest.TestCase): def test_1(self): self.pm["/*"] = "/star1" - self.assertEqual(self.pm._final_patterns.keys(), ["*"]) + self.assertEqual(list(self.pm._final_patterns.keys()), ["*"]) self.assertEqual(self.pm._values, []) self.assertEqual(self.pm._final_patterns["*"]._values, ["/star1"]) self.assertEqual(sorted(self.pm["/lib"]), ["/star1"]) @@ -60,8 +57,8 @@ class TestPathMatch(unittest.TestCase): def test_2(self): self.pm["/*/*"] = "/star/star1" - self.assertEqual(self.pm._patterns.keys(), ["*"]) - self.assertEqual(self.pm._patterns["*"]._final_patterns.keys(), ["*"]) + self.assertEqual(list(self.pm._patterns.keys()), ["*"]) + self.assertEqual(list(self.pm._patterns["*"]._final_patterns.keys()), ["*"]) self.assertEqual(self.pm._patterns["*"]._final_patterns["*"]._values, ["/star/star1"]) self.assertEqual(sorted(self.pm["/lib/asd"]), ["/star/star1"])