← Latest papers
💻 computer science

Detecting and Fixing Violations of Modification Terms in Open Source Licenses during Forking

This paper introduces LiVo, a tool designed to automatically detect and fix violations of modification terms in open source licenses during forking, addressing a previously unexplored gap in legal risk mitigation through empirical characterization of 47 licenses and successful validation via merged pull requests.

Original authors: Kaifeng Huang, Yingfeng Xia, Bihuan Chen, Zhuotong Zhou, Jin Guo, Xin Peng

Published 2026-06-23
📖 5 min read🧠 Deep dive

Original authors: Kaifeng Huang, Yingfeng Xia, Bihuan Chen, Zhuotong Zhou, Jin Guo, Xin Peng

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine the world of open-source software as a massive, bustling library where anyone can borrow books, read them, and even rewrite chapters to create their own new stories. This is great for creativity, but there's a catch: every book in this library comes with a specific set of rules (a license) written by the original author.

Most people know the big rules, like "You must give credit" or "You must share your new version for free." But there's a sneaky, often overlooked rule hidden in many of these licenses called the Modification Term.

The "Change Log" Rule

Think of the Modification Term as a strict librarian's rule: "If you take a book out of our library, change a few pages, and make a new version, you must write a sticky note explaining exactly what you changed, who changed it, and when."

Some licenses say the sticky note must go on every single page you touched. Others say you can put it in a separate "Changes" notebook at the front of the book. Some just say, "Make sure someone knows you changed it."

The problem? Most developers are so busy writing code that they forget to write these sticky notes. They create a "fork" (a copy of the project they modify) but fail to leave a trail of what they did. This is a legal violation, like returning a library book with torn pages but no note explaining why.

The Problem: The "Silent" Violation

The researchers from Fudan University realized that while we have tools to check if you're using the right book, we have no tools to check if you forgot to write your sticky note. They asked:

  1. What exactly do these rules say?
  2. How often are people breaking them?
  3. Can we build a robot to fix it?

The Solution: Meet "LiVo" (The Library Vigilante)

To solve this, the team built a tool called LiVo. You can think of LiVo as a super-smart, automated librarian who patrols the "forked" libraries.

Here is how LiVo works, step-by-step:

  1. The Detective Work (Finding the Changes): LiVo looks at the original library book and the new, modified version. It scans through every single "commit" (a saved change in the code) to see which files were actually touched. It filters out the boring stuff, like when someone just copied a page from the original without changing it.
  2. The Search (Looking for the Note): Once LiVo knows which files were changed, it goes hunting for the "sticky note." It looks in two places:
    • Inside the modified files themselves.
    • In a separate "Change Log" file (like a CHANGELOG.md), which is common in software projects.
  3. The Match-Up (Did they get it right?): LiVo compares the "commit message" (what the developer said they did when they saved the change) with the "change log" (the sticky note).
    • Did they mention the change?
    • Did they include the date?
    • Did they include their name?
      If the answer is "No" to any of these, LiVo flags it as a violation.
  4. The Fix (The Auto-Pilot): If LiVo finds a missing note, it doesn't just yell; it tries to fix it. It automatically writes the missing sticky note based on the developer's original commit message and suggests adding it to the project.

What They Found (The Reality Check)

The team tested LiVo on 178 pairs of real-world software projects (a base project and its fork). The results were eye-opening:

  • It's a Common Mistake: About 51% of the modified projects were breaking these rules. They had changed the code but forgot to write the required notes.
  • The Scale: They found over 51,000 specific instances where developers forgot to document their changes.
  • The Source Code is the Culprit: Most of the missing notes were for changes made to the actual "source code" (the instructions that run the program), rather than documentation or scripts.

Did It Work?

LiVo isn't just a theory; they put it to the test in the real world.

  • They sent 91 "Pull Requests" (official suggestions to fix the code) to the project owners.
  • 18 developers responded positively, saying, "Oh, you're right! We forgot that."
  • 8 of those fixes were actually merged into the main code, meaning the legal risk was officially resolved.

The Bottom Line

This paper is the first to say, "Hey, we need to stop ignoring the rule about writing notes when you change open-source code." They mapped out exactly what these rules look like across 47 different licenses and built a tool, LiVo, that acts like a helpful librarian, finding the missing notes and writing them for you.

It's not about stopping people from changing code; it's about making sure the "paper trail" exists so everyone knows who changed what, keeping the legal library safe and organized.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →