LWN Weekly Report: 2026년 8월 27일 주요 뉴스

이번 주 LWN.net 위클리 에디션 주요 내용이다. Software Freedom Conservancy가 FOSSY 2026에서 Bambu Lab의 AGPLv3 위반을 정면으로 다뤘는데, 회사가 쓰는 우회 수법이 정확히 AGPL이 막으려고 만들어진 그것이라는 점이 흥미롭다. Linux Foundation이 OSI에 제출한 OpenMDW 라이선스는 종료(termination) 조항 때문에 승인이 난항이고, 커널 7.3 머지 윈도우는 그룹 스케줄링 가중치 계산을 통째로 뜯어고친 변경을 안고 열렸다. 여기에 양자컴퓨터 대비 설정 가이드, 1989년생 커맨드라인 캘린더 Remind, QML 기반 데스크톱 툴킷 Quickshell까지 다룬다.

Bambu Lab의 AGPLv3 위반, AGPL이 막으려던 바로 그 수법

FOSSY 2026에서 Software Freedom Conservancy(SFC)의 Bradley Kühn, Karen Sandler, Denver Gingerich가 3D 프린터 회사 Bambu Lab의 AGPLv3 위반을 주제로 발표했다. 이 사안이 특히 흥미로운 이유는 회사가 쓰는 우회 수법이 정확히 AGPL이 애초에 막으려고 만들어진 그것이기 때문이다.

3D 프린팅 도구 체인의 핵심은 3D 모델을 프린터가 이해하는 언어로 변환하는 “슬라이서(slicer)”다. Alessandro Ranellucci가 만든 Slic3r이 원조이고, 활성 포크가 18개쯤 되는데 가장 유명한 것이 Josef Prusa의 PrusaSlicer다. Ranellucci는 AGPLv3를 고른 이유를 이렇게 말했다. “나는 이 모든 걸 예상했다. 가장 큰 걱정이 누군가 ‘Slic3r as a service’를 할 거라는 점이었으니까.”

2020년 COVID 시기에 시장에 들어온 Bambu Lab은 PrusaSlicer를 개조한 Bambu Studio를 배포하면서 소스 코드도, 소스 제공 약속도 내놓지 않았다. 2022~2023년 커뮤니티 압박으로 소스를 공개하긴 했으나, 첫 릴리스가 대개 그렇듯 실제 대응 소스(corresponding source)는 아니었다. 이 회사는 2025년 기준 500~3,000달러 프린터 시장의 38~48%를 차지한다.

진짜 문제는 그다음이다. Bambu Studio는 실행 중 “추가 파일을 내려받겠느냐”고 묻고, 사용자는 “예”를 누르지 않으면 일부 기능이 동작하지 않는다는 걸 결국 알게 된다. 내려받는 것은 C++로 빌드된 .so 파일 두 개이고, 공개된 소스의 dlopen() 호출에서 이것들이 동적 로드된다는 사실이 그대로 보인다. 그리고 이 얇은 레이어는 네트워크 너머 Bambu Lab 서버에서 돌아가는 3D 애플리케이션을 호출하면서 “키”를 넘긴다. 그 키의 정체는 모든 클라이언트가 동일하게 쓰는 User-Agent 문자열이다.

회사는 이 User-Agent가 DMCA 접근통제 장치라고 주장한다. 하지만 Kühn의 말대로 “Affero GPL 애플리케이션의 일부를 웹 서버에 올려두고 그것만 독점으로 남길 수는 없다”는 것이 AGPLv3의 요지다. 폴란드의 Paweł Jarczak이 이 User-Agent와 네트워크 코드를 리버스 엔지니어링하자 Bambu Lab은 DMCA 삭제 요청을 보냈고, “GitHub는 당연히 받아들였다, Microsoft니까.” 해당 코드는 지금 SFC가 Bambu Lab의 AGPLv3 위반을 우회하려 운영하는 baltobu 프로젝트 저장소에 미러링돼 있다. Gingerich는 여기에 더해 일부 모델 펌웨어가 Buildroot 기반 리눅스를 쓰면서 소스를 제공하지 않아 GPLv2도 함께 위반하고 있다고 지적했다. 300MB짜리 펌웨어 이미지를 내려받아 확인했지만 소스도, 소스 제공 약속도 없었다.

