รหัส JavaScript ใด ๆ ที่ใช้สำหรับเว็บไซต์โอเพนซอร์สเท่านั้น


12

คำถามที่เขียนซ้ำ:

ฉันไม่ได้ถามคำถามที่เกี่ยวข้องกับ JavaScript แต่ทุกภาษา "ลูกค้า" ที่ใช้บนเว็บ (HTML5, JavaScript, CSS และอื่น ๆ ) หากฉันใส่รหัส JavaScript (นั่นคือ GPLed) บนเว็บไซต์ของฉันและเว็บไซต์นี้สามารถเข้าถึงได้จากทุกคนทางเว็บฉันจะละเมิด GPL ในทางใดทางหนึ่งหรือไม่

จะเกิดอะไรขึ้นหากฉันต้องการขายรหัสลูกค้า (HTML, CSS, JavaScript) ให้กับบางคน ฉันต้องมีใบอนุญาตอื่นในกรณีนี้หรือไม่?

JavaScript ไม่ได้ (เมื่อใช้กับเว็บไซต์) เสมอที่มาเปิดหรือไม่ เมื่อคุณเปิดเว็บเพจคุณสามารถอ่านต้นฉบับได้เสมอ

ฉันต้องปล่อยรหัสฝั่งเซิร์ฟเวอร์ของฉันหรือไม่ถ้าฉันขายเว็บไซต์ที่มีรหัส JavaScript GPLed

จะเกิดอะไรขึ้นหากเว็บไซต์นี้เข้าถึงได้บางส่วน (ส่วนหนึ่งฟรีและอีกเว็บไซต์หนึ่งกำหนดให้คุณต้องชำระ) แต่ใช้รหัส GPLed (ส่วนเดียวกัน) ที่ใช้ทั้งสองด้านของเว็บไซต์

จะเกิดอะไรขึ้นถ้ารหัส GPLed เป็นเพียงส่วนหนึ่งของเว็บไซต์ที่คุณต้องจ่ายเพื่อเข้าถึง

ถ้าฉันขายเว็บไซต์ให้กับลูกค้าด้วยวิธีนี้:

  1. ฉันกำลังขายคุณ (ค่าธรรมเนียมครั้งเดียว) รหัสที่เกี่ยวข้องกับลูกค้าทั้งหมด (JavaScript, HTML และ CSS)
  2. ฉันไม่ได้ขายรหัสฝั่งเซิร์ฟเวอร์ให้คุณคุณกำลังเช่าอยู่ (ฉันไม่ต้องการให้คุณใช้รหัสฝั่งเซิร์ฟเวอร์ของฉันซ้ำ)

หากฉันใช้รหัส GPLed ของ JavaScript ฉันกำลังละเมิดบางสิ่ง (เว็บไซต์นี้สามารถเข้าถึงได้จากทุกคนทางเว็บ)

แก้ไข 2:

เพิ่มคำถามเฉพาะใหม่:

ถ้าเว็บไซต์สามารถทำงานได้โดยไม่ต้องใช้โค้ดฝั่งเซิร์ฟเวอร์ผมหมายถึงจาวาสคริปต์กำลังเรียกหน้า PHP ที่มีข้อมูลในรูปแบบ JSON คนอื่นสามารถสร้างเว็บไซต์ด้วยฝั่งไคลเอ็นต์ แต่พวกเขาจะต้องให้ข้อมูล ในกรณีนี้ JavaScript กำลังเรียกใช้รหัส "PHP" (แต่ไม่ใช่ตรงกันข้าม) ฉันคิดว่า ในกรณีนี้ฉันกำลังละเมิด GPL หรือไม่


4
ความสามารถในการ "เห็น" รหัสไม่มีส่วนเกี่ยวข้องกับสิทธิ์ใช้งานดังนั้น JavaScript จึงไม่แตกต่างจากสิ่งอื่นใด คุณจะได้รับการบริการที่ดีที่สุดโดยการปรึกษาทนายความที่มีความเชี่ยวชาญในเรื่องนี้
ปาร์

สำหรับจาวาสคริปต์บนเว็บไซต์คุณกำลังพูดถึงรหัส GPL โดยเฉพาะหรือไม่ นั่นคือรหัสได้รับอนุญาตอย่างชัดเจนภายใต้ GPL หรือไม่
ฟิลิป

