programmatūra · 6 min · 10.09.2026

Automake 1.19 aizver 2012. gadā pieteiktu kļūdu: 58 komiti no četriem cilvēkiem

GNU Automake 1.19 iznāca 10. septembrī ar labojumu kļūdai, kas pieteikta 2012. gada 9. martā. Olafs Lencs tolaik ziņoja, ka komanda make dist-gz dist-xz neizdodas. Iemesls bija vienkāršs: pirmais mērķis pēc darba izdzēsa nesaspiesto tar arhīvu, tāpēc otrais to vairs neatrada un apstājās ar ENOENT. No pieteikuma līdz labojumam pagāja 14 gadi un seši mēneši.

Laidiens ir arī pirmais stabilais 63 nedēļu laikā. Iepriekšējais, 1.18.1, iznāca 2025. gada 25. jūnijā. Šajā posmā automake koda bāzē nonāca 58 komiti no četriem cilvēkiem: Kamila Szewczyk 29, Karl Berry 24, Paul Eggert 3 un Bruno Haible 2. Skaitļi nāk no laidiena pieteikuma, ko Szewczyk nosūtīja automake sarakstam 7:09 no rīta.

viens jauns makro visā laidienā

Jaunums ir tikai viens: autoconf makro AM_OPTIONAL_AUTOMAKE. Tam padod sarakstu ar dist- opciju nosaukumiem no astoņiem iespējamiem: dist-bzip2, dist-bzip3, dist-xz, dist-lzip, dist-zstd, dist-zip, dist-shar vai dist-tarZ. make dist tad uzbūvē katru arhīvu, kuram uz sistēmas atrodas attiecīgais saspiešanas rīks, pārējos izlaiž klusējot. Līdz šim pietrūka viena rīka, lai visa make dist darbība apstātos ar kļūdu. Tas traucēja tiem, kas apzināti neuzstāda lzip vai bzip3.

Viss pārējais laidienā ir kļūdu labojumi. Pati Szewczyk to arī uzsver savā pieteikumā.

Viss pārējais ir svarīgi kļūdu labojumi, liela daļa no tiem pašā make dist. Šis ir arī pirmais laidiens manā jaunajā lomā kā vienam no automake uzturētājiem.

make dist vairs nemelo par rezultātu

Vairāki labojumi attiecas uz vienu un to pašu uzvedību: automake ģenerētie recepšu soļi ziņoja par veiksmi tad, kad arhīvs bija bojāts. Ja tar apstājās ar kļūdu, make dist tomēr beidzās ar nulles izejas kodu un atstāja apcirstu arhīvu. Tagad tā izejas kods ir nenulles.

Otrs gadījums: ja saspiedējs atgriezās ar kļūdu, čaulas novirzīšana jau bija noslaucījusi izvades failu, tāpēc mapē palika nulles garuma arhīvs blakus $(distdir).tar. Nulles garuma failu var samaldīt par gatavu izplatīšanas arhīvu. Abus failus tagad izdzēš. NEWS to sauc par dabisku turpinājumu kļūdas 19614 labojumam.

Trešais: automake vairs nepieņem, ka tar ir GNU tar tikai tāpēc, ka tas atbild uz --version. Busybox tar atbild, bet uzvedas citādi.

2012. gada kļūdas labojums izmanto GNU make iespēju. Nesaspiestais tar arhīvs tagad ir .INTERMEDIATE fails, ko uzbūvē vienu reizi un izdzēš pēc tam, kad pēdējais mērķis to vairs neizmanto. Citas make implementācijas to joprojām būvē katram mērķim atsevišķi.

divi gadu veci lūgumi no citiem GNU projektiem

Automake vienmēr ir automātiski iekļāvis izplatīšanas arhīvā failu COPYING. GNU GMP savas licences glabā failos COPYINGv2, COPYINGv3 un COPYING.LESSERv3, tāpēc tie arhīvā nenokļuva. Niels Möller to pieteica 2014. gada 16. septembrī ar zemāko iespējamo prioritāti “wishlist”. 1.19 atpazīst arī COPYINGv2, COPYINGv3, COPYING.LESSERv2 un COPYING.LESSERv3.

Svaigāks ir Tomasa Volfa 2025. gada 19. jūlija ziņojums: fails, kas šobrīd nav uz diska, tomēr pieder izplatīšanas kopumam, ja kāda Makefile.am kārtula to spēj uzbūvēt. Ja šī kārtula atrodas automake nosacījumā, fails tagad tiek iekļauts tikai tad, kad nosacījums ir patiess. Iepriekš tas arhīvā nonāca vienmēr.

Divi labojumi attiecas uz failu nosaukumu garumu. Opcija filename-length-max=N noraidīja arī tos nosaukumus, kuru garums bija tieši N rakstzīmes, lai gan dokumentācija runā par garākiem. Un pati dokumentācija vairs neapgalvo, ka 99 rakstzīmes ir pārnesams ierobežojums visiem arhīvu formātiem. Tas ir v7 formāta ierobežojums, bet noklusējums kopš 1.18 ir ustar, kas glabā garākus nosaukumus.

Objective C un Objective C++ avoti, ko būvē caur Libtool, tagad tiek kompilēti ar --tag=OBJC un --tag=OBJCXX, ja uzstādītais Libtool par šo tagu atbalstu ziņo. Tas nozīmē Libtool 2.6.0 vai jaunāku.

2.0 versijai nav termiņa

Automake arhīvā ir atsevišķs fails NEWS-future ar plāniem 2.0 laidienam. Tā pirmās rindas skaidri pasaka, kāpēc šis saraksts pārcelts atsevišķi: pašreizējiem uzturētājiem nav pietiekami daudz intereses un enerģijas, lai 2.0 virzītu uz priekšu. Nav pārskatītas pat visas esošās kļūdas. Tekstā ir izsaukuma zīme pie aicinājuma, ka vajadzīgi jauni uzturētāji un izstrādātāji.

Saraksts pats par sevi ir garš. Automake 2.0 prasīs Autoconf 2.71 vai jaunāku, pārtrauks atbalstīt veco faila nosaukumu configure.in, izdos “obsolete” kategorijas brīdinājumus par ACLOCAL_AMFLAGS un noņems automātisko atkarību izsekošanu SGI kompilatoriem uz IRIX. Pēdējos SGI atjaunināja 2006. gadā un atbalstu izbeidza 2013. gada decembrī. Ārpusē paliks arī MS-DOS un Windows 95, 98 un ME, kuru atbalsts nāca caur DJGPP. Cygwin un MSYS ar MinGW turpina strādāt.

Viena prasība jau šobrīd tiek pārbaudīta. AM_INIT_AUTOMAKE izvērš čaulas kodu, kas noskaidro, vai rm programma PATH mainīgajā nesūdzas, kad to izsauc ar -f bez argumentiem. POSIX to prasa kopš 2024. gada redakcijas. Pagaidām configure var piespiest turpināt arī ar neatbilstošu rm, taču 2.0 to vairs neļaus.

Pirms stabilā laidiena bija divas beta versijas. Pēdējā, 1.18.94, iznāca 2. septembrī ar 18 komitiem no trim cilvēkiem astoņu dienu laikā. Pieteikumā bija atsevišķa piezīme testētājiem pievērst uzmanību tieši pārstrādātajam make dist mehānismam. Automake 1.19 avota koda arhīvs xz formātā aizņem 1,6 MB.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie