LPI OSS Essentials study materials
LPI OSS Essentials study resources

LPI OSS Essentials practice questions

One question at a time. Build your LPI OSS Essentials understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Software Fundamentals

Which license is used by the Linux kernel and requires that derivative works distributed to others also be licensed under the same terms?

  1. BSD 3-Clause License
  2. GNU General Public License version 2 Correct answer.
  3. MIT License
  4. Apache License 2.0

Explanation

The Linux kernel is distributed under GPLv2, a strong copyleft license. Copyleft means that if you distribute a modified version, the derivative must carry the same license and you must make the corresponding source available. Permissive licenses such as MIT and BSD allow proprietary redistribution.

Question 2Software Fundamentals

What is the primary role of a package manager such as APT or DNF on a Linux system?

  1. Managing user accounts and their authentication credentials
  2. Compiling source code into optimized binaries for the local CPU
  3. Sandboxing untrusted applications from the rest of the system
  4. Resolving dependencies and installing software from configured repositories Correct answer.

Explanation

Package managers retrieve prebuilt packages from repositories, verify signatures, and resolve dependency relationships automatically. They also track installed files so upgrades and removals stay consistent. Compilation, sandboxing, and account management are handled by other tools.

Question 3Software Fundamentals

In Git, which command records the currently staged changes into the local repository history?

  1. git commit Correct answer.
  2. git push
  3. git fetch
  4. git clone

Explanation

git commit takes the snapshot that has been placed in the staging area and writes it as a new commit in the local repository. Pushing, fetching, and cloning move data between repositories. Committing is the step that actually creates history.

Question 4Software Fundamentals

What does the term 'free software' emphasize according to the Free Software Foundation?

  1. Software whose source code is published on a public website
  2. The freedom to run, study, modify, and redistribute the software Correct answer.
  3. Software that is distributed at zero monetary cost
  4. Software that carries no warranty of any kind

Explanation

The FSF defines free software by four freedoms: to run the program, to study and change it, to redistribute copies, and to distribute modified versions. Price and public hosting are not the defining criteria. The warranty disclaimer is a separate legal clause found in many licenses.

Question 5Software Fundamentals

Which file system is commonly used as the default on modern Linux distributions and supports journaling, extended attributes, and extents?

  1. ext4 Correct answer.
  2. FAT32
  3. ISO 9660
  4. NFS

Explanation

ext4 is a journaling file system for Linux that supports extents, delayed allocation, and extended attributes. FAT32 lacks journaling and permission support, ISO 9660 is a read-only optical format, and NFS is a network protocol rather than an on-disk file system.

Question 6Software Fundamentals

Which command-line tool is used to build and install software from source using a configure script and Makefile?

  1. apt install && apt upgrade
  2. ./configure && make && make install Correct answer.
  3. tar -xzf && unzip
  4. systemctl enable && systemctl start

Explanation

The classic autotools workflow runs the configure script to detect the build environment, then make to compile, then make install to place files in the target directories. Package managers handle prebuilt packages, systemctl manages services, and tar or unzip only extract archives.

Question 7Software Fundamentals

A developer wants to distribute a library so that anyone may use it in proprietary and open-source projects with minimal conditions. Which license best fits this goal?

  1. MIT License Correct answer.
  2. GNU Lesser General Public License version 3
  3. GNU Affero General Public License version 3
  4. GNU General Public License version 3

Explanation

The MIT License is permissive: it allows use in proprietary products as long as the copyright notice and permission notice are retained. The GPL family imposes copyleft obligations that a proprietary integrator would have to satisfy. For maximum permissiveness the MIT License is the simplest fit.

Question 8Software Fundamentals

What is the main purpose of a checksum (such as SHA-256) published alongside a downloadable software tarball?

  1. To compress the archive so it downloads faster
  2. To encrypt the archive during transfer
  3. To record the license terms of the software
  4. To verify that the downloaded file matches the file the publisher released Correct answer.

Explanation

