Feeds
ListenData: How to Automate WordPress using Python
This tutorial explains how to use Python to automate tasks in WordPress. It includes various functions to perform tasks such as creating, extracting, updating and deleting WordPress posts, pages and media items (images) directly from Python.
Table of Contents To read this article in full, please click hereThis post appeared first on ListenDataFreexian Collaborators: Monthly report about Debian Long Term Support, September 2024 (by Roberto C. Sánchez)
Like each month, have a look at the work funded by Freexian’s Debian LTS offering.
Debian LTS contributorsIn September, 18 contributors have been paid to work on Debian LTS, their reports are available:
- Abhijith PA did 7.0h (out of 0.0h assigned and 14.0h from previous period), thus carrying over 7.0h to the next month.
- Adrian Bunk did 51.75h (out of 9.25h assigned and 55.5h from previous period), thus carrying over 13.0h to the next month.
- Arturo Borrero Gonzalez did 10.0h (out of 0.0h assigned and 10.0h from previous period).
- Bastien Roucariès did 20.0h (out of 20.0h assigned).
- Ben Hutchings did 20.0h (out of 12.0h assigned and 12.0h from previous period), thus carrying over 4.0h to the next month.
- Chris Lamb did 18.0h (out of 18.0h assigned).
- Daniel Leidert did 23.0h (out of 26.0h assigned), thus carrying over 3.0h to the next month.
- Emilio Pozuelo Monfort did 23.5h (out of 22.25h assigned and 37.75h from previous period), thus carrying over 36.5h to the next month.
- Guilhem Moulin did 22.25h (out of 20.0h assigned and 2.5h from previous period), thus carrying over 0.25h to the next month.
- Lucas Kanashiro did 10.0h (out of 5.0h assigned and 15.0h from previous period), thus carrying over 10.0h to the next month.
- Markus Koschany did 40.0h (out of 40.0h assigned).
- Ola Lundqvist did 6.5h (out of 14.5h assigned and 9.5h from previous period), thus carrying over 17.5h to the next month.
- Roberto C. Sánchez did 24.75h (out of 21.0h assigned and 3.75h from previous period).
- Santiago Ruano Rincón did 19.0h (out of 19.0h assigned).
- Sean Whitton did 0.75h (out of 4.0h assigned and 2.0h from previous period), thus carrying over 5.25h to the next month.
- Sylvain Beucler did 16.0h (out of 42.0h assigned and 18.0h from previous period), thus carrying over 44.0h to the next month.
- Thorsten Alteholz did 11.0h (out of 11.0h assigned).
- Tobias Frost did 17.0h (out of 7.5h assigned and 9.5h from previous period).
In September, we have released 52 DLAs.
September marked the first full month of Debian 11 bullseye under the responsibility of the LTS Team and the team immediately got to work, publishing more than 4 dozen updates.
Some notable updates include ruby2.7 (denial-of-service, information leak, and remote code execution), git (various arbitrary code execution vulnerabilities), firefox-esr (multiple issues), gnutls28 (information disclosure), thunderbird (multiple issues), cacti (cross site scripting and SQL injection), redis (unauthorized access, denial of service, and remote code execution), mariadb-10.5 (arbitrary code execution), cups (arbitrary code execution).
Several LTS contributors have also contributed package updates which either resulted in a DSA (a Debian Security Announcement, which applies to Debian 12 bookworm) or in an upload that will be published at the next stable point release of Debian 12 bookworm. This list of packages includes cups, cups-filters, booth, nghttp2, puredata, python3.11, sqlite3, and wireshark. This sort of work, contributing fixes to newer Debian releases (and sometimes even to unstable), helps to ensure that upgrades from a release in the LTS phase of its lifecycle to a newer release do not expose users to vulnerabilities which have been closed in the older release.
Looking beyond Debian, LTS contributor Bastien Roucariès has worked with the upstream developers of apache2 to address regressions introduced upstream by some recent vulnerability fixes and he has also reached out to the community regarding a newly discovered security issue in the dompurify package. LTS contributor Santiago Ruano Rincón has undertaken the work of triaging and reproducing nearly 4 dozen CVEs potentially affecting the freeimage package. The upstream development of freeimage appears to be dormant and some of the issues have languished for more than 5 years. It is unclear how much can be done without the aid of upstream, but we will do our best to provide as much help to the community as we can feasibly manage.
Finally, it is sometimes necessary to limit or discontinue support for certain packages. The transition of a release from being under the responsibility of the Debian Security Team to that of the LTS Team is an occasion where we assess any pending decisions in this area and formalize them. Please see the announcement for a complete list of packages which have been designated as unsupported.
Thanks to our sponsorsSponsors that joined recently are in bold.
- Platinum sponsors:
- TOSHIBA (for 108 months)
- Civil Infrastructure Platform (CIP) (for 76 months)
- VyOS Inc (for 40 months)
- Gold sponsors:
- Roche Diagnostics International AG (for 118 months)
- Akamai - Linode (for 112 months)
- Babiel GmbH (for 102 months)
- Plat’Home (for 101 months)
- CINECA (for 76 months)
- University of Oxford (for 58 months)
- Deveryware (for 45 months)
- EDF SA (for 30 months)
- Dataport AöR (for 5 months)
- CERN (for 3 months)
- Silver sponsors:
- Domeneshop AS (for 123 months)
- Nantes Métropole (for 117 months)
- Univention GmbH (for 109 months)
- Université Jean Monnet de St Etienne (for 109 months)
- Ribbon Communications, Inc. (for 103 months)
- Exonet B.V. (for 92 months)
- Leibniz Rechenzentrum (for 87 months)
- Ministère de l’Europe et des Affaires Étrangères (for 70 months)
- Cloudways by DigitalOcean (for 60 months)
- Dinahosting SL (for 58 months)
- Bauer Xcel Media Deutschland KG (for 52 months)
- Platform.sh SAS (for 52 months)
- Moxa Inc. (for 46 months)
- sipgate GmbH (for 44 months)
- OVH US LLC (for 42 months)
- Tilburg University (for 42 months)
- GSI Helmholtzzentrum für Schwerionenforschung GmbH (for 33 months)
- Soliton Systems K.K. (for 30 months)
- THINline s.r.o. (for 6 months)
- Copenhagen Airports A/S
- Bronze sponsors:
- Evolix (for 123 months)
- Seznam.cz, a.s. (for 123 months)
- Intevation GmbH (for 120 months)
- Linuxhotel GmbH (for 120 months)
- Daevel SARL (for 119 months)
- Bitfolk LTD (for 118 months)
- Megaspace Internet Services GmbH (for 118 months)
- Greenbone AG (for 117 months)
- NUMLOG (for 117 months)
- WinGo AG (for 116 months)
- Entr’ouvert (for 107 months)
- Adfinis AG (for 105 months)
- Tesorion (for 100 months)
- GNI MEDIA (for 99 months)
- Laboratoire LEGI - UMR 5519 / CNRS (for 99 months)
- Bearstech (for 91 months)
- LiHAS (for 91 months)
- Catalyst IT Ltd (for 86 months)
- Supagro (for 81 months)
- Demarcq SAS (for 80 months)
- Université Grenoble Alpes (for 66 months)
- TouchWeb SAS (for 58 months)
- SPiN AG (for 55 months)
- CoreFiling (for 51 months)
- Institut des sciences cognitives Marc Jeannerod (for 46 months)
- Observatoire des Sciences de l’Univers de Grenoble (for 42 months)
- Tem Innovations GmbH (for 37 months)
- WordFinder.pro (for 36 months)
- CNRS DT INSU Résif (for 35 months)
- Alter Way (for 28 months)
- Institut Camille Jordan (for 18 months)
- SOBIS Software GmbH (for 3 months)
Reproducible Builds (diffoscope): diffoscope 280 released
The diffoscope maintainers are pleased to announce the release of diffoscope version 280. This version includes the following changes:
[ Chris Lamb ] * Drop Depends on deprecated python3-pkg-resources. (Closes: #1083362)You find out more by visiting the project homepage.
KDE Ships Frameworks 6.7.0
Friday, 11 October 2024
KDE today announces the release of KDE Frameworks 6.7.0.
KDE Frameworks are 72 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the KDE Frameworks release announcement.
This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.
New in this version Breeze Icons- Delete 32px colorful folder action icon symlink. Commit. Fixes bug #478493
- Add new knotes-symbolic.svg icon (22/32/48). Commit. Fixes bug #398901
- Format system-suspend-inhibited, system-suspend-uninhibited. Commit.
- Redesign system-suspend-inhibited, system-suspend-uninhibited. Commit.
- Fix recoloring in applications-multimedia-symbolic and applications-engineering-symbolic. Commit. Fixes bug #492879
- Add show-background icon. Commit. See bug #472863
- Merge output targets from multiple qt6_target_qml_sources() calls. Commit.
- Don't install QML files on Android. Commit.
- Propagate OUTPUT_TARGETS of qt6_target_qml_sources to the caller. Commit.
- Port Qt doc generation to qhelpgenerator. Commit.
- Correctly forward the OUTPUT_TARGETS argument of qt6_add_qml_module(). Commit.
- Set install destination for object files. Commit.
- Upstream FindGLIB2.cmake changes from Qt. Commit.
- KDEClangFormat: Ignore source files being in _install folder. Commit.
- Reenable individual targets for clang-format to enable better status reporting an parallelization. Commit.
- K7zip: prevent crash when archive has no modification times for files. Commit.
- Silence false positive clazy checks. Commit.
- Drop obsolete includes and HAVE_X11. Commit.
- Always show title and caption in tooltip if truncated. Commit.
- Make unit tests work with a static Qt build. Commit.
- General/widgetStyle -> KDE/widgetStyle. Commit.
- Make unit tests work with a static Qt build. Commit.
- Kcoreaddonsplugin: Link against Qt6::Network. Commit.
- Restore KProcess on Android. Commit.
- Don't build kprocesstest for Android/iOS. Commit.
- Fix build on ios. Commit.
- Qpixmapitem: prevent a crash when there are no window yet. Commit.
- Provide option to enable relocatable docbook files on non WIN32 platforms. Commit.
- KCountryFlagEmoji: Improve fitting to the icon's bounding box. Commit.
- KCountryFlagEmoji: Fix emoji representation for non-country codes. Commit.
- KCountryFlagEmoji: Add test and demo cases for non-coutry codes. Commit.
- Fix window insets foreground coloring on older Android versions. Commit.
- Fix build with Qt < 6.7. Commit.
- Fix color luma computation for Android window insets. Commit.
- WaylandClipboard: fix QMimeData::urls() not working. Commit.
- Update version for window insets API to match reality. Commit.
- Add QML bindings for KWindowInsetsControllert. Commit.
- Add KWindowInsetsController. Commit.
- WaylandClipboard: make sure format list doesn't have duplicate items. Commit.
- Holiday_si_sl: added missing Slovenian commemoration day. Commit.
- Make KTranscript work in static builds. Commit.
- Make QML API unit test work with static Qt builds. Commit.
- Fix endianness bug in PCX reader on big endian architectures. Commit.
- Fixed read of BGR32 and RGB555 formats. Commit.
- FIxed comparison of unsigned expression. Commit.
- Raw: Getting the image size does not need unpacking. Commit.
- [OpenFileManagerWindowJob] Fix crash when falling back to KRunStrategy. Commit. Fixes bug #486494
- Previewjob: Use .cache as temp folder, delete temp file after use. Commit. Fixes bug #494096. See bug #494061
- KFileItemActions: Try reading X-KDE-Show-In-Submenu as bool instead of string. Commit.
- KFilePlacesView: have setUrl() handle trailing slashes in place URLs. Commit.
- KFilePlacesItem: Use Solid to find home mount point. Commit.
- Fileitem,file_unix: simplify types for stat. Commit.
- Remove one level of three nesting in kdevtemplate. Commit.
- Knewfilemenutest: cleanup. Commit.
- Knewfilemenutest: test files and folders in ~/Templates. Commit.
- ConnectionBackenp: fix passing errorString. Commit.
- Knewfilemenu: Make ~/Templates work by simply placing files and folders there. Commit. Fixes bug #191632
- KFilePlacesItem: Cache groupType. Commit.
- Previewjob: avoid calling mkdir for path with two slashs. Commit.
- Add since info for new API. Commit.
- Re-enable cachegen on Android. Commit.
- Create CMake config file only once all build parameters are known. Commit.
- Fix unit tests when using a static build. Commit.
- PlatformTheme: fix crash when item is being destroyed. Commit.
- OverlaySheet: make default title vertically center aligned. Commit. Fixes bug #489357
- Fix clang-format version imcompatibilities and avoid turning formatting of. Commit.
- Dialog: Take header width into account, small fix for footerToolbar width. Commit.
- Workaround on incorrect palette update. Commit. Fixes bug #493654
- Platform: Check if weak pointer is expired in PlatformThemeChangeTracker ctor. Commit. Fixes bug #493652
- Dialog: Use footer buttons width if its wider than content. Commit.
- Fix sidebar text color in systemsettings. Commit.
- Use disabled text colors also for inherit-ing Theme instances. Commit. Fixes bug #433256
- Autotests/tst_theme: Add a test that verifies only one signal emission happens. Commit.
- Autotests/tst_theme: Remove waiting for events. Commit.
- Autotests/tst_theme: Explicitly mark root test objects as not inheriting. Commit.
- Add PlatformThemeChangeTracker to BasicTheme::sync(). Commit.
- Platform: Replace PlatformTheme::queueChildUpdate with ChangeTracker::Data flag. Commit.
- Platform: Don't use queued signals for batching change signals in PlatformTheme. Commit.
- Fix NavigationTabBar sizing on mobile. Commit.
- ContextualHelpButton: Clip to avoid text overflow. Commit.
- ContextualHelpButton: Fix flickering when the popup covers the button. Commit. Fixes bug #489688
- ColumnView currently allows having a QObject item inside its children list. Commit.
- ToolBarLayout: Add support for actions that are separators. Commit.
- Don't emit twice slotEntryChanged. Commit. See bug #492557
- Qtquick: make sort/filter buttons like Discover/kcms. Commit.
- Fix Android notification permission check. Commit.
- Ensure notification permission request callback is run on the right thread. Commit.
- Document flatpak manifest requirements. Commit.
- Fix typo in docs. Commit.
- Port away from deprecated KPluralHandlingSpinBox. Commit.
- Fix unexpected space indentation in Go var group. Commit. Fixes bug #487054
- Read dir kateconfig on view creation. Commit. Fixes bug #489600
- Fix pressing on } inserts two lines instead of one. Commit. Fixes bug #479717
- Dont remove trailing spaces in markdown by default. Commit. Fixes bug #451648
- Multicursors: Avoid indenting the sameline twice. Commit.
- Blockmode: repair indent when the cursor is in the first column. Commit.
- Multicursor: Fix indent with multiple cursors. Commit.
- With latest syntax definition, more tests pass for ruby. Commit.
- Use more views. Commit.
- Avoid double signal emission. Commit.
- Less deprecated calls, works locally. Commit.
- Store multiline ranges spanning multiple blocks in TextBuffer. Commit.
- Remove MovingRange caching in TextBlock. Commit.
- Add hint the file might got moved. Commit. Fixes bug #476071
- Dont create selection highlights with multiple selections. Commit.
- Optimize killLine for multiple cursors. Commit.
- Completion: Allow async population of documentation. Commit.
- More const to avoid wrong use of these members. Commit.
- Ensure modify the renderer that is used for printing. Commit. Fixes bug #465526. Fixes bug #488605. Fixes bug #487081. Fixes bug #483550
- Fix text insertion with multiple cursors at same position. Commit. Fixes bug #492869
- Add command names for "Remove Spaces" and "Keep Extra Spaces". Commit.
- Minimap now follows the theme also for search matches. Commit.
- Run clang-format. Commit.
- Fix merging of selections in opposite directions. Commit. See bug #492869
- Fix secondary cursor at boundary of selection doesn't get removed. Commit. See bug #492869
- Fix warnings. Commit.
- Build master ECM as part of the Flatpak build. Commit.
- Fix crash with older Qt. Commit. Fixes bug #493060
- Fix build against a static Qt. Commit.
- KDateComboBox: emit dateEntered() on FocusOut. Commit.
- Correctly read manually-specified ipv6 addresses from Networkmanager. Commit. Fixes bug #476008. Fixes bug #453453
- Simplify loops and avoid creating iterator on temporary. Commit.
- Use static regex for reusable objects. Commit.
- [imgur] Restrict to actually supported MIME types. Commit.
- Add extraJsonTranslationPaths.txt file for purpose specific translations. Commit.
- Ensure KPlugin object contains no unstandardized keys. Commit.
- Kquickstyleitem: Don't crash if colors changed and style option is null. Commit.
- Kirigamiintegration: Track changes to PlatformTheme where needed. Commit.
- TextFieldContextMenu: Open menu by keyPressed at TextField.cursorRectangle position. Commit.
- Fstab: add missing signal override. Commit.
- Fstab: Emit accessibilityChanged only when actually changed. Commit.
- Get rid of implicit QString and QChar conversions. Commit.
- Get rid of implicit QByteArray to const char* conversions. Commit.
- [Fstab] Minor cleanups (new style connect, extraneous include). Commit.
- [Fstab] Remove mntent wrapper macros. Commit.
- [Fstab] Remove remnants of Solaris support. Commit.
- Fail if none of the plugins can be build. Commit.
- Search for private link dependencies in static builds. Commit.
- Upload the uncompressed files. Commit.
- Odin: add missing items, fix attribute, add directive. Commit.
- Swift: fix detection of end of protocol method declaration. Commit. Fixes bug #493459
- Indexer: treats 1-character StringDetect as a DetectChar for unreachable rules and the merge suggestion. Commit.
- Indexer: check that WordDetect does not contain spaces at the beginning and end of text. Commit.
- Simplify installed xml syntax files to speed up reading. Commit.
- Indexer: replace some QString with QStringView and QLatin1Char with char16_t literal. Commit.
- Indexer: fix default value for char with LineContinuation. Commit.
- Orgmode.xml: Fix orgmode syntax highlighting not ending properly. Commit.
- Jira, Markdown, Org Mode: use rhtml syntax with erb language. Commit.
- Haml: complete the syntax and fix the highlighting of Ruby line following the change in ruby.xml. Commit.
- Ruby: fix %W, dot member, some parenthesis ; add ?c, escape char, etc. Commit. Fixes bug #488014
- Gleam: Minor modifications to syntax and example file. Commit.
- Remove truncase from Common Lisp. Commit.
FSF Events: Executive director Zoë Kooyman speaks on free software being the tech we want at The Tech We Want Online Summit on October 17 at 13:30 UTC
KDE neon Rebased on Ubuntu 24.04 LTS
We have just switched on the upgrade for KDE neon to rebase on Ubuntu 24.04 LTS.
We do this every two years and the 22.04 LTS base was getting increasingly crusty with old Pipewire causing problems and packages like Krita not compiling at all.
Follow the Noble Upgrade instructions or just click the notification that should appear soon.
mark.ie: Cloning Content in a LocalGov Drupal website
This week as part of my "Editor Experience" work for LocalGov Drupal, I worked on creating a feature to allow editors to clone pages of their sites.
Kubuntu 24.10 Oracular Oriole Released
The Kubuntu Team is happy to announce that Kubuntu 24.10 has been released, featuring the new and beautiful KDE Plasma 6.1 simple by default, powerful when needed.
Codenamed “Oracular Oriole”, Kubuntu 24.10 continues our tradition of giving you Friendly Computing by integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution.
Under the hood, there have been updates to many core packages, including a new 6.11 based kernel, KDE Frameworks 5.116 and 6.6.0, KDE Plasma 6.1 and many updated KDE gear applications.
Kubuntu 24.10 with Plasma 6.1Kubuntu has seen many updates for other applications, both in our default install, and installable from the Ubuntu archive.
Applications for core day-to-day usage are included and updated, such as Firefox, and LibreOffice.
For a list of other application updates, and known bugs be sure to read our release notes.
Wayland as default Plasma session.The Plasma wayland session is now the default option in sddm (display manager login screen). An X11 session can be selected instead if desired. The last used session type will be remembered, so you do not have to switch type on each login.
Download Kubuntu 24.10, or learn how to upgrade from 24.04 LTS.
Note: For upgrades from 24.04, there may a delay of a few hours to days between the official release announcements and the Ubuntu Release Team enabling upgrades.
Qt for Python release: 6.8 is out now!
We’re very happy to announce the latest release of Qt for Python 6.8. With every new release, we try to bring great things with Qt's new features and new trending ideas. For your convenience, you can check out what's new in Qt for Python 6.8 and what’s improved, along with the entire change log.
Real Python: Quiz: Structural Pattern Matching
In this quiz, you’ll test your understanding of Structural Pattern Matching in Python.
You’ll revisit the syntax of the match statement and case clauses, explore various types of patterns supported by Python, and learn about guards, unions, aliases, and name binding.
[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]
Rahmat Akintola: Voices of the Open Source AI Definition
The Open Source Initiative (OSI) is running a blog series to introduce some of the people who have been actively involved in the Open Source AI Definition (OSAID) co-design process. The co-design methodology allows for the integration of diverging perspectives into one just, cohesive and feasible standard. Support and contribution from a significant and broad group of stakeholders is imperative to the Open Source process and is proven to bring diverse issues to light, deliver swift outputs and garner community buy-in.
This series features the voices of the volunteers who have helped shape and are shaping the Definition.
Meet Rahmat AkintolaWhat’s your background related to Open Source and AI?
Sure. I’ll start with Open Source. My journey began at PyCon Africa in 2019, where I participated in a hackathon on Cookiecutter. At the time, I had just transitioned into web development, and I was looking for ways to improve my skills beyond personal projects. So, I joined the Cookiecutter Academy at Python Africa in 2019. That’s how I got introduced to Open Source.
Since then, I’ve been contributing regularly, starting with one-off contributions to different projects. These days, I primarily focus on code and documentation contributions, mainly in web development.
As for AI, my journey started with data science. I had been working as a program manager and was part of the Women in Machine Learning and Data Science community in Accra, which was looking for volunteers. Coincidentally, I had lost my job at the time, so I applied for the program manager role and got it. That experience sparked my interest in AI. I started learning more about machine learning and AI, and I needed to build my domain knowledge to help with my role in the community.
I’ve worked on traditional models like linear and logistic regression through various courses. Recently, as part of our community, we organized a “Mathematics for Machine Learning” boot camp, where we worked on projects related to reinforcement learning and logistic regression. One dataset I worked with involved predicting BP (blood pressure) levels in the US. The task was to assess the risk of developing hypertension based on various factors.
What motivated you to join this co-design process to define Open Source AI?
The Open Source AI journey started when I was informed about a virtual co-design process that was reaching out to different communities, including mine. As the program lead, I saw it as an opportunity to merge my two passions—Open Source and AI.
I volunteered and worked on testing the OpenCV workbook, as I was using OpenCV at the time. I participated in the first phase, which focused on determining whether certain datasets needed to be open. Unfortunately, I couldn’t participate in the validation phase because I was involved in the mathematics boot camp, but I followed the discussions closely.
When the opportunity came up to participate in the co-design process, I saw it as a chance to bridge my work in Open Source web development and my growing interest in AI. It felt like the perfect moment. I was already using OpenCV, which happened to be part of the AI systems under review, so I jumped right in.
Through the process, I realized that defining Open Source AI goes beyond just using tools or making code contributions—it involves a deep understanding of data, legality, and the broader system.
How did you get invited to speak at the Deep Learning Indaba conference in Dakar? How was the conference experience? Did you make any meaningful connections?
As for speaking at Deep Learning Indaba, the opportunity came unexpectedly. One day, Mer Joyce (the OSAID co-design organizer) sent an email offering a chance to speak on Open Source AI at the conference. I had previously applied to attend but didn’t get in, so I jumped on this opportunity. We used a presentation similar to one May had given at Open Source Community Africa.
I made excellent connections. The conference itself was amazing—though the food and the Senegal experience also played a part! There were many AI and machine learning researchers, and I learned new concepts, like using JAX, which was introduced as an alternative to some common frameworks. The tutorials were well-targeted at beginners, which was perfect for me.
On a personal level, it was great to connect with academics. I’m considering applying for a master’s or Ph.D., and the conference provided an opportunity to ask questions and receive guidance.
Why do you think AI should be Open Source?
AI is becoming a significant part of our lives. I work with the Meltwater Entrepreneurial School of Technology (MEST) as a technical lead, and we use AI for various training purposes. Opening up parts of AI systems allows others to adapt and refine them to suit their needs, especially in localized contexts. For example, I saw someone on Twitter excited about building a GPT for dating, customizing it to ask specific questions.
This ability for people to tweak and refine AI models, even without building them from scratch, is important. Open-sourcing AI enables more innovation and helps tailor models for specific needs, which is why I believe it should be open to an extent.
Has your personal definition of Open Source AI changed along the way? What new perspectives or ideas did you encounter while participating in the co-design process?
One new perspective I gained was on the legal and data availability aspects of AI. Before this, I had never really considered the legal side of things, but during the co-design process, it became clear that these elements are crucial in defining Open Source AI systems. It’s more than just contributing code—it’s about ensuring compliance with legal frameworks and making sure data is available and usable.
What do you think the primary benefit will be once there is a clear definition of Open Source AI?
A clear definition would help people understand that Open Source AI involves more than just attaching an MIT or Apache license to a project on GitHub. There’s more complexity around sharing models, data and parameters.
For instance, I was once asked whether using an “Open Source” large language model like LLaMA meant the data had to be open too. A well-defined standard would provide guidance for questions like these, ensuring people understand the legal and technical aspects of making their AI systems Open Source.
What do you think are the next steps for the community involved in Open Source AI?
In Africa, I think the next step is spreading awareness about the Open Source AI Definition. Many people are still unaware of the complexities, and there’s still a tendency to assume that adding an Open Source license to a project automatically makes it open. Building collaborations with local communities to share this information is important.
For women, especially in Africa, visibility is key. When women see others doing similar work, they feel encouraged to join. Representation and community engagement play significant roles in driving diversity in Open Source AI.
How to get involvedThe OSAID co-design process is open to everyone interested in collaborating. There are many ways to get involved:
- Join the forum: share your comment on the drafts.
- Leave comment on the latest draft: provide precise feedback on the text of the latest draft.
- Follow the weekly recaps: subscribe to our monthly newsletter and blog to be kept up-to-date.
- Join the town hall meetings: we’re increasing the frequency to weekly meetings where you can learn more, ask questions and share your thoughts.
- Join the workshops and scheduled conferences: meet the OSI and other participants at in-person events around the world.
Kirigami Addons 1.5
Kirigami Addons is out. This releases contains mostly code cleanup and minor improvements. There is netherless a few relevant changes. Thanks to everyone who contributed some code.
New KAppTemplate’s templateA new KAppTemplate is available as a good starting point for application that manage multimedia libraries. It is based on shared design of Peruse, Arianna and the WIP Calligra Launcher.
Hopefully it helps people who want to develop game launchers and other type of specialized multimedia applications.
More templates are planned (e.g. for chat applications), so stay tunned!
FormCardFormCard is the part of Kirigami Addons that received the most changes in this release. First of all, FormCard now use more consistent spacing and padding, which slighly less horizontal padding. Descriptions for radio and checkbox delegates are also put underneath the delegate’s main text and checkbox, in an effort to make FormCard a bit more compact.
Before AfterAdditionally FormComboBoxDelegate now lets you display an inline status similar to that is available in other FormCard’s delegates.
Finally FormCard.AboutKDE was renamed to FormCard.AboutKDEPage. This improve the naming consistency with other page compoenents. A compatibility wrapper on top of AboutKDEPage named AboutKDE is still available to not break any existing applications.
DeprecationsThe Banner component is now deprecated. Kirigami.InlineMessage now has a position parameter which can be set to Header or Footer. Additionally with KDE Frameworks 6.8 Kirigami.InlineMessage will look exactly the same as Banner! So there is no more reasons for this component to exists in Kirigami Addons.
OtherKirigami Addons supports static builds with a recent enough version of extra-cmake-modules.
Packager SectionYou can find the package on download.kde.org and it has been signed with my GPG key.
PyCharm: How I do Django APIs in PyCharm
I learn so much from watching conference talks, especially live, when I’m vibing with the crowd. But sometimes I watch and think: “Wow, I wish I could show you how awesome that would be in PyCharm.”
That just happened. Here’s the explainer, with a little special something at the end.
Hello, DjangoConfI recently attended DjangoConf 2024 which kicked off this year’s DSF-PyCharm fundraiser. I attended Felipe’s DRF tutorial where he showed off using PyCharm and even a little bit about endpoints.
Afterwards, I ran into a PyCharm fan who told me what he really likes when using PyCharm for Django. It matched what I really like. Hence, a blog post.
The end is the pointMy superfan friend was an early adopter of endpoints, our feature for rethinking the API developer experience (DX) in Django, FastAPI, and Flask. Me too. It’s cool to have a listing of endpoints, jumping to the definition, and most of all – issuing an HTTP request right there in the IDE. No going out to Postman.
I covered endpoints and the HTTP client in my previous blog post. One extra point: he said Postman pricing is going up. I guess I should talk more about the HTTP Client.
Always be debuggingMost folks know that I’m a debugger stan, probably because I just won’t shut up about it. It turns out that he also uses the debugger first, meaning he runs the Django server, under the debugger, all the time, even when he isn’t debugging.
Why? First, it’s so fast, you don’t notice the speed hit. As he also knew, Python 3.12 lowers the impact of debugging and PyCharm uses this automatically. The bigger point though: when you want to poke around, you don’t need to stop the regular “run”, launch under “debug”, then return to “run.” That’s disruptive, so people just do print. Which makes me a sad panda.
If you’re always debugging, then poking around is already RIGHT THERE. Even if you don’t have a bug and just want to investigate. Even if you are in a template.
This is great with endpoints, as you can click a breakpoint in your code and issue a request without leaving the tool.
He made one last point – PyCharm’s Django support and debugger is more mature and polished. We’ve been doing this for a while!
I didn’t know there would be a testThere’s one more step to the higher-zen of using PyCharm to the fullest with Django. Why use the browser or an HTTP client at all? Why not just sit in a test module and let PyCharm + pytest bring joy to your world? In fact – don’t even run Django. No server process, less hassle.
Django makes it really easy to issue fake requests in a test, get the results back, and make sure things are cool. I like having my code on the left, my test on the right, and the test output on the bottom. In fact, I also like combining Always Be Testing with Always Be Debugging, which makes it crazy-easy to stop in the middle of a view and see what’s going on.
I like it so much, here’s a little video:
This works great for how code works. You can skip going to the browser, reloading, and poking around. You stay in the IDE, the flow. But there’s a catch.
Seeing is believingSometimes you need to see how the page looks. In the browser. With your eyeballs. Any chance PyCharm can improve the DX for this?
As it turns out, in 2023.3 we shipped Django Preview, a feature-rich browser in the IDE that keeps up as you type.
A love letter to DjangoThis concludes my speaking from the heart about my way of doing Django API development in PyCharm: endpoints, debugger, testing, and preview.
But I’d like to close by speaking from the heart about Django, leading with an odd little twist of fate about Django killing my project.
Annertech: DrupalCon Barcelona: Our highlights
DrupalCon Barcelona 2024 was one of our busiest yet. We were a platinum sponsor, sponsored the contribution room, had numerous social activities (including Trivia Night), and Annertechies took to the mic at least seven times.
Gunnar Wolf: Started a guide to writing FUSE filesystems in Python
As DebConf22 was coming to an end, in Kosovo, talking with Eeveelweezel they invited me to prepare a talk to give for the Chicago Python User Group. I replied that I’m not really that much of a Python guy… But would think about a topic. Two years passed. I meet Eeveelweezel again for DebConf24 in Busan, South Korea. And the topic came up again. I had thought of some ideas, but none really pleased me. Again, I do write some Python when needed, and I teach using Python, as it’s the language I find my students can best cope with. But delivering a talk to ChiPy?
On the other hand, I have long used a very simplistic and limited filesystem I’ve designed as an implementation project at class: FIUnamFS (for “Facultad de Ingeniería, Universidad Nacional Autónoma de México”: the Engineering Faculty for Mexico’s National University, where I teach. Sorry, the link is in Spanish — but you will find several implementations of it from the students 😉). It is a toy filesystem, with as many bad characteristics you can think of, but easy to specify and implement. It is based on contiguous file allocation, has no support for sub-directories, and is often limited to the size of a 1.44MB floppy disk.
As I give this filesystem as a project to my students (and not as a mere homework), I always ask them to try and provide a good, polished, professional interface, not just the simplistic menu I often get. And I tell them the best possible interface would be if they provide support for FIUnamFS transparently, usable by the user without thinking too much about it. With high probability, that would mean: Use FUSE.
But, in the six semesters I’ve used this project (with 30-40 students per semester group), only one student has bitten the bullet and presented a FUSE implementation.
Maybe this is because it’s not easy to understand how to build a FUSE-based filesystem from a high-level language such as Python? Yes, I’ve seen several implementation examples and even nice web pages (i.e. the examples shipped with thepython-fuse module Stavros’ passthrough filesystem, Dave Filesystem based upon, and further explaining, Stavros’, and several others) explaining how to provide basic functionality. I found a particularly useful presentation by Matteo Bertozzi presented ~15 years ago at PyCon4… But none of those is IMO followable enough by itself. Also, most of them are very old (maybe the world is telling me something that I refuse to understand?).
And of course, there isn’t a single interface to work from. In Python only, we can find python-fuse, Pyfuse, Fusepy… Where to start from?
…So I setup to try and help.
Over the past couple of weeks, I have been slowly working on my own version, and presenting it as a progressive set of tasks, adding filesystem calls, and being careful to thoroughly document what I write (but… maybe my documentation ends up obfuscating the intent? I hope not — and, read on, I’ve provided some remediation).
I registered a GitLab project for a hand-holding guide to writing FUSE-based filesystems in Python. This is a project where I present several working FUSE filesystem implementations, some of them RAM-based, some passthrough-based, and I intend to add to this also filesystems backed on pseudo-block-devices (for implementations such as my FIUnamFS).
So far, I have added five stepwise pieces, starting from the barest possible empty filesystem, and adding system calls (and functionality) until (so far) either a read-write filesystem in RAM with basicstat() support or a read-only passthrough filesystem.
I think providing fun or useful examples is also a good way to get students to use what I’m teaching, so I’ve added some ideas I’ve had: DNS Filesystem, on-the-fly markdown compiling filesystem, unzip filesystem and uncomment filesystem.
They all provide something that could be seen as useful, in a way that’s easy to teach, in just some tens of lines. And, in case my comments/documentation are too long to read, uncommentfs will happily strip all comments and whitespace automatically! 😉
So… I will be delivering my talk tomorrow (2024.10.10, 18:30 GMT-6) at ChiPy (virtually). I am also presenting this talk virtually at Jornadas Regionales de Software Libre in Santa Fe, Argentina, next week (virtually as well). And also in November, in person, at nerdear.la, that will be held in Mexico City for the first time.
Of course, I will also share this project with my students in the next couple of weeks… And hope it manages to lure them into implementing FUSE in Python. At some point, I shall report!
Freexian Collaborators: Debian Contributions: Packaging Pydantic v2, Reworking of glib2.0 for cross bootstrap, Python archive rebuilds and more! (by Anupa Ann Joseph)
Contributing to Debian is part of Freexian’s mission. This article covers the latest achievements of Freexian and their collaborators. All of this is made possible by organizations subscribing to our Long Term Support contracts and consulting services.
Pydantic v2, by Colin WatsonPydantic is a useful library for validating data in Python using type hints: Freexian uses it in a number of projects, including Debusine. Its Debian packaging had been stalled at 1.10.17 in testing for some time, partly due to needing to make sure everything else could cope with the breaking changes introduced in 2.x, but mostly due to needing to sort out packaging of its new Rust dependencies. Several other people (notably Alexandre Detiste, Andreas Tille, Drew Parsons, and Timo Röhling) had made some good progress on this, but nobody had quite got it over the line and it seemed a bit stuck.
Colin upgraded a few Rust libraries to new upstream versions, packaged rust-jiter, and chased various failures in other packages. This eventually allowed getting current versions of both pydantic-core and pydantic into testing. It should now be much easier for us to stay up to date routinely.
Reworking of glib2.0 for cross bootstrap, by Helmut GrohneSimon McVittie (not affiliated with Freexian) earlier restructured the libglib2.0-dev such that it would absorb more functionality and in particular provide tools for working with .gir files. Those tools practically require being run for their host architecture (practically this means running under qemu-user) which is at odds with the requirements of architecture cross bootstrap. The qemu requirement was expressed in package dependencies and also made people unhappy attempting to use libglib2.0-dev for i386 on amd64 without resorting to qemu. The use of qemu in architecture bootstrap is particularly problematic as it tends to not be ready at the time bootstrapping is needed.
As a result, Simon proposed and implemented the introduction of a libgio-2.0-dev package providing a subset of libglib2.0-dev that does not require qemu. Packages should continue to use libglib2.0-dev in their Build-Depends unless involved in architecture bootstrap. Helmut reviewed and tested the implementation and integrated the necessary changes into rebootstrap. He also prepared a patch for libverto to use the new package and proposed adding forward compatibility to glib2.0.
Helmut continued working on adding cross-exe-wrapper to architecture-properties and implemented autopkgtests later improved by Simon. The cross-exe-wrapper package now provides a generic mechanism to a program on a different architecture by using qemu when needed only. For instance, a dependency on cross-exe-wrapper:i386 provides a i686-linux-gnu-cross-exe-wrapper program that can be used to wrap an ELF executable for the i386 architecture. When installed on amd64 or i386 it will skip installing or running qemu, but for other architectures qemu will be used automatically. This facility can be used to support cross building with targeted use of qemu in cases where running host code is unavoidable as is the case for GObject introspection.
This concludes the joint work with Simon and Niels Thykier on glib2.0 and architecture-properties resolving known architecture bootstrap regressions arising from the glib2.0 refactoring earlier this year.
Analyzing binary package metadata, by Helmut GrohneAs Guillem Jover (not affiliated with Freexian) continues to work on adding metadata tracking to dpkg, the question arises how this affects existing packages. The dedup.debian.net infrastructure provides an easy playground to answer such questions, so Helmut gathered file metadata from all binary packages in unstable and performed an explorative analysis. Some results include:
- binutils-mipsen uses wrong file ownership
- /usr-merge is not the only cause for aliasing problems in Debian.
Guillem also performed a cursory analysis and reported other problem categories such as mismatching directory permissions for directories installed by multiple packages and thus gained a better understanding of what consistency checks dpkg can enforce.
Python archive rebuilds, by Stefano RiveraLast month Stefano started to write some tooling to do large-scale rebuilds in debusine, starting with finding packages that had already started to fail to build from source (FTBFS) due to the removal of setup.py test. This month, Stefano did some more rebuilds, starting with experimental versions of dh-python.
During the Python 3.12 transition, we had added a dependency on python3-setuptools to dh-python, to ease the transition. Python 3.12 removed distutils from the stdlib, but many packages were expecting it to still be available. Setuptools contains a version of distutils, and dh-python was a convenient place to depend on setuptools for most package builds. This dependency was never meant to be permanent. A rebuild without it resulted in mass-filing about 340 bugs (and around 80 more by mistake).
A new feature in Python 3.12, was to have unittest’s test runner exit with a non-zero return code, if no tests were run. We added this feature, to be able to detect tests that are not being discovered, by mistake. We are ignoring this failure, as we wouldn’t want to suddenly cause hundreds of packages to fail to build, if they have no tests. Stefano did a rebuild to see how many packages were affected, and found that around 1000 were. The Debian Python community has not come to a conclusion on how to move forward with this.
As soon as Python 3.13 release candidate 2 was available, Stefano did a rebuild of the Python packages in the archive against it. This was a more complex rebuild than the others, as it had to be done in stages. Many packages need other Python packages at build time, typically to run tests. So transitions like this involve some manual bootstrapping, followed by several rounds of builds. Not all packages could be tested, as not all their dependencies support 3.13 yet. The result was around 100 bugs in packages that need work to support Python 3.13. Many other packages will need additional work to properly support Python 3.13, but being able to build (and run tests) is an important first step.
Miscellaneous contributions-
Carles prepared the update of python-pyaarlo package to a new upstream release.
-
Carles worked on updating python-ring-doorbell to a new upstream release. Unfinished, pending to package a new dependency python3-firebase-messaging RFP #1082958 and its dependency python3-http-ece RFP #1083020.
-
Carles improved po-debconf-manager. Main new feature is that it can open Salsa merge requests. Aiming for a lightning talk in MiniDebConf Toulouse (November) to be functional end to end and get feedback from the wider public for this proof of concept.
-
Carles helped one translator to use po-debconf-manager (added compatibility for bullseye, fixed other issues) and reviewed 17 package templates.
-
Colin upgraded the OpenSSH packaging to 9.9p1.
-
Colin upgraded the various YubiHSM packages to new upstream versions, enabled more tests, fixed yubihsm-shell build failures on some 32-bit architectures, made yubihsm-shell build reproducibly, and fixed yubihsm-connector to apply udev rules to existing devices when the package is installed. As usual, bookworm-backports is up to date with all these changes.
-
Colin fixed quite a bit of fallout from setuptools 72.0.0 removing setup.py test, backported a large upstream patch set to make buildbot work with SQLAlchemy 2.0, and upgraded 25 other Python packages to new upstream versions.
-
Enrico worked with Jakob Haufe to get him up to speed for managing sso.debian.org
-
Raphaël did remove spam entries in the list of teams on tracker.debian.org (see #1080446), and he applied a few external contributions, fixing a rendering issue and replacing the DDPO link with a more useful alternative. He also gave feedback on a couple of merge requests that required more work. As part of the analysis of the underlying problem, he suggested to the ftpmasters (via #1083068) to auto-reject packages having the “too-many-contacts” lintian error, and he raised the severity of #1076048 to serious to actually have that 4 year old bug fixed.
-
Raphaël uploaded zim and hamster-time-tracker to fix issues with Python 3.12 getting rid of setuptools. He also uploaded a new gnome-shell-extension-hamster to cope with the upcoming transition to GNOME 47.
-
Helmut sent seven patches and sponsored one upload for cross build failures.
-
Helmut uploaded a Nagios/Icinga plugin check-smart-attributes for monitoring the health of physical disks.
-
Helmut collaborated on sbuild reviewing and improving a MR for refactoring the unshare backend.
-
Helmut sent a patch fixing coinstallability of gcc-defaults.
-
Helmut continued to monitor the evolution of the /usr-move. With more and more key packages such as libvirt or fuse3 fixed. We’re moving into the boring long-tail of the transition.
-
Helmut proposed updating the meson buildsystem in debhelper to use env2mfile.
-
Helmut continued to update patches maintained in rebootstrap. Due to the work on glib2.0 above, rebootstrap moves a lot further, but still fails for any architecture.
-
Santiago reviewed some Merge Request in Salsa CI, such as: !478, proposed by Otto to extend the information about how to use additional runners in the pipeline and !518, proposed by Ahmed to add support for Ubuntu images, that will help to test how some debian packages, including the complex MariaDB are built on Ubuntu.
Santiago also prepared !545, which will make the reprotest job more consistent with the result seen on reproducible-builds.
-
Santiago worked on different tasks related to DebConf 25. Especially he drafted the fundraising brochure (which is almost ready).
-
Thorsten Alteholz uploaded package libcupsfilter to fix the autopkgtest and a dependency problem of this package. After package splix was abandoned by upstream and OpenPrinting.org adopted its maintenance, Thorsten uploaded their first release.
-
Anupa published posts on the Debian Administrators group in LinkedIn and moderated the group, one of the tasks of the Debian Publicity Team.
-
Anupa helped organize DebUtsav 2024. It had over 100 attendees with hand-on sessions on making initial contributions to Linux Kernel, Debian packaging, submitting documentation to Debian wiki and assisting Debian Installations.
KDE Gear 24.08.2
Over 180 individual programs plus dozens of programmer libraries and feature plugins are released simultaneously as part of KDE Gear.
Today they all get new bugfix source releases with updated translations, including:
- dolphin: Ignore trailing slashes when comparing place URLs (Commit)
- kate: Fix session restore of tabs/views of untitled documents (Commit, fixes bug #464703, bug #462112 and bug #462523)
- konsole: Fix a crash when sending OSC 4 (RGB) color outside the 256 range (Commit, fixes bug #494205)
Distro and app store packagers should update their application packages.
- 24.08 release notes for information on tarballs and known issues.
- Package download wiki page
- 24.08.2 source info page
- 24.08.2 full changelog
Ben Hutchings: FOSS activity in September 2024
- I continued to attend and soemtimes chair Debian kernel team meetings
- For the Debian firmware-nonfree package:
- I opened the MRs:
- I reviewed the MRs:
- I merged my own MRs:
- !104: Update to linux-support-6.10.6
- !105: nvidia-graphics: Add versioned Breaks on initramfs-tools to avoid bug #1076539
- I uploaded:
- version 20240709-2 to unstable
- version 20240709-2~bpo12+1 to bookworm-backports
- I respnded to bug reports:
- For the kernel-team repository:
- I reviewed and merged the MR !5: git-format-patch-for-debian: Support for sourcehut
- I deleted some obsolete text from the kernel upload checklist
- For the Debian linux package:
- I announced the end of i386 kernel packages
- I opened or updated the MRs:
- !741: Fix most reproducibility issues
- !1182: [x86] ACPI: Enable ACPI_EC_DEBUGFS as module (Closes: #980555)
- !1188: [arm64] udeb: fix duplicated modules
- !1199: [i386] Stop building kernel packages
- !1200: Backport CI support to bullseye
- !1209: Build fixes for rtla
- !1213: Build fixes for objtool and rtla
- !1215: d/rules.real: Try harder to set the locale to C.UTF-8
- !1218: Clean up udeb configuration
- !1219: Remove d/b/genorig.py in favour of uscan
- !1220: [arm64,armhf] udeb: Add all watchdog drivers to kernel-image
- I reviewed the MRs:
- !675: [arm64] drivers/usb/host: Enable USB_XHCI_PCI_RENESAS as module (Closes: #1032671)
- !1732: [x86] linux-cpupower: Add intel-speed-select command (rebased and merged)
- !1038: debian/rules.real: export LANG = C.UTF-8 for sphinx (closed)
- !1041: Add “-b” flag to genorig.py (closed)
- !1065: Enable UBSAN_BOUNDS and UBSAN_SHIFT (closed)
- !1166: [amd64] Enable CRYPTO_DEV_IAA_CRYPTO (merged)
- !1169: [arm64] Add additional kernel with 64k page size
- !1172: debian/config: add DAMON support for debian kernel (merged)
- !1177: powerpc: Explicitly disable CRASH_DUMP on 32-bit” (merged)
- !1178: mm: set CONFIG_ZONE_DEVICE=y on most 64-bit architectures, not only amd64 (merged)
- !1185: riscv64: fix module duplication detected by kernel-wedge starting with version 2.106 (merged)
- !1186: [arm64] udeb: fix duplicated modules (merged)
- !1192: [loong64] enable LBT, KVM and para-virt support (merged)
- !1193: [arm64] Update rk3588 platform support (merged)
- !1195: [arm64] enable Qualcomm X Elite support (merged)
- !1196: [arm64] include modules for Rockchip RK3588 (closed)
- !1198: Revert “Make linux-libc-dev provide all cross packages” (merged)
- !1204: [arm64] Enable drivers for K3-AM642 SoC on SolidRun HummingBoard-T
- !1207: [rt] Update to 6.11-rc5-rt5 (merged)
- !1208: Support some Wi-Fi 7 devices (merged)
- !1211: Set CONFIG_I2C=y on alpha and sparc64 (closed)
- !1214: [loong64] Enable USB EHCI and OHCI host support (merged)
- I merged my own MRs:
- !741: Fix most reproducibility issues
- !1182: [x86] ACPI: Enable ACPI_EC_DEBUGFS as module (Closes: #980555)
- !1188: [arm64] udeb: fix duplicated modules
- !1199: [i386] Stop building kernel packages
- !1200: Backport CI support to bullseye
- !1209: Build fixes for rtla
- !1215: d/rules.real: Try harder to set the locale to C.UTF-8
- !1218: Clean up udeb configuration
- I uploaded:
- linux-6.1 versions 6.1.106-3~deb11u1, 6.1.106-3~deb11u2, and 6.1.106-3~deb11u3 to bullseye-security
- linux version 6.11-1~exp1 to experimental
- I updated the bullseye-security branch to upstream version 5.10.226
- I responded to bug reports:
- #980555: Missing ec_sys module (fixed)
- #1041484: kernel: hpet_acpi_add: no address or irqs in _CRS (forwarded)
- #1071468: linux-image-amd64: mess left when kernel installation fails (grub treats the uninstalled kernel as existing) (closed)
- #1075855: Kernel panic caused by aacraid module prevents normal boot
- #1076555: linux-image-6.9.9-amd64: boot crash RIP: 0010:kmem_cache_alloc (closed)
- #1078997: gretap tunnel with checksum enabled: some packets have zero checksum (closed)
- #1080975: upgrade 6.1.106 to 6.10.6 failed (reassigned)
- #1081195: devscripts: test-patches KeyError: ‘pae’ (confirmed)
- #1082001: linux-image-6.1.0-25-amd64: TOMOYO LSM rejects execveat(AT_EMPTY_PATH) inside chroot (referred upstream)
- #1081546: new “GPU HANG: ecode 12:1:85dffdfb, in Renderer” regression in i915 driver since 6.10 kernel upgrade (more info requested)
- #1081563: Please consider adding the new Xe Graphics driver for Intel GPUs
- #1081310: Wired ethernet connection disabled.
- I sent patches upstream:
- I sent a new response to Proposal: Switch to linear git history
- For the Debian nfs-utils package:
- I reviewed the MRs:
- I closed my own old bug report #711021: mount.nfs timeout for GETPORT is much too short
- For diffoscope:
- I commented on issue #100: Excessive memory use when comparing Linux Debian .dbg packages to report that the issue still exists, and to provide a reproducer
- I commented on issue #342: Gets killed trying to diff very large (~5GB) images which seems like a duplicate of #100
- I opened the MR !145: Draft: Reduce memory usage by revert to using popen() for diff input and output which fixes #100 but needs work to avoid regressions for other cases
- For the Debian nss-wrapper package, I opened MR !4: Replace wrap-and-sort autopkgtest with a CI job
- For the Debian pam-wrapper package, I opened MR !4: Replace wrap-and-sort autopkgtest with a CI job
- For initramfs-tools:
- I opened the MR !136: Fix copy_file again; expand documentation and add tests
- I reviewed the MRs:
- !66: Add boot script 00_mount_efivarfs mounting efivarfs (closed)
- !84: Allow providing UDEV_WAIT and ROUNDTTT times in environment variables (closed)
- !125: hook-functions: Add more modules based on dracut 90kernel-modules (merged)
- !127: Filter net kernel modules by symbol regexp from dracut
- !134: add losetup-rootfs-img script: boot from rootfs image files
- !135: hook-functions: fixes for Qualcomm platforms
- I responded to bug report #1082647: copy_exec: [regression] ignores trailing slash, installs file as directory name (pending)
- For debian-kernel-handbook:
- I responded (belatedly) to Debian tech-ctte bug #1065416: linux-libc-dev claims to provide linux-libc-dev-ARCH-cross, but it doesn’t do that completely
GNUnet News: GNUnet 0.22.1
This is a bugfix release for gnunet 0.22.0. It addresses some issues in HELLO URI handling and formatting as well as regressions in the DHT subsystem along with other bug fixes.
Links
- Source: https://ftpmirror.gnu.org/gnunet/gnunet-0.22.1.tar.gz ( https://ftpmirror.gnu.org/gnunet/gnunet-0.22.1.tar.gz.sig )
- Source (meson): https://buildbot.gnunet.org/gnunet-0.22.1-meson.tar.gz ( https://buildbot.gnunet.org/gnunet-0.22.1-meson.tar.gz.sig )
- Detailed list of changes: https://git.gnunet.org/gnunet.git/log/?h=v0.22.1
- NEWS: https://git.gnunet.org/gnunet.git/tree/NEWS?h=v0.22.1
- The list of closed issues in the bug tracker: https://bugs.gnunet.org/changelog_page.php?version_id=457
The GPG key used to sign is: 3D11063C10F98D14BD24D1470B0998EF86F59B6A
Note that due to mirror synchronization, not all links may be functional early after the release. For direct access try https://ftp.gnu.org/gnu/gnunet/
How we passed the AI conundrums
Some people believe that full unfettered access to all training data is paramount. This group argues that anything less than all the data would compromise the Open Source principles, forever removing full reproducibility of AI systems, transparency, security and other outcomes. We’ve heard them and we’ve provided a solution rooted in decades of Open Source practice.
To have the chance for powerful Open Source AI systems to exist in any domain, the OSI community has incorporated in the Definition this principle:
An Open Source AI needs to make available three kinds of components: the software used to create the dataset and run the training, the model parameters and the code to run inference, and finally all the data that can be made available legally.
Recognizing that there are four kinds of “data”, each with its own legal frameworks allowing different freedoms of distribution, we bypass what Stephen O’Grady called the “AI conundrums” and give Open Source AI builders a chance to build freedom-respecting alternatives to pretty much any proprietary AI.
Limiting Open source AI only to systems trainable on freely distributable data would relegate Open Source AI to a niche. One of which is that the amount of freely and legally shareable data is a tiny fraction of what is necessary to train powerful systems. Additionally, it’d be excluding Open Source AI from areas where data cannot be shared, like medical or anything dealing with personal or private data. What remains for “Open Source AI” would be tiny. There are abundant motives to reject this limitation.
The fact is, mixing openly distributable and non-distributable data is very similar to a reality we are very familiar with: Open Source software built with proprietary compilers and system libraries.
Is GNU Emacs Open Source software?I’m sure you’d answer yes (and some of you will say “well, actually it’s free software”) and we’ll all agree. Below is a rough diagram of Emacs built for the GNOME desktop on a modern Linux distribution. Emacs depends on a few system libraries that GNOME provides with OSI-Approved Licenses. The whole stack is Open Source these days and one can distribute Emacs on a disk with all its dependencies without too much legal trouble. Imagine scientists who want to freeze the whole environment of an experiment they made; they could package all the pieces of a system like this without trouble and distribute it all with their paper. No problem here.
Now let’s go back to an age when Linux systems weren’t ready. When Stallman started writing Emacs, there was no GNOME and no Linux, no gcc and no glibc. He thought very early on that in order to have more freedom, he had to create a wedge to allow Emacs to run on proprietary software.
Emacs on the latest Solaris versions would look something like this: some pieces like X11 and Gstreamer are Open Source. Others, like libc and others aren’t. The hypothetical scientists from before couldn’t really freeze their full scientific environment. All they could say in their paper was: “We used Emacs from this CVS version, built with gcc version X with these makefile; tar.gz attached” and make a list of the operating system’s version and libraries versions they used. That’s because they have the right only to distribute Emacs, X11, some libraries and not the rest of Solaris.
Is Emacs on Solaris Open Source? Of course it is, even though the source code for the system libraries are not available.
One more question, Emacs on Mac OS: it can only be built with a proprietary compiler on proprietary GUI and other proprietary libraries.
Is Emacs on Mac Open Source? Of course it is. Can you fully study Emacs on Mac OS? For Emacs, yes. For the MacOS components, no. There are many programs that run only on MacOS or Windows: for OSI, those are Open Source. Would someone argue that they’re not “really Open Source” because you can’t see “everything?” Some people might but we’ve learned to live with that, adding governance rules in addition to those of the Open Source Definition. Debian for example requires that programs are Open Source and support multiple hardware platforms; the ASF graduates only projects that are Open Source and have a diverse community of contributors. If you only want to use Open Source applications running on Open Source stacks, you can decide that! Just as you can decide that your company will only acquire Open Source software whose copyright is owned by multiple entities.
These are all additional requirements built on top of the base floor set by the Open Source Definition.
For AI, you can do the same: You can say “I will only use Open Source AI built with open data, because I don’t want to trust anything less than that.” A large organization could say “I will buy only Open Source AI that allows me to audit their full dataset, including unshareable data.” You can do all that. Open Source AI is the floor that you can build on, like the OSD.
Bypassing the conundrumsWe’ve looked for a solution for almost three years and this is it: Require all the data that is legally shareable, and for the other data provide all the details. It’s exactly what we’ve been doing for Open Source software:
You developed a text editor for Mac OS but you can’t share the system libraries? Fine, we’ll fork it: give us all the code you can legally share with an OSI-Approved License and we’ll rip the dependencies and “liberate” it to run on GNU. The editor will be slightly different, like code that runs on some ARM+Linux systems behaves differently on Intel+Windows for the different capabilities of the underlying hardware and OS, but it’s still Open Source.
For Open Source AI it’s a similar dance: You can’t legally give us all the data? Fine, we’ll fork it. For example, you made an AI that recognizes bone cancer in humans but the data can’t be shared. We’ll fork it! Tell us exactly how you built the system, how you trained it, share the code you used, and an anonymized sample of the data you used so we can train on our X-ray images. The system will be slightly different but it’s still Open Source AI.
If we want to have broad availability of powerful alternatives to proprietary AI systems that respect the freedoms of users and deployers, we must recognize conditions that make sense for the domain of AI. These examples of proprietary compilers and system libraries used to build Open Source software prove that there is room for similar conditions when talking about Code, Data and Parameters within the definition of Open Source AI.