ฉันไม่ได้ขายผลิตภัณฑ์ใด ๆ ที่ฉันขอเพียงเพราะฉันไม่เข้าใจวิธีการใช้งาน ฉันถามเฉพาะเจาะจงว่าลูกค้าที่เกี่ยวข้องกับภาษานั้นไม่ใช่ "GPL" ทั้งหมดหรือไม่ (คุณดาวน์โหลดแหล่งข้อมูลเมื่อใดก็ตามที่คุณเยี่ยมชมเว็บเพจ)
Fire-Dragon-DoL

ในแอปพลิเคชันที่ไม่สำคัญรหัสแหล่งที่มาของคุณไม่ได้เป็นเพียง Javascript แต่ยังเป็นรหัสฝั่งเซิร์ฟเวอร์ของคุณ คุณต้องการเผยแพร่สิ่งเหล่านี้ทั้งหมดสู่สาธารณะหรือไม่? เพราะนั่นคือสิ่งที่ GPL พูด ไม่ได้บอกว่าคุณสามารถเผยแพร่บางส่วนและยังคงเป็นไปตามใบอนุญาต
Robert Harvey

คำตอบ:


3

เมื่อพูดถึง GPL หน่วยการเปิดตัวคือหน่วยการออกใบอนุญาต

หากเว็บไซต์ของคุณและ javascript เป็นสิ่งเดียวที่ทำงานร่วมกันได้แสดงว่าใบอนุญาตทั้งหมดมีประสิทธิภาพ หากส่วนใดส่วนหนึ่งเป็น GPL ใบอนุญาตที่มีประสิทธิภาพของทั้งหมดคือ GPL (สิ่งนี้ไม่เป็นความจริงสำหรับ LGPL, MIT และอื่น ๆ )

หากคุณกำลังโฮสต์เว็บไซต์และลูกค้าของคุณกำลังซื้อการเข้าถึงบริการคุณยังไม่ได้แจกจ่ายหรือถ่ายทอดรหัสด้านเซิร์ฟเวอร์ดังนั้น GPL จึงไม่เกี่ยวข้อง (AGPL เปลี่ยนแปลงสิ่งนี้และยืนยันว่าซอฟต์แวร์ในฐานะบริการจะต้องปล่อยแหล่งที่มาของมัน)

Javascript ที่เป็นส่วนหนึ่งของแอปพลิเคชันของคุณไม่ได้รับอนุญาตโดยอัตโนมัติ แต่อย่างใด การพูดอย่างเคร่งครัดการดาวน์โหลดจาวาสคริปต์เพื่อเรียกใช้ในเบราว์เซอร์เป็นการละเมิดลิขสิทธิ์ แน่นอนว่ามันโง่ อาจมีสิทธิ์ใช้งานโดยนัยในการเรียกใช้รหัส แต่นั่นคือทั้งหมด

หากคุณใช้ห้องสมุด Javascript คุณต้องปฏิบัติตามใบอนุญาตของห้องสมุดนั้น หากใบอนุญาตนั้นเป็น GPL ฉันเข้าใจว่านั่นหมายความว่าใบสมัครทั้งหมดของคุณคือ GPL นี่อาจเป็นเหตุผลที่ jQuery มีสิทธิ์ใช้งานแบบคู่ - ตัวเลือกของคุณ MIT หรือ GPL หากไม่มีตัวเลือกในการใช้สิทธิ์การใช้งาน MIT จะสามารถใช้งานได้โดยแอป GPL เท่านั้น


4

ขั้นแรก: คุณมีสิทธิ์ใช้รหัสโอเพ่นซอร์สในโครงการเชิงพาณิชย์ตราบใดที่คุณปฏิบัติตามข้อ จำกัด สิทธิ์ใช้งาน (นั่นคือโดยหลักแล้วคุณต้องปล่อยให้มีการอ้างสิทธิ์ทั้งหมดและคุณทำการเปลี่ยนแปลงใด ๆ ภายใต้สิทธิ์ใช้งานแบบเดียวกัน)

