diff --git a/Cargo.lock b/Cargo.lock index 1ddc0074..59f8802d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -80,7 +80,7 @@ dependencies = [ "actix-threadpool", "actix-tls", "actix-utils", - "base64", + "base64 0.12.3", "bitflags", "brotli2", "bytes", @@ -112,7 +112,7 @@ dependencies = [ "serde_urlencoded", "sha-1", "slab", - "time 0.2.19", + "time 0.2.22", ] [[package]] @@ -145,9 +145,9 @@ dependencies = [ [[package]] name = "actix-router" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d7a10ca4d94e8c8e7a87c5173aba1b97ba9a6563ca02b0e1cd23531093d3ec8" +checksum = "bbd1f7dbda1645bf7da33554db60891755f6c01c1b2169e2f4c492098d30c235" dependencies = [ "bytestring", "http", @@ -268,9 +268,9 @@ dependencies = [ [[package]] name = "actix-web" -version = "3.0.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7fc56022da91a4dc00ccae7d7bb82e539749ca36df181695f4efdf5d413b2e" +checksum = "c1b12fe25e11cd9ed2ef2e428427eb6178a1b363f3f7f0dab8278572f11b2da1" dependencies = [ "actix-codec", "actix-http", @@ -301,8 +301,8 @@ dependencies = [ "serde_json", "serde_urlencoded", "socket2", - "time 0.2.19", - "tinyvec", + "time 0.2.22", + "tinyvec 1.0.1", "url", ] @@ -361,9 +361,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b" +checksum = "a1fd36ffbb1fb7c834eac128ea8d0e310c5aeb635548f9d58861e1308d46e71c" [[package]] name = "arc-swap" @@ -379,9 +379,9 @@ checksum = "f30bbe2f5e3d117f55bd8c7a1f9191e4a5deba9f15f595bbea4f670c59c765db" [[package]] name = "async-trait" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687c230d85c0a52504709705fc8a53e4a692b83a2184f03dae73e38e1e93a783" +checksum = "b246867b8b3b6ae56035f1eb1ed557c1d8eae97f0d53696138a50fa0e3a3b8c0" dependencies = [ "proc-macro2", "quote", @@ -415,7 +415,7 @@ dependencies = [ "actix-http", "actix-rt", "actix-service", - "base64", + "base64 0.12.3", "bytes", "derive_more", "futures-core", @@ -431,9 +431,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.50" +version = "0.3.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293" +checksum = "f813291114c186a042350e787af10c26534601062603d888be110f59f85ef8fa" dependencies = [ "addr2line", "cfg-if", @@ -455,6 +455,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + [[package]] name = "bindgen" version = "0.53.3" @@ -489,18 +495,14 @@ dependencies = [ "cexpr", "cfg-if", "clang-sys", - "clap", - "env_logger", "lazy_static", "lazycell", - "log", "peeking_take_while", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "which", ] [[package]] @@ -567,9 +569,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.59" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381" +checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d" [[package]] name = "cexpr" @@ -588,13 +590,15 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] name = "chrono" -version = "0.4.15" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" dependencies = [ + "libc", "num-integer", "num-traits", "time 0.1.44", + "winapi 0.3.9", ] [[package]] @@ -645,7 +649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1373a16a4937bc34efec7b391f9c1500c30b8478a701a4f44c9165cc0475a6e0" dependencies = [ "percent-encoding", - "time 0.2.19", + "time 0.2.22", "version_check", ] @@ -698,9 +702,9 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.10" +version = "0.99.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dcfabdab475c16a93d669dddfc393027803e347d09663f524447f642fbb84ba" +checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" dependencies = [ "proc-macro2", "quote", @@ -730,9 +734,9 @@ checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b" [[package]] name = "either" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "encoding_rs" @@ -770,8 +774,9 @@ dependencies = [ [[package]] name = "ffmpeg-next" -version = "4.3.0" -source = "git+https://git.asonix.dog/asonix/rust-ffmpeg?branch=main#47f5ee8b0538f74ed7a4af9df0bda57c14b441d8" +version = "4.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e17e735bf446b8e57b794fcb5841106817e890de40275dfad367493a752c3e9" dependencies = [ "bitflags", "ffmpeg-sys-next", @@ -780,22 +785,23 @@ dependencies = [ [[package]] name = "ffmpeg-sys-next" -version = "4.3.0" -source = "git+https://git.asonix.dog/asonix/rust-ffmpeg-sys?branch=main#993c84e710605ffc55787600deafda3f575abe6f" +version = "4.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fde8cbf91a1b044b86d9e9e944c33806a68f5e34e4281033594ceaab47a3746" dependencies = [ "bindgen 0.54.0", "cc", "libc", "num_cpus", "pkg-config", - "regex", + "vcpkg", ] [[package]] name = "flate2" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "766d0e77a2c1502169d4a93ff3b8c15a71fd946cd0126309752104e5f3c46d94" +checksum = "da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee" dependencies = [ "cfg-if", "crc32fast", @@ -837,9 +843,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +checksum = "5d8e3078b7b2a8a671cb7a3d17b4760e4181ea243227776ba83fd043b4ca034e" dependencies = [ "futures-channel", "futures-core", @@ -852,9 +858,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +checksum = "a7a4d35f7401e948629c9c3d6638fb9bf94e0b2121e96c3b428cc4e631f3eb74" dependencies = [ "futures-core", "futures-sink", @@ -862,15 +868,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" +checksum = "d674eaa0056896d5ada519900dbf97ead2e46a7b6621e8160d79e2f2e1e2784b" [[package]] name = "futures-executor" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +checksum = "cc709ca1da6f66143b8c9bec8e6260181869893714e9b5a490b169b0414144ab" dependencies = [ "futures-core", "futures-task", @@ -879,15 +885,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" +checksum = "5fc94b64bb39543b4e432f1790b6bf18e3ee3b74653c5449f63310e9a74b123c" [[package]] name = "futures-macro" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +checksum = "f57ed14da4603b2554682e9f2ff3c65d7567b53188db96cb71538217fc64581b" dependencies = [ "proc-macro-hack", "proc-macro2", @@ -897,24 +903,24 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" +checksum = "0d8764258ed64ebc5d9ed185cf86a95db5cac810269c5d20ececb32e0088abbd" [[package]] name = "futures-task" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +checksum = "4dd26820a9f3637f1302da8bceba3ff33adbe53464b54ca24d4e2d4f1db30f94" dependencies = [ "once_cell", ] [[package]] name = "futures-util" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" +checksum = "8a894a0acddba51a2d49a6f4263b1e64b8c579ece8af50fa86503d52cd1eea34" dependencies = [ "futures-channel", "futures-core", @@ -1003,9 +1009,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d63df3d41950fb462ed38308eea019113ad1508da725bbedcd0fa5a85ef5f7" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" [[package]] name = "heck" @@ -1018,9 +1024,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" dependencies = [ "libc", ] @@ -1085,9 +1091,12 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485" +checksum = "63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66" +dependencies = [ + "cfg-if", +] [[package]] name = "iovec" @@ -1155,9 +1164,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.77" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235" +checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743" [[package]] name = "libloading" @@ -1205,7 +1214,7 @@ dependencies = [ [[package]] name = "magick_rust" version = "0.14.0" -source = "git+https://git.asonix.dog/asonix/magick-rust#cd25f601629a2af0cffa5e4767720de69fd256dd" +source = "git+https://git.asonix.dog/asonix/magick-rust#e9f0ed4bb8c9de533624c69947eb0378d7520465" dependencies = [ "bindgen 0.53.3", "libc", @@ -1247,9 +1256,9 @@ checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" [[package]] name = "memoffset" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" +checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" dependencies = [ "autocfg", ] @@ -1262,9 +1271,9 @@ checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] name = "miniz_oxide" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9" +checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" dependencies = [ "adler", "autocfg", @@ -1438,7 +1447,7 @@ dependencies = [ "actix-rt", "actix-web", "anyhow", - "base64", + "base64 0.13.0", "bytes", "ffmpeg-next", "ffmpeg-sys-next", @@ -1463,18 +1472,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.23" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa" +checksum = "13fbdfd6bdee3dc9be46452f86af4a4072975899cf8592466668620bebfbcc17" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "0.4.23" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" +checksum = "c82fb1329f632c3552cf352d14427d57a511b1cf41db93b3a7d77906a82dcc8e" dependencies = [ "proc-macro2", "quote", @@ -1483,9 +1492,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" +checksum = "e555d9e657502182ac97b539fb3dae8b79cda19e3e4f8ffb5e8de4f18df93c95" [[package]] name = "pin-utils" @@ -1543,9 +1552,9 @@ checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" [[package]] name = "proc-macro2" -version = "1.0.21" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36e28516df94f3dd551a587da5357459d9b36d945a7c37c3557928c1c2ff2a2c" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" dependencies = [ "unicode-xid", ] @@ -1652,8 +1661,9 @@ dependencies = [ [[package]] name = "rexiv2" -version = "0.9.0" -source = "git+https://git.asonix.dog/asonix/rexiv2#02ba2712484b5839051e70006c94454dff7750fa" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab34307334dcf90c2f9afeda08e0c52310f4d9f282cf6e8ec6a6ffb0b09826a5" dependencies = [ "gexiv2-sys", "libc", @@ -1677,9 +1687,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" +checksum = "b2610b7f643d18c87dff3b489950269617e6601a51f1f05aa5daefee36f64f0b" [[package]] name = "rustc-hash" @@ -1702,7 +1712,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" dependencies = [ - "base64", + "base64 0.12.3", "log", "ring", "sct", @@ -1768,9 +1778,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" +checksum = "a230ea9107ca2220eea9d46de97eddcb04cd00e92d13dda78e478dd33fa82bd4" dependencies = [ "itoa", "ryu", @@ -1912,9 +1922,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "standback" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a71ea1ea5f8747d1af1979bfb7e65c3a025a70609f04ceb78425bc5adad8e6" +checksum = "f4e0831040d2cf2bdfd51b844be71885783d489898a192f254ae25d57cce725c" dependencies = [ "version_check", ] @@ -1976,9 +1986,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.17" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cc388d94ffabf39b5ed5fadddc40147cb21e605f53db6f8f36a625d27489ac5" +checksum = "a7a7159e7d0dbcab6f9c980d7971ef50f3ff5753081461eeda120d5974a4ee95" dependencies = [ "clap", "lazy_static", @@ -1987,9 +1997,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2513111825077552a6751dfad9e11ce0fba07d7276a3943a037d7e93e64c5f" +checksum = "8fc47de4dfba76248d1e9169ccff240eea2a4dc1e34e309b95b2393109b4b383" dependencies = [ "heck", "proc-macro-error", @@ -2000,9 +2010,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.40" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963f7d3cc59b59b9325165add223142bbf1df27655d07789f109896d353d8350" +checksum = "1e2e59c50ed8f6b050b071aa7b6865293957a9af6b58b94f97c1c9434ad440ea" dependencies = [ "proc-macro2", "quote", @@ -2029,18 +2039,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08" +checksum = "318234ffa22e0920fe9a40d7b8369b5f649d490980cf7aadcf1eb91594869b42" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" +checksum = "cae2447b6282786c3493999f40a9be2a6ad20cb8bd268b0a0dbf5a065535c0ab" dependencies = [ "proc-macro2", "quote", @@ -2078,9 +2088,9 @@ dependencies = [ [[package]] name = "time" -version = "0.2.19" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80c1a1fd93112fc50b11c43a1def21f926be3c18884fad676ea879572da070a1" +checksum = "55b7151c9065e80917fbf285d9a5d1432f60db41d170ccafc749a136b41a93af" dependencies = [ "const_fn", "libc", @@ -2093,9 +2103,9 @@ dependencies = [ [[package]] name = "time-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ae9b6e9f095bc105e183e3cd493d72579be3181ad4004fceb01adbe9eecab2d" +checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" dependencies = [ "proc-macro-hack", "time-macros-impl", @@ -2120,6 +2130,21 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +[[package]] +name = "tinyvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b78a366903f506d2ad52ca8dc552102ffdd3e937ba8a227f024dc1d1eae28575" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + [[package]] name = "tokio" version = "0.2.22" @@ -2169,12 +2194,13 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" +checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27" dependencies = [ "cfg-if", "log", + "pin-project-lite", "tracing-attributes", "tracing-core", ] @@ -2192,9 +2218,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bcf46c1f1f06aeea2d6b81f3c863d0930a596c86ad1920d4e5bad6dd1d7119a" +checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" dependencies = [ "lazy_static", ] @@ -2232,9 +2258,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82bb5079aa76438620837198db8a5c529fb9878c730bc2b28179b0241cf04c10" +checksum = "4ef0a5e15477aa303afbfac3a44cba9b6430fdaad52423b1e6c0dbbe28c3eedd" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -2246,6 +2272,7 @@ dependencies = [ "sharded-slab", "smallvec", "thread_local", + "tracing", "tracing-core", "tracing-log", "tracing-serde", @@ -2328,7 +2355,7 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" dependencies = [ - "tinyvec", + "tinyvec 0.3.4", ] [[package]] @@ -2375,6 +2402,12 @@ dependencies = [ "rand", ] +[[package]] +name = "vcpkg" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" + [[package]] name = "vec_map" version = "0.8.2" @@ -2493,9 +2526,9 @@ dependencies = [ [[package]] name = "widestring" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a763e303c0e0f23b0da40888724762e802a8ffefbc22de4127ef42493c2ea68c" +checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" [[package]] name = "winapi" diff --git a/Cargo.toml b/Cargo.toml index 50224c82..c1b1028b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,14 +21,14 @@ actix-fs = { git = "https://git.asonix.dog/asonix/actix-fs", branch = "main" } actix-rt = "1.1.1" actix-web = { version = "3.0.1", default-features = false, features = ["rustls"] } anyhow = "1.0" -base64 = "0.12.1" +base64 = "0.13.0" bytes = "0.5" futures = "0.3.4" magick_rust = { version = "0.14.0", git = "https://git.asonix.dog/asonix/magick-rust" } mime = "0.3.1" once_cell = "1.4.0" rand = "0.7.3" -rexiv2 = { version = "0.9.0", git = "https://git.asonix.dog/asonix/rexiv2" } +rexiv2 = "0.9.1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" sha2 = "0.9.0" @@ -42,13 +42,9 @@ tracing-subscriber = { version = "0.2.5", features = ["fmt", "tracing-log"] } uuid = { version = "0.8", features = ["v4"] } [dependencies.ffmpeg-next] -version = "4.3.0" -git = "https://git.asonix.dog/asonix/rust-ffmpeg" -branch = "main" +version = "4.3.7" default-features = false features = ["ffmpeg42", "codec", "filter", "device", "format", "resampling", "postprocessing", "software-resampling", "software-scaling"] [dependencies.ffmpeg-sys-next] -version = "4.3.0" -git = "https://git.asonix.dog/asonix/rust-ffmpeg-sys" -branch = "main" +version = "4.3.5" diff --git a/docker/dev/Dockerfile.arm32v7 b/docker/dev/Dockerfile.arm32v7 deleted file mode 100644 index 357eb4dd..00000000 --- a/docker/dev/Dockerfile.arm32v7 +++ /dev/null @@ -1,169 +0,0 @@ -# Basic cross-build environment -FROM ubuntu:20.04 as cross-build - -ARG UID=1000 -ARG GID=1000 - -ENV \ - ARCH=armhf \ - HOST=arm-unknown-linux \ - TOOL=arm-linux-gnueabihf \ - TARGET=armv7-unknown-linux-gnueabihf \ - CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ - CC_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc \ - CXX_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++ \ - BUILD_MODE=release - -ENV \ - TOOLCHAIN=stable \ - DEBIAN_FRONTEND=noninteractive \ - PKG_CONFIG_ALLOW_CROSS=1 \ - PKG_CONFIG_PATH=/usr/lib/$TOOL/pkgconfig:/usr/lib/pkgconfig \ - LD_LIBRARY_PATH=/usr/lib/$TOOL:/usr/$TOOL/lib \ - LD_RUN_PATH=/usr/lib/$TOOL:/usr/$TOOL/lib \ - LDFLAGS="-L/usr/lib/$TOOL -L/usr/$TOOL/lib -Wl,-rpath-link,/usr/lib/$TOOL -Wl,-rpath-link,/usr/$TOOL/lib" \ - CFLAGS="-I/usr/include/$TOOL -I/usr/$TOOL/include -I/usr/include" \ - CPPFLAGS="-I/usr/include/$TOOL -I/usr/$TOOL/include -I/usr/include" - -RUN \ - sed 's/http:\/\/\(.*\).ubuntu.com\/ubuntu\//[arch-=amd64,i386] http:\/\/ports.ubuntu.com\/ubuntu-ports\//g' /etc/apt/sources.list > /etc/apt/sources.list.d/ports.list && \ - sed -i 's/http:\/\/\(.*\).ubuntu.com\/ubuntu\//[arch=amd64,i386] http:\/\/\1.archive.ubuntu.com\/ubuntu\//g' /etc/apt/sources.list && \ - addgroup --gid $GID build && \ - adduser \ - --disabled-password \ - --gecos "" \ - --ingroup build \ - --uid $UID \ - --home /opt/build \ - build && \ - dpkg --add-architecture $ARCH && \ - apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y \ - pkg-config \ - build-essential \ - crossbuild-essential-$ARCH - -WORKDIR /opt/build - - -# Environment for ImageMagick -FROM cross-build as imagemagick-builder - -RUN \ - apt-get install -y \ - libltdl-dev:$ARCH \ - libjpeg-dev:$ARCH \ - libpng-dev:$ARCH \ - libwebp-dev:$ARCH \ - liblzma-dev:$ARCH \ - libxml2-dev:$ARCH - -ADD --chown=build:build https://imagemagick.org/download/ImageMagick.tar.gz /opt/build/ImageMagick.tar.gz - -USER build - -RUN \ - tar zxf ImageMagick.tar.gz && \ - mv ImageMagick-* ImageMagick - -WORKDIR /opt/build/ImageMagick - -RUN \ - ./configure \ - CC=$TOOL-gcc \ - CXX=$TOOL-g++ \ - --enable-shared \ - --with-modules \ - --disable-static \ - --disable-docs \ - --prefix=/usr/local \ - --with-utilities=no \ - --with-magick-plus-plus=no \ - --without-perl \ - --with-xml=yes \ - --with-png=yes \ - --with-jpeg=yes \ - --with-webp=yes \ - --host=$HOST && \ - make - -USER root - -RUN \ - make install && \ - ldconfig /usr/local/lib - - -# Environment for Rust -FROM cross-build as rust - -RUN \ - apt-get install -y curl - -ENV \ - PATH=$PATH:/opt/build/.cargo/bin - -ADD --chown=build:build https://sh.rustup.rs /opt/build/rustup.sh - -USER build - -RUN \ - chmod +x rustup.sh && \ - ./rustup.sh --default-toolchain $TOOLCHAIN --profile minimal -y && \ - rustup target add $TARGET - -USER root - - -# Environment for pict-rs -FROM cross-build as pict-rs-builder - -RUN \ - apt-get install -y \ - libgexiv2-dev:$ARCH \ - libxml2:$ARCH \ - libltdl7:$ARCH \ - llvm-dev \ - libclang-dev \ - clang \ - libpng16-16:$ARCH \ - libjpeg8:$ARCH \ - libwebp6:$ARCH \ - libwebpdemux2:$ARCH \ - libwebpmux3:$ARCH \ - libgomp1:$ARCH \ - libavcodec-dev:$ARCH \ - libavfilter-dev:$ARCH \ - libavdevice-dev:$ARCH \ - libavformat-dev:$ARCH \ - libavresample-dev:$ARCH \ - libavutil-dev:$ARCH \ - libswscale-dev:$ARCH \ - libswresample-dev:$ARCH \ - ffmpeg && \ - rm -rf /usr/include/x86_64-linux-gnu - -ENV \ - PATH=$PATH:/opt/build/.cargo/bin \ - PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib \ - LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib \ - LDFLAGS="$LDFLAGS -L/usr/local/lib" \ - IMAGE_MAGICK_LIB_DIRS=/usr/local/lib \ - IMAGE_MAGICK_INCLUDE_DIRS=/usr/local/include/ImageMagick-7 \ - CFLAGS="$CFLAGS -I/usr/local/include/ImageMagick-7" \ - CPPFLAGS="$CPPFLAGS -I/usr/local/include/ImageMagick-7" \ - RUSTFLAGS="-L/usr/lib/$TOOL -C link-arg=-Wl,-rpath-link,/usr/lib/$TOOL -L/usr/$TOOL/lib -C link-arg=-Wl,-rpath-link,/usr/$TOOL/lib" - -COPY --from=rust --chown=build:build /opt/build/.cargo /opt/build/.cargo -COPY --from=rust --chown=build:build /opt/build/.rustup /opt/build/.rustup -COPY --from=imagemagick-builder /usr/local/ /usr/local -COPY root/ / - -USER build - -RUN \ - mkdir -p /opt/build/repo - -WORKDIR /opt/build/repo diff --git a/docker/dev/docker-compose.yml b/docker/dev/docker-compose.yml index 349b6586..4b65fc73 100644 --- a/docker/dev/docker-compose.yml +++ b/docker/dev/docker-compose.yml @@ -32,19 +32,3 @@ services: - RUST_LOG=info,pict_rs=debug volumes: - ../../:/opt/build/repo - - pictrs-arm32v7: - build: - context: . - dockerfile: Dockerfile.arm32v7 - args: - UID: "${USER_ID:-1000}" - GID: "${GROUP_ID:-1000}" - ports: - - "8080:8080" - stdin_open: true - tty: true - environment: - - RUST_LOG=info,pict_rs=debug - volumes: - - ../../:/opt/build/repo diff --git a/docker/prod/Dockerfile.arm32v7 b/docker/prod/Dockerfile.arm32v7 deleted file mode 100644 index 5c143ccc..00000000 --- a/docker/prod/Dockerfile.arm32v7 +++ /dev/null @@ -1,228 +0,0 @@ -# Target environment -FROM arm32v7/ubuntu:20.04 as target-env - -ENV \ - TARGET=armv7-unknown-linux-gnueabihf \ - BUILD_MODE=release - -# Basic cross-build environment -FROM ubuntu:20.04 as cross-build - -ENV \ - ARCH=armhf \ - HOST=arm-unknown-linux \ - TOOL=arm-linux-gnueabihf \ - TARGET=armv7-unknown-linux-gnueabihf \ - CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ - CC_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-gcc \ - CXX_armv7_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++ \ - BUILD_MODE=release - -ENV \ - TOOLCHAIN=stable \ - DEBIAN_FRONTEND=noninteractive \ - PKG_CONFIG_ALLOW_CROSS=1 \ - PKG_CONFIG_PATH=/usr/lib/$TOOL/pkgconfig:/usr/lib/pkgconfig \ - LD_LIBRARY_PATH=/usr/lib/$TOOL:/usr/$TOOL/lib \ - LD_RUN_PATH=/usr/lib/$TOOL:/usr/$TOOL/lib \ - LDFLAGS="-L/usr/lib/$TOOL -L/usr/$TOOL/lib -Wl,-rpath-link,/usr/lib/$TOOL -Wl,-rpath-link,/usr/$TOOL/lib" \ - CFLAGS="-I/usr/include/$TOOL -I/usr/$TOOL/include -I/usr/include" \ - CPPFLAGS="-I/usr/include/$TOOL -I/usr/$TOOL/include -I/usr/include" - -RUN \ - sed 's/http:\/\/\(.*\).ubuntu.com\/ubuntu\//[arch-=amd64,i386] http:\/\/ports.ubuntu.com\/ubuntu-ports\//g' /etc/apt/sources.list > /etc/apt/sources.list.d/ports.list && \ - sed -i 's/http:\/\/\(.*\).ubuntu.com\/ubuntu\//[arch=amd64,i386] http:\/\/\1.archive.ubuntu.com\/ubuntu\//g' /etc/apt/sources.list && \ - addgroup --gid 991 build && \ - adduser \ - --disabled-password \ - --gecos "" \ - --ingroup build \ - --uid 991 \ - --home /opt/build \ - build && \ - dpkg --add-architecture $ARCH && \ - apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y \ - pkg-config \ - build-essential \ - crossbuild-essential-$ARCH - -WORKDIR /opt/build - - -# Environment for ImageMagick -FROM cross-build as imagemagick-builder - -RUN \ - apt-get install -y \ - libltdl-dev:$ARCH \ - libjpeg-dev:$ARCH \ - libpng-dev:$ARCH \ - libwebp-dev:$ARCH \ - liblzma-dev:$ARCH \ - libxml2-dev:$ARCH - -ADD --chown=build:build https://imagemagick.org/download/ImageMagick.tar.gz /opt/build/ImageMagick.tar.gz - -USER build - -RUN \ - tar zxf ImageMagick.tar.gz && \ - mv ImageMagick-* ImageMagick - -WORKDIR /opt/build/ImageMagick - -RUN \ - ./configure \ - CC=$TOOL-gcc \ - CXX=$TOOL-g++ \ - --enable-shared \ - --with-modules \ - --disable-static \ - --disable-docs \ - --prefix=/usr/local \ - --with-utilities=no \ - --with-magick-plus-plus=no \ - --without-perl \ - --with-xml=yes \ - --with-png=yes \ - --with-jpeg=yes \ - --with-webp=yes \ - --host=$HOST && \ - make - -USER root - -RUN \ - make install && \ - ldconfig /usr/local/lib - - -# Environment for Rust -FROM cross-build as rust - -RUN \ - apt-get install -y curl - -ENV \ - PATH=$PATH:/opt/build/.cargo/bin - -ADD --chown=build:build https://sh.rustup.rs /opt/build/rustup.sh - -USER build - -RUN \ - chmod +x rustup.sh && \ - ./rustup.sh --default-toolchain $TOOLCHAIN --profile minimal -y && \ - rustup target add $TARGET - -USER root - - -# Environment for pict-rs -FROM cross-build as pict-rs-builder - -RUN \ - apt-get install -y \ - libgexiv2-dev:$ARCH \ - libxml2:$ARCH \ - libltdl7:$ARCH \ - libavcodec-dev:$ARCH \ - libavfilter-dev:$ARCH \ - libavdevice-dev:$ARCH \ - libavformat-dev:$ARCH \ - libavresample-dev:$ARCH \ - libavutil-dev:$ARCH \ - libswscale-dev:$ARCH \ - libswresample-dev:$ARCH \ - llvm-dev \ - libclang-dev \ - clang && \ - rm -rf /usr/include/x86_64-linux-gnu - -ENV \ - PATH=$PATH:/opt/build/.cargo/bin \ - PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib \ - LD_RUN_PATH=$LD_RUN_PATH:/usr/local/lib \ - LDFLAGS="$LDFLAGS -L/usr/local/lib" \ - IMAGE_MAGICK_LIB_DIRS=/usr/local/lib \ - IMAGE_MAGICK_INCLUDE_DIRS=/usr/local/include/ImageMagick-7 \ - CFLAGS="$CFLAGS -I/usr/local/include/ImageMagick-7" \ - CPPFLAGS="$CPPFLAGS -I/usr/local/include/ImageMagick-7" \ - RUSTFLAGS="-L/usr/lib/$TOOL -C link-arg=-Wl,-rpath-link,/usr/lib/$TOOL -L/usr/$TOOL/lib -C link-arg=-Wl,-rpath-link,/usr/$TOOL/lib" - -COPY --from=rust --chown=build:build /opt/build/.cargo /opt/build/.cargo -COPY --from=rust --chown=build:build /opt/build/.rustup /opt/build/.rustup -COPY --from=imagemagick-builder /usr/local/ /usr/local - -ARG TAG=main -ARG GIT_REPOSITORY=https://git.asonix.dog/asonix/pict-rs - -ADD --chown=build:build $GIT_REPOSITORY/archive/$TAG.tar.gz /opt/build/$TAG.tar.gz - -USER build - -RUN \ - tar zxf $TAG.tar.gz - -WORKDIR /opt/build/pict-rs - -RUN \ - USER=build cargo build --target=$TARGET --$BUILD_MODE && \ - $TOOL-strip /opt/build/pict-rs/target/$TARGET/$BUILD_MODE/pict-rs - - -# Producing target binary -FROM target-env - -ARG UID=991 -ARG GID=991 - -RUN \ - addgroup --gid $GID pictrs && \ - adduser \ - --disabled-password \ - --gecos "" \ - --ingroup pictrs \ - --uid $UID \ - --home /opt/pict-rs \ - pictrs && \ - apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y \ - libgexiv2-2 \ - libpng16-16 \ - libjpeg8 \ - libwebp6 \ - libwebpdemux2 \ - libwebpmux3 \ - libltdl7 \ - libgomp1 \ - libxml2 \ - libavcodec58 \ - libavfilter7 \ - libavdevice58 \ - libavformat58 \ - libavresample4 \ - libavutil56 \ - libswscale5 \ - libswresample3 \ - tini - -COPY --from=pict-rs-builder /opt/build/pict-rs/target/$TARGET/$BUILD_MODE/pict-rs /usr/local/bin/pict-rs -COPY --from=imagemagick-builder /usr/local /usr/local - -ENV \ - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib - -RUN \ - chown pictrs:pictrs /mnt - -VOLUME /mnt -WORKDIR /opt/pict-rs -USER pictrs -EXPOSE 8080 -ENTRYPOINT ["/usr/bin/tini", "--"] -CMD ["/usr/local/bin/pict-rs", "-p", "/mnt"] diff --git a/docker/prod/deploy.sh b/docker/prod/deploy.sh index d285b3f9..b023729c 100755 --- a/docker/prod/deploy.sh +++ b/docker/prod/deploy.sh @@ -60,9 +60,8 @@ git tag $new_tag git push origin $new_tag git push -# Build for arm64v8, arm32v7, and amd64 +# Build for arm64v8 and amd64 build_image $new_tag arm64v8 -build_image $new_tag arm32v7 build_image $new_tag amd64 # Build for other archs