Misplaced Pages

Open Build Service

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The Open Build Service (formerly called openSUSE Build Service ) is an open and complete distribution development platform designed to encourage developers to compile packages for multiple Linux distributions including SUSE Linux Enterprise Server , openSUSE , Red Hat Enterprise Linux , Mandriva , Ubuntu , Fedora , Debian , and Arch Linux . It typically simplifies the packaging process, so developers can more easily package a single program for many distributions, and many openSUSE releases, making more packages available to users regardless of what distribution they use. Also, product and appliance building is supported by OBS.

#145854

92-644: The Build Service software is published under the GPL . In an acknowledgement of its usefulness to the wider Linux community, the Linux Foundation has announced that the project will be added to the Linux Developer Network (LDN). Also, various companies, MeeGo project and Tizen are using it for developing their distribution. It also delivers a collaboration environment, allowing developer groups to build and submit changes to other projects. One can either run

184-678: A Balkanisation of the "Open Source Universe". Linus Torvalds, who decided not to adopt the GPLv3 for the Linux kernel, reiterated his criticism several years later. GPLv3 improved compatibility with several free software licenses such as the Apache License, version 2.0, and the GNU Affero General Public License, which GPLv2 could not be combined with. However, GPLv3 software could only be combined and share code with GPLv2 software if

276-504: A Language Server Protocol integration, and the productivity system Org-mode . A large community of users have contributed extensions such as the Git interface Magit , the Vim emulation layer Evil, several search frameworks, the window manager EXWM, and tools for working with a wide range of programming languages. The original EMACS was written in 1976 by David A. Moon and Guy L. Steele Jr. as

368-525: A dialog box . Some of these notifications are displayed briefly in the minibuffer, and GNU Emacs provides a *Messages* buffer that keeps a history of the most recent notifications of this type. When the minibuffer is used for output from Emacs, it is called the "echo area". Longer notifications are displayed in buffers of their own. The maximum length of messages that will be displayed in the minibuffer is, of course, configurable. Buffers can also serve as input and output areas for an external process such as

460-601: A patent infringement claim or other litigation to impair users' freedom under the license. By 1990, it was becoming apparent that a less restrictive license would be strategically useful for the C library and for software libraries that essentially did the job of existing proprietary ones; when version 2 of the GPL (GPLv2) was released in June 1991, therefore, a second license – the GNU Library General Public License

552-410: A shell or REPL . Buffers which Emacs creates on its own are typically named with asterisks on each end, to distinguish from user buffers. The list of open buffers is itself displayed in this type of buffer. Most Emacs key sequences remain functional in any buffer. For example, the standard Ctrl-s isearch function can be used to search filenames in dired buffers, and the file list can be saved to

