github.com/jstaf/onedriver@v0.14.2-0.20240420231225-f07678f9e6ef/onedriver.spec (about) 1 Name: onedriver 2 Version: 0.14.1 3 Release: 1%{?dist} 4 Summary: A native Linux filesystem for Microsoft Onedrive 5 6 License: GPL-3.0-or-later 7 URL: https://github.com/jstaf/onedriver 8 Source0: https://github.com/jstaf/onedriver/archive/refs/tags/v%{version}.tar.gz 9 10 %if 0%{?suse_version} 11 BuildRequires: go >= 1.17 12 %else 13 BuildRequires: golang >= 1.17.0 14 %endif 15 BuildRequires: git 16 BuildRequires: gcc 17 BuildRequires: pkg-config 18 BuildRequires: webkit2gtk3-devel 19 Requires: fuse3 20 21 %description 22 Onedriver is a native Linux filesystem for Microsoft Onedrive. Files and 23 metadata are downloaded on-demand instead of syncing the entire drive to 24 your local computer. 25 26 %prep 27 %autosetup 28 29 %build 30 bash cgo-helper.sh 31 if rpm -q pango | grep -q 1.42; then 32 BUILD_TAGS=-tags=pango_1_42,gtk_3_22 33 fi 34 go build -v -mod=vendor $BUILD_TAGS \ 35 -ldflags="-X github.com/jstaf/onedriver/cmd/common.commit=$(cat .commit)" \ 36 ./cmd/onedriver 37 go build -v -mod=vendor $BUILD_TAGS \ 38 -ldflags="-X github.com/jstaf/onedriver/cmd/common.commit=$(cat .commit)" \ 39 ./cmd/onedriver-launcher 40 gzip pkg/resources/onedriver.1 41 42 %install 43 rm -rf $RPM_BUILD_ROOT 44 mkdir -p %{buildroot}/%{_bindir} 45 mkdir -p %{buildroot}/usr/share/icons/%{name} 46 mkdir -p %{buildroot}/usr/share/applications 47 mkdir -p %{buildroot}/usr/lib/systemd/user 48 mkdir -p %{buildroot}/usr/share/man/man1 49 cp %{name} %{buildroot}/%{_bindir} 50 cp %{name}-launcher %{buildroot}/%{_bindir} 51 cp pkg/resources/%{name}.png %{buildroot}/usr/share/icons/%{name} 52 cp pkg/resources/%{name}-128.png %{buildroot}/usr/share/icons/%{name} 53 cp pkg/resources/%{name}.svg %{buildroot}/usr/share/icons/%{name} 54 cp pkg/resources/%{name}-launcher.desktop %{buildroot}/usr/share/applications 55 cp pkg/resources/%{name}@.service %{buildroot}/usr/lib/systemd/user 56 cp pkg/resources/%{name}.1.gz %{buildroot}/usr/share/man/man1 57 58 # fix for el8 build in mock 59 %define _empty_manifest_terminate_build 0 60 %files 61 %defattr(-,root,root,-) 62 %attr(755, root, root) %{_bindir}/%{name} 63 %attr(755, root, root) %{_bindir}/%{name}-launcher 64 %dir /usr/share/icons/%{name} 65 %attr(644, root, root) /usr/share/icons/%{name}/%{name}.png 66 %attr(644, root, root) /usr/share/icons/%{name}/%{name}-128.png 67 %attr(644, root, root) /usr/share/icons/%{name}/%{name}.svg 68 %attr(644, root, root) /usr/share/applications/%{name}-launcher.desktop 69 %attr(644, root, root) /usr/lib/systemd/user/%{name}@.service 70 %doc 71 %attr(644, root, root) /usr/share/man/man1/%{name}.1.gz 72 73 %changelog 74 * Wed Oct 18 2023 Jeff Stafford <jeff.stafford@protonmail.com> - 0.14.1 75 - Fixes a bug with file corruption in some scenarios from version 0.14.0. 76 77 * Fri Jul 14 2023 Jeff Stafford <jeff.stafford@protonmail.com> - 0.14.0 78 - We now use quickxorhash checksums for both personal and business accounts. 79 - The cache for file contents has been moved out of boltdb and onto the local filesystem. 80 This makes accessing, reading, and writing files faster than before. 81 - onedriver no longer allows you to create filenames that are not allowed by OneDrive. 82 83 * Tue Nov 1 2022 Jeff Stafford <jeff.stafford@protonmail.com> - 0.13.0 84 - The GUI has been rewritten in golang for ease of maintenance and code sharing with 85 the rest of the onedriver application. 86 - onedriver can now be configured with a config file at "~/.config/onedriver/config.yml". 87 - There is now a configuration menu in the GUI. You can now set a couple configuration 88 options that were previously only possible with "systemctl edit". 89 - The onedriver CLI now stores its cache in the same path that the GUI expects, 90 meaning that invoking the onedriver filesystem directly and via the GUI will share the 91 cache as long as the mountpoint is the same. 92 - onedriver now prefers multipart downloads for files >10MB instead of a single massive 93 GET request. This should significantly improve reliability when working with large files. 94 95 * Tue Nov 2 2021 Jeff Stafford <jeff.stafford@protonmail.com> - 0.12.0 96 - Major internal rewrite - onedriver now talks directly to the kernel instead of using 97 go-fuse/fs as an intermediary. This makes metadata operations a bit faster. 98 - onedriver better handles completion of multipart uploads and does not repeatedly 99 upload files on success. This significantly improves upload speed. 100 - Fixes a crash when writes begin at an offset beyond maximum file length. This fixes a 101 bug where running ld inside the filesystem would cause it to crash. 102 - Switch to using zerolog instead of logrus for logging. Though zerolog is supposedly 103 faster, the real reason to switch is that it's much easier for me (and hopefully you) 104 to read! Also, pretty colors! 105 - onedriver now gives you the option to choose to authenticate via the terminal when 106 authenticating via the new --no-browser option (this is the functionality from the 107 old "headless" build). 108 - Add a workaround for the TLS cert authentication issue from 109 https://bugzilla.redhat.com/show_bug.cgi?id=2024296 110 111 * Tue Aug 17 2021 Jeff Stafford <jeff.stafford@protonmail.com> - 0.11.2 112 - onedriver now disallows rmdir on nonempty directories. 113 - The filesystem now detects if it is offline more reliably. 114 115 * Sun Jul 11 2021 Jeff Stafford <jeff.stafford@protonmail.com> - 0.11.1 116 - Fix startup crash in onedriver-launcher when onedriver has not been launched before. 117 118 * Sat Jul 3 2021 Jeff Stafford <jeff.stafford@protonmail.com> - 0.11.0 119 - Now includes a snazzy GUI for managing your mountpoints. No terminal skills are required 120 to use onedriver now. 121 - The upload logic has been rewritten to no longer use 0-byte files as placeholders in 122 any scenario. This fixes a race condition where software like LibreOffice, KeepassXC, or 123 Krita could generate a 0-byte file instead of the intended file when the file was 4MB or 124 larger. 125 - onedriver now uses etags AND modification times when syncing server-side changes back to 126 the client. This reduces the number of times that files must be redownloaded because of 127 bad timestamp data from the Microsoft API. 128 129 * Mon May 17 2021 Jeff Stafford <jeff.stafford@protonmail.com> - 0.10.1 130 - Fix the onedriver .desktop launcher so it uses the new systemd unit name. 131 132 * Mon May 17 2021 Jeff Stafford <jeff.stafford@protonmail.com> - 0.10.0 133 - Add AUR installation method for Arch-based distros - thanks fmoledina! 134 - Add manpage for onedriver - thanks GenericGuy! 135 - The onedriver systemd service now restarts itself in the event of a crash - 136 thanks dipunm! 137 - Fix a rare crash while syncing server-side changes missing checksums. 138 - Fix a race-condition that caused uploaded files to occasionally be replaced by a 0-byte 139 copy (most commonly caused by the way LibreOffice saves files). 140 - Cap number of uploads that can be in-progress at any time to 5. This makes uploading 141 uploading directories with lots of files appear to go a bit faster. 142 - The account name is now displayed in the title bar if you need to reauthenticate to 143 OneDrive (makes it easier to know which credentials to use when prompted). 144 145 * Tue Sep 29 2020 Jeff Stafford <jeff.stafford@protonmail.com> - 0.9.2 146 - Adds fix for server-side update to Microsoft's authentication APIs. 147 - Fix a crash on auth renewal after computer suspend or other network interruption. 148 149 * Sat Jun 6 2020 Jeff Stafford <jeff.stafford@protonmail.com> - 0.9.1 150 - Filenames are now sanitized when uploading new files. 151 - onedriver now only syncs metadata changes for a file from server to client if its 152 contents have changed as well. This means that programs like LibreOffice will no longer 153 complain about their lockfiles being updated while saving. 154 155 * Wed Jun 3 2020 Jeff Stafford <jeff.stafford@protonmail.com> - 0.9.0 156 - Multiple OneDrive drives can now be mounted simultaneously via systemd. 157 - Uploads are now retried, with failed uploads retried automatically. 158 - In-progress uploads are now cached on disk and resumed the next time onedriver starts 159 if the upload is terminated prematurely (for instance, if a user shuts down their computer) 160 - All uploads are now verified against checksums of their local content. 161 162 * Thu Apr 2 2020 Jeff Stafford <jeff.stafford@protonmail.com> - 0.8.0 163 - Add a desktop launcher for single drive scenarios (better multi-drive support coming soon!). 164 - Fix for directories containing more than 200 items. 165 - Miscellaneous fixes and tests for OneDrive for Business 166 - Compatibility with Go 1.14 167 168 * Mon Feb 17 2020 Jeff Stafford <jeff.stafford@protonmail.com> - 0.7.2 169 - Allow use of disk cache after filesystem transitions from offline to online. 170 171 * Mon Feb 17 2020 Jeff Stafford <jeff.stafford@protonmail.com> - 0.7.1 172 - Fix for filesystem coming up blank after user systemd session start. 173 174 * Wed Feb 12 2020 Jeff Stafford <jeff.stafford@protonmail.com> - 0.7.0 175 - Now has drive username in Nautilus sidebar and small OneDrive logo on mountpoint. 176 - No longer requires manually closing the authentication window. 177 - Add systemd user service for automount on boot. 178 - Now transitions gracefully from online to offline (or vice-versa) depending on network availability. 179 180 * Thu Jan 16 2020 Jeff Stafford <jeff.stafford@protonmail.com> - 0.6 181 - Filesystem metadata is now serialized to disk at regular intervals. 182 - Using on-disk metadata, onedriver can now be used in read-only mode while offline. 183 - onedriver now stores its on-disk cache and auth tokens under the normal user cache directory. 184 185 * Mon Nov 4 2019 Jeff Stafford <jeff.stafford@protonmail.com> - 0.5 186 - Add a dedicated thread responsible for syncing remote changes to local cache every 30s. 187 - Add a dedicated thread to monitor, deduplicate, and retry uploads. 188 - Now all HTTP requests will retry server-side 5xx errors a single time by default. 189 - Print HTTP status code with Graph API errors where they occur. 190 - Purge file contents from memory on flush() and store them on disk. 191 - onedriver now validates on-disk file contents using checksums before using them. 192 193 * Sun Sep 15 2019 Jeff Stafford <jeff.stafford@protonmail.com> - 0.4 194 - Port to go-fuse version 2 and the new nodefs API for improved performance. 195 196 * Sat Sep 7 2019 Jeff Stafford <jeff.stafford@protonmail.com> - 0.3 197 - Initial .spec file