대응 수단으로는 소송이 있다. SFC가 Vizio를 상대로 진행 중인 소송은 저작권이 아니라 계약법에 기댄다. 카피레프트 라이선스도 계약이므로, TV를 산 사람은 그 계약의 “제3자 수익자(third-party beneficiary)”라는 논리다. 다만 Gingerich는 리버스 엔지니어링으로 독점 조각을 대체하는 쪽이 소송보다 훨씬 빠르다고 봤다. Kühn은 위반 기업이 실제로 “그럼 소송해라”라고 말하는 일은 없고, 그냥 답을 안 한다고 덧붙였다.

Sandler가 짚은 부수 효과가 인상적이다. SFC가 수년간 다룬 어떤 사안보다도 이 건이 신규 인원을 FOSS 커뮤니티로 많이 끌어들였다는 것이다. 카피레프트를 들어본 적도 없던 사람들이 “이 라이선스가 권리를 부여하고, 우리가 그걸로 뭔가 할 수 있다는 걸 깨달았다”고 했고, 여러 유튜버가 심층 해설을 올렸다. 25만 달러라는 “달성 못 할 거라 생각한” 모금 목표를 소액 기부 위주로 훌쩍 넘겨, SFC는 전임 소송 변호사를 채용할 수 있게 됐다. Sandler는 GPL을 “마법의 요정 가루”로 여기는 오해를 경계했다. “아무도 책임을 묻지 않으면, 아무도 ‘잠깐, 당신들 이거 안 지키고 있잖아’라고 말하지 않으면, 누구도 지키지 않는다.”

OpenMDW 라이선스와 OSI 승인 논쟁

Linux Foundation의 Mike Dolan이 OpenMDW(“Open Model, Data, and Weights”) 라이선스를 OSI에 승인 신청했다. 모델 배포물에는 소프트웨어, 가중치, 문서 등 성격이 다른 산출물이 한데 묶여 있는데 기존 라이선스는 소프트웨어만 염두에 두고 만들어졌다는 것이 출발점이다. 기본 골격은 MIT에 가까운 퍼미시브 라이선스이고, 모델 출력물에는 어떤 제약도 걸지 않는다고 명시하며, 저작권·특허·데이터베이스권·영업비밀까지 폭넓게 권리를 부여한다.

문제는 그 권리가 실제로 무엇을 덮는지가 모호하다는 점이다. 대문자 면책 조항은 권리 정리(clearing)의 책임을 통째로 사용자에게 떠넘긴다. Pamela Chestek은 “학습 자료가 무엇인지조차 공개되지 않은 상황에서 그 정리는 일반적으로 불가능하다”고 지적했고, 이 문구가 라이선서가 부과한 요건으로 읽힐 경우 저작권 소송을 당한 사람이 라이선스 위반까지 함께 추궁당할 수 있다고 덧붙였다.

가장 논란이 된 것은 종료 조항이다. “Model Materials가 직간접적으로 특허나 저작권을 침해한다고 주장하는 소송을 제기·유지하거나 자발적으로 참여하면, 부여된 모든 권리가 종료된다.” Apache-2.0류의 방어적 특허 종료와 달리 저작권 소송까지 포함한다는 점이 핵심이다.

  • Richard Fontana — 종료 범위가 분쟁 대상과 무관한 자료까지 미친다. 특정 가중치를 문제 삼아 소송하면 함께 배포된 파이썬 코드에 대한 권리까지 잃는다. 무관한 소프트웨어에 제약을 거는 것을 금지한 Open Source Definition 9항 위반일 수 있다.
  • Kevin Fleming — 모델에 저작물이 들어갔는지 확인하는 유일한 방법은 모델을 돌려보는 것인데, 소송을 걸면 증거 확보에 필요한 그 모델 접근권을 잃는다.
  • Eric Schultz — 이 조항은 법원 판단에 따라 “모델 제작자의 대규모 저작권 침해에 대한 사면”이 된다.
  • Simon Phipps — “저작권 주장을 이유로 Freedom 0를 회수하는 라이선스는 소프트웨어 자유를 보장할 수 없다.”

