Продолжая изучение вопроса (https://www.opennet.ru/opennews/art.shtml?num=29967) возможного нарушения (https://www.opennet.ru/opennews/art.shtml?num=29949) лицензии GPL в платформе Android энтузиастами было обнаружено датированное 2003 годом письмо (http://lkml.indiana.edu/hypermail/linux/kernel/0301.1/0362.html) Ричарда Столмана, в которой он пояснил свою позицию в отношении использования заголовочных файлов GPL-проектов в продуктах, несовместимых с лицензией GPL. По словам Столлмана, он проконсультировался с юристами и пришел к выводу, что использование простых конструкций из заголовочных файлов не приводит к созданию производного продукта, т.е. не влечет за собой нарушение лицензии GPL.
По мнению Фонда свободного ПО копирование простых конструкций, таких как описаний структур данных, типов, констант и простых макросов, не является достаточным условием для признания кода производным продуктом. Но копирование из заголовочных фалов таких элементов как inline-функций и комплексных ма...URL: http://linux.slashdot.org/story/11/03/20/1529238/RMS-On-Head...
Новость: https://www.opennet.ru/opennews/art.shtml?num=29971
Малость успокоит возбужденную общественность.
забавно что возбуждают эту общественность как раз копирасты.
видимо в конкурентной борьбе все методы хороши. особенно если других не особо много и осталось то.
Я придумал язык не противоречащий FSF - язык состоящий "только из описания структур данных, типов, констант и простых макросов". :)И введем дополнительные типы-операции: and_t, or_t, not_t - И-ИЛИ-НЕ (Тюринг? Тюринг!)
То есть, тип-оператор определяет действие которое будет произведено над переменными.Например:
int CONST_1 = 0x1;
int CONST_2 = 0x2;
int CONST_3 = 0xFF;struct alpha and_t { int x; int y };
struct beta not_t { int x; };
struct gamma or_t { struct alpha x; struct beta y };
int main () {return (int)struct RESULT gammа = {{CONST_1, CONST_2}, CONST_3 };
/* или на С return ( CONST_1 & CONST_2 ) | !CONST_3 ) */
}Путём комбинации простых типизированных структур создаём все более сложные и сложные.
Так создаем: тип интеграл, тип линейное уравнение, тип ядро, тип Windows :)
Методом обратного раскручивание типов - самый сложный тип всегда можно представить
в виде комбинации простейших (причем это представление будет глубоко не единственным).Например заикнётся Оракл, что его сложный тип Java украли.
А мы им, а ну покаж свой тип Java как комбинацию простейших типов?!
Оракл, "- а нате!"
А мы, "- А вот фиг вам, у Вас используется - x AND y, а у нас x AND ( NOT x OR y ) :-P
> Я придумал язык не противоречащий FSF - язык состоящий "только из описания
> структур данных, типов, констант и простых макросов". :)Павлин, вся программа на ассемблере например состоит из ... простых макросов, простых ассемблерных команд, простых структур.... это что, получается что на нее вообще нельзя (c) получить? Ну ок, тогда дизассемблируем винды, пишем в портянке (c) Денис Попов, ассемблируем обратно и ... все, шито-крыто?! Национальный Билл Гейтс готов? :)
>> Я придумал язык не противоречащий FSF - язык состоящий "только из описания
>> структур данных, типов, констант и простых макросов". :)
> Павлин, вся программа на ассемблере например состоит из ... простых макросов, простых
> ассемблерных команд, простых структур.... это что, получается что на нее вообще
> нельзя (c) получить? Ну ок, тогда дизассемблируем винды, пишем в портянке
> (c) Денис Попов, ассемблируем обратно и ... все, шито-крыто?! Национальный Билл
> Гейтс готов? :)Ну типа, Wine уже на пути туда.
Там говорится, что можно заимствовать только простые макросы, а комплексные уже нельзя.
ДВОЙНЫЕ СТАНДАРТЫ ВО ВСЕ ПОЛЯ
Вчера мы говорили что нельзя брать ничего из GPL и не выполнять требования GPL, а сегодня уже оказывается что кое что да можно?
Мсье не отличает заголовочные файлы от кода ?
А они ничем и не отличаются, кроме расширения. Разделение на "заголовочные файлы" и "код" чисто условное, и делается исключительно для удобства кодирования. Препроцессору пофигу, что там у тебя в *.h файлах - "простые макросы", библиотека inline функций или код ядра - он их все сольёт в один файл и скормит компилятору. Так что, мистер Столлман делает поблажку, разрешая использовать GPL хедеры в не-GPL коде :)
Прикинь! Во многих хидарах в ядре даже нет упоминания про GPL :)Не надо, в общем, путать технологию и семантику!!!
> Прикинь! Во многих хидарах в ядре даже нет упоминания про GPL :)И что?
> Не надо, в общем, путать технологию и семантику!!!
Вот и я о том же.
садитесь, 2.
то, что в h-файлы можно что угодно запихнуть, ещё не говорит что это нужно делать. с дурью то оно и хрен сломать можно.
и это только то, что касается программирования на С.а поскольку речь идёт об успевающих по информатике, то вот и другой аспект заголовочных файлов - в заголовочном файле перечисляются содержащиеся в скомпилированной библиотеке функции и используемые ею структуры/типы. при чём сама библиотека может поставляться и без сырцов. и именно об этом аспекте заголовочных файлов и идёт речь.
в частности в заголовочных файлах объявляют функции стандартной библиотеки Си и Си++.
(это чтож получается, реализация стандартных библиотек в мс визуалси при каждой компиляции гпл-кода перелицензируется? какой ужос! срочно скажите об этом билгейсу!)
и уж тем более мистер Столлман не имеет отношения к стандартам языка С и С++ и их стандартам на распространение библиотек.
> садитесь, 2.В школу любите играть? ;)
> то, что в h-файлы можно что угодно запихнуть, ещё не говорит что это нужно делать.
Что вам "нужно" делать и что вам не "нужно" делать - это ваши личные проблемы. Синтаксически никакой разницы между h-файлами и с-файлами нет. Это тот же исходный код, выведенный для удобства в отдельный файл с другим расширением.
> это чтож получается, реализация стандартных библиотек в мс визуалси при каждой компиляции гпл-кода перелицензируется? какой ужос! срочно скажите об этом билгейсу!
Вот вам ссылка, чтоб вы чушь не писали: http://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL
>В школу любите играть? ;)хм. может потому что это школьный материал?
>Что вам "нужно" делать и что вам не "нужно" делать - это ваши личные проблемы.или вашего работодателя.
или вашего клиента.
или....
опять же - вопрос в квалификации кадров. и ни в коей мере лицензии.
>Синтаксически никакой разницы между h-файлами и с-файлами нет.единицей компиляции является с-файл. точка.
>Вот вам ссылка, чтоб вы чушь не писали: http://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPLха! а вы точно библиотеки от заголовочных файлов уже научились отличать? :D
зыж
также закрадывается подозрение, что с русским языком (в частности с понятием ирония) у вас дела примерно на туже отметку.
> опять же - вопрос в квалификации кадров.Ну, понятно. Когда нечего ответить, нужно обвинить оппонента в неквалифицированности :)
> единицей компиляции является с-файл. точка.
О как! И поэтому h-файлы можно свободно копировать, модифицировать и распространять? Или поэтому h-файлы перестают быть синтаксически равноправным исходным кодом? :)
> ха! а вы точно библиотеки от заголовочных файлов уже научились отличать? :D
Я-то научился, но именно ВЫ почему-то упомянули о "реализации СТАНДАРТНЫХ БИБЛИОТЕК".
>Ну, понятно. Когда нечего ответить, нужно обвинить оппонента в неквалифицированности :)это не обвинения, это констатация факта.
>> единицей компиляции является с-файл. точка.
>О как!вот так.
>И поэтому h-файлы можно свободно копировать, модифицировать и распространять?свободно копировать, модифицировать и распространять их можно не поэтому, а потому что они являются частью свободного апи.
а вот пихать в h-файлы всё подряд не рекомендуется именно по этой причине.
за которую вам кстати и 2.
>Или поэтому h-файлы перестают быть синтаксически равноправным исходным кодом? :)а при чём тут вообще синтаксис? даже если бы у h-файлов был другой синтаксис, это ничего не изменило бы.
у Berkeley C shell тоже тай же синтакси, что не делает из него единицу компиляции с одной стороны, исходниками на С с другой, и вопросы лицензирования сырцов - с третьей.вот когда это усвоите, тогда можно уже и к тонкостям распространения библиотек переходить.
> это не обвинения, это констатация факта.Чушь это, как и все остальные ваши утверждения.
> свободно копировать, модифицировать и распространять их можно не поэтому, а потому что они являются частью свободного апи.
Усвойте наконец разницу между АПИ и конкретными файлами кода, защищенными копирайтом.
> а вот пихать в h-файлы всё подряд не рекомендуется именно по этой причине.
Эту замечательную рекомендацию можете передать разработчикам сишных библиотек :)
> а при чём тут вообще синтаксис? даже если бы у h-файлов был другой синтаксис, это ничего не изменило бы.
Ну наконец-то я услышал от вас первое разумное утверждение! Но вам следует адресовать его не мне, а Анониму, который написал выше: "Мсье не отличает заголовочные файлы от кода ?" - и который, очевидно, считает эту разницу значимой.
> вот когда это усвоите, тогда можно уже и к тонкостям распространения библиотек переходить.
Ахахаха! Только не надо так надувать щеки, а то лопните!
>Чушь это, как и все остальные ваши утверждения.это не чушь, это банальная правда
>Усвойте наконец разницу между АПИ и конкретными файлами кода, защищенными копирайтом.безусловно. я где то говорил иначе?
>> а вот пихать в h-файлы всё подряд не рекомендуется именно по этой причине.
>Эту замечательную рекомендацию можете передать разработчикам сишных библиотек :)они об этом прекрасно знают.
именно поэтому в месте с С-библиотекой всегда идёт и хидерный файл.
при чём если сама библа идёт под определённой лицензией и/или еулой, то хидерный файл нет.
что не отменяет копирайтов на него. и тут даже нет парадокса.
хотя вы уже и его привели в попытке словесного поноса скрыть свои пробелы в знаниях.
>> а при чём тут вообще синтаксис? даже если бы у h-файлов был другой синтаксис, это ничего не изменило бы.
>Ну наконец-то я услышал от вас первое разумное утверждение! Но вам следует адресовать его не мне, а Анониму, который написал выше: "Мсье не отличает заголовочные файлы от кода ?" - и который, очевидно, считает эту разницу значимой.бросьте, я отвечал именно на ваше высказывание.
>> вот когда это усвоите, тогда можно уже и к тонкостям распространения библиотек переходить.
>Ахахаха! Только не надо так надувать щеки, а то лопните!банальное хамство... им не закрыть ни вашей бреши в знания, ни упущений в образовании.
> хидерный файлВы, прежде чем говорить об упущениях в моем образовании, посмотрели бы для начала в словаре как произносится слово header. На остальное не надеюсь...
так может вам на лингвистический форум отправится?
с сями то у васполный швах.
прикинь, заголовочные файлы можно свободно использовать даже от блоба под названием винда.
чем собственно wine и воспользовался.
так почему продукту со свободной лицензией это нельзя сможете объяснить?
> прикинь, заголовочные файлы можно свободно использовать даже от блоба под названием винда.
> чем собственно wine и воспользовался.Очень интересно. Покажите-ка мне хоть один заголовочный файл из исходников Wine, в котором было бы написано "Copyright (C) Microsoft Corporation".
Одно дело - "использовать", т.е. компилировать со своим продуктом, другое дело - иметь право перелицензировать и распространять исходники под GPL.
>Очень интересно. Покажите-ка мне хоть один заголовочный файл из исходников Wine, в котором было бы написано "Copyright (C) Microsoft Corporation".вот именно, даже копирайта не написано.
а названия функций и их параметры - слово в слово как у мс.
видать перелицензировали, демоны. :D
А если копирайт не написан, то что, это автоматически означает копирайт Майкрософта? :) Дело в том, что такие вещи, как API (не путать с исходными кодами!) не являются объектом авторского права, поэтому и названия функций одни и те же. А какие же еще они должны быть! :)
ну а я о чём? вы хоть читать то умеете?
пристебались копирасты чёйто к андроиду, а такие вещи как вайн к примеру чёто не замечают.
да собственно к любой проге, скомпилированной визуал си и идущей не под мсеула справедливы эти претензии. а ещё более другими словами - вообще к любому ПО.стандарт у языка С такой - библиотеки распространяются с заголовочным файлом.
и всё что туда попало является открытым апи.
что говорит о том, что разработчик не должен пихать в заголовочные файлы то, что считает своей интеллектуальной собственностью.
или пусть не пользуется С. :D
> да собственно к любой проге, скомпилированной визуал си и идущей не под мсеула справедливы эти претензии. а ещё более другими словами - вообще к любому ПО.Неправда, не к любому. Вообще, очень мало кто использует в своих проектах код, скопированный ИЗ заголовочных файлов.
> стандарт у языка С такой - библиотеки распространяются с заголовочным файлом.
А что, в стандарте где-то написано, что эти заголовочные файлы можно свободно копировать, модифицировать и распространять?
> и всё что туда попало является открытым апи.
> что говорит о том, что разработчик не должен пихать в заголовочные файлы то, что считает своей интеллектуальной собственностью.
> или пусть не пользуется С. :DЧушь. Стандарт ОПИСЫВАЕТ ЯЗЫК и никак не регламентирует вопросы копирайта и то, кто в какие файлы что должен пихать и под какой лицензией их выпускать. Вы путаете ОПИСАНИЕ АПИ с использованием КОНКРЕТНЫХ ЗАГОЛОВОЧНЫХ ФАЙЛОВ. В данном случае справедливо последнее.
Другое дело, что использование модифицированных хедеров очень трудно доказать - как докажешь, вбил ли кодер название функции руками или скопипастил из хедера? - поэтому успеха подобные дела пока не имеют.
да не доказывайте послушникам гугла то, что можеть дать тень на их "Большого Брата". Гугл уже по полной вляпался, начиная с java и заканчивая теперь нарушением лицензии.
>Неправда, не к любому. Вообще, очень мало кто использует в своих проектах код, скопированный ИЗ заголовочных файлов.конечно мало кто. обычно h-файл просто подключают и всё.
но "мало кто" - это тоже нифига не ноль.>Чушь. Стандарт ОПИСЫВАЕТ ЯЗЫК и никак не регламентирует вопросы копирайта и то,
вы можете сколько угодно зажимать шифт, но это никак не изменит того факта, что стандарт описывает не только язык, но сам процесс компиляции, а также создания и распространения библиотек в частности.
> конечно мало кто. обычно h-файл просто подключают и всё."Подключать файл" и "копировать из файла" - есть разница?
> вы можете сколько угодно зажимать шифт, но это никак не изменит того факта, что стандарт описывает не только язык, но сам процесс компиляции, а также создания и распространения библиотек в частности.
Я могу сколько угодно зажимать шифт, но от этого вы все равно не поймете, что стандарт языка Си не касается вопросов копирайта, обсуждаемых здесь, "а также создания и распространения библиотек в частности".
Вы, очевидно, стандарт никогда в глаза не видели, поэтому вот вам текст первой главы, чтобы вы хотя бы общее представление имели, О ЧЕМ идет речь в стандарте:
INTERNATIONAL STANDARD ©ISO/IEC ISO/IEC 9899:TC3
Programming languages — C
1. Scope
1 This International Standard specifies the form and establishes the interpretation of
programs written in the C programming language.[1] It specifies
— the representation of C programs;
— the syntax and constraints of the C language;
— the semantic rules for interpreting C programs;
— the representation of input data to be processed by C programs;
— the representation of output data produced by C programs;
— the restrictions and limits imposed by a conforming implementation of C.
2 This International Standard does not specify
— the mechanism by which C programs are transformed for use by a data-processing
system;
— the mechanism by which C programs are invoked for use by a data-processing
system;
— the mechanism by which input data are transformed for use by a C program;
— the mechanism by which output data are transformed after being produced by a C
program;
— the size or complexity of a program and its data that will exceed the capacity of any
specific data-processing system or the capacity of a particular processor;[1] This International Standard is designed to promote the portability of C programs among a variety of
data-processing systems. It is intended for use by implementors and programmers.
> ДВОЙНЫЕ СТАНДАРТЫ ВО ВСЕ ПОЛЯ
> Вчера мы говорили что нельзя брать ничего из GPL и не выполнять требования GPL, а сегодня уже оказывается что кое что да можно?Не знаю кто такие "вы", но доходит долго, Столлман в 2003 году написал, а "вы" еще вчера тормозили. Вам бы с "вами" разобраться, прежде чем о двойных стандартах говорить.
Столлман не относит включение заголовочных файлов к признакам создания производных продуктов, тогда как же так, User294, ведь: "Хотите список? Ваш? С шахматами и поэтессами?! Под удобной ВАМ лицензией?!? Так, бэть, ВОЗЬМИТЕ ВАШУ КЛАВИАТУРУ И НАПИШИТЕ ЕГО. Своими руками, мля. Сами. Потратив СВОЕ время и ресурсы на авторство оного. Вот тогда это будет ВАШ список и вы будете в вашем легальном, моральном и прочем праве лицензить результат ваших потуг под любой удоьной вам лицензией, хренли. А если вы содрали файл методом ctrl+c, ctrl+v, del-del-del-del - это, извините, материал созданый другим автором. От затирания шапки и замены ее на свою он материалом того автора под его лицензией быть нифига не перестает, и права автора никуда не деваются."?!
Что нам, сирым и убогим, сделать, чтобы даже не форкнуть (не смеем такое помыслить даже!), а просто заюзать ядро Linux в проприетарных продуктах без перелицензирования своего проприетарного ПО под "свободную GPL"? :))
> Столлман не относит включение заголовочных файлов к признакам создания производных продуктов...Ну вообщето можно такой шаблонец набросать, который будет много "интеллектуальнее" кода, его реализующего. Тут бы всёже отделить мух от котлет. Да и банальное описание струкруы в общем то может содержать интеллектуальную собственность. Ну а если хеадеры не несут в себе криатива, то вообще имеет ли смысл там какието лицензии ставить? А если имеет, то вопрос исчерпан, казалось бы...