ฉันเข้าใจว่า GPL เป็นหนึ่งในสิทธิ์ใช้งานที่ จำกัด มากขึ้นเมื่อต้องพยายามบังคับใช้สิทธิ์ใช้งานในส่วนอื่น ๆ ของโครงการ ฉันไม่คิดว่ามันจะถูกทดสอบในศาล แต่โดยทั่วไปการตีความที่ฉันเห็นอยู่เสมอคือถ้ารหัส GPL ถูกปล่อยให้อยู่ในโมดูลแยกต่างหากของตัวเองซึ่งเพิ่งอ้างอิง (นั่นคือพวกเขาได้รับการปฏิบัติเหมือนผลิตภัณฑ์เดี่ยวทั้งหมด ที่คุณเพิ่งใช้) คุณควรจะสบายดี

หากคุณไม่แน่ใจเกี่ยวกับเรื่องนี้และ / หรือต้องการความปลอดภัยเป็นพิเศษมีสิทธิ์ใช้งานแบบกำหนดล่วงหน้าอื่นน้อยกว่า

ประการที่สอง: ความสามารถในการดูรหัสและสิทธิในการใช้มันจะแยกจากกันอย่างสิ้นเชิง ฉันไม่สามารถไปและถอด JavaScript ออกจากไซต์ใด ๆ และใช้งานได้เพียงเพราะฉันเห็น หากฉันได้รับการเข้าถึงแหล่ง Windows แม้ถูกต้องตามกฎหมายนั่นไม่ได้เป็นของฉัน เว็บทำให้มีความจำเป็นที่จะต้องเห็นโค้ดจำนวนมากคุณยังสามารถให้สิทธิ์กับมันตามที่คุณต้องการ

ที่สาม: ในแง่ของใบอนุญาตที่เหลือของเว็บไซต์ที่มีการภายใต้ก็ไม่น่าสูงที่ลูกค้าของคุณจะมีความสุขที่คุณจ่ายสำหรับสิ่งที่คุณทำให้มันเป็นโอเพนซอร์ส นอกเหนือจากพื้นฐาน "ทำไมเราถึงจ่ายสิ่งที่คุณเพิ่งจะเสียไป" มันน่าจะมีผลต่อการออกแบบและการสร้างแบรนด์และปล่อยให้คนอื่นยืมองค์ประกอบของตัวตนขององค์กร ถ้าคุณขายมันให้พวกเขาแล้วพวกเขาจะอยากให้มันเป็นของพวกเขา หากคุณกำลังจะขายบิตของมันถึงแม้ว่าคุณจะต้องบอกพวกเขาว่ามี OSS อยู่ในนั้นเพราะคุณไม่สามารถขายได้เพียงรหัสอื่นที่ใช้มัน

ข้อที่สี่: นั่นเป็นรูปแบบที่แปลกมาก ๆ ที่ขายรหัสหนึ่งบิตและให้เช่าอีกชิ้น ดูเหมือนว่าพวกเขาจะพึ่งพาอาศัยซึ่งกันและกันอย่างหนักจนไม่มีค่าอย่างใดเลย ฉันคิดว่าในทางเทคนิคแล้วพวกเขาอาจใช้การออกแบบส่วนหน้าที่คุณได้ทำไปแล้วแก้ไขมันเป็นอย่างอื่น แต่โดยทั่วไปเมื่อเกิดเหตุการณ์ที่ผู้คนเพิ่งเริ่มต้นใหม่

เนื่องจากว่าทั้งสองส่วนไม่มีประโยชน์จริง ๆ หากไม่มีซึ่งกันและกันฉันขอเสนอให้พวกเขาจ่ายค่าปรับแต่งให้กับซอฟต์แวร์เป็นผลิตภัณฑ์บริการที่คุณเป็นเจ้าของ นั่นคือคุณเป็นเจ้าของรหัสทั้งหมดคุณเพียงแค่ปรับแต่งให้เข้ากับสเปคของพวกเขา (นั่นคือแบรนด์ส่วนหน้าในแบบของพวกเขา) ทำให้ห่างไกลและเรียบง่าย