Dolan은 이 조항이 대칭성을 위한 것이라고 답했다. 배포물이 침해라고 주장하면서 동시에 그 배포물이 주는 사용 권리를 누리는 것은 성립하지 않는다는 논리다. 모델 배포자가 실제로 마주하는 주장은 특허가 아니라 저작권이므로, 특허만 다루는 조항은 “Apache-2.0의 형식만 베끼고 기능은 버리는 것”이라고 했다. Chestek은 이를 반박했다. 모델 제작자는 자기가 저작물을 복제했는지 알지만, 수령자는 자기 저작권이 침해됐는지 모르는 상태에서 청구권을 포기해야 하므로 대칭이 아니라는 것이다.

Fontana는 기사 댓글에서 자신의 진짜 우려를 더 명확히 했다. 이 라이선스는 오픈소스 개발자라는 특정 집단, 즉 자기 코드에 OSI 승인 라이선스를 걸어둔 사람이 모델이나 그 출력이 그 라이선스를 위반했다고 보고 청구할 때 그들을 차별하는 것으로 읽힐 수 있다는 것이다. OSI가 이를 승인하면 “OSI가 자기가 승인한 라이선스의 라이선서에게 등을 돌린다”는 메시지로 비칠 수 있다. Bradley Kühn은 별도 댓글에서 OSI의 라이선스 승인은 영구적이며 항소나 재심사 절차가 없다는 점을 상기시키며, license-review 메일링 리스트에 의견을 낼 것을 촉구했다. “결정은 나타난 사람들이 한다.”

양자컴퓨터로부터 안전해지는 법

실용적인 양자컴퓨터는 지난 수십 년간 늘 “10년 뒤”였지만, 이제는 몇 년 뒤로 보이기 시작했다. 최근 연구에서 ECDSA 키를 인수분해하는 최적 양자 회로가 1,425 논리 큐빗에서 1,154 논리 큐빗으로 줄었고, 현재 공개된 최고 성능 양자 프로세서는 1,121 물리 큐빗이며 IBM은 1,386 물리 큐빗의 Kookaburra를 2026년 말까지 내놓겠다고 공언했다. 다만 물리 큐빗과 논리 큐빗은 다르다. 현재 최선의 오류 정정 기법으로 쓸 만한 충실도의 논리 큐빗 하나를 흉내 내려면 물리 큐빗이 약 500개 필요하다.

대칭키 암호는 양자 분석에 취약하지 않다고 여겨진다. 문제는 공개키 암호다. RSA는 인수분해의 난해함에, 타원곡선 암호는 이산로그 문제에 기대는데 둘 다 양자컴퓨터가 효율적으로 푸는 문제다. 그중에서도 암호화가 서명보다 급하다. 오늘 암호화한 데이터는 내일 공격당할 수 있지만, 오늘 검증한 서명은 신뢰할 수 있다. 위조는 미래에나 가능하기 때문이다.

새 양자내성 암호계는 아직 실사용 이력이 짧다. 그래서 보수적인 접근은 하이브리드다. 잘 알려진 타원곡선 암호와 새 양자내성 암호로 함께 암호화해, 둘 중 하나만 안전해도 전체가 안전하도록 만든다. 웹 브라우저와 OpenPGP 구현이 향하는 조합이 ML-KEM-768과 X25519를 묶은 X25519MLKEM768이다. 여러 정부 기관이 하이브리드가 아닌 순수 양자내성 방식 허용을 밀어붙였지만, 현재 대부분의 소프트웨어는 하이브리드를 기본값으로 두고 있다.

브라우저 쪽은 이미 정리됐다. Firefox 132(2024년 10월), Chrome 131(2024년 11월), Safari 26(2025년 9월)부터 X25519MLKEM768이 기본 활성화돼 있다. 문제는 서버다.

대상현재 상태조치
OpenSSL3.5.0(2025년 4월)부터 양자내성 키 교환 지원구버전은 Open Quantum Safe의 oqs-provider로 보완
Fedora / RHEL / openSUSEFedora 43, RHEL 10.1 이후 릴리스는 양자내성 우선이 기본이전 릴리스는 update-crypto-policies --set DEFAULT:PQ
Debian / Ubuntu / Archcrypto-policies 포팅은 있으나 기본 비활성openssl.cnf를 직접 편집
Caddy자체 내장 라이브러리 사용Go 1.24 이상으로 빌드하면 기본 활성

