Phần 1: Sử dụng Git; Phiên bản gói. Tạm viết tắt TBS thay cho tên dài dòng (TheSLinux Build System).
TBS giải quyết một số vấn đề của hệ thống ABS (Arch Build System) theo cách riêng. Không hẳn là tốt hơn hay xấu hơn, mà nó chỉ thuận tiện cho một số mục đích. Sử dụng Git =========== Đây là đặc điểm đầu tiên. Không như ABS các chỉ thị biên dịch (PKGBUILD) có thể nằm trong các kho tùy ý, ở TBS thống nhất đặt các gói trong cùng một kho riêng (kho chính thức, hay official build system). Trên Github, kho này là https://github.com/theslinux/buildsystem . Điểm dễ thấy là các gói bắt đầu từ nhánh TheBigBang (cũ) hoặc TheSmallBang (quy ước mới). Nếu trong ABS mỗi PKGBUILD phải đi cùng một phiên bản cụ thể, thì trong TBS một PKGBUILD (một cách tương đối) có thể dùng để biên dịch nhiều phiên bản khác nhau. Ví dụ, cùng một PKGBUILD trong TBS thì có thể biên dịch hai phiên bản khác nhau, bằng môi trường hợp lý: PACKAGE_TAG="foobar-1.2.3" s-makepkg PACAKGE_TAG="foobar-1.3.0" s-makepkg Như vậy, `s-makepkg` (gọi trước `makepkg`) sẽ tự động nhận dạng các biến môi trường (sẽ bàn sau), lấy thông tin về phiên bản và truyền cho kịch bản chính `makepkg`. Bằng cách này, không nhất thiết phải viết đi viết lại PKGBUILD cho từng phiên bản của phần mềm. Ta nói tiếp về sự tiện lợi khi dùng Git. Giả sử có một dãy các commit như sau đây *--*--*--0--*--*--*--X--*--*--*--*--*--HEAD trong đó, 0 và X là các tag, lần lượt là "foobar-1.2.3", "foobar-1.3.0". Nếu đang làm việc trên HEAD, thì từ hình trên sẽ thấy HEAD cách tag cuối cùng 5 commit. Trong TBS, con số 5 này được dùng như "chỉ số biên dịch" (PACKAGE REL trong ABS, [1]). Sau khi đóng, gói sẽ mang phiên bản là "foobar-1.3.0-5". Như vậy, bạn không phải lo lắng việc điều chỉnh con số này bằng tay. Còn nhiều vấn đề khác, nhưng tóm lại ý tưởng là: các gói trong TBS được đánh số thông qua các thẻ trong kho Git, và được xác định tự động. Để làm được điều này, gói tuân theo ít nhất 4 quy tắc cơ bản trong nhánh TheSmallBang [2], trong đó quan trọng nhất là, chỉ thị cho mỗi gói nằm hoàn toàn trên một nhánh riêng, *bắt nguồn* từ nhánh TheSmallBang (hoặc TheBigBang). Phiên bản gói ============= Mỗi phần mềm có một cách đánh số khác nhau, từ cách dùng một chữ số, cho tới 3 hoặc 4 chữ số, có kèm theo hoặc không chỉ số patch, hoặc sử dụng ngày tháng viết liên tục (20131211) hoặc tách ra (2013.12.11). Trong TBS, tất cả các gói đều được đánh số thống nhất bằng số, gồm ít nhất hai số và nhiều nhất 4 số. Ví dụ, phần mềm systemd chỉ dùng một số 202, 203, 204,... để đánh số phiên bản, thì trong TBS, được chuyển thành 0.202 (hoặc khi có thêm chỉ số biên dịch thì sẽ thành 0.202-1, 0.202-2,...). Đối với các gói dùng ngày tháng để đặt, thì sẽ chuyển qua dạng phân biệt (2013.12.11) chứ không viết liền một hơi như trong 20131211. Đối với các gói dùng chữ cái, ví dụ maria-5.5.33.a, thì dùng mã ASCII của ký tự a để thay thế, tức là trong TBS sẽ có maria-5.5.33.97. Việc chuyển đổi này tùy trường hợp, không có quy tắc chung. Thường là việc chuyển đổi làm sao đơn giản nhất, hợp lý nhất có thể. Lý do sâu xa của việc dùng thất nhất cách đánh số các gói, là để làm hệ thống tagging trong kho Git đơn giản hơn, dễ xử lý hơn. Các liên kết ============ [1] ABS pkgrel: https://wiki.archlinux.org/index.php/PKGBUILD#pkgrel [2] TheSmallBang: https://github.com/TheSLinux/buildsystem/tree/TheSmallBang -- I am ... 5.5 dog years old. -- To ubsubscribe from the list hackers@lists.theslinux.org, please send an email to ecar...@lists.theslinux.org with subject ubsubscribe hackers To get basic commands to use Ecartis system, use subject 'help'.