A cryptographic hash acts as a fingerprint: if the downloaded file yields the same hash as the published value, the content is intact and unmodified. It does not compress, encrypt, or describe licensing. Comparing the hash detects corruption and tampering in transit.

Question 9Software Fundamentals

In a Git workflow, what does creating a branch accomplish?

  1. It uploads the current state to the remote server
  2. It copies the entire repository to a new directory on disk
  3. It permanently locks the current commit against further changes
  4. It creates a movable pointer to a commit so work can diverge without altering the main line Correct answer.

Explanation

A branch in Git is simply a lightweight reference to a commit; new commits advance that reference. Because commits are immutable, branching lets development proceed in parallel and merge later. No files are copied and nothing is uploaded until a push occurs.

Question 10Software Fundamentals

Which statement best describes the difference between a virtual machine and a container?

  1. A virtual machine runs a full guest OS on emulated hardware, while a container shares the host kernel Correct answer.
  2. A virtual machine shares the host kernel, while a container emulates hardware
  3. A container requires a hypervisor, while a virtual machine requires only namespaces
  4. A container runs a full guest OS, while a virtual machine shares the host kernel

Explanation

A virtual machine includes its own operating system kernel running on virtualized hardware managed by a hypervisor. A container packages an application with its dependencies but uses the host kernel through namespaces and cgroups. This shared-kernel design makes containers lighter but less isolated than full VMs.

Question 11Software Fundamentals

Which command displays the manual page for the tar utility on a Linux system?

  1. info --man tar
  2. tar --help-page
  3. man tar Correct answer.
  4. cat /etc/tar

Explanation

The man command formats and displays the manual page installed for a given program, so man tar shows tar's documentation. The other forms are not valid ways to invoke the manual system. Many tools also support --help, but that is a different, shorter output.

Question 12Software Fundamentals

What does the shebang line #!/bin/bash at the top of a script tell the operating system?

  1. Which user is allowed to run the script
  2. Which directory the script should run in
  3. Which license the script is released under
  4. Which interpreter should execute the script Correct answer.

Explanation