가장 안전한 방법은 웹 서버에서 SSL_CONF_cmd()에 넘기는 GroupsX25519MLKEM768을 명시적으로 넣는 것이다. 다만 이 방식은 해당 서버에만 적용되고 더 나은 알고리즘이 나와도 갱신되지 않는다. 시스템 전역 정책은 OpenSSL을 쓰는 다른 소프트웨어까지 덮지만 같은 갱신 문제를 안는다. OpenSSL 자체 기본값에 맡기면 항상 최신 암호를 쓰게 되지만, 배포판이 설정 파일을 바꿔 조용히 덮어쓰기 쉽다.

서명 쪽은 상황이 더 나쁘다. OpenPGP 생태계가 2023년부터 둘로 갈라져, 배포판이 널리 쓰는 GPG는 LibrePGP 명세를 따르고 다른 도구들은 IETF 표준 OpenPGP를 따르는데, 두 표준은 양자내성 암호 구현 방식이 서로 다르다. IETF 쪽 RFC 9980은 알고리즘 7종을 추가하면서 RFC 9580의 v6 키 포맷을 요구하는데, GPG는 v6를 지원하지 않는다. 게다가 GPG는 양자내성 키를 암호화 용도로만 지원하고 별도의 서명 알고리즘이 없으며, 키 유도 함수에 섞는 정적 프로토콜 정보를 IETF 표준과 다르게 쓴다. 그 결과 Sequoia를 비롯한 다른 구현은 GPG의 양자내성 키를 이해하지 못하고, 반대도 마찬가지다.

현실적인 우회책은 고전 서명 키와 RFC 9980 서명 키를 따로 만들어 모든 것에 이중 서명하는 것이다. Red Hat이 패키지 서명에 쓰고 있는 방식이고, 서명자가 PGP 신원 두 개를 관리해야 한다는 비용이 든다. 검증은 당분간 둘 중 하나만 유효하면 신뢰하는 식으로 간단하지만, 양자컴퓨터로 RSA·타원곡선 서명을 위조할 수 있게 되는 순간부터는 양자내성 서명만 검증하거나 인증서 투명성 같은 장치로 고전 서명이 그 시점 이전에 만들어졌음을 증명해야 한다.

커널 7.3 머지 윈도우 초반

기사 작성 시점에 7.3용으로 2,346개의 non-merge 체인지셋이 메인라인에 들어갔다. linux-next에는 12,640개가 대기 중이고 머지 윈도우는 8월 30일에 닫힌다. 초반 풀 중 가장 눈에 띄는 것은 멀티프로세서 시스템에서 그룹 스케줄링이 동작하는 방식의 대대적 재작업이다.

cgroup 스케줄링 가중치 스케일링 재설계

현재 커널은 태스크의 가중치를 그 태스크가 속한 제어 그룹 중 해당 CPU에서 돌고 있는 비율만큼 스케일링한다. 동일 가중치 태스크 4개짜리 그룹에서 CPU 0이 그중 하나만 돌리고 있다면 그 태스크의 가중치는 1/4로 줄어든다. 태스크가 CPU에 고르지 않게 분포할 때 공정성을 지키려는 의도지만, 큰 시스템에서는 스케일 팩터가 극단적으로 작아져 태스크 간 경쟁을 왜곡하고 정수 표현 한계를 압박한다.

Peter Zijlstra가 이 스케일링을 다시 설계해, 관리자가 스케일링 모드를 고를 수 있는 cgroup_mode 노브를 추가했다. 현재는 debugfs에 있고 sysfs로 옮길지는 미정이다.

