2 पॉइंट द्वारा GN⁺ 2024-09-25 | 2 टिप्पणियां | WhatsApp पर शेयर करें

Winamp

परिचय

  • Winamp 1997 में जारी किया गया एक multimedia player है, जो विभिन्न audio formats के साथ compatibility और flexibility के लिए प्रसिद्ध है
  • इसे Nullsoft ने विकसित किया था, और यह लाखों users के बीच बेहद लोकप्रिय हुआ
  • कुछ समय तक development रुका रहा, लेकिन अब source code सार्वजनिक कर दिया गया है ताकि community player को बेहतर और modernize कर सके

उपयोग

  • Winamp desktop client build फिलहाल Visual Studio 2019 (VS2019) और Intel IPP libraries पर आधारित है
  • Winamp को build करने के कई तरीके हैं
    1. build_winampAll_2019.cmd script file का उपयोग करके x86/x64 (debug और release) के 4 versions build करें। इस स्थिति में Visual Studio IDE नहीं चलता
    2. winampAll_2019.sln file का उपयोग करके Visual Studio IDE में build और debug करें

dependencies

  • build_winampAll_2019.cmd script file का उपयोग करके x86/x64 (debug और release) के 4 versions build करें। इस स्थिति में Visual Studio IDE नहीं चलता
  • winampAll_2019.sln file का उपयोग करके Visual Studio IDE में build और debug करें
libvpx
  • libvpx को https://github.com/ShiftMediaProject/libvpx से लाकर संशोधित किया गया और archive के रूप में पैक किया गया
  • unpack_libvpx_v1.8.2_msvc16.cmd चलाकर इसे extract करें
libmpg123
  • libmpg123 को https://www.mpg123.de/download.shtml से लाकर संशोधित किया गया और archive के रूप में पैक किया गया
  • unpack_libmpg123.cmd चलाकर dll files को process करें
OpenSSL
  • openssl-1.0.1u का उपयोग करना होगा
  • library के static version को build करने के लिए build_vs_2019_openssl_x86.cmd और build_vs_2019_openssl_64.cmd चलाएँ
  • OpenSSL को build करने के लिए 7-Zip, NASM और Perl install होना चाहिए
DirectX 9 SDK
  • DirectX 9 SDK (June 2010) को Microsoft से लाकर संशोधित किया गया और archive के रूप में पैक किया गया
  • unpack_microsoft_directx_sdk_2010.cmd चलाकर इसे extract करें
Microsoft ATLMFC lib modification
  • C:\Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\Tools\MSVC\14.24.28314\atlmfc\include\atltransactionmanager.h file की line 427 को return ::DeleteFile((LPTSTR)lpFileName); से बदलकर return DeleteFile((LPTSTR)lpFileName); करें
Intel IPP 6.1.1.035
  • Intel IPP 6.1.1.035 को लाकर संशोधित किया गया और archive के रूप में पैक किया गया
  • unpack_intel_ipp_6.1.1.035.cmd चलाकर इसे extract करें

GN⁺ का सार

  • Winamp अब भी विभिन्न audio formats के साथ compatibility की वजह से कई users के बीच लोकप्रिय है
  • source code सार्वजनिक होने से community को player को बेहतर बनाने और modernize करने का अवसर मिलता है
  • इसे Visual Studio 2019 और कई libraries के साथ build किया जा सकता है, और कई dependencies को संभालना पड़ता है
  • Winamp जैसी सुविधाएँ देने वाले अन्य multimedia players में VLC Media Player और foobar2000 शामिल हैं

2 टिप्पणियां

 
wedding 2024-09-25