When a script is executed directly, the kernel reads the first two characters (#!) and uses the following path as the interpreter for the file. Permissions, working directory, and licensing are governed by other mechanisms. Without a shebang, the shell may attempt to run the file itself.

Question 13Software Fundamentals

Which of the following is a characteristic of the open-source development model as practiced on platforms like GitHub?

  1. Only the original author may ever modify the source code
  2. Changes are proposed as patches or pull requests and reviewed before merging Correct answer.
  3. Contributors must sign a commercial contract before reporting bugs
  4. Source code is kept private until the project is abandoned

Explanation

Open-source projects typically accept contributions through patches or pull requests that maintainers review before merging. This distributed review model spreads maintenance and improves quality. It does not require commercial contracts, and modification is open to anyone who follows the project's process.

Question 14Software Fundamentals

A user runs `apt update` but packages still fail to install. Which follow-up command most directly applies available upgrades to installed packages?

  1. apt clean
  2. apt list --installed
  3. apt install --force
  4. apt upgrade Correct answer.

Explanation

apt update refreshes the package index, while apt upgrade installs newer versions of already-installed packages from that index. Cleaning caches or listing packages does not change installed software. Forcing installation does not address outdated package metadata.

Question 15Software Fundamentals

What is the purpose of a software repository in a Linux distribution?

  1. To compile the kernel automatically at boot
  2. To store users' personal documents and backups
  3. To provide a graphical desktop environment only
  4. To host signed packages and metadata that clients download and verify Correct answer.

Explanation

A repository is a server-side collection of packages plus index metadata, usually signed so clients can verify authenticity. Package managers download from it and resolve dependencies. It does not store user data, build kernels, or serve only desktop environments.

Question 16Software Fundamentals

Which statement accurately describes the relationship between open standards and interoperability in open-source software?

  1. Open standards force all implementations to share identical source code
  2. Open standards prohibit commercial use of the specification
  3. Open standards let independently developed programs exchange data and interoperate Correct answer.
  4. Open standards require a specific programming language

Explanation

Open standards define formats and protocols publicly, so separate implementations can exchange data reliably. They do not mandate shared source code, ban commercial use, or require a particular language. Interoperability is the practical benefit that motivates them.

Question 17Software Fundamentals

Which command shows the differences between the working tree and the staging area in Git?

  1. git diff Correct answer.
  2. git remote -v
  3. git log
  4. git status --short --branch

Explanation

git diff compares the working tree against the index, showing unstaged changes line by line. git log shows commit history, status summarizes state, and remote lists configured remotes. To compare staged changes against the last commit, git diff --staged is used instead.

Question 18Software Fundamentals

What does a package's dependency declaration allow the package manager to do?

  1. Encrypt the installed files on disk
  2. Guarantee that the software contains no bugs
  3. Replace the operating system kernel with a newer version
  4. Install required libraries automatically before the package is used Correct answer.

Explanation

Dependencies name other packages that must be present for the software to function. The package manager resolves these relationships and installs or upgrades the required libraries. Dependencies say nothing about bug freedom, kernel replacement, or encryption.

Question 19Software Fundamentals

Which of these best explains why a permissive license like Apache 2.0 is often chosen for projects that expect corporate contribution?

  1. It includes an explicit patent grant and permissive redistribution terms Correct answer.
  2. It forbids companies from using the software commercially
  3. It requires all contributors to assign copyright to one company
  4. It makes the software free of any warranty or liability concerns

Explanation

Apache 2.0 grants an express patent license from contributors and permits proprietary and open redistribution with notice requirements. That clarity reduces legal risk for corporate adopters. It does not ban commercial use, require copyright assignment, or eliminate all liability questions.

Question 20Software Fundamentals

A project's build fails with 'configure: error: no acceptable C compiler found in $PATH'. Which action addresses the root cause?

  1. Convert the source archive to a binary package with tar
  2. Add the --no-compiler flag to configure
  3. Delete the configure script and run make directly
  4. Install a compiler such as gcc and re-run the configure script Correct answer.

Explanation

The configure script probes the environment for a working C compiler and stops when none is found. Installing gcc or clang provides the missing tool, after which configure can succeed. Removing configure or inventing flags cannot supply a compiler, and tar cannot convert source into binaries.

Question 21Software Fundamentals

Why does a container image built from a minimal base often have a smaller attack surface than a full virtual machine image?

  1. It disables the host firewall automatically
  2. It encrypts all network traffic by default
  3. It ships fewer running services and packages, reducing exploitable components Correct answer.
  4. It runs with root privileges inside the host kernel

Explanation

Attack surface grows with the number and complexity of running components. A minimal image includes only what the application needs, so fewer daemons and libraries are present to exploit. Containers do not encrypt traffic by default, and running as root inside the host kernel would increase rather than reduce risk.

Question 22Software Fundamentals

A maintainer wants to accept community patches while keeping copyright ownership distributed among contributors. Which practice supports this?

  1. Requiring every contributor to transfer copyright to the maintainer
  2. Restricting contributions to employees of one company
  3. Publishing the code without any license file
  4. Using a Developer Certificate of Origin sign-off instead of a copyright assignment Correct answer.

Explanation

A Developer Certificate of Origin sign-off attests that the contributor has the right to submit the code under the project license, without transferring copyright. This keeps ownership distributed while documenting provenance. Copyright assignment and closed contribution models contradict the stated goal.

Question 23Software Fundamentals

Which situation most clearly requires using a copyleft license rather than a permissive one?

  1. The author wants to publish only binaries with no source
  2. The author wants modified versions distributed to others to remain open under the same terms Correct answer.
  3. The author wants the software usable in closed-source products without conditions
  4. The author wants to place the code in the public domain

Explanation

Copyleft is designed precisely to keep derivative distributions under the same license, preserving openness downstream. Permissive licenses allow relicensing in proprietary products, publishing binaries alone conflicts with source-availability expectations, and public domain dedication removes licensing altogether.

Question 24Software Fundamentals

What is the function of the /usr/share/doc directory on a typical Linux system?

  1. It contains the kernel image used at boot
  2. It holds user home directories
  3. It stores documentation files installed by packages Correct answer.
  4. It stores temporary files deleted at reboot

Explanation

Packages install their README, changelog, and license texts under /usr/share/doc, organized by package name. Home directories live under /home, kernel images under /boot, and temporary files under /tmp. Consulting this directory is a quick way to read a package's own documentation.

Question 25Software Fundamentals

Which statement about the GPLv3 and GPLv2 is accurate?

  1. GPLv3 removes the requirement to provide source code
  2. GPLv3 adds explicit patent and anti-tivoization terms that GPLv2 lacks Correct answer.
  3. GPLv2 permits proprietary redistribution of modified versions
  4. GPLv3 is a permissive license with no copyleft obligations

Explanation

GPLv3 was drafted to address patent deals and locked-down hardware, adding an express patent grant and installation-information requirements. Both versions require source availability for distributed binaries, and both are copyleft. GPLv2 does not allow proprietary relicensing of modified distributions.

Question 26Software Fundamentals

A team wants each source file in a software project to state its license clearly so that recipients know the terms under which it may be redistributed. Which SPDX identifier placed in a file header communicates this most precisely to automated license-scanning tools?

  1. SPDX-License-Identifier: GPL-3.0-or-later Correct answer.
  2. This file is part of the Example project
  3. Copyright (c) 2024 Example Team
  4. MIT License

Explanation

The SPDX-License-Identifier tag is a machine-readable convention that license scanners and package metadata systems can parse without human interpretation. It uses standardized license expressions, so 'GPL-3.0-or-later' resolves unambiguously to a specific license and version range. Plain prose statements or copyright lines are not standardized identifiers.

Question 27Software Fundamentals

On a system using systemd, an administrator wants a custom daemon to start automatically at boot and be restarted if it crashes. Which combination of unit file settings accomplishes this?

  1. WantedBy=multi-user.target in [Install] and Restart=on-failure in [Service] Correct answer.
  2. Description=Custom daemon in [Unit] and User=nobody in [Service]
  3. ExecStartPre=/bin/sleep 5 in [Service] and After=network.target in [Unit]
  4. Requires=network.target in [Unit] and Type=forking in [Service]

Explanation

Enabling a unit creates the symlink implied by its [Install] section, so WantedBy=multi-user.target makes it start at boot. The Restart= directive in [Service] controls automatic restarts after failure. The two settings together provide both boot activation and crash recovery.

Question 28Software Fundamentals

A developer must choose a version number for a library update that removes a function used by existing downstream code. Following semantic versioning, which change is appropriate?

  1. Increment the minor version because new functionality is being introduced
  2. Keep the version unchanged and document the removal in the changelog
  3. Increment the major version because the change is backward incompatible Correct answer.
  4. Increment the patch version because only one function is affected

Explanation

Semantic versioning assigns the major number to breaking changes, so removing a public function that consumers rely on requires a major bump. Minor increments signal backward-compatible additions, and patch increments signal backward-compatible fixes. Consumers use these signals to decide whether upgrading is safe.

Question 29Software Fundamentals

A maintainer wants to ensure that a downloaded source archive matches what the upstream project published, even if the mirror serving the file has been compromised. Which practice provides the strongest assurance?

  1. Compare the archive size in bytes against the value shown on the mirror
  2. Confirm the mirror uses HTTPS for the download
  3. Check that the archive extracts without errors before building
  4. Verify the archive against a detached signature made with the maintainer's GPG key Correct answer.

Explanation

A detached signature checked against a trusted public key proves both integrity and origin, because only the holder of the private key can produce a valid signature. This protects against a compromised mirror that could otherwise serve a matching but malicious file. Transport security and size checks do not establish who produced the content.

Question 30Software Fundamentals

A user wants to install a distribution-provided package without also pulling in the optional packages it merely recommends. Which apt configuration achieves this?

  1. Set APT::Install-Recommends "false" so only hard dependencies are installed Correct answer.
  2. Remove the /etc/apt/sources.list.d directory before installing
  3. Use apt install --no-install-recommends only after running apt full-upgrade
  4. Set APT::Install-Suggests "true" to widen the dependency set

Explanation

APT distinguishes hard Depends from softer Recommends and Suggests. Disabling Install-Recommends causes only required dependencies to be pulled in, keeping the install minimal. The other settings either broaden installation or break package sourcing.

Question 31Software Fundamentals

A contributor submits a pull request that adds a feature but includes no tests and reformats unrelated files. Which review response best reflects healthy open-source collaboration norms?

  1. Request tests for the new behavior and ask that unrelated reformatting be split into a separate change Correct answer.
  2. Merge immediately to encourage the contributor and fix problems later
  3. Rewrite the contributor's branch yourself and close the pull request without comment
  4. Reject the pull request outright because untested code is never acceptable

Explanation

Good review separates concerns: functional changes should come with tests, and unrelated churn should be isolated so the diff stays reviewable. Giving specific, actionable feedback respects the contributor's effort while upholding project standards. Outright rejection, silent rewrites, or merging untested code all undermine either quality or community trust.

Question 32Software Fundamentals

Which statement describes the role of a package manager's local metadata cache, such as the files under /var/lib/apt/lists?

  1. It records the private signing keys used to authenticate repository metadata
  2. It stores downloaded index files describing available packages so operations can resolve names without contacting every repository Correct answer.
  3. It contains the compiled binaries of every installed application
  4. It holds the actual .deb archives that have been installed on the system

Explanation

Package managers download repository indexes and cache them locally so that commands like search and install can resolve package names and versions quickly. Refreshing this cache is why an update step is needed before installing newly published packages. Installed file contents and keyrings live elsewhere.

Question 33Software Fundamentals

A library is dual-licensed under GPLv3 and a commercial license. A company wants to embed it in a closed-source product it distributes to customers. Which path is consistent with that dual-licensing arrangement?

  1. Purchase the commercial license, because the GPLv3 option would require source disclosure under distribution Correct answer.
  2. Rely on the GPLv3 option and ship the product closed-source as long as the library is unmodified
  3. Choose whichever license is cheaper at the time of each release without notifying anyone
  4. Distribute the library separately under GPLv3 while keeping the combined product closed

Explanation

Dual licensing lets the copyright holder offer the same code under copyleft terms or under a proprietary license. A company unwilling to meet GPLv3 obligations, such as providing corresponding source to recipients, must obtain the commercial license. The license choice is made once for a distribution and carries obligations with it.

Question 34Open Source Software Licenses

Which license is best described as a strong copyleft license that requires derivative works distributed to others to be licensed under the same terms?

  1. GNU General Public License version 3 Correct answer.
  2. BSD 2-Clause License
  3. MIT License
  4. Apache License 2.0

Explanation

The GNU GPL is a strong copyleft license: if you distribute a modified version, the whole derivative must be conveyed under the GPL. The other options are permissive licenses that allow proprietary redistribution provided notices are kept.

Question 35Open Source Software Licenses

A company wants to embed an MIT-licensed library into a closed-source product. What does the MIT License require?

  1. Release the entire product under the MIT License
  2. Pay a royalty to the original author
  3. Publish any modifications to the library as open source
  4. Include the copyright notice and permission notice in the distributed product Correct answer.

Explanation

The MIT License is permissive and its main obligation is retaining the copyright and permission notice in copies or substantial portions of the software. It does not require source disclosure of the larger work or payment of royalties.

Question 36Open Source Software Licenses

In open source licensing, what does the term 'copyleft' refer to?

  1. A clause that forbids commercial use of the software
  2. A legal mechanism to place software in the public domain
  3. A requirement that derivative works be distributed under the same or compatible license terms Correct answer.
  4. A warranty disclaimer limiting the author's liability

Explanation

Copyleft uses copyright law to require that modified or extended versions distributed to others keep the same freedoms, typically under the same license. It does not ban commercial use, and it is distinct from public domain dedication and from warranty disclaimers.

Question 37Open Source Software Licenses

Which body publishes the Open Source Definition, the criteria a license must meet to be considered open source?

  1. The Open Source Initiative Correct answer.
  2. The Free Software Foundation
  3. The Apache Software Foundation
  4. The Linux Foundation

Explanation

The Open Source Initiative maintains the Open Source Definition and approves licenses that conform to it. The FSF promotes free software and its own four freedoms, while the Apache and Linux Foundations steward specific projects.

Question 38Open Source Software Licenses

Under the Open Source Definition, which practice would disqualify a license from being considered open source?

  1. Allowing the software to be modified and redistributed
  2. Requiring that the license text be included with redistributions
  3. Applying the same terms to all persons and groups
  4. Requiring recipients to pay a fee before using the software for any purpose Correct answer.

Explanation

The Open Source Definition requires free redistribution and forbids discrimination against fields of endeavor or persons; a mandatory usage fee for all users conflicts with free redistribution. Requiring license text, permitting modification, and applying uniform terms are all consistent with the OSD.

Question 39Open Source Software Licenses

What is the key difference between the GNU GPL version 2 and the GNU Lesser General Public License version 2.1?

  1. The LGPL allows linking with proprietary code under conditions, while the GPL requires the combined work to be GPL Correct answer.
  2. The GPL forbids commercial distribution, while the LGPL permits it
  3. The LGPL has no source code disclosure obligations at all
  4. The LGPL applies only to documentation, while the GPL applies to code

Explanation

The LGPL was created to permit proprietary programs to link against LGPL libraries, provided users can relink with a modified library. The GPL treats the combined program as a derivative that must be conveyed under the GPL. Both allow commercial use.

Question 40Open Source Software Licenses

A developer modifies a GPLv3 program and distributes the binary to customers. What must the developer provide?

  1. Nothing, because the binary is distributed to a limited group
  2. The complete corresponding source code of the modified version, under GPLv3 Correct answer.
  3. Only the original unmodified source code
  4. A written promise to release source within five years

Explanation

GPLv3 requires that conveyed object code be accompanied by the Corresponding Source under the same license, including the modifier's changes. Distribution to customers is conveyance, so the obligation applies regardless of how limited the audience is.

Question 41Open Source Software Licenses

Which statement about the Apache License 2.0 is accurate?

  1. It requires derivative works to be licensed under Apache 2.0
  2. It is incompatible with any other license
  3. It prohibits use of the software in commercial products
  4. It includes an express patent grant from contributors Correct answer.

Explanation

Apache 2.0 contains an explicit patent license grant from each contributor, which distinguishes it from simpler permissive licenses. It is not copyleft, permits commercial use, and is compatible with GPLv3 in the appropriate direction.

Question 42Open Source Software Licenses

What is the primary purpose of the Mozilla Public License 2.0's file-level copyleft?

  1. To forbid distributing the software as part of a larger work
  2. To require that modified MPL-covered source files remain under the MPL while allowing larger works under other terms Correct answer.
  3. To place the software in the public domain after five years
  4. To require the entire application to be MPL-licensed

Explanation

The MPL is a weak, file-level copyleft: modifications to MPL-covered files must stay MPL, but the larger work may be combined under other licenses. This makes it suitable for mixing with proprietary code.

Question 43Open Source Software Licenses

A project uses the Eclipse Public License 2.0. What does the EPL's copyleft scope cover?

  1. The entire program that links to EPL code
  2. Nothing, because the EPL is fully permissive
  3. Only the EPL-covered modules and modifications to them Correct answer.
  4. Only documentation files

Explanation

The EPL uses a weak, module-scoped copyleft: changes to EPL-covered code must be shared under the EPL, but separate modules can be under other licenses. This is similar in spirit to file-level copyleft.

Question 44Open Source Software Licenses

Which Creative Commons license is typically recommended for releasing software code?

  1. None; Creative Commons explicitly discourages using its licenses for software Correct answer.
  2. CC BY 4.0
  3. CC0 1.0
  4. CC BY-SA 4.0

Explanation

Creative Commons states that its licenses are not designed for software and recommends software-specific licenses instead, because CC licenses lack patent and source-code provisions. CC0 is a public domain dedication but is not a software license.

Question 45Open Source Software Licenses

What is the main difference between the BSD 3-Clause and BSD 2-Clause licenses?

  1. BSD 3-Clause adds a non-endorsement clause forbidding use of contributor names to promote products Correct answer.
  2. BSD 2-Clause requires source disclosure, while BSD 3-Clause does not
  3. BSD 3-Clause is copyleft, while BSD 2-Clause is permissive
  4. BSD 3-Clause forbids commercial use

Explanation

The BSD 3-Clause license adds a clause prohibiting endorsement or promotion using the names of the copyright holders or contributors without permission. Both BSD variants are permissive and allow commercial use.

Question 46Open Source Software Licenses

A company distributes a product containing GPLv2 code and separately licensed proprietary code that communicate over a network socket. How does the GPL treat the two programs?

  1. The proprietary code must be relicensed under the GPL
  2. The GPL code must be removed before distribution
  3. They are generally considered separate programs because they communicate through a defined interface Correct answer.
  4. They are always a single combined work

Explanation

The GPL's derivative-work boundary is generally based on close integration such as linking, not mere communication over sockets or pipes. Separate programs interacting through well-defined interfaces are typically treated as independent works.

Question 47Open Source Software Licenses

What is a license compatibility issue in open source?

  1. The process of removing license headers from source files
  2. The practice of relicensing code under a newer version
  3. The requirement that all licenses be approved by the OSI
  4. The situation where two licenses' obligations cannot both be satisfied in a combined work Correct answer.

Explanation

Compatibility concerns whether code under two licenses can be combined and distributed while satisfying both sets of obligations. For example, some permissive code can be included in GPL projects, but the reverse is often not possible.

Question 48Open Source Software Licenses

A developer wants to combine Apache 2.0 code with GPLv3 code and distribute the result. Which statement is correct?

  1. The combination is permitted only if the Apache code is removed
  2. The combination is permitted, and the whole work may be distributed under GPLv3 Correct answer.
  3. The combination is forbidden because Apache 2.0 is proprietary
  4. The combination requires relicensing the Apache code as MIT

Explanation

Apache 2.0 is compatible with GPLv3, so Apache-licensed code can be incorporated into a GPLv3 work, which is then distributed under GPLv3. The reverse direction, putting GPLv3 code into an Apache 2.0 work, is not generally allowed.

Question 49Open Source Software Licenses

What does dual licensing typically mean for a project such as one offered under both GPLv2 and a commercial license?

  1. Users may choose either license and must comply with the chosen one Correct answer.
  2. The code is simultaneously in the public domain
  3. The project has no license at all
  4. Both licenses must be satisfied at the same time

Explanation

Dual licensing lets a recipient choose which of the offered licenses applies to their use. A company that cannot accept copyleft obligations may purchase the commercial license, while others use the GPL version.

Question 50Open Source Software Licenses

What is the purpose of a Contributor License Agreement (CLA) in an open source project?

  1. To forbid contributors from modifying the code
  2. To document that contributors grant the project the rights it needs to distribute and relicense contributions Correct answer.
  3. To transfer all copyright in the project to the OSI
  4. To replace the project's open source license

Explanation

A CLA records the rights a contributor grants to the project, such as copyright or patent licenses, so the project can distribute the code and sometimes relicense it. It supplements rather than replaces the project's outbound license.