Skip to content

Commit 3d0a4f5

Browse files
andy5995claude
andcommitted
Add GLib/GIO dependency; replace several internal utility functions
- Add glib-2.0 and gio-2.0 as required dependencies (>= 2.50) - Use GLib equivalents for path handling, URL encoding, and directory creation; use FICLONE-based recursive directory move via GIO for moves across btrfs/bcachefs subvolumes - Update CI configs, build-env Dockerfiles, Debian control, and AppImage script to include the new dependency Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 2c10b72 commit 3d0a4f5

20 files changed

Lines changed: 163 additions & 340 deletions

.cirrus.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ common_meson_steps: &common_meson_steps
1616
common_freebsd_steps: &common_freebsd_steps
1717
pkginstall_script:
1818
- pkg update -f
19-
- pkg install -y git meson ninja gettext pkgconf
19+
- pkg install -y git meson ninja gettext pkgconf glib
2020

2121
freebsd_task:
2222
<<: *filter_template
@@ -46,7 +46,7 @@ macos_task:
4646
env:
4747
CIRRUS_CLONE_SUBMODULES: true
4848
pkginstall_script:
49-
- brew install meson ninja ncurses
49+
- brew install meson ninja ncurses glib
5050
setup_script:
5151
- meson setup builddir
5252
<<: *common_meson_steps

.github/workflows/c-cpp.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ jobs:
8787
sudo apt upgrade -y
8888
sudo apt-get install -y \
8989
gettext \
90+
libglib2.0-dev \
9091
meson \
9192
ninja-build
9293
@@ -123,7 +124,7 @@ jobs:
123124
with:
124125
usesh: true
125126
prepare: |
126-
pkg_add gettext-tools git meson ninja
127+
pkg_add gettext-tools git glib2 meson ninja
127128
128129
run: |
129130
meson setup builddir -Db_sanitize=none -Dnls=false ${SETUP_OPTIONS:-} || cat builddir/meson-logs/meson-log.txt
@@ -156,6 +157,7 @@ jobs:
156157
brew update
157158
brew install \
158159
gettext \
160+
glib \
159161
meson \
160162
ninja \
161163
ncurses \
@@ -212,6 +214,7 @@ jobs:
212214
sudo apt-get install -y \
213215
faketime \
214216
gettext \
217+
libglib2.0-dev \
215218
meson \
216219
ninja-build \
217220
xvfb

.github/workflows/coverity.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ jobs:
1414
with:
1515
submodules: false
1616
- name: Install Dependencies
17-
run: sudo -H python3 -m pip install meson ninja
17+
run: |
18+
sudo -H python3 -m pip install meson ninja
19+
sudo apt-get install -y libglib2.0-dev
1820
- run: meson setup builddir
1921
- uses: vapier/coverity-scan-action@v1
2022
with:

ChangeLog

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ rmw (in-progress):
1313
waste folder are on separate subvolumes (#526); use generic FICLONE ioctl
1414
(linux/fs.h) instead of BTRFS_IOC_CLONE, and fall back to 'mv' when
1515
rename() returns EXDEV on a same-device move
16+
* Add GLib/GIO as a dependency; use GLib for directory moves across btrfs
17+
and bcachefs subvolumes (requires glib2 >= 2.50); replace several
18+
internal utility functions with GLib equivalents
1619

1720
2026-04-07
1821

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ the [releases section][releases-url].
5858

5959
### Dependencies
6060

61+
* glib2
6162
* libncursesw (ncurses-devel on some systems, such as CentOS)
6263
* gettext (or use '-Dnls=false' when configuring with meson if you only need English language support)
6364

docker/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ RUN git clone --depth 1 https://github.com/theimpossibleastronaut/rmw \
1111
FROM alpine
1212
COPY --from=0 /tmp/rmw/ /
1313
RUN apk add \
14+
glib \
1415
libmenuw \
1516
mandoc \
1617
musl-fts \

docker/Dockerfile-build-env_alpine

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ RUN apk update && apk upgrade && \
55
gcc \
66
gettext \
77
git \
8+
glib-dev \
89
linux-headers \
910
meson \
1011
musl-dev \
1112
musl-fts-dev \
12-
musl-libintl \
1313
ncurses-dev
1414

1515
CMD ["/bin/sh","-l"]

docker/Dockerfile-build-env_bookworm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ RUN apt-get update \
44
&& apt-get install -y \
55
gettext \
66
git \
7+
libglib2.0-dev \
78
libncurses-dev \
89
meson \
910
ninja-build \

docker/Dockerfile-build-env_tumbleweed

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ RUN zypper --non-interactive refresh && \
66
gettext \
77
gcc \
88
git \
9+
glib2-devel \
910
ncurses-devel \
1011
meson \
1112
ninja && \

meson.build

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ canfigger_dep = dependency(
7272
default_options: 'default_library=static',
7373
)
7474

75+
glib_dep = dependency('glib-2.0', version: '>=2.50')
76+
gio_dep = dependency('gio-2.0', version: '>=2.50')
77+
7578
subdir('src')
7679

7780
main_bin = executable('rmw', 'src/main.c', dependencies: rmw_dep, install: true)

0 commit comments

Comments
 (0)