※자세한 내용은 영상에서 확인하실 수 있습니다.
datauris gem v1 – (modern) helpers to parse / build data uris (incl. base64)
GNU Guix: Write package definitions in a breeze
More than 28,000 packages are available in Guix today, not counting
third-party channels. That’s a lot—the 5th largest GNU/Linux
distro! But it’s nothing if the one package you
care about is missing. So even you, dear reader, may one day find
yourself defining a package for your beloved deployment tool. This post
introduces a new tool poised to significantly lower the barrier to
writing new packages.
Introducing Guix Packager
Defining
packages
for Guix is not all that hard but, as always, it’s much harder the first
time you do it, especially when starting from a blank page and/or not
being familiar with the programming environment of Guix. Guix
Packager is a new
web user interface to get you started—try
it!. It arrived
right in time as an aid to the packaging
tutorial
given last week at the Workshop on Reproducible Software Environments.
The interface aims to be intuitive: fill in forms on the left
and it produces a correct, ready-to-use package definition on the right.
Importantly, it helps you avoid pitfalls that trip up many newcomers:
- When you add a dependency in one of the “Inputs” fields, it adds the
right variable name in the generated code and imports the right
package
module. - Likewise, you can choose a license and be sure the
license
field
will refer to the right variable representing that license. - You can turn tests on and off, and add configure flags. These
translate to a validarguments
field of your package, letting you
discover the likes of keyword
arguments
and
G-expressions
without having to first dive into the manual.
Pretty cool, no?
Implementation
All the credit for this tool goes to co-worker and intrepid hacker
Philippe Virouleau. A unique combination of paren aversion and web
development superpowers—unique in the Guix community—led
Philippe to develop the whole thing in a glimpse (says Ludovic!).
The purpose was to provide a single view to be able to edit a package recipe,
therefore the application is a single-page application (SPA) written in
using the UI library Philippe is most comfortable with: React,
and MaterialUI for styling the components.
It’s built with TypeScript, and the library
part actually defines all the types needed to manipulate Guix packages and their
components (such as build systems or package sources).
One of the more challenging parts was to be able to provide fast and helpful “search as you
type” results over the 28k+ packages. It required a combination of
MaterialUI’s virtualized inputs,
as well as caching the packages data in the browser’s local storage,
when possible (packaging metadata itself is fetched from
https://guix.gnu.org/packages.json
, a generic representation of the
current package set).
While the feature set provides a great starting point, there are still a few
things that may be worth implementing. For instance, only the GNU and
CMake build systems are supported so far; it would make sense to include
a few others (Python-related ones might be good candidates).
Running a local (development) version of the application can happen on
top of Guix, since—obviously—it’s been developed with the node
version packaged in Guix, using the quite standard packages.json
for
JavaScript dependencies installed through npm
. Contributions
welcome!
Lowering the barrier to entry
This neat tool complements a set of steps we’ve taken over time to make
packaging in Guix approachable. Indeed, while package definitions are
actually code written in the Scheme language, the package
“language”
was designed from the get-go to be
fully declarative—think JSON with parens instead of curly braces and
semicolons. More recently we simplified the way package inputs are
specified with an
eye on making package definitions less intimidating.
The guix import
command
also exists to make it easier to simplify packaging: it can generate a
package definition for anything available in other package
repositories such as PyPI, CRAN, Crates.io, and so forth. If your
preference goes to curly braces rather than parens, it can also convert
a JSON package
description
to Scheme code. Once you have your first .scm
file, guix build
prints hints for common errors such missing module imports (those
#:use-module
stanzas). We also put effort into providing reference
documentation,
a video
tutorial, and
a tutorial for more complex
packages.
Do share your experience with us and
until then, happy packaging!
Acknowledgments
Thanks to Felix Lechner and Timothy Sample for providing feedback on an
earlier draft of this post.
About GNU Guix
GNU Guix is a transactional package manager and
an advanced distribution of the GNU system that respects user
freedom.
Guix can be used on top of any system running the Hurd or the Linux
kernel, or it can be used as a standalone operating system distribution
for i686, x86_64, ARMv7, AArch64 and POWER9 machines.
In addition to standard package management features, Guix supports
transactional upgrades and roll-backs, unprivileged package management,
per-user profiles, and garbage collection. When used as a standalone
GNU/Linux distribution, Guix offers a declarative, stateless approach to
operating system configuration management. Guix is highly customizable
and hackable through Guile
programming interfaces and extensions to the
Scheme language.
New F-Droid releases on IPFS
TWIF generated on Thursday, 23 Nov 2023, Week 47
F-Droid core
Android Apps now on IPFS
New app releases on F-Droid are now being pushed to IPFS too, providing an additional mirroring channel that can be managed more flexibly. If this goes smoothly, we intend to upload all releases on F-Droid to IPFS. In the next F-Droid and Basic alpha versions the IPFS settings get overhauled, thanks to @uniqx
Community News
Tor on Mobile Devices Developer Guide
Guardian Project is working on a guide on how to integrate Tor into a mobile application, touching the broader goal of promoting online privacy and freedom. You can follow the progress here.
@Licaon_Kter’s comments:
Organic Maps: Hike, Bike, Drive Offline was updated to 2023.11.17-17-FDroid
which, besides the usual maps updates, fixes and features, also brings “experimental ‘Details on KAYAK’ affiliate link to hotels”.
Missed in last weeks TWIF, FreePaint got a new signature key from its developer because “something happened to the old key”. We encourage developers to take great care of their keys but I guess this information it’s just not yet very evenly distributed. What does this mean for you? If this is the first time you install the app, just enjoy it, everything is fine. But if you had it installed before version 1.1.0 (4)
please uninstall it and reinstall it. (!14020)
KeePassDX was updated to 4.0.5
after a long hiatus. The issue delaying its update is that the upstream code repo has a historic mistake that can’t be easily fixed (read in more detail here). Security measures set up in the F-Droid build server were blocking this mistake and the team had to provision code to handle such known exceptions.
Removed Apps
4 apps were removed
While Androidacy Module Manager’s license is LGPL-3.0, users are forced to agree to an extra EULA too just to be able to actually start the app. This makes the situation confusing for the users who expect a FOSS app, not restrictions. (#3129)
ForkHub for GitHub is no longer maintained and it can’t even login.
LibGen Mobile and SimpleWeatherForecast depend on servers or services that are no longer accessible.
Newly Added Apps
3 apps were newly added
fWallet – A beautiful cross-platform wallet application for your PkPass files.
Prayer Book for Catholic prayers.
Simple Counter – Keep track of things with a Material You interface.
Updated Apps
153 more apps were updated
- 8Vim Keyboard was updated from
0.16.2
to0.16.3
- AndBible: Bible Study was updated from
5.0.755
to5.0.762
- ANOTHERpass was updated from
1.8.1
to1.8.2
- aTalk was updated from
3.2.1
to3.2.2
- Audile was updated from
1.1.3
to1.1.4
- Audio Share was updated from
0.0.11
to0.0.12
- Auxio was updated from
3.2.0
to3.2.1
- BetterUntis was updated from
4.0.3
to4.1.0-beta01
- Binary Eye was updated from
1.61.0
to1.61.1
- Blitzortung Lightning Monitor was updated from
2.2.1
to2.2.2
- Blood pressure monitor was updated from
1.5.6
to1.5.7
- boQwI’ was updated from
2022.08.12a
to2023.11.20b
- Boxcars was updated from
1.1.1
to1.1.4
- Buses was updated from
1.05
to1.06
- BusTO was updated from
2.1.0
to2.1.1
- Cache Cleaner was updated from
1.8.6
to1.9.2
- Casio G-Shock Smart Sync was updated from
11.0
to11.4
- Chaldea was updated from
2.5.0
to2.5.1
- Cheogram was updated from
2.12.8-3+free
to2.13.0-1+free
- Classical Music Scanner was updated from
1.7.1
to1.7.2
- Classical Music Tagger was updated from
1.9.2
to1.9.3
- Clock You was updated from
6.2
to6.4
- Connect You was updated from
7.1
to8.1
- Conversations was updated from
2.12.12+free
to2.13.0+free
- Copy SMS Code – OTP Helper was updated from
1.7.0
to1.7.1
- Crossword was updated from
1.23
to1.24
- Cryptographic ID was updated from
0.4.3
to0.4.4
- Daily Diary was updated from
1.3.1
to1.4.1
- DAVx⁵ was updated from
4.3.10-ose
to4.3.10-ose
- Deku SMS was updated from
0.25.0
to0.26.0
- DialogMusicPlayer was updated from
v2.1.1
tov2.1.2
- Disroot app was updated from
2.0.6
to2.0.8
- Drinkable was updated from
1.42.1
to1.43.0
- DumpSeeker was updated from
1.2
to1.3
- ente Authenticator was updated from
2.0.15
to2.0.22
- ente – encrypted photo storage was updated from
0.7.108
to0.8.0
- e-Passport Reader was updated from
3.0
to3.1
- Etar – OpenSource Calendar was updated from
1.0.36
to1.0.38
- FairEmail was updated from
1.2123
to1.2127
- Fast Draw was updated from
1.7
to2.0
- F-Droid Build Status was updated from
4.7.0
to5.0.1
- Feeder was updated from
2.6.8
to2.6.9
- Forkgram was updated from
10.2.6.0
to10.2.9.0
- FOSS Browser was updated from
11
to12
- Gauguin was updated from
0.10.0
to0.12.1
- Glider for Hacker News was updated from
2.2.0
to2.3.0
- GLPI Agent was updated from
1.3.0
to1.4.0
- Guileless Bopomofo Keyboard was updated from
1.9.44
to1.9.45
- Hacki for Hacker News was updated from
2.3.1
to2.4.1
- HexViewer was updated from
1.49
to1.50
- HK Transport was updated from
1.0.2
to1.0.3
- HTTP Request Shortcuts was updated from
3.6.0
to3.7.0
- IITC-CE Mobile was updated from
0.37.0
to0.37.1
- Image Toolbox (Resizer) was updated from
2.4.3-alpha02
to2.4.3-alpha03
- Immich was updated from
1.85.0
to1.88.1
- Infomaniak Mail was updated from
1.0.20
to1.1.0
- Inner Breeze was updated from
1.0.8
to1.0.10
- Invoice Ninja was updated from
5.0.139
to5.0.141
- IR Remote was updated from
1.5.6
to1.6.0
- Joplin was updated from
2.13.6
to2.13.7
- JS-Dict was updated from
1.0.3
to1.1.0
- Keep Screen On was updated from
1.12.1
to1.13.1
- KISS Launcher was updated from
3.20.1
to3.21.0
- KitchenOwl was updated from
0.4.14
to0.4.16
- Kotatsu was updated from
6.2.7
to6.3.0
- Les Pas – Photo Album for Nextcloud was updated from
2.9.5
to2.9.6
- LibreRandonaut was updated from
1.0.0
to1.0.1
- LibreTube was updated from
0.19.0
to0.20.1
- Linwood Butterfly was updated from
2.0.0-beta.14
to2.0.0-beta.15
- Massive was updated from
1.185
to2.6
- Mastodon was updated from
2.2.1
to2.2.2
- Mattermost Beta was updated from
2.9.0
to2.10.0
- Mealient was updated from
0.4.1
to0.4.4
- Mightier Amp was updated from
1.0.6
to1.0.7
- Mines3D was updated from
1.4.1
to1.4.2
- Minesweeper – Antimine was updated from
17.5.10 F
to17.6.0 F
- MoasdaWiki App was updated from
3.6.2.1
to3.6.3.1
- monocles chat was updated from
1.7.7.2
to1.7.7.3
- Musify was updated from
6.7.1
to6.8.0
- My Expenses was updated from
3.6.6
to3.6.7.2
- NClientV2 was updated from
3.0.2-stable-release
to3.0.5-stable-release
- neutriNote CE was updated from
4.4.8
to4.4.8b
- Nextcloud Dev was updated from
20231114
to20231121
- NextcloudServices was updated from
1.0-beta16
to1.0-beta17
- Nextcloud Talk was updated from
17.1.2
to17.1.3
- Notesnook – Private notes app was updated from
2.6.8
to2.6.10
- NOVA Video Player was updated from
6.2.34
to6.2.35
- Offi was updated from
12.1.14-aosp
to12.1.15-aosp
- Oinkoin was updated from
1.0.23
to1.0.24
- omWeather was updated from
2.1
to2.2
- OpenFoodFacts was updated from
4.11.0
to4.12.0
- Openreads was updated from
2.1.0
to2.2.0
- OpenTracks was updated from
v4.9.4
tov4.9.5
- OpenVK Legacy was updated from
1.1.207-beta.f
to1.1.213-f
- OUI Lookup and Database was updated from
1.6.0
to1.6.1
- ParkenUlm was updated from
2.0.0
to2.2
- Petals was updated from
3.16.0
to3.17.0
- Phonograph Plus was updated from
1.3.2
to1.4.0
- Pie Launcher was updated from
1.14.2
to1.14.3
- PipePipe was updated from
3.1.5
to3.1.7
- Pocket Paint was updated from
2.11.0
to2.12.0
- Prepaid Balance was updated from
2.4
to2.5
- pretixPRINT was updated from
2.16.2-foss
to2.16.3-foss
- Print was updated from
1.07
to1.08
- Privacy Browser was updated from
3.15.1
to3.16
- Quicksy was updated from
2.12.12+free
to2.13.0+free
- QuickWeather was updated from
2.5.5
to2.5.7
- Quran 16 Line – Quran Revision Helper was updated from
1.1.0
to1.1.1
- Railway station photos was updated from
15.0.3
to15.0.4
- Really Basic Vocab was updated from
3.3.3
to3.3.4
- Record You was updated from
7.1
to7.2
- RustDesk was updated from
1.2.3-1
to1.2.3-2
- Seal was updated from
1.10.0-(F-Droid)
to1.11.0-(F-Droid)
- Shader Editor was updated from
2.31.1
to2.32.0
- SilverDict was updated from
1.1.0
to1.2.1
- Simple Crypto Widget was updated from
8.4.1
to8.4.3
- SimpMusic was updated from
0.1.4-beta
to0.1.6
- Smart AutoClicker was updated from
2.3.6
to2.4.0
- SMS Import / Export was updated from
2.2.0
to2.3.0
- Squawker was updated from
3.5.2
to3.5.3
- SshDaemon was updated from
2.1.10
to2.1.13
- StoneAge was updated from
2.12.8+free
to2.12.12+free
- Super Retro Mega Wars was updated from
0.31.12
to0.31.13
- Syncthing-Fork was updated from
1.26.0.2
to1.26.1.0
- Syncthing was updated from
1.26.0
to1.26.1
- Tailscale was updated from
1.53.115-t6cce5fe00-gab4a672a4eb
to1.55.47-tb88929edf-g0a44d50e8b0
- TaiwanEbookSearcher was updated from
2.1.1
to2.1.2
- Tarnhelm was updated from
1.5.5
to1.6.0
- Tasks.org: Open-source To-Do Lists & Reminders was updated from
13.6
to13.6.2
- Thumb-Key was updated from
2.5.2
to2.6.1
- TimePlanner was updated from
0.7.8
to0.8.0
- Traccar Client was updated from
7.0
to7.2
- Translate You was updated from
7.1
to8.0
- Tridenta was updated from
1.2
to1.3
- Tuner was updated from
6.4.0
to6.5.0
- Tuner by BillTheFarmer was updated from
1.54
to1.55
- Tuta Mail was updated from
3.118.27
to3.118.30
- twitter2nitter was updated from
1.8
to1.9
- Unciv was updated from
4.8.18
to4.9.0
- Unofficial Golem.de Reader was updated from
1.2.7
to1.2.8
- Unstoppable Wallet was updated from
0.36.0
to0.36.1
- Vibe You was updated from
1.0
to2.0
- Voyager for Lemmy was updated from
1.23.2
to1.24.2
- wallabag was updated from
2.5.0
to2.5.1
- Wall You was updated from
6.1
to6.2
- Wattz was updated from
1.12
to1.13
- Wave Lines Live Wallpaper was updated from
1.13.2
to1.13.3
- wger Workout Manager was updated from
1.5.6
to1.6.2
- Xtra was updated from
2.26.1
to2.26.2
- Yivi was updated from
7.5.2
to7.5.3
- ZipXtract was updated from
3.0
to4.0
- Zulip was updated from
27.218
to27.219
Thank you for reading this week’s TWIF 🙂
Please subscribe to the RSS feed in your favourite RSS application to be updated of new TWIFs when they come up.
You are welcome to join the TWIF forum thread if you have any news from around the community, maybe it will be featured next week 😉
China’s new(ish) SW26010-Pro supercomputer at SC23
Bill Wise Sale Return | Refund Items By Bill | || Mansoor Anwar || (Urdu)
Video by via Dailymotion Source #supermart #departmentalstore #erpsystem How to Refund Whole Bill.How to Refund Selected Bill Items. سافٹ ویئر حاصل کرنے کیلئے رابطہ کریں Detail: Call & SMS +92-332-5173356 WhatsApp https://wa.me/923325173356 =========================================================== iPOS Software with FBR POS Integration (_make your business easier_) Inventory & Account Software for Retail + Whole Sale & Distribution BusinessWe…
Runaway Girl Hides In My Shower
Video by via Dailymotion Source Don’t forget to Follow In the middle of my post-pool shower, a young girl dashed into my stall, clearly seeking refuge. Shortly after, an older man barged into the shower area, frantically looking for her. Once he was gone, the girl expressed her gratitude and left. But, before that, I…
Pilipinas, may pinakamaraming kaso ng shopping scam sa Asya ayon sa isang pag-aaral | 24 Oras
Video by via Dailymotion Source 24 Oras is GMA Network’s flagship newscast, anchored by Mel Tiangco, Vicky Morales and Emil Sumangil. It airs on GMA-7 Mondays to Fridays at 6:30 PM (PHL Time) and on weekends at 5:30 PM. For more videos from 24 Oras, visit http://www.gmanews.tv/24oras. #GMAIntegratedNews #KapusoStream Breaking news and stories from the…