모드동작
smp7.3 이전과 동일한 기존 동작
up단일 프로세서인 것처럼 스케일링을 끔. “SMP 가중치 분배를 틀리게 하므로 좋은 정책은 아니다”
max모든 태스크가 최대로 동시 실행된다고 가정하고 가용 CPU 수로 조정. 수치 문제는 해결되나 경합이 적을 때 가중치가 인위적으로 높아짐
concur (기본값)가용 CPU 수와 그룹 내 실행 가능 태스크 수 중 작은 값으로 조정. 경합이 적으면 smp처럼, 실행 가능 태스크가 CPU 수에 근접하면 max처럼 동작
tasks실행 가능 태스크 수로만 조정. “완전히 유효하고 동작하는 선택지지만 전통적 의미와는 크게 다르다”

기본값이 concur이므로 7.3은 이전 커널과 다르게 제어 그룹을 스케줄링한다. 체인지로그의 표현이 솔직하다. “설정 가능하게 만들었으니 기본값을 바꾸고, 특히 장기적으로 이득 보는 쪽이 손해 보는 쪽보다 많기를 바란다.” 이 시리즈의 마지막 변경은 제어 그룹을 단일 런큐로 옮기는 대규모 내부 재구현으로, 스케줄러 오버헤드를 줄이고 지연 문제를 해결하려는 시도다.

파일시스템: failfs와 iomap 재작업

새로 들어온 “failfs”는 그 안에서 시도되는 모든 연산을 실패시키는 파일시스템이다. 프로세스가 파일시스템 상태를 완전히 벗어던지게 하는 용도로, 루트나 작업 디렉터리가 failfs에 있는 프로세스는 모든 경로 탐색을 명시적 파일 디스크립터에 고정해야 한다. 절대 경로, 절대 심볼릭 링크, AT_FDCWD 상대 탐색은 그냥 실패한다. fchdir()은 특수 값 FD_FAILFS_ROOT를 받아들이고, 파일 디스크립터로 대상 디렉터리를 지정하는 새 시스템 콜 fchroot()도 추가됐다.

디스크상의 파일과 메모리 표현의 매핑을 담당하는 iomap 계층도 대대적으로 재작업됐다. 파일시스템이 iomap_begin()/iomap_end() 콜백을 제공하던 방식 대신, 매핑을 순회하는 iomap_next() 하나를 제공한다. 문제는 이 변경에 문서가 전혀 붙지 않아 커널 내 기존 문서까지 함께 낡아버렸다는 점이다. 그 밖에 overlayfs가 id-mapped 마운트를 지원하게 됐고, EROFS가 이미 하던 것처럼 단일 블록 장치에서 여러 파일시스템을 마운트하는 지원이 개선됐다. SGI 시스템의 EFS와 SCO UnixWare의 FreeVxFS는 수십 년간 유지보수가 없어 제거됐다.

그 밖의 변경

  • 실행 파일의 인터프리터를 지정하는 binfmt_misc에 BPF 훅이 추가돼, 런타임에 어떤 인터프리터를 쓸지 결정할 수 있다. hermetic 바이너리 같은 응용이 가능해진다.
  • x86의 “SMP alternatives” 코드가 제거됐다. 단일 프로세서 시스템에서 부팅할 때 멀티프로세서용 락 명령을 패치해서 걷어내는 기능인데, 단일 프로세서 시스템의 중요도가 떨어지면서 유지보수 비용이 이득을 넘어섰다고 판단됐다.
  • 32비트 Arm CPU 상당수의 지원이 deprecated 됐다. LTS로 예상되는 7.3까지는 유지되지만 그 이후에는 제거될 수 있다.
  • PowerPC에 Rust 지원이 추가됐고, nolibc가 Alpha를 지원한다.
  • Rust 쪽은 모듈 소유권 추상화 개선, 무손실 정수 변환 모듈, 주소 유출을 막는 포인터 값 난독화 로깅에 더해 synchronize_rcu(), 메모리 배리어, 인터럽트 활성화/비활성화, 인터럽트 비활성 스핀락 지원이 들어왔다.
  • x86에서 한 프로세스가 다른 프로세스의 시스템 콜을 가로채는 system-call user dispatch 기능을 제어하는 syscall_user_dispatch sysctl이 추가됐다(기본 활성).
  • 커널 스레드가 사용자 공간과 파일시스템 상태를 공유하는 대신 자체 nullfs 파일시스템에 자리 잡는다. 커널 내부 암호 라이브러리에는 AES 모드 몇 가지가 추가됐다.