Mhhh ฉันมีข้อสงสัย: เมื่อฉันสร้างเว็บไซต์สำหรับลูกค้าใครคือลูกค้า: คนที่ฉันขายเว็บไซต์ของฉันหรือผู้ใช้ที่จะเข้าถึง หากฉันขายเว็บไซต์ทั้งหมดเป็นผลิตภัณฑ์ GPL (ที่มีแหล่งที่มาด้วย) ให้กับลูกค้าของฉันฉันจะต้องปล่อยซอร์สโค้ดแม้แต่กับทุกคนที่สำรวจในเว็บไซต์นั้นหรือไม่
Fire-Dragon-DoL

@ Fire-Dragon-DoL - ลูกค้าของคุณคือคนที่ชำระค่าใช้จ่ายของคุณ หากคุณ GPL รหัสของคุณคุณต้องทำให้มันเป็นแบบสาธารณะสำหรับทุกคนไม่ว่าจะเป็นลูกค้าและ / หรือผู้ใช้ของคุณ (และทุกคนมีสิทธิ์ในการใช้รหัสนั้นซ้ำ)
Jon Hopkins

ในส่วนสุดท้าย (คำอธิบายของคุณฉลาดจริงๆขอบคุณ): ระบุว่าทั้งสองส่วนไม่มีประโยชน์จริง ๆ หากไม่มี othe : ในกรณีนี้ถ้าฉันใช้รหัส GPLed ฉันควรจะปล่อยแหล่งที่มาหรือไม่ เพราะฉันสามารถอ่านประโยคของคุณว่า "ฉันกำลังขายบริการให้คุณในการปรับแต่งซอฟต์แวร์ไม่ใช่ซอฟต์แวร์ที่ยังเป็นของฉันอยู่"
Fire-Dragon-DoL

เพื่อตอบความคิดเห็นสุดท้ายของคุณ: ฉันไม่แน่ใจฉันหมายถึง GPL บอกว่าคุณต้องปล่อยรหัสด้วยซอฟต์แวร์ของคุณ แต่ถ้ามีคนนำทางบนเว็บไซต์ของฉันฉันไม่ได้ให้โปรแกรมของฉันเขากำลังใช้โปรแกรมของฉัน ฉันคิดว่ามันแตกต่างกัน GPL ไม่ได้บอกว่าคุณต้องปล่อยโปรแกรมของคุณ
Fire-Dragon-DoL

1
@ จอนคุณจะต้องให้แหล่งที่มากับคนที่ได้รับไบนารี; ไม่ให้ใครถาม (แน่นอนว่าพวกเขามีสิทธิ์ที่จะมอบให้กับคนที่พวกเขาต้องการ แต่คุณไม่จำเป็นต้องทำเช่นนั้น)
Sean McMillan

3

โดยทั่วไปหากคุณใช้รหัส GPL ที่ใดก็ได้ในโครงการของคุณและคุณแจกจ่ายโครงการของคุณ (เช่นขายหรือมอบให้กับผู้อื่น) คุณต้องเผยแพร่ซอร์สโค้ดของโครงการของคุณต่อสาธารณะอย่างครบถ้วนเพื่อให้สอดคล้องกับ ใบอนุญาต GPL

หากคุณให้บริการเว็บไซต์สาธารณะของคุณเองโดยใช้รหัสเซิร์ฟเวอร์ GPL คุณอาจตกลงเพราะไม่ถือว่าการแจกจ่ายซ้ำ

รหัส Javascript ในเบราว์เซอร์ดูเหมือนจะเป็นพื้นที่สีเทาสำหรับฉัน ในทางเทคนิคคุณกำลังแจกจ่ายรหัส GPL ใหม่ให้กับเบราว์เซอร์ของทุกคนซึ่งจะทำให้เกิดข้อกำหนดที่จะปล่อยแหล่งที่มาของคุณเอง

แก้ไข:เพื่อพิสูจน์ประเด็นของฉันตอนนี้ฉันจะรวมข้อความจากคำถามที่พบบ่อยเกี่ยวกับสิทธิ์ใช้งานของเว็บไซต์ ExtJS ExtJs เป็นกรอบงาน Javascript ที่ได้รับอนุญาตภายใต้ GPL นี่คือการตีความของพวกเขาเกี่ยวกับวิธีการใช้งานใบอนุญาตที่เกี่ยวกับกรอบของพวกเขา (ตัวเอียงของฉัน):