644-415: A status bar called the "mode line" displayed by default at the bottom edge of the window. Emacs windows are available both in text-terminal and graphical modes and allow more than one buffer, or several parts of a buffer, to be displayed at once. Common applications are to display a dired buffer along with the contents of files in the current directory (there are special modes to make the file buffer follow

736-482: A "home" project by default where they can upload sources and definitions on how to build RPM or Debian packages . Commits outside the home space is possible given permissions have been granted to a developer. After each upload , the Build Service schedules the changed packages to be rebuilt. On completion, the resulting binary packages are published instantaneously to the download server, which makes them available to

828-452: A "user" and a "consumer product". It also explicitly removed the section on "Geographical Limitations", the probable removal of this section having been announced at the launch of the public consultation. The fourth discussion draft, which was the last, was released on 31 May 2007. It introduced Apache License version 2.0 compatibility (prior versions are incompatible), clarified the role of outside contractors, and made an exception to avoid

920-408: A US federal court ruled that an open-source license is an enforceable contract. In October 2021 SFC sued Vizio over breach of contract as an end user to request source code for Vizio's TVs, a federal judge has ruled in the interim that the GPL is an enforceable contract by end users as well as a license for copyright holders. The text of the GPL is itself copyrighted , and the copyright is held by

1012-492: A flagship project of the free software movement. The program's tagline is "the extensible self-documenting text editor." Most functionality in GNU Emacs is implemented in user-accessible Emacs Lisp , allowing deep extensibility directly by users and through community-contributed packages. Its built-in features include a file browser and editor ( Dired ), an advanced calculator (Calc), an email client and news reader ( Gnus ),

SECTION 10

#1733085800146

1104-401: A full-featured Lisp as its extension language, and soon replaced Gosling Emacs as the de facto Unix Emacs editor. Markus Hess exploited a security flaw in GNU Emacs's email subsystem in his 1986 cracking spree, in which he gained superuser access to Unix computers. Although users commonly submitted patches and Elisp code to the net.emacs newsgroup , participation in GNU Emacs development

1196-497: A header along with its implementation file for C-based languages. In addition, there is follow-mode , a minor mode that chains windows to display non-overlapping portions of a buffer. Using follow-mode , a single file can be displayed in multiple side-by-side windows that update appropriately when scrolled. In addition, Emacs supports "narrowing" a buffer to display only a portion of a file, with top/bottom of buffer navigation functionality and buffer size calculations reflecting only

1288-443: A licensee has no right to redistribute it, not even in modified form (barring fair use ), except under the terms of the license. One is only required to adhere to the terms of the GPL if one wishes to exercise rights normally restricted by copyright law, such as redistribution. Conversely, if one distributes copies of the work without abiding by the terms of the GPL (for instance, by keeping the source code secret), they can be sued by

1380-425: A major mode (either for a new file type or to build a non-text-editing user interface); others define only commands or minor modes, or provide functions that enhance another extension. Since version 24 GNU Emacs includes a built-in package manager accessible with the list-packages command that allows users to search for and install packages. Historically, packages were downloaded manually, often distributed through

1472-456: A modified derivative of a GPL licensed content management system is not required to distribute its changes to the underlying software, because the modified web portal is not being redistributed but rather hosted, and also because the web portal output is also not a derivative work of the GPL licensed content management system. There has been debate on whether it is a violation of the GPLv1 to release

1564-474: A package that originally was a third-party add-on but has been included in GNU Emacs since version 22. Emacs uses the "minibuffer," normally the bottommost line, to display messages and request information, functions that are often performed by dialog boxes in GUI editors. The minibuffer holds information such as text to target in a search or the name of a file to read or save. When applicable, command-line completion

1656-520: A series of widely used free software licenses , or copyleft licenses, that guarantee end users the freedoms to run, study, share, and modify the software. The GPL was the first copyleft license for general use. It was originally written by Richard Stallman , the founder of the Free Software Foundation (FSF), for the GNU Project . The license grants the recipients of a computer program

1748-445: A set of macros for the TECO editor, and in 1984, Richard Stallman began work on GNU Emacs, to produce a free software replacement to the proprietary Gosling Emacs . GNU Emacs was initially based on Gosling Emacs, but Stallman's replacement of its Mocklisp interpreter with a true Lisp interpreter required that nearly all of its code be rewritten. This became the first program released by

1840-478: A suitable disclaimer or assignment of their copyright interest to the Free Software Foundation (FSF.) Small contributions of fewer than 10 lines of code are exempt. This policy is in place so that the FSF can defend the software in court if its copyleft license is violated. In 2011, it was noticed that GNU Emacs had been accidentally releasing some binaries without corresponding source code for two years, in opposition to

1932-420: A text file just as any other buffer. Dired buffers can be switched to a writable mode, in which filenames and attributes can be edited textually; when the buffer is saved, the changes are written to the filesystem. This allows multiple files to be renamed using the search and replace features of Emacs. When so equipped, Emacs displays image files in buffers. Emacs is binary safe and 8-bit clean. Emacs can split

SECTION 20

#1733085800146

2024-435: A time, but multiple minor modes can operate simultaneously. These may operate directly on documents, as in the way the major mode for the C programming language defines a separate minor mode for each of its popular indent styles , or they may alter the editing environment. Examples of the latter include a mode that adds the ability to undo changes to the window configuration and one that performs on-the-fly syntax checking. There

2116-418: Is allowed to charge a fee for this service or do this free of charge. This latter point distinguishes the GPL from software licenses that prohibit commercial redistribution. The FSF argues that free software should not place restrictions on commercial use, and the GPL explicitly states that GPL works may be sold at any price. The GPL additionally states that a distributor may not impose "further restrictions on

2208-513: Is also a minor mode that allows multiple major modes to be used in a single file, for convenience when editing a document in which multiple programming languages are embedded. GNU Emacs supports the capability to use it as an interpreter for the Emacs Lisp language without displaying the text editor user interface. In batch mode, user configuration is not loaded and the terminal interrupt characters C-c and C-z will have their usual effect of exiting

2300-508: Is an issue regarding linking: namely, whether a proprietary program that uses a GPL library is in violation of the GPL. GNU Emacs GNU Emacs is a text editor and suite of free software tools. Its development began in 1984 by GNU Project founder Richard Stallman , based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and

2392-449: Is applied to ensure that end users retain the freedoms defined above. However, software running as an application program under a GPL-licensed operating system such as Linux is not required to be licensed under GPL or to be distributed with source-code availability—the licensing depends only on the used libraries and software components and not on the underlying platform. For example, if a program consists only of original source code , or

2484-413: Is available using the tab and space keys. Emacs keeps text in data structures known as buffers . Buffers may or may not be displayed onscreen, and all buffer features are accessible by both Emacs Lisp programs and the user interface. The user can create new buffers and dismiss unwanted ones, and many buffers can exist at the same time, limited only by available memory. Emacs can be configured to save

2576-1090: Is bundled with GNU Emacs and can be viewed with the built-in info browser. Two additional manuals, the Emacs Lisp Reference Manual by Bil Lewis, Richard Stallman, and Dan Laliberte and An Introduction to Programming in Emacs Lisp by Robert Chassell , are included. All three manuals are also published in book form by the Free Software Foundation . GNU Emacs has support for many alphabets, scripts, writing systems, and cultural conventions and provides spell-checking for many languages by calling external programs such as ispell . Version 24 added support for bidirectional text and left-to-right and right-to-left writing direction for languages such as Arabic, Persian and Hebrew. Many character encoding systems, including UTF-8 , are supported. GNU Emacs uses UTF-8 for its encoding as of version 23, while prior versions used their own encoding internally and performed conversion upon load and save. The internal encoding used by XEmacs

2668-427: Is combined with source code from other software components , then the custom software components need not be licensed under GPL and need not make their source code available; even if the underlying operating system used is licensed under the GPL, applications running on it are not considered derivative works. Only if GPL licensed parts are used in a program (and the program is distributed), then all other source code of

2760-449: Is how the compiled code was available and there are "clear directions" on where to find the source code. The FSF does not hold the copyright for a work released under the GPL unless an author explicitly assigns copyrights to the FSF (which seldom happens except for programs that are part of the GNU project). Only the individual copyright holders have the authority to sue when a license violation

2852-500: Is prohibited by copyright law . The FSF argues that freedom-respecting free software should also not restrict commercial use and distribution (including redistribution): In purely private (or internal) use—with no sales and no distribution—the software code may be modified and parts reused without requiring the source code to be released. For sales or distribution, the entire source code needs to be made available to end users, including any code changes and additions—in that case, copyleft

Open Build Service - Misplaced Pages Continue

2944-651: Is similar to that of GNU Emacs but differs in details. The GNU Emacs user interface originated in English and, with the exception of the beginners' tutorial, has not been translated into any other language. A subsystem called Emacspeak enables visually impaired and blind users to control the editor through audio feedback. The behavior of GNU Emacs can be modified and extended almost without limit by incorporating Emacs Lisp programs that define new commands, new buffer modes, new keymaps, add command-line options, and so on. Many extensions providing user-facing functionality define

3036-499: Is suspected. Software under the GPL may be run for all purposes, including commercial purposes and even as a tool for creating proprietary software , such as when using GPL-licensed compilers . Users or companies who distribute GPL-licensed works (e.g. software), may charge a fee for copies or give them free of charge. This distinguishes the GPL from shareware software licenses that allow copying for personal use but prohibit commercial distribution or proprietary licenses where copying

3128-691: The ASP loophole in the GPL . As there were concerns expressed about the administrative costs of checking code for this additional requirement, it was decided to keep the GPL and the AGPL license separated. Others, notably some high-profile Linux kernel developers such as Linus Torvalds , Greg Kroah-Hartman , and Andrew Morton , commented to the mass media and made public statements about their objections to parts of discussion drafts 1 and 2. The kernel developers referred to GPLv3 draft clauses regarding DRM / Tivoization , patents, and "additional restrictions", and warned of

3220-499: The AGPL (v1) , and patent deals between Microsoft and distributors of free and open-source software, which some viewed as an attempt to use patents as a weapon against the free software community. Version 3 was developed as an attempt to address these concerns and was officially released on 29 June 2007. Version 1 of the GNU GPL, released on 25 February 1989, was written to protect against

3312-678: The GNU General Public License (GPL) state that the Emacs source code, including both the C and Emacs Lisp components, are freely available for examination, modification, and redistribution. Older versions of the GNU Emacs documentation appeared under an ad-hoc license that required the inclusion of certain text in any modified copy. In the GNU Emacs user's manual, for example, this included instructions for obtaining GNU Emacs and Richard Stallman's essay The GNU Manifesto . The XEmacs manuals, which were inherited from older GNU Emacs manuals when

3404-481: The Software Freedom Law Center . According to Stallman, the most important changes were in relation to software patents , free software license compatibility, the definition of "source code", and hardware restrictions on software modifications, such as tivoization . Other changes related to internationalization, how license violations are handled, and how additional permissions could be granted by

3496-623: The Usenet newsgroup gnu.emacs.sources. Over time many popular packages have been included in Emacs by default; for example version 21 began bundling Org-mode , Calc, TRAMP, and many others. Notable packages include: In its early history, GNU Emacs often ran noticeably slower than rival text editors because the loading and interpreting of its Lisp -based code incurs a performance overhead. Modern computers are powerful enough to run GNU Emacs with ease, but versions prior to 19.29 (released in 1995) couldn't edit files larger than 8 MB. The file size limit

3588-546: The WIPO Copyright Treaty , and that those who convey the work waive all legal power to prohibit circumvention of the technical protection measure "to the extent such circumvention is effected by exercising rights under this License with respect to the covered work". This means that users cannot be held liable for circumventing DRM implemented using GPLv3-licensed code under laws such as the U.S. Digital Millennium Copyright Act (DMCA). The distribution rights granted by

3680-611: The control key and/or the meta key , alt key or super keys in conjunction with a regular key produces modified keystrokes that invoke functions from the Emacs Lisp environment. Commands such as save-buffer and save-buffers-kill-emacs combine multiple modified keystrokes. Some GNU Emacs commands work by invoking external programs, such as ispell for spell-checking and the GNU Compiler Collection (GCC) for program compilation . Emacs also supports "inferior processes," long-lived child processes that interact with

3772-465: The source code of many markup and programming languages , as well as displaying web pages , directory listings and other system info. Each major mode involves an Emacs Lisp program that extends the editor to behave more conveniently for the specified type of text. Major modes typically provide some or all of the following common features: The use of "minor modes" enables further customization. A GNU Emacs editing buffer can use only one major mode at

Open Build Service - Misplaced Pages Continue

3864-634: The Free Software Foundation. The FSF permits people to create new licenses based on the GPL, as long as the derived licenses do not use the GPL preamble without permission. This is discouraged, however, since such a license might be incompatible with the GPL and causes a perceived license proliferation . Other licenses created by the GNU project include the GNU Lesser General Public License , GNU Free Documentation License , and GNU Affero General Public License . The text of

3956-404: The GPL for modified versions of the work are not unconditional. When someone distributes a GPL licensed work plus their own modifications, the requirements for distributing the whole work cannot be any greater than the requirements that are in the GPL. This requirement is known as copyleft. It earns its legal power from the use of copyright on software programs. Because a GPL work is copyrighted,

4048-517: The GPL is not itself under the GPL. The license's copyright disallows modification of the license. Copying and distributing the license is allowed since the GPL requires recipients to get "a copy of this License along with the Program". According to the GPL FAQ, anyone can make a new license using a modified version of the GPL as long as they use a different name for the license, do not mention "GNU", and remove

4140-460: The GPL license family has been one of the most popular software licenses in the free and open-source software (FOSS) domain. Prominent free software programs licensed under the GPL include the Linux kernel and the GNU Compiler Collection (GCC). David A. Wheeler argues that the copyleft provided by the GPL was crucial to the success of Linux -based systems, giving the programmers who contributed to

4232-582: The GPL license includes an optional "any later version" clause, allowing users to choose between the original terms or the terms in new versions as updated by the FSF. Software projects licensed with the optional "or later" clause include the GNU Project, while projects like the Linux kernel is licensed under GPLv2 only. The "or any later version" clause is sometimes known as a "lifeboat clause" since it allows combinations between different versions of GPL-licensed software to maintain compatibility. The original GPL

4324-431: The GPL licensed program, they may still use the software within their organization however they like, and works (including programs) constructed by the use of the program are not required to be covered by this license. Software developer Allison Randal argued that the GPLv3 as a license is unnecessarily confusing for lay readers, and could be simplified while retaining the same conditions and legal force. In April 2017,

4416-460: The GPLv2 license used had the optional "or later" clause and the software was upgraded to GPLv3. While the "GPLv2 or any later version" clause is considered by FSF as the most common form of licensing GPLv2 software, Toybox developer Rob Landley described it as a lifeboat clause . Software projects licensed with the optional "or later" clause include the GNU Project , while a prominent example without

4508-484: The Open Build Service as a private installation, or utilize public instances such as the openSUSE Build Service located at build.opensuse.org, hosted by SUSE . The latter offers up to 400 build slots, but external services may impose limitations as to what packages are allowed to be hosted, so private installations are usually chosen when proprietary or legally problematic software is to be hosted. Each packager has

4600-523: The Software Package Data Exchange (SPDX). The license includes instructions to specify "version 2 of the License, or (at your option) any later version" to allow the flexible optional use of either version 2 or 3, but some developers change this to specify "version 2" only. In late 2005, the Free Software Foundation (FSF) announced work on version 3 of the GPL (GPLv3). On 16 January 2006,

4692-429: The clause is the Linux kernel. The final version of the license text was published on 29 June 2007. The terms and conditions of the GPL must be made available to anybody receiving a copy of a work that has a GPL applied to it ("the licensee"). Any licensee who adheres to the terms and conditions is given permission to modify the work, as well as to copy and redistribute the work or any derivative version. The licensee

SECTION 50

#1733085800146

4784-470: The copyright holder. The concept of "software propagation", as a term for the copying and duplication of software, was explicitly defined. The public consultation process was coordinated by the Free Software Foundation with assistance from Software Freedom Law Center, Free Software Foundation Europe , and other free software groups. Comments were collected from the public via the gplv3.fsf.org web portal, using purpose-written software called stet . During

4876-410: The editing area into separate non-overlapping sections called "windows," a feature that has been available since 1975, predating the graphical user interface in common use. In Emacs terminology, "windows" are similar to what other systems call " frames " or " panes " – a rectangular portion of the program's display that can be updated and interacted with independently. Each Emacs window has

4968-417: The editor. This is used to implement shell-mode , running a Unix shell as inferior process, as well as read–eval–print loop (REPL) modes for various programming languages. Emacs' support for external processes makes it suitable for interactive programming along the lines of Interlisp or Smalltalk . Users who prefer the widely used IBM Common User Access keyboard shortcut layout can use cua-mode ,

5060-510: The file highlighted in dired), to display the source code of a program in one window while another displays a shell buffer with the results of compiling the program, to run a debugger along with a shell buffer running the program, to work on code while displaying a man page or other documentation (possibly loaded over the World Wide Web using one of Emacs' built-in web browsers) or simply to display multiple files for editing at once such as

5152-399: The first "discussion draft" of GPLv3 was published, and the public consultation began. The public consultation was originally planned for nine to fifteen months, but ultimately lasted eighteen months, with four drafts being published. The official GPLv3 was released by the FSF on 29 June 2007. GPLv3 was written by Richard Stallman, with legal counsel from Eben Moglen and Richard Fontana from

5244-471: The fork occurred, have the same license. Newer versions of the documentation use the GNU Free Documentation License with "invariant sections" that require the inclusion of the same documents and that the manuals proclaim themselves as GNU Manuals . For GNU Emacs, like many other GNU packages, it remains policy to accept significant code contributions only if the copyright holder executes

5336-401: The graphics systems native to macOS and Windows to provide menubars , toolbars , scrollbars and context menus conforming more closely to each platform's look and feel . Lucid Emacs, based on an early version of GNU Emacs 19, was developed beginning in 1991 by Jamie Zawinski and others at Lucid Inc. One of the best-known forks in free software development occurred when the codebases of

5428-452: The intended spirit of the GPL. Richard Stallman described this incident as "a very bad mistake," which was promptly fixed. The FSF did not sue any downstream redistributors who unknowingly violated the GPL by distributing these binaries. In its normal editing mode, GNU Emacs behaves like common text editors by allowing the user to type text with the keyboard and move the editing point with arrow keys . Escape key sequences or pressing

5520-416: The kernel assurance that their work would benefit the whole world and remain free, rather than being exploited by software companies that would not have to give anything back to the community. In 2007, the third version of the license (GPLv3) was released to address some perceived problems with the second version (GPLv2) which were discovered during the latter's long-time usage. To keep the license current,

5612-536: The legal distinction between a license and a contract is an important one: contracts are enforceable by contract law , whereas licenses are enforced under copyright law . However, this distinction is not useful in the many jurisdictions where there are no differences between contracts and licenses, such as civil law systems. Those who do not accept the GPL's terms and conditions do not have permission, under copyright law, to copy or distribute GPL-licensed software or derivative works. However, if they do not redistribute

SECTION 60

#1733085800146

5704-420: The license. Copyleft applies only when a person seeks to redistribute the program. Developers may make private modified versions with no obligation to divulge the modifications, as long as they do not distribute the modified software to anyone else. Copyleft applies only to the software, and not to its output (unless that output is itself a derivative work of the program). For example, a public web portal running

5796-471: The list of open buffers on exit, and reopen this list when it is restarted. Some buffers contain text loaded from text files , which the user can edit and save back to permanent storage. These buffers are said to be "visiting" files. Buffers also serve to display other data, such as the output of Emacs commands, dired directory listings, documentation strings displayed by the "help" library and notification messages that in other editors would be displayed in

5888-431: The major change in GPLv2 was the "Liberty or Death" clause, as he calls it – Section 7. The section says that licensees may distribute a GPL-covered work only if they can satisfy all of the license's obligations, despite any other legal obligations they might have. In other words, the obligations of the license may not be severed due to conflicting obligations. This provision is intended to discourage any party from using

5980-453: The original author under copyright law. Copyright law has historically been used to prevent distribution of work by parties not authorized by the creator. Copyleft uses the same copyright laws to accomplish a very different goal. It grants rights to distribution to all parties insofar as they provide the same rights to subsequent ones, and they to the next, etc. In this way, the GPL and other copyleft licenses attempt to enforce libre access to

6072-509: The parties who would receive the covered work from you, a discriminatory patent license   ... This aimed to make such future deals ineffective. The license was also meant to cause Microsoft to extend the patent licenses it granted to Novell customers for the use of GPLv3 software to all users of that GPLv3 software; this was possible only if Microsoft was legally a "conveyor" of the GPLv3 software. Early drafts of GPLv3 also let licensors add an AGPL -like requirement that would have plugged

6164-452: The perceived problems of a Microsoft–Novell style agreement, saying in Section 11 paragraph 6 that: You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of

6256-409: The preamble, though the preamble can be used in a modified license if permission to use it is obtained from the Free Software Foundation (FSF). According to the FSF, "The GPL does not require you to release your modified version or any part of it. You are free to make modifications and use them privately, without ever releasing them." However, if one releases a GPL-licensed entity to the public, there

6348-522: The program needs to be made available under the same license terms. The GNU Lesser General Public License (LGPL) was created to have a weaker copyleft than the GPL, in that it does not require custom-developed source code (distinct from the LGPL licensed parts) to be made available under the same license terms. The fifth section of version 3 states that no GPL-licensed code shall be considered an effective "technical protection measure" as defined by Article 11 of

6440-477: The program or suspending execution instead of invoking Emacs keybindings. GNU Emacs has command line options to specify either a file to load and execute, or an Emacs Lisp function may be passed in from the command line. Emacs will start up, execute the passed-in file or function, print the results, then exit. The shebang line #!/usr/bin/emacs --script allows the creation of standalone scripts in Emacs Lisp. The GNU Emacs Manual , written by Richard Stallman,

6532-420: The public consultation process, 962 comments were submitted for the first draft. By the end of the comment period, a total of 2,636 comments had been submitted. The third draft was released on 28 March 2007. This draft included language intended to prevent patent-related agreements such as the controversial Microsoft-Novell patent agreement , and restricted the anti-tivoization clauses to a legal definition of

6624-568: The public. The Build Service provides a public API which is implemented in several user interfaces : Furthermore, a plug-in for integrating the Build Service into Eclipse is developed as a Google Summer of Code project, as well as a plugin for Qt Creator . Instances can be linked, such that sources and packages from a remote host can be reused, thereby eliminating the need to bootstrap/import dependencies manually for preexisting projects. GNU General Public License The GNU General Public Licenses ( GNU GPL or simply GPL ) are

6716-426: The rights granted by the GPL". This forbids activities such as distributing the software under a non-disclosure agreement or contract. The fourth section for version 2 of the license and the seventh section of version 3 require that programs distributed as pre-compiled binaries be accompanied by a copy of the source code, a written offer to distribute the source code via the same mechanism as the pre-compiled binary, or

6808-544: The rights of the Free Software Definition . The licenses in the GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely-used permissive software licenses such as BSD , MIT , and Apache . Historically,

6900-526: The role at times. Stefan Monnier and Chong Yidong have overseen maintenance since 2008. On September 21, 2015 Monnier announced that he would be stepping down as maintainer effective with the feature freeze of Emacs 25. Longtime contributor John Wiegley was announced as the new maintainer on November 5, 2015. Wiegley was joined by Eli Zaretskii in July, 2016, and Lars Ingebrigtsen in September, 2020. The terms of

6992-586: The selected range. Emacs windows are tiled and cannot appear "above" or "below" their companions. Emacs can launch multiple "frames", which are displayed as individual windows in a graphical environment. On a text terminal, multiple frames are displayed stacked filling the entire terminal, and can be switched using the standard Emacs commands. GNU Emacs can display or edit a variety of different types of text and adapts its behavior by entering add-on modes called "major modes". There are major modes for many different purposes including editing ordinary text files,

7084-440: The source code in obfuscated form, such as in cases in which the author is less willing to make the source code available. The consensus was that while unethical, it was not considered a violation. The issue was clarified when the license was altered with v2 to require that the "preferred" version of the source code be made available. The GPL was designed as a license , rather than a contract. In some common law jurisdictions,

7176-417: The terms of GPLv1 could be combined with software under more permissive terms, as this would not change the terms under which the whole could be distributed. However, software distributed under GPLv1 could not be combined with software distributed under a more restrictive license, as this would conflict with the requirement that the whole be distributable under the terms of GPLv1. According to Richard Stallman,

7268-411: The then-nascent GNU Project. GNU Emacs is written in C and provides Emacs Lisp , also implemented in C, as an extension language. Version 13, the first public release, was made on March 20, 1985. The first widely distributed version of GNU Emacs was version 15.34, released later in 1985. Early versions of GNU Emacs were numbered as "1.x.x," with the initial digit denoting the version of the C core. The "1"

7360-558: The two Emacs versions diverged and the separate development teams ceased efforts to merge them back into a single program. After Lucid filed for bankruptcy, Lucid Emacs was renamed XEmacs . XEmacs development has slowed, with the most recent stable version 21.4.22 released in January 2009, while GNU Emacs has implemented many formerly XEmacs-only features. This has led some users to proclaim XEmacs' death. Other forks, less known than XEmacs, include: Changes in each Emacs release are listed in

7452-446: The two main methods by which software distributors restricted the freedoms that define free software. The first problem was that distributors might publish only binary files that are executable, but not readable or modifiable by humans. To prevent this, GPLv1 stated that copying and distributing copies of any portion of the program must also make the human-readable source code available under the same licensing terms. The second problem

7544-510: The user can load dynamic modules. Since version 28.1, Emacs can natively compile Emacs Lisp files via libgccjit , as opposed to just byte compiling them, resulting in a significant boost in performance. GNU Emacs runs on a wide variety of operating systems , including DOS , Windows , and most Unix-like operating systems, such as Linux , the various BSDs , Solaris , AIX , HP-UX and macOS . Many Unix-like systems include Emacs by default. In 2023 an official port for Android

7636-510: The work and all derivatives. Many distributors of GPL licensed programs bundle the source code with the executables . An alternative method of satisfying the copyleft is to provide a written offer to provide the source code on a physical medium (such as a CD) upon request. In practice, many GPL licensed programs are distributed over the Internet, and the source code is made available over FTP or HTTP . For Internet distribution, this complies with

7728-510: The written offer to obtain the source code that the user got when they received the pre-compiled binary under the GPL. The second section of version 2 and the fifth section of version 3 also require giving "all recipients a copy of this License along with the Program". Version 3 of the license allows making the source code available in additional ways in fulfillment of the seventh section. These include downloading source code from an adjacent network server or by peer-to-peer transmission, provided that

7820-533: Was dropped after version 1.12 as it was thought that the major number would never change, and thus the major version skipped from "1" to "13". A new third version number was added to represent changes made by user sites. In the current numbering scheme, a number with two components signifies a release version, with development versions having three components. GNU Emacs was later ported to the Unix operating system . It offered more features than Gosling Emacs, in particular

7912-439: Was introduced at the same time and numbered with version 2 to show that both were complementary. The version numbers diverged in 1999 when version 2.1 of the LGPL was released, which renamed it the GNU Lesser General Public License to reflect its place in the philosophy. The GPLv2 was also modified to refer to the new name of the LGPL, but its version number remained the same, resulting in the original GPLv2 not being recognised by

8004-426: Was raised in successive versions, and 32 bit versions after GNU Emacs 23.2 can edit files up to 512 MB in size. Emacs compiled on a 64-bit machine can handle much larger buffers. While GNU Emacs is largely written in Emacs Lisp, it makes extensive use of natively compiled C code to improve performance. In addition to its own C code, it uses external libraries such as libxml2 for parsing XML . Packages installed by

8096-574: Was relatively restricted until 1999, and was used as an example of the "Cathedral" development style in The Cathedral and the Bazaar . The project has since adopted a public development mailing list and anonymous CVS access. Development took place in a single CVS trunk until 2008, and today uses the Git DVCS . Richard Stallman has remained the principal maintainer of GNU Emacs, but he has stepped back from

8188-401: Was released. Version 23.1 removed supported for some platforms deemed obsolete. GNU Emacs runs both on text terminals and in graphical user interface (GUI) environments. On Unix-like operating systems, GNU Emacs can use the X Window System to produce its GUI either directly using Athena widgets or by using a "widget toolkit" such as Motif , LessTif , or GTK+ . GNU Emacs can also use

8280-426: Was that distributors might add restrictions, either to the license or by combining the software with other software that had other restrictions on distribution. The union of two sets of restrictions would apply to the combined work, thus adding unacceptable constrictions. To prevent this, GPLv1 stated that modified versions, as a whole, had to be distributed under the terms of GPLv1. Therefore, software distributed under

8372-594: Was to produce one license that could be used for any project, thus making it possible for many projects to share code. The second version of the license, version 2, was released in 1991. Over the following 15 years, members of the free software community became concerned over problems in the GPLv2 license that could let someone exploit GPL-licensed software in ways contrary to the license's intent. These problems included tivoization (the inclusion of GPL-licensed software in hardware that refuses to run modified versions of its software), compatibility issues similar to those of

8464-474: Was written by Richard Stallman in 1989, for use with programs released as part of the GNU project. It was based on a unification of similar licenses used for early versions of GNU Emacs (1985), the GNU Debugger , and the GNU C Compiler . These licenses contained similar provisions to the modern GPL, but were specific to each program, rendering them incompatible, despite being the same license. Stallman's goal

#145854