커맨드라인 캘린더 Remind

Remind는 Dianne Skoll이 1989년 말, 본인 표현으로 “컴퓨팅의 중생대”에 만든 커맨드라인 캘린더 겸 알람 프로그램이다. 리눅스보다 나이가 많다. 캘린더 공유나 미팅 초대 교환이 필요한 기업 환경에는 전혀 맞지 않지만, 다른 캘린더 프로그램으로는 표현하기 어렵거나 불가능한 일정을 자체 스크립트 언어로 기술할 수 있다.

GPLv2로 배포되며 의존성이 거의 없는 C로 작성됐다. remind 본체, Tcl/Tk 기반 GUI 프런트엔드 TkRemind, 인쇄용 달력을 만드는 Rem2HTML/Rem2PDF로 구성된다. 1996년까지 거슬러 올라가는 Git 히스토리에서 Skoll이 받아들인 외부 커밋은 13개뿐인 사실상 1인 프로젝트다. 공식 저장소는 Forgejo 인스턴스에 있는데, AI 스크레이퍼 때문에 사용자명과 비밀번호를 모두 “notabot”으로 입력해야 접근할 수 있다.

REM Friday MSG Send Mr. Spacely the weekly TPS report.
REM 21 Aug 2026 AT 17:00 MSG Dinner at Blue Mountain Pizza in %1.

요일만 쓰면 매주 반복되고, 구체적 날짜를 쓰면 그날만 알린다. %1은 실행 시점 기준 남은 시간으로 치환되는 필터라 “6 hours and 41 minutes from now” 같은 문구가 나온다. 여기에 OMIT으로 제외일을 잡고 SKIP으로 그날은 건너뛰거나, UNTIL로 종료일을 지정하거나, TODOMAX-OVERDUE로 마감 며칠 전부터 며칠 후까지만 알리게 하는 식으로 조합한다. RUN 명령으로 셸 명령 실행도 가능하다.

Remind 언어에는 변수, 자료형, 연산자, 사용자 정의 함수가 있고 부활절 날짜, 히브리력, 달의 위상, 일출·일몰 시각 같은 내장 함수도 들어 있다. 실행 모드로는 기본 아젠다 모드 외에 -c(ASCII 달력), -cu(유니코드 박스 문자), -c+2(2주치), -ppp(JSON 출력)가 있어 remind -ppp 파일 | rem2pdf > calendar.pdf처럼 PDF 달력을 만들 수 있다. 주의할 점은 RUN을 쓸 때인데, Remind는 마지막 실행 시각을 스크립트 파일의 접근 시각으로 판단하기 때문에 사용자가 파일을 나중에 편집하면 그날 실행하지 않은 것으로 간주한다. remind -r로 재실행을 막을 수 있다.

Quickshell 데스크톱 컴포넌트 툴킷

Quickshell은 툴바나 메뉴 같은 데스크톱 컴포넌트를 만드는 툴킷으로, GUI 설계용 선언형 언어인 QML을 쓴다. Sway나 niri 같은 미니멀 윈도우 매니저용 데스크톱 환경을 제공하는 caelestia-shell, DankMaterialShell 같은 프로젝트가 이걸 기반으로 만들어졌다. LGPLv3로 배포되고, 2024년 6월 0.1을 시작으로 2026년 6월 0.3이 나왔다.

제작자 “outfoxxed”는 eww 같은 기존 해법을 시도하다 한계를 느꼈고, Qt Quick을 검토하다 자동 반응형 바인딩 같은 언어 기능이 접근하기 쉽다는 점을 발견해 직접 만들기 시작했다. QML의 property binding은 값 변화를 구조 전반에 전파하므로, 버튼 텍스트가 변하는 값을 포함하면 별도 처리 없이 갱신된다. Qt나 GTK를 직접 쓰면 더 낮은 수준의 코드와 컴파일 단계가 필요해 반복 개발이 느려지는데, Quickshell은 그 간극을 메운다.

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell

FloatingWindow {
    property var customData: 0
    ColumnLayout {
        Text { text: `Clicks: ${customData}` }
        Button {
            text: "Increment"
            onClicked: customData += 1
        }
    }
}