ผลงานที่ได้รับมา
เมื่อโปรแกรมซอฟต์แวร์เรียกใช้รหัสที่ได้รับอนุญาตภายใต้ GPLv3 โปรแกรมซอฟต์แวร์นั้นจะกลายเป็นงานที่ได้รับมาจากรหัส GPL'd และด้วยเหตุนี้จึงขึ้นอยู่กับลิขสิทธิ์ลิขสิทธิ์ GPLv3 หากโปรแกรมซอฟต์แวร์นั้น“ ถ่ายทอด” ให้กับผู้ใช้ GPLv3 ต้องการให้ซอร์สโค้ดของโปรแกรมซอฟต์แวร์นั้นเป็น“ ถ่ายทอด” ด้วย “ พาหนะ” สำหรับเว็บแอปพลิเคชันจะถูกเรียกใช้เมื่อผู้ใช้ภายนอกนิติบุคคลที่สร้างแอปพลิเคชันใช้แอปพลิเคชัน

คำจำกัดความของโปรแกรม
ซอฟต์แวร์สำหรับโปรแกรมซอฟต์แวร์ที่สร้างขึ้นโดยใช้สถาปัตยกรรมเว็บในปัจจุบันที่ใช้บริการเชื่อมต่อเครือข่ายระยะไกลสำหรับการสื่อสารภายในแทนการเชื่อมโยงแบบคงที่หรือไดนามิกแบบดั้งเดิมโปรแกรมซอฟต์แวร์ที่เกี่ยวข้องคือรหัสทั้งหมดของรหัสแอปพลิเคชัน เซิร์ฟเวอร์และรหัสที่ดำเนินการบนไคลเอนต์โดยมีเงื่อนไขว่ารหัสเซิร์ฟเวอร์นั้นเป็นส่วนสำคัญของแอปพลิเคชัน

ตัวอย่าง
สมมติว่าแอปพลิเคชันมีส่วนหน้า (ที่สร้างหน้าเว็บที่เชื่อมโยงกับ Ext JS JavaScript) ที่สื่อสารผ่าน JSON / HTTP ด้วยบริการส่วนหลัง บริการส่วนหลังนี้มีตรรกะการอนุมัติและการตรวจสอบความถูกต้องสำหรับแอปพลิเคชันนี้เพียงอย่างเดียว แม้ว่าส่วนหน้าเท่านั้นที่ใช้รหัส Ext JS คุณควรพิจารณาว่าการรวมกันของส่วนหน้าและส่วนหลังประกอบด้วยแอปพลิเคชันและรหัสแหล่งที่มาสำหรับทั้งด้านหลังและส่วนหน้าจะต้องให้แก่ผู้ใช้ปลายทางของแอปพลิเคชันภายใต้ GPLv3ถ้า แอปพลิเคชันนี้ใช้งานโดยผู้ใช้ปลายทางที่ไม่ได้เป็นส่วนหนึ่งของนิติบุคคลเดียวกันที่ถือลิขสิทธิ์ GPLv3 ในรหัส Ext JS


2
นี่เป็นสิ่งที่ผิด GPL ไม่สามารถใช้วิธีนี้ได้ การรวมลิงค์ไปยังไฟล์ GPL'd JS ในผลลัพธ์ของโค้ด PHP ของคุณไม่ได้ทำให้ซอร์สโค้ด PHP ของคุณเป็นอย่างนั้น
user229044

@meager: ดูการแก้ไขของฉัน
Robert Harvey

ดูเหมือนว่าผิดทั้งหมด จะเป็นอย่างไรถ้าแบ็คเอนด์ของฉันส่งตรงไปยังเว็บไซต์ของบุคคลที่สามซึ่งใช้ไฟล์ JSL ใน GPL'd ฉันต้องเปิดซอร์สแอปพลิเคชันทั้งหมดของฉันหรือไม่ ฉันไม่คิดว่าเรื่องนี้จะเกิดขึ้นในศาลใด ๆ ขอโทษ
Rob

1

