├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── asgen-config-ubuntu.json ├── asgen-config.json ├── build.sh ├── check.py ├── sync └── sync-ubuntu /.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /db 3 | /export 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "apt-mirror"] 2 | path = apt-mirror 3 | url = https://github.com/pop-os/apt-mirror.git 4 | branch = master 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # repo-release 2 | Produces Pop release package repositories 3 | -------------------------------------------------------------------------------- /asgen-config-ubuntu.json: -------------------------------------------------------------------------------- 1 | { 2 | "ProjectName": "Ubuntu", 3 | "ArchiveRoot": "./build/release-ubuntu.partial", 4 | "MediaBaseUrl": "https://apt.pop-os.org/release-ubuntu/media", 5 | "Backend": "debian", 6 | "Features": { 7 | "processDesktop": true 8 | }, 9 | "Suites": { 10 | "jammy": { 11 | "sections": ["main"], 12 | "architectures": ["amd64", "arm64", "i386"] 13 | }, 14 | "noble": { 15 | "sections": ["main"], 16 | "architectures": ["amd64", "arm64", "i386"] 17 | }, 18 | "oracular": { 19 | "sections": ["main"], 20 | "architectures": ["amd64", "arm64", "i386"] 21 | } 22 | }, 23 | "Icons": 24 | { 25 | "64x64": {"cached": true, "remote": false}, 26 | "128x128": {"cached": true, "remote": false} 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /asgen-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "ProjectName": "Pop!_OS", 3 | "ArchiveRoot": "./build/release.partial", 4 | "MediaBaseUrl": "https://apt.pop-os.org/release/media", 5 | "Backend": "debian", 6 | "Features": { 7 | "processDesktop": true 8 | }, 9 | "Suites": { 10 | "impish": { 11 | "sections": ["main"], 12 | "architectures": ["amd64", "arm64", "i386"] 13 | }, 14 | "jammy": { 15 | "sections": ["main"], 16 | "architectures": ["amd64", "arm64", "i386"] 17 | }, 18 | "noble": { 19 | "sections": ["main"], 20 | "architectures": ["amd64", "arm64", "i386"] 21 | } 22 | }, 23 | "Icons": 24 | { 25 | "64x64": {"cached": true, "remote": false}, 26 | "128x128": {"cached": true, "remote": false} 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | shopt -s nullglob 5 | 6 | build="0" 7 | ignore_binary="0" 8 | pull="1" 9 | sync="1" 10 | ubuntu="0" 11 | yes="0" 12 | for arg in "$@" 13 | do 14 | case "$arg" in 15 | "--build") 16 | build="1" 17 | sync="0" 18 | ;; 19 | "--ignore-binary") # Allow package release even if binary failed to build 20 | ignore_binary="1" 21 | ;; 22 | "--ubuntu") 23 | ubuntu="1" 24 | ;; 25 | "--yes") 26 | yes="1" 27 | ;; 28 | *) 29 | echo "unknown argument '$arg'" >&2 30 | echo "$0 [--build] [--ubuntu] [--yes]" >&2 31 | exit 1 32 | ;; 33 | esac 34 | done 35 | 36 | if [ "$ubuntu" = "1" ] 37 | then 38 | # The archive to mirror 39 | ARCHIVE=apt.pop-os.org/staging-ubuntu/master 40 | # Distributions to mirror 41 | DISTS=( 42 | jammy 43 | noble 44 | oracular 45 | ) 46 | # Distributions to keep packages from, even if removed from staging 47 | DISTS_NO_REMOVE=() 48 | # appstream-generator config file 49 | ASGENFILE="asgen-config-ubuntu.json" 50 | # The release directory 51 | RELEASEDIR=release-ubuntu 52 | # The sync file 53 | SYNCFILE=sync-ubuntu 54 | else 55 | # The archive to mirror 56 | ARCHIVE=apt.pop-os.org/staging/master 57 | # Distributions to mirror 58 | DISTS=( 59 | impish 60 | jammy 61 | noble 62 | ) 63 | # Distributions to keep packages from, even if removed from staging 64 | DISTS_NO_REMOVE=( 65 | impish 66 | ) 67 | # appstream-generator config file 68 | ASGENFILE="asgen-config.json" 69 | # The release directory 70 | RELEASEDIR=release 71 | # The sync file 72 | SYNCFILE=sync 73 | fi 74 | 75 | # The components to mirror 76 | COMPONENTS=(main) 77 | # Architectures to mirror 78 | ARCHS=( 79 | amd64 80 | i386 81 | arm64 82 | src 83 | ) 84 | # A mapping of debian architechtures to output folder names 85 | # Any architechtures listed here are required to build before a 86 | # package can be released. 87 | declare -A ARCHS_MAP=( 88 | [amd64]="amd64" 89 | [arm64]="arm64" 90 | [i386]="i386" 91 | [linux-any]="amd64 arm64" 92 | [any]="amd64 arm64 i386" 93 | [all]="amd64 arm64 i386" 94 | ) 95 | 96 | GPG_FLAGS=( 97 | --batch --yes \ 98 | --digest-algo sha512 \ 99 | ) 100 | if [ -n "${DEBEMAIL}" ] 101 | then 102 | GPG_FLAGS+=(--local-user "${DEBEMAIL}") 103 | fi 104 | 105 | function dist_in_no_remove { 106 | local dist 107 | for dist in "${DISTS_NO_REMOVE[@]}" 108 | do 109 | if [ "$dist" = "$1" ] 110 | then 111 | return 0 112 | fi 113 | done 114 | return 1 115 | } 116 | 117 | function repo_pull { 118 | echo -e "\n\e[1mPulling...\e[0m" 119 | 120 | mkdir -p build 121 | 122 | echo "set base_path $(realpath build)" > build/mirror.list 123 | echo "set nthreads 64" >> build/mirror.list 124 | echo "set _autoclean 1" >> build/mirror.list 125 | echo "set run_postmirror 0" >> build/mirror.list 126 | 127 | for dist in "${DISTS[@]}" 128 | do 129 | for arch in "${ARCHS[@]}" 130 | do 131 | echo "deb-${arch} http://${ARCHIVE} ${dist} ${COMPONENTS[@]}" >> build/mirror.list 132 | done 133 | done 134 | 135 | echo "clean $ARCHIVE" >> build/mirror.list 136 | 137 | ./apt-mirror/apt-mirror build/mirror.list 138 | 139 | echo -e "\n\e[1mPull complete\e[0m" 140 | } 141 | 142 | function repo_sync { 143 | echo -e "\n\e[1mSyncing...\e[0m" 144 | 145 | summary=() 146 | total=0 147 | 148 | touch "${SYNCFILE}" 149 | echo "# Automatically generated by build.sh" > "build/${SYNCFILE}" 150 | 151 | for dist in "${DISTS[@]}" 152 | do 153 | dist_summary=() 154 | dist_total=0 155 | 156 | for staging_pool in "build/mirror/${ARCHIVE}/pool/${dist}/"*/* 157 | do 158 | repo="$(basename "$(dirname "${staging_pool}")")" 159 | echo -e "\e[1m$dist: $repo\e[0m" 160 | 161 | #TODO: make sure only one dsc exists 162 | staging_dsc="$(echo "${staging_pool}/"*".dsc")" 163 | if [[ -z $staging_dsc ]]; then 164 | echo -e "\e[1;33m * ${repo} is missing a .dsc file. Packaging is incorrect. ${repo} cannot be released.\e[0m" 165 | continue 166 | fi 167 | #TODO: make sure only one version exists 168 | staging_version="$(grep "^Version: " "${staging_dsc}" | cut -d " " -f 2-)" 169 | staging_commit="$(basename "${staging_pool}")" 170 | echo " - staging: ${staging_version}" 171 | 172 | version="$(grep "^${dist}/${repo}=" "${SYNCFILE}" | cut -d "=" -f 3-)" 173 | commit="$(grep "^${dist}/${repo}=" "${SYNCFILE}" | cut -d "=" -f 2)" 174 | if [ -n "${version}" ] 175 | then 176 | echo " - release: ${version}" 177 | else 178 | echo " - release: None" 179 | fi 180 | 181 | # Test if all architechtures in the debian/control file actually built. Set all_built to false if they havent all built. 182 | all_built=1 183 | declare -a test_archs 184 | builds_for=$(cat build/mirror/${ARCHIVE}/pool/${dist}/${repo}/*/*.dsc | grep "^Arch") 185 | for arch in $builds_for; do 186 | unset test_archs 187 | archs=( "${ARCHS_MAP[$arch]}" ) 188 | for a in "${archs[@]}"; do 189 | test_archs+=($a) 190 | done 191 | 192 | for a in "${test_archs[@]}"; do 193 | if ! grep -qP "Filename: pool/${dist}/${repo}/" "build/mirror/${ARCHIVE}/dists/${dist}/main/binary-${a}/Packages"; then 194 | all_built=0 195 | echo -e "\e[1;33m * ${repo} cannot be released because architecture ${a} in 'debian/control' did not build.\e[0m" 196 | break 197 | fi 198 | done 199 | 200 | if [ $all_built == 0 ]; then 201 | break 202 | fi 203 | done 204 | 205 | # Now ask if we should sync if ( all architechtures built or --ignore-binary flag passed ) and a newer version is available 206 | if [ $((`expr $all_built + $ignore_binary`)) -ge 1 ] && dpkg --compare-versions "${staging_version}" gt "${version}" 207 | then 208 | if [ "$yes" == "1" ] 209 | then 210 | echo " Skipping prompt as --yes was provided" 211 | answer="y" 212 | else 213 | echo -n " Do you want to sync '${staging_version}' to release? (y/N)" 214 | read answer 215 | fi 216 | if [ "${answer}" == "y" ] 217 | then 218 | dist_summary+=( 219 | " - ${repo}" 220 | " - New: \`${staging_version}\`" 221 | ) 222 | if [ -n "${version}" ] 223 | then 224 | dist_summary+=( 225 | " - Old: \`${version}\`" 226 | " - https://github.com/pop-os/${repo}/compare/${commit}...${staging_commit}" 227 | ) 228 | else 229 | dist_summary+=( 230 | " - https://github.com/pop-os/${repo}/commit/${staging_commit}" 231 | ) 232 | fi 233 | total="$(expr "${total}" + 1)" 234 | 235 | echo " Syncing '${staging_version}'" 236 | version="${staging_version}" 237 | commit="${staging_commit}" 238 | else 239 | echo " Not syncing, answer was '${answer}'" 240 | fi 241 | fi 242 | 243 | if [ -n "${version}" ] 244 | then 245 | echo "${dist}/${repo}=${commit}=${version}" >> "build/${SYNCFILE}" 246 | fi 247 | done 248 | 249 | dist_removed=() 250 | while read line 251 | do 252 | repo="$(echo "$line" | cut -d "=" -f 1 | cut -d "/" -f 2-)" 253 | if ! grep "^${dist}/${repo}=" "build/${SYNCFILE}" > /dev/null 254 | then 255 | if dist_in_no_remove ${dist} 256 | then 257 | echo $line >> "build/${SYNCFILE}" 258 | else 259 | dist_removed+=("${repo}") 260 | fi 261 | fi 262 | done < <(grep "^${dist}/" "${SYNCFILE}") 263 | 264 | for repo in "${dist_removed[@]}" 265 | do 266 | echo -e "\e[1m$dist: $repo\e[0m" 267 | echo " - staging: none" 268 | version="$(grep "^${dist}/${repo}=" "${SYNCFILE}" | cut -d "=" -f 3-)" 269 | echo " - release: ${version}" 270 | 271 | if [ "$yes" == "1" ] 272 | then 273 | echo " Skipping prompt as --yes was provided" 274 | answer="y" 275 | else 276 | echo -n " Package removed, do you want to continue? (y/N)" 277 | read answer 278 | fi 279 | if [ "${answer}" != "y" ] 280 | then 281 | echo " Exiting, answer was '${answer}'" 282 | exit 1 283 | fi 284 | 285 | dist_summary+=( 286 | " - ${repo}" 287 | " - Removed \`${version}\`" 288 | ) 289 | total="$(expr "${total}" + 1)" 290 | done 291 | 292 | if [ -n "${dist_summary}" ] 293 | then 294 | summary+=( 295 | "- ${dist}" 296 | "${dist_summary[@]}" 297 | ) 298 | fi 299 | done 300 | 301 | mv -v "build/${SYNCFILE}" "${SYNCFILE}" 302 | 303 | subject="Updated ${total} packages" 304 | if [ "${ubuntu}" = "1" ] 305 | then 306 | subject+=" (Ubuntu)" 307 | fi 308 | echo -e "\e[1m${subject}:\e[0m" 309 | echo "${subject}" > build/message 310 | echo >> build/message 311 | for line in "${summary[@]}" 312 | do 313 | echo "$line" | tee -a build/message 314 | done 315 | 316 | echo -e "\e[1mSync complete, please commit changes:\e[0m" 317 | echo "git commit -F build/message -s "${SYNCFILE}"" 318 | } 319 | 320 | function repo_build { 321 | echo -e "\e[1mBuilding...\e[0m" 322 | 323 | # Remove previous release data 324 | rm -rf "build/${RELEASEDIR}.partial" 325 | 326 | # Create directory for previous repo 327 | mkdir -p "build/${RELEASEDIR}" 328 | 329 | # Create temporary directory for updates 330 | mkdir -p "build/${RELEASEDIR}.partial" 331 | 332 | # Copy according to sync file 333 | cat "${SYNCFILE}" | while read line 334 | do 335 | if [[ "$line" == "#"* ]] 336 | then 337 | continue 338 | fi 339 | 340 | dist="$(echo "$line" | cut -d "=" -f 1 | cut -d "/" -f 1)" 341 | repo="$(echo "$line" | cut -d "=" -f 1 | cut -d "/" -f 2-)" 342 | commit="$(echo "$line" | cut -d "=" -f 2)" 343 | version="$(echo "$line" | cut -d "=" -f 3-)" 344 | 345 | echo -e "\e[1m$repo\e[0m ${dist}" 346 | echo " - sync: ${version}" 347 | 348 | staging="" 349 | staging_pool="build/mirror/${ARCHIVE}/pool/${dist}/${repo}/${commit}" 350 | #TODO: make sure only one dsc exists 351 | staging_dsc="$(echo "${staging_pool}/"*".dsc")" 352 | if [ -n "${staging_dsc}" ] 353 | then 354 | #TODO: make sure only one version exists 355 | staging="$(grep "^Version: " "${staging_dsc}" | cut -d " " -f 2-)" 356 | fi 357 | if [ -n "${staging}" ] 358 | then 359 | echo " - staging: ${staging}" 360 | else 361 | echo " - staging: None" 362 | fi 363 | 364 | release="" 365 | release_pool="build/${RELEASEDIR}/pool/${dist}/${repo}/${commit}" 366 | #TODO: make sure only one dsc exists 367 | release_dsc="$(echo "${release_pool}/"*".dsc")" 368 | if [ -n "${release_dsc}" ] 369 | then 370 | #TODO: make sure only one version exists 371 | release="$(grep "^Version: " "${release_dsc}" | cut -d " " -f 2-)" 372 | fi 373 | if [ -n "${release}" ] 374 | then 375 | echo " - release: ${release}" 376 | else 377 | echo " - release: None" 378 | fi 379 | 380 | partial_pool="build/${RELEASEDIR}.partial/pool/${dist}/${repo}/${commit}" 381 | mkdir -p "$(dirname "${partial_pool}")" 382 | if [ "${staging}" == "${version}" ] 383 | then 384 | echo " Copying '${version}' from staging to release" 385 | cp -a "${staging_pool}" "${partial_pool}" 386 | else 387 | if [ "${release}" == "${version}" ] 388 | then 389 | echo " Keeping '${version}' already in release" 390 | cp -a "${release_pool}" "${partial_pool}" 391 | else 392 | echo " Failed to find '${version}' in staging or release" >&2 393 | exit 1 394 | fi 395 | fi 396 | done 397 | 398 | # Create repo metadata 399 | #TODO: Use DISTS? 400 | pushd "build/${RELEASEDIR}.partial" 401 | for dist_pool in pool/* 402 | do 403 | dist="$(basename "${dist_pool}")" 404 | #TODO: copy version from staging? 405 | case "${dist}" in 406 | "bionic") 407 | dist_version="18.04" 408 | ;; 409 | "focal") 410 | dist_version="20.04" 411 | ;; 412 | "impish") 413 | dist_version="21.10" 414 | ;; 415 | "jammy") 416 | dist_version="22.04" 417 | ;; 418 | "noble") 419 | dist_version="24.04" 420 | ;; 421 | *) 422 | echo "unknown dist '${dist}'" >&2 423 | exit 1 424 | ;; 425 | esac 426 | 427 | dists_dir="dists/${dist}" 428 | mkdir -p "${dists_dir}" 429 | 430 | # TODO: Use COMPONENTS? 431 | comp="main" 432 | comp_dir="${dists_dir}/${comp}" 433 | mkdir -p "${comp_dir}" 434 | 435 | for arch in "${ARCHS[@]}" 436 | do 437 | if [ "${arch}" == "src" ] 438 | then 439 | source_dir="${comp_dir}/source" 440 | mkdir -p "${source_dir}" 441 | 442 | set -x 443 | apt-ftparchive -qq sources "${dist_pool}" > "${source_dir}/Sources" 444 | gzip --keep "${source_dir}/Sources" 445 | set +x 446 | 447 | echo "Archive: ${dist}" > "${source_dir}/Release" 448 | echo "Version: ${dist_version}" >> "${source_dir}/Release" 449 | echo "Component: ${comp}" >> "${source_dir}/Release" 450 | echo "Origin: pop-os-release" >> "${source_dir}/Release" 451 | echo "Label: Pop!_OS Release" >> "${source_dir}/Release" 452 | echo "Architecture: source" >> "${source_dir}/Release" 453 | else 454 | binary_dir="${comp_dir}/binary-${arch}" 455 | mkdir -p "${binary_dir}" 456 | 457 | set -x 458 | apt-ftparchive --arch "${arch}" packages "${dist_pool}" > "${binary_dir}/Packages" 459 | gzip --keep "${binary_dir}/Packages" 460 | set +x 461 | 462 | echo "Archive: ${dist}" > "${binary_dir}/Release" 463 | echo "Version: ${dist_version}" >> "${binary_dir}/Release" 464 | echo "Component: ${comp}" >> "${binary_dir}/Release" 465 | echo "Origin: pop-os-release" >> "${binary_dir}/Release" 466 | echo "Label: Pop!_OS Release" >> "${binary_dir}/Release" 467 | echo "Architecture: ${arch}" >> "${binary_dir}/Release" 468 | fi 469 | done 470 | 471 | pushd ../.. 472 | # Run appstream-generator on only one CPU to prevent crashes 473 | set -x 474 | taskset --cpu-list 0 flatpak run org.freedesktop.appstream.generator --config "${ASGENFILE}" run "${dist}" 475 | set +x 476 | popd 477 | for comp in "${COMPONENTS[@]}" 478 | do 479 | set -x 480 | cp -r "../../export/data/${dist}/${comp}" "${dists_dir}/${comp}/dep11" 481 | gzip -dk "${dists_dir}/${comp}/dep11/"*.gz 482 | # Copy appstream media pool 483 | mkdir -p media 484 | if [ -d "../../export/media/${dist}" ] 485 | then 486 | cp -r "../../export/media/${dist}" "media/${dist}" 487 | fi 488 | set +x 489 | done 490 | 491 | pushd "${dists_dir}" 492 | set -x 493 | apt-ftparchive \ 494 | -o "APT::FTPArchive::Release::Origin=pop-os-release" \ 495 | -o "APT::FTPArchive::Release::Label=Pop!_OS Release" \ 496 | -o "APT::FTPArchive::Release::Suite=${dist}" \ 497 | -o "APT::FTPArchive::Release::Version=${dist_version}" \ 498 | -o "APT::FTPArchive::Release::Codename=${dist}" \ 499 | -o "APT::FTPArchive::Release::Architectures=${ARCHS[*]}" \ 500 | -o "APT::FTPArchive::Release::Components=${comp}" \ 501 | -o "APT::FTPArchive::Release::Description=Pop!_OS Release ${dist} ${dist_version}" \ 502 | release . > "Release" 503 | gpg --clearsign "${GPG_FLAGS[@]}" -o "InRelease" "Release" 504 | gpg -abs "${GPG_FLAGS[@]}" -o "Release.gpg" "Release" 505 | set +x 506 | popd 507 | done 508 | popd 509 | 510 | # Remove previous release dir 511 | rm -rf "build/${RELEASEDIR}" 512 | 513 | # Atomically update build/release 514 | mv -v "build/${RELEASEDIR}.partial" "build/${RELEASEDIR}" 515 | 516 | echo -e "\e[1mBuild complete\e[0m" 517 | } 518 | 519 | if [ "$pull" == "1" ] 520 | then 521 | repo_pull 522 | fi 523 | 524 | if [ "$sync" == "1" ] 525 | then 526 | repo_sync 527 | fi 528 | 529 | if [ "$build" == "1" ] 530 | then 531 | repo_build 532 | fi 533 | -------------------------------------------------------------------------------- /check.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import apt 4 | import os 5 | import re 6 | import repolib 7 | import sys 8 | import tempfile 9 | 10 | POP_ORIGINS = [ 11 | # Origins for Pop!_OS 12 | "pop-os-release", "pop-os-staging-master", 13 | # Origins for PPA 14 | "LP-PPA-system76-dev-stable", "LP-PPA-system76-dev-pre-stable", 15 | ] 16 | SUITE = "jammy" 17 | 18 | def pop_origins(ver): 19 | return (o for o in ver.origins if o.origin in POP_ORIGINS) 20 | 21 | if len(sys.argv) >= 2: 22 | SUITE = sys.argv[1] 23 | 24 | dev = False 25 | if len(sys.argv) >= 3: 26 | if sys.argv[2] == '--dev': 27 | dev = True 28 | 29 | outdated = {} 30 | with tempfile.TemporaryDirectory() as rootdir: 31 | print("\x1B[1msetting up repositories\x1B[0m") 32 | 33 | source_dir = f"{rootdir}/etc/apt/sources.list.d" 34 | os.makedirs(source_dir) 35 | 36 | apt.apt_pkg.config.set("Acquire::AllowInsecureRepositories", "true") 37 | 38 | def add_source(name, source): 39 | with open(f"{source_dir}/{name}.sources", 'w') as f: 40 | print(source.dump()) 41 | f.write(source.dump()) 42 | 43 | ubuntu = repolib.Source() 44 | ubuntu.load_from_data(["deb http://us.archive.ubuntu.com/ubuntu " + SUITE + " main restricted universe multiverse"]) 45 | ubuntu.generate_default_ident() 46 | ubuntu.suites = [SUITE, f"{SUITE}-security", f"{SUITE}-updates", f"{SUITE}-backports"] 47 | add_source("ubuntu", ubuntu) 48 | 49 | pop_release = repolib.Source() 50 | if dev: 51 | pop_release.load_from_data(["deb https://ppa.launchpadcontent.net/system76-dev/stable/ubuntu " + SUITE + " main"]) 52 | else: 53 | pop_release.load_from_data(["deb http://apt.pop-os.org/release " + SUITE + " main"]) 54 | pop_release.generate_default_ident() 55 | add_source("pop-os-release", pop_release) 56 | 57 | pop_staging_master = repolib.Source() 58 | if dev: 59 | pop_staging_master.load_from_data(["deb https://ppa.launchpadcontent.net/system76-dev/pre-stable/ubuntu " + SUITE + " main"]) 60 | else: 61 | pop_staging_master.load_from_data(["deb http://apt.pop-os.org/staging/master " + SUITE + " main"]) 62 | pop_staging_master.generate_default_ident() 63 | add_source("pop-os-staging-master", pop_staging_master) 64 | 65 | print("\x1B[1mupdating cache\x1B[0m") 66 | cache = apt.Cache(rootdir=rootdir, memonly=True) 67 | cache.update() 68 | cache.open() 69 | 70 | print("\x1B[1mchecking binary packages\x1B[0m") 71 | for pkg in cache: 72 | max_ver = max(pkg.versions) 73 | pop_ver = max((v for v in pkg.versions if any(pop_origins(v))), default=None) 74 | if pop_ver is not None and max_ver > pop_ver: 75 | pop_origin = next(pop_origins(pop_ver)) 76 | max_origin = max_ver.origins[0] 77 | print(pkg) 78 | print(f" {pop_origin.origin}:\t{pop_ver.source_name}\t{pop_ver.source_version}") 79 | print(f" {max_origin.origin}:\t{max_ver.source_name}\t{max_ver.source_version}") 80 | if pop_ver.source_name == max_ver.source_name: 81 | outdated[pop_ver.source_name] = max_ver.source_version 82 | 83 | print(f"\x1B[1m{len(outdated)} source package(s) out of date\x1B[0m") 84 | for source_name in sorted(outdated): 85 | print(f" - {source_name}: {outdated[source_name]}") 86 | if len(outdated) > 0: 87 | sys.exit(1) 88 | -------------------------------------------------------------------------------- /sync: -------------------------------------------------------------------------------- 1 | # Automatically generated by build.sh 2 | impish/accountsservice=a006f82ff0f872bb04000f18075845a52ee375a3=0.6.55-0ubuntu14.1pop0~1648743814~21.10~a006f82 3 | impish/alacritty=eb5c342bf5d07663550d3943bb77883bcad26d78=0.10.1-0rc1~1654884304~21.10~eb5c342 4 | impish/amd-ppt-bin=1b805935ce4cf671a06e12252d606632dff130bf=1.0.0~1609862600~21.10~1b80593 5 | impish/appstream-data=41bbf247f13c14b588d15731b6492349619604cd=0.0.3~1622638394~21.10~41bbf24 6 | impish/apt=312e7d7310e07757c59cd7ac0f20d0b416b43026=2.3.12~1637170272~21.10~312e7d7 7 | impish/atom-editor=80a54db949e598bde9b81ff1e8a67af228337283=1.60.0~pop1~1654715872~21.10~80a54db 8 | impish/bcmwl=b1db25566c7cdb43f8a682a8858044deac2b3700=6.30.223.271+bdcom-0ubuntu9pop1~1658439095~21.10~b1db255 9 | impish/buildchain=7876ed5cedbd19c12d8b18f6c9dad7a08d4d07cf=0.4.11~1592862522~21.10~7876ed5 10 | impish/bustd=20acbe9012547f63e19e8bc343610f0dc2e366a5=0.1.0~1637084172~21.10~20acbe9 11 | impish/connectivity=fd4f44d0b33a4968bbaf910893927da9245264b4=1~1526005491~21.10~fd4f44d 12 | impish/cosmic=478a2fd27ad2567547adc6ba385f596446552a58=0.1.0~1647636967~21.10~478a2fd 13 | impish/cosmic-dock=4c62ba46706dce7e9a5cde5840d6864a63f6cf8c=70~ubuntu1pop0~1641401554~21.10~4c62ba4 14 | impish/cosmic-session=d13768607cf80fca2c373ed51f41fb546599cbfc=0.1.0~1658427992~21.10~d137686 15 | impish/cosmic-workspaces=786d7cc01c9509b2087087ea0ebd71fa1aea0538=0.1.0~1648000316~21.10~786d7cc 16 | impish/debconf=d742cfc73ae3222663aa65f587dc1849fb3f1085=1.5.77pop0~1631387232~21.10~d742cfc 17 | impish/default-settings=c9eebd7896c7d07d5aa7c10ecf8af887e3b57e2a=5.1.0~1647298500~21.10~c9eebd7 18 | impish/desktop=ae1aa66a803219597e646068d33a48d7fa2eb4fb=1.6.0~1646923116~21.10~ae1aa66 19 | impish/desktop-icons-ng=b82c87a5bbf8007eb9fb77b8f7a91ec6dc835037=33-1pop0~1645133786~21.10~b82c87a 20 | impish/desktop-widget=323b1e10e3e76a94598c1b359905e95c30d7f9d3=0.2.0~1649720932~21.10~323b1e1 21 | impish/distinst=6118d7e64db5b606418b244a01599bc4e43a4dad=0.3.2~1656516901~21.10~6118d7e 22 | impish/distinst-v2=0cf6b13ec8569a0798cd83347e70a34fedc9ae38=0.1.0~1654884333~21.10~0cf6b13 23 | impish/eddy=11373508626f8b1da9b58862cefa50cea00a97f2=1.1.9~1633362105~21.10~1137350 24 | impish/firmware-manager=f3ecafda6cbc45278165ae71d25cb177930fb418=0.1.2~1655831126~21.10~f3ecafd 25 | impish/flatpak=d349217e729b0c0f22fe1fb0e044b1dc76ce1b4d=1.11.2-1pop1~1627328845~21.10~d349217 26 | impish/fonts=2da23d5e76bf724c49875e8fd328e1fd5a6de80e=1.0.3~1629904758~21.10~2da23d5 27 | impish/fwupd=771b6b5f7b0cff04ee209163464c9c4289eca161=1.7.4-1pop0~1649720082~21.10~771b6b5 28 | impish/fwupd-efi=f30da97fb3eb278f14cb0e0b9eb1d949b5401c0a=1:1.1-4pop0~1643174914~21.10~f30da97 29 | impish/gdm3=cf40258a0e98f26e41d05b71b8d8305a9f30cf45=41~rc-0ubuntu2pop0~1634915133~21.10~cf40258 30 | impish/gnome-control-center=d1a3d1eedec7291b81e2cb968dc93ce61b06a27a=1:40.0-1ubuntu5pop0~1648075396~21.10~d1a3d1e 31 | impish/gnome-disk-utility=6df48f89858c03ef3dbad2bc4e4a9d74af38d64e=41.0-1ubuntu1pop0~1633631178~21.10~6df48f8 32 | impish/gnome-initial-setup=4784cb49864969c377a26830d425c234c24e8340=3.36.1~1646756143~21.10~4784cb4 33 | impish/gnome-online-accounts=5afdb0892949704f0f09196252e7572d89f5136d=3.40.0-1ubuntu1pop0~1632862675~21.10~5afdb08 34 | impish/gnome-settings-daemon=3bcd31b04990ea7807ec72a2f2c22e5895961854=40.0.1-1ubuntu3pop0~1639691325~21.10~3bcd31b 35 | impish/gnome-shell=e117dda2c82be4c01fd0880cc09f4f1a34f23a68=40.5-1ubuntu2pop0~1645636399~21.10~e117dda 36 | impish/gnome-shell-extension-alt-tab-raise-first-window=0c3e1aa2a8b6486e6bd3100f8dfde17354ba7eb5=0.1.1~1554907039~21.10~0c3e1aa 37 | impish/gnome-shell-extension-always-show-workspaces=f3954d74b1a1f4f13b076c37f022f17408b4da35=0.1.1~1587581300~21.10~f3954d7 38 | impish/gnome-shell-extension-do-not-disturb=4fc03cc05bcc67dd18cb891f8a08c5c57d3f0b61=1.0.0~1580510234~21.10~4fc03cc 39 | impish/gnome-shell-extension-pop-battery-icon-fix=741eaace25a99d9fc2545942a9c88ff8b360a85c=0.1.0~1587507612~21.10~741eaac 40 | impish/gnome-shell-extension-pop-shop-details=11349f63151bb99a8bee339e21a94a257f845ecc=0.1.0~1587579004~21.10~11349f6 41 | impish/gnome-shell-extension-pop-suspend-button=858506078b8bae0fcf507dc94e9ec1a3f1c36bc1=1.0.4~1579278356~21.10~8585060 42 | impish/gnome-shell-extension-system76-power=1f055fc38d7de3e3229a26aafe16fb0b0c5d2fac=2.0.5~1655914350~21.10~1f055fc 43 | impish/gnome-terminal=ea9291993b2d4db6d622f8d20423af49f06719a7=3.38.1-1ubuntu2pop0~1633631287~21.10~ea92919 44 | impish/granite=657345a73a39d4f018ef285300c708cfb53b5f25=6.0.0pop0~1646751002~21.10~657345a 45 | impish/grub-theme=2ed83491e9f463136978c73ec47a91dacc1ce2d5=2.0.0~1582050224~21.10~2ed8349 46 | impish/gtk-theme=d3e2898d0d748800a1e4cc3bf8fa401d68dcec37=5.4.5~1645564624~21.10~d3e2898 47 | impish/happiness=977f0b2bd7f910d92497042559b1212126d32f22=1.0-1~1654884291~21.10~977f0b2 48 | impish/hidpi-daemon=8f165bba70c7badf2a3f81bca32c854a1ffcb213=18.04.6~1616430980~21.10~8f165bb 49 | impish/hidpi-widget=a66eb848b2c541ed3d916a1379f0bec5bf754d2d=0.1.1~1643345917~21.10~a66eb84 50 | impish/icon-theme=b6b5d437ec7d62cb10ce09c61714486922124b8f=3.2.0~1657744328~21.10~b6b5d43 51 | impish/installer=01766f99abc646e622fe65498d38590bc12fe221=0.0.1~1653414814~21.10~01766f9 52 | impish/just=570d690e12d803f7b29b24f3004d6e5bf749b3d7=1.1.2-1pop1~1649955469~21.10~570d690 53 | impish/kernelstub=bdefe03cbcb10be13ab850c430466297490814ad=3.1.4~1657319181~21.10~bdefe03 54 | impish/keyboard-configurator=29da524573b8e9c876c0e0d6ccfe37fda1ae9b05=1.2.0~1656356392~21.10~29da524 55 | impish/keyring=356a75e405d00a23889998d2e8f2508a9e67b535=1.0.0~1641313934~21.10~356a75e 56 | impish/launcher=653ed8297cb9e3bc3b6bd7562f6cb6428d8e3c4a=1.2.1~1657146950~21.10~653ed82 57 | impish/libabigail=8bcd9d908f971a1a6b41a3bd75b680866a0bd6f1=2.0-1pop0~1646087720~21.10~8bcd9d9 58 | impish/libdrm=166056ac722c6b794b0c9f42ffbfee941d00778a=2.4.110-1pop0~1648761328~21.10~166056a 59 | impish/libnvidia-container=76ed4b48fd5d8753b4f027ac19c872dbecd08160=1.8.0-1~1644255740~21.10~76ed4b4 60 | impish/linux=7d5e891c339a0deee7dd673fd557edcd5579441d=5.18.10-76051810.202207071639~1657252310~21.10~7d5e891 61 | impish/linux-firmware=009c040444dd0012f0c9ce66812757e66cf41b9c=20220329.git681281e4-0ubuntu3.2+system76~1654629645~21.10~009c040 62 | impish/lutris=d2815a2219d2350fb83a3ca4263844ce68a8912d=0.5.10.1~1655489690~21.10~d2815a2 63 | impish/mesa=e69556a41431a4a0b7bf9f8ea1d73cf74610c47b=21.3.5-1ubuntu1pop0~1646323003~21.10~e69556a 64 | impish/meta-python=6895a24f800ab94377f36b4b9eb1793a78a83145=2.7.17-2pop1~1580508288~21.10~6895a24 65 | impish/mozc=2cb984206b3836db8772b00c42a80143628a8685=2.26.4220.100+dfsg-4.1ubuntu0.1pop0~1635283403~21.10~2cb9842 66 | impish/mutter=854fcec778f9bced4372869300f099012d21faa0=40.5-1ubuntu3~21.10.1pop0~1637764129~21.10~854fcec 67 | impish/ninja-build=fe200e889c7c43912f97244a1b0a99d608e0749f=1.10.1-1pop0~1630348646~21.10~fe200e8 68 | impish/nvidia-container-runtime=2880fc651ed700824effa92de7837851b32fd2c4=3.4.0-1pop1~1601325114~21.10~2880fc6 69 | impish/nvidia-container-toolkit=60691e52103c1e75338e4dd0ae76e1cae2b48369=1.8.0-1pop1~1644260705~21.10~60691e5 70 | impish/nvidia-docker=c7639fed8546dc5247508c23e5503ddea24bfee5=2.9.0-1~1644261147~21.10~c7639fe 71 | impish/nvidia-graphics-drivers-470=c52ca605aae76cf0d0da95a0fb59c2175f2688b2=470.129.06-1pop0~1656630197~21.10~c52ca60 72 | impish/nvidia-graphics-drivers=e863eed202fd74d73189c03b8b6765c07c66c5e6=515.48.07-1pop0~1657640780~21.10~e863eed 73 | impish/nvidia-vaapi-driver=aff8a7b370a6b4952509eeadd457f93839845ea4=0.0.5pop1~1651608169~21.10~aff8a7b 74 | impish/packaging-rust=cb3704ccf2d842920bd34d18d47a81048fd91606=1.62.0~1657121626~21.10~cb3704c 75 | impish/plymouth=23915e9d9d22e3dbf589cae1655f2a8803c7cb55=0.9.5git20210406-0ubuntu2pop0~1646146081~21.10~23915e9 76 | impish/plymouth-theme=8cd4acc4bb96e0b6a3855dfe843383466398cbf8=2.0.2~1646089097~21.10~8cd4acc 77 | impish/popsicle=e208056a14e5963e8bca992460448ebfd870455d=1.3.0~1655930584~21.10~e208056 78 | impish/protonvpn-nm-lib=2bf2bab2d656d734f9c098e9c35893f98c4b2991=3.5.0-1~1636034204~21.10~2bf2bab 79 | impish/python-apt=5dbe6cf305ad1261ecc03da919bdb5f4600e8b89=2.2.1pop0~1628521831~21.10~5dbe6cf 80 | impish/repolib=ed00e4452721a3d3ae25ddbb261dcf074c0fcc1f=1.5.2~1651755991~21.10~ed00e44 81 | impish/repoman=6a295953db3a446634a5121586bd38b9c07332ed=2.2.0~1658189208~21.10~6a29595 82 | impish/session=52ccc11ad00433faa028063f670595fc130e5135=5.0.0~1635367371~21.10~52ccc11 83 | impish/sessioninstaller=c50c1a00ff22b3b82ac3064331171deb3d822252=0.20+pop0~1646352199~21.10~c50c1a0 84 | impish/shell=aa8f35d1903d6c4a73482605811ad52c312ca3e2=1.1.0~1651771371~21.10~aa8f35d 85 | impish/shell-shortcuts=52cc83fb0b0e77c1ffa8de9f0c22dc372f32bb02=0.1.0~1633121872~21.10~52cc83f 86 | impish/shop=521a66744d93d0fdeba2c2982334296b4e1d4aad=3.4.2pop0~1658166282~21.10~521a667 87 | impish/steam=6d77918e8c6a79d85b1cd8d3b05443ed9c1e1b57=1:1.0.0.74-1pop1~1644936575~21.10~6d77918 88 | impish/support-panel=6578613709cb069bb6c8eef2265e58c0e0017797=1.0.0~1658251269~21.10~6578613 89 | impish/system76-acpi-dkms=04145b8cb19c0de2186663f4f556c425211d2da8=1.0.2~1640122755~21.10~04145b8 90 | impish/system76-dkms=78ede46c30f3bdb38d6acec5bc3fe982703ade17=1.0.14~1643391291~21.10~78ede46 91 | impish/system76-driver=7b26eb37e358196cb9fc9963aa358b950c9614bb=20.04.59~1657202656~21.10~7b26eb3 92 | impish/system76-firmware=12dc13d1f239400ac8fb973b1d9ff7cd8879b92d=1.0.41~1655913916~21.10~12dc13d 93 | impish/system76-io-dkms=0217576dd5a14d68c8c9e7253f198ffbf735e283=1.0.2~1655490480~21.10~0217576 94 | impish/system76-oled=805ebb179bfef4e46a895bc165fee1770f8c555e=0.1.4~1588092956~21.10~805ebb1 95 | impish/system76-power=464b4c9c50f5f18da2883b02f5e6c0114ea12477=1.1.22~1657735520~21.10~464b4c9 96 | impish/system76-scheduler=25a45add4300eab47ceb332b4ec07e1e74e4baaf=1.2.1~1654884485~21.10~25a45ad 97 | impish/system76-wallpapers=52abc1e8996891210beb66ae75796f5986bfea82=18.04.2~1611351210~21.10~52abc1e 98 | impish/systemd=9a0cd5e391ef8268f7b63f35b2f495dd06c15fe4=248.3-1ubuntu8.6~1650893010~21.10~9a0cd5e 99 | impish/system-updater=6f0d9039c492b9e40b48abfdfc0361017dc12a71=0.1.0~1657035226~21.10~6f0d903 100 | impish/tensorman=8a3ec0f9e80efdd270a370b4c585d9e4a4abd4fa=0.1.0~1642171860~21.10~8a3ec0f 101 | impish/theme=ed52981c8ca3151ae6fafd63d3f97b803df385c9=1.0.4~1571245319~21.10~ed52981 102 | impish/theme-switcher=abd8796325946a2048f2a3bc17d849b376b282b1=0.1.1~1636044688~21.10~abd8796 103 | impish/touchegg=5ada06f12992e76612b461facd6a7fbf250e4673=2.0.12pop0~1647457074~21.10~5ada06f 104 | impish/transition=617772e2f772b47291801fb7d5c1d5209ce7deb3=1.1.2~1642814356~21.10~617772e 105 | impish/ubuntu-drivers-common=351bf6430338d61e6f3f123b71a5a8de4a7c9ba2=1:0.9.2.3pop0~1652303049~21.10~351bf64 106 | impish/upgrade=036e99b506acc6788212b06e9a5feeb87bdc15b0=1.0.0~1657305150~21.10~036e99b 107 | impish/virtualbox=4973ccb23ab979e2a66f1ef57cdc33e4539f39b4=6.1.34-dfsg-3pop0~1654702948~21.10~4973ccb 108 | impish/wallpapers=03a25a14a76eaf3825b980ab50aad6698c1c5a35=1.0.5~1629131386~21.10~03a25a1 109 | impish/zfs-linux=295632dd6b0e2d7606892d6a7bddbd82d04c7858=2.1.5-1pop0~1655993042~21.10~295632d 110 | jammy/accountsservice=31bc419506fc2e9b620e9e64caf280952af064a5=22.07.5-2ubuntu1.5pop0~1727958756~22.04~31bc419 111 | jammy/adw-gtk3=213b5edad14afcf35b1c1c0bda41c6865dcc38b4=5.3.0-0pop1~1710896694~22.04~213b5ed 112 | jammy/alacritty=365df06f7cc7b45b5f4f6e290a62a438ad3a0fef=0.12.2~1703085360~22.04~365df06 113 | jammy/alsa-ucm-conf=16ff97137d580629d4f25926b96bf47f58eba3b4=1.2.8-1pop1~1709769747~22.04~16ff971 114 | jammy/alsa-utils=a0d6eedcdba762282d4b60815d6b0c3e02981164=1.2.8-1pop1~1676755497~22.04~a0d6eed 115 | jammy/amd64-microcode=af10f1706acf6739abf6b350b7a66d8109c98738=3.20230808.1.1pop1~1691680164~22.04~af10f17 116 | jammy/amd-ppt-bin=1b805935ce4cf671a06e12252d606632dff130bf=1.0.0~1609862600~22.04~1b80593 117 | jammy/analytics-panel=f1b9258bf23f0f124a5e5ed244c12c2057282424=1.0.0~1666427221~22.04~f1b9258 118 | jammy/appstream-data=23d51d32ecf7c83fe5b304fcebf8643c2bb2effc=0.0.3~1727715771~22.04~23d51d3 119 | jammy/appstream=e648e855d220a52fb6f2f802b444a42e68639003=0.15.2-2pop1~1686239344~22.04~e648e85 120 | jammy/bcmwl=1deffde46aad277b71233336658e98f9be4e2489=6.30.223.271-26pop1~1743156713~22.04~1deffde 121 | jammy/buildchain=b7438e4ed15334f9e0d4369964659404e6adb72f=0.5.3~1741614618~22.04~b7438e4 122 | jammy/bustd=20acbe9012547f63e19e8bc343610f0dc2e366a5=0.1.0~1637084172~22.04~20acbe9 123 | jammy/cog-stable-diffusion=b64f38ef34b38a8243912c69c328c455e8bd08be=0.1.0~1663936317~22.04~b64f38e 124 | jammy/connectivity=fd4f44d0b33a4968bbaf910893927da9245264b4=1~1526005491~22.04~fd4f44d 125 | jammy/cosmic=99394b95b8f0f6293f846f30a5697b7234e5882b=0.1.0~1744128416~22.04~99394b9 126 | jammy/cosmic-applets=f53e3bd90ebba572d17d6a4a4e74410666271119=0.1.0~1741529755~22.04~f53e3bd 127 | jammy/cosmic-applibrary=6be6973498ecb0f53802d0354ef7ad8f942a0133=0.1.0~1748353899~22.04~6be6973 128 | jammy/cosmic-bg=1da843a63656cf58b373a4823c15326be448b24e=0.1.0~1746111618~22.04~1da843a 129 | jammy/cosmic-comp=1d00a51ca9ec3ccee83b1aa2a776f054a729d1d0=0.1~1737632446~22.04~1d00a51 130 | jammy/cosmic-design-demo=d58cfad46f2982982494fce27fb00ad834dc8992=0.1.0~1704748391~22.04~d58cfad 131 | jammy/cosmic-dock=6700449db452eea5b2bfa70b3b1f939a45e726c2=72~ubuntu2pop0~1664903880~22.04~6700449 132 | jammy/cosmic-edit=d4294713d8fc5c44ed7c9b1957aa6db7ee16a4d4=0.1.0~1744899122~22.04~d429471 133 | jammy/cosmic-files=1a5a4501ee501b3155295cbfccc1c992b5ec9c01=0.1.0~1747779174~22.04~1a5a450 134 | jammy/cosmic-greeter=b38bcd296a3dfc3cc154e8154ad2824313a67280=0.1.0~1747340288~22.04~b38bcd2 135 | jammy/cosmic-icons=0b2aed444daa52c65effbb8e71a8a19b0f2e4cb9=0.1.0~1742575985~22.04~0b2aed4 136 | jammy/cosmic-idle=267bb837f127eb805a17250ebcad02db57eb72cb=0.1.0~1740507204~22.04~267bb83 137 | jammy/cosmic-initial-setup=d870a429e9693b60e2bdd910d61c0b8648d97af0=0.1.0~1738620125~22.04~d870a42 138 | jammy/cosmic-launcher=bbce292ab7b700abbdaab7cdd6d3ac20a97d6d35=0.1.0~1747415524~22.04~bbce292 139 | jammy/cosmic-notifications=e40714785af13b47c9eda0f05e42e1e9f57e1a3d=0.1.0~1748011690~22.04~e407147 140 | jammy/cosmic-osd=8f3477873ab1efbbbbcf221640999d4d757f6cda=0.1.0~1746203295~22.04~8f34778 141 | jammy/cosmic-osk=127971318b97bf5f96964b6358b0525703930508=0.1.0~1747865918~22.04~1279713 142 | jammy/cosmic-panel=5c48d7f297f737b531fa64c286aa2a120b32cd4c=0.1.0~1748625844~22.04~5c48d7f 143 | jammy/cosmic-player=fadecd0068a3818b6b2072ddc0096d0b8b2293ca=0.1.0~1747665379~22.04~fadecd0 144 | jammy/cosmic-randr=c32d0d6bfd1dc7a268642d2276db74c15c285ebb=0.1.0~1744718623~22.04~c32d0d6 145 | jammy/cosmic-screenshot=f7d066971061b530cdff56281351af0feee72a59=0.1.0~1746203330~22.04~f7d0669 146 | jammy/cosmic-session=dd4fa3daea558dd5d95a7ffce5178b9e1faeaeef=0.1.0~1748912425~22.04~dd4fa3d 147 | jammy/cosmic-settings=7cf3f68bd41d07aabbff45ae2d8da8b7d9f1e301=0.1.0~1741529292~22.04~7cf3f68 148 | jammy/cosmic-settings-daemon=eb886de5527f9b5d2f225708d63d9d36fbb63a64=0.1.0~1748400860~22.04~eb886de 149 | jammy/cosmic-store=c5ef69f48c40b4cf02cd4183863103d0fd315314=0.1.0~1747403496~22.04~c5ef69f 150 | jammy/cosmic-term=4a5ee839f4218e4bd8f676fd68746fa147f0329a=0.1.0~1747059088~22.04~4a5ee83 151 | jammy/cosmic-wallpapers=189c2c63d31da84ebb161acfd21a503f98a1b4c7=1.0.0~1744123997~22.04~189c2c6 152 | jammy/cosmic-workspaces=6d90fb4f453b5ad68ba94fdf534d66085a7e4f52=0.1.0~1716422595~22.04~6d90fb4 153 | jammy/cosmic-workspaces-epoch=6b6bf454dbe4bc38176d1184ba2e323f8a3ad56f=0.1.0~1741415076~22.04~6b6bf45 154 | jammy/default-settings=ef5c68172eff7a39b49e4741fedd8d9d5d6016e4=5.1.0~1748372736~22.04~ef5c681 155 | jammy/desktop=4746943d800519e3c37942b58c46b191f97732e4=2.0.0~1722298299~22.04~4746943 156 | jammy/desktop-widget=85ff0db59155896ea47e53613789d7ad0e369498=0.2.0~1741988687~22.04~85ff0db 157 | jammy/distinst=d34fd000aabbdae37fc122f6224470e69b817f36=0.3.2~1748042323~22.04~d34fd00 158 | jammy/distinst-v2=e95fdb9b3552d06e9cf707716831a53471756738=0.1.0~1711504823~22.04~e95fdb9 159 | jammy/eddy=628bf0a67bf9ecc507a27c2097bd2863f4546353=1.1.9~1649275305~22.04~628bf0a 160 | jammy/egl-wayland=ab32ce2a55db918604dd6a23d61c1646e878fea6=1:1.1.16-1pop1~1725624760~22.04~ab32ce2 161 | jammy/firmware-manager=1cf254b57bbdd8fd3e0727b4eef1620bdb305bde=0.1.2~1736375004~22.04~1cf254b 162 | jammy/flatpak=1a1043ab118dce8de087cbafde122bd6e62ee193=1.14.6-1~1713976503~22.04~1a1043a 163 | jammy/fonts=2da23d5e76bf724c49875e8fd328e1fd5a6de80e=1.0.3~1629904758~22.04~2da23d5 164 | jammy/fwts=b46daf7235268703dcc49fb50dc441fab5b19bd8=25.01.00-0ubuntu1pop1~1738076555~22.04~b46daf7 165 | jammy/fwupd=44c2221365217787d308b1522fd72a998c11f015=1.9.5-1pop0~1695754564~22.04~44c2221 166 | jammy/fwupd-efi=abf83a608ebfe66ff29f8e48935b0cd042e07b24=1:1.4-1pop0~1728056142~22.04~abf83a6 167 | jammy/gdm3=6fe7e4043f4426ea4855fef672693514ec46aab7=42.0-1ubuntu7.22.04.4pop0~1727959198~22.04~6fe7e40 168 | jammy/gnome-control-center=168857aeef9b3526ed120404c7eca59cedb7cff6=1:41.7-0ubuntu0.22.04.9pop0~1729817737~22.04~168857a 169 | jammy/gnome-disk-utility=6ad316f35e3dc3150f5edb1708d313df5dc72e12=42.0-1ubuntu1pop0~1649101396~22.04~6ad316f 170 | jammy/gnome-initial-setup=661f5a810d1b3906a1d970305e990bebffbddca1=3.36.1~1650463051~22.04~661f5a8 171 | jammy/gnome-online-accounts=5d98aa01759d92c890b596637c870150ddd6f171=3.44.0-1ubuntu1pop1~1677167546~22.04~5d98aa0 172 | jammy/gnome-settings-daemon=3fb6384a5c39add155561fd7b9df18ddf12ba33a=42.1-1ubuntu3pop0~1661536383~22.04~3fb6384 173 | jammy/gnome-shell=af56e4e12de89f3e0dc59248c521a2ae2a9718b3=42.9-0ubuntu2.3pop0~1745963094~22.04~af56e4e 174 | jammy/gnome-shell-extension-alt-tab-raise-first-window=0c3e1aa2a8b6486e6bd3100f8dfde17354ba7eb5=0.1.1~1554907039~22.04~0c3e1aa 175 | jammy/gnome-shell-extension-always-show-workspaces=f3954d74b1a1f4f13b076c37f022f17408b4da35=0.1.1~1587581300~22.04~f3954d7 176 | jammy/gnome-shell-extension-do-not-disturb=4fc03cc05bcc67dd18cb891f8a08c5c57d3f0b61=1.0.0~1580510234~22.04~4fc03cc 177 | jammy/gnome-shell-extension-pop-battery-icon-fix=741eaace25a99d9fc2545942a9c88ff8b360a85c=0.1.0~1587507612~22.04~741eaac 178 | jammy/gnome-shell-extension-pop-shop-details=11349f63151bb99a8bee339e21a94a257f845ecc=0.1.0~1587579004~22.04~11349f6 179 | jammy/gnome-shell-extension-pop-suspend-button=858506078b8bae0fcf507dc94e9ec1a3f1c36bc1=1.0.4~1579278356~22.04~8585060 180 | jammy/gnome-shell-extension-popx11gestures=d58122e752566379b677dd525ba56b3592877779=1.0.14~1654094950~22.04~d58122e 181 | jammy/gnome-shell-extension-system76-power=02fdb2116237a295a5fe6fe879ba34f4b6aa20b4=2.0.7~1743109387~22.04~02fdb21 182 | jammy/gnome-terminal=c2346f615c3bfe9394b71381c7badd9234c881d2=3.44.0-1ubuntu1pop0~1650921985~22.04~c2346f6 183 | jammy/granite=66414dbdbdbdddf8fb36f137c7f2c0882e98d1e8=6.2.0pop1~1677598542~22.04~66414db 184 | jammy/greetd=b3fce3ff03a57990355e7e9cedad3f66e8352cf8=0.10.0~1722314786~22.04~b3fce3f 185 | jammy/grub-theme=2ed83491e9f463136978c73ec47a91dacc1ce2d5=2.0.0~1582050224~22.04~2ed8349 186 | jammy/gtk-theme=25ea85d97126992024b03bfb4e4c3b0711c749ed=5.5.1~1723827328~22.04~25ea85d 187 | jammy/happiness=977f0b2bd7f910d92497042559b1212126d32f22=1.0-1~1654884291~22.04~977f0b2 188 | jammy/hidpi-daemon=fc43c57cdc73358c4464c5459ba026c4ea1a802f=18.04.6~1737118570~22.04~fc43c57 189 | jammy/hidpi-widget=a66eb848b2c541ed3d916a1379f0bec5bf754d2d=0.1.1~1643345917~22.04~a66eb84 190 | jammy/hp-vendor=7c9a0a8bc57ef0aa4abc43be5be870f6089887bc=0.1.0~1707324857~22.04~7c9a0a8 191 | jammy/hp-wallpapers=df86078846b0a2a4e3e64f584aaf2a21be47a7eb=1.0.0~1648843440~22.04~df86078 192 | jammy/iced-launcher=afcdbbb79f85a0af1dbd1a2fa41f94e1199fecb8=0.1.0~1669210531~22.04~afcdbbb 193 | jammy/iced-workspaces-applet=c9159726b39c69e5faf71d1bc4fe4a2e063d8c4e=0.1.0~1669753136~22.04~c915972 194 | jammy/icon-theme=1a575a8e99b4ae629b9b16543a3a04d148632ba9=3.5.1~1727801177~22.04~1a575a8 195 | jammy/initramfs-tools=e0b599497a69ee244bd6be2665d2dd9d51f77c4f=0.140ubuntu13.4pop2~1711143149~22.04~e0b5994 196 | jammy/installer=de1928f4b39499404a41bc032b979ada73ff26e2=0.0.1~1745534565~22.04~de1928f 197 | jammy/just=735ce0c2a3519ea3fa26a3fbf65650b72b9f9440=1.22.0-1pop1~1704285659~22.04~735ce0c 198 | jammy/kbuild=1dc163b6e3143d5b62e9bf962090dc576d925152=1:0.1.9998svn3589+dfsg-1pop1~1688579508~22.04~1dc163b 199 | jammy/kernelstub=851230b89201dac696a22c059834801f4d5b01fa=3.1.4~1674849051~22.04~851230b 200 | jammy/keyboard-configurator=3e2dea629c750d506143c668b1c5aebfb7afe990=1.3.12~1742504636~22.04~3e2dea6 201 | jammy/keyring=356a75e405d00a23889998d2e8f2508a9e67b535=1.0.0~1641313934~22.04~356a75e 202 | jammy/launcher=8d9da92dbae520b37ab93fc2364a01d7adbd2f29=1.2.4~1746102281~22.04~8d9da92 203 | jammy/libabigail=8bcd9d908f971a1a6b41a3bd75b680866a0bd6f1=2.0-1pop0~1646087720~22.04~8bcd9d9 204 | jammy/libasound2=a04c9a151faa0d94e28e3f7ac411dc8aa083f064=1.2.8-1pop1~1669155503~22.04~a04c9a1 205 | jammy/libdrm=bfb54ee8f72b61cf7e88d37f91931d05175eb904=2.4.120-1pop1~1706792268~22.04~bfb54ee 206 | jammy/libnvidia-container=d17aa6f4960e1d386abadf2288403efa4c1753ab=1.12.1-0pop1~1679417696~22.04~d17aa6f 207 | jammy/libtraceevent=59d5f9b464808e77bb118b1331e478f8a79506fd=1:1.8.2-1pop1~1732292197~22.04~59d5f9b 208 | jammy/libtracefs=bc8edca1e08baa5bce50f445207af8f444ac4bb8=1.8.0-1pop1~1740100127~22.04~bc8edca 209 | jammy/libvdpau=e422eef542a47721d44aeefdf46221c56d8c86a8=1.5-3pop1~1742860670~22.04~e422eef 210 | jammy/libxmlb=f779d981fdfeb38a046667d3efb5b029a0f4d3fb=0.3.10-2pop1~1686237323~22.04~f779d98 211 | jammy/linux=663e4dc1aa69901b994d063f7127254948d7798b=6.12.10-76061203.202412060638~1748542656~22.04~663e4dc 212 | jammy/linux-firmware=d92d198f3474f033d556a4179f358defb9dba31b=20250317.git1d4c88ee-0ubuntu1+system76~1743462258~22.04~d92d198 213 | jammy/lutris=385afed9773e3fa0b71f5fafe5d720577f087688=0.5.14~1698245228~22.04~385afed 214 | jammy/mesa=b077665db9684f187d14e462ab0af41609f9bdd3=24.2.8-1~bpo12+1pop1~1744225826~22.04~b077665 215 | jammy/mouse-configurator=e49ffaf8ff1b69bd96c0666ce2f78af4a6ea1eec=1.0.0~1663038393~22.04~e49ffaf 216 | jammy/msttcorefonts=0bafed97d282139762953a4434a7f16146c1ff63=3.8.1-pop1~1677150712~22.04~0bafed9 217 | jammy/mutter=a024e16fe8cf4e7e16e74bdcffb9dc976ac8eb18=42.9-0ubuntu9pop0~1727960749~22.04~a024e16 218 | jammy/ninja-build=fe200e889c7c43912f97244a1b0a99d608e0749f=1.10.1-1pop0~1630348646~22.04~fe200e8 219 | jammy/nvidia-container-runtime=2880fc651ed700824effa92de7837851b32fd2c4=3.4.0-1pop1~1601325114~22.04~2880fc6 220 | jammy/nvidia-container-toolkit=5f4b1f20207e0e6fc570470ed80c9f4915adc082=1.12.1-0pop1~1679409890~22.04~5f4b1f2 221 | jammy/nvidia-docker=88ac4456d3c036c23bb7c658eabbb5157214c114=2.12.0-0pop1~1679415594~22.04~88ac445 222 | jammy/nvidia-graphics-drivers-470=e9506bb0bfddb07fa2703b872902a46ffd05d8fa=470.256.02-1pop0~1740172710~22.04~e9506bb 223 | jammy/nvidia-graphics-drivers-565=ea6027a4fcd793f28f9a2c7c99566f9f8577d4c9=565.77-1pop0ubuntu1~1743807808~22.04~ea6027a 224 | jammy/nvidia-graphics-drivers-575=60b451d57088386f05ee4f664ce2fdbbb9b8c692=575.51.02-1pop1~1747851188~22.04~60b451d 225 | jammy/nvidia-graphics-drivers=7ff7c08d5d5a20a0f556ec6e7c7afe948f25f213=570.133.07-1pop1~1745431917~22.04~7ff7c08 226 | jammy/packaging-cog=e3a86643dfc05b62214506ac4e076a14f713e071=0.4.2~1662736278~22.04~e3a8664 227 | jammy/packaging-firefox=a8c7e2872e078c3f999de61ce1d7a47909f2ed86=1:139.0.1~1748885464~22.04~a8c7e28 228 | jammy/packaging-julia=8c304374870a039826397908571abbdda0269ac5=1.9.1pop1~1686756697~22.04~8c30437 229 | jammy/packaging-kinect=518f51fe0b3c60dbf94bab569807e39557bad2d8=3.10.002-1pop1~1657626495~22.04~518f51f 230 | jammy/packaging-rust=7149f8369b7a7fdba51512de5b1ef3b075378b91=1.85.0~1741624660~22.04~7149f83 231 | jammy/packaging-sarndbox=11110c794e25c3dbe7836e3d9c7adc867f2075aa=2.8-1pop1~1670886254~22.04~11110c7 232 | jammy/packaging-thunderbird=4dfe77c63fb9ca56440e8dab3694a7306e558a77=2:128.11.0esr~1748387868~22.04~4dfe77c 233 | jammy/packaging-vrui=7e0e23817bba34e98b6fbcc9b80ff90ef4779eda=8.0.002~1670886377~22.04~7e0e238 234 | jammy/pipewire=b8b871bff44e68e85dd583b21db5cc317c2f5a10=1.0.2~1707732619~22.04~b8b871b 235 | jammy/plymouth=adbc2e144d6f41660f1ca5aea4fa14892cb9cf61=22.02.122-0pop2~1677520013~22.04~adbc2e1 236 | jammy/plymouth-theme=8cd4acc4bb96e0b6a3855dfe843383466398cbf8=2.0.2~1646089097~22.04~8cd4acc 237 | jammy/popsec=76a91ca4fad74c97118ac1d9ec6c9ecae710ca29=0.1.0~1661780633~22.04~76a91ca 238 | jammy/popsicle=1e3699875ba1e04db778ab58c3dc1f4d1ebff750=1.3.3~1747416703~22.04~1e36998 239 | jammy/protonvpn-nm-lib=2bf2bab2d656d734f9c098e9c35893f98c4b2991=3.5.0-1~1636034204~22.04~2bf2bab 240 | jammy/repolib=9794dc3d2c954c83718e6a25d942c2f80ccef929=2.2.1~1707745914~22.04~9794dc3 241 | jammy/repoman=83329d22a1f9dc78e475428f9b2dc5f2ccd6af06=2.4.0~1716233177~22.04~83329d2 242 | jammy/rtl8821ce-dkms=5417fc09396381cdfc71cbe5f38b4055db3b5f1e=5.5.2.1-0ubuntu11pop1~1659015671~22.04~5417fc0 243 | jammy/session=1c78668fe21e164e6d2aed146a718c1649c0fce5=5.0.0~1662569841~22.04~1c78668 244 | jammy/sessioninstaller=969930e275c3ec4bbf36d3f70c28b2bd96750a1f=0.20+pop0~1735950419~22.04~969930e 245 | jammy/shell=0f7a5d1107cf59394d3372da914e7b96a5c65ebb=1.1.0~1735556688~22.04~0f7a5d1 246 | jammy/shell-shortcuts=52cc83fb0b0e77c1ffa8de9f0c22dc372f32bb02=0.1.0~1633121872~22.04~52cc83f 247 | jammy/shop=552fdf326fd93b906bd85b0bb9780354d268c726=7.4.0pop0~1709656947~22.04~552fdf3 248 | jammy/simple-wrapper=95db0daff42acb879013763b55f31d85ce805642=0.1.0~1657217305~22.04~95db0da 249 | jammy/spirv-headers=1c3fc6cd817c8d762ebe6a32192fc1ebdb85b9d5=1.6.1+1.4.304.0-1pop1~1741726101~22.04~1c3fc6c 250 | jammy/spirv-llvm-translator-15=135e3099089d8f32a619b750ed712a257be1712a=15.0.3-1pop1~1742906167~22.04~135e309 251 | jammy/steam=baa62f3069880707fa94806c43bd525e81c8b743=1:1.0.0.78~ds-3~1713892545~22.04~baa62f3 252 | jammy/support-panel=d410980d2f3759d29b4b74fe380fffc47d950fad=1.0.0~1659970858~22.04~d410980 253 | jammy/system76-acpi-dkms=7bae1af5698a149481501c9dfdc7f05cd53792cb=1.0.2~1719257749~22.04~7bae1af 254 | jammy/system76-dkms=8b1da5327ccb53c198fa330fe114c5888a6db900=1.0.18~1743109511~22.04~8b1da53 255 | jammy/system76-driver=d85305ff7a86e75b836aa7f176f322c91b59f273=24.04.4~1743109639~22.04~d85305f 256 | jammy/system76-firmware=5a35c6c06602d402ecf367b6d7aa156eaa83bb02=1.0.71~1743109580~22.04~5a35c6c 257 | jammy/system76-io-dkms=fc71f154ab8d9810f960ba171479c68c44737649=1.0.4~1732138800~22.04~fc71f15 258 | jammy/system76-oled=98f778def254cf4bbc590060460a69f3e9763c02=0.1.5~1664307225~22.04~98f778d 259 | jammy/system76-power=35e14e4afe23ea052017ee0c4baa0c12b30d5fac=1.2.4~1744989651~22.04~35e14e4 260 | jammy/system76-scheduler=a033bf87a7e0ad7a7426baa62f3e41f175dea888=2.0.0~1732092235~22.04~a033bf8 261 | jammy/system76-wallpapers=ff1e25c79d10c699dfb695374d5ae7b3f8031b2b=18.04.2~1714172930~22.04~ff1e25c 262 | jammy/systemd=feac724463f1d0a1ebc5a063bdaaac8a596ba52c=249.11-0ubuntu3.15pop0~1744300918~22.04~feac724 263 | jammy/system-updater=c20831865f6a0904a798e3f7b33c93b7fc2b2cd2=0.1.0~1706713830~22.04~c208318 264 | jammy/tensorman=24fa3b2bb06a29708162ee474a733e9a227b1778=0.2.0~1721790995~22.04~24fa3b2 265 | jammy/theme=ed52981c8ca3151ae6fafd63d3f97b803df385c9=1.0.4~1571245319~22.04~ed52981 266 | jammy/theme-switcher=8268856bd22e00ceccdb2dad8f64b00237725574=0.1.1~1650044254~22.04~8268856 267 | jammy/touchegg=2e20838f2065a0a5e4da08c211bd6edcfb1ba705=2.0.15pop0~1674691430~22.04~2e20838 268 | jammy/tpm2-totp=323d2a18569850b46cdab75f87f1cda423154345=0.1.0~1639007579~22.04~323d2a1 269 | jammy/transition=3b034efed3f50cb0adf50e7a56c14c6dac4e3a24=1.1.2~1673280823~22.04~3b034ef 270 | jammy/ubuntu-drivers-common=6b6b6f866e8ba22bb3ad6b854e59e7020bcbe653=1:0.9.6.2~0.22.04.8pop0~1744993802~22.04~6b6b6f8 271 | jammy/upgrade=481efa85fba5dccd5b7aa35c53d34784ef451991=1.0.0~1747245614~22.04~481efa8 272 | jammy/v4l2loopback=9a000c0beef004fca77cfecd13d56126a9954e4e=0.13.1-1pop1~1711631550~22.04~9a000c0 273 | jammy/virtualbox=6cbb44d20cbeb11c483590664d56fd06b2285a3f=7.0.18-dfsg-2pop1~1718408603~22.04~6cbb44d 274 | jammy/virtualbox-ext-pack=b2dd5216a0d9faaeb6276882d39ce36c945e417f=7.0.18-1pop1~1718703179~22.04~b2dd521 275 | jammy/vulkan-loader=a41a7d6cd1881b1780fab6b4ce5135067a602941=1.3.280.0-1pop1~1722439676~22.04~a41a7d6 276 | jammy/wallpapers=03a25a14a76eaf3825b980ab50aad6698c1c5a35=1.0.5~1629131386~22.04~03a25a1 277 | jammy/wayland=accf54c78d14409caf2737049d8907cc88abed0c=1.22.0-2pop1~1722453806~22.04~accf54c 278 | jammy/wayland-protocols=708608ead902fee85f005875ed22a577d54bacff=1.35-1pop1~1716443961~22.04~708608e 279 | jammy/wireplumber=e8b4d604e7f33f758cff016b3586304a7352d4e9=0.4.17~1701792620~22.04~e8b4d60 280 | jammy/xdg-desktop-portal-cosmic=988f47803cb44031a7ddc77cb1c5905e8919b3a7=0.1.0pop1~1741530540~22.04~988f478 281 | jammy/xorgproto=c67bf4e1b876bd856ad0ec5a3d0bf1e23ab0ab59=2024.1-1pop1~1722455025~22.04~c67bf4e 282 | jammy/xwayland=00c1b9816cd95dba3b2f150dacad6e2eb8c2c7ad=2:24.1.2-1pop1~1727385267~22.04~00c1b98 283 | jammy/xz-utils=6509762f03584bf9e3ac9a42d0a8484cbb7ca926=5.4.1-0.2pop1~1682459374~22.04~6509762 284 | jammy/zfs-linux=76386791ea0ae920f441a8e671172f452fbabe13=2.3.0-1~exp1pop1~1738098853~22.04~7638679 285 | noble/adw-gtk3=213b5edad14afcf35b1c1c0bda41c6865dcc38b4=5.3.0-0pop1~1710896694~24.04~213b5ed 286 | noble/alsa-ucm-conf=16ff97137d580629d4f25926b96bf47f58eba3b4=1.2.8-1pop1~1709769747~24.04~16ff971 287 | noble/amd-ppt-bin=1b805935ce4cf671a06e12252d606632dff130bf=1.0.0~1609862600~24.04~1b80593 288 | noble/appstream-data=23d51d32ecf7c83fe5b304fcebf8643c2bb2effc=0.0.3~1727715771~24.04~23d51d3 289 | noble/at-spi2-core=6c7f05623a4656205353b45d568aca9d6236e9e1=2.54.0-1pop0~1736783172~24.04~6c7f056 290 | noble/bcmwl=f5f28c19acec5dfb73a1a30aa407595d4c459de5=6.30.223.271-26pop1~1743706157~24.04~f5f28c1 291 | noble/buildchain=b7438e4ed15334f9e0d4369964659404e6adb72f=0.5.3~1741614618~24.04~b7438e4 292 | noble/bustd=20acbe9012547f63e19e8bc343610f0dc2e366a5=0.1.0~1637084172~24.04~20acbe9 293 | noble/connectivity=fd4f44d0b33a4968bbaf910893927da9245264b4=1~1526005491~24.04~fd4f44d 294 | noble/cosmic-applets=2d54688a7309f9b99e38cef6cd4f648c691ace59=0.1.0~1748536899~24.04~2d54688 295 | noble/cosmic-applibrary=6be6973498ecb0f53802d0354ef7ad8f942a0133=0.1.0~1748353899~24.04~6be6973 296 | noble/cosmic-bg=1da843a63656cf58b373a4823c15326be448b24e=0.1.0~1746111618~24.04~1da843a 297 | noble/cosmic-comp=e94377f4de6b7a9a3b5bc8f874cc56b08d89d4df=0.1~1748957924~24.04~e94377f 298 | noble/cosmic-design-demo=d58cfad46f2982982494fce27fb00ad834dc8992=0.1.0~1704748391~24.04~d58cfad 299 | noble/cosmic-edit=d4294713d8fc5c44ed7c9b1957aa6db7ee16a4d4=0.1.0~1744899122~24.04~d429471 300 | noble/cosmic-files=1a5a4501ee501b3155295cbfccc1c992b5ec9c01=0.1.0~1747779174~24.04~1a5a450 301 | noble/cosmic-greeter=b38bcd296a3dfc3cc154e8154ad2824313a67280=0.1.0~1747340288~24.04~b38bcd2 302 | noble/cosmic-icons=0b2aed444daa52c65effbb8e71a8a19b0f2e4cb9=0.1.0~1742575985~24.04~0b2aed4 303 | noble/cosmic-idle=267bb837f127eb805a17250ebcad02db57eb72cb=0.1.0~1740507204~24.04~267bb83 304 | noble/cosmic-initial-setup=d870a429e9693b60e2bdd910d61c0b8648d97af0=0.1.0~1738620125~24.04~d870a42 305 | noble/cosmic-launcher=bbce292ab7b700abbdaab7cdd6d3ac20a97d6d35=0.1.0~1747415524~24.04~bbce292 306 | noble/cosmic-notifications=e40714785af13b47c9eda0f05e42e1e9f57e1a3d=0.1.0~1748011690~24.04~e407147 307 | noble/cosmic-osd=8f3477873ab1efbbbbcf221640999d4d757f6cda=0.1.0~1746203295~24.04~8f34778 308 | noble/cosmic-osk=127971318b97bf5f96964b6358b0525703930508=0.1.0~1747865918~24.04~1279713 309 | noble/cosmic-panel=5c48d7f297f737b531fa64c286aa2a120b32cd4c=0.1.0~1748625844~24.04~5c48d7f 310 | noble/cosmic-player=fadecd0068a3818b6b2072ddc0096d0b8b2293ca=0.1.0~1747665379~24.04~fadecd0 311 | noble/cosmic-randr=c32d0d6bfd1dc7a268642d2276db74c15c285ebb=0.1.0~1744718623~24.04~c32d0d6 312 | noble/cosmic-screenshot=f7d066971061b530cdff56281351af0feee72a59=0.1.0~1746203330~24.04~f7d0669 313 | noble/cosmic-session=dd4fa3daea558dd5d95a7ffce5178b9e1faeaeef=0.1.0~1748912425~24.04~dd4fa3d 314 | noble/cosmic-settings-daemon=eb886de5527f9b5d2f225708d63d9d36fbb63a64=0.1.0~1748400860~24.04~eb886de 315 | noble/cosmic-settings=e810acd8f15e3267960ebba1595427f87172ab0d=0.1.0~1748874481~24.04~e810acd 316 | noble/cosmic-store=c5ef69f48c40b4cf02cd4183863103d0fd315314=0.1.0~1747403496~24.04~c5ef69f 317 | noble/cosmic-term=4a5ee839f4218e4bd8f676fd68746fa147f0329a=0.1.0~1747059088~24.04~4a5ee83 318 | noble/cosmic-wallpapers=189c2c63d31da84ebb161acfd21a503f98a1b4c7=1.0.0~1744123997~24.04~189c2c6 319 | noble/cosmic-workspaces-epoch=6fd237ac3984f4f85aaba18c6fa5e89a0bee235c=0.1.0~1748572261~24.04~6fd237a 320 | noble/default-settings=7adda3868b7d95461f9e39b28c0166d95ff88e66=6.0.0~1730822893~24.04~7adda38 321 | noble/desktop=954fee6203d62d6e39f873012e1a73e1c4cb8044=3.0.0~1744901208~24.04~954fee6 322 | noble/directx-headers=7337a9f923dff04bb095a9459ebbefd46546786f=1.614.1-1pop1~1741725921~24.04~7337a9f 323 | noble/distinst=d34fd000aabbdae37fc122f6224470e69b817f36=0.3.2~1748042323~24.04~d34fd00 324 | noble/distinst-v2=e95fdb9b3552d06e9cf707716831a53471756738=0.1.0~1711504823~24.04~e95fdb9 325 | noble/egl-wayland=ab32ce2a55db918604dd6a23d61c1646e878fea6=1:1.1.16-1pop1~1725624760~24.04~ab32ce2 326 | noble/firmware-manager=3c542bd09ecbd872e194595570074fdd15e6e975=0.1.2~1711477253~24.04~3c542bd 327 | noble/fonts=2da23d5e76bf724c49875e8fd328e1fd5a6de80e=1.0.3~1629904758~24.04~2da23d5 328 | noble/fwts=e6235f816e30a8fa7e5e119d0347a29d2cf11c07=25.01.00-0ubuntu1pop1~1738076574~24.04~e6235f8 329 | noble/fwupd=44c2221365217787d308b1522fd72a998c11f015=1.9.5-1pop0~1695754564~24.04~44c2221 330 | noble/fwupd-efi=f30da97fb3eb278f14cb0e0b9eb1d949b5401c0a=1:1.1-4pop0~1643174914~24.04~f30da97 331 | noble/gnome-shell-extension-alt-tab-raise-first-window=0c3e1aa2a8b6486e6bd3100f8dfde17354ba7eb5=0.1.1~1554907039~24.04~0c3e1aa 332 | noble/gnome-shell-extension-always-show-workspaces=f3954d74b1a1f4f13b076c37f022f17408b4da35=0.1.1~1587581300~24.04~f3954d7 333 | noble/gnome-shell-extension-do-not-disturb=4fc03cc05bcc67dd18cb891f8a08c5c57d3f0b61=1.0.0~1580510234~24.04~4fc03cc 334 | noble/gnome-shell-extension-pop-battery-icon-fix=741eaace25a99d9fc2545942a9c88ff8b360a85c=0.1.0~1587507612~24.04~741eaac 335 | noble/gnome-shell-extension-pop-shop-details=11349f63151bb99a8bee339e21a94a257f845ecc=0.1.0~1587579004~24.04~11349f6 336 | noble/gnome-shell-extension-pop-suspend-button=858506078b8bae0fcf507dc94e9ec1a3f1c36bc1=1.0.4~1579278356~24.04~8585060 337 | noble/gnome-shell-extension-system76-power=02fdb2116237a295a5fe6fe879ba34f4b6aa20b4=2.0.7~1743109387~24.04~02fdb21 338 | noble/greetd=b3fce3ff03a57990355e7e9cedad3f66e8352cf8=0.10.0~1722314786~24.04~b3fce3f 339 | noble/grub-theme=2ed83491e9f463136978c73ec47a91dacc1ce2d5=2.0.0~1582050224~24.04~2ed8349 340 | noble/gtk-theme=25ea85d97126992024b03bfb4e4c3b0711c749ed=5.5.1~1723827328~24.04~25ea85d 341 | noble/happiness=977f0b2bd7f910d92497042559b1212126d32f22=1.0-1~1654884291~24.04~977f0b2 342 | noble/hidpi-daemon=fc43c57cdc73358c4464c5459ba026c4ea1a802f=18.04.6~1737118570~24.04~fc43c57 343 | noble/hidpi-widget=a66eb848b2c541ed3d916a1379f0bec5bf754d2d=0.1.1~1643345917~24.04~a66eb84 344 | noble/hp-vendor=7c9a0a8bc57ef0aa4abc43be5be870f6089887bc=0.1.0~1707324857~24.04~7c9a0a8 345 | noble/hp-wallpapers=df86078846b0a2a4e3e64f584aaf2a21be47a7eb=1.0.0~1648843440~24.04~df86078 346 | noble/icon-theme=1a575a8e99b4ae629b9b16543a3a04d148632ba9=3.5.1~1727801177~24.04~1a575a8 347 | noble/installer=65c0c8621f8470f343beb9c12d0b4a5b98630c39=0.0.1~1733348304~24.04~65c0c86 348 | noble/just=735ce0c2a3519ea3fa26a3fbf65650b72b9f9440=1.22.0-1pop1~1704285659~24.04~735ce0c 349 | noble/kernelstub=851230b89201dac696a22c059834801f4d5b01fa=3.1.4~1674849051~24.04~851230b 350 | noble/keyboard-configurator=3e2dea629c750d506143c668b1c5aebfb7afe990=1.3.12~1742504636~24.04~3e2dea6 351 | noble/keyring=356a75e405d00a23889998d2e8f2508a9e67b535=1.0.0~1641313934~24.04~356a75e 352 | noble/launcher=8d9da92dbae520b37ab93fc2364a01d7adbd2f29=1.2.4~1746102281~24.04~8d9da92 353 | noble/linux=3446b2992e2a70cfca79d6cd54deead695ad271f=6.12.10-76061203.202412060638~1748542637~24.04~3446b29 354 | noble/linux-firmware=d92d198f3474f033d556a4179f358defb9dba31b=20250317.git1d4c88ee-0ubuntu1+system76~1743462258~24.04~d92d198 355 | noble/lutris=385afed9773e3fa0b71f5fafe5d720577f087688=0.5.14~1698245228~24.04~385afed 356 | noble/mesa=be49689f25ae1b8767cb09d7d8b5bb3bef5a8685=25.0.5-1pop1~1747633989~24.04~be49689 357 | noble/network-manager-applet=0f940cc67304a03e60109db24a4a9244907ae9c8=1.34.0-2pop1~1722522615~24.04~0f940cc 358 | noble/nvidia-graphics-drivers-470=e9506bb0bfddb07fa2703b872902a46ffd05d8fa=470.256.02-1pop0~1740172710~24.04~e9506bb 359 | noble/nvidia-graphics-drivers-565=ea6027a4fcd793f28f9a2c7c99566f9f8577d4c9=565.77-1pop0ubuntu1~1743807808~24.04~ea6027a 360 | noble/nvidia-graphics-drivers-575=60b451d57088386f05ee4f664ce2fdbbb9b8c692=575.51.02-1pop1~1747851188~24.04~60b451d 361 | noble/nvidia-graphics-drivers=7ff7c08d5d5a20a0f556ec6e7c7afe948f25f213=570.133.07-1pop1~1745431917~24.04~7ff7c08 362 | noble/packaging-firefox=a8c7e2872e078c3f999de61ce1d7a47909f2ed86=1:139.0.1~1748885464~24.04~a8c7e28 363 | noble/packaging-rust=7149f8369b7a7fdba51512de5b1ef3b075378b91=1.85.0~1741624660~24.04~7149f83 364 | noble/packaging-thunderbird=4dfe77c63fb9ca56440e8dab3694a7306e558a77=2:128.11.0esr~1748387868~24.04~4dfe77c 365 | noble/pipewire=1a9467b8d22e8ebf9a18d305c8774766ebfb5bf1=1.2.7-1pop1~1737369603~24.04~1a9467b 366 | noble/plymouth-theme=8cd4acc4bb96e0b6a3855dfe843383466398cbf8=2.0.2~1646089097~24.04~8cd4acc 367 | noble/popsicle=1e3699875ba1e04db778ab58c3dc1f4d1ebff750=1.3.3~1747416703~24.04~1e36998 368 | noble/repolib=9794dc3d2c954c83718e6a25d942c2f80ccef929=2.2.1~1707745914~24.04~9794dc3 369 | noble/repoman=83329d22a1f9dc78e475428f9b2dc5f2ccd6af06=2.4.0~1716233177~24.04~83329d2 370 | noble/sessioninstaller=969930e275c3ec4bbf36d3f70c28b2bd96750a1f=0.20+pop0~1735950419~24.04~969930e 371 | noble/shell=b3fc4253dc29b30fb52ac5eef5d3af643a46d18c=1.1.0~1741650551~24.04~b3fc425 372 | noble/shell-shortcuts=52cc83fb0b0e77c1ffa8de9f0c22dc372f32bb02=0.1.0~1633121872~24.04~52cc83f 373 | noble/spirv-headers=1c3fc6cd817c8d762ebe6a32192fc1ebdb85b9d5=1.6.1+1.4.304.0-1pop1~1741726101~24.04~1c3fc6c 374 | noble/spirv-tools=7edbf3c46451af3948ebda75913f9a503a142491=2024.4~rc2-1pop1~1741729286~24.04~7edbf3c 375 | noble/steam=d621a5b51b7d26390f18ea96b7edd2feeea37571=1:1.0.0.82~ds-1pop0~1728665127~24.04~d621a5b 376 | noble/system76-acpi-dkms=7bae1af5698a149481501c9dfdc7f05cd53792cb=1.0.2~1719257749~24.04~7bae1af 377 | noble/system76-dkms=8b1da5327ccb53c198fa330fe114c5888a6db900=1.0.18~1743109511~24.04~8b1da53 378 | noble/system76-driver=d85305ff7a86e75b836aa7f176f322c91b59f273=24.04.4~1743109639~24.04~d85305f 379 | noble/system76-firmware=5a35c6c06602d402ecf367b6d7aa156eaa83bb02=1.0.71~1743109580~24.04~5a35c6c 380 | noble/system76-io-dkms=fc71f154ab8d9810f960ba171479c68c44737649=1.0.4~1732138800~24.04~fc71f15 381 | noble/system76-oled=98f778def254cf4bbc590060460a69f3e9763c02=0.1.5~1664307225~24.04~98f778d 382 | noble/system76-power=35e14e4afe23ea052017ee0c4baa0c12b30d5fac=1.2.4~1744989651~24.04~35e14e4 383 | noble/system76-scheduler=a033bf87a7e0ad7a7426baa62f3e41f175dea888=2.0.0~1732092235~24.04~a033bf8 384 | noble/system76-wallpapers=ff1e25c79d10c699dfb695374d5ae7b3f8031b2b=18.04.2~1714172930~24.04~ff1e25c 385 | noble/systemd=40a1bd767a03d4178571277161ca84b02adedc79=255.4-1ubuntu8.6pop0~1742486928~24.04~40a1bd7 386 | noble/system-updater=c20831865f6a0904a798e3f7b33c93b7fc2b2cd2=0.1.0~1706713830~24.04~c208318 387 | noble/tensorman=24fa3b2bb06a29708162ee474a733e9a227b1778=0.2.0~1721790995~24.04~24fa3b2 388 | noble/theme=ed52981c8ca3151ae6fafd63d3f97b803df385c9=1.0.4~1571245319~24.04~ed52981 389 | noble/theme-switcher=8268856bd22e00ceccdb2dad8f64b00237725574=0.1.1~1650044254~24.04~8268856 390 | noble/transition=3b034efed3f50cb0adf50e7a56c14c6dac4e3a24=1.1.2~1673280823~24.04~3b034ef 391 | noble/upgrade=481efa85fba5dccd5b7aa35c53d34784ef451991=1.0.0~1747245614~24.04~481efa8 392 | noble/vulkan-loader=a41a7d6cd1881b1780fab6b4ce5135067a602941=1.3.280.0-1pop1~1722439676~24.04~a41a7d6 393 | noble/wallpapers=03a25a14a76eaf3825b980ab50aad6698c1c5a35=1.0.5~1629131386~24.04~03a25a1 394 | noble/wayland=dcd01e08b4a87f0d66fbd4693a4cd9805a472766=1.23.1-3pop1~1741692146~24.04~dcd01e0 395 | noble/wayland-protocols=92c2e6ddf30973c0f668584e63132e7c3999848f=1.41-1pop1~1741707051~24.04~92c2e6d 396 | noble/wireplumber=9bf42d5a6dac4c6b5f95719a5149afb75497ade7=0.5.7-1~bpo12+1pop1~1737307182~24.04~9bf42d5 397 | noble/xdg-desktop-portal-cosmic=7c9c5dd62f8a5c20d743f812ef2a22aa871fb43b=0.1.0pop1~1748623103~24.04~7c9c5dd 398 | noble/xorgproto=c67bf4e1b876bd856ad0ec5a3d0bf1e23ab0ab59=2024.1-1pop1~1722455025~24.04~c67bf4e 399 | noble/xwayland=00c1b9816cd95dba3b2f150dacad6e2eb8c2c7ad=2:24.1.2-1pop1~1727385267~24.04~00c1b98 400 | noble/zfs-linux=76386791ea0ae920f441a8e671172f452fbabe13=2.3.0-1~exp1pop1~1738098853~24.04~7638679 401 | -------------------------------------------------------------------------------- /sync-ubuntu: -------------------------------------------------------------------------------- 1 | # Automatically generated by build.sh 2 | jammy/accountsservice=31bc419506fc2e9b620e9e64caf280952af064a5=22.07.5-2ubuntu1.5pop0~1727958756~22.04~31bc419~dev 3 | jammy/alsa-ucm-conf=16ff97137d580629d4f25926b96bf47f58eba3b4=1.2.8-1pop1~1709769747~22.04~16ff971~dev 4 | jammy/amd64-microcode=af10f1706acf6739abf6b350b7a66d8109c98738=3.20230808.1.1pop1~1691680164~22.04~af10f17~dev 5 | jammy/amd-ppt-bin=1b805935ce4cf671a06e12252d606632dff130bf=1.0.0~1609862600~22.04~1b80593~dev 6 | jammy/bcmwl=a535988bcf988b1c5a96b61b5fb347974c70a015=6.30.223.271+bdcom-0ubuntu10pop1~1674860013~22.04~a535988~dev 7 | jammy/distinst=9997a265c2810bff0574539900b0ba9075381adc=0.3.2~1734654498~22.04~9997a26~dev 8 | jammy/firmware-manager=1cf254b57bbdd8fd3e0727b4eef1620bdb305bde=0.1.2~1736375004~22.04~1cf254b~dev 9 | jammy/fwupd=44c2221365217787d308b1522fd72a998c11f015=1.9.5-1pop0~1695754564~22.04~44c2221~dev 10 | jammy/fwupd-efi=abf83a608ebfe66ff29f8e48935b0cd042e07b24=1:1.4-1pop0~1728056142~22.04~abf83a6~dev 11 | jammy/gnome-settings-daemon=3fb6384a5c39add155561fd7b9df18ddf12ba33a=42.1-1ubuntu3pop0~1661536383~22.04~3fb6384~dev 12 | jammy/gnome-shell=84a3bea077b76bbbeebfbf94b7fd28a402a1c3e1=42.9-0ubuntu2.2pop0~1727960056~22.04~84a3bea~dev 13 | jammy/gnome-shell-extension-system76-power=32de8917d5ea6d92ea27b72a6b713db9212a21e8=2.0.7~1729110155~22.04~32de891~dev 14 | jammy/hidpi-daemon=fc43c57cdc73358c4464c5459ba026c4ea1a802f=18.04.6~1737118570~22.04~fc43c57~dev 15 | jammy/kbuild=1dc163b6e3143d5b62e9bf962090dc576d925152=1:0.1.9998svn3589+dfsg-1pop1~1688579508~22.04~1dc163b~dev 16 | jammy/libabigail=8bcd9d908f971a1a6b41a3bd75b680866a0bd6f1=2.0-1pop0~1646087720~22.04~8bcd9d9~dev 17 | jammy/libasound2=a04c9a151faa0d94e28e3f7ac411dc8aa083f064=1.2.8-1pop1~1669155503~22.04~a04c9a1~dev 18 | jammy/libdrm=bfb54ee8f72b61cf7e88d37f91931d05175eb904=2.4.120-1pop1~1706792268~22.04~bfb54ee~dev 19 | jammy/libtraceevent=59d5f9b464808e77bb118b1331e478f8a79506fd=1:1.8.2-1pop1~1732292197~22.04~59d5f9b~dev 20 | jammy/linux=d5f7c84be88ff232bf093818f888fc18e6a031bf=6.9.3-76060903.202405300957~1738770968~22.04~d5f7c84~dev 21 | jammy/linux-firmware=9061b5f6a06bbdabcf450ccb3cf621240ab88593=20240610.git1d67e66d-0pop1+system76~1732201256~22.04~9061b5f~dev 22 | jammy/ninja-build=fe200e889c7c43912f97244a1b0a99d608e0749f=1.10.1-1pop0~1630348646~22.04~fe200e8~dev 23 | jammy/nvidia-graphics-drivers-470=e9506bb0bfddb07fa2703b872902a46ffd05d8fa=470.256.02-1pop0~1740172710~22.04~e9506bb~dev 24 | jammy/nvidia-graphics-drivers=fc968eec43fbaad5e65af7fc48761753b89d3028=570.86.16-1pop1~1740424243~22.04~fc968ee~dev 25 | jammy/system76-acpi-dkms=7bae1af5698a149481501c9dfdc7f05cd53792cb=1.0.2~1719257749~22.04~7bae1af~dev 26 | jammy/system76-dkms=f01bffda3c08999ac5ff15b68d549e653faeda58=1.0.17~1735251933~22.04~f01bffd~dev 27 | jammy/system76-driver=86051e4420604fb85e8a143b3f55d0ccbb5d2aee=22.04.1~1740604962~22.04~86051e4~dev 28 | jammy/system76-io-dkms=fc71f154ab8d9810f960ba171479c68c44737649=1.0.4~1732138800~22.04~fc71f15~dev 29 | jammy/system76-oled=98f778def254cf4bbc590060460a69f3e9763c02=0.1.5~1664307225~22.04~98f778d~dev 30 | jammy/system76-power=d908dd828821052eb729bc046aaa0b23006fa9fe=1.2.3~1740411096~22.04~d908dd8~dev 31 | jammy/system76-wallpapers=ff1e25c79d10c699dfb695374d5ae7b3f8031b2b=18.04.2~1714172930~22.04~ff1e25c~dev 32 | jammy/systemd=6ba6326cba3914b923a5bade1a61e816c9e3f7c2=249.11-0ubuntu3.14~1740670348~22.04~6ba6326~dev 33 | jammy/ubuntu-drivers-common=a9527247520726d3b7fc65b660e174a120d8e5cf=1:0.9.6.2~0.22.04.7pop0~1727961281~22.04~a952724~dev 34 | jammy/virtualbox=6cbb44d20cbeb11c483590664d56fd06b2285a3f=7.0.18-dfsg-2pop1~1718408603~22.04~6cbb44d~dev 35 | jammy/virtualbox-ext-pack=b2dd5216a0d9faaeb6276882d39ce36c945e417f=7.0.18-1pop1~1718703179~22.04~b2dd521~dev 36 | jammy/zfs-linux=76386791ea0ae920f441a8e671172f452fbabe13=2.3.0-1~exp1pop1~1738098853~22.04~7638679~dev 37 | noble/alsa-ucm-conf=16ff97137d580629d4f25926b96bf47f58eba3b4=1.2.8-1pop1~1709769747~24.04~16ff971~dev 38 | noble/amd-ppt-bin=1b805935ce4cf671a06e12252d606632dff130bf=1.0.0~1609862600~24.04~1b80593~dev 39 | noble/bcmwl=7aaf29113804e8a4600b26310b59e747fa270859=6.30.223.271-25pop1~1739893238~24.04~7aaf291~dev 40 | noble/distinst=9997a265c2810bff0574539900b0ba9075381adc=0.3.2~1734654498~24.04~9997a26~dev 41 | noble/firmware-manager=1cf254b57bbdd8fd3e0727b4eef1620bdb305bde=0.1.2~1736375004~24.04~1cf254b~dev 42 | noble/fwupd=44c2221365217787d308b1522fd72a998c11f015=1.9.5-1pop0~1695754564~24.04~44c2221~dev 43 | noble/gnome-shell-extension-system76-power=32de8917d5ea6d92ea27b72a6b713db9212a21e8=2.0.7~1729110155~24.04~32de891~dev 44 | noble/hidpi-daemon=fc43c57cdc73358c4464c5459ba026c4ea1a802f=18.04.6~1737118570~24.04~fc43c57~dev 45 | noble/linux=f50b0de428b03b2f758e91f7098724e5fdc05720=6.12.10-76061203.202412060638~1740098661~24.04~f50b0de~dev 46 | noble/linux-firmware=9061b5f6a06bbdabcf450ccb3cf621240ab88593=20240610.git1d67e66d-0pop1+system76~1732201256~24.04~9061b5f~dev 47 | noble/nvidia-graphics-drivers-470=e9506bb0bfddb07fa2703b872902a46ffd05d8fa=470.256.02-1pop0~1740172710~24.04~e9506bb~dev 48 | noble/nvidia-graphics-drivers=fc968eec43fbaad5e65af7fc48761753b89d3028=570.86.16-1pop1~1740424243~24.04~fc968ee~dev 49 | noble/system76-acpi-dkms=7bae1af5698a149481501c9dfdc7f05cd53792cb=1.0.2~1719257749~24.04~7bae1af~dev 50 | noble/system76-dkms=f01bffda3c08999ac5ff15b68d549e653faeda58=1.0.17~1735251933~24.04~f01bffd~dev 51 | noble/system76-driver=8c83d890ce1ec544078d88429e5af274f00274f1=24.04.2~1740604629~24.04~8c83d89~dev 52 | noble/system76-io-dkms=fc71f154ab8d9810f960ba171479c68c44737649=1.0.4~1732138800~24.04~fc71f15~dev 53 | noble/system76-oled=98f778def254cf4bbc590060460a69f3e9763c02=0.1.5~1664307225~24.04~98f778d~dev 54 | noble/system76-power=d908dd828821052eb729bc046aaa0b23006fa9fe=1.2.3~1740411096~24.04~d908dd8~dev 55 | noble/system76-wallpapers=ff1e25c79d10c699dfb695374d5ae7b3f8031b2b=18.04.2~1714172930~24.04~ff1e25c~dev 56 | noble/systemd=a7b3ef08e3b62cb30da116174176240e019acded=255.4-1ubuntu8.5pop0~1740613353~24.04~a7b3ef0~dev 57 | noble/zfs-linux=76386791ea0ae920f441a8e671172f452fbabe13=2.3.0-1~exp1pop1~1738098853~24.04~7638679~dev 58 | --------------------------------------------------------------------------------