quickshell 명령은 기본적으로 ~/.config/quickshell/shell.qml을 읽고(-p/--path로 지정 가능), 파일을 저장하는 순간 인터페이스를 다시 만든다. 컴파일 단계 없이 저장만으로 결과가 바뀌는 것이 이 툴킷의 핵심 이점이다.

Quickshell이 제공하는 타입들은 공통 API에 대한 추상화 역할을 한다. 셸 명령을 실행하고 출력을 받는 Process도 있지만, UPower 타입을 쓰면 /sys/class/power_supply를 파싱하는 대신 UPowerDevice.percentage 속성만 읽으면 된다. Bluetooth, Networking, Sockets, Pipewire, SystemTray, PopupWindow도 같은 식이다. 다만 일부 기능은 컴포지터에 의존한다. 배경 투명 블러를 쓰려면 컴포지터가 ext-background-effect Wayland 프로토콜을 지원해야 하고, niri의 경우 26.04 릴리스에 들어갔다. 트레이드오프도 있다. QML 스크립팅은 JavaScript로 제한되므로, 특정 언어로 인터페이스를 만들거나 복잡한 백엔드 로직이 필요하면 Qt나 GTK를 직접 쓰는 편이 낫다.

짧은 소식

  • crates.io 공급망 공격: proc-macro1이라는 악성 크레이트가 crates.io에 올라왔고, 널리 쓰이는 arrayref 크레이트가 이것에 의존하도록 재배포된 뒤 최신 버전들이 yank됐다. Rust 팀은 악성 버전을 제거하고 악의적으로 yank된 버전들을 복구했다. 같은 작성자의 internment, append-only-vec도 같은 조치를 받았고 계정은 예방 차원에서 잠겼다. 작성자가 악의를 가졌다기보다 컴퓨터나 자격증명이 탈취된 것으로 보고 연락을 시도 중이다.
  • Steve French 별세: 오랫동안 커널 SMB 파일시스템 코드를 관리해온 Steve French가 세상을 떠났다. 건강 문제로 메인테이너 역할을 내려놓은 지 불과 일주일 만이다. Jeremy Allison은 “20년 넘게 알고 지냈다. 그는 커뮤니티의 전설이자 정말 좋은 친구였다”고 전했다.
  • PyPI를 공급망 위험으로 봐야 한다: PSF 엔지니어링 디렉터 Jacob Coffee가 “PSF가 엔지니어링 인력을 더 채용할 수 있을 때까지 PyPI는 공급망 위험으로 간주해야 한다”고 말했다. 소프트웨어 산업의 상당 부분이 이 서비스 위에 올라가 있는데, 기능 개발·늘어나는 보안 신고·일상 유지보수를 정규직 1.5명과 지원 담당 1명이 감당하고 있다는 것이다.
  • mklinux v7.0-mk2: Cong Wang이 다중 커널 리눅스 개념의 새 릴리스를 발표했다. 하이퍼바이저 없이 베어메탈 한 대에서 독립된 리눅스 커널 여러 개를 동시에 돌린다. 호스트 커널이 CPU·메모리·PCI 장치 풀을 소유하고 이를 인스턴스로 쪼갠 뒤 kexec_file_load()로 각 인스턴스에 커널을 부팅시킨다. 에뮬레이션도 트랩도 없고, 공유되는 것은 공유하기로 선택한 것뿐이다. 참고로 PowerPC 매킨토시용 포트였던 옛 MkLinux와는 무관하다.
  • 스테이블 업데이트: 8월 23일 7.1.10, 6.18.46, 6.12.105, 6.6.153, 6.1.184, 5.15.217, 5.10.266이 릴리스됐고, 비교적 작은 7.2.1, 7.1.11, 6.18.47, 6.12.106, 6.6.154, 6.1.185, 5.15.218, 5.10.267이 8월 27일 릴리스 예정으로 리뷰를 거쳤다.
  • 릴리스 소식: Emacs 31.1(Emacs dumper 제거, 사용자 Lisp 디렉터리 기능 추가), KDE Gear 26.08(Okular 서명 기능, Dolphin 파일 그룹화, Kdenlive 개선), LibreOffice 26.8(양방향·복잡 문자 처리 대폭 개선, Writer가 문단 방향을 자동 감지), RPM 6.1.0(매크로 정의 시점 수식자, PKCS11 토큰 서명, 커널에서 영감을 받은 새 릴리스 모델), Armbian 26.8(설치 프로그램 재작성, SPI·MTD 타깃 지원, 부트로더 기록 실패를 실제로 보고), Vanilla OS 3(Arm64 지원, SDK 도입, Apx 재작성).
  • 이번 주의 인용: Christian Brauner가 커밋 메시지에 대해 남긴 말이 뼈아프다. “수년간 우리는 아무 설명도 없는 한 줄짜리 커밋 메시지로 가득한 git log에 시달렸다. 이제는 쓸모없는 노이즈로 가득한 git log를 받는다. 우리가 이 전선에서 뭔가 얻은 게 있는지 모르겠다.” 한편 Jakub Kicinski는 다음 릴리스에서 “LLM에게 잡무를 맡기는 쪽으로 초점을 옮기겠다”며 patchwork 관리, 흔한 프로세스 지적 자동화, 커밋 메시지 편집, 신뢰하는 사람의 reviewed-by가 달린 패치 적용을 후보로 꼽았다.

