Ubuntu: Apa yang mereka lakukan terhadap sumber vanilla?

12

Koreksi saya jika saya salah

Sejauh yang saya tahu distro seperti Debian / Ubuntu / Fedora biasanya memodifikasi kode sumber vanilla sebelum membuat paket. Apa alasan di balik perubahan ini? Apakah ada masalah dengan sumber aslinya? Bagaimana saya bisa mendapatkan daftar perubahan dan alasan perubahan yang dilakukan pada paket tertentu?

Terima kasih untuk bantuannya!

pengguna5210
sumber

Jawaban:

18
apt-get source package

Akan memberi Anda dua atau tiga file: tarball "asli" (kadang-kadang dimodifikasi, tetapi jarang ... satu-satunya perubahan sering nama file) - bernama * .orig.tar.gz, perubahan debian dalam bentuk * .diff file .gz, dan beberapa metadata. Terkadang file .diff.gz hilang: ini berarti bahwa paket dibuat hanya untuk debian / ubuntu, untuk menangani beberapa pekerjaan distro yang sangat spesifik ... seperti dakyang mengelola unggahan arsip debian. Kemudian semua kode ada di tarball asli.

Alasannya banyak: memperbaiki bug untuk perangkat lunak (ketika upstream tidak mau), mengadaptasi perangkat lunak ke debian (fe menyesuaikan jalur file). Debian ingin semua paket mematuhi Standar Hierarki FileSystem , dan ini adalah penyesuaian yang sangat umum.

Tarball asli terkadang tidak sama dengan hulu yang dibuat karena masalah pengemasan. Saya ingat melihat sebuah program didistribusikan di beberapa tarbal, sementara mereka hanya menghasilkan satu executable - pengelola debian memutuskan untuk membuat tarball "asli" sendiri yang terdiri dari tarbal hulu tar. Alasan lainnya adalah ketika terkadang pengelola debian memutuskan untuk menambahkan beberapa file biner ke dalam paket. Sulit untuk menempatkan binari di dalam file .diff.gz, sehingga tarball asli dimodifikasi (dan ini biasanya dijelaskan dengan jelas dalam dokumentasi untuk paket).

Terkadang (sangat jarang) perizinan adalah masalah. Kebetulan hulu tidak mengerti atau ingin memahami implikasi karena beberapa lisensi. Debian ingin semua masalah lisensi diselesaikan, sehingga kebetulan patch debian melakukan beberapa hal tertentu, atau tarball asli dilepaskan dari file yang didistribusikan secara ilegal.

Itu juga terjadi bahwa beberapa konten dilisensikan sehingga Anda dapat menggunakannya tetapi tidak mendistribusikan. Biasanya (fe for msttcorefonts, flashplugin-nonfree) paket debian hanya semacam installer untuk suatu paket, dan tidak ada konten asli di dalam paket.

pinePaket ini juga menarik, karena lisensi melarang untuk mendistribusikan formulir yang dikompilasi. Oleh karena itu tidak ada pinepaket biner, tetapi ada pinepaket source. Anda dapat mengunduhnya menggunakan perintah di atas dan kompilasi ke dalam paket debian untuk Anda sendiri.

liori
sumber
Pine sekarang sedang dikembangkan sebagai alpine untuk mengatasi masalah perizinan asli - washington.edu/pine
theotherreceive
Masih ada pinepaket di dalam repositori. Namun, inilah bagaimana masalah perizinan membuat segalanya lebih sulit.
liori
2

Alasannya mungkin banyak lipat karena ada pengelola dan paket. Saya kira biasanya mereka memodifikasi perangkat lunak sehingga terintegrasi lebih baik dengan perangkat lunak lain di distro atau untuk menambahkan fitur yang tidak ada dalam versi "resmi".

Anda bisa mendapatkan sumber (dan diff spesifik-Ubuntu) dengan mengetik sudo apt-get source PACKAGENAMEdi baris perintah. Ini akan mengunduh sumber vanilla dan diff paket ke direktori saat ini. Mereka biasanya juga menyertakan beberapa komentar di sumbernya.

Kim
sumber
1

Pikirkan seperti ini. Jika Anda menginstal program dari tarball sumber asli melalui ./configure; make; make install, Anda masih memiliki beberapa pekerjaan yang harus dilakukan. Anda harus membuat entri menu, Anda harus mengatur file konfigurasi, dan semacamnya. Anda mungkin harus memberikan ./configuresebuah --prefix. Perubahan para pengelola distro sering kali tidak lebih dari otomatisasi tugas-tugas duniawi ini.

Ryan C. Thompson
sumber