├── .gitignore ├── .gitmodules ├── README.md ├── build-scripts ├── 05-meta-openxt-haskell-platform.layer ├── 07-meta-openxt-ocaml-platform.layer ├── 20-xenclient-oe.layer ├── LICENSE ├── README.md ├── build.sh ├── centos │ ├── build.sh │ ├── install.sh │ └── setup.sh ├── clean.sh ├── debian │ ├── build.sh │ ├── install.sh │ └── setup.sh ├── fetch.sh ├── oe │ ├── build.sh │ └── setup.sh ├── setup.sh └── windows │ ├── build.sh │ ├── setup.sh │ └── xmls │ ├── xml_get_ssh_public_key │ ├── xmlbuild │ └── xmlhello ├── build ├── bb └── conf │ ├── bblayers.conf │ └── local.conf-dist ├── build_helpers.sh ├── do_branch.sh ├── do_build.sh ├── do_installer_iso.sh ├── do_sync_xt.sh ├── example-config ├── github ├── clone_organization.sh ├── commit_to_pull_request.sh ├── list_merges.sh ├── list_open_pull_requests.sh ├── list_repos.sh ├── list_teams.sh ├── pr_merger.sh └── release.sh ├── info_sr.sh ├── manifest ├── merge_src_info.py ├── pkg-xctools ├── README ├── build.sh ├── centos │ ├── xblanker │ └── xenstore-agent ├── control │ ├── control │ ├── postinst │ ├── postrm │ └── prerm ├── copy.sh ├── data │ └── etc │ │ ├── X11 │ │ └── Xsession.d │ │ │ └── 95root_access │ │ └── init.d │ │ ├── xblanker │ │ └── xenstore-agent ├── dkms-2.2.0.3-20.el6.noarch.rpm ├── install.sh ├── udev-rules │ └── 44-v4v.rules ├── utilities.sh └── xc-tools.spec ├── setup_build ├── sign_repo.sh ├── sync-xt ├── common.inc ├── description.inc └── python.inc ├── version ├── version.README └── windows ├── BuildDaemon ├── callit.sh ├── start.ps1 ├── winbuild.cfg ├── winbuildd.bat ├── winbuildd.py ├── xmlhello └── xmlsample ├── BuildSupport ├── checked-copy.psm1 ├── invoke.psm1 ├── winbuild-installer.ps1 ├── winbuild-stage.ps1 └── winbuild-utils.ps1 ├── PackageLibrary.psm1 ├── PerformDownload.psm1 ├── config └── sample-config.xml ├── inspectbuildmachine.ps1 ├── makecert.bat ├── mkbuildmachine.ps1 ├── mkbuildserver.ps1 ├── winbuild-all.ps1 └── winbuild-prepare.ps1 /.gitignore: -------------------------------------------------------------------------------- 1 | build/bitbake.lock 2 | build/conf/local.conf 3 | build/conf/sanity_info 4 | build/local.settings 5 | build/manifest 6 | build/oe 7 | build/oeenv 8 | build/pseudodone 9 | build/cache 10 | build/sstate-cache 11 | build/tmp-glibc 12 | build-output/* 13 | .config 14 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "build/repos/openembedded-core"] 2 | path = build/repos/openembedded-core 3 | url = git://git.openembedded.org/openembedded-core 4 | branch = zeus 5 | [submodule "build/repos/bitbake"] 6 | path = build/repos/bitbake 7 | url = git://git.openembedded.org/bitbake.git 8 | branch = 1.44 9 | [submodule "build/repos/meta-java"] 10 | path = build/repos/meta-java 11 | url = git://git.yoctoproject.org/meta-java 12 | branch = zeus 13 | [submodule "build/repos/meta-openembedded"] 14 | path = build/repos/meta-openembedded 15 | url = git://git.openembedded.org/meta-openembedded 16 | branch = zeus 17 | [submodule "build/repos/meta-selinux"] 18 | path = build/repos/meta-selinux 19 | url = git://git.yoctoproject.org/meta-selinux 20 | branch = zeus 21 | [submodule "build/repos/meta-intel"] 22 | path = build/repos/meta-intel 23 | url = git://git.yoctoproject.org/meta-intel 24 | branch = zeus 25 | [submodule "build/repos/meta-virtualization"] 26 | path = build/repos/meta-virtualization 27 | url = git://git.yoctoproject.org/meta-virtualization 28 | branch = zeus 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | UNMAINTAINED!!! Please use [bordel](https://github.com/OpenXT/bordel) 2 | 3 | This build system only supports stable-9 and earlier. For xenclient-oe.git as 4 | of [the merging of vGlass](https://github.com/OpenXT/xenclient-oe/commit/8522fd8c43d57c33cece73a26b4c7498f3d8a58d), see 5 | [bordel](https://github.com/OpenXT/bordel) 6 | 7 | See [the OpenXT wiki](https://github.com/openxt/openxt/wiki) for more 8 | information. Specifically, see the [How to build OpenXT 9 | page](https://github.com/OpenXT/openxt/wiki/How-to-build-OpenXT). 10 | 11 | 12 | -------------------------------------------------------------------------------- /build-scripts/05-meta-openxt-haskell-platform.layer: -------------------------------------------------------------------------------- 1 | openxt_layer_meta_openxt_haskell_platform_name="meta-openxt-haskell-platform" 2 | 3 | # Specify a URL here to avoid using the mirror 4 | #openxt_layer_meta_openxt_haskell_platform_repository="https://github.com/OpenXT/meta-openxt-haskell-platform.git" 5 | # Specify a revision here to freeze the repository 6 | # If not revision is specified, $BRANCH will be used 7 | #openxt_layer_meta_openxt_haskell_platform_revision="master" 8 | 9 | openxt_layer_meta_openxt_haskell_platform_images=( \ 10 | #Machine Step Format \ 11 | #None 12 | ) 13 | 14 | # We append to openxt_layers, so the list will be sorted 15 | # in priority order (01 is the highest priority) 16 | openxt_layers="${openxt_layers} meta_openxt_haskell_platform" 17 | -------------------------------------------------------------------------------- /build-scripts/07-meta-openxt-ocaml-platform.layer: -------------------------------------------------------------------------------- 1 | openxt_layer_meta_openxt_ocaml_platform_name="meta-openxt-ocaml-platform" 2 | 3 | # Specify a URL here to avoid using the mirror 4 | #openxt_layer_meta_openxt_ocaml_platform_repository="https://github.com/OpenXT/meta-openxt-ocaml-platform.git" 5 | # Specify a revision here to freeze the repository 6 | # If not revision is specified, $BRANCH will be used 7 | #openxt_layer_meta_openxt_ocaml_platform_revision="master" 8 | 9 | openxt_layer_meta_openxt_ocaml_platform_images=( \ 10 | #Machine Step Format \ 11 | #None 12 | ) 13 | 14 | # We append to openxt_layers, so the list will be sorted 15 | # in priority order (01 is the highest priority) 16 | openxt_layers="${openxt_layers} meta_openxt_ocaml_platform" 17 | -------------------------------------------------------------------------------- /build-scripts/20-xenclient-oe.layer: -------------------------------------------------------------------------------- 1 | openxt_layer_xenclient_oe_name="xenclient-oe" 2 | 3 | # Specify a URL here to avoid using the mirror 4 | #openxt_layer_xenclient_oe_repository="https://github.com/OpenXT/xenclient-oe.git" 5 | # Specify a revision here to freeze the repository 6 | # If not revision is specified, $BRANCH will be used 7 | #openxt_layer_xenclient_oe_revision="master" 8 | 9 | openxt_layer_xenclient_oe_images=( \ 10 | #Machine Step Format \ 11 | "xenclient-stubdomain xenclient-stubdomain-initramfs cpio.gz" \ 12 | "xenclient-dom0 xenclient-initramfs cpio.gz" \ 13 | "xenclient-dom0 xenclient-dom0 ext3.gz" \ 14 | "openxt-installer xenclient-installer cpio.gz" \ 15 | "openxt-installer xenclient-installer-part2 tar.bz2" \ 16 | "xenclient-uivm xenclient-uivm ext3.vhd.gz" \ 17 | "xenclient-ndvm xenclient-ndvm ext3.disk.vhd.gz" \ 18 | ) 19 | 20 | # We append to openxt_layers, so the list will be sorted 21 | # in priority order (01 is the highest priority) 22 | openxt_layers="${openxt_layers} xenclient_oe" 23 | -------------------------------------------------------------------------------- /build-scripts/LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | {description} 294 | Copyright (C) {year} {fullname} 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | {signature of Ty Coon}, 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | 341 | -------------------------------------------------------------------------------- /build-scripts/README.md: -------------------------------------------------------------------------------- 1 | # build-scripts 2 | Scripts to setup and run OpenXT builds in containers 3 | 4 | ## How to use 5 | 6 | - Do a fresh Debian install. Recommended configuration: bare-metal 64 bits Jessie 7 | - Login as root 8 | - Install git 9 | - Clone this repository and `cd` to it 10 | - Optional: create /etc/lxc/lxc.conf and set the storage directory using `lxc.lxcpath = ` 11 | - Optional: edit setup.sh to change the Debian mirror 12 | - Run `./setup.sh -u user` to setup a build environment for "user" 13 | - Logout and login as user 14 | - Run ./build.sh 15 | -------------------------------------------------------------------------------- /build-scripts/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | # 3 | # OpenXT build script. 4 | # Software license: see accompanying LICENSE file. 5 | # 6 | # Copyright (c) 2016 Assured Information Security, Inc. 7 | # Copyright (c) 2016 BAE Systems 8 | # 9 | # Contributions by Jean-Edouard Lejosne 10 | # Contributions by Christopher Clark 11 | # 12 | # This program is free software; you can redistribute it and/or modify 13 | # it under the terms of the GNU General Public License as published by 14 | # the Free Software Foundation; either version 2 of the License, or 15 | # (at your option) any later version. 16 | # 17 | # This program is distributed in the hope that it will be useful, 18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | # GNU General Public License for more details. 21 | # 22 | # You should have received a copy of the GNU General Public License 23 | # along with this program; if not, write to the Free Software 24 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 25 | # 26 | # Invocation: 27 | # Takes a build identifier as an optional argument to the script 28 | # to enable rerunning this script to continue an interrupted build 29 | # or run a build with a specified directory name. 30 | 31 | # -- Script configuration settings. 32 | 33 | # The branch to build. Has to be at least OpenXT 6. 34 | # Note: this branch will be used for *everything*. 35 | # The build will fail if one of the OpenXT repositories doesn't have it 36 | # To change just the OE branch, please edit oe/build.sh 37 | BRANCH="master" 38 | 39 | BUILD_ID= 40 | 41 | BUILD_DIR="" 42 | CONTINUE= 43 | 44 | NO_OE= 45 | NO_DEBIAN= 46 | NO_CENTOS= 47 | NO_WINDOWS= 48 | 49 | THREADS= 50 | 51 | # -- End of script configuration settings. 52 | 53 | usage() { 54 | cat >&2 </dev/null 137 | NEW_BUILD=$((LAST_BUILD + 1)) 138 | BUILD_DIR="${BUILD_DATE}-${NEW_BUILD}" 139 | fi 140 | 141 | BUILD_DIR_PATH="${ALL_BUILDS_DIRECTORY}/${BUILD_DIR}" 142 | if [ -e "$BUILD_DIR_PATH" ] ; then 143 | echo "Build path is already present: ${BUILD_DIR_PATH}" 144 | fi 145 | if ! mkdir -p "${BUILD_DIR_PATH}" ; then 146 | echo "Error: Failed to create build directory: ${BUILD_DIR_PATH}" >&2 147 | exit 1 148 | fi 149 | 150 | if [ -z $CONTINUE ] ; then 151 | echo "Fetching git mirrors..." 152 | ./fetch.sh $BRANCH > "${BUILD_DIR_PATH}/git_heads" 153 | echo "Done" 154 | fi 155 | 156 | echo "Running build: ${BUILD_DIR}" 157 | mkdir -p "${BUILD_DIR_PATH}/raw" 158 | 159 | if [ ! -e "${BUILD_DIR_PATH}/build-openxt" ] ; then 160 | echo "Retrieving the branch-specific build data and scripts" 161 | git clone -b "${BRANCH}" \ 162 | "git://${SUBNET_PREFIX}.${IP_C}.1/${BUILD_USER}/openxt.git" \ 163 | "${BUILD_DIR_PATH}/build-openxt" 164 | fi 165 | 166 | source "${BUILD_DIR_PATH}/build-openxt/version" 167 | 168 | build_container() { 169 | NUMBER=$1 # 01 170 | NAME=$2 # oe 171 | 172 | CONTAINER_IP="${SUBNET_PREFIX}.${IP_C}.1${NUMBER}" 173 | 174 | echo "Building container $NUMBER : $NAME" 175 | 176 | # Build 177 | # Note: we cat all the layers and the build script to the ssh command 178 | # Another approach could be to `source *.layer` here and send them to the 179 | # container using the ssh option "SendEnv". 180 | # The way we do it here, the shell will for example turn tabulations into 181 | # completion requests, which is not ideal... 182 | # Note: the build script and layer data is obtained from the branch being built 183 | 184 | cat "${BUILD_DIR_PATH}/build-openxt/build-scripts/"*.layer \ 185 | "${BUILD_DIR_PATH}/build-openxt/build-scripts/$NAME/build.sh" | \ 186 | sed -e "s|\%BUILD_USER\%|${BUILD_USER}|" \ 187 | -e "s|\%BUILD_DIR\%|${BUILD_DIR}|" \ 188 | -e "s|\%SUBNET_PREFIX\%|${SUBNET_PREFIX}|" \ 189 | -e "s|\%IP_C\%|${IP_C}|" \ 190 | -e "s|\%BUILD_ID\%|${BUILD_ID}|" \ 191 | -e "s|\%BRANCH\%|${BRANCH}|" \ 192 | -e "s|\%THREADS\%|${THREADS}|" \ 193 | -e "s|\%ALL_BUILDS_SUBDIR_NAME\%|${ALL_BUILDS_SUBDIR_NAME}|" |\ 194 | ssh -i "${BUILD_USER_HOME}"/ssh-key/openxt \ 195 | -oStrictHostKeyChecking=no ${CONTAINER_USER}@${CONTAINER_IP} 196 | } 197 | 198 | build_windows() { 199 | NUMBER=$1 # 04 200 | 201 | DEST="${ALL_BUILDS_SUBDIR_NAME}/${BUILD_DIR}/windows" 202 | 203 | if [ -d windows ]; then 204 | echo "Building the Windows tools" 205 | else 206 | echo "Skipping the Windows tools" 207 | return 208 | fi 209 | 210 | mkdir -p $DEST 211 | 212 | # Build 213 | cd "${BUILD_DIR_PATH}/build-openxt/build-scripts/windows" 214 | ./build.sh "$NUMBER" \ 215 | "$BUILD_ID" \ 216 | "$BRANCH" \ 217 | "$BUILD_USER" \ 218 | "${SUBNET_PREFIX}.${IP_C}" \ 219 | "${DEST}" 220 | cd - >/dev/null 221 | } 222 | 223 | build_tools_iso() { 224 | WORKDIR="${ALL_BUILDS_DIRECTORY}/${BUILD_DIR}" 225 | BUILD_SCRIPTS="${BUILD_DIR_PATH}/build-openxt/build-scripts" 226 | TOOLS_VERSION=${XC_TOOLS_MAJOR}.${XC_TOOLS_MINOR}.${XC_TOOLS_MICRO}.${BUILD_ID} 227 | 228 | cd $WORKDIR 229 | mkdir -p raw 230 | rm -rf iso_tmp 231 | mkdir -p iso_tmp/linux 232 | if [ -r windows/xctools-iso.zip ]; then 233 | unzip -q windows/xctools-iso.zip -d iso_tmp 234 | fi 235 | if [ -d debian ]; then 236 | ln -s ../../debian iso_tmp/linux/debian 237 | if [ -f ${BUILD_SCRIPTS}/debian/install.sh ]; then 238 | sed "s/%VERSION%/${TOOLS_VERSION}/" ${BUILD_SCRIPTS}/debian/install.sh > iso_tmp/linux/debian_install.sh 239 | fi 240 | fi 241 | if [ -d rpms ]; then 242 | ln -s ../../rpms iso_tmp/linux/rpms 243 | if [ -f ${BUILD_SCRIPTS}/centos/install.sh ]; then 244 | sed "s/%VERSION%/${TOOLS_VERSION}/" ${BUILD_SCRIPTS}/centos/install.sh > iso_tmp/linux/centos_install.sh 245 | fi 246 | fi 247 | echo "Creating xc-tools.iso..." 248 | genisoimage -o "raw/xc-tools.iso" \ 249 | -R \ 250 | -J \ 251 | -joliet-long \ 252 | -input-charset utf8 \ 253 | -V "OpenXT-tools" \ 254 | -f \ 255 | -quiet \ 256 | iso_tmp 257 | echo "Done" 258 | rm -rf iso_tmp 259 | } 260 | 261 | build_repository () { 262 | WORKDIR="${ALL_BUILDS_DIRECTORY}/${BUILD_DIR}" 263 | 264 | local repository="$WORKDIR/repository/packages.main" 265 | 266 | cp -f "${BUILD_DIR_PATH}/build-openxt/manifest" . 267 | 268 | echo "Creating the repository..." 269 | mkdir -p "$repository" 270 | echo -n > "$repository/XC-PACKAGES" 271 | 272 | # Format of the manifest file is 273 | # name format optional/required source_filename dest_path 274 | while read l; do 275 | local name=`echo "$l" | awk '{print $1}'` 276 | local format=`echo "$l" | awk '{print $2}'` 277 | local opt_req=`echo "$l" | awk '{print $3}'` 278 | local src=`echo "$l" | awk '{print $4}'` 279 | local dest=`echo "$l" | awk '{print $5}'` 280 | 281 | if [ ! -e "$WORKDIR/raw/$src" ] ; then 282 | if [ "$opt_req" = "required" ] ; then 283 | echo "Error: Required file $src is missing" 284 | exit 1 285 | fi 286 | 287 | echo "Optional file $src is missing: skipping" 288 | continue 289 | fi 290 | 291 | cp "$WORKDIR/raw/$src" "$repository/$src" 292 | 293 | local filesize=$( du -b $repository/$src | awk '{print $1}' ) 294 | local sha256sum=$( sha256sum $repository/$src | awk '{print $1}' ) 295 | 296 | echo "$name" "$filesize" "$sha256sum" "$format" \ 297 | "$opt_req" "$src" "$dest" >> "${repository}/XC-PACKAGES" 298 | done < manifest 299 | 300 | PACKAGES_SHA256SUM=$(sha256sum "$repository/XC-PACKAGES" | 301 | awk '{print $1}') 302 | 303 | set +o pipefail #fragile part 304 | 305 | # Pad XC-REPOSITORY to 1 MB with blank lines. If this is changed, the 306 | # repository-signing process will also need to change. 307 | { 308 | cat < "$repository/XC-REPOSITORY" 320 | 321 | set -o pipefail #end of fragile part 322 | 323 | openssl smime -sign \ 324 | -aes256 \ 325 | -binary \ 326 | -in "$repository/XC-REPOSITORY" \ 327 | -out "$repository/XC-SIGNATURE" \ 328 | -outform PEM \ 329 | -signer "$BUILD_USER_HOME/certificates/dev-cacert.pem" \ 330 | -inkey "$BUILD_USER_HOME/certificates/dev-cakey.pem" 331 | echo "Done" 332 | } 333 | 334 | build_iso() { 335 | WORKDIR="${ALL_BUILDS_DIRECTORY}/${BUILD_DIR}" 336 | 337 | cd $WORKDIR 338 | mkdir -p iso 339 | rm -rf iso_tmp 340 | mkdir -p iso_tmp/isolinux 341 | cp -rf netboot/* iso_tmp/isolinux/ 342 | cp -rf iso/* iso_tmp/isolinux/ 343 | ln -s ../repository/packages.main iso_tmp/packages.main 344 | # If we already ran build_finalize(), netboot has a copy of rootfs.gz. 345 | # Since netboot/* was just copied into iso_tmp/isolinux, we'd now have it. 346 | if [ ! -e iso_tmp/isolinux/rootfs.gz ]; then 347 | ln -s ../../raw/installer-rootfs.cpio.gz iso_tmp/isolinux/rootfs.gz 348 | fi 349 | sed -i -re "s|[$]OPENXT_VERSION|$VERSION|g" iso_tmp/isolinux/bootmsg.txt 350 | sed -i -re "s|[$]OPENXT_BUILD_ID|$BUILD_ID|g" iso_tmp/isolinux/bootmsg.txt 351 | 352 | EFIBOOTIMG="iso_tmp/isolinux/efiboot.img" 353 | dd if=/dev/zero bs=1M count=5 of=${EFIBOOTIMG} 354 | /sbin/mkfs.fat ${EFIBOOTIMG} 355 | mmd -i ${EFIBOOTIMG} EFI 356 | mmd -i ${EFIBOOTIMG} EFI/BOOT 357 | mcopy -i ${EFIBOOTIMG} raw/grubx64.efi ::EFI/BOOT/BOOTX64.EFI 358 | sync 359 | 360 | echo "Creating installer.iso..." 361 | xorriso -as mkisofs \ 362 | -o "iso/installer.iso" \ 363 | -isohybrid-mbr "raw/isohdpfx.bin" \ 364 | -c "isolinux/boot.cat" \ 365 | -b "isolinux/isolinux.bin" \ 366 | -no-emul-boot \ 367 | -boot-load-size 4 \ 368 | -boot-info-table \ 369 | -eltorito-alt-boot \ 370 | -e "isolinux/efiboot.img" \ 371 | -no-emul-boot \ 372 | -isohybrid-gpt-basdat \ 373 | -r \ 374 | -J \ 375 | -l \ 376 | -V "OpenXT-${VERSION}" \ 377 | -f \ 378 | -quiet \ 379 | "iso_tmp" 380 | echo "Done" 381 | rm -rf iso_tmp 382 | cd - > /dev/null 383 | } 384 | 385 | build_finalize() { 386 | WORKDIR="${ALL_BUILDS_DIRECTORY}/${BUILD_DIR}" 387 | 388 | cd $WORKDIR 389 | 390 | # Build info file (should be safe to remove) 391 | cat > info < /etc/yum.repos.d/OpenXT.repo <> /etc/modules-load.d/openxt.conf 81 | done 82 | 83 | echo "Writing the tools version to xenstore..." 84 | MAJORVERSION=$(echo "${VERSION}" | cut -d. -f1) 85 | MINORVERSION=$(echo "${VERSION}" | cut -d. -f2) 86 | MICROVERSION=$(echo "${VERSION}" | cut -d. -f3) 87 | BUILDVERSION=$(echo "${VERSION}" | cut -d. -f4) 88 | mount -t xenfs none /proc/xen || true 89 | xenstore-exists attr || xenstore-write "attr" "" 90 | xenstore-exists "attr/PVAddons" || xenstore-write "attr/PVAddons" "" 91 | xenstore-write "attr/PVAddons/Installed" "1" 92 | xenstore-write "attr/PVAddons/MajorVersion" "${MAJORVERSION}" 93 | xenstore-write "attr/PVAddons/MinorVersion" "${MINORVERSION}" 94 | xenstore-write "attr/PVAddons/MicroVersion" "${MICROVERSION}" 95 | xenstore-write "attr/PVAddons/BuildVersion" "${BUILDVERSION}" 96 | 97 | echo "Done. Reboot to enable the new kernel modules." 98 | -------------------------------------------------------------------------------- /build-scripts/centos/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright (c) 2016 Assured Information Security, Inc. 3 | # Copyright (c) 2016 BAE Systems 4 | # 5 | # Contributions by Jean-Edouard Lejosne 6 | # Contributions by Christopher Clark 7 | # 8 | # This program is free software; you can redistribute it and/or modify 9 | # it under the terms of the GNU General Public License as published by 10 | # the Free Software Foundation; either version 2 of the License, or 11 | # (at your option) any later version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU General Public License 19 | # along with this program; if not, write to the Free Software 20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 | # 22 | 23 | CONTAINER_USER=%CONTAINER_USER% 24 | 25 | # Remove the root password 26 | passwd -d root 27 | 28 | # Install required packages 29 | # The following line must be done first, 30 | # it will make the next yum command use the correct packages 31 | yum -y install centos-release-xen 32 | yum -y groupinstall "Development tools" 33 | rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 34 | yum -y install rpm-build createrepo which sudo git which wget gcc make kernel-devel tar dkms libaio bc iproute2 net-tools python-devel python-argparse python-pip 35 | 36 | # Setup symlinks to make dkms happy 37 | for kernelpath in `ls -d /usr/src/kernels/*`; do 38 | kernel=`basename $kernelpath` 39 | mkdir -p /lib/modules/virt 40 | [ -e /lib/modules/virt/build ] || ln -s ${kernelpath} /lib/modules/virt/build 41 | [ -e /lib/modules/virt/source ] || ln -s ${kernelpath} /lib/modules/virt/source 42 | done 43 | 44 | # Get rid of a broken lib 45 | if [ -f /usr/lib64/security/pam_systemd.so ]; then 46 | mv /usr/lib64/security/pam_systemd.so /usr/lib64/security/pam_systemd.so.bak 47 | fi 48 | 49 | # Make sudo happy even without a TTY 50 | sed -i 's/^Defaults requiretty$/Defaults !requiretty/' /etc/sudoers 51 | 52 | # Add a build user 53 | adduser ${CONTAINER_USER} 54 | mkdir -p /home/${CONTAINER_USER}/.ssh 55 | ssh-keygen -N "" -t rsa -C ${CONTAINER_USER}@openxt-centos -f /home/${CONTAINER_USER}/.ssh/id_rsa 56 | chown -R ${CONTAINER_USER}:${CONTAINER_USER} /home/${CONTAINER_USER}/.ssh 57 | 58 | # Make the user a passwordless sudoer, as dkms unfortunately needs to run as root 59 | echo "${CONTAINER_USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers 60 | -------------------------------------------------------------------------------- /build-scripts/clean.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | # 3 | # OpenXT build script. 4 | # Software license: see accompanying LICENSE file. 5 | # 6 | # Copyright (c) 2016 Assured Information Security, Inc. 7 | # 8 | # Contributions by Ross Philipson 9 | # 10 | # This program is free software; you can redistribute it and/or modify 11 | # it under the terms of the GNU General Public License as published by 12 | # the Free Software Foundation; either version 2 of the License, or 13 | # (at your option) any later version. 14 | # 15 | # This program is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | # GNU General Public License for more details. 19 | # 20 | # You should have received a copy of the GNU General Public License 21 | # along with this program; if not, write to the Free Software 22 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 | # 24 | # Invocation: 25 | # Used to cleanup a single build or all builds. 26 | # 27 | # N.B. this script starts outside the containers in the OUT OF CONTAINER 28 | # block. It then sets the variables in the IN CONTAINER part and sends 29 | # the modified script to each container to run the IN CONTAINER block. 30 | # Finally back out in the OUT OF CONTAINER block it cleans up the local 31 | # build dirs in xt-builds. 32 | 33 | BDLIST= 34 | 35 | #------------ IN CONTAINER ------------ 36 | 37 | IN_CONTAINER=%IN_CONTAINER% 38 | C_BUILD_DIR=%C_BUILD_DIR% 39 | C_CLEAN_ALL=%C_CLEAN_ALL% 40 | 41 | if [ "$IN_CONTAINER" = "y" ]; then 42 | if [ -n "$C_BUILD_DIR" ]; then 43 | echo "Cleaning up: $C_BUILD_DIR" 44 | rm -rf $C_BUILD_DIR 45 | exit 0 46 | fi 47 | 48 | if [ -z "$C_CLEAN_ALL" ]; then 49 | exit 0 50 | fi 51 | 52 | BDLIST=`ls | grep -e "^[0-9]\{6\}-[0-9]\+$"` 53 | for i in $BDLIST; do 54 | echo "Cleaning up: $i" 55 | rm -rf $i 56 | done 57 | 58 | exit 0 59 | fi 60 | 61 | #------------ OUT OF CONTAINER ------------ 62 | 63 | BUILD_DIR="" 64 | CLEAN_ALL="" 65 | 66 | usage() { 67 | cat >&2 </dev/null 58 | mkdir wheezy 59 | cd wheezy 60 | # Build Wheezy-specific packages here. 61 | cd - >/dev/null 62 | mkdir jessie 63 | cd jessie 64 | # Build Jessie-specific packages here. 65 | cd - >/dev/null 66 | 67 | # Create a repository 68 | mkdir repo 69 | cd repo 70 | mkdir conf 71 | cat > conf/distributions </dev/null 2>&1 && reprepro includedeb wheezy ../wheezy/*.deb 92 | # Add Jessie-specific packages to Wheezy 93 | ls ../jessie/*.deb >/dev/null 2>&1 && reprepro includedeb jessie ../jessie/*.deb 94 | cd - >/dev/null 95 | 96 | # Copy the resulting repository 97 | scp -r repo "${BUILD_USER}@${SUBNET_PREFIX}.${IP_C}.1:${ALL_BUILDS_SUBDIR_NAME}/${BUILD_DIR}/debian" 98 | 99 | # The script may run in an "ssh -t -t" environment, that won't exit on its own 100 | set +e 101 | exit 102 | -------------------------------------------------------------------------------- /build-scripts/debian/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This script installs the Debian tools into Debian-based guests. 3 | # Tested on Debian Wheezy, Debian Jessie and Ubuntu 16.04. 4 | 5 | set -e 6 | 7 | cd `dirname $0` 8 | 9 | VERSION=%VERSION% 10 | DKMS_PACKAGES="openxt-vusb-dkms" 11 | 12 | DEBIAN_NAME=jessie 13 | DEBIAN_VERSION=`cut -d '.' -f 1 /etc/debian_version 2>/dev/null || true` 14 | [ "x$DEBIAN_VERSION" = "x7" ] && DEBIAN_NAME=wheezy 15 | 16 | echo "Removing old tools..." 17 | # Kernel modules 18 | for pkg in `dpkg -l | awk '{print $2}' | grep "^openxt-.*-dkms$\|^v4v-dkms$"`; do 19 | apt-get -y remove --purge $pkg 20 | done 21 | # Others 22 | for pkg in libv4v; do 23 | if [ `dpkg -l | awk '{print $2}' | grep "^${pkg}$"` ]; then 24 | apt-get -y remove $pkg 25 | fi 26 | done 27 | rm -rf /var/opt/openxt 28 | rm -f /etc/apt/sources.list.d/openxt.list 29 | rm -f /etc/modules-load.d/openxt.conf 30 | 31 | echo "Copying the packages to /var/opt..." 32 | mkdir -p /var/opt/openxt 33 | cp -r debian /var/opt/openxt/ 34 | 35 | echo "Writing /etc/apt/sources.list.d/openxt.list" 36 | cat > /etc/apt/sources.list.d/openxt.list <> $mod_file 53 | done 54 | 55 | echo "Writing the tools version to xenstore..." 56 | apt-get -y install xenstore-utils 57 | MAJORVERSION=$(echo "${VERSION}" | cut -d. -f1) 58 | MINORVERSION=$(echo "${VERSION}" | cut -d. -f2) 59 | MICROVERSION=$(echo "${VERSION}" | cut -d. -f3) 60 | BUILDVERSION=$(echo "${VERSION}" | cut -d. -f4) 61 | mount -t xenfs none /proc/xen || true 62 | xenstore-exists attr || xenstore-write "attr" "" 63 | xenstore-exists "attr/PVAddons" || xenstore-write "attr/PVAddons" "" 64 | xenstore-write "attr/PVAddons/Installed" "1" 65 | xenstore-write "attr/PVAddons/MajorVersion" "${MAJORVERSION}" 66 | xenstore-write "attr/PVAddons/MinorVersion" "${MINORVERSION}" 67 | xenstore-write "attr/PVAddons/MicroVersion" "${MICROVERSION}" 68 | xenstore-write "attr/PVAddons/BuildVersion" "${BUILDVERSION}" 69 | 70 | echo "Done. Reboot to enable the new kernel modules." 71 | -------------------------------------------------------------------------------- /build-scripts/debian/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright (c) 2016 Assured Information Security, Inc. 3 | # Copyright (c) 2016 BAE Systems 4 | # 5 | # Contributions by Jean-Edouard Lejosne 6 | # Contributions by Christopher Clark 7 | # 8 | # This program is free software; you can redistribute it and/or modify 9 | # it under the terms of the GNU General Public License as published by 10 | # the Free Software Foundation; either version 2 of the License, or 11 | # (at your option) any later version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU General Public License 19 | # along with this program; if not, write to the Free Software 20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 | # 22 | 23 | MIRROR=%MIRROR% 24 | CONTAINER_USER=%CONTAINER_USER% 25 | 26 | # Remove the root password 27 | passwd -d root 28 | 29 | # Install required packages 30 | PKGS="" 31 | PKGS="$PKGS openssh-server openssl git" 32 | # Debian package building deps 33 | PKGS="$PKGS schroot sbuild reprepro dh-make dkms pkg-config libfile-fcntllock-perl dh-autoreconf" 34 | apt-get update 35 | apt-get -y install $PKGS /dev/null 2>&1 37 | git show-ref -s $BRANCH || echo "BRANCH $BRANCH NOT FOUND" 38 | cd - > /dev/null 39 | done | tee /tmp/git_heads_$BUILD_USER 40 | 41 | # Start the git service if needed 42 | ps -p `cat /tmp/openxt_git.pid 2>/dev/null` >/dev/null 2>&1 || { 43 | rm -f /tmp/openxt_git.pid 44 | git daemon --base-path=${GIT_ROOT_PATH} \ 45 | --pid-file=/tmp/openxt_git.pid \ 46 | --detach \ 47 | --syslog \ 48 | --export-all 49 | chmod 666 /tmp/openxt_git.pid 50 | } 51 | -------------------------------------------------------------------------------- /build-scripts/oe/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Copyright (c) 2016 Assured Information Security, Inc. 3 | # Copyright (c) 2016 BAE Systems 4 | # 5 | # Contributions by Jean-Edouard Lejosne 6 | # Contributions by Christopher Clark 7 | # 8 | # This program is free software; you can redistribute it and/or modify 9 | # it under the terms of the GNU General Public License as published by 10 | # the Free Software Foundation; either version 2 of the License, or 11 | # (at your option) any later version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU General Public License 19 | # along with this program; if not, write to the Free Software 20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 | # 22 | 23 | set -e 24 | 25 | BUILD_USER=%BUILD_USER% 26 | BUILD_DIR=%BUILD_DIR% 27 | IP_C=%IP_C% 28 | BUILD_ID=%BUILD_ID% 29 | BRANCH=%BRANCH% 30 | THREADS=%THREADS% 31 | SUBNET_PREFIX=%SUBNET_PREFIX% 32 | ALL_BUILDS_SUBDIR_NAME=%ALL_BUILDS_SUBDIR_NAME% 33 | 34 | HOST_IP=${SUBNET_PREFIX}.${IP_C}.1 35 | LOCAL_USER=`whoami` 36 | BUILD_PATH=`pwd`/${BUILD_DIR}/openxt/build 37 | RSYNC="rsync -a --copy-links" 38 | 39 | cd ~/certs 40 | CERTS_PATH=`pwd` 41 | cd .. 42 | 43 | setupoe() { 44 | source version 45 | cp build/conf/local.conf-dist build/conf/local.conf 46 | if [ -f common-config ]; then 47 | cat common-config >> build/conf/local.conf 48 | fi 49 | cat >> build/conf/local.conf <