Hack Week Project Takes Aim at Improving Membership Management
A Hack Week 25 project is looking to simplify how the openSUSE community manages memberships through a new platform called openSUSE Lounge.
The openSUSE Lounge project proposes a centralized system for maintaining member records, tracking membership status and supporting election-related tasks, all while reducing the manual workload placed on membership and election officials.
The platform is designed to give Member Officials a clearer, more efficient way to keep the member database accurate. Election officials could use the tool to export up-to-date voter lists, detect issues such as bounced credential emails and flag outdated or inactive accounts earlier in the process.
Longer-term plans may include allowing contributors to apply for membership directly through the interface, which could streamline onboarding and increase transparency for those seeking membership.
The prototype currently uses a Laravel backend paired with Tailwind CSS and Alpine.js for a lightweight interface. MariaDB powers the underlying data layer. A preview of the user interface was shared with the project through a pull request. More functionality is planned as Hack Week continues.

The project could provide a step toward modernizing membership management for the project and improve how the community maintains this data.
Hack Week, which began in 2007, has become a cornerstone of the project’s open-source culture. Hack Week has produced tools that are now integral to the openSUSE ecosystem, such as openQA, Weblate and Aeon Desktop. Hack Week has also seeded projects that later grew into widely used products; the origins of ownCloud and its fork Nextcloud derive from a Hack Week project started more than a decade ago.
For more information, visit hackweek.opensuse.org.
Rescuing most from a broken tar.bz2 with bzip2recover and some cunning.
libv@machine:~$ tar -jxvf ../backup-2005.tar.bz2 backup/ backup/file0.txt backup/file1.pdf backup/file2.bin bzip2: Data integrity error when decompressing. Input file = (stdin), output file = (stdout) It is possible that the compressed file(s) have become corrupted. You can use the -tvv option to test integrity of such files. You can use the `bzip2recover' program to attempt to recover data from undamaged sections of corrupted files. tar: Unexpected EOF in archive tar: Unexpected EOF in archive tar: Error is not recoverable: exiting nowI then ran bzip2recover, and this produced 328 files called:
rec00001backup-2005.tar.bz2 rec00002backup-2005.tar.bz2 .. rec00327backup-2005.tar.bz2 rec00328backup-2005.tar.bz2There is surprisingly little information out there on how to handle this. One stackoverflow commenter stated to "guess" the size of the undecompressable block, which sounds a bit unscientific.
So the next step was to run bunzip2 on all of them, which broke with:
bunzip2: Data integrity error when decompressing. Input file = rec00051backup-2005.tar.bz2, output file = rec00051backup-2005.tar It is possible that the compressed file(s) have become corrupted. You can use the -tvv option to test integrity of such files. You can use the `bzip2recover' program to attempt to recover data from undamaged sections of corrupted files. bunzip2: Deleting output file rec00051backup-2005.tar, if it exists. bunzip2: WARNING: some files have not been processed: bunzip2: 328 specified on command line, 277 not processed yet.There does not seem to be a flag for bunzip2 to ignore the CRC and soldier on, flagging the block accordingly. This 900kB block should be considered lost. The rest of the data is still valid though. So we need to trick tar into thinking that there is valid data in where the breakage was. Sadly Bzip2 does not list the actual uncompressed block size, just an approximation (in this case a "9" for 900kB).
I then bunzipped all the other files, and catted the first good .tar files together as one file, and the last good tar files together as another.
So i quickly read up on the tar header format. It's 512byte aligned, with the first 256bytes the name of the file or directory, null padded. Then all of the other relevant information is presented in the next 256 bytes:
00000000 62 61 63 6b 75 70 2f 00 00 00 00 00 00 00 00 00 |backup/.........| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 |....0000755.0000| 00000070 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 |000.0000000.0000| 00000080 30 30 30 30 30 30 30 00 31 30 30 32 37 31 37 35 |0000000.10027175| 00000090 33 35 34 00 30 31 32 31 33 30 00 20 35 00 00 00 |354.012130. 5...| 000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000100 00 75 73 74 61 72 20 20 00 6c 69 62 76 00 00 00 |.ustar .libv...| 00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000120 00 00 00 00 00 00 00 00 00 6c 69 62 76 00 00 00 |.........libv...| 00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000140 00 00 00 00 00 00 00 00 00 30 30 30 30 30 30 30 |.........0000000| 00000150 00 30 30 30 30 30 30 30 00 00 00 00 00 00 00 00 |.0000000........| 00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 62 61 63 6b 75 70 2f 66 69 6c 65 30 2e 74 78 74 |backup/file0.txt| 00000210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000260 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 |....0000755.0000| 00000270 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 31 |000.0000000.0001| 00000280 35 36 37 31 30 30 30 00 31 30 32 34 32 31 30 31 |5671000.10242101| 00000290 30 34 30 00 30 31 35 30 37 35 00 20 30 00 00 00 |040.015075. 0...| 000002a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000300 00 75 73 74 61 72 20 20 00 6c 69 62 76 00 00 00 |.ustar .libv...| 00000310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000320 00 00 00 00 00 00 00 00 00 6c 69 62 76 00 00 00 |.........libv...| 00000330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000340 00 00 00 00 00 00 00 00 00 30 30 30 30 30 30 30 |.........0000000| 00000350 00 30 30 30 30 30 30 30 00 00 00 00 00 00 00 00 |.0000000........| 00000360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 54 68 69 73 20 69 73 20 79 6f 75 72 20 64 61 74 |This is your dat|You can see here that the string "00015671000" at 0x27C is the file size that tar expects for file0.txt. This is octal, so you need to run:
echo $((8#00015671000)) 36336643633664While there is no tar specific magic, i was able to search the hexdump for "ustar".
I then found that i got lucky, and that a big file was spanning the broken block. Its tar header was at 0x607800 in the first blob:
00607800 62 61 63 6b 75 70 2f 66 69 6c 65 32 2e 62 69 6e |backup/file2.bin| 00607810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00607860 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 |....0000755.0000| 00607870 30 30 30 00 30 30 30 30 30 30 30 00 30 31 30 34 |000.0000000.0104| 00607880 34 32 36 34 30 30 30 00 31 30 32 34 30 32 31 37 |4264000.10240217| 00607890 35 33 34 00 30 32 30 35 30 32 00 20 30 00 00 00 |534.020502. 0...| 006078a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00607900 00 75 73 74 61 72 20 20 00 6c 69 62 76 00 00 00 |.ustar .libv...| 00607910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00607920 00 00 00 00 00 00 00 00 00 6c 69 62 76 00 00 00 |.........libv...| 00607930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00607940 00 00 00 00 00 00 00 00 00 30 30 30 30 30 30 30 |.........0000000| 00607950 00 30 30 30 30 30 30 30 00 00 00 00 00 00 00 00 |.0000000........| 00607960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00607a00 64 61 74 61 64 61 74 61 64 61 74 61 64 61 74 61 |datadatadatadata|Because this is the first block, before the corruption, everything is still nicely 0x200 aligned. Our file begins at 0x607a00 with a filesize of 0x8916800 (or 1044264000 octal -- which is surprisingly 0x200 aligned as well -- is this a filesystem thing?). The first blob's size is 0x2af3b17. So the missing amount of data for this file is
(0x607a00 + 0x8916800) - 0x2af3b17 = 0x642A6E9The second blob was slightly more difficult, as there the tar header is no longer 0x200 aligned. I got unlucky with searching the hexdump for "ustar" as it crossed a 16byte boundary, but grep gave me a byteoffset to look for in the hexdump.
0634eb50 00 00 00 00 00 00 00 00 00 00 00 00 62 61 63 6b |............back| 0634eb60 75 70 2f 66 69 6c 65 33 2e 73 68 00 00 00 00 00 |up/file3.sh.....| 0634eb70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| *I then of course made the error of using 0x634eb50 and not 0x634eb5c in my calculation. But on the second attempt i calculated:
0x642A6E9 - 0x634eb5c = 0xDBB8DSo i dded the required amount to some file, catted the three files together, and tar was perfectly happy. I did null the broken file, and renamed it appropriately.
It is not likely that i will need this again any time soon, but if i do, i hope i know where to find the info now.
Zypp - different and still the same
zypp makes sure that it not just randomly moves between repositories of different vendors. Vendors in this case can be the (open)SUSE base packages and different buildservice repositories. If you want to do it via
zypper dup --from <repoid>
You get a lot of questions for “do you really want to change the vendor?”.
When you do that e.g. to test the next GNOME major release from GNOME:Next, that is a lot of questions. Like a few hundred times. My manual way involved putting 1\n into the mouse cut buffer and pasting with my middle mouse button.
Planet News Roundup
This is a roundup of articles from the openSUSE community listed on planet.opensuse.org.
The below featured highlights listed on the community’s blog feed aggregator are from November 15 to 21.
Blog posts this week highlight a wide range of community activity to KDE Plasma gaining new features, the KDE Slimbook VII launch, a Hack Week project about AI-driven Bugzilla triage and another on implementing SSH in Zig—plus. Plus coverage on the new Agama 18 release.
Here is a summary and links for each post:
CyberLadies Empower Women With openSUSE Leap 16
CyberLadies z.s. organized a full-day workshop in Prague to introduce women to Linux installation, desktop use, and open-source alternatives. Zuzana Pechová, who organized it, chose openSUSE Leap 16 for its ease of installation and European roots. The event not only empowered participants but also provided feedback that contributed to improvements in openSUSE and inspires a greater focus on digital sovereignty.
12 months instead of 12 minutes
Jimmac shares the story behind the creation of the GNOME website’s distinctive 3D laptop hero image, which is a design crafted over the course of a year rather than generated quickly by AI. This labor-intensive, iteration-focused approach highlights a commitment to thoughtful design and craft in an era increasingly dominated by automated content generation and quick fixes.
KDE Slimbook VII: Updating the Ultrabook of the KDE Community of Valencian Companies
The KDE Blog highlights the latest update to the KDE Slimbook VII, which is a premium ultrabook co-developed with the Spanish company Slimbook and the KDE community. This iteration features upgraded hardware to include an AMD Ryzen AI 9 365 CPU, 16″ WQXGA display at 165 Hz, and up to 128 GB DDR5 with 8 TB NVMe storage. With every purchase, a portion of proceeds supports the KDE Community.
4th Annual Open Source Seminar (formerly the Annual GNU/Linux Seminar)
The KDE Blog covers the fourth annual open-source seminar on Nov. 29 November. The event will be streamed worldwide via BigBlueButton and YouTube. The event will feature live talks from various Spanish-speaking free software experts and cover topics like systems, servers, security practices, and personal experiences in GNU/Linux.
Hack Week Project Targets Bug Triage Automation
A Hack Week project aims to reduce developer time spent navigating Bugzilla using an AI-driven triage and reporting assistant. By integrating the Ollama LLM with Bugzilla, the tool’s aim is to analyze new changes, assign bugs to teams, and highlight actionable next steps without disrupting existing workflows. A successful implementation could help to streamline bug triage and improve development with openSUSE and other open-source projects.
The NGO founded by Bram Moolenaar, the creator of Vim, ceases operations
Victorhck’s blog reports on the closure of the ICCF Holland foundation, which is the nonprofit organization founded by Vim creator Bram Moolenaarnearly 30 years ago to support children in Uganda. The closure follows Moolenaar’s passing in 2023, but support efforts will continue through Kuwasha, which will take over long-term management of the projects and sponsorship programs.
Photo Cropping Tool, Sudoku in Kirigami, and Sprinting This Week in KDE Apps
The KDE Blog highlights recent developments in KDE Applications, including a new cropping tool in the Photos app that simplifies image editing with intuitive controls. Also included is news of Pumoku—a new Kirigami-based sudoku application in early alpha stage, which shows promise in its continued development.
Labels and Assignment Improvements
The Open Build Service team has introduced enhanced label-based filtering to help users manage packages, requests, and notifications more efficiently. It improves assignment workflows and makes it easier to track progress and responsibilities during package reviews and submissions.
Plasma 6.5 Third Update
The KDE Blog announced the release of Plasma 6.5’s third maintenance update. The update includes automatic switching between light and dark themes, scrollable panels for widgets and shortcuts, a new initial setup assistant, and global Wi-Fi password storage.
Published by Agama 18
Victorhck’s blog reports on the release of Agama 18, the modern web-based installer for openSUSE and SUSE Linux Enterprise Server. The update introduces a redesigned storage configuration page aiming to make disk setup clearer for new users while retaining advanced options for experts. The release also brings enhanced JSON configuration support (including local profile validation and incremental pattern management). The release officially drops support for the i586 architecture.
Crop tool in Photos, Sudoku in Kirigami and sprinting – This week in KDE Apps
The KDE Blog covers “This Week in KDE Apps” and highlights the KDE Photos and introduction of Pumoku, which a Kirigami-based sudoku application, as mentioned above.
Hack Week Project Aims to Implement SSH in Zig
A Hack Week project starting Dec. 1 will focus on completing a native SSH implementation written in the Zig programming language. The goal is to create a lightweight and flexible SSH stack that facilitates research and experimentation, such as testing post-quantum cryptography algorithms. The project already supports primitives, keys, certificates and much of the agent protocol, and is intended for research and experimentation.
How to explain the four freedoms of free software to kids and girls/children
Victorhck’s blog helps translate and adapt a guide to help parents and educators explain the four essential freedoms of free software to children through analogies. The guide can be used as a valuable educational tool to help foster the continuation of the free software culture and promote collaboration and digital ethics from an early age.
Releasing version 18 | Agama
The Agama 18 version was introduced in this blog from Nov. 17. Support for DASD (mainframe) devices were significantly improved and the release offers better management for multiple devices through the web interface.
Twentieth Update of KDE Frameworks 6
The KDE Blog announces the release of KDE Frameworks 6.20. This maintenance release delivers numerous bug fixes, performance improvements, and behind-the-scenes enhancements across multiple frameworks. Key fixes include enhanced security in KWallet with modern session management, reduced crashes in image format plugins (KImageFormats) when handling malformed files, and improved User Interface consistency in Kirigami for overlays and action toolbars.
OCR en Spectacle y muchas mejoras en la interfaz de usuario – Esta semana en KDE Plasma
The KDE Blog covers how Spectacle gains built-in Optical Character Recognition functionality to let users select and copy text directly from images or screenshots. Multiple user interface enhancements were made including improved theming for GTK 4 apps, better portal-based permission dialogs, and refinements to system tray and timer widget settings.
View more blogs or learn to publish your own on planet.opensuse.org.
12 months instead of 12 minutes
Hey Kids! Other than raving about GNOME.org being a static HTML, there’s one more aspect I’d like to get back to in this writing exercise called a blog post.

I’ve recently come across an apalling genAI website for a project I hold deerly so I thought I’d give a glimpse on how we used to do things in the olden days. It is probably not going to be done this way anymore in the enshittified timeline we ended up in. The two options available these days are — a quickly generated slop website or no website at all, because privately owned social media is where it’s at.
The wanna-be-catchy title of this post comes from the fact the website underwent numerous iterations (iterations is the core principle of good design) spanning over a year before we introduced the redesign.
So how did we end up with a 3D model of a laptop for the hero image on the GNOME website, rather than something generated in a couple of seconds and a small town worth of drinking water or a simple SVG illustration?
The hero image is static now, but used to be a scroll based animation at the early days. It could have become a simple vector style illustration, but I really enjoy the light interaction of the screen and the laptop, especially between the light and dark variants. Toggling dark mode has been my favorite fidget spinner.
Creating light/dark variants is a bit tedious to do manually every release, but automating still a bit too hard to pull off (the taking screenshots of a nightly OS bit). There’s also the fun of picking a theme for the screenshot rather than doing the same thing over and over. Doing the screenshooting manually meant automating the rest, as a 6 month cycle is enough time to forget how things are done. The process is held together with duct tape, I mean a python script, that renders the website image assets from the few screenshots captured using GNOME OS running inside Boxes. Two great invisible things made by amazing individuals that could go away in an instant and that thought gives me a dose of anxiety.
This does take a minute to render on a laptop (CPU only Cycles), but is a matter of a single invocation and a git commit. So far it has survived a couple of Blender releases, so fingers crossed for the future.
Sophie has recently been looking into translations, so we might reconsider that 3D approach if translated screenshots become viable (and have them contained in an SVG similar to how os.gnome.org is done). So far the 3D hero has always been in sync with the release, unlike in our Wordpress days. Fingers crossed.
Hack Week Project Targets Bug Triage Automation
A Hack Week 25 project aims to reduce the time developers spend navigating Bugzilla by introducing an AI-driven triage and reporting assistant.
The Bugzilla Goes AI - Phase 1 project proposes using a locally hosted AI model to summarize bugs, recommend next steps and deliver a daily digest through a simple Web Interface.
The project aims at integrating the Ollama LLM with a Bugzilla instance through a dedicated API connector. Once connected, the AI agent could analyze bugs, assign them to a team, produce short summary and create actionable items. Developers could scan workloads without opening Bugzilla.
The project may design the AI tool to highlight what matters rather than change Bugzilla workflows. The system may report only on bugs that have changed since a previous triage, which could reduce the time developers spend re-checking old and/or inactive tickets.
Core benefits that could emerge from the prototype is a daily bug debriefing that offers an automated overview of issues, relevant change alerts, which should reduce noise of resurfacing activity, and provide a follow-up feature that helps developers realize the next steps.
Time constraints to develop the project during Hack Week and AI accuracy remain notable risks, but a prototype could provide a meaningful step toward modernizing bug triage for openSUSE and the open-source ecosystem.
Hack Week, which began in 2007, has become a cornerstone of the project’s open-source culture. Hack Week has produced tools that are now integral to the openSUSE ecosystem, such as openQA, Weblate and Aeon Desktop. Hack Week has also seeded projects that later grew into widely used products; the origins of ownCloud and its fork Nextcloud derive from a Hack Week project started more than a decade ago.
For more information, visit hackweek.opensuse.org.
CyberLadies Empower Women With openSUSE Leap 16
Over the weekend, in Prague, Czechia, Zuzana Pechová organized a full-day workshop together with Terka Lukešová and Markéta Gregorová as part of the CyberLadies z.s. community initiative. The goal was to introduce ten women to Linux installation, basic desktop use, and common open-source alternatives to commercial software. The workshop also covered how to work with […]
The post CyberLadies Empower Women With openSUSE Leap 16 appeared first on SUSE Communities.
Labels and Assignment Improvements
Teaching Linux to Kids With openSUSE Leap 16.0
A Community Effort to Teach Linux Early Published on behalf of Coly Li, with his permission To help children interested in artificial intelligence and information technology grow up with basic Linux skills, Coly Li started a voluntary Linux study group. He created it together with other parents from his child’s school who share an interest […]
The post Teaching Linux to Kids With openSUSE Leap 16.0 appeared first on SUSE Communities.