├── .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 |
--------------------------------------------------------------------------------