debian

sun-java6-bin is non-free. I want to use IcedTea

posted on 20 Aug 2007 17:39 by veer
sun-java6-bin อาจจะลงใน Ubuntu และ Debian ได้อย่างแนบเนียนสำหรับ i386 และ AMD64 ด้วยหรือเปล่า?. แต่ว่า sun-java6-bin เป็นซอฟต์แวร์ที่ไม่ใช่ซอฟต์แวร์เสรี (non-free) ไม่มี source code ให้เอามา build ใหม่บน PPC หรือ platform อื่นได้อย่างง่ายๆ. แต่ Sun ปล่อย JDK แบบที่เป็นซอฟต์แวร์เสรีออกมาเหมือนกัน OpenJDK แต่ว่า OpenJDK ก็ยังต้องอาศัย non-free อยู่บางส่วน. ทาง Redhat เลยมี project ขึ้นมาชื่อว่า IcedTea. จะ build icedtea บน Linux PPC ก็ไม่รู้ว่าจะได้หรือเปล่า? ต่อให้บน i386 เองก็คงไม่ใช่หมู. ตอนนี้ท่าที่ดูจะเข้าท่าเข้าทางที่สุดคือ build ตาม Gentoo ซึ่งมีวิธีอยู่ที่ http://icedtea.classpath.org/wiki/GentooBuildInstructions. แต่ว่าก็ต้องใช้ package แปลกๆเช่น ecj ซึ่งยังอยู่ใน Debian Sid (สุดเสียว) และ gcj จาก Redhat ที่ support generic. วันนี้ก็เลยลง Sid ซะ แล้วก็สมกับเป็น Sid ไม่ได้ลงได้เนียนๆเท่าไหร่ แต่ก็ถูกแล้วไม่งั้นก็ไม่ใช่ Sid แต่คงเป็น stable ไปแล้ว. แล้วผมก็ยัง build gcc จาก Redhat ไม่ผ่านเลย เอามาเล่าเท่านี้ก่อน.

แต่คนคงมีเหตุผลที่ใช้ Debian/Ubuntu แตกต่างกัน. บางคนอาจจะชอบ linux บางคนอาจจะชอบซอฟต์แวร์เสรี. ถ้าเราชอบซอฟต์แวร์เสรีแล้วประเด็นการใช้ sun-java6-bin ก็น่าจะต้องระวัง และตระหนักเหมือนกัน ว่ามันเป็น non-free :-P.
edit @ 2007/08/22 00:38:36
เหตุเกิดจากว่าผมพยายามจะ build minefield ที่ checkout มาจาก cvs แต่ก็ไปติดที่ xptcall พร้อมมี error ออกมาว่า ไม่ support platform นี้. linux ppc ก็ไม่น่าจะแปลกมากนี่นา. เลยลองไป search ดูก็ปรากฎว่า xptcall support linux ppc. ก็แอบสงสัยนิดๆว่าโปรแกรมอะไรจะผูกผันกับ platform ขนาดนั้น ขนาดที่ว่า linux ppc เขียนชุดนึง netbsd arm เขียนชุดนึง osf1 alpha ก็มีอีกชุด -_-!. ปรากฎว่าเห็นแวบๆว่ามี .s ข้างใน source tree ด้วย ท่าจะเล่น assembly กันนี่เอง. ส่วนเหตุว่าทำไม xptcall ซึ่งเป็นส่วนหนึ่งของ xpcom ต้องมี code แบบ platform specific ขนาดนี้ ก็มีอธิบายไว้ใน mozilla.org นะครับ (ซึ่งผมไม่ได้อ่าน).

ผมพอรู้คร่าวๆ ก็ ok ละ ไม่อยากทำอะไรกับ xpcom ต่อ. แต่อยากจะลง minefield ใน debian บน ppc ให้ได้ซักที :-P. ก็เลย load patch ของ iceweasel จากหน้า package ของ debian มาดู (จะเอามา patch เลยก็ไม่กล้า version มันห่างกันเยอะเหมือนกัน). ก็เป็นไปตามคาดมีท่าแก้ Makefile.in อยู่เห็นๆ. ใน Makefile.in หาว่ากำลัง build บน platform ไหนจากตัวแปรชื่อ OS_ARCH กับ OS_TEST ซึ่งมาจากไหนผมก็ไม่รู้อีก -_-!. แต่ที่รู้ๆใน patch ของ iceweasel เปลี่ยนจากหา Linuxppc มาหา Linuxpowerpc แทน. ผมก็เข้าไปแก้ Makefile.in ตามที่ว่า แล้วสั่ง make -f client.mk build ก็เป็นอันใช้ได้ :-).

เครื่อง apple macintosh ที่ powerpc อาจจะใกล้จะหมดไปทุนวันๆ. แต่ว่า powerpc คงยังอยู่เพราะมันม้นย้ายไปใน wii, ps3, xbox360 เรียบร้อยแล้ว. มีคนทำ cd ของ ubuntu 7.04 สำหรับ ps3 แล้ว ซึ่งอาจจะทางออกหนึ่งของคนที่อยากคำนวณ floating point เยอะๆ.

ป.ล. ดูกระแสแล้วช่วงนี้ต้องหัดสงบเสงี่ยมเจียมตัว เข้าหาผู้ใหญ่บ้าง. ซอฟต์แวร์เสรีมั้ยครับท่าน แพลบๆๆ ลอล.

