Giter VIP home page Giter VIP logo

macOS Status Linux Status Coverity Status

DCE/RPC

This project is a fork of the Likewise DCE/RPC renovation. The Likewise git repository was once available here and can probably still be found somewhere on the internet.

Build notes

The build system for DCE/RPC is relatively complex, partly due to the use of automake and libtool and partly because it does a lot of code generation.

Xcode does not support this sort of thing particularly well, so we make heavy use of shell script build phases and "workarounds".

Our basic approach to cross-compilation is to separate the build into two phases. We have a dceidl project that builds the IDL compiler and installs it into the SDK. Then we have the dcerpc project that builds the DCERPC framework using the previously installed IDL compiler.

The dcerpc and dceidl projects should typically by run with different build architectures, since dceidl is expected to run on the build host, and dcerpc is expected to run on the target host. Inside Apple, the build group has all this preconfigured.

We assume that the IDL compiler is actually an IDL cross-compiler. This assumption is valid because the autotools build system uses the "generic" architecture, and everything that depends on the target architecture is determined at compilation time without the use of autoconf tests.

We do use autoconf tests to select available features when we are building the DCERPC framework, and this relies on the fact that features vary between target SDKs, but not between target architectures. You can only target a single SDK, and within that SDK, the feature set is constant, and independent of the suported architecture. Therefore it is valid to do a single configure pass followed by a multi-architecture build.

On macOS, the Homebrew versions of Flex and Bison are required, since the versions shipped with the base system are too old.

Build instructions are on the website here.

DCE/RPC Documentation

Open Group documentation

C706 is the primary specification for DCE/RPC 1.1. This document describes the concepts, protocol and internal mechanisms of the RPC architecture. The Open Group also has the DCE 1.2.2 documentation set available for purchase. This contains some useful RPC information, particularly in the Application Development Guide.

Microsoft documentation

Since DCE/RPC is the basis for the Windows RPC implementation, Microsoft provide a lot of useful documentation. Windows extensions to the DCE/RPC protocols are documented in MS-RPCE. The Remote Procedure Call section of MSDN provides a wealth of information about the Windows RPC implementation. The O'Reilly Microsoft RPC programming guide is a nice introduction to RPC programming on Windows. Most of it can be directly applied to DCE/RPC just by changing the function names.

Other documentation

The RPC Internals document is dated and incomplete, but provides a useful insight into some of the source code architecture and conventions.

The porting guide contains some historical information about porting DCE/RPC to new platforms. It's not particularly relevant any more, but it occasionally explains some of the rationale for the strange things that you find in the source.

dcerpc's Projects

dcerpc icon dcerpc

DCE/RPC is the remote procedure call system developed for the Distributed Computing Environment (DCE).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.