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'.

Reply via email to