edit @ 2007/08/22 00:39:10
หลายคนอาจจะเถียงกันว่า Qmail หรือ Postfix ดีกว่า บางคนก็ใช้ sendmail แต่ว่าผมใช้ Exim เพราะว่าเป็นตัวเดียวที่ผมไปพอดีอ่านเอกสารแล้วรู้เรื่อง :-P (คนอื่นอาจจะไม่เหมือนผมก็ได้)

ปกติบน Debian เพียงแต่ aptitude install exim4 ก็ใช้งานได้แล้ว แต่ว่าผมก็อยากทำอะไรเล่นมากกว่านั้น คืออยากให้เครื่องอื่นเข้ามาใช้ เมลเซิร์ฟเวอร์ นี้ได้ด้วย ถ้าให้ใครก็ได้เข้ามาใช้มั่วซั่วก็อาจจะโดยใช้เป็นฐานยิง Spam mail ก็เลยต้องมีการพิสูจน์ตัวจริง (authentication) วิธีง่ายๆ เลยก็กำหนดให้มี username และ password ซึ่งจะมีข้อเสียต่างๆ เช่น ถ้ามีคนดักอ่านข้อมูลระหว่างทางไปถึง server เขาก็จะรู้ username และ password ของเราได้ง่ายๆเลย แต่ว่าผมก็จะใช้วิธีนี้หละ!!! คือ ทำง่ายๆให้ได้ก่อน แล้วค่อยทำให้ดีขึ้น

  1. บน Debian นี่เราแก้ configuration ของ Exim ได้ที่ /etc/exim4/exim4.conf.template เพื่อความไม่ปลอดภัยเราก็ใส่บรรทัดนี้ลงไปเลย
    AUTH_SERVER_ALLOW_NOTLS_PASSWORDS=true
    
    ซึ่งจะพอรับประกันได้ว่า password เราจะโดนคนอื่นขโมยไปได้ง่ายๆ :-P
  2. ขั้นต่อมาก็ไป เอา # ออกจาก section หน้าตาแบบข้างล่างออก
    #login_server:
    #   driver = plaintext
    #   public_name = LOGIN 
    #   server_prompts = "Username:: : Password::"
    #   server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
    #   server_set_id = $1
    #   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
    #        server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
    #   .endif  
    
  3. แก้แล้วก็สั่ง update-exim4.conf
  4. สร้าง /etc/exim4/passwd โดยใช้ htpasswd -nd เช่น htpasswd -nd vee แล้วก็กรอก password
    # htpasswd -nd vee
    New password: 
    Re-type new password: 
    vee:pRdxYABKo5y0E
    
    แล้วก็เอา vee:pRdxYABKo5y0E ไปใส่ใน /etc/exim4/passwd
  5. แล้วก็ restart exim4 โดย /etc/init.d/exim4 restart
  6. จริงๆ ก็เสร็จแล้วนะ ก็ลองเปิด mail client มาลอง ทดสอบดู ได้เลย
ป.ล. จะทำให้ปลอดภัยก็ได้นะ แต่ว่าเอาไว้ก่อน

edit @ 2007/03/02 20:04:40
edit @ 2007/03/04 17:09:36
ก่อนหน้า Java ของ Sun จะกลายเป็นซอฟต์แวร์เสรี มีเงื่อนไขหลายอย่างที่ทำให้เราไม่อยากใช้ Java เช่น
  • ติดตั้งยาก เพราะว่าใช้ apt-get install จาก repository หลักของ Debian ไม่ได้ เงื่อนไขนี้ก็ดูจะเปลี่ยนไป เพราะดูเหมือนว่ามีคนกำลังทำ package สำหรับ openjdk บน debian อยู่ ประเด็นเรื่องติดตั้งยากก็อาจจะหมดไป ต่อไปก็อาจจะเป็นไปได้ด้วยว่า Netbeans หรือโปรแกรมอื่นๆ ที่ใช้ Java ก็จะติดตั้งบน Debian ง่ายไปด้วย
  • ปัญหาว่า Sun จะหยุดแจก Java ก็หมดไปเพราะความที่เป็นซอฟต์แวร์เสรี คนอื่นก็เอาไปพัฒนาต่อ และแจกจ่ายได้อย่างเสรี ข้อนี้ก็น่าเป็นห่วงน้อยลงมาก
ต่อไปนี้โลกของซอฟต์แวร์เสรี และตลาดแรงงานก็คงจะอยู่ใกล้กันมากขึ้น เพราะว่านักพัฒนาซอฟต์แวร์เสรีก็น่าจะใช้ Java มากขึ้น แรงงานที่เขียนคุ้นเคยกับ Java อยู่แล้วก็มีเยอะ รวมทั้งนักศึกษา นักเรียน ที่อยากจบไปทำงาน โดยใช้ Java ก็มีอยู่มากมาย ก็เป็นไปได้ว่าเขาเหล่านั้น ซักวันหนึ่งก็อาจจะมาร่วมผลิตซอฟต์แวร์เสรี โดยอาจจะมีแนวคิดแบบซอฟต์แวร์เสรีที่เน้นเรื่องเสรีภาพ หรือจะคิดแบบโอเพนซอร์สว่าร่วมกันทำแล้วทุกคนเหนื่อยน้อยลงและได้ประโยชน์ก็ตาม
edit @ 2006/12/04 11:02:17