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