이번 주 핵심 요약

  • Bambu Lab 건은 AGPLv3의 교과서적 시험대다. 프로그램 일부를 .so로 떼어 서버 호출 스텁으로 만들고, 실제 기능은 자사 서버에 두고, 접근 키라며 전 클라이언트 공용 User-Agent 문자열을 DMCA 접근통제라고 주장하는 구조는 AGPL이 정확히 겨냥한 대상이다. 소송보다 리버스 엔지니어링과 대체 구현이 빠르다는 SFC의 판단, 그리고 이 사안이 오히려 카피레프트를 모르던 커뮤니티를 대규모로 끌어들였다는 점이 이번 사례의 특이한 대목이다.
  • OpenMDW 논쟁의 핵심은 “모델은 소프트웨어와 법적 노출이 다르다”는 주장을 라이선스로 어디까지 흡수할 수 있느냐다. 저작권 소송까지 종료 사유로 넣으면 배포자의 위험은 줄지만, 침해를 확인할 방법이 모델 실행뿐인 상황에서 소송을 걸면 증거 접근권을 잃는 모순이 생긴다. OSI 승인이 영구적이고 재심사 절차가 없다는 Kühn의 지적을 감안하면, 이 결정은 향후 오랫동안 기준으로 남는다.
  • 양자내성 전환에서 실무자가 지금 당장 해야 할 일은 서명이 아니라 암호화다. 오늘 수집된 트래픽이 미래에 복호화될 수 있기 때문이다. 브라우저는 이미 끝났고 병목은 서버인데, OpenSSL 3.5.0 이상이면 GroupsX25519MLKEM768만 넣으면 된다. Debian·Ubuntu·Arch는 여전히 openssl.cnf를 손으로 고쳐야 한다는 점을 기억할 것.
  • OpenPGP 진영의 분열은 양자내성 전환에서 가장 지저분한 부분이다. GPG가 v6 키를 지원하지 않고 KDF에 다른 정적 정보를 섞는 탓에 Sequoia와 상호 운용이 안 된다. 당분간은 Red Hat처럼 고전 키와 양자내성 키로 이중 서명하고 신원 두 개를 관리하는 것 말고 뾰족한 수가 없다.
  • 7.3의 cgroup_mode 기본값이 concur로 바뀌는 것은 컨테이너 워크로드를 돌리는 쪽에서 실제로 체감할 수 있는 변경이다. 기존 동작이 필요하면 debugfs에서 smp로 되돌릴 수 있지만, 노브 위치가 debugfs로 확정된 것이 아니라는 점은 자동화를 짤 때 감안해야 한다. 여기에 제어 그룹 단일 런큐 전환까지 겹쳤으므로, 7.3으로 올릴 때는 스케줄링 지연 특성을 다시 재는 것이 안전하다.

원문: LWN.net Weekly Edition for August 27, 2026

답글 남기기