สำหรับเว็บไซต์ที่มีจาวาสคริปต์ฝั่งไคลเอ็นต์พวกเขายังคงเป็นเจ้าของรหัส หากคุณต้องใช้รหัสนั้นและใช้เป็นรหัสของคุณเองนั่นอาจเป็นการละเมิดทรัพย์สินทางปัญญา ฉันเดาว่าฉันไม่รู้ว่าพวกเขาไม่มีใบอนุญาตหรือไม่ มีปัญหาการไม่บังคับใช้เช่นกัน พูดคุยกับนักกฎหมายที่ฉันเดา แต่พวกเขาอาจจะไม่บอกอะไรที่มีประโยชน์

โครงการที่มีใบอนุญาตผสมกันมีความซับซ้อน รหัส GPL จะโต้ตอบกับไลบรารีอื่น ๆ สันนิษฐานว่ารวมถึงการสิ้นสุดด้านหลังเซิร์ฟเวอร์ต้องการให้ GPL เป็นเช่นนั้น ใบอนุญาตโอเพ่นซอร์สอื่น ๆ นั้นเข้มงวดน้อยกว่าเช่น LGPL และใบอนุญาต BSD

และไม่ถ้าคุณไม่ต้องการให้เขานำรหัส php ของคุณกลับมาใช้ใหม่นั่นก็ไม่เหมาะกับรุ่น GPL หากคุณปล่อยรหัสภายใต้ GPL แสดงว่าคุณมีภาระผูกพันที่จะส่งมอบรหัสต้นฉบับ

ดูเหมือนว่าคุณกำลังสร้างเว็บไซต์ให้ใครบางคนและคุณไม่ต้องการแจกรหัสให้ใคร ทำไมคุณถึงมองหาโอเพ่นซอร์สเลย? หากเป็นโอเพ่นซอร์สคุณจะต้องมอบรหัส


ฉันไม่ได้ขายอะไรในตอนนี้ฉันแค่ถามเรื่องนี้เพราะฉันคิดว่าเว็บไซต์มี 2 ส่วนคือเว็บไซต์ลูกค้าและเว็บไซต์เซิร์ฟเวอร์ ส่วนแรกฟรีในขณะที่ส่วนที่สองไม่ใช่ หากเว็บไซต์เป็น "opensource" คุณควรปล่อยซอร์สโค้ดฝั่งเซิร์ฟเวอร์หรือไม่ ฉันพบว่ายากนิดหน่อยมันจะสร้างหายนะผ่านความปลอดภัย!
Fire-Dragon-DoL

2
มันไม่ถูกต้อง หากส่วนหนึ่งของโครงการคือ GPL โครงการทั้งหมดจะต้องได้รับการอนุญาตภายใต้ลิขสิทธิ์ที่เข้ากันได้ของ GPL (ถือว่าเป็นโครงการเดียวกันทั้งหมดและไม่สามารถแยกย่อยเป็นชิ้น ๆ ได้) และการที่ GPL ไม่ได้ป้องกันคุณจากการขายมันก็หมายความว่าคุณต้องให้ไบนารีกับแหล่งที่มาและไม่สามารถ จำกัด การแจกจ่ายซ้ำเพิ่มเติมได้
KeithB

ถ้าเว็บไซต์สามารถทำงานได้โดยไม่ต้องใช้โค้ดฝั่งเซิร์ฟเวอร์ผมหมายถึงจาวาสคริปต์ก็แค่เรียกหน้า php ที่มีดาต้าในรูปแบบ json คนอื่นสามารถสร้างเว็บไซต์ด้วยฝั่งไคลเอ็นต์ แต่พวกเขาจะต้องให้ข้อมูล ในกรณีนี้จาวาสคริปต์เรียกรหัส "php" (แต่ไม่ใช่ตรงกันข้าม) ฉันคิดว่า ในกรณีนี้ฉันกำลังละเมิด GPL หรือไม่
Fire-Dragon-DoL

@KeithB ACK! คุณถูก. ฉันคิดถึง GTK และ SDL แต่เป็น LGPL ขอบคุณ
ฟิลิป

ใช่ LPGL เป็นใบอนุญาตที่ดีฉันต้องการที่จะเข้าใจ GPL โดยวิธีการเพราะ ... ดีฉันคิดว่ามันยากที่จะเข้าใจ
Fire-Dragon-DoL
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.