diff --git a/.gitea/workflows/update-feeds.yml b/.gitea/workflows/update-feeds.yml
new file mode 100644
index 0000000..604a087
--- /dev/null
+++ b/.gitea/workflows/update-feeds.yml
@@ -0,0 +1,33 @@
+name: Update RSS Feeds
+on:
+ schedule:
+ # Every four hours, every day
+ - cron: '0 0 */4 * * *'
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Copy SSH Key
+ run: |
+ mkdir ~/.ssh/
+ echo "Host *" > ~/.ssh/config
+ echo " StrictHostKeyChecking no" >> ~/.ssh/config
+ echo '${{secrets.SSH_PRIVATE_KEY}}' > ~/.ssh/id_rsa
+ chmod 600 ~/.ssh/id_rsa
+
+ - name: Install Prereqs
+ run: |
+ apt update -y
+ apt install python3-requests python3-lxml -y
+
+ - uses: actions/checkout@v3
+ with:
+ submodules: recursive
+
+ - name: Generate Feeds
+ run: |
+ python3 generate_feeds.py
+
+ - name: Deploy to Server
+ run: |
+ scp -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r lwn-*.xml bhays@10.0.0.20:/var/www/html/
\ No newline at end of file
diff --git a/generate_feeds.py b/generate_feeds.py
new file mode 100644
index 0000000..57cd462
--- /dev/null
+++ b/generate_feeds.py
@@ -0,0 +1,20 @@
+import requests
+from lxml import etree as ET
+
+def download_feed(s, url, file, remove_premium=False, fulltext=False):
+ r = s.get(url)
+ tree = ET.ElementTree(ET.fromstring(r.text))
+ root = tree.getroot()
+ for post in tree.iter('item'):
+ if remove_premium and "[$]" in post.find('title').text:
+ root[0].remove(post)
+ ## TODO: full-text parsing
+
+ tree.write(file)
+
+s = requests.Session()
+s.headers.update({'User-Agent': 'FreshRSS/1.23.1 (Linux; https://freshrss.org)'})
+
+download_feed(s, "https://lwn.net/headlines/Features", "lwn-features.xml", remove_premium=True)
+download_feed(s, "https://lwn.net/headlines/rss", "lwn-all.xml", remove_premium=True)
+
diff --git a/lwn-all.xml b/lwn-all.xml
new file mode 100644
index 0000000..3e0ed11
--- /dev/null
+++ b/lwn-all.xml
@@ -0,0 +1,168 @@
+
+
+ LWN.net
+ https://lwn.net
+ LWN.net is a comprehensive source of news and opinions from
+ and about the Linux community. This is the main LWN.net feed,
+ listing all articles which are posted to the site front page.
+
+ en-us
+ Sat, 09 Nov 2024 01:00:55 +0000
+ Sat, 09 Nov 2024 01:00:55 +0000
+ https://www.rssboard.org/rss-specification
+ lwn@lwn.net
+
+
+ Seven more stable kernel updates
+ https://lwn.net/Articles/997525/
+ https://lwn.net/Articles/997525/
+ daroc
+ <p>
+Greg Kroah-Hartman has shared another seven stable kernel updates:
+<a href="https://lwn.net/Articles/997527/">6.6.60</a>,
+<a href="https://lwn.net/Articles/997528/">6.11.7</a>,
+<a href="https://lwn.net/Articles/997529/">6.1.116</a>,
+<a href="https://lwn.net/Articles/997530/">5.15.171</a>,
+<a href="https://lwn.net/Articles/997533/">5.10.229</a>,
+<a href="https://lwn.net/Articles/997535/">5.4.285</a>, and
+<a href="https://lwn.net/Articles/997536/">4.19.323</a>.
+</p>
+ Fri, 08 Nov 2024 16:53:10 +0000
+
+
+ Cohen: gccrs: An alternative compiler for Rust
+ https://lwn.net/Articles/997483/
+ https://lwn.net/Articles/997483/
+ corbet
+ Arthur Cohen has posted <a
+href="https://blog.rust-lang.org/2024/11/07/gccrs-an-alternative-compiler-for-rust.html">a
+detailed introduction to the gccrs project</a> on the Rust Blog, seemingly
+with the goal of convincing the Rust community about the value of the
+project.
+<p>
+<blockquote class="bq">
+ Likewise, many GCC plugins are used for increasing the safety of
+ critical projects such as the Linux kernel, which has recently
+ gained support for the Rust programming language. This makes
+ <tt>gccrs</tt> a useful tool for analyzing unsafe Rust code, and
+ more generally Rust code which has to interact with existing C
+ code. We also want <tt>gccrs</tt> to be a useful tool for
+ <tt>rustc</tt> itself by helping pan out the Rust specification
+ effort with a unique viewpoint - that of a tool trying to replicate
+ another's functionality, oftentimes through careful experimentation
+ and source reading where the existing documentation did not go into
+ enough detail.
+</blockquote>
+<p>
+(LWN last <a href="https://lwn.net/Articles/991199/">looked at gccrs</a> in October).
+ Fri, 08 Nov 2024 15:04:37 +0000
+
+
+ Security updates for Friday
+ https://lwn.net/Articles/997480/
+ https://lwn.net/Articles/997480/
+ daroc
+ Security updates have been issued by <b>AlmaLinux</b> (edk2), <b>Debian</b> (webkit2gtk), <b>Fedora</b> (thunderbird), <b>Oracle</b> (bzip2, container-tools:ol8, edk2, go-toolset:ol8, libtiff, python-idna, python3.11, and python3.12), <b>Slackware</b> (expat), and <b>SUSE</b> (apache2, govulncheck-vulndb, grub2, java-1_8_0-openjdk, python3, python39, qemu, xorg-x11-server, and xwayland).
+
+ Fri, 08 Nov 2024 14:17:02 +0000
+
+
+ Security updates for Thursday
+ https://lwn.net/Articles/997378/
+ https://lwn.net/Articles/997378/
+ jake
+ Security updates have been issued by <b>AlmaLinux</b> (bcc, bpftrace, bzip2, container-tools:rhel8, grafana-pcp, haproxy, kernel, kernel-rt, krb5, libtiff, python-gevent, python3.11, python3.11-urllib3, python3.12, python3.12-urllib3, xmlrpc-c, and xorg-x11-server and xorg-x11-server-Xwayland), <b>Debian</b> (puma and pypy3), <b>Fedora</b> (firefox), <b>Gentoo</b> (libgit2), <b>Mageia</b> (libarchive), <b>SUSE</b> (ghostscript, go1.22-openssl, go1.23-openssl, htmldoc, kmail-account-wizard, libarchive, libgsf, libmozjs-128-0, openssl-3, python-jupyterlab, python-mysql-connector-python, python36, and ruby2.1), and <b>Ubuntu</b> (cinder, linux-aws, linux-aws-6.8, linux-oracle, linux-oracle-6.8, linux-aws, linux-azure-5.4, linux-kvm, linux-oracle, linux-xilinx-zynqmp, and linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency).
+
+ Thu, 07 Nov 2024 16:14:36 +0000
+
+
+ Funding restored for man-page maintenance
+ https://lwn.net/Articles/997193/
+ https://lwn.net/Articles/997193/
+ corbet
+ Man pages maintainer Alejandro Colomar <a
+href="https://lwn.net/Articles/989215/">announced</a> in September that he was suspending
+his work due to a lack of support. He has now <a
+href="https://lwn.net/ml/all/nimzecx26lzxo2v64qjazmisbwfeljpto522wlnauktqesmdoc@gv3yrp64cvug">let
+it be known</a> that funding has been found for the next year at least:
+<p>
+<blockquote class="bq">
+ We've been talking for a couple of months, and we have already
+ agreed to sign a contract through the LF [Linux Foundation], where
+ a number of companies provide the funds for the contract. The
+ contract will cover the next 12 months for the agreed amount, and
+ we should sign it in the following days. Since I've already seen a
+ draft of the contract, and it looks good, I've already started
+ maintaining the project again, starting on Nov 1st.
+</blockquote>
+ Wed, 06 Nov 2024 15:48:15 +0000
+
+
+ Security updates for Wednesday
+ https://lwn.net/Articles/997182/
+ https://lwn.net/Articles/997182/
+ jzb
+ Security updates have been issued by <b>AlmaLinux</b> (libtiff), <b>Debian</b> (context, libheif, and thunderbird), <b>Fedora</b> (php-tcpdf, syncthing, and thunderbird), <b>Gentoo</b> (EditorConfig core C library, Flatpak, Neat VNC, and Ubiquiti UniFi), <b>Oracle</b> (bcc, bpftrace, grafana-pcp, haproxy, kernel, krb5, libtiff, python-gevent, python3.11-urllib3, python3.12-urllib3, and xmlrpc-c), <b>Red Hat</b> (python3.11-urllib3), <b>SUSE</b> (audacity, curl, govulncheck-vulndb, gradle, htmldoc, libgsf, python310, and qbittorrent), and <b>Ubuntu</b> (linux-aws-5.4, linux-oracle-5.4, mpg123, and python-werkzeug).
+
+ Wed, 06 Nov 2024 14:13:03 +0000
+
+
+ LXQt 2.1.0 released
+ https://lwn.net/Articles/997034/
+ https://lwn.net/Articles/997034/
+ jzb
+ <p><a
+href="https://lxqt-project.org/release/2024/11/05/release-lxqt-2-1-0/">Version
+2.1.0</a> of the <a href="https://lxqt-project.org/">LXQt</a>
+lightweight Qt desktop environment has been released. The highlight of
+this release is support for multiple Wayland compositors:</p>
+
+<blockquote class="bq">
+<p>Through its new component <tt>lxqt-wayland-session</tt>, LXQt 2.1.0
+supports 7 Wayland sessions (with Labwc, KWin, Wayfire, Hyprland,
+Sway, River and Niri), has two Wayland back-ends in
+<tt>lxqt-panel</tt> (one for <tt>kwin_wayland</tt> and the other
+general), and will add more later. All LXQt components that are not
+limited to X11 — i.e., most components — work fine on Wayland. [...]</p>
+
+<p><em><strong>Of course, the X11 session will be supported
+indefinitely</strong></em>. Wayland is optional and rather experimental.</p>
+</blockquote>
+ Tue, 05 Nov 2024 15:17:48 +0000
+
+
+ The BPF instruction set architecture is now RFC 9669
+ https://lwn.net/Articles/997002/
+ https://lwn.net/Articles/997002/
+ corbet
+ After a couple of years of effort, the BPF instruction set architecture has
+been accepted as <a href="https://www.rfc-editor.org/rfc/rfc9669.html">RFC
+9669</a>, giving it a standard outside of the in-kernel implementation. <a
+href="https://lwn.net/ml/all/20241105035101.GD41004@maniforge">This message from David
+Vernet</a> (who also contributed <a href="https://lwn.net/Articles/926882/">an article on
+the standardization process</a> last year) describes the process and why it
+is important:
+<p>
+<blockquote class="bq">
+ Though some vendors have already implemented BPF offloading
+ capabilities without having a standardized ISA, others are not
+ quite as risk tolerant. As Christoph [Hellwig] discussed at LSFMM
+ 2022, certain NVMe vendors have expressed an interest in building
+ BPF offloading capabilities for various use cases such as eXpress
+ Resubmission Path (XRP), but they simply can't fund such a project
+ without certain components of BPF being standardized. Hence, the
+ effort to standardize BPF was born.
+</blockquote>
+ Tue, 05 Nov 2024 14:43:37 +0000
+
+
+ Security updates for Tuesday
+ https://lwn.net/Articles/997030/
+ https://lwn.net/Articles/997030/
+ corbet
+ Security updates have been issued by <b>AlmaLinux</b> (firefox, openexr, and thunderbird), <b>Fedora</b> (llama-cpp and python-quart), <b>Oracle</b> (firefox, openexr, thunderbird, and xorg-x11-server and xorg-x11-server-Xwayland), <b>SUSE</b> (chromium, govulncheck-vulndb, openssl-1_1, python311, and python312), and <b>Ubuntu</b> (linux-azure, linux-bluefield, linux-azure, linux-gcp, linux-ibm, openjpeg2, and ruby3.0, ruby3.2, ruby3.3).
+
+ Tue, 05 Nov 2024 14:42:28 +0000
+
+
+
\ No newline at end of file
diff --git a/lwn-features.xml b/lwn-features.xml
new file mode 100644
index 0000000..7f8ea73
--- /dev/null
+++ b/lwn-features.xml
@@ -0,0 +1,218 @@
+
+
+ LWN.net featured content
+ https://lwn.net/Articles/
+ This feed contains pointers to all feature articles (those
+containing LWN original content and posted as standalone items) found on
+the site.
+
+ en-us
+ Sat, 09 Nov 2024 01:01:01 +0000
+ Sat, 09 Nov 2024 01:01:01 +0000
+ https://www.rssboard.org/rss-specification
+ lwn@lwn.net
+
+
+ LWN.net Weekly Edition for October 31, 2024
+ https://lwn.net/Articles/995490/
+ https://lwn.net/Articles/995490/
+ corbet
+ The LWN.net Weekly Edition for October 31, 2024 is available.
+
+ Thu, 31 Oct 2024 00:42:27 +0000
+
+
+ An update on Apple M1/M2 GPU drivers
+ https://lwn.net/Articles/995383/
+ https://lwn.net/Articles/995383/
+ jake
+ The kernel graphics driver for the Apple M1 and M2 GPUs is, rather
+famously, written in Rust, but it has achieved conformance with
+various graphics standards, which is also noteworthy. At the <a
+href="https://indico.freedesktop.org/event/6/">X.Org Developers Conference
+(XDC) 2024</a>, Alyssa Rosenzweig gave an update on the status of the
+driver, along with some news about the kinds of games it can support (<a
+href="https://www.youtube.com/watch?v=TtLP5sAXYKo">YouTube video</a>, <a href="https://indico.freedesktop.org/event/6/contributions/284/attachments/230/310/slides.pdf ">slides</a>).
+There has been lots of progress since her talk at XDC last year (<a
+href="https://www.youtube.com/watch?v=O36VFNdQHsE">YouTube video</a>),
+with, of course, still more to come.
+
+ Wed, 30 Oct 2024 16:23:29 +0000
+
+
+ A new approach to validating test suites
+ https://lwn.net/Articles/995276/
+ https://lwn.net/Articles/995276/
+ daroc
+ <p>
+The first program that Martin Pool ever wrote, he said, had bugs; the ones he's writing
+now most likely have bugs too. The talk Pool gave at
+<a href="https://rustconf.com/">RustConf</a> this year was about a way to try
+to write programs with fewer bugs. He has developed a tool called
+<a href="https://mutants.rs/">
+cargo-mutants</a> that highlights gaps in test coverage by identifying
+functions that can be broken without causing any tests to fail.
+This can be a valuable complement to other testing techniques,
+he explained.
+</p>
+
+ Tue, 29 Oct 2024 17:01:12 +0000
+
+
+ The performance of the Rust compiler
+ https://lwn.net/Articles/995125/
+ https://lwn.net/Articles/995125/
+ daroc
+ <p>
+Sparrow Li presented virtually at
+<a href="https://rustconf.com">
+RustConf</a> 2024 about the current state of and
+future plans for the Rust compiler's performance. The compiler is relatively slow to compile
+large programs, although it has been getting better over time. The next big
+performance improvement to come will be parallelizing the compiler's parsing,
+type-checking, and related operations, but even after that, the project has
+several avenues left to explore.
+</p>
+
+ Mon, 28 Oct 2024 16:10:27 +0000
+
+
+ AutoFDO and Propeller
+ https://lwn.net/Articles/995397/
+ https://lwn.net/Articles/995397/
+ jake
+ Rong Xu and
+Han Shen described the kernel-optimization techniques that Google uses in the <a
+href="https://lpc.events/event/18/sessions/180/#20240918">toolchains
+track</a> at the <a
+href="https://lpc.events/event/18/page/224-lpc-2024-overview">2024 Linux
+Plumbers Conference</a>.
+They talked about <a
+href="https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45290.pdf">automatic
+feedback-directed optimization</a> (AutoFDO), which can be used with the <a
+href="https://research.google/pubs/propeller-a-profile-guided-relinking-optimizer-for-warehouse-scale-applications/">Propeller</a>
+optimizer to produce kernels with better performance using profile
+information gathered from real workloads. There is a fair amount of
+overlap between these tools and the <a
+href="https://github.com/llvm/llvm-project/tree/main/bolt#bolt">BOLT</a>
+post-link optimizer, which was the subject of a <a
+href="https://lwn.net/Articles/993828/">talk</a> that directly preceded this session.
+
+ Mon, 28 Oct 2024 15:15:19 +0000
+
+
+ OSI readies controversial Open AI definition
+ https://lwn.net/Articles/995159/
+ https://lwn.net/Articles/995159/
+ jzb
+ <p>The <a href="https://opensource.org/">Open Source Initiative</a>
+(OSI) has been working on defining <a
+href="https://opensource.org/ai">Open Source AI</a>—that is what
+constitutes an AI system that can be used, studied, modified, and
+shared for any purpose—for almost two
+years. Its <a
+href="https://opensource.org/about/board-of-directors">board</a> will
+be voting on the <a href="https://opensource.org/ai/drafts/the-open-source-ai-definition-1-0-rc2">Open Source AI Definition</a> (OSAID) on Sunday,
+October 27, with the 1.0 version slated to be published on
+October 28. It is never possible to please <em>everyone</em> in
+such an endeavor, and it would be folly to make that a goal. However,
+a number of prominent figures in the open-source community have voiced
+concerns that OSI is setting the bar too low with the OSAID—which
+will undo decades of community work to cajole vendors into adhering to
+or respecting the original <a href="https://opensource.org/osd">Open Source
+Definition</a> (OSD).</p>
+
+ Fri, 25 Oct 2024 21:02:36 +0000
+
+
+ Kernel optimization with BOLT
+ https://lwn.net/Articles/993828/
+ https://lwn.net/Articles/993828/
+ jake
+ A pair of talks in the <a
+href="https://lpc.events/event/18/sessions/180/#20240918">toolchains
+track</a> at the <a
+href="https://lpc.events/event/18/page/224-lpc-2024-overview">2024 Linux
+Plumbers Conference</a> covered different tools that can be used to
+optimize the kernel. First up was Maksim Panchenko to describe the <a
+href="https://github.com/llvm/llvm-project/tree/main/bolt#bolt">binary
+optimization and layout tool</a> (BOLT) that Meta uses on its production
+kernels. It optimizes the kernel binary by rearranging it to improve its
+code locality for
+better performance. A <a href="https://lwn.net/Articles/995397/">subsequent article</a> will cover the second talk, which
+looked at <a
+href="https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45290.pdf">automatic
+feedback-directed optimization</a> (AutoFDO) and other related techniques
+that are used to optimize Google's kernels.
+
+ Fri, 25 Oct 2024 19:39:48 +0000
+
+
+ realloc() and the oversize importance of zero-size objects
+ https://lwn.net/Articles/995196/
+ https://lwn.net/Articles/995196/
+ corbet
+ Small objects can lead to large email threads. In this
+case, the GNU C Library (glibc) community has been having an extensive
+debate over the handling of zero-byte allocations. Specifically, what
+should happen when a program calls <a
+href="https://man7.org/linux/man-pages/man3/malloc.3.html"><tt>realloc()</tt></a>
+specifying a size of zero? This is, it seems, a topic about which some
+people, at least, have strong feelings.
+
+ Thu, 24 Oct 2024 15:36:41 +0000
+
+
+ LWN.net Weekly Edition for October 24, 2024
+ https://lwn.net/Articles/994575/
+ https://lwn.net/Articles/994575/
+ corbet
+ The LWN.net Weekly Edition for October 24, 2024 is available.
+
+ Thu, 24 Oct 2024 00:42:13 +0000
+
+
+ Toward safe transmutation in Rust
+ https://lwn.net/Articles/994334/
+ https://lwn.net/Articles/994334/
+ daroc
+ <p>
+Currently in Rust, there is no efficient and safe way to turn an array of bytes
+into a structure that corresponds to the array. Changing that was the topic of
+Jack Wrenn's talk this year at
+<a href="https://rustconf.com">
+RustConf</a>:
+<a href="https://jack.wrenn.fyi/blog/safety-goggles-for-alchemists/">
+"Safety Goggles for Alchemists"</a>. The goal is to be able to "transmute" —
+Rust's name for this kind of conversion — values into arbitrary user-defined
+types in a safer way. Wrenn justified the approach that the project has taken to
+accomplish this, and spoke about the future work required to stabilize it.
+</p>
+
+ Wed, 23 Oct 2024 17:40:38 +0000
+
+
+ Free-software foundations face fundraising problems
+ https://lwn.net/Articles/993665/
+ https://lwn.net/Articles/993665/
+ jzb
+ <p>In July, at the GNOME <a
+href="https://lwn.net/Articles/983203/">annual general meeting</a> (AGM),
+held at <a
+href="https://foundation.gnome.org/2023/12/20/guadec-2024-in-denver-colorado/">GUADEC
+2024</a>,
+the message from the GNOME Foundation board was that all was well,
+financially speaking. Not <em>great</em>, but the foundation was on a
+break-even budget and expected to go into its next fiscal year with a
+similar budget and headcount. On October 7, however, the board <a
+href="https://foundation.gnome.org/2024/10/07/update-from-the-board-2024-10/">announced</a>
+that it had had to make some cuts, including reducing its staff by
+two people. This is not, however, strictly a GNOME problem: similar
+organizations, such as the Python Software Foundation (PSF), KDE e.V.,
+and the Free Software Foundation Europe (FSFE) are seeing declines in
+fundraising while also being affected by inflation.</p>
+
+ Wed, 23 Oct 2024 14:52:28 +0000
+
+
+
\ No newline at end of file