หลังจากหนึ่งปีของการพัฒนา ไปยังสถานที่ การเปิดตัวตัวจัดการแพ็คเกจ รอบต่อนาที 4.16.0. โครงการ RPM4 ได้รับการพัฒนาโดย Red Hat และใช้ในการแจกจ่ายเช่น RHEL (รวมถึงโครงการอนุพันธ์ CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen และอื่นๆอีกมากมาย ทีมพัฒนาอิสระก่อนหน้านี้ ที่พัฒนา โครงการ รอบต่อนาที 5ซึ่งไม่เกี่ยวข้องโดยตรงกับ RPM4 และขณะนี้ถูกยกเลิกแล้ว (ไม่ได้อัปเดตตั้งแต่ปี 2010) รหัสโครงการ จัดจำหน่ายโดย ได้รับอนุญาตภายใต้ GPLv2 และ LGPLv2

โดดเด่นที่สุด การปรับปรุง รอบต่อนาที 4.16:

  • มีการใช้งานแบ็กเอนด์ใหม่สำหรับจัดเก็บฐานข้อมูลใน SQLite DBMS แบ็กเอนด์นี้ จะถูกนำไปใช้ ใน Fedora Linux 33 แทนที่จะเป็นแบ็กเอนด์ที่ใช้ BerkeleyDB
  • แบ็กเอนด์ทดลองใหม่สำหรับการจัดเก็บฐานข้อมูลใน BDB (Oracle Berkeley DB) ซึ่งทำงานในโหมดอ่านอย่างเดียวได้ถูกนำมาใช้แล้ว การใช้งานเขียนตั้งแต่เริ่มต้นและไม่ใช้โค้ดจากแบ็กเอนด์ BerkeleyDB เดิม ซึ่งเลิกใช้แล้ว แต่ยังคงรวมไว้ตามค่าเริ่มต้น
  • แบ็กเอนด์ฐานข้อมูลที่ใช้ LMDB รุ่นทดลองได้ถูกลบออกแล้ว
  • ฐานข้อมูลแบ็กเอนด์ตามพื้นที่เก็บข้อมูล NDB ได้รับการประกาศว่าเสถียร
  • เพิ่มการรองรับมาโครและนิพจน์ "%if" แล้วโอเปอเรเตอร์ (%{expr:1==0"yes":no"}) และนำเสนอคุณลักษณะการเปรียบเทียบเวอร์ชันในตัว ('%[v"3:1.2-1″ > v"2.0″]')
  • มีการรองรับการจัดประเภทไฟล์ตามประเภท MIME ของเนื้อหาแล้ว
  • เพิ่มความสามารถในการสร้างการพึ่งพาโดยใช้ มาโครพารามิเตอร์.
  • มีการเสนอเวอร์ชันใหม่ของการแยกวิเคราะห์และการเปรียบเทียบ API สำหรับ C และ Python
  • รับประกันการทำงานแบบขนานของส่วนประกอบ brp-strip และชุดทดสอบ การเพิ่มประสิทธิภาพของการขนานของกระบวนการสร้างแพ็กเก็ตได้ดำเนินการแล้ว
  • ไปยังยูทิลิตี้ rpmdb เพิ่ม ตัวเลือก “—salvagedb” เพื่อกู้คืนฐานข้อมูลที่เสียหาย (ใช้ได้กับแบ็กเอนด์ NDB เท่านั้น)
  • เพิ่มมาโครใหม่ %arm32, %arm64 และ %riscv สำหรับการตรวจจับสถาปัตยกรรม เพิ่มมาโครในตัว %{macrobody:...} เพื่อรับเนื้อหาของมาโคร
  • ห้ามใช้คำที่ไม่คั่นด้วยเครื่องหมายคำพูดในสำนวน เช่น แทนที่จะเป็น 'a == b' ตอนนี้คุณต้องเขียน '"a" == "b"'
  • ตัวแยกวิเคราะห์นิพจน์จะใช้ไวยากรณ์ “%[...]” เพื่อดำเนินการนิพจน์ด้วยการขยายมาโคร (แตกต่างจาก “%{expr:...}” โดยที่แมโครจะถูกดำเนินการก่อน)
  • เพิ่มการรองรับการขยายระยะสั้นของตัวดำเนินการเชิงตรรกะและตัวดำเนินการ thenar ในนิพจน์ ("%[0 && 1 / 0]" ถือเป็น 0 แทนที่จะทำให้เกิดข้อผิดพลาดเนื่องจากการพยายามหารด้วยศูนย์)
  • เพิ่มการสนับสนุนสำหรับการใช้ตัวดำเนินการตรรกะ NOT ในบริบทที่กำหนดเอง (!"%?foo")
  • ลักษณะการทำงานของตัวดำเนินการ "||" และ "&&" ถูกนำมาสอดคล้องกับ Perl/Python/Ruby เช่น แทนที่จะส่งกลับค่าบูลีน ตอนนี้จะส่งกลับค่าที่คำนวณได้ล่าสุด (เช่น "%[2 || 3]" จะส่งกลับ 2)
  • เพิ่มความสามารถในการตรวจสอบรูปแบบทางเลือกของลายเซ็นดิจิทัลและแฮช
  • เพิ่มการรองรับการพึ่งพาเมตาดาต้า (Requires(meta): somepkg) ซึ่งไม่ส่งผลต่อลำดับการติดตั้งและการลบออก
  • เพิ่มตัวเลือก "--rpmv3" เพื่อ rpmsign เพื่อบังคับให้ใช้ลายเซ็นดิจิทัลในรูปแบบ RPM3
  • เพิ่มตัวเลือกการติดตั้ง "--excludeartifacts" เพื่อข้ามการติดตั้งเอกสารประกอบ ตัวอย่างไฟล์การกำหนดค่า และข้อมูลอื่นๆ ที่เกี่ยวข้อง
  • การสนับสนุนที่เลิกใช้แล้วสำหรับ RPMv3 และแบ็กเอนด์ beecrypt และ NSS crypto
  • เพิ่มการรองรับ DSA2 (gcrypt) และ EdDSA

ที่มา: opennet.ru

เพิ่มความคิดเห็น