मुद्दा देखने पर लगता है कि लाइसेंस को लेकर काफी विवाद है।

 
GN⁺ 2024-09-25
Hacker News की राय
  • जिज्ञासा है कि प्रोजेक्ट लोगों से योगदान की उम्मीद कैसे करता है। लाइसेंस की धारा 4 कहती है कि सुधार, फीचर जोड़ना और bug fix आधिकारिक repository में submit करें, लेकिन धारा 5 की पाबंदियां code fork या modified version distribute करने से रोकती हैं
    तो GitHub का standard flow — “repository को fork करना, branch में बदलाव करना, और pull request भेजना” — अपने-आप में लाइसेंस उल्लंघन बन जाता है

    • issue खोलकर description में patch सीधे type कर दें
      हालांकि patch को test या debug नहीं कर सकते। क्योंकि वह codebase का modified version बनाना होगा, जो प्रतिबंधित है। बस बुखार-सी कल्पना में जो निकला, उसे बिना practice की मदद के सीधे लिख दें। अगर license के लिए काफी है, तो code के लिए भी काफी होगा
    • fork के दो मतलब होते हैं। एक GitHub का “Fork” button है, जो असल में repository को अपने account में copy करने जैसा है
      दूसरा “project को fork करना” है, यानी अलग नाम से एक alternative lineage को सक्रिय रूप से develop और distribute करना। मेरे हिसाब से GitHub वाला pull request flow इस्तेमाल करना ठीक होना चाहिए। यहां अफसोस है कि GitHub ने पहले से established “fork” meaning से टकराता हुआ नाम लगा दिया। असल में इसे “clone” होना चाहिए था
    • GitHub Terms of Service में लिखा है कि users को सभी public repositories को fork करने का अधिकार मिलता है
    • यहां “fork” से शायद open source वाली व्यापक meaning है, यानी जैसे NeoVim ने Vim को fork किया—अपना version बनाकर उसे अलग दिशा में ले जाना
      GitHub तो contribution के लिए repository की copy बनाने पर भी बस “fork” शब्द इस्तेमाल करता है
    • लगता है वे बस उम्मीद कर रहे हैं कि लोग license को ignore करेंगे
      ज्यादातर लोग ऐसा ही करेंगे, contributors पर lawyer नहीं छोड़ेंगे, और दुनिया चलती रहेगी
  • इस project के भविष्य के लिए अभी सबसे अच्छा काम है इसमें शामिल न होना। review करने या compile करने के लिए इसे अपने personal workspace में clone करना भी मौजूदा license attitude के हिसाब से जरूरत से ज्यादा participation है
    अगर HN पर कोई post आए कि उन्होंने license stance बदल दिया है, तो फिर देखूंगा, लेकिन तब तक इस tab को बंद करके भूल जाना बेहतर है

    • original author Justin Frankel एक legendary शख्स हैं जिन्होंने Reaper DAW भी बनाया, और इस मामले पर उन्होंने यूं जवाब दिया
      सवाल: WinAMP source official तौर पर release हो गया है; क्या आपका मन इसमें नए और cool features hack करके डालने का है?
      जवाब: अगर ऐसा मन था भी तो license terms की वजह से खत्म हो गया होगा, lol. terms जिस तरह लिखे गए हैं, वह पूरी तरह absurd है। मसलन लिखा है “आप software के forked versions बना, maintain या distribute नहीं कर सकते।” तो किसी भी change को “forked version बनाना” माना जा सकता है। अगर intention के हिसाब से थोड़ा ज्यादा liberal interpretation करें तब भी terms बहुत खराब हैं। मैं नहीं करूंगा
  • बहुत पहले EFNet के #mpeg3 में लोगों के साथ घूमते हुए, मुझे याद है कि Justin Frankel जब इस पर काम कर रहे थे तब उनसे पहचान हुई थी
    मैंने app के लिए कुछ skins और tray icons बनाए थे, जिनमें से कुछ यहां शामिल हैं। 100% याद नहीं कि कौन-कौन से पूरी तरह मेरे हैं, लेकिन punchlabel पक्का मेरा है। credits में भी मेरा नाम है: https://github.com/WinampDesktop/winamp/blob/0695744fd658c42...

  • लगता है ये लोग GitHub को बहुत सारे DMCA requests भेजते-भेजते अपना ही repository GitHub से उतरवा देंगे, या फिर copyright खोने का risk लेकर खुद ही GitHub से हटा देंगे
    fork GitHub की core feature है। fork policy सिर्फ private repositories पर set की जा सकती है, और यह public repository है। license fork की अनुमति नहीं देता, और पहले से 6 forks मौजूद हैं। आमतौर पर copyright, trademark की तरह selective enforcement से नहीं खोता, लेकिन इस case में rights holder ने license violation को बेहद आसान बना दिया है और violators की list भी पूरी तरह accessible है। अगर वे अपने rights को actively defend नहीं करते, तो court में मजाक बन सकते हैं। GitHub के लिए भी यह ऐसा situation है जिसे वह handle नहीं करना चाहेगा। platform के सबसे ज्यादा दबाए जाने वाले buttons में से एक पर click किया और अचानक legal issue बन गया—बहुत खराब user experience

    • जैसा दूसरे लोगों ने कहा है, GitHub ने Terms of Service में पहले से उस हिस्से को cover कर रखा है। सभी public repositories forkable हैं
    • अभी 410 forks हैं
  • Winamp से मेरा थोड़ा connection है। पहले मैंने एक काफी popular plugin बनाया था
    यह Winamp 3 का source code है, जो Winamp 2 को C++ में पूरी तरह rewrite किया गया version था। मेरी राय में यह जरूरत से ज्यादा complex और over-engineered था। Justin Frankel का original source code C में था

    • “दिया गया” code AOL से Radionomy को बेचे जाने के समय transfer हुए 5.666 source bundle का छोटा version है, और उसके बाद 5.9.2 release तक की iterative work का नतीजा है
      इसलिए यह 1.x → 2.x → 5.x development के कई सालों और उस दौरान कई लोगों के changes का मिला-जुला, कहें तो mess है। Winamp3 के बड़े हिस्से भी इसमें हैं, जो AOL era में पहले ही ठीक से open source के रूप में release किए गए थे। इस बार के बेहद restricted license जैसा नहीं। हालांकि code deliverable बनाते समय dedicated Winamp3 repository कभी दी गई थी, ऐसा मुझे याद नहीं। अगर 11 साल पुरानी मेरी याद सही है तो यही बात है
      -dro
    • Frankel का original code कहीं है क्या? मुझे याद है उन्होंने कभी कहा था कि वे C++ को C से ज्यादा पसंद करते हैं, लेकिन असल में उसे classes वाले C की तरह लिखते थे। Frankel मेरे hero हैं
  • 1999 की गर्मियों में college के दौरान, हमारा घर parties में MP3 इस्तेमाल करने वाला पहला घर था। ज्यादातर लोग CD changer इस्तेमाल करते थे, और बहुत सी discs scratched और smudged होती थीं, इसलिए music लगातार skip करता था
    हम पूरी तरह digital हो गए थे और अपने समय से आगे थे। party basement में होती थी, computer को एक spare bedroom में lock करके रखते थे और wires और speakers basement के main area तक निकालते थे। Winamp को shuffle पर चलाते थे, कई घंटों तक एक बार भी skip नहीं हुआ और किसी को music संभालने की जरूरत नहीं पड़ी। अच्छी यादें देने के लिए Winamp का शुक्रिया

    • 1999 की गर्मियों में “पूरी तरह digital” कहना थोड़ा अजीब है। मेरे पास 1993 में DAT recorder था, और DAT Walkman भी था
  • “open” शब्द को तोड़-मरोड़ कर इस्तेमाल किया गया है। लाइसेंस की शर्तें redistribution या resale की अनुमति नहीं देतीं, जबकि ये आम तौर पर स्वीकार की जाने वाली open source की शर्तें हैं
    ध्यान देने वाली बात है कि title या repository में कहीं भी “open source” नहीं लिखा है। इसे “source अब open हो गया” नहीं, बल्कि source available कहना चाहिए था

    • यह लाइसेंस खुद को copyleft license बताता है, लेकिन अगर लाइसेंस में distribution restrictions की मांग हो, तो वह copyleft नहीं हो सकता
      या तो “copyleft license” वाला दावा हटाया जाए, या distribution restrictions को इतना नरम किया जाए कि “अगर आप इस program के modified version को distribute करते हैं, तो modified version को Winamp नहीं कह सकते”
  • यह इकलौता music player था जो परेशान नहीं करता था। जिन फालतू चीज़ों और भद्दे graphics को competitor products सही मानते थे, उनके बिना, सरल interface के साथ बस अपना काम करता था

    • फालतू चीज़ें और भद्दे graphics नहीं थे? क्या उस player का एक मज़ा किसी भी तरह की skin लगाकर देखने में नहीं था? क्या आप किसी और चीज़ के बारे में सोच रहे हैं?
    • आजकल मेरा “favorite” Tidal है। वे लोग stable playback experience भी नहीं बना पाते, और UI भी user-hostile elements, तरीकों और malfunctions से भरा है
      अगर मैं hiring कर रहा होता, तो Tidal से आए लोगों को मौका नहीं मिलता
    • सही। और अब मुझे इससे बेहतर मिल गया है: cmus
      इस beast से मिलने के बाद मैं कभी किसी और पर वापस नहीं गया
    • Windows के लिए minimal music player चाहिए तो Tray Player देख सकते हैं
  • मज़ेदार बात यह है कि latest commit “Removing code which is not open”[0] है, जिसका मतलब है कि उस code को Git history में छोड़कर वे किसी और की license terms का उल्लंघन कर रहे हैं
    [0] https://github.com/WinampDesktop/winamp/commit/0a4b7d32d0906...

    • https://github.com/WinampDesktop/winamp/issues/11 देखें तो लगता है कि code उनका ही है, लेकिन शायद किसी दूसरे service-side code का है जिसे वे source में सार्वजनिक नहीं करना चाहते थे
    • हा! पिछले एक-दो घंटों में वे दूसरी चीज़ें भी तेजी से हटा रहे हैं। उदाहरण के लिए, ऐसे headers वाली कई files थीं
      Copyright 2000-2002 Dolby Laboratories, Inc. All Rights
      Reserved. Do not copy. Do not distribute.
      Confidential information.
      (C) copyright Fraunhofer - IIS (1998)
      All Rights Reserved
  • अगर आपको SHOUTcast server software की free copy चाहिए, तो इस repository में वह code illegal तरीके से share किया जा रहा है