Comments (8)
Install perl and popt libs (http://gnuwin32.sourceforge.net/packages/popt.htm)
or you can use
cmake_dependent_option(BUILD_RDIFF "Whether or not to build rdiff executable" ON "POPT_FOUND" OFF)
if you want only lib
from librsync.
I also had to add my own S_IFREG
to the code because VS2015 doesn't have it:
#ifndef S_ISREG
# define S_ISREG(x) (x & _S_IFREG)
#endif
and change librsync
to static link otherwise VS won't create an import lib for it.
# change to this in CMakeLists.txt
add_library(rsync STATIC ${rsync_LIB_SRCS})
Then the build went fine.
from librsync.
@Quiark it would be great if you could send clean PRs for those two changes.
from librsync.
Besides the issues described here I've also encountered another one, regarding usage of "_fileno" and "fileno" availability, while trying to build the library with MSVC 2015 and gcc on Linux 64 bits. I've also attached a patch to overcome them: librsync-patch.zip . What do you think about it?
On top, perl on Windows is pretty unusual, even for developers and, after checking the mkprototab.pl script, is seems its output is static. Taking these into consideration how about to generate the "prototab.h" and "prototab.c" offline, and add them as is, directly into the project?
from librsync.
@marius-nicolae ... we have github PR's for that...
Perl issue:
no, generated scripts should NOT be in repo, so only correct solution is switch everything directly to C or Python see #82 (or use modern OS 👻 )
from librsync.
I'm new with github and pull requests but I've managed to create one: #100 .
Regarding Perl thing, it's not referring to tests as the case of #82, but it's about "mkprototab.pl" script which gets called by cmake and statically creates two files, "prototab.h" and "prototab.c", used for building the rsync library.
PS. To keep this issue clean, would you like to create another specific one?
from librsync.
I think this is about trying to drop perl as a build dependency.
Personally I don't see much value in continuing to have prototab.[ch] auto-generated at all. They are pretty static and realistically if we want to add cmds like a whole-file checksum (see #9) it'd probably be easier to edit the *.[ch] files to add it than update the *.pl file. Dropping the perl build dependency would be more of a win than the auto-generation gives us.
from librsync.
Note pull request #142 removes perl as a build dependency, but perl will still be needed to run some of the tests because they use a mutate.pl script.
Given there is #82 about fixing the tests be more windows friendly, I'm going to consider #142 as fixing this.
from librsync.
Related Issues (20)
- Migrate from Travis to GitHub Actions. HOT 1
- Supplying rdiff Base File Using Pipe Results in Illegal Seek Error in librsync HOT 8
- Generate signature from empty basis HOT 2
- Replace popt with something better supported. HOT 3
- Improve GitHub and Doxygen docs. HOT 2
- popt not found on Pop_OS Hirsute
- rsync vs network speed HOT 9
- rs_patch_file old <-> new file HOT 1
- 1) sig file -> size 0 ? 2) static/dynamic lib Windows ? HOT 6
- Runtime error when linking to rsync MSVC compiled with MT or MTd ? HOT 2
- Determine delta size before generation (streaming api) HOT 2
- build 2.3.2 with msvs 2019 failed HOT 2
- [Feature Request] Implement FastCDC? HOT 7
- Request: Add windows build to stable release HOT 2
- v2.3.3 tests are failing only on s390x HOT 4
- rdiff v2.3.4 I/O error on Linux Mint HOT 6
- rdiff v2.3.4 popt.dll error on Windows HOT 10
- Suggestion: have static binary for windows users HOT 2
- Migration to GitHub is not complete HOT 1
- Support for MacOS universal2 architecture ? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from librsync.