diff --git a/7180713BE58D1ADC.asc b/7180713BE58D1ADC.asc new file mode 100644 index 0000000..2263c11 --- /dev/null +++ b/7180713BE58D1ADC.asc @@ -0,0 +1,114 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQGiBFD9w2QRBACoEzH9KKirWE4wgiuPPynNnxks+p+t5i1z3CG+1XhagmTHoOf3 +v8i19kKHV6WnVMn2CKJFgwTTLYXOJTrBM/4ABVtu11cHeeueeo+pCSkdoLzYJ5QF +HbByB6j33QUbwKF0frEs+ge4LxzvYyCDAmNAW560QtOAR9Lk1Fo5B1GXzwCg1kDk +RkSe7EOZNm1U2rYAQ2VPrfsEAIHr4ooOyUByPR7XpoDOKoaXEG0hjpgh46lbgse+ +dQx8YrxS9vXQLwYokfWLrs55avx9Ys0iVv2TMv7X4Tn5sTVaK5K+NbKhxhLORxGI +sgKqRn7W5SG5xoO0w/dmQj756ppjITGbxjFuhYE0X5S6NeMhUuFci7sJ42R7F1Ko +6sYuA/wOMUxCk4XOXeQF16ApyyenjE/UWbBNEhBmjEsZkYAFNc89pAEnEFSnIxK8 +fcuCQioM6ojjaW+aEs/q3/klI0nat9LMLhNSCebjriMHwJDU70NeCn4nPWsfItT1 +eKvbHNcX+3bq3D/i2Wa3PZ5YFFF01C61dHmVC9YGh4sAOXO09LQjVmlkZW9MQU4g +UmVsZWFzZSBTaWduaW5nIEtleSAoMjAxNSmIRgQQEQgABgUCVNtwdAAKCRCl5JmP +psyF+xOJAJ4/Lg6kz6XEmjQ7RfZSfXu4qj1gZQCfT7FJX3KD13wltA28fSNwo/q+ +ummIgQQTEQIAQQIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAIZARYhBGX3xrQg +a9BXp+tzeHGAcTvljRrcBQJZCfG/BQkJ7WHbAAoJEHGAcTvljRrc5dcAn29Mnl9I +m47t/GTLEHbt771eY1SyAJ0fmPG3GQIrQTL1D6nN3iDbaP9JbIhqBBMRAgAqAhsD +BQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAhkBBQJU2221BQkFvt3RAAoJEHGAcTvl +jRrcpq8AoIdgpeVQYDhK/8Li7X21Py6oHdApAJ46Lbo0lDtoo0W9iMEab6tiU8NJ +C4hqBBMRAgAqAhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAhkBBQJWxjYUBQkH +qaYsAAoJEHGAcTvljRrc9hEAnRYrPEquKG1spauhSMc/r+bTgPojAKDNO9Jd7DCx +1ari9/eGJSVI0EDRoohqBBMRAgAqAhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheA +AhkBBQJXH4IjBQkIAvI1AAoJEHGAcTvljRrcSjsAoL/BM6qqKwWv2DwdqLd+XRpY +lrpyAJ0c43AR1uE2UoMhkUu3vsX75fqELYkCHAQQAQgABgUCVWmfeQAKCRBA9ggl +b1Lxzt5XEACdfPr2HApVqY0mEUeIGVgXxa1ejhZR08iPE0isr1zn8Re0W1PEOuAr +o20D6mozx9Pw4GsoEAmdjNeer8VvDvpMKoQmWELdSjD86hUOOjTFHo3Mh/j+ly6G +MhWx8EI7BNoRLK7JQ2EYLcWopfue0g36FU6PkGB/VSYQAavgGMgCBVWqkvGrXPwN +RJordu1aqlffX0wYVyz8UjSkA8w3TCyMb6/44AAHULBUCsKql7UCyFkGgV77AnVK +dFOG8GDKWKqPs6BCdHEbxmw2cD9TMZfFYb+b/Zeyt9gzXSbDuZ84UDs2bYvigLQS +AjuUZys/ANLEM47en8jP/wQVk9QBd7Q78R4MxjPNlxAaRj7Eh1jVh8cRULqmEx1s +Ni2f2Q5SyjXUB25WDeRt9pKtjaG5pmRh5S7L8pOLRob8/SbmizSobt31jcPF5XBZ +1kkcF9JOGiZxEfhi6bRUFgvlX9dOk7m5aATiVq/Zw6fpmXwtRhTlOEKyc9IfteMW +XTX93dORXmFb8ht+UHCLiEJEXQhpcjVf0b8KHr0QvOhIcbgA1LNSCwSsUySzbYm/ +DgVduyDLvmvEqmByy8R5rjPiprc1xCylf3w8t3ZnfPDPRP1FwPeEu9aPr9xipfIl +RyP0SDgJ9mCbf8yUrz5yIUW1YqzfZ7GMYt3FmZ1yM9S4XONVkmcUYrQjVmlkZW9M +QU4gUmVsZWFzZSBTaWduaW5nIEtleSAoMjAxMymIaAQTEQIAKAUCUP3DZAIbAwUJ +AfJXAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQcYBxO+WNGtwQQwCg1JX6 +dDn5gMpV4oczkpwlj5noOQwAn0HdTOxfmefXNQF1x+Gt9BXBYXrNiEYEEBECAAYF +AlD9xH4ACgkQp0FUn1ntKYdB+gCfS641cDBN2rOKf/+Fra/p3bXgAeAAn2sJtSdN +07DvrZeDWEbkhT620YOSiEYEEBECAAYFAlD9ymkACgkQ/SG8O6w+CHmvGQCgo6Nt +Q66kJxvQ6IQv7+NPvLanidkAnipurqh8bp+Jkk/KkZcfTA7ckK5FiEYEEBECAAYF +AlD/GdUACgkQYrl/VEXBHKc48QCgharF2bBNypuOLwYFafipqWW9L2gAn1Dx4X9Z +qlkEDJSlzEqHHMkk1x65iEYEEBECAAYFAlFonAgACgkQd3KlnXFE1IWFvwCfTRsP +fsfrGZ095lyqXCCccm52XjcAoIbb/fj4VVmllNqHQ7lfOomgIdCJiEYEEBECAAYF +AlKOQNkACgkQi9gubzC5S1yJNACdHy3NiGuF0AP8xFfiPmLRtFT4N3gAn1ZyrA0j +zH8TC/NX/I61NVABUgy1iEYEEBECAAYFAlLuL1wACgkQYWCeGMCv8Q+ScACcDr/G +qXUyAbbExiRSiBy+qb7J7vcAoK2LPAVIfmzA5u+EtUBR5OedyIPriGgEExECACgC +GwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJS7i8bBQkD0ubMAAoJEHGAcTvl +jRrc0d0AoLXAWtzzgoZe1xDeSFAXDMZnhluPAJ90dYTKRWYAjTzkgz5A/mVLA85m +QohGBBARCAAGBQJTdg9MAAoJEKXkmY+mzIX7ZMcAn1fUuRJvaT/NdHqodXeewL9/ +Ka2OAJ4vB5saAyiTTDsjFKZwgSsJFi/Y+YkCHAQQAQoABgUCUm5OUQAKCRAfZ1D9 +PL3M4HEOD/4oh8w/Ak/7jBcXV+jfXC9z46lXLiTc2Ogx3oUoiV4p272hfzySIcS9 +/CK8MwYzhzyv0MmBao66yv7wh8c+WGoSriDuXhUokxlVHeDI7E3SAJr3lCSE8WNv +SC/Gkf8cH7Dtj00UfvrhWp0HM3rQcIMNfSFUL1cwJBWzx319GsQEZq4jHeZ3iUmK +3KuUXJwHrYaJcmDbvBfw+n4NXul+jZGvAYiveGf/TLhWWXjlJ2dqf6CUdTvvUdE8 +olUVIiWsPQdTD7jOv+YQW+DsChIxW8/minfwId8N5u10G2obNB0aAdC6HmaLETeR +is5AOXDJYjnFQgO1mkyuXKDj7gXOC+RHLzcTLSOznp2coXGPPfUWPKz6BkGsKQUE +xWJJeuTzhkbTqqm8aUmkrjb6GGA4NEz9tdjKNX6qEqORYR36ltdig/YtK9T+2GbF +YrT26oV6pWXuf9JwoK5OxGGoEaI6MmjnNkvWglRbw2/vSk5fVXW2p9qCFbiarN1X +0UQejkQkYG5nmo41qXinq86swKLKqc0z2k85+MvDhH6EetU2I2xkZ4c+qaoD8wtQ +HsmwNb0Jpga6FHXdw7cUqwOE2ujZuSd9y/QAPbzFM9XuIIMy5jNEaI+i+jpRj5et +YGPRDo0tHQOq7gPRogzX3/9SYn38PHqvntRzq61lMfiB1pTRzEyqa4h/BBMRAgA/ +AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgBYhBGX3xrQga9BXp+tzeHGAcTvl +jRrcBQJZCfHTBQkJ7WHbAAoJEHGAcTvljRrcnrYAn2phJaLGc6eHP2ZnS4MPoBmB +tpHTAJ0VEtSilt+95LPe/TX2354xv8u1+ohoBBMRAgAoAhsDBgsJCAcDAgYVCAIJ +CgsEFgIDAQIeAQIXgAUCVNtttQUJBb7d0QAKCRBxgHE75Y0a3EhuAKCkpJq8Ke/g +EIX2MsHcfHDNCexOKwCdEn2r+bfur1JeeUwKcwXaLJMYNQiIaAQTEQIAKAIbAwYL +CQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlbGNhQFCQeppiwACgkQcYBxO+WNGtxX +WgCgz8obtEdzgLu1XPd0nHKjwildI9kAn3gec/r8bPSF+g9vrleDeC1/wZqYiGgE +ExECACgCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJXH4IxBQkIAvI1AAoJ +EHGAcTvljRrcLNcAn3XJFUplv+xvtAjbnyvuGSkl1vQaAKC2sTyBWtqqWXZg6+Xn +IuYHVySNZokCHAQQAQgABgUCVWmfgQAKCRBA9gglb1LxzhBdEACFDAa80L12HfCR +THV8Qm2XwrCD/nY8WVtJQF7dfDg8YssPJHtrVtjF2ek2WhjDiW2ExZqZ+9CxpT2r +a3Cp2JxxkuEv++rXSduunBOmX0TsWxGOxeFUC0SH8Yr50pGQpQdDAvZvURJlsf/4 +dx4u6Ai2FPQTk9dUEw2kb7WFl8PoLpmXIEv72WvStSf/ib4fW/YODv/d6ec/gLg+ +CxozRF4ioWtapXmGbAlTvec+yQwKPqYBJYjE9uuaFw4h+rRUBl6T3vRqv7pQvuvh +aQ3k8322ME8DM/gp5luVH9mhmbk+YK49Wx+8mXPWr0sPCzIaujh1MV18fEtq0VeK +1CXYutjAKqVquls2BZ7dy7HxnhEwkX10ESoZvQs61Psn8NivlSmghZtaYScF8et9 +P+7dU/O4gSgxKjaSN0mVq1G/OHlKY3chw4MyXWbexgAR5FY7b7e6m5qM8q8/O23x +IBtY+2xt4JcYtVnhXfwswAhRhUfQhvctL6I42RMeH2kqRCVXH+mGLZdjeP9flMRW +W8+3BmPpmbwj7zxL92eRxuQFadl0hYL306IE3cqvNA5jcCzlrjYOFqnrQWVWqSMB ++EQwQzWnw3Wl0diTtoOjD6OesndXU4Z39gzVZD/oWwwlxvJcrBe/e7EMF+3bQ7CL +5ALgQSS5/VPbZI1d5kzc4Y6NeZIDg7QjVmlkZW9MQU4gUmVsZWFzZSBTaWduaW5n +IEtleSAoMjAxNCmIaQQTEQIAKQIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheA +BQJS7i8bBQkD0ubMAAoJEHGAcTvljRrc65gAni/RO22pn5fwPMvipYjXvjrq123e +AKCS/dMpYMuGcDr09vXRMSPO2xhJZ4hGBBARAgAGBQJS7i9YAAoJEGFgnhjAr/EP +/AwAnjmiCpM8N4MrixUoalQwW7fJPJ0+AJ968kQSKGD5//Pkb41La+ZByND3UYhG +BBARCAAGBQJTdg9MAAoJEKXkmY+mzIX7FNIAnjhgOyNozUX+u3vD8Vl7612yBtvB +AJ9iG9wPQw9x4JMAi3N8mFjp/iO+eoiABBMRAgBAAhsDBwsJCAcDAgEGFQgCCQoL +BBYCAwECHgECF4AWIQRl98a0IGvQV6frc3hxgHE75Y0a3AUCWQnx1AUJCe1h2wAK +CRBxgHE75Y0a3EBIAKCUmLdZ+XbFQdpQy1fXZm5Lj2hkegCePVYOYJb14qMlgKQM +aV0XBTddcEiIaQQTEQIAKQIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheABQJU +2221BQkFvt3RAAoJEHGAcTvljRrcuCgAn0Jpew2VLPG9KQRlDxiobfU8kx0AAJ9K +9YM4VQ51P5mY2V1QvqyidX9SHIhpBBMRAgApAhsDBwsJCAcDAgEGFQgCCQoLBBYC +AwECHgECF4AFAlbGNhQFCQeppiwACgkQcYBxO+WNGtxyUgCcCGMlFsLUeOIEXPzw +HE2nzP/JGeQAoK7D8pr/MdEXF1xAFlGNxGYT65yPiGkEExECACkCGwMHCwkIBwMC +AQYVCAIJCgsEFgIDAQIeAQIXgAUCVx+CMQUJCALyNQAKCRBxgHE75Y0a3CRgAKCa +J8sfMtCtt69OUZVacB+fwDJbwwCfUAiHrWI7zdjJwDV9ig/Ww48EIr+JAhwEEAEI +AAYFAlVpn4YACgkQQPYIJW9S8c4EYg//RAxp6pN3CvjOBx99Jje+sk5FbE9Atric +7tmadqg0aYbBT2Um0XTRC9rMFim0taulCcsG82MCck02TJTBu+VAdCnOgN81B0iD +FqM18+3pI/EOKrkKHnohBfLZ0eKE4f37SeChXM5x2nvqiFzcqO8R2PIWAJHMuiD1 ++F8HXg0flT+CWS2mtN6J2+qJYkOQgcq23edeN3An5IKQ5bz5rQ9XD9Hs5xmcwUOr +WoQD86Ar4aO/PsimAowfxftRcyq7OtwKgDbe8/qf/GU+XFTKJj1fGzlIwftLoOW5 +kpcTUsdQUNXOmBAwUMWo6np78k8r7wiolSIdVcOwWBLNvvohxmqaN3+xrLBc9S2F +SgKH+DXHbHDpggFCHL7/9gbxmd2+y+o4WGNtFwOriH6vTbyIB4qSi3ZxRl9AI4aN +GejysIKZjlVBQl0Mokz/9g9jCAKBzajO4i1Cot74SZ2QzYdwR9cnkuJ9zGhmdVOg +uo+A1tcu6mvbh+nZAb7gBfLTa0JMvznDydf388aB+emrxj8QoRxYFTHJjHz7crAE +Fn4jfDuu/Gjywq9Da1VUVVzd4Le7GNOK5ORgNm6sKs5HNiYuAmBn1w2a5+BH8zcy +bu5FVuwalpQeN+JrrGmYYp79JRL3mhoo80A79IRG+sZtHnOilePtwqRfIEjQxEre +hQbXhTh1iay0I1ZpZGVvTEFOIFJlbGVhc2UgU2lnbmluZyBLZXkgKDIwMTYpiGgE +ExECACgCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheABQJWxjYUBQkHqaYsAAoJ +EHGAcTvljRrcEN8An2/CAfDHbWoaMq+To7zkC+iEBblHAKDAskRAfWJ+aC1Pujkp +2qzgB8M76g== +=Kv5J +-----END PGP PUBLIC KEY BLOCK----- diff --git a/A01-UDFReadBlocks-errors.patch b/A01-UDFReadBlocks-errors.patch new file mode 100644 index 0000000..98edbe3 --- /dev/null +++ b/A01-UDFReadBlocks-errors.patch @@ -0,0 +1,162 @@ +diff --git a/src/dvd_reader.c b/src/dvd_reader.c +index 4e112d3..e8d50f3 100644 +--- a/src/dvd_reader.c ++++ b/src/dvd_reader.c +@@ -1156,13 +1156,13 @@ int InternalUDFReadBlocksRaw( const dvd_reader_t *device, uint32_t lb_number, + + if( !device->dev ) { + fprintf( stderr, "libdvdread: Fatal error in block read.\n" ); +- return 0; ++ return -1; + } + + ret = dvdinput_seek( device->dev, (int) lb_number ); + if( ret != (int) lb_number ) { + fprintf( stderr, "libdvdread: Can't seek to block %u\n", lb_number ); +- return 0; ++ return ret; + } + + ret = dvdinput_read( device->dev, (char *) data, +diff --git a/src/dvd_udf.c b/src/dvd_udf.c +index 5eb3d2b..68c3a9a 100644 +--- a/src/dvd_udf.c ++++ b/src/dvd_udf.c +@@ -516,6 +516,7 @@ static int UDFMapICB( dvd_reader_t *device, struct AD ICB, uint8_t *FileType, + uint32_t lbnum; + uint16_t TagID; + struct icbmap tmpmap; ++ int ret; + + lbnum = partition->Start + ICB.Location; + tmpmap.lbn = lbnum; +@@ -526,10 +527,16 @@ static int UDFMapICB( dvd_reader_t *device, struct AD ICB, uint8_t *FileType, + } + + do { +- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 ) ++ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ); ++ if( ret < 0 ) { ++ return ret; ++ } ++ else if( ret == 0 ) { + TagID = 0; +- else ++ } ++ else { + UDFDescriptor( LogBlock, &TagID ); ++ } + + if( TagID == FileEntry ) { + UDFFileEntry( LogBlock, FileType, partition, File ); +@@ -677,6 +688,7 @@ static int UDFGetAVDP( dvd_reader_t *device, + uint32_t lastsector; + int terminate; + struct avdp_t; ++ int ret; + + if(GetUDFCache(device, AVDPCache, 0, avdp)) + return 1; +@@ -687,11 +699,16 @@ static int UDFGetAVDP( dvd_reader_t *device, + terminate = 0; + + for(;;) { +- if( DVDReadLBUDF( device, lbnum, 1, Anchor, 0 ) > 0 ) { +- UDFDescriptor( Anchor, &TagID ); +- } else { ++ ret = DVDReadLBUDF( device, lbnum, 1, Anchor, 0 ); ++ if( ret < 0 ) { ++ return ret; ++ } ++ else if( ret == 0 ) { + TagID = 0; + } ++ else { ++ UDFDescriptor( Anchor, &TagID ); ++ } + if (TagID != AnchorVolumeDescriptorPointer) { + /* Not an anchor */ + if( terminate ) return 0; /* Final try failed */ +@@ -742,7 +759,7 @@ static int UDFFindPartition( dvd_reader_t *device, int partnum, + uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048); + uint32_t lbnum, MVDS_location, MVDS_length; + uint16_t TagID; +- int i, volvalid; ++ int i, volvalid, ret; + struct avdp_t avdp; + + if(!UDFGetAVDP(device, &avdp)) +@@ -761,10 +778,16 @@ static int UDFFindPartition( dvd_reader_t *device, int partnum, + lbnum = MVDS_location; + do { + +- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 ) ++ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ); ++ if( ret < 0 ) { ++ return ret; ++ } ++ else if( ret == 0 ) { + TagID = 0; +- else ++ } ++ else { + UDFDescriptor( LogBlock, &TagID ); ++ } + + if( ( TagID == PartitionDescriptor ) && ( !part->valid ) ) { + /* Partition Descriptor */ +@@ -805,6 +828,7 @@ uint32_t UDFFindFile( dvd_reader_t *device, const char *filename, + struct AD RootICB, File, ICB; + char tokenline[ MAX_UDF_FILE_NAME_LEN ]; + uint8_t filetype; ++ int ret; + + *filesize = 0; + tokenline[0] = '\0'; +@@ -820,10 +844,16 @@ uint32_t UDFFindFile( dvd_reader_t *device, const char *filename, + /* Find root dir ICB */ + lbnum = partition.Start; + do { +- if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 ) ++ ret = DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ); ++ if( ret < 0 ) { ++ return ret; ++ } ++ else if( ret == 0 ) { + TagID = 0; +- else ++ } ++ else { + UDFDescriptor( LogBlock, &TagID ); ++ } + + /* File Set Descriptor */ + if( TagID == FileSetDescriptor ) /* File Set Descriptor */ +@@ -886,7 +916,7 @@ static int UDFGetDescriptor( dvd_reader_t *device, int id, + uint32_t lbnum, MVDS_location, MVDS_length; + struct avdp_t avdp; + uint16_t TagID; +- int i, desc_found = 0; ++ int i, desc_found = 0, ret; + /* Find Anchor */ + lbnum = 256; /* Try #1, prime anchor */ + if(bufsize < DVD_VIDEO_LB_LEN) +@@ -904,10 +934,16 @@ static int UDFGetDescriptor( dvd_reader_t *device, int id, + /* Find Descriptor */ + lbnum = MVDS_location; + do { +- if( DVDReadLBUDF( device, lbnum++, 1, descriptor, 0 ) <= 0 ) ++ ret = DVDReadLBUDF( device, lbnum++, 1, descriptor, 0 ); ++ if( ret < 0 ) { ++ return ret; ++ } ++ else if( ret == 0 ) { + TagID = 0; +- else ++ } ++ else { + UDFDescriptor( descriptor, &TagID ); ++ } + if( (TagID == id) && ( !desc_found ) ) + /* Descriptor */ + desc_found = 1; diff --git a/libdvdread-6.0.0.tar.bz2 b/libdvdread-6.0.0.tar.bz2 new file mode 100644 index 0000000..57b0147 Binary files /dev/null and b/libdvdread-6.0.0.tar.bz2 differ diff --git a/libdvdread-6.0.0.tar.bz2.asc b/libdvdread-6.0.0.tar.bz2.asc new file mode 100644 index 0000000..f569071 --- /dev/null +++ b/libdvdread-6.0.0.tar.bz2.asc @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- + +iF0EABECAB0WIQRl98a0IGvQV6frc3hxgHE75Y0a3AUCWl/CXgAKCRBxgHE75Y0a +3F/3AJ9QnMbfr7cWIN64gW2SfuzHrFZpiACgl970rnPZtoEEN0CfUOuw2vMMz70= +=9mCd +-----END PGP SIGNATURE----- diff --git a/libdvdread.spec b/libdvdread.spec new file mode 100644 index 0000000..93fde51 --- /dev/null +++ b/libdvdread.spec @@ -0,0 +1,55 @@ +Name: libdvdread +Version: 6.0.0 +Release: 3 +Summary: Library to access DVD disks +License: GPLv2+ +URL: http://dvdnav.mplayerhq.hu/ +Source0: https://download.videolan.org/pub/videolan/libdvdread/%{version}/libdvdread-%{version}.tar.bz2 +Source1: https://download.videolan.org/pub/videolan/libdvdread/%{version}/libdvdread-%{version}.tar.bz2.asc +Source2: https://download.videolan.org/pub/keys/7180713BE58D1ADC.asc +Patch0001: A01-UDFReadBlocks-errors.patch +BuildRequires: gcc gnupg2 +Provides: bundled(md5-gcc) + +%description +Libdvdread provides a simple foundation for reading DVD-Video images. +It offers several DVD applications and allows application designers +to access some of the more advanced features of the DVD format. + +%package devel +Summary: Development files for libdvdread +Requires: %{name} = %{version}-%{release} pkgconfig + +%description devel +Libdvdread-devel contains development files for libdvdread. + +%prep +gpg2 --import --import-options import-export,import-minimal %{S:2} > ./gpg-keyring.gpg +gpgv2 --keyring ./gpg-keyring.gpg %{S:1} %{S:0} +%autosetup -n %{name}-%{version} -p1 + +%build +%configure --disable-static +%make_build V=1 + +%install +%make_install +%delete_la + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%license COPYING +%doc AUTHORS NEWS README ChangeLog TODO +%{_libdir}/libdvdread.so.* +%exclude %{_pkgdocdir}/COPYING + +%files devel +%{_includedir}/dvdread +%{_libdir}/libdvdread.so +%{_libdir}/pkgconfig/dvdread.pc + +%changelog +* Tue Feb 18 2020 zhusongbao 6.0.0-3 +- Package init